summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_1.s2136
-rw-r--r--asm/battle_10.s4675
-rw-r--r--asm/battle_2.s6435
-rw-r--r--asm/battle_3.s12017
-rw-r--r--asm/battle_4.s32351
-rw-r--r--asm/battle_5.s4591
-rw-r--r--asm/battle_8.s5222
-rw-r--r--asm/battle_811DA74.s5890
-rw-r--r--asm/battle_9.s4080
-rw-r--r--asm/battle_ai.s2170
-rw-r--r--asm/battle_anim_807B69C.s960
-rw-r--r--asm/battle_anim_80A7E7C.s2589
-rw-r--r--asm/battle_anim_80CA710.s4600
-rw-r--r--asm/battle_anim_81258BC.s2125
-rw-r--r--asm/battle_anim_812C144.s13097
-rw-r--r--asm/battle_anim_813F0F4.s5740
-rw-r--r--asm/battle_message.s462
-rw-r--r--asm/battle_records.s66
-rw-r--r--asm/battle_tower.s3663
-rw-r--r--asm/berry_blender.s20
-rw-r--r--asm/bike.s2211
-rw-r--r--asm/cable_car.s4
-rw-r--r--asm/cable_club.s487
-rw-r--r--asm/calculate_base_damage.s1165
-rw-r--r--asm/choose_party.s2509
-rw-r--r--asm/contest.s200
-rw-r--r--asm/contest_ai.s996
-rw-r--r--asm/contest_link_80C2020.s66
-rw-r--r--asm/contest_link_80C857C.s4
-rw-r--r--asm/contest_painting.s1293
-rw-r--r--asm/crt0.s82
-rw-r--r--asm/daycare.s542
-rw-r--r--asm/decoration.s7086
-rw-r--r--asm/easy_chat.s822
-rw-r--r--asm/egg_hatch.s180
-rw-r--r--asm/evolution_graphics.s (renamed from asm/rom_8148B8C.s)1538
-rw-r--r--asm/evolution_scene.s384
-rw-r--r--asm/field_effect_helpers.s2
-rw-r--r--asm/field_fadetransition.s (renamed from asm/rom_8080874.s)1035
-rw-r--r--asm/field_ground_effect.s588
-rw-r--r--asm/field_map_obj.s18981
-rw-r--r--asm/field_screen_effect.s789
-rw-r--r--asm/field_tasks.s (renamed from asm/rom_806936C.s)432
-rw-r--r--asm/field_weather.s (renamed from asm/weather.s)46
-rw-r--r--asm/fldeff_80C5CD4.s30
-rw-r--r--asm/fldeff_flash.s753
-rw-r--r--asm/hall_of_fame.s3402
-rw-r--r--asm/intro_credits_graphics.s1166
-rw-r--r--asm/item_menu.s100
-rw-r--r--asm/item_use.s3017
-rw-r--r--asm/learn_move.s2739
-rw-r--r--asm/libgcnmultiboot.s333
-rw-r--r--asm/macros/asm.inc5
-rw-r--r--asm/macros/battle_ai_script.inc62
-rw-r--r--asm/macros/battle_anim.inc24
-rw-r--r--asm/matsuda_debug_menu.s685
-rw-r--r--asm/mauville_old_man.s500
-rw-r--r--asm/menu_helpers.s20
-rw-r--r--asm/mon_markings.s20
-rw-r--r--asm/mystery_event_menu.s581
-rw-r--r--asm/mystery_event_script.s197
-rw-r--r--asm/naming_screen.s4331
-rw-r--r--asm/party_menu.s3064
-rw-r--r--asm/player_pc.s3467
-rw-r--r--asm/pokeblock.s2675
-rw-r--r--asm/pokeblock_feed.s (renamed from asm/rom_81473B8.s)599
-rw-r--r--asm/pokedex.s5294
-rw-r--r--asm/pokedex_cry_screen.s149
-rw-r--r--asm/pokemon_icon.s788
-rw-r--r--asm/pokemon_item_effect.s1970
-rw-r--r--asm/pokemon_menu.s3438
-rw-r--r--asm/pokemon_storage_system.s (renamed from asm/rom_8094928.s)14401
-rw-r--r--asm/pokemon_summary_screen.s8776
-rw-r--r--asm/pokenav.s102
-rw-r--r--asm/porthole.s297
-rw-r--r--asm/region_map.s16
-rw-r--r--asm/reset_rtc_screen.s8
-rw-r--r--asm/reshow_battle_screen.s1097
-rw-r--r--asm/rom3.s3411
-rw-r--r--asm/rom5.s2048
-rw-r--r--asm/rom6.s9863
-rw-r--r--asm/rom_800D42C.s88931
-rw-r--r--asm/rom_803D1FC.s5839
-rw-r--r--asm/rom_8040EB4.s478
-rw-r--r--asm/rom_804373C.s8495
-rw-r--r--asm/rom_8065394.s2517
-rw-r--r--asm/rom_806D7F8.s6917
-rw-r--r--asm/rom_8074BAC.s11073
-rw-r--r--asm/rom_80859BC.s11803
-rw-r--r--asm/rom_81258BC.s30204
-rw-r--r--asm/rom_813BA94.s18272
-rw-r--r--asm/rom_header.inc13
-rw-r--r--asm/rotating_gate.s4
-rw-r--r--asm/roulette.s28
-rw-r--r--asm/script_menu.s1237
-rw-r--r--asm/script_pokemon_util_80C4BF0.s1399
-rw-r--r--asm/script_pokemon_util_80F99CC.s978
-rw-r--r--asm/secret_base.s2082
-rw-r--r--asm/shop.s830
-rw-r--r--asm/slot_machine.s338
-rw-r--r--asm/trade.s210
-rw-r--r--asm/trader.s6
-rw-r--r--asm/tv.s8977
-rw-r--r--asm/unknown_task.s645
-rw-r--r--asm/unused_8124F94.s285
-rw-r--r--asm/use_pokeblock.s2113
106 files changed, 134696 insertions, 302737 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.
diff --git a/asm/battle_10.s b/asm/battle_10.s
new file mode 100644
index 000000000..548c77bce
--- /dev/null
+++ b/asm/battle_10.s
@@ -0,0 +1,4675 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start LinkOpponentHandleGetAttributes
+LinkOpponentHandleGetAttributes: @ 803807C
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _080380A8 @ =gBattleBufferA
+ ldr r0, _080380AC @ =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080380B4
+ ldr r0, _080380B0 @ =gBattlePartyID
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl dp01_getattr_by_ch1_for_player_pokemon__
+ adds r6, r0, 0
+ b _080380D6
+ .align 2, 0
+_080380A8: .4byte gBattleBufferA
+_080380AC: .4byte gActiveBank
+_080380B0: .4byte gBattlePartyID
+_080380B4:
+ ldrb r4, [r1]
+ movs r5, 0
+_080380B8:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080380CE
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl dp01_getattr_by_ch1_for_player_pokemon__
+ adds r6, r0
+_080380CE:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080380B8
+_080380D6:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl dp01_tbl4_exec_completed
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end LinkOpponentHandleGetAttributes
+
+ thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__
+dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x90
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r2, _08038124 @ =gBattleBufferA
+ ldr r3, _08038128 @ =gActiveBank
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _0803811A
+ bl _08038886
+_0803811A:
+ lsls r0, 2
+ ldr r1, _0803812C @ =_08038130
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08038124: .4byte gBattleBufferA
+_08038128: .4byte gActiveBank
+_0803812C: .4byte _08038130
+ .align 2, 0
+_08038130:
+ .4byte _08038220
+ .4byte _08038444
+ .4byte _08038454
+ .4byte _08038464
+ .4byte _080384CC
+ .4byte _080384CC
+ .4byte _080384CC
+ .4byte _080384CC
+ .4byte _080384E8
+ .4byte _08038524
+ .4byte _08038524
+ .4byte _08038524
+ .4byte _08038524
+ .4byte _08038886
+ .4byte _08038886
+ .4byte _08038886
+ .4byte _08038886
+ .4byte _08038540
+ .4byte _08038550
+ .4byte _08038580
+ .4byte _08038590
+ .4byte _080385A0
+ .4byte _080385B0
+ .4byte _080385C0
+ .4byte _080385D0
+ .4byte _080385E0
+ .4byte _080385F0
+ .4byte _08038600
+ .4byte _08038610
+ .4byte _08038620
+ .4byte _08038630
+ .4byte _08038640
+ .4byte _08038690
+ .4byte _080386A0
+ .4byte _080386B0
+ .4byte _080386C0
+ .4byte _080386D0
+ .4byte _080386E0
+ .4byte _080386F0
+ .4byte _08038700
+ .4byte _08038710
+ .4byte _08038744
+ .4byte _08038754
+ .4byte _08038764
+ .4byte _08038774
+ .4byte _08038784
+ .4byte _08038794
+ .4byte _080387A4
+ .4byte _080387B4
+ .4byte _080387D4
+ .4byte _080387E4
+ .4byte _080387F4
+ .4byte _08038804
+ .4byte _08038814
+ .4byte _08038824
+ .4byte _08038834
+ .4byte _08038844
+ .4byte _08038854
+ .4byte _08038864
+ .4byte _08038874
+_08038220:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038434 @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2E]
+ movs r6, 0
+ add r0, sp, 0x24
+ mov r9, r0
+ movs r1, 0x3B
+ add r1, sp
+ mov r10, r1
+ mov r2, sp
+ adds r2, 0x2B
+ str r2, [sp, 0x80]
+ mov r0, sp
+ adds r0, 0x2A
+ str r0, [sp, 0x7C]
+ mov r1, sp
+ adds r1, 0x68
+ str r1, [sp, 0x8C]
+ adds r2, 0x5
+ str r2, [sp, 0x84]
+ adds r0, 0x12
+ str r0, [sp, 0x88]
+ mov r8, r4
+ add r4, sp, 0xC
+_0803826C:
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r0, r8
+ bl GetMonData
+ strh r0, [r4]
+ adds r1, r6, 0
+ adds r1, 0x11
+ mov r0, r8
+ bl GetMonData
+ mov r2, r9
+ adds r1, r2, r6
+ strb r0, [r1]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0803826C
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038434 @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r10
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ ldr r2, [sp, 0x80]
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl GetMonData
+ str r0, [sp, 0x44]
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl GetMonData
+ mov r3, sp
+ movs r5, 0x1F
+ ands r0, r5
+ ldrb r2, [r3, 0x14]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl GetMonData
+ mov r3, sp
+ movs r6, 0x1F
+ ands r0, r6
+ lsls r0, 5
+ ldrh r2, [r3, 0x14]
+ ldr r1, _08038438 @ =0xfffffc1f
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ mov r3, sp
+ ands r0, r5
+ lsls r0, 2
+ ldrb r2, [r3, 0x15]
+ movs r1, 0x7D
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x15]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r1, 15
+ ldr r0, [sp, 0x14]
+ ldr r2, _0803843C @ =0xfff07fff
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ mov r3, sp
+ ands r0, r6
+ lsls r0, 4
+ ldrh r2, [r3, 0x16]
+ ldr r1, _08038440 @ =0xfffffe0f
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x16]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ mov r3, sp
+ ands r0, r5
+ lsls r0, 1
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x48]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ str r0, [sp, 0x4C]
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r1, [sp, 0x7C]
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x28]
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2C]
+ adds r0, r4, 0
+ movs r1, 0x3B
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x3F
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0xA]
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ mov r3, sp
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 6
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ mov r3, sp
+ lsls r0, 7
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x7F
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [sp, 0x54]
+ adds r0, r4, 0
+ movs r1, 0x2
+ ldr r2, [sp, 0x8C]
+ bl GetMonData
+ ldr r0, [sp, 0x84]
+ ldr r1, [sp, 0x8C]
+ bl StringCopy10
+ adds r0, r4, 0
+ movs r1, 0x7
+ ldr r2, [sp, 0x88]
+ bl GetMonData
+ mov r2, sp
+ movs r6, 0
+_08038424:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _08038424
+ b _08038886
+ .align 2, 0
+_08038434: .4byte gEnemyParty
+_08038438: .4byte 0xfffffc1f
+_0803843C: .4byte 0xfff07fff
+_08038440: .4byte 0xfffffe0f
+_08038444:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038450 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ b _080387BE
+ .align 2, 0
+_08038450: .4byte gEnemyParty
+_08038454:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038460 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ b _080387BE
+ .align 2, 0
+_08038460: .4byte gEnemyParty
+_08038464:
+ movs r6, 0
+ add r2, sp, 0x58
+ mov r9, r2
+ add r0, sp, 0x60
+ mov r10, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080384C8 @ =gEnemyParty
+ adds r4, r1, r0
+ mov r8, r9
+_0803847A:
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ mov r1, r8
+ strh r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ bl GetMonData
+ mov r2, r10
+ adds r1, r2, r6
+ strb r0, [r1]
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0803847A
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080384C8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_080384B8:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _080384B8
+ b _08038886
+ .align 2, 0
+_080384C8: .4byte gEnemyParty
+_080384CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080384E4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _080387BE
+ .align 2, 0
+_080384E4: .4byte gEnemyParty
+_080384E8:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, _08038520 @ =gEnemyParty
+ mov r8, r2
+_080384F4:
+ adds r1, r6, 0
+ adds r1, 0x11
+ mov r2, r8
+ adds r0, r4, r2
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080384F4
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038520 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _08038886
+ .align 2, 0
+_08038520: .4byte gEnemyParty
+_08038524:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803853C @ =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _0803887E
+ .align 2, 0
+_0803853C: .4byte gEnemyParty
+_08038540:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803854C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1
+ b _0803855A
+ .align 2, 0
+_0803854C: .4byte gEnemyParty
+_08038550:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803857C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x19
+_0803855A:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ movs r6, 0x3
+ b _08038886
+ .align 2, 0
+_0803857C: .4byte gEnemyParty
+_08038580:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803858C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1A
+ b _0803887E
+ .align 2, 0
+_0803858C: .4byte gEnemyParty
+_08038590:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803859C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1B
+ b _0803887E
+ .align 2, 0
+_0803859C: .4byte gEnemyParty
+_080385A0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385AC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1C
+ b _0803887E
+ .align 2, 0
+_080385AC: .4byte gEnemyParty
+_080385B0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385BC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1D
+ b _0803887E
+ .align 2, 0
+_080385BC: .4byte gEnemyParty
+_080385C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385CC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1E
+ b _0803887E
+ .align 2, 0
+_080385CC: .4byte gEnemyParty
+_080385D0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385DC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1F
+ b _0803887E
+ .align 2, 0
+_080385DC: .4byte gEnemyParty
+_080385E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385EC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x20
+ b _0803887E
+ .align 2, 0
+_080385EC: .4byte gEnemyParty
+_080385F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385FC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x22
+ b _0803887E
+ .align 2, 0
+_080385FC: .4byte gEnemyParty
+_08038600:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803860C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x23
+ b _0803887E
+ .align 2, 0
+_0803860C: .4byte gEnemyParty
+_08038610:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803861C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x24
+ b _0803887E
+ .align 2, 0
+_0803861C: .4byte gEnemyParty
+_08038620:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803862C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x25
+ b _0803887E
+ .align 2, 0
+_0803862C: .4byte gEnemyParty
+_08038630:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803863C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x26
+ b _0803887E
+ .align 2, 0
+_0803863C: .4byte gEnemyParty
+_08038640:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0803868C @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl GetMonData
+ strb r0, [r7]
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl GetMonData
+ strb r0, [r7, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ strb r0, [r7, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ strb r0, [r7, 0x3]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ strb r0, [r7, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ strb r0, [r7, 0x5]
+ movs r6, 0x6
+ b _08038886
+ .align 2, 0
+_0803868C: .4byte gEnemyParty
+_08038690:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803869C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x27
+ b _0803887E
+ .align 2, 0
+_0803869C: .4byte gEnemyParty
+_080386A0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386AC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x28
+ b _0803887E
+ .align 2, 0
+_080386AC: .4byte gEnemyParty
+_080386B0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386BC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x29
+ b _0803887E
+ .align 2, 0
+_080386BC: .4byte gEnemyParty
+_080386C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386CC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2A
+ b _0803887E
+ .align 2, 0
+_080386CC: .4byte gEnemyParty
+_080386D0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386DC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2B
+ b _0803887E
+ .align 2, 0
+_080386DC: .4byte gEnemyParty
+_080386E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386EC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ b _0803887E
+ .align 2, 0
+_080386EC: .4byte gEnemyParty
+_080386F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386FC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0
+ b _0803871A
+ .align 2, 0
+_080386FC: .4byte gEnemyParty
+_08038700:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803870C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x9
+ b _080387BE
+ .align 2, 0
+_0803870C: .4byte gEnemyParty
+_08038710:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038740 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x37
+_0803871A:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ lsrs r0, r1, 24
+ strb r0, [r7, 0x3]
+ movs r6, 0x4
+ b _08038886
+ .align 2, 0
+_08038740: .4byte gEnemyParty
+_08038744:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038750 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x38
+ b _0803887E
+ .align 2, 0
+_08038750: .4byte gEnemyParty
+_08038754:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038760 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ b _080387BE
+ .align 2, 0
+_08038760: .4byte gEnemyParty
+_08038764:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038770 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ b _080387BE
+ .align 2, 0
+_08038770: .4byte gEnemyParty
+_08038774:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038780 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3B
+ b _080387BE
+ .align 2, 0
+_08038780: .4byte gEnemyParty
+_08038784:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038790 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3C
+ b _080387BE
+ .align 2, 0
+_08038790: .4byte gEnemyParty
+_08038794:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387A0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3D
+ b _080387BE
+ .align 2, 0
+_080387A0: .4byte gEnemyParty
+_080387A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387B0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3E
+ b _080387BE
+ .align 2, 0
+_080387B0: .4byte gEnemyParty
+_080387B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387D0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3F
+_080387BE:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _08038886
+ .align 2, 0
+_080387D0: .4byte gEnemyParty
+_080387D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387E0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x16
+ b _0803887E
+ .align 2, 0
+_080387E0: .4byte gEnemyParty
+_080387E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387F0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x17
+ b _0803887E
+ .align 2, 0
+_080387F0: .4byte gEnemyParty
+_080387F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038800 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x18
+ b _0803887E
+ .align 2, 0
+_08038800: .4byte gEnemyParty
+_08038804:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038810 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x21
+ b _0803887E
+ .align 2, 0
+_08038810: .4byte gEnemyParty
+_08038814:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038820 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2F
+ b _0803887E
+ .align 2, 0
+_08038820: .4byte gEnemyParty
+_08038824:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038830 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x30
+ b _0803887E
+ .align 2, 0
+_08038830: .4byte gEnemyParty
+_08038834:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038840 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x32
+ b _0803887E
+ .align 2, 0
+_08038840: .4byte gEnemyParty
+_08038844:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038850 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x33
+ b _0803887E
+ .align 2, 0
+_08038850: .4byte gEnemyParty
+_08038854:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038860 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x34
+ b _0803887E
+ .align 2, 0
+_08038860: .4byte gEnemyParty
+_08038864:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038870 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x35
+ b _0803887E
+ .align 2, 0
+_08038870: .4byte gEnemyParty
+_08038874:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038898 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x36
+_0803887E:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_08038886:
+ adds r0, r6, 0
+ add sp, 0x90
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08038898: .4byte gEnemyParty
+ thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__
+
+ thumb_func_start sub_803889C
+sub_803889C: @ 803889C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803889C
+
+ thumb_func_start sub_80388A8
+sub_80388A8: @ 80388A8
+ push {r4,r5,lr}
+ ldr r1, _080388CC @ =gBattleBufferA
+ ldr r0, _080388D0 @ =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080388D8
+ ldr r0, _080388D4 @ =gBattlePartyID
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8038900
+ b _080388F6
+ .align 2, 0
+_080388CC: .4byte gBattleBufferA
+_080388D0: .4byte gActiveBank
+_080388D4: .4byte gBattlePartyID
+_080388D8:
+ ldrb r4, [r1]
+ movs r5, 0
+_080388DC:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080388EA
+ adds r0, r5, 0
+ bl sub_8038900
+_080388EA:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _080388DC
+_080388F6:
+ bl dp01_tbl4_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80388A8
+
+ thumb_func_start sub_8038900
+sub_8038900: @ 8038900
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r3, _08038938 @ =gActiveBank
+ ldrb r0, [r3]
+ lsls r0, 9
+ ldr r2, _0803893C @ =gUnknown_02023A63
+ adds r4, r0, r2
+ adds r7, r4, 0
+ subs r1, r2, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r6, r3, 0
+ adds r3, r2, 0
+ cmp r0, 0x3B
+ bls _0803892E
+ bl _0803920C
+_0803892E:
+ lsls r0, 2
+ ldr r1, _08038940 @ =_08038944
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08038938: .4byte gActiveBank
+_0803893C: .4byte gUnknown_02023A63
+_08038940: .4byte _08038944
+ .align 2, 0
+_08038944:
+ .4byte _08038A34
+ .4byte _08038BCC
+ .4byte _08038BE8
+ .4byte _08038C04
+ .4byte _08038C58
+ .4byte _08038C58
+ .4byte _08038C58
+ .4byte _08038C58
+ .4byte _08038C78
+ .4byte _08038CE0
+ .4byte _08038CE0
+ .4byte _08038CE0
+ .4byte _08038CE0
+ .4byte _0803920C
+ .4byte _0803920C
+ .4byte _0803920C
+ .4byte _0803920C
+ .4byte _08038D08
+ .4byte _08038D24
+ .4byte _08038D40
+ .4byte _08038D5C
+ .4byte _08038D78
+ .4byte _08038D94
+ .4byte _08038DB0
+ .4byte _08038DCC
+ .4byte _08038DE8
+ .4byte _08038E04
+ .4byte _08038E20
+ .4byte _08038E3C
+ .4byte _08038E58
+ .4byte _08038E74
+ .4byte _08038E90
+ .4byte _08038F04
+ .4byte _08038F20
+ .4byte _08038F3C
+ .4byte _08038F58
+ .4byte _08038F74
+ .4byte _08038F90
+ .4byte _08038FAC
+ .4byte _08038FC8
+ .4byte _08038FE4
+ .4byte _08039000
+ .4byte _0803901C
+ .4byte _08039038
+ .4byte _08039054
+ .4byte _08039070
+ .4byte _0803908C
+ .4byte _080390A8
+ .4byte _080390C4
+ .4byte _080390E0
+ .4byte _080390FC
+ .4byte _08039118
+ .4byte _08039134
+ .4byte _08039150
+ .4byte _0803916C
+ .4byte _08039188
+ .4byte _080391A4
+ .4byte _080391C0
+ .4byte _080391DC
+ .4byte _080391F8
+_08038A34:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038BC8 @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ adds r2, r7, 0
+ bl SetMonData
+ adds r2, r7, 0
+ adds r2, 0x2E
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0x3B
+ adds r0, r7
+ mov r10, r0
+ adds r0, r7, 0
+ adds r0, 0x2B
+ str r0, [sp, 0x20]
+ adds r0, 0x19
+ str r0, [sp, 0x28]
+ adds r0, 0x4
+ str r0, [sp, 0x2C]
+ adds r0, 0x4
+ str r0, [sp, 0x30]
+ subs r0, 0x22
+ str r0, [sp, 0x1C]
+ subs r0, 0x2
+ str r0, [sp, 0x18]
+ adds r0, 0x4
+ str r0, [sp, 0x24]
+ adds r0, r7, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r7, 0x4
+ str r0, [sp, 0x8]
+ adds r0, r7, 0x6
+ str r0, [sp, 0xC]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x14]
+ mov r9, r4
+ adds r6, r7, 0
+ adds r6, 0x24
+ adds r4, r7, 0
+ adds r4, 0xC
+_08038A9A:
+ mov r1, r8
+ adds r1, 0xD
+ mov r0, r9
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ mov r0, r9
+ adds r2, r6, 0
+ bl SetMonData
+ adds r6, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _08038A9A
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038BC8 @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ mov r2, r10
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x20
+ ldr r2, [sp, 0x20]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x19
+ ldr r2, [sp, 0x28]
+ bl SetMonData
+ ldrb r0, [r7, 0x14]
+ lsls r0, 27
+ lsrs r0, 27
+ mov r1, sp
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x27
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r7, 0x14]
+ lsls r0, 22
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x28
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r7, 0x15]
+ lsls r0, 25
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldr r0, [r7, 0x14]
+ lsls r0, 12
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r7, 0x16]
+ lsls r0, 23
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r7, 0x17]
+ lsls r0, 26
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0
+ ldr r2, [sp, 0x2C]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x37
+ ldr r2, [sp, 0x30]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x38
+ ldr r2, [sp, 0x1C]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x39
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3A
+ ldr r2, [sp, 0x24]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3B
+ ldr r2, [sp, 0x4]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3C
+ ldr r2, [sp, 0x8]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3D
+ ldr r2, [sp, 0xC]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3E
+ ldr r2, [sp, 0x10]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3F
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038BC8: .4byte gEnemyParty
+_08038BCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038BE4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xB
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038BE4: .4byte gEnemyParty
+_08038BE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038C00 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xC
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038C00: .4byte gEnemyParty
+_08038C04:
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xC
+ adds r0, r4
+ mov r9, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08038C54 @ =gEnemyParty
+ adds r7, r1, r0
+ adds r6, r4, 0
+ adds r6, 0x8
+_08038C1C:
+ mov r1, r8
+ adds r1, 0xD
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ adds r0, r7, 0
+ adds r2, r6, 0
+ bl SetMonData
+ adds r6, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _08038C1C
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038C54 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038C54: .4byte gEnemyParty
+_08038C58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038C70 @ =gEnemyParty
+ adds r0, r1
+ ldr r3, _08038C74 @ =gBattleBufferA
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _08038CF6
+ .align 2, 0
+_08038C70: .4byte gEnemyParty
+_08038C74: .4byte gBattleBufferA
+_08038C78:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038CDC @ =gEnemyParty
+ adds r4, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ adds r0, r4, 0
+ movs r1, 0x11
+ str r3, [sp, 0x34]
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038CDC: .4byte gEnemyParty
+_08038CE0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D00 @ =gEnemyParty
+ adds r0, r1
+ ldr r3, _08038D04 @ =gBattleBufferA
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_08038CF6:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D00: .4byte gEnemyParty
+_08038D04: .4byte gBattleBufferA
+_08038D08:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D20 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D20: .4byte gEnemyParty
+_08038D24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D3C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x19
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D3C: .4byte gEnemyParty
+_08038D40:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D58 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1A
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D58: .4byte gEnemyParty
+_08038D5C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D74 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1B
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D74: .4byte gEnemyParty
+_08038D78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D90 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1C
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D90: .4byte gEnemyParty
+_08038D94:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038DAC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1D
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038DAC: .4byte gEnemyParty
+_08038DB0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038DC8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1E
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038DC8: .4byte gEnemyParty
+_08038DCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038DE4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1F
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038DE4: .4byte gEnemyParty
+_08038DE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E00 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x20
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E00: .4byte gEnemyParty
+_08038E04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E1C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x22
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E1C: .4byte gEnemyParty
+_08038E20:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E38 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x23
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E38: .4byte gEnemyParty
+_08038E3C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E54 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x24
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E54: .4byte gEnemyParty
+_08038E58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E70 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x25
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E70: .4byte gEnemyParty
+_08038E74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E8C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x26
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E8C: .4byte gEnemyParty
+_08038E90:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038F00 @ =gEnemyParty
+ adds r4, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ adds r0, r4, 0
+ movs r1, 0x27
+ str r3, [sp, 0x34]
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x5
+ adds r2, r0
+ adds r0, r4, 0
+ b _08038F9E
+ .align 2, 0
+_08038F00: .4byte gEnemyParty
+_08038F04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F1C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x27
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F1C: .4byte gEnemyParty
+_08038F20:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F38 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x28
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F38: .4byte gEnemyParty
+_08038F3C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F54 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x29
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F54: .4byte gEnemyParty
+_08038F58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F70 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2A
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F70: .4byte gEnemyParty
+_08038F74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F8C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2B
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F8C: .4byte gEnemyParty
+_08038F90:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038FA8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+_08038F9E:
+ movs r1, 0x2C
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038FA8: .4byte gEnemyParty
+_08038FAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038FC4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038FC4: .4byte gEnemyParty
+_08038FC8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038FE0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x9
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038FE0: .4byte gEnemyParty
+_08038FE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038FFC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x37
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038FFC: .4byte gEnemyParty
+_08039000:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039018 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x38
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039018: .4byte gEnemyParty
+_0803901C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039034 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x39
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039034: .4byte gEnemyParty
+_08039038:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039050 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3A
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039050: .4byte gEnemyParty
+_08039054:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803906C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3B
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_0803906C: .4byte gEnemyParty
+_08039070:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039088 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3C
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039088: .4byte gEnemyParty
+_0803908C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080390A4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3D
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080390A4: .4byte gEnemyParty
+_080390A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080390C0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3E
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080390C0: .4byte gEnemyParty
+_080390C4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080390DC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3F
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080390DC: .4byte gEnemyParty
+_080390E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080390F8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x16
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080390F8: .4byte gEnemyParty
+_080390FC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039114 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x17
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039114: .4byte gEnemyParty
+_08039118:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039130 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x18
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039130: .4byte gEnemyParty
+_08039134:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803914C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x21
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_0803914C: .4byte gEnemyParty
+_08039150:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039168 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2F
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039168: .4byte gEnemyParty
+_0803916C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039184 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x30
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039184: .4byte gEnemyParty
+_08039188:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080391A0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x32
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080391A0: .4byte gEnemyParty
+_080391A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080391BC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x33
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080391BC: .4byte gEnemyParty
+_080391C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080391D8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x34
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080391D8: .4byte gEnemyParty
+_080391DC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080391F4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x35
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080391F4: .4byte gEnemyParty
+_080391F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803921C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x36
+ bl SetMonData
+_0803920C:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803921C: .4byte gEnemyParty
+ thumb_func_end sub_8038900
+
+ thumb_func_start sub_8039220
+sub_8039220: @ 8039220
+ push {r4-r7,lr}
+ ldr r1, _08039284 @ =gBattlePartyID
+ ldr r7, _08039288 @ =gActiveBank
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r3, r1, 0
+ muls r3, r0
+ ldr r4, _0803928C @ =gBattleBufferA
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, _08039290 @ =gEnemyParty
+ adds r0, r1
+ adds r5, r3, r0
+ movs r3, 0
+ adds r0, r4, 0x2
+ adds r2, r0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _08039278
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_08039256:
+ adds r1, r5, r3
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, 0x3
+ adds r0, r3, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _08039256
+_08039278:
+ bl dp01_tbl4_exec_completed
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039284: .4byte gBattlePartyID
+_08039288: .4byte gActiveBank
+_0803928C: .4byte gBattleBufferA
+_08039290: .4byte gEnemyParty
+ thumb_func_end sub_8039220
+
+ thumb_func_start sub_8039294
+sub_8039294: @ 8039294
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r7, _080393BC @ =gBattlePartyID
+ ldr r6, _080393C0 @ =gActiveBank
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r1, 0x64
+ mov r10, r1
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r1, _080393C4 @ =gEnemyParty
+ mov r9, r1
+ add r0, r9
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ bl sub_8031794
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080393C8 @ =gUnknown_02024E8C
+ mov r8, r0
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r6]
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _080393CC @ =gObjectBankIDs
+ ldrb r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r5, _080393D0 @ =gSprites
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _080393D4 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r2, [r6]
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x2E]
+ ldrb r3, [r6]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r2, [r6]
+ adds r4, r2, r4
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _080393D8 @ =gBattleMonForms
+ adds r2, r1
+ ldrb r1, [r2]
+ bl StartSpriteAnim
+ ldrb r4, [r6]
+ lsls r0, r4, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+ ldr r1, _080393DC @ =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080393E0 @ =sub_8037A74
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080393BC: .4byte gBattlePartyID
+_080393C0: .4byte gActiveBank
+_080393C4: .4byte gEnemyParty
+_080393C8: .4byte gUnknown_02024E8C
+_080393CC: .4byte gObjectBankIDs
+_080393D0: .4byte gSprites
+_080393D4: .4byte 0x0000ff10
+_080393D8: .4byte gBattleMonForms
+_080393DC: .4byte gBattleBankFunc
+_080393E0: .4byte sub_8037A74
+ thumb_func_end sub_8039294
+
+ thumb_func_start sub_80393E4
+sub_80393E4: @ 80393E4
+ push {r4,lr}
+ ldr r1, _0803941C @ =gBattlePartyID
+ ldr r4, _08039420 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r1
+ ldr r3, _08039424 @ =gBattleBufferA
+ lsls r0, 9
+ adds r1, r3, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2]
+ ldrb r0, [r4]
+ lsls r1, r0, 9
+ adds r3, 0x2
+ adds r1, r3
+ ldrb r1, [r1]
+ bl sub_8039430
+ ldr r1, _08039428 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803942C @ =sub_8037E30
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803941C: .4byte gBattlePartyID
+_08039420: .4byte gActiveBank
+_08039424: .4byte gBattleBufferA
+_08039428: .4byte gBattleBankFunc
+_0803942C: .4byte sub_8037E30
+ thumb_func_end sub_80393E4
+
+ thumb_func_start sub_8039430
+sub_8039430: @ 8039430
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8032AA8
+ ldr r0, _0803958C @ =gBattlePartyID
+ lsls r4, r6, 1
+ adds r4, r0
+ ldr r0, _08039590 @ =gBattleBufferA
+ lsls r1, r6, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0x64
+ mov r9, r1
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r5, _08039594 @ =gEnemyParty
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _08039598 @ =sub_80312F0
+ bl CreateInvisibleSpriteWithCallback
+ ldr r1, _0803959C @ =gUnknown_0300434C
+ mov r10, r1
+ add r10, r6
+ mov r1, r10
+ strb r0, [r1]
+ ldrh r0, [r4]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r5
+ adds r1, r6, 0
+ bl sub_8031794
+ adds r0, r6, 0
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080395A0 @ =gUnknown_02024E8C
+ mov r9, r0
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r9
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _080395A4 @ =gObjectBankIDs
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, _080395A8 @ =gSprites
+ mov r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, r6, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _080395AC @ =gBattleMonForms
+ adds r6, r1
+ ldrb r1, [r6]
+ bl StartSpriteAnim
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ 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 r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080395B0 @ =SpriteCallbackDummy
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFE
+ bl sub_8046400
+ mov r1, r10
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x2E]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803958C: .4byte gBattlePartyID
+_08039590: .4byte gBattleBufferA
+_08039594: .4byte gEnemyParty
+_08039598: .4byte sub_80312F0
+_0803959C: .4byte gUnknown_0300434C
+_080395A0: .4byte gUnknown_02024E8C
+_080395A4: .4byte gObjectBankIDs
+_080395A8: .4byte gSprites
+_080395AC: .4byte gBattleMonForms
+_080395B0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8039430
+
+ thumb_func_start sub_80395B4
+sub_80395B4: @ 80395B4
+ push {r4-r6,lr}
+ ldr r1, _080395E4 @ =gBattleBufferA
+ ldr r6, _080395E8 @ =gActiveBank
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _080395F8
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _080395EC @ =0x02017810
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, _080395F0 @ =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080395F4 @ =sub_8039648
+ str r1, [r0]
+ b _08039634
+ .align 2, 0
+_080395E4: .4byte gBattleBufferA
+_080395E8: .4byte gActiveBank
+_080395EC: .4byte 0x02017810
+_080395F0: .4byte gBattleBankFunc
+_080395F4: .4byte sub_8039648
+_080395F8:
+ ldr r5, _0803963C @ =gObjectBankIDs
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08039640 @ =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldrb r0, [r6]
+ bl sub_8032A08
+ ldr r1, _08039644 @ =gHealthboxIDs
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl4_exec_completed
+_08039634:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803963C: .4byte gObjectBankIDs
+_08039640: .4byte gSprites
+_08039644: .4byte gHealthboxIDs
+ thumb_func_end sub_80395B4
+
+ thumb_func_start sub_8039648
+sub_8039648: @ 8039648
+ push {r4,r5,lr}
+ ldr r5, _08039664 @ =gActiveBank
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _08039668 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _0803966C
+ cmp r0, 0x1
+ beq _08039698
+ b _080396C0
+ .align 2, 0
+_08039664: .4byte gActiveBank
+_08039668: .4byte 0x02017810
+_0803966C:
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08039688
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08039688:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _080396C0
+_08039698:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080396C0
+ strb r0, [r3, 0x4]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x2
+ bl move_anim_start_t4
+ ldr r1, _080396C8 @ =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080396CC @ =sub_8037BBC
+ str r1, [r0]
+_080396C0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080396C8: .4byte gBattleBankFunc
+_080396CC: .4byte sub_8037BBC
+ thumb_func_end sub_8039648
+
+ thumb_func_start sub_80396D0
+sub_80396D0: @ 80396D0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r0, _08039704 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08039714
+ ldr r6, _08039708 @ =gActiveBank
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ movs r1, 0x2
+ ands r1, r0
+ movs r5, 0x10
+ cmp r1, 0
+ beq _080396F8
+ ldr r5, _0803970C @ =0x0000fff0
+_080396F8:
+ ldr r4, _08039710 @ =gLinkPlayers
+ ldrb r0, [r6]
+ bl sub_803FC34
+ b _08039724
+ .align 2, 0
+_08039704: .4byte gBattleTypeFlags
+_08039708: .4byte gActiveBank
+_0803970C: .4byte 0x0000fff0
+_08039710: .4byte gLinkPlayers
+_08039714:
+ movs r5, 0
+ ldr r4, _0803986C @ =gLinkPlayers
+ bl GetMultiplayerId
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+_08039724:
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x13]
+ mov r9, r0
+ ldr r0, _08039870 @ =gActiveBank
+ mov r8, r0
+ ldrb r1, [r0]
+ mov r0, r9
+ bl sub_8031A6C
+ mov r1, r8
+ ldrb r0, [r1]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r6, _08039874 @ =gUnknown_02024E8C
+ lsls r5, 16
+ movs r2, 0xB0
+ lsls r2, 16
+ adds r5, r2
+ asrs r5, 16
+ ldr r1, _08039878 @ =gTrainerFrontPicCoords
+ mov r2, r9
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0x8
+ subs r4, r0
+ lsls r4, 18
+ movs r0, 0xA0
+ lsls r0, 14
+ adds r4, r0
+ asrs r4, 16
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r5, _0803987C @ =gObjectBankIDs
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _08039880 @ =gSprites
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08039884 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldr r0, _08039888 @ =gTrainerFrontPicPaletteTable
+ mov r1, r9
+ lsls r6, r1, 3
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r4
+ lsls r0, 4
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1, 0x38]
+ ldr r0, _0803988C @ =gTrainerFrontPicTable
+ adds r6, r0
+ ldrh r0, [r6, 0x6]
+ bl GetSpriteTileStartByTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _08039890 @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08039894 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r2, r9
+ strh r2, [r0, 0x6]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _08039898 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _0803989C @ =gBattleBankFunc
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080398A0 @ =sub_803757C
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803986C: .4byte gLinkPlayers
+_08039870: .4byte gActiveBank
+_08039874: .4byte gUnknown_02024E8C
+_08039878: .4byte gTrainerFrontPicCoords
+_0803987C: .4byte gObjectBankIDs
+_08039880: .4byte gSprites
+_08039884: .4byte 0x0000ff10
+_08039888: .4byte gTrainerFrontPicPaletteTable
+_0803988C: .4byte gTrainerFrontPicTable
+_08039890: .4byte 0x000003ff
+_08039894: .4byte 0xfffffc00
+_08039898: .4byte sub_80313A0
+_0803989C: .4byte gBattleBankFunc
+_080398A0: .4byte sub_803757C
+ thumb_func_end sub_80396D0
+
+ thumb_func_start sub_80398A4
+sub_80398A4: @ 80398A4
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80398A4
+
+ thumb_func_start sub_80398B0
+sub_80398B0: @ 80398B0
+ push {r4-r6,lr}
+ ldr r6, _08039940 @ =gObjectBankIDs
+ ldr r4, _08039944 @ =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _08039948 @ =gSprites
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x8C
+ lsls r1, 1
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0803994C @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08039950 @ =SpriteCallbackDummy
+ bl oamt_set_x3A_32
+ ldr r1, _08039954 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039958 @ =sub_80375B4
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039940: .4byte gObjectBankIDs
+_08039944: .4byte gActiveBank
+_08039948: .4byte gSprites
+_0803994C: .4byte sub_8078B34
+_08039950: .4byte SpriteCallbackDummy
+_08039954: .4byte gBattleBankFunc
+_08039958: .4byte sub_80375B4
+ thumb_func_end sub_80398B0
+
+ thumb_func_start sub_803995C
+sub_803995C: @ 803995C
+ push {r4,r5,lr}
+ ldr r5, _080399A0 @ =gActiveBank
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _080399A4 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _080399A8
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0803998E
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0803998E:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _080399E4
+ .align 2, 0
+_080399A0: .4byte gActiveBank
+_080399A4: .4byte 0x02017810
+_080399A8:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080399E4
+ strb r0, [r3, 0x4]
+ movs r0, 0x10
+ movs r1, 0x3F
+ bl PlaySE12WithPanning
+ ldr r2, _080399EC @ =gSprites
+ ldr r1, _080399F0 @ =gObjectBankIDs
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080399F4 @ =sub_8010384
+ str r1, [r0]
+ ldr r1, _080399F8 @ =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080399FC @ =sub_8037B78
+ str r1, [r0]
+_080399E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080399EC: .4byte gSprites
+_080399F0: .4byte gObjectBankIDs
+_080399F4: .4byte sub_8010384
+_080399F8: .4byte gBattleBankFunc
+_080399FC: .4byte sub_8037B78
+ thumb_func_end sub_803995C
+
+ thumb_func_start sub_8039A00
+sub_8039A00: @ 8039A00
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A00
+
+ thumb_func_start sub_8039A0C
+sub_8039A0C: @ 8039A0C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A0C
+
+ thumb_func_start sub_8039A18
+sub_8039A18: @ 8039A18
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A18
+
+ thumb_func_start sub_8039A24
+sub_8039A24: @ 8039A24
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A24
+
+ thumb_func_start sub_8039A30
+sub_8039A30: @ 8039A30
+ push {r4-r6,lr}
+ ldr r6, _08039B14 @ =gActiveBank
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08039A42
+ b _08039B52
+_08039A42:
+ ldr r0, _08039B18 @ =gBattleBufferA
+ mov r12, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r12
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r5, _08039B1C @ =gUnknown_0202F7C4
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _08039B20 @ =gMovePowerMoveAnim
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x4
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x5
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r4, _08039B24 @ =gMoveDmgMoveAnim
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x6
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x7
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x8
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 16
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x9
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 24
+ orrs r3, r1
+ str r3, [r4]
+ ldr r3, _08039B28 @ =gHappinessMoveAnim
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _08039B2C @ =gWeatherMoveAnim
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0xC
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0xD
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r3, _08039B30 @ =gDisableStructMoveAnim
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _08039B34 @ =gPID_perBank
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, [r2]
+ str r2, [r1]
+ ldrb r1, [r5]
+ bl sub_8031720
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08039B38
+ bl dp01_tbl4_exec_completed
+ b _08039B52
+ .align 2, 0
+_08039B14: .4byte gActiveBank
+_08039B18: .4byte gBattleBufferA
+_08039B1C: .4byte gUnknown_0202F7C4
+_08039B20: .4byte gMovePowerMoveAnim
+_08039B24: .4byte gMoveDmgMoveAnim
+_08039B28: .4byte gHappinessMoveAnim
+_08039B2C: .4byte gWeatherMoveAnim
+_08039B30: .4byte gDisableStructMoveAnim
+_08039B34: .4byte gPID_perBank
+_08039B38:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08039B58 @ =0x02017810
+ adds r0, r1
+ strb r2, [r0, 0x4]
+ ldr r1, _08039B5C @ =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039B60 @ =sub_8039B64
+ str r1, [r0]
+_08039B52:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039B58: .4byte 0x02017810
+_08039B5C: .4byte gBattleBankFunc
+_08039B60: .4byte sub_8039B64
+ thumb_func_end sub_8039A30
+
+ thumb_func_start sub_8039B64
+sub_8039B64: @ 8039B64
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _08039BA8 @ =gBattleBufferA
+ ldr r5, _08039BAC @ =gActiveBank
+ ldrb r3, [r5]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r9, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r6, r2, 0x2
+ mov r8, r6
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r7, [r1]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r6, _08039BB0 @ =0x02017810
+ adds r0, r6
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _08039BF2
+ cmp r2, 0x1
+ bgt _08039BB4
+ cmp r2, 0
+ beq _08039BBE
+ b _08039CBC
+ .align 2, 0
+_08039BA8: .4byte gBattleBufferA
+_08039BAC: .4byte gActiveBank
+_08039BB0: .4byte 0x02017810
+_08039BB4:
+ cmp r2, 0x2
+ beq _08039C18
+ cmp r2, 0x3
+ beq _08039C84
+ b _08039CBC
+_08039BBE:
+ lsls r1, r3, 2
+ adds r0, r6, 0
+ subs r0, 0x10
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _08039BE2
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08039BE2:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08039CBC
+_08039BF2:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08039CBC
+ movs r0, 0
+ bl sub_80326EC
+ adds r0, r4, 0
+ bl ExecuteMoveAnim
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08039CBC
+_08039C18:
+ ldr r0, _08039C74 @ =gAnimScriptCallback
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _08039C78 @ =gAnimScriptActive
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08039CBC
+ movs r0, 0x1
+ bl sub_80326EC
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r4, r6, 0
+ subs r4, 0x10
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08039C60
+ cmp r7, 0x1
+ bhi _08039C60
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r1, 0x9
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_08039C60:
+ ldr r0, _08039C7C @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08039C80 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _08039CBC
+ .align 2, 0
+_08039C74: .4byte gAnimScriptCallback
+_08039C78: .4byte gAnimScriptActive
+_08039C7C: .4byte gActiveBank
+_08039C80: .4byte 0x02017810
+_08039C84:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08039CBC
+ bl sub_8031F24
+ ldrb r0, [r5]
+ lsls r2, r0, 9
+ mov r3, r9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r8
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_80324BC
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r4, [r0, 0x4]
+ bl dp01_tbl4_exec_completed
+_08039CBC:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039B64
+
+ thumb_func_start sub_8039CC8
+sub_8039CC8: @ 8039CC8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08039D0C @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08039D10 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r4, _08039D14 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _08039D18 @ =gUnknown_02023A62
+ adds r0, r1
+ ldrh r0, [r0]
+ bl BufferStringBattle
+ ldr r0, _08039D1C @ =gUnknown_03004210
+ ldr r1, _08039D20 @ =gDisplayedStringBattle
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08039D24 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039D28 @ =sub_8037C2C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039D0C: .4byte gUnknown_030042A4
+_08039D10: .4byte gUnknown_030042A0
+_08039D14: .4byte gActiveBank
+_08039D18: .4byte gUnknown_02023A62
+_08039D1C: .4byte gUnknown_03004210
+_08039D20: .4byte gDisplayedStringBattle
+_08039D24: .4byte gBattleBankFunc
+_08039D28: .4byte sub_8037C2C
+ thumb_func_end sub_8039CC8
+
+ thumb_func_start sub_8039D2C
+sub_8039D2C: @ 8039D2C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D2C
+
+ thumb_func_start sub_8039D38
+sub_8039D38: @ 8039D38
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D38
+
+ thumb_func_start sub_8039D44
+sub_8039D44: @ 8039D44
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D44
+
+ thumb_func_start sub_8039D50
+sub_8039D50: @ 8039D50
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D50
+
+ thumb_func_start sub_8039D5C
+sub_8039D5C: @ 8039D5C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D5C
+
+ thumb_func_start sub_8039D68
+sub_8039D68: @ 8039D68
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D68
+
+ thumb_func_start sub_8039D74
+sub_8039D74: @ 8039D74
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D74
+
+ thumb_func_start sub_8039D80
+sub_8039D80: @ 8039D80
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r0, 0
+ bl load_gfxc_health_bar
+ ldr r3, _08039DF8 @ =gBattleBufferA
+ ldr r0, _08039DFC @ =gActiveBank
+ mov r9, r0
+ ldrb r4, [r0]
+ lsls r2, r4, 9
+ adds r0, r3, 0x2
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ adds r3, 0x3
+ adds r2, r3
+ ldrb r0, [r2]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ asrs r7, r1, 16
+ ldr r0, _08039E00 @ =0x00007fff
+ cmp r7, r0
+ beq _08039E10
+ ldr r6, _08039E04 @ =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _08039E08 @ =gEnemyParty
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ mov r8, r0
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ adds r3, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _08039E0C @ =gHealthboxIDs
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _08039E3A
+ .align 2, 0
+_08039DF8: .4byte gBattleBufferA
+_08039DFC: .4byte gActiveBank
+_08039E00: .4byte 0x00007fff
+_08039E04: .4byte gBattlePartyID
+_08039E08: .4byte gEnemyParty
+_08039E0C: .4byte gHealthboxIDs
+_08039E10:
+ ldr r1, _08039E58 @ =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08039E5C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _08039E60 @ =gHealthboxIDs
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+_08039E3A:
+ ldr r1, _08039E64 @ =gBattleBankFunc
+ ldr r0, _08039E68 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039E6C @ =sub_8037B24
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039E58: .4byte gBattlePartyID
+_08039E5C: .4byte gEnemyParty
+_08039E60: .4byte gHealthboxIDs
+_08039E64: .4byte gBattleBankFunc
+_08039E68: .4byte gActiveBank
+_08039E6C: .4byte sub_8037B24
+ thumb_func_end sub_8039D80
+
+ thumb_func_start sub_8039E70
+sub_8039E70: @ 8039E70
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039E70
+
+ thumb_func_start sub_8039E7C
+sub_8039E7C: @ 8039E7C
+ push {r4,lr}
+ ldr r4, _08039ED4 @ =gActiveBank
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039ECC
+ ldr r0, _08039ED8 @ =gHealthboxIDs
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08039EDC @ =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08039EE0 @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0x9
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08039EE4 @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, _08039EE8 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039EEC @ =sub_8037FAC
+ str r1, [r0]
+_08039ECC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039ED4: .4byte gActiveBank
+_08039ED8: .4byte gHealthboxIDs
+_08039EDC: .4byte gBattlePartyID
+_08039EE0: .4byte gEnemyParty
+_08039EE4: .4byte 0x02017810
+_08039EE8: .4byte gBattleBankFunc
+_08039EEC: .4byte sub_8037FAC
+ thumb_func_end sub_8039E7C
+
+ thumb_func_start sub_8039EF0
+sub_8039EF0: @ 8039EF0
+ push {r4,r5,lr}
+ ldr r5, _08039F48 @ =gActiveBank
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039F40
+ ldr r4, _08039F4C @ =gBattleBufferA
+ ldrb r3, [r5]
+ lsls r3, 9
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ adds r2, r4, 0x4
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 16
+ orrs r1, r2
+ adds r4, 0x5
+ adds r3, r4
+ ldrb r2, [r3]
+ lsls r2, 24
+ orrs r1, r2
+ bl move_anim_start_t2_for_situation
+ ldr r1, _08039F50 @ =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039F54 @ =sub_8037FAC
+ str r1, [r0]
+_08039F40:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039F48: .4byte gActiveBank
+_08039F4C: .4byte gBattleBufferA
+_08039F50: .4byte gBattleBankFunc
+_08039F54: .4byte sub_8037FAC
+ thumb_func_end sub_8039EF0
+
+ thumb_func_start sub_8039F58
+sub_8039F58: @ 8039F58
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F58
+
+ thumb_func_start sub_8039F64
+sub_8039F64: @ 8039F64
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F64
+
+ thumb_func_start sub_8039F70
+sub_8039F70: @ 8039F70
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F70
+
+ thumb_func_start sub_8039F7C
+sub_8039F7C: @ 8039F7C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F7C
+
+ thumb_func_start sub_8039F88
+sub_8039F88: @ 8039F88
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F88
+
+ thumb_func_start sub_8039F94
+sub_8039F94: @ 8039F94
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F94
+
+ thumb_func_start sub_8039FA0
+sub_8039FA0: @ 8039FA0
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039FA0
+
+ thumb_func_start sub_8039FAC
+sub_8039FAC: @ 8039FAC
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039FAC
+
+ thumb_func_start sub_8039FB8
+sub_8039FB8: @ 8039FB8
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039FB8
+
+ thumb_func_start sub_8039FC4
+sub_8039FC4: @ 8039FC4
+ push {lr}
+ ldr r2, _08039FDC @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039FDC: .4byte gUnknown_020238C8
+ thumb_func_end sub_8039FC4
+
+ thumb_func_start sub_8039FE0
+sub_8039FE0: @ 8039FE0
+ push {lr}
+ ldr r3, _0803A00C @ =gUnknown_020238C8
+ ldr r1, _0803A010 @ =gBattleBufferA
+ ldr r0, _0803A014 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x7F
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A00C: .4byte gUnknown_020238C8
+_0803A010: .4byte gBattleBufferA
+_0803A014: .4byte gActiveBank
+ thumb_func_end sub_8039FE0
+
+ thumb_func_start sub_803A018
+sub_803A018: @ 803A018
+ push {lr}
+ ldr r2, _0803A02C @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A02C: .4byte gUnknown_020238C8
+ thumb_func_end sub_803A018
+
+ thumb_func_start sub_803A030
+sub_803A030: @ 803A030
+ push {lr}
+ ldr r3, _0803A054 @ =gUnknown_020238C8
+ ldr r1, [r3]
+ lsls r1, 24
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ lsls r1, 7
+ ldrb r2, [r3]
+ movs r0, 0x7F
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A054: .4byte gUnknown_020238C8
+ thumb_func_end sub_803A030
+
+ thumb_func_start dp01t_29_4_blink
+dp01t_29_4_blink: @ 803A058
+ push {r4,lr}
+ ldr r3, _0803A080 @ =gSprites
+ ldr r2, _0803A084 @ =gObjectBankIDs
+ ldr r4, _0803A088 @ =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _0803A08C
+ bl dp01_tbl4_exec_completed
+ b _0803A0B6
+ .align 2, 0
+_0803A080: .4byte gSprites
+_0803A084: .4byte gObjectBankIDs
+_0803A088: .4byte gActiveBank
+_0803A08C:
+ ldr r1, _0803A0BC @ =gDoingBattleAnim
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r4]
+ bl sub_8047858
+ ldr r1, _0803A0C0 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803A0C4 @ =dp01t_0F_4_move_anim
+ str r1, [r0]
+_0803A0B6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A0BC: .4byte gDoingBattleAnim
+_0803A0C0: .4byte gBattleBankFunc
+_0803A0C4: .4byte dp01t_0F_4_move_anim
+ thumb_func_end dp01t_29_4_blink
+
+ thumb_func_start sub_803A0C8
+sub_803A0C8: @ 803A0C8
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A0C8
+
+ thumb_func_start sub_803A0D4
+sub_803A0D4: @ 803A0D4
+ push {r4,lr}
+ ldr r4, _0803A110 @ =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _0803A0E8
+ movs r3, 0xC0
+_0803A0E8:
+ ldr r2, _0803A114 @ =gBattleBufferA
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ lsls r1, r3, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ bl dp01_tbl4_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A110: .4byte gActiveBank
+_0803A114: .4byte gBattleBufferA
+ thumb_func_end sub_803A0D4
+
+ thumb_func_start sub_803A118
+sub_803A118: @ 803A118
+ push {lr}
+ ldr r2, _0803A140 @ =gBattleBufferA
+ ldr r0, _0803A144 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A140: .4byte gBattleBufferA
+_0803A144: .4byte gActiveBank
+ thumb_func_end sub_803A118
+
+ thumb_func_start sub_803A148
+sub_803A148: @ 803A148
+ push {lr}
+ ldr r1, _0803A178 @ =gBattlePartyID
+ ldr r0, _0803A17C @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0803A180 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ movs r2, 0x5
+ bl PlayCry3
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A178: .4byte gBattlePartyID
+_0803A17C: .4byte gActiveBank
+_0803A180: .4byte gEnemyParty
+ thumb_func_end sub_803A148
+
+ thumb_func_start dp01t_2E_4_battle_intro
+dp01t_2E_4_battle_intro: @ 803A184
+ push {lr}
+ ldr r1, _0803A1AC @ =gBattleBufferA
+ ldr r0, _0803A1B0 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _0803A1B4 @ =gUnknown_02024DE8
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A1AC: .4byte gBattleBufferA
+_0803A1B0: .4byte gActiveBank
+_0803A1B4: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_4_battle_intro
+
+ thumb_func_start sub_803A1B8
+sub_803A1B8: @ 803A1B8
+ push {r4-r6,lr}
+ ldr r5, _0803A294 @ =gObjectBankIDs
+ ldr r6, _0803A298 @ =gActiveBank
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0803A29C @ =gSprites
+ adds r0, r4
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x8C
+ lsls r1, 1
+ strh r1, [r0, 0x32]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0803A2A0 @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0803A2A4 @ =sub_803A3A8
+ bl oamt_set_x3A_32
+ ldr r0, _0803A2A8 @ =sub_803A2C4
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0803A2AC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r6]
+ strh r0, [r1, 0x8]
+ ldrb r3, [r6]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r2, _0803A2B0 @ =0x02017810
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0803A276
+ ldr r0, _0803A2B4 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, _0803A2B8 @ =sub_8044CA0
+ str r1, [r0]
+_0803A276:
+ adds r2, 0x30
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _0803A2BC @ =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803A2C0 @ =nullsub_47
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A294: .4byte gObjectBankIDs
+_0803A298: .4byte gActiveBank
+_0803A29C: .4byte gSprites
+_0803A2A0: .4byte sub_8078B34
+_0803A2A4: .4byte sub_803A3A8
+_0803A2A8: .4byte sub_803A2C4
+_0803A2AC: .4byte gTasks
+_0803A2B0: .4byte 0x02017810
+_0803A2B4: .4byte gUnknown_02024E68
+_0803A2B8: .4byte sub_8044CA0
+_0803A2BC: .4byte gBattleBankFunc
+_0803A2C0: .4byte nullsub_47
+ thumb_func_end sub_803A1B8
+
+ thumb_func_start sub_803A2C4
+sub_803A2C4: @ 803A2C4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r7, _0803A31C @ =gActiveBank
+ ldrb r0, [r7]
+ mov r9, r0
+ ldr r1, _0803A320 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ strb r0, [r7]
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803A2FE
+ ldr r0, _0803A324 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803A330
+_0803A2FE:
+ ldr r0, _0803A328 @ =gBattleBufferA
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _0803A32C @ =gBattlePartyID
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8039430
+ b _0803A370
+ .align 2, 0
+_0803A31C: .4byte gActiveBank
+_0803A320: .4byte gTasks
+_0803A324: .4byte gBattleTypeFlags
+_0803A328: .4byte gBattleBufferA
+_0803A32C: .4byte gBattlePartyID
+_0803A330:
+ ldr r4, _0803A394 @ =gBattleBufferA
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r6, _0803A398 @ =gBattlePartyID
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8039430
+ ldrb r0, [r7]
+ movs r5, 0x2
+ eors r0, r5
+ strb r0, [r7]
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r1, r4
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8039430
+ ldrb r0, [r7]
+ eors r0, r5
+ strb r0, [r7]
+_0803A370:
+ ldr r1, _0803A39C @ =gBattleBankFunc
+ ldr r2, _0803A3A0 @ =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803A3A4 @ =sub_8037840
+ str r1, [r0]
+ mov r0, r9
+ strb r0, [r2]
+ mov r0, r8
+ bl DestroyTask
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A394: .4byte gBattleBufferA
+_0803A398: .4byte gBattlePartyID
+_0803A39C: .4byte gBattleBankFunc
+_0803A3A0: .4byte gActiveBank
+_0803A3A4: .4byte sub_8037840
+ thumb_func_end sub_803A2C4
+
+ thumb_func_start sub_803A3A8
+sub_803A3A8: @ 803A3A8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x6]
+ bl sub_8031B74
+ ldrh r0, [r4, 0x38]
+ ldr r1, _0803A3D4 @ =0x000003ff
+ ands r1, r0
+ ldrh r2, [r4, 0x4]
+ ldr r0, _0803A3D8 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A3D4: .4byte 0x000003ff
+_0803A3D8: .4byte 0xfffffc00
+ thumb_func_end sub_803A3A8
+
+ thumb_func_start sub_803A3DC
+sub_803A3DC: @ 803A3DC
+ push {r4-r6,lr}
+ ldr r1, _0803A404 @ =gBattleBufferA
+ ldr r0, _0803A408 @ =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0803A40C
+ adds r0, r2, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803A40C
+ bl dp01_tbl4_exec_completed
+ b _0803A4C6
+ .align 2, 0
+_0803A404: .4byte gBattleBufferA
+_0803A408: .4byte gActiveBank
+_0803A40C:
+ ldr r3, _0803A45C @ =gActiveBank
+ ldrb r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0803A460 @ =0x02017810
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _0803A464 @ =gBattleBufferA
+ ldrb r2, [r3]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r6, r3, 0
+ cmp r0, 0
+ beq _0803A470
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r4
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 26
+ lsrs r0, r1, 27
+ cmp r0, 0x1
+ bhi _0803A468
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ b _0803A4C6
+ .align 2, 0
+_0803A45C: .4byte gActiveBank
+_0803A460: .4byte 0x02017810
+_0803A464: .4byte gBattleBufferA
+_0803A468:
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+_0803A470:
+ adds r5, r6, 0
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, _0803A4CC @ =gUnknown_02023A64
+ adds r1, r3, r4
+ subs r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ subs r4, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ bl sub_8044804
+ ldr r2, _0803A4D0 @ =gUnknown_02024E68
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _0803A4D4 @ =0x02017810
+ adds r0, r3
+ strb r2, [r0, 0x5]
+ ldrb r1, [r5]
+ lsls r0, r1, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0803A4BA
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_0803A4BA:
+ ldr r0, _0803A4D8 @ =gBattleBankFunc
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0803A4DC @ =sub_803A4E0
+ str r0, [r1]
+_0803A4C6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A4CC: .4byte gUnknown_02023A64
+_0803A4D0: .4byte gUnknown_02024E68
+_0803A4D4: .4byte 0x02017810
+_0803A4D8: .4byte gBattleBankFunc
+_0803A4DC: .4byte sub_803A4E0
+ thumb_func_end sub_803A3DC
+
+ thumb_func_start sub_803A4E0
+sub_803A4E0: @ 803A4E0
+ push {r4,lr}
+ ldr r4, _0803A518 @ =gActiveBank
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _0803A51C @ =0x02017810
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _0803A510
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl dp01_tbl4_exec_completed
+_0803A510:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A518: .4byte gActiveBank
+_0803A51C: .4byte 0x02017810
+ thumb_func_end sub_803A4E0
+
+ thumb_func_start sub_803A520
+sub_803A520: @ 803A520
+ push {lr}
+ ldr r0, _0803A558 @ =gActiveBank
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _0803A55C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0803A54E
+ ldr r2, _0803A560 @ =gTasks
+ ldr r0, _0803A564 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _0803A568 @ =sub_8044CA0
+ str r1, [r0]
+_0803A54E:
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A558: .4byte gActiveBank
+_0803A55C: .4byte 0x02017810
+_0803A560: .4byte gTasks
+_0803A564: .4byte gUnknown_02024E68
+_0803A568: .4byte sub_8044CA0
+ thumb_func_end sub_803A520
+
+ thumb_func_start sub_803A56C
+sub_803A56C: @ 803A56C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A56C
+
+ thumb_func_start sub_803A578
+sub_803A578: @ 803A578
+ push {r4,lr}
+ ldr r4, _0803A5C8 @ =gActiveBank
+ ldrb r0, [r4]
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803A5BE
+ ldr r3, _0803A5CC @ =gSprites
+ ldr r0, _0803A5D0 @ =gObjectBankIDs
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _0803A5D4 @ =gBattleBufferA
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r1, [r1]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl sub_8031F88
+_0803A5BE:
+ bl dp01_tbl4_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A5C8: .4byte gActiveBank
+_0803A5CC: .4byte gSprites
+_0803A5D0: .4byte gObjectBankIDs
+_0803A5D4: .4byte gBattleBufferA
+ thumb_func_end sub_803A578
+
+ thumb_func_start bx_exec_buffer_A_ch0_tbl4
+bx_exec_buffer_A_ch0_tbl4: @ 803A5D8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _0803A61C @ =gActiveBank
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803A630
+ ldr r5, _0803A620 @ =gBattleBufferA
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803A624
+ bl dp01_tbl4_exec_completed
+ b _0803A630
+ .align 2, 0
+_0803A61C: .4byte gActiveBank
+_0803A620: .4byte gBattleBufferA
+_0803A624:
+ ldr r0, _0803A638 @ =gBattleBankFunc
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0803A63C @ =sub_8037FD8
+ str r0, [r1]
+_0803A630:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A638: .4byte gBattleBankFunc
+_0803A63C: .4byte sub_8037FD8
+ thumb_func_end bx_exec_buffer_A_ch0_tbl4
+
+ thumb_func_start sub_803A640
+sub_803A640: @ 803A640
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A640
+
+ thumb_func_start sub_803A64C
+sub_803A64C: @ 803A64C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A64C
+
+ thumb_func_start sub_803A658
+sub_803A658: @ 803A658
+ push {lr}
+ ldr r1, _0803A674 @ =gBattleBufferA
+ ldr r0, _0803A678 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r2, [r0]
+ cmp r2, 0x3
+ bne _0803A680
+ ldr r0, _0803A67C @ =gBattleOutcome
+ strb r2, [r0]
+ b _0803A688
+ .align 2, 0
+_0803A674: .4byte gBattleBufferA
+_0803A678: .4byte gActiveBank
+_0803A67C: .4byte gBattleOutcome
+_0803A680:
+ ldr r0, _0803A6AC @ =gBattleOutcome
+ movs r1, 0x3
+ eors r1, r2
+ strb r1, [r0]
+_0803A688:
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl dp01_tbl4_exec_completed
+ ldr r1, _0803A6B0 @ =gBattleBankFunc
+ ldr r0, _0803A6B4 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803A6B8 @ =sub_8037F34
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A6AC: .4byte gBattleOutcome
+_0803A6B0: .4byte gBattleBankFunc
+_0803A6B4: .4byte gActiveBank
+_0803A6B8: .4byte sub_8037F34
+ thumb_func_end sub_803A658
+
+ thumb_func_start nullsub_48
+nullsub_48: @ 803A6BC
+ bx lr
+ thumb_func_end nullsub_48
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_2.s b/asm/battle_2.s
new file mode 100644
index 000000000..c1f75dad5
--- /dev/null
+++ b/asm/battle_2.s
@@ -0,0 +1,6435 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8012324
+sub_8012324: @ 8012324
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, _08012340 @ =gBattleCommunication
+ movs r1, 0
+ strb r1, [r0, 0x4]
+ ldr r0, _08012344 @ =gActiveBank
+ strb r1, [r0]
+ ldr r0, _08012348 @ =gNoOfAllBanks
+ bl _08012F74
+ .align 2, 0
+_08012340: .4byte gBattleCommunication
+_08012344: .4byte gActiveBank
+_08012348: .4byte gNoOfAllBanks
+_0801234C:
+ ldr r4, _08012374 @ =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08012378 @ =gBattleCommunication
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _08012368
+ bl _08012F66
+_08012368:
+ lsls r0, 2
+ ldr r1, _0801237C @ =_08012380
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08012374: .4byte gActiveBank
+_08012378: .4byte gBattleCommunication
+_0801237C: .4byte _08012380
+ .align 2, 0
+_08012380:
+ .4byte _0801239C
+ .4byte _080124C8
+ .4byte _08012A28
+ .4byte _08012DA8
+ .4byte _08012E50
+ .4byte _08012E94
+ .4byte _08012F38
+_0801239C:
+ ldr r4, _08012434 @ =0x02000000
+ ldr r0, _08012438 @ =gActiveBank
+ ldrb r0, [r0]
+ ldr r1, _0801243C @ =0x00016068
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0x6
+ strb r1, [r0]
+ ldr r0, _08012440 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080123F8
+ movs r1, 0x2
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ beq _080123F8
+ eors r5, r1
+ adds r0, r5, 0
+ bl GetBankByPlayerAI
+ ldr r2, _08012444 @ =0x000160a6
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ ldr r2, _08012448 @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080123F8
+ ldr r4, _0801244C @ =gBattleCommunication
+ adds r0, r5, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ beq _080123F8
+ bl _08012F66
+_080123F8:
+ ldr r0, _08012434 @ =0x02000000
+ ldr r3, _08012444 @ =0x000160a6
+ adds r0, r3
+ ldrb r3, [r0]
+ ldr r1, _08012448 @ =gBitTable
+ ldr r4, _08012438 @ =gActiveBank
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r3, r0
+ cmp r3, 0
+ beq _08012468
+ ldr r0, _08012450 @ =gActionForBanks
+ adds r0, r2, r0
+ movs r1, 0xD
+ strb r1, [r0]
+ ldr r0, _08012440 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08012454
+ ldr r0, _0801244C @ =gBattleCommunication
+ ldrb r1, [r4]
+ adds r1, r0
+ movs r0, 0x4
+ strb r0, [r1]
+ bl _08012F66
+ .align 2, 0
+_08012434: .4byte 0x02000000
+_08012438: .4byte gActiveBank
+_0801243C: .4byte 0x00016068
+_08012440: .4byte gBattleTypeFlags
+_08012444: .4byte 0x000160a6
+_08012448: .4byte gBitTable
+_0801244C: .4byte gBattleCommunication
+_08012450: .4byte gActionForBanks
+_08012454:
+ ldr r0, _08012464 @ =gBattleCommunication
+ ldrb r1, [r4]
+ adds r1, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ bl _08012F66
+ .align 2, 0
+_08012464: .4byte gBattleCommunication
+_08012468:
+ ldr r1, _0801249C @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _08012488
+ movs r0, 0x80
+ lsls r0, 15
+ ands r1, r0
+ cmp r1, 0
+ beq _080124A8
+_08012488:
+ ldr r0, _080124A0 @ =gActionForBanks
+ adds r0, r2, r0
+ strb r3, [r0]
+ ldr r1, _080124A4 @ =gBattleCommunication
+ ldrb r0, [r4]
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ bl _08012F66
+ .align 2, 0
+_0801249C: .4byte gBattleMons
+_080124A0: .4byte gActionForBanks
+_080124A4: .4byte gBattleCommunication
+_080124A8:
+ ldr r0, _080124C0 @ =gActionForBanks
+ ldrb r1, [r0]
+ ldr r0, _080124C4 @ =gBattleBufferB
+ ldrb r2, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ movs r0, 0
+ bl dp01_build_cmdbuf_x12_a_bb
+ bl _08012E32
+ .align 2, 0
+_080124C0: .4byte gActionForBanks
+_080124C4: .4byte gBattleBufferB
+_080124C8:
+ ldr r4, _08012520 @ =gBattleExecBuffer
+ ldr r1, _08012524 @ =gBitTable
+ ldr r3, _08012528 @ =gActiveBank
+ ldrb r5, [r3]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r0, r2, 4
+ movs r1, 0xF0
+ lsls r1, 24
+ orrs r0, r1
+ orrs r0, r2
+ lsls r1, r2, 8
+ orrs r0, r1
+ lsls r2, 12
+ orrs r0, r2
+ ldr r1, [r4]
+ ands r1, r0
+ mov r8, r3
+ cmp r1, 0
+ beq _080124F6
+ bl _08012F66
+_080124F6:
+ ldr r2, _0801252C @ =gActionForBanks
+ adds r2, r5, r2
+ ldr r1, _08012530 @ =gBattleBufferB
+ lsls r0, r5, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bls _08012514
+ b _08012968
+_08012514:
+ lsls r0, 2
+ ldr r1, _08012534 @ =_08012538
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08012520: .4byte gBattleExecBuffer
+_08012524: .4byte gBitTable
+_08012528: .4byte gActiveBank
+_0801252C: .4byte gActionForBanks
+_08012530: .4byte gBattleBufferB
+_08012534: .4byte _08012538
+ .align 2, 0
+_08012538:
+ .4byte _0801256C
+ .4byte _080126B4
+ .4byte _080126E0
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _080128B0
+ .4byte _08012908
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _0801292C
+_0801256C:
+ bl sub_8015C90
+ lsls r0, 24
+ cmp r0, 0
+ beq _080125D0
+ ldr r0, _080125B4 @ =gBattleCommunication
+ ldr r2, _080125B8 @ =gActiveBank
+ ldrb r1, [r2]
+ adds r1, r0
+ movs r4, 0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r3, _080125BC @ =0x02000000
+ ldrb r0, [r2]
+ ldr r1, _080125C0 @ =0x00016060
+ adds r0, r1
+ adds r0, r3
+ strb r4, [r0]
+ ldrb r0, [r2]
+ ldr r4, _080125C4 @ =0x00016094
+ adds r0, r4
+ adds r0, r3
+ movs r1, 0x3
+ strb r1, [r0]
+ ldrb r1, [r2]
+ ldr r0, _080125C8 @ =0x00016010
+ adds r2, r1, r0
+ adds r2, r3
+ ldr r0, _080125CC @ =gBattleBufferB
+ lsls r1, 9
+ adds r0, 0x3
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ bl _08012F90
+ .align 2, 0
+_080125B4: .4byte gBattleCommunication
+_080125B8: .4byte gActiveBank
+_080125BC: .4byte 0x02000000
+_080125C0: .4byte 0x00016060
+_080125C4: .4byte 0x00016094
+_080125C8: .4byte 0x00016010
+_080125CC: .4byte gBattleBufferB
+_080125D0:
+ ldr r1, _080125FC @ =gDisableStructs
+ ldr r5, _08012600 @ =gActiveBank
+ ldrb r4, [r5]
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r2, [r0, 0x6]
+ cmp r2, 0
+ beq _0801260C
+ ldr r1, _08012604 @ =gChosenMovesByBanks
+ lsls r0, r4, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r1, _08012608 @ =gBattleCommunication
+ ldrb r0, [r5]
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ bl _08012F90
+ .align 2, 0
+_080125FC: .4byte gDisableStructs
+_08012600: .4byte gActiveBank
+_08012604: .4byte gChosenMovesByBanks
+_08012608: .4byte gBattleCommunication
+_0801260C:
+ add r2, sp, 0x4
+ ldr r3, _080126AC @ =gBattleMons
+ movs r1, 0x58
+ adds r0, r4, 0
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x10]
+ ldrb r0, [r5]
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x21
+ ldrb r0, [r0]
+ strb r0, [r2, 0x12]
+ ldrb r0, [r5]
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x22
+ ldrb r0, [r0]
+ strb r0, [r2, 0x13]
+ movs r4, 0
+ mov r1, sp
+ adds r1, 0xC
+ str r1, [sp, 0x18]
+ add r2, sp, 0x10
+ mov r10, r2
+ mov r8, r3
+ adds r7, r5, 0
+ movs r6, 0x58
+ movs r3, 0xC
+ add r3, r8
+ mov r9, r3
+ add r5, sp, 0x4
+_0801264E:
+ lsls r2, r4, 1
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r2, r0
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r5]
+ ldr r0, [sp, 0x18]
+ adds r3, r0, r4
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r4, r0
+ mov r1, r8
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r3]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r2, r1
+ add r2, r9
+ ldrh r0, [r2]
+ add r1, r8
+ adds r1, 0x3B
+ ldrb r1, [r1]
+ lsls r2, r4, 24
+ lsrs r2, 24
+ bl CalculatePPWithBonus
+ mov r2, r10
+ adds r1, r2, r4
+ strb r0, [r1]
+ adds r5, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0801264E
+ ldr r0, _080126B0 @ =gBattleTypeFlags
+ ldrb r0, [r0]
+ movs r1, 0x1
+ ands r1, r0
+ movs r0, 0
+ movs r2, 0
+ add r3, sp, 0x4
+ bl sub_800CBA4
+ b _0801289E
+ .align 2, 0
+_080126AC: .4byte gBattleMons
+_080126B0: .4byte gBattleTypeFlags
+_080126B4:
+ ldr r0, _080126D0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _080126D4 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _080126C2
+ b _08012908
+_080126C2:
+ ldr r1, _080126D8 @ =gUnknown_02024C1C
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080126DC @ =gUnknown_081D9B29
+ b _080129CC
+ .align 2, 0
+_080126D0: .4byte gBattleTypeFlags
+_080126D4: .4byte 0x00000902
+_080126D8: .4byte gUnknown_02024C1C
+_080126DC: .4byte gUnknown_081D9B29
+_080126E0:
+ ldr r3, _08012738 @ =0x02000000
+ ldr r5, _0801273C @ =gActiveBank
+ ldrb r0, [r5]
+ ldr r4, _08012740 @ =0x00016064
+ adds r1, r0, r4
+ adds r1, r3
+ ldr r2, _08012744 @ =gBattlePartyID
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r7, _08012748 @ =gBattleMons
+ ldrb r2, [r5]
+ movs r6, 0x58
+ adds r0, r2, 0
+ muls r0, r6
+ adds r1, r7, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0801274C @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ bne _08012722
+ ldr r0, _08012750 @ =gStatuses3
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x80
+ lsls r0, 3
+ ands r1, r0
+ cmp r1, 0
+ beq _08012758
+_08012722:
+ lsls r0, r2, 1
+ adds r0, r2
+ ldr r2, _08012754 @ =0x0001606c
+ adds r1, r3, r2
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0x6
+ b _0801286C
+ .align 2, 0
+_08012738: .4byte 0x02000000
+_0801273C: .4byte gActiveBank
+_08012740: .4byte 0x00016064
+_08012744: .4byte gBattlePartyID
+_08012748: .4byte gBattleMons
+_0801274C: .4byte 0x0400e000
+_08012750: .4byte gStatuses3
+_08012754: .4byte 0x0001606c
+_08012758:
+ str r1, [sp]
+ movs r0, 0xC
+ adds r1, r2, 0
+ movs r2, 0x17
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080127E0
+ ldrb r1, [r5]
+ str r4, [sp]
+ movs r0, 0xC
+ movs r2, 0x47
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080127A8
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r1, r0, r7
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080127A8
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080127A8
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1A
+ bne _080127E0
+_080127A8:
+ ldr r5, _08012808 @ =gActiveBank
+ ldrb r1, [r5]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xF
+ movs r2, 0x2A
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08012818
+ ldr r2, _0801280C @ =gBattleMons
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ beq _080127E0
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _08012818
+_080127E0:
+ subs r1, r4, 0x1
+ lsls r1, 4
+ movs r0, 0x4
+ orrs r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08012810 @ =gLastUsedAbility
+ ldrb r3, [r0]
+ ldr r0, _08012808 @ =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ ldr r2, _08012814 @ =0x0201606c
+ adds r0, r2
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0x6
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ b _0801289E
+ .align 2, 0
+_08012808: .4byte gActiveBank
+_0801280C: .4byte gBattleMons
+_08012810: .4byte gLastUsedAbility
+_08012814: .4byte 0x0201606c
+_08012818:
+ ldr r0, _08012830 @ =gActiveBank
+ ldrb r1, [r0]
+ mov r8, r0
+ cmp r1, 0x2
+ bne _08012840
+ ldr r0, _08012834 @ =gActionForBanks
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08012840
+ ldr r3, _08012838 @ =0x02000000
+ ldr r4, _0801283C @ =0x00016068
+ b _08012854
+ .align 2, 0
+_08012830: .4byte gActiveBank
+_08012834: .4byte gActionForBanks
+_08012838: .4byte 0x02000000
+_0801283C: .4byte 0x00016068
+_08012840:
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0x3
+ bne _08012884
+ ldr r0, _08012874 @ =gActionForBanks
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x2
+ bne _08012884
+ ldr r3, _08012878 @ =0x02000000
+ ldr r4, _0801287C @ =0x00016069
+_08012854:
+ adds r0, r3, r4
+ ldrb r2, [r0]
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, _08012880 @ =0x0001606c
+ adds r3, r1
+ adds r0, r3
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+_0801286C:
+ movs r3, 0
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ b _0801289E
+ .align 2, 0
+_08012874: .4byte gActionForBanks
+_08012878: .4byte 0x02000000
+_0801287C: .4byte 0x00016069
+_08012880: .4byte 0x0001606c
+_08012884:
+ ldr r0, _080128A8 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, _080128AC @ =0x0201606c
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x6
+ movs r3, 0
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+_0801289E:
+ ldr r0, _080128A8 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ b _08012968
+ .align 2, 0
+_080128A8: .4byte gActiveBank
+_080128AC: .4byte 0x0201606c
+_080128B0:
+ bl PlayerPartyAndPokemonStorageFull
+ lsls r0, 24
+ cmp r0, 0
+ beq _08012968
+ ldr r1, _080128EC @ =gUnknown_02024C1C
+ ldr r2, _080128F0 @ =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080128F4 @ =gUnknown_081D8E4A
+ str r1, [r0]
+ ldr r0, _080128F8 @ =gBattleCommunication
+ ldrb r1, [r2]
+ adds r1, r0
+ movs r3, 0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r1, _080128FC @ =0x02000000
+ ldrb r0, [r2]
+ ldr r4, _08012900 @ =0x00016060
+ adds r0, r4
+ adds r0, r1
+ strb r3, [r0]
+ ldrb r0, [r2]
+ ldr r2, _08012904 @ =0x00016094
+ adds r0, r2
+ adds r0, r1
+ strb r3, [r0]
+ b _08012F90
+ .align 2, 0
+_080128EC: .4byte gUnknown_02024C1C
+_080128F0: .4byte gActiveBank
+_080128F4: .4byte gUnknown_081D8E4A
+_080128F8: .4byte gBattleCommunication
+_080128FC: .4byte 0x02000000
+_08012900: .4byte 0x00016060
+_08012904: .4byte 0x00016094
+_08012908:
+ ldr r4, _08012924 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, _08012928 @ =0x0201606c
+ adds r1, r0
+ movs r0, 0
+ bl sub_800CBE0
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ b _08012968
+ .align 2, 0
+_08012924: .4byte gActiveBank
+_08012928: .4byte 0x0201606c
+_0801292C:
+ ldr r4, _08012964 @ =gBattleCommunication
+ mov r3, r8
+ ldrb r1, [r3]
+ adds r1, r4
+ movs r5, 0
+ movs r0, 0x6
+ strb r0, [r1]
+ ldrb r0, [r3]
+ bl GetBankIdentity
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ strb r5, [r0]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x32_32_32_32
+ mov r4, r8
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ b _08012F90
+ .align 2, 0
+_08012964: .4byte gBattleCommunication
+_08012968:
+ ldr r0, _08012994 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0xA
+ ands r0, r1
+ cmp r0, 0x8
+ bne _080129A8
+ ldr r0, _08012998 @ =gBattleBufferB
+ ldr r4, _0801299C @ =gActiveBank
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bne _080129A8
+ ldr r0, _080129A0 @ =gUnknown_081D8E37
+ bl b_call_bc_move_exec
+ ldr r1, _080129A4 @ =gBattleCommunication
+ ldrb r0, [r4]
+ adds r0, r1
+ b _08012BFE
+ .align 2, 0
+_08012994: .4byte gBattleTypeFlags
+_08012998: .4byte gBattleBufferB
+_0801299C: .4byte gActiveBank
+_080129A0: .4byte gUnknown_081D8E37
+_080129A4: .4byte gBattleCommunication
+_080129A8:
+ bl CanRunFromBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08012A14
+ ldr r0, _080129F4 @ =gBattleBufferB
+ ldr r3, _080129F8 @ =gActiveBank
+ ldrb r2, [r3]
+ lsls r1, r2, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bne _08012A14
+ ldr r1, _080129FC @ =gUnknown_02024C1C
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, _08012A00 @ =gUnknown_081D8E44
+_080129CC:
+ str r1, [r0]
+ ldr r0, _08012A04 @ =gBattleCommunication
+ ldrb r1, [r3]
+ adds r1, r0
+ movs r2, 0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r1, _08012A08 @ =0x02000000
+ ldrb r0, [r3]
+ ldr r4, _08012A0C @ =0x00016060
+ adds r0, r4
+ adds r0, r1
+ strb r2, [r0]
+ ldrb r0, [r3]
+ ldr r3, _08012A10 @ =0x00016094
+ adds r0, r3
+ adds r0, r1
+ strb r2, [r0]
+ b _08012F90
+ .align 2, 0
+_080129F4: .4byte gBattleBufferB
+_080129F8: .4byte gActiveBank
+_080129FC: .4byte gUnknown_02024C1C
+_08012A00: .4byte gUnknown_081D8E44
+_08012A04: .4byte gBattleCommunication
+_08012A08: .4byte 0x02000000
+_08012A0C: .4byte 0x00016060
+_08012A10: .4byte 0x00016094
+_08012A14:
+ ldr r2, _08012A20 @ =gBattleCommunication
+ ldr r0, _08012A24 @ =gActiveBank
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012A20: .4byte gBattleCommunication
+_08012A24: .4byte gActiveBank
+_08012A28:
+ ldr r4, _08012A6C @ =gBattleExecBuffer
+ ldr r1, _08012A70 @ =gBitTable
+ ldr r3, _08012A74 @ =gActiveBank
+ ldrb r5, [r3]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r0, r2, 4
+ movs r1, 0xF0
+ lsls r1, 24
+ orrs r0, r1
+ orrs r0, r2
+ lsls r1, r2, 8
+ orrs r0, r1
+ lsls r2, 12
+ orrs r0, r2
+ ldr r1, [r4]
+ ands r1, r0
+ mov r8, r3
+ cmp r1, 0
+ beq _08012A54
+ b _08012F66
+_08012A54:
+ ldr r1, _08012A78 @ =gActionForBanks
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x9
+ bls _08012A62
+ b _08012F66
+_08012A62:
+ lsls r0, 2
+ ldr r1, _08012A7C @ =_08012A80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08012A6C: .4byte gBattleExecBuffer
+_08012A70: .4byte gBitTable
+_08012A74: .4byte gActiveBank
+_08012A78: .4byte gActionForBanks
+_08012A7C: .4byte _08012A80
+ .align 2, 0
+_08012A80:
+ .4byte _08012AA8
+ .4byte _08012BB0
+ .4byte _08012BE8
+ .4byte _08012CE0
+ .4byte _08012D04
+ .4byte _08012D18
+ .4byte _08012D2C
+ .4byte _08012D5C
+ .4byte _08012D70
+ .4byte _08012D94
+_08012AA8:
+ ldr r0, _08012AC8 @ =gBattleBufferB
+ mov r1, r8
+ ldrb r4, [r1]
+ lsls r1, r4, 9
+ adds r2, r0, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ cmp r1, 0x9
+ bgt _08012ACC
+ cmp r1, 0x3
+ blt _08012ACC
+ adds r0, r4, r3
+ strb r1, [r0]
+ b _08012F90
+ .align 2, 0
+_08012AC8: .4byte gBattleBufferB
+_08012ACC:
+ adds r3, r6, 0
+ mov r5, r8
+ ldrb r4, [r5]
+ lsls r1, r4, 9
+ adds r7, r3, 0x2
+ adds r0, r1, r7
+ ldrb r2, [r0]
+ adds r3, 0x3
+ mov r9, r3
+ add r1, r9
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r2, r0
+ ldr r0, _08012AF4 @ =0x0000ffff
+ cmp r2, r0
+ bne _08012AFC
+ ldr r0, _08012AF8 @ =gBattleCommunication
+ adds r0, r4, r0
+ b _08012BFE
+ .align 2, 0
+_08012AF4: .4byte 0x0000ffff
+_08012AF8: .4byte gBattleCommunication
+_08012AFC:
+ bl sub_8015894
+ lsls r0, 24
+ cmp r0, 0
+ beq _08012B48
+ ldr r0, _08012B38 @ =gBattleCommunication
+ ldrb r1, [r5]
+ adds r1, r0
+ movs r2, 0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r3, _08012B3C @ =0x02000000
+ ldrb r0, [r5]
+ ldr r4, _08012B40 @ =0x00016060
+ adds r0, r4
+ adds r0, r3
+ strb r2, [r0]
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, r6, 0x1
+ adds r0, r1
+ strb r2, [r0]
+ ldrb r0, [r5]
+ ldr r1, _08012B44 @ =0x00016094
+ adds r0, r1
+ adds r0, r3
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08012F90
+ .align 2, 0
+_08012B38: .4byte gBattleCommunication
+_08012B3C: .4byte 0x02000000
+_08012B40: .4byte 0x00016060
+_08012B44: .4byte 0x00016094
+_08012B48:
+ ldr r6, _08012B98 @ =0x02000000
+ mov r2, r8
+ ldrb r0, [r2]
+ ldr r2, _08012B9C @ =0x0001608c
+ adds r1, r0, r2
+ adds r1, r6
+ lsls r0, 9
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08012BA0 @ =gChosenMovesByBanks
+ mov r4, r8
+ ldrb r3, [r4]
+ lsls r5, r3, 1
+ adds r5, r0
+ ldr r4, _08012BA4 @ =gBattleMons
+ adds r2, r3, r2
+ adds r2, r6
+ ldrb r0, [r2]
+ lsls r0, 1
+ movs r1, 0x58
+ muls r1, r3
+ adds r0, r1
+ adds r4, 0xC
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r5]
+ mov r1, r8
+ ldrb r0, [r1]
+ ldr r2, _08012BA8 @ =0x00016010
+ adds r1, r0, r2
+ adds r1, r6
+ lsls r0, 9
+ add r0, r9
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08012BAC @ =gBattleCommunication
+ mov r3, r8
+ ldrb r1, [r3]
+ b _08012E3C
+ .align 2, 0
+_08012B98: .4byte 0x02000000
+_08012B9C: .4byte 0x0001608c
+_08012BA0: .4byte gChosenMovesByBanks
+_08012BA4: .4byte gBattleMons
+_08012BA8: .4byte 0x00016010
+_08012BAC: .4byte gBattleCommunication
+_08012BB0:
+ ldr r2, _08012BD8 @ =gBattleBufferB
+ ldr r5, _08012BDC @ =gActiveBank
+ ldrb r4, [r5]
+ lsls r1, r4, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ cmp r3, 0
+ bne _08012BCE
+ b _08012F60
+_08012BCE:
+ ldr r0, _08012BE0 @ =gLastUsedItem
+ strh r3, [r0]
+ ldr r0, _08012BE4 @ =gBattleCommunication
+ ldrb r1, [r5]
+ b _08012E3C
+ .align 2, 0
+_08012BD8: .4byte gBattleBufferB
+_08012BDC: .4byte gActiveBank
+_08012BE0: .4byte gLastUsedItem
+_08012BE4: .4byte gBattleCommunication
+_08012BE8:
+ ldr r4, _08012C04 @ =gBattleBufferB
+ ldr r7, _08012C08 @ =gActiveBank
+ ldrb r2, [r7]
+ lsls r0, r2, 9
+ adds r1, r4, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ cmp r1, 0x6
+ bne _08012C10
+ ldr r0, _08012C0C @ =gBattleCommunication
+ adds r0, r2, r0
+_08012BFE:
+ movs r1, 0
+ strb r1, [r0]
+ b _08012F66
+ .align 2, 0
+_08012C04: .4byte gBattleBufferB
+_08012C08: .4byte gActiveBank
+_08012C0C: .4byte gBattleCommunication
+_08012C10:
+ ldr r0, _08012CC4 @ =0x02000000
+ mov r12, r0
+ ldr r3, _08012CC8 @ =0x00016068
+ adds r0, r2, r3
+ add r0, r12
+ strb r1, [r0]
+ ldr r0, _08012CCC @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08012CBE
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r5, _08012CD0 @ =0x0001606c
+ adds r1, r5
+ add r1, r12
+ ldrb r2, [r1]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r2, r0, 1
+ adds r2, r0
+ adds r2, r5
+ add r2, r12
+ lsls r0, 9
+ adds r6, r4, 0x2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r3, 0xF0
+ adds r0, r3, 0
+ ands r0, r1
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r2, _08012CD4 @ =0x0001606d
+ adds r1, r2
+ add r1, r12
+ lsls r0, 9
+ adds r4, 0x3
+ mov r8, r4
+ add r0, r8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r4, 0x2
+ eors r0, r4
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ add r1, r12
+ ldrb r2, [r1]
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ eors r0, r4
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ add r1, r12
+ ldrb r0, [r7]
+ lsls r0, 9
+ adds r0, r6
+ ldrb r0, [r0]
+ ands r3, r0
+ lsrs r3, 4
+ ldrb r0, [r1]
+ orrs r3, r0
+ strb r3, [r1]
+ ldrb r0, [r7]
+ eors r4, r0
+ lsls r1, r4, 1
+ adds r1, r4
+ ldr r3, _08012CD8 @ =0x0001606e
+ adds r1, r3
+ add r1, r12
+ ldrb r0, [r7]
+ lsls r0, 9
+ add r0, r8
+ ldrb r0, [r0]
+ strb r0, [r1]
+_08012CBE:
+ ldr r0, _08012CDC @ =gBattleCommunication
+ ldrb r1, [r7]
+ b _08012E3C
+ .align 2, 0
+_08012CC4: .4byte 0x02000000
+_08012CC8: .4byte 0x00016068
+_08012CCC: .4byte gBattleTypeFlags
+_08012CD0: .4byte 0x0001606c
+_08012CD4: .4byte 0x0001606d
+_08012CD8: .4byte 0x0001606e
+_08012CDC: .4byte gBattleCommunication
+_08012CE0:
+ ldr r2, _08012CF8 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 8
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _08012CFC @ =gBattleCommunication
+ ldr r0, _08012D00 @ =gActiveBank
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012CF8: .4byte gHitMarker
+_08012CFC: .4byte gBattleCommunication
+_08012D00: .4byte gActiveBank
+_08012D04:
+ ldr r2, _08012D10 @ =gBattleCommunication
+ ldr r0, _08012D14 @ =gActiveBank
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012D10: .4byte gBattleCommunication
+_08012D14: .4byte gActiveBank
+_08012D18:
+ ldr r2, _08012D24 @ =gBattleCommunication
+ ldr r0, _08012D28 @ =gActiveBank
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012D24: .4byte gBattleCommunication
+_08012D28: .4byte gActiveBank
+_08012D2C:
+ ldr r2, _08012D50 @ =gBattleBufferB
+ ldr r0, _08012D54 @ =gActiveBank
+ ldrb r4, [r0]
+ lsls r1, r4, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ cmp r3, 0
+ bne _08012D4A
+ b _08012F60
+_08012D4A:
+ ldr r1, _08012D58 @ =gBattleCommunication
+ adds r1, r4, r1
+ b _08012E3E
+ .align 2, 0
+_08012D50: .4byte gBattleBufferB
+_08012D54: .4byte gActiveBank
+_08012D58: .4byte gBattleCommunication
+_08012D5C:
+ ldr r2, _08012D68 @ =gBattleCommunication
+ ldr r0, _08012D6C @ =gActiveBank
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012D68: .4byte gBattleCommunication
+_08012D6C: .4byte gActiveBank
+_08012D70:
+ ldr r2, _08012D88 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 8
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _08012D8C @ =gBattleCommunication
+ ldr r0, _08012D90 @ =gActiveBank
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012D88: .4byte gHitMarker
+_08012D8C: .4byte gBattleCommunication
+_08012D90: .4byte gActiveBank
+_08012D94:
+ ldr r2, _08012DA0 @ =gBattleCommunication
+ ldr r0, _08012DA4 @ =gActiveBank
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012DA0: .4byte gBattleCommunication
+_08012DA4: .4byte gActiveBank
+_08012DA8:
+ ldr r3, _08012E10 @ =gBattleExecBuffer
+ ldr r4, _08012E14 @ =gBitTable
+ ldr r0, _08012E18 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldr r2, [r0]
+ lsls r1, r2, 4
+ movs r0, 0xF0
+ lsls r0, 24
+ orrs r1, r0
+ orrs r1, r2
+ lsls r0, r2, 8
+ orrs r1, r0
+ lsls r2, 12
+ orrs r1, r2
+ ldr r0, [r3]
+ ands r0, r1
+ cmp r0, 0
+ beq _08012DD2
+ b _08012F66
+_08012DD2:
+ ldr r0, _08012E1C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x41
+ ands r0, r1
+ cmp r0, 0x1
+ bne _08012E06
+ movs r1, 0x2
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ bne _08012E06
+ adds r0, r5, 0
+ eors r0, r1
+ bl GetBankByPlayerAI
+ ldr r1, _08012E20 @ =0x02000000
+ ldr r2, _08012E24 @ =0x000160a6
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08012E28
+_08012E06:
+ movs r0, 0
+ movs r1, 0
+ bl EmitLinkStandbyMsg
+ b _08012E30
+ .align 2, 0
+_08012E10: .4byte gBattleExecBuffer
+_08012E14: .4byte gBitTable
+_08012E18: .4byte gActiveBank
+_08012E1C: .4byte gBattleTypeFlags
+_08012E20: .4byte 0x02000000
+_08012E24: .4byte 0x000160a6
+_08012E28:
+ movs r0, 0
+ movs r1, 0x1
+ bl EmitLinkStandbyMsg
+_08012E30:
+ ldr r4, _08012E48 @ =gActiveBank
+_08012E32:
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r0, _08012E4C @ =gBattleCommunication
+ ldrb r1, [r4]
+_08012E3C:
+ adds r1, r0
+_08012E3E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08012F66
+ .align 2, 0
+_08012E48: .4byte gActiveBank
+_08012E4C: .4byte gBattleCommunication
+_08012E50:
+ ldr r3, _08012E84 @ =gBattleExecBuffer
+ ldr r1, _08012E88 @ =gBitTable
+ ldr r0, _08012E8C @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r1, r2, 4
+ movs r0, 0xF0
+ lsls r0, 24
+ orrs r1, r0
+ orrs r1, r2
+ lsls r0, r2, 8
+ orrs r1, r0
+ lsls r2, 12
+ orrs r1, r2
+ ldr r0, [r3]
+ ands r0, r1
+ cmp r0, 0
+ bne _08012F66
+ ldr r1, _08012E90 @ =gBattleCommunication
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08012F66
+ .align 2, 0
+_08012E84: .4byte gBattleExecBuffer
+_08012E88: .4byte gBitTable
+_08012E8C: .4byte gActiveBank
+_08012E90: .4byte gBattleCommunication
+_08012E94:
+ ldr r2, _08012EB8 @ =0x02000000
+ ldr r5, _08012EBC @ =gActiveBank
+ ldrb r1, [r5]
+ ldr r3, _08012EC0 @ =0x00016060
+ adds r0, r1, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08012ECC
+ ldr r0, _08012EC4 @ =gBattleCommunication
+ adds r0, r1, r0
+ ldr r4, _08012EC8 @ =0x00016094
+ adds r1, r4
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _08012F66
+ .align 2, 0
+_08012EB8: .4byte 0x02000000
+_08012EBC: .4byte gActiveBank
+_08012EC0: .4byte 0x00016060
+_08012EC4: .4byte gBattleCommunication
+_08012EC8: .4byte 0x00016094
+_08012ECC:
+ ldr r0, _08012F20 @ =gBankAttacker
+ strb r1, [r0]
+ ldr r7, _08012F24 @ =gBattlescriptCurrInstr
+ ldr r6, _08012F28 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r6
+ ldr r4, [r0]
+ str r4, [r7]
+ ldr r3, _08012F2C @ =gBattleExecBuffer
+ ldr r1, _08012F30 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r1, r2, 4
+ movs r0, 0xF0
+ lsls r0, 24
+ orrs r1, r0
+ orrs r1, r2
+ lsls r0, r2, 8
+ orrs r1, r0
+ lsls r2, 12
+ orrs r1, r2
+ ldr r0, [r3]
+ ands r0, r1
+ cmp r0, 0
+ bne _08012F12
+ ldr r0, _08012F34 @ =gBattleScriptingCommandsTable
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+_08012F12:
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r7]
+ str r1, [r0]
+ b _08012F66
+ .align 2, 0
+_08012F20: .4byte gBankAttacker
+_08012F24: .4byte gBattlescriptCurrInstr
+_08012F28: .4byte gUnknown_02024C1C
+_08012F2C: .4byte gBattleExecBuffer
+_08012F30: .4byte gBitTable
+_08012F34: .4byte gBattleScriptingCommandsTable
+_08012F38:
+ ldr r3, _08012FA0 @ =gBattleExecBuffer
+ ldr r1, _08012FA4 @ =gBitTable
+ ldr r0, _08012FA8 @ =gActiveBank
+ ldrb r4, [r0]
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r0, r2, 4
+ movs r1, 0xF0
+ lsls r1, 24
+ orrs r0, r1
+ orrs r0, r2
+ lsls r1, r2, 8
+ orrs r0, r1
+ lsls r2, 12
+ orrs r0, r2
+ ldr r3, [r3]
+ ands r3, r0
+ cmp r3, 0
+ bne _08012F66
+_08012F60:
+ ldr r0, _08012FAC @ =gBattleCommunication
+ adds r0, r4, r0
+ strb r3, [r0]
+_08012F66:
+ ldr r0, _08012FA8 @ =gActiveBank
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08012FB0 @ =gNoOfAllBanks
+ lsls r1, 24
+ lsrs r1, 24
+_08012F74:
+ adds r2, r0, 0
+ ldrb r0, [r2]
+ cmp r1, r0
+ bcs _08012F80
+ bl _0801234C
+_08012F80:
+ ldr r0, _08012FAC @ =gBattleCommunication
+ ldrb r0, [r0, 0x4]
+ ldrb r2, [r2]
+ cmp r0, r2
+ bne _08012F90
+ ldr r1, _08012FB4 @ =gBattleMainFunc
+ ldr r0, _08012FB8 @ =sub_80133C8
+ str r0, [r1]
+_08012F90:
+ 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
+_08012FA0: .4byte gBattleExecBuffer
+_08012FA4: .4byte gBitTable
+_08012FA8: .4byte gActiveBank
+_08012FAC: .4byte gBattleCommunication
+_08012FB0: .4byte gNoOfAllBanks
+_08012FB4: .4byte gBattleMainFunc
+_08012FB8: .4byte sub_80133C8
+ thumb_func_end sub_8012324
+
+ thumb_func_start sub_8012FBC
+sub_8012FBC: @ 8012FBC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08012FE8 @ =gUnknown_02024A76
+ adds r4, r0, r2
+ ldrb r5, [r4]
+ adds r2, r1, r2
+ ldrb r3, [r2]
+ strb r3, [r4]
+ strb r5, [r2]
+ ldr r2, _08012FEC @ =gTurnOrder
+ adds r0, r2
+ ldrb r5, [r0]
+ adds r1, r2
+ ldrb r2, [r1]
+ strb r2, [r0]
+ strb r5, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08012FE8: .4byte gUnknown_02024A76
+_08012FEC: .4byte gTurnOrder
+ thumb_func_end sub_8012FBC
+
+ thumb_func_start b_first_side
+b_first_side: @ 8012FF0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ bne _080130B8
+ ldr r1, [sp, 0x8]
+ str r1, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ bne _080130B8
+ ldr r1, _08013070 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r3, [r0]
+ cmp r3, 0x21
+ bne _0801305C
+ ldr r0, _08013074 @ =gBattleWeather
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801306C
+_0801305C:
+ cmp r3, 0x22
+ bne _08013078
+ ldr r0, _08013074 @ =gBattleWeather
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _08013078
+_0801306C:
+ movs r3, 0x2
+ b _0801307A
+ .align 2, 0
+_08013070: .4byte gBattleMons
+_08013074: .4byte gBattleWeather
+_08013078:
+ movs r3, 0x1
+_0801307A:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r2, _080130B0 @ =gBattleMons
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r2, [r0]
+ cmp r2, 0x21
+ bne _0801309A
+ ldr r0, _080130B4 @ =gBattleWeather
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _080130AA
+_0801309A:
+ cmp r2, 0x22
+ bne _080130BA
+ ldr r0, _080130B4 @ =gBattleWeather
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _080130BA
+_080130AA:
+ movs r7, 0x2
+ b _080130BC
+ .align 2, 0
+_080130B0: .4byte gBattleMons
+_080130B4: .4byte gBattleWeather
+_080130B8:
+ movs r3, 0x1
+_080130BA:
+ movs r7, 0x1
+_080130BC:
+ ldr r1, _08013100 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x6]
+ muls r3, r0
+ ldr r2, _08013104 @ =gStatStageRatios
+ movs r1, 0x1B
+ ldrsb r1, [r4, r1]
+ lsls r1, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ muls r0, r3
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ bl __divsi3
+ mov r8, r0
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0xAF
+ bne _0801310C
+ ldr r1, _08013108 @ =gEnigmaBerries
+ mov r3, r9
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x7]
+ ldrb r5, [r0, 0x1A]
+ b _08013120
+ .align 2, 0
+_08013100: .4byte gBattleMons
+_08013104: .4byte gStatStageRatios
+_08013108: .4byte gEnigmaBerries
+_0801310C:
+ ldrh r0, [r4, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r4, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08013120:
+ ldr r0, _080131DC @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08013154
+ ldr r0, _080131E0 @ =0x00000809
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08013154
+ mov r0, r9
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08013154
+ movs r0, 0x6E
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ movs r1, 0x64
+ bl __udivsi3
+ mov r8, r0
+_08013154:
+ cmp r6, 0x18
+ bne _0801315E
+ mov r2, r8
+ lsrs r2, 1
+ mov r8, r2
+_0801315E:
+ ldr r1, _080131E4 @ =gBattleMons
+ movs r0, 0x58
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801317C
+ mov r0, r8
+ lsrs r0, 2
+ mov r8, r0
+_0801317C:
+ cmp r6, 0x1A
+ bne _08013198
+ ldr r0, _080131E8 @ =gRandomTurnNumber
+ ldrh r4, [r0]
+ lsls r0, r5, 16
+ subs r0, r5
+ movs r1, 0x64
+ bl __divsi3
+ cmp r4, r0
+ bge _08013198
+ movs r1, 0x1
+ negs r1, r1
+ mov r8, r1
+_08013198:
+ ldr r1, _080131E4 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x6]
+ adds r3, r0, 0
+ muls r3, r7
+ ldr r2, _080131EC @ =gStatStageRatios
+ movs r1, 0x1B
+ ldrsb r1, [r4, r1]
+ lsls r1, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ muls r0, r3
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ bl __divsi3
+ adds r7, r0, 0
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0xAF
+ bne _080131F4
+ ldr r1, _080131F0 @ =gEnigmaBerries
+ mov r3, r10
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x7]
+ ldrb r5, [r0, 0x1A]
+ b _08013208
+ .align 2, 0
+_080131DC: .4byte gBattleTypeFlags
+_080131E0: .4byte 0x00000809
+_080131E4: .4byte gBattleMons
+_080131E8: .4byte gRandomTurnNumber
+_080131EC: .4byte gStatStageRatios
+_080131F0: .4byte gEnigmaBerries
+_080131F4:
+ ldrh r0, [r4, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r4, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08013208:
+ ldr r0, _08013280 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08013238
+ ldr r0, _08013284 @ =0x00000809
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08013238
+ mov r0, r10
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08013238
+ movs r0, 0x6E
+ muls r0, r7
+ movs r1, 0x64
+ bl __udivsi3
+ adds r7, r0, 0
+_08013238:
+ cmp r6, 0x18
+ bne _0801323E
+ lsrs r7, 1
+_0801323E:
+ ldr r2, _08013288 @ =gBattleMons
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801325A
+ lsrs r7, 2
+_0801325A:
+ cmp r6, 0x1A
+ bne _08013274
+ ldr r0, _0801328C @ =gRandomTurnNumber
+ ldrh r4, [r0]
+ lsls r0, r5, 16
+ subs r0, r5
+ movs r1, 0x64
+ bl __divsi3
+ cmp r4, r0
+ bge _08013274
+ movs r7, 0x1
+ negs r7, r7
+_08013274:
+ ldr r2, [sp, 0x4]
+ cmp r2, 0
+ beq _08013290
+ movs r3, 0
+ b _08013334
+ .align 2, 0
+_08013280: .4byte gBattleTypeFlags
+_08013284: .4byte 0x00000809
+_08013288: .4byte gBattleMons
+_0801328C: .4byte gRandomTurnNumber
+_08013290:
+ ldr r0, _080132B0 @ =gActionForBanks
+ mov r3, r9
+ adds r1, r3, r0
+ ldrb r1, [r1]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _080132E4
+ ldr r0, _080132B4 @ =gProtectStructs
+ lsls r1, r3, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080132B8
+ movs r3, 0xA5
+ b _080132E6
+ .align 2, 0
+_080132B0: .4byte gActionForBanks
+_080132B4: .4byte gProtectStructs
+_080132B8:
+ ldr r1, _080132D8 @ =0x02000000
+ ldr r0, _080132DC @ =0x0001608c
+ add r0, r9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0x58
+ mov r3, r9
+ muls r3, r1
+ adds r1, r3, 0
+ adds r0, r1
+ ldr r1, _080132E0 @ =gBattleMons
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r3, [r0]
+ b _080132E6
+ .align 2, 0
+_080132D8: .4byte 0x02000000
+_080132DC: .4byte 0x0001608c
+_080132E0: .4byte gBattleMons
+_080132E4:
+ movs r3, 0
+_080132E6:
+ mov r1, r10
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08013334
+ ldr r0, _08013304 @ =gProtectStructs
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 29
+ cmp r0, 0
+ bge _08013308
+ movs r2, 0xA5
+ b _08013336
+ .align 2, 0
+_08013304: .4byte gProtectStructs
+_08013308:
+ ldr r1, _08013328 @ =0x02000000
+ ldr r0, _0801332C @ =0x0001608c
+ add r0, r10
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0x58
+ mov r2, r10
+ muls r2, r1
+ adds r1, r2, 0
+ adds r0, r1
+ ldr r1, _08013330 @ =gBattleMons
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r2, [r0]
+ b _08013336
+ .align 2, 0
+_08013328: .4byte 0x02000000
+_0801332C: .4byte 0x0001608c
+_08013330: .4byte gBattleMons
+_08013334:
+ movs r2, 0
+_08013336:
+ ldr r4, _08013380 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x7
+ ldrsb r1, [r0, r1]
+ lsls r3, r2, 1
+ cmp r1, 0
+ bne _0801335A
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x7]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _08013398
+_0801335A:
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x7]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _0801338E
+ cmp r8, r7
+ bne _08013384
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08013384
+ movs r3, 0x2
+ b _080133B4
+ .align 2, 0
+_08013380: .4byte gBattleMoves
+_08013384:
+ cmp r8, r7
+ bcs _080133B6
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ b _080133B6
+_0801338E:
+ cmp r1, r0
+ bge _080133B6
+ movs r1, 0x1
+ str r1, [sp, 0x8]
+ b _080133B6
+_08013398:
+ cmp r8, r7
+ bne _080133AE
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080133AE
+ movs r2, 0x2
+ str r2, [sp, 0x8]
+ b _080133B6
+_080133AE:
+ cmp r8, r7
+ bcs _080133B6
+ movs r3, 0x1
+_080133B4:
+ str r3, [sp, 0x8]
+_080133B6:
+ ldr r0, [sp, 0x8]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end b_first_side
+
+ thumb_func_start sub_80133C8
+sub_80133C8: @ 80133C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r3, 0
+ ldr r0, _0801341C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08013434
+ ldr r0, _08013420 @ =gActiveBank
+ strb r3, [r0]
+ ldr r4, _08013424 @ =gNoOfAllBanks
+ mov r8, r0
+ ldrb r0, [r4]
+ cmp r3, r0
+ bcc _080133F0
+ b _08013622
+_080133F0:
+ ldr r7, _08013428 @ =gUnknown_02024A76
+ ldr r6, _0801342C @ =gActionForBanks
+ mov r2, r8
+ ldr r5, _08013430 @ =gTurnOrder
+_080133F8:
+ adds r1, r3, r7
+ ldrb r0, [r2]
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r1, r3, r5
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r3, 0x1
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4]
+ cmp r0, r1
+ bcc _080133F8
+ b _08013622
+ .align 2, 0
+_0801341C: .4byte gBattleTypeFlags
+_08013420: .4byte gActiveBank
+_08013424: .4byte gNoOfAllBanks
+_08013428: .4byte gUnknown_02024A76
+_0801342C: .4byte gActionForBanks
+_08013430: .4byte gTurnOrder
+_08013434:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08013484
+ ldr r0, _08013478 @ =gActiveBank
+ strb r3, [r0]
+ ldr r1, _0801347C @ =gNoOfAllBanks
+ mov r8, r0
+ adds r2, r1, 0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _08013494
+ ldr r0, _08013480 @ =gActionForBanks
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x3
+ beq _08013492
+_08013456:
+ mov r7, r8
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0801347C @ =gNoOfAllBanks
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08013494
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08013456
+ b _08013492
+ .align 2, 0
+_08013478: .4byte gActiveBank
+_0801347C: .4byte gNoOfAllBanks
+_08013480: .4byte gActionForBanks
+_08013484:
+ ldr r0, _080134FC @ =gActionForBanks
+ ldrb r0, [r0]
+ ldr r2, _08013500 @ =gActiveBank
+ mov r8, r2
+ cmp r0, 0x3
+ bne _08013494
+ strb r3, [r2]
+_08013492:
+ movs r3, 0x5
+_08013494:
+ cmp r3, 0x5
+ bne _08013520
+ ldr r6, _08013504 @ =gUnknown_02024A76
+ ldr r1, _080134FC @ =gActionForBanks
+ mov r3, r8
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r6]
+ ldr r2, _08013508 @ =gTurnOrder
+ ldrb r0, [r3]
+ strb r0, [r2]
+ movs r3, 0x1
+ movs r5, 0
+ adds r4, r1, 0
+ ldr r7, _0801350C @ =gBattleMainFunc
+ mov r9, r7
+ ldr r0, _08013510 @ =bc_80154A0
+ mov r12, r0
+ ldr r1, _08013514 @ =0x02000000
+ mov r10, r1
+ ldr r7, _08013518 @ =gNoOfAllBanks
+ ldrb r7, [r7]
+ cmp r5, r7
+ bge _080134EC
+ adds r7, r6, 0
+ adds r6, r4, 0
+ adds r4, r2, 0
+ ldr r2, _08013518 @ =gNoOfAllBanks
+_080134CE:
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _080134E4
+ adds r1, r3, r7
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, r4
+ strb r5, [r0]
+ adds r3, 0x1
+_080134E4:
+ adds r5, 0x1
+ ldrb r1, [r2]
+ cmp r5, r1
+ blt _080134CE
+_080134EC:
+ mov r2, r12
+ mov r3, r9
+ str r2, [r3]
+ ldr r1, _0801351C @ =0x0001601d
+ add r1, r10
+ movs r0, 0
+ strb r0, [r1]
+ b _08013632
+ .align 2, 0
+_080134FC: .4byte gActionForBanks
+_08013500: .4byte gActiveBank
+_08013504: .4byte gUnknown_02024A76
+_08013508: .4byte gTurnOrder
+_0801350C: .4byte gBattleMainFunc
+_08013510: .4byte bc_80154A0
+_08013514: .4byte 0x02000000
+_08013518: .4byte gNoOfAllBanks
+_0801351C: .4byte 0x0001601d
+_08013520:
+ movs r0, 0
+ mov r7, r8
+ strb r0, [r7]
+ ldr r1, _080135B0 @ =gNoOfAllBanks
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08013566
+ ldr r6, _080135B4 @ =gActionForBanks
+ mov r2, r8
+ ldr r5, _080135B8 @ =gUnknown_02024A76
+ ldr r4, _080135BC @ =gTurnOrder
+_08013536:
+ ldrb r0, [r2]
+ adds r0, r6
+ ldrb r1, [r0]
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08013554
+ adds r0, r3, r5
+ strb r1, [r0]
+ adds r1, r3, r4
+ mov r7, r8
+ ldrb r0, [r7]
+ strb r0, [r1]
+ adds r3, 0x1
+_08013554:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080135B0 @ =gNoOfAllBanks
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08013536
+_08013566:
+ movs r0, 0
+ mov r2, r8
+ strb r0, [r2]
+ ldr r7, _080135B0 @ =gNoOfAllBanks
+ ldrb r0, [r7]
+ cmp r0, 0
+ beq _080135AA
+ ldr r6, _080135B4 @ =gActionForBanks
+ ldr r5, _080135B8 @ =gUnknown_02024A76
+ ldr r4, _080135BC @ =gTurnOrder
+_0801357A:
+ ldrb r0, [r2]
+ adds r0, r6
+ ldrb r1, [r0]
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08013598
+ adds r0, r3, r5
+ strb r1, [r0]
+ adds r1, r3, r4
+ mov r7, r8
+ ldrb r0, [r7]
+ strb r0, [r1]
+ adds r3, 0x1
+_08013598:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080135B0 @ =gNoOfAllBanks
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0801357A
+_080135AA:
+ movs r5, 0
+ b _08013618
+ .align 2, 0
+_080135B0: .4byte gNoOfAllBanks
+_080135B4: .4byte gActionForBanks
+_080135B8: .4byte gUnknown_02024A76
+_080135BC: .4byte gTurnOrder
+_080135C0:
+ adds r4, r5, 0x1
+ adds r7, r4, 0
+ ldrb r1, [r1]
+ cmp r7, r1
+ bge _08013616
+ ldr r6, _08013640 @ =gUnknown_02024A76
+ lsls r2, r5, 24
+ mov r8, r2
+_080135D0:
+ ldr r0, _08013644 @ =gTurnOrder
+ adds r1, r5, r0
+ ldrb r3, [r1]
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ adds r0, r5, r6
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ beq _0801360C
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0801360C
+ cmp r2, 0x2
+ beq _0801360C
+ cmp r0, 0x2
+ beq _0801360C
+ adds r0, r3, 0
+ movs r2, 0
+ bl b_first_side
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801360C
+ lsls r1, r4, 24
+ lsrs r1, 24
+ mov r3, r8
+ lsrs r0, r3, 24
+ bl sub_8012FBC
+_0801360C:
+ adds r4, 0x1
+ ldr r0, _08013648 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _080135D0
+_08013616:
+ adds r5, r7, 0
+_08013618:
+ ldr r1, _08013648 @ =gNoOfAllBanks
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080135C0
+_08013622:
+ ldr r1, _0801364C @ =gBattleMainFunc
+ ldr r0, _08013650 @ =bc_80154A0
+ str r0, [r1]
+ ldr r0, _08013654 @ =0x02000000
+ ldr r7, _08013658 @ =0x0001601d
+ adds r0, r7
+ movs r1, 0
+ strb r1, [r0]
+_08013632:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013640: .4byte gUnknown_02024A76
+_08013644: .4byte gTurnOrder
+_08013648: .4byte gNoOfAllBanks
+_0801364C: .4byte gBattleMainFunc
+_08013650: .4byte bc_80154A0
+_08013654: .4byte 0x02000000
+_08013658: .4byte 0x0001601d
+ thumb_func_end sub_80133C8
+
+ thumb_func_start TurnValuesCleanUp
+TurnValuesCleanUp: @ 801365C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080136B4 @ =gActiveBank
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080136B8 @ =gNoOfAllBanks
+ ldrb r2, [r0]
+ adds r5, r1, 0
+ cmp r2, 0
+ beq _08013754
+ ldr r7, _080136BC @ =gProtectStructs
+ adds r6, r5, 0
+ ldr r0, _080136C0 @ =gUnknown_02024AD0
+ mov r12, r0
+ ldr r1, _080136C4 @ =gDisableStructs
+ mov r8, r1
+ mov r10, r8
+_0801368A:
+ mov r2, r9
+ cmp r2, 0
+ beq _080136C8
+ ldrb r1, [r6]
+ lsls r1, 4
+ adds r1, r7
+ ldrb r2, [r1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r6]
+ lsls r1, 4
+ adds r1, r7
+ ldrb r2, [r1]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ b _08013724
+ .align 2, 0
+_080136B4: .4byte gActiveBank
+_080136B8: .4byte gNoOfAllBanks
+_080136BC: .4byte gProtectStructs
+_080136C0: .4byte gUnknown_02024AD0
+_080136C4: .4byte gDisableStructs
+_080136C8:
+ ldrb r0, [r6]
+ lsls r0, 4
+ adds r2, r0, r7
+ movs r1, 0
+ mov r4, r10
+ movs r3, 0
+_080136D4:
+ adds r0, r2, r1
+ strb r3, [r0]
+ adds r1, 0x1
+ cmp r1, 0xF
+ bls _080136D4
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r4
+ ldrb r0, [r1, 0x16]
+ cmp r0, 0
+ beq _080136F2
+ subs r0, 0x1
+ strb r0, [r1, 0x16]
+_080136F2:
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r4
+ ldrb r0, [r1, 0x19]
+ cmp r0, 0
+ beq _08013724
+ subs r0, 0x1
+ strb r0, [r1, 0x19]
+ ldrb r2, [r5]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x19]
+ cmp r0, 0
+ bne _08013724
+ movs r0, 0x58
+ muls r2, r0
+ add r2, r12
+ ldr r0, [r2]
+ ldr r1, _0801376C @ =0xffbfffff
+ ands r0, r1
+ str r0, [r2]
+_08013724:
+ ldrb r2, [r5]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ bne _08013742
+ movs r0, 0x58
+ muls r2, r0
+ add r2, r12
+ ldr r0, [r2]
+ ldr r1, _08013770 @ =0xfeffffff
+ ands r0, r1
+ str r0, [r2]
+_08013742:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08013774 @ =gNoOfAllBanks
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0801368A
+_08013754:
+ movs r0, 0
+ ldr r2, _08013778 @ =gSideTimer
+ strb r0, [r2, 0x8]
+ strb r0, [r2, 0x14]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801376C: .4byte 0xffbfffff
+_08013770: .4byte 0xfeffffff
+_08013774: .4byte gNoOfAllBanks
+_08013778: .4byte gSideTimer
+ thumb_func_end TurnValuesCleanUp
+
+ thumb_func_start SpecialStatusesClear
+SpecialStatusesClear: @ 801377C
+ push {r4-r6,lr}
+ ldr r2, _080137C0 @ =gActiveBank
+ movs r0, 0
+ strb r0, [r2]
+ ldr r0, _080137C4 @ =gNoOfAllBanks
+ ldrb r1, [r0]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080137BA
+ adds r3, r2, 0
+ movs r4, 0
+ ldr r5, _080137C8 @ =gSpecialStatuses
+_08013794:
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r5
+ movs r1, 0
+_080137A0:
+ adds r0, r2, r1
+ strb r4, [r0]
+ adds r1, 0x1
+ cmp r1, 0x13
+ bls _080137A0
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6]
+ cmp r0, r1
+ bcc _08013794
+_080137BA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080137C0: .4byte gActiveBank
+_080137C4: .4byte gNoOfAllBanks
+_080137C8: .4byte gSpecialStatuses
+ thumb_func_end SpecialStatusesClear
+
+ thumb_func_start bc_80154A0
+bc_80154A0: @ 80137CC
+ push {r4-r7,lr}
+ ldr r0, _08013850 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _08013884
+ ldr r0, _08013854 @ =0x02000000
+ ldr r1, _08013858 @ =0x0001601d
+ adds r2, r0, r1
+ ldr r0, _0801385C @ =gNoOfAllBanks
+ ldrb r1, [r2]
+ adds r7, r0, 0
+ ldrb r0, [r7]
+ cmp r1, r0
+ bcs _08013884
+ ldr r6, _08013860 @ =gActiveBank
+ ldr r5, _08013864 @ =gBankAttacker
+ adds r4, r2, 0
+ movs r1, 0x84
+ lsls r1, 1
+ mov r12, r1
+_080137FA:
+ ldrb r0, [r4]
+ strb r0, [r5]
+ strb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08013868 @ =gChosenMovesByBanks
+ ldrb r3, [r6]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r12
+ bne _0801387C
+ ldr r1, _0801386C @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801387C
+ ldr r2, _08013870 @ =gDisableStructs
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x18]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0801387C
+ ldr r0, _08013874 @ =gProtectStructs
+ lsls r1, r3, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 29
+ cmp r0, 0
+ blt _0801387C
+ ldr r0, _08013878 @ =gUnknown_081D94DA
+ bl b_call_bc_move_exec
+ b _080138BE
+ .align 2, 0
+_08013850: .4byte gHitMarker
+_08013854: .4byte 0x02000000
+_08013858: .4byte 0x0001601d
+_0801385C: .4byte gNoOfAllBanks
+_08013860: .4byte gActiveBank
+_08013864: .4byte gBankAttacker
+_08013868: .4byte gChosenMovesByBanks
+_0801386C: .4byte gBattleMons
+_08013870: .4byte gDisableStructs
+_08013874: .4byte gProtectStructs
+_08013878: .4byte gUnknown_081D94DA
+_0801387C:
+ ldrb r0, [r4]
+ ldrb r2, [r7]
+ cmp r0, r2
+ bcc _080137FA
+_08013884:
+ bl b_clear_atk_up_if_hit_flag_unless_enraged
+ ldr r1, _080138C4 @ =gCurrentMoveTurn
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080138C8 @ =gFightStateTracker
+ ldr r0, _080138CC @ =gUnknown_02024A76
+ movs r2, 0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _080138D0 @ =gDynamicBasePower
+ movs r3, 0
+ strh r2, [r0]
+ ldr r1, _080138D4 @ =0x02000000
+ ldr r2, _080138D8 @ =0x0001601c
+ adds r0, r1, r2
+ strb r3, [r0]
+ ldr r2, _080138DC @ =gBattleMainFunc
+ ldr r0, _080138E0 @ =sub_80138F0
+ str r0, [r2]
+ ldr r0, _080138E4 @ =gBattleCommunication
+ strb r3, [r0, 0x3]
+ strb r3, [r0, 0x4]
+ ldr r2, _080138E8 @ =0x00016112
+ adds r0, r1, r2
+ strb r3, [r0]
+ ldr r0, _080138EC @ =0x00017130
+ adds r1, r0
+ strb r3, [r1]
+_080138BE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080138C4: .4byte gCurrentMoveTurn
+_080138C8: .4byte gFightStateTracker
+_080138CC: .4byte gUnknown_02024A76
+_080138D0: .4byte gDynamicBasePower
+_080138D4: .4byte 0x02000000
+_080138D8: .4byte 0x0001601c
+_080138DC: .4byte gBattleMainFunc
+_080138E0: .4byte sub_80138F0
+_080138E4: .4byte gBattleCommunication
+_080138E8: .4byte 0x00016112
+_080138EC: .4byte 0x00017130
+ thumb_func_end bc_80154A0
+
+ thumb_func_start sub_80138F0
+sub_80138F0: @ 80138F0
+ push {r4-r6,lr}
+ ldr r6, _08013944 @ =gBattleOutcome
+ ldrb r0, [r6]
+ ldr r2, _08013948 @ =gFightStateTracker
+ cmp r0, 0
+ beq _08013900
+ movs r0, 0xC
+ strb r0, [r2]
+_08013900:
+ ldr r1, _0801394C @ =0x02000000
+ ldr r4, _08013950 @ =gCurrentMoveTurn
+ ldrb r0, [r4]
+ ldr r3, _08013954 @ =0x00016057
+ adds r5, r1, r3
+ strb r0, [r5]
+ ldr r1, _08013958 @ =gUnknown_081FA640
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _0801395C @ =gNoOfAllBanks
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _08013970
+ ldr r2, _08013960 @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _08013964 @ =0xffefffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r3, _08013968 @ =gBattleMainFunc
+ ldr r2, _0801396C @ =gUnknown_081FA678
+ ldrb r1, [r6]
+ movs r0, 0x7F
+ ands r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3]
+ b _08013984
+ .align 2, 0
+_08013944: .4byte gBattleOutcome
+_08013948: .4byte gFightStateTracker
+_0801394C: .4byte 0x02000000
+_08013950: .4byte gCurrentMoveTurn
+_08013954: .4byte 0x00016057
+_08013958: .4byte gUnknown_081FA640
+_0801395C: .4byte gNoOfAllBanks
+_08013960: .4byte gHitMarker
+_08013964: .4byte 0xffefffff
+_08013968: .4byte gBattleMainFunc
+_0801396C: .4byte gUnknown_081FA678
+_08013970:
+ ldrb r0, [r5]
+ cmp r0, r1
+ beq _08013984
+ ldr r2, _0801398C @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _08013990 @ =0xfffffdff
+ ands r0, r1
+ ldr r1, _08013994 @ =0xfff7ffff
+ ands r0, r1
+ str r0, [r2]
+_08013984:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801398C: .4byte gHitMarker
+_08013990: .4byte 0xfffffdff
+_08013994: .4byte 0xfff7ffff
+ thumb_func_end sub_80138F0
+
+ thumb_func_start sub_8013998
+sub_8013998: @ 8013998
+ push {r4,lr}
+ ldr r1, _080139D0 @ =gFightStateTracker
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080139D4 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080139EC
+ ldr r1, _080139D8 @ =gBattleTextBuff1
+ ldr r4, _080139DC @ =gBattleOutcome
+ ldrb r0, [r4]
+ strb r0, [r1]
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r1, _080139E0 @ =gBankAttacker
+ strb r0, [r1]
+ ldr r1, _080139E4 @ =gBattlescriptCurrInstr
+ ldr r0, _080139E8 @ =gUnknown_081D8E02
+ str r0, [r1]
+ ldrb r1, [r4]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4]
+ b _08013B48
+ .align 2, 0
+_080139D0: .4byte gFightStateTracker
+_080139D4: .4byte gBattleTypeFlags
+_080139D8: .4byte gBattleTextBuff1
+_080139DC: .4byte gBattleOutcome
+_080139E0: .4byte gBankAttacker
+_080139E4: .4byte gBattlescriptCurrInstr
+_080139E8: .4byte gUnknown_081D8E02
+_080139EC:
+ movs r0, 0x90
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _08013A04
+ ldr r1, _080139FC @ =gBattlescriptCurrInstr
+ ldr r0, _08013A00 @ =gUnknown_081D8E0D
+ b _08013B46
+ .align 2, 0
+_080139FC: .4byte gBattlescriptCurrInstr
+_08013A00: .4byte gUnknown_081D8E0D
+_08013A04:
+ movs r0, 0xA
+ ands r0, r1
+ cmp r0, 0x8
+ beq _08013A0E
+ b _08013B42
+_08013A0E:
+ bl sub_80325B8
+ ldr r1, _08013A3C @ =gBattlescriptCurrInstr
+ ldr r0, _08013A40 @ =gUnknown_081D8DBE
+ str r0, [r1]
+ ldr r2, _08013A44 @ =gTrainers
+ ldr r0, _08013A48 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x2
+ cmp r0, 0x31
+ bls _08013A30
+ b _08013B38
+_08013A30:
+ lsls r0, 2
+ ldr r1, _08013A4C @ =_08013A50
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08013A3C: .4byte gBattlescriptCurrInstr
+_08013A40: .4byte gUnknown_081D8DBE
+_08013A44: .4byte gTrainers
+_08013A48: .4byte gTrainerBattleOpponent
+_08013A4C: .4byte _08013A50
+ .align 2, 0
+_08013A50:
+ .4byte _08013B24
+ .4byte _08013B24
+ .4byte _08013B24
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B18
+ .4byte _08013B2E
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B18
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B24
+ .4byte _08013B24
+ .4byte _08013B24
+_08013B18:
+ ldr r0, _08013B20 @ =0x00000163
+ bl PlayBGM
+ b _08013B48
+ .align 2, 0
+_08013B20: .4byte 0x00000163
+_08013B24:
+ movs r0, 0xD4
+ lsls r0, 1
+ bl PlayBGM
+ b _08013B48
+_08013B2E:
+ movs r0, 0xB1
+ lsls r0, 1
+ bl PlayBGM
+ b _08013B48
+_08013B38:
+ movs r0, 0xCE
+ lsls r0, 1
+ bl PlayBGM
+ b _08013B48
+_08013B42:
+ ldr r1, _08013B54 @ =gBattlescriptCurrInstr
+ ldr r0, _08013B58 @ =gUnknown_081D8DCE
+_08013B46:
+ str r0, [r1]
+_08013B48:
+ ldr r1, _08013B5C @ =gBattleMainFunc
+ ldr r0, _08013B60 @ =sub_8013C9C
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013B54: .4byte gBattlescriptCurrInstr
+_08013B58: .4byte gUnknown_081D8DCE
+_08013B5C: .4byte gBattleMainFunc
+_08013B60: .4byte sub_8013C9C
+ thumb_func_end sub_8013998
+
+ thumb_func_start sub_8013B64
+sub_8013B64: @ 8013B64
+ push {r4,lr}
+ ldr r1, _08013B9C @ =gFightStateTracker
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08013BA0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08013BB8
+ ldr r1, _08013BA4 @ =gBattleTextBuff1
+ ldr r4, _08013BA8 @ =gBattleOutcome
+ ldrb r0, [r4]
+ strb r0, [r1]
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r1, _08013BAC @ =gBankAttacker
+ strb r0, [r1]
+ ldr r1, _08013BB0 @ =gBattlescriptCurrInstr
+ ldr r0, _08013BB4 @ =gUnknown_081D8E02
+ str r0, [r1]
+ ldrb r1, [r4]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4]
+ b _08013BBE
+ .align 2, 0
+_08013B9C: .4byte gFightStateTracker
+_08013BA0: .4byte gBattleTypeFlags
+_08013BA4: .4byte gBattleTextBuff1
+_08013BA8: .4byte gBattleOutcome
+_08013BAC: .4byte gBankAttacker
+_08013BB0: .4byte gBattlescriptCurrInstr
+_08013BB4: .4byte gUnknown_081D8E02
+_08013BB8:
+ ldr r1, _08013BCC @ =gBattlescriptCurrInstr
+ ldr r0, _08013BD0 @ =gUnknown_081D8DD1
+ str r0, [r1]
+_08013BBE:
+ ldr r1, _08013BD4 @ =gBattleMainFunc
+ ldr r0, _08013BD8 @ =sub_8013C9C
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013BCC: .4byte gBattlescriptCurrInstr
+_08013BD0: .4byte gUnknown_081D8DD1
+_08013BD4: .4byte gBattleMainFunc
+_08013BD8: .4byte sub_8013C9C
+ thumb_func_end sub_8013B64
+
+ thumb_func_start sub_8013BDC
+sub_8013BDC: @ 8013BDC
+ push {lr}
+ ldr r1, _08013C04 @ =gFightStateTracker
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08013C08 @ =gProtectStructs
+ ldr r0, _08013C0C @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 27
+ lsrs r0, 30
+ cmp r0, 0x1
+ beq _08013C18
+ cmp r0, 0x2
+ beq _08013C28
+ ldr r1, _08013C10 @ =gBattlescriptCurrInstr
+ ldr r0, _08013C14 @ =gUnknown_081D8E29
+ b _08013C2C
+ .align 2, 0
+_08013C04: .4byte gFightStateTracker
+_08013C08: .4byte gProtectStructs
+_08013C0C: .4byte gBankAttacker
+_08013C10: .4byte gBattlescriptCurrInstr
+_08013C14: .4byte gUnknown_081D8E29
+_08013C18:
+ ldr r1, _08013C20 @ =gBattlescriptCurrInstr
+ ldr r0, _08013C24 @ =gUnknown_081D8E14
+ b _08013C2C
+ .align 2, 0
+_08013C20: .4byte gBattlescriptCurrInstr
+_08013C24: .4byte gUnknown_081D8E14
+_08013C28:
+ ldr r1, _08013C38 @ =gBattlescriptCurrInstr
+ ldr r0, _08013C3C @ =gUnknown_081D8E22
+_08013C2C:
+ str r0, [r1]
+ ldr r1, _08013C40 @ =gBattleMainFunc
+ ldr r0, _08013C44 @ =sub_8013C9C
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013C38: .4byte gBattlescriptCurrInstr
+_08013C3C: .4byte gUnknown_081D8E22
+_08013C40: .4byte gBattleMainFunc
+_08013C44: .4byte sub_8013C9C
+ thumb_func_end sub_8013BDC
+
+ thumb_func_start sub_8013C48
+sub_8013C48: @ 8013C48
+ ldr r1, _08013C7C @ =gFightStateTracker
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08013C80 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ ldr r2, _08013C84 @ =gBankAttacker
+ ldrb r0, [r2]
+ strb r0, [r1, 0x2]
+ ldr r3, _08013C88 @ =gBattlePartyID
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08013C8C @ =gBattlescriptCurrInstr
+ ldr r0, _08013C90 @ =gUnknown_081D8E30
+ str r0, [r1]
+ ldr r1, _08013C94 @ =gBattleMainFunc
+ ldr r0, _08013C98 @ =sub_8013C9C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08013C7C: .4byte gFightStateTracker
+_08013C80: .4byte gBattleTextBuff1
+_08013C84: .4byte gBankAttacker
+_08013C88: .4byte gBattlePartyID
+_08013C8C: .4byte gBattlescriptCurrInstr
+_08013C90: .4byte gUnknown_081D8E30
+_08013C94: .4byte gBattleMainFunc
+_08013C98: .4byte sub_8013C9C
+ thumb_func_end sub_8013C48
+
+ thumb_func_start sub_8013C9C
+sub_8013C9C: @ 8013C9C
+ push {r4-r7,lr}
+ ldr r0, _08013D00 @ =gFightStateTracker
+ ldrb r0, [r0]
+ subs r0, 0xB
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08013D7C
+ ldr r0, _08013D04 @ =gBattleTypeFlags
+ ldrh r0, [r0]
+ ldr r1, _08013D08 @ =0x00000b92
+ ands r1, r0
+ cmp r1, 0
+ bne _08013D4C
+ ldr r2, _08013D0C @ =gActiveBank
+ strb r1, [r2]
+ ldr r0, _08013D10 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08013D48
+ adds r4, r2, 0
+ ldr r6, _08013D14 @ =gBattleMons
+ movs r5, 0x58
+ adds r7, r6, 0
+ adds r7, 0x30
+_08013CCE:
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08013D36
+ ldr r2, _08013D18 @ =gBattleResults
+ ldrh r0, [r2, 0x6]
+ cmp r0, 0
+ bne _08013D1C
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r7
+ adds r0, r2, 0
+ adds r0, 0x8
+ bl StringCopy
+ b _08013D36
+ .align 2, 0
+_08013D00: .4byte gFightStateTracker
+_08013D04: .4byte gBattleTypeFlags
+_08013D08: .4byte 0x00000b92
+_08013D0C: .4byte gActiveBank
+_08013D10: .4byte gNoOfAllBanks
+_08013D14: .4byte gBattleMons
+_08013D18: .4byte gBattleResults
+_08013D1C:
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r2, 0x26]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r7
+ adds r0, r2, 0
+ adds r0, 0x14
+ bl StringCopy
+_08013D36:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08013D68 @ =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08013CCE
+_08013D48:
+ bl sub_80BDEC8
+_08013D4C:
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ ldr r1, _08013D6C @ =gBattleMainFunc
+ ldr r0, _08013D70 @ =sub_8013DA8
+ str r0, [r1]
+ ldr r1, _08013D74 @ =gUnknown_03005E94
+ ldr r0, _08013D78 @ =sub_800F808
+ str r0, [r1]
+ b _08013D96
+ .align 2, 0
+_08013D68: .4byte gNoOfAllBanks
+_08013D6C: .4byte gBattleMainFunc
+_08013D70: .4byte sub_8013DA8
+_08013D74: .4byte gUnknown_03005E94
+_08013D78: .4byte sub_800F808
+_08013D7C:
+ ldr r0, _08013D9C @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08013D96
+ ldr r1, _08013DA0 @ =gBattleScriptingCommandsTable
+ ldr r0, _08013DA4 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_08013D96:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013D9C: .4byte gBattleExecBuffer
+_08013DA0: .4byte gBattleScriptingCommandsTable
+_08013DA4: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8013C9C
+
+ thumb_func_start sub_8013DA8
+sub_8013DA8: @ 8013DA8
+ push {lr}
+ ldr r0, _08013DD0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08013DEA
+ bl ResetSpriteData
+ ldr r0, _08013DD4 @ =gLeveledUpInBattle
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08013DCA
+ ldr r0, _08013DD8 @ =gBattleOutcome
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08013DE4
+_08013DCA:
+ ldr r1, _08013DDC @ =gBattleMainFunc
+ ldr r0, _08013DE0 @ =c4_overworld
+ b _08013DE8
+ .align 2, 0
+_08013DD0: .4byte gPaletteFade
+_08013DD4: .4byte gLeveledUpInBattle
+_08013DD8: .4byte gBattleOutcome
+_08013DDC: .4byte gBattleMainFunc
+_08013DE0: .4byte c4_overworld
+_08013DE4:
+ ldr r1, _08013DF0 @ =gBattleMainFunc
+ ldr r0, _08013DF4 @ =bc_evolution_cutscene
+_08013DE8:
+ str r0, [r1]
+_08013DEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013DF0: .4byte gBattleMainFunc
+_08013DF4: .4byte bc_evolution_cutscene
+ thumb_func_end sub_8013DA8
+
+ thumb_func_start bc_evolution_cutscene
+bc_evolution_cutscene: @ 8013DF8
+ push {r4,r5,lr}
+ ldr r0, _08013E4C @ =gLeveledUpInBattle
+ ldrb r1, [r0]
+ adds r3, r0, 0
+ cmp r1, 0
+ beq _08013E6E
+_08013E04:
+ movs r5, 0
+_08013E06:
+ ldrb r2, [r3]
+ ldr r0, _08013E50 @ =gBitTable
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08013E60
+ bics r2, r1
+ strb r2, [r3]
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08013E54 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08013E60
+ ldr r0, _08013E58 @ =gBattleMainFunc
+ ldr r1, _08013E5C @ =sub_8013E88
+ str r1, [r0]
+ lsls r3, r5, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r2, 0
+ movs r2, 0x81
+ bl EvolutionScene
+ b _08013E74
+ .align 2, 0
+_08013E4C: .4byte gLeveledUpInBattle
+_08013E50: .4byte gBitTable
+_08013E54: .4byte gPlayerParty
+_08013E58: .4byte gBattleMainFunc
+_08013E5C: .4byte sub_8013E88
+_08013E60:
+ adds r5, 0x1
+ ldr r3, _08013E7C @ =gLeveledUpInBattle
+ cmp r5, 0x5
+ ble _08013E06
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _08013E04
+_08013E6E:
+ ldr r1, _08013E80 @ =gBattleMainFunc
+ ldr r0, _08013E84 @ =c4_overworld
+ str r0, [r1]
+_08013E74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013E7C: .4byte gLeveledUpInBattle
+_08013E80: .4byte gBattleMainFunc
+_08013E84: .4byte c4_overworld
+ thumb_func_end bc_evolution_cutscene
+
+ thumb_func_start sub_8013E88
+sub_8013E88: @ 8013E88
+ push {lr}
+ ldr r0, _08013EA0 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _08013EA4 @ =sub_800F808
+ cmp r1, r0
+ bne _08013E9A
+ ldr r1, _08013EA8 @ =gBattleMainFunc
+ ldr r0, _08013EAC @ =bc_evolution_cutscene
+ str r0, [r1]
+_08013E9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013EA0: .4byte gMain
+_08013EA4: .4byte sub_800F808
+_08013EA8: .4byte gBattleMainFunc
+_08013EAC: .4byte bc_evolution_cutscene
+ thumb_func_end sub_8013E88
+
+ thumb_func_start c4_overworld
+c4_overworld: @ 8013EB0
+ push {r4-r6,lr}
+ ldr r5, _08013F30 @ =gBattleTypeFlags
+ ldrh r1, [r5]
+ movs r6, 0x2
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08013ECE
+ ldr r4, _08013F34 @ =gPlayerParty
+ adds r0, r4, 0
+ bl RandomlyGivePartyPokerus
+ adds r0, r4, 0
+ bl PartySpreadPokerus
+_08013ECE:
+ ldrh r4, [r5]
+ adds r0, r6, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08013EE0
+ ldr r0, _08013F38 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08013F2A
+_08013EE0:
+ ldr r1, _08013F3C @ =gScriptResult
+ ldr r5, _08013F40 @ =gBattleOutcome
+ ldrb r0, [r5]
+ strh r0, [r1]
+ ldr r3, _08013F44 @ =gMain
+ ldr r0, _08013F48 @ =0x0000043d
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08013F4C @ =gPreBattleCallback1
+ ldr r0, [r0]
+ str r0, [r3]
+ movs r0, 0x80
+ lsls r0, 3
+ ands r0, r4
+ cmp r0, 0
+ beq _08013F1C
+ ldr r0, _08013F50 @ =gEnemyParty
+ bl UpdateRoamerHPStatus
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _08013F18
+ cmp r0, 0x7
+ bne _08013F1C
+_08013F18:
+ bl SetRoamerInactive
+_08013F1C:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r0, _08013F44 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_08013F2A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013F30: .4byte gBattleTypeFlags
+_08013F34: .4byte gPlayerParty
+_08013F38: .4byte gReceivedRemoteLinkPlayers
+_08013F3C: .4byte gScriptResult
+_08013F40: .4byte gBattleOutcome
+_08013F44: .4byte gMain
+_08013F48: .4byte 0x0000043d
+_08013F4C: .4byte gPreBattleCallback1
+_08013F50: .4byte gEnemyParty
+ thumb_func_end c4_overworld
+
+ thumb_func_start sub_8013F54
+sub_8013F54: @ 8013F54
+ push {lr}
+ ldr r0, _08013F84 @ =gFightStateTracker
+ ldrb r0, [r0]
+ subs r0, 0xB
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08013F90
+ ldr r2, _08013F88 @ =0x02017140
+ adds r1, r2, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08013F74
+ subs r0, 0x1
+ strb r0, [r1]
+_08013F74:
+ ldr r0, _08013F8C @ =gBattleMainFunc
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r0]
+ b _08013FAA
+ .align 2, 0
+_08013F84: .4byte gFightStateTracker
+_08013F88: .4byte 0x02017140
+_08013F8C: .4byte gBattleMainFunc
+_08013F90:
+ ldr r0, _08013FB0 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08013FAA
+ ldr r1, _08013FB4 @ =gBattleScriptingCommandsTable
+ ldr r0, _08013FB8 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_08013FAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013FB0: .4byte gBattleExecBuffer
+_08013FB4: .4byte gBattleScriptingCommandsTable
+_08013FB8: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8013F54
+
+ thumb_func_start sub_8013FBC
+sub_8013FBC: @ 8013FBC
+ push {lr}
+ ldr r0, _08013FDC @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08013FD8
+ ldr r1, _08013FE0 @ =gBattleScriptingCommandsTable
+ ldr r0, _08013FE4 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_08013FD8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013FDC: .4byte gBattleExecBuffer
+_08013FE0: .4byte gBattleScriptingCommandsTable
+_08013FE4: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8013FBC
+
+ thumb_func_start sub_8013FE8
+sub_8013FE8: @ 8013FE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r0, 0x4
+ str r0, [sp]
+ ldr r7, _08014028 @ =gBankAttacker
+ ldr r1, _0801402C @ =gTurnOrder
+ ldr r0, _08014030 @ =gCurrentMoveTurn
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r7]
+ ldr r1, _08014034 @ =0x02000000
+ mov r10, r1
+ ldr r0, _08014038 @ =0x000160a6
+ add r0, r10
+ ldrb r2, [r0]
+ ldr r1, _0801403C @ =gBitTable
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _08014044
+ ldr r1, _08014040 @ =gFightStateTracker
+ movs r0, 0xC
+ b _080146CC
+ .align 2, 0
+_08014028: .4byte gBankAttacker
+_0801402C: .4byte gTurnOrder
+_08014030: .4byte gCurrentMoveTurn
+_08014034: .4byte 0x02000000
+_08014038: .4byte 0x000160a6
+_0801403C: .4byte gBitTable
+_08014040: .4byte gFightStateTracker
+_08014044:
+ ldr r1, _080140B8 @ =gCritMultiplier
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080140BC @ =0x0001601f
+ add r1, r10
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080140C0 @ =0x000160e7
+ add r0, r10
+ strb r2, [r0]
+ ldr r0, _080140C4 @ =gBattleMoveFlags
+ strb r2, [r0]
+ ldr r0, _080140C8 @ =gMultiHitCounter
+ strb r2, [r0]
+ ldr r0, _080140CC @ =gBattleCommunication
+ strb r2, [r0, 0x6]
+ ldr r3, _080140D0 @ =gCurrMovePos
+ ldrb r0, [r7]
+ ldr r2, _080140D4 @ =0x0001608c
+ adds r0, r2
+ add r0, r10
+ ldrb r0, [r0]
+ ldr r4, _080140D8 @ =gUnknown_02024BE5
+ strb r0, [r4]
+ strb r0, [r3]
+ ldr r1, _080140DC @ =gProtectStructs
+ ldrb r2, [r7]
+ lsls r0, r2, 4
+ adds r5, r0, r1
+ ldrb r1, [r5]
+ lsls r0, r1, 29
+ adds r4, r2, 0
+ mov r8, r3
+ cmp r0, 0
+ bge _080140F0
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5]
+ ldr r2, _080140E0 @ =gCurrentMove
+ ldr r1, _080140E4 @ =gUnknown_02024BE8
+ movs r0, 0xA5
+ strh r0, [r1]
+ strh r0, [r2]
+ ldr r2, _080140E8 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 4
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0xA5
+ movs r1, 0
+ bl sub_801B5C0
+ ldrb r1, [r7]
+ ldr r2, _080140EC @ =0x00016010
+ adds r1, r2
+ b _08014200
+ .align 2, 0
+_080140B8: .4byte gCritMultiplier
+_080140BC: .4byte 0x0001601f
+_080140C0: .4byte 0x000160e7
+_080140C4: .4byte gBattleMoveFlags
+_080140C8: .4byte gMultiHitCounter
+_080140CC: .4byte gBattleCommunication
+_080140D0: .4byte gCurrMovePos
+_080140D4: .4byte 0x0001608c
+_080140D8: .4byte gUnknown_02024BE5
+_080140DC: .4byte gProtectStructs
+_080140E0: .4byte gCurrentMove
+_080140E4: .4byte gUnknown_02024BE8
+_080140E8: .4byte gHitMarker
+_080140EC: .4byte 0x00016010
+_080140F0:
+ ldr r1, _08014128 @ =gBattleMons
+ movs r0, 0x58
+ adds r5, r4, 0
+ muls r5, r0
+ adds r0, r1, 0
+ adds r0, 0x50
+ adds r0, r5, r0
+ ldr r2, [r0]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r2
+ cmp r0, 0
+ bne _08014114
+ movs r6, 0x80
+ lsls r6, 15
+ ands r6, r2
+ cmp r6, 0
+ beq _08014138
+_08014114:
+ ldr r3, _0801412C @ =gCurrentMove
+ ldr r2, _08014130 @ =gUnknown_02024BE8
+ ldr r1, _08014134 @ =gLockedMove
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ strh r0, [r3]
+ b _08014280
+ .align 2, 0
+_08014128: .4byte gBattleMons
+_0801412C: .4byte gCurrentMove
+_08014130: .4byte gUnknown_02024BE8
+_08014134: .4byte gLockedMove
+_08014138:
+ ldr r3, _08014188 @ =gDisableStructs
+ mov r12, r3
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r2, r0, r3
+ ldrh r4, [r2, 0x6]
+ adds r1, r4, 0
+ cmp r1, 0
+ beq _08014218
+ ldrb r3, [r2, 0xC]
+ lsls r0, r3, 1
+ adds r0, r5
+ str r0, [sp, 0x8]
+ ldr r0, _0801418C @ =gBattleMons
+ adds r0, 0xC
+ mov r9, r0
+ ldr r0, [sp, 0x8]
+ add r0, r9
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080141A0
+ ldr r1, _08014190 @ =gCurrentMove
+ ldr r0, _08014194 @ =gUnknown_02024BE8
+ strh r4, [r0]
+ strh r4, [r1]
+ ldrb r0, [r2, 0xC]
+ ldr r2, _08014198 @ =gUnknown_02024BE5
+ strb r0, [r2]
+ mov r3, r8
+ strb r0, [r3]
+ ldrh r0, [r1]
+ movs r1, 0
+ bl sub_801B5C0
+ ldrb r1, [r7]
+ ldr r4, _0801419C @ =0x00016010
+ adds r1, r4
+ b _08014200
+ .align 2, 0
+_08014188: .4byte gDisableStructs
+_0801418C: .4byte gBattleMons
+_08014190: .4byte gCurrentMove
+_08014194: .4byte gUnknown_02024BE8
+_08014198: .4byte gUnknown_02024BE5
+_0801419C: .4byte 0x00016010
+_080141A0:
+ cmp r1, 0
+ beq _08014218
+ cmp r1, r0
+ beq _08014218
+ ldr r0, _08014208 @ =gUnknown_02024BE5
+ strb r3, [r0]
+ mov r1, r8
+ strb r3, [r1]
+ ldr r3, _0801420C @ =gCurrentMove
+ ldr r1, _08014210 @ =gUnknown_02024BE8
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r5
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r1]
+ strh r0, [r3]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ movs r2, 0
+ strh r6, [r0, 0x6]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ strb r2, [r0, 0xC]
+ ldrb r0, [r7]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r12
+ ldrb r2, [r1, 0xE]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xE]
+ ldrh r0, [r3]
+ movs r1, 0
+ bl sub_801B5C0
+ ldrb r1, [r7]
+ ldr r3, _08014214 @ =0x00016010
+ adds r1, r3
+_08014200:
+ add r1, r10
+ strb r0, [r1]
+ b _08014280
+ .align 2, 0
+_08014208: .4byte gUnknown_02024BE5
+_0801420C: .4byte gCurrentMove
+_08014210: .4byte gUnknown_02024BE8
+_08014214: .4byte 0x00016010
+_08014218:
+ mov r4, r8
+ ldrb r0, [r4]
+ lsls r0, 1
+ ldr r4, _0801425C @ =gBankAttacker
+ ldrb r2, [r4]
+ movs r1, 0x58
+ muls r1, r2
+ adds r0, r1
+ ldr r1, _08014260 @ =gBattleMons
+ adds r1, 0xC
+ adds r0, r1
+ ldr r1, _08014264 @ =gChosenMovesByBanks
+ lsls r2, 1
+ adds r2, r1
+ ldrh r3, [r0]
+ ldrh r2, [r2]
+ cmp r3, r2
+ beq _08014278
+ ldr r1, _08014268 @ =gCurrentMove
+ ldr r0, _0801426C @ =gUnknown_02024BE8
+ strh r3, [r0]
+ strh r3, [r1]
+ ldrh r0, [r1]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r2, _08014270 @ =0x02000000
+ ldrb r1, [r4]
+ ldr r3, _08014274 @ =0x00016010
+ adds r1, r3
+ adds r1, r2
+ strb r0, [r1]
+ b _08014280
+ .align 2, 0
+_0801425C: .4byte gBankAttacker
+_08014260: .4byte gBattleMons
+_08014264: .4byte gChosenMovesByBanks
+_08014268: .4byte gCurrentMove
+_0801426C: .4byte gUnknown_02024BE8
+_08014270: .4byte 0x02000000
+_08014274: .4byte 0x00016010
+_08014278:
+ ldr r1, _08014298 @ =gCurrentMove
+ ldr r0, _0801429C @ =gUnknown_02024BE8
+ strh r3, [r0]
+ strh r3, [r1]
+_08014280:
+ ldr r0, _080142A0 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080142A8
+ ldr r0, _080142A4 @ =gBattleResults
+ ldr r1, _08014298 @ =gCurrentMove
+ ldrh r1, [r1]
+ strh r1, [r0, 0x22]
+ b _080142B0
+ .align 2, 0
+_08014298: .4byte gCurrentMove
+_0801429C: .4byte gUnknown_02024BE8
+_080142A0: .4byte gBankAttacker
+_080142A4: .4byte gBattleResults
+_080142A8:
+ ldr r0, _08014314 @ =gBattleResults
+ ldr r1, _08014318 @ =gCurrentMove
+ ldrh r1, [r1]
+ strh r1, [r0, 0x24]
+_080142B0:
+ ldr r4, _0801431C @ =gBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08014320 @ =gSideTimer
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r1
+ ldrb r0, [r5, 0x8]
+ adds r3, r4, 0
+ cmp r0, 0
+ beq _08014330
+ ldr r2, _08014324 @ =gBattleMoves
+ ldr r0, _08014318 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ bne _08014330
+ ldrb r0, [r3]
+ bl GetBankSide
+ adds r4, r0, 0
+ ldrb r0, [r5, 0x9]
+ bl GetBankSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _08014330
+ ldr r1, _08014328 @ =gBattleMons
+ ldrb r2, [r5, 0x9]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08014330
+ ldr r0, _0801432C @ =gBankTarget
+ strb r2, [r0]
+ b _080146AC
+ .align 2, 0
+_08014314: .4byte gBattleResults
+_08014318: .4byte gCurrentMove
+_0801431C: .4byte gBankAttacker
+_08014320: .4byte gSideTimer
+_08014324: .4byte gBattleMoves
+_08014328: .4byte gBattleMons
+_0801432C: .4byte gBankTarget
+_08014330:
+ ldr r2, _08014454 @ =gBattleTypeFlags
+ ldrh r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ ldr r3, _08014458 @ =gBankAttacker
+ mov r9, r2
+ cmp r0, 0
+ bne _08014342
+ b _0801461C
+_08014342:
+ ldr r1, _0801445C @ =gSideTimer
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r7, [r0, 0x8]
+ cmp r7, 0
+ beq _08014354
+ b _08014570
+_08014354:
+ ldr r2, _08014460 @ =gBattleMoves
+ ldr r0, _08014464 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08014370
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0x10
+ bne _08014370
+ b _08014570
+_08014370:
+ ldr r3, _08014468 @ =gBattleMons
+ ldr r0, _0801446C @ =0x02000000
+ mov r8, r0
+ ldr r2, _08014458 @ =gBankAttacker
+ ldrb r5, [r2]
+ ldr r1, _08014470 @ =0x00016010
+ adds r0, r5, r1
+ add r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r3, r2, 0
+ cmp r0, 0x1F
+ bne _08014394
+ b _08014570
+_08014394:
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0xD
+ beq _0801439C
+ b _08014570
+_0801439C:
+ adds r0, r5, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08014474 @ =gActiveBank
+ strb r7, [r1]
+ ldr r0, _08014478 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _08014416
+ adds r4, r1, 0
+ mov r5, r8
+_080143B6:
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ beq _08014404
+ ldr r0, _08014458 @ =gBankAttacker
+ ldrb r0, [r0]
+ ldr r2, _08014470 @ =0x00016010
+ adds r0, r2
+ adds r0, r5
+ ldrb r0, [r0]
+ ldrb r3, [r4]
+ cmp r0, r3
+ beq _08014404
+ ldr r1, _08014468 @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1F
+ bne _08014404
+ adds r0, r2, 0
+ bl sub_801E3B4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ cmp r0, r1
+ bcs _08014404
+ ldrb r0, [r4]
+ bl sub_801E3B4
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_08014404:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08014478 @ =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080143B6
+_08014416:
+ ldr r2, [sp]
+ cmp r2, 0x4
+ beq _0801441E
+ b _08014522
+_0801441E:
+ ldr r2, _08014460 @ =gBattleMoves
+ ldr r0, _0801447C @ =gUnknown_02024BE8
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ ldr r3, [sp]
+ ands r3, r0
+ cmp r3, 0
+ beq _080144A4
+ ldr r0, _08014458 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014484
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08014480
+ movs r0, 0x1
+ b _08014496
+ .align 2, 0
+_08014454: .4byte gBattleTypeFlags
+_08014458: .4byte gBankAttacker
+_0801445C: .4byte gSideTimer
+_08014460: .4byte gBattleMoves
+_08014464: .4byte gCurrentMove
+_08014468: .4byte gBattleMons
+_0801446C: .4byte 0x02000000
+_08014470: .4byte 0x00016010
+_08014474: .4byte gActiveBank
+_08014478: .4byte gNoOfAllBanks
+_0801447C: .4byte gUnknown_02024BE8
+_08014480:
+ movs r0, 0x3
+ b _08014496
+_08014484:
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08014494
+ movs r0, 0
+ b _08014496
+_08014494:
+ movs r0, 0x2
+_08014496:
+ bl GetBankByPlayerAI
+ ldr r1, _080144A0 @ =gBankTarget
+ strb r0, [r1]
+ b _080144B6
+ .align 2, 0
+_080144A0: .4byte gBankTarget
+_080144A4:
+ ldr r2, _080144EC @ =gBankTarget
+ ldr r1, _080144F0 @ =0x02000000
+ ldr r0, _080144F4 @ =gBankAttacker
+ ldrb r0, [r0]
+ ldr r4, _080144F8 @ =0x00016010
+ adds r0, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+_080144B6:
+ ldr r7, _080144FC @ =gAbsentBankFlags
+ ldrb r0, [r7]
+ ldr r1, _08014500 @ =gBitTable
+ mov r8, r1
+ ldr r5, _080144EC @ =gBankTarget
+ ldrb r1, [r5]
+ lsls r1, 2
+ add r1, r8
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _080144D0
+ b _080146AC
+_080144D0:
+ ldr r6, _080144F4 @ =gBankAttacker
+ ldrb r0, [r6]
+ bl GetBankSide
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ bl GetBankSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _08014504
+ ldrb r0, [r5]
+ b _0801469A
+ .align 2, 0
+_080144EC: .4byte gBankTarget
+_080144F0: .4byte 0x02000000
+_080144F4: .4byte gBankAttacker
+_080144F8: .4byte 0x00016010
+_080144FC: .4byte gAbsentBankFlags
+_08014500: .4byte gBitTable
+_08014504:
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ strb r0, [r5]
+ ldrb r1, [r7]
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ add r0, r8
+ b _08014690
+_08014522:
+ ldr r4, _0801455C @ =gActiveBank
+ ldr r0, _08014560 @ =gTurnOrder
+ ldr r2, [sp]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ ldr r2, _08014564 @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r0
+ adds r1, r2
+ adds r1, 0x20
+ ldrb r1, [r1]
+ bl sub_81074C4
+ ldr r2, _08014568 @ =gSpecialStatuses
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _0801456C @ =gBankTarget
+ ldrb r0, [r4]
+ strb r0, [r1]
+ b _080146AC
+ .align 2, 0
+_0801455C: .4byte gActiveBank
+_08014560: .4byte gTurnOrder
+_08014564: .4byte gBattleMons
+_08014568: .4byte gSpecialStatuses
+_0801456C: .4byte gBankTarget
+_08014570:
+ mov r4, r9
+ ldrh r1, [r4]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801461C
+ ldr r2, _080145B4 @ =gBattleMoves
+ ldr r0, _080145B8 @ =gUnknown_02024BE8
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801461C
+ ldrb r0, [r3]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080145C0
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080145BC
+ movs r0, 0x1
+ b _080145D2
+ .align 2, 0
+_080145B4: .4byte gBattleMoves
+_080145B8: .4byte gUnknown_02024BE8
+_080145BC:
+ movs r0, 0x3
+ b _080145D2
+_080145C0:
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080145D0
+ movs r0, 0
+ b _080145D2
+_080145D0:
+ movs r0, 0x2
+_080145D2:
+ bl GetBankByPlayerAI
+ ldr r1, _0801460C @ =gBankTarget
+ strb r0, [r1]
+ ldr r0, _08014610 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _08014614 @ =gBitTable
+ ldr r5, _0801460C @ =gBankTarget
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080146AC
+ ldr r0, _08014618 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ bl GetBankSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080146AC
+ ldrb r0, [r5]
+ b _0801469A
+ .align 2, 0
+_0801460C: .4byte gBankTarget
+_08014610: .4byte gAbsentBankFlags
+_08014614: .4byte gBitTable
+_08014618: .4byte gBankAttacker
+_0801461C:
+ ldr r5, _08014660 @ =gBankTarget
+ ldr r1, _08014664 @ =0x02000000
+ adds r2, r3, 0
+ ldrb r0, [r2]
+ ldr r4, _08014668 @ =0x00016010
+ adds r0, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r6, _0801466C @ =gAbsentBankFlags
+ ldrb r1, [r6]
+ ldr r7, _08014670 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080146AC
+ ldrb r0, [r2]
+ str r3, [sp, 0x4]
+ bl GetBankSide
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ bl GetBankSide
+ lsls r4, 24
+ lsls r0, 24
+ ldr r3, [sp, 0x4]
+ cmp r4, r0
+ beq _08014674
+ ldrb r0, [r5]
+ b _0801469A
+ .align 2, 0
+_08014660: .4byte gBankTarget
+_08014664: .4byte 0x02000000
+_08014668: .4byte 0x00016010
+_0801466C: .4byte gAbsentBankFlags
+_08014670: .4byte gBitTable
+_08014674:
+ ldrb r0, [r3]
+ bl GetBankIdentity
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ strb r0, [r5]
+ ldrb r1, [r6]
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r7
+_08014690:
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080146AC
+ adds r0, r2, 0
+_0801469A:
+ bl GetBankIdentity
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ strb r0, [r5]
+_080146AC:
+ ldr r4, _080146E0 @ =gBattlescriptCurrInstr
+ ldr r3, _080146E4 @ =gUnknown_081D6BBC
+ ldr r2, _080146E8 @ =gBattleMoves
+ ldr r0, _080146EC @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r4]
+ ldr r1, _080146F0 @ =gFightStateTracker
+ movs r0, 0xA
+_080146CC:
+ strb r0, [r1]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080146E0: .4byte gBattlescriptCurrInstr
+_080146E4: .4byte gUnknown_081D6BBC
+_080146E8: .4byte gBattleMoves
+_080146EC: .4byte gCurrentMove
+_080146F0: .4byte gFightStateTracker
+ thumb_func_end sub_8013FE8
+
+ thumb_func_start sub_80146F4
+sub_80146F4: @ 80146F4
+ push {r4,lr}
+ ldr r3, _08014764 @ =gBankAttacker
+ ldr r1, _08014768 @ =gTurnOrder
+ ldr r0, _0801476C @ =gCurrentMoveTurn
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r3]
+ ldr r0, _08014770 @ =gUnknown_030042A4
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _08014774 @ =gUnknown_030042A0
+ strh r2, [r0]
+ ldr r1, _08014778 @ =gActionSelectionCursor
+ ldrb r0, [r3]
+ adds r0, r1
+ strb r2, [r0]
+ ldr r1, _0801477C @ =gMoveSelectionCursor
+ ldrb r0, [r3]
+ adds r0, r1
+ strb r2, [r0]
+ ldr r2, _08014780 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x7
+ strb r0, [r2, 0x1]
+ ldrb r4, [r3]
+ strb r4, [r2, 0x2]
+ ldr r1, _08014784 @ =0x02000000
+ ldrb r0, [r3]
+ ldr r3, _08014788 @ =0x00016064
+ adds r0, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2, 0x3]
+ movs r0, 0xFF
+ strb r0, [r2, 0x4]
+ ldr r0, _0801478C @ =0x00016003
+ adds r1, r0
+ strb r4, [r1]
+ ldr r1, _08014790 @ =gBattlescriptCurrInstr
+ ldr r0, _08014794 @ =gUnknown_081D8E4E
+ str r0, [r1]
+ ldr r1, _08014798 @ =gFightStateTracker
+ movs r0, 0xA
+ strb r0, [r1]
+ ldr r1, _0801479C @ =gBattleResults
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xFE
+ bhi _0801475C
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+_0801475C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014764: .4byte gBankAttacker
+_08014768: .4byte gTurnOrder
+_0801476C: .4byte gCurrentMoveTurn
+_08014770: .4byte gUnknown_030042A4
+_08014774: .4byte gUnknown_030042A0
+_08014778: .4byte gActionSelectionCursor
+_0801477C: .4byte gMoveSelectionCursor
+_08014780: .4byte gBattleTextBuff1
+_08014784: .4byte 0x02000000
+_08014788: .4byte 0x00016064
+_0801478C: .4byte 0x00016003
+_08014790: .4byte gBattlescriptCurrInstr
+_08014794: .4byte gUnknown_081D8E4E
+_08014798: .4byte gFightStateTracker
+_0801479C: .4byte gBattleResults
+ thumb_func_end sub_80146F4
+
+ thumb_func_start sub_80147A0
+sub_80147A0: @ 80147A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08014804 @ =gBankAttacker
+ ldr r2, _08014808 @ =gBankTarget
+ ldr r1, _0801480C @ =gTurnOrder
+ ldr r0, _08014810 @ =gCurrentMoveTurn
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ strb r0, [r4]
+ ldr r0, _08014814 @ =gUnknown_030042A4
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _08014818 @ =gUnknown_030042A0
+ strh r2, [r0]
+ ldr r3, _0801481C @ =gDisableStructs
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strb r2, [r0, 0x10]
+ ldr r5, _08014820 @ =gLastUsedItem
+ ldr r2, _08014824 @ =gBattleBufferB
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ strh r3, [r5]
+ cmp r3, 0xC
+ bhi _08014830
+ ldr r2, _08014828 @ =gBattlescriptCurrInstr
+ ldr r1, _0801482C @ =gUnknown_081D9E48
+ ldrh r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ b _08014A8C
+ .align 2, 0
+_08014804: .4byte gBankAttacker
+_08014808: .4byte gBankTarget
+_0801480C: .4byte gTurnOrder
+_08014810: .4byte gCurrentMoveTurn
+_08014814: .4byte gUnknown_030042A4
+_08014818: .4byte gUnknown_030042A0
+_0801481C: .4byte gDisableStructs
+_08014820: .4byte gLastUsedItem
+_08014824: .4byte gBattleBufferB
+_08014828: .4byte gBattlescriptCurrInstr
+_0801482C: .4byte gUnknown_081D9E48
+_08014830:
+ adds r0, r3, 0
+ subs r0, 0x50
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0801484C
+ ldr r0, _08014844 @ =gBattlescriptCurrInstr
+ ldr r1, _08014848 @ =gUnknown_081D9E94
+ b _0801485C
+ .align 2, 0
+_08014844: .4byte gBattlescriptCurrInstr
+_08014848: .4byte gUnknown_081D9E94
+_0801484C:
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801486C
+ ldr r0, _08014864 @ =gBattlescriptCurrInstr
+ ldr r1, _08014868 @ =gUnknown_081D9E7C
+_0801485C:
+ ldr r1, [r1]
+ str r1, [r0]
+ b _08014A8C
+ .align 2, 0
+_08014864: .4byte gBattlescriptCurrInstr
+_08014868: .4byte gUnknown_081D9E7C
+_0801486C:
+ ldr r2, _080148A0 @ =0x02000000
+ ldrb r0, [r4]
+ ldr r3, _080148A4 @ =0x00016003
+ adds r1, r2, r3
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r1, _080148A8 @ =0x000160d8
+ adds r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ mov r8, r4
+ ldr r3, _080148AC @ =gBattlescriptCurrInstr
+ mov r9, r3
+ ldr r1, _080148B0 @ =gUnknown_081D9E7C
+ mov r10, r1
+ adds r7, r2, 0
+ cmp r0, 0x4
+ bls _08014896
+ b _08014A74
+_08014896:
+ lsls r0, 2
+ ldr r1, _080148B4 @ =_080148B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080148A0: .4byte 0x02000000
+_080148A4: .4byte 0x00016003
+_080148A8: .4byte 0x000160d8
+_080148AC: .4byte gBattlescriptCurrInstr
+_080148B0: .4byte gUnknown_081D9E7C
+_080148B4: .4byte _080148B8
+ .align 2, 0
+_080148B8:
+ .4byte _08014A74
+ .4byte _08014A74
+ .4byte _080148CC
+ .4byte _08014958
+ .4byte _08014A30
+_080148CC:
+ ldr r2, _08014904 @ =gBattleCommunication
+ movs r0, 0
+ strb r0, [r2, 0x5]
+ ldr r1, _08014908 @ =gBankAttacker
+ ldrb r0, [r1]
+ lsrs r0, 1
+ ldr r6, _0801490C @ =0x000160da
+ adds r0, r6
+ adds r0, r7
+ ldrb r3, [r0]
+ movs r0, 0x1
+ ands r0, r3
+ mov r8, r1
+ cmp r0, 0
+ beq _08014918
+ movs r0, 0x3E
+ ands r0, r3
+ ldr r3, _08014910 @ =gBattlescriptCurrInstr
+ mov r9, r3
+ ldr r1, _08014914 @ =gUnknown_081D9E7C
+ mov r10, r1
+ cmp r0, 0
+ bne _080148FC
+ b _08014A74
+_080148FC:
+ movs r0, 0x5
+ strb r0, [r2, 0x5]
+ b _08014A74
+ .align 2, 0
+_08014904: .4byte gBattleCommunication
+_08014908: .4byte gBankAttacker
+_0801490C: .4byte 0x000160da
+_08014910: .4byte gBattlescriptCurrInstr
+_08014914: .4byte gUnknown_081D9E7C
+_08014918:
+ ldr r3, _08014950 @ =gBattlescriptCurrInstr
+ mov r9, r3
+ ldr r0, _08014954 @ =gUnknown_081D9E7C
+ mov r10, r0
+ adds r5, r7, 0
+ mov r4, r8
+ adds r3, r6, 0
+_08014926:
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r5
+ ldrb r1, [r0]
+ lsrs r1, 1
+ strb r1, [r0]
+ ldrb r0, [r2, 0x5]
+ adds r0, 0x1
+ strb r0, [r2, 0x5]
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08014926
+ b _08014A74
+ .align 2, 0
+_08014950: .4byte gBattlescriptCurrInstr
+_08014954: .4byte gUnknown_081D9E7C
+_08014958:
+ ldr r3, _0801498C @ =gBattleCommunication
+ movs r0, 0x4
+ strb r0, [r3, 0x5]
+ ldr r2, _08014990 @ =gBankAttacker
+ ldrb r0, [r2]
+ lsrs r0, 1
+ ldr r1, _08014994 @ =0x000160da
+ mov r12, r1
+ add r0, r12
+ adds r6, r0, r7
+ ldrb r1, [r6]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r8, r2
+ cmp r5, 0
+ beq _080149A0
+ movs r0, 0x5
+ strb r0, [r3, 0x5]
+ ldr r2, _08014998 @ =gBattlescriptCurrInstr
+ mov r9, r2
+ ldr r3, _0801499C @ =gUnknown_081D9E7C
+ mov r10, r3
+ b _08014A74
+ .align 2, 0
+_0801498C: .4byte gBattleCommunication
+_08014990: .4byte gBankAttacker
+_08014994: .4byte 0x000160da
+_08014998: .4byte gBattlescriptCurrInstr
+_0801499C: .4byte gUnknown_081D9E7C
+_080149A0:
+ ldr r3, _08014A18 @ =gBattleTextBuff1
+ movs r4, 0xFD
+ strb r4, [r3]
+ movs r0, 0x5
+ strb r0, [r3, 0x1]
+ movs r2, 0x1
+ strb r2, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ ldr r1, _08014A1C @ =gBattleTextBuff2
+ strb r4, [r1]
+ strb r5, [r1, 0x1]
+ movs r0, 0xD2
+ strb r0, [r1, 0x2]
+ strb r5, [r1, 0x3]
+ subs r0, 0xD3
+ strb r0, [r1, 0x4]
+ ldrb r0, [r6]
+ ands r2, r0
+ ldr r0, _08014A20 @ =gBattlescriptCurrInstr
+ mov r9, r0
+ ldr r1, _08014A24 @ =gUnknown_081D9E7C
+ mov r10, r1
+ adds r6, r3, 0
+ cmp r2, 0
+ bne _08014A02
+ adds r3, r7, 0
+ mov r5, r8
+ mov r4, r12
+ adds r2, r6, 0
+_080149DC:
+ ldrb r0, [r5]
+ lsrs r0, 1
+ adds r0, r4
+ adds r0, r3
+ ldrb r1, [r0]
+ lsrs r1, 1
+ strb r1, [r0]
+ ldrb r0, [r2, 0x2]
+ adds r0, 0x1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r5]
+ lsrs r0, 1
+ adds r0, r4
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080149DC
+_08014A02:
+ ldrb r0, [r6, 0x2]
+ adds r0, 0xE
+ ldr r2, _08014A28 @ =0x000160a4
+ adds r1, r7, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldr r3, _08014A2C @ =0x000160a5
+ adds r0, r7, r3
+ strb r2, [r0]
+ b _08014A74
+ .align 2, 0
+_08014A18: .4byte gBattleTextBuff1
+_08014A1C: .4byte gBattleTextBuff2
+_08014A20: .4byte gBattlescriptCurrInstr
+_08014A24: .4byte gUnknown_081D9E7C
+_08014A28: .4byte 0x000160a4
+_08014A2C: .4byte 0x000160a5
+_08014A30:
+ ldr r0, _08014A50 @ =gBattleTypeFlags
+ ldrh r0, [r0]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08014A64
+ ldr r1, _08014A54 @ =gBattleCommunication
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ ldr r0, _08014A58 @ =gBankAttacker
+ mov r8, r0
+ ldr r1, _08014A5C @ =gBattlescriptCurrInstr
+ mov r9, r1
+ ldr r2, _08014A60 @ =gUnknown_081D9E7C
+ mov r10, r2
+ b _08014A74
+ .align 2, 0
+_08014A50: .4byte gBattleTypeFlags
+_08014A54: .4byte gBattleCommunication
+_08014A58: .4byte gBankAttacker
+_08014A5C: .4byte gBattlescriptCurrInstr
+_08014A60: .4byte gUnknown_081D9E7C
+_08014A64:
+ ldr r0, _08014AA0 @ =gBattleCommunication
+ strb r1, [r0, 0x5]
+ ldr r3, _08014AA4 @ =gBankAttacker
+ mov r8, r3
+ ldr r0, _08014AA8 @ =gBattlescriptCurrInstr
+ mov r9, r0
+ ldr r1, _08014AAC @ =gUnknown_081D9E7C
+ mov r10, r1
+_08014A74:
+ mov r2, r8
+ ldrb r0, [r2]
+ lsrs r0, 1
+ ldr r3, _08014AB0 @ =0x000160d8
+ adds r0, r3
+ adds r0, r7
+ ldrb r0, [r0]
+ lsls r0, 2
+ add r0, r10
+ ldr r0, [r0]
+ mov r1, r9
+ str r0, [r1]
+_08014A8C:
+ movs r0, 0xA
+ ldr r2, _08014AB4 @ =gFightStateTracker
+ strb r0, [r2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014AA0: .4byte gBattleCommunication
+_08014AA4: .4byte gBankAttacker
+_08014AA8: .4byte gBattlescriptCurrInstr
+_08014AAC: .4byte gUnknown_081D9E7C
+_08014AB0: .4byte 0x000160d8
+_08014AB4: .4byte gFightStateTracker
+ thumb_func_end sub_80147A0
+
+ thumb_func_start sub_8014AB8
+sub_8014AB8: @ 8014AB8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ ldr r1, _08014ADC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08014AE4
+ ldr r1, _08014AE0 @ =gEnigmaBerries
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x7]
+ b _08014AEE
+ .align 2, 0
+_08014ADC: .4byte gBattleMons
+_08014AE0: .4byte gEnigmaBerries
+_08014AE4:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r1, r0, 24
+_08014AEE:
+ ldr r0, _08014B18 @ =gStringBank
+ strb r4, [r0]
+ cmp r1, 0x25
+ bne _08014B28
+ ldr r2, _08014B1C @ =gLastUsedItem
+ ldr r1, _08014B20 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r2]
+ ldr r0, _08014B24 @ =gProtectStructs
+ lsls r2, r4, 4
+ adds r2, r0
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x19
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ b _08014B50
+ .align 2, 0
+_08014B18: .4byte gStringBank
+_08014B1C: .4byte gLastUsedItem
+_08014B20: .4byte gBattleMons
+_08014B24: .4byte gProtectStructs
+_08014B28:
+ ldr r6, _08014B5C @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r4, 0
+ muls r0, r2
+ adds r3, r0, r6
+ adds r0, r3, 0
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x32
+ bne _08014B68
+ ldr r0, _08014B60 @ =gLastUsedAbility
+ strb r1, [r0]
+ ldr r0, _08014B64 @ =gProtectStructs
+ lsls r2, r4, 4
+ adds r2, r0
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x19
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+_08014B50:
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _08014BC2
+ .align 2, 0
+_08014B5C: .4byte gBattleMons
+_08014B60: .4byte gLastUsedAbility
+_08014B64: .4byte gProtectStructs
+_08014B68:
+ ldr r0, _08014BDC @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08014BB6
+ movs r1, 0x1
+ adds r0, r4, 0
+ eors r0, r1
+ muls r0, r2
+ adds r2, r0, r6
+ ldrh r0, [r3, 0x6]
+ ldrh r1, [r2, 0x6]
+ cmp r0, r1
+ bcs _08014BB0
+ lsls r0, 7
+ ldrh r1, [r2, 0x6]
+ bl __divsi3
+ adds r4, r0, 0
+ ldr r0, _08014BE0 @ =0x02000000
+ ldr r1, _08014BE4 @ =0x00016078
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 1
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r4, r1
+ bls _08014BB6
+_08014BB0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08014BB6:
+ ldr r1, _08014BE0 @ =0x02000000
+ ldr r0, _08014BE4 @ =0x00016078
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08014BC2:
+ cmp r5, 0
+ beq _08014BD4
+ ldr r1, _08014BE8 @ =gCurrentMoveTurn
+ ldr r0, _08014BEC @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _08014BF0 @ =gBattleOutcome
+ movs r0, 0x4
+ strb r0, [r1]
+_08014BD4:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08014BDC: .4byte gBattleTypeFlags
+_08014BE0: .4byte 0x02000000
+_08014BE4: .4byte 0x00016078
+_08014BE8: .4byte gCurrentMoveTurn
+_08014BEC: .4byte gNoOfAllBanks
+_08014BF0: .4byte gBattleOutcome
+ thumb_func_end sub_8014AB8
+
+ thumb_func_start sub_8014BF4
+sub_8014BF4: @ 8014BF4
+ push {r4-r6,lr}
+ ldr r4, _08014C44 @ =gBankAttacker
+ ldr r1, _08014C48 @ =gTurnOrder
+ ldr r5, _08014C4C @ =gCurrentMoveTurn
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r0, _08014C50 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08014C9C
+ ldr r0, _08014C54 @ =gNoOfAllBanks
+ ldrb r1, [r0]
+ strb r1, [r5]
+ ldr r2, _08014C58 @ =gActiveBank
+ movs r0, 0
+ strb r0, [r2]
+ lsls r1, 24
+ cmp r1, 0
+ beq _08014C88
+ adds r4, r2, 0
+ ldr r6, _08014C5C @ =gActionForBanks
+ ldr r5, _08014C60 @ =gBattleOutcome
+_08014C28:
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014C64
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08014C76
+ ldrb r0, [r5]
+ movs r1, 0x2
+ b _08014C72
+ .align 2, 0
+_08014C44: .4byte gBankAttacker
+_08014C48: .4byte gTurnOrder
+_08014C4C: .4byte gCurrentMoveTurn
+_08014C50: .4byte gBattleTypeFlags
+_08014C54: .4byte gNoOfAllBanks
+_08014C58: .4byte gActiveBank
+_08014C5C: .4byte gActionForBanks
+_08014C60: .4byte gBattleOutcome
+_08014C64:
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08014C76
+ ldrb r0, [r5]
+ movs r1, 0x1
+_08014C72:
+ orrs r0, r1
+ strb r0, [r5]
+_08014C76:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08014C94 @ =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08014C28
+_08014C88:
+ ldr r0, _08014C98 @ =gBattleOutcome
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ b _08014D40
+ .align 2, 0
+_08014C94: .4byte gNoOfAllBanks
+_08014C98: .4byte gBattleOutcome
+_08014C9C:
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014CF4
+ ldrb r0, [r4]
+ bl sub_8014AB8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014D40
+ ldr r1, _08014CDC @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _08014CE0 @ =0xfdffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r1, _08014CE4 @ =gBattleCommunication
+ movs r0, 0x3
+ strb r0, [r1, 0x5]
+ ldr r1, _08014CE8 @ =gBattlescriptCurrInstr
+ ldr r0, _08014CEC @ =gUnknown_081D8E3B
+ str r0, [r1]
+ ldr r1, _08014CF0 @ =gFightStateTracker
+ movs r0, 0xA
+ b _08014D3E
+ .align 2, 0
+_08014CDC: .4byte gBattleMons
+_08014CE0: .4byte 0xfdffffff
+_08014CE4: .4byte gBattleCommunication
+_08014CE8: .4byte gBattlescriptCurrInstr
+_08014CEC: .4byte gUnknown_081D8E3B
+_08014CF0: .4byte gFightStateTracker
+_08014CF4:
+ ldr r1, _08014D1C @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08014D20 @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ beq _08014D34
+ ldr r1, _08014D24 @ =gBattleCommunication
+ movs r0, 0x4
+ strb r0, [r1, 0x5]
+ ldr r1, _08014D28 @ =gBattlescriptCurrInstr
+ ldr r0, _08014D2C @ =gUnknown_081D8E3B
+ str r0, [r1]
+ ldr r1, _08014D30 @ =gFightStateTracker
+ movs r0, 0xA
+ b _08014D3E
+ .align 2, 0
+_08014D1C: .4byte gBattleMons
+_08014D20: .4byte 0x0400e000
+_08014D24: .4byte gBattleCommunication
+_08014D28: .4byte gBattlescriptCurrInstr
+_08014D2C: .4byte gUnknown_081D8E3B
+_08014D30: .4byte gFightStateTracker
+_08014D34:
+ ldr r0, _08014D48 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r1, _08014D4C @ =gBattleOutcome
+ movs r0, 0x6
+_08014D3E:
+ strb r0, [r1]
+_08014D40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014D48: .4byte gNoOfAllBanks
+_08014D4C: .4byte gBattleOutcome
+ thumb_func_end sub_8014BF4
+
+ thumb_func_start sub_8014D50
+sub_8014D50: @ 8014D50
+ ldr r2, _08014D78 @ =gBankAttacker
+ ldr r1, _08014D7C @ =gTurnOrder
+ ldr r0, _08014D80 @ =gCurrentMoveTurn
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _08014D84 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08014D88 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r1, _08014D8C @ =gBattlescriptCurrInstr
+ ldr r0, _08014D90 @ =gUnknown_081D9E98
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r1, _08014D94 @ =gFightStateTracker
+ movs r0, 0xA
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08014D78: .4byte gBankAttacker
+_08014D7C: .4byte gTurnOrder
+_08014D80: .4byte gCurrentMoveTurn
+_08014D84: .4byte gUnknown_030042A4
+_08014D88: .4byte gUnknown_030042A0
+_08014D8C: .4byte gBattlescriptCurrInstr
+_08014D90: .4byte gUnknown_081D9E98
+_08014D94: .4byte gFightStateTracker
+ thumb_func_end sub_8014D50
+
+ thumb_func_start sub_8014D98
+sub_8014D98: @ 8014D98
+ ldr r2, _08014DD0 @ =gBankAttacker
+ ldr r1, _08014DD4 @ =gTurnOrder
+ ldr r0, _08014DD8 @ =gCurrentMoveTurn
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _08014DDC @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08014DE0 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r1, _08014DE4 @ =gNumSafariBalls
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08014DE8 @ =gLastUsedItem
+ movs r0, 0x5
+ strh r0, [r1]
+ ldr r1, _08014DEC @ =gBattlescriptCurrInstr
+ ldr r0, _08014DF0 @ =gUnknown_081D9E48
+ ldr r0, [r0, 0x14]
+ str r0, [r1]
+ ldr r1, _08014DF4 @ =gFightStateTracker
+ movs r0, 0xA
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08014DD0: .4byte gBankAttacker
+_08014DD4: .4byte gTurnOrder
+_08014DD8: .4byte gCurrentMoveTurn
+_08014DDC: .4byte gUnknown_030042A4
+_08014DE0: .4byte gUnknown_030042A0
+_08014DE4: .4byte gNumSafariBalls
+_08014DE8: .4byte gLastUsedItem
+_08014DEC: .4byte gBattlescriptCurrInstr
+_08014DF0: .4byte gUnknown_081D9E48
+_08014DF4: .4byte gFightStateTracker
+ thumb_func_end sub_8014D98
+
+ thumb_func_start sub_8014DF8
+sub_8014DF8: @ 8014DF8
+ push {r4-r6,lr}
+ ldr r3, _08014E68 @ =gBankAttacker
+ ldr r1, _08014E6C @ =gTurnOrder
+ ldr r0, _08014E70 @ =gCurrentMoveTurn
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r3]
+ ldr r0, _08014E74 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08014E78 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r6, _08014E7C @ =gBattleCommunication
+ ldr r2, _08014E80 @ =gBattleBufferB
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ strb r0, [r6, 0x5]
+ ldr r1, _08014E84 @ =gLastUsedItem
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r2, 0x2
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldr r2, _08014E88 @ =0x02000000
+ ldr r0, _08014E8C @ =0x00016087
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _08014E42
+ adds r0, 0x1
+ strb r0, [r1]
+_08014E42:
+ ldr r0, _08014E90 @ =0x00016088
+ adds r4, r2, r0
+ ldrb r5, [r4]
+ adds r3, r5, 0
+ cmp r3, 0x1
+ bls _08014E9C
+ ldr r2, _08014E94 @ =gUnknown_081FA70C
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrb r6, [r6, 0x5]
+ adds r0, r6
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _08014E98
+ movs r0, 0x1
+ b _08014E9A
+ .align 2, 0
+_08014E68: .4byte gBankAttacker
+_08014E6C: .4byte gTurnOrder
+_08014E70: .4byte gCurrentMoveTurn
+_08014E74: .4byte gUnknown_030042A4
+_08014E78: .4byte gUnknown_030042A0
+_08014E7C: .4byte gBattleCommunication
+_08014E80: .4byte gBattleBufferB
+_08014E84: .4byte gLastUsedItem
+_08014E88: .4byte 0x02000000
+_08014E8C: .4byte 0x00016087
+_08014E90: .4byte 0x00016088
+_08014E94: .4byte gUnknown_081FA70C
+_08014E98:
+ subs r0, r5, r0
+_08014E9A:
+ strb r0, [r4]
+_08014E9C:
+ ldr r1, _08014EB0 @ =gBattlescriptCurrInstr
+ ldr r0, _08014EB4 @ =gUnknown_081D9E98
+ ldr r0, [r0, 0x8]
+ str r0, [r1]
+ ldr r1, _08014EB8 @ =gFightStateTracker
+ movs r0, 0xA
+ strb r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014EB0: .4byte gBattlescriptCurrInstr
+_08014EB4: .4byte gUnknown_081D9E98
+_08014EB8: .4byte gFightStateTracker
+ thumb_func_end sub_8014DF8
+
+ thumb_func_start sub_8014EBC
+sub_8014EBC: @ 8014EBC
+ push {r4,r5,lr}
+ ldr r2, _08014F28 @ =gBankAttacker
+ ldr r1, _08014F2C @ =gTurnOrder
+ ldr r0, _08014F30 @ =gCurrentMoveTurn
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _08014F34 @ =gUnknown_030042A4
+ movs r5, 0
+ strh r5, [r0]
+ ldr r0, _08014F38 @ =gUnknown_030042A0
+ strh r5, [r0]
+ ldr r3, _08014F3C @ =0x02000000
+ ldr r0, _08014F40 @ =0x00016089
+ adds r2, r3, r0
+ ldr r1, _08014F44 @ =gUnknown_081FA71B
+ subs r0, 0x3
+ adds r4, r3, r0
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldrb r1, [r2]
+ adds r0, r1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ bls _08014EFA
+ movs r0, 0x14
+ strb r0, [r2]
+_08014EFA:
+ ldr r0, _08014F48 @ =0x00016088
+ adds r2, r3, r0
+ ldr r1, _08014F4C @ =gUnknown_081FA71F
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldrb r1, [r2]
+ adds r0, r1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ bls _08014F18
+ movs r0, 0x14
+ strb r0, [r2]
+_08014F18:
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ bhi _08014F54
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r0, _08014F50 @ =gBattleCommunication
+ strb r5, [r0, 0x5]
+ b _08014F5A
+ .align 2, 0
+_08014F28: .4byte gBankAttacker
+_08014F2C: .4byte gTurnOrder
+_08014F30: .4byte gCurrentMoveTurn
+_08014F34: .4byte gUnknown_030042A4
+_08014F38: .4byte gUnknown_030042A0
+_08014F3C: .4byte 0x02000000
+_08014F40: .4byte 0x00016089
+_08014F44: .4byte gUnknown_081FA71B
+_08014F48: .4byte 0x00016088
+_08014F4C: .4byte gUnknown_081FA71F
+_08014F50: .4byte gBattleCommunication
+_08014F54:
+ ldr r1, _08014F70 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_08014F5A:
+ ldr r1, _08014F74 @ =gBattlescriptCurrInstr
+ ldr r0, _08014F78 @ =gUnknown_081D9E98
+ ldr r0, [r0, 0x4]
+ str r0, [r1]
+ ldr r1, _08014F7C @ =gFightStateTracker
+ movs r0, 0xA
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014F70: .4byte gBattleCommunication
+_08014F74: .4byte gBattlescriptCurrInstr
+_08014F78: .4byte gUnknown_081D9E98
+_08014F7C: .4byte gFightStateTracker
+ thumb_func_end sub_8014EBC
+
+ thumb_func_start bs8_exit_by_flight
+bs8_exit_by_flight: @ 8014F80
+ push {r4,lr}
+ ldr r2, _08014FA8 @ =gBankAttacker
+ ldr r1, _08014FAC @ =gTurnOrder
+ ldr r4, _08014FB0 @ =gCurrentMoveTurn
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0x11
+ bl PlaySE
+ ldr r0, _08014FB4 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r1, _08014FB8 @ =gBattleOutcome
+ movs r0, 0x4
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014FA8: .4byte gBankAttacker
+_08014FAC: .4byte gTurnOrder
+_08014FB0: .4byte gCurrentMoveTurn
+_08014FB4: .4byte gNoOfAllBanks
+_08014FB8: .4byte gBattleOutcome
+ thumb_func_end bs8_exit_by_flight
+
+ thumb_func_start sub_8014FBC
+sub_8014FBC: @ 8014FBC
+ ldr r3, _08015008 @ =gBankAttacker
+ ldr r1, _0801500C @ =gTurnOrder
+ ldr r0, _08015010 @ =gCurrentMoveTurn
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ strb r2, [r3]
+ ldr r0, _08015014 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08015018 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r1, _0801501C @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ ldr r2, _08015020 @ =gBattlePartyID
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08015024 @ =gBattlescriptCurrInstr
+ ldr r0, _08015028 @ =gUnknown_081D9E98
+ ldr r0, [r0, 0xC]
+ str r0, [r1]
+ ldr r1, _0801502C @ =gFightStateTracker
+ movs r0, 0xA
+ strb r0, [r1]
+ ldr r1, _08015030 @ =gUnknown_02024A76
+ movs r0, 0xC
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_08015008: .4byte gBankAttacker
+_0801500C: .4byte gTurnOrder
+_08015010: .4byte gCurrentMoveTurn
+_08015014: .4byte gUnknown_030042A4
+_08015018: .4byte gUnknown_030042A0
+_0801501C: .4byte gBattleTextBuff1
+_08015020: .4byte gBattlePartyID
+_08015024: .4byte gBattlescriptCurrInstr
+_08015028: .4byte gUnknown_081D9E98
+_0801502C: .4byte gFightStateTracker
+_08015030: .4byte gUnknown_02024A76
+ thumb_func_end sub_8014FBC
+
+ thumb_func_start bsB_exit_by_move
+bsB_exit_by_move: @ 8015034
+ push {lr}
+ bl sub_80173A4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08015050
+ ldr r0, _08015054 @ =0x02000000
+ ldr r2, _08015058 @ =0x00016059
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, _0801505C @ =gFightStateTracker
+ movs r0, 0xC
+ strb r0, [r1]
+_08015050:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015054: .4byte 0x02000000
+_08015058: .4byte 0x00016059
+_0801505C: .4byte gFightStateTracker
+ thumb_func_end bsB_exit_by_move
+
+ thumb_func_start sub_8015060
+sub_8015060: @ 8015060
+ ldr r1, _08015080 @ =gCurrentMoveTurn
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r3, _08015084 @ =gFightStateTracker
+ ldr r2, _08015088 @ =gUnknown_02024A76
+ ldrb r0, [r1]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r3]
+ ldr r2, _0801508C @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _08015090 @ =0xf1e892af
+ ands r0, r1
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_08015080: .4byte gCurrentMoveTurn
+_08015084: .4byte gFightStateTracker
+_08015088: .4byte gUnknown_02024A76
+_0801508C: .4byte gHitMarker
+_08015090: .4byte 0xf1e892af
+ thumb_func_end sub_8015060
+
+ thumb_func_start bsC_8016D70
+bsC_8016D70: @ 8015094
+ push {r4,r5,lr}
+ ldr r1, _0801510C @ =gCurrentMoveTurn
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r3, _08015110 @ =gFightStateTracker
+ ldr r2, _08015114 @ =gUnknown_02024A76
+ ldrb r0, [r1]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r3]
+ bl SpecialStatusesClear
+ ldr r2, _08015118 @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _0801511C @ =0xf1e892af
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _08015120 @ =gBattleMoveDamage
+ movs r4, 0
+ str r4, [r0]
+ ldr r1, _08015124 @ =0x02000000
+ ldr r2, _08015128 @ =0x00016002
+ adds r0, r1, r2
+ strb r4, [r0]
+ ldr r3, _0801512C @ =0x000160a1
+ adds r0, r1, r3
+ strb r4, [r0]
+ ldr r2, _08015130 @ =gMoveHitWith
+ ldr r5, _08015134 @ =gBankAttacker
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0
+ strh r4, [r0]
+ ldr r3, _08015138 @ =gUnknown_02024C44
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r3
+ strh r4, [r0]
+ ldr r3, _0801513C @ =0x0001601c
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _08015140 @ =gDynamicBasePower
+ strh r4, [r0]
+ subs r3, 0x10
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _08015144 @ =gBattleCommunication
+ strb r2, [r0, 0x3]
+ strb r2, [r0, 0x4]
+ ldr r3, _08015148 @ =0x00016112
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _0801514C @ =0x00017130
+ adds r1, r0
+ strb r2, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801510C: .4byte gCurrentMoveTurn
+_08015110: .4byte gFightStateTracker
+_08015114: .4byte gUnknown_02024A76
+_08015118: .4byte gHitMarker
+_0801511C: .4byte 0xf1e892af
+_08015120: .4byte gBattleMoveDamage
+_08015124: .4byte 0x02000000
+_08015128: .4byte 0x00016002
+_0801512C: .4byte 0x000160a1
+_08015130: .4byte gMoveHitWith
+_08015134: .4byte gBankAttacker
+_08015138: .4byte gUnknown_02024C44
+_0801513C: .4byte 0x0001601c
+_08015140: .4byte gDynamicBasePower
+_08015144: .4byte gBattleCommunication
+_08015148: .4byte 0x00016112
+_0801514C: .4byte 0x00017130
+ thumb_func_end bsC_8016D70
+
+ thumb_func_start sub_8015150
+sub_8015150: @ 8015150
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ cmp r0, 0xA
+ bhi _080151C8
+ lsls r0, 2
+ ldr r1, _08015168 @ =_0801516C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08015168: .4byte _0801516C
+ .align 2, 0
+_0801516C:
+ .4byte _08015198
+ .4byte _080151A0
+ .4byte _080151A8
+ .4byte _080151C4
+ .4byte _080151C8
+ .4byte _080151C4
+ .4byte _080151C8
+ .4byte _080151B0
+ .4byte _080151C8
+ .4byte _080151C8
+ .4byte _080151B4
+_08015198:
+ ldr r0, _0801519C @ =gBankTarget
+ b _080151C6
+ .align 2, 0
+_0801519C: .4byte gBankTarget
+_080151A0:
+ ldr r0, _080151A4 @ =gBankAttacker
+ b _080151C6
+ .align 2, 0
+_080151A4: .4byte gBankAttacker
+_080151A8:
+ ldr r0, _080151AC @ =gEffectBank
+ b _080151C6
+ .align 2, 0
+_080151AC: .4byte gEffectBank
+_080151B0:
+ movs r2, 0
+ b _080151C8
+_080151B4:
+ ldr r0, _080151BC @ =0x02000000
+ ldr r1, _080151C0 @ =0x00016003
+ adds r0, r1
+ b _080151C6
+ .align 2, 0
+_080151BC: .4byte 0x02000000
+_080151C0: .4byte 0x00016003
+_080151C4:
+ ldr r0, _080151D0 @ =gBank1
+_080151C6:
+ ldrb r2, [r0]
+_080151C8:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080151D0: .4byte gBank1
+ thumb_func_end sub_8015150
+
+ thumb_func_start sub_80151D4
+sub_80151D4: @ 80151D4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r1, _08015204 @ =gBattleMons
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r12, r1
+ cmp r0, 0x2E
+ bne _08015286
+ movs r3, 0
+ adds r0, r5, 0
+ muls r0, r4
+ adds r1, 0xC
+ adds r1, r0, r1
+ b _08015210
+ .align 2, 0
+_08015204: .4byte gBattleMons
+_08015208:
+ adds r1, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _08015216
+_08015210:
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _08015208
+_08015216:
+ cmp r3, 0x4
+ beq _08015286
+ movs r7, 0x58
+ adds r2, r5, 0
+ muls r2, r7
+ adds r0, r3, r2
+ mov r6, r12
+ adds r6, 0x24
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08015232
+ subs r0, 0x1
+ strb r0, [r1]
+_08015232:
+ mov r0, r12
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08015286
+ ldr r1, _08015290 @ =gDisableStructs
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _08015294 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08015286
+ ldr r4, _08015298 @ =gActiveBank
+ strb r5, [r4]
+ adds r1, r3, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r4]
+ muls r0, r7
+ adds r0, r6
+ adds r0, r3
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_08015286:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015290: .4byte gDisableStructs
+_08015294: .4byte gBitTable
+_08015298: .4byte gActiveBank
+ thumb_func_end sub_80151D4
+
+ thumb_func_start sub_801529C
+sub_801529C: @ 801529C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x4
+ mov r8, r0
+ adds r0, r5, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r4, 0
+ ldr r0, _080153BC @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08015344
+ ldr r1, _080153C0 @ =gBattleMons
+ movs r0, 0x58
+ adds r7, r5, 0
+ muls r7, r0
+ adds r1, 0xC
+ mov r10, r1
+_080152D2:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r4, 0x1
+ cmp r9, r0
+ beq _0801533A
+ ldr r0, _080153C0 @ =gBattleMons
+ movs r3, 0x58
+ adds r1, r4, 0
+ muls r1, r3
+ adds r1, r0
+ adds r1, 0x20
+ ldrb r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0x2E
+ bne _0801533A
+ movs r2, 0
+ adds r0, r5, 0
+ muls r0, r3
+ adds r1, r4, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x8F
+ lsls r1, 1
+ cmp r0, r1
+ beq _08015322
+ adds r3, r1, 0
+ mov r0, r10
+ adds r1, r7, r0
+_08015314:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08015322
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _08015314
+_08015322:
+ cmp r2, 0x4
+ beq _0801533A
+ mov r8, r2
+ adds r1, r2, r7
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0801533A
+ subs r0, 0x1
+ strb r0, [r1]
+_0801533A:
+ adds r4, r6, 0
+ ldr r0, _080153BC @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _080152D2
+_08015344:
+ mov r1, r8
+ cmp r1, 0x4
+ beq _080153AC
+ ldr r6, _080153C0 @ =gBattleMons
+ movs r3, 0x58
+ adds r0, r5, 0
+ muls r0, r3
+ adds r1, r6, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _080153AC
+ ldr r1, _080153C4 @ =gDisableStructs
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _080153C8 @ =gBitTable
+ mov r4, r8
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080153AC
+ ldr r4, _080153CC @ =gActiveBank
+ strb r5, [r4]
+ mov r1, r8
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r2, r6, 0
+ adds r2, 0x24
+ adds r0, r2
+ add r0, r8
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_080153AC:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080153BC: .4byte gNoOfAllBanks
+_080153C0: .4byte gBattleMons
+_080153C4: .4byte gDisableStructs
+_080153C8: .4byte gBitTable
+_080153CC: .4byte gActiveBank
+ thumb_func_end sub_801529C
+
+ thumb_func_start sub_80153D0
+sub_80153D0: @ 80153D0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r6, 0x4
+ movs r1, 0
+ ldr r0, _080154C8 @ =gNoOfAllBanks
+ mov r8, r0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _08015452
+ ldr r7, _080154CC @ =gBattleMons
+ movs r2, 0x58
+ mov r12, r2
+ mov r5, r12
+ muls r5, r3
+ adds r0, r7, 0
+ adds r0, 0xC
+ adds r2, r5, r0
+ mov r10, r2
+ mov r9, r5
+_08015402:
+ mov r0, r12
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r4, r1, 0x1
+ cmp r0, 0x2E
+ bne _08015448
+ cmp r1, r3
+ beq _08015448
+ movs r2, 0
+ mov r1, r10
+ ldrh r0, [r1]
+ cmp r0, 0xC3
+ beq _08015432
+ ldr r1, _080154D0 @ =gUnknown_02024A8C
+ add r1, r9
+_08015424:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08015432
+ ldrh r0, [r1]
+ cmp r0, 0xC3
+ bne _08015424
+_08015432:
+ cmp r2, 0x4
+ beq _08015448
+ adds r6, r2, 0
+ adds r0, r6, r5
+ ldr r2, _080154D4 @ =gUnknown_02024AA4
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08015448
+ subs r0, 0x1
+ strb r0, [r1]
+_08015448:
+ adds r1, r4, 0
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r1, r0
+ blt _08015402
+_08015452:
+ cmp r6, 0x4
+ beq _080154B6
+ ldr r7, _080154CC @ =gBattleMons
+ movs r5, 0x58
+ adds r0, r3, 0
+ muls r0, r5
+ adds r1, r7, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _080154B6
+ ldr r1, _080154D8 @ =gDisableStructs
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _080154DC @ =gBitTable
+ lsls r0, r6, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080154B6
+ ldr r4, _080154E0 @ =gActiveBank
+ strb r3, [r4]
+ adds r1, r6, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r2, r7, 0
+ adds r2, 0x24
+ adds r0, r2
+ adds r0, r6
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_080154B6:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080154C8: .4byte gNoOfAllBanks
+_080154CC: .4byte gBattleMons
+_080154D0: .4byte gUnknown_02024A8C
+_080154D4: .4byte gUnknown_02024AA4
+_080154D8: .4byte gDisableStructs
+_080154DC: .4byte gBitTable
+_080154E0: .4byte gActiveBank
+ thumb_func_end sub_80153D0
+
+ thumb_func_start unref_sub_80154E4
+unref_sub_80154E4: @ 80154E4
+ push {r4,r5,lr}
+ ldr r0, _08015514 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08015524
+ movs r2, 0
+ ldr r4, _08015518 @ =gNoOfAllBanks
+ ldrb r0, [r4]
+ cmp r2, r0
+ bge _08015542
+ ldr r3, _0801551C @ =gBattleExecBuffer
+ ldr r5, _08015520 @ =gBitTable
+_08015500:
+ ldm r5!, {r1}
+ lsls r1, 28
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ adds r2, 0x1
+ ldrb r0, [r4]
+ cmp r2, r0
+ blt _08015500
+ b _08015542
+ .align 2, 0
+_08015514: .4byte gBattleTypeFlags
+_08015518: .4byte gNoOfAllBanks
+_0801551C: .4byte gBattleExecBuffer
+_08015520: .4byte gBitTable
+_08015524:
+ movs r2, 0
+ ldr r4, _08015548 @ =gNoOfAllBanks
+ ldrb r0, [r4]
+ cmp r2, r0
+ bge _08015542
+ ldr r3, _0801554C @ =gBattleExecBuffer
+ ldr r5, _08015550 @ =gBitTable
+_08015532:
+ ldr r0, [r3]
+ ldm r5!, {r1}
+ orrs r0, r1
+ str r0, [r3]
+ adds r2, 0x1
+ ldrb r0, [r4]
+ cmp r2, r0
+ blt _08015532
+_08015542:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015548: .4byte gNoOfAllBanks
+_0801554C: .4byte gBattleExecBuffer
+_08015550: .4byte gBitTable
+ thumb_func_end unref_sub_80154E4
+
+ thumb_func_start MarkBufferBankForExecution
+MarkBufferBankForExecution: @ 8015554
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0801557C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08015588
+ ldr r2, _08015580 @ =gBattleExecBuffer
+ ldr r1, _08015584 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ b _08015598
+ .align 2, 0
+_0801557C: .4byte gBattleTypeFlags
+_08015580: .4byte gBattleExecBuffer
+_08015584: .4byte gBitTable
+_08015588:
+ ldr r2, _0801559C @ =gBattleExecBuffer
+ ldr r1, _080155A0 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ orrs r1, r0
+ str r1, [r2]
+_08015598:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801559C: .4byte gBattleExecBuffer
+_080155A0: .4byte gBitTable
+ thumb_func_end MarkBufferBankForExecution
+
+ thumb_func_start sub_80155A4
+sub_80155A4: @ 80155A4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r5, _080155B8 @ =gBattleExecBuffer
+ ldr r1, _080155BC @ =gBitTable
+ lsls r0, r7, 2
+ adds r6, r0, r1
+ b _080155CE
+ .align 2, 0
+_080155B8: .4byte gBattleExecBuffer
+_080155BC: .4byte gBitTable
+_080155C0:
+ lsls r0, r4, 2
+ ldr r1, [r6]
+ lsls r1, r0
+ ldr r0, [r5]
+ orrs r0, r1
+ str r0, [r5]
+ adds r4, 0x1
+_080155CE:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ blt _080155C0
+ ldr r2, _080155F0 @ =gBattleExecBuffer
+ movs r1, 0x80
+ lsls r1, 21
+ lsls r1, r7
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080155F0: .4byte gBattleExecBuffer
+ thumb_func_end sub_80155A4
+
+ thumb_func_start CancelMultiTurnMoves
+CancelMultiTurnMoves: @ 80155F4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08015644 @ =gBattleMons
+ movs r2, 0x58
+ adds r3, r0, 0
+ muls r3, r2
+ adds r1, 0x50
+ adds r3, r1
+ ldr r1, [r3]
+ ldr r2, _08015648 @ =0xffffefff
+ ands r1, r2
+ ldr r2, _0801564C @ =0xfffff3ff
+ ands r1, r2
+ movs r2, 0x71
+ negs r2, r2
+ ands r1, r2
+ ldr r2, _08015650 @ =0xfffffcff
+ ands r1, r2
+ str r1, [r3]
+ ldr r1, _08015654 @ =gStatuses3
+ lsls r2, r0, 2
+ adds r2, r1
+ ldr r1, [r2]
+ ldr r3, _08015658 @ =0xfffbff3f
+ ands r1, r3
+ str r1, [r2]
+ ldr r2, _0801565C @ =gDisableStructs
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x11]
+ movs r0, 0
+ strb r0, [r1, 0x10]
+ bx lr
+ .align 2, 0
+_08015644: .4byte gBattleMons
+_08015648: .4byte 0xffffefff
+_0801564C: .4byte 0xfffff3ff
+_08015650: .4byte 0xfffffcff
+_08015654: .4byte gStatuses3
+_08015658: .4byte 0xfffbff3f
+_0801565C: .4byte gDisableStructs
+ thumb_func_end CancelMultiTurnMoves
+
+ thumb_func_start sub_8015660
+sub_8015660: @ 8015660
+ push {lr}
+ lsls r0, 24
+ ldr r1, _080156AC @ =gProtectStructs
+ lsrs r0, 20
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ bne _080156A6
+ ldrb r2, [r1, 0x1]
+ lsls r0, r2, 30
+ cmp r0, 0
+ blt _080156A6
+ lsls r0, r2, 26
+ cmp r0, 0
+ blt _080156A6
+ lsls r0, r2, 25
+ cmp r0, 0
+ blt _080156A6
+ lsrs r0, r2, 7
+ cmp r0, 0
+ bne _080156A6
+ ldrb r1, [r1, 0x2]
+ lsls r0, r1, 31
+ cmp r0, 0
+ bne _080156A6
+ lsls r0, r1, 30
+ cmp r0, 0
+ blt _080156A6
+ lsls r0, r1, 29
+ cmp r0, 0
+ blt _080156A6
+ lsls r0, r2, 31
+ cmp r0, 0
+ beq _080156B0
+_080156A6:
+ movs r0, 0x1
+ b _080156B2
+ .align 2, 0
+_080156AC: .4byte gProtectStructs
+_080156B0:
+ movs r0, 0
+_080156B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8015660
+
+ thumb_func_start PrepareStringBattle
+PrepareStringBattle: @ 80156B8
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080156D8 @ =gActiveBank
+ strb r1, [r4]
+ movs r0, 0
+ adds r1, r2, 0
+ bl EmitPrintString
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080156D8: .4byte gActiveBank
+ thumb_func_end PrepareStringBattle
+
+ thumb_func_start sub_80156DC
+sub_80156DC: @ 80156DC
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r0, _08015730 @ =gSentPokesToOpponent
+ strb r3, [r0]
+ strb r3, [r0, 0x1]
+ movs r1, 0
+ ldr r0, _08015734 @ =gNoOfAllBanks
+ ldrb r2, [r0]
+ adds r6, r0, 0
+ cmp r1, r2
+ bge _0801570A
+ ldr r5, _08015738 @ =gBitTable
+ adds r4, r2, 0
+ ldr r2, _0801573C @ =gBattlePartyID
+_080156F8:
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r5
+ ldr r0, [r0]
+ orrs r3, r0
+ adds r2, 0x4
+ adds r1, 0x2
+ cmp r1, r4
+ blt _080156F8
+_0801570A:
+ movs r1, 0x1
+ adds r2, r6, 0
+ ldrb r0, [r2]
+ cmp r1, r0
+ bge _0801572A
+ ldr r5, _08015730 @ =gSentPokesToOpponent
+ movs r4, 0x2
+_08015718:
+ adds r0, r1, 0
+ ands r0, r4
+ asrs r0, 1
+ adds r0, r5
+ strb r3, [r0]
+ adds r1, 0x2
+ ldrb r0, [r2]
+ cmp r1, r0
+ blt _08015718
+_0801572A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015730: .4byte gSentPokesToOpponent
+_08015734: .4byte gNoOfAllBanks
+_08015738: .4byte gBitTable
+_0801573C: .4byte gBattlePartyID
+ thumb_func_end sub_80156DC
+
+ thumb_func_start sub_8015740
+sub_8015740: @ 8015740
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ adds r0, r5, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080157A4
+ movs r0, 0x2
+ ands r0, r5
+ lsls r0, 24
+ lsrs r0, 25
+ mov r12, r0
+ ldr r1, _080157B0 @ =gSentPokesToOpponent
+ adds r0, r1
+ strb r4, [r0]
+ adds r5, r4, 0
+ ldr r0, _080157B4 @ =gNoOfAllBanks
+ ldrb r2, [r0]
+ mov r8, r1
+ cmp r4, r2
+ bge _0801579E
+ ldr r0, _080157B8 @ =gAbsentBankFlags
+ ldrb r7, [r0]
+ ldr r1, _080157BC @ =gBitTable
+ adds r6, r2, 0
+ ldr r3, _080157C0 @ =gBattlePartyID
+ adds r2, r1, 0
+_08015782:
+ ldr r0, [r2]
+ ands r0, r7
+ cmp r0, 0
+ bne _08015794
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ orrs r4, r0
+_08015794:
+ adds r3, 0x4
+ adds r2, 0x8
+ adds r5, 0x2
+ cmp r5, r6
+ blt _08015782
+_0801579E:
+ mov r0, r12
+ add r0, r8
+ strb r4, [r0]
+_080157A4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080157B0: .4byte gSentPokesToOpponent
+_080157B4: .4byte gNoOfAllBanks
+_080157B8: .4byte gAbsentBankFlags
+_080157BC: .4byte gBitTable
+_080157C0: .4byte gBattlePartyID
+ thumb_func_end sub_8015740
+
+ thumb_func_start sub_80157C4
+sub_80157C4: @ 80157C4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080157E0
+ adds r0, r4, 0
+ bl sub_8015740
+ b _08015816
+_080157E0:
+ movs r3, 0x1
+ ldr r5, _0801581C @ =gNoOfAllBanks
+ ldrb r0, [r5]
+ cmp r3, r0
+ bge _08015816
+ ldr r0, _08015820 @ =gSentPokesToOpponent
+ mov r12, r0
+ movs r7, 0x2
+ ldr r6, _08015824 @ =gBitTable
+ ldr r1, _08015828 @ =gBattlePartyID
+ lsls r0, r4, 1
+ adds r4, r0, r1
+_080157F8:
+ adds r2, r3, 0
+ ands r2, r7
+ asrs r2, 1
+ add r2, r12
+ ldrh r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ adds r3, 0x1
+ ldrb r0, [r5]
+ cmp r3, r0
+ blt _080157F8
+_08015816:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801581C: .4byte gNoOfAllBanks
+_08015820: .4byte gSentPokesToOpponent
+_08015824: .4byte gBitTable
+_08015828: .4byte gBattlePartyID
+ thumb_func_end sub_80157C4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_3.s b/asm/battle_3.s
new file mode 100644
index 000000000..ffe32f27b
--- /dev/null
+++ b/asm/battle_3.s
@@ -0,0 +1,12017 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start b_movescr_stack_push
+b_movescr_stack_push: @ 801582C
+ push {r4,lr}
+ ldr r4, _08015848 @ =0x02017110
+ adds r3, r4, 0
+ adds r3, 0x20
+ ldrb r1, [r3]
+ adds r2, r1, 0x1
+ strb r2, [r3]
+ lsls r1, 24
+ lsrs r1, 22
+ adds r1, r4
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015848: .4byte 0x02017110
+ thumb_func_end b_movescr_stack_push
+
+ thumb_func_start b_movescr_stack_push_cursor
+b_movescr_stack_push_cursor: @ 801584C
+ ldr r3, _08015868 @ =0x02017110
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r3
+ ldr r1, _0801586C @ =gBattlescriptCurrInstr
+ ldr r1, [r1]
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08015868: .4byte 0x02017110
+_0801586C: .4byte gBattlescriptCurrInstr
+ thumb_func_end b_movescr_stack_push_cursor
+
+ thumb_func_start b_movescr_stack_pop_cursor
+b_movescr_stack_pop_cursor: @ 8015870
+ ldr r3, _0801588C @ =gBattlescriptCurrInstr
+ ldr r2, _08015890 @ =0x02017110
+ adds r1, r2, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_0801588C: .4byte gBattlescriptCurrInstr
+_08015890: .4byte 0x02017110
+ thumb_func_end b_movescr_stack_pop_cursor
+
+ thumb_func_start sub_8015894
+sub_8015894: @ 8015894
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r2, _080159AC @ =gBattleMons
+ ldr r1, _080159B0 @ =gBattleBufferB
+ ldr r5, _080159B4 @ =gActiveBank
+ ldrb r3, [r5]
+ lsls r0, r3, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0x58
+ muls r1, r3
+ adds r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r4, [r0]
+ lsls r0, r3, 1
+ ldr r2, _080159B8 @ =0x020160e8
+ adds r0, r2
+ mov r8, r0
+ ldr r1, _080159BC @ =gDisableStructs
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ cmp r0, r4
+ bne _080158EE
+ cmp r4, 0
+ beq _080158EE
+ adds r0, r2, 0
+ subs r0, 0xE5
+ strb r3, [r0]
+ ldr r0, _080159C0 @ =gCurrentMove
+ strh r4, [r0]
+ ldr r1, _080159C4 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080159C8 @ =gUnknown_081D9144
+ str r1, [r0]
+ movs r6, 0x1
+_080158EE:
+ ldr r1, _080159CC @ =gLastUsedMove
+ ldr r5, _080159B4 @ =gActiveBank
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _0801592A
+ cmp r4, 0xA5
+ beq _0801592A
+ ldr r1, _080159AC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _0801592A
+ adds r0, r2, 0
+ bl CancelMultiTurnMoves
+ ldr r1, _080159C4 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080159D0 @ =gUnknown_081D937C
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801592A:
+ ldr r2, _080159BC @ =gDisableStructs
+ ldr r3, _080159B4 @ =gActiveBank
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08015966
+ ldr r0, _080159D4 @ =gBattleMoves
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08015966
+ ldr r0, _080159C0 @ =gCurrentMove
+ strh r4, [r0]
+ ldr r1, _080159C4 @ =gUnknown_02024C1C
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080159D8 @ =gUnknown_081D938B
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08015966:
+ ldr r5, _080159B4 @ =gActiveBank
+ ldrb r0, [r5]
+ adds r1, r4, 0
+ bl sub_8015D5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801598C
+ ldr r0, _080159C0 @ =gCurrentMove
+ strh r4, [r0]
+ ldr r1, _080159C4 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080159DC @ =gUnknown_081D9464
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801598C:
+ ldr r1, _080159AC @ =gBattleMons
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _080159E4
+ ldr r1, _080159E0 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r3, [r0, 0x7]
+ b _080159EE
+ .align 2, 0
+_080159AC: .4byte gBattleMons
+_080159B0: .4byte gBattleBufferB
+_080159B4: .4byte gActiveBank
+_080159B8: .4byte 0x020160e8
+_080159BC: .4byte gDisableStructs
+_080159C0: .4byte gCurrentMove
+_080159C4: .4byte gUnknown_02024C1C
+_080159C8: .4byte gUnknown_081D9144
+_080159CC: .4byte gLastUsedMove
+_080159D0: .4byte gUnknown_081D937C
+_080159D4: .4byte gBattleMoves
+_080159D8: .4byte gUnknown_081D938B
+_080159DC: .4byte gUnknown_081D9464
+_080159E0: .4byte gEnigmaBerries
+_080159E4:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080159EE:
+ ldr r2, _08015A70 @ =gStringBank
+ ldr r1, _08015A74 @ =gActiveBank
+ ldrb r0, [r1]
+ strb r0, [r2]
+ ldr r7, _08015A78 @ =gBattleMons
+ adds r5, r1, 0
+ cmp r3, 0x1D
+ bne _08015A36
+ mov r0, r8
+ ldrh r2, [r0]
+ adds r1, r2, 0
+ cmp r1, 0
+ beq _08015A36
+ ldr r0, _08015A7C @ =0x0000ffff
+ cmp r1, r0
+ beq _08015A36
+ cmp r1, r4
+ beq _08015A36
+ ldr r0, _08015A80 @ =gCurrentMove
+ strh r2, [r0]
+ ldr r2, _08015A84 @ =gLastUsedItem
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r2]
+ ldr r1, _08015A88 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08015A8C @ =gUnknown_081D9AC2
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08015A36:
+ ldr r0, _08015A90 @ =gBattleBufferB
+ ldrb r2, [r5]
+ lsls r1, r2, 9
+ adds r0, 0x2
+ adds r1, r0
+ movs r0, 0x58
+ muls r0, r2
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r1, r7, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08015A64
+ ldr r1, _08015A88 @ =gUnknown_02024C1C
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, _08015A94 @ =gUnknown_081D9369
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08015A64:
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08015A70: .4byte gStringBank
+_08015A74: .4byte gActiveBank
+_08015A78: .4byte gBattleMons
+_08015A7C: .4byte 0x0000ffff
+_08015A80: .4byte gCurrentMove
+_08015A84: .4byte gLastUsedItem
+_08015A88: .4byte gUnknown_02024C1C
+_08015A8C: .4byte gUnknown_081D9AC2
+_08015A90: .4byte gBattleBufferB
+_08015A94: .4byte gUnknown_081D9369
+ thumb_func_end sub_8015894
+
+ thumb_func_start sub_8015A98
+sub_8015A98: @ 8015A98
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r3, r2, 24
+ lsls r1, r7, 1
+ ldr r0, _08015AD8 @ =0x020160e8
+ adds r1, r0
+ str r1, [sp, 0x4]
+ ldr r1, _08015ADC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08015AE4
+ ldr r2, _08015AE0 @ =gEnigmaBerries
+ lsls r1, r7, 3
+ subs r0, r1, r7
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ b _08015AF6
+ .align 2, 0
+_08015AD8: .4byte 0x020160e8
+_08015ADC: .4byte gBattleMons
+_08015AE0: .4byte gEnigmaBerries
+_08015AE4:
+ ldrh r0, [r1, 0x2E]
+ str r3, [sp, 0x14]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, r7, 3
+ ldr r3, [sp, 0x14]
+_08015AF6:
+ ldr r0, _08015C70 @ =gStringBank
+ strb r7, [r0]
+ movs r0, 0
+ mov r9, r0
+ lsls r2, r7, 1
+ str r2, [sp, 0xC]
+ ldr r5, _08015C74 @ =gDisableStructs
+ mov r12, r5
+ ldr r0, _08015C78 @ =gBattleMons
+ movs r2, 0x58
+ adds r6, r7, 0
+ muls r6, r2
+ str r6, [sp, 0x8]
+ ldr r2, _08015C7C @ =gUnknown_02024A8C
+ adds r5, r6, r2
+ movs r6, 0
+ str r6, [sp, 0x10]
+ mov r10, r0
+ subs r0, r1, r7
+ lsls r0, 2
+ mov r8, r0
+ ldr r6, _08015C80 @ =gBitTable
+_08015B22:
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _08015B38
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _08015B38
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015B38:
+ ldr r0, [sp, 0x8]
+ add r0, r9
+ mov r1, r10
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08015B58
+ movs r0, 0x2
+ ands r0, r3
+ cmp r0, 0
+ beq _08015B58
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015B58:
+ mov r1, r8
+ add r1, r12
+ ldrh r0, [r5]
+ ldrh r1, [r1, 0x4]
+ cmp r0, r1
+ bne _08015B74
+ movs r0, 0x4
+ ands r0, r3
+ cmp r0, 0
+ beq _08015B74
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015B74:
+ movs r0, 0x58
+ adds r2, r7, 0
+ muls r2, r0
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r2
+ ldr r1, _08015C7C @ =gUnknown_02024A8C
+ adds r0, r1
+ mov r12, r0
+ ldr r1, _08015C84 @ =gLastUsedMove
+ ldr r0, [sp, 0xC]
+ adds r1, r0, r1
+ str r1, [sp, 0x18]
+ mov r1, r12
+ ldrh r1, [r1]
+ mov r12, r1
+ ldr r0, [sp, 0x18]
+ ldrh r0, [r0]
+ cmp r12, r0
+ bne _08015BB6
+ movs r0, 0x8
+ ands r0, r3
+ cmp r0, 0
+ beq _08015BB6
+ mov r0, r10
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _08015BB6
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015BB6:
+ ldr r0, _08015C74 @ =gDisableStructs
+ add r0, r8
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08015BE4
+ movs r0, 0x10
+ ands r0, r3
+ cmp r0, 0
+ beq _08015BE4
+ ldr r2, _08015C88 @ =gBattleMoves
+ ldrh r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _08015BE4
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015BE4:
+ ldrh r1, [r5]
+ adds r0, r7, 0
+ str r3, [sp, 0x14]
+ bl sub_8015D5C
+ lsls r0, 24
+ ldr r3, [sp, 0x14]
+ cmp r0, 0
+ beq _08015C06
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _08015C06
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015C06:
+ ldr r1, _08015C74 @ =gDisableStructs
+ mov r0, r8
+ adds r2, r0, r1
+ ldrb r0, [r2, 0xE]
+ lsls r0, 28
+ mov r12, r1
+ cmp r0, 0
+ beq _08015C26
+ ldrh r0, [r2, 0x6]
+ ldrh r1, [r5]
+ cmp r0, r1
+ beq _08015C26
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015C26:
+ ldr r2, [sp]
+ cmp r2, 0x1D
+ bne _08015C48
+ ldr r0, [sp, 0x4]
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08015C48
+ ldr r0, _08015C8C @ =0x0000ffff
+ cmp r1, r0
+ beq _08015C48
+ ldrh r2, [r5]
+ cmp r1, r2
+ beq _08015C48
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015C48:
+ adds r6, 0x4
+ adds r5, 0x2
+ ldr r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ movs r1, 0x1
+ add r9, r1
+ mov r2, r9
+ cmp r2, 0x3
+ bgt _08015C5E
+ b _08015B22
+_08015C5E:
+ adds r0, r4, 0
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08015C70: .4byte gStringBank
+_08015C74: .4byte gDisableStructs
+_08015C78: .4byte gBattleMons
+_08015C7C: .4byte gUnknown_02024A8C
+_08015C80: .4byte gBitTable
+_08015C84: .4byte gLastUsedMove
+_08015C88: .4byte gBattleMoves
+_08015C8C: .4byte 0x0000ffff
+ thumb_func_end sub_8015A98
+
+ thumb_func_start sub_8015C90
+sub_8015C90: @ 8015C90
+ push {r4-r6,lr}
+ ldr r5, _08015CFC @ =gActiveBank
+ ldrb r0, [r5]
+ movs r1, 0
+ movs r2, 0xFF
+ bl sub_8015A98
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xF
+ bne _08015D38
+ ldr r0, _08015D00 @ =gProtectStructs
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _08015D04 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08015D08 @ =gUnknown_081D9365
+ str r1, [r0]
+ ldr r0, _08015D0C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08015D14
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ adds r4, r0, 0
+ bl Random
+ movs r1, 0x1
+ eors r4, r1
+ movs r1, 0x2
+ ands r1, r0
+ orrs r4, r1
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl GetBankByPlayerAI
+ ldr r2, _08015D10 @ =gBattleBufferB
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r2, 0x3
+ adds r1, r2
+ b _08015D48
+ .align 2, 0
+_08015CFC: .4byte gActiveBank
+_08015D00: .4byte gProtectStructs
+_08015D04: .4byte gUnknown_02024C1C
+_08015D08: .4byte gUnknown_081D9365
+_08015D0C: .4byte gBattleTypeFlags
+_08015D10: .4byte gBattleBufferB
+_08015D14:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r2, _08015D34 @ =gBattleBufferB
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r2, 0x3
+ adds r1, r2
+ b _08015D48
+ .align 2, 0
+_08015D34: .4byte gBattleBufferB
+_08015D38:
+ ldr r0, _08015D58 @ =gProtectStructs
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+_08015D48:
+ strb r0, [r1]
+ movs r0, 0
+ cmp r6, 0xF
+ bne _08015D52
+ movs r0, 0x1
+_08015D52:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08015D58: .4byte gProtectStructs
+ thumb_func_end sub_8015C90
+
+ thumb_func_start sub_8015D5C
+sub_8015D5C: @ 8015D5C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r6, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r4, 0
+ ldr r0, _08015DF0 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _08015DE0
+ ldr r7, _08015DF4 @ =gUnknown_02024A8C
+ mov r8, r7
+_08015D86:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r4, 0x1
+ cmp r9, r0
+ beq _08015DD6
+ ldr r1, _08015DF8 @ =gStatuses3
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _08015DD6
+ movs r2, 0
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ adds r0, r1, r7
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _08015DCC
+ mov r4, r8
+ adds r0, r1, r4
+_08015DBE:
+ adds r0, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08015DD6
+ ldrh r1, [r0]
+ cmp r5, r1
+ bne _08015DBE
+_08015DCC:
+ cmp r2, 0x3
+ bgt _08015DD6
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08015DD6:
+ adds r4, r3, 0
+ ldr r0, _08015DF0 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08015D86
+_08015DE0:
+ adds r0, r6, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08015DF0: .4byte gNoOfAllBanks
+_08015DF4: .4byte gUnknown_02024A8C
+_08015DF8: .4byte gStatuses3
+ thumb_func_end sub_8015D5C
+
+ thumb_func_start UpdateTurnCounters
+UpdateTurnCounters: @ 8015DFC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _08015EA0 @ =gBankAttacker
+ mov r2, r9
+ strb r2, [r1]
+ ldr r0, _08015EA4 @ =gNoOfAllBanks
+ ldrb r4, [r0]
+ adds r6, r1, 0
+ mov r10, r0
+ ldr r7, _08015EA8 @ =gBankTarget
+ ldr r3, _08015EAC @ =0x02000000
+ mov r12, r3
+ cmp r9, r4
+ bcs _08015E50
+ ldr r2, _08015EB0 @ =gAbsentBankFlags
+ ldrb r1, [r2]
+ ldr r5, _08015EB4 @ =gBitTable
+ ldr r0, [r5]
+ ands r1, r0
+ cmp r1, 0
+ beq _08015E50
+ adds r3, r6, 0
+_08015E32:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcs _08015E50
+ ldrb r0, [r2]
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r5
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _08015E32
+_08015E50:
+ movs r0, 0
+ strb r0, [r7]
+ mov r0, r10
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _08015E8A
+ ldr r2, _08015EB0 @ =gAbsentBankFlags
+ ldrb r1, [r2]
+ ldr r5, _08015EB4 @ =gBitTable
+ ldr r0, [r5]
+ ands r1, r0
+ cmp r1, 0
+ beq _08015E8A
+ adds r3, r7, 0
+_08015E6C:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcs _08015E8A
+ ldrb r0, [r2]
+ ldrb r1, [r7]
+ lsls r1, 2
+ adds r1, r5
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _08015E6C
+_08015E8A:
+ ldr r0, _08015EB8 @ =0x0001600e
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bls _08015E96
+ b _0801652A
+_08015E96:
+ lsls r0, 2
+ ldr r1, _08015EBC @ =_08015EC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08015EA0: .4byte gBankAttacker
+_08015EA4: .4byte gNoOfAllBanks
+_08015EA8: .4byte gBankTarget
+_08015EAC: .4byte 0x02000000
+_08015EB0: .4byte gAbsentBankFlags
+_08015EB4: .4byte gBitTable
+_08015EB8: .4byte 0x0001600e
+_08015EBC: .4byte _08015EC0
+ .align 2, 0
+_08015EC0:
+ .4byte _08015EEC
+ .4byte _08015F74
+ .4byte _08016034
+ .4byte _080160F4
+ .4byte _080161C8
+ .4byte _08016274
+ .4byte _08016324
+ .4byte _080163A8
+ .4byte _08016420
+ .4byte _08016494
+ .4byte _08016520
+_08015EEC:
+ movs r5, 0
+ ldr r1, _08015F0C @ =gNoOfAllBanks
+ mov r10, r1
+ ldrb r2, [r1]
+ cmp r5, r2
+ bge _08015F06
+ ldr r2, _08015F10 @ =gTurnOrder
+_08015EFA:
+ adds r0, r5, r2
+ strb r5, [r0]
+ adds r5, 0x1
+ ldrb r3, [r1]
+ cmp r5, r3
+ blt _08015EFA
+_08015F06:
+ movs r5, 0
+ b _08015F54
+ .align 2, 0
+_08015F0C: .4byte gNoOfAllBanks
+_08015F10: .4byte gTurnOrder
+_08015F14:
+ adds r4, r5, 0x1
+ adds r6, r4, 0
+ ldrb r1, [r1]
+ cmp r6, r1
+ bge _08015F52
+ ldr r7, _08016004 @ =gTurnOrder
+ ldr r0, _08016008 @ =gNoOfAllBanks
+ mov r10, r0
+ lsls r1, r5, 24
+ mov r8, r1
+_08015F28:
+ adds r0, r5, r7
+ ldrb r0, [r0]
+ adds r1, r4, r7
+ ldrb r1, [r1]
+ movs r2, 0
+ bl b_first_side
+ lsls r0, 24
+ cmp r0, 0
+ beq _08015F48
+ lsls r1, r4, 24
+ lsrs r1, 24
+ mov r2, r8
+ lsrs r0, r2, 24
+ bl sub_8012FBC
+_08015F48:
+ adds r4, 0x1
+ ldr r0, _08016008 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08015F28
+_08015F52:
+ adds r5, r6, 0
+_08015F54:
+ mov r1, r10
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _08015F14
+ ldr r1, _0801600C @ =0x02000000
+ ldr r3, _08016010 @ =0x0001600e
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r2]
+ ldr r2, _08016014 @ =0x000160fc
+ adds r0, r1, r2
+ strb r3, [r0]
+ mov r12, r1
+_08015F74:
+ ldr r1, _08016014 @ =0x000160fc
+ add r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bls _08015F80
+ b _08016236
+_08015F80:
+ ldr r3, _08016018 @ =gActiveBank
+ mov r8, r3
+ adds r6, r1, 0
+ movs r7, 0
+ ldr r5, _0801601C @ =gBattleTextBuff1
+_08015F8A:
+ ldr r0, _08016020 @ =gBankAttacker
+ ldrb r4, [r6]
+ strb r4, [r0]
+ mov r0, r8
+ strb r4, [r0]
+ ldr r0, _08016024 @ =gSideAffecting
+ lsls r2, r4, 1
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08015FE8
+ ldr r0, _08016028 @ =gSideTimer
+ adds r1, r2, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0xFF
+ lsls r0, 24
+ cmp r0, 0
+ bne _08015FE8
+ ldrh r0, [r3]
+ ldr r2, _0801602C @ =0x0000fffe
+ adds r1, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _08016030 @ =gUnknown_081D9030
+ bl b_call_bc_move_exec
+ movs r0, 0xFD
+ strb r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, 0x1]
+ movs r0, 0x73
+ strb r0, [r5, 0x2]
+ strb r7, [r5, 0x3]
+ ldrb r0, [r5, 0x4]
+ orrs r0, r4
+ strb r0, [r5, 0x4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08015FE8:
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ ldr r3, _0801600C @ =0x02000000
+ mov r12, r3
+ mov r1, r9
+ cmp r1, 0
+ beq _08015FFA
+ b _08016532
+_08015FFA:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08015F8A
+ b _08016236
+ .align 2, 0
+_08016004: .4byte gTurnOrder
+_08016008: .4byte gNoOfAllBanks
+_0801600C: .4byte 0x02000000
+_08016010: .4byte 0x0001600e
+_08016014: .4byte 0x000160fc
+_08016018: .4byte gActiveBank
+_0801601C: .4byte gBattleTextBuff1
+_08016020: .4byte gBankAttacker
+_08016024: .4byte gSideAffecting
+_08016028: .4byte gSideTimer
+_0801602C: .4byte 0x0000fffe
+_08016030: .4byte gUnknown_081D9030
+_08016034:
+ ldr r1, _080160CC @ =0x000160fc
+ add r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bls _08016040
+ b _08016182
+_08016040:
+ adds r7, r1, 0
+ movs r3, 0x2
+ mov r10, r3
+ movs r0, 0
+ mov r8, r0
+ ldr r5, _080160D0 @ =gBattleTextBuff1
+_0801604C:
+ ldr r0, _080160D4 @ =gBankAttacker
+ ldrb r4, [r7]
+ strb r4, [r0]
+ ldr r1, _080160D8 @ =gActiveBank
+ strb r4, [r1]
+ ldr r0, _080160DC @ =gSideAffecting
+ lsls r2, r4, 1
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080160B0
+ ldr r0, _080160E0 @ =gSideTimer
+ adds r1, r2, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ subs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r6, 0xFF
+ lsls r0, 24
+ cmp r0, 0
+ bne _080160B0
+ ldrh r0, [r3]
+ ldr r2, _080160E4 @ =0x0000fffd
+ adds r1, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _080160E8 @ =gUnknown_081D9030
+ bl b_call_bc_move_exec
+ ldr r0, _080160EC @ =gBattleCommunication
+ strb r4, [r0, 0x5]
+ movs r0, 0xFD
+ strb r0, [r5]
+ mov r3, r10
+ strb r3, [r5, 0x1]
+ movs r0, 0x71
+ strb r0, [r5, 0x2]
+ mov r0, r8
+ strb r0, [r5, 0x3]
+ ldrb r0, [r5, 0x4]
+ orrs r0, r6
+ strb r0, [r5, 0x4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080160B0:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ ldr r1, _080160F0 @ =0x02000000
+ mov r12, r1
+ mov r2, r9
+ cmp r2, 0
+ beq _080160C2
+ b _08016532
+_080160C2:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0801604C
+ b _08016182
+ .align 2, 0
+_080160CC: .4byte 0x000160fc
+_080160D0: .4byte gBattleTextBuff1
+_080160D4: .4byte gBankAttacker
+_080160D8: .4byte gActiveBank
+_080160DC: .4byte gSideAffecting
+_080160E0: .4byte gSideTimer
+_080160E4: .4byte 0x0000fffd
+_080160E8: .4byte gUnknown_081D9030
+_080160EC: .4byte gBattleCommunication
+_080160F0: .4byte 0x02000000
+_080160F4:
+ ldr r1, _0801619C @ =0x000160fc
+ add r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bhi _08016182
+ ldr r0, _080161A0 @ =gActiveBank
+ mov r10, r0
+ adds r7, r1, 0
+ movs r1, 0
+ mov r8, r1
+ ldr r5, _080161A4 @ =gBattleTextBuff1
+_0801610A:
+ ldr r0, _080161A8 @ =gBankAttacker
+ ldrb r4, [r7]
+ strb r4, [r0]
+ mov r2, r10
+ strb r4, [r2]
+ ldr r1, _080161AC @ =gSideTimer
+ lsls r3, r4, 1
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ beq _08016168
+ subs r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r6, 0xFF
+ lsls r0, 24
+ cmp r0, 0
+ bne _08016168
+ ldr r2, _080161B0 @ =gSideAffecting
+ adds r2, r3, r2
+ ldrh r0, [r2]
+ ldr r3, _080161B4 @ =0x0000feff
+ adds r1, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldr r0, _080161B8 @ =gUnknown_081D9030
+ bl b_call_bc_move_exec
+ ldr r0, _080161BC @ =gBattleCommunication
+ strb r4, [r0, 0x5]
+ movs r0, 0xFD
+ strb r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, 0x1]
+ movs r0, 0x36
+ strb r0, [r5, 0x2]
+ mov r0, r8
+ strb r0, [r5, 0x3]
+ ldrb r0, [r5, 0x4]
+ orrs r0, r6
+ strb r0, [r5, 0x4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016168:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ ldr r1, _080161C0 @ =0x02000000
+ mov r12, r1
+ mov r2, r9
+ cmp r2, 0
+ beq _0801617A
+ b _08016532
+_0801617A:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0801610A
+_08016182:
+ mov r3, r9
+ cmp r3, 0
+ beq _0801618A
+ b _08016532
+_0801618A:
+ ldr r0, _080161C4 @ =0x0001600e
+ add r0, r12
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _0801619C @ =0x000160fc
+ add r0, r12
+ strb r3, [r0]
+ b _0801652A
+ .align 2, 0
+_0801619C: .4byte 0x000160fc
+_080161A0: .4byte gActiveBank
+_080161A4: .4byte gBattleTextBuff1
+_080161A8: .4byte gBankAttacker
+_080161AC: .4byte gSideTimer
+_080161B0: .4byte gSideAffecting
+_080161B4: .4byte 0x0000feff
+_080161B8: .4byte gUnknown_081D9030
+_080161BC: .4byte gBattleCommunication
+_080161C0: .4byte 0x02000000
+_080161C4: .4byte 0x0001600e
+_080161C8:
+ ldr r1, _08016250 @ =0x000160fc
+ add r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bhi _08016236
+ ldr r7, _08016254 @ =gActiveBank
+ adds r5, r1, 0
+ ldr r6, _08016258 @ =gBankAttacker
+_080161D8:
+ ldrb r4, [r5]
+ strb r4, [r6]
+ strb r4, [r7]
+ ldr r0, _0801625C @ =gSideAffecting
+ lsls r2, r4, 1
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801621C
+ ldr r0, _08016260 @ =gSideTimer
+ adds r1, r2, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x7]
+ subs r0, 0x1
+ strb r0, [r1, 0x7]
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801621C
+ ldrh r0, [r3]
+ ldr r2, _08016264 @ =0x0000ffdf
+ adds r1, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _08016268 @ =gUnknown_081D9041
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801621C:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldr r3, _0801626C @ =0x02000000
+ mov r12, r3
+ mov r1, r9
+ cmp r1, 0
+ beq _0801622E
+ b _08016532
+_0801622E:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _080161D8
+_08016236:
+ mov r2, r9
+ cmp r2, 0
+ beq _0801623E
+ b _08016532
+_0801623E:
+ ldr r0, _08016270 @ =0x0001600e
+ add r0, r12
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08016250 @ =0x000160fc
+ add r0, r12
+ strb r2, [r0]
+ b _0801652A
+ .align 2, 0
+_08016250: .4byte 0x000160fc
+_08016254: .4byte gActiveBank
+_08016258: .4byte gBankAttacker
+_0801625C: .4byte gSideAffecting
+_08016260: .4byte gSideTimer
+_08016264: .4byte 0x0000ffdf
+_08016268: .4byte gUnknown_081D9041
+_0801626C: .4byte 0x02000000
+_08016270: .4byte 0x0001600e
+_08016274:
+ ldr r2, _080162FC @ =0x000160fc
+ add r2, r12
+ ldr r1, _08016300 @ =gNoOfAllBanks
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080162E8
+ ldr r5, _08016304 @ =gActiveBank
+ adds r4, r2, 0
+ ldr r6, _08016308 @ =gUnknown_02024DDC
+_08016288:
+ ldr r1, _0801630C @ =gTurnOrder
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldrb r0, [r5]
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080162CA
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080162CA
+ ldr r1, _08016310 @ =gBattleMons
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _080162CA
+ ldr r0, _08016314 @ =gBankTarget
+ strb r2, [r0]
+ ldr r0, _08016318 @ =gUnknown_081D939A
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080162CA:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r3, _0801631C @ =0x02000000
+ mov r12, r3
+ mov r1, r9
+ cmp r1, 0
+ beq _080162DC
+ b _08016532
+_080162DC:
+ ldr r1, _08016300 @ =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08016288
+_080162E8:
+ mov r2, r9
+ cmp r2, 0
+ beq _080162F0
+ b _08016532
+_080162F0:
+ ldr r1, _08016320 @ =0x0001600e
+ add r1, r12
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0801652A
+ .align 2, 0
+_080162FC: .4byte 0x000160fc
+_08016300: .4byte gNoOfAllBanks
+_08016304: .4byte gActiveBank
+_08016308: .4byte gUnknown_02024DDC
+_0801630C: .4byte gTurnOrder
+_08016310: .4byte gBattleMons
+_08016314: .4byte gBankTarget
+_08016318: .4byte gUnknown_081D939A
+_0801631C: .4byte 0x02000000
+_08016320: .4byte 0x0001600e
+_08016324:
+ ldr r3, _0801635C @ =gBattleWeather
+ ldrh r2, [r3]
+ movs r0, 0x7
+ ands r0, r2
+ cmp r0, 0
+ bne _08016332
+ b _080164F8
+_08016332:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ bne _0801637E
+ ldr r1, _08016360 @ =gWishFutureKnock
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08016370
+ ldr r0, _08016364 @ =0x0000fffe
+ ands r0, r2
+ ldr r1, _08016368 @ =0x0000fffd
+ ands r0, r1
+ strh r0, [r3]
+ ldr r1, _0801636C @ =gBattleCommunication
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _0801639C
+ .align 2, 0
+_0801635C: .4byte gBattleWeather
+_08016360: .4byte gWishFutureKnock
+_08016364: .4byte 0x0000fffe
+_08016368: .4byte 0x0000fffd
+_0801636C: .4byte gBattleCommunication
+_08016370:
+ movs r0, 0x2
+ ands r0, r2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _0801638A
+ b _08016398
+_0801637E:
+ movs r0, 0x2
+ ands r0, r2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _08016398
+_0801638A:
+ ldr r1, _08016394 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0801639C
+ .align 2, 0
+_08016394: .4byte gBattleCommunication
+_08016398:
+ ldr r0, _080163A0 @ =gBattleCommunication
+ strb r1, [r0, 0x5]
+_0801639C:
+ ldr r0, _080163A4 @ =gUnknown_081D8F62
+ b _080164EA
+ .align 2, 0
+_080163A0: .4byte gBattleCommunication
+_080163A4: .4byte gUnknown_081D8F62
+_080163A8:
+ ldr r3, _080163DC @ =gBattleWeather
+ ldrh r2, [r3]
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ bne _080163B6
+ b _080164F8
+_080163B6:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _080163F0
+ ldr r1, _080163E0 @ =gWishFutureKnock
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080163F0
+ ldr r0, _080163E4 @ =0x0000fff7
+ ands r0, r2
+ strh r0, [r3]
+ ldr r1, _080163E8 @ =gBattlescriptCurrInstr
+ ldr r0, _080163EC @ =gUnknown_081D8FFF
+ b _080163F4
+ .align 2, 0
+_080163DC: .4byte gBattleWeather
+_080163E0: .4byte gWishFutureKnock
+_080163E4: .4byte 0x0000fff7
+_080163E8: .4byte gBattlescriptCurrInstr
+_080163EC: .4byte gUnknown_081D8FFF
+_080163F0:
+ ldr r1, _0801640C @ =gBattlescriptCurrInstr
+ ldr r0, _08016410 @ =gUnknown_081D8F7D
+_080163F4:
+ str r0, [r1]
+ adds r3, r1, 0
+ ldr r1, _08016414 @ =0x02000000
+ ldr r0, _08016418 @ =0x000160a4
+ adds r1, r0
+ movs r2, 0
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r0, _0801641C @ =gBattleCommunication
+ strb r2, [r0, 0x5]
+ b _080164E8
+ .align 2, 0
+_0801640C: .4byte gBattlescriptCurrInstr
+_08016410: .4byte gUnknown_081D8F7D
+_08016414: .4byte 0x02000000
+_08016418: .4byte 0x000160a4
+_0801641C: .4byte gBattleCommunication
+_08016420:
+ ldr r3, _08016450 @ =gBattleWeather
+ ldrh r2, [r3]
+ movs r0, 0x60
+ ands r0, r2
+ cmp r0, 0
+ beq _0801647C
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _08016464
+ ldr r1, _08016454 @ =gWishFutureKnock
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08016464
+ ldr r0, _08016458 @ =0x0000ffdf
+ ands r0, r2
+ strh r0, [r3]
+ ldr r1, _0801645C @ =gBattlescriptCurrInstr
+ ldr r0, _08016460 @ =gUnknown_081D9016
+ b _08016468
+ .align 2, 0
+_08016450: .4byte gBattleWeather
+_08016454: .4byte gWishFutureKnock
+_08016458: .4byte 0x0000ffdf
+_0801645C: .4byte gBattlescriptCurrInstr
+_08016460: .4byte gUnknown_081D9016
+_08016464:
+ ldr r1, _08016484 @ =gBattlescriptCurrInstr
+ ldr r0, _08016488 @ =gUnknown_081D9008
+_08016468:
+ str r0, [r1]
+ adds r3, r1, 0
+ ldr r0, [r3]
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801647C:
+ ldr r2, _0801648C @ =0x02000000
+ ldr r0, _08016490 @ =0x0001600e
+ adds r1, r2, r0
+ b _080164FE
+ .align 2, 0
+_08016484: .4byte gBattlescriptCurrInstr
+_08016488: .4byte gUnknown_081D9008
+_0801648C: .4byte 0x02000000
+_08016490: .4byte 0x0001600e
+_08016494:
+ ldr r3, _080164BC @ =gBattleWeather
+ ldrh r2, [r3]
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080164F8
+ ldr r1, _080164C0 @ =gWishFutureKnock
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080164D0
+ ldr r0, _080164C4 @ =0x0000ff7f
+ ands r0, r2
+ strh r0, [r3]
+ ldr r1, _080164C8 @ =gBattlescriptCurrInstr
+ ldr r0, _080164CC @ =gUnknown_081D8FFF
+ b _080164D4
+ .align 2, 0
+_080164BC: .4byte gBattleWeather
+_080164C0: .4byte gWishFutureKnock
+_080164C4: .4byte 0x0000ff7f
+_080164C8: .4byte gBattlescriptCurrInstr
+_080164CC: .4byte gUnknown_081D8FFF
+_080164D0:
+ ldr r1, _08016508 @ =gBattlescriptCurrInstr
+ ldr r0, _0801650C @ =gUnknown_081D8F7D
+_080164D4:
+ str r0, [r1]
+ adds r3, r1, 0
+ ldr r0, _08016510 @ =0x02000000
+ ldr r1, _08016514 @ =0x000160a4
+ adds r0, r1
+ movs r1, 0xD
+ strb r1, [r0]
+ ldr r1, _08016518 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_080164E8:
+ ldr r0, [r3]
+_080164EA:
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080164F8:
+ ldr r2, _08016510 @ =0x02000000
+ ldr r3, _0801651C @ =0x0001600e
+ adds r1, r2, r3
+_080164FE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r12, r2
+ b _0801652A
+ .align 2, 0
+_08016508: .4byte gBattlescriptCurrInstr
+_0801650C: .4byte gUnknown_081D8F7D
+_08016510: .4byte 0x02000000
+_08016514: .4byte 0x000160a4
+_08016518: .4byte gBattleCommunication
+_0801651C: .4byte 0x0001600e
+_08016520:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801652A:
+ mov r0, r9
+ cmp r0, 0
+ bne _08016532
+ b _08015E8A
+_08016532:
+ ldr r0, _08016550 @ =gBattleMainFunc
+ ldr r1, [r0]
+ ldr r0, _08016554 @ =BattleTurnPassed
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08016550: .4byte gBattleMainFunc
+_08016554: .4byte BattleTurnPassed
+ thumb_func_end UpdateTurnCounters
+
+ thumb_func_start TurnBasedEffects
+TurnBasedEffects: @ 8016558
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r9, r0
+ ldr r2, _08016578 @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _0801657C @ =0x01000020
+ orrs r0, r1
+ str r0, [r2]
+ bl _08017088
+ .align 2, 0
+_08016578: .4byte gHitMarker
+_0801657C: .4byte 0x01000020
+_08016580:
+ ldr r3, _080165B4 @ =gActiveBank
+ ldr r4, _080165B8 @ =gBankAttacker
+ ldr r1, _080165BC @ =gTurnOrder
+ adds r5, r7, r2
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ strb r0, [r3]
+ ldr r0, _080165C0 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _080165C4 @ =gBitTable
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ adds r6, r3, 0
+ cmp r1, 0
+ beq _080165C8
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ bl _08017088
+ .align 2, 0
+_080165B4: .4byte gActiveBank
+_080165B8: .4byte gBankAttacker
+_080165BC: .4byte gTurnOrder
+_080165C0: .4byte gAbsentBankFlags
+_080165C4: .4byte gBitTable
+_080165C8:
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bls _080165D8
+ bl _08017078
+_080165D8:
+ lsls r0, 2
+ ldr r1, _080165E4 @ =_080165E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080165E4: .4byte _080165E8
+ .align 2, 0
+_080165E8:
+ .4byte _08016638
+ .4byte _080166A8
+ .4byte _080166D8
+ .4byte _08016730
+ .4byte _080167C8
+ .4byte _08016828
+ .4byte _080168C0
+ .4byte _0801691C
+ .4byte _0801697C
+ .4byte _080169DC
+ .4byte _08016B78
+ .4byte _08016CA0
+ .4byte _08016D58
+ .4byte _08016E30
+ .4byte _08016EFC
+ .4byte _08016F20
+ .4byte _08016F6C
+ .4byte _08016F9C
+ .4byte _08016704
+ .4byte _08017064
+_08016638:
+ ldr r1, _08016694 @ =gStatuses3
+ ldrb r3, [r6]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _08016686
+ ldr r0, _08016698 @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r3
+ adds r0, r1, r0
+ ldrh r2, [r0, 0x28]
+ ldrh r7, [r0, 0x2C]
+ cmp r2, r7
+ beq _08016686
+ cmp r2, 0
+ beq _08016686
+ ldr r1, _0801669C @ =gBattleMoveDamage
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08016670
+ movs r0, 0x1
+ str r0, [r1]
+_08016670:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldr r0, _080166A0 @ =gUnknown_081D93D1
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016686:
+ ldr r1, _080166A4 @ =0x02000000
+ movs r0, 0xB0
+ lsls r0, 9
+ adds r1, r0
+ bl _08017072
+ .align 2, 0
+_08016694: .4byte gStatuses3
+_08016698: .4byte gBattleMons
+_0801669C: .4byte gBattleMoveDamage
+_080166A0: .4byte gUnknown_081D93D1
+_080166A4: .4byte 0x02000000
+_080166A8:
+ ldrb r1, [r6]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _080166C8
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080166C8:
+ ldr r1, _080166D4 @ =0x02000000
+ movs r2, 0xB0
+ lsls r2, 9
+ adds r1, r2
+ bl _08017072
+ .align 2, 0
+_080166D4: .4byte 0x02000000
+_080166D8:
+ ldrb r1, [r6]
+ movs r0, 0x1
+ movs r2, 0
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080166F2
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080166F2:
+ ldr r1, _08016700 @ =0x02000000
+ movs r3, 0xB0
+ lsls r3, 9
+ adds r1, r3
+ bl _08017072
+ .align 2, 0
+_08016700: .4byte 0x02000000
+_08016704:
+ ldrb r1, [r6]
+ movs r0, 0x1
+ movs r2, 0x1
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801671E
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801671E:
+ ldr r1, _0801672C @ =0x02000000
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r1, r5
+ bl _08017072
+ .align 2, 0
+_0801672C: .4byte 0x02000000
+_08016730:
+ ldr r0, _080167A8 @ =gStatuses3
+ ldrb r2, [r6]
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801679C
+ ldr r3, _080167AC @ =gBattleMons
+ movs r5, 0x3
+ ands r5, r1
+ movs r1, 0x58
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801679C
+ adds r0, r2, 0
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801679C
+ ldr r0, _080167B0 @ =gBankTarget
+ strb r5, [r0]
+ ldr r2, _080167B4 @ =gBattleMoveDamage
+ ldrb r0, [r6]
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 3
+ str r0, [r2]
+ cmp r0, 0
+ bne _0801677C
+ movs r0, 0x1
+ str r0, [r2]
+_0801677C:
+ ldr r1, _080167B8 @ =0x02000000
+ ldr r7, _080167BC @ =0x000160a4
+ adds r0, r1, r7
+ strb r5, [r0]
+ ldrb r0, [r4]
+ ldr r2, _080167C0 @ =0x000160a5
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, _080167C4 @ =gUnknown_081D904B
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801679C:
+ ldr r1, _080167B8 @ =0x02000000
+ movs r3, 0xB0
+ lsls r3, 9
+ adds r1, r3
+ bl _08017072
+ .align 2, 0
+_080167A8: .4byte gStatuses3
+_080167AC: .4byte gBattleMons
+_080167B0: .4byte gBankTarget
+_080167B4: .4byte gBattleMoveDamage
+_080167B8: .4byte 0x02000000
+_080167BC: .4byte 0x000160a4
+_080167C0: .4byte 0x000160a5
+_080167C4: .4byte gUnknown_081D904B
+_080167C8:
+ ldr r2, _08016818 @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801680A
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _0801680A
+ ldr r2, _0801681C @ =gBattleMoveDamage
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 3
+ str r0, [r2]
+ cmp r0, 0
+ bne _080167FA
+ movs r0, 0x1
+ str r0, [r2]
+_080167FA:
+ ldr r0, _08016820 @ =gUnknown_081D9518
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801680A:
+ ldr r1, _08016824 @ =0x02000000
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r1, r5
+ bl _08017072
+ .align 2, 0
+_08016818: .4byte gBattleMons
+_0801681C: .4byte gBattleMoveDamage
+_08016820: .4byte gUnknown_081D9518
+_08016824: .4byte 0x02000000
+_08016828:
+ ldr r4, _080168B0 @ =gBattleMons
+ ldrb r0, [r6]
+ movs r7, 0x58
+ mov r8, r7
+ mov r2, r8
+ muls r2, r0
+ adds r3, r4, 0
+ adds r3, 0x4C
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080168A2
+ adds r1, r2, r4
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _080168A2
+ ldr r5, _080168B4 @ =gBattleMoveDamage
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 4
+ str r0, [r5]
+ cmp r0, 0
+ bne _0801685C
+ movs r0, 0x1
+ str r0, [r5]
+_0801685C:
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r2, r0, r3
+ ldr r1, [r2]
+ movs r4, 0xF0
+ lsls r4, 4
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, r4
+ beq _0801687C
+ movs r7, 0x80
+ lsls r7, 1
+ adds r0, r1, r7
+ str r0, [r2]
+_0801687C:
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r3
+ ldr r0, [r0]
+ ands r0, r4
+ lsrs r0, 8
+ ldr r1, [r5]
+ muls r0, r1
+ str r0, [r5]
+ ldr r0, _080168B8 @ =gUnknown_081D9518
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080168A2:
+ ldr r1, _080168BC @ =0x02000000
+ movs r2, 0xB0
+ lsls r2, 9
+ adds r1, r2
+ bl _08017072
+ .align 2, 0
+_080168B0: .4byte gBattleMons
+_080168B4: .4byte gBattleMoveDamage
+_080168B8: .4byte gUnknown_081D9518
+_080168BC: .4byte 0x02000000
+_080168C0:
+ ldr r2, _0801690C @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08016902
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08016902
+ ldr r2, _08016910 @ =gBattleMoveDamage
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 3
+ str r0, [r2]
+ cmp r0, 0
+ bne _080168F2
+ movs r0, 0x1
+ str r0, [r2]
+_080168F2:
+ ldr r0, _08016914 @ =gUnknown_081D953A
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016902:
+ ldr r1, _08016918 @ =0x02000000
+ movs r3, 0xB0
+ lsls r3, 9
+ adds r1, r3
+ b _08017072
+ .align 2, 0
+_0801690C: .4byte gBattleMons
+_08016910: .4byte gBattleMoveDamage
+_08016914: .4byte gUnknown_081D953A
+_08016918: .4byte 0x02000000
+_0801691C:
+ ldr r2, _0801696C @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 20
+ ands r0, r1
+ cmp r0, 0
+ beq _08016960
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08016960
+ ldr r2, _08016970 @ =gBattleMoveDamage
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 2
+ str r0, [r2]
+ cmp r0, 0
+ bne _08016950
+ movs r0, 0x1
+ str r0, [r2]
+_08016950:
+ ldr r0, _08016974 @ =gUnknown_081D9613
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016960:
+ ldr r1, _08016978 @ =0x02000000
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r1, r5
+ b _08017072
+ .align 2, 0
+_0801696C: .4byte gBattleMons
+_08016970: .4byte gBattleMoveDamage
+_08016974: .4byte gUnknown_081D9613
+_08016978: .4byte 0x02000000
+_0801697C:
+ ldr r2, _080169CC @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 21
+ ands r0, r1
+ cmp r0, 0
+ beq _080169C0
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _080169C0
+ ldr r2, _080169D0 @ =gBattleMoveDamage
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 2
+ str r0, [r2]
+ cmp r0, 0
+ bne _080169B0
+ movs r0, 0x1
+ str r0, [r2]
+_080169B0:
+ ldr r0, _080169D4 @ =gUnknown_081D9624
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080169C0:
+ ldr r1, _080169D8 @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_080169CC: .4byte gBattleMons
+_080169D0: .4byte gBattleMoveDamage
+_080169D4: .4byte gUnknown_081D9624
+_080169D8: .4byte 0x02000000
+_080169DC:
+ ldr r0, _08016A8C @ =gBattleMons
+ mov r8, r0
+ ldrb r0, [r6]
+ movs r1, 0x58
+ mov r10, r1
+ mov r1, r10
+ muls r1, r0
+ mov r5, r8
+ adds r5, 0x50
+ adds r3, r1, r5
+ ldr r2, [r3]
+ movs r4, 0xE0
+ lsls r4, 8
+ adds r0, r2, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08016AF6
+ mov r7, r8
+ adds r0, r1, r7
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08016AF6
+ ldr r1, _08016A90 @ =0xffffe000
+ adds r0, r2, r1
+ str r0, [r3]
+ ldrb r1, [r6]
+ mov r0, r10
+ muls r0, r1
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _08016AB4
+ ldr r2, _08016A94 @ =0x02000000
+ lsls r0, r1, 1
+ ldr r4, _08016A98 @ =0x00016004
+ adds r0, r4
+ adds r0, r2
+ ldrb r1, [r0]
+ ldr r3, _08016A9C @ =0x000160a4
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldrb r0, [r6]
+ lsls r0, 1
+ subs r3, 0x9F
+ adds r0, r3
+ adds r0, r2
+ ldrb r1, [r0]
+ ldr r5, _08016AA0 @ =0x000160a5
+ adds r0, r2, r5
+ strb r1, [r0]
+ ldr r1, _08016AA4 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r4
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08016AA8 @ =gBattlescriptCurrInstr
+ ldr r0, _08016AAC @ =gUnknown_081D95E2
+ str r0, [r1]
+ ldr r2, _08016AB0 @ =gBattleMoveDamage
+ ldrb r0, [r6]
+ mov r7, r10
+ muls r7, r0
+ adds r0, r7, 0
+ add r0, r8
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 4
+ str r0, [r2]
+ cmp r0, 0
+ bne _08016AE6
+ movs r0, 0x1
+ str r0, [r2]
+ b _08016AE6
+ .align 2, 0
+_08016A8C: .4byte gBattleMons
+_08016A90: .4byte 0xffffe000
+_08016A94: .4byte 0x02000000
+_08016A98: .4byte 0x00016004
+_08016A9C: .4byte 0x000160a4
+_08016AA0: .4byte 0x000160a5
+_08016AA4: .4byte gBattleTextBuff1
+_08016AA8: .4byte gBattlescriptCurrInstr
+_08016AAC: .4byte gUnknown_081D95E2
+_08016AB0: .4byte gBattleMoveDamage
+_08016AB4:
+ ldr r1, _08016B00 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldr r2, _08016B04 @ =0x02000000
+ ldrb r0, [r6]
+ lsls r0, 1
+ ldr r3, _08016B08 @ =0x00016004
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r6]
+ lsls r0, 1
+ ldr r5, _08016B0C @ =0x00016005
+ adds r0, r5
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08016B10 @ =gBattlescriptCurrInstr
+ ldr r0, _08016B14 @ =gUnknown_081D95F4
+ str r0, [r1]
+_08016AE6:
+ ldr r0, [r1]
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016AF6:
+ ldr r1, _08016B04 @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_08016B00: .4byte gBattleTextBuff1
+_08016B04: .4byte 0x02000000
+_08016B08: .4byte 0x00016004
+_08016B0C: .4byte 0x00016005
+_08016B10: .4byte gBattlescriptCurrInstr
+_08016B14: .4byte gUnknown_081D95F4
+_08016B18:
+ movs r0, 0x8
+ negs r0, r0
+ ands r4, r0
+ str r4, [r2]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ mov r0, r10
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08016B68 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r1, _08016B6C @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ ldr r0, _08016B70 @ =gUnknown_081D950F
+ bl b_call_bc_move_exec
+ ldr r4, _08016B74 @ =gActiveBank
+ ldrb r0, [r6]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ b _08016BE0
+ .align 2, 0
+_08016B68: .4byte 0xf7ffffff
+_08016B6C: .4byte gBattleCommunication
+_08016B70: .4byte gUnknown_081D950F
+_08016B74: .4byte gActiveBank
+_08016B78:
+ ldr r2, _08016BF4 @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x70
+ ands r1, r0
+ adds r7, r2, 0
+ cmp r1, 0
+ beq _08016C82
+ movs r0, 0
+ strb r0, [r4]
+ mov r2, r8
+ ldrb r1, [r2]
+ cmp r1, 0
+ beq _08016BE0
+ mov r10, r7
+ adds r6, r4, 0
+ movs r3, 0x58
+ mov r8, r3
+ movs r5, 0x4C
+ adds r5, r7
+ mov r9, r5
+ str r1, [sp, 0x4]
+ movs r0, 0x7
+ mov r12, r0
+_08016BB2:
+ ldrb r1, [r6]
+ mov r3, r8
+ muls r3, r1
+ mov r5, r9
+ adds r2, r3, r5
+ ldr r4, [r2]
+ adds r0, r4, 0
+ mov r5, r12
+ ands r0, r5
+ cmp r0, 0
+ beq _08016BD2
+ adds r0, r3, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2B
+ bne _08016B18
+_08016BD2:
+ adds r0, r1, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp, 0x4]
+ cmp r0, r1
+ bcc _08016BB2
+_08016BE0:
+ ldr r2, _08016BF8 @ =gBankAttacker
+ ldr r1, _08016BFC @ =gNoOfAllBanks
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08016C00
+ movs r2, 0x2
+ mov r9, r2
+ b _0801707E
+ .align 2, 0
+_08016BF4: .4byte gBattleMons
+_08016BF8: .4byte gBankAttacker
+_08016BFC: .4byte gNoOfAllBanks
+_08016C00:
+ ldr r5, _08016C38 @ =gActiveBank
+ ldrb r0, [r5]
+ strb r0, [r2]
+ ldr r2, _08016C3C @ =gBattleMons
+ ldrb r0, [r5]
+ movs r7, 0x58
+ adds r1, r0, 0
+ muls r1, r7
+ adds r6, r2, 0
+ adds r6, 0x50
+ adds r1, r6
+ ldr r0, [r1]
+ subs r0, 0x10
+ str r0, [r1]
+ ldrb r0, [r5]
+ bl sub_8015660
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08016C44
+ ldrb r0, [r5]
+ bl CancelMultiTurnMoves
+ ldr r1, _08016C40 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08016C78
+ .align 2, 0
+_08016C38: .4byte gActiveBank
+_08016C3C: .4byte gBattleMons
+_08016C40: .4byte gBattleCommunication
+_08016C44:
+ ldrb r3, [r5]
+ adds r0, r3, 0
+ muls r0, r7
+ adds r2, r0, r6
+ ldr r0, [r2]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ beq _08016C6C
+ ldr r0, _08016C68 @ =gBattleCommunication
+ strb r4, [r0, 0x5]
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r2]
+ b _08016C78
+ .align 2, 0
+_08016C68: .4byte gBattleCommunication
+_08016C6C:
+ ldr r1, _08016C94 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ adds r0, r3, 0
+ bl CancelMultiTurnMoves
+_08016C78:
+ ldr r0, _08016C98 @ =gUnknown_081D957E
+ bl b_call_bc_move_exec
+ movs r3, 0x1
+ mov r9, r3
+_08016C82:
+ mov r5, r9
+ cmp r5, 0x2
+ bne _08016C8A
+ b _08017078
+_08016C8A:
+ ldr r1, _08016C9C @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_08016C94: .4byte gBattleCommunication
+_08016C98: .4byte gUnknown_081D957E
+_08016C9C: .4byte 0x02000000
+_08016CA0:
+ ldr r1, _08016CD8 @ =gBattleMons
+ ldrb r0, [r6]
+ movs r7, 0x58
+ muls r0, r7
+ adds r5, r1, 0
+ adds r5, 0x50
+ adds r2, r0, r5
+ ldr r1, [r2]
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08016D3C
+ ldr r3, _08016CDC @ =0xfffffc00
+ adds r0, r1, r3
+ str r0, [r2]
+ ldrb r0, [r6]
+ bl sub_8015660
+ lsls r0, 24
+ cmp r0, 0
+ beq _08016CE0
+ ldrb r0, [r6]
+ bl CancelMultiTurnMoves
+ b _08016D3C
+ .align 2, 0
+_08016CD8: .4byte gBattleMons
+_08016CDC: .4byte 0xfffffc00
+_08016CE0:
+ ldrb r0, [r6]
+ muls r0, r7
+ adds r2, r0, r5
+ ldr r1, [r2]
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, 0
+ bne _08016D3C
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _08016D3C
+ ldr r0, _08016D48 @ =0xffffefff
+ ands r1, r0
+ str r1, [r2]
+ ldrb r0, [r6]
+ muls r0, r7
+ adds r0, r5
+ ldr r0, [r0]
+ movs r4, 0x7
+ ands r0, r4
+ cmp r0, 0
+ bne _08016D3C
+ ldr r1, _08016D4C @ =gBattleCommunication
+ movs r0, 0x47
+ strb r0, [r1, 0x3]
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_801E3EC
+ ldrb r0, [r6]
+ muls r0, r7
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _08016D32
+ ldr r0, _08016D50 @ =gUnknown_081D9587
+ bl b_call_bc_move_exec
+_08016D32:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016D3C:
+ ldr r1, _08016D54 @ =0x02000000
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r1, r5
+ b _08017072
+ .align 2, 0
+_08016D48: .4byte 0xffffefff
+_08016D4C: .4byte gBattleCommunication
+_08016D50: .4byte gUnknown_081D9587
+_08016D54: .4byte 0x02000000
+_08016D58:
+ ldr r0, _08016DD4 @ =gDisableStructs
+ ldrb r3, [r6]
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r5, r1, r0
+ ldrb r1, [r5, 0xB]
+ lsls r1, 28
+ adds r7, r0, 0
+ cmp r1, 0
+ beq _08016E1E
+ movs r4, 0
+ ldr r2, _08016DD8 @ =gBattleMons
+ movs r0, 0x58
+ adds r1, r3, 0
+ muls r1, r0
+ adds r2, 0xC
+ adds r1, r2
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08016DAC
+ mov r12, r7
+ mov r8, r2
+ adds r5, r6, 0
+ movs r3, 0x58
+_08016D8C:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08016DAC
+ ldrb r2, [r5]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r12
+ lsls r0, r4, 1
+ muls r2, r3
+ adds r0, r2
+ add r0, r8
+ ldrh r1, [r1, 0x4]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _08016D8C
+_08016DAC:
+ cmp r4, 0x4
+ bne _08016DDC
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0
+ strh r1, [r0, 0x4]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r1, 0xB]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xB]
+ b _08016E1E
+ .align 2, 0
+_08016DD4: .4byte gDisableStructs
+_08016DD8: .4byte gBattleMons
+_08016DDC:
+ ldrb r0, [r6]
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrb r3, [r2, 0xB]
+ lsls r1, r3, 28
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0xB]
+ adds r2, r1, 0
+ cmp r2, 0
+ bne _08016E1E
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r2, [r0, 0x4]
+ ldr r0, _08016E28 @ =gUnknown_081D9148
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016E1E:
+ ldr r1, _08016E2C @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_08016E28: .4byte gUnknown_081D9148
+_08016E2C: .4byte 0x02000000
+_08016E30:
+ ldr r3, _08016E7C @ =gDisableStructs
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ ldrb r5, [r2, 0xE]
+ lsls r4, r5, 28
+ cmp r4, 0
+ beq _08016EE8
+ ldr r0, _08016E80 @ =gBattleMons
+ mov r8, r0
+ ldrb r0, [r2, 0xC]
+ lsls r0, 1
+ movs r7, 0x58
+ muls r1, r7
+ adds r0, r1
+ mov r1, r8
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ ldrh r1, [r2, 0x6]
+ cmp r0, r1
+ beq _08016E84
+ movs r0, 0
+ strh r0, [r2, 0x6]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0xE]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xE]
+ b _08016EE8
+ .align 2, 0
+_08016E7C: .4byte gDisableStructs
+_08016E80: .4byte gBattleMons
+_08016E84:
+ lsrs r1, r4, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r4, 0x10
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r5
+ orrs r0, r1
+ strb r0, [r2, 0xE]
+ cmp r1, 0
+ beq _08016EB8
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ muls r1, r7
+ ldrb r0, [r0, 0xC]
+ adds r1, r0
+ mov r0, r8
+ adds r0, 0x24
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08016EE8
+_08016EB8:
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x6]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0xE]
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0xE]
+ ldr r0, _08016EF4 @ =gUnknown_081D914F
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016EE8:
+ ldr r1, _08016EF8 @ =0x02000000
+ movs r2, 0xB0
+ lsls r2, 9
+ adds r1, r2
+ b _08017072
+ .align 2, 0
+_08016EF4: .4byte gUnknown_081D914F
+_08016EF8: .4byte 0x02000000
+_08016EFC:
+ ldr r0, _08016F1C @ =gStatuses3
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ beq _08016F14
+ adds r0, r2, 0
+ subs r0, 0x8
+ str r0, [r1]
+_08016F14:
+ movs r1, 0xB0
+ lsls r1, 9
+ b _08017070
+ .align 2, 0
+_08016F1C: .4byte gStatuses3
+_08016F20:
+ ldr r2, _08016F60 @ =gDisableStructs
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ ldrb r2, [r3, 0x12]
+ lsls r1, r2, 28
+ cmp r1, 0
+ beq _08016F5A
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x12]
+ cmp r1, 0
+ bne _08016F5A
+ ldr r0, _08016F64 @ =gStatuses3
+ ldrb r2, [r6]
+ lsls r2, 2
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08016F68 @ =0xfffffdff
+ ands r0, r1
+ str r0, [r2]
+_08016F5A:
+ movs r1, 0xB0
+ lsls r1, 9
+ b _08017070
+ .align 2, 0
+_08016F60: .4byte gDisableStructs
+_08016F64: .4byte gStatuses3
+_08016F68: .4byte 0xfffffdff
+_08016F6C:
+ ldr r2, _08016F98 @ =gDisableStructs
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ ldrb r2, [r3, 0x13]
+ lsls r1, r2, 28
+ cmp r1, 0
+ beq _08016F92
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x13]
+_08016F92:
+ movs r1, 0xB0
+ lsls r1, 9
+ b _08017070
+ .align 2, 0
+_08016F98: .4byte gDisableStructs
+_08016F9C:
+ ldr r4, _0801704C @ =gStatuses3
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r3, 0xC0
+ lsls r3, 5
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08017042
+ ldr r5, _08017050 @ =0xfffff800
+ adds r0, r1, r5
+ str r0, [r2]
+ ldrb r2, [r6]
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ bne _08017042
+ ldr r3, _08017054 @ =gBattleMons
+ movs r5, 0x58
+ adds r1, r2, 0
+ muls r1, r5
+ adds r4, r3, 0
+ adds r4, 0x4C
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08017042
+ adds r0, r1, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x48
+ beq _08017042
+ cmp r0, 0xF
+ beq _08017042
+ adds r0, r2, 0
+ bl sub_8025A44
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017042
+ ldrb r0, [r6]
+ bl CancelMultiTurnMoves
+ bl Random
+ ldrb r1, [r6]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x2
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r6]
+ bl MarkBufferBankForExecution
+ ldr r1, _08017058 @ =gEffectBank
+ ldrb r0, [r6]
+ strb r0, [r1]
+ ldr r0, _0801705C @ =gUnknown_081D964C
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08017042:
+ ldr r1, _08017060 @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_0801704C: .4byte gStatuses3
+_08017050: .4byte 0xfffff800
+_08017054: .4byte gBattleMons
+_08017058: .4byte gEffectBank
+_0801705C: .4byte gUnknown_081D964C
+_08017060: .4byte 0x02000000
+_08017064:
+ movs r1, 0xB0
+ lsls r1, 9
+ add r1, r10
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08017084 @ =0x00016001
+_08017070:
+ add r1, r10
+_08017072:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08017078:
+ mov r0, r9
+ cmp r0, 0
+ beq _08017088
+_0801707E:
+ mov r0, r9
+ b _080170B8
+ .align 2, 0
+_08017084: .4byte 0x00016001
+_08017088:
+ ldr r7, _080170C8 @ =0x02000000
+ ldr r2, _080170CC @ =0x00016001
+ adds r0, r7, r2
+ ldr r1, _080170D0 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ mov r10, r7
+ mov r8, r1
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080170AC
+ movs r3, 0xB0
+ lsls r3, 9
+ adds r0, r7, r3
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bhi _080170AC
+ bl _08016580
+_080170AC:
+ ldr r0, _080170D4 @ =gHitMarker
+ ldr r1, [r0]
+ ldr r2, _080170D8 @ =0xfeffffdf
+ ands r1, r2
+ str r1, [r0]
+ movs r0, 0
+_080170B8:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080170C8: .4byte 0x02000000
+_080170CC: .4byte 0x00016001
+_080170D0: .4byte gNoOfAllBanks
+_080170D4: .4byte gHitMarker
+_080170D8: .4byte 0xfeffffdf
+ thumb_func_end TurnBasedEffects
+
+ thumb_func_start sub_80170DC
+sub_80170DC: @ 80170DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, _08017108 @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _0801710C @ =0x01000020
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08017110 @ =0x02000000
+ ldr r3, _08017114 @ =0x00016110
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ mov r8, r1
+ cmp r0, 0
+ beq _08017118
+ cmp r0, 0x1
+ bne _08017104
+ b _08017258
+_08017104:
+ b _08017380
+ .align 2, 0
+_08017108: .4byte gHitMarker
+_0801710C: .4byte 0x01000020
+_08017110: .4byte 0x02000000
+_08017114: .4byte 0x00016110
+_08017118:
+ ldr r2, _0801715C @ =0x00016111
+ add r2, r8
+ ldr r0, _08017160 @ =gNoOfAllBanks
+ ldrb r1, [r2]
+ mov r9, r0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _0801712A
+ b _08017248
+_0801712A:
+ ldr r4, _08017164 @ =gActiveBank
+ adds r5, r2, 0
+ ldr r1, _08017168 @ =gWishFutureKnock
+ mov r12, r1
+ movs r2, 0x8
+ add r2, r12
+ mov r10, r2
+ mov r7, r12
+ adds r7, 0x18
+ ldr r6, _0801716C @ =gBattleTextBuff1
+_0801713E:
+ ldrb r3, [r5]
+ strb r3, [r4]
+ ldr r0, _08017170 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _08017174 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08017178
+ adds r0, r3, 0x1
+ strb r0, [r5]
+ b _0801723C
+ .align 2, 0
+_0801715C: .4byte 0x00016111
+_08017160: .4byte gNoOfAllBanks
+_08017164: .4byte gActiveBank
+_08017168: .4byte gWishFutureKnock
+_0801716C: .4byte gBattleTextBuff1
+_08017170: .4byte gAbsentBankFlags
+_08017174: .4byte gBitTable
+_08017178:
+ adds r0, r3, 0x1
+ strb r0, [r5]
+ ldr r1, _080171B4 @ =gWishFutureKnock
+ ldrb r0, [r4]
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0801723C
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _0801723C
+ ldr r1, _080171B8 @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801723C
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, 0xF8
+ bne _080171C0
+ ldr r0, _080171BC @ =gBattleCommunication
+ strb r3, [r0, 0x5]
+ b _080171C6
+ .align 2, 0
+_080171B4: .4byte gWishFutureKnock
+_080171B8: .4byte gBattleMons
+_080171BC: .4byte gBattleCommunication
+_080171C0:
+ ldr r1, _08017220 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_080171C6:
+ movs r0, 0xFD
+ strb r0, [r6]
+ movs r0, 0x2
+ strb r0, [r6, 0x1]
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ strb r0, [r6, 0x2]
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r6, 0x3]
+ movs r0, 0xFF
+ strb r0, [r6, 0x4]
+ ldr r3, _08017224 @ =gBankTarget
+ ldrb r0, [r4]
+ strb r0, [r3]
+ ldr r1, _08017228 @ =gBankAttacker
+ mov r0, r12
+ adds r0, 0x4
+ ldrb r2, [r4]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _0801722C @ =gBattleMoveDamage
+ ldrb r0, [r4]
+ lsls r0, 2
+ add r0, r10
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r2, _08017230 @ =gSpecialStatuses
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r1, _08017234 @ =0x0000ffff
+ str r1, [r0]
+ ldr r0, _08017238 @ =gUnknown_081D92D7
+ b _08017364
+ .align 2, 0
+_08017220: .4byte gBattleCommunication
+_08017224: .4byte gBankTarget
+_08017228: .4byte gBankAttacker
+_0801722C: .4byte gBattleMoveDamage
+_08017230: .4byte gSpecialStatuses
+_08017234: .4byte 0x0000ffff
+_08017238: .4byte gUnknown_081D92D7
+_0801723C:
+ ldrb r0, [r5]
+ mov r3, r9
+ ldrb r3, [r3]
+ cmp r0, r3
+ bcs _08017248
+ b _0801713E
+_08017248:
+ ldr r1, _0801729C @ =0x00016110
+ add r1, r8
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080172A0 @ =0x00016111
+ add r0, r8
+ strb r2, [r0]
+_08017258:
+ ldr r2, _080172A0 @ =0x00016111
+ add r2, r8
+ ldr r0, _080172A4 @ =gNoOfAllBanks
+ ldrb r1, [r2]
+ mov r9, r0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _0801726A
+ b _08017380
+_0801726A:
+ ldr r5, _080172A8 @ =gActiveBank
+ adds r3, r2, 0
+ ldr r4, _080172AC @ =gBattleTextBuff1
+ ldr r7, _080172B0 @ =gDisableStructs
+_08017272:
+ ldr r2, _080172B4 @ =gBankAttacker
+ ldr r1, _080172B8 @ =gTurnOrder
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ strb r0, [r5]
+ ldr r0, _080172BC @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _080172C0 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080172C4
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ b _08017374
+ .align 2, 0
+_0801729C: .4byte 0x00016110
+_080172A0: .4byte 0x00016111
+_080172A4: .4byte gNoOfAllBanks
+_080172A8: .4byte gActiveBank
+_080172AC: .4byte gBattleTextBuff1
+_080172B0: .4byte gDisableStructs
+_080172B4: .4byte gBankAttacker
+_080172B8: .4byte gTurnOrder
+_080172BC: .4byte gAbsentBankFlags
+_080172C0: .4byte gBitTable
+_080172C4:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ ldr r6, _08017334 @ =gStatuses3
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r6
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08017374
+ movs r0, 0xFD
+ strb r0, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x3]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0xF]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r4, 0x4]
+ movs r0, 0xFF
+ strb r0, [r4, 0x5]
+ ldrb r2, [r5]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r4, r0, r7
+ ldrb r3, [r4, 0xF]
+ lsls r1, r3, 28
+ cmp r1, 0
+ bne _08017348
+ lsls r2, 2
+ adds r2, r6
+ ldr r0, [r2]
+ movs r1, 0x21
+ negs r1, r1
+ ands r0, r1
+ str r0, [r2]
+ ldr r3, _08017338 @ =gBattleMoveDamage
+ ldr r2, _0801733C @ =gBattleMons
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ str r0, [r3]
+ ldr r1, _08017340 @ =gBattlescriptCurrInstr
+ ldr r0, _08017344 @ =gUnknown_081D9202
+ b _08017360
+ .align 2, 0
+_08017334: .4byte gStatuses3
+_08017338: .4byte gBattleMoveDamage
+_0801733C: .4byte gBattleMons
+_08017340: .4byte gBattlescriptCurrInstr
+_08017344: .4byte gUnknown_081D9202
+_08017348:
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r2, 0x10
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4, 0xF]
+ ldr r1, _0801736C @ =gBattlescriptCurrInstr
+ ldr r0, _08017370 @ =gUnknown_081D921D
+_08017360:
+ str r0, [r1]
+ ldr r0, [r1]
+_08017364:
+ bl b_call_bc_move_exec
+ movs r0, 0x1
+ b _0801738C
+ .align 2, 0
+_0801736C: .4byte gBattlescriptCurrInstr
+_08017370: .4byte gUnknown_081D921D
+_08017374:
+ ldrb r0, [r3]
+ mov r1, r9
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08017380
+ b _08017272
+_08017380:
+ ldr r2, _0801739C @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _080173A0 @ =0xfeffffdf
+ ands r0, r1
+ str r0, [r2]
+ movs r0, 0
+_0801738C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801739C: .4byte gHitMarker
+_080173A0: .4byte 0xfeffffdf
+ thumb_func_end sub_80170DC
+
+ thumb_func_start sub_80173A4
+sub_80173A4: @ 80173A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080173C0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080173F8
+ b _080176AC
+ .align 2, 0
+_080173C0: .4byte gBattleTypeFlags
+_080173C4:
+ ldr r0, _080173D4 @ =gUnknown_081D8C72
+ bl b_call_bc_move_exec
+ ldr r1, _080173D8 @ =0x00016059
+ add r1, r10
+ movs r0, 0x2
+ b _080173E8
+ .align 2, 0
+_080173D4: .4byte gUnknown_081D8C72
+_080173D8: .4byte 0x00016059
+_080173DC:
+ ldr r0, _080173F0 @ =gUnknown_081D8C7B
+ bl b_call_bc_move_exec
+ ldr r1, _080173F4 @ =0x00016059
+ add r1, r8
+ movs r0, 0x5
+_080173E8:
+ strb r0, [r1]
+_080173EA:
+ movs r0, 0x1
+ b _080176AE
+ .align 2, 0
+_080173F0: .4byte gUnknown_081D8C7B
+_080173F4: .4byte 0x00016059
+_080173F8:
+ ldr r0, _08017414 @ =0x02000000
+ mov r9, r0
+_080173FC:
+ ldr r0, _08017418 @ =0x00016059
+ add r0, r9
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _08017408
+ b _080176A0
+_08017408:
+ lsls r0, 2
+ ldr r1, _0801741C @ =_08017420
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08017414: .4byte 0x02000000
+_08017418: .4byte 0x00016059
+_0801741C: .4byte _08017420
+ .align 2, 0
+_08017420:
+ .4byte _08017440
+ .4byte _08017490
+ .4byte _08017534
+ .4byte _0801757C
+ .4byte _0801758E
+ .4byte _080175FC
+ .4byte _08017638
+ .4byte _080176A0
+_08017440:
+ ldr r1, _08017508 @ =0x0001605a
+ add r1, r9
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0801750C @ =0x00016059
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r5, 0
+ ldr r0, _08017510 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _08017490
+ ldr r6, _08017514 @ =gAbsentBankFlags
+_0801745E:
+ ldrb r0, [r6]
+ ldr r2, _08017518 @ =gBitTable
+ lsls r1, r5, 2
+ adds r1, r2
+ ldr r4, [r1]
+ ands r0, r4
+ cmp r0, 0
+ beq _08017486
+ lsls r0, r5, 24
+ lsrs r0, 24
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017486
+ ldrb r0, [r6]
+ bics r0, r4
+ strb r0, [r6]
+_08017486:
+ adds r5, 0x1
+ ldr r0, _08017510 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801745E
+_08017490:
+ ldr r1, _0801751C @ =0x02000000
+ mov r9, r1
+ ldr r0, _08017520 @ =gBank1
+ mov r12, r0
+ ldr r1, _08017524 @ =gBankTarget
+ mov r8, r1
+ mov r10, r9
+ ldr r5, _08017508 @ =0x0001605a
+ add r5, r9
+ ldr r7, _08017528 @ =gBattleMons
+ ldr r6, _0801752C @ =0x00016113
+ add r6, r9
+_080174A8:
+ ldrb r0, [r5]
+ mov r1, r8
+ strb r0, [r1]
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r3, [r5]
+ movs r0, 0x58
+ muls r0, r3
+ adds r0, r7
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _080174EA
+ ldrb r2, [r6]
+ ldr r4, _08017518 @ =gBitTable
+ ldr r1, _08017530 @ =gBattlePartyID
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _080174EA
+ ldr r0, _08017514 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ lsls r0, r3, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080174EA
+ b _080173C4
+_080174EA:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldr r1, _08017510 @ =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080174A8
+ ldr r1, _0801750C @ =0x00016059
+ add r1, r9
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080176A0
+ .align 2, 0
+_08017508: .4byte 0x0001605a
+_0801750C: .4byte 0x00016059
+_08017510: .4byte gNoOfAllBanks
+_08017514: .4byte gAbsentBankFlags
+_08017518: .4byte gBitTable
+_0801751C: .4byte 0x02000000
+_08017520: .4byte gBank1
+_08017524: .4byte gBankTarget
+_08017528: .4byte gBattleMons
+_0801752C: .4byte 0x00016113
+_08017530: .4byte gBattlePartyID
+_08017534:
+ ldr r0, _0801755C @ =gBank1
+ ldrb r0, [r0]
+ bl sub_8015740
+ ldr r2, _08017560 @ =0x02000000
+ ldr r0, _08017564 @ =0x0001605a
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08017568 @ =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08017570
+ ldr r0, _0801756C @ =0x00016059
+ adds r1, r2, r0
+ movs r0, 0x3
+ b _0801769C
+ .align 2, 0
+_0801755C: .4byte gBank1
+_08017560: .4byte 0x02000000
+_08017564: .4byte 0x0001605a
+_08017568: .4byte gNoOfAllBanks
+_0801756C: .4byte 0x00016059
+_08017570:
+ ldr r0, _08017578 @ =0x00016059
+ adds r1, r2, r0
+ movs r0, 0x1
+ b _0801769C
+ .align 2, 0
+_08017578: .4byte 0x00016059
+_0801757C:
+ ldr r1, _080175D8 @ =0x0001605a
+ add r1, r9
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080175DC @ =0x00016059
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0801758E:
+ ldr r7, _080175E0 @ =gBank1
+ ldr r6, _080175E4 @ =gBankTarget
+ ldr r1, _080175E8 @ =0x02000000
+ mov r8, r1
+ ldr r3, _080175D8 @ =0x0001605a
+ add r3, r8
+ ldr r5, _080175EC @ =gBattleMons
+ ldr r4, _080175F0 @ =gBitTable
+_0801759E:
+ ldrb r0, [r3]
+ strb r0, [r6]
+ strb r0, [r7]
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _080175C4
+ ldr r0, _080175F4 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080175C4
+ b _080173DC
+_080175C4:
+ adds r0, r2, 0x1
+ strb r0, [r3]
+ ldr r1, _080175F8 @ =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0801759E
+ b _08017612
+ .align 2, 0
+_080175D8: .4byte 0x0001605a
+_080175DC: .4byte 0x00016059
+_080175E0: .4byte gBank1
+_080175E4: .4byte gBankTarget
+_080175E8: .4byte 0x02000000
+_080175EC: .4byte gBattleMons
+_080175F0: .4byte gBitTable
+_080175F4: .4byte gAbsentBankFlags
+_080175F8: .4byte gNoOfAllBanks
+_080175FC:
+ ldr r0, _0801761C @ =0x0001605a
+ add r0, r9
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08017620 @ =gNoOfAllBanks
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08017628
+_08017612:
+ ldr r1, _08017624 @ =0x00016059
+ add r1, r9
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080176A0
+ .align 2, 0
+_0801761C: .4byte 0x0001605a
+_08017620: .4byte gNoOfAllBanks
+_08017624: .4byte 0x00016059
+_08017628:
+ ldr r1, _08017634 @ =0x00016059
+ add r1, r9
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080176A0
+ .align 2, 0
+_08017634: .4byte 0x00016059
+_08017638:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08017652
+ b _080173EA
+_08017652:
+ str r0, [sp]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017668
+ b _080173EA
+_08017668:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_801A02C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0801767C
+ b _080173EA
+_0801767C:
+ str r0, [sp]
+ movs r0, 0x6
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017692
+ b _080173EA
+_08017692:
+ ldr r2, _080176C0 @ =0x02000000
+ ldr r0, _080176C4 @ =0x00016059
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+_0801769C:
+ strb r0, [r1]
+ mov r9, r2
+_080176A0:
+ ldr r0, _080176C4 @ =0x00016059
+ add r0, r9
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _080176AC
+ b _080173FC
+_080176AC:
+ movs r0, 0
+_080176AE:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080176C0: .4byte 0x02000000
+_080176C4: .4byte 0x00016059
+ thumb_func_end sub_80173A4
+
+ thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged
+b_clear_atk_up_if_hit_flag_unless_enraged: @ 80176C8
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r0, _08017708 @ =gNoOfAllBanks
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r3, r0
+ bge _08017700
+ ldr r4, _0801770C @ =gChosenMovesByBanks
+ movs r6, 0x80
+ lsls r6, 16
+ ldr r2, _08017710 @ =gUnknown_02024AD0
+_080176DE:
+ ldr r1, [r2]
+ adds r0, r1, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _080176F4
+ ldrh r0, [r4]
+ cmp r0, 0x63
+ beq _080176F4
+ ldr r0, _08017714 @ =0xff7fffff
+ ands r1, r0
+ str r1, [r2]
+_080176F4:
+ adds r4, 0x2
+ adds r2, 0x58
+ adds r3, 0x1
+ ldrb r0, [r5]
+ cmp r3, r0
+ blt _080176DE
+_08017700:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08017708: .4byte gNoOfAllBanks
+_0801770C: .4byte gChosenMovesByBanks
+_08017710: .4byte gUnknown_02024AD0
+_08017714: .4byte 0xff7fffff
+ thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged
+
+ thumb_func_start sub_8017718
+sub_8017718: @ 8017718
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _08017734 @ =0x02016090
+ mov r10, r1
+ ldr r2, _08017738 @ =0xfffe9f70
+ add r2, r10
+ mov r8, r2
+ b _08017746
+ .align 2, 0
+_08017734: .4byte 0x02016090
+_08017738: .4byte 0xfffe9f70
+_0801773C:
+ mov r4, r9
+ cmp r4, 0
+ beq _08017746
+ bl _08017FAC
+_08017746:
+ ldr r0, _08017760 @ =0x000160e7
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ bls _08017754
+ bl _08017F9E
+_08017754:
+ lsls r0, 2
+ ldr r1, _08017764 @ =_08017768
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08017760: .4byte 0x000160e7
+_08017764: .4byte _08017768
+ .align 2, 0
+_08017768:
+ .4byte _080177A4
+ .4byte _080177E4
+ .4byte _08017920
+ .4byte _080179D8
+ .4byte _08017A50
+ .4byte _08017AC8
+ .4byte _08017B1C
+ .4byte _08017B98
+ .4byte _08017C1C
+ .4byte _08017C60
+ .4byte _08017D3C
+ .4byte _08017DC0
+ .4byte _08017E5C
+ .4byte _08017F48
+ .4byte _08017F9E
+_080177A4:
+ ldr r1, _080177D0 @ =gBattleMons
+ ldr r3, _080177D4 @ =gBankAttacker
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _080177D8 @ =0xfdffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _080177DC @ =gStatuses3
+ ldrb r2, [r3]
+ lsls r2, 2
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _080177E0 @ =0xffffbfff
+ ands r0, r1
+ str r0, [r2]
+ bl _08017F94
+ .align 2, 0
+_080177D0: .4byte gBattleMons
+_080177D4: .4byte gBankAttacker
+_080177D8: .4byte 0xfdffffff
+_080177DC: .4byte gStatuses3
+_080177E0: .4byte 0xffffbfff
+_080177E4:
+ ldr r7, _0801784C @ =gBattleMons
+ ldr r4, _08017850 @ =gBankAttacker
+ ldrb r1, [r4]
+ movs r5, 0x58
+ adds r0, r1, 0
+ muls r0, r5
+ adds r6, r7, 0
+ adds r6, 0x4C
+ adds r0, r6
+ ldr r0, [r0]
+ movs r2, 0x7
+ mov r8, r2
+ ands r0, r2
+ cmp r0, 0
+ bne _08017804
+ b _08017D90
+_08017804:
+ adds r0, r1, 0
+ bl sub_8025A44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017864
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r2, r6
+ ldr r0, [r2]
+ movs r1, 0x8
+ negs r1, r1
+ ands r0, r1
+ str r0, [r2]
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r0, r7, 0
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08017854 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08017858 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ ldr r1, _0801785C @ =gBattlescriptCurrInstr
+ ldr r0, _08017860 @ =gUnknown_081D94FB
+ str r0, [r1]
+ movs r4, 0x2
+ mov r9, r4
+ b _08017D90
+ .align 2, 0
+_0801784C: .4byte gBattleMons
+_08017850: .4byte gBankAttacker
+_08017854: .4byte 0xf7ffffff
+_08017858: .4byte gBattleCommunication
+_0801785C: .4byte gBattlescriptCurrInstr
+_08017860: .4byte gUnknown_081D94FB
+_08017864:
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r0, r1, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ movs r3, 0x1
+ cmp r0, 0x30
+ bne _08017878
+ movs r3, 0x2
+_08017878:
+ adds r2, r1, r6
+ ldr r1, [r2]
+ adds r0, r1, 0
+ mov r7, r8
+ ands r0, r7
+ cmp r0, r3
+ bcs _08017890
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ b _08017894
+_08017890:
+ subs r0, r1, r3
+ str r0, [r2]
+_08017894:
+ ldr r2, _080178D8 @ =gBattleMons
+ ldr r0, _080178DC @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r4, [r0]
+ movs r0, 0x7
+ ands r4, r0
+ cmp r4, 0
+ beq _080178F0
+ ldr r0, _080178E0 @ =gCurrentMove
+ ldrh r0, [r0]
+ cmp r0, 0xAD
+ bne _080178B8
+ b _08017D90
+_080178B8:
+ cmp r0, 0xD6
+ bne _080178BE
+ b _08017D90
+_080178BE:
+ ldr r1, _080178E4 @ =gBattlescriptCurrInstr
+ ldr r0, _080178E8 @ =gUnknown_081D94EE
+ str r0, [r1]
+ ldr r2, _080178EC @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0x2
+ mov r9, r0
+ b _08017D90
+ .align 2, 0
+_080178D8: .4byte gBattleMons
+_080178DC: .4byte gBankAttacker
+_080178E0: .4byte gCurrentMove
+_080178E4: .4byte gBattlescriptCurrInstr
+_080178E8: .4byte gUnknown_081D94EE
+_080178EC: .4byte gHitMarker
+_080178F0:
+ adds r2, 0x50
+ adds r2, r1, r2
+ ldr r0, [r2]
+ ldr r1, _08017910 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r0, _08017914 @ =gBattleCommunication
+ strb r4, [r0, 0x5]
+ ldr r1, _08017918 @ =gBattlescriptCurrInstr
+ ldr r0, _0801791C @ =gUnknown_081D94FB
+ str r0, [r1]
+ movs r1, 0x2
+ b _08017D8E
+ .align 2, 0
+_08017910: .4byte 0xf7ffffff
+_08017914: .4byte gBattleCommunication
+_08017918: .4byte gBattlescriptCurrInstr
+_0801791C: .4byte gUnknown_081D94FB
+_08017920:
+ ldr r1, _0801797C @ =gBattleMons
+ ldr r7, _08017980 @ =gBankAttacker
+ ldrb r0, [r7]
+ movs r6, 0x58
+ muls r0, r6
+ adds r5, r1, 0
+ adds r5, 0x4C
+ adds r0, r5
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0801793C
+ b _08017F94
+_0801793C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080179A8
+ ldr r2, _08017984 @ =gBattleMoves
+ ldr r0, _08017988 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x7D
+ beq _08017998
+ ldr r1, _0801798C @ =gBattlescriptCurrInstr
+ ldr r0, _08017990 @ =gUnknown_081D9545
+ str r0, [r1]
+ ldr r2, _08017994 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ str r0, [r2]
+ b _080179C8
+ .align 2, 0
+_0801797C: .4byte gBattleMons
+_08017980: .4byte gBankAttacker
+_08017984: .4byte gBattleMoves
+_08017988: .4byte gCurrentMove
+_0801798C: .4byte gBattlescriptCurrInstr
+_08017990: .4byte gUnknown_081D9545
+_08017994: .4byte gHitMarker
+_08017998:
+ ldr r2, _080179A0 @ =0x02000000
+ ldr r7, _080179A4 @ =0x000160e7
+ adds r1, r2, r7
+ b _08017D96
+ .align 2, 0
+_080179A0: .4byte 0x02000000
+_080179A4: .4byte 0x000160e7
+_080179A8:
+ ldrb r0, [r7]
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r5
+ ldr r0, [r2]
+ movs r1, 0x21
+ negs r1, r1
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080179CC @ =gBattlescriptCurrInstr
+ ldr r0, _080179D0 @ =gUnknown_081D9552
+ str r0, [r1]
+ ldr r0, _080179D4 @ =gBattleCommunication
+ strb r4, [r0, 0x5]
+_080179C8:
+ movs r0, 0x2
+ b _08017E3C
+ .align 2, 0
+_080179CC: .4byte gBattlescriptCurrInstr
+_080179D0: .4byte gUnknown_081D9552
+_080179D4: .4byte gBattleCommunication
+_080179D8:
+ ldr r1, _08017A30 @ =gBattleMons
+ ldr r0, _08017A34 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x36
+ beq _080179EE
+ b _08017D90
+_080179EE:
+ ldr r0, _08017A38 @ =gDisableStructs
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x18]
+ lsls r0, 31
+ cmp r0, 0
+ bne _08017A02
+ b _08017D90
+_08017A02:
+ adds r0, r2, 0
+ bl CancelMultiTurnMoves
+ ldr r2, _08017A3C @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08017A40 @ =gBattleCommunication
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ ldr r1, _08017A44 @ =gBattlescriptCurrInstr
+ ldr r0, _08017A48 @ =gUnknown_081D9977
+ str r0, [r1]
+ ldr r2, _08017A4C @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r2, 0x1
+ mov r9, r2
+ b _08017D90
+ .align 2, 0
+_08017A30: .4byte gBattleMons
+_08017A34: .4byte gBankAttacker
+_08017A38: .4byte gDisableStructs
+_08017A3C: .4byte gHitMarker
+_08017A40: .4byte gBattleCommunication
+_08017A44: .4byte gBattlescriptCurrInstr
+_08017A48: .4byte gUnknown_081D9977
+_08017A4C: .4byte gBattleMoveFlags
+_08017A50:
+ ldr r1, _08017AA4 @ =gBattleMons
+ ldr r3, _08017AA8 @ =gBankAttacker
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 15
+ ands r0, r1
+ cmp r0, 0
+ beq _08017A9C
+ ldr r0, _08017AAC @ =0xffbfffff
+ ands r1, r0
+ str r1, [r2]
+ ldr r2, _08017AB0 @ =gDisableStructs
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x19]
+ ldrb r0, [r3]
+ bl CancelMultiTurnMoves
+ ldr r1, _08017AB4 @ =gBattlescriptCurrInstr
+ ldr r0, _08017AB8 @ =gUnknown_081D7956
+ str r0, [r1]
+ ldr r2, _08017ABC @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r7, 0x1
+ mov r9, r7
+_08017A9C:
+ ldr r2, _08017AC0 @ =0x02000000
+ ldr r0, _08017AC4 @ =0x000160e7
+ adds r1, r2, r0
+ b _08017D96
+ .align 2, 0
+_08017AA4: .4byte gBattleMons
+_08017AA8: .4byte gBankAttacker
+_08017AAC: .4byte 0xffbfffff
+_08017AB0: .4byte gDisableStructs
+_08017AB4: .4byte gBattlescriptCurrInstr
+_08017AB8: .4byte gUnknown_081D7956
+_08017ABC: .4byte gHitMarker
+_08017AC0: .4byte 0x02000000
+_08017AC4: .4byte 0x000160e7
+_08017AC8:
+ ldr r1, _08017B08 @ =gBattleMons
+ ldr r3, _08017B0C @ =gBankAttacker
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08017AE2
+ b _08017D90
+_08017AE2:
+ movs r0, 0x9
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ ldr r0, _08017B10 @ =gProtectStructs
+ ldrb r2, [r3]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r3]
+ bl CancelMultiTurnMoves
+ ldr r1, _08017B14 @ =gBattlescriptCurrInstr
+ ldr r0, _08017B18 @ =gUnknown_081D9573
+ b _08017D7E
+ .align 2, 0
+_08017B08: .4byte gBattleMons
+_08017B0C: .4byte gBankAttacker
+_08017B10: .4byte gProtectStructs
+_08017B14: .4byte gBattlescriptCurrInstr
+_08017B18: .4byte gUnknown_081D9573
+_08017B1C:
+ ldr r0, _08017B74 @ =gDisableStructs
+ ldr r3, _08017B78 @ =gBankAttacker
+ ldrb r2, [r3]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08017B7C @ =gCurrentMove
+ ldrh r1, [r1, 0x4]
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _08017B36
+ b _08017D90
+_08017B36:
+ cmp r1, 0
+ bne _08017B3C
+ b _08017D90
+_08017B3C:
+ ldr r0, _08017B80 @ =gProtectStructs
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, _08017B84 @ =0x02000000
+ ldrb r1, [r3]
+ ldr r7, _08017B88 @ =0x00016003
+ adds r0, r7
+ strb r1, [r0]
+ ldrb r0, [r3]
+ bl CancelMultiTurnMoves
+ ldr r1, _08017B8C @ =gBattlescriptCurrInstr
+ ldr r0, _08017B90 @ =gUnknown_081D9139
+ str r0, [r1]
+ ldr r2, _08017B94 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0x1
+ mov r9, r0
+ b _08017D90
+ .align 2, 0
+_08017B74: .4byte gDisableStructs
+_08017B78: .4byte gBankAttacker
+_08017B7C: .4byte gCurrentMove
+_08017B80: .4byte gProtectStructs
+_08017B84: .4byte 0x02000000
+_08017B88: .4byte 0x00016003
+_08017B8C: .4byte gBattlescriptCurrInstr
+_08017B90: .4byte gUnknown_081D9139
+_08017B94: .4byte gHitMarker
+_08017B98:
+ ldr r0, _08017BF4 @ =gDisableStructs
+ ldr r4, _08017BF8 @ =gBankAttacker
+ ldrb r3, [r4]
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08017BEC
+ ldr r2, _08017BFC @ =gBattleMoves
+ ldr r0, _08017C00 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _08017BEC
+ ldr r0, _08017C04 @ =gProtectStructs
+ lsls r2, r3, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r4]
+ bl CancelMultiTurnMoves
+ ldr r1, _08017C08 @ =gBattlescriptCurrInstr
+ ldr r0, _08017C0C @ =gUnknown_081D938F
+ str r0, [r1]
+ ldr r2, _08017C10 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r7, 0x1
+ mov r9, r7
+_08017BEC:
+ ldr r2, _08017C14 @ =0x02000000
+ ldr r0, _08017C18 @ =0x000160e7
+ adds r1, r2, r0
+ b _08017D96
+ .align 2, 0
+_08017BF4: .4byte gDisableStructs
+_08017BF8: .4byte gBankAttacker
+_08017BFC: .4byte gBattleMoves
+_08017C00: .4byte gCurrentMove
+_08017C04: .4byte gProtectStructs
+_08017C08: .4byte gBattlescriptCurrInstr
+_08017C0C: .4byte gUnknown_081D938F
+_08017C10: .4byte gHitMarker
+_08017C14: .4byte 0x02000000
+_08017C18: .4byte 0x000160e7
+_08017C1C:
+ ldr r4, _08017C4C @ =gBankAttacker
+ ldrb r0, [r4]
+ ldr r1, _08017C50 @ =gCurrentMove
+ ldrh r1, [r1]
+ bl sub_8015D5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017C30
+ b _08017D90
+_08017C30:
+ ldr r0, _08017C54 @ =gProtectStructs
+ ldrb r2, [r4]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r4]
+ bl CancelMultiTurnMoves
+ ldr r1, _08017C58 @ =gBattlescriptCurrInstr
+ ldr r0, _08017C5C @ =gUnknown_081D9459
+ b _08017D7E
+ .align 2, 0
+_08017C4C: .4byte gBankAttacker
+_08017C50: .4byte gCurrentMove
+_08017C54: .4byte gProtectStructs
+_08017C58: .4byte gBattlescriptCurrInstr
+_08017C5C: .4byte gUnknown_081D9459
+_08017C60:
+ ldr r7, _08017CAC @ =gBattleMons
+ ldr r5, _08017CB0 @ =gBankAttacker
+ ldrb r0, [r5]
+ movs r6, 0x58
+ muls r0, r6
+ adds r4, r7, 0
+ adds r4, 0x50
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r3, 0x7
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _08017C7E
+ b _08017F94
+_08017C7E:
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ beq _08017D24
+ bl Random
+ movs r1, 0x1
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _08017CB8
+ ldr r1, _08017CB4 @ =gBattleCommunication
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl b_movescr_stack_push_cursor
+ b _08017D02
+ .align 2, 0
+_08017CAC: .4byte gBattleMons
+_08017CB0: .4byte gBankAttacker
+_08017CB4: .4byte gBattleCommunication
+_08017CB8:
+ ldr r0, _08017D08 @ =gBattleCommunication
+ movs r4, 0x1
+ strb r1, [r0, 0x5]
+ ldr r1, _08017D0C @ =gBankTarget
+ ldrb r0, [r5]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r7
+ movs r0, 0x28
+ str r0, [sp]
+ str r2, [sp, 0x4]
+ ldrb r0, [r5]
+ str r0, [sp, 0x8]
+ ldrb r0, [r5]
+ str r0, [sp, 0xC]
+ adds r0, r1, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl CalculateBaseDamage
+ ldr r1, _08017D10 @ =gBattleMoveDamage
+ str r0, [r1]
+ ldr r0, _08017D14 @ =gProtectStructs
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ orrs r0, r4
+ strb r0, [r1, 0x1]
+ ldr r2, _08017D18 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+_08017D02:
+ ldr r1, _08017D1C @ =gBattlescriptCurrInstr
+ ldr r0, _08017D20 @ =gUnknown_081D9595
+ b _08017D2C
+ .align 2, 0
+_08017D08: .4byte gBattleCommunication
+_08017D0C: .4byte gBankTarget
+_08017D10: .4byte gBattleMoveDamage
+_08017D14: .4byte gProtectStructs
+_08017D18: .4byte gHitMarker
+_08017D1C: .4byte gBattlescriptCurrInstr
+_08017D20: .4byte gUnknown_081D9595
+_08017D24:
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08017D34 @ =gBattlescriptCurrInstr
+ ldr r0, _08017D38 @ =gUnknown_081D95D4
+_08017D2C:
+ str r0, [r1]
+ movs r7, 0x1
+ b _08017F8E
+ .align 2, 0
+_08017D34: .4byte gBattlescriptCurrInstr
+_08017D38: .4byte gUnknown_081D95D4
+_08017D3C:
+ ldr r1, _08017DA0 @ =gBattleMons
+ ldr r4, _08017DA4 @ =gBankAttacker
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08017D90
+ bl Random
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ cmp r1, 0
+ bne _08017D90
+ ldr r0, _08017DA8 @ =gProtectStructs
+ ldrb r2, [r4]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl CancelMultiTurnMoves
+ ldr r1, _08017DAC @ =gBattlescriptCurrInstr
+ ldr r0, _08017DB0 @ =gUnknown_081D9566
+_08017D7E:
+ str r0, [r1]
+ ldr r2, _08017DB4 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r1, 0x1
+_08017D8E:
+ mov r9, r1
+_08017D90:
+ ldr r2, _08017DB8 @ =0x02000000
+ ldr r4, _08017DBC @ =0x000160e7
+ adds r1, r2, r4
+_08017D96:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r8, r2
+ b _08017F9E
+ .align 2, 0
+_08017DA0: .4byte gBattleMons
+_08017DA4: .4byte gBankAttacker
+_08017DA8: .4byte gProtectStructs
+_08017DAC: .4byte gBattlescriptCurrInstr
+_08017DB0: .4byte gUnknown_081D9566
+_08017DB4: .4byte gHitMarker
+_08017DB8: .4byte 0x02000000
+_08017DBC: .4byte 0x000160e7
+_08017DC0:
+ ldr r1, _08017DFC @ =gBattleMons
+ ldr r4, _08017E00 @ =gBankAttacker
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r1, r0
+ cmp r1, 0
+ bne _08017DDC
+ b _08017F94
+_08017DDC:
+ lsrs r0, r1, 16
+ bl CountTrailingZeroBits
+ ldr r1, _08017E04 @ =0x02000000
+ ldr r7, _08017E08 @ =0x00016003
+ adds r1, r7
+ strb r0, [r1]
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08017E0C
+ bl b_movescr_stack_push_cursor
+ b _08017E34
+ .align 2, 0
+_08017DFC: .4byte gBattleMons
+_08017E00: .4byte gBankAttacker
+_08017E04: .4byte 0x02000000
+_08017E08: .4byte 0x00016003
+_08017E0C:
+ ldr r0, _08017E44 @ =gUnknown_081D9608
+ bl b_movescr_stack_push
+ ldr r2, _08017E48 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ ldr r0, _08017E4C @ =gProtectStructs
+ ldrb r2, [r4]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r4]
+ bl CancelMultiTurnMoves
+_08017E34:
+ ldr r1, _08017E50 @ =gBattlescriptCurrInstr
+ ldr r0, _08017E54 @ =gUnknown_081D95FB
+ str r0, [r1]
+ movs r0, 0x1
+_08017E3C:
+ mov r9, r0
+ ldr r1, _08017E58 @ =0x02000000
+ mov r8, r1
+ b _08017F94
+ .align 2, 0
+_08017E44: .4byte gUnknown_081D9608
+_08017E48: .4byte gHitMarker
+_08017E4C: .4byte gProtectStructs
+_08017E50: .4byte gBattlescriptCurrInstr
+_08017E54: .4byte gUnknown_081D95FB
+_08017E58: .4byte 0x02000000
+_08017E5C:
+ ldr r1, _08017E98 @ =gBattleMons
+ ldr r6, _08017E9C @ =gBankAttacker
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r1, 0x50
+ adds r3, r0, r1
+ ldr r2, [r3]
+ movs r4, 0xC0
+ lsls r4, 2
+ adds r0, r2, 0
+ ands r0, r4
+ cmp r0, 0
+ bne _08017E7A
+ b _08017F94
+_08017E7A:
+ ldr r7, _08017EA0 @ =0xffffff00
+ adds r0, r2, r7
+ str r0, [r3]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r1, r0, r1
+ ldr r2, [r1]
+ adds r0, r2, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08017EAC
+ ldr r1, _08017EA4 @ =gBattlescriptCurrInstr
+ ldr r0, _08017EA8 @ =gUnknown_081D90A7
+ b _08017F38
+ .align 2, 0
+_08017E98: .4byte gBattleMons
+_08017E9C: .4byte gBankAttacker
+_08017EA0: .4byte 0xffffff00
+_08017EA4: .4byte gBattlescriptCurrInstr
+_08017EA8: .4byte gUnknown_081D90A7
+_08017EAC:
+ ldr r0, _08017F0C @ =0xffffefff
+ ands r2, r0
+ str r2, [r1]
+ ldr r2, _08017F10 @ =gTakenDmg
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08017F34
+ ldr r1, _08017F14 @ =gCurrentMove
+ movs r0, 0x75
+ strh r0, [r1]
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ lsls r0, 1
+ mov r1, r10
+ str r0, [r1]
+ ldr r4, _08017F18 @ =gBankTarget
+ ldr r1, _08017F1C @ =gTakenDmgBanks
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r0, _08017F20 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _08017F24 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08017EFE
+ movs r0, 0x75
+ movs r1, 0x1
+ bl sub_801B5C0
+ strb r0, [r4]
+_08017EFE:
+ ldr r1, _08017F28 @ =gBattlescriptCurrInstr
+ ldr r0, _08017F2C @ =gUnknown_081D90B2
+ str r0, [r1]
+ ldr r2, _08017F30 @ =0x02000000
+ mov r8, r2
+ b _08017F3A
+ .align 2, 0
+_08017F0C: .4byte 0xffffefff
+_08017F10: .4byte gTakenDmg
+_08017F14: .4byte gCurrentMove
+_08017F18: .4byte gBankTarget
+_08017F1C: .4byte gTakenDmgBanks
+_08017F20: .4byte gAbsentBankFlags
+_08017F24: .4byte gBitTable
+_08017F28: .4byte gBattlescriptCurrInstr
+_08017F2C: .4byte gUnknown_081D90B2
+_08017F30: .4byte 0x02000000
+_08017F34:
+ ldr r1, _08017F40 @ =gBattlescriptCurrInstr
+ ldr r0, _08017F44 @ =gUnknown_081D90F1
+_08017F38:
+ str r0, [r1]
+_08017F3A:
+ movs r4, 0x1
+ mov r9, r4
+ b _08017F94
+ .align 2, 0
+_08017F40: .4byte gBattlescriptCurrInstr
+_08017F44: .4byte gUnknown_081D90F1
+_08017F48:
+ ldr r1, _08017FEC @ =gBattleMons
+ ldr r0, _08017FF0 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r4, r0, r1
+ ldr r3, [r4]
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _08017F94
+ ldr r2, _08017FF4 @ =gBattleMoves
+ ldr r0, _08017FF8 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x7D
+ bne _08017F8C
+ movs r0, 0x21
+ negs r0, r0
+ ands r3, r0
+ str r3, [r4]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08017FFC @ =gBattlescriptCurrInstr
+ ldr r0, _08018000 @ =gUnknown_081D9552
+ str r0, [r1]
+ ldr r1, _08018004 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_08017F8C:
+ movs r7, 0x2
+_08017F8E:
+ mov r9, r7
+ ldr r0, _08018008 @ =0x02000000
+ mov r8, r0
+_08017F94:
+ ldr r1, _0801800C @ =0x000160e7
+ add r1, r8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08017F9E:
+ ldr r0, _0801800C @ =0x000160e7
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ beq _08017FAC
+ bl _0801773C
+_08017FAC:
+ mov r1, r9
+ cmp r1, 0x2
+ bne _08017FD8
+ ldr r4, _08018010 @ =gActiveBank
+ ldr r0, _08017FF0 @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _08018014 @ =gUnknown_02024ACC
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_08017FD8:
+ mov r0, r9
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08017FEC: .4byte gBattleMons
+_08017FF0: .4byte gBankAttacker
+_08017FF4: .4byte gBattleMoves
+_08017FF8: .4byte gCurrentMove
+_08017FFC: .4byte gBattlescriptCurrInstr
+_08018000: .4byte gUnknown_081D9552
+_08018004: .4byte gBattleCommunication
+_08018008: .4byte 0x02000000
+_0801800C: .4byte 0x000160e7
+_08018010: .4byte gActiveBank
+_08018014: .4byte gUnknown_02024ACC
+ thumb_func_end sub_8017718
+
+ thumb_func_start sub_8018018
+sub_8018018: @ 8018018
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r3, r4, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ ldr r0, _08018044 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08018048
+ movs r0, 0
+ b _08018198
+ .align 2, 0
+_08018044: .4byte gBattleTypeFlags
+_08018048:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080180D4
+ adds r0, r4, 0
+ bl sub_803FC34
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ bl GetBankSide
+ lsls r0, 24
+ ldr r1, _080180CC @ =gEnemyParty
+ mov r8, r1
+ cmp r0, 0
+ bne _0801806E
+ ldr r2, _080180D0 @ =gPlayerParty
+ mov r8, r2
+_0801806E:
+ adds r0, r7, 0
+ bl sub_803FBFC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 1
+ adds r5, r0, r6
+ adds r0, r5, 0x3
+ cmp r5, r0
+ bge _080180BA
+ adds r7, r0, 0
+_08018084:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080180B4
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080180B4
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _080180BA
+_080180B4:
+ adds r5, 0x1
+ cmp r5, r7
+ blt _08018084
+_080180BA:
+ movs r1, 0
+ lsls r0, r6, 1
+ adds r0, r6
+ adds r0, 0x3
+ cmp r5, r0
+ bne _080180C8
+ movs r1, 0x1
+_080180C8:
+ adds r0, r1, 0
+ b _08018198
+ .align 2, 0
+_080180CC: .4byte gEnemyParty
+_080180D0: .4byte gPlayerParty
+_080180D4:
+ adds r0, r3, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08018100
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0x3
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080180FC @ =gEnemyParty
+ mov r8, r2
+ b _08018118
+ .align 2, 0
+_080180FC: .4byte gEnemyParty
+_08018100:
+ movs r0, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0x2
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080181A8 @ =gPlayerParty
+ mov r8, r0
+_08018118:
+ mov r1, r10
+ cmp r1, 0x6
+ bne _08018128
+ ldr r1, _080181AC @ =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r10, r0
+_08018128:
+ mov r2, r9
+ cmp r2, 0x6
+ bne _08018138
+ ldr r1, _080181AC @ =gBattlePartyID
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r9, r0
+_08018138:
+ movs r5, 0
+_0801813A:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0801818A
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _0801818A
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _0801818A
+ cmp r5, r10
+ beq _0801818A
+ cmp r5, r9
+ beq _0801818A
+ ldr r1, _080181B0 @ =0x02000000
+ ldr r2, _080181B4 @ =0x00016068
+ adds r0, r7, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _0801818A
+ adds r0, r6, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _08018190
+_0801818A:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0801813A
+_08018190:
+ movs r0, 0
+ cmp r5, 0x6
+ bne _08018198
+ movs r0, 0x1
+_08018198:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080181A8: .4byte gPlayerParty
+_080181AC: .4byte gBattlePartyID
+_080181B0: .4byte 0x02000000
+_080181B4: .4byte 0x00016068
+ thumb_func_end sub_8018018
+
+ thumb_func_start castform_switch
+castform_switch: @ 80181B8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r1, _08018228 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ ldr r0, _0801822C @ =SPECIES_CASTFORM
+ cmp r1, r0
+ bne _0801825C
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bne _0801825C
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ beq _0801825C
+ str r5, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801820A
+ str r5, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018230
+_0801820A:
+ adds r2, r4, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08018230
+ adds r1, r4, 0
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08018230
+ strb r5, [r2]
+ strb r5, [r1]
+ movs r0, 0x1
+ b _08018314
+ .align 2, 0
+_08018228: .4byte gBattleMons
+_0801822C: .4byte SPECIES_CASTFORM
+_08018230:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0801825C
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018260
+_0801825C:
+ movs r0, 0
+ b _08018314
+_08018260:
+ ldr r1, _0801831C @ =gBattleWeather
+ ldrh r0, [r1]
+ movs r2, 0xE7
+ ands r2, r0
+ adds r4, r1, 0
+ cmp r2, 0
+ bne _0801828E
+ ldr r1, _08018320 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r3, r1, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _0801828E
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0801828E
+ strb r2, [r3]
+ strb r2, [r1]
+ movs r5, 0x1
+_0801828E:
+ ldrh r1, [r4]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _080182BA
+ ldr r1, _08018320 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r2, r1, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0xA
+ beq _080182BA
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0xA
+ beq _080182BA
+ movs r0, 0xA
+ strb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0x2
+_080182BA:
+ ldrh r1, [r4]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080182E6
+ ldr r1, _08018320 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r2, r1, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0xB
+ beq _080182E6
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0xB
+ beq _080182E6
+ movs r0, 0xB
+ strb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0x3
+_080182E6:
+ ldrh r1, [r4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08018312
+ ldr r1, _08018320 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r2, r1, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0xF
+ beq _08018312
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0xF
+ beq _08018312
+ movs r0, 0xF
+ strb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0x4
+_08018312:
+ adds r0, r5, 0
+_08018314:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801831C: .4byte gBattleWeather
+_08018320: .4byte gBattleMons
+ thumb_func_end castform_switch
+
+ thumb_func_start AbilityBattleEffects
+AbilityBattleEffects: @ 8018324
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ ldr r4, [sp, 0x48]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0
+ mov r9, r0
+ ldr r5, _08018380 @ =gBankAttacker
+ ldr r1, _08018384 @ =gNoOfAllBanks
+ ldrb r0, [r5]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08018360
+ mov r1, r10
+ strb r1, [r5]
+_08018360:
+ ldrb r0, [r5]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018390
+ ldr r1, _08018388 @ =gBattlePartyID
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0801838C @ =gPlayerParty
+ b _080183A0
+ .align 2, 0
+_08018380: .4byte gBankAttacker
+_08018384: .4byte gNoOfAllBanks
+_08018388: .4byte gBattlePartyID
+_0801838C: .4byte gPlayerParty
+_08018390:
+ ldr r1, _080183D0 @ =gBattlePartyID
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080183D4 @ =gEnemyParty
+_080183A0:
+ adds r7, r1, r0
+ ldr r5, _080183D8 @ =gBankTarget
+ ldr r1, _080183DC @ =gNoOfAllBanks
+ ldrb r0, [r5]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080183B2
+ mov r2, r10
+ strb r2, [r5]
+_080183B2:
+ ldrb r0, [r5]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080183E4
+ ldr r1, _080183D0 @ =gBattlePartyID
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080183E0 @ =gPlayerParty
+ b _080183F4
+ .align 2, 0
+_080183D0: .4byte gBattlePartyID
+_080183D4: .4byte gEnemyParty
+_080183D8: .4byte gBankTarget
+_080183DC: .4byte gNoOfAllBanks
+_080183E0: .4byte gPlayerParty
+_080183E4:
+ ldr r1, _08018444 @ =gBattlePartyID
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08018448 @ =gEnemyParty
+_080183F4:
+ adds r5, r1, r0
+ adds r0, r7, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x10]
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x14]
+ ldr r0, _0801844C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08018436
+ bl _08019F92
+_08018436:
+ mov r3, r8
+ cmp r3, 0
+ beq _08018454
+ ldr r0, _08018450 @ =gLastUsedAbility
+ strb r3, [r0]
+ mov r8, r0
+ b _0801846A
+ .align 2, 0
+_08018444: .4byte gBattlePartyID
+_08018448: .4byte gEnemyParty
+_0801844C: .4byte gBattleTypeFlags
+_08018450: .4byte gLastUsedAbility
+_08018454:
+ ldr r2, _08018474 @ =gLastUsedAbility
+ ldr r1, _08018478 @ =gBattleMons
+ movs r0, 0x58
+ mov r5, r10
+ muls r5, r0
+ adds r0, r5, 0
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r2]
+ mov r8, r2
+_0801846A:
+ cmp r4, 0
+ beq _0801847C
+ adds r3, r4, 0
+ b _08018480
+ .align 2, 0
+_08018474: .4byte gLastUsedAbility
+_08018478: .4byte gBattleMons
+_0801847C:
+ ldr r0, _08018494 @ =gCurrentMove
+ ldrh r3, [r0]
+_08018480:
+ ldr r1, _08018498 @ =0x02000000
+ ldr r2, _0801849C @ =0x0001601c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _080184A0
+ movs r4, 0x3F
+ ands r4, r0
+ b _080184AC
+ .align 2, 0
+_08018494: .4byte gCurrentMove
+_08018498: .4byte 0x02000000
+_0801849C: .4byte 0x0001601c
+_080184A0:
+ ldr r1, _080184C0 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x2]
+_080184AC:
+ ldr r5, [sp, 0x4]
+ cmp r5, 0x13
+ bls _080184B6
+ bl _08019F76
+_080184B6:
+ lsls r0, r5, 2
+ ldr r1, _080184C4 @ =_080184C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080184C0: .4byte gBattleMoves
+_080184C4: .4byte _080184C8
+ .align 2, 0
+_080184C8:
+ .4byte _08018518
+ .4byte _08018814
+ .4byte _08018A40
+ .4byte _08018AD8
+ .4byte _08018CF0
+ .4byte _08019448
+ .4byte _080197B4
+ .4byte _08019804
+ .4byte _08019880
+ .4byte _080198FC
+ .4byte _08019B1C
+ .4byte _08019940
+ .4byte _08019B60
+ .4byte _08019BBC
+ .4byte _08019C18
+ .4byte _08019D18
+ .4byte _08019D5C
+ .4byte _08019DB8
+ .4byte _08019F44
+ .4byte _08019CD4
+_08018518:
+ ldr r2, _0801854C @ =gBankAttacker
+ ldr r0, _08018550 @ =gNoOfAllBanks
+ ldrb r1, [r2]
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r1, r0
+ bcc _0801852A
+ mov r1, r10
+ strb r1, [r2]
+_0801852A:
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0x2D
+ bne _08018534
+ b _080186B8
+_08018534:
+ cmp r0, 0x2D
+ bgt _08018564
+ cmp r0, 0xD
+ bne _0801853E
+ b _080187DC
+_0801853E:
+ cmp r0, 0xD
+ bgt _08018554
+ cmp r0, 0x2
+ bne _08018548
+ b _08018680
+_08018548:
+ bl _08019F76
+ .align 2, 0
+_0801854C: .4byte gBankAttacker
+_08018550: .4byte gNoOfAllBanks
+_08018554:
+ cmp r0, 0x16
+ bne _0801855A
+ b _08018728
+_0801855A:
+ cmp r0, 0x24
+ bne _08018560
+ b _080187A0
+_08018560:
+ bl _08019F76
+_08018564:
+ cmp r0, 0x46
+ bne _0801856A
+ b _080186F0
+_0801856A:
+ cmp r0, 0x46
+ bgt _08018578
+ cmp r0, 0x3B
+ bne _08018574
+ b _0801875C
+_08018574:
+ bl _08019F76
+_08018578:
+ cmp r0, 0x4D
+ bne _0801857E
+ b _080187DC
+_0801857E:
+ cmp r0, 0xFF
+ beq _08018586
+ bl _08019F76
+_08018586:
+ bl weather_get_current
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x3
+ cmp r0, 0xA
+ bhi _0801864C
+ lsls r0, 2
+ ldr r1, _080185A0 @ =_080185A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080185A0: .4byte _080185A4
+ .align 2, 0
+_080185A4:
+ .4byte _080185D0
+ .4byte _0801864C
+ .4byte _080185D0
+ .4byte _0801864C
+ .4byte _0801864C
+ .4byte _080185F8
+ .4byte _0801864C
+ .4byte _0801864C
+ .4byte _0801864C
+ .4byte _08018620
+ .4byte _080185D0
+_080185D0:
+ ldr r2, _080185EC @ =gBattleWeather
+ ldrh r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801864C
+ movs r0, 0x5
+ strh r0, [r2]
+ ldr r0, _080185F0 @ =0x02000000
+ ldr r3, _080185F4 @ =0x000160a4
+ adds r2, r0, r3
+ movs r1, 0xA
+ b _08018638
+ .align 2, 0
+_080185EC: .4byte gBattleWeather
+_080185F0: .4byte 0x02000000
+_080185F4: .4byte 0x000160a4
+_080185F8:
+ ldr r3, _08018614 @ =gBattleWeather
+ ldrh r1, [r3]
+ movs r2, 0x18
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0801864C
+ strh r2, [r3]
+ ldr r0, _08018618 @ =0x02000000
+ ldr r3, _0801861C @ =0x000160a4
+ adds r2, r0, r3
+ movs r1, 0xC
+ b _08018638
+ .align 2, 0
+_08018614: .4byte gBattleWeather
+_08018618: .4byte 0x02000000
+_0801861C: .4byte 0x000160a4
+_08018620:
+ ldr r3, _08018668 @ =gBattleWeather
+ ldrh r1, [r3]
+ movs r2, 0x60
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0801864C
+ strh r2, [r3]
+ ldr r0, _0801866C @ =0x02000000
+ ldr r3, _08018670 @ =0x000160a4
+ adds r2, r0, r3
+ movs r1, 0xB
+_08018638:
+ strb r1, [r2]
+ ldr r5, _08018674 @ =0x00016003
+ adds r0, r5
+ mov r1, r10
+ strb r1, [r0]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801864C:
+ mov r2, r9
+ cmp r2, 0
+ bne _08018656
+ bl _08019F92
+_08018656:
+ bl weather_get_current
+ ldr r1, _08018678 @ =gBattleCommunication
+ strb r0, [r1, 0x5]
+ ldr r0, _0801867C @ =gUnknown_081D901D
+ bl b_push_move_exec
+ bl _08019F76
+ .align 2, 0
+_08018668: .4byte gBattleWeather
+_0801866C: .4byte 0x02000000
+_08018670: .4byte 0x000160a4
+_08018674: .4byte 0x00016003
+_08018678: .4byte gBattleCommunication
+_0801867C: .4byte gUnknown_081D901D
+_08018680:
+ ldr r2, _080186A8 @ =gBattleWeather
+ ldrh r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08018690
+ bl _08019F76
+_08018690:
+ movs r0, 0x5
+ strh r0, [r2]
+ ldr r0, _080186AC @ =gUnknown_081D9704
+ bl b_push_move_exec
+ ldr r0, _080186B0 @ =0x02000000
+ ldr r3, _080186B4 @ =0x00016003
+ adds r0, r3
+ mov r5, r10
+ strb r5, [r0]
+ bl _08019F22
+ .align 2, 0
+_080186A8: .4byte gBattleWeather
+_080186AC: .4byte gUnknown_081D9704
+_080186B0: .4byte 0x02000000
+_080186B4: .4byte 0x00016003
+_080186B8:
+ ldr r2, _080186E0 @ =gBattleWeather
+ ldrh r1, [r2]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080186C8
+ bl _08019F76
+_080186C8:
+ movs r0, 0x18
+ strh r0, [r2]
+ ldr r0, _080186E4 @ =gUnknown_081D9744
+ bl b_push_move_exec
+ ldr r0, _080186E8 @ =0x02000000
+ ldr r1, _080186EC @ =0x00016003
+ adds r0, r1
+ mov r2, r10
+ strb r2, [r0]
+ bl _08019F22
+ .align 2, 0
+_080186E0: .4byte gBattleWeather
+_080186E4: .4byte gUnknown_081D9744
+_080186E8: .4byte 0x02000000
+_080186EC: .4byte 0x00016003
+_080186F0:
+ ldr r2, _08018718 @ =gBattleWeather
+ ldrh r1, [r2]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08018700
+ bl _08019F76
+_08018700:
+ movs r0, 0x60
+ strh r0, [r2]
+ ldr r0, _0801871C @ =gUnknown_081D97FE
+ bl b_push_move_exec
+ ldr r0, _08018720 @ =0x02000000
+ ldr r3, _08018724 @ =0x00016003
+ adds r0, r3
+ mov r5, r10
+ strb r5, [r0]
+ bl _08019F22
+ .align 2, 0
+_08018718: .4byte gBattleWeather
+_0801871C: .4byte gUnknown_081D97FE
+_08018720: .4byte 0x02000000
+_08018724: .4byte 0x00016003
+_08018728:
+ ldr r0, _08018754 @ =gSpecialStatuses
+ mov r1, r10
+ lsls r2, r1, 2
+ adds r1, r2, r1
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018740
+ bl _08019F76
+_08018740:
+ ldr r1, _08018758 @ =gStatuses3
+ adds r1, r2, r1
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 12
+ orrs r0, r2
+ str r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x8
+ b _080187CA
+ .align 2, 0
+_08018754: .4byte gSpecialStatuses
+_08018758: .4byte gStatuses3
+_0801875C:
+ mov r0, r10
+ bl castform_switch
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0
+ bne _08018770
+ bl _08019F92
+_08018770:
+ ldr r0, _08018790 @ =gUnknown_081D977D
+ bl b_push_move_exec
+ ldr r0, _08018794 @ =0x02000000
+ ldr r2, _08018798 @ =0x00016003
+ adds r1, r0, r2
+ mov r3, r10
+ strb r3, [r1]
+ mov r1, r9
+ subs r1, 0x1
+ ldr r5, _0801879C @ =0x0001609b
+ adds r0, r5
+ strb r1, [r0]
+ bl _08019F76
+ .align 2, 0
+_08018790: .4byte gUnknown_081D977D
+_08018794: .4byte 0x02000000
+_08018798: .4byte 0x00016003
+_0801879C: .4byte 0x0001609b
+_080187A0:
+ ldr r0, _080187D4 @ =gSpecialStatuses
+ mov r1, r10
+ lsls r2, r1, 2
+ adds r1, r2, r1
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ lsls r0, 27
+ cmp r0, 0
+ bge _080187B8
+ bl _08019F76
+_080187B8:
+ ldr r1, _080187D8 @ =gStatuses3
+ adds r1, r2, r1
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 13
+ orrs r0, r2
+ str r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x10
+_080187CA:
+ orrs r0, r1
+ strb r0, [r3]
+ bl _08019F76
+ .align 2, 0
+_080187D4: .4byte gSpecialStatuses
+_080187D8: .4byte gStatuses3
+_080187DC:
+ movs r6, 0
+ ldrb r5, [r5]
+ cmp r6, r5
+ bcc _080187E8
+ bl _08019F76
+_080187E8:
+ adds r0, r6, 0
+ bl castform_switch
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0
+ beq _080187FC
+ bl _08019E14
+_080187FC:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08018810 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _080187E8
+ bl _08019F76
+ .align 2, 0
+_08018810: .4byte gNoOfAllBanks
+_08018814:
+ ldr r2, _08018844 @ =gBattleMons
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ bne _08018828
+ bl _08019F76
+_08018828:
+ ldr r0, _08018848 @ =gBankAttacker
+ mov r3, r10
+ strb r3, [r0]
+ mov r3, r8
+ ldrb r5, [r3]
+ cmp r5, 0x2C
+ beq _0801885A
+ cmp r5, 0x2C
+ bgt _0801884C
+ cmp r5, 0x3
+ bne _08018840
+ b _080189B8
+_08018840:
+ bl _08019F76
+ .align 2, 0
+_08018844: .4byte gBattleMons
+_08018848: .4byte gBankAttacker
+_0801884C:
+ cmp r5, 0x36
+ bne _08018852
+ b _08018A18
+_08018852:
+ cmp r5, 0x3D
+ beq _080188DC
+ bl _08019F76
+_0801885A:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08018876
+ bl _08019F76
+_08018876:
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801888E
+ bl _08019F76
+_0801888E:
+ ldr r0, _080188D0 @ =gBattleWeather
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801889E
+ bl _08019F76
+_0801889E:
+ ldrh r0, [r4, 0x2C]
+ ldrh r1, [r4, 0x28]
+ cmp r0, r1
+ bhi _080188AA
+ bl _08019F76
+_080188AA:
+ mov r2, r8
+ strb r5, [r2]
+ ldr r0, _080188D4 @ =gUnknown_081D9730
+ bl b_push_move_exec
+ ldr r1, _080188D8 @ =gBattleMoveDamage
+ ldrh r0, [r4, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _080188C4
+ movs r0, 0x1
+ str r0, [r1]
+_080188C4:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ bl _08019F22
+ .align 2, 0
+_080188D0: .4byte gBattleWeather
+_080188D4: .4byte gUnknown_081D9730
+_080188D8: .4byte gBattleMoveDamage
+_080188DC:
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r5, r1, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080188EC
+ bl _08019F76
+_080188EC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08018906
+ bl _08019F76
+_08018906:
+ ldr r0, [r5]
+ movs r1, 0x88
+ ands r0, r1
+ cmp r0, 0
+ beq _08018918
+ ldr r0, _08018990 @ =gBattleTextBuff1
+ ldr r1, _08018994 @ =gStatusConditionString_PoisonJpn
+ bl StringCopy
+_08018918:
+ ldr r0, [r5]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801892A
+ ldr r0, _08018990 @ =gBattleTextBuff1
+ ldr r1, _08018998 @ =gStatusConditionString_SleepJpn
+ bl StringCopy
+_0801892A:
+ ldr r0, [r5]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801893C
+ ldr r0, _08018990 @ =gBattleTextBuff1
+ ldr r1, _0801899C @ =gStatusConditionString_ParalysisJpn
+ bl StringCopy
+_0801893C:
+ ldr r0, [r5]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801894E
+ ldr r0, _08018990 @ =gBattleTextBuff1
+ ldr r1, _080189A0 @ =gStatusConditionString_BurnJpn
+ bl StringCopy
+_0801894E:
+ ldr r0, [r5]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08018960
+ ldr r0, _08018990 @ =gBattleTextBuff1
+ ldr r1, _080189A4 @ =gStatusConditionString_IceJpn
+ bl StringCopy
+_08018960:
+ str r4, [r5]
+ ldr r0, _080189A8 @ =0x02000000
+ ldr r4, _080189AC @ =gActiveBank
+ mov r3, r10
+ strb r3, [r4]
+ ldr r1, _080189B0 @ =0x00016003
+ adds r0, r1
+ strb r3, [r0]
+ ldr r0, _080189B4 @ =gUnknown_081D9758
+ bl b_push_move_exec
+ str r5, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ bl _08019F22
+ .align 2, 0
+_08018990: .4byte gBattleTextBuff1
+_08018994: .4byte gStatusConditionString_PoisonJpn
+_08018998: .4byte gStatusConditionString_SleepJpn
+_0801899C: .4byte gStatusConditionString_ParalysisJpn
+_080189A0: .4byte gStatusConditionString_BurnJpn
+_080189A4: .4byte gStatusConditionString_IceJpn
+_080189A8: .4byte 0x02000000
+_080189AC: .4byte gActiveBank
+_080189B0: .4byte 0x00016003
+_080189B4: .4byte gUnknown_081D9758
+_080189B8:
+ ldrb r2, [r4, 0x1B]
+ movs r0, 0x1B
+ ldrsb r0, [r4, r0]
+ cmp r0, 0xB
+ ble _080189C6
+ bl _08019F76
+_080189C6:
+ ldr r0, _08018A04 @ =gDisableStructs
+ mov r3, r10
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x16]
+ cmp r0, 0x2
+ bne _080189DC
+ bl _08019F76
+_080189DC:
+ adds r0, r2, 0x1
+ movs r2, 0
+ strb r0, [r4, 0x1B]
+ ldr r5, _08018A08 @ =0x000160a4
+ adds r1, r7, r5
+ movs r0, 0x11
+ strb r0, [r1]
+ ldr r1, _08018A0C @ =0x000160a5
+ adds r0, r7, r1
+ strb r2, [r0]
+ ldr r0, _08018A10 @ =gUnknown_081D9718
+ bl b_push_move_exec
+ ldr r2, _08018A14 @ =0x00016003
+ adds r0, r7, r2
+ mov r3, r10
+ strb r3, [r0]
+ bl _08019F22
+ .align 2, 0
+_08018A04: .4byte gDisableStructs
+_08018A08: .4byte 0x000160a4
+_08018A0C: .4byte 0x000160a5
+_08018A10: .4byte gUnknown_081D9718
+_08018A14: .4byte 0x00016003
+_08018A18:
+ ldr r2, _08018A3C @ =gDisableStructs
+ ldrb r0, [r0]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r3, [r1, 0x18]
+ lsls r0, r3, 31
+ lsrs r0, 31
+ movs r2, 0x1
+ eors r2, r0
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x18]
+ bl _08019F76
+ .align 2, 0
+_08018A3C: .4byte gDisableStructs
+_08018A40:
+ mov r5, r8
+ ldrb r0, [r5]
+ cmp r0, 0x2B
+ beq _08018A4C
+ bl _08019F76
+_08018A4C:
+ movs r4, 0
+ ldr r0, _08018ABC @ =gUnknown_081FA724
+ ldrh r2, [r0]
+ ldr r5, _08018AC0 @ =0x0000ffff
+ adds r1, r0, 0
+ cmp r2, r5
+ bne _08018A5E
+ bl _08019F76
+_08018A5E:
+ cmp r2, r3
+ beq _08018A76
+ adds r2, r1, 0
+_08018A64:
+ adds r2, 0x2
+ adds r4, 0x1
+ ldrh r0, [r2]
+ cmp r0, r5
+ bne _08018A72
+ bl _08019F76
+_08018A72:
+ cmp r0, r3
+ bne _08018A64
+_08018A76:
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _08018AC0 @ =0x0000ffff
+ cmp r1, r0
+ bne _08018A86
+ bl _08019F76
+_08018A86:
+ ldr r1, _08018AC4 @ =gBattleMons
+ ldr r0, _08018AC8 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _08018AAC
+ ldr r0, _08018ACC @ =gHitMarker
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 4
+ orrs r1, r2
+ str r1, [r0]
+_08018AAC:
+ ldr r1, _08018AD0 @ =gBattlescriptCurrInstr
+ ldr r0, _08018AD4 @ =gUnknown_081D98F3
+ str r0, [r1]
+ movs r0, 0x1
+ mov r9, r0
+ bl _08019F7C
+ .align 2, 0
+_08018ABC: .4byte gUnknown_081FA724
+_08018AC0: .4byte 0x0000ffff
+_08018AC4: .4byte gBattleMons
+_08018AC8: .4byte gBankAttacker
+_08018ACC: .4byte gHitMarker
+_08018AD0: .4byte gBattlescriptCurrInstr
+_08018AD4: .4byte gUnknown_081D98F3
+_08018AD8:
+ cmp r3, 0
+ bne _08018AE0
+ bl _08019F76
+_08018AE0:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0xB
+ beq _08018B50
+ cmp r0, 0xB
+ bgt _08018AF2
+ cmp r0, 0xA
+ beq _08018AF8
+ b _08018C6A
+_08018AF2:
+ cmp r0, 0x12
+ beq _08018BA8
+ b _08018C6A
+_08018AF8:
+ cmp r4, 0xD
+ beq _08018AFE
+ b _08018C6A
+_08018AFE:
+ ldr r0, _08018B28 @ =gBattleMoves
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08018B10
+ b _08018C6A
+_08018B10:
+ ldr r1, _08018B2C @ =gProtectStructs
+ ldr r0, _08018B30 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018B3C
+ ldr r1, _08018B34 @ =gBattlescriptCurrInstr
+ ldr r0, _08018B38 @ =gUnknown_081D9843
+ b _08018B40
+ .align 2, 0
+_08018B28: .4byte gBattleMoves
+_08018B2C: .4byte gProtectStructs
+_08018B30: .4byte gBankAttacker
+_08018B34: .4byte gBattlescriptCurrInstr
+_08018B38: .4byte gUnknown_081D9843
+_08018B3C:
+ ldr r1, _08018B48 @ =gBattlescriptCurrInstr
+ ldr r0, _08018B4C @ =gUnknown_081D9842
+_08018B40:
+ str r0, [r1]
+ movs r2, 0x1
+ b _08018C68
+ .align 2, 0
+_08018B48: .4byte gBattlescriptCurrInstr
+_08018B4C: .4byte gUnknown_081D9842
+_08018B50:
+ cmp r4, 0xB
+ beq _08018B56
+ b _08018C6A
+_08018B56:
+ ldr r0, _08018B80 @ =gBattleMoves
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08018B68
+ b _08018C6A
+_08018B68:
+ ldr r1, _08018B84 @ =gProtectStructs
+ ldr r0, _08018B88 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018B94
+ ldr r1, _08018B8C @ =gBattlescriptCurrInstr
+ ldr r0, _08018B90 @ =gUnknown_081D9843
+ b _08018B98
+ .align 2, 0
+_08018B80: .4byte gBattleMoves
+_08018B84: .4byte gProtectStructs
+_08018B88: .4byte gBankAttacker
+_08018B8C: .4byte gBattlescriptCurrInstr
+_08018B90: .4byte gUnknown_081D9843
+_08018B94:
+ ldr r1, _08018BA0 @ =gBattlescriptCurrInstr
+ ldr r0, _08018BA4 @ =gUnknown_081D9842
+_08018B98:
+ str r0, [r1]
+ movs r3, 0x1
+ mov r9, r3
+ b _08018C6A
+ .align 2, 0
+_08018BA0: .4byte gBattlescriptCurrInstr
+_08018BA4: .4byte gUnknown_081D9842
+_08018BA8:
+ cmp r4, 0xA
+ bne _08018C6A
+ ldr r1, _08018BF4 @ =gBattleMons
+ movs r0, 0x58
+ mov r5, r10
+ muls r5, r0
+ adds r0, r5, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08018C6A
+ ldr r2, _08018BF8 @ =0x02017100
+ mov r0, r10
+ lsls r1, r0, 2
+ adds r0, r1, r2
+ ldr r3, [r0]
+ movs r4, 0x1
+ ands r3, r4
+ adds r5, r1, 0
+ cmp r3, 0
+ bne _08018C30
+ ldr r0, _08018BFC @ =gBattleCommunication
+ strb r3, [r0, 0x5]
+ ldr r1, _08018C00 @ =gProtectStructs
+ ldr r0, _08018C04 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018C10
+ ldr r1, _08018C08 @ =gBattlescriptCurrInstr
+ ldr r0, _08018C0C @ =gUnknown_081D987C
+ b _08018C14
+ .align 2, 0
+_08018BF4: .4byte gBattleMons
+_08018BF8: .4byte 0x02017100
+_08018BFC: .4byte gBattleCommunication
+_08018C00: .4byte gProtectStructs
+_08018C04: .4byte gBankAttacker
+_08018C08: .4byte gBattlescriptCurrInstr
+_08018C0C: .4byte gUnknown_081D987C
+_08018C10:
+ ldr r1, _08018C28 @ =gBattlescriptCurrInstr
+ ldr r0, _08018C2C @ =gUnknown_081D987B
+_08018C14:
+ str r0, [r1]
+ adds r0, r5, r2
+ ldr r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ str r1, [r0]
+ movs r1, 0x2
+ mov r9, r1
+ b _08018C6A
+ .align 2, 0
+_08018C28: .4byte gBattlescriptCurrInstr
+_08018C2C: .4byte gUnknown_081D987B
+_08018C30:
+ ldr r0, _08018C4C @ =gBattleCommunication
+ strb r4, [r0, 0x5]
+ ldr r1, _08018C50 @ =gProtectStructs
+ ldr r0, _08018C54 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018C60
+ ldr r1, _08018C58 @ =gBattlescriptCurrInstr
+ ldr r0, _08018C5C @ =gUnknown_081D987C
+ b _08018C64
+ .align 2, 0
+_08018C4C: .4byte gBattleCommunication
+_08018C50: .4byte gProtectStructs
+_08018C54: .4byte gBankAttacker
+_08018C58: .4byte gBattlescriptCurrInstr
+_08018C5C: .4byte gUnknown_081D987C
+_08018C60:
+ ldr r1, _08018CA4 @ =gBattlescriptCurrInstr
+ ldr r0, _08018CA8 @ =gUnknown_081D987B
+_08018C64:
+ str r0, [r1]
+ movs r2, 0x2
+_08018C68:
+ mov r9, r2
+_08018C6A:
+ mov r3, r9
+ cmp r3, 0x1
+ beq _08018C74
+ bl _08019F76
+_08018C74:
+ ldr r1, _08018CAC @ =gBattleMons
+ movs r0, 0x58
+ mov r5, r10
+ muls r5, r0
+ adds r0, r5, 0
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2C]
+ ldrh r2, [r1, 0x28]
+ cmp r0, r2
+ bne _08018CD0
+ ldr r1, _08018CB0 @ =gProtectStructs
+ ldr r0, _08018CB4 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018CBC
+ ldr r1, _08018CA4 @ =gBattlescriptCurrInstr
+ ldr r0, _08018CB8 @ =gUnknown_081D9866
+ str r0, [r1]
+ bl _08019F76
+ .align 2, 0
+_08018CA4: .4byte gBattlescriptCurrInstr
+_08018CA8: .4byte gUnknown_081D987B
+_08018CAC: .4byte gBattleMons
+_08018CB0: .4byte gProtectStructs
+_08018CB4: .4byte gBankAttacker
+_08018CB8: .4byte gUnknown_081D9866
+_08018CBC:
+ ldr r1, _08018CC8 @ =gBattlescriptCurrInstr
+ ldr r0, _08018CCC @ =gUnknown_081D9865
+ str r0, [r1]
+ bl _08019F76
+ .align 2, 0
+_08018CC8: .4byte gBattlescriptCurrInstr
+_08018CCC: .4byte gUnknown_081D9865
+_08018CD0:
+ ldr r2, _08018CEC @ =gBattleMoveDamage
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 2
+ str r0, [r2]
+ cmp r0, 0
+ bne _08018CE0
+ mov r3, r9
+ str r3, [r2]
+_08018CE0:
+ ldr r0, [r2]
+ negs r0, r0
+ str r0, [r2]
+ bl _08019F76
+ .align 2, 0
+_08018CEC: .4byte gBattleMoveDamage
+_08018CF0:
+ mov r5, r8
+ ldrb r0, [r5]
+ subs r0, 0x9
+ cmp r0, 0x2F
+ bls _08018CFE
+ bl _08019F76
+_08018CFE:
+ lsls r0, 2
+ ldr r1, _08018D08 @ =_08018D0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08018D08: .4byte _08018D0C
+ .align 2, 0
+_08018D0C:
+ .4byte _08019128
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08018DCC
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08018E94
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08018F54
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _0801904C
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019204
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _080192E0
+_08018DCC:
+ ldr r0, _08018E74 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08018DDC
+ bl _08019F76
+_08018DDC:
+ cmp r3, 0xA5
+ bne _08018DE4
+ bl _08019F76
+_08018DE4:
+ ldr r0, _08018E78 @ =gBattleMoves
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08018DF8
+ bl _08019F76
+_08018DF8:
+ ldr r2, _08018E7C @ =gSpecialStatuses
+ ldr r0, _08018E80 @ =gBankTarget
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018E20
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018E20
+ bl _08019F76
+_08018E20:
+ ldr r1, _08018E84 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r1, r0, r1
+ adds r3, r1, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ cmp r0, r4
+ bne _08018E3A
+ bl _08019F76
+_08018E3A:
+ adds r2, r1, 0
+ adds r2, 0x22
+ ldrb r0, [r2]
+ cmp r0, r4
+ bne _08018E48
+ bl _08019F76
+_08018E48:
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ bne _08018E52
+ bl _08019F76
+_08018E52:
+ strb r4, [r3]
+ strb r4, [r2]
+ ldr r1, _08018E88 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r4, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08018E8C @ =gBattlescriptCurrInstr
+ ldr r0, _08018E90 @ =gUnknown_081D9921
+ str r0, [r1]
+ bl _08019F22
+ .align 2, 0
+_08018E74: .4byte gBattleMoveFlags
+_08018E78: .4byte gBattleMoves
+_08018E7C: .4byte gSpecialStatuses
+_08018E80: .4byte gBankTarget
+_08018E84: .4byte gBattleMons
+_08018E88: .4byte gBattleTextBuff1
+_08018E8C: .4byte gBattlescriptCurrInstr
+_08018E90: .4byte gUnknown_081D9921
+_08018E94:
+ ldr r0, _08018F2C @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08018EA4
+ bl _08019F76
+_08018EA4:
+ ldr r1, _08018F30 @ =gBattleMons
+ ldr r0, _08018F34 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ bne _08018EBA
+ bl _08019F76
+_08018EBA:
+ ldr r0, _08018F38 @ =gProtectStructs
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08018ECC
+ bl _08019F76
+_08018ECC:
+ ldr r2, _08018F3C @ =gSpecialStatuses
+ ldr r0, _08018F40 @ =gBankTarget
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018EF4
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018EF4
+ bl _08019F76
+_08018EF4:
+ ldr r1, _08018F44 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08018F0E
+ bl _08019F76
+_08018F0E:
+ ldr r1, _08018F48 @ =gBattleMoveDamage
+ ldrh r0, [r4, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08018F1C
+ str r2, [r1]
+_08018F1C:
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08018F4C @ =gBattlescriptCurrInstr
+ ldr r0, _08018F50 @ =gUnknown_081D9928
+ str r0, [r1]
+ bl _08019F22
+ .align 2, 0
+_08018F2C: .4byte gBattleMoveFlags
+_08018F30: .4byte gBattleMons
+_08018F34: .4byte gBankAttacker
+_08018F38: .4byte gProtectStructs
+_08018F3C: .4byte gSpecialStatuses
+_08018F40: .4byte gBankTarget
+_08018F44: .4byte gBattleMoves
+_08018F48: .4byte gBattleMoveDamage
+_08018F4C: .4byte gBattlescriptCurrInstr
+_08018F50: .4byte gUnknown_081D9928
+_08018F54:
+ ldr r0, _08019020 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08018F64
+ bl _08019F76
+_08018F64:
+ ldr r1, _08019024 @ =gBattleMons
+ ldr r0, _08019028 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08018F7A
+ bl _08019F76
+_08018F7A:
+ ldr r0, _0801902C @ =gProtectStructs
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08018F8C
+ bl _08019F76
+_08018F8C:
+ ldr r2, _08019030 @ =gSpecialStatuses
+ ldr r0, _08019034 @ =gBankTarget
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018FB4
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018FB4
+ bl _08019F76
+_08018FB4:
+ ldr r1, _08019038 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08018FCC
+ bl _08019F76
+_08018FCC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08018FE4
+ bl _08019F76
+_08018FE4:
+ ldr r5, _0801903C @ =gBattleCommunication
+ movs r4, 0x3
+_08018FE8:
+ bl Random
+ ands r0, r4
+ strb r0, [r5, 0x3]
+ cmp r0, 0
+ beq _08018FE8
+ ldr r1, _0801903C @ =gBattleCommunication
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x3
+ bne _08019000
+ adds r0, 0x2
+ strb r0, [r1, 0x3]
+_08019000:
+ ldrb r0, [r1, 0x3]
+ adds r0, 0x40
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019040 @ =gBattlescriptCurrInstr
+ ldr r0, _08019044 @ =gUnknown_081D9950
+ str r0, [r1]
+ ldr r2, _08019048 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _08019F22
+ .align 2, 0
+_08019020: .4byte gBattleMoveFlags
+_08019024: .4byte gBattleMons
+_08019028: .4byte gBankAttacker
+_0801902C: .4byte gProtectStructs
+_08019030: .4byte gSpecialStatuses
+_08019034: .4byte gBankTarget
+_08019038: .4byte gBattleMoves
+_0801903C: .4byte gBattleCommunication
+_08019040: .4byte gBattlescriptCurrInstr
+_08019044: .4byte gUnknown_081D9950
+_08019048: .4byte gHitMarker
+_0801904C:
+ ldr r0, _080190FC @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801905C
+ bl _08019F76
+_0801905C:
+ ldr r1, _08019100 @ =gBattleMons
+ ldr r0, _08019104 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08019072
+ bl _08019F76
+_08019072:
+ ldr r0, _08019108 @ =gProtectStructs
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08019084
+ bl _08019F76
+_08019084:
+ ldr r2, _0801910C @ =gSpecialStatuses
+ ldr r0, _08019110 @ =gBankTarget
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080190AC
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080190AC
+ bl _08019F76
+_080190AC:
+ ldr r1, _08019114 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080190C4
+ bl _08019F76
+_080190C4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _080190DC
+ bl _08019F76
+_080190DC:
+ ldr r1, _08019118 @ =gBattleCommunication
+ movs r0, 0x42
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801911C @ =gBattlescriptCurrInstr
+ ldr r0, _08019120 @ =gUnknown_081D9950
+ str r0, [r1]
+ ldr r2, _08019124 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _08019F22
+ .align 2, 0
+_080190FC: .4byte gBattleMoveFlags
+_08019100: .4byte gBattleMons
+_08019104: .4byte gBankAttacker
+_08019108: .4byte gProtectStructs
+_0801910C: .4byte gSpecialStatuses
+_08019110: .4byte gBankTarget
+_08019114: .4byte gBattleMoves
+_08019118: .4byte gBattleCommunication
+_0801911C: .4byte gBattlescriptCurrInstr
+_08019120: .4byte gUnknown_081D9950
+_08019124: .4byte gHitMarker
+_08019128:
+ ldr r0, _080191D8 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08019138
+ bl _08019F76
+_08019138:
+ ldr r1, _080191DC @ =gBattleMons
+ ldr r0, _080191E0 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801914E
+ bl _08019F76
+_0801914E:
+ ldr r0, _080191E4 @ =gProtectStructs
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08019160
+ bl _08019F76
+_08019160:
+ ldr r2, _080191E8 @ =gSpecialStatuses
+ ldr r0, _080191EC @ =gBankTarget
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08019188
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08019188
+ bl _08019F76
+_08019188:
+ ldr r1, _080191F0 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080191A0
+ bl _08019F76
+_080191A0:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _080191B8
+ bl _08019F76
+_080191B8:
+ ldr r1, _080191F4 @ =gBattleCommunication
+ movs r0, 0x45
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080191F8 @ =gBattlescriptCurrInstr
+ ldr r0, _080191FC @ =gUnknown_081D9950
+ str r0, [r1]
+ ldr r2, _08019200 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _08019F22
+ .align 2, 0
+_080191D8: .4byte gBattleMoveFlags
+_080191DC: .4byte gBattleMons
+_080191E0: .4byte gBankAttacker
+_080191E4: .4byte gProtectStructs
+_080191E8: .4byte gSpecialStatuses
+_080191EC: .4byte gBankTarget
+_080191F0: .4byte gBattleMoves
+_080191F4: .4byte gBattleCommunication
+_080191F8: .4byte gBattlescriptCurrInstr
+_080191FC: .4byte gUnknown_081D9950
+_08019200: .4byte gHitMarker
+_08019204:
+ ldr r0, _080192B4 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08019214
+ bl _08019F76
+_08019214:
+ ldr r1, _080192B8 @ =gBattleMons
+ ldr r0, _080192BC @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801922A
+ bl _08019F76
+_0801922A:
+ ldr r0, _080192C0 @ =gProtectStructs
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801923C
+ bl _08019F76
+_0801923C:
+ ldr r1, _080192C4 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08019254
+ bl _08019F76
+_08019254:
+ ldr r2, _080192C8 @ =gSpecialStatuses
+ ldr r0, _080192CC @ =gBankTarget
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801927C
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801927C
+ bl _08019F76
+_0801927C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08019294
+ bl _08019F76
+_08019294:
+ ldr r1, _080192D0 @ =gBattleCommunication
+ movs r0, 0x43
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080192D4 @ =gBattlescriptCurrInstr
+ ldr r0, _080192D8 @ =gUnknown_081D9950
+ str r0, [r1]
+ ldr r2, _080192DC @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _08019F22
+ .align 2, 0
+_080192B4: .4byte gBattleMoveFlags
+_080192B8: .4byte gBattleMons
+_080192BC: .4byte gBankAttacker
+_080192C0: .4byte gProtectStructs
+_080192C4: .4byte gBattleMoves
+_080192C8: .4byte gSpecialStatuses
+_080192CC: .4byte gBankTarget
+_080192D0: .4byte gBattleCommunication
+_080192D4: .4byte gBattlescriptCurrInstr
+_080192D8: .4byte gUnknown_081D9950
+_080192DC: .4byte gHitMarker
+_080192E0:
+ ldr r0, _08019420 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _080192F0
+ bl _08019F76
+_080192F0:
+ ldr r5, _08019424 @ =gBattleMons
+ ldr r7, _08019428 @ =gBankAttacker
+ ldrb r1, [r7]
+ movs r6, 0x58
+ adds r0, r1, 0
+ muls r0, r6
+ adds r0, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08019308
+ bl _08019F76
+_08019308:
+ ldr r0, _0801942C @ =gProtectStructs
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801931A
+ bl _08019F76
+_0801931A:
+ ldr r1, _08019430 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08019332
+ bl _08019F76
+_08019332:
+ ldr r3, _08019434 @ =gSpecialStatuses
+ ldr r0, _08019438 @ =gBankTarget
+ mov r8, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r2, r0, 2
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801935C
+ adds r0, r3, 0
+ adds r0, 0xC
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801935C
+ bl _08019F76
+_0801935C:
+ adds r0, r1, 0
+ muls r0, r6
+ adds r0, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801936C
+ bl _08019F76
+_0801936C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08019384
+ bl _08019F76
+_08019384:
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bne _08019396
+ bl _08019F76
+_08019396:
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0x10]
+ bl GetGenderFromSpeciesAndPersonality
+ adds r4, r0, 0
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x14]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080193B4
+ bl _08019F76
+_080193B4:
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r4, r5, 0
+ adds r4, 0x50
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r0, r1
+ cmp r0, 0
+ beq _080193CE
+ bl _08019F76
+_080193CE:
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0x10]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080193E2
+ bl _08019F76
+_080193E2:
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x14]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080193F6
+ bl _08019F76
+_080193F6:
+ ldrb r0, [r7]
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r4
+ ldr r1, _0801943C @ =gBitTable
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 16
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019440 @ =gBattlescriptCurrInstr
+ ldr r0, _08019444 @ =gUnknown_081D9943
+ str r0, [r1]
+ bl _08019F22
+ .align 2, 0
+_08019420: .4byte gBattleMoveFlags
+_08019424: .4byte gBattleMons
+_08019428: .4byte gBankAttacker
+_0801942C: .4byte gProtectStructs
+_08019430: .4byte gBattleMoves
+_08019434: .4byte gSpecialStatuses
+_08019438: .4byte gBankTarget
+_0801943C: .4byte gBitTable
+_08019440: .4byte gBattlescriptCurrInstr
+_08019444: .4byte gUnknown_081D9943
+_08019448:
+ movs r5, 0
+ mov r10, r5
+ ldr r0, _0801947C @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcc _08019458
+ bl _08019F76
+_08019458:
+ ldr r1, _08019480 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ subs r0, 0x7
+ adds r2, r1, 0
+ cmp r0, 0x41
+ bls _08019472
+ b _080196D6
+_08019472:
+ lsls r0, 2
+ ldr r1, _08019484 @ =_08019488
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801947C: .4byte gNoOfAllBanks
+_08019480: .4byte gBattleMons
+_08019484: .4byte _08019488
+ .align 2, 0
+_08019488:
+ .4byte _080195EC
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196B0
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _08019614
+ .4byte _080196D6
+ .4byte _08019590
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080195BC
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _08019680
+ .4byte _08019650
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _08019614
+_08019590:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080195B0 @ =0x00000f88
+ ands r0, r1
+ cmp r0, 0
+ bne _080195AA
+ b _080196D6
+_080195AA:
+ ldr r0, _080195B4 @ =gBattleTextBuff1
+ ldr r1, _080195B8 @ =gStatusConditionString_PoisonJpn
+ b _0801969C
+ .align 2, 0
+_080195B0: .4byte 0x00000f88
+_080195B4: .4byte gBattleTextBuff1
+_080195B8: .4byte gStatusConditionString_PoisonJpn
+_080195BC:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _080195D6
+ b _080196D6
+_080195D6:
+ ldr r0, _080195E4 @ =gBattleTextBuff1
+ ldr r1, _080195E8 @ =gStatusConditionString_ConfusionJpn
+ bl StringCopy
+ movs r2, 0x2
+ mov r9, r2
+ b _080196DC
+ .align 2, 0
+_080195E4: .4byte gBattleTextBuff1
+_080195E8: .4byte gStatusConditionString_ConfusionJpn
+_080195EC:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ ldr r0, _0801960C @ =gBattleTextBuff1
+ ldr r1, _08019610 @ =gStatusConditionString_ParalysisJpn
+ b _0801969C
+ .align 2, 0
+_0801960C: .4byte gBattleTextBuff1
+_08019610: .4byte gStatusConditionString_ParalysisJpn
+_08019614:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ adds r2, 0x50
+ adds r2, r3, r2
+ ldr r0, [r2]
+ ldr r1, _08019644 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _08019648 @ =gBattleTextBuff1
+ ldr r1, _0801964C @ =gStatusConditionString_SleepJpn
+ bl StringCopy
+ movs r0, 0x1
+ mov r9, r0
+ b _080196DC
+ .align 2, 0
+_08019644: .4byte 0xf7ffffff
+_08019648: .4byte gBattleTextBuff1
+_0801964C: .4byte gStatusConditionString_SleepJpn
+_08019650:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ ldr r0, _08019678 @ =gBattleTextBuff1
+ ldr r1, _0801967C @ =gStatusConditionString_BurnJpn
+ bl StringCopy
+ movs r2, 0x1
+ mov r9, r2
+ b _080196DC
+ .align 2, 0
+_08019678: .4byte gBattleTextBuff1
+_0801967C: .4byte gStatusConditionString_BurnJpn
+_08019680:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ ldr r0, _080196A8 @ =gBattleTextBuff1
+ ldr r1, _080196AC @ =gStatusConditionString_IceJpn
+_0801969C:
+ bl StringCopy
+ movs r5, 0x1
+ mov r9, r5
+ b _080196DC
+ .align 2, 0
+_080196A8: .4byte gBattleTextBuff1
+_080196AC: .4byte gStatusConditionString_IceJpn
+_080196B0:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ ldr r0, _080196EC @ =gBattleTextBuff1
+ ldr r1, _080196F0 @ =gStatusConditionString_LoveJpn
+ bl StringCopy
+ movs r2, 0x3
+ mov r9, r2
+_080196D6:
+ mov r3, r9
+ cmp r3, 0
+ beq _08019798
+_080196DC:
+ mov r5, r9
+ cmp r5, 0x2
+ beq _08019710
+ cmp r5, 0x2
+ bgt _080196F4
+ cmp r5, 0x1
+ beq _080196FC
+ b _0801973C
+ .align 2, 0
+_080196EC: .4byte gBattleTextBuff1
+_080196F0: .4byte gStatusConditionString_LoveJpn
+_080196F4:
+ mov r0, r9
+ cmp r0, 0x3
+ beq _08019728
+ b _0801973C
+_080196FC:
+ ldr r1, _0801970C @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r1, 0x4C
+ adds r2, r1
+ movs r0, 0
+ b _0801973A
+ .align 2, 0
+_0801970C: .4byte gBattleMons
+_08019710:
+ ldr r1, _08019724 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x8
+ negs r1, r1
+ b _08019738
+ .align 2, 0
+_08019724: .4byte gBattleMons
+_08019728:
+ ldr r1, _08019778 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _0801977C @ =0xfff0ffff
+_08019738:
+ ands r0, r1
+_0801973A:
+ str r0, [r2]
+_0801973C:
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019780 @ =gBattlescriptCurrInstr
+ ldr r0, _08019784 @ =gUnknown_081D9956
+ str r0, [r1]
+ ldr r0, _08019788 @ =0x02000000
+ ldr r1, _0801978C @ =0x00016003
+ adds r0, r1
+ mov r2, r10
+ strb r2, [r0]
+ ldr r4, _08019790 @ =gActiveBank
+ strb r2, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _08019794 @ =gUnknown_02024ACC
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ bl _08019F92
+ .align 2, 0
+_08019778: .4byte gBattleMons
+_0801977C: .4byte 0xfff0ffff
+_08019780: .4byte gBattlescriptCurrInstr
+_08019784: .4byte gUnknown_081D9956
+_08019788: .4byte 0x02000000
+_0801978C: .4byte 0x00016003
+_08019790: .4byte gActiveBank
+_08019794: .4byte gUnknown_02024ACC
+_08019798:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _080197B0 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcs _080197AC
+ b _08019458
+_080197AC:
+ bl _08019F76
+ .align 2, 0
+_080197B0: .4byte gNoOfAllBanks
+_080197B4:
+ movs r3, 0
+ mov r10, r3
+ ldr r0, _080197FC @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcc _080197C2
+ b _08019F76
+_080197C2:
+ ldr r4, _08019800 @ =gBattleMons
+_080197C4:
+ movs r0, 0x58
+ mov r5, r10
+ muls r5, r0
+ adds r0, r5, 0
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bne _080197E8
+ mov r0, r10
+ bl castform_switch
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0
+ beq _080197E8
+ b _08019E40
+_080197E8:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _080197FC @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcc _080197C4
+ b _08019F76
+ .align 2, 0
+_080197FC: .4byte gNoOfAllBanks
+_08019800: .4byte gBattleMons
+_08019804:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x1C
+ beq _0801980E
+ b _08019F76
+_0801980E:
+ ldr r4, _08019860 @ =gHitMarker
+ ldr r1, [r4]
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801981E
+ b _08019F76
+_0801981E:
+ ldr r0, _08019864 @ =0xffffbfff
+ ands r1, r0
+ str r1, [r4]
+ ldr r3, _08019868 @ =0x000160ca
+ adds r2, r7, r3
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ cmp r0, 0x6
+ bne _08019838
+ movs r0, 0x2
+ strb r0, [r2]
+_08019838:
+ ldr r1, _0801986C @ =gBattleCommunication
+ ldrb r0, [r2]
+ adds r0, 0x40
+ strb r0, [r1, 0x3]
+ ldr r0, _08019870 @ =gBankTarget
+ ldrb r1, [r0]
+ ldr r5, _08019874 @ =0x00016003
+ adds r0, r7, r5
+ strb r1, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019878 @ =gBattlescriptCurrInstr
+ ldr r0, _0801987C @ =gUnknown_081D9953
+ str r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r4]
+ b _08019F22
+ .align 2, 0
+_08019860: .4byte gHitMarker
+_08019864: .4byte 0xffffbfff
+_08019868: .4byte 0x000160ca
+_0801986C: .4byte gBattleCommunication
+_08019870: .4byte gBankTarget
+_08019874: .4byte 0x00016003
+_08019878: .4byte gBattlescriptCurrInstr
+_0801987C: .4byte gUnknown_081D9953
+_08019880:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x1C
+ beq _0801988A
+ b _08019F76
+_0801988A:
+ ldr r4, _080198DC @ =gHitMarker
+ ldr r1, [r4]
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801989A
+ b _08019F76
+_0801989A:
+ ldr r0, _080198E0 @ =0xffffbfff
+ ands r1, r0
+ str r1, [r4]
+ ldr r3, _080198E4 @ =0x000160ca
+ adds r2, r7, r3
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ cmp r0, 0x6
+ bne _080198B4
+ movs r0, 0x2
+ strb r0, [r2]
+_080198B4:
+ ldr r1, _080198E8 @ =gBattleCommunication
+ ldrb r0, [r2]
+ strb r0, [r1, 0x3]
+ ldr r0, _080198EC @ =gBankAttacker
+ ldrb r1, [r0]
+ ldr r5, _080198F0 @ =0x00016003
+ adds r0, r7, r5
+ strb r1, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080198F4 @ =gBattlescriptCurrInstr
+ ldr r0, _080198F8 @ =gUnknown_081D9953
+ str r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r4]
+ b _08019F22
+ .align 2, 0
+_080198DC: .4byte gHitMarker
+_080198E0: .4byte 0xffffbfff
+_080198E4: .4byte 0x000160ca
+_080198E8: .4byte gBattleCommunication
+_080198EC: .4byte gBankAttacker
+_080198F0: .4byte 0x00016003
+_080198F4: .4byte gBattlescriptCurrInstr
+_080198F8: .4byte gUnknown_081D9953
+_080198FC:
+ movs r4, 0
+ ldr r0, _08019934 @ =gNoOfAllBanks
+ ldrb r1, [r0]
+ cmp r4, r1
+ blt _08019908
+ b _08019F76
+_08019908:
+ ldr r0, _08019938 @ =gBattleMons
+ adds r5, r1, 0
+ ldr r2, _0801993C @ =gStatuses3
+ adds r3, r0, 0
+ adds r3, 0x20
+ movs r6, 0x80
+ lsls r6, 12
+_08019916:
+ ldrb r1, [r3]
+ cmp r1, 0x16
+ bne _08019926
+ ldr r0, [r2]
+ ands r0, r6
+ cmp r0, 0
+ beq _08019926
+ b _08019E6C
+_08019926:
+ adds r2, 0x4
+ adds r3, 0x58
+ adds r4, 0x1
+ cmp r4, r5
+ blt _08019916
+ b _08019F76
+ .align 2, 0
+_08019934: .4byte gNoOfAllBanks
+_08019938: .4byte gBattleMons
+_0801993C: .4byte gStatuses3
+_08019940:
+ movs r4, 0
+ ldr r0, _08019A1C @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _0801994C
+ b _08019F76
+_0801994C:
+ ldr r0, _08019A20 @ =gActiveBank
+ mov r8, r0
+ ldr r1, _08019A24 @ =gBattleMons
+ adds r1, 0x20
+ str r1, [sp, 0x1C]
+ movs r2, 0
+ str r2, [sp, 0x20]
+_0801995A:
+ ldr r3, [sp, 0x1C]
+ ldrb r0, [r3]
+ cmp r0, 0x24
+ beq _08019964
+ b _08019AF6
+_08019964:
+ ldr r0, _08019A28 @ =gStatuses3
+ ldr r5, [sp, 0x20]
+ adds r0, r5, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 13
+ ands r1, r0
+ str r5, [sp, 0x18]
+ cmp r1, 0
+ bne _0801997A
+ b _08019AF6
+_0801997A:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetBankIdentity
+ movs r1, 0x1
+ adds r5, r0, 0
+ eors r5, r1
+ ands r5, r1
+ adds r0, r5, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x2
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08019A2C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080199AE
+ b _08019ABC
+_080199AE:
+ movs r1, 0x58
+ adds r0, r6, 0
+ muls r0, r1
+ ldr r3, _08019A24 @ =gBattleMons
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019A78
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019A34
+ movs r1, 0x58
+ adds r0, r7, 0
+ muls r0, r1
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019A34
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019A34
+ str r2, [sp, 0x24]
+ bl Random
+ ldr r2, [sp, 0x24]
+ adds r1, r2, 0
+ ands r1, r0
+ lsls r1, 1
+ orrs r5, r1
+ adds r0, r5, 0
+ bl GetBankByPlayerAI
+ mov r2, r8
+ strb r0, [r2]
+ ldrb r0, [r2]
+ movs r3, 0x58
+ muls r0, r3
+ ldr r5, _08019A24 @ =gBattleMons
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x1C]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ muls r0, r3
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ ldr r2, _08019A30 @ =gLastUsedAbility
+ strb r0, [r2]
+ b _08019AE4
+ .align 2, 0
+_08019A1C: .4byte gNoOfAllBanks
+_08019A20: .4byte gActiveBank
+_08019A24: .4byte gBattleMons
+_08019A28: .4byte gStatuses3
+_08019A2C: .4byte gBattleTypeFlags
+_08019A30: .4byte gLastUsedAbility
+_08019A34:
+ ldr r3, _08019A74 @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r6, 0
+ muls r0, r2
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019A78
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019A78
+ mov r5, r8
+ strb r6, [r5]
+ adds r1, r4, 0
+ muls r1, r2
+ adds r1, r3
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ b _08019AE0
+ .align 2, 0
+_08019A74: .4byte gBattleMons
+_08019A78:
+ ldr r3, _08019AB8 @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r7, 0
+ muls r0, r2
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019AEE
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019AEE
+ mov r5, r8
+ strb r7, [r5]
+ adds r1, r4, 0
+ muls r1, r2
+ adds r1, r3
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ b _08019AE0
+ .align 2, 0
+_08019AB8: .4byte gBattleMons
+_08019ABC:
+ mov r2, r8
+ strb r6, [r2]
+ movs r3, 0x58
+ adds r0, r6, 0
+ muls r0, r3
+ ldr r5, _08019B10 @ =gBattleMons
+ adds r0, r5
+ adds r2, r0, 0
+ adds r2, 0x20
+ ldrb r1, [r2]
+ cmp r1, 0
+ beq _08019AEE
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08019AEE
+ ldr r0, [sp, 0x1C]
+ strb r1, [r0]
+ ldrb r0, [r2]
+_08019AE0:
+ ldr r1, _08019B14 @ =gLastUsedAbility
+ strb r0, [r1]
+_08019AE4:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019AEE:
+ mov r2, r9
+ cmp r2, 0
+ beq _08019AF6
+ b _08019E88
+_08019AF6:
+ ldr r3, [sp, 0x1C]
+ adds r3, 0x58
+ str r3, [sp, 0x1C]
+ ldr r5, [sp, 0x20]
+ adds r5, 0x4
+ str r5, [sp, 0x20]
+ adds r4, 0x1
+ ldr r0, _08019B18 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08019B0E
+ b _0801995A
+_08019B0E:
+ b _08019F76
+ .align 2, 0
+_08019B10: .4byte gBattleMons
+_08019B14: .4byte gLastUsedAbility
+_08019B18: .4byte gNoOfAllBanks
+_08019B1C:
+ movs r4, 0
+ ldr r0, _08019B54 @ =gNoOfAllBanks
+ ldrb r1, [r0]
+ cmp r4, r1
+ blt _08019B28
+ b _08019F76
+_08019B28:
+ ldr r0, _08019B58 @ =gBattleMons
+ adds r5, r1, 0
+ ldr r2, _08019B5C @ =gStatuses3
+ adds r3, r0, 0
+ adds r3, 0x20
+ movs r6, 0x80
+ lsls r6, 12
+_08019B36:
+ ldrb r1, [r3]
+ cmp r1, 0x16
+ bne _08019B46
+ ldr r0, [r2]
+ ands r0, r6
+ cmp r0, 0
+ beq _08019B46
+ b _08019F04
+_08019B46:
+ adds r2, 0x4
+ adds r3, 0x58
+ adds r4, 0x1
+ cmp r4, r5
+ blt _08019B36
+ b _08019F76
+ .align 2, 0
+_08019B54: .4byte gNoOfAllBanks
+_08019B58: .4byte gBattleMons
+_08019B5C: .4byte gStatuses3
+_08019B60:
+ mov r0, r10
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _08019BB0 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019B76
+ b _08019F76
+_08019B76:
+ ldr r7, _08019BB4 @ =gBattleMons
+_08019B78:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r4, 0x1
+ cmp r0, r5
+ beq _08019BA2
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08019BA2
+ ldr r0, _08019BB8 @ =gLastUsedAbility
+ strb r6, [r0]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019BA2:
+ adds r4, r3, 0
+ ldr r0, _08019BB0 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019B78
+ b _08019F76
+ .align 2, 0
+_08019BB0: .4byte gNoOfAllBanks
+_08019BB4: .4byte gBattleMons
+_08019BB8: .4byte gLastUsedAbility
+_08019BBC:
+ mov r0, r10
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _08019C0C @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019BD2
+ b _08019F76
+_08019BD2:
+ ldr r7, _08019C10 @ =gBattleMons
+_08019BD4:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r4, 0x1
+ cmp r0, r5
+ bne _08019BFE
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08019BFE
+ ldr r0, _08019C14 @ =gLastUsedAbility
+ strb r6, [r0]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019BFE:
+ adds r4, r3, 0
+ ldr r0, _08019C0C @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019BD4
+ b _08019F76
+ .align 2, 0
+_08019C0C: .4byte gNoOfAllBanks
+_08019C10: .4byte gBattleMons
+_08019C14: .4byte gLastUsedAbility
+_08019C18:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0xFD
+ beq _08019C40
+ cmp r0, 0xFE
+ beq _08019C78
+ movs r4, 0
+ ldr r0, _08019C38 @ =gNoOfAllBanks
+ adds r5, r0, 0
+ ldrb r2, [r5]
+ cmp r4, r2
+ blt _08019C32
+ b _08019F76
+_08019C32:
+ ldr r2, _08019C3C @ =gBattleMons
+ b _08019CB0
+ .align 2, 0
+_08019C38: .4byte gNoOfAllBanks
+_08019C3C: .4byte gBattleMons
+_08019C40:
+ movs r4, 0
+ ldr r0, _08019C70 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019C4C
+ b _08019F76
+_08019C4C:
+ ldr r5, _08019C74 @ =gStatuses3
+ movs r2, 0x80
+ lsls r2, 9
+ adds r1, r0, 0
+_08019C54:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r2
+ adds r3, r4, 0x1
+ cmp r0, 0
+ beq _08019C68
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019C68:
+ adds r4, r3, 0
+ cmp r4, r1
+ blt _08019C54
+ b _08019F76
+ .align 2, 0
+_08019C70: .4byte gNoOfAllBanks
+_08019C74: .4byte gStatuses3
+_08019C78:
+ movs r4, 0
+ ldr r0, _08019CA8 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019C84
+ b _08019F76
+_08019C84:
+ ldr r5, _08019CAC @ =gStatuses3
+ movs r2, 0x80
+ lsls r2, 10
+ adds r1, r0, 0
+_08019C8C:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r2
+ adds r3, r4, 0x1
+ cmp r0, 0
+ beq _08019CA0
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019CA0:
+ adds r4, r3, 0
+ cmp r4, r1
+ blt _08019C8C
+ b _08019F76
+ .align 2, 0
+_08019CA8: .4byte gNoOfAllBanks
+_08019CAC: .4byte gStatuses3
+_08019CB0:
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r3, r4, 0x1
+ cmp r0, r6
+ bne _08019CCA
+ mov r0, r8
+ strb r6, [r0]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019CCA:
+ adds r4, r3, 0
+ ldrb r1, [r5]
+ cmp r4, r1
+ blt _08019CB0
+ b _08019F76
+_08019CD4:
+ movs r4, 0
+ ldr r0, _08019D10 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019CE0
+ b _08019F76
+_08019CE0:
+ ldr r7, _08019D14 @ =gBattleMons
+ adds r2, r0, 0
+ movs r5, 0x58
+_08019CE6:
+ adds r0, r4, 0
+ muls r0, r5
+ adds r1, r0, r7
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r3, r4, 0x1
+ cmp r0, r6
+ bne _08019D08
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019D08
+ mov r0, r8
+ strb r6, [r0]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019D08:
+ adds r4, r3, 0
+ cmp r4, r2
+ blt _08019CE6
+ b _08019F76
+ .align 2, 0
+_08019D10: .4byte gNoOfAllBanks
+_08019D14: .4byte gBattleMons
+_08019D18:
+ movs r4, 0
+ ldr r0, _08019D50 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019D24
+ b _08019F76
+_08019D24:
+ ldr r7, _08019D54 @ =gBattleMons
+ adds r1, r0, 0
+ movs r5, 0x58
+ ldr r2, _08019D58 @ =gLastUsedAbility
+_08019D2C:
+ adds r0, r4, 0
+ muls r0, r5
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r3, r4, 0x1
+ cmp r0, r6
+ bne _08019D48
+ cmp r4, r10
+ beq _08019D48
+ strb r6, [r2]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019D48:
+ adds r4, r3, 0
+ cmp r4, r1
+ blt _08019D2C
+ b _08019F76
+ .align 2, 0
+_08019D50: .4byte gNoOfAllBanks
+_08019D54: .4byte gBattleMons
+_08019D58: .4byte gLastUsedAbility
+_08019D5C:
+ mov r0, r10
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _08019DAC @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019D72
+ b _08019F76
+_08019D72:
+ ldr r7, _08019DB0 @ =gBattleMons
+_08019D74:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ beq _08019DA0
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08019DA0
+ ldr r0, _08019DB4 @ =gLastUsedAbility
+ strb r6, [r0]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019DA0:
+ adds r4, 0x1
+ ldr r0, _08019DAC @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019D74
+ b _08019F76
+ .align 2, 0
+_08019DAC: .4byte gNoOfAllBanks
+_08019DB0: .4byte gBattleMons
+_08019DB4: .4byte gLastUsedAbility
+_08019DB8:
+ mov r0, r10
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _08019E08 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019DCE
+ b _08019F76
+_08019DCE:
+ ldr r7, _08019E0C @ =gBattleMons
+_08019DD0:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ bne _08019DFC
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08019DFC
+ ldr r0, _08019E10 @ =gLastUsedAbility
+ strb r6, [r0]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019DFC:
+ adds r4, 0x1
+ ldr r0, _08019E08 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019DD0
+ b _08019F76
+ .align 2, 0
+_08019E08: .4byte gNoOfAllBanks
+_08019E0C: .4byte gBattleMons
+_08019E10: .4byte gLastUsedAbility
+_08019E14:
+ ldr r0, _08019E30 @ =gUnknown_081D977D
+ bl b_push_move_exec
+ ldr r0, _08019E34 @ =0x02000000
+ ldr r2, _08019E38 @ =0x00016003
+ adds r1, r0, r2
+ strb r6, [r1]
+ mov r1, r9
+ subs r1, 0x1
+ ldr r3, _08019E3C @ =0x0001609b
+ adds r0, r3
+ strb r1, [r0]
+ b _08019F76
+ .align 2, 0
+_08019E30: .4byte gUnknown_081D977D
+_08019E34: .4byte 0x02000000
+_08019E38: .4byte 0x00016003
+_08019E3C: .4byte 0x0001609b
+_08019E40:
+ ldr r0, _08019E5C @ =gUnknown_081D977D
+ bl b_push_move_exec
+ ldr r0, _08019E60 @ =0x02000000
+ ldr r5, _08019E64 @ =0x00016003
+ adds r1, r0, r5
+ mov r2, r10
+ strb r2, [r1]
+ mov r1, r9
+ subs r1, 0x1
+ ldr r3, _08019E68 @ =0x0001609b
+ adds r0, r3
+ strb r1, [r0]
+ b _08019F92
+ .align 2, 0
+_08019E5C: .4byte gUnknown_081D977D
+_08019E60: .4byte 0x02000000
+_08019E64: .4byte 0x00016003
+_08019E68: .4byte 0x0001609b
+_08019E6C:
+ mov r5, r8
+ strb r1, [r5]
+ ldr r0, [r2]
+ ldr r1, _08019E80 @ =0xfff7ffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _08019E84 @ =gUnknown_081D978C
+ bl b_push_move_exec
+ b _08019F1A
+ .align 2, 0
+_08019E80: .4byte 0xfff7ffff
+_08019E84: .4byte gUnknown_081D978C
+_08019E88:
+ ldr r0, _08019EDC @ =gUnknown_081D9726
+ bl b_push_move_exec
+ ldr r1, _08019EE0 @ =gStatuses3
+ ldr r2, [sp, 0x18]
+ adds r1, r2, r1
+ ldr r0, [r1]
+ ldr r2, _08019EE4 @ =0xffefffff
+ ands r0, r2
+ str r0, [r1]
+ ldr r0, _08019EE8 @ =0x02000000
+ ldr r3, _08019EEC @ =0x00016003
+ adds r0, r3
+ strb r4, [r0]
+ ldr r1, _08019EF0 @ =gBattleTextBuff1
+ movs r4, 0xFD
+ strb r4, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r2, _08019EF4 @ =gActiveBank
+ ldrb r0, [r2]
+ strb r0, [r1, 0x2]
+ ldr r3, _08019EF8 @ =gBattlePartyID
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08019EFC @ =gBattleTextBuff2
+ strb r4, [r1]
+ movs r0, 0x9
+ strb r0, [r1, 0x1]
+ ldr r0, _08019F00 @ =gLastUsedAbility
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x3]
+ b _08019F76
+ .align 2, 0
+_08019EDC: .4byte gUnknown_081D9726
+_08019EE0: .4byte gStatuses3
+_08019EE4: .4byte 0xffefffff
+_08019EE8: .4byte 0x02000000
+_08019EEC: .4byte 0x00016003
+_08019EF0: .4byte gBattleTextBuff1
+_08019EF4: .4byte gActiveBank
+_08019EF8: .4byte gBattlePartyID
+_08019EFC: .4byte gBattleTextBuff2
+_08019F00: .4byte gLastUsedAbility
+_08019F04:
+ mov r5, r8
+ strb r1, [r5]
+ ldr r0, [r2]
+ ldr r1, _08019F30 @ =0xfff7ffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019F34 @ =gBattlescriptCurrInstr
+ ldr r0, _08019F38 @ =gUnknown_081D9795
+ str r0, [r1]
+_08019F1A:
+ ldr r0, _08019F3C @ =0x02000000
+ ldr r1, _08019F40 @ =0x000160dd
+ adds r0, r1
+ strb r4, [r0]
+_08019F22:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ b _08019F76
+ .align 2, 0
+_08019F30: .4byte 0xfff7ffff
+_08019F34: .4byte gBattlescriptCurrInstr
+_08019F38: .4byte gUnknown_081D9795
+_08019F3C: .4byte 0x02000000
+_08019F40: .4byte 0x000160dd
+_08019F44:
+ movs r4, 0
+ ldr r0, _08019FA4 @ =gNoOfAllBanks
+ ldrb r1, [r0]
+ cmp r4, r1
+ bge _08019F76
+ ldr r0, _08019FA8 @ =gBattleMons
+ adds r2, r1, 0
+ adds r1, r0, 0
+ adds r1, 0x20
+ ldr r3, _08019FAC @ =gLastUsedAbility
+_08019F58:
+ ldrb r0, [r1]
+ cmp r0, r6
+ bne _08019F6E
+ cmp r4, r10
+ beq _08019F6E
+ strb r6, [r3]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019F6E:
+ adds r1, 0x58
+ adds r4, 0x1
+ cmp r4, r2
+ blt _08019F58
+_08019F76:
+ mov r2, r9
+ cmp r2, 0
+ beq _08019F92
+_08019F7C:
+ ldr r3, [sp, 0x4]
+ cmp r3, 0xB
+ bhi _08019F92
+ ldr r1, _08019FAC @ =gLastUsedAbility
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08019F92
+ adds r1, r0, 0
+ mov r0, r10
+ bl sub_81074C4
+_08019F92:
+ mov r0, r9
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08019FA4: .4byte gNoOfAllBanks
+_08019FA8: .4byte gBattleMons
+_08019FAC: .4byte gLastUsedAbility
+ thumb_func_end AbilityBattleEffects
+
+ thumb_func_start b_call_bc_move_exec
+b_call_bc_move_exec: @ 8019FB0
+ ldr r1, _08019FD8 @ =gBattlescriptCurrInstr
+ str r0, [r1]
+ ldr r3, _08019FDC @ =0x02017140
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r3
+ ldr r2, _08019FE0 @ =gBattleMainFunc
+ ldr r1, [r2]
+ str r1, [r0]
+ ldr r0, _08019FE4 @ =sub_8013F54
+ str r0, [r2]
+ ldr r1, _08019FE8 @ =gFightStateTracker
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08019FD8: .4byte gBattlescriptCurrInstr
+_08019FDC: .4byte 0x02017140
+_08019FE0: .4byte gBattleMainFunc
+_08019FE4: .4byte sub_8013F54
+_08019FE8: .4byte gFightStateTracker
+ thumb_func_end b_call_bc_move_exec
+
+ thumb_func_start b_push_move_exec
+b_push_move_exec: @ 8019FEC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl b_movescr_stack_push_cursor
+ ldr r0, _0801A01C @ =gBattlescriptCurrInstr
+ str r4, [r0]
+ ldr r3, _0801A020 @ =0x02017140
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r3
+ ldr r2, _0801A024 @ =gBattleMainFunc
+ ldr r1, [r2]
+ str r1, [r0]
+ ldr r0, _0801A028 @ =sub_8013FBC
+ str r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801A01C: .4byte gBattlescriptCurrInstr
+_0801A020: .4byte 0x02017140
+_0801A024: .4byte gBattleMainFunc
+_0801A028: .4byte sub_8013FBC
+ thumb_func_end b_push_move_exec
+
+ thumb_func_start sub_801A02C
+sub_801A02C: @ 801A02C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0
+ str r1, [sp, 0xC]
+ add r0, sp, 0x4
+ strb r1, [r0]
+ ldr r4, _0801A078 @ =gLastUsedItem
+ ldr r1, _0801A07C @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0801A084
+ ldr r1, _0801A080 @ =gEnigmaBerries
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x7]
+ ldrb r0, [r0, 0x1A]
+ b _0801A098
+ .align 2, 0
+_0801A078: .4byte gLastUsedItem
+_0801A07C: .4byte gBattleMons
+_0801A080: .4byte gEnigmaBerries
+_0801A084:
+ ldrh r0, [r4]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r0, 24
+_0801A098:
+ mov r9, r0
+ ldr r1, _0801A0C0 @ =gBattleMons
+ ldr r0, _0801A0C4 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ str r0, [sp, 0x14]
+ cmp r0, 0xAF
+ bne _0801A0CC
+ ldr r1, _0801A0C8 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r3, [r0, 0x7]
+ mov r8, r3
+ ldrb r0, [r0, 0x1A]
+ b _0801A0E2
+ .align 2, 0
+_0801A0C0: .4byte gBattleMons
+_0801A0C4: .4byte gBankAttacker
+_0801A0C8: .4byte gEnigmaBerries
+_0801A0CC:
+ ldr r0, [sp, 0x14]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, [sp, 0x14]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r0, 24
+_0801A0E2:
+ str r0, [sp, 0x10]
+ ldr r2, _0801A118 @ =gBattleMons
+ ldr r0, _0801A11C @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r4, [r0, 0x2E]
+ cmp r4, 0xAF
+ beq _0801A102
+ adds r0, r4, 0
+ bl ItemId_GetHoldEffect
+ adds r0, r4, 0
+ bl ItemId_GetHoldEffectParam
+_0801A102:
+ ldr r4, [sp, 0x8]
+ cmp r4, 0x4
+ bls _0801A10C
+ bl _0801B3CA
+_0801A10C:
+ lsls r0, r4, 2
+ ldr r1, _0801A120 @ =_0801A124
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801A118: .4byte gBattleMons
+_0801A11C: .4byte gBankTarget
+_0801A120: .4byte _0801A124
+ .align 2, 0
+_0801A124:
+ .4byte _0801A138
+ .4byte _0801A1D4
+ .4byte _0801B3CA
+ .4byte _0801AE0C
+ .4byte _0801B26C
+_0801A138:
+ cmp r5, 0x17
+ beq _0801A15C
+ cmp r5, 0x20
+ beq _0801A144
+ bl _0801B3CA
+_0801A144:
+ ldr r0, _0801A154 @ =0x02000000
+ ldr r5, _0801A158 @ =0x00016056
+ adds r0, r5
+ movs r1, 0x2
+ strb r1, [r0]
+ bl _0801B3CA
+ .align 2, 0
+_0801A154: .4byte 0x02000000
+_0801A158: .4byte 0x00016056
+_0801A15C:
+ ldr r0, _0801A1B8 @ =gBattleMons
+ mov r8, r0
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x18
+ adds r1, r0
+ movs r2, 0x6
+ movs r3, 0x7
+ mov r10, r3
+_0801A172:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0801A180
+ strb r2, [r1]
+ movs r4, 0x5
+ str r4, [sp, 0xC]
+_0801A180:
+ adds r1, 0x1
+ movs r5, 0x1
+ negs r5, r5
+ add r10, r5
+ mov r0, r10
+ cmp r0, 0
+ bge _0801A172
+ ldr r1, [sp, 0xC]
+ cmp r1, 0
+ bne _0801A198
+ bl _0801B3CA
+_0801A198:
+ ldr r0, _0801A1BC @ =0x02000000
+ ldr r2, _0801A1C0 @ =0x00016003
+ adds r0, r2
+ strb r7, [r0]
+ ldr r0, _0801A1C4 @ =gStringBank
+ strb r7, [r0]
+ ldr r1, _0801A1C8 @ =gActiveBank
+ ldr r0, _0801A1CC @ =gBankAttacker
+ strb r7, [r0]
+ strb r7, [r1]
+ ldr r0, _0801A1D0 @ =gUnknown_081D9A5E
+ bl b_call_bc_move_exec
+ bl _0801B3CA
+ .align 2, 0
+_0801A1B8: .4byte gBattleMons
+_0801A1BC: .4byte 0x02000000
+_0801A1C0: .4byte 0x00016003
+_0801A1C4: .4byte gStringBank
+_0801A1C8: .4byte gActiveBank
+_0801A1CC: .4byte gBankAttacker
+_0801A1D0: .4byte gUnknown_081D9A5E
+_0801A1D4:
+ ldr r1, _0801A1FC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ mov r8, r1
+ cmp r0, 0
+ bne _0801A1E8
+ bl _0801B3CA
+_0801A1E8:
+ subs r0, r5, 0x1
+ cmp r0, 0x2A
+ bls _0801A1F2
+ bl _0801AD5A
+_0801A1F2:
+ lsls r0, 2
+ ldr r1, _0801A200 @ =_0801A204
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801A1FC: .4byte gBattleMons
+_0801A200: .4byte _0801A204
+ .align 2, 0
+_0801A204:
+ .4byte _0801A2B0
+ .4byte _0801AAC8
+ .4byte _0801AB84
+ .4byte _0801AAF8
+ .4byte _0801AB2C
+ .4byte _0801AB5C
+ .4byte _0801A2F8
+ .4byte _0801ABC8
+ .4byte _0801ABF8
+ .4byte _0801A4CC
+ .4byte _0801A548
+ .4byte _0801A5C4
+ .4byte _0801A634
+ .4byte _0801A6C8
+ .4byte _0801A75C
+ .4byte _0801A7D4
+ .4byte _0801A838
+ .4byte _0801A89C
+ .4byte _0801A900
+ .4byte _0801A97C
+ .4byte _0801A9C8
+ .4byte _0801AD5A
+ .4byte _0801A3F8
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD24
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801A46C
+_0801A2B0:
+ movs r0, 0x58
+ muls r0, r7
+ mov r3, r8
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x2C]
+ ldrh r1, [r2, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A2C6
+ bl _0801AD5A
+_0801A2C6:
+ cmp r6, 0
+ beq _0801A2CE
+ bl _0801AD5A
+_0801A2CE:
+ ldr r4, _0801A2F0 @ =gBattleMoveDamage
+ mov r5, r9
+ str r5, [r4]
+ ldrh r3, [r2, 0x28]
+ adds r0, r3, r5
+ ldrh r1, [r2, 0x2C]
+ cmp r0, r1
+ ble _0801A2E2
+ subs r0, r1, r3
+ str r0, [r4]
+_0801A2E2:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ ldr r0, _0801A2F4 @ =gUnknown_081D9A74
+ bl b_call_bc_move_exec
+ b _0801A752
+ .align 2, 0
+_0801A2F0: .4byte gBattleMoveDamage
+_0801A2F4: .4byte gUnknown_081D9A74
+_0801A2F8:
+ cmp r6, 0
+ beq _0801A300
+ bl _0801AD5A
+_0801A300:
+ adds r0, r7, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801A324
+ ldr r1, _0801A31C @ =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0801A320 @ =gPlayerParty
+ b _0801A332
+ .align 2, 0
+_0801A31C: .4byte gBattlePartyID
+_0801A320: .4byte gPlayerParty
+_0801A324:
+ ldr r1, _0801A3A0 @ =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0801A3A4 @ =gEnemyParty
+_0801A332:
+ adds r4, r1, r0
+ movs r1, 0
+ mov r10, r1
+ add r5, sp, 0x4
+_0801A33A:
+ mov r1, r10
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r1, r10
+ adds r1, 0x11
+ adds r0, r4, 0
+ bl GetMonData
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r6, 0
+ beq _0801A36A
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _0801A374
+_0801A36A:
+ movs r2, 0x1
+ add r10, r2
+ mov r3, r10
+ cmp r3, 0x3
+ ble _0801A33A
+_0801A374:
+ mov r4, r10
+ cmp r4, 0x4
+ bne _0801A37E
+ bl _0801AD5A
+_0801A37E:
+ lsls r2, r4, 24
+ lsrs r2, 24
+ adds r0, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r2, r0, 24
+ add r0, sp, 0x4
+ ldrb r0, [r0]
+ mov r5, r9
+ adds r1, r0, r5
+ cmp r1, r2
+ ble _0801A3A8
+ add r0, sp, 0x4
+ strb r2, [r0]
+ b _0801A3AC
+ .align 2, 0
+_0801A3A0: .4byte gBattlePartyID
+_0801A3A4: .4byte gEnemyParty
+_0801A3A8:
+ add r0, sp, 0x4
+ strb r1, [r0]
+_0801A3AC:
+ ldr r1, _0801A3EC @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r6, [r1, 0x2]
+ lsrs r0, r6, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r0, _0801A3F0 @ =gUnknown_081D9A91
+ bl b_call_bc_move_exec
+ mov r1, r10
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ add r0, sp, 0x4
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl EmitSetAttributes
+ ldr r0, _0801A3F4 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ movs r1, 0x3
+ str r1, [sp, 0xC]
+ bl _0801AD62
+ .align 2, 0
+_0801A3EC: .4byte gBattleTextBuff1
+_0801A3F0: .4byte gUnknown_081D9A91
+_0801A3F4: .4byte gActiveBank
+_0801A3F8:
+ ldr r0, _0801A450 @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r7
+ adds r0, 0x18
+ adds r1, r0
+ movs r2, 0x6
+ movs r3, 0x7
+ mov r10, r3
+_0801A408:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0801A416
+ strb r2, [r1]
+ movs r4, 0x5
+ str r4, [sp, 0xC]
+_0801A416:
+ adds r1, 0x1
+ movs r5, 0x1
+ negs r5, r5
+ add r10, r5
+ mov r0, r10
+ cmp r0, 0
+ bge _0801A408
+ movs r1, 0x8
+ mov r10, r1
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ bne _0801A432
+ bl _0801B3CA
+_0801A432:
+ ldr r0, _0801A454 @ =0x02000000
+ ldr r3, _0801A458 @ =0x00016003
+ adds r0, r3
+ strb r7, [r0]
+ ldr r0, _0801A45C @ =gStringBank
+ strb r7, [r0]
+ ldr r1, _0801A460 @ =gActiveBank
+ ldr r0, _0801A464 @ =gBankAttacker
+ strb r7, [r0]
+ strb r7, [r1]
+ ldr r0, _0801A468 @ =gUnknown_081D9A5E
+ bl b_call_bc_move_exec
+ bl _0801AD5A
+ .align 2, 0
+_0801A450: .4byte gBattleMons
+_0801A454: .4byte 0x02000000
+_0801A458: .4byte 0x00016003
+_0801A45C: .4byte gStringBank
+_0801A460: .4byte gActiveBank
+_0801A464: .4byte gBankAttacker
+_0801A468: .4byte gUnknown_081D9A5E
+_0801A46C:
+ movs r0, 0x58
+ muls r0, r7
+ mov r4, r8
+ adds r1, r0, r4
+ ldrh r0, [r1, 0x28]
+ ldrh r2, [r1, 0x2C]
+ cmp r0, r2
+ bcc _0801A480
+ bl _0801AD5A
+_0801A480:
+ cmp r6, 0
+ beq _0801A488
+ bl _0801AD5A
+_0801A488:
+ ldr r3, _0801A4C4 @ =gBattleMoveDamage
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 4
+ str r0, [r3]
+ cmp r0, 0
+ bne _0801A498
+ movs r0, 0x1
+ str r0, [r3]
+_0801A498:
+ ldrh r2, [r1, 0x28]
+ ldr r0, [r3]
+ adds r0, r2, r0
+ ldrh r1, [r1, 0x2C]
+ cmp r0, r1
+ ble _0801A4A8
+ subs r0, r1, r2
+ str r0, [r3]
+_0801A4A8:
+ ldr r0, [r3]
+ negs r0, r0
+ str r0, [r3]
+ ldr r0, _0801A4C8 @ =gUnknown_081D9AA1
+ bl b_call_bc_move_exec
+ movs r3, 0x4
+ str r3, [sp, 0xC]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_81074F8
+ bl _0801AD5A
+ .align 2, 0
+_0801A4C4: .4byte gBattleMoveDamage
+_0801A4C8: .4byte gUnknown_081D9AA1
+_0801A4CC:
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ str r4, [sp, 0x18]
+ add r4, r8
+ ldrh r0, [r4, 0x2C]
+ ldrh r1, [r4, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A4E4
+ bl _0801AD5A
+_0801A4E4:
+ cmp r6, 0
+ beq _0801A4EC
+ bl _0801AD5A
+_0801A4EC:
+ ldr r1, _0801A540 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ strb r6, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r5, _0801A544 @ =gBattleMoveDamage
+ ldrh r0, [r4, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _0801A510
+ movs r0, 0x1
+ str r0, [r5]
+_0801A510:
+ ldrh r2, [r4, 0x28]
+ ldr r0, [r5]
+ adds r0, r2, r0
+ ldrh r1, [r4, 0x2C]
+ cmp r0, r1
+ ble _0801A520
+ subs r0, r1, r2
+ str r0, [r5]
+_0801A520:
+ ldr r0, [r5]
+ negs r0, r0
+ str r0, [r5]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r5, [sp, 0x18]
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0
+_0801A532:
+ bl sub_8040A7C
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801A53E
+ b _0801A738
+_0801A53E:
+ b _0801A74C
+ .align 2, 0
+_0801A540: .4byte gBattleTextBuff1
+_0801A544: .4byte gBattleMoveDamage
+_0801A548:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ str r1, [sp, 0x1C]
+ adds r5, r1, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A562
+ bl _0801AD5A
+_0801A562:
+ cmp r6, 0
+ beq _0801A56A
+ bl _0801AD5A
+_0801A56A:
+ ldr r1, _0801A5BC @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r6, 0x1
+ strb r6, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801A5C0 @ =gBattleMoveDamage
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801A58E
+ str r6, [r4]
+_0801A58E:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801A59E
+ subs r0, r1, r2
+ str r0, [r4]
+_0801A59E:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r2, [sp, 0x1C]
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_8040A7C
+ lsls r0, 24
+ cmp r0, 0
+ blt _0801A6A4
+ b _0801A6B8
+ .align 2, 0
+_0801A5BC: .4byte gBattleTextBuff1
+_0801A5C0: .4byte gBattleMoveDamage
+_0801A5C4:
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ str r4, [sp, 0x20]
+ adds r5, r4, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A5DC
+ b _0801AD5A
+_0801A5DC:
+ cmp r6, 0
+ beq _0801A5E2
+ b _0801AD5A
+_0801A5E2:
+ ldr r1, _0801A62C @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801A630 @ =gBattleMoveDamage
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801A608
+ movs r0, 0x1
+ str r0, [r4]
+_0801A608:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801A618
+ subs r0, r1, r2
+ str r0, [r4]
+_0801A618:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r5, [sp, 0x20]
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x2
+ b _0801A532
+ .align 2, 0
+_0801A62C: .4byte gBattleTextBuff1
+_0801A630: .4byte gBattleMoveDamage
+_0801A634:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ str r1, [sp, 0x24]
+ adds r5, r1, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A64C
+ b _0801AD5A
+_0801A64C:
+ cmp r6, 0
+ beq _0801A652
+ b _0801AD5A
+_0801A652:
+ ldr r1, _0801A6AC @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801A6B0 @ =gBattleMoveDamage
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801A678
+ movs r0, 0x1
+ str r0, [r4]
+_0801A678:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801A688
+ subs r0, r1, r2
+ str r0, [r4]
+_0801A688:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r2, [sp, 0x24]
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl sub_8040A7C
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801A6B8
+_0801A6A4:
+ ldr r0, _0801A6B4 @ =gUnknown_081D9AD4
+ bl b_call_bc_move_exec
+ b _0801A6BE
+ .align 2, 0
+_0801A6AC: .4byte gBattleTextBuff1
+_0801A6B0: .4byte gBattleMoveDamage
+_0801A6B4: .4byte gUnknown_081D9AD4
+_0801A6B8:
+ ldr r0, _0801A6C4 @ =gUnknown_081D9A74
+ bl b_call_bc_move_exec
+_0801A6BE:
+ movs r3, 0x4
+ str r3, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801A6C4: .4byte gUnknown_081D9A74
+_0801A6C8:
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ str r4, [sp, 0x28]
+ adds r5, r4, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A6E0
+ b _0801AD5A
+_0801A6E0:
+ cmp r6, 0
+ beq _0801A6E6
+ b _0801AD5A
+_0801A6E6:
+ ldr r1, _0801A740 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r0, 0x4
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801A744 @ =gBattleMoveDamage
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801A70C
+ movs r0, 0x1
+ str r0, [r4]
+_0801A70C:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801A71C
+ subs r0, r1, r2
+ str r0, [r4]
+_0801A71C:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r5, [sp, 0x28]
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x4
+ bl sub_8040A7C
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801A74C
+_0801A738:
+ ldr r0, _0801A748 @ =gUnknown_081D9AD4
+ bl b_call_bc_move_exec
+ b _0801A752
+ .align 2, 0
+_0801A740: .4byte gBattleTextBuff1
+_0801A744: .4byte gBattleMoveDamage
+_0801A748: .4byte gUnknown_081D9AD4
+_0801A74C:
+ ldr r0, _0801A758 @ =gUnknown_081D9A74
+ bl b_call_bc_move_exec
+_0801A752:
+ movs r0, 0x4
+ str r0, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801A758: .4byte gUnknown_081D9A74
+_0801A75C:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A774
+ b _0801AD5A
+_0801A774:
+ cmp r6, 0
+ beq _0801A77A
+ b _0801AD5A
+_0801A77A:
+ movs r0, 0x19
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A784
+ b _0801AD5A
+_0801A784:
+ ldr r1, _0801A7BC @ =gBattleTextBuff1
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _0801A7C0 @ =gBattleTextBuff2
+ strb r2, [r1]
+ strb r6, [r1, 0x1]
+ movs r0, 0xD2
+ strb r0, [r1, 0x2]
+ strb r6, [r1, 0x3]
+ subs r0, 0xD3
+ strb r0, [r1, 0x4]
+ ldr r0, _0801A7C4 @ =gEffectBank
+ strb r7, [r0]
+ ldr r1, _0801A7C8 @ =0x02000000
+ ldr r3, _0801A7CC @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x11
+ strb r0, [r2]
+ ldr r4, _0801A7D0 @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0xF
+ b _0801A94C
+ .align 2, 0
+_0801A7BC: .4byte gBattleTextBuff1
+_0801A7C0: .4byte gBattleTextBuff2
+_0801A7C4: .4byte gEffectBank
+_0801A7C8: .4byte 0x02000000
+_0801A7CC: .4byte 0x0001601e
+_0801A7D0: .4byte 0x000160a4
+_0801A7D4:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A7EC
+ b _0801AD5A
+_0801A7EC:
+ cmp r6, 0
+ beq _0801A7F2
+ b _0801AD5A
+_0801A7F2:
+ movs r0, 0x1A
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A7FC
+ b _0801AD5A
+_0801A7FC:
+ ldr r1, _0801A824 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801A828 @ =gEffectBank
+ strb r7, [r0]
+ ldr r1, _0801A82C @ =0x02000000
+ ldr r3, _0801A830 @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x12
+ strb r0, [r2]
+ ldr r4, _0801A834 @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0x10
+ b _0801A94C
+ .align 2, 0
+_0801A824: .4byte gBattleTextBuff1
+_0801A828: .4byte gEffectBank
+_0801A82C: .4byte 0x02000000
+_0801A830: .4byte 0x0001601e
+_0801A834: .4byte 0x000160a4
+_0801A838:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A850
+ b _0801AD5A
+_0801A850:
+ cmp r6, 0
+ beq _0801A856
+ b _0801AD5A
+_0801A856:
+ movs r0, 0x1B
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A860
+ b _0801AD5A
+_0801A860:
+ ldr r1, _0801A888 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801A88C @ =gEffectBank
+ strb r7, [r0]
+ ldr r1, _0801A890 @ =0x02000000
+ ldr r3, _0801A894 @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x13
+ strb r0, [r2]
+ ldr r4, _0801A898 @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0x11
+ b _0801A94C
+ .align 2, 0
+_0801A888: .4byte gBattleTextBuff1
+_0801A88C: .4byte gEffectBank
+_0801A890: .4byte 0x02000000
+_0801A894: .4byte 0x0001601e
+_0801A898: .4byte 0x000160a4
+_0801A89C:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A8B4
+ b _0801AD5A
+_0801A8B4:
+ cmp r6, 0
+ beq _0801A8BA
+ b _0801AD5A
+_0801A8BA:
+ movs r0, 0x1C
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A8C4
+ b _0801AD5A
+_0801A8C4:
+ ldr r1, _0801A8EC @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x4
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801A8F0 @ =gEffectBank
+ strb r7, [r0]
+ ldr r1, _0801A8F4 @ =0x02000000
+ ldr r3, _0801A8F8 @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x14
+ strb r0, [r2]
+ ldr r4, _0801A8FC @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0x12
+ b _0801A94C
+ .align 2, 0
+_0801A8EC: .4byte gBattleTextBuff1
+_0801A8F0: .4byte gEffectBank
+_0801A8F4: .4byte 0x02000000
+_0801A8F8: .4byte 0x0001601e
+_0801A8FC: .4byte 0x000160a4
+_0801A900:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A918
+ b _0801AD5A
+_0801A918:
+ cmp r6, 0
+ beq _0801A91E
+ b _0801AD5A
+_0801A91E:
+ movs r0, 0x1D
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A928
+ b _0801AD5A
+_0801A928:
+ ldr r1, _0801A960 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801A964 @ =gEffectBank
+ strb r7, [r0]
+ ldr r1, _0801A968 @ =0x02000000
+ ldr r3, _0801A96C @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x15
+ strb r0, [r2]
+ ldr r4, _0801A970 @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0x13
+_0801A94C:
+ strb r0, [r2]
+ ldr r5, _0801A974 @ =0x000160a5
+ adds r1, r5
+ strb r6, [r1]
+ ldr r0, _0801A978 @ =gUnknown_081D9AFE
+ bl b_call_bc_move_exec
+ movs r0, 0x5
+ str r0, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801A960: .4byte gBattleTextBuff1
+_0801A964: .4byte gEffectBank
+_0801A968: .4byte 0x02000000
+_0801A96C: .4byte 0x0001601e
+_0801A970: .4byte 0x000160a4
+_0801A974: .4byte 0x000160a5
+_0801A978: .4byte gUnknown_081D9AFE
+_0801A97C:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ mov r1, r8
+ adds r0, r5, r1
+ ldrh r4, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A996
+ b _0801AD5A
+_0801A996:
+ cmp r6, 0
+ beq _0801A99C
+ b _0801AD5A
+_0801A99C:
+ mov r0, r8
+ adds r0, 0x50
+ adds r1, r5, r0
+ ldr r2, [r1]
+ movs r3, 0x80
+ lsls r3, 13
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0801A9B2
+ b _0801AD5A
+_0801A9B2:
+ orrs r2, r3
+ str r2, [r1]
+ ldr r0, _0801A9C4 @ =gUnknown_081D9B19
+ bl b_call_bc_move_exec
+ movs r2, 0x2
+ str r2, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801A9C4: .4byte gUnknown_081D9B19
+_0801A9C8:
+ cmp r6, 0
+ beq _0801A9CE
+ b _0801AD5A
+_0801A9CE:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ mov r3, r8
+ adds r0, r5, r3
+ ldrh r4, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A9E8
+ b _0801AD5A
+_0801A9E8:
+ movs r4, 0
+ mov r10, r4
+ adds r0, r5, 0x1
+ mov r1, r8
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xB
+ ble _0801AA18
+ mov r0, r8
+ adds r0, 0x19
+ adds r1, r5, r0
+_0801AA04:
+ adds r1, 0x1
+ movs r5, 0x1
+ add r10, r5
+ mov r0, r10
+ cmp r0, 0x4
+ bgt _0801AA18
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _0801AA04
+_0801AA18:
+ mov r1, r10
+ cmp r1, 0x5
+ bne _0801AA20
+ b _0801AD5A
+_0801AA20:
+ movs r0, 0x58
+ muls r0, r7
+ adds r4, r0, 0x1
+ ldr r5, _0801AAA4 @ =gUnknown_02024A98
+_0801AA28:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r0, r4
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xC
+ beq _0801AA28
+ ldr r1, _0801AAA8 @ =gBattleTextBuff1
+ movs r3, 0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ mov r0, r10
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801AAAC @ =gBattleTextBuff2
+ strb r2, [r0]
+ strb r3, [r0, 0x1]
+ movs r1, 0xD1
+ strb r1, [r0, 0x2]
+ strb r3, [r0, 0x3]
+ strb r3, [r0, 0x4]
+ movs r1, 0xD2
+ strb r1, [r0, 0x5]
+ strb r3, [r0, 0x6]
+ subs r1, 0xD3
+ strb r1, [r0, 0x7]
+ ldr r0, _0801AAB0 @ =gEffectBank
+ strb r7, [r0]
+ ldr r1, _0801AAB4 @ =0x02000000
+ mov r2, r10
+ adds r2, 0x21
+ ldr r4, _0801AAB8 @ =0x0001601e
+ adds r0, r1, r4
+ strb r2, [r0]
+ adds r2, 0x6
+ ldr r5, _0801AABC @ =0x000160a4
+ adds r0, r1, r5
+ strb r2, [r0]
+ ldr r0, _0801AAC0 @ =0x000160a5
+ adds r1, r0
+ strb r3, [r1]
+ ldr r0, _0801AAC4 @ =gUnknown_081D9AFE
+ bl b_call_bc_move_exec
+ movs r1, 0x5
+ str r1, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AAA4: .4byte gUnknown_02024A98
+_0801AAA8: .4byte gBattleTextBuff1
+_0801AAAC: .4byte gBattleTextBuff2
+_0801AAB0: .4byte gEffectBank
+_0801AAB4: .4byte 0x02000000
+_0801AAB8: .4byte 0x0001601e
+_0801AABC: .4byte 0x000160a4
+_0801AAC0: .4byte 0x000160a5
+_0801AAC4: .4byte gUnknown_081D9AFE
+_0801AAC8:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _0801AAE0
+ b _0801AD5A
+_0801AAE0:
+ movs r0, 0x41
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AAF4 @ =gUnknown_081D99B6
+ bl b_call_bc_move_exec
+ movs r2, 0x1
+ str r2, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AAF4: .4byte gUnknown_081D99B6
+_0801AAF8:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x88
+ ands r0, r2
+ cmp r0, 0
+ bne _0801AB10
+ b _0801AD5A
+_0801AB10:
+ ldr r0, _0801AB24 @ =0xfffff077
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AB28 @ =gUnknown_081D99CE
+ bl b_call_bc_move_exec
+ movs r3, 0x1
+ str r3, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AB24: .4byte 0xfffff077
+_0801AB28: .4byte gUnknown_081D99CE
+_0801AB2C:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _0801AB44
+ b _0801AD5A
+_0801AB44:
+ movs r0, 0x11
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AB58 @ =gUnknown_081D99E6
+ bl b_call_bc_move_exec
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AB58: .4byte gUnknown_081D99E6
+_0801AB5C:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _0801AB74
+ b _0801AD5A
+_0801AB74:
+ movs r0, 0x21
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AB80 @ =gUnknown_081D99FE
+ b _0801AD0E
+ .align 2, 0
+_0801AB80: .4byte gUnknown_081D99FE
+_0801AB84:
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r2, r3, r0
+ ldr r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AB9C
+ b _0801AD5A
+_0801AB9C:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ mov r1, r8
+ adds r1, 0x50
+ adds r1, r3, r1
+ ldr r0, [r1]
+ ldr r2, _0801ABC0 @ =0xf7ffffff
+ ands r0, r2
+ str r0, [r1]
+ ldr r0, _0801ABC4 @ =gUnknown_081D9A16
+ bl b_call_bc_move_exec
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801ABC0: .4byte 0xf7ffffff
+_0801ABC4: .4byte gUnknown_081D9A16
+_0801ABC8:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x50
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x7
+ ands r0, r2
+ cmp r0, 0
+ bne _0801ABE0
+ b _0801AD5A
+_0801ABE0:
+ movs r0, 0x8
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801ABF4 @ =gUnknown_081D9A2E
+ bl b_call_bc_move_exec
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801ABF4: .4byte gUnknown_081D9A2E
+_0801ABF8:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r4, r5, r0
+ ldr r2, [r4]
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0801AC1E
+ mov r0, r8
+ adds r0, 0x50
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AC1E
+ b _0801AD5A
+_0801AC1E:
+ movs r3, 0
+ mov r10, r3
+ movs r0, 0x88
+ ands r2, r0
+ cmp r2, 0
+ beq _0801AC36
+ ldr r0, _0801ACC4 @ =gBattleTextBuff1
+ ldr r1, _0801ACC8 @ =gStatusConditionString_PoisonJpn
+ bl StringCopy
+ movs r0, 0x1
+ mov r10, r0
+_0801AC36:
+ ldr r0, [r4]
+ movs r1, 0x7
+ mov r9, r1
+ ands r0, r1
+ mov r6, r8
+ adds r6, 0x50
+ cmp r0, 0
+ beq _0801AC5C
+ adds r2, r5, r6
+ ldr r0, [r2]
+ ldr r1, _0801ACCC @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _0801ACC4 @ =gBattleTextBuff1
+ ldr r1, _0801ACD0 @ =gStatusConditionString_SleepJpn
+ bl StringCopy
+ movs r2, 0x1
+ add r10, r2
+_0801AC5C:
+ ldr r0, [r4]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AC72
+ ldr r0, _0801ACC4 @ =gBattleTextBuff1
+ ldr r1, _0801ACD4 @ =gStatusConditionString_ParalysisJpn
+ bl StringCopy
+ movs r3, 0x1
+ add r10, r3
+_0801AC72:
+ ldr r0, [r4]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AC88
+ ldr r0, _0801ACC4 @ =gBattleTextBuff1
+ ldr r1, _0801ACD8 @ =gStatusConditionString_BurnJpn
+ bl StringCopy
+ movs r0, 0x1
+ add r10, r0
+_0801AC88:
+ ldr r0, [r4]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AC9E
+ ldr r0, _0801ACC4 @ =gBattleTextBuff1
+ ldr r1, _0801ACDC @ =gStatusConditionString_IceJpn
+ bl StringCopy
+ movs r1, 0x1
+ add r10, r1
+_0801AC9E:
+ adds r0, r5, r6
+ ldr r0, [r0]
+ mov r2, r9
+ ands r0, r2
+ cmp r0, 0
+ beq _0801ACB6
+ ldr r0, _0801ACC4 @ =gBattleTextBuff1
+ ldr r1, _0801ACE0 @ =gStatusConditionString_ConfusionJpn
+ bl StringCopy
+ movs r3, 0x1
+ add r10, r3
+_0801ACB6:
+ mov r4, r10
+ cmp r4, 0x1
+ bgt _0801ACE8
+ ldr r1, _0801ACE4 @ =gBattleCommunication
+ movs r0, 0
+ b _0801ACEC
+ .align 2, 0
+_0801ACC4: .4byte gBattleTextBuff1
+_0801ACC8: .4byte gStatusConditionString_PoisonJpn
+_0801ACCC: .4byte 0xf7ffffff
+_0801ACD0: .4byte gStatusConditionString_SleepJpn
+_0801ACD4: .4byte gStatusConditionString_ParalysisJpn
+_0801ACD8: .4byte gStatusConditionString_BurnJpn
+_0801ACDC: .4byte gStatusConditionString_IceJpn
+_0801ACE0: .4byte gStatusConditionString_ConfusionJpn
+_0801ACE4: .4byte gBattleCommunication
+_0801ACE8:
+ ldr r1, _0801AD18 @ =gBattleCommunication
+ movs r0, 0x1
+_0801ACEC:
+ strb r0, [r1, 0x5]
+ ldr r2, _0801AD1C @ =gBattleMons
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ movs r1, 0
+ str r1, [r0]
+ adds r2, 0x50
+ adds r3, r2
+ ldr r0, [r3]
+ subs r1, 0x8
+ ands r0, r1
+ str r0, [r3]
+ ldr r0, _0801AD20 @ =gUnknown_081D9A44
+_0801AD0E:
+ bl b_call_bc_move_exec
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AD18: .4byte gBattleCommunication
+_0801AD1C: .4byte gBattleMons
+_0801AD20: .4byte gUnknown_081D9A44
+_0801AD24:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x50
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r2
+ cmp r0, 0
+ beq _0801AD5A
+ ldr r0, _0801AD84 @ =0xfff0ffff
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AD88 @ =gBattleTextBuff1
+ ldr r1, _0801AD8C @ =gStatusConditionString_LoveJpn
+ bl StringCopy
+ ldr r0, _0801AD90 @ =gUnknown_081D9A44
+ bl b_call_bc_move_exec
+ ldr r1, _0801AD94 @ =gBattleCommunication
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+_0801AD5A:
+ ldr r1, [sp, 0xC]
+ cmp r1, 0
+ bne _0801AD62
+ b _0801B3CA
+_0801AD62:
+ ldr r0, _0801AD98 @ =0x02000000
+ ldr r2, _0801AD9C @ =0x00016003
+ adds r0, r2
+ strb r7, [r0]
+ ldr r0, _0801ADA0 @ =gStringBank
+ strb r7, [r0]
+ ldr r4, _0801ADA4 @ =gActiveBank
+ ldr r0, _0801ADA8 @ =gBankAttacker
+ strb r7, [r0]
+ strb r7, [r4]
+ ldr r3, [sp, 0xC]
+ cmp r3, 0x1
+ beq _0801ADAC
+ cmp r3, 0x3
+ beq _0801ADB2
+ b _0801B3CA
+ .align 2, 0
+_0801AD84: .4byte 0xfff0ffff
+_0801AD88: .4byte gBattleTextBuff1
+_0801AD8C: .4byte gStatusConditionString_LoveJpn
+_0801AD90: .4byte gUnknown_081D9A44
+_0801AD94: .4byte gBattleCommunication
+_0801AD98: .4byte 0x02000000
+_0801AD9C: .4byte 0x00016003
+_0801ADA0: .4byte gStringBank
+_0801ADA4: .4byte gActiveBank
+_0801ADA8: .4byte gBankAttacker
+_0801ADAC:
+ movs r0, 0x58
+ muls r0, r7
+ b _0801B224
+_0801ADB2:
+ ldr r4, _0801AE00 @ =gBattleMons
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ beq _0801ADCE
+ b _0801B3CA
+_0801ADCE:
+ ldr r1, _0801AE04 @ =gDisableStructs
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0801AE08 @ =gBitTable
+ mov r5, r10
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801ADEE
+ b _0801B3CA
+_0801ADEE:
+ adds r1, r5, r3
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r1, r0
+ add r0, sp, 0x4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _0801B3CA
+ .align 2, 0
+_0801AE00: .4byte gBattleMons
+_0801AE04: .4byte gDisableStructs
+_0801AE08: .4byte gBitTable
+_0801AE0C:
+ movs r7, 0
+ ldr r0, _0801AE3C @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _0801AE18
+ b _0801B3CA
+_0801AE18:
+ ldr r4, _0801AE40 @ =gLastUsedItem
+ ldr r1, _0801AE44 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0801AE4C
+ ldr r1, _0801AE48 @ =gEnigmaBerries
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x7]
+ b _0801AE5C
+ .align 2, 0
+_0801AE3C: .4byte gNoOfAllBanks
+_0801AE40: .4byte gLastUsedItem
+_0801AE44: .4byte gBattleMons
+_0801AE48: .4byte gEnigmaBerries
+_0801AE4C:
+ ldrh r0, [r4]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4]
+ bl ItemId_GetHoldEffectParam
+_0801AE5C:
+ subs r0, r5, 0x2
+ cmp r0, 0x1A
+ bls _0801AE64
+ b _0801B208
+_0801AE64:
+ lsls r0, 2
+ ldr r1, _0801AE70 @ =_0801AE74
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801AE70: .4byte _0801AE74
+ .align 2, 0
+_0801AE74:
+ .4byte _0801AEE0
+ .4byte _0801AFC8
+ .4byte _0801AF1C
+ .4byte _0801AF58
+ .4byte _0801AF94
+ .4byte _0801B208
+ .4byte _0801B018
+ .4byte _0801B0AC
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B1A0
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B054
+_0801AEE0:
+ ldr r1, _0801AF10 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AEF6
+ b _0801B208
+_0801AEF6:
+ movs r0, 0x41
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801AF14 @ =gBattlescriptCurrInstr
+ ldr r0, _0801AF18 @ =gUnknown_081D99BC
+ str r0, [r1]
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801AF10: .4byte gBattleMons
+_0801AF14: .4byte gBattlescriptCurrInstr
+_0801AF18: .4byte gUnknown_081D99BC
+_0801AF1C:
+ ldr r1, _0801AF48 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AF32
+ b _0801B208
+_0801AF32:
+ ldr r0, _0801AF4C @ =0xfffff077
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801AF50 @ =gBattlescriptCurrInstr
+ ldr r0, _0801AF54 @ =gUnknown_081D99D4
+ str r0, [r1]
+ movs r1, 0x1
+ str r1, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801AF48: .4byte gBattleMons
+_0801AF4C: .4byte 0xfffff077
+_0801AF50: .4byte gBattlescriptCurrInstr
+_0801AF54: .4byte gUnknown_081D99D4
+_0801AF58:
+ ldr r1, _0801AF88 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AF6E
+ b _0801B208
+_0801AF6E:
+ movs r0, 0x11
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801AF8C @ =gBattlescriptCurrInstr
+ ldr r0, _0801AF90 @ =gUnknown_081D99EC
+ str r0, [r1]
+ movs r2, 0x1
+ str r2, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801AF88: .4byte gBattleMons
+_0801AF8C: .4byte gBattlescriptCurrInstr
+_0801AF90: .4byte gUnknown_081D99EC
+_0801AF94:
+ ldr r1, _0801AFBC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AFAA
+ b _0801B208
+_0801AFAA:
+ movs r0, 0x21
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801AFC0 @ =gBattlescriptCurrInstr
+ ldr r0, _0801AFC4 @ =gUnknown_081D9A04
+ b _0801B168
+ .align 2, 0
+_0801AFBC: .4byte gBattleMons
+_0801AFC0: .4byte gBattlescriptCurrInstr
+_0801AFC4: .4byte gUnknown_081D9A04
+_0801AFC8:
+ ldr r2, _0801B008 @ =gBattleMons
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r3, r4, r0
+ ldr r1, [r3]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AFE2
+ b _0801B208
+_0801AFE2:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r3]
+ adds r2, 0x50
+ adds r2, r4, r2
+ ldr r0, [r2]
+ ldr r1, _0801B00C @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B010 @ =gBattlescriptCurrInstr
+ ldr r0, _0801B014 @ =gUnknown_081D9A1C
+ str r0, [r1]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801B008: .4byte gBattleMons
+_0801B00C: .4byte 0xf7ffffff
+_0801B010: .4byte gBattlescriptCurrInstr
+_0801B014: .4byte gUnknown_081D9A1C
+_0801B018:
+ ldr r1, _0801B048 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B02E
+ b _0801B208
+_0801B02E:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B04C @ =gBattlescriptCurrInstr
+ ldr r0, _0801B050 @ =gUnknown_081D9A34
+ str r0, [r1]
+ movs r5, 0x2
+ str r5, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801B048: .4byte gBattleMons
+_0801B04C: .4byte gBattlescriptCurrInstr
+_0801B050: .4byte gUnknown_081D9A34
+_0801B054:
+ ldr r1, _0801B090 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B06C
+ b _0801B208
+_0801B06C:
+ ldr r0, _0801B094 @ =0xfff0ffff
+ ands r1, r0
+ str r1, [r2]
+ ldr r0, _0801B098 @ =gBattleTextBuff1
+ ldr r1, _0801B09C @ =gStatusConditionString_LoveJpn
+ bl StringCopy
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B0A0 @ =gBattleCommunication
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ ldr r1, _0801B0A4 @ =gBattlescriptCurrInstr
+ ldr r0, _0801B0A8 @ =gUnknown_081D9A4A
+ str r0, [r1]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801B090: .4byte gBattleMons
+_0801B094: .4byte 0xfff0ffff
+_0801B098: .4byte gBattleTextBuff1
+_0801B09C: .4byte gStatusConditionString_LoveJpn
+_0801B0A0: .4byte gBattleCommunication
+_0801B0A4: .4byte gBattlescriptCurrInstr
+_0801B0A8: .4byte gUnknown_081D9A4A
+_0801B0AC:
+ ldr r4, _0801B170 @ =gBattleMons
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ adds r0, r4, 0
+ adds r0, 0x4C
+ adds r6, r5, r0
+ ldr r2, [r6]
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _0801B0D4
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B0D4
+ b _0801B208
+_0801B0D4:
+ movs r0, 0x88
+ ands r2, r0
+ cmp r2, 0
+ beq _0801B0E4
+ ldr r0, _0801B174 @ =gBattleTextBuff1
+ ldr r1, _0801B178 @ =gStatusConditionString_PoisonJpn
+ bl StringCopy
+_0801B0E4:
+ ldr r0, [r6]
+ movs r1, 0x7
+ mov r8, r1
+ ands r0, r1
+ adds r4, 0x50
+ cmp r0, 0
+ beq _0801B104
+ adds r2, r5, r4
+ ldr r0, [r2]
+ ldr r1, _0801B17C @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _0801B174 @ =gBattleTextBuff1
+ ldr r1, _0801B180 @ =gStatusConditionString_SleepJpn
+ bl StringCopy
+_0801B104:
+ ldr r0, [r6]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B116
+ ldr r0, _0801B174 @ =gBattleTextBuff1
+ ldr r1, _0801B184 @ =gStatusConditionString_ParalysisJpn
+ bl StringCopy
+_0801B116:
+ ldr r0, [r6]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B128
+ ldr r0, _0801B174 @ =gBattleTextBuff1
+ ldr r1, _0801B188 @ =gStatusConditionString_BurnJpn
+ bl StringCopy
+_0801B128:
+ ldr r0, [r6]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B13A
+ ldr r0, _0801B174 @ =gBattleTextBuff1
+ ldr r1, _0801B18C @ =gStatusConditionString_IceJpn
+ bl StringCopy
+_0801B13A:
+ adds r5, r4
+ ldr r0, [r5]
+ mov r2, r8
+ ands r0, r2
+ cmp r0, 0
+ beq _0801B14E
+ ldr r0, _0801B174 @ =gBattleTextBuff1
+ ldr r1, _0801B190 @ =gStatusConditionString_ConfusionJpn
+ bl StringCopy
+_0801B14E:
+ movs r4, 0
+ str r4, [r6]
+ ldr r0, [r5]
+ movs r1, 0x8
+ negs r1, r1
+ ands r0, r1
+ str r0, [r5]
+ bl b_movescr_stack_push_cursor
+ ldr r0, _0801B194 @ =gBattleCommunication
+ strb r4, [r0, 0x5]
+ ldr r1, _0801B198 @ =gBattlescriptCurrInstr
+ ldr r0, _0801B19C @ =gUnknown_081D9A4A
+_0801B168:
+ str r0, [r1]
+ movs r3, 0x1
+ str r3, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801B170: .4byte gBattleMons
+_0801B174: .4byte gBattleTextBuff1
+_0801B178: .4byte gStatusConditionString_PoisonJpn
+_0801B17C: .4byte 0xf7ffffff
+_0801B180: .4byte gStatusConditionString_SleepJpn
+_0801B184: .4byte gStatusConditionString_ParalysisJpn
+_0801B188: .4byte gStatusConditionString_BurnJpn
+_0801B18C: .4byte gStatusConditionString_IceJpn
+_0801B190: .4byte gStatusConditionString_ConfusionJpn
+_0801B194: .4byte gBattleCommunication
+_0801B198: .4byte gBattlescriptCurrInstr
+_0801B19C: .4byte gUnknown_081D9A4A
+_0801B1A0:
+ ldr r4, _0801B1F0 @ =gBattleMons
+ mov r8, r4
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x18
+ adds r1, r0
+ movs r2, 0x6
+ movs r5, 0x7
+ mov r10, r5
+_0801B1B6:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0801B1C4
+ strb r2, [r1]
+ movs r0, 0x5
+ str r0, [sp, 0xC]
+_0801B1C4:
+ adds r1, 0x1
+ movs r3, 0x1
+ negs r3, r3
+ add r10, r3
+ mov r4, r10
+ cmp r4, 0
+ bge _0801B1B6
+ ldr r5, [sp, 0xC]
+ cmp r5, 0
+ beq _0801B254
+ ldr r0, _0801B1F4 @ =0x02000000
+ ldr r1, _0801B1F8 @ =0x00016003
+ adds r0, r1
+ strb r7, [r0]
+ ldr r0, _0801B1FC @ =gStringBank
+ strb r7, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B200 @ =gBattlescriptCurrInstr
+ ldr r0, _0801B204 @ =gUnknown_081D9A64
+ str r0, [r1]
+ b _0801B3CA
+ .align 2, 0
+_0801B1F0: .4byte gBattleMons
+_0801B1F4: .4byte 0x02000000
+_0801B1F8: .4byte 0x00016003
+_0801B1FC: .4byte gStringBank
+_0801B200: .4byte gBattlescriptCurrInstr
+_0801B204: .4byte gUnknown_081D9A64
+_0801B208:
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ beq _0801B254
+_0801B20E:
+ ldr r0, _0801B240 @ =0x02000000
+ ldr r3, _0801B244 @ =0x00016003
+ adds r0, r3
+ strb r7, [r0]
+ ldr r0, _0801B248 @ =gStringBank
+ strb r7, [r0]
+ ldr r4, _0801B24C @ =gActiveBank
+ strb r7, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+_0801B224:
+ ldr r1, _0801B250 @ =gUnknown_02024ACC
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ b _0801B3CA
+ .align 2, 0
+_0801B240: .4byte 0x02000000
+_0801B244: .4byte 0x00016003
+_0801B248: .4byte gStringBank
+_0801B24C: .4byte gActiveBank
+_0801B250: .4byte gUnknown_02024ACC
+_0801B254:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0801B268 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _0801B264
+ b _0801AE18
+_0801B264:
+ b _0801B3CA
+ .align 2, 0
+_0801B268: .4byte gNoOfAllBanks
+_0801B26C:
+ ldr r7, _0801B284 @ =gBattleMoveDamage
+ ldr r0, [r7]
+ cmp r0, 0
+ bne _0801B276
+ b _0801B3CA
+_0801B276:
+ mov r4, r8
+ cmp r4, 0x1E
+ beq _0801B288
+ cmp r4, 0x3E
+ beq _0801B330
+ b _0801B3CA
+ .align 2, 0
+_0801B284: .4byte gBattleMoveDamage
+_0801B288:
+ ldr r0, _0801B314 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B296
+ b _0801B3CA
+_0801B296:
+ ldr r2, _0801B318 @ =gSpecialStatuses
+ ldr r4, _0801B31C @ =gBankTarget
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801B2BC
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801B2BC
+ b _0801B3CA
+_0801B2BC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r9
+ bcs _0801B3CA
+ ldr r2, _0801B320 @ =gBattleMoves
+ ldr r0, _0801B324 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B3CA
+ ldr r2, _0801B328 @ =gBattleMons
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801B3CA
+ ldr r1, _0801B32C @ =gBattleCommunication
+ movs r0, 0x8
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ movs r0, 0
+ movs r1, 0
+ bl sub_801E3EC
+ bl b_movescr_stack_pop_cursor
+ b _0801B3CA
+ .align 2, 0
+_0801B314: .4byte gBattleMoveFlags
+_0801B318: .4byte gSpecialStatuses
+_0801B31C: .4byte gBankTarget
+_0801B320: .4byte gBattleMoves
+_0801B324: .4byte gCurrentMove
+_0801B328: .4byte gBattleMons
+_0801B32C: .4byte gBattleCommunication
+_0801B330:
+ ldr r0, _0801B3DC @ =gBattleMoveFlags
+ ldrb r0, [r0]
+ movs r4, 0x29
+ ands r4, r0
+ cmp r4, 0
+ bne _0801B3CA
+ ldr r1, _0801B3E0 @ =gSpecialStatuses
+ ldr r5, _0801B3E4 @ =gBankTarget
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 2
+ adds r6, r1, 0x4
+ adds r0, r6
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _0801B3CA
+ ldr r0, _0801B3E8 @ =0x0000ffff
+ cmp r1, r0
+ beq _0801B3CA
+ ldr r0, _0801B3EC @ =gBankAttacker
+ ldrb r3, [r0]
+ cmp r3, r2
+ beq _0801B3CA
+ ldr r2, _0801B3F0 @ =gBattleMons
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ beq _0801B3CA
+ cmp r1, 0
+ beq _0801B3CA
+ ldr r0, _0801B3F4 @ =gLastUsedItem
+ mov r1, sp
+ ldrh r1, [r1, 0x14]
+ strh r1, [r0]
+ ldr r0, _0801B3F8 @ =gStringBank
+ strb r3, [r0]
+ ldr r0, _0801B3FC @ =0x02000000
+ ldr r2, _0801B400 @ =0x00016003
+ adds r0, r2
+ strb r3, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldr r1, [sp, 0x10]
+ bl __divsi3
+ negs r0, r0
+ str r0, [r7]
+ ldrb r1, [r5]
+ cmp r0, 0
+ bne _0801B3AC
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r7]
+_0801B3AC:
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ str r4, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B404 @ =gBattlescriptCurrInstr
+ ldr r0, _0801B408 @ =gUnknown_081D9AA7
+ str r0, [r1]
+ ldr r0, [sp, 0xC]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+_0801B3CA:
+ ldr r0, [sp, 0xC]
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801B3DC: .4byte gBattleMoveFlags
+_0801B3E0: .4byte gSpecialStatuses
+_0801B3E4: .4byte gBankTarget
+_0801B3E8: .4byte 0x0000ffff
+_0801B3EC: .4byte gBankAttacker
+_0801B3F0: .4byte gBattleMons
+_0801B3F4: .4byte gLastUsedItem
+_0801B3F8: .4byte gStringBank
+_0801B3FC: .4byte 0x02000000
+_0801B400: .4byte 0x00016003
+_0801B404: .4byte gBattlescriptCurrInstr
+_0801B408: .4byte gUnknown_081D9AA7
+ thumb_func_end sub_801A02C
+
+ thumb_func_start unref_sub_801B40C
+unref_sub_801B40C: @ 801B40C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0801B464 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B42A
+ b _0801B56E
+_0801B42A:
+ movs r1, 0x1
+ mov r9, r1
+_0801B42E:
+ movs r5, 0
+ ldr r4, _0801B468 @ =gUnknown_081FC1D0
+ ldr r2, [sp]
+ adds r2, 0x1
+ str r2, [sp, 0x4]
+_0801B438:
+ ldr r0, _0801B46C @ =gAbsentBankFlags
+ ldrb r2, [r0]
+ ldr r3, _0801B470 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ bne _0801B45A
+ adds r0, r5, 0x2
+ lsls r1, r0, 2
+ adds r1, r3
+ ldr r1, [r1]
+ ands r2, r1
+ adds r7, r0, 0
+ cmp r2, 0
+ beq _0801B474
+_0801B45A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0801B556
+ .align 2, 0
+_0801B464: .4byte gBattleTypeFlags
+_0801B468: .4byte gUnknown_081FC1D0
+_0801B46C: .4byte gAbsentBankFlags
+_0801B470: .4byte gBitTable
+_0801B474:
+ ldr r0, _0801B580 @ =gUnknown_081FC1D0
+ ldr r2, [sp]
+ lsls r1, r2, 3
+ adds r6, r1, r0
+ ldr r4, _0801B584 @ =gChosenMovesByBanks
+ lsls r0, r5, 1
+ adds r3, r0, r4
+ ldrh r2, [r6]
+ mov r8, r1
+ mov r10, r0
+ ldrh r3, [r3]
+ cmp r2, r3
+ bne _0801B4E4
+ lsls r0, r7, 1
+ adds r0, r4
+ ldrh r1, [r6, 0x2]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0801B4E4
+ adds r0, r5, 0
+ bl GetBankIdentity
+ mov r2, r9
+ ands r2, r0
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ ldr r0, _0801B588 @ =gSideTimer
+ adds r1, r0
+ lsls r0, r7, 4
+ orrs r0, r5
+ strb r0, [r1, 0x3]
+ adds r0, r5, 0
+ bl GetBankIdentity
+ mov r1, r9
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0801B588 @ =gSideTimer
+ adds r0, r1
+ ldrh r1, [r6, 0x4]
+ strh r1, [r0, 0x4]
+ adds r0, r5, 0
+ bl GetBankIdentity
+ mov r1, r9
+ ands r1, r0
+ lsls r1, 1
+ ldr r2, _0801B58C @ =gSideAffecting
+ adds r1, r2
+ ldrh r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strh r0, [r1]
+_0801B4E4:
+ ldr r0, _0801B580 @ =gUnknown_081FC1D0
+ mov r1, r8
+ adds r4, r1, r0
+ ldr r2, _0801B584 @ =gChosenMovesByBanks
+ lsls r0, r7, 1
+ adds r0, r2
+ ldrh r1, [r4]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0801B54E
+ mov r0, r10
+ adds r1, r0, r2
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _0801B54E
+ adds r0, r5, 0
+ bl GetBankIdentity
+ mov r2, r9
+ ands r2, r0
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _0801B588 @ =gSideTimer
+ adds r1, r2
+ lsls r0, r5, 4
+ orrs r0, r7
+ strb r0, [r1, 0x3]
+ adds r0, r5, 0
+ bl GetBankIdentity
+ mov r1, r9
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0801B588 @ =gSideTimer
+ adds r0, r1
+ ldrh r1, [r4, 0x4]
+ strh r1, [r0, 0x4]
+ adds r0, r5, 0
+ bl GetBankIdentity
+ mov r1, r9
+ ands r1, r0
+ lsls r1, 1
+ ldr r2, _0801B58C @ =gSideAffecting
+ adds r1, r2
+ ldrh r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strh r0, [r1]
+_0801B54E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _0801B580 @ =gUnknown_081FC1D0
+_0801B556:
+ cmp r5, 0x1
+ bhi _0801B55C
+ b _0801B438
+_0801B55C:
+ ldr r0, [sp, 0x4]
+ str r0, [sp]
+ lsls r0, 3
+ adds r0, r4
+ ldrh r1, [r0]
+ ldr r0, _0801B590 @ =0x0000ffff
+ cmp r1, r0
+ beq _0801B56E
+ b _0801B42E
+_0801B56E:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B580: .4byte gUnknown_081FC1D0
+_0801B584: .4byte gChosenMovesByBanks
+_0801B588: .4byte gSideTimer
+_0801B58C: .4byte gSideAffecting
+_0801B590: .4byte 0x0000ffff
+ thumb_func_end unref_sub_801B40C
+
+ thumb_func_start sub_801B594
+sub_801B594: @ 801B594
+ push {lr}
+ ldr r0, _0801B5B4 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801B5B0
+ ldr r1, _0801B5B8 @ =gBattleScriptingCommandsTable
+ ldr r0, _0801B5BC @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_0801B5B0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B5B4: .4byte gBattleExecBuffer
+_0801B5B8: .4byte gBattleScriptingCommandsTable
+_0801B5BC: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_801B594
+
+ thumb_func_start sub_801B5C0
+sub_801B5C0: @ 801B5C0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r1, 24
+ lsrs r0, r1, 24
+ movs r5, 0
+ cmp r0, 0
+ beq _0801B5DE
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _0801B5EA
+_0801B5DE:
+ ldr r1, _0801B5FC @ =gBattleMoves
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x6]
+_0801B5EA:
+ cmp r6, 0x40
+ bls _0801B5F0
+ b _0801B900
+_0801B5F0:
+ lsls r0, r6, 2
+ ldr r1, _0801B600 @ =_0801B604
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801B5FC: .4byte gBattleMoves
+_0801B600: .4byte _0801B604
+ .align 2, 0
+_0801B604:
+ .4byte _0801B708
+ .4byte _0801B808
+ .4byte _0801B8FC
+ .4byte _0801B900
+ .4byte _0801B820
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B808
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B8FC
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B808
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B808
+_0801B708:
+ ldr r0, _0801B7E8 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0801B7EC @ =gSideTimer
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _0801B73A
+ ldr r1, _0801B7F0 @ =gBattleMons
+ ldrb r4, [r2, 0x9]
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801B73A
+ b _0801B850
+_0801B73A:
+ ldr r0, _0801B7E8 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r7, 1
+ mov r8, r0
+_0801B74A:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0801B7F4 @ =gNoOfAllBanks
+ ldrb r1, [r1]
+ bl __modsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0801B7E8 @ =gBankAttacker
+ ldrb r2, [r6]
+ cmp r5, r2
+ beq _0801B74A
+ adds r0, r5, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _0801B74A
+ ldr r0, _0801B7F8 @ =gAbsentBankFlags
+ ldrb r2, [r0]
+ ldr r1, _0801B7FC @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _0801B74A
+ ldr r0, _0801B800 @ =gBattleMoves
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xD
+ beq _0801B798
+ b _0801B900
+_0801B798:
+ ldrb r1, [r6]
+ str r2, [sp]
+ movs r0, 0x10
+ movs r2, 0x1F
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801B7AE
+ b _0801B900
+_0801B7AE:
+ ldr r2, _0801B7F0 @ =gBattleMons
+ movs r1, 0x58
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1F
+ bne _0801B7C2
+ b _0801B900
+_0801B7C2:
+ movs r4, 0x2
+ eors r5, r4
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_81074C4
+ ldr r1, _0801B804 @ =gSpecialStatuses
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ orrs r1, r4
+ strb r1, [r0]
+ b _0801B900
+ .align 2, 0
+_0801B7E8: .4byte gBankAttacker
+_0801B7EC: .4byte gSideTimer
+_0801B7F0: .4byte gBattleMons
+_0801B7F4: .4byte gNoOfAllBanks
+_0801B7F8: .4byte gAbsentBankFlags
+_0801B7FC: .4byte gBitTable
+_0801B800: .4byte gBattleMoves
+_0801B804: .4byte gSpecialStatuses
+_0801B808:
+ ldr r0, _0801B81C @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ b _0801B8B2
+ .align 2, 0
+_0801B81C: .4byte gBankAttacker
+_0801B820:
+ ldr r0, _0801B854 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0801B858 @ =gSideTimer
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _0801B860
+ ldr r1, _0801B85C @ =gBattleMons
+ ldrb r4, [r2, 0x9]
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801B860
+_0801B850:
+ adds r5, r4, 0
+ b _0801B900
+ .align 2, 0
+_0801B854: .4byte gBankAttacker
+_0801B858: .4byte gSideTimer
+_0801B85C: .4byte gBattleMons
+_0801B860:
+ ldr r0, _0801B894 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B8DC
+ movs r0, 0x4
+ ands r6, r0
+ cmp r6, 0
+ beq _0801B8DC
+ ldr r0, _0801B898 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801B8A0
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _0801B89C
+ movs r0, 0x1
+ b _0801B8B2
+ .align 2, 0
+_0801B894: .4byte gBattleTypeFlags
+_0801B898: .4byte gBankAttacker
+_0801B89C:
+ movs r0, 0x3
+ b _0801B8B2
+_0801B8A0:
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _0801B8B0
+ movs r0, 0
+ b _0801B8B2
+_0801B8B0:
+ movs r0, 0x2
+_0801B8B2:
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0801B8D4 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _0801B8D8 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801B900
+ movs r0, 0x2
+ eors r5, r0
+ b _0801B900
+ .align 2, 0
+_0801B8D4: .4byte gAbsentBankFlags
+_0801B8D8: .4byte gBitTable
+_0801B8DC:
+ ldr r0, _0801B8F8 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0801B900
+ .align 2, 0
+_0801B8F8: .4byte gBankAttacker
+_0801B8FC:
+ ldr r0, _0801B91C @ =gBankAttacker
+ ldrb r5, [r0]
+_0801B900:
+ ldr r1, _0801B920 @ =0x02000000
+ ldr r0, _0801B91C @ =gBankAttacker
+ ldrb r0, [r0]
+ ldr r2, _0801B924 @ =0x00016010
+ adds r0, r2
+ adds r0, r1
+ strb r5, [r0]
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801B91C: .4byte gBankAttacker
+_0801B920: .4byte 0x02000000
+_0801B924: .4byte 0x00016010
+ thumb_func_end sub_801B5C0
+
+ thumb_func_start sub_801B928
+sub_801B928: @ 801B928
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ ldr r0, _0801B9E0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B9DA
+ ldr r7, _0801B9E4 @ =gBankAttacker
+ ldrb r0, [r7]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0801B9DA
+ ldr r5, _0801B9E8 @ =gBattleMons
+ ldrb r0, [r7]
+ movs r1, 0x58
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r5, 0
+ adds r0, 0x54
+ adds r0, r1, r0
+ ldr r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x3C
+ adds r1, r2
+ bl IsOtherTrainer
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B9DA
+ ldr r0, _0801B9EC @ =0x0000080e
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801B9DA
+ movs r6, 0xA
+ ldr r0, _0801B9F0 @ =0x00000808
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B98E
+ movs r6, 0x1E
+_0801B98E:
+ ldr r0, _0801B9F4 @ =0x0000080a
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B99C
+ movs r6, 0x32
+_0801B99C:
+ ldr r0, _0801B9F8 @ =0x0000080c
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B9AA
+ movs r6, 0x46
+_0801B9AA:
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r5
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ cmp r0, r6
+ bls _0801B9DA
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, r5
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ adds r0, r6
+ muls r0, r1
+ asrs r4, r0, 8
+ cmp r4, r6
+ bge _0801B9FC
+_0801B9DA:
+ movs r0, 0
+ b _0801BC24
+ .align 2, 0
+_0801B9E0: .4byte gBattleTypeFlags
+_0801B9E4: .4byte gBankAttacker
+_0801B9E8: .4byte gBattleMons
+_0801B9EC: .4byte 0x0000080e
+_0801B9F0: .4byte 0x00000808
+_0801B9F4: .4byte 0x0000080a
+_0801B9F8: .4byte 0x0000080c
+_0801B9FC:
+ ldr r3, _0801BA3C @ =gCurrentMove
+ ldrh r0, [r3]
+ cmp r0, 0x63
+ bne _0801BA12
+ adds r0, r5, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r2, _0801BA40 @ =0xff7fffff
+ ands r1, r2
+ str r1, [r0]
+_0801BA12:
+ ldrb r0, [r7]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r5, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801BA4C
+ ldrh r0, [r3]
+ cmp r0, 0xAD
+ beq _0801BA34
+ cmp r0, 0xD6
+ bne _0801BA4C
+_0801BA34:
+ ldr r1, _0801BA44 @ =gBattlescriptCurrInstr
+ ldr r0, _0801BA48 @ =gUnknown_081D995F
+ b _0801BBCE
+ .align 2, 0
+_0801BA3C: .4byte gCurrentMove
+_0801BA40: .4byte 0xff7fffff
+_0801BA44: .4byte gBattlescriptCurrInstr
+_0801BA48: .4byte gUnknown_081D995F
+_0801BA4C:
+ bl Random
+ movs r5, 0xFF
+ adds r1, r5, 0
+ ands r1, r0
+ ldr r7, _0801BB04 @ =gBattleMons
+ ldr r2, _0801BB08 @ =gBankAttacker
+ mov r9, r2
+ ldrb r3, [r2]
+ movs r0, 0x58
+ mov r8, r0
+ mov r0, r8
+ muls r0, r3
+ adds r0, r7
+ adds r0, 0x2A
+ ldrb r2, [r0]
+ adds r0, r2, r6
+ muls r0, r1
+ asrs r4, r0, 8
+ cmp r4, r6
+ bge _0801BB3C
+ ldr r7, _0801BB0C @ =gBitTable
+ ldr r5, _0801BB10 @ =gCurrMovePos
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r7
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ movs r2, 0xFF
+ bl sub_8015A98
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bne _0801BA94
+ b _0801BBBE
+_0801BA94:
+ adds r6, r5, 0
+ ldr r1, _0801BB14 @ =gUnknown_02024BE5
+ mov r9, r1
+ movs r2, 0x3
+ mov r8, r2
+_0801BA9E:
+ bl Random
+ mov r1, r8
+ ands r0, r1
+ mov r2, r9
+ strb r0, [r2]
+ strb r0, [r6]
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r7
+ ldr r5, [r0]
+ ands r5, r4
+ cmp r5, 0
+ bne _0801BA9E
+ ldr r4, _0801BB18 @ =gUnknown_02024BEA
+ ldr r3, _0801BB04 @ =gBattleMons
+ ldr r0, _0801BB10 @ =gCurrMovePos
+ ldrb r0, [r0]
+ lsls r0, 1
+ ldr r1, _0801BB08 @ =gBankAttacker
+ ldrb r2, [r1]
+ movs r1, 0x58
+ muls r1, r2
+ adds r0, r1
+ adds r3, 0xC
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldr r0, _0801BB1C @ =gBattleCommunication
+ strb r5, [r0, 0x3]
+ ldr r0, _0801BB20 @ =gDynamicBasePower
+ movs r1, 0
+ strh r5, [r0]
+ ldr r0, _0801BB24 @ =0x02000000
+ ldr r2, _0801BB28 @ =0x0001601c
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, _0801BB2C @ =gBattlescriptCurrInstr
+ ldr r0, _0801BB30 @ =gUnknown_081D996F
+ str r0, [r1]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _0801BB34 @ =gBankTarget
+ strb r0, [r1]
+ ldr r2, _0801BB38 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 14
+ b _0801BC1E
+ .align 2, 0
+_0801BB04: .4byte gBattleMons
+_0801BB08: .4byte gBankAttacker
+_0801BB0C: .4byte gBitTable
+_0801BB10: .4byte gCurrMovePos
+_0801BB14: .4byte gUnknown_02024BE5
+_0801BB18: .4byte gUnknown_02024BEA
+_0801BB1C: .4byte gBattleCommunication
+_0801BB20: .4byte gDynamicBasePower
+_0801BB24: .4byte 0x02000000
+_0801BB28: .4byte 0x0001601c
+_0801BB2C: .4byte gBattlescriptCurrInstr
+_0801BB30: .4byte gUnknown_081D996F
+_0801BB34: .4byte gBankTarget
+_0801BB38: .4byte gHitMarker
+_0801BB3C:
+ subs r0, r2, r6
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl Random
+ adds r4, r5, 0
+ ands r4, r0
+ cmp r4, r6
+ bge _0801BBB8
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r7, 0
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ands r0, r5
+ cmp r0, 0
+ bne _0801BBB8
+ adds r0, r1, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x48
+ beq _0801BBB8
+ cmp r0, 0xF
+ beq _0801BBB8
+ movs r2, 0
+ ldr r0, _0801BBAC @ =gNoOfAllBanks
+ ldrb r3, [r0]
+ mov r8, r0
+ cmp r2, r3
+ bge _0801BB9E
+ ldr r0, [r7, 0x50]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BB9E
+ adds r1, r7, 0
+ adds r1, 0x50
+ movs r5, 0x70
+_0801BB8E:
+ adds r1, 0x58
+ adds r2, 0x1
+ cmp r2, r3
+ bge _0801BB9E
+ ldr r0, [r1]
+ ands r0, r5
+ cmp r0, 0
+ beq _0801BB8E
+_0801BB9E:
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _0801BBB8
+ ldr r1, _0801BBB0 @ =gBattlescriptCurrInstr
+ ldr r0, _0801BBB4 @ =gUnknown_081D9989
+ b _0801BBCE
+ .align 2, 0
+_0801BBAC: .4byte gNoOfAllBanks
+_0801BBB0: .4byte gBattlescriptCurrInstr
+_0801BBB4: .4byte gUnknown_081D9989
+_0801BBB8:
+ subs r4, r6
+ cmp r4, r6
+ blt _0801BBE0
+_0801BBBE:
+ bl Random
+ ldr r2, _0801BBD4 @ =gBattleCommunication
+ movs r1, 0x3
+ ands r1, r0
+ strb r1, [r2, 0x5]
+ ldr r1, _0801BBD8 @ =gBattlescriptCurrInstr
+ ldr r0, _0801BBDC @ =gUnknown_081D9977
+_0801BBCE:
+ str r0, [r1]
+ movs r0, 0x1
+ b _0801BC24
+ .align 2, 0
+_0801BBD4: .4byte gBattleCommunication
+_0801BBD8: .4byte gBattlescriptCurrInstr
+_0801BBDC: .4byte gUnknown_081D9977
+_0801BBE0:
+ ldr r4, _0801BC34 @ =gBankAttacker
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r1, r0
+ ldr r0, _0801BC38 @ =gBattleMons
+ adds r1, r0
+ movs r0, 0x28
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldrb r0, [r4]
+ str r0, [sp, 0x8]
+ ldrb r0, [r4]
+ str r0, [sp, 0xC]
+ adds r0, r1, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl CalculateBaseDamage
+ ldr r1, _0801BC3C @ =gBattleMoveDamage
+ str r0, [r1]
+ ldr r1, _0801BC40 @ =gBankTarget
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldr r1, _0801BC44 @ =gBattlescriptCurrInstr
+ ldr r0, _0801BC48 @ =gUnknown_081D99A0
+ str r0, [r1]
+ ldr r2, _0801BC4C @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+_0801BC1E:
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0x2
+_0801BC24:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801BC34: .4byte gBankAttacker
+_0801BC38: .4byte gBattleMons
+_0801BC3C: .4byte gBattleMoveDamage
+_0801BC40: .4byte gBankTarget
+_0801BC44: .4byte gBattlescriptCurrInstr
+_0801BC48: .4byte gUnknown_081D99A0
+_0801BC4C: .4byte gHitMarker
+ thumb_func_end sub_801B928
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_4.s b/asm/battle_4.s
new file mode 100644
index 000000000..5436d3e55
--- /dev/null
+++ b/asm/battle_4.s
@@ -0,0 +1,32351 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start atk00_attackcanceler
+atk00_attackcanceler: @ 801BC50
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r0, _0801BC6C @ =gBattleOutcome
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801BC74
+ ldr r1, _0801BC70 @ =gFightStateTracker
+ movs r0, 0xC
+ strb r0, [r1]
+ b _0801BFF4
+ .align 2, 0
+_0801BC6C: .4byte gBattleOutcome
+_0801BC70: .4byte gFightStateTracker
+_0801BC74:
+ ldr r2, _0801BCA4 @ =gBattleMons
+ ldr r0, _0801BCA8 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801BCB8
+ ldr r2, _0801BCAC @ =gHitMarker
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BCB8
+ movs r0, 0x80
+ lsls r0, 12
+ orrs r1, r0
+ str r1, [r2]
+ ldr r1, _0801BCB0 @ =gBattlescriptCurrInstr
+ ldr r0, _0801BCB4 @ =BattleScript_EndTurn
+ b _0801BFF2
+ .align 2, 0
+_0801BCA4: .4byte gBattleMons
+_0801BCA8: .4byte gBankAttacker
+_0801BCAC: .4byte gHitMarker
+_0801BCB0: .4byte gBattlescriptCurrInstr
+_0801BCB4: .4byte BattleScript_EndTurn
+_0801BCB8:
+ bl sub_8017718
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0801BCC6
+ b _0801BFF4
+_0801BCC6:
+ ldr r0, _0801BD34 @ =gBankTarget
+ ldrb r1, [r0]
+ str r2, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801BCDE
+ b _0801BFF4
+_0801BCDE:
+ ldr r4, _0801BD38 @ =gBattleMons
+ ldr r0, _0801BD3C @ =gCurrMovePos
+ ldrb r1, [r0]
+ ldr r3, _0801BD40 @ =gBankAttacker
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, r2
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r1, r0
+ ldrb r0, [r1]
+ ldr r5, _0801BD44 @ =gHitMarker
+ cmp r0, 0
+ bne _0801BD5C
+ ldr r0, _0801BD48 @ =gCurrentMove
+ ldrh r0, [r0]
+ cmp r0, 0xA5
+ beq _0801BD5C
+ ldr r0, [r5]
+ ldr r1, _0801BD4C @ =0x00800200
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BD5C
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BD5C
+ ldr r1, _0801BD50 @ =gBattlescriptCurrInstr
+ ldr r0, _0801BD54 @ =BattleScript_NoPPForMove
+ str r0, [r1]
+ ldr r2, _0801BD58 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ b _0801BFF4
+ .align 2, 0
+_0801BD34: .4byte gBankTarget
+_0801BD38: .4byte gBattleMons
+_0801BD3C: .4byte gCurrMovePos
+_0801BD40: .4byte gBankAttacker
+_0801BD44: .4byte gHitMarker
+_0801BD48: .4byte gCurrentMove
+_0801BD4C: .4byte 0x00800200
+_0801BD50: .4byte gBattlescriptCurrInstr
+_0801BD54: .4byte BattleScript_NoPPForMove
+_0801BD58: .4byte gBattleMoveFlags
+_0801BD5C:
+ ldr r0, [r5]
+ ldr r1, _0801BDA0 @ =0xff7fffff
+ ands r0, r1
+ str r0, [r5]
+ movs r6, 0x80
+ lsls r6, 18
+ ands r0, r6
+ cmp r0, 0
+ bne _0801BDB4
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r4, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BDB4
+ bl sub_801B928
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0801BDB4
+ cmp r2, 0x2
+ bne _0801BDA4
+ ldr r0, [r5]
+ orrs r0, r6
+ str r0, [r5]
+ b _0801BFF4
+ .align 2, 0
+_0801BDA0: .4byte 0xff7fffff
+_0801BDA4:
+ ldr r0, _0801BDB0 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _0801BFF4
+ .align 2, 0
+_0801BDB0: .4byte gBattleMoveFlags
+_0801BDB4:
+ ldr r2, _0801BE18 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 18
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _0801BE1C @ =gProtectStructs
+ ldr r1, _0801BE20 @ =gBankTarget
+ ldrb r3, [r1]
+ lsls r0, r3, 4
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 27
+ mov r8, r1
+ mov r9, r2
+ cmp r0, 0
+ bge _0801BE3C
+ ldr r2, _0801BE24 @ =gBattleMoves
+ ldr r0, _0801BE28 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801BE3C
+ ldr r0, _0801BE2C @ =gBankAttacker
+ ldrb r0, [r0]
+ ldr r2, _0801BE30 @ =0x00000115
+ adds r1, r3, 0
+ bl sub_80151D4
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r1, 4
+ add r1, r9
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801BE34 @ =gBattlescriptCurrInstr
+ ldr r0, _0801BE38 @ =BattleScript_MagicCoatBounce
+ b _0801BFF2
+ .align 2, 0
+_0801BE18: .4byte gHitMarker
+_0801BE1C: .4byte gProtectStructs
+_0801BE20: .4byte gBankTarget
+_0801BE24: .4byte gBattleMoves
+_0801BE28: .4byte gCurrentMove
+_0801BE2C: .4byte gBankAttacker
+_0801BE30: .4byte 0x00000115
+_0801BE34: .4byte gBattlescriptCurrInstr
+_0801BE38: .4byte BattleScript_MagicCoatBounce
+_0801BE3C:
+ movs r2, 0
+ ldr r0, _0801BEB8 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r2, r0
+ bge _0801BE7E
+ ldr r6, _0801BEBC @ =gProtectStructs
+ ldr r1, _0801BEC0 @ =gBattleMoves
+ mov r12, r1
+ adds r5, r0, 0
+ ldr r7, _0801BEC4 @ =gTurnOrder
+_0801BE50:
+ adds r4, r2, r7
+ ldrb r3, [r4]
+ lsls r0, r3, 4
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _0801BE78
+ ldr r0, _0801BEC8 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801BE78
+ b _0801BFA4
+_0801BE78:
+ adds r2, 0x1
+ cmp r2, r5
+ blt _0801BE50
+_0801BE7E:
+ ldr r0, _0801BECC @ =gSpecialStatuses
+ mov r1, r8
+ ldrb r2, [r1]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r3, [r1]
+ lsls r0, r3, 30
+ cmp r0, 0
+ bge _0801BEDC
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r4, _0801BED0 @ =gLastUsedAbility
+ movs r0, 0x1F
+ strb r0, [r4]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801BED4 @ =gBattlescriptCurrInstr
+ ldr r0, _0801BED8 @ =BattleScript_TookAttack
+ str r0, [r1]
+ mov r2, r8
+ ldrb r0, [r2]
+ ldrb r1, [r4]
+ bl sub_81074C4
+ b _0801BFF4
+ .align 2, 0
+_0801BEB8: .4byte gNoOfAllBanks
+_0801BEBC: .4byte gProtectStructs
+_0801BEC0: .4byte gBattleMoves
+_0801BEC4: .4byte gTurnOrder
+_0801BEC8: .4byte gCurrentMove
+_0801BECC: .4byte gSpecialStatuses
+_0801BED0: .4byte gLastUsedAbility
+_0801BED4: .4byte gBattlescriptCurrInstr
+_0801BED8: .4byte BattleScript_TookAttack
+_0801BEDC:
+ lsls r0, r2, 4
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0801BEEA
+ b _0801BFEC
+_0801BEEA:
+ ldr r1, _0801BF80 @ =gBattleMoves
+ ldr r2, _0801BF84 @ =gCurrentMove
+ ldrh r3, [r2]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x2
+ ands r0, r1
+ adds r4, r2, 0
+ cmp r0, 0
+ beq _0801BFEC
+ cmp r3, 0xAE
+ bne _0801BF28
+ ldr r2, _0801BF88 @ =gBattleMons
+ ldr r0, _0801BF8C @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _0801BF28
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _0801BFEC
+_0801BF28:
+ ldrh r0, [r4]
+ bl sub_8028350
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801BF4E
+ ldr r1, _0801BF88 @ =gBattleMons
+ ldr r0, _0801BF8C @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0801BFEC
+_0801BF4E:
+ ldr r0, _0801BF8C @ =gBankAttacker
+ ldrb r0, [r0]
+ bl CancelMultiTurnMoves
+ ldr r2, _0801BF90 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801BF94 @ =gMoveHitWith
+ ldr r3, _0801BF98 @ =gBankTarget
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0801BF9C @ =gUnknown_02024C44
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r1, _0801BFA0 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ b _0801BFEC
+ .align 2, 0
+_0801BF80: .4byte gBattleMoves
+_0801BF84: .4byte gCurrentMove
+_0801BF88: .4byte gBattleMons
+_0801BF8C: .4byte gBankAttacker
+_0801BF90: .4byte gBattleMoveFlags
+_0801BF94: .4byte gMoveHitWith
+_0801BF98: .4byte gBankTarget
+_0801BF9C: .4byte gUnknown_02024C44
+_0801BFA0: .4byte gBattleCommunication
+_0801BFA4:
+ ldr r0, _0801BFD4 @ =gBankAttacker
+ ldrb r0, [r0]
+ ldr r2, _0801BFD8 @ =0x00000121
+ adds r1, r3, 0
+ bl sub_80151D4
+ ldrb r1, [r4]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, _0801BFDC @ =0x02000000
+ ldrb r1, [r4]
+ ldr r2, _0801BFE0 @ =0x00016003
+ adds r0, r2
+ strb r1, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801BFE4 @ =gBattlescriptCurrInstr
+ ldr r0, _0801BFE8 @ =BattleScript_SnatchedMove
+ b _0801BFF2
+ .align 2, 0
+_0801BFD4: .4byte gBankAttacker
+_0801BFD8: .4byte 0x00000121
+_0801BFDC: .4byte 0x02000000
+_0801BFE0: .4byte 0x00016003
+_0801BFE4: .4byte gBattlescriptCurrInstr
+_0801BFE8: .4byte BattleScript_SnatchedMove
+_0801BFEC:
+ ldr r1, _0801C004 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+_0801BFF2:
+ str r0, [r1]
+_0801BFF4:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C004: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk00_attackcanceler
+
+ thumb_func_start mcmd_jump_if_move_not_executed
+mcmd_jump_if_move_not_executed: @ 801C008
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r1, _0801C054 @ =gBattlescriptCurrInstr
+ ldr r5, [r1]
+ adds r4, r5, r0
+ ldr r0, _0801C058 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C068
+ ldr r1, _0801C05C @ =gMoveHitWith
+ ldr r3, _0801C060 @ =gBankTarget
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0801C064 @ =gUnknown_02024C44
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldrb r4, [r5, 0x1]
+ ldrb r0, [r5, 0x2]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r5, 0x3]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r5, 0x4]
+ lsls r0, 24
+ orrs r4, r0
+ b _0801C082
+ .align 2, 0
+_0801C054: .4byte gBattlescriptCurrInstr
+_0801C058: .4byte gBattleMoveFlags
+_0801C05C: .4byte gMoveHitWith
+_0801C060: .4byte gBankTarget
+_0801C064: .4byte gUnknown_02024C44
+_0801C068:
+ bl b_feature_update_destiny_bond
+ ldr r0, _0801C090 @ =gBankTarget
+ ldrb r1, [r0]
+ str r6, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C086
+_0801C082:
+ ldr r0, _0801C094 @ =gBattlescriptCurrInstr
+ str r4, [r0]
+_0801C086:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C090: .4byte gBankTarget
+_0801C094: .4byte gBattlescriptCurrInstr
+ thumb_func_end mcmd_jump_if_move_not_executed
+
+ thumb_func_start atk40_jump_if_move_affected_by_protect
+atk40_jump_if_move_affected_by_protect: @ 801C098
+ push {lr}
+ ldr r1, _0801C0E0 @ =gProtectStructs
+ ldr r0, _0801C0E4 @ =gBankTarget
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801C0F8
+ ldr r2, _0801C0E8 @ =gBattleMoves
+ ldr r0, _0801C0EC @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C0F8
+ ldr r2, _0801C0F0 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x5
+ movs r1, 0
+ bl mcmd_jump_if_move_not_executed
+ ldr r1, _0801C0F4 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ b _0801C100
+ .align 2, 0
+_0801C0E0: .4byte gProtectStructs
+_0801C0E4: .4byte gBankTarget
+_0801C0E8: .4byte gBattleMoves
+_0801C0EC: .4byte gCurrentMove
+_0801C0F0: .4byte gBattleMoveFlags
+_0801C0F4: .4byte gBattleCommunication
+_0801C0F8:
+ ldr r1, _0801C104 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0801C100:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C104: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk40_jump_if_move_affected_by_protect
+
+ thumb_func_start sub_801C108
+sub_801C108: @ 801C108
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r4, 0
+ ldr r1, _0801C15C @ =gProtectStructs
+ ldr r0, _0801C160 @ =gBankTarget
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801C154
+ ldr r2, _0801C164 @ =gBattleMoves
+ ldr r0, _0801C168 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C154
+ ldr r2, _0801C16C @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x7
+ adds r1, r3, 0
+ bl mcmd_jump_if_move_not_executed
+ ldr r1, _0801C170 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ movs r4, 0x1
+_0801C154:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801C15C: .4byte gProtectStructs
+_0801C160: .4byte gBankTarget
+_0801C164: .4byte gBattleMoves
+_0801C168: .4byte gCurrentMove
+_0801C16C: .4byte gBattleMoveFlags
+_0801C170: .4byte gBattleCommunication
+ thumb_func_end sub_801C108
+
+ thumb_func_start sub_801C174
+sub_801C174: @ 801C174
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r2, _0801C1D4 @ =gStatuses3
+ ldr r3, _0801C1D8 @ =gBankTarget
+ ldrb r4, [r3]
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r1, [r0]
+ movs r0, 0x18
+ ands r1, r0
+ adds r6, r2, 0
+ cmp r1, 0
+ beq _0801C1A6
+ ldr r1, _0801C1DC @ =gDisableStructs
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0801C1E0 @ =gBankAttacker
+ ldrb r0, [r0, 0x15]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0801C290
+_0801C1A6:
+ ldr r0, _0801C1E4 @ =gHitMarker
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 9
+ ands r1, r2
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _0801C1EC
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C1EC
+_0801C1C6:
+ ldr r0, _0801C1E8 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _0801C290
+ .align 2, 0
+_0801C1D4: .4byte gStatuses3
+_0801C1D8: .4byte gBankTarget
+_0801C1DC: .4byte gDisableStructs
+_0801C1E0: .4byte gBankAttacker
+_0801C1E4: .4byte gHitMarker
+_0801C1E8: .4byte gBattleMoveFlags
+_0801C1EC:
+ ldr r0, [r2]
+ ldr r1, _0801C29C @ =0xfffeffff
+ ands r0, r1
+ str r0, [r2]
+ movs r1, 0x80
+ lsls r1, 10
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C20E
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C1C6
+_0801C20E:
+ ldr r0, [r2]
+ ldr r1, _0801C2A0 @ =0xfffdffff
+ ands r0, r1
+ str r0, [r2]
+ movs r1, 0x80
+ lsls r1, 11
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C22E
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C1C6
+_0801C22E:
+ ldr r0, [r2]
+ ldr r1, _0801C2A4 @ =0xfffbffff
+ ands r0, r1
+ str r0, [r2]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r5, 1
+ cmp r0, 0
+ bne _0801C27E
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C27E
+ ldr r0, _0801C2A8 @ =gBattleWeather
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C27E
+ ldr r0, _0801C2AC @ =gBattleMoves
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x98
+ beq _0801C290
+_0801C27E:
+ ldr r1, _0801C2AC @ =gBattleMoves
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ beq _0801C290
+ cmp r0, 0x4E
+ bne _0801C2B0
+_0801C290:
+ movs r0, 0x7
+ adds r1, r5, 0
+ bl mcmd_jump_if_move_not_executed
+ movs r0, 0x1
+ b _0801C2B2
+ .align 2, 0
+_0801C29C: .4byte 0xfffeffff
+_0801C2A0: .4byte 0xfffdffff
+_0801C2A4: .4byte 0xfffbffff
+_0801C2A8: .4byte gBattleWeather
+_0801C2AC: .4byte gBattleMoves
+_0801C2B0:
+ movs r0, 0
+_0801C2B2:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801C174
+
+ thumb_func_start atk01_accuracycheck
+atk01_accuracycheck: @ 801C2BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _0801C314 @ =gBattlescriptCurrInstr
+ ldr r5, [r0]
+ ldrb r6, [r5, 0x5]
+ ldrb r1, [r5, 0x6]
+ lsls r1, 8
+ orrs r6, r1
+ adds r1, r6, 0x2
+ lsls r1, 16
+ lsrs r1, 16
+ adds r7, r0, 0
+ cmp r1, 0x1
+ bhi _0801C378
+ ldr r2, _0801C318 @ =gStatuses3
+ ldr r3, _0801C31C @ =gBankTarget
+ ldrb r4, [r3]
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r1, [r0]
+ movs r0, 0x18
+ ands r1, r0
+ cmp r1, 0
+ beq _0801C32C
+ ldr r0, _0801C320 @ =0x0000ffff
+ cmp r6, r0
+ bne _0801C32C
+ ldr r1, _0801C324 @ =gDisableStructs
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0801C328 @ =gBankAttacker
+ ldrb r0, [r0, 0x15]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0801C32C
+ adds r0, r5, 0x7
+ str r0, [r7]
+ b _0801C632
+ .align 2, 0
+_0801C314: .4byte gBattlescriptCurrInstr
+_0801C318: .4byte gStatuses3
+_0801C31C: .4byte gBankTarget
+_0801C320: .4byte 0x0000ffff
+_0801C324: .4byte gDisableStructs
+_0801C328: .4byte gBankAttacker
+_0801C32C:
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, _0801C358 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C35C
+ ldr r2, [r7]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r7]
+ b _0801C632
+ .align 2, 0
+_0801C358: .4byte 0x000400c0
+_0801C35C:
+ movs r0, 0
+ bl sub_801C108
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C36A
+ b _0801C632
+_0801C36A:
+ ldr r1, _0801C374 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x7
+ str r0, [r1]
+ b _0801C632
+ .align 2, 0
+_0801C374: .4byte gBattlescriptCurrInstr
+_0801C378:
+ cmp r6, 0
+ bne _0801C380
+ ldr r0, _0801C398 @ =gCurrentMove
+ ldrh r6, [r0]
+_0801C380:
+ ldr r0, _0801C39C @ =0x02000000
+ ldr r1, _0801C3A0 @ =0x0001601c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801C3A4
+ movs r2, 0x3F
+ mov r10, r2
+ mov r3, r10
+ ands r3, r0
+ mov r10, r3
+ b _0801C3B2
+ .align 2, 0
+_0801C398: .4byte gCurrentMove
+_0801C39C: .4byte 0x02000000
+_0801C3A0: .4byte 0x0001601c
+_0801C3A4:
+ ldr r1, _0801C3F8 @ =gBattleMoves
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ mov r10, r0
+_0801C3B2:
+ adds r0, r6, 0
+ bl sub_801C108
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C3C0
+ b _0801C632
+_0801C3C0:
+ adds r0, r6, 0
+ bl sub_801C174
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C3CE
+ b _0801C632
+_0801C3CE:
+ ldr r3, _0801C3FC @ =gBattleMons
+ ldr r0, _0801C400 @ =gBankTarget
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r4, r0, 0
+ muls r4, r2
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r4, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C408
+ ldr r0, _0801C404 @ =gBankAttacker
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ ldrb r5, [r0, 0x1E]
+ b _0801C41E
+ .align 2, 0
+_0801C3F8: .4byte gBattleMoves
+_0801C3FC: .4byte gBattleMons
+_0801C400: .4byte gBankTarget
+_0801C404: .4byte gBankAttacker
+_0801C408:
+ ldr r0, _0801C56C @ =gBankAttacker
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ ldrb r0, [r0, 0x1E]
+ adds r0, 0x6
+ adds r1, r4, r3
+ ldrb r1, [r1, 0x1F]
+ subs r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0801C41E:
+ lsls r0, r5, 24
+ cmp r0, 0
+ bge _0801C426
+ movs r5, 0
+_0801C426:
+ lsls r0, r5, 24
+ asrs r0, 24
+ cmp r0, 0xC
+ ble _0801C430
+ movs r5, 0xC
+_0801C430:
+ ldr r1, _0801C570 @ =gBattleMoves
+ lsls r4, r6, 1
+ adds r0, r4, r6
+ lsls r0, 2
+ adds r7, r0, r1
+ ldrb r0, [r7, 0x3]
+ mov r8, r0
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ str r4, [sp, 0x4]
+ cmp r0, 0
+ bne _0801C482
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C482
+ ldr r0, _0801C574 @ =gBattleWeather
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C482
+ ldrb r0, [r7]
+ cmp r0, 0x98
+ bne _0801C482
+ movs r1, 0x32
+ mov r8, r1
+_0801C482:
+ ldr r1, _0801C578 @ =gAccuracyStageRatios
+ lsls r0, r5, 24
+ asrs r0, 22
+ adds r0, r1
+ ldrb r1, [r0]
+ mov r4, r8
+ muls r4, r1
+ ldrb r1, [r0, 0x1]
+ adds r0, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r7, _0801C57C @ =gBattleMons
+ ldr r0, _0801C56C @ =gBankAttacker
+ ldrb r0, [r0]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ bne _0801C4C0
+ lsls r0, r4, 6
+ adds r0, r4
+ lsls r0, 1
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0801C4C0:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0801C518
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C518
+ ldr r0, _0801C580 @ =gBankTarget
+ ldrb r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _0801C518
+ ldr r0, _0801C574 @ =gBattleWeather
+ ldrh r1, [r0]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C518
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0801C518:
+ ldr r2, _0801C57C @ =gBattleMons
+ ldr r0, _0801C56C @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r9, r2
+ cmp r0, 0x37
+ bne _0801C544
+ mov r2, r10
+ cmp r2, 0x8
+ bhi _0801C544
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0801C544:
+ ldr r3, _0801C580 @ =gBankTarget
+ mov r8, r3
+ ldrb r2, [r3]
+ movs r7, 0x58
+ adds r0, r2, 0
+ muls r0, r7
+ mov r3, r9
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _0801C588
+ ldr r1, _0801C584 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x7]
+ ldrb r2, [r0, 0x1A]
+ b _0801C5A4
+ .align 2, 0
+_0801C56C: .4byte gBankAttacker
+_0801C570: .4byte gBattleMoves
+_0801C574: .4byte gBattleWeather
+_0801C578: .4byte gAccuracyStageRatios
+_0801C57C: .4byte gBattleMons
+_0801C580: .4byte gBankTarget
+_0801C584: .4byte gEnigmaBerries
+_0801C588:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ muls r0, r7
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r2, r0, 24
+_0801C5A4:
+ ldr r0, _0801C608 @ =gStringBank
+ ldr r1, _0801C60C @ =gBankTarget
+ ldrb r1, [r1]
+ strb r1, [r0]
+ cmp r5, 0x16
+ bne _0801C5C0
+ movs r0, 0x64
+ subs r0, r2
+ muls r0, r4
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0801C5C0:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, 0x1
+ cmp r0, r4
+ ble _0801C62A
+ ldr r2, _0801C610 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0801C614 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C620
+ ldr r1, _0801C618 @ =gBattleMoves
+ ldr r2, [sp, 0x4]
+ adds r0, r2, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x8
+ beq _0801C602
+ cmp r0, 0x20
+ bne _0801C620
+_0801C602:
+ ldr r1, _0801C61C @ =gBattleCommunication
+ movs r0, 0x2
+ b _0801C624
+ .align 2, 0
+_0801C608: .4byte gStringBank
+_0801C60C: .4byte gBankTarget
+_0801C610: .4byte gBattleMoveFlags
+_0801C614: .4byte gBattleTypeFlags
+_0801C618: .4byte gBattleMoves
+_0801C61C: .4byte gBattleCommunication
+_0801C620:
+ ldr r1, _0801C644 @ =gBattleCommunication
+ movs r0, 0
+_0801C624:
+ strb r0, [r1, 0x6]
+ bl b_wonderguard_and_levitate
+_0801C62A:
+ movs r0, 0x7
+ adds r1, r6, 0
+ bl mcmd_jump_if_move_not_executed
+_0801C632:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C644: .4byte gBattleCommunication
+ thumb_func_end atk01_accuracycheck
+
+ thumb_func_start atk02_attackstring
+atk02_attackstring: @ 801C648
+ push {r4,r5,lr}
+ ldr r0, _0801C688 @ =gBattleExecBuffer
+ ldr r5, [r0]
+ cmp r5, 0
+ bne _0801C680
+ ldr r4, _0801C68C @ =gHitMarker
+ ldr r0, [r4]
+ movs r1, 0xC0
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C674
+ ldr r0, _0801C690 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x4
+ bl PrepareStringBattle
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 3
+ orrs r0, r1
+ str r0, [r4]
+_0801C674:
+ ldr r0, _0801C694 @ =gBattlescriptCurrInstr
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ ldr r0, _0801C698 @ =gBattleCommunication
+ strb r5, [r0, 0x7]
+_0801C680:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C688: .4byte gBattleExecBuffer
+_0801C68C: .4byte gHitMarker
+_0801C690: .4byte gBankAttacker
+_0801C694: .4byte gBattlescriptCurrInstr
+_0801C698: .4byte gBattleCommunication
+ thumb_func_end atk02_attackstring
+
+ thumb_func_start atk03_ppreduce
+atk03_ppreduce: @ 801C69C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r6, 0x1
+ ldr r0, _0801C6EC @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801C6B4
+ b _0801C84E
+_0801C6B4:
+ ldr r1, _0801C6F0 @ =gSpecialStatuses
+ ldr r2, _0801C6F4 @ =gBankAttacker
+ ldrb r3, [r2]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r4, r0, 31
+ mov r9, r2
+ cmp r4, 0
+ bne _0801C756
+ ldr r2, _0801C6F8 @ =gBattleMoves
+ ldr r0, _0801C6FC @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x20
+ beq _0801C706
+ cmp r0, 0x20
+ bgt _0801C700
+ cmp r0, 0x8
+ beq _0801C71C
+ b _0801C736
+ .align 2, 0
+_0801C6EC: .4byte gBattleExecBuffer
+_0801C6F0: .4byte gSpecialStatuses
+_0801C6F4: .4byte gBankAttacker
+_0801C6F8: .4byte gBattleMoves
+_0801C6FC: .4byte gCurrentMove
+_0801C700:
+ cmp r0, 0x40
+ beq _0801C71C
+ b _0801C736
+_0801C706:
+ str r4, [sp]
+ movs r0, 0x12
+ adds r1, r3, 0
+ movs r2, 0x2E
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0x1
+ b _0801C756
+_0801C71C:
+ mov r0, r9
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x10
+ movs r2, 0x2E
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0
+ b _0801C756
+_0801C736:
+ ldr r1, _0801C7B8 @ =gBankTarget
+ mov r2, r9
+ ldrb r0, [r2]
+ ldrb r7, [r1]
+ cmp r0, r7
+ beq _0801C756
+ ldr r2, _0801C7BC @ =gBattleMons
+ ldrb r1, [r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2E
+ bne _0801C756
+ adds r6, 0x1
+_0801C756:
+ ldr r0, _0801C7C0 @ =gHitMarker
+ ldr r4, [r0]
+ movs r0, 0xA0
+ lsls r0, 4
+ ands r4, r0
+ cmp r4, 0
+ bne _0801C83C
+ ldr r2, _0801C7BC @ =gBattleMons
+ ldr r3, _0801C7C4 @ =gCurrMovePos
+ ldr r1, _0801C7C8 @ =gBankAttacker
+ ldrb r5, [r1]
+ movs r0, 0x58
+ mov r8, r0
+ mov r0, r8
+ muls r0, r5
+ ldrb r7, [r3]
+ adds r0, r7
+ movs r7, 0x24
+ adds r7, r2
+ mov r12, r7
+ add r0, r12
+ ldrb r0, [r0]
+ mov r9, r1
+ mov r10, r2
+ adds r7, r3, 0
+ cmp r0, 0
+ beq _0801C83C
+ ldr r0, _0801C7CC @ =gProtectStructs
+ lsls r1, r5, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1, 0x2]
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ ldrb r1, [r7]
+ adds r0, r1
+ mov r1, r12
+ adds r2, r0, r1
+ ldrb r0, [r2]
+ cmp r0, r6
+ ble _0801C7D0
+ subs r0, r6
+ strb r0, [r2]
+ b _0801C7D2
+ .align 2, 0
+_0801C7B8: .4byte gBankTarget
+_0801C7BC: .4byte gBattleMons
+_0801C7C0: .4byte gHitMarker
+_0801C7C4: .4byte gCurrMovePos
+_0801C7C8: .4byte gBankAttacker
+_0801C7CC: .4byte gProtectStructs
+_0801C7D0:
+ strb r4, [r2]
+_0801C7D2:
+ mov r2, r9
+ ldrb r3, [r2]
+ movs r4, 0x58
+ adds r0, r3, 0
+ muls r0, r4
+ mov r1, r10
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C83C
+ ldr r1, _0801C860 @ =gDisableStructs
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0801C864 @ =gBitTable
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0801C83C
+ ldr r0, _0801C868 @ =gActiveBank
+ strb r3, [r0]
+ ldrb r1, [r7]
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r2, r9
+ ldrb r0, [r2]
+ muls r0, r4
+ mov r2, r10
+ adds r2, 0x24
+ adds r0, r2
+ ldrb r7, [r7]
+ adds r0, r7
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl EmitSetAttributes
+ mov r7, r9
+ ldrb r0, [r7]
+ bl MarkBufferBankForExecution
+_0801C83C:
+ ldr r2, _0801C86C @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _0801C870 @ =0xfffff7ff
+ ands r0, r1
+ str r0, [r2]
+ ldr r1, _0801C874 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801C84E:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C860: .4byte gDisableStructs
+_0801C864: .4byte gBitTable
+_0801C868: .4byte gActiveBank
+_0801C86C: .4byte gHitMarker
+_0801C870: .4byte 0xfffff7ff
+_0801C874: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk03_ppreduce
+
+ thumb_func_start atk04_critcalc
+atk04_critcalc: @ 801C878
+ push {r4-r7,lr}
+ ldr r1, _0801C89C @ =gBattleMons
+ ldr r0, _0801C8A0 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0xAF
+ bne _0801C8A8
+ ldr r1, _0801C8A4 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x7]
+ b _0801C8B0
+ .align 2, 0
+_0801C89C: .4byte gBattleMons
+_0801C8A0: .4byte gBankAttacker
+_0801C8A4: .4byte gEnigmaBerries
+_0801C8A8:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801C8B0:
+ ldr r1, _0801C93C @ =gStringBank
+ ldr r3, _0801C940 @ =gBankAttacker
+ ldrb r0, [r3]
+ strb r0, [r1]
+ ldr r4, _0801C944 @ =gBattleMons
+ ldrb r1, [r3]
+ movs r0, 0x58
+ adds r7, r1, 0
+ muls r7, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r7, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 13
+ ands r0, r1
+ negs r0, r0
+ asrs r5, r0, 31
+ movs r0, 0x2
+ ands r5, r0
+ ldr r2, _0801C948 @ =gBattleMoves
+ ldr r0, _0801C94C @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ mov r12, r3
+ cmp r1, 0x2B
+ bne _0801C8F0
+ adds r5, 0x1
+_0801C8F0:
+ adds r0, r5, 0
+ cmp r1, 0x4B
+ bne _0801C8F8
+ adds r0, 0x1
+_0801C8F8:
+ cmp r1, 0xC8
+ bne _0801C8FE
+ adds r0, 0x1
+_0801C8FE:
+ adds r2, r0, 0
+ cmp r1, 0xD1
+ bne _0801C906
+ adds r2, 0x1
+_0801C906:
+ movs r1, 0
+ cmp r6, 0x3F
+ bne _0801C916
+ adds r0, r7, r4
+ ldrh r0, [r0]
+ cmp r0, 0x71
+ bne _0801C916
+ movs r1, 0x1
+_0801C916:
+ lsls r5, r1, 1
+ movs r3, 0
+ cmp r6, 0x42
+ bne _0801C930
+ mov r0, r12
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0x53
+ bne _0801C930
+ movs r3, 0x1
+_0801C930:
+ lsls r1, r3, 1
+ cmp r6, 0x29
+ bne _0801C950
+ adds r0, r5, 0x1
+ adds r0, r2, r0
+ b _0801C952
+ .align 2, 0
+_0801C93C: .4byte gStringBank
+_0801C940: .4byte gBankAttacker
+_0801C944: .4byte gBattleMons
+_0801C948: .4byte gBattleMoves
+_0801C94C: .4byte gCurrentMove
+_0801C950:
+ adds r0, r2, r5
+_0801C952:
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0, 0
+ cmp r5, 0x4
+ bls _0801C960
+ movs r5, 0x4
+_0801C960:
+ ldr r0, _0801C9BC @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r4, [r0]
+ cmp r4, 0x4
+ beq _0801C9D0
+ cmp r4, 0x4B
+ beq _0801C9D0
+ ldr r1, _0801C9C0 @ =gStatuses3
+ mov r2, r12
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C9D0
+ ldr r0, _0801C9C4 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x84
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C9D0
+ bl Random
+ ldr r2, _0801C9C8 @ =gCriticalHitChance
+ lsls r1, r5, 1
+ adds r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1]
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0801C9D0
+ ldr r1, _0801C9CC @ =gCritMultiplier
+ movs r0, 0x2
+ b _0801C9D4
+ .align 2, 0
+_0801C9BC: .4byte gBankTarget
+_0801C9C0: .4byte gStatuses3
+_0801C9C4: .4byte gBattleTypeFlags
+_0801C9C8: .4byte gCriticalHitChance
+_0801C9CC: .4byte gCritMultiplier
+_0801C9D0:
+ ldr r1, _0801C9E4 @ =gCritMultiplier
+ movs r0, 0x1
+_0801C9D4:
+ strb r0, [r1]
+ ldr r1, _0801C9E8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C9E4: .4byte gCritMultiplier
+_0801C9E8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk04_critcalc
+
+ thumb_func_start atk05_damagecalc1
+atk05_damagecalc1: @ 801C9EC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ ldr r4, _0801CABC @ =gSideAffecting
+ ldr r6, _0801CAC0 @ =gBankTarget
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ ldr r0, _0801CAC4 @ =gBankAttacker
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r4, 0x58
+ muls r0, r4
+ ldr r2, _0801CAC8 @ =gBattleMons
+ adds r0, r2
+ ldrb r1, [r6]
+ muls r1, r4
+ adds r1, r2
+ ldr r2, _0801CACC @ =gCurrentMove
+ mov r9, r2
+ ldrh r2, [r2]
+ ldr r4, _0801CAD0 @ =gDynamicBasePower
+ ldrh r4, [r4]
+ str r4, [sp]
+ ldr r5, _0801CAD4 @ =0x02000000
+ ldr r7, _0801CAD8 @ =0x0001601c
+ adds r4, r5, r7
+ ldrb r4, [r4]
+ str r4, [sp, 0x4]
+ mov r7, r8
+ ldrb r4, [r7]
+ str r4, [sp, 0x8]
+ ldrb r4, [r6]
+ str r4, [sp, 0xC]
+ bl CalculateBaseDamage
+ ldr r4, _0801CADC @ =gBattleMoveDamage
+ ldr r1, _0801CAE0 @ =gCritMultiplier
+ ldrb r1, [r1]
+ muls r1, r0
+ ldr r0, _0801CAE4 @ =0x0001601f
+ adds r5, r0
+ ldrb r0, [r5]
+ adds r3, r1, 0
+ muls r3, r0
+ str r3, [r4]
+ ldr r1, _0801CAE8 @ =gStatuses3
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CA82
+ ldr r2, _0801CAEC @ =gBattleMoves
+ mov r7, r9
+ ldrh r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0xD
+ bne _0801CA82
+ lsls r0, r3, 1
+ str r0, [r4]
+_0801CA82:
+ ldr r1, _0801CAF0 @ =gProtectStructs
+ ldr r0, _0801CAC4 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ bge _0801CAA4
+ ldr r4, _0801CADC @ =gBattleMoveDamage
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r4]
+_0801CAA4:
+ ldr r1, _0801CAF4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CABC: .4byte gSideAffecting
+_0801CAC0: .4byte gBankTarget
+_0801CAC4: .4byte gBankAttacker
+_0801CAC8: .4byte gBattleMons
+_0801CACC: .4byte gCurrentMove
+_0801CAD0: .4byte gDynamicBasePower
+_0801CAD4: .4byte 0x02000000
+_0801CAD8: .4byte 0x0001601c
+_0801CADC: .4byte gBattleMoveDamage
+_0801CAE0: .4byte gCritMultiplier
+_0801CAE4: .4byte 0x0001601f
+_0801CAE8: .4byte gStatuses3
+_0801CAEC: .4byte gBattleMoves
+_0801CAF0: .4byte gProtectStructs
+_0801CAF4: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk05_damagecalc1
+
+ thumb_func_start sub_801CAF8
+sub_801CAF8: @ 801CAF8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _0801CBBC @ =gSideAffecting
+ adds r0, r5, 0
+ bl GetBankIdentity
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x58
+ adds r0, r7, 0
+ muls r0, r1
+ ldr r2, _0801CBC0 @ =gBattleMons
+ adds r0, r2
+ muls r1, r5
+ adds r1, r2
+ ldr r2, _0801CBC4 @ =gCurrentMove
+ mov r9, r2
+ ldrh r2, [r2]
+ ldr r4, _0801CBC8 @ =gDynamicBasePower
+ mov r8, r4
+ ldrh r4, [r4]
+ str r4, [sp]
+ ldr r6, _0801CBCC @ =0x02000000
+ ldr r4, _0801CBD0 @ =0x0001601c
+ ldrb r4, [r4, r6]
+ str r4, [sp, 0x4]
+ str r7, [sp, 0x8]
+ str r5, [sp, 0xC]
+ bl CalculateBaseDamage
+ ldr r4, _0801CBD4 @ =gBattleMoveDamage
+ movs r1, 0
+ mov r2, r8
+ strh r1, [r2]
+ ldr r1, _0801CBD8 @ =gCritMultiplier
+ ldrb r1, [r1]
+ muls r1, r0
+ ldr r0, _0801CBDC @ =0x0001601f
+ adds r6, r0
+ ldrb r0, [r6]
+ adds r3, r1, 0
+ muls r3, r0
+ str r3, [r4]
+ ldr r1, _0801CBE0 @ =gStatuses3
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CB8E
+ ldr r2, _0801CBE4 @ =gBattleMoves
+ mov r6, r9
+ ldrh r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0xD
+ bne _0801CB8E
+ lsls r0, r3, 1
+ str r0, [r4]
+_0801CB8E:
+ ldr r0, _0801CBE8 @ =gProtectStructs
+ lsls r1, r7, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 28
+ cmp r0, 0
+ bge _0801CBAC
+ ldr r4, _0801CBD4 @ =gBattleMoveDamage
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r4]
+_0801CBAC:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CBBC: .4byte gSideAffecting
+_0801CBC0: .4byte gBattleMons
+_0801CBC4: .4byte gCurrentMove
+_0801CBC8: .4byte gDynamicBasePower
+_0801CBCC: .4byte 0x02000000
+_0801CBD0: .4byte 0x0001601c
+_0801CBD4: .4byte gBattleMoveDamage
+_0801CBD8: .4byte gCritMultiplier
+_0801CBDC: .4byte 0x0001601f
+_0801CBE0: .4byte gStatuses3
+_0801CBE4: .4byte gBattleMoves
+_0801CBE8: .4byte gProtectStructs
+ thumb_func_end sub_801CAF8
+
+ thumb_func_start battle_attack_damage_modulate_by_effectivity
+battle_attack_damage_modulate_by_effectivity: @ 801CBEC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _0801CC1C @ =gBattleMoveDamage
+ ldr r0, [r5]
+ muls r0, r4
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _0801CC0C
+ cmp r4, 0
+ beq _0801CC0C
+ movs r0, 0x1
+ str r0, [r5]
+_0801CC0C:
+ cmp r4, 0x5
+ beq _0801CC3C
+ cmp r4, 0x5
+ bgt _0801CC20
+ cmp r4, 0
+ beq _0801CC26
+ b _0801CCBE
+ .align 2, 0
+_0801CC1C: .4byte gBattleMoveDamage
+_0801CC20:
+ cmp r4, 0x14
+ beq _0801CC7C
+ b _0801CCBE
+_0801CC26:
+ ldr r2, _0801CC38 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ movs r1, 0xFB
+ ands r0, r1
+ movs r1, 0xFD
+ ands r0, r1
+ b _0801CCBC
+ .align 2, 0
+_0801CC38: .4byte gBattleMoveFlags
+_0801CC3C:
+ ldr r2, _0801CC6C @ =gBattleMoves
+ ldr r0, _0801CC70 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0801CCBE
+ ldr r2, _0801CC74 @ =gBattleMoveFlags
+ ldrb r1, [r2]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CCBE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CC78
+ movs r0, 0xFD
+ ands r0, r1
+ b _0801CCBC
+ .align 2, 0
+_0801CC6C: .4byte gBattleMoves
+_0801CC70: .4byte gCurrentMove
+_0801CC74: .4byte gBattleMoveFlags
+_0801CC78:
+ movs r0, 0x4
+ b _0801CCBA
+_0801CC7C:
+ ldr r2, _0801CCAC @ =gBattleMoves
+ ldr r0, _0801CCB0 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0801CCBE
+ ldr r2, _0801CCB4 @ =gBattleMoveFlags
+ ldrb r1, [r2]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CCBE
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CCB8
+ movs r0, 0xFB
+ ands r0, r1
+ b _0801CCBC
+ .align 2, 0
+_0801CCAC: .4byte gBattleMoves
+_0801CCB0: .4byte gCurrentMove
+_0801CCB4: .4byte gBattleMoveFlags
+_0801CCB8:
+ movs r0, 0x2
+_0801CCBA:
+ orrs r0, r1
+_0801CCBC:
+ strb r0, [r2]
+_0801CCBE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end battle_attack_damage_modulate_by_effectivity
+
+ thumb_func_start atk06_typecalc
+atk06_typecalc: @ 801CCC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r3, 0
+ ldr r1, _0801CCF0 @ =gCurrentMove
+ ldrh r0, [r1]
+ cmp r0, 0xA5
+ bne _0801CCD8
+ b _0801CEF4
+_0801CCD8:
+ ldr r0, _0801CCF4 @ =0x02000000
+ ldr r2, _0801CCF8 @ =0x0001601c
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801CCFC
+ movs r1, 0x3F
+ mov r8, r1
+ mov r2, r8
+ ands r2, r0
+ mov r8, r2
+ b _0801CD0C
+ .align 2, 0
+_0801CCF0: .4byte gCurrentMove
+_0801CCF4: .4byte 0x02000000
+_0801CCF8: .4byte 0x0001601c
+_0801CCFC:
+ ldr r2, _0801CD94 @ =gBattleMoves
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ mov r8, r0
+_0801CD0C:
+ ldr r2, _0801CD98 @ =gBattleMons
+ ldr r0, _0801CD9C @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ adds r5, r2, 0
+ cmp r0, r8
+ beq _0801CD2E
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r8
+ bne _0801CD44
+_0801CD2E:
+ ldr r4, _0801CDA0 @ =gBattleMoveDamage
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ str r0, [r4]
+ movs r1, 0xA
+ str r3, [sp, 0x4]
+ bl __divsi3
+ str r0, [r4]
+ ldr r3, [sp, 0x4]
+_0801CD44:
+ ldr r2, _0801CDA4 @ =gBankTarget
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r4, r2, 0
+ cmp r0, 0x1A
+ bne _0801CDBC
+ mov r1, r8
+ cmp r1, 0x4
+ bne _0801CDBC
+ ldr r3, _0801CDA8 @ =gLastUsedAbility
+ strb r0, [r3]
+ ldr r2, _0801CDAC @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x9
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801CDB0 @ =gMoveHitWith
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0801CDB4 @ =gUnknown_02024C44
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r0, _0801CDB8 @ =gBattleCommunication
+ mov r2, r8
+ strb r2, [r0, 0x6]
+ ldrb r0, [r4]
+ ldrb r1, [r3]
+ bl sub_81074C4
+ b _0801CE58
+ .align 2, 0
+_0801CD94: .4byte gBattleMoves
+_0801CD98: .4byte gBattleMons
+_0801CD9C: .4byte gBankAttacker
+_0801CDA0: .4byte gBattleMoveDamage
+_0801CDA4: .4byte gBankTarget
+_0801CDA8: .4byte gLastUsedAbility
+_0801CDAC: .4byte gBattleMoveFlags
+_0801CDB0: .4byte gMoveHitWith
+_0801CDB4: .4byte gUnknown_02024C44
+_0801CDB8: .4byte gBattleCommunication
+_0801CDBC:
+ ldr r1, _0801CDC8 @ =gTypeEffectiveness
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ b _0801CE38
+ .align 2, 0
+_0801CDC8: .4byte gTypeEffectiveness
+_0801CDCC:
+ adds r3, 0x3
+ b _0801CE34
+_0801CDD0:
+ ldr r5, _0801CF08 @ =gTypeEffectiveness
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ cmp r0, r8
+ bne _0801CE2C
+ adds r1, r3, 0x1
+ adds r1, r5
+ ldr r2, _0801CF0C @ =gBattleMons
+ ldr r7, _0801CF10 @ =gBankTarget
+ ldrb r0, [r7]
+ movs r6, 0x58
+ muls r0, r6
+ adds r0, r2
+ adds r0, 0x21
+ ldrb r4, [r1]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _0801CE06
+ adds r0, r3, 0x2
+ adds r0, r5
+ ldrb r0, [r0]
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ bl battle_attack_damage_modulate_by_effectivity
+ ldr r3, [sp, 0x4]
+ ldr r2, [sp]
+_0801CE06:
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r1, [r1]
+ cmp r4, r1
+ bne _0801CE2C
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r4
+ beq _0801CE2C
+ adds r0, r3, 0x2
+ adds r0, r5
+ ldrb r0, [r0]
+ str r3, [sp, 0x4]
+ bl battle_attack_damage_modulate_by_effectivity
+ ldr r3, [sp, 0x4]
+_0801CE2C:
+ adds r3, 0x3
+ ldr r5, _0801CF0C @ =gBattleMons
+ ldr r4, _0801CF10 @ =gBankTarget
+ ldr r2, _0801CF08 @ =gTypeEffectiveness
+_0801CE34:
+ adds r0, r3, r2
+ ldrb r0, [r0]
+_0801CE38:
+ cmp r0, 0xFF
+ beq _0801CE58
+ cmp r0, 0xFE
+ bne _0801CDD0
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r5, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CDCC
+_0801CE58:
+ ldr r2, _0801CF0C @ =gBattleMons
+ ldr r5, _0801CF10 @ =gBankTarget
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r6, [r0]
+ cmp r6, 0x19
+ bne _0801CED6
+ ldr r0, _0801CF14 @ =gBankAttacker
+ ldrb r0, [r0]
+ ldr r7, _0801CF18 @ =gCurrentMove
+ ldrh r1, [r7]
+ bl move_weather_interaction
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0801CED6
+ ldr r1, _0801CF1C @ =gBattleMoveFlags
+ mov r8, r1
+ ldrb r4, [r1]
+ ands r0, r4
+ cmp r0, 0
+ beq _0801CE94
+ movs r0, 0x6
+ ands r0, r4
+ cmp r0, 0x6
+ bne _0801CED6
+_0801CE94:
+ ldr r2, _0801CF20 @ =gBattleMoves
+ ldrh r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0801CED6
+ ldr r3, _0801CF24 @ =gLastUsedAbility
+ strb r6, [r3]
+ movs r0, 0x1
+ orrs r0, r4
+ mov r2, r8
+ strb r0, [r2]
+ ldr r1, _0801CF28 @ =gMoveHitWith
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0801CF2C @ =gUnknown_02024C44
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r1, _0801CF30 @ =gBattleCommunication
+ movs r0, 0x3
+ strb r0, [r1, 0x6]
+ ldrb r0, [r5]
+ ldrb r1, [r3]
+ bl sub_81074C4
+_0801CED6:
+ ldr r0, _0801CF1C @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CEF4
+ ldr r2, _0801CF34 @ =gProtectStructs
+ ldr r0, _0801CF14 @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r1, 4
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+_0801CEF4:
+ ldr r1, _0801CF38 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CF08: .4byte gTypeEffectiveness
+_0801CF0C: .4byte gBattleMons
+_0801CF10: .4byte gBankTarget
+_0801CF14: .4byte gBankAttacker
+_0801CF18: .4byte gCurrentMove
+_0801CF1C: .4byte gBattleMoveFlags
+_0801CF20: .4byte gBattleMoves
+_0801CF24: .4byte gLastUsedAbility
+_0801CF28: .4byte gMoveHitWith
+_0801CF2C: .4byte gUnknown_02024C44
+_0801CF30: .4byte gBattleCommunication
+_0801CF34: .4byte gProtectStructs
+_0801CF38: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk06_typecalc
+
+ thumb_func_start b_wonderguard_and_levitate
+b_wonderguard_and_levitate: @ 801CF3C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r0, _0801CF80 @ =gCurrentMove
+ ldrh r1, [r0]
+ mov r9, r0
+ cmp r1, 0xA5
+ bne _0801CF54
+ b _0801D1A4
+_0801CF54:
+ ldr r2, _0801CF84 @ =gBattleMoves
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _0801CF66
+ b _0801D1A4
+_0801CF66:
+ ldr r0, _0801CF88 @ =0x02000000
+ ldr r2, _0801CF8C @ =0x0001601c
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801CF90
+ movs r1, 0x3F
+ mov r12, r1
+ mov r2, r12
+ ands r2, r0
+ mov r12, r2
+ b _0801CF94
+ .align 2, 0
+_0801CF80: .4byte gCurrentMove
+_0801CF84: .4byte gBattleMoves
+_0801CF88: .4byte 0x02000000
+_0801CF8C: .4byte 0x0001601c
+_0801CF90:
+ ldrb r1, [r1, 0x2]
+ mov r12, r1
+_0801CF94:
+ ldr r2, _0801CFC8 @ =gBattleMons
+ ldr r3, _0801CFCC @ =gBankTarget
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r1, [r0]
+ adds r7, r2, 0
+ mov r8, r3
+ cmp r1, 0x1A
+ bne _0801CFD8
+ mov r0, r12
+ cmp r0, 0x4
+ bne _0801CFD8
+ ldr r0, _0801CFD0 @ =gLastUsedAbility
+ strb r1, [r0]
+ ldr r0, _0801CFD4 @ =gBattleCommunication
+ mov r1, r12
+ strb r1, [r0, 0x6]
+ ldrb r0, [r3]
+ movs r1, 0x1A
+ bl sub_81074C4
+ b _0801D1A4
+ .align 2, 0
+_0801CFC8: .4byte gBattleMons
+_0801CFCC: .4byte gBankTarget
+_0801CFD0: .4byte gLastUsedAbility
+_0801CFD4: .4byte gBattleCommunication
+_0801CFD8:
+ ldr r1, _0801CFE4 @ =gTypeEffectiveness
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ b _0801D12A
+ .align 2, 0
+_0801CFE4: .4byte gTypeEffectiveness
+_0801CFE8:
+ adds r0, r5, r4
+ ldrb r0, [r0]
+ cmp r0, r12
+ beq _0801CFF2
+ b _0801D124
+_0801CFF2:
+ adds r2, r5, 0x1
+ adds r3, r2, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x21
+ ldrb r1, [r3]
+ adds r3, r2, 0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0801D032
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801D032
+ ldr r2, _0801D1B0 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801D1B4 @ =gProtectStructs
+ ldr r0, _0801D1B8 @ =gBankAttacker
+ ldrb r2, [r0]
+ lsls r2, 4
+ adds r2, r1
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+_0801D032:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0801D078
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _0801D078
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801D078
+ ldr r2, _0801D1B0 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801D1B4 @ =gProtectStructs
+ ldr r0, _0801D1B8 @ =gBankAttacker
+ ldrb r2, [r0]
+ lsls r2, 4
+ adds r2, r1
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+_0801D078:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x21
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0801D09C
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ bne _0801D09C
+ movs r0, 0x1
+ orrs r6, r0
+_0801D09C:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0801D0CA
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _0801D0CA
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ bne _0801D0CA
+ movs r0, 0x1
+ orrs r6, r0
+_0801D0CA:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x21
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0801D0F2
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _0801D0F2
+ movs r0, 0x2
+ orrs r6, r0
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+_0801D0F2:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0801D124
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _0801D124
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _0801D124
+ movs r0, 0x2
+ orrs r6, r0
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+_0801D124:
+ adds r5, 0x3
+ adds r0, r5, r4
+ ldrb r0, [r0]
+_0801D12A:
+ cmp r0, 0xFF
+ beq _0801D14E
+ cmp r0, 0xFE
+ beq _0801D134
+ b _0801CFE8
+_0801D134:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r7, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D124
+_0801D14E:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r4, [r0]
+ cmp r4, 0x19
+ bne _0801D1A4
+ ldr r0, _0801D1B8 @ =gBankAttacker
+ ldrb r0, [r0]
+ mov r2, r9
+ ldrh r1, [r2]
+ bl move_weather_interaction
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0801D1A4
+ movs r0, 0x3
+ ands r6, r0
+ cmp r6, 0x1
+ beq _0801D1A4
+ ldr r2, _0801D1BC @ =gBattleMoves
+ mov r0, r9
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0801D1A4
+ ldr r0, _0801D1C0 @ =gLastUsedAbility
+ strb r4, [r0]
+ ldr r1, _0801D1C4 @ =gBattleCommunication
+ movs r0, 0x3
+ strb r0, [r1, 0x6]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x19
+ bl sub_81074C4
+_0801D1A4:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D1B0: .4byte gBattleMoveFlags
+_0801D1B4: .4byte gProtectStructs
+_0801D1B8: .4byte gBankAttacker
+_0801D1BC: .4byte gBattleMoves
+_0801D1C0: .4byte gLastUsedAbility
+_0801D1C4: .4byte gBattleCommunication
+ thumb_func_end b_wonderguard_and_levitate
+
+ thumb_func_start b_attack_effectivity_adapt
+b_attack_effectivity_adapt: @ 801D1C8
+ push {r4-r7,lr}
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r7, _0801D1FC @ =gBattleMoveDamage
+ ldr r0, [r7]
+ muls r0, r4
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r7]
+ cmp r0, 0
+ bne _0801D1EE
+ cmp r4, 0
+ beq _0801D1EE
+ movs r0, 0x1
+ str r0, [r7]
+_0801D1EE:
+ cmp r4, 0x5
+ beq _0801D216
+ cmp r4, 0x5
+ bgt _0801D200
+ cmp r4, 0
+ beq _0801D206
+ b _0801D27A
+ .align 2, 0
+_0801D1FC: .4byte gBattleMoveDamage
+_0801D200:
+ cmp r4, 0x14
+ beq _0801D248
+ b _0801D27A
+_0801D206:
+ ldrb r0, [r6]
+ movs r1, 0x8
+ orrs r0, r1
+ movs r1, 0xFB
+ ands r0, r1
+ movs r1, 0xFD
+ ands r0, r1
+ b _0801D278
+_0801D216:
+ ldr r0, _0801D240 @ =gBattleMoves
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _0801D27A
+ ldrb r1, [r6]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D27A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D244
+ movs r0, 0xFD
+ ands r0, r1
+ b _0801D278
+ .align 2, 0
+_0801D240: .4byte gBattleMoves
+_0801D244:
+ movs r0, 0x4
+ b _0801D276
+_0801D248:
+ ldr r0, _0801D270 @ =gBattleMoves
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _0801D27A
+ ldrb r1, [r6]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D27A
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D274
+ movs r0, 0xFB
+ ands r0, r1
+ b _0801D278
+ .align 2, 0
+_0801D270: .4byte gBattleMoves
+_0801D274:
+ movs r0, 0x2
+_0801D276:
+ orrs r0, r1
+_0801D278:
+ strb r0, [r6]
+_0801D27A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end b_attack_effectivity_adapt
+
+ thumb_func_start move_effectiveness_something
+move_effectiveness_something: @ 801D280
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ movs r7, 0
+ mov r0, sp
+ strb r7, [r0]
+ mov r0, r10
+ cmp r0, 0xA5
+ bne _0801D2AE
+ movs r0, 0
+ b _0801D43A
+_0801D2AE:
+ ldr r1, _0801D31C @ =gBattleMoves
+ mov r3, r10
+ lsls r2, r3, 1
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ str r0, [sp, 0x8]
+ ldr r1, _0801D320 @ =gBattleMons
+ movs r0, 0x58
+ ldr r3, [sp, 0x4]
+ muls r0, r3
+ adds r3, r0, r1
+ adds r0, r3, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ str r2, [sp, 0xC]
+ adds r5, r1, 0
+ ldr r1, [sp, 0x8]
+ cmp r0, r1
+ beq _0801D2E2
+ adds r0, r3, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _0801D2F4
+_0801D2E2:
+ ldr r4, _0801D324 @ =gBattleMoveDamage
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ str r0, [r4]
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r4]
+_0801D2F4:
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1A
+ bne _0801D328
+ ldr r3, [sp, 0x8]
+ cmp r3, 0x4
+ bne _0801D328
+ movs r1, 0x9
+ mov r0, sp
+ ldrb r0, [r0]
+ orrs r0, r1
+ mov r1, sp
+ strb r0, [r1]
+ b _0801D3DC
+ .align 2, 0
+_0801D31C: .4byte gBattleMoves
+_0801D320: .4byte gBattleMons
+_0801D324: .4byte gBattleMoveDamage
+_0801D328:
+ ldr r1, _0801D344 @ =gTypeEffectiveness
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xFF
+ beq _0801D3DC
+ cmp r0, 0xFE
+ bne _0801D34C
+ movs r0, 0x58
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ b _0801D3CA
+ .align 2, 0
+_0801D344: .4byte gTypeEffectiveness
+_0801D348:
+ adds r7, 0x3
+ b _0801D3B6
+_0801D34C:
+ ldr r6, _0801D44C @ =gTypeEffectiveness
+ adds r0, r7, r6
+ ldrb r0, [r0]
+ ldr r2, [sp, 0x8]
+ cmp r0, r2
+ bne _0801D3B0
+ adds r1, r7, 0x1
+ adds r1, r6
+ ldr r3, _0801D450 @ =gBattleMons
+ mov r8, r3
+ movs r3, 0x58
+ mov r0, r9
+ muls r0, r3
+ mov r2, r8
+ adds r5, r0, r2
+ adds r0, r5, 0
+ adds r0, 0x21
+ ldrb r4, [r1]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _0801D388
+ adds r0, r7, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ mov r1, r10
+ mov r2, sp
+ str r3, [sp, 0x10]
+ bl b_attack_effectivity_adapt
+ ldr r3, [sp, 0x10]
+_0801D388:
+ adds r0, r5, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _0801D3B0
+ ldr r0, _0801D454 @ =gBankTarget
+ ldrb r0, [r0]
+ muls r0, r3
+ add r0, r8
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r4
+ beq _0801D3B0
+ adds r0, r7, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ mov r1, r10
+ mov r2, sp
+ bl b_attack_effectivity_adapt
+_0801D3B0:
+ adds r7, 0x3
+ ldr r5, _0801D450 @ =gBattleMons
+ ldr r2, _0801D44C @ =gTypeEffectiveness
+_0801D3B6:
+ adds r0, r7, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _0801D3DC
+ cmp r0, 0xFE
+ bne _0801D34C
+ movs r0, 0x58
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+_0801D3CA:
+ adds r1, r5, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D348
+_0801D3DC:
+ movs r0, 0x58
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x19
+ bne _0801D436
+ mov r0, sp
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D436
+ ldr r0, [sp, 0x4]
+ mov r1, r10
+ bl move_weather_interaction
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bne _0801D436
+ mov r0, sp
+ ldrb r3, [r0]
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0801D41E
+ movs r0, 0x6
+ ands r0, r3
+ cmp r0, 0x6
+ bne _0801D436
+_0801D41E:
+ ldr r0, _0801D458 @ =gBattleMoves
+ ldr r1, [sp, 0xC]
+ add r1, r10
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _0801D436
+ mov r0, sp
+ movs r1, 0x1
+ orrs r1, r3
+ strb r1, [r0]
+_0801D436:
+ mov r0, sp
+ ldrb r0, [r0]
+_0801D43A:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801D44C: .4byte gTypeEffectiveness
+_0801D450: .4byte gBattleMons
+_0801D454: .4byte gBankTarget
+_0801D458: .4byte gBattleMoves
+ thumb_func_end move_effectiveness_something
+
+ thumb_func_start ai_rate_move
+ai_rate_move: @ 801D45C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ movs r7, 0
+ mov r0, sp
+ strb r7, [r0]
+ ldr r2, _0801D498 @ =gBaseStats
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x6]
+ str r1, [sp, 0x8]
+ ldrb r0, [r0, 0x7]
+ mov r8, r0
+ cmp r6, 0xA5
+ bne _0801D49C
+ movs r0, 0
+ b _0801D554
+ .align 2, 0
+_0801D498: .4byte gBaseStats
+_0801D49C:
+ ldr r2, _0801D4C0 @ =gBattleMoves
+ lsls r1, r6, 1
+ adds r0, r1, r6
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ mov r9, r0
+ str r1, [sp, 0xC]
+ ldr r3, [sp, 0x4]
+ cmp r3, 0x1A
+ bne _0801D4C4
+ cmp r0, 0x4
+ bne _0801D4C4
+ movs r1, 0x9
+ mov r0, sp
+ strb r1, [r0]
+ b _0801D51E
+ .align 2, 0
+_0801D4C0: .4byte gBattleMoves
+_0801D4C4:
+ ldr r0, _0801D564 @ =gTypeEffectiveness
+ mov r10, r0
+ adds r1, r7, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0801D51E
+ adds r4, r1, 0
+_0801D4D2:
+ ldrb r0, [r4]
+ cmp r0, 0xFE
+ beq _0801D510
+ cmp r0, r9
+ bne _0801D510
+ ldrb r5, [r4, 0x1]
+ ldr r1, [sp, 0x8]
+ cmp r5, r1
+ bne _0801D4EE
+ ldrb r0, [r4, 0x2]
+ adds r1, r6, 0
+ mov r2, sp
+ bl b_attack_effectivity_adapt
+_0801D4EE:
+ cmp r5, r8
+ bne _0801D510
+ ldr r0, _0801D568 @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r3, _0801D56C @ =gBattleMons
+ adds r0, r3
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r8
+ beq _0801D510
+ ldrb r0, [r4, 0x2]
+ adds r1, r6, 0
+ mov r2, sp
+ bl b_attack_effectivity_adapt
+_0801D510:
+ adds r4, 0x3
+ adds r7, 0x3
+ mov r1, r10
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _0801D4D2
+_0801D51E:
+ ldr r3, [sp, 0x4]
+ cmp r3, 0x19
+ bne _0801D550
+ mov r0, sp
+ ldrb r2, [r0]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0801D538
+ movs r0, 0x6
+ ands r0, r2
+ cmp r0, 0x6
+ bne _0801D550
+_0801D538:
+ ldr r0, _0801D570 @ =gBattleMoves
+ ldr r3, [sp, 0xC]
+ adds r1, r3, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _0801D550
+ mov r0, sp
+ movs r1, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_0801D550:
+ mov r0, sp
+ ldrb r0, [r0]
+_0801D554:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801D564: .4byte gTypeEffectiveness
+_0801D568: .4byte gBankTarget
+_0801D56C: .4byte gBattleMons
+_0801D570: .4byte gBattleMoves
+ thumb_func_end ai_rate_move
+
+ thumb_func_start unref_sub_801D574
+unref_sub_801D574: @ 801D574
+ push {r4,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x64
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0801D5AC @ =gBattleMoveDamage
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801D5A6
+ muls r0, r1
+ str r0, [r4]
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801D5A6
+ movs r0, 0x1
+ str r0, [r4]
+_0801D5A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D5AC: .4byte gBattleMoveDamage
+ thumb_func_end unref_sub_801D574
+
+ thumb_func_start atk07_dmg_adjustment
+atk07_dmg_adjustment: @ 801D5B0
+ push {r4-r7,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x64
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0801D608 @ =gBattleMoveDamage
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801D5E2
+ muls r0, r1
+ str r0, [r4]
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801D5E2
+ movs r0, 0x1
+ str r0, [r4]
+_0801D5E2:
+ ldr r7, _0801D60C @ =gBattleMons
+ ldr r6, _0801D610 @ =gBankTarget
+ ldrb r2, [r6]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r0, r7
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _0801D618
+ ldr r1, _0801D614 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x7]
+ ldrb r6, [r0, 0x1A]
+ b _0801D632
+ .align 2, 0
+_0801D608: .4byte gBattleMoveDamage
+_0801D60C: .4byte gBattleMons
+_0801D610: .4byte gBankTarget
+_0801D614: .4byte gEnigmaBerries
+_0801D618:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801D632:
+ ldr r1, _0801D6F4 @ =gStringBank
+ ldr r5, _0801D6F8 @ =gBankTarget
+ ldrb r0, [r5]
+ strb r0, [r1]
+ cmp r4, 0x27
+ bne _0801D670
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcs _0801D670
+ ldrb r0, [r5]
+ movs r1, 0x27
+ bl sub_81074F8
+ ldr r2, _0801D6FC @ =gSpecialStatuses
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_0801D670:
+ ldr r2, _0801D700 @ =gBattleMons
+ ldr r3, _0801D6F8 @ =gBankTarget
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 17
+ ands r1, r0
+ adds r5, r2, 0
+ cmp r1, 0
+ bne _0801D740
+ ldr r2, _0801D704 @ =gBattleMoves
+ ldr r0, _0801D708 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x65
+ beq _0801D6C2
+ ldr r0, _0801D70C @ =gProtectStructs
+ lsls r1, r4, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 30
+ cmp r0, 0
+ blt _0801D6C2
+ ldr r0, _0801D6FC @ =gSpecialStatuses
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _0801D740
+_0801D6C2:
+ ldrb r0, [r3]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r5
+ ldrh r1, [r0, 0x28]
+ ldr r2, _0801D710 @ =gBattleMoveDamage
+ ldr r0, [r2]
+ cmp r1, r0
+ bgt _0801D740
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldr r1, _0801D70C @ =gProtectStructs
+ ldrb r3, [r3]
+ lsls r0, r3, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bge _0801D718
+ ldr r0, _0801D714 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _0801D740
+ .align 2, 0
+_0801D6F4: .4byte gStringBank
+_0801D6F8: .4byte gBankTarget
+_0801D6FC: .4byte gSpecialStatuses
+_0801D700: .4byte gBattleMons
+_0801D704: .4byte gBattleMoves
+_0801D708: .4byte gCurrentMove
+_0801D70C: .4byte gProtectStructs
+_0801D710: .4byte gBattleMoveDamage
+_0801D714: .4byte gBattleMoveFlags
+_0801D718:
+ ldr r0, _0801D750 @ =gSpecialStatuses
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _0801D740
+ ldr r2, _0801D754 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801D758 @ =gLastUsedItem
+ adds r0, r3, 0
+ muls r0, r4
+ adds r0, r5
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+_0801D740:
+ ldr r1, _0801D75C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D750: .4byte gSpecialStatuses
+_0801D754: .4byte gBattleMoveFlags
+_0801D758: .4byte gLastUsedItem
+_0801D75C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk07_dmg_adjustment
+
+ thumb_func_start atk08_dmg_adjustment2
+atk08_dmg_adjustment2: @ 801D760
+ push {r4-r7,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x64
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0801D7B8 @ =gBattleMoveDamage
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801D792
+ muls r0, r1
+ str r0, [r4]
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801D792
+ movs r0, 0x1
+ str r0, [r4]
+_0801D792:
+ ldr r7, _0801D7BC @ =gBattleMons
+ ldr r6, _0801D7C0 @ =gBankTarget
+ ldrb r2, [r6]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r0, r7
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _0801D7C8
+ ldr r1, _0801D7C4 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x7]
+ ldrb r6, [r0, 0x1A]
+ b _0801D7E2
+ .align 2, 0
+_0801D7B8: .4byte gBattleMoveDamage
+_0801D7BC: .4byte gBattleMons
+_0801D7C0: .4byte gBankTarget
+_0801D7C4: .4byte gEnigmaBerries
+_0801D7C8:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801D7E2:
+ ldr r1, _0801D888 @ =gStringBank
+ ldr r5, _0801D88C @ =gBankTarget
+ ldrb r0, [r5]
+ strb r0, [r1]
+ cmp r4, 0x27
+ bne _0801D820
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcs _0801D820
+ ldrb r0, [r5]
+ movs r1, 0x27
+ bl sub_81074F8
+ ldr r2, _0801D890 @ =gSpecialStatuses
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_0801D820:
+ ldr r4, _0801D894 @ =gBattleMons
+ ldr r6, _0801D88C @ =gBankTarget
+ ldrb r2, [r6]
+ movs r7, 0x58
+ adds r3, r2, 0
+ muls r3, r7
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D8CC
+ ldr r5, _0801D898 @ =gProtectStructs
+ lsls r0, r2, 4
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ blt _0801D85E
+ ldr r0, _0801D890 @ =gSpecialStatuses
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _0801D8CC
+_0801D85E:
+ adds r0, r3, r4
+ ldrh r1, [r0, 0x28]
+ ldr r2, _0801D89C @ =gBattleMoveDamage
+ ldr r0, [r2]
+ cmp r1, r0
+ bgt _0801D8CC
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldrb r3, [r6]
+ lsls r0, r3, 4
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bge _0801D8A4
+ ldr r0, _0801D8A0 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _0801D8CC
+ .align 2, 0
+_0801D888: .4byte gStringBank
+_0801D88C: .4byte gBankTarget
+_0801D890: .4byte gSpecialStatuses
+_0801D894: .4byte gBattleMons
+_0801D898: .4byte gProtectStructs
+_0801D89C: .4byte gBattleMoveDamage
+_0801D8A0: .4byte gBattleMoveFlags
+_0801D8A4:
+ ldr r0, _0801D8DC @ =gSpecialStatuses
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _0801D8CC
+ ldr r2, _0801D8E0 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801D8E4 @ =gLastUsedItem
+ adds r0, r3, 0
+ muls r0, r7
+ adds r0, r4
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+_0801D8CC:
+ ldr r1, _0801D8E8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D8DC: .4byte gSpecialStatuses
+_0801D8E0: .4byte gBattleMoveFlags
+_0801D8E4: .4byte gLastUsedItem
+_0801D8E8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk08_dmg_adjustment2
+
+ thumb_func_start atk09_attackanimation
+atk09_attackanimation: @ 801D8EC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ ldr r0, _0801D940 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801D900
+ b _0801DA4A
+_0801D900:
+ ldr r0, _0801D944 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ ldr r3, _0801D948 @ =gCurrentMove
+ cmp r0, 0
+ beq _0801D960
+ ldrh r0, [r3]
+ cmp r0, 0x90
+ beq _0801D960
+ cmp r0, 0xA4
+ beq _0801D960
+ ldr r4, _0801D94C @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801D950 @ =BattleScript_Pausex20
+ str r0, [r4]
+ ldr r1, _0801D954 @ =0x02000000
+ ldr r0, _0801D958 @ =0x00016002
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ ldr r2, _0801D95C @ =0x000160a1
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0801DA4A
+ .align 2, 0
+_0801D940: .4byte gBattleExecBuffer
+_0801D944: .4byte gHitMarker
+_0801D948: .4byte gCurrentMove
+_0801D94C: .4byte gBattlescriptCurrInstr
+_0801D950: .4byte BattleScript_Pausex20
+_0801D954: .4byte 0x02000000
+_0801D958: .4byte 0x00016002
+_0801D95C: .4byte 0x000160a1
+_0801D960:
+ ldr r2, _0801DA0C @ =gBattleMoves
+ ldrh r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D986
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D986
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D992
+_0801D986:
+ ldr r0, _0801DA10 @ =0x02000000
+ ldr r1, _0801DA14 @ =0x000160a1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801DA00
+_0801D992:
+ ldr r0, _0801DA18 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DA3C
+ ldr r1, _0801DA1C @ =gActiveBank
+ ldr r2, _0801DA20 @ =gBankAttacker
+ mov r9, r2
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldrh r1, [r3]
+ ldr r6, _0801DA10 @ =0x02000000
+ ldr r0, _0801DA24 @ =0x00016002
+ adds r0, r6
+ mov r8, r0
+ ldrb r2, [r0]
+ ldr r0, _0801DA28 @ =gBattleMovePower
+ ldrh r3, [r0]
+ ldr r0, _0801DA2C @ =gBattleMoveDamage
+ ldr r0, [r0]
+ str r0, [sp]
+ ldr r5, _0801DA30 @ =gBattleMons
+ mov r0, r9
+ ldrb r4, [r0]
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r5
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ str r0, [sp, 0x4]
+ mov r0, r9
+ ldrb r4, [r0]
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r4, _0801DA34 @ =gDisableStructs
+ adds r0, r4
+ str r0, [sp, 0x8]
+ movs r0, 0
+ bl EmitMoveAnimation
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r2, _0801DA14 @ =0x000160a1
+ adds r6, r2
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ mov r1, r9
+ ldrb r0, [r1]
+ bl MarkBufferBankForExecution
+_0801DA00:
+ ldr r1, _0801DA38 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ b _0801DA4A
+ .align 2, 0
+_0801DA0C: .4byte gBattleMoves
+_0801DA10: .4byte 0x02000000
+_0801DA14: .4byte 0x000160a1
+_0801DA18: .4byte gBattleMoveFlags
+_0801DA1C: .4byte gActiveBank
+_0801DA20: .4byte gBankAttacker
+_0801DA24: .4byte 0x00016002
+_0801DA28: .4byte gBattleMovePower
+_0801DA2C: .4byte gBattleMoveDamage
+_0801DA30: .4byte gBattleMons
+_0801DA34: .4byte gDisableStructs
+_0801DA38: .4byte gBattlescriptCurrInstr
+_0801DA3C:
+ ldr r4, _0801DA58 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801DA5C @ =BattleScript_Pausex20
+ str r0, [r4]
+_0801DA4A:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DA58: .4byte gBattlescriptCurrInstr
+_0801DA5C: .4byte BattleScript_Pausex20
+ thumb_func_end atk09_attackanimation
+
+ thumb_func_start atk0A_waitanimation
+atk0A_waitanimation: @ 801DA60
+ push {lr}
+ ldr r0, _0801DA78 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801DA72
+ ldr r1, _0801DA7C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801DA72:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DA78: .4byte gBattleExecBuffer
+_0801DA7C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk0A_waitanimation
+
+ thumb_func_start atk0B_healthbarupdate
+atk0B_healthbarupdate: @ 801DA80
+ push {r4,r5,lr}
+ ldr r0, _0801DAE4 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801DB36
+ ldr r0, _0801DAE8 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DB2E
+ ldr r0, _0801DAEC @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r2, _0801DAF0 @ =gActiveBank
+ strb r0, [r2]
+ ldr r1, _0801DAF4 @ =gBattleMons
+ ldrb r2, [r2]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _0801DB00
+ ldr r0, _0801DAF8 @ =gDisableStructs
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ beq _0801DB00
+ ldr r0, _0801DAFC @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DB00
+ movs r0, 0x80
+ adds r1, r2, 0
+ bl PrepareStringBattle
+ b _0801DB2E
+ .align 2, 0
+_0801DAE4: .4byte gBattleExecBuffer
+_0801DAE8: .4byte gBattleMoveFlags
+_0801DAEC: .4byte gBattlescriptCurrInstr
+_0801DAF0: .4byte gActiveBank
+_0801DAF4: .4byte gBattleMons
+_0801DAF8: .4byte gDisableStructs
+_0801DAFC: .4byte gHitMarker
+_0801DB00:
+ ldr r5, _0801DB3C @ =gBattleMoveDamage
+ ldrh r1, [r5]
+ movs r0, 0
+ bl EmitHealthBarUpdate
+ ldr r4, _0801DB40 @ =gActiveBank
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801DB2E
+ ldr r0, [r5]
+ cmp r0, 0
+ ble _0801DB2E
+ ldr r0, _0801DB44 @ =gBattleResults
+ ldrb r1, [r0, 0x5]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+_0801DB2E:
+ ldr r1, _0801DB48 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_0801DB36:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DB3C: .4byte gBattleMoveDamage
+_0801DB40: .4byte gActiveBank
+_0801DB44: .4byte gBattleResults
+_0801DB48: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk0B_healthbarupdate
+
+ thumb_func_start atk0C_datahpupdate
+atk0C_datahpupdate: @ 801DB4C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r0, _0801DB74 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801DB5A
+ b _0801DF2E
+_0801DB5A:
+ ldr r0, _0801DB78 @ =0x02000000
+ ldr r1, _0801DB7C @ =0x0001601c
+ adds r0, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _0801DB80
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DB80
+ movs r6, 0x3F
+ ands r6, r1
+ b _0801DB90
+ .align 2, 0
+_0801DB74: .4byte gBattleExecBuffer
+_0801DB78: .4byte 0x02000000
+_0801DB7C: .4byte 0x0001601c
+_0801DB80:
+ ldr r2, _0801DC1C @ =gBattleMoves
+ ldr r0, _0801DC20 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r6, [r0, 0x2]
+_0801DB90:
+ ldr r0, _0801DC24 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801DB9E
+ b _0801DF00
+_0801DB9E:
+ ldr r0, _0801DC28 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r7, _0801DC2C @ =gActiveBank
+ strb r0, [r7]
+ ldr r1, _0801DC30 @ =gBattleMons
+ ldrb r2, [r7]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _0801DCB4
+ ldr r0, _0801DC34 @ =gDisableStructs
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r4, r1, r0
+ ldrb r1, [r4, 0xA]
+ mov r12, r0
+ cmp r1, 0
+ beq _0801DCB4
+ ldr r0, _0801DC38 @ =gHitMarker
+ ldr r3, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r3, r0
+ cmp r3, 0
+ bne _0801DCB4
+ adds r5, r1, 0
+ ldr r6, _0801DC3C @ =gBattleMoveDamage
+ ldr r4, [r6]
+ cmp r5, r4
+ blt _0801DC48
+ ldr r0, _0801DC40 @ =gSpecialStatuses
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0801DC02
+ str r4, [r1]
+_0801DC02:
+ ldrb r0, [r7]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r12
+ ldr r2, [r6]
+ ldrb r0, [r1, 0xA]
+ subs r0, r2
+ strb r0, [r1, 0xA]
+ ldr r1, _0801DC44 @ =gHP_dealt
+ ldr r0, [r6]
+ str r0, [r1]
+ b _0801DC78
+ .align 2, 0
+_0801DC1C: .4byte gBattleMoves
+_0801DC20: .4byte gCurrentMove
+_0801DC24: .4byte gBattleMoveFlags
+_0801DC28: .4byte gBattlescriptCurrInstr
+_0801DC2C: .4byte gActiveBank
+_0801DC30: .4byte gBattleMons
+_0801DC34: .4byte gDisableStructs
+_0801DC38: .4byte gHitMarker
+_0801DC3C: .4byte gBattleMoveDamage
+_0801DC40: .4byte gSpecialStatuses
+_0801DC44: .4byte gHP_dealt
+_0801DC48:
+ ldr r0, _0801DCA0 @ =gSpecialStatuses
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0801DC5C
+ str r5, [r1]
+_0801DC5C:
+ ldr r2, _0801DCA4 @ =gHP_dealt
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r0, [r0, 0xA]
+ str r0, [r2]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ strb r3, [r0, 0xA]
+_0801DC78:
+ ldr r0, _0801DCA8 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _0801DC8C
+ b _0801DF26
+_0801DC8C:
+ ldr r4, _0801DCAC @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ bl b_movescr_stack_push_cursor
+ ldr r0, _0801DCB0 @ =BattleScript_SubstituteFade
+ str r0, [r4]
+ b _0801DF2E
+ .align 2, 0
+_0801DCA0: .4byte gSpecialStatuses
+_0801DCA4: .4byte gHP_dealt
+_0801DCA8: .4byte gActiveBank
+_0801DCAC: .4byte gBattlescriptCurrInstr
+_0801DCB0: .4byte BattleScript_SubstituteFade
+_0801DCB4:
+ ldr r0, _0801DCF4 @ =gHitMarker
+ ldr r2, [r0]
+ ldr r1, _0801DCF8 @ =0xfffffeff
+ ands r2, r1
+ str r2, [r0]
+ ldr r1, _0801DCFC @ =gBattleMoveDamage
+ ldr r5, [r1]
+ mov r12, r0
+ adds r7, r1, 0
+ cmp r5, 0
+ bge _0801DD08
+ ldr r4, _0801DD00 @ =gBattleMons
+ ldr r2, _0801DD04 @ =gActiveBank
+ ldrb r0, [r2]
+ movs r3, 0x58
+ adds r1, r0, 0
+ muls r1, r3
+ adds r1, r4
+ ldrh r0, [r1, 0x28]
+ subs r0, r5
+ strh r0, [r1, 0x28]
+ ldrb r0, [r2]
+ muls r0, r3
+ adds r1, r0, r4
+ ldrh r3, [r1, 0x2C]
+ ldrh r0, [r1, 0x28]
+ adds r5, r2, 0
+ cmp r0, r3
+ bhi _0801DCF0
+ b _0801DEC6
+_0801DCF0:
+ strh r3, [r1, 0x28]
+ b _0801DEC6
+ .align 2, 0
+_0801DCF4: .4byte gHitMarker
+_0801DCF8: .4byte 0xfffffeff
+_0801DCFC: .4byte gBattleMoveDamage
+_0801DD00: .4byte gBattleMons
+_0801DD04: .4byte gActiveBank
+_0801DD08:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _0801DD24
+ movs r0, 0x21
+ negs r0, r0
+ ands r2, r0
+ mov r0, r12
+ str r2, [r0]
+ ldr r5, _0801DD20 @ =gActiveBank
+ b _0801DD6C
+ .align 2, 0
+_0801DD20: .4byte gActiveBank
+_0801DD24:
+ ldr r0, _0801DD4C @ =gTakenDmg
+ ldr r2, _0801DD50 @ =gActiveBank
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ adds r0, r5
+ str r0, [r1]
+ ldr r0, _0801DD54 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ adds r5, r2, 0
+ cmp r0, 0
+ bne _0801DD60
+ ldr r1, _0801DD58 @ =gTakenDmgBanks
+ ldrb r0, [r5]
+ adds r0, r1
+ ldr r1, _0801DD5C @ =gBankAttacker
+ b _0801DD68
+ .align 2, 0
+_0801DD4C: .4byte gTakenDmg
+_0801DD50: .4byte gActiveBank
+_0801DD54: .4byte gBattlescriptCurrInstr
+_0801DD58: .4byte gTakenDmgBanks
+_0801DD5C: .4byte gBankAttacker
+_0801DD60:
+ ldr r1, _0801DD8C @ =gTakenDmgBanks
+ ldrb r0, [r5]
+ adds r0, r1
+ ldr r1, _0801DD90 @ =gBankTarget
+_0801DD68:
+ ldrb r1, [r1]
+ strb r1, [r0]
+_0801DD6C:
+ ldr r4, _0801DD94 @ =gBattleMons
+ ldrb r0, [r5]
+ movs r3, 0x58
+ muls r0, r3
+ adds r2, r0, r4
+ ldrh r0, [r2, 0x28]
+ ldr r1, [r7]
+ cmp r0, r1
+ ble _0801DD9C
+ subs r0, r1
+ strh r0, [r2, 0x28]
+ ldr r0, _0801DD98 @ =gHP_dealt
+ str r1, [r0]
+ adds r7, r0, 0
+ b _0801DDAC
+ .align 2, 0
+_0801DD8C: .4byte gTakenDmgBanks
+_0801DD90: .4byte gBankTarget
+_0801DD94: .4byte gBattleMons
+_0801DD98: .4byte gHP_dealt
+_0801DD9C:
+ ldr r2, _0801DE20 @ =gHP_dealt
+ str r0, [r2]
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r0, r4
+ movs r1, 0
+ strh r1, [r0, 0x28]
+ adds r7, r2, 0
+_0801DDAC:
+ ldr r2, _0801DE24 @ =gSpecialStatuses
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r2, 0x4
+ adds r3, r0, r1
+ ldr r0, [r3]
+ adds r4, r2, 0
+ cmp r0, 0
+ bne _0801DDD4
+ mov r1, r12
+ ldr r0, [r1]
+ movs r1, 0x80
+ lsls r1, 13
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DDD4
+ ldr r0, [r7]
+ str r0, [r3]
+_0801DDD4:
+ cmp r6, 0x8
+ bhi _0801DE5C
+ mov r1, r12
+ ldr r0, [r1]
+ movs r1, 0x80
+ lsls r1, 13
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DE58
+ ldr r0, _0801DE28 @ =gCurrentMove
+ ldrh r0, [r0]
+ cmp r0, 0xDC
+ beq _0801DE58
+ ldr r3, _0801DE2C @ =gProtectStructs
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r1, r3, 0x4
+ adds r0, r1
+ ldr r2, [r7]
+ str r2, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r0, r1
+ str r2, [r0]
+ ldr r0, _0801DE30 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0801DE38
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r3
+ ldr r2, _0801DE34 @ =gBankAttacker
+ b _0801DE40
+ .align 2, 0
+_0801DE20: .4byte gHP_dealt
+_0801DE24: .4byte gSpecialStatuses
+_0801DE28: .4byte gCurrentMove
+_0801DE2C: .4byte gProtectStructs
+_0801DE30: .4byte gBattlescriptCurrInstr
+_0801DE34: .4byte gBankAttacker
+_0801DE38:
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r3
+ ldr r2, _0801DE54 @ =gBankTarget
+_0801DE40:
+ ldrb r1, [r2]
+ strb r1, [r0, 0xC]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r2]
+ strb r1, [r0, 0x10]
+ b _0801DEC6
+ .align 2, 0
+_0801DE54: .4byte gBankTarget
+_0801DE58:
+ cmp r6, 0x8
+ bls _0801DEC6
+_0801DE5C:
+ mov r1, r12
+ ldr r0, [r1]
+ movs r1, 0x80
+ lsls r1, 13
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DEC6
+ ldr r3, _0801DEA0 @ =gProtectStructs
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r1, r3, 0
+ adds r1, 0x8
+ adds r0, r1
+ ldr r2, [r7]
+ str r2, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0xC
+ adds r0, r1
+ str r2, [r0]
+ ldr r0, _0801DEA4 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0801DEAC
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r3
+ ldr r2, _0801DEA8 @ =gBankAttacker
+ b _0801DEB4
+ .align 2, 0
+_0801DEA0: .4byte gProtectStructs
+_0801DEA4: .4byte gBattlescriptCurrInstr
+_0801DEA8: .4byte gBankAttacker
+_0801DEAC:
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r3
+ ldr r2, _0801DEF4 @ =gBankTarget
+_0801DEB4:
+ ldrb r1, [r2]
+ strb r1, [r0, 0xD]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r2]
+ strb r1, [r0, 0x11]
+_0801DEC6:
+ mov r1, r12
+ ldr r0, [r1]
+ ldr r1, _0801DEF8 @ =0xffefffff
+ ands r0, r1
+ mov r1, r12
+ str r0, [r1]
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _0801DEFC @ =gUnknown_02024AA8
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2A
+ movs r2, 0
+ movs r3, 0x2
+ bl EmitSetAttributes
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+ b _0801DF26
+ .align 2, 0
+_0801DEF4: .4byte gBankTarget
+_0801DEF8: .4byte 0xffefffff
+_0801DEFC: .4byte gUnknown_02024AA8
+_0801DF00:
+ ldr r0, _0801DF38 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _0801DF3C @ =gActiveBank
+ strb r0, [r1]
+ ldr r2, _0801DF40 @ =gSpecialStatuses
+ ldrb r1, [r1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r1, r0, r2
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0801DF26
+ ldr r0, _0801DF44 @ =0x0000ffff
+ str r0, [r1]
+_0801DF26:
+ ldr r1, _0801DF38 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_0801DF2E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DF38: .4byte gBattlescriptCurrInstr
+_0801DF3C: .4byte gActiveBank
+_0801DF40: .4byte gSpecialStatuses
+_0801DF44: .4byte 0x0000ffff
+ thumb_func_end atk0C_datahpupdate
+
+ thumb_func_start atk0D_critmessage
+atk0D_critmessage: @ 801DF48
+ push {lr}
+ ldr r0, _0801DF84 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801DF7E
+ ldr r0, _0801DF88 @ =gCritMultiplier
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0801DF76
+ ldr r0, _0801DF8C @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DF76
+ ldr r0, _0801DF90 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0xD9
+ bl PrepareStringBattle
+ ldr r1, _0801DF94 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x7]
+_0801DF76:
+ ldr r1, _0801DF98 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801DF7E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DF84: .4byte gBattleExecBuffer
+_0801DF88: .4byte gCritMultiplier
+_0801DF8C: .4byte gBattleMoveFlags
+_0801DF90: .4byte gBankAttacker
+_0801DF94: .4byte gBattleCommunication
+_0801DF98: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk0D_critmessage
+
+ thumb_func_start atk0E_effectiveness_sound
+atk0E_effectiveness_sound: @ 801DF9C
+ push {r4,lr}
+ ldr r0, _0801DFD4 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801E05C
+ ldr r4, _0801DFD8 @ =gActiveBank
+ ldr r0, _0801DFDC @ =gBankTarget
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r1, _0801DFE0 @ =gBattleMoveFlags
+ ldrb r2, [r1]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _0801E054
+ movs r0, 0xFE
+ ands r0, r2
+ cmp r0, 0x10
+ beq _0801E00E
+ cmp r0, 0x10
+ bgt _0801DFEA
+ cmp r0, 0x4
+ beq _0801DFFE
+ cmp r0, 0x4
+ bgt _0801DFE4
+ cmp r0, 0x2
+ beq _0801DFF8
+ b _0801E00E
+ .align 2, 0
+_0801DFD4: .4byte gBattleExecBuffer
+_0801DFD8: .4byte gActiveBank
+_0801DFDC: .4byte gBankTarget
+_0801DFE0: .4byte gBattleMoveFlags
+_0801DFE4:
+ cmp r0, 0x8
+ beq _0801E054
+ b _0801E00E
+_0801DFEA:
+ cmp r0, 0x40
+ beq _0801E00E
+ cmp r0, 0x40
+ bgt _0801E00E
+ cmp r0, 0x20
+ beq _0801E054
+ b _0801E00E
+_0801DFF8:
+ movs r0, 0
+ movs r1, 0xE
+ b _0801E002
+_0801DFFE:
+ movs r0, 0
+ movs r1, 0xC
+_0801E002:
+ bl EmitEffectivenessSound
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ b _0801E054
+_0801E00E:
+ ldrb r1, [r1]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E01E
+ movs r0, 0
+ movs r1, 0xE
+ b _0801E02A
+_0801E01E:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E03C
+ movs r0, 0
+ movs r1, 0xC
+_0801E02A:
+ bl EmitEffectivenessSound
+ ldr r0, _0801E038 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ b _0801E054
+ .align 2, 0
+_0801E038: .4byte gActiveBank
+_0801E03C:
+ movs r0, 0x28
+ ands r0, r1
+ cmp r0, 0
+ bne _0801E054
+ movs r0, 0
+ movs r1, 0xD
+ bl EmitEffectivenessSound
+ ldr r0, _0801E064 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+_0801E054:
+ ldr r1, _0801E068 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801E05C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E064: .4byte gActiveBank
+_0801E068: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk0E_effectiveness_sound
+
+ thumb_func_start atk0F_resultmessage
+atk0F_resultmessage: @ 801E06C
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r0, _0801E0A8 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E07A
+ b _0801E20C
+_0801E07A:
+ ldr r1, _0801E0AC @ =gBattleMoveFlags
+ ldrb r2, [r1]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r2
+ adds r6, r1, 0
+ ldr r7, _0801E0B0 @ =gBattleCommunication
+ cmp r0, 0
+ beq _0801E0B8
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _0801E09A
+ ldrb r0, [r7, 0x6]
+ cmp r0, 0x2
+ bls _0801E0B8
+_0801E09A:
+ ldr r1, _0801E0B4 @ =gMissStrings
+ ldrb r0, [r7, 0x6]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r3, [r0]
+ strb r4, [r7, 0x7]
+ b _0801E1F6
+ .align 2, 0
+_0801E0A8: .4byte gBattleExecBuffer
+_0801E0AC: .4byte gBattleMoveFlags
+_0801E0B0: .4byte gBattleCommunication
+_0801E0B4: .4byte gMissStrings
+_0801E0B8:
+ movs r0, 0x1
+ strb r0, [r7, 0x7]
+ ldrb r5, [r6]
+ movs r0, 0xFE
+ ands r0, r5
+ cmp r0, 0x10
+ beq _0801E0FC
+ cmp r0, 0x10
+ bgt _0801E0DE
+ cmp r0, 0x4
+ beq _0801E0F8
+ cmp r0, 0x4
+ bgt _0801E0D8
+ cmp r0, 0x2
+ beq _0801E0F4
+ b _0801E144
+_0801E0D8:
+ cmp r0, 0x8
+ beq _0801E150
+ b _0801E144
+_0801E0DE:
+ cmp r0, 0x40
+ beq _0801E100
+ cmp r0, 0x40
+ bgt _0801E0EE
+ cmp r0, 0x20
+ bne _0801E0EC
+ b _0801E1F0
+_0801E0EC:
+ b _0801E144
+_0801E0EE:
+ cmp r0, 0x80
+ beq _0801E104
+ b _0801E144
+_0801E0F4:
+ movs r3, 0xDE
+ b _0801E1FA
+_0801E0F8:
+ movs r3, 0xDD
+ b _0801E1FA
+_0801E0FC:
+ movs r3, 0xDA
+ b _0801E1FA
+_0801E100:
+ movs r3, 0x99
+ b _0801E1FA
+_0801E104:
+ ldr r4, _0801E12C @ =gLastUsedItem
+ ldr r2, _0801E130 @ =gBattleMons
+ ldr r3, _0801E134 @ =gBankTarget
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ ldr r1, _0801E138 @ =gStringBank
+ ldrb r0, [r3]
+ strb r0, [r1]
+ movs r0, 0x3F
+ ands r0, r5
+ strb r0, [r6]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801E13C @ =gBattlescriptCurrInstr
+ ldr r0, _0801E140 @ =BattleScript_HangedOnMsg
+ b _0801E20A
+ .align 2, 0
+_0801E12C: .4byte gLastUsedItem
+_0801E130: .4byte gBattleMons
+_0801E134: .4byte gBankTarget
+_0801E138: .4byte gStringBank
+_0801E13C: .4byte gBattlescriptCurrInstr
+_0801E140: .4byte BattleScript_HangedOnMsg
+_0801E144:
+ adds r2, r6, 0
+ ldrb r5, [r2]
+ movs r0, 0x8
+ ands r0, r5
+ cmp r0, 0
+ beq _0801E154
+_0801E150:
+ movs r3, 0x1B
+ b _0801E1FA
+_0801E154:
+ movs r0, 0x10
+ ands r0, r5
+ cmp r0, 0
+ beq _0801E17C
+ movs r0, 0xEF
+ ands r0, r5
+ movs r1, 0xFD
+ ands r0, r1
+ movs r1, 0xFB
+ ands r0, r1
+ strb r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801E174 @ =gBattlescriptCurrInstr
+ ldr r0, _0801E178 @ =BattleScript_OneHitKOMsg
+ b _0801E20A
+ .align 2, 0
+_0801E174: .4byte gBattlescriptCurrInstr
+_0801E178: .4byte BattleScript_OneHitKOMsg
+_0801E17C:
+ movs r0, 0x40
+ ands r0, r5
+ cmp r0, 0
+ beq _0801E19C
+ movs r0, 0x3F
+ ands r0, r5
+ strb r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801E194 @ =gBattlescriptCurrInstr
+ ldr r0, _0801E198 @ =BattleScript_EnduredMsg
+ b _0801E20A
+ .align 2, 0
+_0801E194: .4byte gBattlescriptCurrInstr
+_0801E198: .4byte BattleScript_EnduredMsg
+_0801E19C:
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ beq _0801E1E4
+ ldr r4, _0801E1CC @ =gLastUsedItem
+ ldr r2, _0801E1D0 @ =gBattleMons
+ ldr r3, _0801E1D4 @ =gBankTarget
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ ldr r1, _0801E1D8 @ =gStringBank
+ ldrb r0, [r3]
+ strb r0, [r1]
+ movs r0, 0x3F
+ ands r0, r5
+ strb r0, [r6]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801E1DC @ =gBattlescriptCurrInstr
+ ldr r0, _0801E1E0 @ =BattleScript_HangedOnMsg
+ b _0801E20A
+ .align 2, 0
+_0801E1CC: .4byte gLastUsedItem
+_0801E1D0: .4byte gBattleMons
+_0801E1D4: .4byte gBankTarget
+_0801E1D8: .4byte gStringBank
+_0801E1DC: .4byte gBattlescriptCurrInstr
+_0801E1E0: .4byte BattleScript_HangedOnMsg
+_0801E1E4:
+ movs r0, 0x20
+ ands r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0801E1F4
+_0801E1F0:
+ movs r3, 0xE5
+ b _0801E1FA
+_0801E1F4:
+ strb r0, [r7, 0x7]
+_0801E1F6:
+ cmp r3, 0
+ beq _0801E204
+_0801E1FA:
+ adds r0, r3, 0
+ ldr r1, _0801E214 @ =gBankAttacker
+ ldrb r1, [r1]
+ bl PrepareStringBattle
+_0801E204:
+ ldr r1, _0801E218 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+_0801E20A:
+ str r0, [r1]
+_0801E20C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E214: .4byte gBankAttacker
+_0801E218: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk0F_resultmessage
+
+ thumb_func_start atk10_printstring
+atk10_printstring: @ 801E21C
+ push {r4,lr}
+ ldr r0, _0801E24C @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801E246
+ ldr r4, _0801E250 @ =gBattlescriptCurrInstr
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1]
+ ldrb r1, [r1, 0x2]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r1, _0801E254 @ =gBankAttacker
+ ldrb r1, [r1]
+ bl PrepareStringBattle
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+ ldr r1, _0801E258 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x7]
+_0801E246:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E24C: .4byte gBattleExecBuffer
+_0801E250: .4byte gBattlescriptCurrInstr
+_0801E254: .4byte gBankAttacker
+_0801E258: .4byte gBattleCommunication
+ thumb_func_end atk10_printstring
+
+ thumb_func_start atk11_printstring_playeronly
+atk11_printstring_playeronly: @ 801E25C
+ push {r4,r5,lr}
+ ldr r5, _0801E290 @ =gActiveBank
+ ldr r0, _0801E294 @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r4, _0801E298 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ movs r0, 0
+ bl EmitPrintStringPlayerOnly
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+ ldr r1, _0801E29C @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x7]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E290: .4byte gActiveBank
+_0801E294: .4byte gBankAttacker
+_0801E298: .4byte gBattlescriptCurrInstr
+_0801E29C: .4byte gBattleCommunication
+ thumb_func_end atk11_printstring_playeronly
+
+ thumb_func_start atk12_waitmessage
+atk12_waitmessage: @ 801E2A0
+ push {r4-r6,lr}
+ ldr r0, _0801E2BC @ =gBattleExecBuffer
+ ldr r4, [r0]
+ cmp r4, 0
+ bne _0801E2EE
+ ldr r6, _0801E2C0 @ =gBattleCommunication
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _0801E2C8
+ ldr r1, _0801E2C4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x3
+ str r0, [r1]
+ b _0801E2EE
+ .align 2, 0
+_0801E2BC: .4byte gBattleExecBuffer
+_0801E2C0: .4byte gBattleCommunication
+_0801E2C4: .4byte gBattlescriptCurrInstr
+_0801E2C8:
+ ldr r5, _0801E2F4 @ =gBattlescriptCurrInstr
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r3, _0801E2F8 @ =gPauseCounterBattle
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r1
+ bcc _0801E2EE
+ movs r1, 0
+ strh r4, [r3]
+ adds r0, r2, 0x3
+ str r0, [r5]
+ strb r1, [r6, 0x7]
+_0801E2EE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E2F4: .4byte gBattlescriptCurrInstr
+_0801E2F8: .4byte gPauseCounterBattle
+ thumb_func_end atk12_waitmessage
+
+ thumb_func_start atk13_printfromtable
+atk13_printfromtable: @ 801E2FC
+ push {r4,r5,lr}
+ ldr r0, _0801E340 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801E33A
+ ldr r4, _0801E344 @ =gBattlescriptCurrInstr
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r5, _0801E348 @ =gBattleCommunication
+ ldrb r0, [r5, 0x5]
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, _0801E34C @ =gBankAttacker
+ ldrb r1, [r1]
+ bl PrepareStringBattle
+ ldr r0, [r4]
+ adds r0, 0x5
+ str r0, [r4]
+ movs r0, 0x1
+ strb r0, [r5, 0x7]
+_0801E33A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E340: .4byte gBattleExecBuffer
+_0801E344: .4byte gBattlescriptCurrInstr
+_0801E348: .4byte gBattleCommunication
+_0801E34C: .4byte gBankAttacker
+ thumb_func_end atk13_printfromtable
+
+ thumb_func_start atk14_printfromtable_playeronly
+atk14_printfromtable_playeronly: @ 801E350
+ push {r4-r6,lr}
+ ldr r0, _0801E3A0 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801E39A
+ ldr r5, _0801E3A4 @ =gBattlescriptCurrInstr
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r6, _0801E3A8 @ =gBattleCommunication
+ ldrb r0, [r6, 0x5]
+ lsls r0, 1
+ adds r1, r0
+ ldr r4, _0801E3AC @ =gActiveBank
+ ldr r0, _0801E3B0 @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldrh r1, [r1]
+ movs r0, 0
+ bl EmitPrintStringPlayerOnly
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r0, [r5]
+ adds r0, 0x5
+ str r0, [r5]
+ movs r0, 0x1
+ strb r0, [r6, 0x7]
+_0801E39A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E3A0: .4byte gBattleExecBuffer
+_0801E3A4: .4byte gBattlescriptCurrInstr
+_0801E3A8: .4byte gBattleCommunication
+_0801E3AC: .4byte gActiveBank
+_0801E3B0: .4byte gBankAttacker
+ thumb_func_end atk14_printfromtable_playeronly
+
+ thumb_func_start sub_801E3B4
+sub_801E3B4: @ 801E3B4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r0, _0801E3E4 @ =gNoOfAllBanks
+ ldrb r3, [r0]
+ cmp r1, r3
+ bge _0801E3DA
+ ldr r4, _0801E3E8 @ =gTurnOrder
+ ldrb r0, [r4]
+ cmp r0, r2
+ beq _0801E3DA
+_0801E3CC:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _0801E3DA
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0801E3CC
+_0801E3DA:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801E3E4: .4byte gNoOfAllBanks
+_0801E3E8: .4byte gTurnOrder
+ thumb_func_end sub_801E3B4
+
+ thumb_func_start sub_801E3EC
+sub_801E3EC: @ 801E3EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r0, 0
+ mov r10, r0
+ movs r6, 0
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ ldr r1, _0801E430 @ =gBattleCommunication
+ ldrb r3, [r1, 0x3]
+ movs r0, 0x40
+ ands r0, r3
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _0801E444
+ ldr r2, _0801E434 @ =gEffectBank
+ ldr r0, _0801E438 @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0xBF
+ ands r0, r3
+ strb r0, [r7, 0x3]
+ movs r6, 0x40
+ ldr r0, _0801E43C @ =0x02000000
+ ldr r1, _0801E440 @ =gBankTarget
+ b _0801E450
+ .align 2, 0
+_0801E430: .4byte gBattleCommunication
+_0801E434: .4byte gEffectBank
+_0801E438: .4byte gBankAttacker
+_0801E43C: .4byte 0x02000000
+_0801E440: .4byte gBankTarget
+_0801E444:
+ ldr r2, _0801E538 @ =gEffectBank
+ ldr r0, _0801E53C @ =gBankTarget
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _0801E540 @ =0x02000000
+ ldr r1, _0801E544 @ =gBankAttacker
+_0801E450:
+ ldrb r1, [r1]
+ ldr r3, _0801E548 @ =0x00016003
+ adds r0, r3
+ strb r1, [r0]
+ mov r8, r2
+ ldr r2, _0801E54C @ =gBattleMons
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bne _0801E48A
+ ldr r0, _0801E550 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ bne _0801E48A
+ cmp r4, 0
+ bne _0801E48A
+ ldrb r0, [r7, 0x3]
+ cmp r0, 0x9
+ bhi _0801E48A
+ bl _0801F5DC
+_0801E48A:
+ mov r1, r8
+ ldrb r0, [r1]
+ bl GetBankIdentity
+ ldr r2, _0801E554 @ =gSideAffecting
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E4C4
+ ldr r0, _0801E550 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ bne _0801E4C4
+ cmp r4, 0
+ bne _0801E4C4
+ ldr r0, _0801E558 @ =gBattleCommunication
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0x7
+ bhi _0801E4C4
+ bl _0801F5DC
+_0801E4C4:
+ ldr r3, _0801E54C @ =gBattleMons
+ ldr r2, _0801E538 @ =gEffectBank
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ mov r8, r2
+ mov r9, r3
+ cmp r0, 0
+ bne _0801E4EA
+ ldr r0, _0801E558 @ =gBattleCommunication
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0xB
+ beq _0801E4EA
+ cmp r0, 0x1F
+ beq _0801E4EA
+ bl _0801F5DC
+_0801E4EA:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r9
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E50C
+ cmp r6, 0x40
+ beq _0801E50C
+ bl _0801F5DC
+_0801E50C:
+ ldr r0, _0801E558 @ =gBattleCommunication
+ ldrb r1, [r0, 0x3]
+ adds r7, r0, 0
+ cmp r1, 0x6
+ bls _0801E518
+ b _0801EB4A
+_0801E518:
+ ldr r1, _0801E55C @ =gStatusFlagsForMoveEffects
+ ldrb r0, [r7, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x10
+ bne _0801E528
+ b _0801E714
+_0801E528:
+ cmp r0, 0x10
+ bhi _0801E560
+ cmp r0, 0x7
+ beq _0801E57A
+ cmp r0, 0x8
+ bne _0801E536
+ b _0801E630
+_0801E536:
+ b _0801EA14
+ .align 2, 0
+_0801E538: .4byte gEffectBank
+_0801E53C: .4byte gBankTarget
+_0801E540: .4byte 0x02000000
+_0801E544: .4byte gBankAttacker
+_0801E548: .4byte 0x00016003
+_0801E54C: .4byte gBattleMons
+_0801E550: .4byte gHitMarker
+_0801E554: .4byte gSideAffecting
+_0801E558: .4byte gBattleCommunication
+_0801E55C: .4byte gStatusFlagsForMoveEffects
+_0801E560:
+ cmp r0, 0x40
+ bne _0801E566
+ b _0801E888
+_0801E566:
+ cmp r0, 0x40
+ bhi _0801E572
+ cmp r0, 0x20
+ bne _0801E570
+ b _0801E7EA
+_0801E570:
+ b _0801EA14
+_0801E572:
+ cmp r0, 0x80
+ bne _0801E578
+ b _0801E8E4
+_0801E578:
+ b _0801EA14
+_0801E57A:
+ mov r3, r8
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2B
+ beq _0801E5DC
+ ldr r0, _0801E5D4 @ =gActiveBank
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _0801E5D8 @ =gNoOfAllBanks
+ ldrb r3, [r1]
+ adds r7, r0, 0
+ mov r12, r1
+ cmp r3, 0
+ beq _0801E5E8
+ mov r4, r9
+ ldr r0, [r4, 0x50]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ bne _0801E5E8
+ adds r1, r7, 0
+ mov r6, r9
+ adds r6, 0x50
+ movs r5, 0x58
+ movs r4, 0x70
+_0801E5B4:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r3
+ bcs _0801E5E8
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r6
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _0801E5B4
+ b _0801E5E8
+ .align 2, 0
+_0801E5D4: .4byte gActiveBank
+_0801E5D8: .4byte gNoOfAllBanks
+_0801E5DC:
+ ldr r0, _0801E628 @ =gActiveBank
+ ldr r2, _0801E62C @ =gNoOfAllBanks
+ ldrb r1, [r2]
+ strb r1, [r0]
+ adds r7, r0, 0
+ mov r12, r2
+_0801E5E8:
+ mov r0, r8
+ ldrb r2, [r0]
+ movs r0, 0x58
+ adds r1, r2, 0
+ muls r1, r0
+ mov r0, r9
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E600
+ b _0801EA14
+_0801E600:
+ ldrb r0, [r7]
+ mov r3, r12
+ ldrb r3, [r3]
+ cmp r0, r3
+ beq _0801E60C
+ b _0801EA14
+_0801E60C:
+ mov r4, r9
+ adds r0, r1, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x48
+ bne _0801E61A
+ b _0801EA14
+_0801E61A:
+ cmp r0, 0xF
+ bne _0801E620
+ b _0801EA14
+_0801E620:
+ adds r0, r2, 0
+ bl CancelMultiTurnMoves
+ b _0801EA04
+ .align 2, 0
+_0801E628: .4byte gActiveBank
+_0801E62C: .4byte gNoOfAllBanks
+_0801E630:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x11
+ bne _0801E688
+ cmp r4, 0x1
+ beq _0801E64A
+ cmp r5, 0x80
+ bne _0801E688
+_0801E64A:
+ ldr r0, _0801E678 @ =gLastUsedAbility
+ strb r1, [r0]
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r1, 0x11
+ bl sub_81074C4
+ ldr r4, _0801E67C @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E680 @ =BattleScript_PSNPrevention
+_0801E664:
+ str r0, [r4]
+ ldr r2, _0801E684 @ =gHitMarker
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E676
+ b _0801E928
+_0801E676:
+ b _0801E94C
+ .align 2, 0
+_0801E678: .4byte gLastUsedAbility
+_0801E67C: .4byte gBattlescriptCurrInstr
+_0801E680: .4byte BattleScript_PSNPrevention
+_0801E684: .4byte gHitMarker
+_0801E688:
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r1, 0x3
+ beq _0801E6AC
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0801E6AC
+ cmp r1, 0x8
+ beq _0801E6AC
+ cmp r0, 0x8
+ bne _0801E6C6
+_0801E6AC:
+ ldr r0, _0801E710 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E6C6
+ cmp r4, 0x1
+ bne _0801E6C0
+ b _0801E98C
+_0801E6C0:
+ cmp r5, 0x80
+ bne _0801E6C6
+ b _0801E98C
+_0801E6C6:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r1, r0
+ mov r4, r9
+ adds r3, r1, r4
+ adds r0, r3, 0
+ adds r0, 0x21
+ ldrb r4, [r0]
+ cmp r4, 0x3
+ bne _0801E6DE
+ b _0801EA14
+_0801E6DE:
+ adds r0, 0x1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _0801E6E8
+ b _0801EA14
+_0801E6E8:
+ cmp r4, 0x8
+ bne _0801E6EE
+ b _0801EA14
+_0801E6EE:
+ cmp r0, 0x8
+ bne _0801E6F4
+ b _0801EA14
+_0801E6F4:
+ mov r0, r9
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E702
+ b _0801EA14
+_0801E702:
+ adds r0, r3, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ bne _0801E70E
+ b _0801EA14
+_0801E70E:
+ b _0801EA04
+ .align 2, 0
+_0801E710: .4byte gHitMarker
+_0801E714:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x29
+ bne _0801E758
+ cmp r4, 0x1
+ beq _0801E72E
+ cmp r5, 0x80
+ bne _0801E758
+_0801E72E:
+ ldr r0, _0801E74C @ =gLastUsedAbility
+ strb r1, [r0]
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r1, 0x29
+ bl sub_81074C4
+ ldr r4, _0801E750 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E754 @ =BattleScript_BRNPrevention
+ b _0801E664
+ .align 2, 0
+_0801E74C: .4byte gLastUsedAbility
+_0801E750: .4byte gBattlescriptCurrInstr
+_0801E754: .4byte BattleScript_BRNPrevention
+_0801E758:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ mov r2, r9
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ beq _0801E778
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bne _0801E7A8
+_0801E778:
+ ldr r0, _0801E79C @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E7A8
+ cmp r4, 0x1
+ beq _0801E78E
+ cmp r5, 0x80
+ bne _0801E7A8
+_0801E78E:
+ ldr r4, _0801E7A0 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E7A4 @ =BattleScript_BRNPrevention
+ b _0801E998
+ .align 2, 0
+_0801E79C: .4byte gHitMarker
+_0801E7A0: .4byte gBattlescriptCurrInstr
+_0801E7A4: .4byte BattleScript_BRNPrevention
+_0801E7A8:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r1, 0x58
+ adds r2, r0, 0
+ muls r2, r1
+ mov r4, r9
+ adds r1, r2, r4
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bne _0801E7C2
+ b _0801EA14
+_0801E7C2:
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bne _0801E7CE
+ b _0801EA14
+_0801E7CE:
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _0801E7DA
+ b _0801EA14
+_0801E7DA:
+ mov r0, r9
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E7E8
+ b _0801EA14
+_0801E7E8:
+ b _0801EA04
+_0801E7EA:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0801E826
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E826
+ ldr r0, _0801E87C @ =gBattleWeather
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E826
+ movs r1, 0
+ str r1, [sp, 0x4]
+_0801E826:
+ ldr r4, _0801E880 @ =gBattleMons
+ ldr r0, _0801E884 @ =gEffectBank
+ ldrb r3, [r0]
+ movs r0, 0x58
+ adds r2, r3, 0
+ muls r2, r0
+ adds r1, r2, r4
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ bne _0801E840
+ b _0801EA14
+_0801E840:
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ bne _0801E84C
+ b _0801EA14
+_0801E84C:
+ adds r0, r4, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E85A
+ b _0801EA14
+_0801E85A:
+ ldr r2, [sp, 0x4]
+ cmp r2, 0
+ bne _0801E862
+ b _0801EA14
+_0801E862:
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x28
+ bne _0801E86E
+ b _0801EA14
+_0801E86E:
+ adds r0, r3, 0
+ bl CancelMultiTurnMoves
+ movs r3, 0x1
+ mov r10, r3
+ b _0801EA14
+ .align 2, 0
+_0801E87C: .4byte gBattleWeather
+_0801E880: .4byte gBattleMons
+_0801E884: .4byte gEffectBank
+_0801E888:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ mov r2, r9
+ adds r0, r1, r2
+ adds r0, 0x20
+ ldrb r2, [r0]
+ cmp r2, 0x7
+ bne _0801E8D0
+ cmp r4, 0x1
+ beq _0801E8A6
+ cmp r5, 0x80
+ beq _0801E8A6
+ b _0801EA14
+_0801E8A6:
+ ldr r0, _0801E8C4 @ =gLastUsedAbility
+ strb r2, [r0]
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r1, 0x7
+ bl sub_81074C4
+ ldr r4, _0801E8C8 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E8CC @ =BattleScript_PRLZPrevention
+ b _0801E664
+ .align 2, 0
+_0801E8C4: .4byte gLastUsedAbility
+_0801E8C8: .4byte gBattlescriptCurrInstr
+_0801E8CC: .4byte BattleScript_PRLZPrevention
+_0801E8D0:
+ mov r0, r9
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E8DE
+ b _0801EA14
+_0801E8DE:
+ movs r4, 0x1
+ mov r10, r4
+ b _0801EA14
+_0801E8E4:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x11
+ bne _0801E952
+ cmp r4, 0x1
+ beq _0801E8FE
+ cmp r5, 0x80
+ bne _0801E952
+_0801E8FE:
+ ldr r0, _0801E938 @ =gLastUsedAbility
+ strb r1, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x11
+ bl sub_81074C4
+ ldr r4, _0801E93C @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E940 @ =BattleScript_PSNPrevention
+ str r0, [r4]
+ ldr r2, _0801E944 @ =gHitMarker
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E94C
+_0801E928:
+ movs r0, 0x1
+ strb r0, [r7, 0x5]
+ ldr r0, _0801E948 @ =0xffffdfff
+ ands r1, r0
+ str r1, [r2]
+ bl _0801F5FA
+ .align 2, 0
+_0801E938: .4byte gLastUsedAbility
+_0801E93C: .4byte gBattlescriptCurrInstr
+_0801E940: .4byte BattleScript_PSNPrevention
+_0801E944: .4byte gHitMarker
+_0801E948: .4byte 0xffffdfff
+_0801E94C:
+ strb r0, [r7, 0x5]
+ bl _0801F5FA
+_0801E952:
+ mov r2, r8
+ ldrb r0, [r2]
+ movs r1, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r1, 0x3
+ beq _0801E976
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0801E976
+ cmp r1, 0x8
+ beq _0801E976
+ cmp r0, 0x8
+ bne _0801E9B4
+_0801E976:
+ ldr r0, _0801E9A4 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E9B4
+ cmp r4, 0x1
+ beq _0801E98C
+ cmp r5, 0x80
+ bne _0801E9B4
+_0801E98C:
+ ldr r4, _0801E9A8 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E9AC @ =BattleScript_PSNPrevention
+_0801E998:
+ str r0, [r4]
+ ldr r1, _0801E9B0 @ =gBattleCommunication
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ bl _0801F5FA
+ .align 2, 0
+_0801E9A4: .4byte gHitMarker
+_0801E9A8: .4byte gBattlescriptCurrInstr
+_0801E9AC: .4byte BattleScript_PSNPrevention
+_0801E9B0: .4byte gBattleCommunication
+_0801E9B4:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r6, 0x58
+ muls r0, r6
+ mov r2, r9
+ adds r2, 0x4C
+ adds r5, r0, r2
+ ldr r4, [r5]
+ cmp r4, 0
+ bne _0801EA14
+ mov r3, r9
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r3, [r0]
+ cmp r3, 0x3
+ beq _0801EA0A
+ adds r0, 0x1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0801EA0A
+ cmp r3, 0x8
+ beq _0801EA0A
+ cmp r0, 0x8
+ beq _0801EA0A
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ beq _0801EA14
+ mov r4, r8
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x9
+ negs r2, r2
+ ands r0, r2
+ str r0, [r1]
+_0801EA04:
+ movs r0, 0x1
+ mov r10, r0
+ b _0801EA14
+_0801EA0A:
+ ldr r0, _0801EA58 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_0801EA14:
+ mov r1, r10
+ cmp r1, 0x1
+ beq _0801EA1C
+ b _0801EB3C
+_0801EA1C:
+ ldr r0, _0801EA5C @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EA60 @ =gStatusFlagsForMoveEffects
+ ldr r0, _0801EA64 @ =gBattleCommunication
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r3, [r0]
+ cmp r3, 0x7
+ bne _0801EA70
+ bl Random
+ ldr r2, _0801EA68 @ =gBattleMons
+ ldr r1, _0801EA6C @ =gEffectBank
+ ldrb r3, [r1]
+ movs r1, 0x58
+ muls r3, r1
+ adds r2, 0x4C
+ adds r3, r2
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x2
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ b _0801EA84
+ .align 2, 0
+_0801EA58: .4byte gBattleMoveFlags
+_0801EA5C: .4byte gBattlescriptCurrInstr
+_0801EA60: .4byte gStatusFlagsForMoveEffects
+_0801EA64: .4byte gBattleCommunication
+_0801EA68: .4byte gBattleMons
+_0801EA6C: .4byte gEffectBank
+_0801EA70:
+ ldr r2, _0801EAD4 @ =gBattleMons
+ ldr r0, _0801EAD8 @ =gEffectBank
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r2, 0x4C
+ adds r1, r2
+ ldr r0, [r1]
+ orrs r0, r3
+ str r0, [r1]
+_0801EA84:
+ ldr r2, _0801EADC @ =gBattlescriptCurrInstr
+ ldr r1, _0801EAE0 @ =gMoveEffectBS_Ptrs
+ ldr r5, _0801EAE4 @ =gBattleCommunication
+ ldrb r0, [r5, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r4, _0801EAE8 @ =gActiveBank
+ ldr r1, _0801EAD8 @ =gEffectBank
+ ldrb r0, [r1]
+ strb r0, [r4]
+ ldrb r1, [r1]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _0801EAEC @ =gUnknown_02024ACC
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r2, _0801EAF0 @ =gHitMarker
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801EAF8
+ movs r0, 0x1
+ strb r0, [r5, 0x5]
+ ldr r0, _0801EAF4 @ =0xffffdfff
+ ands r1, r0
+ str r1, [r2]
+ b _0801EAFA
+ .align 2, 0
+_0801EAD4: .4byte gBattleMons
+_0801EAD8: .4byte gEffectBank
+_0801EADC: .4byte gBattlescriptCurrInstr
+_0801EAE0: .4byte gMoveEffectBS_Ptrs
+_0801EAE4: .4byte gBattleCommunication
+_0801EAE8: .4byte gActiveBank
+_0801EAEC: .4byte gUnknown_02024ACC
+_0801EAF0: .4byte gHitMarker
+_0801EAF4: .4byte 0xffffdfff
+_0801EAF8:
+ strb r0, [r5, 0x5]
+_0801EAFA:
+ ldr r0, _0801EB2C @ =gBattleCommunication
+ ldrb r2, [r0, 0x3]
+ adds r7, r0, 0
+ cmp r2, 0x2
+ beq _0801EB14
+ cmp r2, 0x6
+ beq _0801EB14
+ cmp r2, 0x5
+ beq _0801EB14
+ cmp r2, 0x3
+ beq _0801EB14
+ bl _0801F5FA
+_0801EB14:
+ ldr r0, _0801EB30 @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ ldr r2, _0801EB34 @ =0x000160ca
+ adds r0, r2
+ strb r1, [r0]
+ ldr r2, _0801EB38 @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 7
+ bl _0801F4F2
+ .align 2, 0
+_0801EB2C: .4byte gBattleCommunication
+_0801EB30: .4byte 0x02000000
+_0801EB34: .4byte 0x000160ca
+_0801EB38: .4byte gHitMarker
+_0801EB3C:
+ mov r3, r10
+ cmp r3, 0
+ beq _0801EB46
+ bl _0801F5FA
+_0801EB46:
+ bl _0801F5DC
+_0801EB4A:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r1, r0
+ ldr r2, _0801EB84 @ =gStatusFlagsForMoveEffects
+ ldrb r3, [r7, 0x3]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r1, [r1]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801EB6E
+ bl _0801F5DC
+_0801EB6E:
+ subs r0, r3, 0x7
+ cmp r0, 0x34
+ bls _0801EB78
+ bl _0801F5FA
+_0801EB78:
+ lsls r0, 2
+ ldr r1, _0801EB88 @ =_0801EB8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801EB84: .4byte gStatusFlagsForMoveEffects
+_0801EB88: .4byte _0801EB8C
+ .align 2, 0
+_0801EB8C:
+ .4byte _0801EC60
+ .4byte _0801ECD4
+ .4byte _0801EE4C
+ .4byte _0801ED60
+ .4byte _0801EDDC
+ .4byte _0801EE84
+ .4byte _0801EECC
+ .4byte _0801EFA8
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F13C
+ .4byte _0801F184
+ .4byte _0801F1A4
+ .4byte _0801F364
+ .4byte _0801F3A0
+ .4byte _0801F3BC
+ .4byte _0801F3D4
+ .4byte _0801F3EC
+ .4byte _0801F44C
+ .4byte _0801F464
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F4A8
+ .4byte _0801F500
+ .4byte _0801F5FA
+ .4byte _0801F5FA
+ .4byte _0801F5FA
+ .4byte _0801F5FA
+ .4byte _0801F5EC
+_0801EC60:
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r5, 0x58
+ adds r1, r0, 0
+ muls r1, r5
+ mov r2, r9
+ adds r0, r1, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ bne _0801EC7A
+ bl _0801F5DC
+_0801EC7A:
+ mov r4, r9
+ adds r4, 0x50
+ adds r0, r1, r4
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801EC8E
+ bl _0801F5DC
+_0801EC8E:
+ bl Random
+ mov r3, r8
+ ldrb r1, [r3]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ lsrs r1, 16
+ adds r1, 0x2
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r4, _0801ECC8 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801ECCC @ =gMoveEffectBS_Ptrs
+ ldr r0, _0801ECD0 @ =gBattleCommunication
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _0801F5F8
+ .align 2, 0
+_0801ECC8: .4byte gBattlescriptCurrInstr
+_0801ECCC: .4byte gMoveEffectBS_Ptrs
+_0801ECD0: .4byte gBattleCommunication
+_0801ECD4:
+ mov r0, r8
+ ldrb r2, [r0]
+ movs r6, 0x58
+ adds r0, r2, 0
+ muls r0, r6
+ add r0, r9
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x27
+ bne _0801ED18
+ cmp r4, 0x1
+ beq _0801ECF4
+ cmp r5, 0x80
+ beq _0801ECF4
+ bl _0801F5DC
+_0801ECF4:
+ ldr r0, _0801ED0C @ =gLastUsedAbility
+ strb r1, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x27
+ bl sub_81074C4
+ ldr r1, _0801ED10 @ =gBattlescriptCurrInstr
+ ldr r0, _0801ED14 @ =BattleScript_FlinchPrevention
+ str r0, [r1]
+ bl _0801F5FA
+ .align 2, 0
+_0801ED0C: .4byte gLastUsedAbility
+_0801ED10: .4byte gBattlescriptCurrInstr
+_0801ED14: .4byte BattleScript_FlinchPrevention
+_0801ED18:
+ adds r0, r2, 0
+ bl sub_801E3B4
+ ldr r1, _0801ED54 @ =gCurrentMoveTurn
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bhi _0801ED2E
+ bl _0801F5DC
+_0801ED2E:
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r2, r0, 0
+ muls r2, r6
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r1, _0801ED58 @ =gStatusFlagsForMoveEffects
+ ldr r0, _0801ED5C @ =gBattleCommunication
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ orrs r1, r0
+ str r1, [r2]
+ bl _0801F5DC
+ .align 2, 0
+_0801ED54: .4byte gCurrentMoveTurn
+_0801ED58: .4byte gStatusFlagsForMoveEffects
+_0801ED5C: .4byte gBattleCommunication
+_0801ED60:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r5, 0x58
+ muls r0, r5
+ mov r4, r9
+ adds r4, 0x50
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r0, 0x70
+ ands r0, r1
+ cmp r0, 0
+ beq _0801ED7C
+ bl _0801F5DC
+_0801ED7C:
+ movs r0, 0x80
+ lsls r0, 5
+ orrs r1, r0
+ str r1, [r2]
+ ldr r1, _0801EDC8 @ =gLockedMove
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _0801EDCC @ =gCurrentMove
+ ldrh r1, [r1]
+ strh r1, [r0]
+ bl Random
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x2
+ lsls r1, 4
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r4, _0801EDD0 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EDD4 @ =gMoveEffectBS_Ptrs
+ ldr r0, _0801EDD8 @ =gBattleCommunication
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _0801F5F8
+ .align 2, 0
+_0801EDC8: .4byte gLockedMove
+_0801EDCC: .4byte gCurrentMove
+_0801EDD0: .4byte gBattlescriptCurrInstr
+_0801EDD4: .4byte gMoveEffectBS_Ptrs
+_0801EDD8: .4byte gBattleCommunication
+_0801EDDC:
+ ldr r5, _0801EE30 @ =gBankAttacker
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _0801EE14
+ ldr r4, _0801EE34 @ =gPaydayMoney
+ ldrh r3, [r4]
+ ldr r2, _0801EE38 @ =gBattleMons
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, r3, r0
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r3, r0
+ bls _0801EE14
+ ldr r3, _0801EE3C @ =0x0000ffff
+ adds r0, r3, 0
+ strh r0, [r4]
+_0801EE14:
+ ldr r4, _0801EE40 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EE44 @ =gMoveEffectBS_Ptrs
+ ldr r0, _0801EE48 @ =gBattleCommunication
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _0801F5F8
+ .align 2, 0
+_0801EE30: .4byte gBankAttacker
+_0801EE34: .4byte gPaydayMoney
+_0801EE38: .4byte gBattleMons
+_0801EE3C: .4byte 0x0000ffff
+_0801EE40: .4byte gBattlescriptCurrInstr
+_0801EE44: .4byte gMoveEffectBS_Ptrs
+_0801EE48: .4byte gBattleCommunication
+_0801EE4C:
+ mov r4, r8
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r9
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801EE62
+ b _0801F5DC
+_0801EE62:
+ bl Random
+ ldr r4, _0801EE80 @ =gBattleCommunication
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, 0x3
+ strb r0, [r4, 0x3]
+ movs r0, 0
+ movs r1, 0
+ bl sub_801E3EC
+ b _0801F5FA
+ .align 2, 0
+_0801EE80: .4byte gBattleCommunication
+_0801EE84:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _0801EEC0 @ =gLockedMove
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _0801EEC4 @ =gCurrentMove
+ ldrh r1, [r1]
+ strh r1, [r0]
+ ldr r0, _0801EEC8 @ =gProtectStructs
+ ldrb r1, [r2]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+ b _0801F5DC
+ .align 2, 0
+_0801EEC0: .4byte gLockedMove
+_0801EEC4: .4byte gCurrentMove
+_0801EEC8: .4byte gProtectStructs
+_0801EECC:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r6, 0x58
+ muls r0, r6
+ mov r4, r9
+ adds r4, 0x50
+ adds r0, r4
+ ldr r5, [r0]
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r5, r0
+ cmp r5, 0
+ beq _0801EEE8
+ b _0801F5DC
+_0801EEE8:
+ bl Random
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r2, r1, 0
+ muls r2, r6
+ adds r2, r4
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x3
+ lsls r1, 13
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _0801EF80 @ =0x02000000
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 1
+ ldr r4, _0801EF84 @ =0x00016004
+ adds r0, r4
+ adds r0, r2
+ ldr r6, _0801EF88 @ =gCurrentMove
+ ldrh r1, [r6]
+ strb r1, [r0]
+ ldrb r0, [r3]
+ lsls r0, 1
+ ldr r1, _0801EF8C @ =0x00016005
+ adds r0, r1
+ adds r0, r2
+ ldrh r1, [r6]
+ lsrs r1, 8
+ strb r1, [r0]
+ ldrb r0, [r3]
+ ldr r3, _0801EF90 @ =0x00016020
+ adds r0, r3
+ adds r0, r2
+ ldr r1, _0801EF94 @ =gBankAttacker
+ ldrb r1, [r1]
+ strb r1, [r0]
+ ldr r4, _0801EF98 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EF9C @ =gMoveEffectBS_Ptrs
+ ldr r2, _0801EFA0 @ =gBattleCommunication
+ ldrb r0, [r2, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r4]
+ strb r5, [r2, 0x5]
+ ldr r1, _0801EFA4 @ =gTrappingMoves
+ ldrh r0, [r1]
+ ldrh r4, [r6]
+ cmp r0, r4
+ bne _0801EF5C
+ b _0801F5FA
+_0801EF5C:
+ adds r3, r1, 0
+ adds r1, r6, 0
+_0801EF60:
+ ldrb r0, [r2, 0x5]
+ adds r0, 0x1
+ strb r0, [r2, 0x5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _0801EF70
+ b _0801F5FA
+_0801EF70:
+ ldrb r0, [r2, 0x5]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ ldrh r4, [r1]
+ cmp r0, r4
+ bne _0801EF60
+ b _0801F5FA
+ .align 2, 0
+_0801EF80: .4byte 0x02000000
+_0801EF84: .4byte 0x00016004
+_0801EF88: .4byte gCurrentMove
+_0801EF8C: .4byte 0x00016005
+_0801EF90: .4byte 0x00016020
+_0801EF94: .4byte gBankAttacker
+_0801EF98: .4byte gBattlescriptCurrInstr
+_0801EF9C: .4byte gMoveEffectBS_Ptrs
+_0801EFA0: .4byte gBattleCommunication
+_0801EFA4: .4byte gTrappingMoves
+_0801EFA8:
+ ldr r1, _0801EFD8 @ =gBattleMoveDamage
+ ldr r0, _0801EFDC @ =gHP_dealt
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _0801EFB4
+ adds r0, 0x3
+_0801EFB4:
+ asrs r0, 2
+ str r0, [r1]
+ cmp r0, 0
+ bne _0801EFC0
+ movs r0, 0x1
+ str r0, [r1]
+_0801EFC0:
+ ldr r4, _0801EFE0 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EFE4 @ =gMoveEffectBS_Ptrs
+ ldr r0, _0801EFE8 @ =gBattleCommunication
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ b _0801F5F8
+ .align 2, 0
+_0801EFD8: .4byte gBattleMoveDamage
+_0801EFDC: .4byte gHP_dealt
+_0801EFE0: .4byte gBattlescriptCurrInstr
+_0801EFE4: .4byte gMoveEffectBS_Ptrs
+_0801EFE8: .4byte gBattleCommunication
+_0801EFEC:
+ ldrb r1, [r7, 0x3]
+ adds r1, 0xF2
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x10
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_8025E20
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0801F008
+ b _0801F5DC
+_0801F008:
+ ldr r2, _0801F02C @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ ldr r4, _0801F030 @ =0x000160a4
+ adds r1, r2, r4
+ strb r0, [r1]
+ ldr r0, _0801F034 @ =0x000160a5
+ adds r2, r0
+ strb r3, [r2]
+ ldr r4, _0801F038 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F03C @ =BattleScript_StatUp
+ b _0801F5F8
+ .align 2, 0
+_0801F02C: .4byte 0x02000000
+_0801F030: .4byte 0x000160a4
+_0801F034: .4byte 0x000160a5
+_0801F038: .4byte gBattlescriptCurrInstr
+_0801F03C: .4byte BattleScript_StatUp
+_0801F040:
+ movs r0, 0x70
+ negs r0, r0
+ ldrb r1, [r7, 0x3]
+ adds r1, 0xEB
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_8025E20
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0801F05E
+ b _0801F5DC
+_0801F05E:
+ ldr r2, _0801F080 @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ ldr r4, _0801F084 @ =0x000160a4
+ adds r1, r2, r4
+ strb r0, [r1]
+ ldr r0, _0801F088 @ =0x000160a5
+ adds r2, r0
+ strb r3, [r2]
+ ldr r4, _0801F08C @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F090 @ =BattleScript_StatDown
+ b _0801F5F8
+ .align 2, 0
+_0801F080: .4byte 0x02000000
+_0801F084: .4byte 0x000160a4
+_0801F088: .4byte 0x000160a5
+_0801F08C: .4byte gBattlescriptCurrInstr
+_0801F090: .4byte BattleScript_StatDown
+_0801F094:
+ ldrb r1, [r7, 0x3]
+ adds r1, 0xDA
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x20
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_8025E20
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0801F0B0
+ b _0801F5DC
+_0801F0B0:
+ ldr r2, _0801F0D4 @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ ldr r4, _0801F0D8 @ =0x000160a4
+ adds r1, r2, r4
+ strb r0, [r1]
+ ldr r0, _0801F0DC @ =0x000160a5
+ adds r2, r0
+ strb r3, [r2]
+ ldr r4, _0801F0E0 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F0E4 @ =BattleScript_StatUp
+ b _0801F5F8
+ .align 2, 0
+_0801F0D4: .4byte 0x02000000
+_0801F0D8: .4byte 0x000160a4
+_0801F0DC: .4byte 0x000160a5
+_0801F0E0: .4byte gBattlescriptCurrInstr
+_0801F0E4: .4byte BattleScript_StatUp
+_0801F0E8:
+ movs r0, 0x60
+ negs r0, r0
+ ldrb r1, [r7, 0x3]
+ adds r1, 0xD3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_8025E20
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0801F106
+ b _0801F5DC
+_0801F106:
+ ldr r2, _0801F128 @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ ldr r4, _0801F12C @ =0x000160a4
+ adds r1, r2, r4
+ strb r0, [r1]
+ ldr r0, _0801F130 @ =0x000160a5
+ adds r2, r0
+ strb r3, [r2]
+ ldr r4, _0801F134 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F138 @ =BattleScript_StatDown
+ b _0801F5F8
+ .align 2, 0
+_0801F128: .4byte 0x02000000
+_0801F12C: .4byte 0x000160a4
+_0801F130: .4byte 0x000160a5
+_0801F134: .4byte gBattlescriptCurrInstr
+_0801F138: .4byte BattleScript_StatDown
+_0801F13C:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _0801F178 @ =gDisableStructs
+ mov r3, r8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0, 0x19]
+ ldr r1, _0801F17C @ =gLockedMove
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _0801F180 @ =gCurrentMove
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _0801F5DC
+ .align 2, 0
+_0801F178: .4byte gDisableStructs
+_0801F17C: .4byte gLockedMove
+_0801F180: .4byte gCurrentMove
+_0801F184:
+ ldr r0, _0801F1A0 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 16
+_0801F19A:
+ orrs r0, r1
+ str r0, [r2]
+ b _0801F5DC
+ .align 2, 0
+_0801F1A0: .4byte gBankAttacker
+_0801F1A4:
+ ldr r4, _0801F254 @ =gBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0801F1D8
+ ldr r0, _0801F258 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _0801F25C @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F214
+ ldr r0, _0801F260 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _0801F1D8
+ b _0801F5DC
+_0801F1D8:
+ ldr r0, _0801F258 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _0801F25C @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F214
+ ldr r0, _0801F260 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _0801F214
+ ldr r0, _0801F264 @ =gWishFutureKnock
+ adds r0, 0x29
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ ldr r3, _0801F268 @ =gBitTable
+ ldr r2, _0801F26C @ =gBattlePartyID
+ ldr r0, _0801F254 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801F214
+ b _0801F5DC
+_0801F214:
+ ldr r2, _0801F270 @ =gBattleMons
+ ldr r1, _0801F274 @ =gBankTarget
+ ldrb r0, [r1]
+ movs r3, 0x58
+ muls r0, r3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x2E]
+ adds r7, r1, 0
+ mov r9, r2
+ cmp r0, 0
+ beq _0801F284
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3C
+ bne _0801F284
+ ldr r1, _0801F278 @ =gBattlescriptCurrInstr
+ ldr r0, _0801F27C @ =BattleScript_NoItemSteal
+ str r0, [r1]
+ ldr r1, _0801F280 @ =gLastUsedAbility
+ ldrb r0, [r7]
+ muls r0, r3
+ add r0, r9
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ b _0801F5FA
+ .align 2, 0
+_0801F254: .4byte gBankAttacker
+_0801F258: .4byte gBattleTypeFlags
+_0801F25C: .4byte 0x00000902
+_0801F260: .4byte gTrainerBattleOpponent
+_0801F264: .4byte gWishFutureKnock
+_0801F268: .4byte gBitTable
+_0801F26C: .4byte gBattlePartyID
+_0801F270: .4byte gBattleMons
+_0801F274: .4byte gBankTarget
+_0801F278: .4byte gBattlescriptCurrInstr
+_0801F27C: .4byte BattleScript_NoItemSteal
+_0801F280: .4byte gLastUsedAbility
+_0801F284:
+ ldr r4, _0801F340 @ =gBankAttacker
+ mov r10, r4
+ ldrb r1, [r4]
+ movs r0, 0x58
+ mov r8, r0
+ mov r0, r8
+ muls r0, r1
+ add r0, r9
+ ldrh r3, [r0, 0x2E]
+ cmp r3, 0
+ beq _0801F29C
+ b _0801F5DC
+_0801F29C:
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ ldrh r2, [r0, 0x2E]
+ adds r0, r2, 0
+ cmp r0, 0xAF
+ bne _0801F2B0
+ b _0801F5DC
+_0801F2B0:
+ cmp r0, 0
+ bne _0801F2B6
+ b _0801F5DC
+_0801F2B6:
+ lsls r0, r1, 1
+ ldr r5, _0801F344 @ =0x020160f0
+ adds r0, r5
+ ldr r1, _0801F348 @ =gLastUsedItem
+ strh r2, [r0]
+ strh r2, [r1]
+ ldrb r0, [r7]
+ mov r4, r8
+ muls r4, r0
+ adds r0, r4, 0
+ add r0, r9
+ movs r6, 0
+ strh r3, [r0, 0x2E]
+ ldr r4, _0801F34C @ =gActiveBank
+ mov r2, r10
+ ldrb r0, [r2]
+ strb r0, [r4]
+ str r1, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl EmitSetAttributes
+ mov r3, r10
+ ldrb r0, [r3]
+ bl MarkBufferBankForExecution
+ ldrb r0, [r7]
+ strb r0, [r4]
+ ldrb r0, [r7]
+ mov r4, r8
+ muls r4, r0
+ adds r0, r4, 0
+ mov r1, r9
+ adds r1, 0x2E
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl EmitSetAttributes
+ ldrb r0, [r7]
+ bl MarkBufferBankForExecution
+ ldr r4, _0801F350 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F354 @ =BattleScript_ItemSteal
+ str r0, [r4]
+ ldr r0, _0801F358 @ =0xfffe9f10
+ adds r5, r0
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _0801F35C @ =0x000160e8
+ adds r0, r1
+ adds r0, r5
+ strb r6, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r2, _0801F360 @ =0x000160e9
+ adds r0, r2
+ adds r0, r5
+ strb r6, [r0]
+ b _0801F5FA
+ .align 2, 0
+_0801F340: .4byte gBankAttacker
+_0801F344: .4byte 0x020160f0
+_0801F348: .4byte gLastUsedItem
+_0801F34C: .4byte gActiveBank
+_0801F350: .4byte gBattlescriptCurrInstr
+_0801F354: .4byte BattleScript_ItemSteal
+_0801F358: .4byte 0xfffe9f10
+_0801F35C: .4byte 0x000160e8
+_0801F360: .4byte 0x000160e9
+_0801F364:
+ ldr r3, _0801F394 @ =gBankTarget
+ ldrb r1, [r3]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _0801F398 @ =gDisableStructs
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0801F39C @ =gBankAttacker
+ ldrb r1, [r1]
+ strb r1, [r0, 0x14]
+ b _0801F5DC
+ .align 2, 0
+_0801F394: .4byte gBankTarget
+_0801F398: .4byte gDisableStructs
+_0801F39C: .4byte gBankAttacker
+_0801F3A0:
+ ldr r0, _0801F3B8 @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 20
+ b _0801F19A
+ .align 2, 0
+_0801F3B8: .4byte gBankTarget
+_0801F3BC:
+ ldr r4, _0801F3CC @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F3D0 @ =gUnknown_081D9224
+ b _0801F5F8
+ .align 2, 0
+_0801F3CC: .4byte gBattlescriptCurrInstr
+_0801F3D0: .4byte gUnknown_081D9224
+_0801F3D4:
+ ldr r4, _0801F3E4 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F3E8 @ =BattleScript_RapidSpinAway
+ b _0801F5F8
+ .align 2, 0
+_0801F3E4: .4byte gBattlescriptCurrInstr
+_0801F3E8: .4byte BattleScript_RapidSpinAway
+_0801F3EC:
+ ldr r6, _0801F43C @ =gBankTarget
+ ldrb r0, [r6]
+ movs r2, 0x58
+ muls r0, r2
+ mov r1, r9
+ adds r1, 0x4C
+ adds r5, r0, r1
+ ldr r4, [r5]
+ movs r0, 0x40
+ ands r0, r4
+ cmp r0, 0
+ bne _0801F406
+ b _0801F5DC
+_0801F406:
+ movs r0, 0x41
+ negs r0, r0
+ ands r4, r0
+ str r4, [r5]
+ ldr r4, _0801F440 @ =gActiveBank
+ ldrb r0, [r6]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r4, _0801F444 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F448 @ =BattleScript_TargetPRLZHeal
+ b _0801F5F8
+ .align 2, 0
+_0801F43C: .4byte gBankTarget
+_0801F440: .4byte gActiveBank
+_0801F444: .4byte gBattlescriptCurrInstr
+_0801F448: .4byte BattleScript_TargetPRLZHeal
+_0801F44C:
+ ldr r4, _0801F45C @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F460 @ =gUnknown_081D93FA
+ b _0801F5F8
+ .align 2, 0
+_0801F45C: .4byte gBattlescriptCurrInstr
+_0801F460: .4byte gUnknown_081D93FA
+_0801F464:
+ ldr r4, _0801F494 @ =gBattleMoveDamage
+ ldr r0, _0801F498 @ =gHP_dealt
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801F47A
+ movs r0, 0x1
+ str r0, [r4]
+_0801F47A:
+ ldr r4, _0801F49C @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801F4A0 @ =gMoveEffectBS_Ptrs
+ ldr r0, _0801F4A4 @ =gBattleCommunication
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ b _0801F5F8
+ .align 2, 0
+_0801F494: .4byte gBattleMoveDamage
+_0801F498: .4byte gHP_dealt
+_0801F49C: .4byte gBattlescriptCurrInstr
+_0801F4A0: .4byte gMoveEffectBS_Ptrs
+_0801F4A4: .4byte gBattleCommunication
+_0801F4A8:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r5, 0x58
+ muls r0, r5
+ mov r4, r9
+ adds r4, 0x50
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r0, 0xC0
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801F4C4
+ b _0801F5DC
+_0801F4C4:
+ movs r0, 0x80
+ lsls r0, 5
+ orrs r1, r0
+ str r1, [r2]
+ ldr r1, _0801F4F8 @ =gLockedMove
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _0801F4FC @ =gCurrentMove
+ ldrh r1, [r1]
+ strh r1, [r0]
+ bl Random
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ movs r1, 0x1
+ ands r1, r0
+ adds r1, 0x2
+ lsls r1, 10
+ ldr r0, [r2]
+_0801F4F2:
+ orrs r0, r1
+ str r0, [r2]
+ b _0801F5FA
+ .align 2, 0
+_0801F4F8: .4byte gLockedMove
+_0801F4FC: .4byte gCurrentMove
+_0801F500:
+ mov r5, r8
+ ldrb r3, [r5]
+ movs r4, 0x58
+ adds r0, r3, 0
+ muls r0, r4
+ mov r2, r9
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r2, [r0]
+ cmp r2, 0x3C
+ bne _0801F540
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0
+ beq _0801F5DC
+ ldr r0, _0801F534 @ =gLastUsedAbility
+ strb r2, [r0]
+ ldr r1, _0801F538 @ =gBattlescriptCurrInstr
+ ldr r0, _0801F53C @ =BattleScript_NoItemSteal
+ str r0, [r1]
+ ldrb r0, [r5]
+ movs r1, 0x3C
+ bl sub_81074C4
+ b _0801F5FA
+ .align 2, 0
+_0801F534: .4byte gLastUsedAbility
+_0801F538: .4byte gBattlescriptCurrInstr
+_0801F53C: .4byte BattleScript_NoItemSteal
+_0801F540:
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0
+ beq _0801F5DC
+ adds r0, r3, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0801F5B8 @ =gLastUsedItem
+ mov r3, r8
+ ldrb r0, [r3]
+ muls r0, r4
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+ ldrb r0, [r3]
+ muls r0, r4
+ add r0, r9
+ movs r5, 0
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r2, _0801F5BC @ =gWishFutureKnock
+ adds r2, 0x29
+ adds r2, r6, r2
+ ldr r3, _0801F5C0 @ =gBitTable
+ ldr r1, _0801F5C4 @ =gBattlePartyID
+ mov r4, r8
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r4, _0801F5C8 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F5CC @ =BattleScript_KnockedOff
+ str r0, [r4]
+ ldr r1, _0801F5D0 @ =0x02000000
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r3, _0801F5D4 @ =0x000160e8
+ adds r0, r3
+ adds r0, r1
+ strb r5, [r0]
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r4, _0801F5D8 @ =0x000160e9
+ adds r0, r4
+ adds r0, r1
+ strb r5, [r0]
+ b _0801F5FA
+ .align 2, 0
+_0801F5B8: .4byte gLastUsedItem
+_0801F5BC: .4byte gWishFutureKnock
+_0801F5C0: .4byte gBitTable
+_0801F5C4: .4byte gBattlePartyID
+_0801F5C8: .4byte gBattlescriptCurrInstr
+_0801F5CC: .4byte BattleScript_KnockedOff
+_0801F5D0: .4byte 0x02000000
+_0801F5D4: .4byte 0x000160e8
+_0801F5D8: .4byte 0x000160e9
+_0801F5DC:
+ ldr r1, _0801F5E8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ b _0801F5FA
+ .align 2, 0
+_0801F5E8: .4byte gBattlescriptCurrInstr
+_0801F5EC:
+ ldr r4, _0801F60C @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F610 @ =gUnknown_081D94B0
+_0801F5F8:
+ str r0, [r4]
+_0801F5FA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F60C: .4byte gBattlescriptCurrInstr
+_0801F610: .4byte gUnknown_081D94B0
+ thumb_func_end sub_801E3EC
+
+ thumb_func_start atk15_seteffectwithchancetarget
+atk15_seteffectwithchancetarget: @ 801F614
+ push {r4,lr}
+ ldr r2, _0801F640 @ =gBattleMons
+ ldr r0, _0801F644 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x20
+ bne _0801F650
+ ldr r2, _0801F648 @ =gBattleMoves
+ ldr r0, _0801F64C @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x5]
+ lsls r4, r0, 1
+ b _0801F660
+ .align 2, 0
+_0801F640: .4byte gBattleMons
+_0801F644: .4byte gBankAttacker
+_0801F648: .4byte gBattleMoves
+_0801F64C: .4byte gCurrentMove
+_0801F650:
+ ldr r2, _0801F680 @ =gBattleMoves
+ ldr r0, _0801F684 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r4, [r0, 0x5]
+_0801F660:
+ ldr r3, _0801F688 @ =gBattleCommunication
+ ldrb r2, [r3, 0x3]
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _0801F690
+ ldr r0, _0801F68C @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F690
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r3, 0x3]
+ b _0801F6BE
+ .align 2, 0
+_0801F680: .4byte gBattleMoves
+_0801F684: .4byte gCurrentMove
+_0801F688: .4byte gBattleCommunication
+_0801F68C: .4byte gBattleMoveFlags
+_0801F690:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ bhi _0801F6DA
+ ldr r0, _0801F6C8 @ =gBattleCommunication
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0
+ beq _0801F6DA
+ ldr r0, _0801F6CC @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F6DA
+ cmp r4, 0x63
+ bls _0801F6D0
+_0801F6BE:
+ movs r0, 0
+ movs r1, 0x80
+ bl sub_801E3EC
+ b _0801F6E2
+ .align 2, 0
+_0801F6C8: .4byte gBattleCommunication
+_0801F6CC: .4byte gBattleMoveFlags
+_0801F6D0:
+ movs r0, 0
+ movs r1, 0
+ bl sub_801E3EC
+ b _0801F6E2
+_0801F6DA:
+ ldr r1, _0801F6F8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801F6E2:
+ ldr r0, _0801F6FC @ =gBattleCommunication
+ movs r1, 0
+ strb r1, [r0, 0x3]
+ ldr r0, _0801F700 @ =0x02000000
+ ldr r2, _0801F704 @ =0x00016112
+ adds r0, r2
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F6F8: .4byte gBattlescriptCurrInstr
+_0801F6FC: .4byte gBattleCommunication
+_0801F700: .4byte 0x02000000
+_0801F704: .4byte 0x00016112
+ thumb_func_end atk15_seteffectwithchancetarget
+
+ thumb_func_start atk16_seteffectprimary
+atk16_seteffectprimary: @ 801F708
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_801E3EC
+ pop {r0}
+ bx r0
+ thumb_func_end atk16_seteffectprimary
+
+ thumb_func_start atk17_seteffectsecondary
+atk17_seteffectsecondary: @ 801F718
+ push {lr}
+ movs r0, 0
+ movs r1, 0
+ bl sub_801E3EC
+ pop {r0}
+ bx r0
+ thumb_func_end atk17_seteffectsecondary
+
+ thumb_func_start atk18_status_effect_clear
+atk18_status_effect_clear: @ 801F728
+ push {lr}
+ ldr r0, _0801F74C @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r2, _0801F750 @ =gActiveBank
+ strb r0, [r2]
+ ldr r3, _0801F754 @ =gBattleCommunication
+ ldrb r0, [r3, 0x3]
+ cmp r0, 0x6
+ bhi _0801F75C
+ ldr r1, _0801F758 @ =gBattleMons
+ ldrb r2, [r2]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x4C
+ b _0801F766
+ .align 2, 0
+_0801F74C: .4byte gBattlescriptCurrInstr
+_0801F750: .4byte gActiveBank
+_0801F754: .4byte gBattleCommunication
+_0801F758: .4byte gBattleMons
+_0801F75C:
+ ldr r1, _0801F794 @ =gBattleMons
+ ldrb r2, [r2]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+_0801F766:
+ adds r2, r1
+ ldr r1, _0801F798 @ =gStatusFlagsForMoveEffects
+ ldrb r0, [r3, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ ldr r0, _0801F79C @ =gBattleCommunication
+ movs r2, 0
+ strb r2, [r0, 0x3]
+ ldr r1, _0801F7A0 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ ldr r0, _0801F7A4 @ =0x02000000
+ ldr r1, _0801F7A8 @ =0x00016112
+ adds r0, r1
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F794: .4byte gBattleMons
+_0801F798: .4byte gStatusFlagsForMoveEffects
+_0801F79C: .4byte gBattleCommunication
+_0801F7A0: .4byte gBattlescriptCurrInstr
+_0801F7A4: .4byte 0x02000000
+_0801F7A8: .4byte 0x00016112
+ thumb_func_end atk18_status_effect_clear
+
+ thumb_func_start atk19_faint_pokemon
+atk19_faint_pokemon: @ 801F7AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _0801F81C @ =gBattlescriptCurrInstr
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x2]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _0801F834
+ ldrb r0, [r2, 0x1]
+ bl sub_8015150
+ ldr r5, _0801F820 @ =gActiveBank
+ strb r0, [r5]
+ ldr r2, _0801F824 @ =gHitMarker
+ ldr r1, _0801F828 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F7E6
+ b _0801FB1C
+_0801F7E6:
+ ldr r1, [r6]
+ ldrb r4, [r1, 0x3]
+ ldrb r0, [r1, 0x4]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r1, 0x6]
+ lsls r0, 24
+ orrs r4, r0
+ bl b_movescr_stack_pop_cursor
+ str r4, [r6]
+ ldrb r0, [r5]
+ bl GetBankSide
+ ldr r1, _0801F82C @ =gSideAffecting
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r2, [r0]
+ ldr r1, _0801F830 @ =0x0000fdff
+ ands r1, r2
+ strh r1, [r0]
+ b _0801FB22
+ .align 2, 0
+_0801F81C: .4byte gBattlescriptCurrInstr
+_0801F820: .4byte gActiveBank
+_0801F824: .4byte gHitMarker
+_0801F828: .4byte gBitTable
+_0801F82C: .4byte gSideAffecting
+_0801F830: .4byte 0x0000fdff
+_0801F834:
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x1
+ bne _0801F85C
+ ldr r1, _0801F84C @ =gActiveBank
+ ldr r0, _0801F850 @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0801F854 @ =gBankTarget
+ ldrb r7, [r0]
+ ldr r4, _0801F858 @ =gUnknown_081D8C58
+ b _0801F86A
+ .align 2, 0
+_0801F84C: .4byte gActiveBank
+_0801F850: .4byte gBankAttacker
+_0801F854: .4byte gBankTarget
+_0801F858: .4byte gUnknown_081D8C58
+_0801F85C:
+ ldr r1, _0801F954 @ =gActiveBank
+ ldr r0, _0801F958 @ =gBankTarget
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0801F95C @ =gBankAttacker
+ ldrb r7, [r0]
+ ldr r4, _0801F960 @ =gUnknown_081D8C65
+_0801F86A:
+ ldr r0, _0801F964 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r0, _0801F968 @ =gBitTable
+ mov r12, r0
+ ldr r2, _0801F954 @ =gActiveBank
+ mov r8, r2
+ ldrb r2, [r2]
+ lsls r0, r2, 2
+ add r0, r12
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801F886
+ b _0801FB1C
+_0801F886:
+ ldr r3, _0801F96C @ =gBattleMons
+ mov r10, r3
+ movs r5, 0x58
+ mov r9, r5
+ mov r0, r9
+ muls r0, r2
+ add r0, r10
+ ldrh r3, [r0, 0x28]
+ cmp r3, 0
+ beq _0801F89C
+ b _0801FB1C
+_0801F89C:
+ ldr r2, _0801F970 @ =0x02000000
+ lsls r1, r7, 1
+ ldr r5, _0801F974 @ =0x000160ac
+ adds r0, r1, r5
+ adds r0, r2
+ strb r3, [r0]
+ ldr r0, _0801F978 @ =0x000160ad
+ adds r1, r0
+ adds r1, r2
+ strb r3, [r1]
+ lsls r1, r7, 2
+ adds r5, 0x54
+ adds r0, r1, r5
+ adds r0, r2
+ strb r3, [r0]
+ adds r5, 0x1
+ adds r0, r1, r5
+ adds r0, r2
+ strb r3, [r0]
+ adds r5, 0x1
+ adds r0, r1, r5
+ adds r0, r2
+ strb r3, [r0]
+ ldr r0, _0801F97C @ =0x00016103
+ adds r1, r0
+ adds r1, r2
+ strb r3, [r1]
+ ldr r5, _0801F980 @ =gHitMarker
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 2
+ add r0, r12
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r5]
+ orrs r0, r1
+ str r0, [r5]
+ ldr r0, [r6]
+ adds r0, 0x7
+ bl b_movescr_stack_push
+ str r4, [r6]
+ mov r2, r8
+ ldrb r0, [r2]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801F9B0
+ ldr r0, [r5]
+ movs r1, 0x80
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [r5]
+ ldr r1, _0801F984 @ =gBattleResults
+ ldrb r0, [r1]
+ cmp r0, 0xFE
+ bhi _0801F914
+ adds r0, 0x1
+ strb r0, [r1]
+_0801F914:
+ mov r0, r9
+ muls r0, r7
+ add r0, r10
+ adds r3, r0, 0
+ adds r3, 0x2A
+ mov r4, r8
+ ldrb r2, [r4]
+ mov r0, r9
+ muls r0, r2
+ add r0, r10
+ adds r1, r0, 0
+ adds r1, 0x2A
+ ldrb r0, [r3]
+ ldrb r5, [r1]
+ cmp r0, r5
+ bls _0801F9CC
+ ldrb r1, [r1]
+ subs r0, r1
+ cmp r0, 0x1D
+ ble _0801F990
+ ldr r1, _0801F988 @ =gBattlePartyID
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0801F98C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x8
+ bl AdjustFriendship
+ b _0801F9CC
+ .align 2, 0
+_0801F954: .4byte gActiveBank
+_0801F958: .4byte gBankTarget
+_0801F95C: .4byte gBankAttacker
+_0801F960: .4byte gUnknown_081D8C65
+_0801F964: .4byte gAbsentBankFlags
+_0801F968: .4byte gBitTable
+_0801F96C: .4byte gBattleMons
+_0801F970: .4byte 0x02000000
+_0801F974: .4byte 0x000160ac
+_0801F978: .4byte 0x000160ad
+_0801F97C: .4byte 0x00016103
+_0801F980: .4byte gHitMarker
+_0801F984: .4byte gBattleResults
+_0801F988: .4byte gBattlePartyID
+_0801F98C: .4byte gPlayerParty
+_0801F990:
+ ldr r1, _0801F9A8 @ =gBattlePartyID
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0801F9AC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x6
+ bl AdjustFriendship
+ b _0801F9CC
+ .align 2, 0
+_0801F9A8: .4byte gBattlePartyID
+_0801F9AC: .4byte gPlayerParty
+_0801F9B0:
+ ldr r1, _0801FAE0 @ =gBattleResults
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xFE
+ bhi _0801F9BC
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+_0801F9BC:
+ ldr r2, _0801FAE4 @ =gActiveBank
+ ldrb r0, [r2]
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+ add r0, r10
+ ldrh r0, [r0]
+ strh r0, [r1, 0x20]
+_0801F9CC:
+ ldr r0, _0801FAE8 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801FA02
+ ldr r6, _0801FAEC @ =gBattleMons
+ ldr r0, _0801FAF0 @ =gBankAttacker
+ ldrb r0, [r0]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801FA02
+ ldr r4, _0801FAF4 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ bl b_movescr_stack_push
+ ldr r1, _0801FAF8 @ =gBattleMoveDamage
+ adds r0, r7, 0
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ str r0, [r1]
+ ldr r0, _0801FAFC @ =gUnknown_081D9156
+ str r0, [r4]
+_0801FA02:
+ ldr r1, _0801FB00 @ =gStatuses3
+ ldr r6, _0801FB04 @ =gBankTarget
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801FA1A
+ b _0801FB22
+_0801FA1A:
+ ldr r0, _0801FAE8 @ =gHitMarker
+ ldr r5, [r0]
+ movs r0, 0x80
+ lsls r0, 17
+ ands r5, r0
+ cmp r5, 0
+ bne _0801FB22
+ ldr r4, _0801FAF0 @ =gBankAttacker
+ mov r8, r4
+ ldrb r0, [r4]
+ bl GetBankSide
+ adds r4, r0, 0
+ ldrb r0, [r6]
+ bl GetBankSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _0801FB22
+ ldr r0, _0801FAEC @ =gBattleMons
+ mov r9, r0
+ mov r1, r8
+ ldrb r2, [r1]
+ movs r7, 0x58
+ adds r3, r2, 0
+ muls r3, r7
+ adds r0, r3, r0
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801FB22
+ ldr r0, _0801FB08 @ =gCurrentMove
+ ldrh r0, [r0]
+ cmp r0, 0xA5
+ beq _0801FB22
+ ldr r1, _0801FB0C @ =0x02000000
+ ldr r4, _0801FB10 @ =0x0001608c
+ adds r0, r2, r4
+ adds r0, r1
+ ldrb r4, [r0]
+ adds r0, r4, r3
+ mov r6, r9
+ adds r6, 0x24
+ adds r0, r6
+ strb r5, [r0]
+ ldr r5, _0801FAF4 @ =gBattlescriptCurrInstr
+ ldr r0, [r5]
+ bl b_movescr_stack_push
+ ldr r0, _0801FB14 @ =gUnknown_081D9468
+ str r0, [r5]
+ ldr r5, _0801FAE4 @ =gActiveBank
+ mov r1, r8
+ ldrb r0, [r1]
+ strb r0, [r5]
+ adds r1, r4, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r5]
+ muls r0, r7
+ adds r0, r6
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl EmitSetAttributes
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+ ldr r1, _0801FB18 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ lsls r4, 1
+ mov r2, r8
+ ldrb r0, [r2]
+ muls r0, r7
+ adds r0, r4, r0
+ mov r2, r9
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ mov r3, r8
+ ldrb r0, [r3]
+ muls r0, r7
+ adds r4, r0
+ adds r4, r2
+ ldrh r0, [r4]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ b _0801FB22
+ .align 2, 0
+_0801FAE0: .4byte gBattleResults
+_0801FAE4: .4byte gActiveBank
+_0801FAE8: .4byte gHitMarker
+_0801FAEC: .4byte gBattleMons
+_0801FAF0: .4byte gBankAttacker
+_0801FAF4: .4byte gBattlescriptCurrInstr
+_0801FAF8: .4byte gBattleMoveDamage
+_0801FAFC: .4byte gUnknown_081D9156
+_0801FB00: .4byte gStatuses3
+_0801FB04: .4byte gBankTarget
+_0801FB08: .4byte gCurrentMove
+_0801FB0C: .4byte 0x02000000
+_0801FB10: .4byte 0x0001608c
+_0801FB14: .4byte gUnknown_081D9468
+_0801FB18: .4byte gBattleTextBuff1
+_0801FB1C:
+ ldr r0, [r6]
+ adds r0, 0x7
+ str r0, [r6]
+_0801FB22:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk19_faint_pokemon
+
+ thumb_func_start atk1A_faint_animation
+atk1A_faint_animation: @ 801FB34
+ push {r4,r5,lr}
+ ldr r0, _0801FB64 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801FB5E
+ ldr r5, _0801FB68 @ =gBattlescriptCurrInstr
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _0801FB6C @ =gActiveBank
+ strb r0, [r4]
+ movs r0, 0
+ bl EmitFaintAnimation
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+_0801FB5E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FB64: .4byte gBattleExecBuffer
+_0801FB68: .4byte gBattlescriptCurrInstr
+_0801FB6C: .4byte gActiveBank
+ thumb_func_end atk1A_faint_animation
+
+ thumb_func_start atk1B_faint_effects_clear
+atk1B_faint_effects_clear: @ 801FB70
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, _0801FBC4 @ =gBattleExecBuffer
+ ldr r6, [r0]
+ cmp r6, 0
+ bne _0801FBBC
+ ldr r5, _0801FBC8 @ =gBattlescriptCurrInstr
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _0801FBCC @ =gActiveBank
+ strb r0, [r4]
+ ldr r1, _0801FBD0 @ =gBattleMons
+ ldrb r0, [r4]
+ movs r2, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ str r6, [r0]
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ bl UndoEffectsAfterFainting
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+_0801FBBC:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FBC4: .4byte gBattleExecBuffer
+_0801FBC8: .4byte gBattlescriptCurrInstr
+_0801FBCC: .4byte gActiveBank
+_0801FBD0: .4byte gBattleMons
+ thumb_func_end atk1B_faint_effects_clear
+
+ thumb_func_start atk1C_jumpifstatus
+atk1C_jumpifstatus: @ 801FBD4
+ push {r4,r5,lr}
+ ldr r5, _0801FC30 @ =gBattlescriptCurrInstr
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r5]
+ ldrb r4, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ lsls r1, 8
+ adds r4, r1
+ ldrb r1, [r2, 0x4]
+ lsls r1, 16
+ adds r4, r1
+ ldrb r1, [r2, 0x5]
+ lsls r1, 24
+ adds r4, r1
+ ldrb r3, [r2, 0x6]
+ ldrb r1, [r2, 0x7]
+ lsls r1, 8
+ adds r3, r1
+ ldrb r1, [r2, 0x8]
+ lsls r1, 16
+ adds r3, r1
+ ldrb r1, [r2, 0x9]
+ lsls r1, 24
+ adds r3, r1
+ ldr r2, _0801FC34 @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _0801FC38
+ adds r0, r1, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801FC38
+ str r3, [r5]
+ b _0801FC40
+ .align 2, 0
+_0801FC30: .4byte gBattlescriptCurrInstr
+_0801FC34: .4byte gBattleMons
+_0801FC38:
+ ldr r1, _0801FC48 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+_0801FC40:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FC48: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk1C_jumpifstatus
+
+ thumb_func_start atk1D_jumpifstatus2
+atk1D_jumpifstatus2: @ 801FC4C
+ push {r4,r5,lr}
+ ldr r5, _0801FCA8 @ =gBattlescriptCurrInstr
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r5]
+ ldrb r4, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ lsls r1, 8
+ adds r4, r1
+ ldrb r1, [r2, 0x4]
+ lsls r1, 16
+ adds r4, r1
+ ldrb r1, [r2, 0x5]
+ lsls r1, 24
+ adds r4, r1
+ ldrb r3, [r2, 0x6]
+ ldrb r1, [r2, 0x7]
+ lsls r1, 8
+ adds r3, r1
+ ldrb r1, [r2, 0x8]
+ lsls r1, 16
+ adds r3, r1
+ ldrb r1, [r2, 0x9]
+ lsls r1, 24
+ adds r3, r1
+ ldr r2, _0801FCAC @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r0
+ adds r0, r2, 0
+ adds r0, 0x50
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _0801FCB0
+ adds r0, r1, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801FCB0
+ str r3, [r5]
+ b _0801FCB8
+ .align 2, 0
+_0801FCA8: .4byte gBattlescriptCurrInstr
+_0801FCAC: .4byte gBattleMons
+_0801FCB0:
+ ldr r1, _0801FCC0 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+_0801FCB8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FCC0: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk1D_jumpifstatus2
+
+ thumb_func_start atk1E_jumpifability
+atk1E_jumpifability: @ 801FCC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r6, _0801FD18 @ =gBattlescriptCurrInstr
+ ldr r2, [r6]
+ ldrb r5, [r2, 0x2]
+ mov r8, r5
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ adds r7, r1, r0
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x8
+ bne _0801FD24
+ ldr r0, _0801FD1C @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xD
+ adds r2, r5, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0801FDA0
+ ldr r1, _0801FD20 @ =gLastUsedAbility
+ strb r5, [r1]
+ str r7, [r6]
+ subs r4, 0x1
+ lsls r0, r4, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ b _0801FD80
+ .align 2, 0
+_0801FD18: .4byte gBattlescriptCurrInstr
+_0801FD1C: .4byte gBankAttacker
+_0801FD20: .4byte gLastUsedAbility
+_0801FD24:
+ cmp r0, 0x9
+ bne _0801FD5C
+ ldr r0, _0801FD54 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC
+ adds r2, r5, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0801FDA0
+ ldr r1, _0801FD58 @ =gLastUsedAbility
+ strb r5, [r1]
+ str r7, [r6]
+ subs r4, 0x1
+ lsls r0, r4, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ b _0801FD80
+ .align 2, 0
+_0801FD54: .4byte gBankAttacker
+_0801FD58: .4byte gLastUsedAbility
+_0801FD5C:
+ ldrb r0, [r2, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0801FD90 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, r8
+ bne _0801FDA0
+ ldr r0, _0801FD94 @ =gLastUsedAbility
+ strb r1, [r0]
+ str r7, [r6]
+ ldrb r1, [r0]
+ adds r0, r4, 0
+_0801FD80:
+ bl sub_81074C4
+ ldr r0, _0801FD98 @ =0x02000000
+ ldr r1, _0801FD9C @ =0x000160f8
+ adds r0, r1
+ strb r4, [r0]
+ b _0801FDA6
+ .align 2, 0
+_0801FD90: .4byte gBattleMons
+_0801FD94: .4byte gLastUsedAbility
+_0801FD98: .4byte 0x02000000
+_0801FD9C: .4byte 0x000160f8
+_0801FDA0:
+ ldr r0, [r6]
+ adds r0, 0x7
+ str r0, [r6]
+_0801FDA6:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk1E_jumpifability
+
+ thumb_func_start atk1F_jumpifsideaffecting
+atk1F_jumpifsideaffecting: @ 801FDB4
+ push {r4-r6,lr}
+ ldr r0, _0801FDCC @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r4, [r0, 0x1]
+ cmp r4, 0x1
+ bne _0801FDD4
+ ldr r0, _0801FDD0 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ b _0801FDDE
+ .align 2, 0
+_0801FDCC: .4byte gBattlescriptCurrInstr
+_0801FDD0: .4byte gBankAttacker
+_0801FDD4:
+ ldr r0, _0801FE14 @ =gBankTarget
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ movs r4, 0x1
+_0801FDDE:
+ ands r4, r0
+ ldr r6, _0801FE18 @ =gBattlescriptCurrInstr
+ ldr r3, [r6]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r1, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 24
+ adds r5, r1, r0
+ ldr r1, _0801FE1C @ =gSideAffecting
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _0801FE20
+ str r5, [r6]
+ b _0801FE26
+ .align 2, 0
+_0801FE14: .4byte gBankTarget
+_0801FE18: .4byte gBattlescriptCurrInstr
+_0801FE1C: .4byte gSideAffecting
+_0801FE20:
+ adds r0, r3, 0
+ adds r0, 0x8
+ str r0, [r6]
+_0801FE26:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk1F_jumpifsideaffecting
+
+ thumb_func_start atk20_jumpifstat
+atk20_jumpifstat: @ 801FE2C
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, _0801FE60 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0801FE64 @ =gBattleMons
+ ldr r3, [r4]
+ movs r1, 0x58
+ muls r0, r1
+ ldrb r1, [r3, 0x3]
+ adds r0, r1
+ adds r2, 0x18
+ adds r0, r2
+ ldrb r2, [r0]
+ ldrb r0, [r3, 0x2]
+ cmp r0, 0x5
+ bhi _0801FEEA
+ lsls r0, 2
+ ldr r1, _0801FE68 @ =_0801FE6C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801FE60: .4byte gBattlescriptCurrInstr
+_0801FE64: .4byte gBattleMons
+_0801FE68: .4byte _0801FE6C
+ .align 2, 0
+_0801FE6C:
+ .4byte _0801FE84
+ .4byte _0801FE94
+ .4byte _0801FEA4
+ .4byte _0801FEB4
+ .4byte _0801FEC4
+ .4byte _0801FED8
+_0801FE84:
+ ldr r0, _0801FE90 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ bne _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FE90: .4byte gBattlescriptCurrInstr
+_0801FE94:
+ ldr r0, _0801FEA0 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ beq _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FEA0: .4byte gBattlescriptCurrInstr
+_0801FEA4:
+ ldr r0, _0801FEB0 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ bls _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FEB0: .4byte gBattlescriptCurrInstr
+_0801FEB4:
+ ldr r0, _0801FEC0 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ bcs _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FEC0: .4byte gBattlescriptCurrInstr
+_0801FEC4:
+ ldr r0, _0801FED4 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ ands r2, r0
+ cmp r2, 0
+ beq _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FED4: .4byte gBattlescriptCurrInstr
+_0801FED8:
+ ldr r0, _0801FF0C @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ ands r2, r0
+ cmp r2, 0
+ bne _0801FEEA
+_0801FEE4:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0801FEEA:
+ cmp r5, 0
+ beq _0801FF10
+ ldr r3, _0801FF0C @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+ b _0801FF18
+ .align 2, 0
+_0801FF0C: .4byte gBattlescriptCurrInstr
+_0801FF10:
+ ldr r1, _0801FF20 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x9
+ str r0, [r1]
+_0801FF18:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FF20: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk20_jumpifstat
+
+ thumb_func_start atk21_jumpifstatus3
+atk21_jumpifstatus3: @ 801FF24
+ push {r4-r6,lr}
+ ldr r4, _0801FF78 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _0801FF7C @ =gActiveBank
+ strb r0, [r5]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ adds r6, r1, r0
+ ldrb r1, [r2, 0x7]
+ ldrb r0, [r2, 0x8]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x9]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0xA]
+ lsls r0, 24
+ adds r3, r1, r0
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0
+ beq _0801FF84
+ ldr r0, _0801FF80 @ =gStatuses3
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ ands r0, r6
+ cmp r0, 0
+ bne _0801FF9C
+ b _0801FF94
+ .align 2, 0
+_0801FF78: .4byte gBattlescriptCurrInstr
+_0801FF7C: .4byte gActiveBank
+_0801FF80: .4byte gStatuses3
+_0801FF84:
+ ldr r0, _0801FF98 @ =gStatuses3
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ ands r0, r6
+ cmp r0, 0
+ beq _0801FF9C
+_0801FF94:
+ str r3, [r4]
+ b _0801FFA2
+ .align 2, 0
+_0801FF98: .4byte gStatuses3
+_0801FF9C:
+ adds r0, r2, 0
+ adds r0, 0xB
+ str r0, [r4]
+_0801FFA2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk21_jumpifstatus3
+
+ thumb_func_start atk22_jumpiftype
+atk22_jumpiftype: @ 801FFA8
+ push {r4-r6,lr}
+ ldr r4, _0801FFF0 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [r4]
+ ldrb r5, [r3, 0x2]
+ ldrb r2, [r3, 0x3]
+ ldrb r1, [r3, 0x4]
+ lsls r1, 8
+ adds r2, r1
+ ldrb r1, [r3, 0x5]
+ lsls r1, 16
+ adds r2, r1
+ ldrb r1, [r3, 0x6]
+ lsls r1, 24
+ adds r6, r2, r1
+ ldr r2, _0801FFF4 @ =gBattleMons
+ movs r1, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r5
+ beq _0801FFEC
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r5
+ bne _0801FFF8
+_0801FFEC:
+ str r6, [r4]
+ b _0801FFFC
+ .align 2, 0
+_0801FFF0: .4byte gBattlescriptCurrInstr
+_0801FFF4: .4byte gBattleMons
+_0801FFF8:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0801FFFC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk22_jumpiftype
+
+ thumb_func_start atk23_getexp
+atk23_getexp: @ 8020004
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ ldr r0, _0802004C @ =0x0201605c
+ mov r10, r0
+ ldr r0, _08020050 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08020054 @ =gBank1
+ strb r0, [r1]
+ ldr r2, _08020058 @ =gSentPokesToOpponent
+ movs r1, 0x2
+ ands r1, r0
+ lsls r1, 24
+ lsrs r1, 25
+ adds r1, r2
+ ldrb r1, [r1]
+ mov r8, r1
+ mov r0, r10
+ subs r0, 0x4D
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _08020040
+ bl _08020996
+_08020040:
+ lsls r0, 2
+ ldr r1, _0802005C @ =_08020060
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802004C: .4byte 0x0201605c
+_08020050: .4byte gBattlescriptCurrInstr
+_08020054: .4byte gBank1
+_08020058: .4byte gSentPokesToOpponent
+_0802005C: .4byte _08020060
+ .align 2, 0
+_08020060:
+ .4byte _0802007C
+ .4byte _080200FC
+ .4byte _08020216
+ .4byte _0802055C
+ .4byte _08020648
+ .4byte _08020910
+ .4byte _0802096C
+_0802007C:
+ ldr r4, _080200A8 @ =gBank1
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08020098
+ ldr r0, _080200AC @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _080200B0 @ =0x00000982
+ ands r0, r1
+ cmp r0, 0
+ beq _080200BC
+_08020098:
+ ldr r0, _080200B4 @ =0x02000000
+ ldr r1, _080200B8 @ =0x0001600f
+ adds r0, r1
+ movs r1, 0x6
+ strb r1, [r0]
+ bl _08020996
+ .align 2, 0
+_080200A8: .4byte gBank1
+_080200AC: .4byte gBattleTypeFlags
+_080200B0: .4byte 0x00000982
+_080200B4: .4byte 0x02000000
+_080200B8: .4byte 0x0001600f
+_080200BC:
+ ldr r2, _080200E8 @ =0x02000000
+ ldr r3, _080200EC @ =0x0001600f
+ adds r1, r2, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080200F0 @ =0x00016113
+ adds r2, r0
+ ldr r3, _080200F4 @ =gBitTable
+ ldr r1, _080200F8 @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ bl _08020996
+ .align 2, 0
+_080200E8: .4byte 0x02000000
+_080200EC: .4byte 0x0001600f
+_080200F0: .4byte 0x00016113
+_080200F4: .4byte gBitTable
+_080200F8: .4byte gBattlePartyID
+_080200FC:
+ movs r5, 0
+ movs r7, 0
+ ldr r1, _08020150 @ =gSaveBlock1 + 0x3688
+ mov r9, r1
+_08020104:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _08020154 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0802016A
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0802016A
+ ldr r0, _08020158 @ =gBitTable
+ lsls r1, r7, 2
+ adds r1, r0
+ ldr r0, [r1]
+ mov r2, r8
+ ands r0, r2
+ cmp r0, 0
+ beq _08020138
+ adds r5, 0x1
+_08020138:
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0802015C
+ mov r3, r9
+ ldrb r4, [r3]
+ b _08020164
+ .align 2, 0
+_08020150: .4byte gSaveBlock1 + 0x3688
+_08020154: .4byte gPlayerParty
+_08020158: .4byte gBitTable
+_0802015C:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08020164:
+ cmp r4, 0x19
+ bne _0802016A
+ adds r6, 0x1
+_0802016A:
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08020104
+ ldr r3, _080201D0 @ =gBaseStats
+ ldr r2, _080201D4 @ =gBattleMons
+ ldr r0, _080201D8 @ =gBank1
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x9]
+ adds r1, 0x2A
+ ldrb r0, [r1]
+ muls r0, r2
+ movs r1, 0x7
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r6, 0
+ beq _080201E0
+ lsrs r4, r0, 17
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl __divsi3
+ mov r1, r10
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080201B6
+ movs r0, 0x1
+ strh r0, [r1]
+_080201B6:
+ ldr r5, _080201DC @ =gExpShareExp
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __divsi3
+ strh r0, [r5]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080201FA
+ movs r0, 0x1
+ strh r0, [r5]
+ b _080201FA
+ .align 2, 0
+_080201D0: .4byte gBaseStats
+_080201D4: .4byte gBattleMons
+_080201D8: .4byte gBank1
+_080201DC: .4byte gExpShareExp
+_080201E0:
+ adds r0, r1, 0
+ adds r1, r5, 0
+ bl __divsi3
+ mov r2, r10
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080201F6
+ movs r0, 0x1
+ strh r0, [r2]
+_080201F6:
+ ldr r0, _08020248 @ =gExpShareExp
+ strh r6, [r0]
+_080201FA:
+ ldr r1, _0802024C @ =0x02000000
+ ldr r3, _08020250 @ =0x0001600f
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r2]
+ ldr r2, _08020254 @ =0x00016018
+ adds r0, r1, r2
+ strb r3, [r0]
+ ldr r3, _08020258 @ =0x0001605f
+ adds r1, r3
+ mov r0, r8
+ strb r0, [r1]
+_08020216:
+ ldr r0, _0802025C @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08020220
+ b _08020996
+_08020220:
+ ldr r0, _0802024C @ =0x02000000
+ ldr r1, _08020254 @ =0x00016018
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08020260 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0802026C
+ ldr r0, _08020264 @ =gSaveBlock1
+ ldr r2, _08020268 @ =0x00003688
+ adds r0, r2
+ ldrb r4, [r0]
+ b _08020274
+ .align 2, 0
+_08020248: .4byte gExpShareExp
+_0802024C: .4byte 0x02000000
+_08020250: .4byte 0x0001600f
+_08020254: .4byte 0x00016018
+_08020258: .4byte 0x0001605f
+_0802025C: .4byte gBattleExecBuffer
+_08020260: .4byte gPlayerParty
+_08020264: .4byte gSaveBlock1
+_08020268: .4byte 0x00003688
+_0802026C:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08020274:
+ ldr r5, _08020294 @ =0x02000000
+ cmp r4, 0x19
+ beq _080202A0
+ ldr r3, _08020298 @ =0x0001605f
+ adds r1, r5, r3
+ ldrb r0, [r1]
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ bne _080202A0
+ lsrs r0, 1
+ strb r0, [r1]
+ ldr r0, _0802029C @ =0x0001600f
+ adds r1, r5, r0
+ b _080202C8
+ .align 2, 0
+_08020294: .4byte 0x02000000
+_08020298: .4byte 0x0001605f
+_0802029C: .4byte 0x0001600f
+_080202A0:
+ ldr r1, _080202D4 @ =0x00016018
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080202D8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x64
+ bne _080202E8
+ ldr r2, _080202DC @ =0x0001605f
+ adds r1, r5, r2
+ ldrb r0, [r1]
+ lsrs r0, 1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r3, _080202E0 @ =0x0001600f
+ adds r1, r5, r3
+_080202C8:
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r0, _080202E4 @ =gBattleMoveDamage
+ str r2, [r0]
+ b _08020996
+ .align 2, 0
+_080202D4: .4byte 0x00016018
+_080202D8: .4byte gPlayerParty
+_080202DC: .4byte 0x0001605f
+_080202E0: .4byte 0x0001600f
+_080202E4: .4byte gBattleMoveDamage
+_080202E8:
+ ldr r0, _0802034C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08020316
+ ldr r0, _08020350 @ =gBattleMons
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08020316
+ ldr r0, _08020354 @ =0x0001601b
+ adds r5, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _08020316
+ bl sub_80325B8
+ ldr r0, _08020358 @ =0x00000161
+ bl PlayBGM
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_08020316:
+ ldr r5, _0802035C @ =0x02000000
+ ldr r1, _08020360 @ =0x00016018
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08020364 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _08020332
+ b _0802051E
+_08020332:
+ ldr r2, _08020368 @ =0x0001605f
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ movs r3, 0x1
+ ands r3, r0
+ cmp r3, 0
+ beq _08020370
+ ldr r1, _0802036C @ =gBattleMoveDamage
+ mov r3, r10
+ ldrh r0, [r3]
+ str r0, [r1]
+ mov r8, r1
+ b _08020376
+ .align 2, 0
+_0802034C: .4byte gBattleTypeFlags
+_08020350: .4byte gBattleMons
+_08020354: .4byte 0x0001601b
+_08020358: .4byte 0x00000161
+_0802035C: .4byte 0x02000000
+_08020360: .4byte 0x00016018
+_08020364: .4byte gPlayerParty
+_08020368: .4byte 0x0001605f
+_0802036C: .4byte gBattleMoveDamage
+_08020370:
+ ldr r0, _080203EC @ =gBattleMoveDamage
+ str r3, [r0]
+ mov r8, r0
+_08020376:
+ cmp r4, 0x19
+ bne _08020386
+ ldr r0, _080203F0 @ =gExpShareExp
+ ldrh r1, [r0]
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+_08020386:
+ cmp r4, 0x28
+ bne _0802039C
+ mov r3, r8
+ ldr r1, [r3]
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ mov r1, r8
+ str r0, [r1]
+_0802039C:
+ ldr r0, _080203F4 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080203B8
+ ldr r4, _080203EC @ =gBattleMoveDamage
+ ldr r1, [r4]
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+_080203B8:
+ ldr r0, _080203F8 @ =0x02000000
+ ldr r2, _080203FC @ =0x00016018
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08020400 @ =gPlayerParty
+ adds r0, r1
+ bl IsTradedMon
+ lsls r0, 24
+ cmp r0, 0
+ beq _08020404
+ ldr r4, _080203EC @ =gBattleMoveDamage
+ ldr r1, [r4]
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ movs r7, 0xA5
+ lsls r7, 1
+ mov r8, r4
+ b _0802040A
+ .align 2, 0
+_080203EC: .4byte gBattleMoveDamage
+_080203F0: .4byte gExpShareExp
+_080203F4: .4byte gBattleTypeFlags
+_080203F8: .4byte 0x02000000
+_080203FC: .4byte 0x00016018
+_08020400: .4byte gPlayerParty
+_08020404:
+ ldr r7, _0802043C @ =0x00000149
+ ldr r3, _08020440 @ =gBattleMoveDamage
+ mov r8, r3
+_0802040A:
+ ldr r0, _08020444 @ =gBattleTypeFlags
+ ldrh r0, [r0]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08020488
+ ldr r1, _08020448 @ =gBattlePartyID
+ ldr r0, _0802044C @ =0x02000000
+ ldr r3, _08020450 @ =0x00016018
+ adds r2, r0, r3
+ ldrh r1, [r1, 0x4]
+ adds r5, r0, 0
+ ldr r4, _08020454 @ =gBitTable
+ ldr r3, _08020458 @ =gAbsentBankFlags
+ ldrb r2, [r2]
+ cmp r1, r2
+ bne _08020460
+ ldrb r1, [r3]
+ ldr r0, [r4, 0x8]
+ ands r1, r0
+ cmp r1, 0
+ bne _08020460
+ ldr r0, _0802045C @ =0x000160a2
+ adds r1, r5, r0
+ b _0802047C
+ .align 2, 0
+_0802043C: .4byte 0x00000149
+_08020440: .4byte gBattleMoveDamage
+_08020444: .4byte gBattleTypeFlags
+_08020448: .4byte gBattlePartyID
+_0802044C: .4byte 0x02000000
+_08020450: .4byte 0x00016018
+_08020454: .4byte gBitTable
+_08020458: .4byte gAbsentBankFlags
+_0802045C: .4byte 0x000160a2
+_08020460:
+ ldrb r2, [r3]
+ ldr r0, [r4]
+ ands r2, r0
+ cmp r2, 0
+ bne _08020478
+ ldr r1, _08020474 @ =0x000160a2
+ adds r0, r5, r1
+ strb r2, [r0]
+ b _08020490
+ .align 2, 0
+_08020474: .4byte 0x000160a2
+_08020478:
+ ldr r2, _08020484 @ =0x000160a2
+ adds r1, r5, r2
+_0802047C:
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08020490
+ .align 2, 0
+_08020484: .4byte 0x000160a2
+_08020488:
+ ldr r0, _08020530 @ =0x02000000
+ ldr r3, _08020534 @ =0x000160a2
+ adds r0, r3
+ strb r1, [r0]
+_08020490:
+ ldr r1, _08020538 @ =gBattleTextBuff1
+ movs r3, 0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r5, 0x4
+ strb r5, [r1, 0x1]
+ ldr r4, _08020530 @ =0x02000000
+ ldr r0, _08020534 @ =0x000160a2
+ adds r6, r4, r0
+ ldrb r0, [r6]
+ strb r0, [r1, 0x2]
+ ldr r0, _0802053C @ =0x00016018
+ adds r4, r0
+ ldrb r0, [r4]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08020540 @ =gBattleTextBuff2
+ strb r2, [r1]
+ strb r3, [r1, 0x1]
+ strb r7, [r1, 0x2]
+ movs r3, 0xFF
+ lsls r3, 8
+ ands r7, r3
+ asrs r0, r7, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x4]
+ ldr r1, _08020544 @ =gBattleTextBuff3
+ strb r2, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ strb r5, [r1, 0x2]
+ movs r0, 0x5
+ strb r0, [r1, 0x3]
+ mov r0, r8
+ ldr r2, [r0]
+ strb r2, [r1, 0x4]
+ adds r0, r2, 0
+ ands r0, r3
+ asrs r0, 8
+ strb r0, [r1, 0x5]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r2
+ asrs r0, 16
+ strb r0, [r1, 0x6]
+ lsrs r2, 24
+ strb r2, [r1, 0x7]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x8]
+ ldrb r1, [r6]
+ movs r0, 0xD
+ bl PrepareStringBattle
+ ldrb r1, [r4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08020548 @ =gPlayerParty
+ adds r0, r1
+ ldr r3, _0802054C @ =gBattleMons
+ ldr r1, _08020550 @ =gBank1
+ ldrb r2, [r1]
+ movs r1, 0x58
+ muls r1, r2
+ adds r1, r3
+ ldrh r1, [r1]
+ bl MonGainEVs
+_0802051E:
+ ldr r1, _08020530 @ =0x02000000
+ ldr r3, _08020554 @ =0x0001605f
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ lsrs r0, 1
+ strb r0, [r2]
+ ldr r0, _08020558 @ =0x0001600f
+ adds r1, r0
+ b _08020618
+ .align 2, 0
+_08020530: .4byte 0x02000000
+_08020534: .4byte 0x000160a2
+_08020538: .4byte gBattleTextBuff1
+_0802053C: .4byte 0x00016018
+_08020540: .4byte gBattleTextBuff2
+_08020544: .4byte gBattleTextBuff3
+_08020548: .4byte gPlayerParty
+_0802054C: .4byte gBattleMons
+_08020550: .4byte gBank1
+_08020554: .4byte 0x0001605f
+_08020558: .4byte 0x0001600f
+_0802055C:
+ ldr r0, _08020620 @ =gBattleExecBuffer
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _08020566
+ b _08020996
+_08020566:
+ ldr r1, _08020624 @ =gBattleBufferB
+ ldr r4, _08020628 @ =0x02000000
+ ldr r3, _0802062C @ =0x000160a2
+ adds r3, r4
+ mov r8, r3
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, _08020630 @ =0x00016018
+ adds r7, r4, r0
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08020634 @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08020612
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x64
+ beq _08020612
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3A
+ bl GetMonData
+ ldr r1, _08020638 @ =0x00017180
+ adds r4, r1
+ strh r0, [r4]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3B
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3C
+ bl GetMonData
+ strh r0, [r4, 0x4]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3D
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3E
+ bl GetMonData
+ strh r0, [r4, 0x8]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3F
+ bl GetMonData
+ strh r0, [r4, 0xA]
+ ldr r4, _0802063C @ =gActiveBank
+ mov r2, r8
+ ldrb r0, [r2]
+ strb r0, [r4]
+ ldrb r1, [r7]
+ ldr r0, _08020640 @ =gBattleMoveDamage
+ ldrh r2, [r0]
+ movs r0, 0
+ bl EmitExpBarUpdate
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_08020612:
+ ldr r1, _08020628 @ =0x02000000
+ ldr r3, _08020644 @ =0x0001600f
+ adds r1, r3
+_08020618:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08020996
+ .align 2, 0
+_08020620: .4byte gBattleExecBuffer
+_08020624: .4byte gBattleBufferB
+_08020628: .4byte 0x02000000
+_0802062C: .4byte 0x000160a2
+_08020630: .4byte 0x00016018
+_08020634: .4byte gPlayerParty
+_08020638: .4byte 0x00017180
+_0802063C: .4byte gActiveBank
+_08020640: .4byte gBattleMoveDamage
+_08020644: .4byte 0x0001600f
+_08020648:
+ ldr r0, _080208AC @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08020652
+ b _08020996
+_08020652:
+ ldr r1, _080208B0 @ =gActiveBank
+ ldr r4, _080208B4 @ =0x02000000
+ ldr r2, _080208B8 @ =0x000160a2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r2, _080208BC @ =gBattleBufferB
+ ldrb r3, [r1]
+ lsls r1, r3, 9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x21
+ beq _0802066E
+ b _080208F0
+_0802066E:
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0xB
+ beq _0802067A
+ b _080208F0
+_0802067A:
+ ldr r0, _080208C0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080206A8
+ ldr r1, _080208C4 @ =gBattlePartyID
+ lsls r0, r3, 1
+ adds r2, r0, r1
+ ldr r0, _080208C8 @ =0x00016018
+ adds r1, r4, r0
+ ldrh r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080206A8
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080208CC @ =gPlayerParty
+ adds r0, r1
+ adds r1, r3, 0
+ bl sub_80324F8
+_080206A8:
+ ldr r1, _080208D0 @ =gBattleTextBuff1
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r5, _080208B0 @ =gActiveBank
+ ldrb r0, [r5]
+ strb r0, [r1, 0x2]
+ ldr r0, _080208B4 @ =0x02000000
+ ldr r3, _080208C8 @ =0x00016018
+ adds r6, r0, r3
+ ldrb r0, [r6]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r4, _080208D4 @ =gBattleTextBuff2
+ strb r2, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ movs r0, 0x3
+ strb r0, [r4, 0x3]
+ ldrb r0, [r6]
+ movs r1, 0x64
+ mov r8, r1
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r7, _080208CC @ =gPlayerParty
+ adds r0, r7
+ movs r1, 0x38
+ bl GetMonData
+ strb r0, [r4, 0x4]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r4, 0x5]
+ bl b_movescr_stack_push_cursor
+ ldr r2, _080208D8 @ =gLeveledUpInBattle
+ ldr r1, _080208DC @ =gBitTable
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080208E0 @ =gBattlescriptCurrInstr
+ ldr r0, _080208E4 @ =BattleScript_LevelUp
+ str r0, [r1]
+ ldr r4, _080208E8 @ =gBattleMoveDamage
+ ldr r2, _080208BC @ =gBattleBufferB
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r0, r2, 0x2
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r2, 0x3
+ adds r1, r2
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ str r3, [r4]
+ ldrb r0, [r6]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7
+ movs r1, 0
+ bl AdjustFriendship
+ ldr r0, _080208C4 @ =gBattlePartyID
+ ldrb r1, [r6]
+ ldrh r0, [r0]
+ cmp r0, r1
+ bne _080207EC
+ ldr r4, _080208EC @ =gBattleMons
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ beq _080207EC
+ mov r0, r8
+ muls r0, r1
+ adds r0, r7
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r4, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r4, 0x28]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r4, 0x2C]
+ ldrb r0, [r6]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7
+ movs r1, 0x3B
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0x3C
+ bl GetMonData
+ strh r0, [r4, 0x4]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ movs r1, 0x3D
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldrb r0, [r6]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7
+ movs r1, 0x3D
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0x3E
+ bl GetMonData
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ movs r1, 0x3F
+ bl GetMonData
+ strh r0, [r4, 0xA]
+_080207EC:
+ ldr r0, _080208C4 @ =gBattlePartyID
+ ldr r1, _080208B4 @ =0x02000000
+ ldr r3, _080208C8 @ =0x00016018
+ adds r7, r1, r3
+ ldrb r2, [r7]
+ ldrh r0, [r0, 0x4]
+ cmp r0, r2
+ bne _080208F6
+ ldr r6, _080208EC @ =gBattleMons
+ movs r0, 0xD8
+ adds r0, r6
+ mov r8, r0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080208F6
+ ldr r0, _080208C0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080208F6
+ movs r5, 0x64
+ adds r0, r2, 0
+ muls r0, r5
+ ldr r4, _080208CC @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xDA
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ mov r1, r8
+ strh r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xDC
+ strh r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3B
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xB2
+ strh r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3C
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xB4
+ strh r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3D
+ bl GetMonData
+ movs r2, 0xB6
+ adds r2, r6
+ mov r8, r2
+ strh r0, [r2]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3D
+ bl GetMonData
+ mov r3, r8
+ strh r0, [r3]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3E
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xB8
+ strh r0, [r1]
+ b _080208F6
+ .align 2, 0
+_080208AC: .4byte gBattleExecBuffer
+_080208B0: .4byte gActiveBank
+_080208B4: .4byte 0x02000000
+_080208B8: .4byte 0x000160a2
+_080208BC: .4byte gBattleBufferB
+_080208C0: .4byte gBattleTypeFlags
+_080208C4: .4byte gBattlePartyID
+_080208C8: .4byte 0x00016018
+_080208CC: .4byte gPlayerParty
+_080208D0: .4byte gBattleTextBuff1
+_080208D4: .4byte gBattleTextBuff2
+_080208D8: .4byte gLeveledUpInBattle
+_080208DC: .4byte gBitTable
+_080208E0: .4byte gBattlescriptCurrInstr
+_080208E4: .4byte BattleScript_LevelUp
+_080208E8: .4byte gBattleMoveDamage
+_080208EC: .4byte gBattleMons
+_080208F0:
+ ldr r1, _08020904 @ =gBattleMoveDamage
+ movs r0, 0
+ str r0, [r1]
+_080208F6:
+ ldr r0, _08020908 @ =0x02000000
+ ldr r1, _0802090C @ =0x0001600f
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+ b _08020996
+ .align 2, 0
+_08020904: .4byte gBattleMoveDamage
+_08020908: .4byte 0x02000000
+_0802090C: .4byte 0x0001600f
+_08020910:
+ ldr r0, _08020924 @ =gBattleMoveDamage
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08020930
+ ldr r0, _08020928 @ =0x02000000
+ ldr r2, _0802092C @ =0x0001600f
+ adds r0, r2
+ movs r1, 0x3
+ strb r1, [r0]
+ b _08020996
+ .align 2, 0
+_08020924: .4byte gBattleMoveDamage
+_08020928: .4byte 0x02000000
+_0802092C: .4byte 0x0001600f
+_08020930:
+ ldr r2, _08020950 @ =0x02000000
+ ldr r3, _08020954 @ =0x00016018
+ adds r1, r2, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _0802095C
+ ldr r0, _08020958 @ =0x0001600f
+ adds r1, r2, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08020996
+ .align 2, 0
+_08020950: .4byte 0x02000000
+_08020954: .4byte 0x00016018
+_08020958: .4byte 0x0001600f
+_0802095C:
+ ldr r3, _08020968 @ =0x0001600f
+ adds r1, r2, r3
+ movs r0, 0x6
+ strb r0, [r1]
+ b _08020996
+ .align 2, 0
+_08020968: .4byte 0x0001600f
+_0802096C:
+ ldr r0, _080209A4 @ =gBattleExecBuffer
+ ldr r5, [r0]
+ cmp r5, 0
+ bne _08020996
+ ldr r4, _080209A8 @ =gBattleMons
+ ldr r2, _080209AC @ =gBank1
+ ldrb r0, [r2]
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r4
+ movs r3, 0
+ strh r5, [r0, 0x2E]
+ ldrb r0, [r2]
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x20
+ strb r3, [r0]
+ ldr r1, _080209B0 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_08020996:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080209A4: .4byte gBattleExecBuffer
+_080209A8: .4byte gBattleMons
+_080209AC: .4byte gBank1
+_080209B0: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk23_getexp
+
+ thumb_func_start atk24
+atk24: @ 80209B4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r0, _08020AF0 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080209C6
+ b _08020B46
+_080209C6:
+ movs r5, 0
+_080209C8:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08020AF4 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080209F8
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080209F8
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r0, r6, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080209F8:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080209C8
+ cmp r6, 0
+ bne _08020A0C
+ ldr r0, _08020AF8 @ =gBattleOutcome
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+_08020A0C:
+ movs r6, 0
+ movs r5, 0
+_08020A10:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08020AFC @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08020A40
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08020A40
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r0, r6, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08020A40:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08020A10
+ ldr r2, _08020AF8 @ =gBattleOutcome
+ cmp r6, 0
+ bne _08020A54
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_08020A54:
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08020B3E
+ ldr r2, _08020B00 @ =gBattleTypeFlags
+ ldrh r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _08020B3E
+ movs r2, 0
+ movs r5, 0
+ ldr r0, _08020B04 @ =gNoOfAllBanks
+ ldrb r3, [r0]
+ mov r12, r0
+ ldr r7, _08020B08 @ =gBattlescriptCurrInstr
+ cmp r2, r3
+ bge _08020AA0
+ ldr r0, _08020B0C @ =gHitMarker
+ movs r1, 0x80
+ lsls r1, 21
+ ldr r6, [r0]
+ adds r4, r3, 0
+ ldr r3, _08020B10 @ =gSpecialStatuses
+_08020A84:
+ adds r0, r1, 0
+ lsls r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _08020A98
+ ldrb r0, [r3]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08020A98
+ adds r2, 0x1
+_08020A98:
+ adds r3, 0x28
+ adds r5, 0x2
+ cmp r5, r4
+ blt _08020A84
+_08020AA0:
+ movs r4, 0
+ movs r5, 0x1
+ mov r0, r12
+ ldrb r3, [r0]
+ cmp r5, r3
+ bge _08020ADA
+ ldr r0, _08020B0C @ =gHitMarker
+ movs r1, 0x80
+ lsls r1, 21
+ mov r12, r1
+ ldr r1, [r0]
+ ldr r0, _08020B10 @ =gSpecialStatuses
+ adds r6, r3, 0
+ adds r3, r0, 0
+ adds r3, 0x14
+_08020ABE:
+ mov r0, r12
+ lsls r0, r5
+ ands r0, r1
+ cmp r0, 0
+ beq _08020AD2
+ ldrb r0, [r3]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08020AD2
+ adds r4, 0x1
+_08020AD2:
+ adds r3, 0x28
+ adds r5, 0x2
+ cmp r5, r6
+ blt _08020ABE
+_08020ADA:
+ mov r0, r8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08020B14
+ adds r0, r4, r2
+ cmp r0, 0x1
+ bgt _08020B1C
+ b _08020B36
+ .align 2, 0
+_08020AF0: .4byte gBattleExecBuffer
+_08020AF4: .4byte gPlayerParty
+_08020AF8: .4byte gBattleOutcome
+_08020AFC: .4byte gEnemyParty
+_08020B00: .4byte gBattleTypeFlags
+_08020B04: .4byte gNoOfAllBanks
+_08020B08: .4byte gBattlescriptCurrInstr
+_08020B0C: .4byte gHitMarker
+_08020B10: .4byte gSpecialStatuses
+_08020B14:
+ cmp r4, 0
+ beq _08020B36
+ cmp r2, 0
+ beq _08020B36
+_08020B1C:
+ ldr r2, [r7]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r7]
+ b _08020B46
+_08020B36:
+ ldr r0, [r7]
+ adds r0, 0x5
+ str r0, [r7]
+ b _08020B46
+_08020B3E:
+ ldr r1, _08020B50 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08020B46:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08020B50: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk24
+
+ thumb_func_start sub_8020B54
+sub_8020B54: @ 8020B54
+ ldr r1, _08020B80 @ =gBattleMoveFlags
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08020B84 @ =0x02000000
+ ldr r1, _08020B88 @ =0x0001601f
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08020B8C @ =gCritMultiplier
+ strb r1, [r0]
+ ldr r0, _08020B90 @ =gBattleCommunication
+ strb r2, [r0, 0x3]
+ strb r2, [r0, 0x6]
+ ldr r2, _08020B94 @ =gHitMarker
+ ldr r0, [r2]
+ subs r1, 0x42
+ ands r0, r1
+ ldr r1, _08020B98 @ =0xffffbfff
+ ands r0, r1
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_08020B80: .4byte gBattleMoveFlags
+_08020B84: .4byte 0x02000000
+_08020B88: .4byte 0x0001601f
+_08020B8C: .4byte gCritMultiplier
+_08020B90: .4byte gBattleCommunication
+_08020B94: .4byte gHitMarker
+_08020B98: .4byte 0xffffbfff
+ thumb_func_end sub_8020B54
+
+ thumb_func_start atk25_move_values_cleanup
+atk25_move_values_cleanup: @ 8020B9C
+ push {lr}
+ bl sub_8020B54
+ ldr r1, _08020BB0 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08020BB0: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk25_move_values_cleanup
+
+ thumb_func_start atk26_set_multihit
+atk26_set_multihit: @ 8020BB4
+ ldr r3, _08020BC4 @ =gMultiHitCounter
+ ldr r2, _08020BC8 @ =gBattlescriptCurrInstr
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x1]
+ strb r1, [r3]
+ adds r0, 0x2
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_08020BC4: .4byte gMultiHitCounter
+_08020BC8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk26_set_multihit
+
+ thumb_func_start atk27_decrement_multihit
+atk27_decrement_multihit: @ 8020BCC
+ push {lr}
+ ldr r1, _08020BE8 @ =gMultiHitCounter
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08020BF0
+ ldr r1, _08020BEC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08020C0A
+ .align 2, 0
+_08020BE8: .4byte gMultiHitCounter
+_08020BEC: .4byte gBattlescriptCurrInstr
+_08020BF0:
+ ldr r3, _08020C10 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+_08020C0A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08020C10: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk27_decrement_multihit
+
+ thumb_func_start atk28_goto
+atk28_goto: @ 8020C14
+ ldr r3, _08020C30 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+ bx lr
+ .align 2, 0
+_08020C30: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk28_goto
+
+ thumb_func_start atk29_jumpifbyte
+atk29_jumpifbyte: @ 8020C34
+ push {r4-r6,lr}
+ ldr r3, _08020C78 @ =gBattlescriptCurrInstr
+ ldr r1, [r3]
+ ldrb r6, [r1, 0x1]
+ ldrb r2, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0x6]
+ ldrb r2, [r1, 0x7]
+ ldrb r0, [r1, 0x8]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x9]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 24
+ adds r2, r0
+ adds r1, 0xB
+ str r1, [r3]
+ cmp r6, 0x5
+ bhi _08020CCC
+ lsls r0, r6, 2
+ ldr r1, _08020C7C @ =_08020C80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020C78: .4byte gBattlescriptCurrInstr
+_08020C7C: .4byte _08020C80
+ .align 2, 0
+_08020C80:
+ .4byte _08020C98
+ .4byte _08020CA0
+ .4byte _08020CA8
+ .4byte _08020CB0
+ .4byte _08020CB8
+ .4byte _08020CC2
+_08020C98:
+ ldrb r0, [r5]
+ cmp r0, r4
+ bne _08020CCC
+ b _08020CCA
+_08020CA0:
+ ldrb r0, [r5]
+ cmp r0, r4
+ beq _08020CCC
+ b _08020CCA
+_08020CA8:
+ ldrb r0, [r5]
+ cmp r0, r4
+ bls _08020CCC
+ b _08020CCA
+_08020CB0:
+ ldrb r0, [r5]
+ cmp r0, r4
+ bcs _08020CCC
+ b _08020CCA
+_08020CB8:
+ ldrb r0, [r5]
+ ands r4, r0
+ cmp r4, 0
+ beq _08020CCC
+ b _08020CCA
+_08020CC2:
+ ldrb r0, [r5]
+ ands r4, r0
+ cmp r4, 0
+ bne _08020CCC
+_08020CCA:
+ str r2, [r3]
+_08020CCC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk29_jumpifbyte
+
+ thumb_func_start atk2A_jumpifhalfword
+atk2A_jumpifhalfword: @ 8020CD4
+ push {r4-r6,lr}
+ ldr r3, _08020D20 @ =gBattlescriptCurrInstr
+ ldr r1, [r3]
+ ldrb r6, [r1, 0x1]
+ ldrb r2, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0x6]
+ ldrb r0, [r1, 0x7]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r2, [r1, 0x8]
+ ldrb r0, [r1, 0x9]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xB]
+ lsls r0, 24
+ adds r2, r0
+ adds r1, 0xC
+ str r1, [r3]
+ cmp r6, 0x5
+ bhi _08020D74
+ lsls r0, r6, 2
+ ldr r1, _08020D24 @ =_08020D28
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020D20: .4byte gBattlescriptCurrInstr
+_08020D24: .4byte _08020D28
+ .align 2, 0
+_08020D28:
+ .4byte _08020D40
+ .4byte _08020D48
+ .4byte _08020D50
+ .4byte _08020D58
+ .4byte _08020D60
+ .4byte _08020D6A
+_08020D40:
+ ldrh r0, [r5]
+ cmp r0, r4
+ bne _08020D74
+ b _08020D72
+_08020D48:
+ ldrh r0, [r5]
+ cmp r0, r4
+ beq _08020D74
+ b _08020D72
+_08020D50:
+ ldrh r0, [r5]
+ cmp r0, r4
+ bls _08020D74
+ b _08020D72
+_08020D58:
+ ldrh r0, [r5]
+ cmp r0, r4
+ bcs _08020D74
+ b _08020D72
+_08020D60:
+ ldrh r0, [r5]
+ ands r4, r0
+ cmp r4, 0
+ beq _08020D74
+ b _08020D72
+_08020D6A:
+ ldrh r0, [r5]
+ ands r4, r0
+ cmp r4, 0
+ bne _08020D74
+_08020D72:
+ str r2, [r3]
+_08020D74:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk2A_jumpifhalfword
+
+ thumb_func_start atk2B_jumpifword
+atk2B_jumpifword: @ 8020D7C
+ push {r4-r6,lr}
+ ldr r3, _08020DD4 @ =gBattlescriptCurrInstr
+ ldr r1, [r3]
+ ldrb r6, [r1, 0x1]
+ ldrb r2, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0x6]
+ ldrb r0, [r1, 0x7]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r1, 0x8]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r1, 0x9]
+ lsls r0, 24
+ orrs r4, r0
+ ldrb r2, [r1, 0xA]
+ ldrb r0, [r1, 0xB]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xD]
+ lsls r0, 24
+ adds r2, r0
+ adds r1, 0xE
+ str r1, [r3]
+ cmp r6, 0x5
+ bhi _08020E28
+ lsls r0, r6, 2
+ ldr r1, _08020DD8 @ =_08020DDC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020DD4: .4byte gBattlescriptCurrInstr
+_08020DD8: .4byte _08020DDC
+ .align 2, 0
+_08020DDC:
+ .4byte _08020DF4
+ .4byte _08020DFC
+ .4byte _08020E04
+ .4byte _08020E0C
+ .4byte _08020E14
+ .4byte _08020E1E
+_08020DF4:
+ ldr r0, [r5]
+ cmp r0, r4
+ bne _08020E28
+ b _08020E26
+_08020DFC:
+ ldr r0, [r5]
+ cmp r0, r4
+ beq _08020E28
+ b _08020E26
+_08020E04:
+ ldr r0, [r5]
+ cmp r0, r4
+ bls _08020E28
+ b _08020E26
+_08020E0C:
+ ldr r0, [r5]
+ cmp r0, r4
+ bcs _08020E28
+ b _08020E26
+_08020E14:
+ ldr r0, [r5]
+ ands r0, r4
+ cmp r0, 0
+ beq _08020E28
+ b _08020E26
+_08020E1E:
+ ldr r0, [r5]
+ ands r0, r4
+ cmp r0, 0
+ bne _08020E28
+_08020E26:
+ str r2, [r3]
+_08020E28:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk2B_jumpifword
+
+ thumb_func_start atk2C_jumpifarrayequal
+atk2C_jumpifarrayequal: @ 8020E30
+ push {r4-r7,lr}
+ ldr r2, _08020E88 @ =gBattlescriptCurrInstr
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x1]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 24
+ adds r5, r1, r0
+ ldrb r1, [r3, 0x5]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 24
+ adds r4, r1, r0
+ ldrb r6, [r3, 0x9]
+ ldrb r1, [r3, 0xA]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0xC]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0xD]
+ lsls r0, 24
+ adds r1, r0
+ mov r12, r1
+ movs r1, 0
+ cmp r1, r6
+ bcs _08020EA8
+ ldrb r0, [r5]
+ ldrb r7, [r4]
+ cmp r0, r7
+ beq _08020E8C
+ adds r0, r3, 0
+ b _08020EA4
+ .align 2, 0
+_08020E88: .4byte gBattlescriptCurrInstr
+_08020E8C:
+ adds r5, 0x1
+ adds r4, 0x1
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r6
+ bcs _08020EA8
+ ldrb r0, [r5]
+ ldrb r3, [r4]
+ cmp r0, r3
+ beq _08020E8C
+ ldr r0, [r2]
+_08020EA4:
+ adds r0, 0xE
+ str r0, [r2]
+_08020EA8:
+ cmp r1, r6
+ bne _08020EB0
+ mov r7, r12
+ str r7, [r2]
+_08020EB0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk2C_jumpifarrayequal
+
+ thumb_func_start atk2D_jumpifarraynotequal
+atk2D_jumpifarraynotequal: @ 8020EB8
+ push {r4-r7,lr}
+ movs r7, 0
+ ldr r3, _08020F2C @ =gBattlescriptCurrInstr
+ ldr r1, [r3]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r2, [r1, 0x5]
+ ldrb r0, [r1, 0x6]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x7]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x8]
+ lsls r0, 24
+ adds r4, r2, r0
+ ldrb r6, [r1, 0x9]
+ ldrb r2, [r1, 0xA]
+ ldrb r0, [r1, 0xB]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xD]
+ lsls r0, 24
+ adds r2, r0
+ mov r12, r2
+ movs r1, 0
+ cmp r7, r6
+ bcs _08020F22
+_08020F06:
+ ldrb r0, [r5]
+ ldrb r2, [r4]
+ cmp r0, r2
+ bne _08020F14
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_08020F14:
+ adds r5, 0x1
+ adds r4, 0x1
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r6
+ bcc _08020F06
+_08020F22:
+ cmp r7, r6
+ beq _08020F30
+ mov r0, r12
+ b _08020F34
+ .align 2, 0
+_08020F2C: .4byte gBattlescriptCurrInstr
+_08020F30:
+ ldr r0, [r3]
+ adds r0, 0xE
+_08020F34:
+ str r0, [r3]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk2D_jumpifarraynotequal
+
+ thumb_func_start atk2E_setbyte
+atk2E_setbyte: @ 8020F3C
+ ldr r3, _08020F60 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08020F60: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk2E_setbyte
+
+ thumb_func_start atk2F_addbyte
+atk2F_addbyte: @ 8020F64
+ ldr r3, _08020F8C @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08020F8C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk2F_addbyte
+
+ thumb_func_start atk30_subbyte
+atk30_subbyte: @ 8020F90
+ ldr r3, _08020FB8 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r0, [r1]
+ ldrb r2, [r2, 0x5]
+ subs r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08020FB8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk30_subbyte
+
+ thumb_func_start atk31_copyarray
+atk31_copyarray: @ 8020FBC
+ push {r4-r6,lr}
+ ldr r3, _0802100C @ =gBattlescriptCurrInstr
+ ldr r1, [r3]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ adds r6, r2, r0
+ ldrb r2, [r1, 0x5]
+ ldrb r0, [r1, 0x6]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x7]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x8]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0x9]
+ movs r2, 0
+ cmp r2, r4
+ bge _08021000
+_08020FF2:
+ adds r0, r6, r2
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, r4
+ blt _08020FF2
+_08021000:
+ ldr r0, [r3]
+ adds r0, 0xA
+ str r0, [r3]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802100C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk31_copyarray
+
+ thumb_func_start atk32_copyarray_withindex
+atk32_copyarray_withindex: @ 8021010
+ push {r4-r7,lr}
+ ldr r3, _08021078 @ =gBattlescriptCurrInstr
+ ldr r1, [r3]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ adds r7, r2, r0
+ ldrb r2, [r1, 0x5]
+ ldrb r0, [r1, 0x6]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x7]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x8]
+ lsls r0, 24
+ adds r6, r2, r0
+ ldrb r2, [r1, 0x9]
+ ldrb r0, [r1, 0xA]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0xB]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0xD]
+ movs r2, 0
+ cmp r2, r4
+ bge _0802106C
+_0802105A:
+ adds r0, r7, r2
+ ldrb r1, [r5]
+ adds r1, r2, r1
+ adds r1, r6, r1
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, r4
+ blt _0802105A
+_0802106C:
+ ldr r0, [r3]
+ adds r0, 0xE
+ str r0, [r3]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021078: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk32_copyarray_withindex
+
+ thumb_func_start atk33_orbyte
+atk33_orbyte: @ 802107C
+ ldr r3, _080210A4 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r0, [r1]
+ ldrb r2, [r2, 0x5]
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_080210A4: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk33_orbyte
+
+ thumb_func_start atk34_orhalfword
+atk34_orhalfword: @ 80210A8
+ push {r4,lr}
+ ldr r4, _080210DC @ =gBattlescriptCurrInstr
+ ldr r3, [r4]
+ ldrb r2, [r3, 0x1]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 24
+ adds r2, r0
+ ldrb r1, [r3, 0x5]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2]
+ orrs r1, r0
+ strh r1, [r2]
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080210DC: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk34_orhalfword
+
+ thumb_func_start atk35_orword
+atk35_orword: @ 80210E0
+ push {r4,lr}
+ ldr r4, _08021120 @ =gBattlescriptCurrInstr
+ ldr r2, [r4]
+ ldrb r3, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r3, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r3, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r3, r0
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ adds r1, r0
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ ldr r0, [r4]
+ adds r0, 0x9
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021120: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk35_orword
+
+ thumb_func_start atk36_bicbyte
+atk36_bicbyte: @ 8021124
+ ldr r3, _0802114C @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r2, [r2, 0x5]
+ ldrb r0, [r1]
+ bics r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_0802114C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk36_bicbyte
+
+ thumb_func_start atk37_bichalfword
+atk37_bichalfword: @ 8021150
+ push {r4,lr}
+ ldr r4, _08021184 @ =gBattlescriptCurrInstr
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r2, [r3, 0x5]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 8
+ orrs r2, r0
+ ldrh r0, [r1]
+ bics r0, r2
+ strh r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021184: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk37_bichalfword
+
+ thumb_func_start atk38_bicword
+atk38_bicword: @ 8021188
+ push {r4,lr}
+ ldr r4, _080211C8 @ =gBattlescriptCurrInstr
+ ldr r2, [r4]
+ ldrb r3, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r3, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r3, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r3, r0
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ adds r1, r0
+ ldr r0, [r3]
+ bics r0, r1
+ str r0, [r3]
+ ldr r0, [r4]
+ adds r0, 0x9
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080211C8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk38_bicword
+
+ thumb_func_start atk39_pause
+atk39_pause: @ 80211CC
+ push {r4,r5,lr}
+ ldr r0, _08021200 @ =gBattleExecBuffer
+ ldr r4, [r0]
+ cmp r4, 0
+ bne _080211F8
+ ldr r5, _08021204 @ =gBattlescriptCurrInstr
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r3, _08021208 @ =gPauseCounterBattle
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r1
+ bcc _080211F8
+ strh r4, [r3]
+ adds r0, r2, 0x3
+ str r0, [r5]
+_080211F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021200: .4byte gBattleExecBuffer
+_08021204: .4byte gBattlescriptCurrInstr
+_08021208: .4byte gPauseCounterBattle
+ thumb_func_end atk39_pause
+
+ thumb_func_start atk3A_waitstate
+atk3A_waitstate: @ 802120C
+ push {lr}
+ ldr r0, _08021224 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802121E
+ ldr r1, _08021228 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0802121E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021224: .4byte gBattleExecBuffer
+_08021228: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk3A_waitstate
+
+ thumb_func_start atk3B_healthbar_update
+atk3B_healthbar_update: @ 802122C
+ push {lr}
+ ldr r0, _08021240 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0802124C
+ ldr r0, _08021244 @ =gActiveBank
+ ldr r1, _08021248 @ =gBankTarget
+ b _08021250
+ .align 2, 0
+_08021240: .4byte gBattlescriptCurrInstr
+_08021244: .4byte gActiveBank
+_08021248: .4byte gBankTarget
+_0802124C:
+ ldr r0, _08021274 @ =gActiveBank
+ ldr r1, _08021278 @ =gBankAttacker
+_08021250:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ ldr r0, _0802127C @ =gBattleMoveDamage
+ ldrh r1, [r0]
+ movs r0, 0
+ bl EmitHealthBarUpdate
+ ldr r0, _08021274 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ ldr r1, _08021280 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021274: .4byte gActiveBank
+_08021278: .4byte gBankAttacker
+_0802127C: .4byte gBattleMoveDamage
+_08021280: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk3B_healthbar_update
+
+ thumb_func_start atk3C_return
+atk3C_return: @ 8021284
+ push {lr}
+ bl b_movescr_stack_pop_cursor
+ pop {r0}
+ bx r0
+ thumb_func_end atk3C_return
+
+ thumb_func_start atk3D_end
+atk3D_end: @ 8021290
+ ldr r0, _080212A4 @ =gBattleMoveFlags
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080212A8 @ =gActiveBank
+ strb r1, [r0]
+ ldr r1, _080212AC @ =gFightStateTracker
+ movs r0, 0xB
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080212A4: .4byte gBattleMoveFlags
+_080212A8: .4byte gActiveBank
+_080212AC: .4byte gFightStateTracker
+ thumb_func_end atk3D_end
+
+ thumb_func_start atk3E_end2
+atk3E_end2: @ 80212B0
+ ldr r1, _080212C0 @ =gActiveBank
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080212C4 @ =gFightStateTracker
+ movs r0, 0xB
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080212C0: .4byte gActiveBank
+_080212C4: .4byte gFightStateTracker
+ thumb_func_end atk3E_end2
+
+ thumb_func_start atk3F_end3
+atk3F_end3: @ 80212C8
+ push {lr}
+ bl b_movescr_stack_pop_cursor
+ ldr r2, _080212F0 @ =0x02017140
+ adds r1, r2, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080212DE
+ subs r0, 0x1
+ strb r0, [r1]
+_080212DE:
+ ldr r0, _080212F4 @ =gBattleMainFunc
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080212F0: .4byte 0x02017140
+_080212F4: .4byte gBattleMainFunc
+ thumb_func_end atk3F_end3
+
+ thumb_func_start atk41_call
+atk41_call: @ 80212F8
+ push {r4,lr}
+ ldr r4, _08021324 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x5
+ bl b_movescr_stack_push
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021324: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk41_call
+
+ thumb_func_start atk42_jumpiftype2
+atk42_jumpiftype2: @ 8021328
+ push {r4,lr}
+ ldr r4, _08021370 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [r4]
+ ldr r2, _08021374 @ =gBattleMons
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r2, [r3, 0x2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ beq _08021356
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _08021378
+_08021356:
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0802137C
+ .align 2, 0
+_08021370: .4byte gBattlescriptCurrInstr
+_08021374: .4byte gBattleMons
+_08021378:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0802137C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end atk42_jumpiftype2
+
+ thumb_func_start atk43_jumpifabilitypresent
+atk43_jumpifabilitypresent: @ 8021384
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080213BC @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x1]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _080213C0
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _080213C6
+ .align 2, 0
+_080213BC: .4byte gBattlescriptCurrInstr
+_080213C0:
+ ldr r0, [r4]
+ adds r0, 0x6
+ str r0, [r4]
+_080213C6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end atk43_jumpifabilitypresent
+
+ thumb_func_start atk44
+atk44: @ 80213D0
+ ldr r1, _080213E4 @ =0x02000000
+ ldr r0, _080213E8 @ =gBankAttacker
+ ldrb r0, [r0]
+ ldr r2, _080213EC @ =0x00016060
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080213E4: .4byte 0x02000000
+_080213E8: .4byte gBankAttacker
+_080213EC: .4byte 0x00016060
+ thumb_func_end atk44
+
+ thumb_func_start atk45_playanimation
+atk45_playanimation: @ 80213F0
+ push {r4-r6,lr}
+ ldr r5, _08021444 @ =gBattlescriptCurrInstr
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r6, _08021448 @ =gActiveBank
+ strb r0, [r6]
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ adds r3, r1, r0
+ ldrb r4, [r2, 0x2]
+ adds r0, r4, 0
+ cmp r0, 0x1
+ beq _08021426
+ cmp r0, 0x11
+ beq _08021426
+ cmp r0, 0x2
+ bne _0802144C
+_08021426:
+ ldr r4, _08021444 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x2]
+ ldrh r2, [r3]
+ movs r0, 0
+ bl EmitBattleAnimation
+ ldr r0, _08021448 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ b _080214AE
+ .align 2, 0
+_08021444: .4byte gBattlescriptCurrInstr
+_08021448: .4byte gActiveBank
+_0802144C:
+ ldr r0, _08021464 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802146C
+ adds r0, r2, 0x7
+ bl b_movescr_stack_push
+ ldr r0, _08021468 @ =BattleScript_Pausex20
+ b _080214AC
+ .align 2, 0
+_08021464: .4byte gHitMarker
+_08021468: .4byte BattleScript_Pausex20
+_0802146C:
+ adds r0, r4, 0
+ subs r0, 0xA
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08021498
+ ldr r1, _08021490 @ =gStatuses3
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08021494 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _08021498
+ adds r0, r2, 0x7
+ b _080214AC
+ .align 2, 0
+_08021490: .4byte gStatuses3
+_08021494: .4byte 0x000400c0
+_08021498:
+ ldrb r1, [r2, 0x2]
+ ldrh r2, [r3]
+ movs r0, 0
+ bl EmitBattleAnimation
+ ldrb r0, [r6]
+ bl MarkBufferBankForExecution
+ ldr r0, [r5]
+ adds r0, 0x7
+_080214AC:
+ str r0, [r5]
+_080214AE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk45_playanimation
+
+ thumb_func_start atk46_playanimation2
+atk46_playanimation2: @ 80214B4
+ push {r4-r7,lr}
+ ldr r6, _0802151C @ =gBattlescriptCurrInstr
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r7, _08021520 @ =gActiveBank
+ strb r0, [r7]
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ adds r3, r1, r0
+ ldrb r1, [r2, 0x6]
+ ldrb r0, [r2, 0x7]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x9]
+ lsls r0, 24
+ adds r4, r1, r0
+ ldrb r5, [r3]
+ adds r0, r5, 0
+ cmp r0, 0x1
+ beq _080214FE
+ cmp r0, 0x11
+ beq _080214FE
+ cmp r0, 0x2
+ bne _08021524
+_080214FE:
+ ldrb r1, [r3]
+ ldrh r2, [r4]
+ movs r0, 0
+ bl EmitBattleAnimation
+ ldr r0, _08021520 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ ldr r1, _0802151C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+ b _0802157A
+ .align 2, 0
+_0802151C: .4byte gBattlescriptCurrInstr
+_08021520: .4byte gActiveBank
+_08021524:
+ ldr r0, _08021534 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08021538
+ adds r0, r2, 0
+ b _08021576
+ .align 2, 0
+_08021534: .4byte gHitMarker
+_08021538:
+ adds r0, r5, 0
+ subs r0, 0xA
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08021564
+ ldr r1, _0802155C @ =gStatuses3
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08021560 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _08021564
+ adds r0, r2, 0
+ b _08021576
+ .align 2, 0
+_0802155C: .4byte gStatuses3
+_08021560: .4byte 0x000400c0
+_08021564:
+ ldrb r1, [r3]
+ ldrh r2, [r4]
+ movs r0, 0
+ bl EmitBattleAnimation
+ ldrb r0, [r7]
+ bl MarkBufferBankForExecution
+ ldr r0, [r6]
+_08021576:
+ adds r0, 0xA
+ str r0, [r6]
+_0802157A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk46_playanimation2
+
+ thumb_func_start atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues
+atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues: @ 8021580
+ push {r4,lr}
+ movs r3, 0
+ ldr r0, _080215A0 @ =0x02000000
+ ldr r2, _080215A4 @ =0x0001601e
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ movs r2, 0xF0
+ ands r2, r1
+ adds r4, r0, 0
+ cmp r2, 0x20
+ beq _080215B6
+ cmp r2, 0x20
+ bgt _080215A8
+ cmp r2, 0x10
+ beq _080215B2
+ b _080215C0
+ .align 2, 0
+_080215A0: .4byte 0x02000000
+_080215A4: .4byte 0x0001601e
+_080215A8:
+ cmp r2, 0x90
+ beq _080215BA
+ cmp r2, 0xA0
+ beq _080215BE
+ b _080215C0
+_080215B2:
+ movs r3, 0xF
+ b _080215C0
+_080215B6:
+ movs r3, 0x27
+ b _080215C0
+_080215BA:
+ movs r3, 0x16
+ b _080215C0
+_080215BE:
+ movs r3, 0x2E
+_080215C0:
+ ldr r1, _080215EC @ =0x0001601e
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0xF
+ ands r0, r1
+ adds r0, r3, r0
+ subs r0, 0x1
+ ldr r2, _080215F0 @ =0x000160a4
+ adds r1, r4, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldr r1, _080215F4 @ =0x000160a5
+ adds r0, r4, r1
+ strb r2, [r0]
+ ldr r1, _080215F8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080215EC: .4byte 0x0001601e
+_080215F0: .4byte 0x000160a4
+_080215F4: .4byte 0x000160a5
+_080215F8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues
+
+ thumb_func_start atk48_playstatchangeanimation
+atk48_playstatchangeanimation: @ 80215FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r7, 0
+ movs r0, 0
+ mov r8, r0
+ movs r3, 0
+ ldr r5, _08021670 @ =gBattlescriptCurrInstr
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ str r3, [sp]
+ bl sub_8015150
+ ldr r2, _08021674 @ =gActiveBank
+ strb r0, [r2]
+ ldr r0, [r5]
+ ldrb r4, [r0, 0x2]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x1
+ ands r0, r1
+ ldr r3, [sp]
+ cmp r0, 0
+ beq _08021710
+ movs r0, 0x2
+ ands r0, r1
+ movs r1, 0x15
+ cmp r0, 0
+ beq _0802163C
+ movs r1, 0x2D
+_0802163C:
+ cmp r4, 0
+ beq _080216E4
+ movs r0, 0x1
+ mov r10, r0
+ ldr r0, _08021678 @ =gUnknown_02024A98
+ mov r9, r0
+ lsls r5, r1, 16
+_0802164A:
+ adds r0, r4, 0
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ beq _080216D6
+ ldr r0, _08021670 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0802167C
+ ldr r0, _08021674 @ =gActiveBank
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7, r0
+ b _080216C4
+ .align 2, 0
+_08021670: .4byte gBattlescriptCurrInstr
+_08021674: .4byte gActiveBank
+_08021678: .4byte gUnknown_02024A98
+_0802167C:
+ ldr r6, _08021700 @ =gActiveBank
+ ldrb r0, [r6]
+ str r3, [sp]
+ bl GetBankIdentity
+ mov r1, r10
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08021704 @ =gSideTimer
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ ldr r3, [sp]
+ cmp r0, 0
+ bne _080216D6
+ ldr r0, _08021708 @ =gBattleMons
+ ldrb r2, [r6]
+ movs r1, 0x58
+ muls r2, r1
+ adds r0, r2, r0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1D
+ beq _080216D6
+ cmp r0, 0x49
+ beq _080216D6
+ cmp r0, 0x33
+ bne _080216BA
+ cmp r7, 0x6
+ beq _080216D6
+_080216BA:
+ cmp r0, 0x34
+ bne _080216C2
+ cmp r7, 0x1
+ beq _080216D6
+_080216C2:
+ adds r0, r7, r2
+_080216C4:
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080216D6
+ lsrs r0, r5, 16
+ mov r8, r0
+ adds r3, 0x1
+_080216D6:
+ lsrs r4, 1
+ movs r1, 0x80
+ lsls r1, 9
+ adds r5, r1
+ adds r7, 0x1
+ cmp r4, 0
+ bne _0802164A
+_080216E4:
+ ldr r0, _0802170C @ =gBattlescriptCurrInstr
+ mov r9, r0
+ cmp r3, 0x1
+ ble _08021772
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x2
+ ands r0, r1
+ movs r1, 0x39
+ mov r8, r1
+ cmp r0, 0
+ beq _08021772
+ movs r0, 0x3A
+ b _08021770
+ .align 2, 0
+_08021700: .4byte gActiveBank
+_08021704: .4byte gSideTimer
+_08021708: .4byte gBattleMons
+_0802170C: .4byte gBattlescriptCurrInstr
+_08021710:
+ movs r0, 0x2
+ ands r0, r1
+ movs r1, 0xE
+ cmp r0, 0
+ beq _0802171C
+ movs r1, 0x26
+_0802171C:
+ mov r9, r5
+ cmp r4, 0
+ beq _08021758
+ ldr r6, _0802178C @ =gUnknown_02024A98
+ adds r5, r2, 0
+ lsls r2, r1, 16
+_08021728:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0802174A
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xB
+ bgt _0802174A
+ lsrs r1, r2, 16
+ mov r8, r1
+ adds r3, 0x1
+_0802174A:
+ lsrs r4, 1
+ movs r0, 0x80
+ lsls r0, 9
+ adds r2, r0
+ adds r7, 0x1
+ cmp r4, 0
+ bne _08021728
+_08021758:
+ cmp r3, 0x1
+ ble _08021772
+ mov r1, r9
+ ldr r0, [r1]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x2
+ ands r0, r1
+ movs r1, 0x37
+ mov r8, r1
+ cmp r0, 0
+ beq _08021772
+ movs r0, 0x38
+_08021770:
+ mov r8, r0
+_08021772:
+ mov r1, r9
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08021790
+ cmp r3, 0x1
+ bgt _08021790
+ adds r0, r2, 0x4
+ mov r1, r9
+ b _080217E6
+ .align 2, 0
+_0802178C: .4byte gUnknown_02024A98
+_08021790:
+ cmp r3, 0
+ beq _080217E0
+ ldr r0, _080217D0 @ =0x02000000
+ ldr r1, _080217D4 @ =0x000160dc
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080217E0
+ movs r0, 0
+ movs r1, 0x1
+ mov r2, r8
+ str r3, [sp]
+ bl EmitBattleAnimation
+ ldr r0, _080217D8 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ ldr r0, _080217DC @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x4
+ ands r0, r1
+ ldr r3, [sp]
+ cmp r0, 0
+ beq _080217CC
+ cmp r3, 0x1
+ ble _080217CC
+ movs r0, 0x1
+ strb r0, [r4]
+_080217CC:
+ ldr r1, _080217DC @ =gBattlescriptCurrInstr
+ b _080217E2
+ .align 2, 0
+_080217D0: .4byte 0x02000000
+_080217D4: .4byte 0x000160dc
+_080217D8: .4byte gActiveBank
+_080217DC: .4byte gBattlescriptCurrInstr
+_080217E0:
+ mov r1, r9
+_080217E2:
+ ldr r0, [r1]
+ adds r0, 0x4
+_080217E6:
+ str r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk48_playstatchangeanimation
+
+ thumb_func_start sub_80217F8
+sub_80217F8: @ 80217F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r0, 0
+ mov r10, r0
+ ldr r0, _08021834 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ str r1, [sp, 0x10]
+ ldrb r0, [r0, 0x2]
+ str r0, [sp, 0x14]
+ ldr r1, _08021838 @ =gBattleMons
+ ldr r0, _0802183C @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08021844
+ ldr r1, _08021840 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x7]
+ b _0802184E
+ .align 2, 0
+_08021834: .4byte gBattlescriptCurrInstr
+_08021838: .4byte gBattleMons
+_0802183C: .4byte gBankAttacker
+_08021840: .4byte gEnigmaBerries
+_08021844:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+_0802184E:
+ str r0, [sp, 0x8]
+ ldr r0, _0802186C @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r1, 1
+ ldr r0, _08021870 @ =0x020160e8
+ adds r1, r0
+ str r1, [sp, 0xC]
+ subs r0, 0xCC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080218C0
+ movs r2, 0x3F
+ ands r2, r0
+ str r2, [sp, 0x4]
+ b _080218D2
+ .align 2, 0
+_0802186C: .4byte gBankAttacker
+_08021870: .4byte 0x020160e8
+_08021874:
+ strb r2, [r7]
+ ldr r0, [r5]
+ orrs r0, r6
+ str r0, [r5]
+ ldr r0, _080218AC @ =0x02000000
+ ldr r3, _080218B0 @ =0x0001600c
+ adds r0, r3
+ strb r4, [r0]
+ bl sub_8020B54
+ ldr r2, _080218B4 @ =gUnknown_081D6BBC
+ mov r4, r8
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ bl b_movescr_stack_push
+ ldr r1, _080218B8 @ =gBattlescriptCurrInstr
+ ldr r0, _080218BC @ =gUnknown_081D9B2D
+ bl _0802229C
+ .align 2, 0
+_080218AC: .4byte 0x02000000
+_080218B0: .4byte 0x0001600c
+_080218B4: .4byte gUnknown_081D6BBC
+_080218B8: .4byte gBattlescriptCurrInstr
+_080218BC: .4byte gUnknown_081D9B2D
+_080218C0:
+ ldr r2, _080218D8 @ =gBattleMoves
+ ldr r0, _080218DC @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ str r0, [sp, 0x4]
+_080218D2:
+ ldr r5, _080218E0 @ =0x02000000
+ mov r12, r5
+ b _080218EE
+ .align 2, 0
+_080218D8: .4byte gBattleMoves
+_080218DC: .4byte gCurrentMove
+_080218E0: .4byte 0x02000000
+_080218E4:
+ mov r0, r10
+ cmp r0, 0
+ beq _080218EE
+ bl _08022286
+_080218EE:
+ ldr r0, _08021908 @ =0x0001600c
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ bls _080218FC
+ bl _0802224E
+_080218FC:
+ lsls r0, 2
+ ldr r1, _0802190C @ =_08021910
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08021908: .4byte 0x0001600c
+_0802190C: .4byte _08021910
+ .align 2, 0
+_08021910:
+ .4byte _08021958
+ .4byte _08021A34
+ .4byte _08021AF0
+ .4byte _08021B20
+ .4byte _08021B44
+ .4byte _08021B78
+ .4byte _08021B9C
+ .4byte _08021C40
+ .4byte _08021C78
+ .4byte _08021CA8
+ .4byte _08021CCC
+ .4byte _08021D18
+ .4byte _08021DAC
+ .4byte _08021E30
+ .4byte _08021E70
+ .4byte _08022068
+ .4byte _080221C0
+ .4byte _0802224E
+_08021958:
+ ldr r5, _08021A08 @ =gBattleMons
+ ldr r2, _08021A0C @ =gBankTarget
+ ldrb r4, [r2]
+ movs r6, 0x58
+ adds r3, r4, 0
+ muls r3, r6
+ adds r0, r5, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 16
+ ands r1, r0
+ cmp r1, 0
+ beq _080219FE
+ adds r0, r3, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _080219FE
+ ldr r0, _08021A10 @ =gBankAttacker
+ ldrb r1, [r0]
+ cmp r1, r4
+ beq _080219FE
+ adds r0, r1, 0
+ bl GetBankSide
+ adds r4, r0, 0
+ ldr r1, _08021A0C @ =gBankTarget
+ ldrb r0, [r1]
+ bl GetBankSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080219FE
+ ldr r0, _08021A14 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _080219FE
+ ldr r2, _08021A18 @ =gProtectStructs
+ ldr r4, _08021A0C @ =gBankTarget
+ ldrb r3, [r4]
+ lsls r1, r3, 4
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080219C8
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080219FE
+_080219C8:
+ ldr r2, _08021A1C @ =gBattleMoves
+ ldr r0, _08021A20 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080219FE
+ adds r0, r3, 0
+ muls r0, r6
+ adds r1, r0, r5
+ ldrb r2, [r1, 0x19]
+ movs r0, 0x19
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _080219FE
+ adds r0, r2, 0x1
+ strb r0, [r1, 0x19]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08021A24 @ =gBattlescriptCurrInstr
+ ldr r0, _08021A28 @ =gUnknown_081D9132
+ str r0, [r1]
+ movs r5, 0x1
+ mov r10, r5
+_080219FE:
+ ldr r2, _08021A2C @ =0x02000000
+ ldr r0, _08021A30 @ =0x0001600c
+ adds r1, r2, r0
+ b _08021E00
+ .align 2, 0
+_08021A08: .4byte gBattleMons
+_08021A0C: .4byte gBankTarget
+_08021A10: .4byte gBankAttacker
+_08021A14: .4byte gBattleMoveFlags
+_08021A18: .4byte gProtectStructs
+_08021A1C: .4byte gBattleMoves
+_08021A20: .4byte gCurrentMove
+_08021A24: .4byte gBattlescriptCurrInstr
+_08021A28: .4byte gUnknown_081D9132
+_08021A2C: .4byte 0x02000000
+_08021A30: .4byte 0x0001600c
+_08021A34:
+ ldr r2, _08021AD0 @ =gBattleMons
+ ldr r1, _08021AD4 @ =gBankTarget
+ ldrb r4, [r1]
+ movs r3, 0x58
+ mov r12, r3
+ mov r3, r12
+ muls r3, r4
+ adds r7, r2, 0
+ adds r7, 0x4C
+ adds r6, r3, r7
+ ldr r5, [r6]
+ movs r0, 0x20
+ ands r0, r5
+ cmp r0, 0
+ bne _08021A54
+ b _08021DFA
+_08021A54:
+ adds r0, r3, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08021A5E
+ b _08021DFA
+_08021A5E:
+ ldr r0, _08021AD8 @ =gBankAttacker
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne _08021A68
+ b _08021DFA
+_08021A68:
+ ldr r0, _08021ADC @ =gSpecialStatuses
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 2
+ adds r0, 0xC
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _08021A7C
+ b _08021DFA
+_08021A7C:
+ ldr r0, _08021AE0 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08021A8A
+ b _08021DFA
+_08021A8A:
+ ldr r4, [sp, 0x4]
+ cmp r4, 0xA
+ beq _08021A92
+ b _08021DFA
+_08021A92:
+ movs r0, 0x21
+ negs r0, r0
+ ands r5, r0
+ str r5, [r6]
+ ldr r4, _08021AE4 @ =gActiveBank
+ ldr r5, _08021AD4 @ =gBankTarget
+ ldrb r0, [r5]
+ strb r0, [r4]
+ ldrb r0, [r5]
+ mov r1, r12
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08021AE8 @ =gBattlescriptCurrInstr
+ ldr r0, _08021AEC @ =gUnknown_081D955D
+ str r0, [r1]
+ movs r2, 0x1
+ mov r10, r2
+ b _08021DFA
+ .align 2, 0
+_08021AD0: .4byte gBattleMons
+_08021AD4: .4byte gBankTarget
+_08021AD8: .4byte gBankAttacker
+_08021ADC: .4byte gSpecialStatuses
+_08021AE0: .4byte gBattleMoveFlags
+_08021AE4: .4byte gActiveBank
+_08021AE8: .4byte gBattlescriptCurrInstr
+_08021AEC: .4byte gUnknown_081D955D
+_08021AF0:
+ ldr r0, _08021B14 @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x7
+ movs r2, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021B0C
+ movs r4, 0x1
+ mov r10, r4
+_08021B0C:
+ ldr r2, _08021B18 @ =0x02000000
+ ldr r5, _08021B1C @ =0x0001600c
+ adds r1, r2, r5
+ b _08021E00
+ .align 2, 0
+_08021B14: .4byte gBankTarget
+_08021B18: .4byte 0x02000000
+_08021B1C: .4byte 0x0001600c
+_08021B20:
+ ldr r0, _08021B40 @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x4
+ movs r2, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ bne _08021B3A
+ b _08021DFA
+_08021B3A:
+ movs r0, 0x1
+ mov r10, r0
+ b _08021DFA
+ .align 2, 0
+_08021B40: .4byte gBankTarget
+_08021B44:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x5
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021B68
+ movs r4, 0x1
+ mov r10, r4
+ ldr r5, _08021B64 @ =0x02000000
+ mov r12, r5
+ b _0802224E
+ .align 2, 0
+_08021B64: .4byte 0x02000000
+_08021B68:
+ ldr r2, _08021B70 @ =0x02000000
+ ldr r0, _08021B74 @ =0x0001600c
+ adds r1, r2, r0
+ b _08021E00
+ .align 2, 0
+_08021B70: .4byte 0x02000000
+_08021B74: .4byte 0x0001600c
+_08021B78:
+ ldr r0, _08021B98 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8
+ movs r2, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ bne _08021B92
+ b _08021DFA
+_08021B92:
+ movs r1, 0x1
+ mov r10, r1
+ b _08021DFA
+ .align 2, 0
+_08021B98: .4byte gBankAttacker
+_08021B9C:
+ ldr r0, _08021C28 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _08021BE0
+ ldr r4, [sp, 0x8]
+ cmp r4, 0x1D
+ bne _08021BE0
+ ldr r0, _08021C2C @ =gUnknown_02024BE8
+ ldrh r2, [r0]
+ adds r7, r0, 0
+ cmp r2, 0xA5
+ beq _08021BE0
+ ldr r5, [sp, 0xC]
+ ldrh r1, [r5]
+ cmp r1, 0
+ beq _08021BC8
+ ldr r0, _08021C30 @ =0x0000ffff
+ cmp r1, r0
+ bne _08021BE0
+_08021BC8:
+ cmp r2, 0xE2
+ bne _08021BDA
+ ldr r0, _08021C34 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08021BDA
+ b _08022244
+_08021BDA:
+ ldrh r0, [r7]
+ ldr r1, [sp, 0xC]
+ strh r0, [r1]
+_08021BE0:
+ movs r4, 0
+ ldr r2, _08021C38 @ =gBattleMons
+ ldr r3, _08021C3C @ =gBankAttacker
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r0, [r0]
+ ldr r5, [sp, 0xC]
+ ldrh r1, [r5]
+ mov r9, r3
+ cmp r0, r1
+ beq _08021C18
+ mov r6, r9
+ movs r3, 0x58
+ adds r5, r1, 0
+_08021C02:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08021C18
+ lsls r0, r4, 1
+ ldrb r1, [r6]
+ muls r1, r3
+ adds r0, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r5
+ bne _08021C02
+_08021C18:
+ cmp r4, 0x4
+ beq _08021C1E
+ b _08022244
+_08021C1E:
+ movs r0, 0
+ ldr r1, [sp, 0xC]
+_08021C22:
+ strh r0, [r1]
+ b _08022244
+ .align 2, 0
+_08021C28: .4byte gHitMarker
+_08021C2C: .4byte gUnknown_02024BE8
+_08021C30: .4byte 0x0000ffff
+_08021C34: .4byte gBattleMoveFlags
+_08021C38: .4byte gBattleMons
+_08021C3C: .4byte gBankAttacker
+_08021C40:
+ movs r4, 0
+ ldr r0, _08021C6C @ =gNoOfAllBanks
+ ldrb r2, [r0]
+ cmp r4, r2
+ blt _08021C4C
+ b _08022244
+_08021C4C:
+ movs r5, 0
+ ldr r2, _08021C70 @ =0x020160f0
+ ldr r3, _08021C74 @ =gBattleMons
+_08021C52:
+ ldrh r1, [r2]
+ cmp r1, 0
+ beq _08021C5C
+ strh r1, [r3, 0x2E]
+ strh r5, [r2]
+_08021C5C:
+ adds r2, 0x2
+ adds r3, 0x58
+ adds r4, 0x1
+ ldrb r1, [r0]
+ cmp r4, r1
+ blt _08021C52
+ b _08022244
+ .align 2, 0
+_08021C6C: .4byte gNoOfAllBanks
+_08021C70: .4byte 0x020160f0
+_08021C74: .4byte gBattleMons
+_08021C78:
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021C98
+ movs r2, 0x1
+ mov r10, r2
+ ldr r3, _08021C94 @ =0x02000000
+ mov r12, r3
+ b _0802224E
+ .align 2, 0
+_08021C94: .4byte 0x02000000
+_08021C98:
+ ldr r2, _08021CA0 @ =0x02000000
+ ldr r4, _08021CA4 @ =0x0001600c
+ adds r1, r2, r4
+ b _08021E00
+ .align 2, 0
+_08021CA0: .4byte 0x02000000
+_08021CA4: .4byte 0x0001600c
+_08021CA8:
+ movs r0, 0x4
+ movs r1, 0
+ movs r2, 0
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021CBC
+ movs r5, 0x1
+ mov r10, r5
+_08021CBC:
+ ldr r2, _08021CC4 @ =0x02000000
+ ldr r0, _08021CC8 @ =0x0001600c
+ adds r1, r2, r0
+ b _08021E00
+ .align 2, 0
+_08021CC4: .4byte 0x02000000
+_08021CC8: .4byte 0x0001600c
+_08021CCC:
+ ldr r1, _08021D04 @ =gStatuses3
+ ldr r0, _08021D08 @ =gBankAttacker
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08021D0C @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _08021CE2
+ b _08021DFA
+_08021CE2:
+ ldr r0, _08021D10 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08021CF0
+ b _08021DFA
+_08021CF0:
+ ldr r4, _08021D14 @ =gActiveBank
+ strb r2, [r4]
+ movs r0, 0
+ movs r1, 0x1
+ bl EmitSpriteInvisibility
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ b _08021DFA
+ .align 2, 0
+_08021D04: .4byte gStatuses3
+_08021D08: .4byte gBankAttacker
+_08021D0C: .4byte 0x000400c0
+_08021D10: .4byte gHitMarker
+_08021D14: .4byte gActiveBank
+_08021D18:
+ ldr r0, _08021D88 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _08021D44
+ ldr r1, _08021D8C @ =gStatuses3
+ ldr r0, _08021D90 @ =gBankAttacker
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08021D94 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _08021D44
+ adds r0, r2, 0
+ bl sub_8015660
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021D7E
+_08021D44:
+ ldr r4, _08021D98 @ =gActiveBank
+ ldr r5, _08021D90 @ =gBankAttacker
+ ldrb r0, [r5]
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0
+ bl EmitSpriteInvisibility
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r0, _08021D8C @ =gStatuses3
+ ldrb r2, [r5]
+ lsls r2, 2
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08021D9C @ =0xfffbff3f
+ ands r0, r1
+ str r0, [r2]
+ ldr r2, _08021DA0 @ =gSpecialStatuses
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08021D7E:
+ ldr r2, _08021DA4 @ =0x02000000
+ ldr r4, _08021DA8 @ =0x0001600c
+ adds r1, r2, r4
+ b _08021E00
+ .align 2, 0
+_08021D88: .4byte gBattleMoveFlags
+_08021D8C: .4byte gStatuses3
+_08021D90: .4byte gBankAttacker
+_08021D94: .4byte 0x000400c0
+_08021D98: .4byte gActiveBank
+_08021D9C: .4byte 0xfffbff3f
+_08021DA0: .4byte gSpecialStatuses
+_08021DA4: .4byte 0x02000000
+_08021DA8: .4byte 0x0001600c
+_08021DAC:
+ ldr r2, _08021E0C @ =gSpecialStatuses
+ ldr r1, _08021E10 @ =gBankTarget
+ ldrb r3, [r1]
+ lsls r4, r3, 2
+ adds r0, r4, r3
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08021DFA
+ ldr r0, _08021E14 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _08021DFA
+ ldr r5, _08021E18 @ =gStatuses3
+ adds r0, r4, r5
+ ldr r0, [r0]
+ ldr r1, _08021E1C @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _08021DFA
+ ldr r4, _08021E20 @ =gActiveBank
+ strb r3, [r4]
+ movs r0, 0
+ movs r1, 0
+ bl EmitSpriteInvisibility
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r0, _08021E10 @ =gBankTarget
+ ldrb r2, [r0]
+ lsls r2, 2
+ adds r2, r5
+ ldr r0, [r2]
+ ldr r1, _08021E24 @ =0xfffbff3f
+ ands r0, r1
+ str r0, [r2]
+_08021DFA:
+ ldr r2, _08021E28 @ =0x02000000
+ ldr r3, _08021E2C @ =0x0001600c
+ adds r1, r2, r3
+_08021E00:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r12, r2
+ b _0802224E
+ .align 2, 0
+_08021E0C: .4byte gSpecialStatuses
+_08021E10: .4byte gBankTarget
+_08021E14: .4byte gNoOfAllBanks
+_08021E18: .4byte gStatuses3
+_08021E1C: .4byte 0x000400c0
+_08021E20: .4byte gActiveBank
+_08021E24: .4byte 0xfffbff3f
+_08021E28: .4byte 0x02000000
+_08021E2C: .4byte 0x0001600c
+_08021E30:
+ movs r4, 0
+ ldr r0, _08021E60 @ =gNoOfAllBanks
+ ldrb r5, [r0]
+ cmp r4, r5
+ blt _08021E3C
+ b _08022244
+_08021E3C:
+ ldr r2, _08021E64 @ =gDisableStructs
+ ldr r5, _08021E68 @ =0xfeffffff
+ adds r3, r0, 0
+ ldr r1, _08021E6C @ =gUnknown_02024AD0
+_08021E44:
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ bne _08021E50
+ ldr r0, [r1]
+ ands r0, r5
+ str r0, [r1]
+_08021E50:
+ adds r2, 0x1C
+ adds r1, 0x58
+ adds r4, 0x1
+ ldrb r0, [r3]
+ cmp r4, r0
+ blt _08021E44
+ b _08022244
+ .align 2, 0
+_08021E60: .4byte gNoOfAllBanks
+_08021E64: .4byte gDisableStructs
+_08021E68: .4byte 0xfeffffff
+_08021E6C: .4byte gUnknown_02024AD0
+_08021E70:
+ ldr r1, _08021F2C @ =gHitMarker
+ ldr r3, [r1]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r3
+ ldr r2, _08021F30 @ =gBankAttacker
+ mov r9, r2
+ adds r5, r1, 0
+ cmp r0, 0
+ beq _08021E9A
+ ldr r0, _08021F34 @ =gActiveBank
+ ldrb r2, [r2]
+ strb r2, [r0]
+ ldr r1, _08021F38 @ =gBankTarget
+ ldrb r0, [r1]
+ mov r4, r9
+ strb r0, [r4]
+ strb r2, [r1]
+ ldr r0, _08021F3C @ =0xffffefff
+ ands r3, r0
+ str r3, [r5]
+_08021E9A:
+ ldr r1, _08021F40 @ =gBattleMoves
+ ldr r2, _08021F44 @ =gUnknown_02024BE8
+ ldrh r3, [r2]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r8, r1
+ adds r7, r2, 0
+ cmp r0, 0x7F
+ bne _08021EBE
+ ldr r0, _08021F48 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08021ECA
+_08021EBE:
+ ldr r1, _08021F4C @ =gUnknown_02024C2C
+ mov r2, r9
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ strh r3, [r0]
+_08021ECA:
+ ldr r0, _08021F50 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _08021F54 @ =gBitTable
+ mov r3, r9
+ ldrb r4, [r3]
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r3, [r0]
+ ands r1, r3
+ adds r6, r2, 0
+ cmp r1, 0
+ beq _08021EE4
+ b _08022244
+_08021EE4:
+ ldr r0, _08021F58 @ =0x000160a6
+ add r0, r12
+ ldrb r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ beq _08021EF2
+ b _08022244
+_08021EF2:
+ ldrh r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0x7F
+ bne _08021F04
+ b _08022244
+_08021F04:
+ ldr r0, [r5]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _08021F68
+ ldr r1, _08021F5C @ =gLastUsedMove
+ lsls r0, r4, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r0, _08021F60 @ =gUnknown_02024C4C
+ mov r4, r9
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r1, r0
+ ldr r0, _08021F64 @ =gCurrentMove
+ ldrh r0, [r0]
+ strh r0, [r1]
+ b _08021F82
+ .align 2, 0
+_08021F2C: .4byte gHitMarker
+_08021F30: .4byte gBankAttacker
+_08021F34: .4byte gActiveBank
+_08021F38: .4byte gBankTarget
+_08021F3C: .4byte 0xffffefff
+_08021F40: .4byte gBattleMoves
+_08021F44: .4byte gUnknown_02024BE8
+_08021F48: .4byte gBattleMoveFlags
+_08021F4C: .4byte gUnknown_02024C2C
+_08021F50: .4byte gAbsentBankFlags
+_08021F54: .4byte gBitTable
+_08021F58: .4byte 0x000160a6
+_08021F5C: .4byte gLastUsedMove
+_08021F60: .4byte gUnknown_02024C4C
+_08021F64: .4byte gCurrentMove
+_08021F68:
+ ldr r1, _08021FD0 @ =gLastUsedMove
+ lsls r0, r4, 1
+ adds r0, r1
+ ldr r1, _08021FD4 @ =0x0000ffff
+ strh r1, [r0]
+ ldr r1, _08021FD8 @ =gUnknown_02024C4C
+ mov r2, r9
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0]
+_08021F82:
+ ldr r2, _08021FDC @ =gBankTarget
+ ldrb r3, [r2]
+ lsls r0, r3, 2
+ adds r0, r6
+ ldr r0, [r0]
+ lsls r0, 28
+ ldr r1, [r5]
+ ands r1, r0
+ cmp r1, 0
+ bne _08021FA0
+ ldr r0, _08021FE0 @ =gUnknown_02024C5C
+ adds r0, r3, r0
+ mov r3, r9
+ ldrb r1, [r3]
+ strb r1, [r0]
+_08021FA0:
+ ldr r0, [r5]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _0802204C
+ ldr r0, _08021FE4 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0802204C
+ ldrh r2, [r7]
+ ldr r0, _08021FD4 @ =0x0000ffff
+ cmp r2, r0
+ bne _08021FEC
+ ldr r1, _08021FE8 @ =gMoveHitWith
+ ldr r4, _08021FDC @ =gBankTarget
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ b _08022244
+ .align 2, 0
+_08021FD0: .4byte gLastUsedMove
+_08021FD4: .4byte 0x0000ffff
+_08021FD8: .4byte gUnknown_02024C4C
+_08021FDC: .4byte gBankTarget
+_08021FE0: .4byte gUnknown_02024C5C
+_08021FE4: .4byte gBattleMoveFlags
+_08021FE8: .4byte gMoveHitWith
+_08021FEC:
+ ldr r0, _08022014 @ =gMoveHitWith
+ ldr r5, _08022018 @ =gBankTarget
+ ldrb r1, [r5]
+ lsls r1, 1
+ adds r1, r0
+ ldr r4, _0802201C @ =gCurrentMove
+ ldrh r0, [r4]
+ strh r0, [r1]
+ ldr r0, _08022020 @ =0x0001601c
+ add r0, r12
+ ldrb r3, [r0]
+ cmp r3, 0
+ beq _08022028
+ ldr r0, _08022024 @ =gUnknown_02024C44
+ ldrb r1, [r5]
+ lsls r1, 1
+ adds r1, r0
+ movs r0, 0x3F
+ ands r0, r3
+ b _08021C22
+ .align 2, 0
+_08022014: .4byte gMoveHitWith
+_08022018: .4byte gBankTarget
+_0802201C: .4byte gCurrentMove
+_08022020: .4byte 0x0001601c
+_08022024: .4byte gUnknown_02024C44
+_08022028:
+ ldr r0, _08022044 @ =gUnknown_02024C44
+ ldr r1, _08022048 @ =gBankTarget
+ ldrb r2, [r1]
+ lsls r2, 1
+ adds r2, r0
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0x2]
+ strh r0, [r2]
+ b _08022244
+ .align 2, 0
+_08022044: .4byte gUnknown_02024C44
+_08022048: .4byte gBankTarget
+_0802204C:
+ ldr r0, _0802205C @ =gMoveHitWith
+ ldr r2, _08022060 @ =gBankTarget
+ ldrb r1, [r2]
+ lsls r1, 1
+ adds r1, r0
+ ldr r0, _08022064 @ =0x0000ffff
+ b _08021C22
+ .align 2, 0
+_0802205C: .4byte gMoveHitWith
+_08022060: .4byte gBankTarget
+_08022064: .4byte 0x0000ffff
+_08022068:
+ ldr r0, _0802212C @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r6, _08022130 @ =gBitTable
+ ldr r2, _08022134 @ =gBankAttacker
+ ldrb r5, [r2]
+ lsls r0, r5, 2
+ adds r0, r6
+ ldr r4, [r0]
+ ands r1, r4
+ mov r9, r2
+ cmp r1, 0
+ beq _08022082
+ b _08022244
+_08022082:
+ ldr r0, _08022138 @ =0x000160a6
+ add r0, r12
+ ldrb r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _08022090
+ b _08022244
+_08022090:
+ ldr r1, _0802213C @ =gBattleMoves
+ ldr r4, _08022140 @ =gUnknown_02024BE8
+ ldrh r3, [r4]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802215C
+ ldr r0, _08022144 @ =gHitMarker
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _0802215C
+ ldr r2, _08022148 @ =gBankTarget
+ ldrb r0, [r2]
+ cmp r5, r0
+ bne _080220C0
+ b _08022244
+_080220C0:
+ adds r2, r0, 0
+ lsls r0, r2, 2
+ adds r0, r6
+ ldr r0, [r0]
+ lsls r0, 28
+ ands r1, r0
+ cmp r1, 0
+ bne _0802215C
+ ldr r0, _0802214C @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0802215C
+ lsls r0, r2, 1
+ ldr r5, _08022150 @ =0x000160ac
+ adds r0, r5
+ add r0, r12
+ strb r3, [r0]
+ ldr r0, _08022148 @ =gBankTarget
+ ldrb r1, [r0]
+ lsls r1, 1
+ ldr r2, _08022154 @ =0x000160ad
+ adds r1, r2
+ add r1, r12
+ ldrh r0, [r4]
+ lsrs r0, 8
+ strb r0, [r1]
+ ldr r3, _08022148 @ =gBankTarget
+ ldrb r2, [r3]
+ lsls r2, 2
+ mov r5, r9
+ ldrb r0, [r5]
+ lsrs r0, 1
+ lsls r0, 1
+ ldr r1, _08022158 @ =0x00016100
+ adds r0, r1
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4]
+ strb r0, [r2]
+ ldrb r2, [r3]
+ lsls r2, 2
+ ldrb r0, [r5]
+ lsrs r0, 1
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4]
+ lsrs r0, 8
+ strb r0, [r2]
+ b _08022244
+ .align 2, 0
+_0802212C: .4byte gAbsentBankFlags
+_08022130: .4byte gBitTable
+_08022134: .4byte gBankAttacker
+_08022138: .4byte 0x000160a6
+_0802213C: .4byte gBattleMoves
+_08022140: .4byte gUnknown_02024BE8
+_08022144: .4byte gHitMarker
+_08022148: .4byte gBankTarget
+_0802214C: .4byte gBattleMoveFlags
+_08022150: .4byte 0x000160ac
+_08022154: .4byte 0x000160ad
+_08022158: .4byte 0x00016100
+_0802215C:
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r2, _080221B4 @ =gBankTarget
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _08022244
+ ldr r3, _080221B4 @ =gBankTarget
+ ldrb r0, [r3]
+ lsls r0, 1
+ ldr r4, _080221B8 @ =0x000160ac
+ adds r0, r4
+ add r0, r12
+ movs r3, 0
+ strb r3, [r0]
+ ldr r5, _080221B4 @ =gBankTarget
+ ldrb r0, [r5]
+ lsls r0, 1
+ ldr r1, _080221BC @ =0x000160ad
+ adds r0, r1
+ add r0, r12
+ strb r3, [r0]
+ ldrb r2, [r5]
+ lsls r2, 2
+ mov r4, r9
+ ldrb r0, [r4]
+ lsrs r0, 1
+ lsls r0, 1
+ adds r1, 0x53
+ adds r0, r1
+ adds r2, r0
+ add r2, r12
+ strb r3, [r2]
+ ldrb r2, [r5]
+ lsls r2, 2
+ ldrb r0, [r4]
+ lsrs r0, 1
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ adds r2, r0
+ add r2, r12
+ strb r3, [r2]
+ b _08022244
+ .align 2, 0
+_080221B4: .4byte gBankTarget
+_080221B8: .4byte 0x000160ac
+_080221BC: .4byte 0x000160ad
+_080221C0:
+ ldr r5, _080222B0 @ =gHitMarker
+ ldr r2, [r5]
+ movs r0, 0x80
+ lsls r0, 12
+ ands r0, r2
+ cmp r0, 0
+ bne _08022244
+ ldr r0, _080222B4 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08022244
+ ldr r1, _080222B8 @ =gProtectStructs
+ ldr r0, _080222BC @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08022244
+ ldr r0, _080222C0 @ =gBattleMoves
+ mov r9, r0
+ ldr r1, _080222C4 @ =gCurrentMove
+ mov r8, r1
+ ldrh r0, [r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0x8
+ bne _08022244
+ movs r6, 0x80
+ lsls r6, 2
+ adds r4, r6, 0
+ ands r4, r2
+ cmp r4, 0
+ bne _08022244
+ ldr r7, _080222C8 @ =gBankTarget
+ ldrb r0, [r7]
+ bl GetBankIdentity
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080222CC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0802223A
+ bl _08021874
+_0802223A:
+ ldr r0, [r5]
+ orrs r0, r6
+ str r0, [r5]
+ ldr r2, _080222D0 @ =0x02000000
+ mov r12, r2
+_08022244:
+ ldr r1, _080222D4 @ =0x0001600c
+ add r1, r12
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0802224E:
+ ldr r3, [sp, 0x10]
+ cmp r3, 0x1
+ bne _08022262
+ mov r4, r10
+ cmp r4, 0
+ bne _08022262
+ ldr r1, _080222D4 @ =0x0001600c
+ add r1, r12
+ movs r0, 0x11
+ strb r0, [r1]
+_08022262:
+ ldr r5, [sp, 0x10]
+ cmp r5, 0x2
+ bne _08022278
+ ldr r1, _080222D4 @ =0x0001600c
+ add r1, r12
+ ldr r0, [sp, 0x14]
+ ldrb r2, [r1]
+ cmp r0, r2
+ bne _08022278
+ movs r0, 0x11
+ strb r0, [r1]
+_08022278:
+ ldr r0, _080222D4 @ =0x0001600c
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ beq _08022286
+ bl _080218E4
+_08022286:
+ ldr r0, _080222D4 @ =0x0001600c
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ bne _0802229E
+ mov r3, r10
+ cmp r3, 0
+ bne _0802229E
+ ldr r1, _080222D8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x3
+_0802229C:
+ str r0, [r1]
+_0802229E:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080222B0: .4byte gHitMarker
+_080222B4: .4byte gBattleTypeFlags
+_080222B8: .4byte gProtectStructs
+_080222BC: .4byte gBankAttacker
+_080222C0: .4byte gBattleMoves
+_080222C4: .4byte gCurrentMove
+_080222C8: .4byte gBankTarget
+_080222CC: .4byte gBattleMons
+_080222D0: .4byte 0x02000000
+_080222D4: .4byte 0x0001600c
+_080222D8: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_80217F8
+
+ thumb_func_start atk4A_damageflags
+atk4A_damageflags: @ 80222DC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ movs r5, 0
+ ldr r2, _08022340 @ =gBattleMoves
+ ldr r0, _08022344 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ mov r8, r0
+ ldr r2, _08022348 @ =gBattleMons
+ ldr r3, _0802234C @ =gBankTarget
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r12, r2
+ adds r7, r3, 0
+ cmp r0, 0x1A
+ bne _08022370
+ mov r1, r8
+ cmp r1, 0x4
+ bne _08022370
+ ldr r3, _08022350 @ =gLastUsedAbility
+ strb r0, [r3]
+ ldr r2, _08022354 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x9
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08022358 @ =gMoveHitWith
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r0, r1
+ strh r4, [r0]
+ ldr r0, _0802235C @ =gBattleCommunication
+ mov r2, r8
+ strb r2, [r0, 0x6]
+ ldrb r0, [r7]
+ ldrb r1, [r3]
+ bl sub_81074C4
+ b _08022452
+ .align 2, 0
+_08022340: .4byte gBattleMoves
+_08022344: .4byte gCurrentMove
+_08022348: .4byte gBattleMons
+_0802234C: .4byte gBankTarget
+_08022350: .4byte gLastUsedAbility
+_08022354: .4byte gBattleMoveFlags
+_08022358: .4byte gMoveHitWith
+_0802235C: .4byte gBattleCommunication
+_08022360:
+ ldr r0, _0802236C @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022452
+ .align 2, 0
+_0802236C: .4byte gBattleMoveFlags
+_08022370:
+ ldr r1, _0802237C @ =gTypeEffectiveness
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r6, r1, 0
+ b _08022432
+ .align 2, 0
+_0802237C: .4byte gTypeEffectiveness
+_08022380:
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ cmp r0, r8
+ bne _0802242C
+ adds r2, r5, 0x1
+ adds r3, r2, r6
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r12
+ adds r0, 0x21
+ ldrb r1, [r3]
+ adds r3, r2, 0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080223BE
+ adds r0, r5, 0x2
+ adds r0, r6
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08022360
+ cmp r1, 0x5
+ bne _080223B2
+ movs r0, 0x4
+ orrs r4, r0
+_080223B2:
+ cmp r1, 0x14
+ bne _080223BE
+ movs r0, 0x2
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_080223BE:
+ adds r2, r3, r6
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r12
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0802242C
+ adds r0, 0x21
+ ldrb r1, [r0]
+ cmp r1, r2
+ beq _080223E6
+ adds r0, r5, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08022360
+_080223E6:
+ cmp r1, r2
+ beq _080223FC
+ adds r0, r5, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _080223FC
+ movs r0, 0x4
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_080223FC:
+ adds r2, r3, r6
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r12
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0802242C
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _0802242C
+ adds r0, r5, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ bne _0802242C
+ movs r0, 0x2
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_0802242C:
+ adds r5, 0x3
+ adds r0, r5, r6
+ ldrb r0, [r0]
+_08022432:
+ cmp r0, 0xFF
+ beq _08022452
+ cmp r0, 0xFE
+ bne _08022380
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r12
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0802242C
+_08022452:
+ ldr r2, _08022500 @ =gBattleMons
+ ldr r0, _08022504 @ =gBankTarget
+ mov r8, r0
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r6, [r0]
+ cmp r6, 0x19
+ bne _080224CE
+ movs r5, 0x29
+ ands r5, r4
+ cmp r5, 0
+ bne _080224CE
+ ldr r0, _08022508 @ =gBankAttacker
+ ldrb r0, [r0]
+ ldr r7, _0802250C @ =gCurrentMove
+ ldrh r1, [r7]
+ bl move_weather_interaction
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bne _080224CE
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08022494
+ movs r0, 0x6
+ ands r4, r0
+ cmp r4, 0x6
+ bne _080224CE
+_08022494:
+ ldr r2, _08022510 @ =gBattleMoves
+ ldrh r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080224CE
+ ldr r3, _08022514 @ =gLastUsedAbility
+ strb r6, [r3]
+ ldr r2, _08022518 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0802251C @ =gMoveHitWith
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ strh r5, [r0]
+ ldr r1, _08022520 @ =gBattleCommunication
+ movs r0, 0x3
+ strb r0, [r1, 0x6]
+ ldrb r0, [r2]
+ ldrb r1, [r3]
+ bl sub_81074C4
+_080224CE:
+ ldr r0, _08022518 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080224EC
+ ldr r2, _08022524 @ =gProtectStructs
+ ldr r0, _08022508 @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r1, 4
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+_080224EC:
+ ldr r1, _08022528 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022500: .4byte gBattleMons
+_08022504: .4byte gBankTarget
+_08022508: .4byte gBankAttacker
+_0802250C: .4byte gCurrentMove
+_08022510: .4byte gBattleMoves
+_08022514: .4byte gLastUsedAbility
+_08022518: .4byte gBattleMoveFlags
+_0802251C: .4byte gMoveHitWith
+_08022520: .4byte gBattleCommunication
+_08022524: .4byte gProtectStructs
+_08022528: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk4A_damageflags
+
+ thumb_func_start atk4B_cmd4b
+atk4B_cmd4b: @ 802252C
+ push {r4,lr}
+ ldr r4, _08022568 @ =gActiveBank
+ ldr r0, _0802256C @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r2, _08022570 @ =gHitMarker
+ ldr r1, _08022574 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _0802255A
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x06_a
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_0802255A:
+ ldr r1, _08022578 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022568: .4byte gActiveBank
+_0802256C: .4byte gBankAttacker
+_08022570: .4byte gHitMarker
+_08022574: .4byte gBitTable
+_08022578: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk4B_cmd4b
+
+ thumb_func_start atk4C_switch1
+atk4C_switch1: @ 802257C
+ push {r4-r6,lr}
+ ldr r0, _080225D4 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080225CC
+ ldr r5, _080225D8 @ =gBattlescriptCurrInstr
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _080225DC @ =gActiveBank
+ strb r0, [r4]
+ ldr r3, _080225E0 @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r3
+ ldr r2, _080225E4 @ =0x02000000
+ ldr r6, _080225E8 @ =0x00016068
+ adds r0, r6
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldr r1, _080225EC @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r0, 0
+ movs r1, 0
+ bl EmitGetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+_080225CC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080225D4: .4byte gBattleExecBuffer
+_080225D8: .4byte gBattlescriptCurrInstr
+_080225DC: .4byte gActiveBank
+_080225E0: .4byte gBattlePartyID
+_080225E4: .4byte 0x02000000
+_080225E8: .4byte 0x00016068
+_080225EC: .4byte gBitTable
+ thumb_func_end atk4C_switch1
+
+ thumb_func_start sub_80225F0
+sub_80225F0: @ 80225F0
+ push {r4-r7,lr}
+ sub sp, 0x58
+ ldr r0, _0802274C @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080225FE
+ b _08022744
+_080225FE:
+ ldr r0, _08022750 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _08022754 @ =gActiveBank
+ strb r0, [r4]
+ ldr r6, _08022758 @ =gBattleMons
+ ldrb r0, [r4]
+ movs r5, 0x58
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r6
+ mov r0, sp
+ movs r2, 0x58
+ bl memcpy
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r3, r0, r6
+ movs r2, 0
+ ldr r5, _0802275C @ =gBattleBufferB
+ adds r7, r4, 0
+_0802262C:
+ adds r0, r3, r2
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r1, 0x4
+ adds r1, r2, r1
+ adds r1, r5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x57
+ bls _0802262C
+ ldr r4, _08022758 @ =gBattleMons
+ ldrb r0, [r7]
+ movs r6, 0x58
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r4
+ ldr r3, _08022760 @ =gBaseStats
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x6]
+ adds r2, 0x21
+ strb r0, [r2]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r4
+ ldrh r2, [r1]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x7]
+ adds r1, 0x22
+ strb r0, [r1]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r4
+ ldrh r0, [r1]
+ ldrb r1, [r1, 0x17]
+ lsrs r1, 7
+ bl GetAbilityBySpecies
+ ldrb r1, [r7]
+ muls r1, r6
+ adds r1, r4
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrb r0, [r7]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08022764 @ =gWishFutureKnock
+ adds r0, 0x29
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ ldr r3, _08022768 @ =gBitTable
+ ldr r2, _0802276C @ =gBattlePartyID
+ ldrb r5, [r7]
+ lsls r0, r5, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r1, r0
+ mov r12, r4
+ cmp r1, 0
+ beq _080226CA
+ adds r0, r5, 0
+ muls r0, r6
+ add r0, r12
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+_080226CA:
+ ldr r2, _08022770 @ =gBattleMoves
+ ldr r0, _08022774 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x7F
+ bne _08022710
+ movs r2, 0
+ adds r4, r7, 0
+ movs r6, 0x58
+ mov r5, r12
+ adds r5, 0x18
+ add r3, sp, 0x18
+_080226EA:
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r2, r1
+ adds r1, r5
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080226EA
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r12
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [sp, 0x50]
+ str r1, [r0]
+_08022710:
+ bl sub_8010B88
+ ldr r0, _08022778 @ =0x02000000
+ ldr r3, _08022754 @ =gActiveBank
+ ldrb r2, [r3]
+ ldr r1, _0802277C @ =0x00016003
+ adds r0, r1
+ strb r2, [r0]
+ ldr r1, _08022780 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ ldr r2, _0802276C @ =gBattlePartyID
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08022750 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_08022744:
+ add sp, 0x58
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802274C: .4byte gBattleExecBuffer
+_08022750: .4byte gBattlescriptCurrInstr
+_08022754: .4byte gActiveBank
+_08022758: .4byte gBattleMons
+_0802275C: .4byte gBattleBufferB
+_08022760: .4byte gBaseStats
+_08022764: .4byte gWishFutureKnock
+_08022768: .4byte gBitTable
+_0802276C: .4byte gBattlePartyID
+_08022770: .4byte gBattleMoves
+_08022774: .4byte gCurrentMove
+_08022778: .4byte 0x02000000
+_0802277C: .4byte 0x00016003
+_08022780: .4byte gBattleTextBuff1
+ thumb_func_end sub_80225F0
+
+ thumb_func_start sub_8022784
+sub_8022784: @ 8022784
+ push {r4,r5,lr}
+ ldr r0, _0802280C @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08022806
+ ldr r0, _08022810 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _08022814 @ =gActiveBank
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080227D0
+ ldr r0, _08022818 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _0802281C @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _080227D0
+ ldr r2, _08022820 @ =gBattleMons
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl GetNationalPokedexFlag
+_080227D0:
+ ldr r2, _08022824 @ =gAbsentBankFlags
+ ldr r1, _08022828 @ =gBitTable
+ ldr r5, _08022814 @ =gActiveBank
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldrb r0, [r2]
+ bics r0, r1
+ strb r0, [r2]
+ ldr r1, _0802282C @ =gBattlePartyID
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r4, _08022810 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x2]
+ movs r0, 0
+ bl sub_800C704
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+_08022806:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802280C: .4byte gBattleExecBuffer
+_08022810: .4byte gBattlescriptCurrInstr
+_08022814: .4byte gActiveBank
+_08022818: .4byte gBattleTypeFlags
+_0802281C: .4byte 0x00000902
+_08022820: .4byte gBattleMons
+_08022824: .4byte gAbsentBankFlags
+_08022828: .4byte gBitTable
+_0802282C: .4byte gBattlePartyID
+ thumb_func_end sub_8022784
+
+ thumb_func_start sub_8022830
+sub_8022830: @ 8022830
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _08022894 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x7F
+ ands r0, r1
+ bl sub_8015150
+ ldr r3, _08022898 @ =gActiveBank
+ strb r0, [r3]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080228A8
+ ldr r1, _0802289C @ =gBattleMons
+ ldrb r3, [r3]
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080228A0 @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ bne _0802287C
+ ldr r1, _080228A4 @ =gStatuses3
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _080228A8
+_0802287C:
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08022A2C
+ .align 2, 0
+_08022894: .4byte gBattlescriptCurrInstr
+_08022898: .4byte gActiveBank
+_0802289C: .4byte gBattleMons
+_080228A0: .4byte 0x0400e000
+_080228A4: .4byte gStatuses3
+_080228A8:
+ ldr r5, _08022934 @ =gBattleTypeFlags
+ ldrh r1, [r5]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08022948
+ ldr r4, _08022938 @ =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0802293C @ =gPlayerParty
+ mov r8, r1
+ cmp r0, 0x1
+ bne _080228CC
+ ldr r0, _08022940 @ =gEnemyParty
+ mov r8, r0
+_080228CC:
+ movs r5, 0
+ ldrb r0, [r4]
+ bl sub_803FC34
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_803FBFC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _080228E6
+ movs r5, 0x3
+_080228E6:
+ adds r6, r5, 0x3
+ cmp r5, r6
+ bge _0802292E
+ ldr r7, _08022944 @ =gBattlePartyID
+_080228EE:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08022928
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08022928
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08022928
+ ldr r0, _08022938 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, r5
+ bne _0802292E
+_08022928:
+ adds r5, 0x1
+ cmp r5, r6
+ blt _080228EE
+_0802292E:
+ cmp r5, r6
+ beq _080229FC
+ b _08022A24
+ .align 2, 0
+_08022934: .4byte gBattleTypeFlags
+_08022938: .4byte gActiveBank
+_0802293C: .4byte gPlayerParty
+_08022940: .4byte gEnemyParty
+_08022944: .4byte gBattlePartyID
+_08022948:
+ ldr r0, _08022978 @ =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _08022988
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802297C
+ movs r0, 0x3
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _0802297E
+ .align 2, 0
+_08022978: .4byte gActiveBank
+_0802297C:
+ adds r6, r7, 0
+_0802297E:
+ ldr r0, _08022984 @ =gEnemyParty
+ mov r8, r0
+ b _080229AE
+ .align 2, 0
+_08022984: .4byte gEnemyParty
+_08022988:
+ movs r0, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080229A8
+ movs r0, 0x2
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _080229AA
+_080229A8:
+ adds r6, r7, 0
+_080229AA:
+ ldr r1, _08022A18 @ =gPlayerParty
+ mov r8, r1
+_080229AE:
+ movs r5, 0
+_080229B0:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080229F2
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080229F2
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080229F2
+ ldr r1, _08022A1C @ =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080229F2
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ bne _080229F8
+_080229F2:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080229B0
+_080229F8:
+ cmp r5, 0x6
+ bne _08022A24
+_080229FC:
+ ldr r3, _08022A20 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08022A2C
+ .align 2, 0
+_08022A18: .4byte gPlayerParty
+_08022A1C: .4byte gBattlePartyID
+_08022A20: .4byte gBattlescriptCurrInstr
+_08022A24:
+ ldr r1, _08022A38 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+_08022A2C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022A38: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8022830
+
+ thumb_func_start sub_8022A3C
+sub_8022A3C: @ 8022A3C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r4, _08022A84 @ =0x02000000
+ ldr r5, _08022A88 @ =gActiveBank
+ ldrb r0, [r5]
+ ldr r3, _08022A8C @ =0x00016064
+ adds r1, r0, r3
+ adds r1, r4
+ ldr r3, _08022A90 @ =gBattlePartyID
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, _08022A94 @ =0x0001606c
+ adds r4, r1
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022A84: .4byte 0x02000000
+_08022A88: .4byte gActiveBank
+_08022A8C: .4byte 0x00016064
+_08022A90: .4byte gBattlePartyID
+_08022A94: .4byte 0x0001606c
+ thumb_func_end sub_8022A3C
+
+ thumb_func_start atk50_openpartyscreen
+atk50_openpartyscreen: @ 8022A98
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ ldr r6, _08022B44 @ =gBattlescriptCurrInstr
+ ldr r1, [r6]
+ ldrb r2, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ mov r8, r2
+ ldrb r2, [r1, 0x1]
+ adds r0, r2, 0
+ mov r12, r6
+ cmp r0, 0x5
+ beq _08022ACE
+ b _08022F74
+_08022ACE:
+ ldr r0, _08022B48 @ =gBattleTypeFlags
+ ldrh r0, [r0]
+ movs r1, 0x41
+ ands r1, r0
+ cmp r1, 0x1
+ beq _08022BBC
+ ldr r1, _08022B4C @ =gActiveBank
+ strb r7, [r1]
+ ldr r0, _08022B50 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _08022AE8
+ b _08022F62
+_08022AE8:
+ ldr r7, _08022B54 @ =gHitMarker
+ ldr r6, _08022B58 @ =gBitTable
+ adds r4, r1, 0
+ ldr r0, _08022B5C @ =gAbsentBankFlags
+ mov r8, r0
+_08022AF2:
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r7]
+ ands r0, r1
+ cmp r0, 0
+ beq _08022B94
+ adds r0, r2, 0
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022B60
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r7]
+ bics r0, r1
+ str r0, [r7]
+ movs r0, 0
+ movs r1, 0x2
+ bl EmitLinkStandbyMsg
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ b _08022BA2
+ .align 2, 0
+_08022B44: .4byte gBattlescriptCurrInstr
+_08022B48: .4byte gBattleTypeFlags
+_08022B4C: .4byte gActiveBank
+_08022B50: .4byte gNoOfAllBanks
+_08022B54: .4byte gHitMarker
+_08022B58: .4byte gBitTable
+_08022B5C: .4byte gAbsentBankFlags
+_08022B60:
+ ldr r5, _08022B90 @ =gSpecialStatuses
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022BA2
+ movs r0, 0x6
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022BA2
+ .align 2, 0
+_08022B90: .4byte gSpecialStatuses
+_08022B94:
+ movs r0, 0
+ movs r1, 0x2
+ bl EmitLinkStandbyMsg
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_08022BA2:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08022BB8 @ =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08022AF2
+ b _08022F62
+ .align 2, 0
+_08022BB8: .4byte gNoOfAllBanks
+_08022BBC:
+ ands r1, r0
+ cmp r1, 0
+ bne _08022BC4
+ b _08022F62
+_08022BC4:
+ ldr r0, _08022C1C @ =gHitMarker
+ mov r8, r0
+ ldr r0, [r0]
+ lsrs r5, r0, 28
+ ldr r6, _08022C20 @ =gBitTable
+ ldr r0, [r6]
+ ands r0, r5
+ cmp r0, 0
+ beq _08022C7E
+ ldr r4, _08022C24 @ =gActiveBank
+ strb r7, [r4]
+ movs r0, 0
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022C2C
+ ldr r2, _08022C28 @ =gAbsentBankFlags
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ mov r2, r8
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ b _08022C7E
+ .align 2, 0
+_08022C1C: .4byte gHitMarker
+_08022C20: .4byte gBitTable
+_08022C24: .4byte gActiveBank
+_08022C28: .4byte gAbsentBankFlags
+_08022C2C:
+ ldr r6, _08022C60 @ =gSpecialStatuses
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022C6C
+ ldr r0, _08022C64 @ =0x02000000
+ ldr r1, _08022C68 @ =0x0001606a
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022C7E
+ .align 2, 0
+_08022C60: .4byte gSpecialStatuses
+_08022C64: .4byte 0x02000000
+_08022C68: .4byte 0x0001606a
+_08022C6C:
+ movs r0, 0
+ movs r1, 0x2
+ bl EmitLinkStandbyMsg
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ movs r2, 0x1
+ mov r9, r2
+_08022C7E:
+ ldr r6, _08022CD8 @ =gBitTable
+ ldr r0, [r6, 0x8]
+ ands r0, r5
+ cmp r0, 0
+ beq _08022D40
+ ldr r0, [r6]
+ ands r0, r5
+ cmp r0, 0
+ bne _08022D40
+ ldr r4, _08022CDC @ =gActiveBank
+ movs r0, 0x2
+ strb r0, [r4]
+ movs r0, 0x2
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022CE8
+ ldr r2, _08022CE0 @ =gAbsentBankFlags
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _08022CE4 @ =gHitMarker
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ b _08022D40
+ .align 2, 0
+_08022CD8: .4byte gBitTable
+_08022CDC: .4byte gActiveBank
+_08022CE0: .4byte gAbsentBankFlags
+_08022CE4: .4byte gHitMarker
+_08022CE8:
+ ldr r6, _08022D1C @ =gSpecialStatuses
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022D28
+ ldr r0, _08022D20 @ =0x02000000
+ ldr r1, _08022D24 @ =0x00016068
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022D40
+ .align 2, 0
+_08022D1C: .4byte gSpecialStatuses
+_08022D20: .4byte 0x02000000
+_08022D24: .4byte 0x00016068
+_08022D28:
+ movs r0, 0x1
+ mov r2, r9
+ ands r0, r2
+ cmp r0, 0
+ bne _08022D40
+ movs r0, 0
+ movs r1, 0x2
+ bl EmitLinkStandbyMsg
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_08022D40:
+ ldr r6, _08022D90 @ =gBitTable
+ ldr r0, [r6, 0x4]
+ ands r0, r5
+ cmp r0, 0
+ beq _08022DF6
+ ldr r4, _08022D94 @ =gActiveBank
+ movs r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x1
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022DA0
+ ldr r2, _08022D98 @ =gAbsentBankFlags
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _08022D9C @ =gHitMarker
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ b _08022DF6
+ .align 2, 0
+_08022D90: .4byte gBitTable
+_08022D94: .4byte gActiveBank
+_08022D98: .4byte gAbsentBankFlags
+_08022D9C: .4byte gHitMarker
+_08022DA0:
+ ldr r6, _08022DD4 @ =gSpecialStatuses
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022DE0
+ ldr r0, _08022DD8 @ =0x02000000
+ ldr r1, _08022DDC @ =0x0001606b
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022DF6
+ .align 2, 0
+_08022DD4: .4byte gSpecialStatuses
+_08022DD8: .4byte 0x02000000
+_08022DDC: .4byte 0x0001606b
+_08022DE0:
+ movs r0, 0
+ movs r1, 0x2
+ bl EmitLinkStandbyMsg
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ movs r0, 0x2
+ mov r2, r9
+ orrs r2, r0
+ mov r9, r2
+_08022DF6:
+ ldr r6, _08022E50 @ =gBitTable
+ ldr r0, [r6, 0xC]
+ ands r0, r5
+ cmp r0, 0
+ beq _08022EB8
+ ldr r0, [r6, 0x4]
+ ands r0, r5
+ cmp r0, 0
+ bne _08022EB8
+ ldr r4, _08022E54 @ =gActiveBank
+ movs r0, 0x3
+ strb r0, [r4]
+ movs r0, 0x3
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022E60
+ ldr r2, _08022E58 @ =gAbsentBankFlags
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _08022E5C @ =gHitMarker
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ b _08022EB8
+ .align 2, 0
+_08022E50: .4byte gBitTable
+_08022E54: .4byte gActiveBank
+_08022E58: .4byte gAbsentBankFlags
+_08022E5C: .4byte gHitMarker
+_08022E60:
+ ldr r6, _08022E94 @ =gSpecialStatuses
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022EA0
+ ldr r0, _08022E98 @ =0x02000000
+ ldr r1, _08022E9C @ =0x00016069
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022EB8
+ .align 2, 0
+_08022E94: .4byte gSpecialStatuses
+_08022E98: .4byte 0x02000000
+_08022E9C: .4byte 0x00016069
+_08022EA0:
+ movs r0, 0x2
+ mov r2, r9
+ ands r2, r0
+ cmp r2, 0
+ bne _08022EB8
+ movs r0, 0
+ movs r1, 0x2
+ bl EmitLinkStandbyMsg
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_08022EB8:
+ ldr r1, _08022EE8 @ =gSpecialStatuses
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022F0C
+ adds r0, r1, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022F0C
+ cmp r5, 0
+ beq _08022F0C
+ ldr r0, _08022EEC @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r0, _08022EF0 @ =gBitTable
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08022EF8
+ ldr r1, _08022EF4 @ =gActiveBank
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08022EFC
+ .align 2, 0
+_08022EE8: .4byte gSpecialStatuses
+_08022EEC: .4byte gAbsentBankFlags
+_08022EF0: .4byte gBitTable
+_08022EF4: .4byte gActiveBank
+_08022EF8:
+ ldr r0, _08022F3C @ =gActiveBank
+ strb r1, [r0]
+_08022EFC:
+ movs r0, 0
+ movs r1, 0x2
+ bl EmitLinkStandbyMsg
+ ldr r0, _08022F3C @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+_08022F0C:
+ ldr r1, _08022F40 @ =gSpecialStatuses
+ ldrb r0, [r1, 0x14]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022F62
+ adds r0, r1, 0
+ adds r0, 0x3C
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022F62
+ cmp r5, 0
+ beq _08022F62
+ ldr r0, _08022F44 @ =gAbsentBankFlags
+ ldrb r0, [r0]
+ ldr r1, _08022F48 @ =gBitTable
+ ldr r1, [r1, 0x4]
+ ands r0, r1
+ cmp r0, 0
+ beq _08022F4C
+ ldr r1, _08022F3C @ =gActiveBank
+ movs r0, 0x3
+ b _08022F50
+ .align 2, 0
+_08022F3C: .4byte gActiveBank
+_08022F40: .4byte gSpecialStatuses
+_08022F44: .4byte gAbsentBankFlags
+_08022F48: .4byte gBitTable
+_08022F4C:
+ ldr r1, _08022F6C @ =gActiveBank
+ movs r0, 0x1
+_08022F50:
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0x2
+ bl EmitLinkStandbyMsg
+ ldr r0, _08022F6C @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+_08022F62:
+ ldr r1, _08022F70 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+ b _08023302
+ .align 2, 0
+_08022F6C: .4byte gActiveBank
+_08022F70: .4byte gBattlescriptCurrInstr
+_08022F74:
+ cmp r0, 0x6
+ beq _08022F7A
+ b _08023170
+_08022F7A:
+ ldr r0, _08022FF0 @ =gBattleTypeFlags
+ ldrh r2, [r0]
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _08022F88
+ b _0802310C
+_08022F88:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _08022F92
+ b _0802310C
+_08022F92:
+ ldr r7, _08022FF4 @ =gHitMarker
+ ldr r0, [r7]
+ lsrs r5, r0, 28
+ ldr r4, _08022FF8 @ =gBitTable
+ ldr r0, [r4, 0x8]
+ ands r0, r5
+ cmp r0, 0
+ beq _0802303A
+ ldr r0, [r4]
+ ands r0, r5
+ cmp r0, 0
+ beq _0802303A
+ ldr r6, _08022FFC @ =gActiveBank
+ movs r0, 0x2
+ strb r0, [r6]
+ ldr r0, _08023000 @ =gBattleBufferB
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x2
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08023008
+ ldr r2, _08023004 @ =gAbsentBankFlags
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r7]
+ bics r0, r1
+ str r0, [r7]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r6]
+ bl MarkBufferBankForExecution
+ b _0802303A
+ .align 2, 0
+_08022FF0: .4byte gBattleTypeFlags
+_08022FF4: .4byte gHitMarker
+_08022FF8: .4byte gBitTable
+_08022FFC: .4byte gActiveBank
+_08023000: .4byte gBattleBufferB
+_08023004: .4byte gAbsentBankFlags
+_08023008:
+ ldr r4, _08023098 @ =gSpecialStatuses
+ ldrb r0, [r6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _0802303A
+ ldr r0, _0802309C @ =0x02000000
+ ldr r1, _080230A0 @ =0x00016068
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+_0802303A:
+ ldr r4, _080230A4 @ =gBitTable
+ ldr r0, [r4, 0xC]
+ ands r0, r5
+ cmp r0, 0
+ beq _080230EE
+ ldr r0, [r4, 0x4]
+ ands r5, r0
+ cmp r5, 0
+ beq _080230EE
+ ldr r5, _080230A8 @ =gActiveBank
+ movs r0, 0x3
+ strb r0, [r5]
+ ldr r0, _080230AC @ =gBattleBufferB
+ ldr r2, _080230B0 @ =0x00000201
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x3
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _080230BC
+ ldr r2, _080230B4 @ =gAbsentBankFlags
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _080230B8 @ =gHitMarker
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+ b _080230EE
+ .align 2, 0
+_08023098: .4byte gSpecialStatuses
+_0802309C: .4byte 0x02000000
+_080230A0: .4byte 0x00016068
+_080230A4: .4byte gBitTable
+_080230A8: .4byte gActiveBank
+_080230AC: .4byte gBattleBufferB
+_080230B0: .4byte 0x00000201
+_080230B4: .4byte gAbsentBankFlags
+_080230B8: .4byte gHitMarker
+_080230BC:
+ ldr r4, _080230FC @ =gSpecialStatuses
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _080230EE
+ ldr r0, _08023100 @ =0x02000000
+ ldr r1, _08023104 @ =0x00016069
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+_080230EE:
+ ldr r1, _08023108 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+ mov r12, r1
+ b _08023110
+ .align 2, 0
+_080230FC: .4byte gSpecialStatuses
+_08023100: .4byte 0x02000000
+_08023104: .4byte 0x00016069
+_08023108: .4byte gBattlescriptCurrInstr
+_0802310C:
+ adds r0, r1, 0x6
+ str r0, [r6]
+_08023110:
+ ldr r0, _08023160 @ =gHitMarker
+ ldr r0, [r0]
+ lsrs r5, r0, 28
+ ldr r1, _08023164 @ =gBank1
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, _08023168 @ =gBitTable
+ ldr r2, [r4]
+ ands r2, r5
+ ldr r6, _0802316C @ =gNoOfAllBanks
+ cmp r2, 0
+ bne _0802314C
+ adds r7, r6, 0
+ ldrb r0, [r6]
+ cmp r2, r0
+ bcs _0802314C
+ adds r3, r1, 0
+_08023132:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ ldrb r2, [r3]
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r5
+ cmp r0, 0
+ bne _0802314C
+ ldrb r0, [r7]
+ cmp r2, r0
+ bcc _08023132
+_0802314C:
+ ldrb r0, [r1]
+ ldrb r6, [r6]
+ cmp r0, r6
+ beq _08023156
+ b _08023302
+_08023156:
+ mov r1, r8
+ mov r2, r12
+ str r1, [r2]
+ b _08023302
+ .align 2, 0
+_08023160: .4byte gHitMarker
+_08023164: .4byte gBank1
+_08023168: .4byte gBitTable
+_0802316C: .4byte gNoOfAllBanks
+_08023170:
+ movs r0, 0x80
+ ands r0, r2
+ movs r5, 0x1
+ cmp r0, 0
+ beq _0802317C
+ movs r5, 0
+_0802317C:
+ movs r0, 0x7F
+ ands r0, r2
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080231A4 @ =gSpecialStatuses
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ bge _080231A8
+ ldr r0, [r6]
+ adds r0, 0x6
+ str r0, [r6]
+ b _08023302
+ .align 2, 0
+_080231A4: .4byte gSpecialStatuses
+_080231A8:
+ adds r0, r7, 0
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _080231F8
+ ldr r2, _080231E8 @ =gActiveBank
+ strb r7, [r2]
+ ldr r3, _080231EC @ =gAbsentBankFlags
+ ldr r4, _080231F0 @ =gBitTable
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldrb r1, [r3]
+ orrs r0, r1
+ strb r0, [r3]
+ ldr r3, _080231F4 @ =gHitMarker
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r3]
+ bics r0, r1
+ str r0, [r3]
+ mov r0, r8
+ str r0, [r6]
+ b _08023302
+ .align 2, 0
+_080231E8: .4byte gActiveBank
+_080231EC: .4byte gAbsentBankFlags
+_080231F0: .4byte gBitTable
+_080231F4: .4byte gHitMarker
+_080231F8:
+ ldr r4, _080232A0 @ =gActiveBank
+ strb r7, [r4]
+ ldr r3, _080232A4 @ =0x02000000
+ ldrb r0, [r4]
+ ldr r2, _080232A8 @ =0x00016064
+ adds r1, r0, r2
+ adds r1, r3
+ ldr r2, _080232AC @ =gBattlePartyID
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ ldr r1, _080232B0 @ =0x00016068
+ adds r0, r1
+ adds r0, r3
+ ldrb r2, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, _080232B4 @ =0x0001606c
+ adds r3, r1
+ adds r0, r3
+ str r0, [sp]
+ movs r0, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r0, [r6]
+ adds r0, 0x6
+ str r0, [r6]
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802325A
+ ldr r1, _080232B8 @ =gBattleResults
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xFE
+ bhi _0802325A
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+_0802325A:
+ ldr r0, _080232BC @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080232C4
+ ldr r1, _080232A0 @ =gActiveBank
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080232C0 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08023302
+ adds r4, r1, 0
+_08023276:
+ ldrb r0, [r4]
+ cmp r0, r7
+ beq _0802328A
+ movs r0, 0
+ movs r1, 0x2
+ bl EmitLinkStandbyMsg
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_0802328A:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _080232C0 @ =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08023276
+ b _08023302
+ .align 2, 0
+_080232A0: .4byte gActiveBank
+_080232A4: .4byte 0x02000000
+_080232A8: .4byte 0x00016064
+_080232AC: .4byte gBattlePartyID
+_080232B0: .4byte 0x00016068
+_080232B4: .4byte 0x0001606c
+_080232B8: .4byte gBattleResults
+_080232BC: .4byte gBattleTypeFlags
+_080232C0: .4byte gNoOfAllBanks
+_080232C4:
+ adds r0, r7, 0
+ bl GetBankIdentity
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r4, _08023310 @ =gActiveBank
+ strb r0, [r4]
+ ldr r0, _08023314 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _08023318 @ =gBitTable
+ ldrb r3, [r4]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080232F4
+ movs r0, 0x2
+ eors r3, r0
+ strb r3, [r4]
+_080232F4:
+ movs r0, 0
+ movs r1, 0x2
+ bl EmitLinkStandbyMsg
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_08023302:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023310: .4byte gActiveBank
+_08023314: .4byte gAbsentBankFlags
+_08023318: .4byte gBitTable
+ thumb_func_end atk50_openpartyscreen
+
+ thumb_func_start sub_802331C
+sub_802331C: @ 802331C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0802334C @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802332C
+ b _080234FE
+_0802332C:
+ ldr r4, _08023350 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r7, _08023354 @ =gActiveBank
+ strb r0, [r7]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0x1
+ beq _080233A0
+ cmp r0, 0x1
+ bgt _08023358
+ cmp r0, 0
+ beq _0802335E
+ b _080234F6
+ .align 2, 0
+_0802334C: .4byte gBattleExecBuffer
+_08023350: .4byte gBattlescriptCurrInstr
+_08023354: .4byte gActiveBank
+_08023358:
+ cmp r0, 0x2
+ beq _080233BC
+ b _080234F6
+_0802335E:
+ movs r3, 0
+ ldr r2, _08023390 @ =gNoOfAllBanks
+ ldrb r0, [r2]
+ cmp r3, r0
+ blt _0802336A
+ b _080234F6
+_0802336A:
+ ldr r0, _08023394 @ =0x02000000
+ ldr r1, _08023398 @ =gBattleBufferB
+ movs r5, 0x80
+ lsls r5, 2
+ adds r4, r2, 0
+ ldr r6, _0802339C @ =0x00016068
+ adds r2, r0, r6
+_08023378:
+ ldrb r0, [r1]
+ cmp r0, 0x22
+ bne _08023382
+ ldrb r0, [r1, 0x1]
+ strb r0, [r2]
+_08023382:
+ adds r1, r5
+ adds r2, 0x1
+ adds r3, 0x1
+ ldrb r0, [r4]
+ cmp r3, r0
+ blt _08023378
+ b _080234F6
+ .align 2, 0
+_08023390: .4byte gNoOfAllBanks
+_08023394: .4byte 0x02000000
+_08023398: .4byte gBattleBufferB
+_0802339C: .4byte 0x00016068
+_080233A0:
+ ldr r0, _080233B8 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080233AE
+ b _080234F6
+_080233AE:
+ ldrb r0, [r7]
+ bl sub_8012258
+ b _080234F6
+ .align 2, 0
+_080233B8: .4byte gBattleTypeFlags
+_080233BC:
+ ldr r1, _08023484 @ =gBattleCommunication
+ ldr r4, _08023488 @ =gBattleBufferB
+ ldrb r0, [r7]
+ lsls r0, 9
+ adds r2, r4, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r6, _0802348C @ =0x02000000
+ ldrb r0, [r7]
+ ldr r3, _08023490 @ =0x00016068
+ adds r1, r0, r3
+ adds r1, r6
+ lsls r0, 9
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08023494 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080234A4
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r5, _08023498 @ =0x0001606c
+ adds r1, r5
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ adds r1, r6
+ lsls r0, 9
+ adds r2, r4, 0x2
+ mov r12, r2
+ add r0, r12
+ ldrb r2, [r0]
+ movs r3, 0xF0
+ adds r0, r3, 0
+ ands r0, r2
+ ldrb r2, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r2, _0802349C @ =0x0001606d
+ adds r1, r2
+ adds r1, r6
+ lsls r0, 9
+ adds r4, 0x3
+ mov r8, r4
+ add r0, r8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r4, 0x2
+ eors r0, r4
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ adds r1, r6
+ ldrb r2, [r1]
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ eors r0, r4
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ adds r1, r6
+ ldrb r0, [r7]
+ lsls r0, 9
+ add r0, r12
+ ldrb r0, [r0]
+ ands r3, r0
+ lsrs r3, 4
+ ldrb r0, [r1]
+ orrs r3, r0
+ strb r3, [r1]
+ ldrb r0, [r7]
+ eors r4, r0
+ lsls r1, r4, 1
+ adds r1, r4
+ ldr r3, _080234A0 @ =0x0001606e
+ adds r1, r3
+ adds r1, r6
+ ldrb r0, [r7]
+ lsls r0, 9
+ add r0, r8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _080234AA
+ .align 2, 0
+_08023484: .4byte gBattleCommunication
+_08023488: .4byte gBattleBufferB
+_0802348C: .4byte 0x02000000
+_08023490: .4byte 0x00016068
+_08023494: .4byte gBattleTypeFlags
+_08023498: .4byte 0x0001606c
+_0802349C: .4byte 0x0001606d
+_080234A0: .4byte 0x0001606e
+_080234A4:
+ ldrb r0, [r7]
+ bl sub_8012258
+_080234AA:
+ ldr r1, _08023508 @ =gBattleTextBuff1
+ movs r5, 0xFD
+ strb r5, [r1]
+ movs r0, 0x6
+ strb r0, [r1, 0x1]
+ ldr r4, _0802350C @ =gBattleMons
+ ldr r3, _08023510 @ =gBankAttacker
+ ldrb r0, [r3]
+ movs r2, 0x58
+ muls r0, r2
+ adds r0, r4
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r3]
+ muls r0, r2
+ adds r0, r4
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r2, _08023514 @ =gBattleTextBuff2
+ strb r5, [r2]
+ movs r0, 0x7
+ strb r0, [r2, 0x1]
+ ldr r3, _08023518 @ =gActiveBank
+ ldrb r0, [r3]
+ strb r0, [r2, 0x2]
+ ldr r1, _0802351C @ =gBattleBufferB
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2, 0x3]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r2, 0x4]
+_080234F6:
+ ldr r1, _08023520 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x3
+ str r0, [r1]
+_080234FE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023508: .4byte gBattleTextBuff1
+_0802350C: .4byte gBattleMons
+_08023510: .4byte gBankAttacker
+_08023514: .4byte gBattleTextBuff2
+_08023518: .4byte gActiveBank
+_0802351C: .4byte gBattleBufferB
+_08023520: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802331C
+
+ thumb_func_start sub_8023524
+sub_8023524: @ 8023524
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r6, _08023630 @ =gBattlescriptCurrInstr
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _08023634 @ =gActiveBank
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bl sub_80157C4
+ ldr r2, _08023638 @ =gHitMarker
+ ldr r1, _0802363C @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ ldr r2, _08023640 @ =gSpecialStatuses
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ bl GetBankSide
+ ldr r5, _08023644 @ =gSideAffecting
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r5
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ mov r8, r0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802367C
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r5
+ ldrh r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802367C
+ ldr r1, _08023648 @ =gBattleMons
+ mov r9, r1
+ ldrb r2, [r4]
+ movs r7, 0x58
+ adds r0, r2, 0
+ muls r0, r7
+ adds r1, r0, r1
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _0802367C
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _0802367C
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1A
+ beq _0802367C
+ adds r0, r2, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r5
+ ldrh r2, [r0]
+ mov r1, r8
+ orrs r1, r2
+ strh r1, [r0]
+ ldrb r0, [r4]
+ bl GetBankSide
+ ldr r2, _0802364C @ =gSideTimer
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x6]
+ movs r1, 0x5
+ subs r1, r0
+ lsls r1, 25
+ lsrs r1, 24
+ ldr r5, _08023650 @ =gBattleMoveDamage
+ ldrb r0, [r4]
+ muls r0, r7
+ add r0, r9
+ ldrh r0, [r0, 0x2C]
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _08023614
+ movs r0, 0x1
+ str r0, [r5]
+_08023614:
+ ldr r0, _08023654 @ =0x02000000
+ ldrb r1, [r4]
+ ldr r2, _08023658 @ =0x00016003
+ adds r0, r2
+ strb r1, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _08023660
+ ldr r0, _0802365C @ =gUnknown_081D919F
+ str r0, [r6]
+ b _080237B6
+ .align 2, 0
+_08023630: .4byte gBattlescriptCurrInstr
+_08023634: .4byte gActiveBank
+_08023638: .4byte gHitMarker
+_0802363C: .4byte gBitTable
+_08023640: .4byte gSpecialStatuses
+_08023644: .4byte gSideAffecting
+_08023648: .4byte gBattleMons
+_0802364C: .4byte gSideTimer
+_08023650: .4byte gBattleMoveDamage
+_08023654: .4byte 0x02000000
+_08023658: .4byte 0x00016003
+_0802365C: .4byte gUnknown_081D919F
+_08023660:
+ cmp r0, 0x1
+ bne _08023670
+ ldr r0, _0802366C @ =gUnknown_081D9171
+ str r0, [r6]
+ b _080237B6
+ .align 2, 0
+_0802366C: .4byte gUnknown_081D9171
+_08023670:
+ ldr r0, _08023678 @ =gUnknown_081D91CD
+ str r0, [r6]
+ b _080237B6
+ .align 2, 0
+_08023678: .4byte gUnknown_081D91CD
+_0802367C:
+ ldr r1, _08023754 @ =gBattleMons
+ ldr r5, _08023758 @ =gActiveBank
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x36
+ bne _080236A2
+ ldr r1, _0802375C @ =gDisableStructs
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x18]
+_080236A2:
+ ldrb r1, [r5]
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _080236B8
+ b _080237B6
+_080236B8:
+ ldrb r1, [r5]
+ movs r0, 0
+ movs r2, 0
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080237B6
+ ldrb r0, [r5]
+ bl GetBankSide
+ ldr r1, _08023760 @ =gSideAffecting
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r2, [r0]
+ ldr r1, _08023764 @ =0x0000fdff
+ ands r1, r2
+ strh r1, [r0]
+ movs r4, 0
+ ldr r0, _08023768 @ =gNoOfAllBanks
+ ldrb r3, [r0]
+ cmp r4, r3
+ bge _08023706
+ ldr r6, _0802376C @ =gTurnOrder
+ ldr r3, _08023770 @ =gUnknown_02024A76
+ movs r2, 0xC
+ adds r1, r0, 0
+_080236F0:
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ ldrb r7, [r5]
+ cmp r0, r7
+ bne _080236FE
+ adds r0, r4, r3
+ strb r2, [r0]
+_080236FE:
+ adds r4, 0x1
+ ldrb r0, [r1]
+ cmp r4, r0
+ blt _080236F0
+_08023706:
+ movs r4, 0
+ ldr r0, _08023768 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08023736
+ ldr r5, _08023754 @ =gBattleMons
+_08023712:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 23
+ ldr r1, _08023774 @ =0x020160bc
+ adds r0, r1
+ movs r1, 0x58
+ muls r1, r4
+ adds r1, r5
+ ldrh r1, [r1, 0x28]
+ strh r1, [r0]
+ adds r4, 0x1
+ ldr r0, _08023768 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08023712
+_08023736:
+ ldr r0, _08023778 @ =gBattlescriptCurrInstr
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x5
+ bne _080237B0
+ ldr r0, _0802377C @ =gHitMarker
+ ldr r0, [r0]
+ lsrs r4, r0, 28
+ ldr r1, _08023780 @ =gBank1
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r2, _08023784 @ =gBitTable
+ b _08023796
+ .align 2, 0
+_08023754: .4byte gBattleMons
+_08023758: .4byte gActiveBank
+_0802375C: .4byte gDisableStructs
+_08023760: .4byte gSideAffecting
+_08023764: .4byte 0x0000fdff
+_08023768: .4byte gNoOfAllBanks
+_0802376C: .4byte gTurnOrder
+_08023770: .4byte gUnknown_02024A76
+_08023774: .4byte 0x020160bc
+_08023778: .4byte gBattlescriptCurrInstr
+_0802377C: .4byte gHitMarker
+_08023780: .4byte gBank1
+_08023784: .4byte gBitTable
+_08023788:
+ ldr r0, _080237C4 @ =gNoOfAllBanks
+ ldrb r3, [r1]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080237B0
+ adds r0, r3, 0x1
+ strb r0, [r1]
+_08023796:
+ ldrb r0, [r1]
+ lsls r0, 2
+ adds r0, r2
+ ldr r3, [r0]
+ adds r0, r4, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08023788
+ ldr r0, _080237C8 @ =gAbsentBankFlags
+ ldrb r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ bne _08023788
+_080237B0:
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+_080237B6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080237C4: .4byte gNoOfAllBanks
+_080237C8: .4byte gAbsentBankFlags
+ thumb_func_end sub_8023524
+
+ thumb_func_start sub_80237CC
+sub_80237CC: @ 80237CC
+ push {lr}
+ ldr r0, _080237DC @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _080237E0
+ movs r0, 0
+ b _080237E2
+ .align 2, 0
+_080237DC: .4byte gBattlescriptCurrInstr
+_080237E0:
+ movs r0, 0x1
+_080237E2:
+ bl GetBankByPlayerAI
+ ldr r1, _08023804 @ =gActiveBank
+ strb r0, [r1]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x08_8_8_8
+ ldr r0, _08023804 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ ldr r1, _08023808 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023804: .4byte gActiveBank
+_08023808: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_80237CC
+
+ thumb_func_start atk54_802511C
+atk54_802511C: @ 802380C
+ push {r4,r5,lr}
+ ldr r5, _0802383C @ =gActiveBank
+ ldr r0, _08023840 @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r4, _08023844 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ movs r0, 0
+ bl EmitEffectivenessSound
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802383C: .4byte gActiveBank
+_08023840: .4byte gBankAttacker
+_08023844: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk54_802511C
+
+ thumb_func_start sub_8023848
+sub_8023848: @ 8023848
+ push {r4,r5,lr}
+ ldr r5, _08023878 @ =gActiveBank
+ ldr r0, _0802387C @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r4, _08023880 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ movs r0, 0
+ bl sub_800D074
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023878: .4byte gActiveBank
+_0802387C: .4byte gBankAttacker
+_08023880: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8023848
+
+ thumb_func_start atk56_8025194
+atk56_8025194: @ 8023884
+ push {r4,r5,lr}
+ ldr r5, _080238AC @ =gBattlescriptCurrInstr
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _080238B0 @ =gActiveBank
+ strb r0, [r4]
+ movs r0, 0
+ bl EmitFaintingCry
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080238AC: .4byte gBattlescriptCurrInstr
+_080238B0: .4byte gActiveBank
+ thumb_func_end atk56_8025194
+
+ thumb_func_start atk57_80251C4_flee
+atk57_80251C4_flee: @ 80238B4
+ push {r4,lr}
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r4, _080238E0 @ =gActiveBank
+ strb r0, [r4]
+ ldr r0, _080238E4 @ =gBattleOutcome
+ ldrb r1, [r0]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x37_a
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r1, _080238E8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080238E0: .4byte gActiveBank
+_080238E4: .4byte gBattleOutcome
+_080238E8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk57_80251C4_flee
+
+ thumb_func_start atk58_cmd58
+atk58_cmd58: @ 80238EC
+ push {r4,r5,lr}
+ ldr r5, _08023918 @ =gBattlescriptCurrInstr
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _0802391C @ =gActiveBank
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0x1
+ bl dp01_build_cmdbuf_x06_a
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023918: .4byte gBattlescriptCurrInstr
+_0802391C: .4byte gActiveBank
+ thumb_func_end atk58_cmd58
+
+ thumb_func_start atk59_8025230
+atk59_8025230: @ 8023920
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _0802399C @ =gBattlescriptCurrInstr
+ ldr r2, [r0]
+ ldrb r6, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r6, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r6, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r6, r0
+ ldrb r4, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r4, r0
+ ldr r0, _080239A0 @ =0x02000000
+ ldr r1, _080239A4 @ =0x00016018
+ adds r7, r0, r1
+ ldrb r1, [r7]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080239A8 @ =gPlayerParty
+ adds r0, r1
+ ldrb r1, [r2, 0x9]
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080239AC @ =0x0000fffe
+ cmp r5, r0
+ bne _08023992
+ mov r9, r7
+ mov r8, r5
+ movs r7, 0x64
+_0802397A:
+ mov r3, r9
+ ldrb r0, [r3]
+ muls r0, r7
+ ldr r1, _080239A8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ beq _0802397A
+_08023992:
+ cmp r5, 0
+ bne _080239B0
+ ldr r0, _0802399C @ =gBattlescriptCurrInstr
+ str r4, [r0]
+ b _08023A58
+ .align 2, 0
+_0802399C: .4byte gBattlescriptCurrInstr
+_080239A0: .4byte 0x02000000
+_080239A4: .4byte 0x00016018
+_080239A8: .4byte gPlayerParty
+_080239AC: .4byte 0x0000fffe
+_080239B0:
+ ldr r0, _080239C0 @ =0x0000ffff
+ cmp r5, r0
+ bne _080239C8
+ ldr r1, _080239C4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+ b _08023A58
+ .align 2, 0
+_080239C0: .4byte 0x0000ffff
+_080239C4: .4byte gBattlescriptCurrInstr
+_080239C8:
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r1, _08023A64 @ =gActiveBank
+ strb r0, [r1]
+ ldr r0, _08023A68 @ =gBattlePartyID
+ ldrb r2, [r1]
+ lsls r1, r2, 1
+ adds r1, r0
+ ldr r0, _08023A6C @ =0x02000000
+ ldr r3, _08023A70 @ =0x00016018
+ adds r0, r3
+ ldrh r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08023A08
+ ldr r3, _08023A74 @ =gBattleMons
+ movs r0, 0x58
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08023A08
+ adds r0, r2, r3
+ adds r1, r5, 0
+ bl GiveMoveToBattleMon
+_08023A08:
+ ldr r0, _08023A78 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023A54
+ movs r0, 0x2
+ bl GetBankByPlayerAI
+ ldr r1, _08023A64 @ =gActiveBank
+ strb r0, [r1]
+ ldr r0, _08023A68 @ =gBattlePartyID
+ ldrb r2, [r1]
+ lsls r1, r2, 1
+ adds r1, r0
+ ldr r0, _08023A6C @ =0x02000000
+ ldr r3, _08023A70 @ =0x00016018
+ adds r0, r3
+ ldrh r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08023A54
+ ldr r3, _08023A74 @ =gBattleMons
+ movs r0, 0x58
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08023A54
+ adds r0, r2, r3
+ adds r1, r5, 0
+ bl GiveMoveToBattleMon
+_08023A54:
+ ldr r0, _08023A7C @ =gBattlescriptCurrInstr
+ str r6, [r0]
+_08023A58:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023A64: .4byte gActiveBank
+_08023A68: .4byte gBattlePartyID
+_08023A6C: .4byte 0x02000000
+_08023A70: .4byte 0x00016018
+_08023A74: .4byte gBattleMons
+_08023A78: .4byte gBattleTypeFlags
+_08023A7C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk59_8025230
+
+ thumb_func_start sub_8023A80
+sub_8023A80: @ 8023A80
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x18
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl sub_802BBD4
+ ldr r4, _08023AC8 @ =gUnknown_03004210
+ ldr r1, _08023ACC @ =gUnknown_08400D7A
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x9
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x19
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _08023AD0 @ =0x0000ffff
+ ldr r3, _08023AD4 @ =0x00002d9f
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023AC8: .4byte gUnknown_03004210
+_08023ACC: .4byte gUnknown_08400D7A
+_08023AD0: .4byte 0x0000ffff
+_08023AD4: .4byte 0x00002d9f
+ thumb_func_end sub_8023A80
+
+ thumb_func_start sub_8023AD8
+sub_8023AD8: @ 8023AD8
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x18
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl sub_802BBD4
+ bl DestroyMenuCursor
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8023AD8
+
+ thumb_func_start sub_8023AF8
+sub_8023AF8: @ 8023AF8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r1, _08023B24 @ =gActiveBank
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08023B28 @ =0x02000000
+ ldr r2, _08023B2C @ =0x0001601a
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0x5
+ bls _08023B18
+ b _08023E5C
+_08023B18:
+ lsls r0, 2
+ ldr r1, _08023B30 @ =_08023B34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08023B24: .4byte gActiveBank
+_08023B28: .4byte 0x02000000
+_08023B2C: .4byte 0x0001601a
+_08023B30: .4byte _08023B34
+ .align 2, 0
+_08023B34:
+ .4byte _08023B4C
+ .4byte _08023B74
+ .4byte _08023C30
+ .4byte _08023C84
+ .4byte _08023E38
+ .4byte _08023E4C
+_08023B4C:
+ bl sub_8023A80
+ ldr r1, _08023B68 @ =0x02000000
+ ldr r0, _08023B6C @ =0x0001601a
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, _08023B70 @ =gBattleCommunication
+ strb r2, [r0, 0x1]
+ bl sub_802BC6C
+ b _08023E5C
+ .align 2, 0
+_08023B68: .4byte 0x02000000
+_08023B6C: .4byte 0x0001601a
+_08023B70: .4byte gBattleCommunication
+_08023B74:
+ ldr r0, _08023BFC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08023B9A
+ ldr r4, _08023C00 @ =gBattleCommunication
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08023B9A
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08023B9A:
+ ldr r0, _08023BFC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08023BC0
+ ldr r4, _08023C00 @ =gBattleCommunication
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08023BC0
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08023BC0:
+ ldr r0, _08023BFC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023C0C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08023C00 @ =gBattleCommunication
+ ldrb r4, [r0, 0x1]
+ cmp r4, 0
+ bne _08023C1C
+ bl sub_8023AD8
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08023C04 @ =0x02000000
+ ldr r2, _08023C08 @ =0x0001601a
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08023E5A
+ .align 2, 0
+_08023BFC: .4byte gMain
+_08023C00: .4byte gBattleCommunication
+_08023C04: .4byte 0x02000000
+_08023C08: .4byte 0x0001601a
+_08023C0C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08023C16
+ b _08023E5C
+_08023C16:
+ movs r0, 0x5
+ bl PlaySE
+_08023C1C:
+ ldr r0, _08023C28 @ =0x02000000
+ ldr r1, _08023C2C @ =0x0001601a
+ adds r0, r1
+ movs r1, 0x4
+ strb r1, [r0]
+ b _08023E5C
+ .align 2, 0
+_08023C28: .4byte 0x02000000
+_08023C2C: .4byte 0x0001601a
+_08023C30:
+ ldr r0, _08023C68 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08023C3E
+ b _08023E5C
+_08023C3E:
+ ldr r0, _08023C6C @ =gPlayerParty
+ ldr r2, _08023C70 @ =0x00016018
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ ldr r2, _08023C74 @ =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08023C78 @ =ReshowBattleScreenAfterMenu
+ ldr r4, _08023C7C @ =word_2024E82
+ ldrh r4, [r4]
+ str r4, [sp]
+ bl sub_809D9F0
+ ldr r0, _08023C80 @ =0x0001601a
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08023E5A
+ .align 2, 0
+_08023C68: .4byte gPaletteFade
+_08023C6C: .4byte gPlayerParty
+_08023C70: .4byte 0x00016018
+_08023C74: .4byte gPlayerPartyCount
+_08023C78: .4byte ReshowBattleScreenAfterMenu
+_08023C7C: .4byte word_2024E82
+_08023C80: .4byte 0x0001601a
+_08023C84:
+ ldr r0, _08023CB4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08023C92
+ b _08023E5C
+_08023C92:
+ ldr r0, _08023CB8 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _08023CBC @ =sub_800F808
+ cmp r1, r0
+ beq _08023C9E
+ b _08023E5C
+_08023C9E:
+ bl sub_809FA30
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bne _08023CC8
+ ldr r0, _08023CC0 @ =0x02000000
+ ldr r1, _08023CC4 @ =0x0001601a
+ adds r0, r1
+ strb r5, [r0]
+ b _08023E5C
+ .align 2, 0
+_08023CB4: .4byte gPaletteFade
+_08023CB8: .4byte gMain
+_08023CBC: .4byte sub_800F808
+_08023CC0: .4byte 0x02000000
+_08023CC4: .4byte 0x0001601a
+_08023CC8:
+ ldr r2, _08023D08 @ =0x02000000
+ mov r9, r2
+ ldr r6, _08023D0C @ =0x00016018
+ add r6, r9
+ ldrb r0, [r6]
+ movs r1, 0x64
+ mov r8, r1
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r7, _08023D10 @ =gPlayerParty
+ adds r0, r7
+ adds r1, r5, 0
+ adds r1, 0xD
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl IsHMMove2
+ cmp r0, 0
+ beq _08023D20
+ ldr r0, _08023D14 @ =0x0000013f
+ ldr r1, _08023D18 @ =gActiveBank
+ ldrb r1, [r1]
+ bl PrepareStringBattle
+ ldr r1, _08023D1C @ =0x0001601a
+ add r1, r9
+ movs r0, 0x5
+ b _08023E5A
+ .align 2, 0
+_08023D08: .4byte 0x02000000
+_08023D0C: .4byte 0x00016018
+_08023D10: .4byte gPlayerParty
+_08023D14: .4byte 0x0000013f
+_08023D18: .4byte gActiveBank
+_08023D1C: .4byte 0x0001601a
+_08023D20:
+ ldr r3, _08023E10 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ ldr r1, _08023E14 @ =gBattleTextBuff2
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r4, [r1, 0x2]
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ adds r1, r5, 0
+ bl RemoveMonPPBonus
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ ldr r7, _08023E18 @ =word_2024E82
+ ldrh r1, [r7]
+ adds r2, r5, 0
+ bl SetMonMoveSlot
+ ldr r0, _08023E1C @ =gBattlePartyID
+ ldrh r0, [r0]
+ ldrb r6, [r6]
+ cmp r0, r6
+ bne _08023DB0
+ ldr r4, _08023E20 @ =gBattleMons
+ ldr r0, [r4, 0x50]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08023DB0
+ ldr r0, _08023E24 @ =gDisableStructs
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _08023E28 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08023DB0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl RemoveBattleMonPPBonus
+ ldrh r1, [r7]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl SetBattleMonMoveSlot
+_08023DB0:
+ ldr r0, _08023E2C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023E5C
+ ldr r0, _08023E1C @ =gBattlePartyID
+ ldr r1, _08023E30 @ =0x02000000
+ ldr r2, _08023E34 @ =0x00016018
+ adds r1, r2
+ ldrh r0, [r0, 0x4]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08023E5C
+ ldr r4, _08023E20 @ =gBattleMons
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08023E5C
+ ldr r0, _08023E24 @ =gDisableStructs
+ adds r0, 0x50
+ ldrb r1, [r0]
+ lsrs r1, 4
+ ldr r2, _08023E28 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08023E5C
+ adds r4, 0xB0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl RemoveBattleMonPPBonus
+ ldr r0, _08023E18 @ =word_2024E82
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl SetBattleMonMoveSlot
+ b _08023E5C
+ .align 2, 0
+_08023E10: .4byte gBattlescriptCurrInstr
+_08023E14: .4byte gBattleTextBuff2
+_08023E18: .4byte word_2024E82
+_08023E1C: .4byte gBattlePartyID
+_08023E20: .4byte gBattleMons
+_08023E24: .4byte gDisableStructs
+_08023E28: .4byte gBitTable
+_08023E2C: .4byte gBattleTypeFlags
+_08023E30: .4byte 0x02000000
+_08023E34: .4byte 0x00016018
+_08023E38:
+ bl sub_8023AD8
+ ldr r1, _08023E48 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08023E5C
+ .align 2, 0
+_08023E48: .4byte gBattlescriptCurrInstr
+_08023E4C:
+ ldr r0, _08023E6C @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08023E5C
+ ldr r2, _08023E70 @ =0x0001601a
+ adds r1, r5, r2
+ movs r0, 0x2
+_08023E5A:
+ strb r0, [r1]
+_08023E5C:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023E6C: .4byte gBattleExecBuffer
+_08023E70: .4byte 0x0001601a
+ thumb_func_end sub_8023AF8
+
+ thumb_func_start atk5B_80256E0
+atk5B_80256E0: @ 8023E74
+ push {r4,r5,lr}
+ ldr r0, _08023E88 @ =0x02000000
+ ldr r1, _08023E8C @ =0x0001601a
+ adds r5, r0, r1
+ ldrb r4, [r5]
+ cmp r4, 0
+ beq _08023E90
+ cmp r4, 0x1
+ beq _08023EA8
+ b _08023F78
+ .align 2, 0
+_08023E88: .4byte 0x02000000
+_08023E8C: .4byte 0x0001601a
+_08023E90:
+ bl sub_8023A80
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldr r0, _08023EA4 @ =gBattleCommunication
+ strb r4, [r0, 0x1]
+ bl sub_802BC6C
+ b _08023F78
+ .align 2, 0
+_08023EA4: .4byte gBattleCommunication
+_08023EA8:
+ ldr r0, _08023F2C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08023ECE
+ ldr r4, _08023F30 @ =gBattleCommunication
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08023ECE
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08023ECE:
+ ldr r0, _08023F2C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08023EF4
+ ldr r4, _08023F30 @ =gBattleCommunication
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08023EF4
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08023EF4:
+ ldr r0, _08023F2C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023F4C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08023F30 @ =gBattleCommunication
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _08023F38
+ ldr r3, _08023F34 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08023F40
+ .align 2, 0
+_08023F2C: .4byte gMain
+_08023F30: .4byte gBattleCommunication
+_08023F34: .4byte gBattlescriptCurrInstr
+_08023F38:
+ ldr r1, _08023F48 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08023F40:
+ bl sub_8023AD8
+ b _08023F78
+ .align 2, 0
+_08023F48: .4byte gBattlescriptCurrInstr
+_08023F4C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08023F78
+ movs r0, 0x5
+ bl PlaySE
+ ldr r3, _08023F80 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ bl sub_8023AD8
+_08023F78:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023F80: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk5B_80256E0
+
+ thumb_func_start atk5C_cmd5c
+atk5C_cmd5c: @ 8023F84
+ push {r4,lr}
+ ldr r4, _08023FF0 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r2, _08023FF4 @ =gActiveBank
+ strb r0, [r2]
+ ldr r0, _08023FF8 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _08024008
+ ldr r0, _08023FFC @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023FD6
+ ldr r1, _08024000 @ =gBattleMons
+ ldrb r2, [r2]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _08023FD6
+ ldr r0, _08024004 @ =gDisableStructs
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ bne _08024008
+_08023FD6:
+ movs r0, 0
+ bl EmitHitAnimation
+ ldr r0, _08023FF4 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ ldr r1, _08023FF0 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ b _0802400E
+ .align 2, 0
+_08023FF0: .4byte gBattlescriptCurrInstr
+_08023FF4: .4byte gActiveBank
+_08023FF8: .4byte gBattleMoveFlags
+_08023FFC: .4byte gHitMarker
+_08024000: .4byte gBattleMons
+_08024004: .4byte gDisableStructs
+_08024008:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+_0802400E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end atk5C_cmd5c
+
+ thumb_func_start sub_8024014
+sub_8024014: @ 8024014
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r0, _08024048 @ =gTrainerBattleOpponent
+ ldrh r2, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ cmp r2, r1
+ bne _08024058
+ ldr r0, _0802404C @ =0x02017000
+ adds r1, r0, 0
+ adds r1, 0x94
+ ldrb r2, [r1]
+ ldr r1, _08024050 @ =0xfffff056
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r2, 0
+ muls r4, r0
+ ldr r0, _08024054 @ =gSaveBlock1 + 0x490
+ mov r8, r0
+ b _08024140
+ .align 2, 0
+_08024048: .4byte gTrainerBattleOpponent
+_0802404C: .4byte 0x02017000
+_08024050: .4byte 0xfffff056
+_08024054: .4byte gSaveBlock1 + 0x490
+_08024058:
+ ldr r2, _08024074 @ =gTrainers
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r3, r0, 3
+ adds r4, r3, r2
+ ldrb r1, [r4]
+ cmp r1, 0x1
+ beq _080240AE
+ cmp r1, 0x1
+ bgt _08024078
+ cmp r1, 0
+ beq _08024082
+ b _080240C4
+ .align 2, 0
+_08024074: .4byte gTrainers
+_08024078:
+ cmp r1, 0x2
+ beq _08024098
+ cmp r1, 0x3
+ beq _080240AE
+ b _080240C4
+_08024082:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r3, r0
+ ldr r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ subs r0, 0x8
+ b _080240C2
+_08024098:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r3, r0
+ ldr r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ subs r0, 0x8
+ b _080240C2
+_080240AE:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r3, r0
+ ldr r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ subs r0, 0x10
+_080240C2:
+ ldrb r5, [r0, 0x2]
+_080240C4:
+ ldr r0, _08024120 @ =gTrainerMoney
+ lsls r1, r6, 2
+ adds r3, r1, r0
+ ldrb r1, [r3]
+ mov r12, r0
+ lsls r4, r5, 2
+ ldr r5, _08024124 @ =0x02000000
+ ldr r7, _08024128 @ =gBattleTypeFlags
+ ldr r0, _0802412C @ =gSaveBlock1 + 0x490
+ mov r8, r0
+ cmp r1, 0xFF
+ beq _080240FE
+ ldr r2, _08024130 @ =gTrainers
+ ldr r0, _08024134 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r2, [r0, 0x1]
+ adds r1, r3, 0
+_080240EE:
+ ldrb r0, [r1]
+ cmp r0, r2
+ beq _080240FE
+ adds r1, 0x4
+ adds r6, 0x1
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080240EE
+_080240FE:
+ ldr r1, _08024138 @ =0x00016056
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r3, r4, 0
+ muls r3, r0
+ lsls r0, r6, 2
+ add r0, r12
+ ldrb r2, [r0, 0x1]
+ ldrh r1, [r7]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802413C
+ lsls r0, r2, 1
+ adds r4, r3, 0
+ muls r4, r0
+ b _08024140
+ .align 2, 0
+_08024120: .4byte gTrainerMoney
+_08024124: .4byte 0x02000000
+_08024128: .4byte gBattleTypeFlags
+_0802412C: .4byte gSaveBlock1 + 0x490
+_08024130: .4byte gTrainers
+_08024134: .4byte gTrainerBattleOpponent
+_08024138: .4byte 0x00016056
+_0802413C:
+ adds r4, r3, 0
+ muls r4, r2
+_08024140:
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_80B79B8
+ ldr r1, _0802418C @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x4
+ strb r0, [r1, 0x2]
+ movs r0, 0x5
+ strb r0, [r1, 0x3]
+ strb r4, [r1, 0x4]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r4
+ lsrs r0, 8
+ strb r0, [r1, 0x5]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r4
+ lsrs r0, 16
+ strb r0, [r1, 0x6]
+ lsrs r0, r4, 24
+ strb r0, [r1, 0x7]
+ movs r0, 0xFF
+ strb r0, [r1, 0x8]
+ ldr r1, _08024190 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802418C: .4byte gBattleTextBuff1
+_08024190: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8024014
+
+ thumb_func_start atk5E_8025A70
+atk5E_8025A70: @ 8024194
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _080241B8 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r6, _080241BC @ =gActiveBank
+ strb r0, [r6]
+ ldr r5, _080241C0 @ =gBattleCommunication
+ ldrb r0, [r5]
+ mov r8, r4
+ cmp r0, 0
+ beq _080241C4
+ cmp r0, 0x1
+ beq _080241DC
+ b _08024230
+ .align 2, 0
+_080241B8: .4byte gBattlescriptCurrInstr
+_080241BC: .4byte gActiveBank
+_080241C0: .4byte gBattleCommunication
+_080241C4:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl EmitGetAttributes
+ ldrb r0, [r6]
+ bl MarkBufferBankForExecution
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _08024230
+_080241DC:
+ ldr r0, _0802423C @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08024230
+ ldrb r0, [r6]
+ lsls r0, 9
+ ldr r1, _08024240 @ =gUnknown_02024264
+ adds r0, r1
+ mov r12, r0
+ movs r2, 0
+ adds r4, r6, 0
+ movs r5, 0x58
+ ldr r6, _08024244 @ =gUnknown_02024AA4
+ adds r7, r6, 0
+ subs r7, 0x18
+ mov r3, r12
+ adds r3, 0xC
+_080241FE:
+ lsls r1, r2, 1
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r1, r0
+ adds r1, r7
+ ldrh r0, [r3]
+ strh r0, [r1]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r2, r1
+ adds r1, r6
+ mov r0, r12
+ adds r0, 0x24
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r3, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080241FE
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_08024230:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802423C: .4byte gBattleExecBuffer
+_08024240: .4byte gUnknown_02024264
+_08024244: .4byte gUnknown_02024AA4
+ thumb_func_end atk5E_8025A70
+
+ thumb_func_start atk5F_8025B24
+atk5F_8025B24: @ 8024248
+ push {lr}
+ ldr r0, _08024270 @ =gActiveBank
+ ldr r2, _08024274 @ =gBankAttacker
+ ldrb r3, [r2]
+ strb r3, [r0]
+ ldr r1, _08024278 @ =gBankTarget
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+ ldr r2, _0802427C @ =gHitMarker
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08024284
+ ldr r0, _08024280 @ =0xffffefff
+ ands r1, r0
+ b _08024286
+ .align 2, 0
+_08024270: .4byte gActiveBank
+_08024274: .4byte gBankAttacker
+_08024278: .4byte gBankTarget
+_0802427C: .4byte gHitMarker
+_08024280: .4byte 0xffffefff
+_08024284:
+ orrs r1, r3
+_08024286:
+ str r1, [r2]
+ ldr r1, _08024294 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024294: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk5F_8025B24
+
+ thumb_func_start atk60_cmd60
+atk60_cmd60: @ 8024298
+ push {lr}
+ ldr r0, _080242C0 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080242B2
+ ldr r0, _080242C4 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl IncrementGameStat
+_080242B2:
+ ldr r1, _080242C4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080242C0: .4byte gBankAttacker
+_080242C4: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk60_cmd60
+
+ thumb_func_start atk61_8025BA4
+atk61_8025BA4: @ 80242C8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x30
+ ldr r0, _0802432C @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802437C
+ ldr r0, _08024330 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08024334 @ =gActiveBank
+ strb r0, [r1]
+ ldrb r0, [r1]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r1, _08024338 @ =gEnemyParty
+ mov r8, r1
+ cmp r0, 0
+ bne _080242FA
+ ldr r0, _0802433C @ =gPlayerParty
+ mov r8, r0
+_080242FA:
+ movs r7, 0
+ add r6, sp, 0x4
+ mov r5, sp
+_08024300:
+ movs r0, 0x64
+ muls r0, r7
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08024324
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _08024344
+_08024324:
+ ldr r0, _08024340 @ =0x0000ffff
+ strh r0, [r5]
+ movs r0, 0
+ b _08024356
+ .align 2, 0
+_0802432C: .4byte gBattleExecBuffer
+_08024330: .4byte gBattlescriptCurrInstr
+_08024334: .4byte gActiveBank
+_08024338: .4byte gEnemyParty
+_0802433C: .4byte gPlayerParty
+_08024340: .4byte 0x0000ffff
+_08024344:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+_08024356:
+ str r0, [r6]
+ adds r6, 0x8
+ adds r5, 0x8
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08024300
+ movs r0, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl dp01_build_cmdbuf_x30_TODO
+ ldr r0, _08024388 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ ldr r1, _0802438C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_0802437C:
+ add sp, 0x30
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024388: .4byte gActiveBank
+_0802438C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk61_8025BA4
+
+ thumb_func_start atk62_08025C6C
+atk62_08025C6C: @ 8024390
+ push {r4,r5,lr}
+ ldr r5, _080243B8 @ =gBattlescriptCurrInstr
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _080243BC @ =gActiveBank
+ strb r0, [r4]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x31_31_31_31
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080243B8: .4byte gBattlescriptCurrInstr
+_080243BC: .4byte gActiveBank
+ thumb_func_end atk62_08025C6C
+
+ thumb_func_start atk63_jumptoattack
+atk63_jumptoattack: @ 80243C0
+ push {r4,lr}
+ ldr r0, _080243D8 @ =gBattlescriptCurrInstr
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _080243E4
+ ldr r0, _080243DC @ =gCurrentMove
+ ldr r1, _080243E0 @ =gUnknown_02024BEA
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _080243F2
+ .align 2, 0
+_080243D8: .4byte gBattlescriptCurrInstr
+_080243DC: .4byte gCurrentMove
+_080243E0: .4byte gUnknown_02024BEA
+_080243E4:
+ ldr r2, _08024410 @ =gUnknown_02024BE8
+ ldr r1, _08024414 @ =gCurrentMove
+ ldr r0, _08024418 @ =gUnknown_02024BEA
+ ldrh r0, [r0]
+ strh r0, [r1]
+ strh r0, [r2]
+ adds r0, r1, 0
+_080243F2:
+ ldr r3, _0802441C @ =gUnknown_081D6BBC
+ ldr r2, _08024420 @ =gBattleMoves
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024410: .4byte gUnknown_02024BE8
+_08024414: .4byte gCurrentMove
+_08024418: .4byte gUnknown_02024BEA
+_0802441C: .4byte gUnknown_081D6BBC
+_08024420: .4byte gBattleMoves
+ thumb_func_end atk63_jumptoattack
+
+ thumb_func_start atk64_statusanimation
+atk64_statusanimation: @ 8024424
+ push {r4,lr}
+ ldr r0, _08024494 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802448C
+ ldr r0, _08024498 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _0802449C @ =gActiveBank
+ strb r0, [r4]
+ ldr r1, _080244A0 @ =gStatuses3
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080244A4 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _08024484
+ ldr r0, _080244A8 @ =gDisableStructs
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ bne _08024484
+ ldr r0, _080244AC @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08024484
+ ldr r1, _080244B0 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r2, [r0]
+ movs r0, 0
+ movs r1, 0
+ bl EmitStatusAnimation
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_08024484:
+ ldr r1, _08024498 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_0802448C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024494: .4byte gBattleExecBuffer
+_08024498: .4byte gBattlescriptCurrInstr
+_0802449C: .4byte gActiveBank
+_080244A0: .4byte gStatuses3
+_080244A4: .4byte 0x000400c0
+_080244A8: .4byte gDisableStructs
+_080244AC: .4byte gHitMarker
+_080244B0: .4byte gBattleMons
+ thumb_func_end atk64_statusanimation
+
+ thumb_func_start atk65_8025D90
+atk65_8025D90: @ 80244B4
+ push {r4,r5,lr}
+ ldr r0, _0802453C @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08024534
+ ldr r4, _08024540 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _08024544 @ =gActiveBank
+ strb r0, [r5]
+ ldr r1, [r4]
+ ldrb r3, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ orrs r3, r0
+ ldr r1, _08024548 @ =gStatuses3
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0802454C @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802452C
+ ldr r0, _08024550 @ =gDisableStructs
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ bne _0802452C
+ ldr r0, _08024554 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802452C
+ ldr r1, _08024558 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r2, [r0]
+ ands r2, r3
+ movs r0, 0
+ movs r1, 0x1
+ bl EmitStatusAnimation
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+_0802452C:
+ ldr r1, _08024540 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+_08024534:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802453C: .4byte gBattleExecBuffer
+_08024540: .4byte gBattlescriptCurrInstr
+_08024544: .4byte gActiveBank
+_08024548: .4byte gStatuses3
+_0802454C: .4byte 0x000400c0
+_08024550: .4byte gDisableStructs
+_08024554: .4byte gHitMarker
+_08024558: .4byte gBattleMons
+ thumb_func_end atk65_8025D90
+
+ thumb_func_start atk66_8025E38
+atk66_8025E38: @ 802455C
+ push {r4,r5,lr}
+ ldr r0, _080245D4 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080245CE
+ ldr r4, _080245D8 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _080245DC @ =gActiveBank
+ strb r0, [r5]
+ ldr r4, [r4]
+ ldrb r2, [r4, 0x3]
+ ldrb r0, [r4, 0x4]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r4, 0x5]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r4, 0x6]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _080245E0 @ =gStatuses3
+ ldrb r3, [r5]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080245E4 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _080245C6
+ ldr r0, _080245E8 @ =gDisableStructs
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ bne _080245C6
+ ldr r0, _080245EC @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080245C6
+ ldrb r1, [r4, 0x2]
+ movs r0, 0
+ bl EmitStatusAnimation
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+_080245C6:
+ ldr r1, _080245D8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x7
+ str r0, [r1]
+_080245CE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080245D4: .4byte gBattleExecBuffer
+_080245D8: .4byte gBattlescriptCurrInstr
+_080245DC: .4byte gActiveBank
+_080245E0: .4byte gStatuses3
+_080245E4: .4byte 0x000400c0
+_080245E8: .4byte gDisableStructs
+_080245EC: .4byte gHitMarker
+ thumb_func_end atk66_8025E38
+
+ thumb_func_start atk67_8025ECC
+atk67_8025ECC: @ 80245F0
+ push {r4,r5,lr}
+ ldr r5, _08024600 @ =gBattleCommunication
+ ldrb r4, [r5]
+ cmp r4, 0
+ beq _08024604
+ cmp r4, 0x1
+ beq _08024616
+ b _08024696
+ .align 2, 0
+_08024600: .4byte gBattleCommunication
+_08024604:
+ bl sub_8023A80
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ strb r4, [r5, 0x1]
+ bl sub_802BC6C
+ b _08024696
+_08024616:
+ ldr r0, _08024674 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802463A
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0
+ beq _0802463A
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r5, 0x1]
+ bl sub_802BC6C
+_0802463A:
+ ldr r0, _08024674 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08024660
+ ldr r4, _08024678 @ =gBattleCommunication
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08024660
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08024660:
+ ldr r0, _08024674 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802467C
+ ldr r1, _08024678 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ b _08024684
+ .align 2, 0
+_08024674: .4byte gMain
+_08024678: .4byte gBattleCommunication
+_0802467C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08024696
+_08024684:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8023AD8
+ ldr r1, _0802469C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_08024696:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802469C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk67_8025ECC
+
+ thumb_func_start sub_80246A0
+sub_80246A0: @ 80246A0
+ push {r4,r5,lr}
+ movs r1, 0
+ ldr r2, _080246CC @ =gNoOfAllBanks
+ ldr r5, _080246D0 @ =gBattlescriptCurrInstr
+ ldrb r0, [r2]
+ cmp r1, r0
+ bge _080246BE
+ ldr r4, _080246D4 @ =gUnknown_02024A76
+ movs r3, 0xC
+_080246B2:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r1, 0x1
+ ldrb r0, [r2]
+ cmp r1, r0
+ blt _080246B2
+_080246BE:
+ ldr r0, [r5]
+ adds r0, 0x1
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080246CC: .4byte gNoOfAllBanks
+_080246D0: .4byte gBattlescriptCurrInstr
+_080246D4: .4byte gUnknown_02024A76
+ thumb_func_end sub_80246A0
+
+ thumb_func_start atk69_8025FE0
+atk69_8025FE0: @ 80246D8
+ push {r4-r7,lr}
+ ldr r7, _08024700 @ =gBattleMons
+ ldr r6, _08024704 @ =gBankTarget
+ ldrb r2, [r6]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r0, r7
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _0802470C
+ ldr r1, _08024708 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x7]
+ ldrb r6, [r0, 0x1A]
+ b _08024726
+ .align 2, 0
+_08024700: .4byte gBattleMons
+_08024704: .4byte gBankTarget
+_08024708: .4byte gEnigmaBerries
+_0802470C:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08024726:
+ ldr r1, _080247E8 @ =gStringBank
+ ldr r5, _080247EC @ =gBankTarget
+ ldrb r0, [r5]
+ strb r0, [r1]
+ cmp r4, 0x27
+ bne _08024764
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcs _08024764
+ ldrb r0, [r5]
+ movs r1, 0x27
+ bl sub_81074F8
+ ldr r2, _080247F0 @ =gSpecialStatuses
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_08024764:
+ ldr r2, _080247F4 @ =gBattleMons
+ ldr r3, _080247EC @ =gBankTarget
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 17
+ ands r1, r0
+ adds r5, r2, 0
+ cmp r1, 0
+ bne _08024834
+ ldr r2, _080247F8 @ =gBattleMoves
+ ldr r0, _080247FC @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x65
+ beq _080247B6
+ ldr r0, _08024800 @ =gProtectStructs
+ lsls r1, r4, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 30
+ cmp r0, 0
+ blt _080247B6
+ ldr r0, _080247F0 @ =gSpecialStatuses
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08024834
+_080247B6:
+ ldrb r0, [r3]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r5
+ ldrh r1, [r0, 0x28]
+ ldr r2, _08024804 @ =gBattleMoveDamage
+ ldr r0, [r2]
+ cmp r1, r0
+ bgt _08024834
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldr r1, _08024800 @ =gProtectStructs
+ ldrb r3, [r3]
+ lsls r0, r3, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bge _0802480C
+ ldr r0, _08024808 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08024834
+ .align 2, 0
+_080247E8: .4byte gStringBank
+_080247EC: .4byte gBankTarget
+_080247F0: .4byte gSpecialStatuses
+_080247F4: .4byte gBattleMons
+_080247F8: .4byte gBattleMoves
+_080247FC: .4byte gCurrentMove
+_08024800: .4byte gProtectStructs
+_08024804: .4byte gBattleMoveDamage
+_08024808: .4byte gBattleMoveFlags
+_0802480C:
+ ldr r0, _08024844 @ =gSpecialStatuses
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08024834
+ ldr r2, _08024848 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0802484C @ =gLastUsedItem
+ adds r0, r3, 0
+ muls r0, r4
+ adds r0, r5
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+_08024834:
+ ldr r1, _08024850 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024844: .4byte gSpecialStatuses
+_08024848: .4byte gBattleMoveFlags
+_0802484C: .4byte gLastUsedItem
+_08024850: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk69_8025FE0
+
+ thumb_func_start atk6A_stash_item_for_side
+atk6A_stash_item_for_side: @ 8024854
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _080248B0 @ =gBattlescriptCurrInstr
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _080248B4 @ =gActiveBank
+ strb r0, [r5]
+ ldrb r4, [r5]
+ lsls r1, r4, 1
+ ldr r0, _080248B8 @ =0x020160cc
+ adds r1, r0
+ ldr r2, _080248BC @ =gBattleMons
+ movs r3, 0x58
+ adds r0, r4, 0
+ muls r0, r3
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r2, 0x2E
+ adds r0, r2
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl EmitSetAttributes
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+ ldr r0, [r6]
+ adds r0, 0x2
+ str r0, [r6]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080248B0: .4byte gBattlescriptCurrInstr
+_080248B4: .4byte gActiveBank
+_080248B8: .4byte 0x020160cc
+_080248BC: .4byte gBattleMons
+ thumb_func_end atk6A_stash_item_for_side
+
+ thumb_func_start sub_80248C0
+sub_80248C0: @ 80248C0
+ ldr r1, _080248EC @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ ldr r2, _080248F0 @ =gBankAttacker
+ ldrb r0, [r2]
+ strb r0, [r1, 0x2]
+ ldr r3, _080248F4 @ =gBattlePartyID
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _080248F8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080248EC: .4byte gBattleTextBuff1
+_080248F0: .4byte gBankAttacker
+_080248F4: .4byte gBattlePartyID
+_080248F8: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_80248C0
+
+ thumb_func_start sub_80248FC
+sub_80248FC: @ 80248FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r1, 0
+ movs r7, 0
+ ldr r0, _08024928 @ =0x02000000
+ mov r10, r0
+ ldr r4, _0802492C @ =0x0001609c
+ add r4, r10
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _0802491C
+ b _08024AF4
+_0802491C:
+ cmp r0, 0x1
+ bgt _08024930
+ cmp r0, 0
+ beq _0802493E
+ b _08024C38
+ .align 2, 0
+_08024928: .4byte 0x02000000
+_0802492C: .4byte 0x0001609c
+_08024930:
+ cmp r0, 0x2
+ bne _08024936
+ b _08024C04
+_08024936:
+ cmp r0, 0x3
+ bne _0802493C
+ b _08024C30
+_0802493C:
+ b _08024C38
+_0802493E:
+ str r1, [sp]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl sub_802BBD4
+ ldr r0, _0802499C @ =gStringVar4
+ ldr r1, _080249A0 @ =gUnknown_08400D9F
+ bl StringCopy
+ adds r5, r0, 0
+ movs r1, 0
+ mov r8, r1
+_0802495A:
+ movs r2, 0
+ mov r9, r2
+ ldr r0, _080249A4 @ =gUnknown_0840165C
+ mov r1, r8
+ lsls r4, r1, 2
+ adds r0, r4, r0
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl StringAppend
+ adds r5, r0, 0
+ ldr r0, _080249A8 @ =0x02000000
+ ldr r2, _080249AC @ =0x00016018
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080249B0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _080249B4 @ =gLevelUpStatBoxStats
+ add r1, r8
+ ldrb r1, [r1]
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r0, r8
+ cmp r0, 0x5
+ bhi _08024A1A
+ ldr r0, _080249B8 @ =_080249BC
+ adds r0, r4, r0
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802499C: .4byte gStringVar4
+_080249A0: .4byte gUnknown_08400D9F
+_080249A4: .4byte gUnknown_0840165C
+_080249A8: .4byte 0x02000000
+_080249AC: .4byte 0x00016018
+_080249B0: .4byte gPlayerParty
+_080249B4: .4byte gLevelUpStatBoxStats
+_080249B8: .4byte _080249BC
+ .align 2, 0
+_080249BC:
+ .4byte _080249D4
+ .4byte _080249E0
+ .4byte _080249EC
+ .4byte _080249F8
+ .4byte _08024A04
+ .4byte _08024A10
+_080249D4:
+ ldr r0, _080249DC @ =0x02017180
+ ldrh r0, [r0]
+ b _08024A14
+ .align 2, 0
+_080249DC: .4byte 0x02017180
+_080249E0:
+ ldr r0, _080249E8 @ =0x02017180
+ ldrh r0, [r0, 0x8]
+ b _08024A14
+ .align 2, 0
+_080249E8: .4byte 0x02017180
+_080249EC:
+ ldr r0, _080249F4 @ =0x02017180
+ ldrh r0, [r0, 0x2]
+ b _08024A14
+ .align 2, 0
+_080249F4: .4byte 0x02017180
+_080249F8:
+ ldr r0, _08024A00 @ =0x02017180
+ ldrh r0, [r0, 0xA]
+ b _08024A14
+ .align 2, 0
+_08024A00: .4byte 0x02017180
+_08024A04:
+ ldr r0, _08024A0C @ =0x02017180
+ ldrh r0, [r0, 0x4]
+ b _08024A14
+ .align 2, 0
+_08024A0C: .4byte 0x02017180
+_08024A10:
+ ldr r0, _08024A54 @ =0x02017180
+ ldrh r0, [r0, 0x6]
+_08024A14:
+ subs r0, r1, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+_08024A1A:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08024A2C
+ negs r0, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r1, 0x1
+ add r9, r1
+_08024A2C:
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r1, 0x1
+ mov r2, r8
+ ands r1, r2
+ lsls r0, r1, 3
+ adds r0, r1
+ adds r0, 0x5
+ lsls r0, 3
+ adds r0, 0x6
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ mov r0, r9
+ cmp r0, 0
+ beq _08024A5C
+ ldr r1, _08024A58 @ =gUnknown_08400DAC
+ b _08024A5E
+ .align 2, 0
+_08024A54: .4byte 0x02017180
+_08024A58: .4byte gUnknown_08400DAC
+_08024A5C:
+ ldr r1, _08024AA4 @ =gUnknown_08400DAA
+_08024A5E:
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+ movs r6, 0xFC
+ strb r6, [r5]
+ movs r4, 0x14
+ strb r4, [r5, 0x1]
+ movs r0, 0x6
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r5, r0, 0
+ strb r6, [r5]
+ strb r4, [r5, 0x1]
+ movs r0, 0
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ movs r0, 0x1
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08024AA8
+ movs r0, 0xFE
+ strb r0, [r5]
+ movs r0, 0xFF
+ strb r0, [r5, 0x1]
+ adds r5, 0x1
+ b _08024AB8
+ .align 2, 0
+_08024AA4: .4byte gUnknown_08400DAA
+_08024AA8:
+ strb r6, [r5]
+ movs r0, 0x11
+ strb r0, [r5, 0x1]
+ movs r0, 0x8
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ movs r0, 0xFF
+ strb r0, [r5]
+_08024AB8:
+ movs r2, 0x1
+ add r8, r2
+ mov r0, r8
+ cmp r0, 0x5
+ bgt _08024AC4
+ b _0802495A
+_08024AC4:
+ ldr r4, _08024AE4 @ =gUnknown_03004210
+ ldr r1, _08024AE8 @ =gStringVar4
+ adds r2, 0xFF
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0xC
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _08024AEC @ =0x02000000
+ ldr r2, _08024AF0 @ =0x0001609c
+ adds r1, r2
+ b _08024BEA
+ .align 2, 0
+_08024AE4: .4byte gUnknown_03004210
+_08024AE8: .4byte gStringVar4
+_08024AEC: .4byte 0x02000000
+_08024AF0: .4byte 0x0001609c
+_08024AF4:
+ ldr r0, _08024B94 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ bne _08024AFE
+ b _08024C38
+_08024AFE:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08024B98 @ =gStringVar4
+ ldr r1, _08024B9C @ =gUnknown_08400D9F
+ bl StringCopy
+ adds r5, r0, 0
+ movs r0, 0
+ mov r8, r0
+ mov r9, r0
+ movs r6, 0xFC
+ movs r7, 0x14
+ ldr r1, _08024BA0 @ =0x00016018
+ add r10, r1
+_08024B1C:
+ ldr r1, _08024BA4 @ =gUnknown_0840165C
+ mov r2, r8
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl StringAppend
+ adds r5, r0, 0
+ mov r0, r10
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08024BA8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08024BAC @ =gLevelUpStatBoxStats
+ add r1, r8
+ ldrb r1, [r1]
+ bl GetMonData
+ adds r1, r0, 0
+ strb r6, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r4, 0x1
+ mov r2, r8
+ ands r4, r2
+ lsls r0, r4, 3
+ adds r0, r4
+ adds r0, 0x5
+ lsls r0, 3
+ adds r0, 0x6
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ strb r6, [r5]
+ strb r7, [r5, 0x1]
+ movs r0, 0x6
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r5, r0, 0
+ strb r6, [r5]
+ strb r7, [r5, 0x1]
+ mov r0, r9
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ cmp r4, 0
+ beq _08024BB0
+ movs r0, 0xFE
+ strb r0, [r5]
+ movs r0, 0xFF
+ strb r0, [r5, 0x1]
+ adds r5, 0x1
+ b _08024BC0
+ .align 2, 0
+_08024B94: .4byte gMain
+_08024B98: .4byte gStringVar4
+_08024B9C: .4byte gUnknown_08400D9F
+_08024BA0: .4byte 0x00016018
+_08024BA4: .4byte gUnknown_0840165C
+_08024BA8: .4byte gPlayerParty
+_08024BAC: .4byte gLevelUpStatBoxStats
+_08024BB0:
+ strb r6, [r5]
+ movs r0, 0x11
+ strb r0, [r5, 0x1]
+ movs r0, 0x8
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ movs r0, 0xFF
+ strb r0, [r5]
+_08024BC0:
+ movs r1, 0x1
+ add r8, r1
+ mov r2, r8
+ cmp r2, 0x5
+ ble _08024B1C
+ ldr r4, _08024BF4 @ =gUnknown_03004210
+ ldr r1, _08024BF8 @ =gStringVar4
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0xC
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _08024BFC @ =0x02000000
+ ldr r0, _08024C00 @ =0x0001609c
+ adds r1, r0
+_08024BEA:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08024C38
+ .align 2, 0
+_08024BF4: .4byte gUnknown_03004210
+_08024BF8: .4byte gStringVar4
+_08024BFC: .4byte 0x02000000
+_08024C00: .4byte 0x0001609c
+_08024C04:
+ ldr r0, _08024C2C @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ beq _08024C38
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl sub_802BBD4
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08024C38
+ .align 2, 0
+_08024C2C: .4byte gMain
+_08024C30:
+ ldr r1, _08024C48 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_08024C38:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024C48: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_80248FC
+
+ thumb_func_start sub_8024C4C
+sub_8024C4C: @ 8024C4C
+ push {lr}
+ bl sub_80156DC
+ ldr r1, _08024C60 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024C60: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8024C4C
+
+ thumb_func_start atk6E_state0_side_becomes_attacker
+atk6E_state0_side_becomes_attacker: @ 8024C64
+ push {lr}
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r1, _08024C7C @ =gBankAttacker
+ strb r0, [r1]
+ ldr r1, _08024C80 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024C7C: .4byte gBankAttacker
+_08024C80: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk6E_state0_side_becomes_attacker
+
+ thumb_func_start atk6F_8026810
+atk6F_8026810: @ 8024C84
+ push {r4,r5,lr}
+ ldr r5, _08024CB0 @ =gBattlescriptCurrInstr
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _08024CB4 @ =gActiveBank
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0
+ bl EmitSpriteInvisibility
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024CB0: .4byte gBattlescriptCurrInstr
+_08024CB4: .4byte gActiveBank
+ thumb_func_end atk6F_8026810
+
+ thumb_func_start atk70_record_ability_usage_of_side
+atk70_record_ability_usage_of_side: @ 8024CB8
+ push {r4,lr}
+ ldr r4, _08024CE0 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08024CE4 @ =gActiveBank
+ strb r0, [r1]
+ ldrb r0, [r1]
+ ldr r1, _08024CE8 @ =gLastUsedAbility
+ ldrb r1, [r1]
+ bl sub_81074C4
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024CE0: .4byte gBattlescriptCurrInstr
+_08024CE4: .4byte gActiveBank
+_08024CE8: .4byte gLastUsedAbility
+ thumb_func_end atk70_record_ability_usage_of_side
+
+ thumb_func_start sub_8024CEC
+sub_8024CEC: @ 8024CEC
+ ldr r2, _08024D0C @ =gBattleTextBuff2
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ ldr r0, _08024D10 @ =word_2024E82
+ ldrh r1, [r0]
+ strb r1, [r2, 0x2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r2, 0x3]
+ movs r0, 0xFF
+ strb r0, [r2, 0x4]
+ bx lr
+ .align 2, 0
+_08024D0C: .4byte gBattleTextBuff2
+_08024D10: .4byte word_2024E82
+ thumb_func_end sub_8024CEC
+
+ thumb_func_start atk71_80268A0
+atk71_80268A0: @ 8024D14
+ push {lr}
+ bl sub_8024CEC
+ ldr r1, _08024D28 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024D28: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk71_80268A0
+
+ thumb_func_start atk72_flee
+atk72_flee: @ 8024D2C
+ push {lr}
+ ldr r0, _08024D58 @ =gBank1
+ ldrb r0, [r0]
+ bl sub_8014AB8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08024D60
+ ldr r3, _08024D5C @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08024D68
+ .align 2, 0
+_08024D58: .4byte gBank1
+_08024D5C: .4byte gBattlescriptCurrInstr
+_08024D60:
+ ldr r1, _08024D6C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08024D68:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024D6C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk72_flee
+
+ thumb_func_start atk73_cmd73
+atk73_cmd73: @ 8024D70
+ push {r4,r5,lr}
+ ldr r0, _08024DC0 @ =gBattleTypeFlags
+ ldrh r0, [r0]
+ movs r5, 0x1
+ ands r5, r0
+ cmp r5, 0
+ bne _08024E12
+ ldr r0, _08024DC4 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08024DC8 @ =gActiveBank
+ strb r0, [r1]
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08024DCC @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r4, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r4
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ cmp r0, 0
+ bne _08024DAE
+ movs r0, 0x1
+_08024DAE:
+ cmp r0, 0x45
+ bgt _08024DB6
+ cmp r4, 0
+ bne _08024DD8
+_08024DB6:
+ ldr r0, _08024DD0 @ =0x02000000
+ ldr r1, _08024DD4 @ =0x000160c1
+ adds r0, r1
+ strb r5, [r0]
+ b _08024E12
+ .align 2, 0
+_08024DC0: .4byte gBattleTypeFlags
+_08024DC4: .4byte gBattlescriptCurrInstr
+_08024DC8: .4byte gActiveBank
+_08024DCC: .4byte gBattleMons
+_08024DD0: .4byte 0x02000000
+_08024DD4: .4byte 0x000160c1
+_08024DD8:
+ cmp r0, 0x27
+ ble _08024DF0
+ ldr r0, _08024DE8 @ =0x02000000
+ ldr r1, _08024DEC @ =0x000160c1
+ adds r0, r1
+ movs r1, 0x1
+ b _08024E10
+ .align 2, 0
+_08024DE8: .4byte 0x02000000
+_08024DEC: .4byte 0x000160c1
+_08024DF0:
+ cmp r0, 0x9
+ ble _08024E08
+ ldr r0, _08024E00 @ =0x02000000
+ ldr r1, _08024E04 @ =0x000160c1
+ adds r0, r1
+ movs r1, 0x2
+ b _08024E10
+ .align 2, 0
+_08024E00: .4byte 0x02000000
+_08024E04: .4byte 0x000160c1
+_08024E08:
+ ldr r0, _08024E20 @ =0x02000000
+ ldr r1, _08024E24 @ =0x000160c1
+ adds r0, r1
+ movs r1, 0x3
+_08024E10:
+ strb r1, [r0]
+_08024E12:
+ ldr r1, _08024E28 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024E20: .4byte 0x02000000
+_08024E24: .4byte 0x000160c1
+_08024E28: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk73_cmd73
+
+ thumb_func_start atk74_hp_tresholds_2
+atk74_hp_tresholds_2: @ 8024E2C
+ push {r4-r7,lr}
+ ldr r0, _08024E8C @ =gBattleTypeFlags
+ ldrh r0, [r0]
+ movs r7, 0x1
+ ands r7, r0
+ cmp r7, 0
+ bne _08024ED0
+ ldr r0, _08024E90 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ adds r4, r0, 0
+ ldr r0, _08024E94 @ =gActiveBank
+ strb r4, [r0]
+ movs r0, 0x1
+ eors r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, _08024E98 @ =0x02000000
+ adds r0, r4, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 23
+ ldr r1, _08024E9C @ =0x000160bc
+ adds r0, r1
+ adds r0, r6
+ ldrb r5, [r0]
+ ldr r1, _08024EA0 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r4, [r0, 0x28]
+ subs r1, r5, r4
+ movs r0, 0x64
+ muls r0, r1
+ adds r1, r5, 0
+ bl __divsi3
+ adds r1, r0, 0
+ cmp r4, r5
+ bcc _08024EA8
+ ldr r1, _08024EA4 @ =0x000160c1
+ adds r0, r6, r1
+ strb r7, [r0]
+ b _08024ED0
+ .align 2, 0
+_08024E8C: .4byte gBattleTypeFlags
+_08024E90: .4byte gBattlescriptCurrInstr
+_08024E94: .4byte gActiveBank
+_08024E98: .4byte 0x02000000
+_08024E9C: .4byte 0x000160bc
+_08024EA0: .4byte gBattleMons
+_08024EA4: .4byte 0x000160c1
+_08024EA8:
+ cmp r0, 0x1D
+ bgt _08024EB8
+ ldr r0, _08024EB4 @ =0x000160c1
+ adds r1, r6, r0
+ movs r0, 0x1
+ b _08024ECE
+ .align 2, 0
+_08024EB4: .4byte 0x000160c1
+_08024EB8:
+ cmp r1, 0x45
+ bgt _08024EC8
+ ldr r0, _08024EC4 @ =0x000160c1
+ adds r1, r6, r0
+ movs r0, 0x2
+ b _08024ECE
+ .align 2, 0
+_08024EC4: .4byte 0x000160c1
+_08024EC8:
+ ldr r0, _08024EE0 @ =0x000160c1
+ adds r1, r6, r0
+ movs r0, 0x3
+_08024ECE:
+ strb r0, [r1]
+_08024ED0:
+ ldr r1, _08024EE4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024EE0: .4byte 0x000160c1
+_08024EE4: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk74_hp_tresholds_2
+
+ thumb_func_start atk75_8026A58
+atk75_8026A58: @ 8024EE8
+ push {lr}
+ sub sp, 0x4
+ ldr r2, _08024F28 @ =gBankInMenu
+ ldr r1, _08024F2C @ =gBankAttacker
+ ldrb r0, [r1]
+ strb r0, [r2]
+ ldr r2, _08024F30 @ =gBattlePartyID
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, _08024F34 @ =gEnemyParty
+ adds r0, r1
+ ldr r1, _08024F38 @ =gLastUsedItem
+ ldrh r1, [r1]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r3, 0x1
+ str r3, [sp]
+ movs r3, 0
+ bl sub_803E1B0
+ ldr r1, _08024F3C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024F28: .4byte gBankInMenu
+_08024F2C: .4byte gBankAttacker
+_08024F30: .4byte gBattlePartyID
+_08024F34: .4byte gEnemyParty
+_08024F38: .4byte gLastUsedItem
+_08024F3C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk75_8026A58
+
+ thumb_func_start sub_8024F40
+sub_8024F40: @ 8024F40
+ push {r4-r6,lr}
+ ldr r4, _08024F64 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08024F68 @ =gActiveBank
+ strb r0, [r1]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0x6
+ bls _08024F5A
+ b _08025112
+_08024F5A:
+ lsls r0, 2
+ ldr r1, _08024F6C @ =_08024F70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08024F64: .4byte gBattlescriptCurrInstr
+_08024F68: .4byte gActiveBank
+_08024F6C: .4byte _08024F70
+ .align 2, 0
+_08024F70:
+ .4byte _08024F8C
+ .4byte _08024F9C
+ .4byte _08024FFC
+ .4byte _0802500C
+ .4byte _08025024
+ .4byte _08025060
+ .4byte _08025098
+_08024F8C:
+ ldr r0, _08024F98 @ =gActiveBank
+ ldrb r0, [r0]
+ bl CancelMultiTurnMoves
+ b _08025112
+ .align 2, 0
+_08024F98: .4byte gActiveBank
+_08024F9C:
+ ldr r1, _08024FD8 @ =gBankAttacker
+ ldr r4, _08024FDC @ =gBankTarget
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldrb r0, [r1]
+ bl GetBankSide
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08024FE0 @ =gSideTimer
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1, r2
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _08024FE8
+ ldr r1, _08024FE4 @ =gBattleMons
+ ldrb r2, [r2, 0x9]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08024FE8
+ strb r2, [r4]
+ b _08025112
+ .align 2, 0
+_08024FD8: .4byte gBankAttacker
+_08024FDC: .4byte gBankTarget
+_08024FE0: .4byte gSideTimer
+_08024FE4: .4byte gBattleMons
+_08024FE8:
+ ldr r0, _08024FF4 @ =gBankTarget
+ ldr r1, _08024FF8 @ =gActiveBank
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _08025112
+ .align 2, 0
+_08024FF4: .4byte gBankTarget
+_08024FF8: .4byte gActiveBank
+_08024FFC:
+ bl CanRunFromBattle
+ ldr r1, _08025008 @ =gBattleCommunication
+ strb r0, [r1]
+ b _08025112
+ .align 2, 0
+_08025008: .4byte gBattleCommunication
+_0802500C:
+ ldr r0, _0802501C @ =gCurrentMove
+ ldrh r0, [r0]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08025020 @ =gBankTarget
+ strb r0, [r1]
+ b _08025112
+ .align 2, 0
+_0802501C: .4byte gCurrentMove
+_08025020: .4byte gBankTarget
+_08025024:
+ ldr r2, _08025044 @ =gHitMarker
+ ldr r1, _08025048 @ =gBitTable
+ ldr r0, _0802504C @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r0, 28
+ ldr r2, [r2]
+ ands r2, r0
+ cmp r2, 0
+ beq _08025054
+ ldr r1, _08025050 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1]
+ b _08025112
+ .align 2, 0
+_08025044: .4byte gHitMarker
+_08025048: .4byte gBitTable
+_0802504C: .4byte gActiveBank
+_08025050: .4byte gBattleCommunication
+_08025054:
+ ldr r0, _0802505C @ =gBattleCommunication
+ strb r2, [r0]
+ b _08025112
+ .align 2, 0
+_0802505C: .4byte gBattleCommunication
+_08025060:
+ ldr r4, _08025090 @ =gSpecialStatuses
+ ldr r3, _08025094 @ =gActiveBank
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ b _08025112
+ .align 2, 0
+_08025090: .4byte gSpecialStatuses
+_08025094: .4byte gActiveBank
+_08025098:
+ ldr r3, _080250B8 @ =gBattlePartyID
+ ldr r0, _080250BC @ =0x02000000
+ ldr r1, _080250C0 @ =0x00016018
+ adds r0, r1
+ ldrh r2, [r3]
+ ldrb r1, [r0]
+ cmp r2, r1
+ beq _080250B2
+ ldrh r0, [r3, 0x4]
+ cmp r0, r1
+ bne _08025112
+ cmp r2, r0
+ bne _080250C8
+_080250B2:
+ ldr r1, _080250C4 @ =gActiveBank
+ movs r0, 0
+ b _080250CC
+ .align 2, 0
+_080250B8: .4byte gBattlePartyID
+_080250BC: .4byte 0x02000000
+_080250C0: .4byte 0x00016018
+_080250C4: .4byte gActiveBank
+_080250C8:
+ ldr r1, _08025120 @ =gActiveBank
+ movs r0, 0x2
+_080250CC:
+ strb r0, [r1]
+ adds r5, r1, 0
+ ldrb r2, [r5]
+ lsls r1, r2, 1
+ ldr r0, _08025124 @ =0x020160e8
+ adds r4, r1, r0
+ movs r3, 0
+ ldr r1, _08025128 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ ldrh r2, [r4]
+ cmp r0, r2
+ beq _0802510A
+ adds r6, r5, 0
+ movs r5, 0x58
+ adds r2, r1, 0
+_080250F2:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _0802510A
+ lsls r1, r3, 1
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ ldrh r1, [r4]
+ cmp r0, r1
+ bne _080250F2
+_0802510A:
+ cmp r3, 0x4
+ bne _08025112
+ movs r0, 0
+ strh r0, [r4]
+_08025112:
+ ldr r1, _0802512C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x3
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025120: .4byte gActiveBank
+_08025124: .4byte 0x020160e8
+_08025128: .4byte gBattleMons
+_0802512C: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8024F40
+
+ thumb_func_start atk77_setprotect
+atk77_setprotect: @ 8025130
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0x1
+ ldr r2, _080251FC @ =gUnknown_02024C4C
+ ldr r1, _08025200 @ =gBankAttacker
+ ldrb r3, [r1]
+ lsls r0, r3, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ mov r8, r1
+ ldr r7, _08025204 @ =gDisableStructs
+ cmp r0, 0xB6
+ beq _08025160
+ cmp r0, 0xC5
+ beq _08025160
+ cmp r0, 0xCB
+ beq _08025160
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0
+ strb r1, [r0, 0x8]
+_08025160:
+ ldr r0, _08025208 @ =gCurrentMoveTurn
+ ldrb r1, [r0]
+ ldr r0, _0802520C @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _08025170
+ movs r6, 0
+_08025170:
+ ldr r2, _08025210 @ =gProtectSuccessRates
+ mov r5, r8
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r4, [r0, 0x8]
+ lsls r4, 1
+ adds r4, r2
+ bl Random
+ ldrh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bls _08025224
+ cmp r6, 0
+ beq _08025224
+ ldr r4, _08025214 @ =gBattleMoves
+ ldr r3, _08025218 @ =gCurrentMove
+ ldrh r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ cmp r0, 0x6F
+ bne _080251C0
+ ldr r0, _0802521C @ =gProtectStructs
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _08025220 @ =gBattleCommunication
+ movs r0, 0
+ strb r0, [r1, 0x5]
+_080251C0:
+ ldrh r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ cmp r0, 0x74
+ bne _080251E6
+ ldr r0, _0802521C @ =gProtectStructs
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _08025220 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_080251E6:
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r0, [r1, 0x8]
+ adds r0, 0x1
+ strb r0, [r1, 0x8]
+ b _08025246
+ .align 2, 0
+_080251FC: .4byte gUnknown_02024C4C
+_08025200: .4byte gBankAttacker
+_08025204: .4byte gDisableStructs
+_08025208: .4byte gCurrentMoveTurn
+_0802520C: .4byte gNoOfAllBanks
+_08025210: .4byte gProtectSuccessRates
+_08025214: .4byte gBattleMoves
+_08025218: .4byte gCurrentMove
+_0802521C: .4byte gProtectStructs
+_08025220: .4byte gBattleCommunication
+_08025224:
+ ldr r2, _08025258 @ =gDisableStructs
+ ldr r0, _0802525C @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x8]
+ ldr r1, _08025260 @ =gBattleCommunication
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ ldr r2, _08025264 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_08025246:
+ ldr r1, _08025268 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025258: .4byte gDisableStructs
+_0802525C: .4byte gBankAttacker
+_08025260: .4byte gBattleCommunication
+_08025264: .4byte gBattleMoveFlags
+_08025268: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk77_setprotect
+
+ thumb_func_start atk78_faintifabilitynotdamp
+atk78_faintifabilitynotdamp: @ 802526C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08025328 @ =gBattleExecBuffer
+ ldr r2, [r0]
+ cmp r2, 0
+ bne _08025370
+ ldr r1, _0802532C @ =gBankTarget
+ strb r2, [r1]
+ ldr r0, _08025330 @ =gNoOfAllBanks
+ ldrb r3, [r0]
+ adds r5, r1, 0
+ mov r8, r0
+ ldr r6, _08025334 @ =gBattleMons
+ cmp r2, r3
+ bcs _080252B8
+ adds r0, r6, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _080252B8
+ adds r2, r3, 0
+ adds r4, r6, 0
+ movs r3, 0x58
+_0802529C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r2
+ bcs _080252B8
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _0802529C
+_080252B8:
+ ldrb r0, [r5]
+ mov r1, r8
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08025354
+ ldr r4, _08025338 @ =gActiveBank
+ ldr r7, _0802533C @ =gBankAttacker
+ ldrb r0, [r7]
+ strb r0, [r4]
+ ldr r2, _08025340 @ =gBattleMoveDamage
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ str r0, [r2]
+ ldr r1, _08025344 @ =0x00007fff
+ movs r0, 0
+ bl EmitHealthBarUpdate
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r1, _08025348 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ movs r0, 0
+ strb r0, [r5]
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08025370
+ adds r3, r5, 0
+ ldrb r5, [r7]
+ ldr r7, _0802534C @ =gBitTable
+ adds r4, r0, 0
+ ldr r6, _08025350 @ =gAbsentBankFlags
+_08025304:
+ ldrb r2, [r3]
+ cmp r2, r5
+ beq _0802531A
+ ldrb r0, [r6]
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r7
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ beq _08025370
+_0802531A:
+ adds r0, r2, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcc _08025304
+ b _08025370
+ .align 2, 0
+_08025328: .4byte gBattleExecBuffer
+_0802532C: .4byte gBankTarget
+_08025330: .4byte gNoOfAllBanks
+_08025334: .4byte gBattleMons
+_08025338: .4byte gActiveBank
+_0802533C: .4byte gBankAttacker
+_08025340: .4byte gBattleMoveDamage
+_08025344: .4byte 0x00007fff
+_08025348: .4byte gBattlescriptCurrInstr
+_0802534C: .4byte gBitTable
+_08025350: .4byte gAbsentBankFlags
+_08025354:
+ ldr r1, _0802537C @ =gLastUsedAbility
+ movs r0, 0x6
+ strb r0, [r1]
+ ldrb r0, [r5]
+ movs r1, 0x58
+ muls r1, r0
+ adds r1, r6
+ adds r1, 0x20
+ ldrb r1, [r1]
+ bl sub_81074C4
+ ldr r1, _08025380 @ =gBattlescriptCurrInstr
+ ldr r0, _08025384 @ =gUnknown_081D9834
+ str r0, [r1]
+_08025370:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802537C: .4byte gLastUsedAbility
+_08025380: .4byte gBattlescriptCurrInstr
+_08025384: .4byte gUnknown_081D9834
+ thumb_func_end atk78_faintifabilitynotdamp
+
+ thumb_func_start atk79_setuserhptozero
+atk79_setuserhptozero: @ 8025388
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080253D4 @ =gBattleExecBuffer
+ ldr r3, [r0]
+ cmp r3, 0
+ bne _080253CC
+ ldr r4, _080253D8 @ =gActiveBank
+ ldr r0, _080253DC @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r1, _080253E0 @ =gBattleMons
+ ldrb r0, [r4]
+ movs r2, 0x58
+ muls r0, r2
+ adds r0, r1
+ strh r3, [r0, 0x28]
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r1, 0x28
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2A
+ movs r2, 0
+ movs r3, 0x2
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r1, _080253E4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_080253CC:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080253D4: .4byte gBattleExecBuffer
+_080253D8: .4byte gActiveBank
+_080253DC: .4byte gBankAttacker
+_080253E0: .4byte gBattleMons
+_080253E4: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk79_setuserhptozero
+
+ thumb_func_start sub_80253E8
+sub_80253E8: @ 80253E8
+ push {r4-r7,lr}
+ ldr r3, _08025460 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r4, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r4, r0
+ ldr r0, _08025464 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ adds r7, r3, 0
+ cmp r0, 0
+ beq _08025480
+ ldr r0, _08025468 @ =gBankTarget
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r2, _0802546C @ =gBankAttacker
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, r0, 0
+ ldr r6, _08025470 @ =gAbsentBankFlags
+ ldr r5, _08025474 @ =gBitTable
+ ldr r0, _08025478 @ =gNoOfAllBanks
+ mov r12, r0
+ ldrb r0, [r2]
+ cmp r1, r0
+ bne _0802543E
+_0802542E:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _0802542E
+_0802543E:
+ ldrb r0, [r6]
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r5
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _0802542E
+ ldrb r0, [r3]
+ mov r2, r12
+ ldrb r2, [r2]
+ cmp r0, r2
+ bcc _0802547C
+ ldr r0, [r7]
+ adds r0, 0x5
+ str r0, [r7]
+ b _08025484
+ .align 2, 0
+_08025460: .4byte gBattlescriptCurrInstr
+_08025464: .4byte gBattleTypeFlags
+_08025468: .4byte gBankTarget
+_0802546C: .4byte gBankAttacker
+_08025470: .4byte gAbsentBankFlags
+_08025474: .4byte gBitTable
+_08025478: .4byte gNoOfAllBanks
+_0802547C:
+ str r4, [r7]
+ b _08025484
+_08025480:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08025484:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80253E8
+
+ thumb_func_start sub_802548C
+sub_802548C: @ 802548C
+ push {r4-r6,lr}
+ ldr r4, _080254E8 @ =gBattlescriptCurrInstr
+ ldr r1, [r4]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r2, r0
+ ldrb r0, [r1, 0x5]
+ ldr r3, _080254EC @ =gBankTarget
+ cmp r0, 0x1
+ bne _080254B4
+ ldr r0, _080254F0 @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r3]
+_080254B4:
+ ldr r1, _080254F4 @ =gBattleMoveDamage
+ ldr r6, _080254F8 @ =gBattleMons
+ ldrb r0, [r3]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r1]
+ cmp r0, 0
+ bne _080254CE
+ movs r0, 0x1
+ str r0, [r1]
+_080254CE:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldrb r0, [r3]
+ muls r0, r5
+ adds r0, r6
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ bne _080254FC
+ str r2, [r4]
+ b _08025502
+ .align 2, 0
+_080254E8: .4byte gBattlescriptCurrInstr
+_080254EC: .4byte gBankTarget
+_080254F0: .4byte gBankAttacker
+_080254F4: .4byte gBattleMoveDamage
+_080254F8: .4byte gBattleMons
+_080254FC:
+ ldr r0, [r4]
+ adds r0, 0x6
+ str r0, [r4]
+_08025502:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802548C
+
+ thumb_func_start sub_8025508
+sub_8025508: @ 8025508
+ push {r4-r7,lr}
+ ldr r3, _0802556C @ =0x02000000
+ ldr r4, _08025570 @ =gBankAttacker
+ ldrb r2, [r4]
+ lsls r1, r2, 1
+ ldr r5, _08025574 @ =0x000160ac
+ adds r0, r1, r5
+ adds r0, r3
+ ldrb r7, [r0]
+ ldr r0, _08025578 @ =0x000160ad
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r7, r0
+ lsls r2, 2
+ ldr r1, _0802557C @ =0x00016100
+ adds r0, r2, r1
+ adds r0, r3
+ ldrb r6, [r0]
+ adds r5, 0x55
+ adds r0, r2, r5
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r6, r0
+ adds r1, 0x2
+ adds r0, r2, r1
+ adds r0, r3
+ ldrb r5, [r0]
+ ldr r0, _08025580 @ =0x00016103
+ adds r2, r0
+ adds r2, r3
+ ldrb r0, [r2]
+ lsls r0, 8
+ orrs r5, r0
+ cmp r7, 0
+ beq _08025594
+ ldr r0, _08025584 @ =0x0000ffff
+ cmp r7, r0
+ beq _08025594
+ ldr r2, _08025588 @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _0802558C @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _08025590 @ =gCurrentMove
+ strh r7, [r4]
+ b _0802565C
+ .align 2, 0
+_0802556C: .4byte 0x02000000
+_08025570: .4byte gBankAttacker
+_08025574: .4byte 0x000160ac
+_08025578: .4byte 0x000160ad
+_0802557C: .4byte 0x00016100
+_08025580: .4byte 0x00016103
+_08025584: .4byte 0x0000ffff
+_08025588: .4byte gHitMarker
+_0802558C: .4byte 0xfffffbff
+_08025590: .4byte gCurrentMove
+_08025594:
+ cmp r6, 0
+ beq _08025644
+ cmp r5, 0
+ beq _08025618
+ ldr r0, _080255C4 @ =0x0000ffff
+ cmp r6, r0
+ beq _08025618
+ cmp r5, r0
+ beq _08025618
+ ldr r2, _080255C8 @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _080255CC @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080255D4
+ ldr r0, _080255D0 @ =gCurrentMove
+ strh r6, [r0]
+ b _080255D8
+ .align 2, 0
+_080255C4: .4byte 0x0000ffff
+_080255C8: .4byte gHitMarker
+_080255CC: .4byte 0xfffffbff
+_080255D0: .4byte gCurrentMove
+_080255D4:
+ ldr r0, _08025604 @ =gCurrentMove
+ strh r5, [r0]
+_080255D8:
+ adds r5, r0, 0
+ ldrh r0, [r5]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08025608 @ =gBankTarget
+ strb r0, [r1]
+ ldr r4, _0802560C @ =gBattlescriptCurrInstr
+ ldr r3, _08025610 @ =gUnknown_081D6BBC
+ ldr r2, _08025614 @ =gBattleMoves
+ ldrh r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r4]
+ b _080256C0
+ .align 2, 0
+_08025604: .4byte gCurrentMove
+_08025608: .4byte gBankTarget
+_0802560C: .4byte gBattlescriptCurrInstr
+_08025610: .4byte gUnknown_081D6BBC
+_08025614: .4byte gBattleMoves
+_08025618:
+ cmp r6, 0
+ beq _08025644
+ ldr r0, _08025634 @ =0x0000ffff
+ cmp r6, r0
+ beq _08025644
+ ldr r2, _08025638 @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _0802563C @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _08025640 @ =gCurrentMove
+ strh r6, [r4]
+ b _0802565C
+ .align 2, 0
+_08025634: .4byte 0x0000ffff
+_08025638: .4byte gHitMarker
+_0802563C: .4byte 0xfffffbff
+_08025640: .4byte gCurrentMove
+_08025644:
+ cmp r5, 0
+ beq _080256A4
+ ldr r0, _08025684 @ =0x0000ffff
+ cmp r5, r0
+ beq _080256A4
+ ldr r2, _08025688 @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _0802568C @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _08025690 @ =gCurrentMove
+ strh r5, [r4]
+_0802565C:
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08025694 @ =gBankTarget
+ strb r0, [r1]
+ ldr r5, _08025698 @ =gBattlescriptCurrInstr
+ ldr r3, _0802569C @ =gUnknown_081D6BBC
+ ldr r2, _080256A0 @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r5]
+ b _080256C0
+ .align 2, 0
+_08025684: .4byte 0x0000ffff
+_08025688: .4byte gHitMarker
+_0802568C: .4byte 0xfffffbff
+_08025690: .4byte gCurrentMove
+_08025694: .4byte gBankTarget
+_08025698: .4byte gBattlescriptCurrInstr
+_0802569C: .4byte gUnknown_081D6BBC
+_080256A0: .4byte gBattleMoves
+_080256A4:
+ ldr r2, _080256C8 @ =gSpecialStatuses
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _080256CC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_080256C0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080256C8: .4byte gSpecialStatuses
+_080256CC: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8025508
+
+ thumb_func_start sub_80256D0
+sub_80256D0: @ 80256D0
+ push {lr}
+ ldr r2, _080256F0 @ =gBattleWeather
+ ldrh r0, [r2]
+ movs r1, 0x7
+ ands r1, r0
+ cmp r1, 0
+ beq _080256FC
+ ldr r2, _080256F4 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080256F8 @ =gBattleCommunication
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _0802570C
+ .align 2, 0
+_080256F0: .4byte gBattleWeather
+_080256F4: .4byte gBattleMoveFlags
+_080256F8: .4byte gBattleCommunication
+_080256FC:
+ movs r0, 0x1
+ strh r0, [r2]
+ ldr r0, _08025718 @ =gBattleCommunication
+ strb r1, [r0, 0x5]
+ ldr r0, _0802571C @ =gWishFutureKnock
+ adds r0, 0x28
+ movs r1, 0x5
+ strb r1, [r0]
+_0802570C:
+ ldr r1, _08025720 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025718: .4byte gBattleCommunication
+_0802571C: .4byte gWishFutureKnock
+_08025720: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_80256D0
+
+ thumb_func_start atk7E_setreflect
+atk7E_setreflect: @ 8025724
+ push {r4-r6,lr}
+ ldr r5, _08025754 @ =gBankAttacker
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ ldr r6, _08025758 @ =gSideAffecting
+ movs r4, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08025764
+ ldr r2, _0802575C @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08025760 @ =gBattleCommunication
+ movs r0, 0
+ b _080257C4
+ .align 2, 0
+_08025754: .4byte gBankAttacker
+_08025758: .4byte gSideAffecting
+_0802575C: .4byte gBattleMoveFlags
+_08025760: .4byte gBattleCommunication
+_08025764:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ ldr r2, _080257B4 @ =gSideTimer
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0]
+ ldr r0, _080257B8 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080257C0
+ movs r0, 0x1
+ bl CountAliveMons
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bne _080257C0
+ ldr r0, _080257BC @ =gBattleCommunication
+ strb r1, [r0, 0x5]
+ b _080257C6
+ .align 2, 0
+_080257B4: .4byte gSideTimer
+_080257B8: .4byte gBattleTypeFlags
+_080257BC: .4byte gBattleCommunication
+_080257C0:
+ ldr r1, _080257D4 @ =gBattleCommunication
+ movs r0, 0x1
+_080257C4:
+ strb r0, [r1, 0x5]
+_080257C6:
+ ldr r1, _080257D8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080257D4: .4byte gBattleCommunication
+_080257D8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk7E_setreflect
+
+ thumb_func_start sub_80257DC
+sub_80257DC: @ 80257DC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r7, _0802581C @ =gBattleMoveFlags
+ ldrb r5, [r7]
+ movs r0, 0x29
+ ands r0, r5
+ cmp r0, 0
+ bne _0802580E
+ ldr r0, _08025820 @ =gStatuses3
+ mov r9, r0
+ ldr r1, _08025824 @ =gBankTarget
+ mov r8, r1
+ ldrb r4, [r1]
+ lsls r0, r4, 2
+ mov r2, r9
+ adds r6, r0, r2
+ ldr r2, [r6]
+ movs r0, 0x4
+ mov r12, r0
+ adds r3, r2, 0
+ ands r3, r0
+ cmp r3, 0
+ beq _0802582C
+_0802580E:
+ movs r0, 0x1
+ orrs r0, r5
+ strb r0, [r7]
+ ldr r1, _08025828 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0802587C
+ .align 2, 0
+_0802581C: .4byte gBattleMoveFlags
+_08025820: .4byte gStatuses3
+_08025824: .4byte gBankTarget
+_08025828: .4byte gBattleCommunication
+_0802582C:
+ ldr r1, _08025858 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, r0, r1
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ beq _08025848
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bne _08025860
+_08025848:
+ movs r0, 0x1
+ orrs r0, r5
+ strb r0, [r7]
+ ldr r1, _0802585C @ =gBattleCommunication
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _0802587C
+ .align 2, 0
+_08025858: .4byte gBattleMons
+_0802585C: .4byte gBattleCommunication
+_08025860:
+ ldr r0, _08025890 @ =gBankAttacker
+ ldrb r0, [r0]
+ orrs r2, r0
+ str r2, [r6]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 2
+ add r1, r9
+ ldr r0, [r1]
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1]
+ ldr r0, _08025894 @ =gBattleCommunication
+ strb r3, [r0, 0x5]
+_0802587C:
+ ldr r1, _08025898 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025890: .4byte gBankAttacker
+_08025894: .4byte gBattleCommunication
+_08025898: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_80257DC
+
+ thumb_func_start atk80_manipulatedamage
+atk80_manipulatedamage: @ 802589C
+ push {r4,lr}
+ ldr r1, _080258B4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ ldrb r2, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r2, 0x1
+ beq _080258CC
+ cmp r2, 0x1
+ bgt _080258B8
+ cmp r2, 0
+ beq _080258BE
+ b _0802590C
+ .align 2, 0
+_080258B4: .4byte gBattlescriptCurrInstr
+_080258B8:
+ cmp r2, 0x2
+ beq _08025904
+ b _0802590C
+_080258BE:
+ ldr r1, _080258C8 @ =gBattleMoveDamage
+ ldr r0, [r1]
+ negs r0, r0
+ b _0802590A
+ .align 2, 0
+_080258C8: .4byte gBattleMoveDamage
+_080258CC:
+ ldr r3, _080258F8 @ =gBattleMoveDamage
+ ldr r0, [r3]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [r3]
+ cmp r0, 0
+ bne _080258DE
+ str r2, [r3]
+_080258DE:
+ ldr r2, _080258FC @ =gBattleMons
+ ldr r0, _08025900 @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2C]
+ lsrs r1, r0, 1
+ ldr r0, [r3]
+ cmp r1, r0
+ bge _0802590C
+ str r1, [r3]
+ b _0802590C
+ .align 2, 0
+_080258F8: .4byte gBattleMoveDamage
+_080258FC: .4byte gBattleMons
+_08025900: .4byte gBankTarget
+_08025904:
+ ldr r1, _08025918 @ =gBattleMoveDamage
+ ldr r0, [r1]
+ lsls r0, 1
+_0802590A:
+ str r0, [r1]
+_0802590C:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025918: .4byte gBattleMoveDamage
+ thumb_func_end atk80_manipulatedamage
+
+ thumb_func_start atk81_setrest
+atk81_setrest: @ 802591C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r0, _08025974 @ =gBattlescriptCurrInstr
+ mov r12, r0
+ ldr r1, [r0]
+ ldrb r6, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r6, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r6, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r6, r0
+ ldr r5, _08025978 @ =gActiveBank
+ ldr r2, _0802597C @ =gBankTarget
+ ldr r0, _08025980 @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r2]
+ strb r0, [r5]
+ ldr r4, _08025984 @ =gBattleMoveDamage
+ ldr r1, _08025988 @ =gBattleMons
+ ldrb r0, [r2]
+ movs r3, 0x58
+ muls r0, r3
+ adds r0, r1
+ ldrh r0, [r0, 0x2C]
+ negs r0, r0
+ str r0, [r4]
+ ldrb r0, [r2]
+ adds r4, r0, 0
+ muls r4, r3
+ adds r0, r4, r1
+ ldrh r3, [r0, 0x28]
+ adds r7, r5, 0
+ adds r5, r2, 0
+ adds r2, r1, 0
+ ldrh r0, [r0, 0x2C]
+ cmp r3, r0
+ bne _0802598C
+ mov r0, r12
+ str r6, [r0]
+ b _080259DC
+ .align 2, 0
+_08025974: .4byte gBattlescriptCurrInstr
+_08025978: .4byte gActiveBank
+_0802597C: .4byte gBankTarget
+_08025980: .4byte gBankAttacker
+_08025984: .4byte gBattleMoveDamage
+_08025988: .4byte gBattleMons
+_0802598C:
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r4, r0
+ ldr r1, [r0]
+ movs r0, 0xF8
+ ands r1, r0
+ cmp r1, 0
+ beq _080259A8
+ ldr r1, _080259A4 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _080259AC
+ .align 2, 0
+_080259A4: .4byte gBattleCommunication
+_080259A8:
+ ldr r0, _080259E4 @ =gBattleCommunication
+ strb r1, [r0, 0x5]
+_080259AC:
+ ldrb r0, [r5]
+ movs r3, 0x58
+ muls r0, r3
+ adds r2, 0x4C
+ adds r0, r2
+ movs r1, 0x3
+ str r1, [r0]
+ ldrb r0, [r7]
+ muls r0, r3
+ adds r0, r2
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r7]
+ bl MarkBufferBankForExecution
+ ldr r1, _080259E8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_080259DC:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080259E4: .4byte gBattleCommunication
+_080259E8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk81_setrest
+
+ thumb_func_start atk82_jumpifnotfirstturn
+atk82_jumpifnotfirstturn: @ 80259EC
+ push {r4,r5,lr}
+ ldr r5, _08025A20 @ =gBattlescriptCurrInstr
+ ldr r4, [r5]
+ ldrb r3, [r4, 0x1]
+ ldrb r0, [r4, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r4, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldr r2, _08025A24 @ =gDisableStructs
+ ldr r0, _08025A28 @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x16]
+ cmp r0, 0
+ beq _08025A2C
+ adds r0, r4, 0x5
+ str r0, [r5]
+ b _08025A2E
+ .align 2, 0
+_08025A20: .4byte gBattlescriptCurrInstr
+_08025A24: .4byte gDisableStructs
+_08025A28: .4byte gBankAttacker
+_08025A2C:
+ str r3, [r5]
+_08025A2E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end atk82_jumpifnotfirstturn
+
+ thumb_func_start sub_8025A34
+sub_8025A34: @ 8025A34
+ ldr r1, _08025A40 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08025A40: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8025A34
+
+ thumb_func_start sub_8025A44
+sub_8025A44: @ 8025A44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _08025A9C @ =gNoOfAllBanks
+ ldrb r1, [r0]
+ mov r8, r0
+ cmp r2, r1
+ bge _08025AB8
+ ldr r0, _08025AA0 @ =gBattleMons
+ mov r12, r0
+ movs r0, 0x58
+ muls r0, r3
+ add r0, r12
+ adds r5, r0, 0
+ adds r5, 0x20
+ ldr r6, _08025AA4 @ =0x02016003
+ movs r3, 0
+ ldr r7, _08025AA8 @ =gBattleCommunication
+ adds r4, r1, 0
+_08025A70:
+ mov r0, r12
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ beq _08025AB0
+ ldrb r0, [r5]
+ cmp r0, 0x2B
+ beq _08025AB0
+ movs r3, 0
+ strb r2, [r6]
+ ldr r1, _08025AAC @ =gBankTarget
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08025AD0
+ cmp r0, r2
+ beq _08025AC4
+ movs r0, 0x1
+ strb r0, [r7, 0x5]
+ b _08025AB8
+ .align 2, 0
+_08025A9C: .4byte gNoOfAllBanks
+_08025AA0: .4byte gBattleMons
+_08025AA4: .4byte 0x02016003
+_08025AA8: .4byte gBattleCommunication
+_08025AAC: .4byte gBankTarget
+_08025AB0:
+ adds r3, 0x58
+ adds r2, 0x1
+ cmp r2, r4
+ blt _08025A70
+_08025AB8:
+ mov r1, r8
+ ldrb r1, [r1]
+ cmp r2, r1
+ beq _08025AD4
+ movs r0, 0x1
+ b _08025AD6
+_08025AC4:
+ ldr r0, _08025ACC @ =gBattleCommunication
+ strb r3, [r0, 0x5]
+ b _08025AB8
+ .align 2, 0
+_08025ACC: .4byte gBattleCommunication
+_08025AD0:
+ strb r2, [r1]
+ b _08025AB8
+_08025AD4:
+ movs r0, 0
+_08025AD6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8025A44
+
+ thumb_func_start sub_8025AE0
+sub_8025AE0: @ 8025AE0
+ push {r4-r6,lr}
+ ldr r5, _08025B0C @ =gBattlescriptCurrInstr
+ ldr r1, [r5]
+ ldrb r4, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r4, r0
+ ldr r6, _08025B10 @ =gBankTarget
+ ldrb r0, [r6]
+ bl sub_8025A44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025B14
+ str r4, [r5]
+ b _08025B56
+ .align 2, 0
+_08025B0C: .4byte gBattlescriptCurrInstr
+_08025B10: .4byte gBankTarget
+_08025B14:
+ ldr r1, _08025B44 @ =gBattleMons
+ ldrb r3, [r6]
+ movs r0, 0x58
+ muls r0, r3
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r1, r0, 0
+ cmp r1, 0xF
+ beq _08025B2C
+ cmp r1, 0x48
+ bne _08025B50
+_08025B2C:
+ ldr r2, _08025B48 @ =gLastUsedAbility
+ strb r0, [r2]
+ ldr r1, _08025B4C @ =gBattleCommunication
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ str r4, [r5]
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ bl sub_81074C4
+ b _08025B56
+ .align 2, 0
+_08025B44: .4byte gBattleMons
+_08025B48: .4byte gLastUsedAbility
+_08025B4C: .4byte gBattleCommunication
+_08025B50:
+ ldr r0, [r5]
+ adds r0, 0x5
+ str r0, [r5]
+_08025B56:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8025AE0
+
+ thumb_func_start sub_8025B5C
+sub_8025B5C: @ 8025B5C
+ push {r4,r5,lr}
+ ldr r5, _08025B84 @ =gDisableStructs
+ ldr r4, _08025B88 @ =gBankAttacker
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0x3
+ bne _08025B94
+ ldr r2, _08025B8C @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08025B90 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08025BBE
+ .align 2, 0
+_08025B84: .4byte gDisableStructs
+_08025B88: .4byte gBankAttacker
+_08025B8C: .4byte gBattleMoveFlags
+_08025B90: .4byte gBattleCommunication
+_08025B94:
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r1, 0x9]
+ ldr r2, _08025BCC @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ strb r0, [r2, 0x2]
+ strb r0, [r2, 0x3]
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x9]
+ strb r0, [r2, 0x4]
+ movs r0, 0xFF
+ strb r0, [r2, 0x5]
+ ldr r0, _08025BD0 @ =gBattleCommunication
+ strb r3, [r0, 0x5]
+_08025BBE:
+ ldr r1, _08025BD4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025BCC: .4byte gBattleTextBuff1
+_08025BD0: .4byte gBattleCommunication
+_08025BD4: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8025B5C
+
+ thumb_func_start atk86_stockpiletobasedamage
+atk86_stockpiletobasedamage: @ 8025BD8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ ldr r3, _08025C10 @ =gBattlescriptCurrInstr
+ ldr r1, [r3]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r7, _08025C14 @ =gDisableStructs
+ ldr r6, _08025C18 @ =gBankAttacker
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ bne _08025C1C
+ str r2, [r3]
+ b _08025CC2
+ .align 2, 0
+_08025C10: .4byte gBattlescriptCurrInstr
+_08025C14: .4byte gDisableStructs
+_08025C18: .4byte gBankAttacker
+_08025C1C:
+ ldr r0, _08025CD0 @ =gBattleCommunication
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ beq _08025CA8
+ ldr r0, _08025CD4 @ =gBattleMoveDamage
+ mov r8, r0
+ ldr r4, _08025CD8 @ =gSideAffecting
+ ldr r5, _08025CDC @ =gBankTarget
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ ldrb r0, [r6]
+ movs r4, 0x58
+ muls r0, r4
+ ldr r2, _08025CE0 @ =gBattleMons
+ adds r0, r2
+ ldrb r1, [r5]
+ muls r1, r4
+ adds r1, r2
+ ldr r2, _08025CE4 @ =gCurrentMove
+ ldrh r2, [r2]
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ ldrb r4, [r6]
+ str r4, [sp, 0x8]
+ ldrb r4, [r5]
+ str r4, [sp, 0xC]
+ bl CalculateBaseDamage
+ ldrb r2, [r6]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r7
+ ldrb r1, [r1, 0x9]
+ adds r3, r0, 0
+ muls r3, r1
+ mov r1, r8
+ str r3, [r1]
+ ldr r2, _08025CE8 @ =0x02000000
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x9]
+ ldr r1, _08025CEC @ =0x00016002
+ adds r2, r1
+ strb r0, [r2]
+ ldr r1, _08025CF0 @ =gProtectStructs
+ ldrb r0, [r6]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08025CA8
+ lsls r0, r3, 4
+ subs r0, r3
+ movs r1, 0xA
+ bl __divsi3
+ mov r1, r8
+ str r0, [r1]
+_08025CA8:
+ ldr r2, _08025CF4 @ =gDisableStructs
+ ldr r0, _08025CF8 @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x9]
+ ldr r1, _08025CFC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08025CC2:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025CD0: .4byte gBattleCommunication
+_08025CD4: .4byte gBattleMoveDamage
+_08025CD8: .4byte gSideAffecting
+_08025CDC: .4byte gBankTarget
+_08025CE0: .4byte gBattleMons
+_08025CE4: .4byte gCurrentMove
+_08025CE8: .4byte 0x02000000
+_08025CEC: .4byte 0x00016002
+_08025CF0: .4byte gProtectStructs
+_08025CF4: .4byte gDisableStructs
+_08025CF8: .4byte gBankAttacker
+_08025CFC: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk86_stockpiletobasedamage
+
+ thumb_func_start sub_8025D00
+sub_8025D00: @ 8025D00
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, _08025D40 @ =gBattlescriptCurrInstr
+ ldr r1, [r7]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r0, _08025D44 @ =gDisableStructs
+ mov r8, r0
+ ldr r6, _08025D48 @ =gBankAttacker
+ ldrb r3, [r6]
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ mov r1, r8
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x9]
+ cmp r1, 0
+ bne _08025D50
+ str r2, [r7]
+ ldr r0, _08025D4C @ =gBattleCommunication
+ strb r1, [r0, 0x5]
+ b _08025DD0
+ .align 2, 0
+_08025D40: .4byte gBattlescriptCurrInstr
+_08025D44: .4byte gDisableStructs
+_08025D48: .4byte gBankAttacker
+_08025D4C: .4byte gBattleCommunication
+_08025D50:
+ ldr r1, _08025D74 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2C]
+ ldrh r3, [r1, 0x28]
+ cmp r0, r3
+ bne _08025D80
+ movs r0, 0
+ strb r0, [r4, 0x9]
+ str r2, [r7]
+ ldr r1, _08025D78 @ =gBankTarget
+ ldrb r0, [r6]
+ strb r0, [r1]
+ ldr r1, _08025D7C @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08025DD0
+ .align 2, 0
+_08025D74: .4byte gBattleMons
+_08025D78: .4byte gBankTarget
+_08025D7C: .4byte gBattleCommunication
+_08025D80:
+ ldr r5, _08025DDC @ =gBattleMoveDamage
+ ldrh r0, [r1, 0x2C]
+ ldrb r1, [r4, 0x9]
+ movs r2, 0x3
+ subs r2, r1
+ movs r4, 0x1
+ adds r1, r4, 0
+ lsls r1, r2
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _08025D9C
+ str r4, [r5]
+_08025D9C:
+ ldr r0, [r5]
+ negs r0, r0
+ str r0, [r5]
+ ldr r2, _08025DE0 @ =0x02000000
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0x9]
+ ldr r1, _08025DE4 @ =0x00016002
+ adds r2, r1
+ movs r3, 0
+ strb r0, [r2]
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ strb r3, [r0, 0x9]
+ ldr r0, [r7]
+ adds r0, 0x5
+ str r0, [r7]
+ ldr r1, _08025DE8 @ =gBankTarget
+ ldrb r0, [r6]
+ strb r0, [r1]
+_08025DD0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025DDC: .4byte gBattleMoveDamage
+_08025DE0: .4byte 0x02000000
+_08025DE4: .4byte 0x00016002
+_08025DE8: .4byte gBankTarget
+ thumb_func_end sub_8025D00
+
+ thumb_func_start atk88_negativedamage
+atk88_negativedamage: @ 8025DEC
+ push {lr}
+ ldr r2, _08025E14 @ =gBattleMoveDamage
+ ldr r0, _08025E18 @ =gHP_dealt
+ ldr r0, [r0]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ negs r0, r0
+ str r0, [r2]
+ cmp r0, 0
+ bne _08025E08
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r2]
+_08025E08:
+ ldr r1, _08025E1C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025E14: .4byte gBattleMoveDamage
+_08025E18: .4byte gHP_dealt
+_08025E1C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk88_negativedamage
+
+ thumb_func_start sub_8025E20
+sub_8025E20: @ 8025E20
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r0, 0
+ mov r9, r0
+ mov r10, r0
+ movs r0, 0x40
+ ands r0, r5
+ cmp r0, 0
+ beq _08025E54
+ ldr r0, _08025E4C @ =gActiveBank
+ ldr r1, _08025E50 @ =gBankAttacker
+ b _08025E58
+ .align 2, 0
+_08025E4C: .4byte gActiveBank
+_08025E50: .4byte gBankAttacker
+_08025E54:
+ ldr r0, _08025EF8 @ =gActiveBank
+ ldr r1, _08025EFC @ =gBankTarget
+_08025E58:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ movs r0, 0xBF
+ ands r5, r0
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ beq _08025E72
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08025E72:
+ movs r0, 0x7F
+ ands r5, r0
+ movs r0, 0x20
+ ands r0, r5
+ cmp r0, 0
+ beq _08025E88
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_08025E88:
+ movs r0, 0xDF
+ ands r5, r0
+ ldr r1, _08025F00 @ =gBattleTextBuff1
+ movs r4, 0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ strb r7, [r1, 0x2]
+ movs r3, 0x1
+ negs r3, r3
+ mov r12, r3
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ lsls r0, r6, 24
+ cmp r0, 0
+ blt _08025EAC
+ b _080261B0
+_08025EAC:
+ ldr r4, _08025F04 @ =gSideTimer
+ ldr r1, _08025EF8 @ =gActiveBank
+ ldrb r0, [r1]
+ bl GetBankIdentity
+ movs r1, 0x1
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08025F54
+ mov r2, r9
+ cmp r2, 0
+ bne _08025F54
+ ldr r0, _08025F08 @ =gCurrentMove
+ ldrh r0, [r0]
+ cmp r0, 0xAE
+ beq _08025F84
+ cmp r5, 0x1
+ bne _08025F74
+ ldr r4, _08025F0C @ =gSpecialStatuses
+ ldr r3, _08025EF8 @ =gActiveBank
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08025F14
+ ldr r0, _08025F10 @ =gBattlescriptCurrInstr
+ mov r4, r8
+ str r4, [r0]
+ b _08025F74
+ .align 2, 0
+_08025EF8: .4byte gActiveBank
+_08025EFC: .4byte gBankTarget
+_08025F00: .4byte gBattleTextBuff1
+_08025F04: .4byte gSideTimer
+_08025F08: .4byte gCurrentMove
+_08025F0C: .4byte gSpecialStatuses
+_08025F10: .4byte gBattlescriptCurrInstr
+_08025F14:
+ mov r0, r8
+ bl b_movescr_stack_push
+ ldr r0, _08025F40 @ =0x02000000
+ ldr r6, _08025F44 @ =gActiveBank
+ ldrb r1, [r6]
+ ldr r2, _08025F48 @ =0x00016003
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, _08025F4C @ =gBattlescriptCurrInstr
+ ldr r0, _08025F50 @ =gUnknown_081D9128
+ str r0, [r1]
+ ldrb r1, [r6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _08025F74
+ .align 2, 0
+_08025F40: .4byte 0x02000000
+_08025F44: .4byte gActiveBank
+_08025F48: .4byte 0x00016003
+_08025F4C: .4byte gBattlescriptCurrInstr
+_08025F50: .4byte gUnknown_081D9128
+_08025F54:
+ ldr r0, _08025F78 @ =gCurrentMove
+ ldrh r0, [r0]
+ cmp r0, 0xAE
+ beq _08025F84
+ mov r3, r10
+ cmp r3, 0x1
+ beq _08025F84
+ movs r0, 0
+ bl sub_801C108
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025F84
+ ldr r1, _08025F7C @ =gBattlescriptCurrInstr
+ ldr r0, _08025F80 @ =BattleScript_1D83D6
+ str r0, [r1]
+_08025F74:
+ movs r0, 0x1
+ b _080262A4
+ .align 2, 0
+_08025F78: .4byte gCurrentMove
+_08025F7C: .4byte gBattlescriptCurrInstr
+_08025F80: .4byte BattleScript_1D83D6
+_08025F84:
+ ldr r2, _08025FCC @ =gBattleMons
+ ldr r1, _08025FD0 @ =gActiveBank
+ ldrb r3, [r1]
+ movs r4, 0x58
+ adds r0, r3, 0
+ muls r0, r4
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r10, r2
+ cmp r0, 0x1D
+ beq _08025FA0
+ cmp r0, 0x49
+ bne _08026040
+_08025FA0:
+ mov r0, r9
+ cmp r0, 0
+ bne _08026040
+ ldr r0, _08025FD4 @ =gCurrentMove
+ ldrh r0, [r0]
+ cmp r0, 0xAE
+ beq _08026040
+ cmp r5, 0x1
+ bne _08025F74
+ ldr r4, _08025FD8 @ =gSpecialStatuses
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08025FE0
+ ldr r0, _08025FDC @ =gBattlescriptCurrInstr
+ mov r1, r8
+ str r1, [r0]
+ b _08025F74
+ .align 2, 0
+_08025FCC: .4byte gBattleMons
+_08025FD0: .4byte gActiveBank
+_08025FD4: .4byte gCurrentMove
+_08025FD8: .4byte gSpecialStatuses
+_08025FDC: .4byte gBattlescriptCurrInstr
+_08025FE0:
+ mov r0, r8
+ bl b_movescr_stack_push
+ ldr r0, _08026028 @ =0x02000000
+ ldr r2, _0802602C @ =gActiveBank
+ ldrb r1, [r2]
+ ldr r3, _08026030 @ =0x00016003
+ adds r0, r3
+ strb r1, [r0]
+ ldr r1, _08026034 @ =gBattlescriptCurrInstr
+ ldr r0, _08026038 @ =gUnknown_081D989B
+ str r0, [r1]
+ ldr r1, _0802603C @ =gLastUsedAbility
+ ldrb r0, [r2]
+ movs r6, 0x58
+ muls r0, r6
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ ldr r0, _0802602C @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _08025F74
+ .align 2, 0
+_08026028: .4byte 0x02000000
+_0802602C: .4byte gActiveBank
+_08026030: .4byte 0x00016003
+_08026034: .4byte gBattlescriptCurrInstr
+_08026038: .4byte gUnknown_081D989B
+_0802603C: .4byte gLastUsedAbility
+_08026040:
+ ldr r1, _08026090 @ =gActiveBank
+ ldrb r0, [r1]
+ movs r4, 0x58
+ muls r0, r4
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x33
+ bne _080260A8
+ mov r2, r9
+ cmp r2, 0
+ bne _080260A8
+ cmp r7, 0x6
+ bne _080260A8
+ cmp r5, 0x1
+ bne _08025F74
+ mov r0, r8
+ bl b_movescr_stack_push
+ ldr r0, _08026094 @ =0x02000000
+ ldr r3, _08026090 @ =gActiveBank
+ ldrb r1, [r3]
+ ldr r6, _08026098 @ =0x00016003
+ adds r0, r6
+ strb r1, [r0]
+ ldr r1, _0802609C @ =gBattlescriptCurrInstr
+ ldr r0, _080260A0 @ =gUnknown_081D9903
+ str r0, [r1]
+ ldr r1, _080260A4 @ =gLastUsedAbility
+ ldrb r0, [r3]
+ muls r0, r4
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r3]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ b _08025F74
+ .align 2, 0
+_08026090: .4byte gActiveBank
+_08026094: .4byte 0x02000000
+_08026098: .4byte 0x00016003
+_0802609C: .4byte gBattlescriptCurrInstr
+_080260A0: .4byte gUnknown_081D9903
+_080260A4: .4byte gLastUsedAbility
+_080260A8:
+ ldr r1, _080260FC @ =gActiveBank
+ ldrb r0, [r1]
+ movs r4, 0x58
+ muls r0, r4
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x34
+ bne _08026114
+ mov r2, r9
+ cmp r2, 0
+ bne _08026114
+ cmp r7, 0x1
+ bne _08026114
+ cmp r5, 0x1
+ beq _080260CA
+ b _08025F74
+_080260CA:
+ mov r0, r8
+ bl b_movescr_stack_push
+ ldr r0, _08026100 @ =0x02000000
+ ldr r3, _080260FC @ =gActiveBank
+ ldrb r1, [r3]
+ ldr r6, _08026104 @ =0x00016003
+ adds r0, r6
+ strb r1, [r0]
+ ldr r1, _08026108 @ =gBattlescriptCurrInstr
+ ldr r0, _0802610C @ =gUnknown_081D9903
+ str r0, [r1]
+ ldr r1, _08026110 @ =gLastUsedAbility
+ ldrb r0, [r3]
+ muls r0, r4
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r3]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ b _08025F74
+ .align 2, 0
+_080260FC: .4byte gActiveBank
+_08026100: .4byte 0x02000000
+_08026104: .4byte 0x00016003
+_08026108: .4byte gBattlescriptCurrInstr
+_0802610C: .4byte gUnknown_081D9903
+_08026110: .4byte gLastUsedAbility
+_08026114:
+ ldr r0, _080261A0 @ =gActiveBank
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bne _0802612C
+ cmp r5, 0
+ bne _0802612C
+ b _08025F74
+_0802612C:
+ lsls r0, r6, 24
+ asrs r0, 28
+ movs r1, 0x7
+ ands r0, r1
+ negs r0, r0
+ lsls r0, 24
+ ldr r3, _080261A4 @ =gBattleTextBuff2
+ movs r4, 0
+ movs r1, 0xFD
+ strb r1, [r3]
+ movs r2, 0x1
+ lsrs r6, r0, 24
+ asrs r0, 24
+ subs r1, 0xFF
+ cmp r0, r1
+ bne _08026156
+ strb r4, [r3, 0x1]
+ movs r0, 0xD3
+ strb r0, [r3, 0x2]
+ strb r4, [r3, 0x3]
+ movs r2, 0x4
+_08026156:
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r1, r2, r3
+ movs r0, 0xD4
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r1, r2, r3
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _080261A0 @ =gActiveBank
+ ldrb r2, [r1]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r7, r0
+ mov r1, r10
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _08026206
+ movs r1, 0
+ ldr r0, _080261A8 @ =gBankTarget
+ ldrb r0, [r0]
+ ldr r3, _080261AC @ =gBattleCommunication
+ mov r8, r3
+ cmp r0, r2
+ bne _0802619A
+ movs r1, 0x1
+_0802619A:
+ mov r4, r8
+ strb r1, [r4, 0x5]
+ b _08026234
+ .align 2, 0
+_080261A0: .4byte gActiveBank
+_080261A4: .4byte gBattleTextBuff2
+_080261A8: .4byte gBankTarget
+_080261AC: .4byte gBattleCommunication
+_080261B0:
+ asrs r6, r0, 28
+ movs r0, 0x7
+ ands r6, r0
+ ldr r3, _08026210 @ =gBattleTextBuff2
+ strb r2, [r3]
+ movs r2, 0x1
+ cmp r6, 0x2
+ bne _080261CA
+ strb r4, [r3, 0x1]
+ movs r0, 0xD1
+ strb r0, [r3, 0x2]
+ strb r4, [r3, 0x3]
+ movs r2, 0x4
+_080261CA:
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r1, r2, r3
+ movs r0, 0xD2
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r1, r2, r3
+ ldrb r0, [r1]
+ mov r2, r12
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r2, _08026214 @ =gBattleMons
+ ldr r4, _08026218 @ =gActiveBank
+ ldrb r3, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ adds r0, r7, r0
+ adds r1, r2, 0
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ mov r10, r2
+ cmp r0, 0xC
+ bne _08026220
+_08026206:
+ ldr r1, _0802621C @ =gBattleCommunication
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ mov r8, r1
+ b _08026234
+ .align 2, 0
+_08026210: .4byte gBattleTextBuff2
+_08026214: .4byte gBattleMons
+_08026218: .4byte gActiveBank
+_0802621C: .4byte gBattleCommunication
+_08026220:
+ movs r1, 0
+ ldr r0, _080262B4 @ =gBankTarget
+ ldrb r0, [r0]
+ ldr r2, _080262B8 @ =gBattleCommunication
+ mov r8, r2
+ cmp r0, r3
+ bne _08026230
+ movs r1, 0x1
+_08026230:
+ mov r3, r8
+ strb r1, [r3, 0x5]
+_08026234:
+ ldr r2, _080262BC @ =gActiveBank
+ ldrb r0, [r2]
+ movs r4, 0x58
+ adds r1, r0, 0
+ muls r1, r4
+ adds r1, r7, r1
+ mov r3, r10
+ adds r3, 0x18
+ adds r1, r3
+ lsls r0, r6, 24
+ asrs r0, 24
+ ldrb r6, [r1]
+ adds r0, r6
+ strb r0, [r1]
+ ldrb r0, [r2]
+ muls r0, r4
+ adds r0, r7, r0
+ adds r1, r0, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _08026264
+ movs r0, 0
+ strb r0, [r1]
+_08026264:
+ ldr r1, _080262BC @ =gActiveBank
+ ldrb r0, [r1]
+ muls r0, r4
+ adds r0, r7, r0
+ adds r1, r0, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0802627A
+ movs r0, 0xC
+ strb r0, [r1]
+_0802627A:
+ mov r2, r8
+ ldrb r0, [r2, 0x5]
+ cmp r0, 0x2
+ bne _080262A2
+ movs r3, 0x1
+ ands r3, r5
+ cmp r3, 0
+ beq _08026294
+ ldr r0, _080262C0 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+_08026294:
+ mov r4, r8
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0x2
+ bne _080262A2
+ cmp r3, 0
+ bne _080262A2
+ b _08025F74
+_080262A2:
+ movs r0, 0
+_080262A4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080262B4: .4byte gBankTarget
+_080262B8: .4byte gBattleCommunication
+_080262BC: .4byte gActiveBank
+_080262C0: .4byte gBattleMoveFlags
+ thumb_func_end sub_8025E20
+
+ thumb_func_start atk89_statbuffchange
+atk89_statbuffchange: @ 80262C4
+ push {r4,r5,lr}
+ ldr r5, _0802630C @ =gBattlescriptCurrInstr
+ ldr r2, [r5]
+ ldrb r3, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r3, r0
+ ldr r0, _08026310 @ =0x02000000
+ ldr r1, _08026314 @ =0x0001601e
+ adds r0, r1
+ ldrb r4, [r0]
+ movs r0, 0xF0
+ ands r0, r4
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0xF
+ ands r1, r4
+ ldrb r2, [r2, 0x1]
+ bl sub_8025E20
+ lsls r0, 24
+ cmp r0, 0
+ bne _08026304
+ ldr r0, [r5]
+ adds r0, 0x6
+ str r0, [r5]
+_08026304:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802630C: .4byte gBattlescriptCurrInstr
+_08026310: .4byte 0x02000000
+_08026314: .4byte 0x0001601e
+ thumb_func_end atk89_statbuffchange
+
+ thumb_func_start atk8A_normalisebuffs
+atk8A_normalisebuffs: @ 8026318
+ push {r4-r7,lr}
+ movs r2, 0
+ ldr r0, _08026360 @ =gNoOfAllBanks
+ ldrb r1, [r0]
+ ldr r0, _08026364 @ =gBattlescriptCurrInstr
+ mov r12, r0
+ cmp r2, r1
+ bge _08026350
+ ldr r0, _08026368 @ =gBattleMons
+ movs r4, 0x6
+ adds r5, r1, 0
+ movs r7, 0x58
+ adds r6, r0, 0
+ adds r6, 0x18
+_08026334:
+ adds r3, r2, 0x1
+ movs r1, 0x7
+ adds r0, r2, 0
+ muls r0, r7
+ adds r0, r6
+ adds r0, 0x7
+_08026340:
+ strb r4, [r0]
+ subs r0, 0x1
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08026340
+ adds r2, r3, 0
+ cmp r2, r5
+ blt _08026334
+_08026350:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026360: .4byte gNoOfAllBanks
+_08026364: .4byte gBattlescriptCurrInstr
+_08026368: .4byte gBattleMons
+ thumb_func_end atk8A_normalisebuffs
+
+ thumb_func_start atk8B_setbide
+atk8B_setbide: @ 802636C
+ push {r4,r5,lr}
+ ldr r4, _080263C4 @ =gBattleMons
+ ldr r3, _080263C8 @ =gBankAttacker
+ ldrb r0, [r3]
+ movs r5, 0x58
+ adds r2, r0, 0
+ muls r2, r5
+ adds r4, 0x50
+ adds r2, r4
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _080263CC @ =gLockedMove
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _080263D0 @ =gCurrentMove
+ ldrh r1, [r1]
+ movs r2, 0
+ strh r1, [r0]
+ ldr r1, _080263D4 @ =gTakenDmg
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ str r2, [r0]
+ ldrb r0, [r3]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r4
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 2
+ orrs r0, r2
+ str r0, [r1]
+ ldr r1, _080263D8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080263C4: .4byte gBattleMons
+_080263C8: .4byte gBankAttacker
+_080263CC: .4byte gLockedMove
+_080263D0: .4byte gCurrentMove
+_080263D4: .4byte gTakenDmg
+_080263D8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk8B_setbide
+
+ thumb_func_start atk8C_confuseifrepeatingattackends
+atk8C_confuseifrepeatingattackends: @ 80263DC
+ push {lr}
+ ldr r1, _0802640C @ =gBattleMons
+ ldr r0, _08026410 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 4
+ ands r0, r1
+ cmp r0, 0
+ bne _080263FE
+ ldr r1, _08026414 @ =gBattleCommunication
+ movs r0, 0x75
+ strb r0, [r1, 0x3]
+_080263FE:
+ ldr r1, _08026418 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802640C: .4byte gBattleMons
+_08026410: .4byte gBankAttacker
+_08026414: .4byte gBattleCommunication
+_08026418: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk8C_confuseifrepeatingattackends
+
+ thumb_func_start atk8D_setloopcounter
+atk8D_setloopcounter: @ 802641C
+ push {r4,r5,lr}
+ ldr r0, _08026430 @ =gBattlescriptCurrInstr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ cmp r1, 0
+ beq _08026438
+ ldr r0, _08026434 @ =gMultiHitCounter
+ strb r1, [r0]
+ b _08026452
+ .align 2, 0
+_08026430: .4byte gBattlescriptCurrInstr
+_08026434: .4byte gMultiHitCounter
+_08026438:
+ ldr r4, _08026460 @ =gMultiHitCounter
+ bl Random
+ movs r5, 0x3
+ ands r0, r5
+ strb r0, [r4]
+ cmp r0, 0x1
+ bls _0802644E
+ bl Random
+ ands r0, r5
+_0802644E:
+ adds r0, 0x2
+ strb r0, [r4]
+_08026452:
+ ldr r1, _08026464 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026460: .4byte gMultiHitCounter
+_08026464: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk8D_setloopcounter
+
+ thumb_func_start sub_8026468
+sub_8026468: @ 8026468
+ push {r4,lr}
+ ldr r1, _080264A8 @ =0x02000000
+ ldr r0, _080264AC @ =0x000160e0
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0xFD
+ strb r0, [r2]
+ ldr r2, _080264B0 @ =0x000160e1
+ adds r0, r1, r2
+ movs r2, 0x1
+ strb r2, [r0]
+ ldr r4, _080264B4 @ =0x000160e2
+ adds r0, r1, r4
+ strb r2, [r0]
+ adds r4, 0x1
+ adds r0, r1, r4
+ strb r2, [r0]
+ ldr r2, _080264B8 @ =0x000160e4
+ adds r0, r1, r2
+ strb r3, [r0]
+ adds r4, 0x2
+ adds r1, r4
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _080264BC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080264A8: .4byte 0x02000000
+_080264AC: .4byte 0x000160e0
+_080264B0: .4byte 0x000160e1
+_080264B4: .4byte 0x000160e2
+_080264B8: .4byte 0x000160e4
+_080264BC: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8026468
+
+ thumb_func_start sub_80264C0
+sub_80264C0: @ 80264C0
+ push {r4-r7,lr}
+ ldr r6, _080264F4 @ =gBattleMons
+ ldr r7, _080264F8 @ =gBankAttacker
+ ldrb r0, [r7]
+ movs r5, 0x58
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r6
+ adds r1, 0x2A
+ ldr r4, _080264FC @ =gBankTarget
+ ldrb r3, [r4]
+ adds r0, r3, 0
+ muls r0, r5
+ adds r0, r6
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _0802650C
+ ldr r0, _08026500 @ =0x02000000
+ ldr r2, _08026504 @ =0x00016064
+ adds r1, r3, r2
+ adds r1, r0
+ ldr r2, _08026508 @ =gBattlePartyID
+ lsls r0, r3, 1
+ b _08026568
+ .align 2, 0
+_080264F4: .4byte gBattleMons
+_080264F8: .4byte gBankAttacker
+_080264FC: .4byte gBankTarget
+_08026500: .4byte 0x02000000
+_08026504: .4byte 0x00016064
+_08026508: .4byte gBattlePartyID
+_0802650C:
+ bl Random
+ movs r3, 0xFF
+ ands r3, r0
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r6
+ adds r0, 0x2A
+ ldrb r2, [r0]
+ ldrb r4, [r4]
+ adds r0, r4, 0
+ muls r0, r5
+ adds r0, r6
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ adds r2, r1
+ adds r0, r3, 0
+ muls r0, r2
+ asrs r0, 8
+ adds r0, 0x1
+ lsrs r1, 2
+ cmp r0, r1
+ bhi _0802655C
+ ldr r3, _08026558 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ movs r0, 0
+ b _08026576
+ .align 2, 0
+_08026558: .4byte gBattlescriptCurrInstr
+_0802655C:
+ ldr r0, _0802657C @ =0x02000000
+ ldr r2, _08026580 @ =0x00016064
+ adds r1, r4, r2
+ adds r1, r0
+ ldr r2, _08026584 @ =gBattlePartyID
+ lsls r0, r4, 1
+_08026568:
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r1, _08026588 @ =gBattlescriptCurrInstr
+ ldr r0, _0802658C @ =gUnknown_081D90FC
+ str r0, [r1]
+ movs r0, 0x1
+_08026576:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0802657C: .4byte 0x02000000
+_08026580: .4byte 0x00016064
+_08026584: .4byte gBattlePartyID
+_08026588: .4byte gBattlescriptCurrInstr
+_0802658C: .4byte gUnknown_081D90FC
+ thumb_func_end sub_80264C0
+
+ thumb_func_start sub_8026590
+sub_8026590: @ 8026590
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _08026628 @ =gBattleTypeFlags
+ ldrh r1, [r4]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080265A4
+ b _0802687C
+_080265A4:
+ ldr r5, _0802662C @ =gBankTarget
+ ldrb r0, [r5]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r1, _08026630 @ =gEnemyParty
+ mov r8, r1
+ cmp r0, 0
+ bne _080265BA
+ ldr r2, _08026634 @ =gPlayerParty
+ mov r8, r2
+_080265BA:
+ ldrh r1, [r4]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08026638
+ movs r7, 0
+ movs r6, 0
+ ldrb r0, [r5]
+ bl sub_803FC34
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_803FBFC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _080265E0
+ movs r6, 0x3
+_080265E0:
+ adds r5, r6, 0
+ adds r0, r5, 0x3
+ cmp r5, r0
+ bge _08026678
+_080265E8:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0802661A
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0802661A
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0802661A
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_0802661A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0x3
+ cmp r5, r0
+ blt _080265E8
+ b _08026678
+ .align 2, 0
+_08026628: .4byte gBattleTypeFlags
+_0802662C: .4byte gBankTarget
+_08026630: .4byte gEnemyParty
+_08026634: .4byte gPlayerParty
+_08026638:
+ movs r7, 0
+ movs r5, 0
+_0802663C:
+ movs r0, 0x64
+ muls r0, r5
+ mov r2, r8
+ adds r4, r2, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0802666E
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0802666E
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0802666E
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_0802666E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0802663C
+_08026678:
+ cmp r7, 0x1
+ bhi _08026688
+ ldr r0, _080266BC @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x41
+ ands r0, r1
+ cmp r0, 0x1
+ bne _080266A0
+_08026688:
+ cmp r7, 0x2
+ bhi _080266C4
+ ldr r0, _080266BC @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080266C4
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080266C4
+_080266A0:
+ ldr r3, _080266C0 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08026880
+ .align 2, 0
+_080266BC: .4byte gBattleTypeFlags
+_080266C0: .4byte gBattlescriptCurrInstr
+_080266C4:
+ bl sub_80264C0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080266D0
+ b _08026880
+_080266D0:
+ ldr r0, _08026710 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08026774
+_080266DC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08026714 @ =gBankTarget
+ ldrb r0, [r0]
+ bl sub_803FC34
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_803FBFC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _08026718
+ adds r0, r6, 0x3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0802671A
+ .align 2, 0
+_08026710: .4byte gBattleTypeFlags
+_08026714: .4byte gBankTarget
+_08026718:
+ adds r5, r6, 0
+_0802671A:
+ ldr r4, _0802676C @ =gBattlePartyID
+ ldr r0, _08026770 @ =gBankTarget
+ ldrb r2, [r0]
+ lsls r1, r2, 1
+ adds r1, r4
+ lsls r0, r5, 16
+ lsrs r3, r0, 16
+ ldrh r1, [r1]
+ cmp r3, r1
+ beq _080266DC
+ movs r0, 0x2
+ eors r2, r0
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r3, r0
+ beq _080266DC
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080266DC
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _080266DC
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080266DC
+ b _08026832
+ .align 2, 0
+_0802676C: .4byte gBattlePartyID
+_08026770: .4byte gBankTarget
+_08026774:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080267E4
+ ldr r6, _080267DC @ =gBattlePartyID
+_0802677E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080267E0 @ =gBankTarget
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r6
+ adds r2, r5, 0
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0802677E
+ movs r0, 0x2
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0802677E
+ movs r0, 0x64
+ muls r0, r5
+ mov r2, r8
+ adds r4, r2, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0802677E
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _0802677E
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0802677E
+ b _08026832
+ .align 2, 0
+_080267DC: .4byte gBattlePartyID
+_080267E0: .4byte gBankTarget
+_080267E4:
+ ldr r6, _0802686C @ =gBattlePartyID
+_080267E6:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08026870 @ =gBankTarget
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080267E6
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080267E6
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _080267E6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080267E6
+_08026832:
+ ldr r0, _08026874 @ =0x02000000
+ ldr r4, _08026870 @ =gBankTarget
+ ldrb r1, [r4]
+ ldr r2, _08026878 @ =0x00016068
+ adds r1, r2
+ adds r1, r0
+ strb r5, [r1]
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _08026850
+ ldrb r0, [r4]
+ bl sub_8012258
+_08026850:
+ ldrb r0, [r4]
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8094B6C
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8094B6C
+ b _08026880
+ .align 2, 0
+_0802686C: .4byte gBattlePartyID
+_08026870: .4byte gBankTarget
+_08026874: .4byte 0x02000000
+_08026878: .4byte 0x00016068
+_0802687C:
+ bl sub_80264C0
+_08026880:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8026590
+
+ thumb_func_start sub_802688C
+sub_802688C: @ 802688C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ ldr r2, _08026920 @ =gBattleMons
+ ldr r3, _08026924 @ =gBankAttacker
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r2, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ mov r8, r2
+ cmp r0, 0
+ beq _080268CE
+ movs r5, 0x58
+ adds r2, r1, 0
+_080268B4:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bhi _080268CE
+ lsls r1, r6, 1
+ ldrb r0, [r3]
+ muls r0, r5
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080268B4
+_080268CE:
+ movs r3, 0
+ cmp r3, r6
+ bcs _08026950
+ ldr r0, _08026928 @ =gBattleMoves
+ mov r10, r0
+ ldr r5, _08026920 @ =gBattleMons
+ mov r12, r5
+ ldr r7, _08026924 @ =gBankAttacker
+ ldrb r0, [r7]
+ movs r4, 0x58
+ adds r5, r0, 0
+ muls r5, r4
+ movs r0, 0xC
+ add r0, r12
+ mov r9, r0
+_080268EC:
+ lsls r0, r3, 1
+ adds r0, r5
+ add r0, r9
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ ldrb r2, [r0, 0x2]
+ cmp r2, 0x9
+ bne _0802692E
+ mov r0, r8
+ adds r1, r5, r0
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _0802691A
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _0802692C
+_0802691A:
+ movs r2, 0x7
+ b _0802692E
+ .align 2, 0
+_08026920: .4byte gBattleMons
+_08026924: .4byte gBankAttacker
+_08026928: .4byte gBattleMoves
+_0802692C:
+ movs r2, 0
+_0802692E:
+ ldrb r0, [r7]
+ muls r0, r4
+ add r0, r12
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r2, r1
+ beq _08026946
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _08026950
+_08026946:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r6
+ bcc _080268EC
+_08026950:
+ cmp r3, r6
+ bne _08026974
+ ldr r3, _08026970 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08026A18
+ .align 2, 0
+_08026970: .4byte gBattlescriptCurrInstr
+_08026974:
+ movs r7, 0x3
+ ldr r5, _080269CC @ =gBattleMoves
+ mov r9, r5
+_0802697A:
+ bl Random
+ adds r3, r0, 0
+ ands r3, r7
+ cmp r3, r6
+ bcs _0802697A
+ ldr r4, _080269D0 @ =gBattleMons
+ lsls r1, r3, 1
+ ldr r3, _080269D4 @ =gBankAttacker
+ ldrb r2, [r3]
+ movs r0, 0x58
+ adds r5, r2, 0
+ muls r5, r0
+ adds r1, r5
+ adds r0, r4, 0
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r2, [r0, 0x2]
+ mov r8, r4
+ adds r4, r3, 0
+ cmp r2, 0x9
+ bne _080269DA
+ mov r0, r8
+ adds r2, r5, r0
+ adds r0, r2, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _080269C8
+ adds r0, r2, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _080269D8
+_080269C8:
+ movs r2, 0x7
+ b _080269DA
+ .align 2, 0
+_080269CC: .4byte gBattleMoves
+_080269D0: .4byte gBattleMons
+_080269D4: .4byte gBankAttacker
+_080269D8:
+ movs r2, 0
+_080269DA:
+ ldrb r0, [r4]
+ movs r3, 0x58
+ muls r0, r3
+ add r0, r8
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r5, [r1]
+ cmp r2, r5
+ beq _0802697A
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r2, r0
+ beq _0802697A
+ strb r2, [r1]
+ ldrb r0, [r4]
+ muls r0, r3
+ add r0, r8
+ adds r0, 0x22
+ strb r2, [r0]
+ ldr r1, _08026A28 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _08026A2C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08026A18:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026A28: .4byte gBattleTextBuff1
+_08026A2C: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802688C
+
+ thumb_func_start atk91_givemoney
+atk91_givemoney: @ 8026A30
+ push {r4,lr}
+ ldr r0, _08026A8C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08026AAC
+ ldr r4, _08026A90 @ =gPaydayMoney
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _08026AAC
+ ldr r0, _08026A94 @ =gSaveBlock1 + 0x490
+ ldrh r2, [r4]
+ ldr r1, _08026A98 @ =0x02000000
+ ldr r3, _08026A9C @ =0x00016056
+ adds r1, r3
+ ldrb r1, [r1]
+ muls r1, r2
+ bl sub_80B79B8
+ ldr r1, _08026AA0 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0x5
+ strb r0, [r1, 0x3]
+ ldrh r2, [r4]
+ strb r2, [r1, 0x4]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r2
+ lsrs r0, 8
+ strb r0, [r1, 0x5]
+ movs r0, 0xFF
+ strb r0, [r1, 0x6]
+ ldr r4, _08026AA4 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _08026AA8 @ =gUnknown_081D95DB
+ str r0, [r4]
+ b _08026AB4
+ .align 2, 0
+_08026A8C: .4byte gBattleTypeFlags
+_08026A90: .4byte gPaydayMoney
+_08026A94: .4byte gSaveBlock1 + 0x490
+_08026A98: .4byte 0x02000000
+_08026A9C: .4byte 0x00016056
+_08026AA0: .4byte gBattleTextBuff1
+_08026AA4: .4byte gBattlescriptCurrInstr
+_08026AA8: .4byte gUnknown_081D95DB
+_08026AAC:
+ ldr r1, _08026ABC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_08026AB4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026ABC: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk91_givemoney
+
+ thumb_func_start atk92_setlightscreen
+atk92_setlightscreen: @ 8026AC0
+ push {r4-r6,lr}
+ ldr r4, _08026AF0 @ =gBankAttacker
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ ldr r6, _08026AF4 @ =gSideAffecting
+ movs r5, 0x1
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08026B00
+ ldr r2, _08026AF8 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08026AFC @ =gBattleCommunication
+ movs r0, 0
+ b _08026B60
+ .align 2, 0
+_08026AF0: .4byte gBankAttacker
+_08026AF4: .4byte gSideAffecting
+_08026AF8: .4byte gBattleMoveFlags
+_08026AFC: .4byte gBattleCommunication
+_08026B00:
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ ldr r2, _08026B50 @ =gSideTimer
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0, 0x1]
+ ldr r0, _08026B54 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08026B5C
+ movs r0, 0x1
+ bl CountAliveMons
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08026B5C
+ ldr r1, _08026B58 @ =gBattleCommunication
+ movs r0, 0x4
+ b _08026B60
+ .align 2, 0
+_08026B50: .4byte gSideTimer
+_08026B54: .4byte gBattleTypeFlags
+_08026B58: .4byte gBattleCommunication
+_08026B5C:
+ ldr r1, _08026B70 @ =gBattleCommunication
+ movs r0, 0x3
+_08026B60:
+ strb r0, [r1, 0x5]
+ ldr r1, _08026B74 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026B70: .4byte gBattleCommunication
+_08026B74: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk92_setlightscreen
+
+ thumb_func_start sub_8026B78
+sub_8026B78: @ 8026B78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r7, _08026BA8 @ =gBattleMons
+ ldr r6, _08026BAC @ =gBankTarget
+ ldrb r2, [r6]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r0, r7
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08026BB4
+ ldr r1, _08026BB0 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x7]
+ ldrb r6, [r0, 0x1A]
+ b _08026BCE
+ .align 2, 0
+_08026BA8: .4byte gBattleMons
+_08026BAC: .4byte gBankTarget
+_08026BB0: .4byte gEnigmaBerries
+_08026BB4:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08026BCE:
+ ldr r1, _08026C4C @ =gStringBank
+ ldr r5, _08026C50 @ =gBankTarget
+ ldrb r0, [r5]
+ strb r0, [r1]
+ cmp r4, 0x27
+ bne _08026C0C
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcs _08026C0C
+ ldrb r0, [r5]
+ movs r1, 0x27
+ bl sub_81074F8
+ ldr r2, _08026C54 @ =gSpecialStatuses
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_08026C0C:
+ ldr r0, _08026C58 @ =gBattleMons
+ mov r8, r0
+ ldr r1, _08026C50 @ =gBankTarget
+ ldrb r2, [r1]
+ movs r6, 0x58
+ adds r0, r2, 0
+ muls r0, r6
+ mov r3, r8
+ adds r5, r0, r3
+ adds r0, r5, 0
+ adds r0, 0x20
+ ldrb r3, [r0]
+ mov r10, r8
+ cmp r3, 0x5
+ bne _08026C6C
+ ldr r2, _08026C5C @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08026C60 @ =gLastUsedAbility
+ strb r3, [r0]
+ ldr r1, _08026C64 @ =gBattlescriptCurrInstr
+ ldr r0, _08026C68 @ =gUnknown_081D9826
+ str r0, [r1]
+ ldr r1, _08026C50 @ =gBankTarget
+ ldrb r0, [r1]
+ movs r1, 0x5
+ bl sub_81074C4
+ b _08026E40
+ .align 2, 0
+_08026C4C: .4byte gStringBank
+_08026C50: .4byte gBankTarget
+_08026C54: .4byte gSpecialStatuses
+_08026C58: .4byte gBattleMons
+_08026C5C: .4byte gBattleMoveFlags
+_08026C60: .4byte gLastUsedAbility
+_08026C64: .4byte gBattlescriptCurrInstr
+_08026C68: .4byte gUnknown_081D9826
+_08026C6C:
+ ldr r1, _08026CE0 @ =gStatuses3
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x18
+ ands r0, r1
+ cmp r0, 0
+ bne _08026CF4
+ ldr r1, _08026CE4 @ =gBattleMoves
+ ldr r0, _08026CE8 @ =gCurrentMove
+ ldrh r0, [r0]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldr r7, _08026CEC @ =gBankAttacker
+ ldrb r0, [r7]
+ muls r0, r6
+ add r0, r10
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r1, 0x2A
+ ldrb r1, [r1]
+ subs r0, r1
+ ldrb r2, [r2, 0x3]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, 0x1
+ cmp r0, r4
+ bge _08026CDC
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ add r1, r10
+ adds r1, 0x2A
+ ldr r2, _08026CF0 @ =gBankTarget
+ ldrb r0, [r2]
+ muls r0, r6
+ add r0, r10
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ movs r4, 0x1
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08026D20
+_08026CDC:
+ mov r10, r8
+ b _08026DE0
+ .align 2, 0
+_08026CE0: .4byte gStatuses3
+_08026CE4: .4byte gBattleMoves
+_08026CE8: .4byte gCurrentMove
+_08026CEC: .4byte gBankAttacker
+_08026CF0: .4byte gBankTarget
+_08026CF4:
+ ldr r0, _08026D4C @ =gDisableStructs
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, _08026D50 @ =gBankAttacker
+ ldrb r0, [r1, 0x15]
+ movs r4, 0
+ ldrb r3, [r2]
+ cmp r0, r3
+ bne _08026D20
+ ldrb r0, [r2]
+ muls r0, r6
+ add r0, r10
+ adds r0, 0x2A
+ adds r1, r5, 0
+ adds r1, 0x2A
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08026D20
+ movs r4, 0x1
+_08026D20:
+ cmp r4, 0
+ beq _08026DE0
+ ldr r0, _08026D54 @ =gProtectStructs
+ ldr r1, _08026D58 @ =gBankTarget
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 30
+ cmp r0, 0
+ bge _08026D64
+ ldr r1, _08026D5C @ =gBattleMoveDamage
+ movs r0, 0x58
+ muls r0, r2
+ add r0, r10
+ ldrh r0, [r0, 0x28]
+ subs r0, 0x1
+ str r0, [r1]
+ ldr r2, _08026D60 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x40
+ b _08026DC6
+ .align 2, 0
+_08026D4C: .4byte gDisableStructs
+_08026D50: .4byte gBankAttacker
+_08026D54: .4byte gProtectStructs
+_08026D58: .4byte gBankTarget
+_08026D5C: .4byte gBattleMoveDamage
+_08026D60: .4byte gBattleMoveFlags
+_08026D64:
+ ldr r0, _08026DA0 @ =gSpecialStatuses
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08026DB4
+ ldr r1, _08026DA4 @ =gBattleMoveDamage
+ movs r3, 0x58
+ adds r0, r2, 0
+ muls r0, r3
+ add r0, r10
+ ldrh r0, [r0, 0x28]
+ subs r0, 0x1
+ str r0, [r1]
+ ldr r2, _08026DA8 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08026DAC @ =gLastUsedItem
+ ldr r2, _08026DB0 @ =gBankTarget
+ ldrb r0, [r2]
+ muls r0, r3
+ add r0, r10
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+ b _08026DCA
+ .align 2, 0
+_08026DA0: .4byte gSpecialStatuses
+_08026DA4: .4byte gBattleMoveDamage
+_08026DA8: .4byte gBattleMoveFlags
+_08026DAC: .4byte gLastUsedItem
+_08026DB0: .4byte gBankTarget
+_08026DB4:
+ ldr r1, _08026DD4 @ =gBattleMoveDamage
+ movs r0, 0x58
+ muls r0, r2
+ add r0, r10
+ ldrh r0, [r0, 0x28]
+ str r0, [r1]
+ ldr r2, _08026DD8 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x10
+_08026DC6:
+ orrs r0, r1
+ strb r0, [r2]
+_08026DCA:
+ ldr r1, _08026DDC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08026E40
+ .align 2, 0
+_08026DD4: .4byte gBattleMoveDamage
+_08026DD8: .4byte gBattleMoveFlags
+_08026DDC: .4byte gBattlescriptCurrInstr
+_08026DE0:
+ ldr r2, _08026E10 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08026E14 @ =gBankAttacker
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r1, r0, 0
+ muls r1, r2
+ add r1, r10
+ adds r1, 0x2A
+ ldr r3, _08026E18 @ =gBankTarget
+ ldrb r0, [r3]
+ muls r0, r2
+ add r0, r10
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _08026E20
+ ldr r1, _08026E1C @ =gBattleCommunication
+ movs r0, 0
+ b _08026E24
+ .align 2, 0
+_08026E10: .4byte gBattleMoveFlags
+_08026E14: .4byte gBankAttacker
+_08026E18: .4byte gBankTarget
+_08026E1C: .4byte gBattleCommunication
+_08026E20:
+ ldr r1, _08026E50 @ =gBattleCommunication
+ movs r0, 0x1
+_08026E24:
+ strb r0, [r1, 0x5]
+ ldr r3, _08026E54 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08026E40:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026E50: .4byte gBattleCommunication
+_08026E54: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8026B78
+
+ thumb_func_start atk94_gethalfcurrentenemyhp
+atk94_gethalfcurrentenemyhp: @ 8026E58
+ push {lr}
+ ldr r3, _08026E84 @ =gBattleMoveDamage
+ ldr r2, _08026E88 @ =gBattleMons
+ ldr r0, _08026E8C @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ lsrs r0, 1
+ str r0, [r3]
+ cmp r0, 0
+ bne _08026E76
+ movs r0, 0x1
+ str r0, [r3]
+_08026E76:
+ ldr r1, _08026E90 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026E84: .4byte gBattleMoveDamage
+_08026E88: .4byte gBattleMons
+_08026E8C: .4byte gBankTarget
+_08026E90: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk94_gethalfcurrentenemyhp
+
+ thumb_func_start sub_8026E94
+sub_8026E94: @ 8026E94
+ push {lr}
+ ldr r2, _08026EB4 @ =gBattleWeather
+ ldrh r1, [r2]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _08026EC0
+ ldr r2, _08026EB8 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08026EBC @ =gBattleCommunication
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _08026ED2
+ .align 2, 0
+_08026EB4: .4byte gBattleWeather
+_08026EB8: .4byte gBattleMoveFlags
+_08026EBC: .4byte gBattleCommunication
+_08026EC0:
+ movs r0, 0x8
+ strh r0, [r2]
+ ldr r1, _08026EE0 @ =gBattleCommunication
+ movs r0, 0x3
+ strb r0, [r1, 0x5]
+ ldr r0, _08026EE4 @ =gWishFutureKnock
+ adds r0, 0x28
+ movs r1, 0x5
+ strb r1, [r0]
+_08026ED2:
+ ldr r1, _08026EE8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026EE0: .4byte gBattleCommunication
+_08026EE4: .4byte gWishFutureKnock
+_08026EE8: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8026E94
+
+ thumb_func_start sub_8026EEC
+sub_8026EEC: @ 8026EEC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08026F0A
+ b _0802701C
+_08026F0A:
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _08026F20
+ b _0802701C
+_08026F20:
+ ldr r2, _08026F94 @ =gBattleWeather
+ ldrh r1, [r2]
+ movs r0, 0x18
+ ands r0, r1
+ adds r4, r2, 0
+ ldr r5, _08026F98 @ =gBankAttacker
+ cmp r0, 0
+ beq _08026FAE
+ ldr r0, _08026F9C @ =gBattleMons
+ ldrb r2, [r5]
+ movs r1, 0x58
+ muls r1, r2
+ adds r3, r1, r0
+ adds r0, r3, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _08026FA8
+ cmp r0, 0x8
+ beq _08026FA8
+ cmp r0, 0x4
+ beq _08026FA8
+ adds r0, r3, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _08026FA8
+ cmp r0, 0x8
+ beq _08026FA8
+ cmp r0, 0x4
+ beq _08026FA8
+ adds r0, r3, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ beq _08026FA8
+ ldr r0, _08026FA0 @ =gStatuses3
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08026FA8
+ movs r0, 0x80
+ lsls r0, 11
+ ands r1, r0
+ cmp r1, 0
+ bne _08026FA8
+ ldr r1, _08026FA4 @ =gBattleMoveDamage
+ ldrh r0, [r3, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08026FAE
+ movs r0, 0x1
+ b _08026FAC
+ .align 2, 0
+_08026F94: .4byte gBattleWeather
+_08026F98: .4byte gBankAttacker
+_08026F9C: .4byte gBattleMons
+_08026FA0: .4byte gStatuses3
+_08026FA4: .4byte gBattleMoveDamage
+_08026FA8:
+ ldr r1, _08027004 @ =gBattleMoveDamage
+ movs r0, 0
+_08026FAC:
+ str r0, [r1]
+_08026FAE:
+ ldrh r1, [r4]
+ movs r4, 0x80
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08027024
+ ldr r1, _08027008 @ =gBattleMons
+ ldrb r3, [r5]
+ movs r0, 0x58
+ muls r0, r3
+ adds r2, r0, r1
+ adds r0, r2, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ beq _08027010
+ adds r0, r2, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ beq _08027010
+ ldr r0, _0802700C @ =gStatuses3
+ lsls r1, r3, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, 0
+ bne _08027010
+ movs r0, 0x80
+ lsls r0, 11
+ ands r1, r0
+ cmp r1, 0
+ bne _08027010
+ ldr r1, _08027004 @ =gBattleMoveDamage
+ ldrh r0, [r2, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08027024
+ movs r0, 0x1
+ str r0, [r1]
+ b _08027024
+ .align 2, 0
+_08027004: .4byte gBattleMoveDamage
+_08027008: .4byte gBattleMons
+_0802700C: .4byte gStatuses3
+_08027010:
+ ldr r1, _08027018 @ =gBattleMoveDamage
+ movs r0, 0
+ str r0, [r1]
+ b _08027024
+ .align 2, 0
+_08027018: .4byte gBattleMoveDamage
+_0802701C:
+ ldr r1, _08027050 @ =gBattleMoveDamage
+ movs r0, 0
+ str r0, [r1]
+ ldr r5, _08027054 @ =gBankAttacker
+_08027024:
+ ldr r0, _08027058 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _0802705C @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0802703E
+ ldr r1, _08027050 @ =gBattleMoveDamage
+ movs r0, 0
+ str r0, [r1]
+_0802703E:
+ ldr r1, _08027060 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027050: .4byte gBattleMoveDamage
+_08027054: .4byte gBankAttacker
+_08027058: .4byte gAbsentBankFlags
+_0802705C: .4byte gBitTable
+_08027060: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8026EEC
+
+ thumb_func_start sub_8027064
+sub_8027064: @ 8027064
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08027090 @ =gBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802709C
+ ldr r1, _08027094 @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08027098 @ =gPlayerParty
+ b _080270AC
+ .align 2, 0
+_08027090: .4byte gBankAttacker
+_08027094: .4byte gBattlePartyID
+_08027098: .4byte gPlayerParty
+_0802709C:
+ ldr r1, _080270D0 @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080270D4 @ =gEnemyParty
+_080270AC:
+ adds r5, r1, r0
+ ldr r4, _080270D8 @ =gBankTarget
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080270E0
+ ldr r1, _080270D0 @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080270DC @ =gPlayerParty
+ b _080270F0
+ .align 2, 0
+_080270D0: .4byte gBattlePartyID
+_080270D4: .4byte gEnemyParty
+_080270D8: .4byte gBankTarget
+_080270DC: .4byte gPlayerParty
+_080270E0:
+ ldr r1, _0802714C @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08027150 @ =gEnemyParty
+_080270F0:
+ adds r4, r1, r0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r7, r0, 0
+ ldr r5, _08027154 @ =gBankTarget
+ ldrb r0, [r5]
+ movs r6, 0x58
+ muls r0, r6
+ ldr r1, _08027158 @ =gBattleMons
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r2, [r0]
+ cmp r2, 0xC
+ bne _08027168
+ ldr r1, _0802715C @ =gBattlescriptCurrInstr
+ ldr r0, _08027160 @ =gUnknown_081D98C9
+ str r0, [r1]
+ ldr r0, _08027164 @ =gLastUsedAbility
+ strb r2, [r0]
+ ldrb r0, [r5]
+ movs r1, 0xC
+ bl sub_81074C4
+ b _0802721C
+ .align 2, 0
+_0802714C: .4byte gBattlePartyID
+_08027150: .4byte gEnemyParty
+_08027154: .4byte gBankTarget
+_08027158: .4byte gBattleMons
+_0802715C: .4byte gBattlescriptCurrInstr
+_08027160: .4byte gUnknown_081D98C9
+_08027164: .4byte gLastUsedAbility
+_08027168:
+ mov r0, r10
+ mov r1, r9
+ bl GetGenderFromSpeciesAndPersonality
+ adds r4, r0, 0
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080271CA
+ ldr r1, _080271E8 @ =gStatuses3
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080271EC @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _080271CA
+ adds r0, r2, 0
+ muls r0, r6
+ ldr r4, _080271F0 @ =gBattleMons
+ adds r4, 0x50
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r0, r1
+ cmp r0, 0
+ bne _080271CA
+ mov r0, r10
+ mov r1, r9
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080271CA
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080271F8
+_080271CA:
+ ldr r3, _080271F4 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802721C
+ .align 2, 0
+_080271E8: .4byte gStatuses3
+_080271EC: .4byte 0x000400c0
+_080271F0: .4byte gBattleMons
+_080271F4: .4byte gBattlescriptCurrInstr
+_080271F8:
+ ldrb r0, [r5]
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r4
+ ldr r1, _0802722C @ =gBitTable
+ ldr r0, _08027230 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 16
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08027234 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802721C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802722C: .4byte gBitTable
+_08027230: .4byte gBankAttacker
+_08027234: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8027064
+
+ thumb_func_start sub_8027238
+sub_8027238: @ 8027238
+ push {r4-r7,lr}
+ ldr r0, _08027280 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08027324
+ ldr r5, _08027284 @ =gBattlescriptCurrInstr
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x4
+ beq _08027290
+ bl sub_8015150
+ ldr r4, _08027288 @ =gActiveBank
+ strb r0, [r4]
+ ldr r3, _0802728C @ =gBattleMons
+ ldrb r1, [r4]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ adds r3, 0x50
+ adds r2, r3
+ ldr r2, [r2]
+ movs r0, 0
+ bl EmitStatusIconUpdate
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ b _08027324
+ .align 2, 0
+_08027280: .4byte gBattleExecBuffer
+_08027284: .4byte gBattlescriptCurrInstr
+_08027288: .4byte gActiveBank
+_0802728C: .4byte gBattleMons
+_08027290:
+ ldr r4, _0802732C @ =gActiveBank
+ ldr r5, _08027330 @ =gBankAttacker
+ ldrb r0, [r5]
+ strb r0, [r4]
+ ldr r6, _08027334 @ =gAbsentBankFlags
+ ldrb r1, [r6]
+ ldr r7, _08027338 @ =gBitTable
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080272CC
+ ldr r3, _0802733C @ =gBattleMons
+ movs r0, 0x58
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ adds r3, 0x50
+ adds r2, r3
+ ldr r2, [r2]
+ movs r0, 0
+ bl EmitStatusIconUpdate
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_080272CC:
+ ldr r0, _08027340 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802731C
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ strb r0, [r4]
+ ldrb r1, [r6]
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802731C
+ ldr r3, _0802733C @ =gBattleMons
+ movs r0, 0x58
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ adds r3, 0x50
+ adds r2, r3
+ ldr r2, [r2]
+ movs r0, 0
+ bl EmitStatusIconUpdate
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_0802731C:
+ ldr r1, _08027344 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_08027324:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802732C: .4byte gActiveBank
+_08027330: .4byte gBankAttacker
+_08027334: .4byte gAbsentBankFlags
+_08027338: .4byte gBitTable
+_0802733C: .4byte gBattleMons
+_08027340: .4byte gBattleTypeFlags
+_08027344: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8027238
+
+ thumb_func_start sub_8027348
+sub_8027348: @ 8027348
+ push {r4-r6,lr}
+ ldr r6, _08027378 @ =gSideTimer
+ ldr r4, _0802737C @ =gBankAttacker
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ movs r5, 0x1
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08027388
+ ldr r2, _08027380 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08027384 @ =gBattleCommunication
+ strb r5, [r0, 0x5]
+ b _080273C0
+ .align 2, 0
+_08027378: .4byte gSideTimer
+_0802737C: .4byte gBankAttacker
+_08027380: .4byte gBattleMoveFlags
+_08027384: .4byte gBattleCommunication
+_08027388:
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ strb r1, [r0, 0x2]
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ ldr r2, _080273D0 @ =gSideAffecting
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ movs r3, 0
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r0, _080273D4 @ =gBattleCommunication
+ strb r3, [r0, 0x5]
+_080273C0:
+ ldr r1, _080273D8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080273D0: .4byte gSideAffecting
+_080273D4: .4byte gBattleCommunication
+_080273D8: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8027348
+
+ thumb_func_start atk9A_setincreasedcriticalchance
+atk9A_setincreasedcriticalchance: @ 80273DC
+ push {lr}
+ ldr r1, _0802740C @ =gBattleMons
+ ldr r0, _08027410 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r3, 0x80
+ lsls r3, 13
+ adds r2, r1, 0
+ ands r2, r3
+ cmp r2, 0
+ beq _0802741C
+ ldr r2, _08027414 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08027418 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08027424
+ .align 2, 0
+_0802740C: .4byte gBattleMons
+_08027410: .4byte gBankAttacker
+_08027414: .4byte gBattleMoveFlags
+_08027418: .4byte gBattleCommunication
+_0802741C:
+ orrs r1, r3
+ str r1, [r0]
+ ldr r0, _08027430 @ =gBattleCommunication
+ strb r2, [r0, 0x5]
+_08027424:
+ ldr r1, _08027434 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027430: .4byte gBattleCommunication
+_08027434: .4byte gBattlescriptCurrInstr
+ thumb_func_end atk9A_setincreasedcriticalchance
+
+ thumb_func_start atk9B_transformdataexecution
+atk9B_transformdataexecution: @ 8027438
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _08027490 @ =gUnknown_02024BE8
+ ldr r2, _08027494 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08027498 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r7, _0802749C @ =gBattleMons
+ ldr r0, _080274A0 @ =gBankTarget
+ mov r12, r0
+ ldrb r1, [r0]
+ movs r6, 0x58
+ adds r0, r1, 0
+ muls r0, r6
+ adds r5, r7, 0
+ adds r5, 0x50
+ adds r0, r5
+ ldr r0, [r0]
+ movs r4, 0x80
+ lsls r4, 14
+ ands r0, r4
+ cmp r0, 0
+ bne _0802747E
+ ldr r0, _080274A4 @ =gStatuses3
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, [r1]
+ ldr r0, _080274A8 @ =0x000400c0
+ ands r2, r0
+ cmp r2, 0
+ beq _080274B4
+_0802747E:
+ ldr r2, _080274AC @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080274B0 @ =gBattleCommunication
+ movs r0, 0x1
+ b _080275C8
+ .align 2, 0
+_08027490: .4byte gUnknown_02024BE8
+_08027494: .4byte 0x0000ffff
+_08027498: .4byte gBattlescriptCurrInstr
+_0802749C: .4byte gBattleMons
+_080274A0: .4byte gBankTarget
+_080274A4: .4byte gStatuses3
+_080274A8: .4byte 0x000400c0
+_080274AC: .4byte gBattleMoveFlags
+_080274B0: .4byte gBattleCommunication
+_080274B4:
+ ldr r3, _08027588 @ =gBankAttacker
+ ldrb r0, [r3]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ ldr r0, [r1]
+ orrs r0, r4
+ str r0, [r1]
+ ldr r4, _0802758C @ =gDisableStructs
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x4]
+ ldrb r0, [r3]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0xB]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xB]
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r2, r12
+ ldrb r1, [r2]
+ muls r1, r6
+ adds r2, r7, 0
+ adds r2, 0x48
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r0]
+ ldrb r0, [r3]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x18]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1, 0x18]
+ ldr r1, _08027590 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x6
+ strb r0, [r1, 0x1]
+ mov r2, r12
+ ldrb r0, [r2]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r2]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldrb r0, [r3]
+ muls r0, r6
+ adds r5, r0, r7
+ ldrb r0, [r2]
+ muls r0, r6
+ adds r2, r0, r7
+ movs r4, 0
+ adds r6, r3, 0
+ ldr r0, _08027594 @ =gActiveBank
+ mov r8, r0
+_0802754C:
+ adds r0, r5, r4
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x23
+ bls _0802754C
+ movs r4, 0
+ ldr r7, _08027598 @ =gBattleMoves
+ ldr r3, _0802759C @ =gUnknown_02024A8C
+ adds r5, r3, 0
+ adds r5, 0x18
+_08027564:
+ lsls r1, r4, 1
+ ldrb r2, [r6]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, r2
+ adds r1, r3
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r1, [r0, 0x4]
+ cmp r1, 0x4
+ bhi _080275A0
+ adds r0, r4, r2
+ adds r0, r5
+ b _080275A6
+ .align 2, 0
+_08027588: .4byte gBankAttacker
+_0802758C: .4byte gDisableStructs
+_08027590: .4byte gBattleTextBuff1
+_08027594: .4byte gActiveBank
+_08027598: .4byte gBattleMoves
+_0802759C: .4byte gUnknown_02024A8C
+_080275A0:
+ adds r0, r4, r2
+ adds r0, r5
+ movs r1, 0x5
+_080275A6:
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08027564
+ ldrb r0, [r6]
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0x2
+ bl EmitResetActionMoveSelection
+ mov r2, r8
+ ldrb r0, [r2]
+ bl MarkBufferBankForExecution
+ ldr r1, _080275D4 @ =gBattleCommunication
+ movs r0, 0
+_080275C8:
+ strb r0, [r1, 0x5]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080275D4: .4byte gBattleCommunication
+ thumb_func_end atk9B_transformdataexecution
+
+ thumb_func_start sub_80275D8
+sub_80275D8: @ 80275D8
+ push {r4-r7,lr}
+ ldr r7, _08027608 @ =gBattleMons
+ ldr r6, _0802760C @ =gBankAttacker
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r3, r0, r7
+ ldrh r0, [r3, 0x2C]
+ lsrs r1, r0, 2
+ adds r2, r1, 0
+ cmp r1, 0
+ bne _080275F2
+ movs r2, 0x1
+_080275F2:
+ ldrh r0, [r3, 0x28]
+ cmp r0, r2
+ bhi _08027618
+ ldr r1, _08027610 @ =gBattleMoveDamage
+ movs r0, 0
+ str r0, [r1]
+ ldr r1, _08027614 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0802766C
+ .align 2, 0
+_08027608: .4byte gBattleMons
+_0802760C: .4byte gBankAttacker
+_08027610: .4byte gBattleMoveDamage
+_08027614: .4byte gBattleCommunication
+_08027618:
+ ldr r4, _0802767C @ =gBattleMoveDamage
+ str r1, [r4]
+ cmp r1, 0
+ bne _08027624
+ movs r0, 0x1
+ str r0, [r4]
+_08027624:
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r3, r7, 0
+ adds r3, 0x50
+ adds r2, r3
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 17
+ orrs r0, r1
+ str r0, [r2]
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r3
+ ldr r0, [r1]
+ ldr r2, _08027680 @ =0xffff1fff
+ ands r0, r2
+ str r0, [r1]
+ ldr r2, _08027684 @ =gDisableStructs
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, [r4]
+ movs r2, 0
+ strb r1, [r0, 0xA]
+ ldr r0, _08027688 @ =gBattleCommunication
+ strb r2, [r0, 0x5]
+ ldr r2, _0802768C @ =gHitMarker
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 1
+ orrs r0, r1
+ str r0, [r2]
+_0802766C:
+ ldr r1, _08027690 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802767C: .4byte gBattleMoveDamage
+_08027680: .4byte 0xffff1fff
+_08027684: .4byte gDisableStructs
+_08027688: .4byte gBattleCommunication
+_0802768C: .4byte gHitMarker
+_08027690: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_80275D8
+
+ thumb_func_start sub_8027694
+sub_8027694: @ 8027694
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r3, 0
+ ldr r0, _080276D4 @ =gUnknown_081FACFE
+ ldrh r1, [r0]
+ ldr r4, _080276D8 @ =0x0000fffe
+ adds r5, r0, 0
+ cmp r1, r4
+ beq _080276BC
+ cmp r1, r2
+ beq _080276BC
+ adds r1, r5, 0
+_080276AE:
+ adds r1, 0x2
+ adds r3, 0x1
+ ldrh r0, [r1]
+ cmp r0, r4
+ beq _080276BC
+ cmp r0, r2
+ bne _080276AE
+_080276BC:
+ lsls r0, r3, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ ldr r0, _080276D8 @ =0x0000fffe
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080276D4: .4byte gUnknown_081FACFE
+_080276D8: .4byte 0x0000fffe
+ thumb_func_end sub_8027694
+
+ thumb_func_start atk9D_copyattack
+atk9D_copyattack: @ 80276DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08027754 @ =gUnknown_02024BE8
+ ldr r1, _08027758 @ =0x0000ffff
+ adds r7, r1, 0
+ strh r7, [r0]
+ ldr r5, _0802775C @ =gLastUsedMove
+ ldr r6, _08027760 @ =gBankTarget
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ bl sub_8027694
+ lsls r0, 24
+ cmp r0, 0
+ bne _08027736
+ ldr r3, _08027764 @ =gBattleMons
+ ldr r2, _08027768 @ =gBankAttacker
+ ldrb r1, [r2]
+ movs r0, 0x58
+ adds r4, r1, 0
+ muls r4, r0
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r4, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 14
+ ands r1, r0
+ mov r12, r3
+ mov r9, r2
+ cmp r1, 0
+ bne _08027736
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08027736
+ cmp r1, r7
+ bne _08027770
+_08027736:
+ ldr r3, _0802776C @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _080278A8
+ .align 2, 0
+_08027754: .4byte gUnknown_02024BE8
+_08027758: .4byte 0x0000ffff
+_0802775C: .4byte gLastUsedMove
+_08027760: .4byte gBankTarget
+_08027764: .4byte gBattleMons
+_08027768: .4byte gBankAttacker
+_0802776C: .4byte gBattlescriptCurrInstr
+_08027770:
+ movs r2, 0
+ mov r3, r12
+ adds r3, 0xC
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ ldr r4, _08027800 @ =gBattlescriptCurrInstr
+ mov r10, r4
+ cmp r0, r1
+ beq _080277AA
+ mov r8, r3
+ adds r7, r5, 0
+ adds r5, r6, 0
+ mov r4, r9
+ movs r3, 0x58
+_0802778C:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080277AA
+ lsls r1, r2, 1
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r1, r0
+ add r1, r8
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r1, [r1]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0802778C
+_080277AA:
+ cmp r2, 0x4
+ bne _0802788C
+ ldr r5, _08027804 @ =gCurrMovePos
+ ldrb r1, [r5]
+ lsls r1, 1
+ mov r2, r9
+ ldrb r0, [r2]
+ movs r6, 0x58
+ muls r0, r6
+ adds r1, r0
+ mov r0, r12
+ adds r0, 0xC
+ adds r1, r0
+ ldr r2, _08027808 @ =gLastUsedMove
+ ldr r3, _0802780C @ =gBankTarget
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r4, _08027810 @ =gBattleMoves
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r4, [r0, 0x4]
+ cmp r4, 0x4
+ bhi _08027814
+ mov r1, r9
+ ldrb r0, [r1]
+ muls r0, r6
+ ldrb r1, [r5]
+ adds r0, r1
+ mov r1, r12
+ adds r1, 0x24
+ adds r0, r1
+ strb r4, [r0]
+ b _08027828
+ .align 2, 0
+_08027800: .4byte gBattlescriptCurrInstr
+_08027804: .4byte gCurrMovePos
+_08027808: .4byte gLastUsedMove
+_0802780C: .4byte gBankTarget
+_08027810: .4byte gBattleMoves
+_08027814:
+ mov r4, r9
+ ldrb r0, [r4]
+ muls r0, r6
+ ldrb r1, [r5]
+ adds r0, r1
+ mov r1, r12
+ adds r1, 0x24
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+_08027828:
+ ldr r1, _08027880 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08027884 @ =gDisableStructs
+ mov r2, r9
+ ldrb r0, [r2]
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r4, [r2, 0x18]
+ lsrs r3, r4, 4
+ ldr r1, _08027888 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ orrs r1, r3
+ lsls r1, 4
+ movs r0, 0xF
+ ands r0, r4
+ orrs r0, r1
+ strb r0, [r2, 0x18]
+ mov r4, r10
+ ldr r0, [r4]
+ adds r0, 0x5
+ str r0, [r4]
+ b _080278A8
+ .align 2, 0
+_08027880: .4byte gBattleTextBuff1
+_08027884: .4byte gDisableStructs
+_08027888: .4byte gBitTable
+_0802788C:
+ mov r0, r10
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ mov r2, r10
+ str r1, [r2]
+_080278A8:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk9D_copyattack
+
+ thumb_func_start sub_80278B8
+sub_80278B8: @ 80278B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, _08027938 @ =gCurrentMove
+ movs r6, 0xB1
+ lsls r6, 1
+ ldr r5, _0802793C @ =gUnknown_081FACFE
+ ldr r0, _08027940 @ =gBattlescriptCurrInstr
+ mov r8, r0
+_080278CA:
+ bl Random
+ ldr r2, _08027944 @ =0x000001ff
+ adds r1, r2, 0
+ ands r0, r1
+ adds r0, 0x1
+ strh r0, [r7]
+ cmp r0, r6
+ bhi _080278CA
+ movs r0, 0x3
+_080278DE:
+ subs r0, 0x1
+ cmp r0, 0
+ bge _080278DE
+ ldr r4, _08027938 @ =gCurrentMove
+ ldrh r2, [r4]
+ ldr r3, _08027948 @ =0x0000ffff
+ subs r0, r5, 0x2
+_080278EC:
+ adds r0, 0x2
+ ldrh r1, [r0]
+ cmp r1, r2
+ beq _080278F8
+ cmp r1, r3
+ bne _080278EC
+_080278F8:
+ ldr r0, _08027948 @ =0x0000ffff
+ cmp r1, r0
+ bne _080278CA
+ ldr r2, _0802794C @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _08027950 @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r3, _08027954 @ =gUnknown_081D6BBC
+ ldr r2, _08027958 @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ mov r1, r8
+ str r0, [r1]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _0802795C @ =gBankTarget
+ strb r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027938: .4byte gCurrentMove
+_0802793C: .4byte gUnknown_081FACFE
+_08027940: .4byte gBattlescriptCurrInstr
+_08027944: .4byte 0x000001ff
+_08027948: .4byte 0x0000ffff
+_0802794C: .4byte gHitMarker
+_08027950: .4byte 0xfffffbff
+_08027954: .4byte gUnknown_081D6BBC
+_08027958: .4byte gBattleMoves
+_0802795C: .4byte gBankTarget
+ thumb_func_end sub_80278B8
+
+ thumb_func_start sub_8027960
+sub_8027960: @ 8027960
+ ldr r3, _08027980 @ =gBattleMoveDamage
+ ldr r2, _08027984 @ =gBattleMons
+ ldr r0, _08027988 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ str r0, [r3]
+ ldr r1, _0802798C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08027980: .4byte gBattleMoveDamage
+_08027984: .4byte gBattleMons
+_08027988: .4byte gBankAttacker
+_0802798C: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8027960
+
+ thumb_func_start atkA0_psywavedamageeffect
+atkA0_psywavedamageeffect: @ 8027990
+ push {r4,lr}
+ movs r4, 0xF
+_08027994:
+ bl Random
+ adds r3, r4, 0
+ ands r3, r0
+ cmp r3, 0xA
+ bgt _08027994
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r3, r0, 1
+ ldr r4, _080279D4 @ =gBattleMoveDamage
+ ldr r2, _080279D8 @ =gBattleMons
+ ldr r0, _080279DC @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ adds r0, 0x32
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ ldr r1, _080279E0 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080279D4: .4byte gBattleMoveDamage
+_080279D8: .4byte gBattleMons
+_080279DC: .4byte gBankAttacker
+_080279E0: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkA0_psywavedamageeffect
+
+ thumb_func_start atkA1_counterdamagecalculator
+atkA1_counterdamagecalculator: @ 80279E4
+ push {r4-r6,lr}
+ ldr r4, _08027A54 @ =gBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _08027A58 @ =gProtectStructs
+ ldrb r0, [r4]
+ lsls r0, 4
+ adds r0, r5
+ ldrb r0, [r0, 0xC]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r0, r5, 0x4
+ adds r0, r1, r0
+ ldr r3, [r0]
+ cmp r3, 0
+ beq _08027A98
+ cmp r6, r2
+ beq _08027A98
+ ldr r6, _08027A5C @ =gBattleMons
+ adds r0, r1, r5
+ ldrb r0, [r0, 0xC]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08027A98
+ ldr r1, _08027A60 @ =gBattleMoveDamage
+ lsls r0, r3, 1
+ str r0, [r1]
+ ldr r1, _08027A64 @ =gSideTimer
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ beq _08027A6C
+ ldrb r1, [r1, 0x9]
+ adds r0, r1, 0
+ muls r0, r4
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08027A6C
+ ldr r0, _08027A68 @ =gBankTarget
+ strb r1, [r0]
+ b _08027A7C
+ .align 2, 0
+_08027A54: .4byte gBankAttacker
+_08027A58: .4byte gProtectStructs
+_08027A5C: .4byte gBattleMons
+_08027A60: .4byte gBattleMoveDamage
+_08027A64: .4byte gSideTimer
+_08027A68: .4byte gBankTarget
+_08027A6C:
+ ldr r2, _08027A88 @ =gBankTarget
+ ldr r1, _08027A8C @ =gProtectStructs
+ ldr r0, _08027A90 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0xC]
+ strb r0, [r2]
+_08027A7C:
+ ldr r1, _08027A94 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027AC8
+ .align 2, 0
+_08027A88: .4byte gBankTarget
+_08027A8C: .4byte gProtectStructs
+_08027A90: .4byte gBankAttacker
+_08027A94: .4byte gBattlescriptCurrInstr
+_08027A98:
+ ldr r2, _08027AD0 @ =gSpecialStatuses
+ ldr r0, _08027AD4 @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r3, _08027AD8 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08027AC8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027AD0: .4byte gSpecialStatuses
+_08027AD4: .4byte gBankAttacker
+_08027AD8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkA1_counterdamagecalculator
+
+ thumb_func_start atkA2_mirrorcoatdamagecalculator
+atkA2_mirrorcoatdamagecalculator: @ 8027ADC
+ push {r4-r6,lr}
+ ldr r4, _08027B4C @ =gBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _08027B50 @ =gProtectStructs
+ ldrb r0, [r4]
+ lsls r0, 4
+ adds r0, r5
+ ldrb r0, [r0, 0xD]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r3, [r0]
+ cmp r3, 0
+ beq _08027B90
+ cmp r6, r2
+ beq _08027B90
+ ldr r6, _08027B54 @ =gBattleMons
+ adds r0, r1, r5
+ ldrb r0, [r0, 0xD]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08027B90
+ ldr r1, _08027B58 @ =gBattleMoveDamage
+ lsls r0, r3, 1
+ str r0, [r1]
+ ldr r1, _08027B5C @ =gSideTimer
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ beq _08027B64
+ ldrb r1, [r1, 0x9]
+ adds r0, r1, 0
+ muls r0, r4
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08027B64
+ ldr r0, _08027B60 @ =gBankTarget
+ strb r1, [r0]
+ b _08027B74
+ .align 2, 0
+_08027B4C: .4byte gBankAttacker
+_08027B50: .4byte gProtectStructs
+_08027B54: .4byte gBattleMons
+_08027B58: .4byte gBattleMoveDamage
+_08027B5C: .4byte gSideTimer
+_08027B60: .4byte gBankTarget
+_08027B64:
+ ldr r2, _08027B80 @ =gBankTarget
+ ldr r1, _08027B84 @ =gProtectStructs
+ ldr r0, _08027B88 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0xD]
+ strb r0, [r2]
+_08027B74:
+ ldr r1, _08027B8C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027BC0
+ .align 2, 0
+_08027B80: .4byte gBankTarget
+_08027B84: .4byte gProtectStructs
+_08027B88: .4byte gBankAttacker
+_08027B8C: .4byte gBattlescriptCurrInstr
+_08027B90:
+ ldr r2, _08027BC8 @ =gSpecialStatuses
+ ldr r0, _08027BCC @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r3, _08027BD0 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08027BC0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027BC8: .4byte gSpecialStatuses
+_08027BCC: .4byte gBankAttacker
+_08027BD0: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkA2_mirrorcoatdamagecalculator
+
+ thumb_func_start atkA3_disablelastusedattack
+atkA3_disablelastusedattack: @ 8027BD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r4, 0
+ ldr r2, _08027CD4 @ =gBattleMons
+ ldr r3, _08027CD8 @ =gBankTarget
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r7, r2, 0
+ adds r7, 0xC
+ adds r0, r7
+ ldr r5, _08027CDC @ =gLastUsedMove
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r0]
+ mov r9, r2
+ adds r6, r3, 0
+ ldr r2, _08027CE0 @ =gDisableStructs
+ mov r8, r2
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08027C28
+ mov r12, r6
+ movs r3, 0x58
+_08027C08:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08027C28
+ lsls r2, r4, 1
+ mov r0, r12
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ muls r0, r3
+ adds r2, r0
+ adds r2, r7
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r2]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08027C08
+_08027C28:
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08027CEC
+ cmp r4, 0x4
+ beq _08027CEC
+ movs r5, 0x58
+ adds r0, r1, 0
+ muls r0, r5
+ adds r0, r4, r0
+ mov r1, r9
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08027CEC
+ ldr r1, _08027CE4 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ lsls r2, r4, 1
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r2, r0
+ mov r3, r9
+ adds r3, 0xC
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r2, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ muls r1, r5
+ adds r2, r1
+ adds r2, r3
+ ldrh r1, [r2]
+ strh r1, [r0, 0x4]
+ bl Random
+ ldrb r2, [r6]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r8
+ movs r2, 0x3
+ ands r2, r0
+ adds r2, 0x2
+ ldrb r3, [r1, 0xB]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xB]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldrb r3, [r1, 0xB]
+ lsls r2, r3, 28
+ lsrs r2, 24
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xB]
+ ldr r1, _08027CE8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027D06
+ .align 2, 0
+_08027CD4: .4byte gBattleMons
+_08027CD8: .4byte gBankTarget
+_08027CDC: .4byte gLastUsedMove
+_08027CE0: .4byte gDisableStructs
+_08027CE4: .4byte gBattleTextBuff1
+_08027CE8: .4byte gBattlescriptCurrInstr
+_08027CEC:
+ ldr r3, _08027D14 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08027D06:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027D14: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkA3_disablelastusedattack
+
+ thumb_func_start atkA4_setencore
+atkA4_setencore: @ 8027D18
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r3, _08027E0C @ =gBattleMons
+ ldr r4, _08027E10 @ =gBankTarget
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r6, r3, 0
+ adds r6, 0xC
+ adds r0, r6
+ ldr r2, _08027E14 @ =gLastUsedMove
+ lsls r1, 1
+ adds r1, r2
+ ldrh r0, [r0]
+ mov r10, r3
+ mov r8, r2
+ ldr r2, _08027E18 @ =gDisableStructs
+ mov r9, r2
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08027D72
+ mov r12, r4
+ adds r7, r6, 0
+ mov r6, r8
+ movs r3, 0x58
+_08027D52:
+ adds r5, 0x1
+ cmp r5, 0x3
+ bgt _08027D72
+ lsls r2, r5, 1
+ mov r0, r12
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ muls r0, r3
+ adds r2, r0
+ adds r2, r7
+ lsls r1, 1
+ adds r1, r6
+ ldrh r0, [r2]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08027D52
+_08027D72:
+ ldrb r0, [r4]
+ lsls r0, 1
+ add r0, r8
+ ldrh r2, [r0]
+ cmp r2, 0xA5
+ beq _08027D86
+ cmp r2, 0xE3
+ beq _08027D86
+ cmp r2, 0x77
+ bne _08027D88
+_08027D86:
+ movs r5, 0x4
+_08027D88:
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r2, r9
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x6]
+ cmp r0, 0
+ bne _08027E20
+ cmp r5, 0x4
+ beq _08027E20
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ adds r0, r5, r2
+ mov r1, r10
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08027E20
+ lsls r0, r5, 1
+ adds r0, r2
+ subs r1, 0x18
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3, 0x6]
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ strb r5, [r0, 0xC]
+ bl Random
+ ldrb r2, [r4]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r9
+ movs r2, 0x3
+ ands r2, r0
+ adds r2, 0x3
+ ldrb r3, [r1, 0xE]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xE]
+ ldrb r0, [r4]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldrb r3, [r1, 0xE]
+ lsls r2, r3, 28
+ lsrs r2, 24
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xE]
+ ldr r1, _08027E1C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027E3A
+ .align 2, 0
+_08027E0C: .4byte gBattleMons
+_08027E10: .4byte gBankTarget
+_08027E14: .4byte gLastUsedMove
+_08027E18: .4byte gDisableStructs
+_08027E1C: .4byte gBattlescriptCurrInstr
+_08027E20:
+ ldr r3, _08027E48 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08027E3A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027E48: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkA4_setencore
+
+ thumb_func_start sub_8027E4C
+sub_8027E4C: @ 8027E4C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r7, _08027EEC @ =gBattleMons
+ ldr r0, _08027EF0 @ =gBankTarget
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r6, 0x58
+ adds r2, r0, 0
+ muls r2, r6
+ adds r0, r7, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ bne _08027F18
+ ldr r1, _08027EF4 @ =gBankAttacker
+ mov r12, r1
+ ldrb r0, [r1]
+ muls r0, r6
+ adds r0, r7
+ ldrh r4, [r0, 0x28]
+ adds r0, r2, r7
+ ldrh r2, [r0, 0x28]
+ adds r4, r2
+ asrs r4, 1
+ ldr r5, _08027EF8 @ =gBattleMoveDamage
+ mov r9, r5
+ subs r2, r4
+ str r2, [r5]
+ ldr r3, _08027EFC @ =0x02000000
+ ldr r1, _08027F00 @ =0x00016014
+ adds r0, r3, r1
+ strb r2, [r0]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r2
+ asrs r0, 8
+ ldr r5, _08027F04 @ =0x00016015
+ adds r1, r3, r5
+ strb r0, [r1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r2
+ asrs r0, 16
+ adds r5, 0x1
+ adds r1, r3, r5
+ strb r0, [r1]
+ lsrs r2, 24
+ ldr r0, _08027F08 @ =0x00016017
+ adds r3, r0
+ strb r2, [r3]
+ mov r1, r12
+ ldrb r0, [r1]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0, 0x28]
+ subs r0, r4
+ mov r5, r9
+ str r0, [r5]
+ ldr r2, _08027F0C @ =gSpecialStatuses
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r1, _08027F10 @ =0x0000ffff
+ str r1, [r0]
+ ldr r1, _08027F14 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027F32
+ .align 2, 0
+_08027EEC: .4byte gBattleMons
+_08027EF0: .4byte gBankTarget
+_08027EF4: .4byte gBankAttacker
+_08027EF8: .4byte gBattleMoveDamage
+_08027EFC: .4byte 0x02000000
+_08027F00: .4byte 0x00016014
+_08027F04: .4byte 0x00016015
+_08027F08: .4byte 0x00016017
+_08027F0C: .4byte gSpecialStatuses
+_08027F10: .4byte 0x0000ffff
+_08027F14: .4byte gBattlescriptCurrInstr
+_08027F18:
+ ldr r3, _08027F40 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08027F32:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027F40: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8027E4C
+
+ thumb_func_start sub_8027F44
+sub_8027F44: @ 8027F44
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, _08027FA8 @ =gMoveHitWith
+ ldr r4, _08027FAC @ =gBankAttacker
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ cmp r1, 0
+ beq _08027F8C
+ ldr r0, _08027FB0 @ =0x0000ffff
+ cmp r1, r0
+ beq _08027F8C
+ ldrh r0, [r2]
+ bl sub_8028350
+ lsls r0, 24
+ cmp r0, 0
+ beq _08028024
+ ldr r2, _08027FB4 @ =gProtectStructs
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08028024
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08028024
+_08027F8C:
+ ldr r3, _08027FB8 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08028110
+ .align 2, 0
+_08027FA8: .4byte gMoveHitWith
+_08027FAC: .4byte gBankAttacker
+_08027FB0: .4byte 0x0000ffff
+_08027FB4: .4byte gProtectStructs
+_08027FB8: .4byte gBattlescriptCurrInstr
+_08027FBC:
+ mov r0, r12
+ strb r5, [r0]
+ mov r1, r10
+ ldrb r0, [r1]
+ muls r0, r2
+ adds r0, r7
+ adds r0, 0x22
+ strb r5, [r0]
+ ldr r1, _08027FE0 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r5, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _08027FE4 @ =gBattlescriptCurrInstr
+ b _08028012
+ .align 2, 0
+_08027FE0: .4byte gBattleTextBuff1
+_08027FE4: .4byte gBattlescriptCurrInstr
+_08027FE8:
+ mov r0, r8
+ adds r0, 0x1
+ adds r0, r3
+ ldrb r2, [r0]
+ strb r2, [r4]
+ mov r4, r10
+ ldrb r0, [r4]
+ muls r0, r6
+ ldr r7, _0802801C @ =gBattleMons
+ adds r0, r7
+ adds r0, 0x22
+ strb r2, [r0]
+ ldr r1, _08028020 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ mov r1, r12
+_08028012:
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08028110
+ .align 2, 0
+_0802801C: .4byte gBattleMons
+_08028020: .4byte gBattleTextBuff1
+_08028024:
+ movs r4, 0
+ mov r8, r4
+ movs r7, 0x7F
+ mov r9, r7
+_0802802C:
+ bl Random
+ mov r4, r9
+ ands r4, r0
+ cmp r4, 0x70
+ bhi _0802802C
+ lsls r0, r4, 1
+ adds r4, r0, r4
+ ldr r6, _08028120 @ =gTypeEffectiveness
+ adds r3, r4, r6
+ ldr r1, _08028124 @ =gUnknown_02024C44
+ ldr r2, _08028128 @ =gBankAttacker
+ ldrb r5, [r2]
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrb r1, [r3]
+ mov r10, r2
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _08028088
+ adds r0, r4, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _08028088
+ ldr r7, _0802812C @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r5, 0
+ muls r0, r2
+ adds r3, r0, r7
+ movs r0, 0x21
+ adds r0, r3
+ mov r12, r0
+ adds r0, r4, 0x1
+ adds r0, r6
+ ldrb r5, [r0]
+ mov r1, r12
+ ldrb r0, [r1]
+ adds r1, r5, 0
+ cmp r0, r1
+ beq _08028088
+ adds r0, r3, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08027FBC
+_08028088:
+ movs r7, 0x1
+ add r8, r7
+ ldr r0, _08028130 @ =0x000003e7
+ cmp r8, r0
+ ble _0802802C
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _08028134 @ =gBattlescriptCurrInstr
+ mov r12, r1
+ ldr r3, _08028120 @ =gTypeEffectiveness
+ adds r0, r4, 0x1
+ adds r0, r3
+ mov r9, r0
+ adds r5, r3, 0
+_080280A4:
+ ldrb r1, [r5]
+ cmp r1, 0xFF
+ bgt _080280AE
+ cmp r1, 0xFE
+ bge _080280E8
+_080280AE:
+ mov r4, r10
+ ldrb r2, [r4]
+ lsls r0, r2, 1
+ ldr r7, _08028124 @ =gUnknown_02024C44
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080280E8
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x5
+ bhi _080280E8
+ movs r6, 0x58
+ adds r0, r2, 0
+ muls r0, r6
+ ldr r1, _0802812C @ =gBattleMons
+ adds r2, r0, r1
+ adds r4, r2, 0
+ adds r4, 0x21
+ ldrb r0, [r4]
+ mov r7, r9
+ ldrb r1, [r7]
+ cmp r0, r1
+ beq _080280E8
+ adds r0, r2, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r1
+ beq _080280E8
+ b _08027FE8
+_080280E8:
+ adds r5, 0x3
+ movs r0, 0x3
+ add r8, r0
+ ldr r0, _08028138 @ =0x0000014f
+ cmp r8, r0
+ bls _080280A4
+ mov r1, r12
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ mov r4, r12
+ str r1, [r4]
+_08028110:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028120: .4byte gTypeEffectiveness
+_08028124: .4byte gUnknown_02024C44
+_08028128: .4byte gBankAttacker
+_0802812C: .4byte gBattleMons
+_08028130: .4byte 0x000003e7
+_08028134: .4byte gBattlescriptCurrInstr
+_08028138: .4byte 0x0000014f
+ thumb_func_end sub_8027F44
+
+ thumb_func_start atkA7_setalwayshitflag
+atkA7_setalwayshitflag: @ 802813C
+ push {r4,lr}
+ ldr r4, _08028180 @ =gStatuses3
+ ldr r3, _08028184 @ =gBankTarget
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, [r1]
+ movs r2, 0x19
+ negs r2, r2
+ ands r0, r2
+ str r0, [r1]
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, [r1]
+ movs r2, 0x10
+ orrs r0, r2
+ str r0, [r1]
+ ldr r2, _08028188 @ =gDisableStructs
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0802818C @ =gBankAttacker
+ ldrb r1, [r1]
+ strb r1, [r0, 0x15]
+ ldr r1, _08028190 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028180: .4byte gStatuses3
+_08028184: .4byte gBankTarget
+_08028188: .4byte gDisableStructs
+_0802818C: .4byte gBankAttacker
+_08028190: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkA7_setalwayshitflag
+
+ thumb_func_start atkA8_copymovepermanently
+atkA8_copymovepermanently: @ 8028194
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ ldr r0, _080282F4 @ =gUnknown_02024BE8
+ ldr r1, _080282F8 @ =0x0000ffff
+ adds r5, r1, 0
+ strh r5, [r0]
+ ldr r3, _080282FC @ =gBattleMons
+ ldr r2, _08028300 @ =gBankAttacker
+ ldrb r1, [r2]
+ movs r0, 0x58
+ adds r4, r1, 0
+ muls r4, r0
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r4, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 14
+ ands r1, r0
+ mov r12, r3
+ mov r10, r2
+ cmp r1, 0
+ beq _080281CC
+ b _08028320
+_080281CC:
+ ldr r0, _08028304 @ =gUnknown_02024C2C
+ ldr r2, _08028308 @ =gBankTarget
+ ldrb r1, [r2]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ mov r9, r0
+ mov r8, r2
+ cmp r1, 0xA5
+ bne _080281E2
+ b _08028320
+_080281E2:
+ cmp r1, 0
+ bne _080281E8
+ b _08028320
+_080281E8:
+ cmp r1, r5
+ bne _080281EE
+ b _08028320
+_080281EE:
+ cmp r1, 0xA6
+ bne _080281F4
+ b _08028320
+_080281F4:
+ movs r7, 0
+ mov r5, r9
+ mov r0, r12
+ adds r0, 0xC
+ adds r1, r4, r0
+ mov r3, r8
+_08028200:
+ ldrh r2, [r1]
+ cmp r2, 0xA6
+ beq _08028212
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0802821A
+_08028212:
+ adds r1, 0x2
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08028200
+_0802821A:
+ cmp r7, 0x4
+ beq _08028220
+ b _08028320
+_08028220:
+ ldr r4, _0802830C @ =gCurrMovePos
+ ldrb r1, [r4]
+ lsls r1, 1
+ mov r2, r10
+ ldrb r0, [r2]
+ movs r3, 0x58
+ muls r0, r3
+ adds r1, r0
+ mov r6, r12
+ adds r6, 0xC
+ adds r1, r6
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r1]
+ mov r1, r10
+ ldrb r0, [r1]
+ adds r2, r0, 0
+ muls r2, r3
+ ldrb r4, [r4]
+ adds r2, r4
+ mov r5, r12
+ adds r5, 0x24
+ adds r2, r5
+ ldr r4, _08028310 @ =gBattleMoves
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 1
+ add r0, r9
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x4]
+ strb r0, [r2]
+ ldr r1, _08028314 @ =gActiveBank
+ mov r2, r10
+ ldrb r0, [r2]
+ strb r0, [r1]
+ movs r7, 0
+ ldrb r0, [r2]
+ muls r0, r3
+ adds r4, r0, r5
+ adds r3, r0, 0
+ add r2, sp, 0x4
+ add r5, sp, 0xC
+_08028282:
+ adds r0, r3, r6
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r1, r5, r7
+ ldrb r0, [r4]
+ strb r0, [r1]
+ adds r4, 0x1
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08028282
+ add r2, sp, 0x4
+ mov r0, r10
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r12
+ adds r0, 0x3B
+ ldrb r0, [r0]
+ strb r0, [r2, 0xC]
+ str r2, [sp]
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0x10
+ bl EmitSetAttributes
+ ldr r0, _08028314 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ ldr r1, _08028318 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldr r3, _08028304 @ =gUnknown_02024C2C
+ ldr r2, _08028308 @ =gBankTarget
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _0802831C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802833A
+ .align 2, 0
+_080282F4: .4byte gUnknown_02024BE8
+_080282F8: .4byte 0x0000ffff
+_080282FC: .4byte gBattleMons
+_08028300: .4byte gBankAttacker
+_08028304: .4byte gUnknown_02024C2C
+_08028308: .4byte gBankTarget
+_0802830C: .4byte gCurrMovePos
+_08028310: .4byte gBattleMoves
+_08028314: .4byte gActiveBank
+_08028318: .4byte gBattleTextBuff1
+_0802831C: .4byte gBattlescriptCurrInstr
+_08028320:
+ ldr r3, _0802834C @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802833A:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802834C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkA8_copymovepermanently
+
+ thumb_func_start sub_8028350
+sub_8028350: @ 8028350
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08028380 @ =gBattleMoves
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1]
+ cmp r0, 0x91
+ beq _0802837A
+ cmp r0, 0x27
+ beq _0802837A
+ cmp r0, 0x4B
+ beq _0802837A
+ cmp r0, 0x97
+ beq _0802837A
+ cmp r0, 0x9B
+ beq _0802837A
+ cmp r0, 0x1A
+ bne _08028384
+_0802837A:
+ movs r0, 0x1
+ b _08028386
+ .align 2, 0
+_08028380: .4byte gBattleMoves
+_08028384:
+ movs r0, 0
+_08028386:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8028350
+
+ thumb_func_start sub_802838C
+sub_802838C: @ 802838C
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080283AA
+ cmp r1, 0xD6
+ beq _080283AA
+ movs r0, 0x89
+ lsls r0, 1
+ cmp r1, r0
+ beq _080283AA
+ cmp r1, 0x77
+ beq _080283AA
+ cmp r1, 0x76
+ bne _080283AE
+_080283AA:
+ movs r0, 0x1
+ b _080283B0
+_080283AE:
+ movs r0, 0
+_080283B0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802838C
+
+ thumb_func_start move_weather_interaction
+move_weather_interaction: @ 80283B4
+ push {lr}
+ lsls r1, 16
+ lsrs r2, r1, 16
+ ldr r1, _0802840C @ =gBattleMoves
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x97
+ bne _080283D8
+ ldr r0, _08028410 @ =gBattleWeather
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ bne _08028418
+_080283D8:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0x91
+ beq _080283FA
+ cmp r0, 0x27
+ beq _080283FA
+ cmp r0, 0x4B
+ beq _080283FA
+ cmp r0, 0x97
+ beq _080283FA
+ cmp r0, 0x9B
+ beq _080283FA
+ cmp r0, 0x1A
+ bne _08028418
+_080283FA:
+ ldr r0, _08028414 @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 20
+ ands r0, r1
+ cmp r0, 0
+ beq _08028418
+ movs r0, 0x1
+ b _0802841A
+ .align 2, 0
+_0802840C: .4byte gBattleMoves
+_08028410: .4byte gBattleWeather
+_08028414: .4byte gHitMarker
+_08028418:
+ movs r0, 0x2
+_0802841A:
+ pop {r1}
+ bx r1
+ thumb_func_end move_weather_interaction
+
+ thumb_func_start sub_8028420
+sub_8028420: @ 8028420
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r0, _080284B0 @ =gBankAttacker
+ mov r9, r0
+ movs r1, 0x58
+ mov r8, r1
+ ldr r7, _080284B4 @ =gUnknown_02024A8C
+ movs r0, 0x84
+ lsls r0, 1
+ mov r10, r0
+_0802843E:
+ lsls r4, r5, 1
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r4, r0
+ adds r0, r7
+ ldrh r0, [r0]
+ bl sub_802838C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802847E
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r4, r0
+ adds r0, r7
+ ldrh r1, [r0]
+ cmp r1, r10
+ beq _0802847E
+ cmp r1, 0xFD
+ beq _0802847E
+ adds r0, r1, 0
+ bl sub_8028350
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802848C
+_0802847E:
+ ldr r1, _080284B8 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r0, [r0]
+ orrs r6, r0
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+_0802848C:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0802843E
+ ldr r0, _080284B0 @ =gBankAttacker
+ ldrb r0, [r0]
+ adds r1, r6, 0
+ movs r2, 0xFD
+ bl sub_8015A98
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xF
+ bne _080284C0
+ ldr r1, _080284BC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08028524
+ .align 2, 0
+_080284B0: .4byte gBankAttacker
+_080284B4: .4byte gUnknown_02024A8C
+_080284B8: .4byte gBitTable
+_080284BC: .4byte gBattlescriptCurrInstr
+_080284C0:
+ movs r7, 0x3
+ ldr r4, _08028534 @ =gBitTable
+_080284C4:
+ bl Random
+ adds r5, r7, 0
+ ands r5, r0
+ lsls r0, r5, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r6
+ cmp r0, 0
+ bne _080284C4
+ ldr r4, _08028538 @ =gUnknown_02024BEA
+ ldr r2, _0802853C @ =gBattleMons
+ lsls r1, r5, 1
+ ldr r0, _08028540 @ =gBankAttacker
+ ldrb r3, [r0]
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, r0
+ adds r2, 0xC
+ adds r1, r2
+ ldrh r0, [r1]
+ strh r0, [r4]
+ ldr r0, _08028544 @ =gCurrMovePos
+ strb r5, [r0]
+ ldr r2, _08028548 @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _0802854C @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08028550 @ =gBankTarget
+ strb r0, [r1]
+ ldr r3, _08028554 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08028524:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028534: .4byte gBitTable
+_08028538: .4byte gUnknown_02024BEA
+_0802853C: .4byte gBattleMons
+_08028540: .4byte gBankAttacker
+_08028544: .4byte gCurrMovePos
+_08028548: .4byte gHitMarker
+_0802854C: .4byte 0xfffffbff
+_08028550: .4byte gBankTarget
+_08028554: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8028420
+
+ thumb_func_start sub_8028558
+sub_8028558: @ 8028558
+ ldr r1, _0802857C @ =gBattleMons
+ ldr r0, _08028580 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 18
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08028584 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0802857C: .4byte gBattleMons
+_08028580: .4byte gBankAttacker
+_08028584: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8028558
+
+ thumb_func_start b_feature_update_destiny_bond
+b_feature_update_destiny_bond: @ 8028588
+ push {r4,r5,lr}
+ ldr r0, _080285D8 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080285DC @ =gBankTarget
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _080285E0 @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _080285D2
+ cmp r5, r3
+ beq _080285D2
+ ldr r2, _080285E4 @ =gHitMarker
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 17
+ ands r0, r1
+ cmp r0, 0
+ bne _080285D2
+ movs r0, 0x40
+ orrs r1, r0
+ str r1, [r2]
+_080285D2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080285D8: .4byte gBankAttacker
+_080285DC: .4byte gBankTarget
+_080285E0: .4byte gBattleMons
+_080285E4: .4byte gHitMarker
+ thumb_func_end b_feature_update_destiny_bond
+
+ thumb_func_start atkAB_802A458
+atkAB_802A458: @ 80285E8
+ push {lr}
+ bl b_feature_update_destiny_bond
+ ldr r1, _080285FC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080285FC: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkAB_802A458
+
+ thumb_func_start atkAC_remaininghptopower
+atkAC_remaininghptopower: @ 8028600
+ push {lr}
+ ldr r2, _08028654 @ =gBattleMons
+ ldr r0, _08028658 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ movs r2, 0x28
+ ldrsh r0, [r1, r2]
+ movs r2, 0x2C
+ ldrsh r1, [r1, r2]
+ movs r2, 0x30
+ bl GetScaledHPFraction
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r3, 0
+ ldr r0, _0802865C @ =gUnknown_081FAD26
+ ldrb r2, [r0]
+ cmp r1, r2
+ ble _0802863A
+ adds r2, r0, 0
+_0802862C:
+ adds r3, 0x2
+ cmp r3, 0xB
+ bgt _0802863A
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ bgt _0802862C
+_0802863A:
+ ldr r2, _08028660 @ =gDynamicBasePower
+ ldr r1, _0802865C @ =gUnknown_081FAD26
+ adds r0, r3, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2]
+ ldr r1, _08028664 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028654: .4byte gBattleMons
+_08028658: .4byte gBankAttacker
+_0802865C: .4byte gUnknown_081FAD26
+_08028660: .4byte gDynamicBasePower
+_08028664: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkAC_remaininghptopower
+
+ thumb_func_start sub_8028668
+sub_8028668: @ 8028668
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, _080287F8 @ =gLastUsedMove
+ ldr r1, _080287FC @ =gBankTarget
+ ldrb r2, [r1]
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r3, [r0]
+ mov r8, r1
+ cmp r3, 0
+ bne _08028688
+ b _08028828
+_08028688:
+ ldr r0, _08028800 @ =0x0000ffff
+ cmp r3, r0
+ bne _08028690
+ b _08028828
+_08028690:
+ ldr r1, _08028804 @ =gStatuses3
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08028808 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _080286A2
+ b _08028828
+_080286A2:
+ movs r7, 0
+ ldr r0, _0802880C @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r2
+ adds r2, r0, 0
+ adds r2, 0xC
+ adds r1, r2
+ ldrh r1, [r1]
+ cmp r3, r1
+ beq _080286DA
+ adds r6, r4, 0
+ mov r5, r8
+ adds r4, r2, 0
+ movs r3, 0x58
+_080286BE:
+ adds r7, 0x1
+ cmp r7, 0x3
+ bgt _080286DA
+ ldrb r0, [r5]
+ lsls r2, r0, 1
+ adds r2, r6
+ lsls r1, r7, 1
+ muls r0, r3
+ adds r1, r0
+ adds r1, r4
+ ldrh r0, [r2]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080286BE
+_080286DA:
+ cmp r7, 0x4
+ bne _080286E0
+ b _08028828
+_080286E0:
+ mov r4, r8
+ ldrb r0, [r4]
+ movs r1, 0x58
+ mov r9, r1
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7, r0
+ ldr r1, _0802880C @ =gBattleMons
+ adds r1, 0x24
+ mov r10, r1
+ add r0, r10
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _08028700
+ b _08028828
+_08028700:
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ adds r6, r1, 0x2
+ ldrb r0, [r4]
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7, r0
+ add r0, r10
+ ldrb r0, [r0]
+ cmp r0, r6
+ bge _0802871E
+ adds r6, r0, 0
+_0802871E:
+ ldr r1, _08028810 @ =gBattleTextBuff1
+ movs r5, 0xFD
+ strb r5, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldr r2, _080287F8 @ =gLastUsedMove
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r4, _08028814 @ =gBattleTextBuff2
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ strb r5, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x3]
+ strb r6, [r4, 0x4]
+ subs r0, 0x2
+ strb r0, [r4, 0x5]
+ mov r1, r8
+ ldrb r0, [r1]
+ mov r1, r9
+ muls r1, r0
+ adds r1, r7, r1
+ add r1, r10
+ ldrb r0, [r1]
+ subs r0, r6
+ strb r0, [r1]
+ ldr r4, _08028818 @ =gActiveBank
+ mov r3, r8
+ ldrb r0, [r3]
+ strb r0, [r4]
+ ldr r1, _0802881C @ =gDisableStructs
+ ldrb r3, [r4]
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _08028820 @ =gBitTable
+ lsls r0, r7, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080287D2
+ mov r2, r9
+ muls r2, r3
+ ldr r0, _0802880C @ =gBattleMons
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _080287D2
+ adds r1, r7, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r3, r10
+ adds r0, r2, r3
+ adds r0, r7
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+_080287D2:
+ ldr r1, _08028824 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ ldr r1, _0802880C @ =gBattleMons
+ ldr r0, _080287FC @ =gBankTarget
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r7, r0
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08028842
+ adds r0, r2, 0
+ bl CancelMultiTurnMoves
+ b _08028842
+ .align 2, 0
+_080287F8: .4byte gLastUsedMove
+_080287FC: .4byte gBankTarget
+_08028800: .4byte 0x0000ffff
+_08028804: .4byte gStatuses3
+_08028808: .4byte 0x000400c0
+_0802880C: .4byte gBattleMons
+_08028810: .4byte gBattleTextBuff1
+_08028814: .4byte gBattleTextBuff2
+_08028818: .4byte gActiveBank
+_0802881C: .4byte gDisableStructs
+_08028820: .4byte gBitTable
+_08028824: .4byte gBattlescriptCurrInstr
+_08028828:
+ ldr r3, _08028854 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08028842:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028854: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8028668
+
+ thumb_func_start sub_8028858
+sub_8028858: @ 8028858
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r7, 0
+ ldr r0, _080288AC @ =gCurrentMove
+ ldrh r0, [r0]
+ cmp r0, 0xD7
+ beq _08028872
+ b _08028A26
+_08028872:
+ ldr r5, _080288B0 @ =gBattleCommunication
+ strb r7, [r5, 0x5]
+ ldr r6, _080288B4 @ =gBankAttacker
+ ldrb r0, [r6]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r1, _080288B8 @ =gEnemyParty
+ mov r9, r1
+ cmp r0, 0
+ bne _0802888C
+ ldr r2, _080288BC @ =gPlayerParty
+ mov r9, r2
+_0802888C:
+ ldr r4, _080288C0 @ =gBattleMons
+ ldrb r3, [r6]
+ movs r0, 0x58
+ adds r2, r3, 0
+ muls r2, r0
+ adds r0, r2, r4
+ adds r1, r0, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0x2B
+ beq _080288C4
+ adds r0, r4, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ str r7, [r0]
+ b _080288D4
+ .align 2, 0
+_080288AC: .4byte gCurrentMove
+_080288B0: .4byte gBattleCommunication
+_080288B4: .4byte gBankAttacker
+_080288B8: .4byte gEnemyParty
+_080288BC: .4byte gPlayerParty
+_080288C0: .4byte gBattleMons
+_080288C4:
+ ldrb r1, [r1]
+ adds r0, r3, 0
+ bl sub_81074C4
+ ldrb r0, [r5, 0x5]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+_080288D4:
+ ldr r4, _08028934 @ =gActiveBank
+ ldr r0, _08028938 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ movs r6, 0x2
+ eors r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r1, _0802893C @ =0x02000000
+ ldr r2, _08028940 @ =0x00016003
+ adds r1, r2
+ strb r0, [r1]
+ strb r0, [r4]
+ ldr r0, _08028944 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08028964
+ ldr r0, _08028948 @ =gAbsentBankFlags
+ ldrb r2, [r0]
+ ldr r1, _0802894C @ =gBitTable
+ ldrb r3, [r4]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _08028964
+ ldr r5, _08028950 @ =gBattleMons
+ movs r0, 0x58
+ adds r4, r3, 0
+ muls r4, r0
+ adds r0, r4, r5
+ adds r1, r0, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0x2B
+ beq _08028954
+ adds r0, r5, 0
+ adds r0, 0x4C
+ adds r0, r4, r0
+ str r2, [r0]
+ b _08028964
+ .align 2, 0
+_08028934: .4byte gActiveBank
+_08028938: .4byte gBankAttacker
+_0802893C: .4byte 0x02000000
+_08028940: .4byte 0x00016003
+_08028944: .4byte gBattleTypeFlags
+_08028948: .4byte gAbsentBankFlags
+_0802894C: .4byte gBitTable
+_08028950: .4byte gBattleMons
+_08028954:
+ ldrb r1, [r1]
+ adds r0, r3, 0
+ bl sub_81074C4
+ ldr r1, _080289AC @ =gBattleCommunication
+ ldrb r0, [r1, 0x5]
+ orrs r0, r6
+ strb r0, [r1, 0x5]
+_08028964:
+ movs r6, 0
+ ldr r0, _080289B0 @ =gBattleMons
+ mov r8, r0
+_0802896A:
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ add r4, r9
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r5, 0
+ beq _08028A1E
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r5, r0
+ beq _08028A1E
+ ldr r2, _080289B4 @ =gBattlePartyID
+ ldr r0, _080289B8 @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _080289BC
+ movs r0, 0x58
+ muls r0, r1
+ b _080289EC
+ .align 2, 0
+_080289AC: .4byte gBattleCommunication
+_080289B0: .4byte gBattleMons
+_080289B4: .4byte gBattlePartyID
+_080289B8: .4byte gBankAttacker
+_080289BC:
+ ldr r0, _080289F4 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08028A04
+ ldr r0, _080289F8 @ =gActiveBank
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _08028A04
+ ldr r0, _080289FC @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _08028A00 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08028A04
+ movs r0, 0x58
+ muls r0, r3
+_080289EC:
+ add r0, r8
+ adds r0, 0x20
+ ldrb r0, [r0]
+ b _08028A10
+ .align 2, 0
+_080289F4: .4byte gBattleTypeFlags
+_080289F8: .4byte gActiveBank
+_080289FC: .4byte gAbsentBankFlags
+_08028A00: .4byte gBitTable
+_08028A04:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetAbilityBySpecies
+ lsls r0, 24
+ lsrs r0, 24
+_08028A10:
+ cmp r0, 0x2B
+ beq _08028A1E
+ movs r0, 0x1
+ lsls r0, r6
+ orrs r7, r0
+ lsls r0, r7, 24
+ lsrs r7, r0, 24
+_08028A1E:
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _0802896A
+ b _08028A7E
+_08028A26:
+ ldr r1, _08028AB4 @ =gBattleCommunication
+ movs r0, 0x4
+ strb r0, [r1, 0x5]
+ movs r7, 0x3F
+ ldr r2, _08028AB8 @ =gBattleMons
+ ldr r1, _08028ABC @ =gBankAttacker
+ ldrb r0, [r1]
+ movs r6, 0x58
+ muls r0, r6
+ adds r5, r2, 0
+ adds r5, 0x4C
+ adds r0, r5
+ str r4, [r0]
+ ldrb r0, [r1]
+ bl GetBankIdentity
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r3, _08028AC0 @ =gActiveBank
+ strb r0, [r3]
+ ldr r0, _08028AC4 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08028A7E
+ ldr r0, _08028AC8 @ =gAbsentBankFlags
+ ldrb r2, [r0]
+ ldr r1, _08028ACC @ =gBitTable
+ ldrb r3, [r3]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _08028A7E
+ adds r0, r3, 0
+ muls r0, r6
+ adds r0, r5
+ str r2, [r0]
+_08028A7E:
+ ldr r4, _08028AC0 @ =gActiveBank
+ ldr r0, _08028ABC @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r4]
+ add r1, sp, 0x4
+ str r1, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ adds r2, r7, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r1, _08028AD0 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028AB4: .4byte gBattleCommunication
+_08028AB8: .4byte gBattleMons
+_08028ABC: .4byte gBankAttacker
+_08028AC0: .4byte gActiveBank
+_08028AC4: .4byte gBattleTypeFlags
+_08028AC8: .4byte gAbsentBankFlags
+_08028ACC: .4byte gBitTable
+_08028AD0: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8028858
+
+ thumb_func_start sub_8028AD4
+sub_8028AD4: @ 8028AD4
+ push {r4-r7,lr}
+ ldr r7, _08028B24 @ =gBattleMons
+ ldr r0, _08028B28 @ =gBankTarget
+ ldrb r3, [r0]
+ movs r6, 0x58
+ adds r1, r3, 0
+ muls r1, r6
+ adds r0, r7, 0
+ adds r0, 0x50
+ adds r4, r1, r0
+ ldr r2, [r4]
+ movs r5, 0x80
+ lsls r5, 21
+ adds r0, r2, 0
+ ands r0, r5
+ cmp r0, 0
+ bne _08028B06
+ ldr r1, _08028B2C @ =gStatuses3
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08028B30 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _08028B38
+_08028B06:
+ ldr r3, _08028B34 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08028B5C
+ .align 2, 0
+_08028B24: .4byte gBattleMons
+_08028B28: .4byte gBankTarget
+_08028B2C: .4byte gStatuses3
+_08028B30: .4byte 0x000400c0
+_08028B34: .4byte gBattlescriptCurrInstr
+_08028B38:
+ orrs r2, r5
+ str r2, [r4]
+ ldr r1, _08028B64 @ =gBattleMoveDamage
+ ldr r0, _08028B68 @ =gBankAttacker
+ ldrb r0, [r0]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r1]
+ cmp r0, 0
+ bne _08028B54
+ movs r0, 0x1
+ str r0, [r1]
+_08028B54:
+ ldr r1, _08028B6C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08028B5C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028B64: .4byte gBattleMoveDamage
+_08028B68: .4byte gBankAttacker
+_08028B6C: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8028AD4
+
+ thumb_func_start sub_8028B70
+sub_8028B70: @ 8028B70
+ push {r4,lr}
+ ldr r4, _08028BC4 @ =gBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08028BC8 @ =gSideTimer
+ lsls r2, r0, 1
+ adds r0, r2, r0
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrb r0, [r3, 0x6]
+ cmp r0, 0x3
+ bne _08028BD4
+ ldr r2, _08028BCC @ =gSpecialStatuses
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r3, _08028BD0 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08028BEE
+ .align 2, 0
+_08028BC4: .4byte gBankAttacker
+_08028BC8: .4byte gSideTimer
+_08028BCC: .4byte gSpecialStatuses
+_08028BD0: .4byte gBattlescriptCurrInstr
+_08028BD4:
+ ldr r1, _08028BF4 @ =gSideAffecting
+ adds r1, r2, r1
+ ldrh r2, [r1]
+ movs r0, 0x10
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r0, [r3, 0x6]
+ adds r0, 0x1
+ strb r0, [r3, 0x6]
+ ldr r1, _08028BF8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08028BEE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028BF4: .4byte gSideAffecting
+_08028BF8: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8028B70
+
+ thumb_func_start sub_8028BFC
+sub_8028BFC: @ 8028BFC
+ ldr r1, _08028C20 @ =gBattleMons
+ ldr r0, _08028C24 @ =gBankTarget
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 22
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08028C28 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08028C20: .4byte gBattleMons
+_08028C24: .4byte gBankTarget
+_08028C28: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8028BFC
+
+ thumb_func_start atkB2_setperishsong
+atkB2_setperishsong: @ 8028C2C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r6, 0
+ movs r3, 0
+ ldr r0, _08028C70 @ =gNoOfAllBanks
+ adds r7, r0, 0
+ ldr r0, _08028C74 @ =gBankAttacker
+ mov r8, r0
+ ldrb r1, [r7]
+ cmp r6, r1
+ bge _08028C98
+ movs r5, 0x20
+ ldr r0, _08028C78 @ =gBattleMons
+ mov r12, r0
+ ldr r0, _08028C7C @ =gDisableStructs
+ adds r4, r0, 0
+ adds r4, 0xF
+ ldr r2, _08028C80 @ =gStatuses3
+_08028C54:
+ ldr r1, [r2]
+ adds r0, r1, 0
+ ands r0, r5
+ cmp r0, 0
+ bne _08028C6C
+ movs r0, 0x58
+ muls r0, r3
+ add r0, r12
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2B
+ bne _08028C84
+_08028C6C:
+ adds r6, 0x1
+ b _08028C8C
+ .align 2, 0
+_08028C70: .4byte gNoOfAllBanks
+_08028C74: .4byte gBankAttacker
+_08028C78: .4byte gBattleMons
+_08028C7C: .4byte gDisableStructs
+_08028C80: .4byte gStatuses3
+_08028C84:
+ orrs r1, r5
+ str r1, [r2]
+ movs r0, 0x33
+ strb r0, [r4]
+_08028C8C:
+ adds r4, 0x1C
+ adds r2, 0x4
+ adds r3, 0x1
+ ldrb r0, [r7]
+ cmp r3, r0
+ blt _08028C54
+_08028C98:
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_80153D0
+ ldr r0, _08028CC4 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r6, r0
+ bne _08028CCC
+ ldr r3, _08028CC8 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08028CD4
+ .align 2, 0
+_08028CC4: .4byte gNoOfAllBanks
+_08028CC8: .4byte gBattlescriptCurrInstr
+_08028CCC:
+ ldr r1, _08028CE0 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08028CD4:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028CE0: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkB2_setperishsong
+
+ thumb_func_start atkB3_rolloutdamagecalculation
+atkB3_rolloutdamagecalculation: @ 8028CE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _08028D08 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08028D18
+ ldr r0, _08028D0C @ =gBankAttacker
+ ldrb r0, [r0]
+ bl CancelMultiTurnMoves
+ ldr r1, _08028D10 @ =gBattlescriptCurrInstr
+ ldr r0, _08028D14 @ =BattleScript_1D6F74
+ str r0, [r1]
+ b _08028E30
+ .align 2, 0
+_08028D08: .4byte gBattleMoveFlags
+_08028D0C: .4byte gBankAttacker
+_08028D10: .4byte gBattlescriptCurrInstr
+_08028D14: .4byte BattleScript_1D6F74
+_08028D18:
+ ldr r2, _08028E3C @ =gBattleMons
+ ldr r1, _08028E40 @ =gBankAttacker
+ ldrb r3, [r1]
+ movs r5, 0x58
+ adds r0, r3, 0
+ muls r0, r5
+ adds r4, r2, 0
+ adds r4, 0x50
+ adds r0, r4
+ ldr r0, [r0]
+ movs r7, 0x80
+ lsls r7, 5
+ ands r0, r7
+ adds r6, r1, 0
+ mov r9, r2
+ ldr r1, _08028E44 @ =gDisableStructs
+ mov r12, r1
+ ldr r2, _08028E48 @ =gCurrentMove
+ mov r8, r2
+ cmp r0, 0
+ bne _08028D8A
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ add r0, r12
+ ldrb r2, [r0, 0x11]
+ movs r1, 0x10
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x5
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r2, [r0, 0x11]
+ movs r1, 0xF
+ ands r1, r2
+ movs r2, 0x50
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r4
+ ldr r0, [r1]
+ orrs r0, r7
+ str r0, [r1]
+ ldr r1, _08028E4C @ =gLockedMove
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r1
+ mov r2, r8
+ ldrh r1, [r2]
+ strh r1, [r0]
+_08028D8A:
+ ldrb r0, [r6]
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ add r2, r12
+ ldrb r3, [r2, 0x11]
+ lsls r1, r3, 28
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x11]
+ cmp r1, 0
+ bne _08028DBE
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r4
+ ldr r0, [r1]
+ ldr r2, _08028E50 @ =0xffffefff
+ ands r0, r2
+ str r0, [r1]
+_08028DBE:
+ ldr r3, _08028E54 @ =gDynamicBasePower
+ ldr r2, _08028E58 @ =gBattleMoves
+ mov r0, r8
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ strh r0, [r3]
+ movs r2, 0x1
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r1, r12
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x11]
+ lsls r0, 28
+ lsrs r0, 28
+ movs r1, 0x5
+ subs r1, r0
+ ldr r7, _08028E5C @ =gBattlescriptCurrInstr
+ adds r5, r3, 0
+ cmp r2, r1
+ bge _08028E0C
+ adds r1, r5, 0
+ adds r3, r4, 0
+ movs r4, 0x5
+_08028DF8:
+ ldrh r0, [r1]
+ lsls r0, 1
+ strh r0, [r1]
+ adds r2, 0x1
+ ldrb r0, [r3, 0x11]
+ lsls r0, 28
+ lsrs r0, 28
+ subs r0, r4, r0
+ cmp r2, r0
+ blt _08028DF8
+_08028E0C:
+ ldrb r1, [r6]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r9
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 23
+ ands r0, r1
+ cmp r0, 0
+ beq _08028E2A
+ ldrh r0, [r5]
+ lsls r0, 1
+ strh r0, [r5]
+_08028E2A:
+ ldr r0, [r7]
+ adds r0, 0x1
+ str r0, [r7]
+_08028E30:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028E3C: .4byte gBattleMons
+_08028E40: .4byte gBankAttacker
+_08028E44: .4byte gDisableStructs
+_08028E48: .4byte gCurrentMove
+_08028E4C: .4byte gLockedMove
+_08028E50: .4byte 0xffffefff
+_08028E54: .4byte gDynamicBasePower
+_08028E58: .4byte gBattleMoves
+_08028E5C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkB3_rolloutdamagecalculation
+
+ thumb_func_start atkB4_jumpifconfusedandattackmaxed
+atkB4_jumpifconfusedandattackmaxed: @ 8028E60
+ push {r4,r5,lr}
+ ldr r5, _08028EB0 @ =gBattleMons
+ ldr r0, _08028EB4 @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r5, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ ldr r4, _08028EB8 @ =gBattlescriptCurrInstr
+ cmp r0, 0
+ beq _08028EBC
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x1]
+ adds r0, r3
+ adds r1, r5, 0
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xC
+ bne _08028EBC
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08028EC2
+ .align 2, 0
+_08028EB0: .4byte gBattleMons
+_08028EB4: .4byte gBankTarget
+_08028EB8: .4byte gBattlescriptCurrInstr
+_08028EBC:
+ ldr r0, [r4]
+ adds r0, 0x6
+ str r0, [r4]
+_08028EC2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end atkB4_jumpifconfusedandattackmaxed
+
+ thumb_func_start sub_8028EC8
+sub_8028EC8: @ 8028EC8
+ push {r4,r5,lr}
+ ldr r0, _08028EF0 @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08028F04
+ ldr r2, _08028EF4 @ =gDisableStructs
+ ldr r0, _08028EF8 @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x10]
+ ldr r1, _08028EFC @ =gBattlescriptCurrInstr
+ ldr r0, _08028F00 @ =BattleScript_1D6F74
+ str r0, [r1]
+ b _08028F5C
+ .align 2, 0
+_08028EF0: .4byte gBattleMoveFlags
+_08028EF4: .4byte gDisableStructs
+_08028EF8: .4byte gBankAttacker
+_08028EFC: .4byte gBattlescriptCurrInstr
+_08028F00: .4byte BattleScript_1D6F74
+_08028F04:
+ ldr r5, _08028F64 @ =gDisableStructs
+ ldr r4, _08028F68 @ =gBankAttacker
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0x5
+ beq _08028F1C
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+_08028F1C:
+ ldr r3, _08028F6C @ =gDynamicBasePower
+ ldr r2, _08028F70 @ =gBattleMoves
+ ldr r0, _08028F74 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ strh r0, [r3]
+ movs r2, 0x1
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r4, _08028F78 @ =gBattlescriptCurrInstr
+ ldrb r1, [r0, 0x10]
+ cmp r2, r1
+ bge _08028F56
+ adds r1, r3, 0
+ adds r3, r0, 0
+_08028F48:
+ ldrh r0, [r1]
+ lsls r0, 1
+ strh r0, [r1]
+ adds r2, 0x1
+ ldrb r0, [r3, 0x10]
+ cmp r2, r0
+ blt _08028F48
+_08028F56:
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+_08028F5C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028F64: .4byte gDisableStructs
+_08028F68: .4byte gBankAttacker
+_08028F6C: .4byte gDynamicBasePower
+_08028F70: .4byte gBattleMoves
+_08028F74: .4byte gCurrentMove
+_08028F78: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8028EC8
+
+ thumb_func_start atkB6_happinesstodamagecalculation
+atkB6_happinesstodamagecalculation: @ 8028F7C
+ push {r4,lr}
+ ldr r2, _08028FA8 @ =gBattleMoves
+ ldr r0, _08028FAC @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x79
+ bne _08028FBC
+ ldr r4, _08028FB0 @ =gDynamicBasePower
+ ldr r2, _08028FB4 @ =gBattleMons
+ ldr r0, _08028FB8 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ b _08028FD2
+ .align 2, 0
+_08028FA8: .4byte gBattleMoves
+_08028FAC: .4byte gCurrentMove
+_08028FB0: .4byte gDynamicBasePower
+_08028FB4: .4byte gBattleMons
+_08028FB8: .4byte gBankAttacker
+_08028FBC:
+ ldr r4, _08028FF0 @ =gDynamicBasePower
+ ldr r2, _08028FF4 @ =gBattleMons
+ ldr r0, _08028FF8 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ movs r1, 0xFF
+ subs r1, r0
+_08028FD2:
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ movs r1, 0x19
+ bl __divsi3
+ strh r0, [r4]
+ ldr r1, _08028FFC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028FF0: .4byte gDynamicBasePower
+_08028FF4: .4byte gBattleMons
+_08028FF8: .4byte gBankAttacker
+_08028FFC: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkB6_happinesstodamagecalculation
+
+ thumb_func_start atkB7_presentdamagecalculation
+atkB7_presentdamagecalculation: @ 8029000
+ push {r4,lr}
+ bl Random
+ movs r4, 0xFF
+ ands r4, r0
+ cmp r4, 0x65
+ bgt _0802901C
+ ldr r1, _08029018 @ =gDynamicBasePower
+ movs r0, 0x28
+ strh r0, [r1]
+ b _0802905E
+ .align 2, 0
+_08029018: .4byte gDynamicBasePower
+_0802901C:
+ cmp r4, 0xB1
+ bgt _0802902C
+ ldr r1, _08029028 @ =gDynamicBasePower
+ movs r0, 0x50
+ strh r0, [r1]
+ b _0802905E
+ .align 2, 0
+_08029028: .4byte gDynamicBasePower
+_0802902C:
+ cmp r4, 0xCB
+ bgt _0802903C
+ ldr r1, _08029038 @ =gDynamicBasePower
+ movs r0, 0x78
+ strh r0, [r1]
+ b _0802905E
+ .align 2, 0
+_08029038: .4byte gDynamicBasePower
+_0802903C:
+ ldr r3, _08029068 @ =gBattleMoveDamage
+ ldr r2, _0802906C @ =gBattleMons
+ ldr r0, _08029070 @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 2
+ str r0, [r3]
+ cmp r0, 0
+ bne _08029058
+ movs r0, 0x1
+ str r0, [r3]
+_08029058:
+ ldr r0, [r3]
+ negs r0, r0
+ str r0, [r3]
+_0802905E:
+ cmp r4, 0xCB
+ bgt _0802907C
+ ldr r1, _08029074 @ =gBattlescriptCurrInstr
+ ldr r0, _08029078 @ =BattleScript_1D6F44
+ b _080290AC
+ .align 2, 0
+_08029068: .4byte gBattleMoveDamage
+_0802906C: .4byte gBattleMons
+_08029070: .4byte gBankTarget
+_08029074: .4byte gBattlescriptCurrInstr
+_08029078: .4byte BattleScript_1D6F44
+_0802907C:
+ ldr r2, _08029098 @ =gBattleMons
+ ldr r0, _0802909C @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x2C]
+ ldrh r0, [r0, 0x28]
+ cmp r1, r0
+ bne _080290A8
+ ldr r1, _080290A0 @ =gBattlescriptCurrInstr
+ ldr r0, _080290A4 @ =BattleScript_1D83B5
+ b _080290AC
+ .align 2, 0
+_08029098: .4byte gBattleMons
+_0802909C: .4byte gBankTarget
+_080290A0: .4byte gBattlescriptCurrInstr
+_080290A4: .4byte BattleScript_1D83B5
+_080290A8:
+ ldr r1, _080290B4 @ =gBattlescriptCurrInstr
+ ldr r0, _080290B8 @ =BattleScript_1D839B
+_080290AC:
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080290B4: .4byte gBattlescriptCurrInstr
+_080290B8: .4byte BattleScript_1D839B
+ thumb_func_end atkB7_presentdamagecalculation
+
+ thumb_func_start sub_80290BC
+sub_80290BC: @ 80290BC
+ push {r4-r6,lr}
+ ldr r4, _080290F0 @ =gBankAttacker
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ ldr r6, _080290F4 @ =gSideAffecting
+ movs r5, 0x1
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08029100
+ ldr r2, _080290F8 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080290FC @ =gBattleCommunication
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ b _08029132
+ .align 2, 0
+_080290F0: .4byte gBankAttacker
+_080290F4: .4byte gSideAffecting
+_080290F8: .4byte gBattleMoveFlags
+_080290FC: .4byte gBattleCommunication
+_08029100:
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r0, [r1]
+ movs r2, 0x20
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ ldr r2, _08029140 @ =gSideTimer
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0, 0x7]
+ ldr r0, _08029144 @ =gBattleCommunication
+ strb r1, [r0, 0x5]
+_08029132:
+ ldr r1, _08029148 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029140: .4byte gSideTimer
+_08029144: .4byte gBattleCommunication
+_08029148: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_80290BC
+
+ thumb_func_start atkB9_magnitudedamagecalculation
+atkB9_magnitudedamagecalculation: @ 802914C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bgt _08029178
+ ldr r1, _08029174 @ =gDynamicBasePower
+ movs r0, 0xA
+ strh r0, [r1]
+ movs r3, 0x4
+ b _080291E4
+ .align 2, 0
+_08029174: .4byte gDynamicBasePower
+_08029178:
+ cmp r3, 0xE
+ bgt _0802918C
+ ldr r1, _08029188 @ =gDynamicBasePower
+ movs r0, 0x1E
+ strh r0, [r1]
+ movs r3, 0x5
+ b _080291E4
+ .align 2, 0
+_08029188: .4byte gDynamicBasePower
+_0802918C:
+ cmp r3, 0x22
+ bgt _080291A0
+ ldr r1, _0802919C @ =gDynamicBasePower
+ movs r0, 0x32
+ strh r0, [r1]
+ movs r3, 0x6
+ b _080291E4
+ .align 2, 0
+_0802919C: .4byte gDynamicBasePower
+_080291A0:
+ cmp r3, 0x40
+ bgt _080291B4
+ ldr r1, _080291B0 @ =gDynamicBasePower
+ movs r0, 0x46
+ strh r0, [r1]
+ movs r3, 0x7
+ b _080291E4
+ .align 2, 0
+_080291B0: .4byte gDynamicBasePower
+_080291B4:
+ cmp r3, 0x54
+ bgt _080291C8
+ ldr r1, _080291C4 @ =gDynamicBasePower
+ movs r0, 0x5A
+ strh r0, [r1]
+ movs r3, 0x8
+ b _080291E4
+ .align 2, 0
+_080291C4: .4byte gDynamicBasePower
+_080291C8:
+ cmp r3, 0x5E
+ bgt _080291DC
+ ldr r1, _080291D8 @ =gDynamicBasePower
+ movs r0, 0x6E
+ strh r0, [r1]
+ movs r3, 0x9
+ b _080291E4
+ .align 2, 0
+_080291D8: .4byte gDynamicBasePower
+_080291DC:
+ ldr r1, _08029250 @ =gDynamicBasePower
+ movs r0, 0x96
+ strh r0, [r1]
+ movs r3, 0xA
+_080291E4:
+ ldr r1, _08029254 @ =gBattleTextBuff1
+ movs r2, 0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ strb r0, [r1, 0x2]
+ movs r0, 0x2
+ strb r0, [r1, 0x3]
+ strb r3, [r1, 0x4]
+ movs r0, 0xFF
+ strb r0, [r1, 0x5]
+ ldr r1, _08029258 @ =gBankTarget
+ strb r2, [r1]
+ ldr r0, _0802925C @ =gNoOfAllBanks
+ ldrb r3, [r0]
+ adds r6, r1, 0
+ ldr r0, _08029260 @ =gBattlescriptCurrInstr
+ mov r8, r0
+ cmp r2, r3
+ bcs _0802923C
+ adds r4, r6, 0
+ ldr r0, _08029264 @ =gBankAttacker
+ ldrb r5, [r0]
+ ldr r1, _08029268 @ =gBitTable
+ mov r12, r1
+ ldr r7, _0802926C @ =gAbsentBankFlags
+_0802921A:
+ ldrb r2, [r4]
+ cmp r2, r5
+ beq _08029230
+ ldrb r0, [r7]
+ ldrb r1, [r6]
+ lsls r1, 2
+ add r1, r12
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ beq _0802923C
+_08029230:
+ adds r0, r2, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r3
+ bcc _0802921A
+_0802923C:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029250: .4byte gDynamicBasePower
+_08029254: .4byte gBattleTextBuff1
+_08029258: .4byte gBankTarget
+_0802925C: .4byte gNoOfAllBanks
+_08029260: .4byte gBattlescriptCurrInstr
+_08029264: .4byte gBankAttacker
+_08029268: .4byte gBitTable
+_0802926C: .4byte gAbsentBankFlags
+ thumb_func_end atkB9_magnitudedamagecalculation
+
+ thumb_func_start sub_8029270
+sub_8029270: @ 8029270
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08029294 @ =gMultiHitCounter
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080292A0
+ ldr r0, _08029298 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802929C
+ movs r0, 0x1
+ b _080292BA
+ .align 2, 0
+_08029294: .4byte gMultiHitCounter
+_08029298: .4byte gBankAttacker
+_0802929C:
+ movs r0, 0
+ b _080292BA
+_080292A0:
+ ldr r0, _080292B4 @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080292B8
+ movs r0, 0x3
+ b _080292BA
+ .align 2, 0
+_080292B4: .4byte gBankAttacker
+_080292B8:
+ movs r0, 0x2
+_080292BA:
+ bl GetBankByPlayerAI
+ ldr r1, _0802937C @ =gBankTarget
+ strb r0, [r1]
+ ldr r0, _08029380 @ =gActionForBanks
+ ldr r1, _0802937C @ =gBankTarget
+ mov r9, r1
+ ldrb r3, [r1]
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080293BC
+ ldr r5, _08029384 @ =gBankAttacker
+ ldr r0, _08029388 @ =0x02000000
+ ldr r2, _0802938C @ =0x00016010
+ adds r1, r3, r2
+ adds r1, r0
+ ldrb r2, [r5]
+ mov r10, r0
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _080293BC
+ ldr r4, _08029390 @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r3, 0
+ muls r0, r2
+ adds r1, r4, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x27
+ ands r0, r1
+ cmp r0, 0
+ bne _080293BC
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r4
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _080293BC
+ ldr r0, _08029394 @ =gDisableStructs
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x18]
+ lsls r0, 31
+ cmp r0, 0
+ bne _080293BC
+ ldr r0, _08029398 @ =gChosenMovesByBanks
+ lsls r1, r3, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0xE4
+ bne _080293BC
+ movs r1, 0
+ ldr r0, _0802939C @ =gNoOfAllBanks
+ ldr r7, _080293A0 @ =gCurrentMove
+ mov r8, r7
+ ldr r2, _080293A4 @ =gHitMarker
+ mov r12, r2
+ ldrb r7, [r0]
+ cmp r1, r7
+ bge _0802935A
+ ldr r6, _080293A8 @ =gTurnOrder
+ mov r5, r9
+ ldr r4, _080293AC @ =gUnknown_02024A76
+ movs r3, 0xB
+ adds r2, r0, 0
+_08029344:
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ ldrb r7, [r5]
+ cmp r0, r7
+ bne _08029352
+ adds r0, r1, r4
+ strb r3, [r0]
+_08029352:
+ adds r1, 0x1
+ ldrb r0, [r2]
+ cmp r1, r0
+ blt _08029344
+_0802935A:
+ movs r0, 0xE4
+ mov r1, r8
+ strh r0, [r1]
+ ldr r2, _080293B0 @ =gBattlescriptCurrInstr
+ ldr r0, [r2]
+ adds r0, 0x5
+ str r0, [r2]
+ ldr r1, _080293B4 @ =0x00016002
+ add r1, r10
+ movs r0, 0x1
+ strb r0, [r1]
+ mov r7, r12
+ ldr r0, [r7]
+ ldr r1, _080293B8 @ =0xfffffbff
+ ands r0, r1
+ str r0, [r7]
+ b _080293D6
+ .align 2, 0
+_0802937C: .4byte gBankTarget
+_08029380: .4byte gActionForBanks
+_08029384: .4byte gBankAttacker
+_08029388: .4byte 0x02000000
+_0802938C: .4byte 0x00016010
+_08029390: .4byte gBattleMons
+_08029394: .4byte gDisableStructs
+_08029398: .4byte gChosenMovesByBanks
+_0802939C: .4byte gNoOfAllBanks
+_080293A0: .4byte gCurrentMove
+_080293A4: .4byte gHitMarker
+_080293A8: .4byte gTurnOrder
+_080293AC: .4byte gUnknown_02024A76
+_080293B0: .4byte gBattlescriptCurrInstr
+_080293B4: .4byte 0x00016002
+_080293B8: .4byte 0xfffffbff
+_080293BC:
+ ldr r3, _080293E4 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_080293D6:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080293E4: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8029270
+
+ thumb_func_start sub_80293E8
+sub_80293E8: @ 80293E8
+ push {lr}
+ ldr r2, _08029408 @ =gBattleWeather
+ ldrh r1, [r2]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _08029414
+ ldr r2, _0802940C @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08029410 @ =gBattleCommunication
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _08029426
+ .align 2, 0
+_08029408: .4byte gBattleWeather
+_0802940C: .4byte gBattleMoveFlags
+_08029410: .4byte gBattleCommunication
+_08029414:
+ movs r0, 0x20
+ strh r0, [r2]
+ ldr r1, _08029434 @ =gBattleCommunication
+ movs r0, 0x4
+ strb r0, [r1, 0x5]
+ ldr r0, _08029438 @ =gWishFutureKnock
+ adds r0, 0x28
+ movs r1, 0x5
+ strb r1, [r0]
+_08029426:
+ ldr r1, _0802943C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029434: .4byte gBattleCommunication
+_08029438: .4byte gWishFutureKnock
+_0802943C: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_80293E8
+
+ thumb_func_start atkBC_maxattackhalvehp
+atkBC_maxattackhalvehp: @ 8029440
+ push {r4,r5,lr}
+ ldr r5, _0802948C @ =gBattleMons
+ ldr r4, _08029490 @ =gBankAttacker
+ ldrb r0, [r4]
+ movs r3, 0x58
+ muls r0, r3
+ adds r2, r0, r5
+ ldrh r0, [r2, 0x2C]
+ lsrs r1, r0, 1
+ cmp r1, 0
+ bne _08029458
+ movs r1, 0x1
+_08029458:
+ movs r0, 0x19
+ ldrsb r0, [r2, r0]
+ cmp r0, 0xB
+ bgt _0802949C
+ ldrh r0, [r2, 0x28]
+ cmp r0, r1
+ bls _0802949C
+ movs r0, 0xC
+ strb r0, [r2, 0x19]
+ ldr r1, _08029494 @ =gBattleMoveDamage
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r0, r5
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r1]
+ cmp r0, 0
+ bne _08029480
+ movs r0, 0x1
+ str r0, [r1]
+_08029480:
+ ldr r1, _08029498 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _080294B6
+ .align 2, 0
+_0802948C: .4byte gBattleMons
+_08029490: .4byte gBankAttacker
+_08029494: .4byte gBattleMoveDamage
+_08029498: .4byte gBattlescriptCurrInstr
+_0802949C:
+ ldr r3, _080294BC @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_080294B6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080294BC: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkBC_maxattackhalvehp
+
+ thumb_func_start atkBD_copyfoestats
+atkBD_copyfoestats: @ 80294C0
+ push {r4-r7,lr}
+ movs r2, 0
+ ldr r7, _080294F8 @ =gBattlescriptCurrInstr
+ ldr r6, _080294FC @ =gBankAttacker
+ movs r4, 0x58
+ ldr r3, _08029500 @ =gUnknown_02024A98
+ ldr r5, _08029504 @ =gBankTarget
+_080294CE:
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r4
+ adds r1, r2, r1
+ adds r1, r3
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r0, r2, r0
+ adds r0, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080294CE
+ ldr r0, [r7]
+ adds r0, 0x5
+ str r0, [r7]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080294F8: .4byte gBattlescriptCurrInstr
+_080294FC: .4byte gBankAttacker
+_08029500: .4byte gUnknown_02024A98
+_08029504: .4byte gBankTarget
+ thumb_func_end atkBD_copyfoestats
+
+ thumb_func_start atkBE_breakfree
+atkBE_breakfree: @ 8029508
+ push {r4,r5,lr}
+ ldr r1, _08029570 @ =gBattleMons
+ ldr r5, _08029574 @ =gBankAttacker
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r3, r0, r1
+ ldr r1, [r3]
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08029594
+ ldr r0, _08029578 @ =0xffff1fff
+ ands r1, r0
+ str r1, [r3]
+ ldr r1, _0802957C @ =gBankTarget
+ ldr r2, _08029580 @ =0x02000000
+ ldrb r0, [r5]
+ ldr r3, _08029584 @ =0x00016020
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _08029588 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r5]
+ lsls r0, 1
+ subs r3, 0x1C
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r3, 0x1
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0802958C @ =gBattlescriptCurrInstr
+ ldr r0, _08029590 @ =gUnknown_081D92C2
+ b _0802963E
+ .align 2, 0
+_08029570: .4byte gBattleMons
+_08029574: .4byte gBankAttacker
+_08029578: .4byte 0xffff1fff
+_0802957C: .4byte gBankTarget
+_08029580: .4byte 0x02000000
+_08029584: .4byte 0x00016020
+_08029588: .4byte gBattleTextBuff1
+_0802958C: .4byte gBattlescriptCurrInstr
+_08029590: .4byte gUnknown_081D92C2
+_08029594:
+ ldr r4, _080295C8 @ =gStatuses3
+ lsls r0, r2, 2
+ adds r3, r0, r4
+ ldr r1, [r3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080295D4
+ movs r0, 0x5
+ negs r0, r0
+ ands r1, r0
+ str r1, [r3]
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, [r1]
+ movs r2, 0x4
+ negs r2, r2
+ ands r0, r2
+ str r0, [r1]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080295CC @ =gBattlescriptCurrInstr
+ ldr r0, _080295D0 @ =gUnknown_081D92C9
+ b _0802963E
+ .align 2, 0
+_080295C8: .4byte gStatuses3
+_080295CC: .4byte gBattlescriptCurrInstr
+_080295D0: .4byte gUnknown_081D92C9
+_080295D4:
+ adds r0, r2, 0
+ bl GetBankSide
+ ldr r4, _08029624 @ =gSideAffecting
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08029638
+ ldrb r0, [r5]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r2, [r0]
+ ldr r1, _08029628 @ =0x0000ffef
+ ands r1, r2
+ movs r4, 0
+ strh r1, [r0]
+ ldrb r0, [r5]
+ bl GetBankSide
+ ldr r2, _0802962C @ =gSideTimer
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strb r4, [r1, 0x6]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08029630 @ =gBattlescriptCurrInstr
+ ldr r0, _08029634 @ =gUnknown_081D92D0
+ b _0802963E
+ .align 2, 0
+_08029624: .4byte gSideAffecting
+_08029628: .4byte 0x0000ffef
+_0802962C: .4byte gSideTimer
+_08029630: .4byte gBattlescriptCurrInstr
+_08029634: .4byte gUnknown_081D92D0
+_08029638:
+ ldr r1, _08029648 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+_0802963E:
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029648: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkBE_breakfree
+
+ thumb_func_start sub_802964C
+sub_802964C: @ 802964C
+ ldr r1, _08029670 @ =gBattleMons
+ ldr r0, _08029674 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 23
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08029678 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08029670: .4byte gBattleMons
+_08029674: .4byte gBankAttacker
+_08029678: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802964C
+
+ thumb_func_start atkC0_recoverbasedonsunlight
+atkC0_recoverbasedonsunlight: @ 802967C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _080296E8 @ =gBankTarget
+ ldr r5, _080296EC @ =gBankAttacker
+ ldrb r0, [r5]
+ strb r0, [r1]
+ ldr r7, _080296F0 @ =gBattleMons
+ ldrb r0, [r5]
+ movs r6, 0x58
+ muls r0, r6
+ adds r0, r7
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ beq _0802975C
+ ldr r4, _080296F4 @ =gBattleWeather
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080296CE
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080296CE
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _080296FC
+_080296CE:
+ ldr r3, _080296F8 @ =gBattleMoveDamage
+ ldr r2, _080296F0 @ =gBattleMons
+ ldr r0, _080296EC @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r3]
+ adds r1, r3, 0
+ b _08029736
+ .align 2, 0
+_080296E8: .4byte gBankTarget
+_080296EC: .4byte gBankAttacker
+_080296F0: .4byte gBattleMons
+_080296F4: .4byte gBattleWeather
+_080296F8: .4byte gBattleMoveDamage
+_080296FC:
+ ldrh r1, [r4]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _08029728
+ ldr r4, _08029724 @ =gBattleMoveDamage
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r0, r7
+ ldrh r1, [r0, 0x2C]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0x1E
+ bl __divsi3
+ str r0, [r4]
+ adds r1, r4, 0
+ b _08029736
+ .align 2, 0
+_08029724: .4byte gBattleMoveDamage
+_08029728:
+ ldr r1, _08029754 @ =gBattleMoveDamage
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 2
+ str r0, [r1]
+_08029736:
+ adds r2, r1, 0
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _08029742
+ movs r0, 0x1
+ str r0, [r2]
+_08029742:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldr r1, _08029758 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08029776
+ .align 2, 0
+_08029754: .4byte gBattleMoveDamage
+_08029758: .4byte gBattlescriptCurrInstr
+_0802975C:
+ ldr r3, _08029780 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08029776:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029780: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkC0_recoverbasedonsunlight
+
+ thumb_func_start sub_8029784
+sub_8029784: @ 8029784
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, _08029894 @ =gBattleMons
+ ldr r0, _08029898 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r4, r1, 0
+ muls r4, r0
+ adds r4, r2
+ ldrb r0, [r4, 0x14]
+ mov r10, r0
+ mov r7, r10
+ lsls r7, 27
+ adds r0, r7, 0
+ lsrs r0, 27
+ mov r10, r0
+ movs r1, 0x2
+ mov r2, r10
+ ands r2, r1
+ asrs r2, 1
+ ldrh r7, [r4, 0x14]
+ mov r9, r7
+ mov r0, r9
+ lsls r0, 22
+ mov r9, r0
+ lsrs r3, r0, 27
+ adds r0, r1, 0
+ ands r0, r3
+ orrs r2, r0
+ ldrb r7, [r4, 0x15]
+ mov r8, r7
+ mov r0, r8
+ lsls r0, 25
+ mov r8, r0
+ lsrs r3, r0, 27
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 1
+ orrs r2, r0
+ ldr r6, [r4, 0x14]
+ lsls r6, 12
+ lsrs r3, r6, 27
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 2
+ orrs r2, r0
+ ldrh r5, [r4, 0x16]
+ lsls r5, 23
+ lsrs r3, r5, 27
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 3
+ orrs r2, r0
+ ldrb r3, [r4, 0x17]
+ lsls r3, 26
+ lsrs r0, r3, 27
+ ands r1, r0
+ lsls r1, 4
+ orrs r2, r1
+ movs r1, 0x1
+ adds r4, r1, 0
+ mov r7, r10
+ ands r4, r7
+ mov r0, r9
+ lsrs r0, 27
+ mov r9, r0
+ adds r0, r1, 0
+ mov r7, r9
+ ands r0, r7
+ lsls r0, 1
+ orrs r4, r0
+ mov r0, r8
+ lsrs r0, 27
+ mov r8, r0
+ adds r0, r1, 0
+ mov r7, r8
+ ands r0, r7
+ lsls r0, 2
+ orrs r4, r0
+ lsrs r6, 27
+ adds r0, r1, 0
+ ands r0, r6
+ lsls r0, 3
+ orrs r4, r0
+ lsrs r5, 27
+ adds r0, r1, 0
+ ands r0, r5
+ lsls r0, 4
+ orrs r4, r0
+ lsrs r3, 27
+ ands r1, r3
+ lsls r1, 5
+ orrs r4, r1
+ ldr r5, _0802989C @ =gDynamicBasePower
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ movs r1, 0x3F
+ bl __divsi3
+ adds r0, 0x1E
+ strh r0, [r5]
+ ldr r5, _080298A0 @ =0x02000000
+ lsls r0, r4, 4
+ subs r0, r4
+ movs r1, 0x3F
+ bl __divsi3
+ adds r1, r0, 0x1
+ ldr r0, _080298A4 @ =0x0001601c
+ adds r5, r0
+ strb r1, [r5]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _08029876
+ adds r0, r1, 0x1
+ strb r0, [r5]
+_08029876:
+ ldrb r0, [r5]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r1, _080298A8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029894: .4byte gBattleMons
+_08029898: .4byte gBankAttacker
+_0802989C: .4byte gDynamicBasePower
+_080298A0: .4byte 0x02000000
+_080298A4: .4byte 0x0001601c
+_080298A8: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8029784
+
+ thumb_func_start atkC2_selectnexttarget
+atkC2_selectnexttarget: @ 80298AC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08029908 @ =gBankTarget
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _0802990C @ =gNoOfAllBanks
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ ldr r0, _08029910 @ =gBattlescriptCurrInstr
+ mov r8, r0
+ cmp r1, 0
+ beq _080298F6
+ adds r3, r6, 0
+ ldr r0, _08029914 @ =gBankAttacker
+ ldrb r5, [r0]
+ ldr r0, _08029918 @ =gBitTable
+ mov r12, r0
+ adds r4, r1, 0
+ ldr r7, _0802991C @ =gAbsentBankFlags
+_080298D4:
+ ldrb r2, [r3]
+ cmp r2, r5
+ beq _080298EA
+ ldrb r0, [r7]
+ ldrb r1, [r6]
+ lsls r1, 2
+ add r1, r12
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ beq _080298F6
+_080298EA:
+ adds r0, r2, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcc _080298D4
+_080298F6:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029908: .4byte gBankTarget
+_0802990C: .4byte gNoOfAllBanks
+_08029910: .4byte gBattlescriptCurrInstr
+_08029914: .4byte gBankAttacker
+_08029918: .4byte gBitTable
+_0802991C: .4byte gAbsentBankFlags
+ thumb_func_end atkC2_selectnexttarget
+
+ thumb_func_start atkC3_setfutureattack
+atkC3_setfutureattack: @ 8029920
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r0, _08029958 @ =gWishFutureKnock
+ mov r8, r0
+ ldr r7, _0802995C @ =gBankTarget
+ ldrb r1, [r7]
+ adds r0, r1, r0
+ ldrb r6, [r0]
+ cmp r6, 0
+ beq _08029964
+ ldr r3, _08029960 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08029A2E
+ .align 2, 0
+_08029958: .4byte gWishFutureKnock
+_0802995C: .4byte gBankTarget
+_08029960: .4byte gBattlescriptCurrInstr
+_08029964:
+ lsls r1, 1
+ mov r0, r8
+ adds r0, 0x18
+ adds r1, r0
+ ldr r2, _08029A04 @ =gCurrentMove
+ mov r9, r2
+ ldrh r0, [r2]
+ strh r0, [r1]
+ mov r0, r8
+ adds r0, 0x4
+ ldrb r4, [r7]
+ adds r0, r4
+ ldr r5, _08029A08 @ =gBankAttacker
+ ldrb r1, [r5]
+ strb r1, [r0]
+ ldrb r0, [r7]
+ add r0, r8
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r4, _08029A0C @ =gSideAffecting
+ ldrb r0, [r7]
+ bl GetBankIdentity
+ movs r1, 0x1
+ mov r10, r1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ ldr r2, _08029A10 @ =gBattleMons
+ adds r0, r2
+ ldrb r1, [r7]
+ muls r1, r4
+ adds r1, r2
+ mov r4, r9
+ ldrh r2, [r4]
+ str r6, [sp]
+ str r6, [sp, 0x4]
+ ldrb r4, [r5]
+ str r4, [sp, 0x8]
+ ldrb r4, [r7]
+ str r4, [sp, 0xC]
+ bl CalculateBaseDamage
+ ldrb r1, [r7]
+ lsls r1, 2
+ mov r2, r8
+ adds r2, 0x8
+ adds r1, r2
+ str r0, [r1]
+ ldr r1, _08029A14 @ =gProtectStructs
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ bge _080299F2
+ ldrb r4, [r7]
+ lsls r4, 2
+ adds r4, r2
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r4]
+_080299F2:
+ mov r0, r9
+ ldrh r1, [r0]
+ ldr r0, _08029A18 @ =0x00000161
+ cmp r1, r0
+ bne _08029A20
+ ldr r0, _08029A1C @ =gBattleCommunication
+ mov r1, r10
+ strb r1, [r0, 0x5]
+ b _08029A26
+ .align 2, 0
+_08029A04: .4byte gCurrentMove
+_08029A08: .4byte gBankAttacker
+_08029A0C: .4byte gSideAffecting
+_08029A10: .4byte gBattleMons
+_08029A14: .4byte gProtectStructs
+_08029A18: .4byte 0x00000161
+_08029A1C: .4byte gBattleCommunication
+_08029A20:
+ ldr r1, _08029A40 @ =gBattleCommunication
+ movs r0, 0
+ strb r0, [r1, 0x5]
+_08029A26:
+ ldr r1, _08029A44 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08029A2E:
+ 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
+_08029A40: .4byte gBattleCommunication
+_08029A44: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkC3_setfutureattack
+
+ thumb_func_start atkC4_802B910
+atkC4_802B910: @ 8029A48
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _08029A8C @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r7, _08029A90 @ =gEnemyParty
+ cmp r0, 0
+ bne _08029A62
+ ldr r7, _08029A94 @ =gPlayerParty
+_08029A62:
+ ldr r2, _08029A98 @ =gBattleMons
+ ldr r0, _08029A9C @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08029AA4
+ ldr r3, _08029AA0 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ b _08029C40
+ .align 2, 0
+_08029A8C: .4byte gBankAttacker
+_08029A90: .4byte gEnemyParty
+_08029A94: .4byte gPlayerParty
+_08029A98: .4byte gBattleMons
+_08029A9C: .4byte gBankTarget
+_08029AA0: .4byte gBattlescriptCurrInstr
+_08029AA4:
+ ldr r6, _08029BE0 @ =gBattleCommunication
+ ldrb r0, [r6]
+ mov r8, r0
+ cmp r0, 0x5
+ bls _08029AB0
+ b _08029C0C
+_08029AB0:
+ adds r4, r6, 0
+ movs r5, 0x64
+_08029AB4:
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r7, r0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08029AF8
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7, r0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08029AF8
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r7, r0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08029AF8
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r7, r0
+ movs r1, 0x37
+ bl GetMonData
+ cmp r0, 0
+ beq _08029B08
+_08029AF8:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ adds r6, r4, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _08029AB4
+_08029B08:
+ ldr r1, _08029BE0 @ =gBattleCommunication
+ mov r9, r1
+ ldrb r2, [r1]
+ cmp r2, 0x5
+ bhi _08029C0C
+ ldr r1, _08029BE4 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r6, _08029BE8 @ =gBankAttacker
+ ldrb r0, [r6]
+ strb r0, [r1, 0x2]
+ strb r2, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08029BEC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x9
+ str r0, [r1]
+ ldr r2, _08029BF0 @ =gBattleMoveDamage
+ mov r8, r2
+ ldr r5, _08029BF4 @ =gBaseStats
+ mov r1, r9
+ ldrb r0, [r1]
+ movs r4, 0x64
+ muls r0, r4
+ adds r0, r7, r0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x1]
+ mov r2, r8
+ str r3, [r2]
+ ldr r2, _08029BF8 @ =gBattleMoves
+ ldr r0, _08029BFC @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ muls r0, r3
+ mov r1, r8
+ str r0, [r1]
+ mov r2, r9
+ ldrb r0, [r2]
+ muls r0, r4
+ adds r0, r7, r0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 1
+ movs r1, 0x5
+ bl __udivsi3
+ adds r0, 0x2
+ mov r2, r8
+ ldr r1, [r2]
+ muls r0, r1
+ str r0, [r2]
+ ldr r3, _08029C00 @ =gBattleMons
+ ldr r1, _08029C04 @ =gBankTarget
+ ldrb r2, [r1]
+ movs r1, 0x58
+ muls r1, r2
+ adds r1, r3
+ ldrh r2, [r1]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldrb r1, [r1, 0x2]
+ bl __divsi3
+ mov r1, r8
+ str r0, [r1]
+ movs r1, 0x32
+ bl __divsi3
+ adds r2, r0, 0x2
+ mov r0, r8
+ str r2, [r0]
+ ldr r1, _08029C08 @ =gProtectStructs
+ ldrb r0, [r6]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08029BD4
+ lsls r0, r2, 4
+ subs r0, r2
+ movs r1, 0xA
+ bl __divsi3
+ mov r1, r8
+ str r0, [r1]
+_08029BD4:
+ mov r2, r9
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ b _08029C46
+ .align 2, 0
+_08029BE0: .4byte gBattleCommunication
+_08029BE4: .4byte gBattleTextBuff1
+_08029BE8: .4byte gBankAttacker
+_08029BEC: .4byte gBattlescriptCurrInstr
+_08029BF0: .4byte gBattleMoveDamage
+_08029BF4: .4byte gBaseStats
+_08029BF8: .4byte gBattleMoves
+_08029BFC: .4byte gCurrentMove
+_08029C00: .4byte gBattleMons
+_08029C04: .4byte gBankTarget
+_08029C08: .4byte gProtectStructs
+_08029C0C:
+ mov r0, r8
+ cmp r0, 0
+ beq _08029C2C
+ ldr r3, _08029C28 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ b _08029C40
+ .align 2, 0
+_08029C28: .4byte gBattlescriptCurrInstr
+_08029C2C:
+ ldr r3, _08029C54 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+_08029C40:
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08029C46:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029C54: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkC4_802B910
+
+ thumb_func_start atkC5_hidepreattack
+atkC5_hidepreattack: @ 8029C58
+ push {lr}
+ ldr r0, _08029C6C @ =gCurrentMove
+ ldrh r1, [r0]
+ cmp r1, 0x5B
+ beq _08029C98
+ cmp r1, 0x5B
+ bgt _08029C70
+ cmp r1, 0x13
+ beq _08029C7C
+ b _08029CC4
+ .align 2, 0
+_08029C6C: .4byte gCurrentMove
+_08029C70:
+ ldr r0, _08029C8C @ =0x00000123
+ cmp r1, r0
+ beq _08029CB0
+ adds r0, 0x31
+ cmp r1, r0
+ bne _08029CC4
+_08029C7C:
+ ldr r2, _08029C90 @ =gStatuses3
+ ldr r0, _08029C94 @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x40
+ b _08029CC0
+ .align 2, 0
+_08029C8C: .4byte 0x00000123
+_08029C90: .4byte gStatuses3
+_08029C94: .4byte gBankAttacker
+_08029C98:
+ ldr r2, _08029CA8 @ =gStatuses3
+ ldr r0, _08029CAC @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x80
+ b _08029CC0
+ .align 2, 0
+_08029CA8: .4byte gStatuses3
+_08029CAC: .4byte gBankAttacker
+_08029CB0:
+ ldr r2, _08029CD0 @ =gStatuses3
+ ldr r0, _08029CD4 @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 11
+_08029CC0:
+ orrs r0, r2
+ str r0, [r1]
+_08029CC4:
+ ldr r1, _08029CD8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029CD0: .4byte gStatuses3
+_08029CD4: .4byte gBankAttacker
+_08029CD8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkC5_hidepreattack
+
+ thumb_func_start atkC6_unhidepostattack
+atkC6_unhidepostattack: @ 8029CDC
+ push {lr}
+ ldr r0, _08029CF0 @ =gCurrentMove
+ ldrh r1, [r0]
+ cmp r1, 0x5B
+ beq _08029D20
+ cmp r1, 0x5B
+ bgt _08029CF4
+ cmp r1, 0x13
+ beq _08029D00
+ b _08029D4E
+ .align 2, 0
+_08029CF0: .4byte gCurrentMove
+_08029CF4:
+ ldr r0, _08029D14 @ =0x00000123
+ cmp r1, r0
+ beq _08029D3C
+ adds r0, 0x31
+ cmp r1, r0
+ bne _08029D4E
+_08029D00:
+ ldr r2, _08029D18 @ =gStatuses3
+ ldr r0, _08029D1C @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x41
+ negs r2, r2
+ b _08029D4A
+ .align 2, 0
+_08029D14: .4byte 0x00000123
+_08029D18: .4byte gStatuses3
+_08029D1C: .4byte gBankAttacker
+_08029D20:
+ ldr r2, _08029D34 @ =gStatuses3
+ ldr r0, _08029D38 @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x81
+ negs r2, r2
+ b _08029D4A
+ .align 2, 0
+_08029D34: .4byte gStatuses3
+_08029D38: .4byte gBankAttacker
+_08029D3C:
+ ldr r2, _08029D5C @ =gStatuses3
+ ldr r0, _08029D60 @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ ldr r2, _08029D64 @ =0xfffbffff
+_08029D4A:
+ ands r0, r2
+ str r0, [r1]
+_08029D4E:
+ ldr r1, _08029D68 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029D5C: .4byte gStatuses3
+_08029D60: .4byte gBankAttacker
+_08029D64: .4byte 0xfffbffff
+_08029D68: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkC6_unhidepostattack
+
+ thumb_func_start atkC7_setminimize
+atkC7_setminimize: @ 8029D6C
+ push {lr}
+ ldr r0, _08029D9C @ =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _08029D90
+ ldr r2, _08029DA0 @ =gStatuses3
+ ldr r0, _08029DA4 @ =gBankAttacker
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 1
+ orrs r0, r2
+ str r0, [r1]
+_08029D90:
+ ldr r1, _08029DA8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029D9C: .4byte gHitMarker
+_08029DA0: .4byte gStatuses3
+_08029DA4: .4byte gBankAttacker
+_08029DA8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkC7_setminimize
+
+ thumb_func_start sub_8029DAC
+sub_8029DAC: @ 8029DAC
+ push {lr}
+ ldr r3, _08029DD0 @ =gBattleWeather
+ ldrh r1, [r3]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08029DDC
+ ldr r2, _08029DD4 @ =gBattleMoveFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08029DD8 @ =gBattleCommunication
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _08029DEA
+ .align 2, 0
+_08029DD0: .4byte gBattleWeather
+_08029DD4: .4byte gBattleMoveFlags
+_08029DD8: .4byte gBattleCommunication
+_08029DDC:
+ strh r2, [r3]
+ ldr r0, _08029DF8 @ =gBattleCommunication
+ movs r1, 0x5
+ strb r1, [r0, 0x5]
+ ldr r0, _08029DFC @ =gWishFutureKnock
+ adds r0, 0x28
+ strb r1, [r0]
+_08029DEA:
+ ldr r1, _08029E00 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029DF8: .4byte gBattleCommunication
+_08029DFC: .4byte gWishFutureKnock
+_08029E00: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_8029DAC
+
+ thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
+atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04
+ push {r4,lr}
+ ldr r2, _08029E48 @ =gBattleMons
+ ldr r0, _08029E4C @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ movs r0, 0x19
+ ldrsb r0, [r1, r0]
+ adds r3, r2, 0
+ cmp r0, 0
+ bne _08029E58
+ movs r0, 0x1C
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _08029E58
+ ldr r0, _08029E50 @ =gBattleCommunication
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ beq _08029E58
+ ldr r3, _08029E54 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08029E84
+ .align 2, 0
+_08029E48: .4byte gBattleMons
+_08029E4C: .4byte gBankTarget
+_08029E50: .4byte gBattleCommunication
+_08029E54: .4byte gBattlescriptCurrInstr
+_08029E58:
+ ldr r4, _08029E8C @ =gActiveBank
+ ldr r0, _08029E90 @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r2, _08029E94 @ =gBattleMoveDamage
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ str r0, [r2]
+ ldr r1, _08029E98 @ =0x00007fff
+ movs r0, 0
+ bl EmitHealthBarUpdate
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r1, _08029E9C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08029E84:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029E8C: .4byte gActiveBank
+_08029E90: .4byte gBankAttacker
+_08029E94: .4byte gBattleMoveDamage
+_08029E98: .4byte 0x00007fff
+_08029E9C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
+
+ thumb_func_start atkCA_setforcedtarget
+atkCA_setforcedtarget: @ 8029EA0
+ push {r4,r5,lr}
+ ldr r4, _08029EE0 @ =gBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ ldr r5, _08029EE4 @ =gSideTimer
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r4]
+ strb r0, [r1, 0x9]
+ ldr r1, _08029EE8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029EE0: .4byte gBankAttacker
+_08029EE4: .4byte gSideTimer
+_08029EE8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkCA_setforcedtarget
+
+ thumb_func_start atkCB_setcharge
+atkCB_setcharge: @ 8029EEC
+ push {r4,lr}
+ ldr r0, _08029F40 @ =gStatuses3
+ ldr r3, _08029F44 @ =gBankAttacker
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 2
+ orrs r0, r2
+ str r0, [r1]
+ ldr r4, _08029F48 @ =gDisableStructs
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0, 0x12]
+ movs r1, 0x10
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0, 0x12]
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0, 0x12]
+ movs r1, 0xF
+ ands r1, r2
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x12]
+ ldr r1, _08029F4C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029F40: .4byte gStatuses3
+_08029F44: .4byte gBankAttacker
+_08029F48: .4byte gDisableStructs
+_08029F4C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkCB_setcharge
+
+ thumb_func_start atkCC_callterrainattack
+atkCC_callterrainattack: @ 8029F50
+ push {r4,lr}
+ ldr r2, _08029FA0 @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _08029FA4 @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _08029FA8 @ =gCurrentMove
+ ldr r1, _08029FAC @ =gNaturePowerMoves
+ ldr r0, _08029FB0 @ =gBattleTerrain
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08029FB4 @ =gBankTarget
+ strb r0, [r1]
+ ldr r3, _08029FB8 @ =gUnknown_081D6BBC
+ ldr r2, _08029FBC @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ bl b_movescr_stack_push
+ ldr r1, _08029FC0 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029FA0: .4byte gHitMarker
+_08029FA4: .4byte 0xfffffbff
+_08029FA8: .4byte gCurrentMove
+_08029FAC: .4byte gNaturePowerMoves
+_08029FB0: .4byte gBattleTerrain
+_08029FB4: .4byte gBankTarget
+_08029FB8: .4byte gUnknown_081D6BBC
+_08029FBC: .4byte gBattleMoves
+_08029FC0: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkCC_callterrainattack
+
+ thumb_func_start atkCD_cureifburnedparalysedorpoisoned
+atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r1, _0802A010 @ =gBattleMons
+ ldr r3, _0802A014 @ =gBankAttacker
+ ldrb r0, [r3]
+ movs r6, 0x58
+ muls r0, r6
+ adds r5, r1, 0
+ adds r5, 0x4C
+ adds r2, r0, r5
+ ldr r0, [r2]
+ movs r1, 0xD8
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A020
+ movs r0, 0
+ str r0, [r2]
+ ldr r1, _0802A018 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ ldr r4, _0802A01C @ =gActiveBank
+ ldrb r0, [r3]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ muls r0, r6
+ adds r0, r5
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ b _0802A03A
+ .align 2, 0
+_0802A010: .4byte gBattleMons
+_0802A014: .4byte gBankAttacker
+_0802A018: .4byte gBattlescriptCurrInstr
+_0802A01C: .4byte gActiveBank
+_0802A020:
+ ldr r3, _0802A044 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802A03A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A044: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkCD_cureifburnedparalysedorpoisoned
+
+ thumb_func_start atkCE_settorment
+atkCE_settorment: @ 802A048
+ push {lr}
+ ldr r1, _0802A080 @ =gBattleMons
+ ldr r0, _0802A084 @ =gBankTarget
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 24
+ cmp r1, 0
+ bge _0802A08C
+ ldr r3, _0802A088 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A098
+ .align 2, 0
+_0802A080: .4byte gBattleMons
+_0802A084: .4byte gBankTarget
+_0802A088: .4byte gBattlescriptCurrInstr
+_0802A08C:
+ orrs r1, r2
+ str r1, [r0]
+ ldr r1, _0802A09C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A098:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A09C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkCE_settorment
+
+ thumb_func_start atkCF_jumpifnodamage
+atkCF_jumpifnodamage: @ 802A0A0
+ push {lr}
+ ldr r2, _0802A0CC @ =gProtectStructs
+ ldr r0, _0802A0D0 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802A0C0
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802A0D8
+_0802A0C0:
+ ldr r1, _0802A0D4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A0F2
+ .align 2, 0
+_0802A0CC: .4byte gProtectStructs
+_0802A0D0: .4byte gBankAttacker
+_0802A0D4: .4byte gBattlescriptCurrInstr
+_0802A0D8:
+ ldr r3, _0802A0F8 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802A0F2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A0F8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkCF_jumpifnodamage
+
+ thumb_func_start atkD0_settaunt
+atkD0_settaunt: @ 802A0FC
+ push {r4,lr}
+ ldr r4, _0802A140 @ =gDisableStructs
+ ldr r3, _0802A144 @ =gBankTarget
+ ldrb r0, [r3]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r2, r1, r4
+ ldrb r1, [r2, 0x13]
+ lsls r0, r1, 28
+ cmp r0, 0
+ bne _0802A14C
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x13]
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0, 0x13]
+ movs r1, 0xF
+ ands r1, r2
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x13]
+ ldr r1, _0802A148 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A166
+ .align 2, 0
+_0802A140: .4byte gDisableStructs
+_0802A144: .4byte gBankTarget
+_0802A148: .4byte gBattlescriptCurrInstr
+_0802A14C:
+ ldr r3, _0802A16C @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802A166:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A16C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkD0_settaunt
+
+ thumb_func_start sub_802A170
+sub_802A170: @ 802A170
+ push {r4,lr}
+ ldr r4, _0802A1D8 @ =gBankAttacker
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r3, _0802A1DC @ =gBankTarget
+ strb r0, [r3]
+ ldr r0, _0802A1E0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A1F4
+ ldr r0, _0802A1E4 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _0802A1E8 @ =gBitTable
+ ldrb r3, [r3]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802A1F4
+ ldr r1, _0802A1EC @ =gProtectStructs
+ ldrb r0, [r4]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ blt _0802A1F4
+ lsls r0, r3, 4
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ lsls r0, r1, 28
+ cmp r0, 0
+ blt _0802A1F4
+ movs r0, 0x8
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0802A1F0 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A20E
+ .align 2, 0
+_0802A1D8: .4byte gBankAttacker
+_0802A1DC: .4byte gBankTarget
+_0802A1E0: .4byte gBattleTypeFlags
+_0802A1E4: .4byte gAbsentBankFlags
+_0802A1E8: .4byte gBitTable
+_0802A1EC: .4byte gProtectStructs
+_0802A1F0: .4byte gBattlescriptCurrInstr
+_0802A1F4:
+ ldr r3, _0802A214 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802A20E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A214: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802A170
+
+ thumb_func_start sub_802A218
+sub_802A218: @ 802A218
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _0802A30C @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802A24C
+ ldr r0, _0802A310 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _0802A314 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _0802A24C
+ ldr r0, _0802A318 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _0802A2EE
+_0802A24C:
+ ldr r4, _0802A30C @ =gBankAttacker
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0802A310 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _0802A314 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _0802A290
+ ldr r0, _0802A318 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _0802A290
+ ldr r0, _0802A31C @ =gWishFutureKnock
+ adds r0, 0x29
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ ldr r3, _0802A320 @ =gBitTable
+ ldr r2, _0802A324 @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802A2EE
+_0802A290:
+ ldr r0, _0802A328 @ =gBattleMons
+ mov r9, r0
+ ldr r1, _0802A30C @ =gBankAttacker
+ ldrb r4, [r1]
+ movs r2, 0x58
+ mov r8, r2
+ mov r0, r8
+ muls r0, r4
+ mov r3, r9
+ adds r5, r0, r3
+ ldrh r3, [r5, 0x2E]
+ adds r1, r3, 0
+ cmp r1, 0
+ bne _0802A2BE
+ ldr r0, _0802A32C @ =gBankTarget
+ ldrb r0, [r0]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ beq _0802A2EE
+_0802A2BE:
+ cmp r1, 0xAF
+ beq _0802A2EE
+ ldr r7, _0802A32C @ =gBankTarget
+ ldrb r0, [r7]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ mov r1, r9
+ adds r2, r0, r1
+ ldrh r1, [r2, 0x2E]
+ cmp r1, 0xAF
+ beq _0802A2EE
+ adds r0, r3, 0
+ subs r0, 0x79
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB
+ bls _0802A2EE
+ adds r0, r1, 0
+ subs r0, 0x79
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB
+ bhi _0802A334
+_0802A2EE:
+ ldr r3, _0802A330 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A49A
+ .align 2, 0
+_0802A30C: .4byte gBankAttacker
+_0802A310: .4byte gBattleTypeFlags
+_0802A314: .4byte 0x00000902
+_0802A318: .4byte gTrainerBattleOpponent
+_0802A31C: .4byte gWishFutureKnock
+_0802A320: .4byte gBitTable
+_0802A324: .4byte gBattlePartyID
+_0802A328: .4byte gBattleMons
+_0802A32C: .4byte gBankTarget
+_0802A330: .4byte gBattlescriptCurrInstr
+_0802A334:
+ adds r0, r2, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3C
+ bne _0802A36C
+ ldr r1, _0802A360 @ =gBattlescriptCurrInstr
+ ldr r0, _0802A364 @ =BattleScript_NoItemSteal
+ str r0, [r1]
+ ldr r1, _0802A368 @ =gLastUsedAbility
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ b _0802A49A
+ .align 2, 0
+_0802A360: .4byte gBattlescriptCurrInstr
+_0802A364: .4byte BattleScript_NoItemSteal
+_0802A368: .4byte gLastUsedAbility
+_0802A36C:
+ lsls r0, r4, 1
+ ldr r4, _0802A458 @ =0x020160f0
+ adds r6, r0, r4
+ ldrh r5, [r5, 0x2E]
+ mov r10, r5
+ strh r1, [r6]
+ ldr r3, _0802A45C @ =gBankAttacker
+ ldrb r0, [r3]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ mov r3, r10
+ strh r3, [r0, 0x2E]
+ ldr r5, _0802A460 @ =gActiveBank
+ ldr r1, _0802A45C @ =gBankAttacker
+ ldrb r0, [r1]
+ strb r0, [r5]
+ str r6, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl EmitSetAttributes
+ ldr r2, _0802A45C @ =gBankAttacker
+ ldrb r0, [r2]
+ bl MarkBufferBankForExecution
+ ldrb r0, [r7]
+ strb r0, [r5]
+ ldrb r0, [r7]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ mov r1, r9
+ adds r1, 0x2E
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl EmitSetAttributes
+ ldrb r0, [r7]
+ bl MarkBufferBankForExecution
+ ldr r0, _0802A464 @ =0xfffe9f10
+ adds r4, r0
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r2, _0802A468 @ =0x000160e8
+ adds r0, r2
+ adds r0, r4
+ movs r1, 0
+ strb r1, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _0802A46C @ =0x000160e9
+ adds r0, r1
+ adds r0, r4
+ movs r3, 0
+ strb r3, [r0]
+ ldr r3, _0802A45C @ =gBankAttacker
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ adds r0, r4
+ movs r2, 0
+ strb r2, [r0]
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ adds r0, r4
+ strb r2, [r0]
+ ldr r1, _0802A470 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ ldr r1, _0802A474 @ =gBattleTextBuff1
+ movs r3, 0xFD
+ strb r3, [r1]
+ movs r2, 0xA
+ strb r2, [r1, 0x1]
+ ldrh r0, [r6]
+ strb r0, [r1, 0x2]
+ ldrh r0, [r6]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _0802A478 @ =gBattleTextBuff2
+ strb r3, [r1]
+ strb r2, [r1, 0x1]
+ mov r3, r10
+ strb r3, [r1, 0x2]
+ mov r2, r10
+ lsrs r0, r2, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x4]
+ cmp r2, 0
+ beq _0802A480
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _0802A494
+ ldr r1, _0802A47C @ =gBattleCommunication
+ movs r0, 0x2
+ b _0802A498
+ .align 2, 0
+_0802A458: .4byte 0x020160f0
+_0802A45C: .4byte gBankAttacker
+_0802A460: .4byte gActiveBank
+_0802A464: .4byte 0xfffe9f10
+_0802A468: .4byte 0x000160e8
+_0802A46C: .4byte 0x000160e9
+_0802A470: .4byte gBattlescriptCurrInstr
+_0802A474: .4byte gBattleTextBuff1
+_0802A478: .4byte gBattleTextBuff2
+_0802A47C: .4byte gBattleCommunication
+_0802A480:
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _0802A494
+ ldr r0, _0802A490 @ =gBattleCommunication
+ movs r3, 0
+ strb r3, [r0, 0x5]
+ b _0802A49A
+ .align 2, 0
+_0802A490: .4byte gBattleCommunication
+_0802A494:
+ ldr r1, _0802A4AC @ =gBattleCommunication
+ movs r0, 0x1
+_0802A498:
+ strb r0, [r1, 0x5]
+_0802A49A:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A4AC: .4byte gBattleCommunication
+ thumb_func_end sub_802A218
+
+ thumb_func_start sub_802A4B0
+sub_802A4B0: @ 802A4B0
+ push {r4,lr}
+ ldr r3, _0802A4F0 @ =gBattleMons
+ ldr r4, _0802A4F4 @ =gBankTarget
+ ldrb r0, [r4]
+ movs r2, 0x58
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ cmp r0, 0
+ beq _0802A504
+ cmp r0, 0x19
+ beq _0802A504
+ ldr r0, _0802A4F8 @ =gBankAttacker
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ strb r1, [r0]
+ ldr r1, _0802A4FC @ =gLastUsedAbility
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _0802A500 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A51E
+ .align 2, 0
+_0802A4F0: .4byte gBattleMons
+_0802A4F4: .4byte gBankTarget
+_0802A4F8: .4byte gBankAttacker
+_0802A4FC: .4byte gLastUsedAbility
+_0802A500: .4byte gBattlescriptCurrInstr
+_0802A504:
+ ldr r3, _0802A524 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802A51E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A524: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802A4B0
+
+ thumb_func_start atkD4_802C408
+atkD4_802C408: @ 802A528
+ push {r4-r7,lr}
+ ldr r7, _0802A53C @ =gBattlescriptCurrInstr
+ ldr r2, [r7]
+ ldrb r3, [r2, 0x1]
+ cmp r3, 0
+ beq _0802A540
+ cmp r3, 0x1
+ beq _0802A578
+ b _0802A5F4
+ .align 2, 0
+_0802A53C: .4byte gBattlescriptCurrInstr
+_0802A540:
+ ldr r1, _0802A56C @ =gWishFutureKnock
+ ldr r4, _0802A570 @ =gBankAttacker
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r5, [r4]
+ adds r3, r0, r5
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0802A5C4
+ movs r0, 0x2
+ strb r0, [r3]
+ ldrb r0, [r4]
+ adds r1, 0x24
+ adds r1, r0, r1
+ ldr r2, _0802A574 @ =gBattlePartyID
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r0, 0x6
+ b _0802A5F2
+ .align 2, 0
+_0802A56C: .4byte gWishFutureKnock
+_0802A570: .4byte gBankAttacker
+_0802A574: .4byte gBattlePartyID
+_0802A578:
+ ldr r1, _0802A5DC @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r4, _0802A5E0 @ =gBankTarget
+ ldrb r0, [r4]
+ strb r0, [r1, 0x2]
+ ldr r0, _0802A5E4 @ =gWishFutureKnock
+ adds r0, 0x24
+ ldrb r5, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _0802A5E8 @ =gBattleMoveDamage
+ ldr r6, _0802A5EC @ =gBattleMons
+ ldrb r0, [r4]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r1]
+ cmp r0, 0
+ bne _0802A5B0
+ str r3, [r1]
+_0802A5B0:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r6
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ bne _0802A5F0
+_0802A5C4:
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r7]
+ b _0802A5F4
+ .align 2, 0
+_0802A5DC: .4byte gBattleTextBuff1
+_0802A5E0: .4byte gBankTarget
+_0802A5E4: .4byte gWishFutureKnock
+_0802A5E8: .4byte gBattleMoveDamage
+_0802A5EC: .4byte gBattleMons
+_0802A5F0:
+ adds r0, r2, 0x6
+_0802A5F2:
+ str r0, [r7]
+_0802A5F4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atkD4_802C408
+
+ thumb_func_start sub_802A5FC
+sub_802A5FC: @ 802A5FC
+ push {lr}
+ ldr r1, _0802A634 @ =gStatuses3
+ ldr r0, _0802A638 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0802A640
+ ldr r3, _0802A63C @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A64C
+ .align 2, 0
+_0802A634: .4byte gStatuses3
+_0802A638: .4byte gBankAttacker
+_0802A63C: .4byte gBattlescriptCurrInstr
+_0802A640:
+ orrs r1, r3
+ str r1, [r2]
+ ldr r1, _0802A650 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A64C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A650: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802A5FC
+
+ thumb_func_start atkD6_doubledamagedealtifdamaged
+atkD6_doubledamagedealtifdamaged: @ 802A654
+ push {lr}
+ ldr r3, _0802A6A4 @ =gProtectStructs
+ ldr r0, _0802A6A8 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r0, r3, 0x4
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802A674
+ adds r0, r2, r3
+ ldr r1, _0802A6AC @ =gBankTarget
+ ldrb r0, [r0, 0xC]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0802A68C
+_0802A674:
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802A696
+ adds r0, r2, r3
+ ldr r1, _0802A6AC @ =gBankTarget
+ ldrb r0, [r0, 0xD]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0802A696
+_0802A68C:
+ ldr r0, _0802A6B0 @ =0x02000000
+ ldr r1, _0802A6B4 @ =0x0001601f
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+_0802A696:
+ ldr r1, _0802A6B8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A6A4: .4byte gProtectStructs
+_0802A6A8: .4byte gBankAttacker
+_0802A6AC: .4byte gBankTarget
+_0802A6B0: .4byte 0x02000000
+_0802A6B4: .4byte 0x0001601f
+_0802A6B8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkD6_doubledamagedealtifdamaged
+
+ thumb_func_start sub_802A6BC
+sub_802A6BC: @ 802A6BC
+ push {r4,lr}
+ ldr r1, _0802A700 @ =gStatuses3
+ ldr r0, _0802A704 @ =gBankTarget
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r4, r0, r1
+ ldr r2, [r4]
+ movs r0, 0xC0
+ lsls r0, 5
+ ands r0, r2
+ cmp r0, 0
+ bne _0802A6E4
+ ldr r1, _0802A708 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, 0x4C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802A710
+_0802A6E4:
+ ldr r3, _0802A70C @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A720
+ .align 2, 0
+_0802A700: .4byte gStatuses3
+_0802A704: .4byte gBankTarget
+_0802A708: .4byte gBattleMons
+_0802A70C: .4byte gBattlescriptCurrInstr
+_0802A710:
+ movs r0, 0x80
+ lsls r0, 5
+ orrs r2, r0
+ str r2, [r4]
+ ldr r1, _0802A728 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A720:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A728: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802A6BC
+
+ thumb_func_start atkD8_setdamagetohealthdifference
+atkD8_setdamagetohealthdifference: @ 802A72C
+ push {lr}
+ ldr r2, _0802A768 @ =gBattleMons
+ ldr r0, _0802A76C @ =gBankTarget
+ ldrb r0, [r0]
+ movs r1, 0x58
+ muls r0, r1
+ adds r3, r0, r2
+ ldr r0, _0802A770 @ =gBankAttacker
+ ldrb r0, [r0]
+ muls r0, r1
+ adds r1, r0, r2
+ ldrh r0, [r3, 0x28]
+ ldrh r2, [r1, 0x28]
+ cmp r0, r2
+ bhi _0802A778
+ ldr r3, _0802A774 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A78A
+ .align 2, 0
+_0802A768: .4byte gBattleMons
+_0802A76C: .4byte gBankTarget
+_0802A770: .4byte gBankAttacker
+_0802A774: .4byte gBattlescriptCurrInstr
+_0802A778:
+ ldr r2, _0802A790 @ =gBattleMoveDamage
+ ldrh r0, [r3, 0x28]
+ ldrh r1, [r1, 0x28]
+ subs r0, r1
+ str r0, [r2]
+ ldr r1, _0802A794 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A78A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A790: .4byte gBattleMoveDamage
+_0802A794: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkD8_setdamagetohealthdifference
+
+ thumb_func_start atkD9_scaledamagebyhealthratio
+atkD9_scaledamagebyhealthratio: @ 802A798
+ push {r4,lr}
+ ldr r4, _0802A7E4 @ =gDynamicBasePower
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _0802A7D4
+ ldr r2, _0802A7E8 @ =gBattleMoves
+ ldr r0, _0802A7EC @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r3, [r0, 0x1]
+ ldr r2, _0802A7F0 @ =gBattleMons
+ ldr r0, _0802A7F4 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r0, [r1, 0x28]
+ muls r0, r3
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ strh r0, [r4]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0802A7D4
+ movs r0, 0x1
+ strh r0, [r4]
+_0802A7D4:
+ ldr r1, _0802A7F8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A7E4: .4byte gDynamicBasePower
+_0802A7E8: .4byte gBattleMoves
+_0802A7EC: .4byte gCurrentMove
+_0802A7F0: .4byte gBattleMons
+_0802A7F4: .4byte gBankAttacker
+_0802A7F8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkD9_scaledamagebyhealthratio
+
+ thumb_func_start atkDA_abilityswap
+atkDA_abilityswap: @ 802A7FC
+ push {r4-r6,lr}
+ ldr r5, _0802A860 @ =gBattleMons
+ ldr r0, _0802A864 @ =gBankAttacker
+ ldrb r0, [r0]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r5
+ adds r2, r0, 0
+ adds r2, 0x20
+ ldrb r1, [r2]
+ cmp r1, 0
+ bne _0802A824
+ ldr r0, _0802A868 @ =gBankTarget
+ ldrb r0, [r0]
+ muls r0, r4
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802A844
+_0802A824:
+ cmp r1, 0x19
+ beq _0802A844
+ ldr r6, _0802A868 @ =gBankTarget
+ ldrb r0, [r6]
+ muls r0, r4
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r3, [r0]
+ cmp r3, 0x19
+ beq _0802A844
+ ldr r0, _0802A86C @ =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A874
+_0802A844:
+ ldr r3, _0802A870 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A88A
+ .align 2, 0
+_0802A860: .4byte gBattleMons
+_0802A864: .4byte gBankAttacker
+_0802A868: .4byte gBankTarget
+_0802A86C: .4byte gBattleMoveFlags
+_0802A870: .4byte gBattlescriptCurrInstr
+_0802A874:
+ ldrb r1, [r2]
+ strb r3, [r2]
+ ldrb r0, [r6]
+ muls r0, r4
+ adds r0, r5
+ adds r0, 0x20
+ strb r1, [r0]
+ ldr r1, _0802A890 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A88A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A890: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkDA_abilityswap
+
+ thumb_func_start atkDB_imprisoneffect
+atkDB_imprisoneffect: @ 802A894
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _0802A8B8 @ =gStatuses3
+ ldr r0, _0802A8BC @ =gBankAttacker
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A8E8
+ b _0802A95E
+ .align 2, 0
+_0802A8B8: .4byte gStatuses3
+_0802A8BC: .4byte gBankAttacker
+_0802A8C0:
+ ldr r0, _0802A8E0 @ =gStatuses3
+ mov r2, r9
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 6
+ orrs r0, r2
+ str r0, [r1]
+ ldr r1, _0802A8E4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A956
+ .align 2, 0
+_0802A8E0: .4byte gStatuses3
+_0802A8E4: .4byte gBattlescriptCurrInstr
+_0802A8E8:
+ adds r0, r2, 0
+ bl sub_801529C
+ movs r6, 0
+ b _0802A94E
+_0802A8F2:
+ adds r0, r6, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r8, r0
+ beq _0802A948
+ movs r4, 0
+ ldr r7, _0802A984 @ =gBankAttacker
+ mov r9, r7
+ ldr r0, _0802A988 @ =gBattleMons
+ mov r12, r0
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r2, r12
+ adds r2, 0xC
+ movs r1, 0x58
+ muls r0, r1
+ adds r3, r0, r2
+ adds r5, r6, 0
+ muls r5, r1
+_0802A91C:
+ movs r2, 0
+ ldrh r1, [r3]
+ mov r0, r12
+ adds r0, 0xC
+ adds r0, r5, r0
+_0802A926:
+ ldrh r7, [r0]
+ cmp r1, r7
+ bne _0802A930
+ cmp r1, 0
+ bne _0802A938
+_0802A930:
+ adds r0, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _0802A926
+_0802A938:
+ cmp r2, 0x4
+ bne _0802A944
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0802A91C
+_0802A944:
+ cmp r4, 0x4
+ bne _0802A8C0
+_0802A948:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0802A94E:
+ ldr r0, _0802A98C @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _0802A8F2
+_0802A956:
+ ldr r0, _0802A98C @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r6, r0
+ bne _0802A978
+_0802A95E:
+ ldr r3, _0802A990 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802A978:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A984: .4byte gBankAttacker
+_0802A988: .4byte gBattleMons
+_0802A98C: .4byte gNoOfAllBanks
+_0802A990: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkDB_imprisoneffect
+
+ thumb_func_start atkDC_setgrudge
+atkDC_setgrudge: @ 802A994
+ push {lr}
+ ldr r1, _0802A9CC @ =gStatuses3
+ ldr r0, _0802A9D0 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 7
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0802A9D8
+ ldr r3, _0802A9D4 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A9E4
+ .align 2, 0
+_0802A9CC: .4byte gStatuses3
+_0802A9D0: .4byte gBankAttacker
+_0802A9D4: .4byte gBattlescriptCurrInstr
+_0802A9D8:
+ orrs r1, r3
+ str r1, [r2]
+ ldr r1, _0802A9E8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A9E4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A9E8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkDC_setgrudge
+
+ thumb_func_start atkDD_weightdamagecalculation
+atkDD_weightdamagecalculation: @ 802A9EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r2, _0802AA50 @ =gWeightDamage
+ ldrh r0, [r2]
+ ldr r1, _0802AA54 @ =0x0000ffff
+ cmp r0, r1
+ beq _0802AA64
+ adds r6, r2, 0
+ ldr r0, _0802AA58 @ =gBattleMons
+ mov r8, r0
+ adds r7, r1, 0
+ adds r4, r6, 0
+_0802AA08:
+ ldr r0, _0802AA5C @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r8
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetPokedexHeightWeight
+ ldrh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bhi _0802AA36
+ adds r4, 0x4
+ adds r5, 0x2
+ ldrh r0, [r4]
+ cmp r0, r7
+ bne _0802AA08
+_0802AA36:
+ lsls r0, r5, 1
+ adds r0, r6
+ ldrh r1, [r0]
+ ldr r0, _0802AA54 @ =0x0000ffff
+ cmp r1, r0
+ beq _0802AA64
+ ldr r0, _0802AA60 @ =gDynamicBasePower
+ adds r1, r5, 0x1
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _0802AA6A
+ .align 2, 0
+_0802AA50: .4byte gWeightDamage
+_0802AA54: .4byte 0x0000ffff
+_0802AA58: .4byte gBattleMons
+_0802AA5C: .4byte gBankTarget
+_0802AA60: .4byte gDynamicBasePower
+_0802AA64:
+ ldr r1, _0802AA7C @ =gDynamicBasePower
+ movs r0, 0x78
+ strh r0, [r1]
+_0802AA6A:
+ ldr r1, _0802AA80 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802AA7C: .4byte gDynamicBasePower
+_0802AA80: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkDD_weightdamagecalculation
+
+ thumb_func_start atkDE_asistattackselect
+atkDE_asistattackselect: @ 802AA84
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r10, r0
+ ldr r0, _0802AB9C @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ movs r1, 0x1
+ ands r1, r0
+ ldr r0, _0802ABA0 @ =gPlayerParty
+ str r0, [sp]
+ cmp r1, 0
+ beq _0802AAAC
+ ldr r1, _0802ABA4 @ =gEnemyParty
+ str r1, [sp]
+_0802AAAC:
+ movs r2, 0
+_0802AAAE:
+ ldr r1, _0802ABA8 @ =gBattlePartyID
+ ldr r0, _0802AB9C @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ adds r1, r2, 0x1
+ str r1, [sp, 0x4]
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0802AB54
+ movs r0, 0x64
+ adds r6, r2, 0
+ muls r6, r0
+ ldr r0, [sp]
+ adds r4, r0, r6
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _0802AB54
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _0802AB54
+ movs r5, 0
+ ldr r1, _0802ABAC @ =0x0000ffff
+ mov r8, r1
+ mov r9, r6
+ mov r1, r10
+ lsls r0, r1, 1
+ ldr r1, _0802ABB0 @ =0x02016024
+ adds r6, r0, r1
+_0802AAF8:
+ movs r7, 0
+ adds r1, r5, 0
+ adds r1, 0xD
+ ldr r0, [sp]
+ add r0, r9
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_802838C
+ lsls r0, 24
+ adds r1, r5, 0x1
+ cmp r0, 0
+ bne _0802AB4E
+ ldr r0, _0802ABB4 @ =gUnknown_081FACFE
+ ldrh r2, [r0]
+ adds r3, r0, 0
+ cmp r2, r8
+ beq _0802AB42
+ cmp r4, r2
+ beq _0802AB38
+ ldr r5, _0802ABAC @ =0x0000ffff
+ adds r2, r3, 0
+_0802AB2A:
+ adds r2, 0x2
+ adds r7, 0x1
+ ldrh r0, [r2]
+ cmp r0, r5
+ beq _0802AB42
+ cmp r4, r0
+ bne _0802AB2A
+_0802AB38:
+ lsls r0, r7, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r8
+ bne _0802AB4E
+_0802AB42:
+ cmp r4, 0
+ beq _0802AB4E
+ strh r4, [r6]
+ adds r6, 0x2
+ movs r0, 0x1
+ add r10, r0
+_0802AB4E:
+ adds r5, r1, 0
+ cmp r5, 0x3
+ ble _0802AAF8
+_0802AB54:
+ ldr r2, [sp, 0x4]
+ cmp r2, 0x5
+ ble _0802AAAE
+ mov r1, r10
+ cmp r1, 0
+ beq _0802ABCC
+ ldr r2, _0802ABB8 @ =gHitMarker
+ ldr r0, [r2]
+ ldr r1, _0802ABBC @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _0802ABC0 @ =gUnknown_02024BEA
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ mov r0, r10
+ muls r0, r1
+ asrs r0, 8
+ lsls r0, 1
+ ldr r1, _0802ABB0 @ =0x02016024
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _0802ABC4 @ =gBankTarget
+ strb r0, [r1]
+ ldr r1, _0802ABC8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802ABE6
+ .align 2, 0
+_0802AB9C: .4byte gBankAttacker
+_0802ABA0: .4byte gPlayerParty
+_0802ABA4: .4byte gEnemyParty
+_0802ABA8: .4byte gBattlePartyID
+_0802ABAC: .4byte 0x0000ffff
+_0802ABB0: .4byte 0x02016024
+_0802ABB4: .4byte gUnknown_081FACFE
+_0802ABB8: .4byte gHitMarker
+_0802ABBC: .4byte 0xfffffbff
+_0802ABC0: .4byte gUnknown_02024BEA
+_0802ABC4: .4byte gBankTarget
+_0802ABC8: .4byte gBattlescriptCurrInstr
+_0802ABCC:
+ ldr r3, _0802ABF8 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802ABE6:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802ABF8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkDE_asistattackselect
+
+ thumb_func_start atkDF_setmagiccoat
+atkDF_setmagiccoat: @ 802ABFC
+ push {lr}
+ ldr r1, _0802AC44 @ =gBankTarget
+ ldr r3, _0802AC48 @ =gBankAttacker
+ ldrb r0, [r3]
+ strb r0, [r1]
+ ldr r2, _0802AC4C @ =gSpecialStatuses
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0802AC50 @ =gCurrentMoveTurn
+ ldrb r1, [r0]
+ ldr r0, _0802AC54 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _0802AC5C
+ ldr r3, _0802AC58 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802AC74
+ .align 2, 0
+_0802AC44: .4byte gBankTarget
+_0802AC48: .4byte gBankAttacker
+_0802AC4C: .4byte gSpecialStatuses
+_0802AC50: .4byte gCurrentMoveTurn
+_0802AC54: .4byte gNoOfAllBanks
+_0802AC58: .4byte gBattlescriptCurrInstr
+_0802AC5C:
+ ldr r0, _0802AC78 @ =gProtectStructs
+ ldrb r1, [r3]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x10
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _0802AC7C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802AC74:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802AC78: .4byte gProtectStructs
+_0802AC7C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkDF_setmagiccoat
+
+ thumb_func_start atkE0_setstealstatchange
+atkE0_setstealstatchange: @ 802AC80
+ push {lr}
+ ldr r2, _0802ACC4 @ =gSpecialStatuses
+ ldr r3, _0802ACC8 @ =gBankAttacker
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0802ACCC @ =gCurrentMoveTurn
+ ldrb r1, [r0]
+ ldr r0, _0802ACD0 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _0802ACD8
+ ldr r3, _0802ACD4 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802ACEE
+ .align 2, 0
+_0802ACC4: .4byte gSpecialStatuses
+_0802ACC8: .4byte gBankAttacker
+_0802ACCC: .4byte gCurrentMoveTurn
+_0802ACD0: .4byte gNoOfAllBanks
+_0802ACD4: .4byte gBattlescriptCurrInstr
+_0802ACD8:
+ ldr r0, _0802ACF4 @ =gProtectStructs
+ ldrb r1, [r3]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _0802ACF8 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802ACEE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802ACF4: .4byte gProtectStructs
+_0802ACF8: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkE0_setstealstatchange
+
+ thumb_func_start atkE1_802CBE4
+atkE1_802CBE4: @ 802ACFC
+ push {r4-r6,lr}
+ ldr r4, _0802ADA0 @ =0x02000000
+ ldr r1, _0802ADA4 @ =0x000160dd
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ subs r1, 0xDA
+ adds r4, r1
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _0802ADA8 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x9
+ strb r0, [r2, 0x1]
+ ldr r3, _0802ADAC @ =gBattleMons
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r2, _0802ADB0 @ =gBankTarget
+ ldr r1, _0802ADB4 @ =gNoOfAllBanks
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0802AD84
+ adds r4, r2, 0
+ ldr r6, _0802ADB8 @ =gBitTable
+_0802AD44:
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ beq _0802AD66
+ ldr r0, _0802ADBC @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r2, _0802ADB4 @ =gNoOfAllBanks
+ cmp r1, 0
+ beq _0802AD7A
+_0802AD66:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _0802ADB4 @ =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r1, 0
+ ldrb r1, [r2]
+ cmp r0, r1
+ bcc _0802AD44
+_0802AD7A:
+ ldr r0, _0802ADB0 @ =gBankTarget
+ ldrb r0, [r0]
+ ldrb r2, [r2]
+ cmp r0, r2
+ bcc _0802ADC4
+_0802AD84:
+ ldr r3, _0802ADC0 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802ADCC
+ .align 2, 0
+_0802ADA0: .4byte 0x02000000
+_0802ADA4: .4byte 0x000160dd
+_0802ADA8: .4byte gBattleTextBuff1
+_0802ADAC: .4byte gBattleMons
+_0802ADB0: .4byte gBankTarget
+_0802ADB4: .4byte gNoOfAllBanks
+_0802ADB8: .4byte gBitTable
+_0802ADBC: .4byte gAbsentBankFlags
+_0802ADC0: .4byte gBattlescriptCurrInstr
+_0802ADC4:
+ ldr r1, _0802ADD4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802ADCC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802ADD4: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkE1_802CBE4
+
+ thumb_func_start sub_802ADD8
+sub_802ADD8: @ 802ADD8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r6, _0802AE44 @ =gBattlescriptCurrInstr
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _0802AE48 @ =gActiveBank
+ strb r0, [r5]
+ ldr r4, _0802AE4C @ =gBattleMons
+ ldrb r0, [r5]
+ movs r1, 0x58
+ mov r12, r1
+ mov r1, r12
+ muls r1, r0
+ adds r0, r1, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1E
+ bne _0802AE34
+ adds r4, 0x4C
+ adds r1, r4
+ movs r0, 0
+ str r0, [r1]
+ ldr r2, _0802AE50 @ =gBitTable
+ ldr r1, _0802AE54 @ =0x02000000
+ ldrb r3, [r5]
+ ldr r7, _0802AE58 @ =0x00016064
+ adds r0, r3, r7
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0]
+ mov r0, r12
+ muls r0, r3
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r3, 0x4
+ bl EmitSetAttributes
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+_0802AE34:
+ ldr r0, [r6]
+ adds r0, 0x2
+ str r0, [r6]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802AE44: .4byte gBattlescriptCurrInstr
+_0802AE48: .4byte gActiveBank
+_0802AE4C: .4byte gBattleMons
+_0802AE50: .4byte gBitTable
+_0802AE54: .4byte 0x02000000
+_0802AE58: .4byte 0x00016064
+ thumb_func_end sub_802ADD8
+
+ thumb_func_start atkE3_jumpiffainted
+atkE3_jumpiffainted: @ 802AE5C
+ push {r4,lr}
+ ldr r4, _0802AE98 @ =gBattlescriptCurrInstr
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _0802AE9C @ =gActiveBank
+ strb r0, [r1]
+ ldr r2, _0802AEA0 @ =gBattleMons
+ ldrb r1, [r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0802AEA4
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0802AEAA
+ .align 2, 0
+_0802AE98: .4byte gBattlescriptCurrInstr
+_0802AE9C: .4byte gActiveBank
+_0802AEA0: .4byte gBattleMons
+_0802AEA4:
+ ldr r0, [r4]
+ adds r0, 0x6
+ str r0, [r4]
+_0802AEAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end atkE3_jumpiffainted
+
+ thumb_func_start sub_802AEB0
+sub_802AEB0: @ 802AEB0
+ push {lr}
+ ldr r0, _0802AEC4 @ =gBattleTerrain
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bhi _0802AF4C
+ lsls r0, 2
+ ldr r1, _0802AEC8 @ =_0802AECC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802AEC4: .4byte gBattleTerrain
+_0802AEC8: .4byte _0802AECC
+ .align 2, 0
+_0802AECC:
+ .4byte _0802AEEC
+ .4byte _0802AEF8
+ .4byte _0802AF04
+ .4byte _0802AF10
+ .4byte _0802AF1C
+ .4byte _0802AF28
+ .4byte _0802AF34
+ .4byte _0802AF40
+_0802AEEC:
+ ldr r1, _0802AEF4 @ =gBattleCommunication
+ movs r0, 0x2
+ b _0802AF50
+ .align 2, 0
+_0802AEF4: .4byte gBattleCommunication
+_0802AEF8:
+ ldr r1, _0802AF00 @ =gBattleCommunication
+ movs r0, 0x1
+ b _0802AF50
+ .align 2, 0
+_0802AF00: .4byte gBattleCommunication
+_0802AF04:
+ ldr r1, _0802AF0C @ =gBattleCommunication
+ movs r0, 0x1B
+ b _0802AF50
+ .align 2, 0
+_0802AF0C: .4byte gBattleCommunication
+_0802AF10:
+ ldr r1, _0802AF18 @ =gBattleCommunication
+ movs r0, 0x17
+ b _0802AF50
+ .align 2, 0
+_0802AF18: .4byte gBattleCommunication
+_0802AF1C:
+ ldr r1, _0802AF24 @ =gBattleCommunication
+ movs r0, 0x16
+ b _0802AF50
+ .align 2, 0
+_0802AF24: .4byte gBattleCommunication
+_0802AF28:
+ ldr r1, _0802AF30 @ =gBattleCommunication
+ movs r0, 0x18
+ b _0802AF50
+ .align 2, 0
+_0802AF30: .4byte gBattleCommunication
+_0802AF34:
+ ldr r1, _0802AF3C @ =gBattleCommunication
+ movs r0, 0x7
+ b _0802AF50
+ .align 2, 0
+_0802AF3C: .4byte gBattleCommunication
+_0802AF40:
+ ldr r1, _0802AF48 @ =gBattleCommunication
+ movs r0, 0x8
+ b _0802AF50
+ .align 2, 0
+_0802AF48: .4byte gBattleCommunication
+_0802AF4C:
+ ldr r1, _0802AF60 @ =gBattleCommunication
+ movs r0, 0x5
+_0802AF50:
+ strb r0, [r1, 0x3]
+ ldr r1, _0802AF64 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802AF60: .4byte gBattleCommunication
+_0802AF64: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802AEB0
+
+ thumb_func_start sub_802AF68
+sub_802AF68: @ 802AF68
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ ldr r0, _0802AFB4 @ =gBaseStats
+ mov r9, r0
+ ldr r1, _0802AFB8 @ =gPickupItems
+ mov r8, r1
+_0802AF7A:
+ movs r0, 0x64
+ adds r4, r7, 0
+ muls r4, r0
+ ldr r0, _0802AFBC @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ cmp r0, 0
+ beq _0802AFC0
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x17]
+ b _0802AFCA
+ .align 2, 0
+_0802AFB4: .4byte gBaseStats
+_0802AFB8: .4byte gPickupItems
+_0802AFBC: .4byte gPlayerParty
+_0802AFC0:
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x16]
+_0802AFCA:
+ adds r4, r7, 0x1
+ cmp r0, 0x35
+ bne _0802B032
+ cmp r5, 0
+ beq _0802B032
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r5, r0
+ beq _0802B032
+ cmp r6, 0
+ bne _0802B032
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0802B032
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ mov r1, r8
+ ldrh r0, [r1, 0x2]
+ cmp r0, r3
+ bgt _0802B020
+ adds r1, 0x2
+_0802B012:
+ adds r1, 0x4
+ adds r2, 0x2
+ cmp r2, 0x11
+ bgt _0802B020
+ ldrh r0, [r1]
+ cmp r0, r3
+ ble _0802B012
+_0802B020:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, _0802B04C @ =gPlayerParty
+ adds r0, r1
+ lsls r2, 1
+ add r2, r8
+ movs r1, 0xC
+ bl SetMonData
+_0802B032:
+ adds r7, r4, 0
+ cmp r7, 0x5
+ ble _0802AF7A
+ ldr r1, _0802B050 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B04C: .4byte gPlayerParty
+_0802B050: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802AF68
+
+ thumb_func_start atkE6_castform_transform
+atkE6_castform_transform: @ 802B054
+ push {r4,lr}
+ ldr r4, _0802B0A8 @ =gActiveBank
+ ldr r3, _0802B0AC @ =0x02000000
+ ldr r1, _0802B0B0 @ =0x00016003
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r1, _0802B0B4 @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B086
+ ldr r0, _0802B0B8 @ =0x0001609b
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+_0802B086:
+ ldr r1, _0802B0B8 @ =0x0001609b
+ adds r0, r3, r1
+ ldrb r2, [r0]
+ movs r0, 0
+ movs r1, 0
+ bl EmitBattleAnimation
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ ldr r1, _0802B0BC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B0A8: .4byte gActiveBank
+_0802B0AC: .4byte 0x02000000
+_0802B0B0: .4byte 0x00016003
+_0802B0B4: .4byte gBattleMons
+_0802B0B8: .4byte 0x0001609b
+_0802B0BC: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkE6_castform_transform
+
+ thumb_func_start atkE7_castform_switch
+atkE7_castform_switch: @ 802B0C0
+ push {r4,r5,lr}
+ ldr r1, _0802B0F4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r5, _0802B0F8 @ =0x02000000
+ ldr r1, _0802B0FC @ =0x00016003
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl castform_switch
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0802B0EC
+ ldr r0, _0802B100 @ =gUnknown_081D977D
+ bl b_push_move_exec
+ subs r1, r4, 0x1
+ ldr r2, _0802B104 @ =0x0001609b
+ adds r0, r5, r2
+ strb r1, [r0]
+_0802B0EC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B0F4: .4byte gBattlescriptCurrInstr
+_0802B0F8: .4byte 0x02000000
+_0802B0FC: .4byte 0x00016003
+_0802B100: .4byte gUnknown_081D977D
+_0802B104: .4byte 0x0001609b
+ thumb_func_end atkE7_castform_switch
+
+ thumb_func_start atkE8_settypebasedhalvers
+atkE8_settypebasedhalvers: @ 802B108
+ push {r4,lr}
+ movs r4, 0
+ ldr r2, _0802B144 @ =gBattleMoves
+ ldr r0, _0802B148 @ =gCurrentMove
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0xC9
+ bne _0802B158
+ ldr r1, _0802B14C @ =gStatuses3
+ ldr r0, _0802B150 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _0802B17C
+ orrs r1, r3
+ str r1, [r2]
+ ldr r0, _0802B154 @ =gBattleCommunication
+ strb r4, [r0, 0x5]
+ b _0802B180
+ .align 2, 0
+_0802B144: .4byte gBattleMoves
+_0802B148: .4byte gCurrentMove
+_0802B14C: .4byte gStatuses3
+_0802B150: .4byte gBankAttacker
+_0802B154: .4byte gBattleCommunication
+_0802B158:
+ ldr r1, _0802B18C @ =gStatuses3
+ ldr r0, _0802B190 @ =gBankAttacker
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 10
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _0802B17C
+ orrs r1, r3
+ str r1, [r2]
+ ldr r1, _0802B194 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ movs r4, 0x1
+_0802B17C:
+ cmp r4, 0
+ beq _0802B19C
+_0802B180:
+ ldr r1, _0802B198 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802B1B6
+ .align 2, 0
+_0802B18C: .4byte gStatuses3
+_0802B190: .4byte gBankAttacker
+_0802B194: .4byte gBattleCommunication
+_0802B198: .4byte gBattlescriptCurrInstr
+_0802B19C:
+ ldr r3, _0802B1BC @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802B1B6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B1BC: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkE8_settypebasedhalvers
+
+ thumb_func_start sub_802B1C0
+sub_802B1C0: @ 802B1C0
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0802B276
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802B276
+ ldr r3, _0802B218 @ =gBattleWeather
+ ldrb r0, [r3]
+ ldr r2, _0802B21C @ =0x02000000
+ cmp r0, 0
+ beq _0802B202
+ ldr r0, _0802B220 @ =0x0001601f
+ adds r1, r2, r0
+ movs r0, 0x2
+ strb r0, [r1]
+_0802B202:
+ ldrh r1, [r3]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B228
+ ldr r0, _0802B224 @ =0x0001601c
+ adds r1, r2, r0
+ movs r0, 0x8B
+ strb r0, [r1]
+ b _0802B276
+ .align 2, 0
+_0802B218: .4byte gBattleWeather
+_0802B21C: .4byte 0x02000000
+_0802B220: .4byte 0x0001601f
+_0802B224: .4byte 0x0001601c
+_0802B228:
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B240
+ ldr r0, _0802B23C @ =0x0001601c
+ adds r1, r2, r0
+ movs r0, 0x85
+ strb r0, [r1]
+ b _0802B276
+ .align 2, 0
+_0802B23C: .4byte 0x0001601c
+_0802B240:
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B258
+ ldr r0, _0802B254 @ =0x0001601c
+ adds r1, r2, r0
+ movs r0, 0x8A
+ strb r0, [r1]
+ b _0802B276
+ .align 2, 0
+_0802B254: .4byte 0x0001601c
+_0802B258:
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B270
+ ldr r0, _0802B26C @ =0x0001601c
+ adds r1, r2, r0
+ movs r0, 0x8F
+ strb r0, [r1]
+ b _0802B276
+ .align 2, 0
+_0802B26C: .4byte 0x0001601c
+_0802B270:
+ ldr r1, _0802B284 @ =0x0001601c
+ adds r0, r2, r1
+ strb r3, [r0]
+_0802B276:
+ ldr r1, _0802B288 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B284: .4byte 0x0001601c
+_0802B288: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802B1C0
+
+ thumb_func_start atkEA_recycleitem
+atkEA_recycleitem: @ 802B28C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r7, _0802B2F0 @ =gActiveBank
+ ldr r0, _0802B2F4 @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r7]
+ ldrb r2, [r7]
+ lsls r1, r2, 1
+ ldr r0, _0802B2F8 @ =0x020160cc
+ adds r6, r1, r0
+ ldrh r5, [r6]
+ cmp r5, 0
+ beq _0802B308
+ ldr r4, _0802B2FC @ =gBattleMons
+ movs r3, 0x58
+ adds r0, r2, 0
+ muls r0, r3
+ adds r0, r4
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ bne _0802B308
+ ldr r1, _0802B300 @ =gLastUsedItem
+ strh r5, [r1]
+ strh r0, [r6]
+ ldrb r0, [r7]
+ muls r0, r3
+ adds r0, r4
+ ldrh r1, [r1]
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r7]
+ muls r0, r3
+ adds r1, r4, 0
+ adds r1, 0x2E
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl EmitSetAttributes
+ ldrb r0, [r7]
+ bl MarkBufferBankForExecution
+ ldr r1, _0802B304 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802B322
+ .align 2, 0
+_0802B2F0: .4byte gActiveBank
+_0802B2F4: .4byte gBankAttacker
+_0802B2F8: .4byte 0x020160cc
+_0802B2FC: .4byte gBattleMons
+_0802B300: .4byte gLastUsedItem
+_0802B304: .4byte gBattlescriptCurrInstr
+_0802B308:
+ ldr r3, _0802B32C @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802B322:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B32C: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkEA_recycleitem
+
+ thumb_func_start atkEB_settypetoterrain
+atkEB_settypetoterrain: @ 802B330
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0802B3A0 @ =gBattleMons
+ mov r8, r0
+ ldr r7, _0802B3A4 @ =gBankAttacker
+ ldrb r0, [r7]
+ movs r6, 0x58
+ muls r0, r6
+ mov r1, r8
+ adds r3, r0, r1
+ movs r0, 0x21
+ adds r0, r3
+ mov r12, r0
+ ldr r5, _0802B3A8 @ =gTerrainToType
+ ldr r4, _0802B3AC @ =gBattleTerrain
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r2, [r0]
+ mov r1, r12
+ ldrb r0, [r1]
+ adds r1, r2, 0
+ cmp r0, r1
+ beq _0802B3B8
+ adds r0, r3, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r1
+ beq _0802B3B8
+ mov r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ add r1, r8
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ adds r1, 0x22
+ strb r0, [r1]
+ ldr r1, _0802B3B0 @ =gBattleTextBuff1
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _0802B3B4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802B3D2
+ .align 2, 0
+_0802B3A0: .4byte gBattleMons
+_0802B3A4: .4byte gBankAttacker
+_0802B3A8: .4byte gTerrainToType
+_0802B3AC: .4byte gBattleTerrain
+_0802B3B0: .4byte gBattleTextBuff1
+_0802B3B4: .4byte gBattlescriptCurrInstr
+_0802B3B8:
+ ldr r3, _0802B3DC @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802B3D2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B3DC: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkEB_settypetoterrain
+
+ thumb_func_start sub_802B3E0
+sub_802B3E0: @ 802B3E0
+ push {r4,r5,lr}
+ ldr r5, _0802B45C @ =gBankAttacker
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r4, _0802B460 @ =gActiveBank
+ strb r0, [r4]
+ ldr r0, _0802B464 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B490
+ ldr r0, _0802B468 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _0802B46C @ =gBitTable
+ ldrb r3, [r4]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802B490
+ ldr r0, _0802B470 @ =gActionForBanks
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802B490
+ ldr r1, _0802B474 @ =gChosenMovesByBanks
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r2, [r0]
+ cmp r2, 0xE4
+ bne _0802B490
+ ldr r0, _0802B478 @ =gUnknown_02024A76
+ adds r0, r3, r0
+ movs r1, 0xB
+ strb r1, [r0]
+ ldr r0, _0802B47C @ =gCurrentMove
+ strh r2, [r0]
+ ldr r1, _0802B480 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ ldr r1, _0802B484 @ =0x02000000
+ ldr r0, _0802B488 @ =0x00016002
+ adds r2, r1, r0
+ movs r0, 0x1
+ strb r0, [r2]
+ ldrb r0, [r5]
+ ldr r2, _0802B48C @ =0x000160a7
+ adds r1, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ strb r0, [r5]
+ b _0802B4AA
+ .align 2, 0
+_0802B45C: .4byte gBankAttacker
+_0802B460: .4byte gActiveBank
+_0802B464: .4byte gBattleTypeFlags
+_0802B468: .4byte gAbsentBankFlags
+_0802B46C: .4byte gBitTable
+_0802B470: .4byte gActionForBanks
+_0802B474: .4byte gChosenMovesByBanks
+_0802B478: .4byte gUnknown_02024A76
+_0802B47C: .4byte gCurrentMove
+_0802B480: .4byte gBattlescriptCurrInstr
+_0802B484: .4byte 0x02000000
+_0802B488: .4byte 0x00016002
+_0802B48C: .4byte 0x000160a7
+_0802B490:
+ ldr r3, _0802B4B0 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802B4AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B4B0: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802B3E0
+
+ thumb_func_start sub_802B4B4
+sub_802B4B4: @ 802B4B4
+ push {r4,r5,lr}
+ ldr r1, _0802B4DC @ =gEffectBank
+ ldr r3, _0802B4E0 @ =gBankAttacker
+ ldrb r0, [r3]
+ strb r0, [r1]
+ ldr r2, _0802B4E4 @ =gBankTarget
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r1, 0
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0802B4F0
+ ldr r0, _0802B4E8 @ =0x02000000
+ ldr r5, _0802B4EC @ =0x00016003
+ adds r1, r0, r5
+ ldrb r1, [r1]
+ strb r1, [r2]
+ strb r1, [r3]
+ b _0802B4FA
+ .align 2, 0
+_0802B4DC: .4byte gEffectBank
+_0802B4E0: .4byte gBankAttacker
+_0802B4E4: .4byte gBankTarget
+_0802B4E8: .4byte 0x02000000
+_0802B4EC: .4byte 0x00016003
+_0802B4F0:
+ ldr r0, _0802B510 @ =0x02000000
+ ldr r3, _0802B514 @ =0x00016003
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ strb r1, [r2]
+_0802B4FA:
+ ldrb r1, [r4]
+ ldr r5, _0802B514 @ =0x00016003
+ adds r0, r5
+ strb r1, [r0]
+ ldr r1, _0802B518 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B510: .4byte 0x02000000
+_0802B514: .4byte 0x00016003
+_0802B518: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802B4B4
+
+ thumb_func_start sub_802B51C
+sub_802B51C: @ 802B51C
+ push {r4,lr}
+ ldr r0, _0802B56C @ =gBankAttacker
+ ldrb r0, [r0]
+ bl GetBankSide
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0802B570 @ =gSideTimer
+ lsls r3, r0, 1
+ adds r0, r3, r0
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0802B544
+ ldrb r2, [r4, 0x1]
+ cmp r2, 0
+ beq _0802B58C
+_0802B544:
+ ldr r2, _0802B574 @ =gSideAffecting
+ adds r2, r3, r2
+ ldrh r1, [r2]
+ ldr r0, _0802B578 @ =0x0000fffe
+ ands r0, r1
+ movs r3, 0
+ ldr r1, _0802B57C @ =0x0000fffd
+ ands r0, r1
+ strh r0, [r2]
+ strb r3, [r4]
+ strb r3, [r4, 0x1]
+ ldr r0, _0802B580 @ =0x02000000
+ ldr r2, _0802B584 @ =0x00016002
+ adds r1, r0, r2
+ movs r2, 0x1
+ strb r2, [r1]
+ ldr r3, _0802B588 @ =0x000160a1
+ adds r0, r3
+ b _0802B598
+ .align 2, 0
+_0802B56C: .4byte gBankAttacker
+_0802B570: .4byte gSideTimer
+_0802B574: .4byte gSideAffecting
+_0802B578: .4byte 0x0000fffe
+_0802B57C: .4byte 0x0000fffd
+_0802B580: .4byte 0x02000000
+_0802B584: .4byte 0x00016002
+_0802B588: .4byte 0x000160a1
+_0802B58C:
+ ldr r0, _0802B5A8 @ =0x02000000
+ ldr r3, _0802B5AC @ =0x00016002
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _0802B5B0 @ =0x000160a1
+ adds r0, r1
+_0802B598:
+ strb r2, [r0]
+ ldr r1, _0802B5B4 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B5A8: .4byte 0x02000000
+_0802B5AC: .4byte 0x00016002
+_0802B5B0: .4byte 0x000160a1
+_0802B5B4: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802B51C
+
+ thumb_func_start sub_802B5B8
+sub_802B5B8: @ 802B5B8
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, _0802B5F8 @ =gBattleExecBuffer
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802B5C6
+ b _0802B94E
+_0802B5C6:
+ ldr r5, _0802B5FC @ =gActiveBank
+ ldr r0, _0802B600 @ =gBankAttacker
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r6, _0802B604 @ =gBankTarget
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r6]
+ ldr r0, _0802B608 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B614
+ movs r0, 0
+ movs r1, 0x5
+ bl dp01_build_cmdbuf_x0D_a
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+ ldr r1, _0802B60C @ =gBattlescriptCurrInstr
+ ldr r0, _0802B610 @ =gUnknown_081D9F35
+ b _0802B94C
+ .align 2, 0
+_0802B5F8: .4byte gBattleExecBuffer
+_0802B5FC: .4byte gActiveBank
+_0802B600: .4byte gBankAttacker
+_0802B604: .4byte gBankTarget
+_0802B608: .4byte gBattleTypeFlags
+_0802B60C: .4byte gBattlescriptCurrInstr
+_0802B610: .4byte gUnknown_081D9F35
+_0802B614:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B63C
+ movs r0, 0
+ movs r1, 0x4
+ bl dp01_build_cmdbuf_x0D_a
+ ldrb r0, [r5]
+ bl MarkBufferBankForExecution
+ ldr r1, _0802B634 @ =gBattlescriptCurrInstr
+ ldr r0, _0802B638 @ =gUnknown_081D9F00
+ b _0802B94C
+ .align 2, 0
+_0802B634: .4byte gBattlescriptCurrInstr
+_0802B638: .4byte gUnknown_081D9F00
+_0802B63C:
+ ldr r0, _0802B660 @ =gLastUsedItem
+ ldrh r0, [r0]
+ cmp r0, 0x5
+ bne _0802B66C
+ ldr r0, _0802B664 @ =0x02000000
+ ldr r1, _0802B668 @ =0x00016089
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 8
+ subs r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0802B684
+ .align 2, 0
+_0802B660: .4byte gLastUsedItem
+_0802B664: .4byte 0x02000000
+_0802B668: .4byte 0x00016089
+_0802B66C:
+ ldr r3, _0802B6A0 @ =gBaseStats
+ ldr r2, _0802B6A4 @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r5, [r0, 0x8]
+_0802B684:
+ ldr r2, _0802B6A8 @ =gLastUsedItem
+ ldrh r0, [r2]
+ cmp r0, 0x5
+ bhi _0802B68E
+ b _0802B784
+_0802B68E:
+ subs r0, 0x6
+ cmp r0, 0x6
+ bls _0802B696
+ b _0802B78E
+_0802B696:
+ lsls r0, 2
+ ldr r1, _0802B6AC @ =_0802B6B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802B6A0: .4byte gBaseStats
+_0802B6A4: .4byte gBattleMons
+_0802B6A8: .4byte gLastUsedItem
+_0802B6AC: .4byte _0802B6B0
+ .align 2, 0
+_0802B6B0:
+ .4byte _0802B6CC
+ .4byte _0802B6FC
+ .4byte _0802B70E
+ .4byte _0802B73C
+ .4byte _0802B76C
+ .4byte _0802B72E
+ .4byte _0802B72E
+_0802B6CC:
+ ldr r2, _0802B6F4 @ =gBattleMons
+ ldr r0, _0802B6F8 @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r1, 0xB
+ beq _0802B760
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xB
+ beq _0802B760
+ cmp r1, 0x6
+ beq _0802B760
+ cmp r0, 0x6
+ beq _0802B760
+ b _0802B72E
+ .align 2, 0
+_0802B6F4: .4byte gBattleMons
+_0802B6F8: .4byte gBankTarget
+_0802B6FC:
+ bl sav1_map_get_light_level
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0xA
+ cmp r0, 0x5
+ bne _0802B78E
+ movs r4, 0x23
+ b _0802B78E
+_0802B70E:
+ ldr r2, _0802B734 @ =gBattleMons
+ ldr r0, _0802B738 @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ cmp r1, 0x27
+ bhi _0802B72E
+ movs r0, 0x28
+ subs r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bhi _0802B78E
+_0802B72E:
+ movs r4, 0xA
+ b _0802B78E
+ .align 2, 0
+_0802B734: .4byte gBattleMons
+_0802B738: .4byte gBankTarget
+_0802B73C:
+ ldr r2, _0802B764 @ =gBattleMons
+ ldr r0, _0802B768 @ =gBankTarget
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetNationalPokedexFlag
+ lsls r0, 24
+ movs r4, 0xA
+ cmp r0, 0
+ beq _0802B78E
+_0802B760:
+ movs r4, 0x1E
+ b _0802B78E
+ .align 2, 0
+_0802B764: .4byte gBattleMons
+_0802B768: .4byte gBankTarget
+_0802B76C:
+ ldr r0, _0802B780 @ =gBattleResults
+ ldrb r0, [r0, 0x13]
+ adds r0, 0xA
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x28
+ bls _0802B78E
+ movs r4, 0x28
+ b _0802B78E
+ .align 2, 0
+_0802B780: .4byte gBattleResults
+_0802B784:
+ ldr r1, _0802B7F4 @ =gBallCatchBonuses
+ ldrh r0, [r2]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r4, [r0]
+_0802B78E:
+ adds r0, r5, 0
+ muls r0, r4
+ movs r1, 0xA
+ bl __divsi3
+ ldr r5, _0802B7F8 @ =gBattleMons
+ ldr r1, _0802B7FC @ =gBankTarget
+ ldrb r1, [r1]
+ movs r7, 0x58
+ adds r4, r1, 0
+ muls r4, r7
+ adds r3, r4, r5
+ ldrh r2, [r3, 0x2C]
+ lsls r1, r2, 1
+ adds r1, r2
+ ldrh r2, [r3, 0x28]
+ lsls r2, 1
+ subs r2, r1, r2
+ muls r0, r2
+ bl __divsi3
+ adds r6, r0, 0
+ adds r5, 0x4C
+ adds r4, r5
+ ldr r4, [r4]
+ movs r0, 0x27
+ ands r0, r4
+ cmp r0, 0
+ beq _0802B7CA
+ lsls r6, 1
+_0802B7CA:
+ ands r4, r7
+ cmp r4, 0
+ beq _0802B7DC
+ lsls r0, r6, 4
+ subs r0, r6
+ movs r1, 0xA
+ bl __udivsi3
+ adds r6, r0, 0
+_0802B7DC:
+ ldr r1, _0802B800 @ =gLastUsedItem
+ ldrh r0, [r1]
+ cmp r0, 0x5
+ beq _0802B81C
+ cmp r0, 0x1
+ bne _0802B808
+ ldr r0, _0802B804 @ =gBattleResults
+ ldrb r1, [r0, 0x5]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ b _0802B81C
+ .align 2, 0
+_0802B7F4: .4byte gBallCatchBonuses
+_0802B7F8: .4byte gBattleMons
+_0802B7FC: .4byte gBankTarget
+_0802B800: .4byte gLastUsedItem
+_0802B804: .4byte gBattleResults
+_0802B808:
+ ldr r0, _0802B860 @ =gBattleResults
+ ldrh r1, [r1]
+ adds r0, r1
+ adds r1, r0, 0
+ adds r1, 0x34
+ ldrb r0, [r1]
+ cmp r0, 0xFE
+ bhi _0802B81C
+ adds r0, 0x1
+ strb r0, [r1]
+_0802B81C:
+ cmp r6, 0xFE
+ bls _0802B880
+ movs r0, 0
+ movs r1, 0x4
+ bl dp01_build_cmdbuf_x0D_a
+ ldr r0, _0802B864 @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ ldr r1, _0802B868 @ =gBattlescriptCurrInstr
+ ldr r0, _0802B86C @ =gUnknown_081D9EC2
+ str r0, [r1]
+ ldr r1, _0802B870 @ =gBattlePartyID
+ ldr r0, _0802B874 @ =gBankTarget
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802B878 @ =gEnemyParty
+ adds r0, r1
+ ldr r2, _0802B87C @ =gLastUsedItem
+ movs r1, 0x26
+ bl SetMonData
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ beq _0802B90E
+ b _0802B938
+ .align 2, 0
+_0802B860: .4byte gBattleResults
+_0802B864: .4byte gActiveBank
+_0802B868: .4byte gBattlescriptCurrInstr
+_0802B86C: .4byte gUnknown_081D9EC2
+_0802B870: .4byte gBattlePartyID
+_0802B874: .4byte gBankTarget
+_0802B878: .4byte gEnemyParty
+_0802B87C: .4byte gLastUsedItem
+_0802B880:
+ movs r0, 0xFF
+ lsls r0, 16
+ adds r1, r6, 0
+ bl __udivsi3
+ bl Sqrt
+ lsls r0, 16
+ lsrs r0, 16
+ bl Sqrt
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _0802B8A8 @ =0x000ffff0
+ adds r1, r6, 0
+ bl __udivsi3
+ adds r6, r0, 0
+ movs r4, 0
+ b _0802B8B2
+ .align 2, 0
+_0802B8A8: .4byte 0x000ffff0
+_0802B8AC:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0802B8B2:
+ cmp r4, 0x3
+ bhi _0802B8C2
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcc _0802B8AC
+_0802B8C2:
+ ldr r5, _0802B918 @ =gLastUsedItem
+ ldrh r0, [r5]
+ cmp r0, 0x1
+ bne _0802B8CC
+ movs r4, 0x4
+_0802B8CC:
+ movs r0, 0
+ adds r1, r4, 0
+ bl dp01_build_cmdbuf_x0D_a
+ ldr r0, _0802B91C @ =gActiveBank
+ ldrb r0, [r0]
+ bl MarkBufferBankForExecution
+ cmp r4, 0x4
+ bne _0802B944
+ ldr r1, _0802B920 @ =gBattlescriptCurrInstr
+ ldr r0, _0802B924 @ =gUnknown_081D9EC2
+ str r0, [r1]
+ ldr r1, _0802B928 @ =gBattlePartyID
+ ldr r0, _0802B92C @ =gBankTarget
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802B930 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x26
+ adds r2, r5, 0
+ bl SetMonData
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _0802B938
+_0802B90E:
+ ldr r1, _0802B934 @ =gBattleCommunication
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ b _0802B94E
+ .align 2, 0
+_0802B918: .4byte gLastUsedItem
+_0802B91C: .4byte gActiveBank
+_0802B920: .4byte gBattlescriptCurrInstr
+_0802B924: .4byte gUnknown_081D9EC2
+_0802B928: .4byte gBattlePartyID
+_0802B92C: .4byte gBankTarget
+_0802B930: .4byte gEnemyParty
+_0802B934: .4byte gBattleCommunication
+_0802B938:
+ ldr r1, _0802B940 @ =gBattleCommunication
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0802B94E
+ .align 2, 0
+_0802B940: .4byte gBattleCommunication
+_0802B944:
+ ldr r0, _0802B954 @ =gBattleCommunication
+ strb r4, [r0, 0x5]
+ ldr r1, _0802B958 @ =gBattlescriptCurrInstr
+ ldr r0, _0802B95C @ =gUnknown_081D9F0A
+_0802B94C:
+ str r0, [r1]
+_0802B94E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B954: .4byte gBattleCommunication
+_0802B958: .4byte gBattlescriptCurrInstr
+_0802B95C: .4byte gUnknown_081D9F0A
+ thumb_func_end sub_802B5B8
+
+ thumb_func_start sub_802B960
+sub_802B960: @ 802B960
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r0, _0802B9C8 @ =gBattlePartyID
+ mov r9, r0
+ ldr r5, _0802B9CC @ =gBankAttacker
+ ldrb r0, [r5]
+ movs r4, 0x1
+ eors r0, r4
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r6, _0802B9D0 @ =gEnemyParty
+ adds r0, r6
+ bl GiveMonToPlayer
+ ldr r2, _0802B9D4 @ =gBattleResults
+ ldr r1, _0802B9D8 @ =gBattleMons
+ ldrb r0, [r5]
+ eors r4, r0
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2, 0x28]
+ lsls r4, 1
+ add r4, r9
+ ldrh r0, [r4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ adds r2, 0x2A
+ movs r1, 0x2
+ bl GetMonData
+ ldr r1, _0802B9DC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B9C8: .4byte gBattlePartyID
+_0802B9CC: .4byte gBankAttacker
+_0802B9D0: .4byte gEnemyParty
+_0802B9D4: .4byte gBattleResults
+_0802B9D8: .4byte gBattleMons
+_0802B9DC: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802B960
+
+ thumb_func_start sub_802B9E0
+sub_802B9E0: @ 802B9E0
+ push {r4-r6,lr}
+ ldr r4, _0802BA20 @ =gBattleMons
+ ldr r6, _0802BA24 @ =gBankTarget
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetNationalPokedexFlag
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802BA2C
+ ldr r3, _0802BA28 @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802BA82
+ .align 2, 0
+_0802BA20: .4byte gBattleMons
+_0802BA24: .4byte gBankTarget
+_0802BA28: .4byte gBattlescriptCurrInstr
+_0802BA2C:
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl GetNationalPokedexFlag
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r0, r2, r4
+ ldrh r0, [r0]
+ cmp r0, 0xC9
+ bne _0802BA5C
+ ldr r0, _0802BA88 @ =gSaveBlock2
+ adds r1, r4, 0
+ adds r1, 0x48
+ adds r1, r2, r1
+ ldr r1, [r1]
+ str r1, [r0, 0x1C]
+_0802BA5C:
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r0, r2, r4
+ ldrh r1, [r0]
+ movs r0, 0x9A
+ lsls r0, 1
+ cmp r1, r0
+ bne _0802BA7A
+ ldr r0, _0802BA88 @ =gSaveBlock2
+ adds r1, r4, 0
+ adds r1, 0x48
+ adds r1, r2, r1
+ ldr r1, [r1]
+ str r1, [r0, 0x20]
+_0802BA7A:
+ ldr r1, _0802BA8C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802BA82:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BA88: .4byte gSaveBlock2
+_0802BA8C: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802B9E0
+
+ thumb_func_start sub_802BA90
+sub_802BA90: @ 802BA90
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r7, _0802BAA8 @ =gBattleCommunication
+ ldrb r1, [r7]
+ cmp r1, 0x1
+ beq _0802BAC6
+ cmp r1, 0x1
+ bgt _0802BAAC
+ cmp r1, 0
+ beq _0802BAB8
+ b _0802BBC4
+ .align 2, 0
+_0802BAA8: .4byte gBattleCommunication
+_0802BAAC:
+ cmp r1, 0x2
+ beq _0802BB10
+ cmp r1, 0x3
+ bne _0802BAB6
+ b _0802BBB0
+_0802BAB6:
+ b _0802BBC4
+_0802BAB8:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ b _0802BB6E
+_0802BAC6:
+ ldr r0, _0802BB04 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BBC4
+ ldr r4, _0802BB08 @ =gBattleMons
+ ldr r6, _0802BB0C @ =gBankTarget
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r6]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r1, r4, 0
+ adds r1, 0x54
+ adds r1, r2, r1
+ ldr r1, [r1]
+ adds r4, 0x48
+ adds r2, r4
+ ldr r2, [r2]
+ bl sub_809070C
+ strb r0, [r7, 0x1]
+ b _0802BB72
+ .align 2, 0
+_0802BB04: .4byte gPaletteFade
+_0802BB08: .4byte gBattleMons
+_0802BB0C: .4byte gBankTarget
+_0802BB10:
+ ldr r0, _0802BB7C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BBC4
+ ldr r0, _0802BB80 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0802BB84 @ =sub_800F808
+ cmp r1, r0
+ bne _0802BBC4
+ ldr r2, _0802BB88 @ =gTasks
+ ldrb r1, [r7, 0x1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r4, [r0, 0x4]
+ cmp r4, 0
+ bne _0802BBC4
+ ldr r0, _0802BB8C @ =gBattleTerrainTiles_Building
+ ldr r1, _0802BB90 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0802BB94 @ =gBattleTerrainTilemap_Building
+ ldr r1, _0802BB98 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0802BB9C @ =gBattleTerrainPalette_BattleTower
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ ldr r1, _0802BBA0 @ =REG_BG3CNT
+ ldr r2, _0802BBA4 @ =0x00005a0b
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0802BBA8 @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0802BBAC @ =0x0000fffc
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+_0802BB6E:
+ bl BeginNormalPaletteFade
+_0802BB72:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ b _0802BBC4
+ .align 2, 0
+_0802BB7C: .4byte gPaletteFade
+_0802BB80: .4byte gMain
+_0802BB84: .4byte sub_800F808
+_0802BB88: .4byte gTasks
+_0802BB8C: .4byte gBattleTerrainTiles_Building
+_0802BB90: .4byte 0x06008000
+_0802BB94: .4byte gBattleTerrainTilemap_Building
+_0802BB98: .4byte 0x0600d000
+_0802BB9C: .4byte gBattleTerrainPalette_BattleTower
+_0802BBA0: .4byte REG_BG3CNT
+_0802BBA4: .4byte 0x00005a0b
+_0802BBA8: .4byte gUnknown_030041B0
+_0802BBAC: .4byte 0x0000fffc
+_0802BBB0:
+ ldr r0, _0802BBCC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BBC4
+ ldr r1, _0802BBD0 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0802BBC4:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BBCC: .4byte gPaletteFade
+_0802BBD0: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802BA90
+
+ thumb_func_start sub_802BBD4
+sub_802BBD4: @ 802BBD4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r12, r1
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r8, r4
+ mov r2, r12
+ cmp r2, r7
+ bgt _0802BC5A
+ lsls r1, r6, 1
+ ldr r0, _0802BC20 @ =0x0600c000
+ adds r1, r0
+ mov r9, r1
+_0802BC06:
+ adds r1, r6, 0
+ adds r0, r2, 0x1
+ mov r10, r0
+ cmp r1, r5
+ bgt _0802BC54
+ lsls r0, r2, 6
+ mov r4, r9
+ adds r3, r4, r0
+_0802BC16:
+ cmp r2, r12
+ bne _0802BC28
+ ldr r0, _0802BC24 @ =0x00001022
+ b _0802BC36
+ .align 2, 0
+_0802BC20: .4byte 0x0600c000
+_0802BC24: .4byte 0x00001022
+_0802BC28:
+ cmp r2, r7
+ bne _0802BC34
+ ldr r0, _0802BC30 @ =0x00001028
+ b _0802BC36
+ .align 2, 0
+_0802BC30: .4byte 0x00001028
+_0802BC34:
+ ldr r0, _0802BC68 @ =0x00001025
+_0802BC36:
+ cmp r1, r6
+ beq _0802BC42
+ adds r0, 0x1
+ cmp r1, r5
+ bne _0802BC42
+ adds r0, 0x1
+_0802BC42:
+ mov r4, r8
+ cmp r4, 0
+ beq _0802BC4A
+ movs r0, 0
+_0802BC4A:
+ strh r0, [r3]
+ adds r3, 0x2
+ adds r1, 0x1
+ cmp r1, r5
+ ble _0802BC16
+_0802BC54:
+ mov r2, r10
+ cmp r2, r7
+ ble _0802BC06
+_0802BC5A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BC68: .4byte 0x00001025
+ thumb_func_end sub_802BBD4
+
+ thumb_func_start sub_802BC6C
+sub_802BC6C: @ 802BC6C
+ push {lr}
+ ldr r0, _0802BC88 @ =gBattleCommunication
+ ldrb r1, [r0, 0x1]
+ lsls r1, 28
+ movs r0, 0x90
+ lsls r0, 23
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0xC8
+ bl sub_814A880
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BC88: .4byte gBattleCommunication
+ thumb_func_end sub_802BC6C
+
+ thumb_func_start nullsub_6
+nullsub_6: @ 802BC8C
+ bx lr
+ thumb_func_end nullsub_6
+
+ thumb_func_start atkF3_receive_new_pokemon_maybe
+atkF3_receive_new_pokemon_maybe: @ 802BC90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _0802BCB4 @ =gBattleCommunication
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x4
+ bls _0802BCA8
+ b _0802BEDA
+_0802BCA8:
+ lsls r0, r1, 2
+ ldr r1, _0802BCB8 @ =_0802BCBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802BCB4: .4byte gBattleCommunication
+_0802BCB8: .4byte _0802BCBC
+ .align 2, 0
+_0802BCBC:
+ .4byte _0802BCD0
+ .4byte _0802BCEC
+ .4byte _0802BD84
+ .4byte _0802BE50
+ .4byte _0802BEA4
+_0802BCD0:
+ bl sub_8023A80
+ ldr r0, _0802BCE8 @ =gBattleCommunication
+ ldrb r1, [r0]
+ adds r1, 0x1
+ movs r2, 0
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bl sub_802BC6C
+ b _0802BEDA
+ .align 2, 0
+_0802BCE8: .4byte gBattleCommunication
+_0802BCEC:
+ ldr r0, _0802BD60 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BD10
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _0802BD10
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_0802BD10:
+ ldr r0, _0802BD60 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BD36
+ ldr r4, _0802BD64 @ =gBattleCommunication
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _0802BD36
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_0802BD36:
+ ldr r0, _0802BD60 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BD68
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802BD64 @ =gBattleCommunication
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _0802BD7A
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ b _0802BEDA
+ .align 2, 0
+_0802BD60: .4byte gMain
+_0802BD64: .4byte gBattleCommunication
+_0802BD68:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BD72
+ b _0802BEDA
+_0802BD72:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802BD80 @ =gBattleCommunication
+_0802BD7A:
+ movs r0, 0x4
+ strb r0, [r1]
+ b _0802BEDA
+ .align 2, 0
+_0802BD80: .4byte gBattleCommunication
+_0802BD84:
+ ldr r0, _0802BE34 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BD92
+ b _0802BEDA
+_0802BD92:
+ ldr r7, _0802BE38 @ =gBattlePartyID
+ ldr r0, _0802BE3C @ =gBankAttacker
+ mov r10, r0
+ ldrb r0, [r0]
+ movs r4, 0x1
+ eors r0, r4
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r1, 0x64
+ mov r9, r1
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r1, _0802BE40 @ =gEnemyParty
+ mov r8, r1
+ add r0, r8
+ movs r1, 0x2
+ ldr r2, _0802BE44 @ =0x02016079
+ bl GetMonData
+ mov r1, r10
+ ldrb r0, [r1]
+ eors r0, r4
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r8
+ movs r1, 0xB
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ mov r1, r10
+ ldrb r0, [r1]
+ eors r0, r4
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r8
+ bl GetMonGender
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, r10
+ ldrb r0, [r1]
+ eors r4, r0
+ lsls r4, 1
+ adds r4, r7
+ ldrh r0, [r4]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r8
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r0, _0802BE48 @ =sub_800F808
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ ldr r1, _0802BE44 @ =0x02016079
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl DoNamingScreen
+ ldr r1, _0802BE4C @ =gBattleCommunication
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0802BEDA
+ .align 2, 0
+_0802BE34: .4byte gPaletteFade
+_0802BE38: .4byte gBattlePartyID
+_0802BE3C: .4byte gBankAttacker
+_0802BE40: .4byte gEnemyParty
+_0802BE44: .4byte 0x02016079
+_0802BE48: .4byte sub_800F808
+_0802BE4C: .4byte gBattleCommunication
+_0802BE50:
+ ldr r0, _0802BE88 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0802BE8C @ =sub_800F808
+ cmp r1, r0
+ bne _0802BEDA
+ ldr r0, _0802BE90 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BEDA
+ ldr r2, _0802BE94 @ =gBattlePartyID
+ ldr r0, _0802BE98 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x1
+ eors r0, r1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802BE9C @ =gEnemyParty
+ adds r0, r1
+ ldr r2, _0802BEA0 @ =0x02016079
+ movs r1, 0x2
+ bl SetMonData
+ b _0802BEC0
+ .align 2, 0
+_0802BE88: .4byte gMain
+_0802BE8C: .4byte sub_800F808
+_0802BE90: .4byte gPaletteFade
+_0802BE94: .4byte gBattlePartyID
+_0802BE98: .4byte gBankAttacker
+_0802BE9C: .4byte gEnemyParty
+_0802BEA0: .4byte 0x02016079
+_0802BEA4:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _0802BEC0
+ ldr r1, _0802BEBC @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802BEDA
+ .align 2, 0
+_0802BEBC: .4byte gBattlescriptCurrInstr
+_0802BEC0:
+ ldr r3, _0802BEEC @ =gBattlescriptCurrInstr
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802BEDA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BEEC: .4byte gBattlescriptCurrInstr
+ thumb_func_end atkF3_receive_new_pokemon_maybe
+
+ thumb_func_start sub_802BEF0
+sub_802BEF0: @ 802BEF0
+ ldr r2, _0802BF10 @ =gBattleMons
+ ldr r0, _0802BF14 @ =gBankAttacker
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldr r0, _0802BF18 @ =gBattleMoveDamage
+ ldr r2, [r0]
+ ldrh r0, [r1, 0x28]
+ subs r0, r2
+ strh r0, [r1, 0x28]
+ ldr r1, _0802BF1C @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF10: .4byte gBattleMons
+_0802BF14: .4byte gBankAttacker
+_0802BF18: .4byte gBattleMoveDamage
+_0802BF1C: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802BEF0
+
+ thumb_func_start sub_802BF20
+sub_802BF20: @ 802BF20
+ ldr r1, _0802BF3C @ =gBattleMons
+ ldr r0, _0802BF40 @ =gBankAttacker
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ ldr r1, _0802BF44 @ =gBattlescriptCurrInstr
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF3C: .4byte gBattleMons
+_0802BF40: .4byte gBankAttacker
+_0802BF44: .4byte gBattlescriptCurrInstr
+ thumb_func_end sub_802BF20
+
+ thumb_func_start sub_802BF48
+sub_802BF48: @ 802BF48
+ ldr r1, _0802BF50 @ =gFightStateTracker
+ movs r0, 0xC
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF50: .4byte gFightStateTracker
+ thumb_func_end sub_802BF48
+
+ thumb_func_start sub_802BF54
+sub_802BF54: @ 802BF54
+ ldr r1, _0802BF64 @ =gFightStateTracker
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r1, _0802BF68 @ =gCurrentMoveTurn
+ ldr r0, _0802BF6C @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF64: .4byte gFightStateTracker
+_0802BF68: .4byte gCurrentMoveTurn
+_0802BF6C: .4byte gNoOfAllBanks
+ thumb_func_end sub_802BF54
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_5.s b/asm/battle_5.s
new file mode 100644
index 000000000..b72266193
--- /dev/null
+++ b/asm/battle_5.s
@@ -0,0 +1,4591 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start nullsub_91
+nullsub_91: @ 802BF70
+ bx lr
+ thumb_func_end nullsub_91
+
+ thumb_func_start SetBankFuncToPlayerBufferRunCommand
+SetBankFuncToPlayerBufferRunCommand: @ 802BF74
+ ldr r1, _0802BF8C @ =gBattleBankFunc
+ ldr r0, _0802BF90 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802BF94 @ =PlayerBufferRunCommand
+ str r1, [r0]
+ ldr r1, _0802BF98 @ =gDoingBattleAnim
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF8C: .4byte gBattleBankFunc
+_0802BF90: .4byte gActiveBank
+_0802BF94: .4byte PlayerBufferRunCommand
+_0802BF98: .4byte gDoingBattleAnim
+ thumb_func_end SetBankFuncToPlayerBufferRunCommand
+
+ thumb_func_start PlayerBufferExecCompleted
+PlayerBufferExecCompleted: @ 802BF9C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _0802BFDC @ =gBattleBankFunc
+ ldr r4, _0802BFE0 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802BFE4 @ =PlayerBufferRunCommand
+ str r1, [r0]
+ ldr r0, _0802BFE8 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BFF0
+ bl GetMultiplayerId
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl dp01_prepare_buffer_wireless_probably
+ ldr r1, _0802BFEC @ =gBattleBufferA
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0802C002
+ .align 2, 0
+_0802BFDC: .4byte gBattleBankFunc
+_0802BFE0: .4byte gActiveBank
+_0802BFE4: .4byte PlayerBufferRunCommand
+_0802BFE8: .4byte gBattleTypeFlags
+_0802BFEC: .4byte gBattleBufferA
+_0802BFF0:
+ ldr r2, _0802C00C @ =gBattleExecBuffer
+ ldr r1, _0802C010 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0802C002:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802C00C: .4byte gBattleExecBuffer
+_0802C010: .4byte gBitTable
+ thumb_func_end PlayerBufferExecCompleted
+
+ thumb_func_start PlayerBufferRunCommand
+PlayerBufferRunCommand: @ 802C014
+ push {lr}
+ ldr r2, _0802C048 @ =gBattleExecBuffer
+ ldr r1, _0802C04C @ =gBitTable
+ ldr r0, _0802C050 @ =gActiveBank
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0802C060
+ ldr r0, _0802C054 @ =gBattleBufferA
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _0802C05C
+ ldr r0, _0802C058 @ =gPlayerBufferCommands
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _0802C060
+ .align 2, 0
+_0802C048: .4byte gBattleExecBuffer
+_0802C04C: .4byte gBitTable
+_0802C050: .4byte gActiveBank
+_0802C054: .4byte gBattleBufferA
+_0802C058: .4byte gPlayerBufferCommands
+_0802C05C:
+ bl PlayerBufferExecCompleted
+_0802C060:
+ pop {r0}
+ bx r0
+ thumb_func_end PlayerBufferRunCommand
+
+ thumb_func_start bx_0802E404
+bx_0802E404: @ 802C064
+ push {lr}
+ ldr r2, _0802C08C @ =gSprites
+ ldr r1, _0802C090 @ =gObjectBankIDs
+ ldr r0, _0802C094 @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0802C086
+ bl PlayerBufferExecCompleted
+_0802C086:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802C08C: .4byte gSprites
+_0802C090: .4byte gObjectBankIDs
+_0802C094: .4byte gActiveBank
+ thumb_func_end bx_0802E404
+
+ thumb_func_start sub_802C098
+sub_802C098: @ 802C098
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, _0802C0FC @ =gBattleBufferA
+ ldr r4, _0802C100 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r2, r0, 9
+ adds r1, r7, 0x2
+ adds r1, r2, r1
+ ldrb r5, [r1]
+ adds r1, r7, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r5, r1
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ ldrb r0, [r4]
+ movs r1, 0
+ movs r2, 0x7
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ ldr r0, _0802C104 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C13E
+ movs r0, 0x5
+ bl PlaySE
+ bl DestroyMenuCursor
+ ldr r1, _0802C108 @ =gActionSelectionCursor
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0802C11C
+ cmp r0, 0x1
+ bgt _0802C10C
+ cmp r0, 0
+ beq _0802C116
+ b _0802C138
+ .align 2, 0
+_0802C0FC: .4byte gBattleBufferA
+_0802C100: .4byte gActiveBank
+_0802C104: .4byte gMain
+_0802C108: .4byte gActionSelectionCursor
+_0802C10C:
+ cmp r0, 0x2
+ beq _0802C122
+ cmp r0, 0x3
+ beq _0802C12E
+ b _0802C138
+_0802C116:
+ movs r0, 0x1
+ movs r1, 0
+ b _0802C126
+_0802C11C:
+ movs r0, 0x1
+ movs r1, 0x1
+ b _0802C126
+_0802C122:
+ movs r0, 0x1
+ movs r1, 0x2
+_0802C126:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _0802C138
+_0802C12E:
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_0802C138:
+ bl PlayerBufferExecCompleted
+ b _0802C2AC
+_0802C13E:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C178
+ ldr r5, _0802C174 @ =gActionSelectionCursor
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C158
+ b _0802C2AC
+_0802C158:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _0802C200
+ .align 2, 0
+_0802C174: .4byte gActionSelectionCursor
+_0802C178:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C1B0
+ ldr r5, _0802C1AC @ =gActionSelectionCursor
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C192
+ b _0802C2AC
+_0802C192:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _0802C200
+ .align 2, 0
+_0802C1AC: .4byte gActionSelectionCursor
+_0802C1B0:
+ movs r0, 0x40
+ mov r8, r0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C1D0
+ ldr r5, _0802C1CC @ =gActionSelectionCursor
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C2AC
+ b _0802C1E8
+ .align 2, 0
+_0802C1CC: .4byte gActionSelectionCursor
+_0802C1D0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C218
+ ldr r5, _0802C214 @ =gActionSelectionCursor
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C2AC
+_0802C1E8:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x2
+_0802C200:
+ eors r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+ b _0802C2AC
+ .align 2, 0
+_0802C214: .4byte gActionSelectionCursor
+_0802C218:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C2A0
+ ldr r6, _0802C294 @ =gBattleTypeFlags
+ ldrh r1, [r6]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C2AC
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0802C2AC
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r1, _0802C298 @ =gAbsentBankFlags
+ ldrb r1, [r1]
+ ldr r2, _0802C29C @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802C2AC
+ ldrh r1, [r6]
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C2AC
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, r7, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0802C278
+ cmp r5, 0xC
+ bhi _0802C2AC
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl AddBagItem
+_0802C278:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ movs r1, 0xC
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl PlayerBufferExecCompleted
+ bl DestroyMenuCursor
+ b _0802C2AC
+ .align 2, 0
+_0802C294: .4byte gBattleTypeFlags
+_0802C298: .4byte gAbsentBankFlags
+_0802C29C: .4byte gBitTable
+_0802C2A0:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C2AC
+ bl sub_804454C
+_0802C2AC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802C098
+
+ thumb_func_start unref_sub_802C2B8
+unref_sub_802C2B8: @ 802C2B8
+ push {r4,lr}
+ ldr r4, _0802C2E0 @ =gActiveBank
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ ldrb r0, [r4]
+ movs r1, 0
+ bl dp11b_obj_free
+ ldr r1, _0802C2E4 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802C2E8 @ =sub_802C2EC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802C2E0: .4byte gActiveBank
+_0802C2E4: .4byte gBattleBankFunc
+_0802C2E8: .4byte sub_802C2EC
+ thumb_func_end unref_sub_802C2B8
+
+ thumb_func_start sub_802C2EC
+sub_802C2EC: @ 802C2EC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _0802C384 @ =gUnknown_081FAE7C
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, _0802C388 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ movs r4, 0
+ ldr r0, _0802C38C @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802C32E
+_0802C312:
+ ldr r0, _0802C388 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _0802C324
+ lsls r0, r4, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl dp11b_obj_free
+_0802C324:
+ adds r4, 0x1
+ ldr r0, _0802C38C @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _0802C312
+_0802C32E:
+ ldr r0, _0802C390 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C3A8
+ bl DestroyMenuCursor
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0802C394 @ =gSprites
+ ldr r1, _0802C398 @ =gObjectBankIDs
+ ldr r4, _0802C388 @ =gUnknown_03004344
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C39C @ =sub_8010574
+ str r1, [r0]
+ ldr r1, _0802C3A0 @ =gMoveSelectionCursor
+ ldr r0, _0802C3A4 @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldrb r0, [r4]
+ lsls r0, 8
+ orrs r2, r0
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ bl PlayerBufferExecCompleted
+ b _0802C658
+ .align 2, 0
+_0802C384: .4byte gUnknown_081FAE7C
+_0802C388: .4byte gUnknown_03004344
+_0802C38C: .4byte gNoOfAllBanks
+_0802C390: .4byte gMain
+_0802C394: .4byte gSprites
+_0802C398: .4byte gObjectBankIDs
+_0802C39C: .4byte sub_8010574
+_0802C3A0: .4byte gMoveSelectionCursor
+_0802C3A4: .4byte gActiveBank
+_0802C3A8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C41C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0802C400 @ =gSprites
+ ldr r1, _0802C404 @ =gObjectBankIDs
+ ldr r5, _0802C408 @ =gUnknown_03004344
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C40C @ =sub_8010574
+ str r1, [r0]
+ ldr r1, _0802C410 @ =gBattleBankFunc
+ ldr r4, _0802C414 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802C418 @ =sub_802C68C
+ str r1, [r0]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ ldrb r0, [r4]
+ movs r1, 0
+ movs r2, 0x7
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ b _0802C658
+ .align 2, 0
+_0802C400: .4byte gSprites
+_0802C404: .4byte gObjectBankIDs
+_0802C408: .4byte gUnknown_03004344
+_0802C40C: .4byte sub_8010574
+_0802C410: .4byte gBattleBankFunc
+_0802C414: .4byte gActiveBank
+_0802C418: .4byte sub_802C68C
+_0802C41C:
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C426
+ b _0802C540
+_0802C426:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0802C458 @ =gSprites
+ ldr r1, _0802C45C @ =gObjectBankIDs
+ ldr r3, _0802C460 @ =gUnknown_03004344
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C464 @ =sub_8010574
+ str r1, [r0]
+ adds r5, r3, 0
+_0802C448:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ mov r0, sp
+ b _0802C472
+ .align 2, 0
+_0802C458: .4byte gSprites
+_0802C45C: .4byte gObjectBankIDs
+_0802C460: .4byte gUnknown_03004344
+_0802C464: .4byte sub_8010574
+_0802C468:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _0802C478
+ mov r2, sp
+ adds r0, r2, r4
+_0802C472:
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802C468
+_0802C478:
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0802C480
+ movs r4, 0x3
+_0802C480:
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ bl GetBankByPlayerAI
+ strb r0, [r5]
+ ldr r1, _0802C4B4 @ =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0802C478
+ movs r4, 0
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0802C4FE
+ cmp r0, 0x1
+ bgt _0802C4B8
+ cmp r0, 0
+ beq _0802C4C2
+ b _0802C500
+ .align 2, 0
+_0802C4B4: .4byte gNoOfAllBanks
+_0802C4B8:
+ cmp r0, 0x2
+ beq _0802C4C2
+ cmp r0, 0x3
+ beq _0802C4FE
+ b _0802C500
+_0802C4C2:
+ ldr r2, _0802C520 @ =gActiveBank
+ ldrb r0, [r2]
+ ldrb r1, [r5]
+ cmp r0, r1
+ bne _0802C4FE
+ ldr r1, _0802C524 @ =gBattlePartyID
+ ldrb r2, [r2]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802C528 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802C52C @ =gMoveSelectionCursor
+ adds r2, r1
+ ldrb r1, [r2]
+ adds r1, 0xD
+ bl GetMonData
+ ldr r2, _0802C530 @ =gBattleMoves
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x6]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C500
+_0802C4FE:
+ adds r4, 0x1
+_0802C500:
+ ldr r0, _0802C534 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _0802C538 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r0, _0802C53C @ =gUnknown_03004344
+ cmp r1, 0
+ beq _0802C518
+ movs r4, 0
+_0802C518:
+ cmp r4, 0
+ beq _0802C448
+ b _0802C640
+ .align 2, 0
+_0802C520: .4byte gActiveBank
+_0802C524: .4byte gBattlePartyID
+_0802C528: .4byte gPlayerParty
+_0802C52C: .4byte gMoveSelectionCursor
+_0802C530: .4byte gBattleMoves
+_0802C534: .4byte gAbsentBankFlags
+_0802C538: .4byte gBitTable
+_0802C53C: .4byte gUnknown_03004344
+_0802C540:
+ movs r0, 0x90
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C54A
+ b _0802C658
+_0802C54A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0802C57C @ =gSprites
+ ldr r1, _0802C580 @ =gObjectBankIDs
+ ldr r3, _0802C584 @ =gUnknown_03004344
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C588 @ =sub_8010574
+ str r1, [r0]
+ adds r5, r3, 0
+_0802C56C:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ mov r0, sp
+ b _0802C596
+ .align 2, 0
+_0802C57C: .4byte gSprites
+_0802C580: .4byte gObjectBankIDs
+_0802C584: .4byte gUnknown_03004344
+_0802C588: .4byte sub_8010574
+_0802C58C:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _0802C59C
+ mov r2, sp
+ adds r0, r2, r4
+_0802C596:
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802C58C
+_0802C59C:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0802C5A4
+ movs r4, 0
+_0802C5A4:
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ bl GetBankByPlayerAI
+ strb r0, [r5]
+ ldr r1, _0802C5D8 @ =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0802C59C
+ movs r4, 0
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0802C622
+ cmp r0, 0x1
+ bgt _0802C5DC
+ cmp r0, 0
+ beq _0802C5E6
+ b _0802C624
+ .align 2, 0
+_0802C5D8: .4byte gNoOfAllBanks
+_0802C5DC:
+ cmp r0, 0x2
+ beq _0802C5E6
+ cmp r0, 0x3
+ beq _0802C622
+ b _0802C624
+_0802C5E6:
+ ldr r2, _0802C660 @ =gActiveBank
+ ldrb r0, [r2]
+ ldrb r1, [r5]
+ cmp r0, r1
+ bne _0802C622
+ ldr r1, _0802C664 @ =gBattlePartyID
+ ldrb r2, [r2]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802C668 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802C66C @ =gMoveSelectionCursor
+ adds r2, r1
+ ldrb r1, [r2]
+ adds r1, 0xD
+ bl GetMonData
+ ldr r2, _0802C670 @ =gBattleMoves
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x6]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C624
+_0802C622:
+ adds r4, 0x1
+_0802C624:
+ ldr r0, _0802C674 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _0802C678 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r0, _0802C67C @ =gUnknown_03004344
+ cmp r1, 0
+ beq _0802C63C
+ movs r4, 0
+_0802C63C:
+ cmp r4, 0
+ beq _0802C56C
+_0802C640:
+ ldr r2, _0802C680 @ =gSprites
+ ldr r1, _0802C684 @ =gObjectBankIDs
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C688 @ =sub_8010520
+ str r1, [r0]
+_0802C658:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802C660: .4byte gActiveBank
+_0802C664: .4byte gBattlePartyID
+_0802C668: .4byte gPlayerParty
+_0802C66C: .4byte gMoveSelectionCursor
+_0802C670: .4byte gBattleMoves
+_0802C674: .4byte gAbsentBankFlags
+_0802C678: .4byte gBitTable
+_0802C67C: .4byte gUnknown_03004344
+_0802C680: .4byte gSprites
+_0802C684: .4byte gObjectBankIDs
+_0802C688: .4byte sub_8010520
+ thumb_func_end sub_802C2EC
+
+ thumb_func_start sub_802C68C
+sub_802C68C: @ 802C68C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r8, r0
+ ldr r7, _0802C6E4 @ =gActiveBank
+ ldrb r2, [r7]
+ lsls r0, r2, 9
+ ldr r1, _0802C6E8 @ =gUnknown_02023A64
+ adds r6, r0, r1
+ ldr r0, _0802C6EC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r5, 0x1
+ adds r4, r5, 0
+ ands r4, r1
+ cmp r4, 0
+ bne _0802C6B2
+ b _0802C864
+_0802C6B2:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802C6F0 @ =gMoveSelectionCursor
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, r6, r0
+ ldrh r0, [r1]
+ cmp r0, 0xAE
+ bne _0802C6F4
+ ldrb r0, [r6, 0x12]
+ movs r4, 0
+ cmp r0, 0x7
+ beq _0802C702
+ ldrb r1, [r6, 0x13]
+ movs r0, 0x7
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ asrs r4, r0, 31
+ movs r0, 0x10
+ ands r4, r0
+ b _0802C702
+ .align 2, 0
+_0802C6E4: .4byte gActiveBank
+_0802C6E8: .4byte gUnknown_02023A64
+_0802C6EC: .4byte gMain
+_0802C6F0: .4byte gMoveSelectionCursor
+_0802C6F4:
+ ldr r2, _0802C714 @ =gBattleMoves
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r4, [r0, 0x6]
+_0802C702:
+ movs r0, 0x10
+ ands r0, r4
+ cmp r0, 0
+ beq _0802C720
+ ldr r0, _0802C718 @ =gUnknown_03004344
+ ldr r1, _0802C71C @ =gActiveBank
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _0802C73A
+ .align 2, 0
+_0802C714: .4byte gBattleMoves
+_0802C718: .4byte gUnknown_03004344
+_0802C71C: .4byte gActiveBank
+_0802C720:
+ ldr r0, _0802C764 @ =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ bl GetBankByPlayerAI
+ ldr r1, _0802C768 @ =gUnknown_03004344
+ strb r0, [r1]
+_0802C73A:
+ ldr r3, _0802C76C @ =gBattleBufferA
+ ldr r5, _0802C764 @ =gActiveBank
+ ldrb r2, [r5]
+ lsls r1, r2, 9
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802C770
+ movs r0, 0x2
+ ands r0, r4
+ cmp r0, 0
+ beq _0802C7B2
+ adds r0, r3, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802C7B2
+ movs r2, 0x1
+ add r8, r2
+ b _0802C7B2
+ .align 2, 0
+_0802C764: .4byte gActiveBank
+_0802C768: .4byte gUnknown_03004344
+_0802C76C: .4byte gBattleBufferA
+_0802C770:
+ movs r0, 0x7D
+ ands r0, r4
+ cmp r0, 0
+ bne _0802C77C
+ movs r0, 0x1
+ add r8, r0
+_0802C77C:
+ ldr r0, _0802C7D0 @ =gMoveSelectionCursor
+ adds r0, r2, r0
+ adds r1, r6, 0
+ adds r1, 0x8
+ ldrb r0, [r0]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0802C7B8
+ movs r0, 0x12
+ ands r0, r4
+ cmp r0, 0
+ bne _0802C7B2
+ movs r0, 0
+ bl CountAliveMons
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0802C7B2
+ ldrb r0, [r5]
+ bl sub_803C434
+ ldr r1, _0802C7D4 @ =gUnknown_03004344
+ strb r0, [r1]
+ movs r2, 0
+ mov r8, r2
+_0802C7B2:
+ mov r0, r8
+ cmp r0, 0
+ bne _0802C7DC
+_0802C7B8:
+ bl DestroyMenuCursor
+ ldr r1, _0802C7D0 @ =gMoveSelectionCursor
+ ldr r0, _0802C7D8 @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r0, _0802C7D4 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r2, r0
+ b _0802C888
+ .align 2, 0
+_0802C7D0: .4byte gMoveSelectionCursor
+_0802C7D4: .4byte gUnknown_03004344
+_0802C7D8: .4byte gActiveBank
+_0802C7DC:
+ ldr r1, _0802C7F8 @ =gBattleBankFunc
+ ldr r2, _0802C7FC @ =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802C800 @ =sub_802C2EC
+ str r1, [r0]
+ movs r0, 0x12
+ ands r4, r0
+ cmp r4, 0
+ beq _0802C808
+ ldr r1, _0802C804 @ =gUnknown_03004344
+ ldrb r0, [r2]
+ b _0802C838
+ .align 2, 0
+_0802C7F8: .4byte gBattleBankFunc
+_0802C7FC: .4byte gActiveBank
+_0802C800: .4byte sub_802C2EC
+_0802C804: .4byte gUnknown_03004344
+_0802C808:
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ ldr r1, _0802C828 @ =gAbsentBankFlags
+ ldrb r1, [r1]
+ ldr r2, _0802C82C @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0802C830
+ movs r0, 0x3
+ b _0802C832
+ .align 2, 0
+_0802C828: .4byte gAbsentBankFlags
+_0802C82C: .4byte gBitTable
+_0802C830:
+ movs r0, 0x1
+_0802C832:
+ bl GetBankByPlayerAI
+ ldr r1, _0802C854 @ =gUnknown_03004344
+_0802C838:
+ strb r0, [r1]
+ ldr r2, _0802C858 @ =gSprites
+ ldr r1, _0802C85C @ =gObjectBankIDs
+ ldr r0, _0802C854 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C860 @ =sub_8010520
+ b _0802CA36
+ .align 2, 0
+_0802C854: .4byte gUnknown_03004344
+_0802C858: .4byte gSprites
+_0802C85C: .4byte gObjectBankIDs
+_0802C860: .4byte sub_8010520
+_0802C864:
+ movs r6, 0x2
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C8A4
+ bl DestroyMenuCursor
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0802C898 @ =gUnknown_030042A4
+ strh r4, [r0]
+ ldr r1, _0802C89C @ =gUnknown_030042A0
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _0802C8A0 @ =0x0000ffff
+_0802C888:
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl PlayerBufferExecCompleted
+ b _0802CA38
+ .align 2, 0
+_0802C898: .4byte gUnknown_030042A4
+_0802C89C: .4byte gUnknown_030042A0
+_0802C8A0: .4byte 0x0000ffff
+_0802C8A4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C8D4
+ ldr r4, _0802C8D0 @ =gMoveSelectionCursor
+ adds r2, r4
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C8BC
+ b _0802CA38
+_0802C8BC:
+ ldrb r0, [r2]
+ bl nullsub_7
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ movs r2, 0x1
+ eors r0, r2
+ b _0802C976
+ .align 2, 0
+_0802C8D0: .4byte gMoveSelectionCursor
+_0802C8D4:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C914
+ ldr r4, _0802C90C @ =gMoveSelectionCursor
+ adds r3, r2, r4
+ ldrb r2, [r3]
+ movs r6, 0x1
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _0802C8EE
+ b _0802CA38
+_0802C8EE:
+ ldr r1, _0802C910 @ =gUnknown_03004348
+ adds r0, r6, 0
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0802C8FC
+ b _0802CA38
+_0802C8FC:
+ ldrb r0, [r3]
+ bl nullsub_7
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ eors r0, r6
+ b _0802C976
+ .align 2, 0
+_0802C90C: .4byte gMoveSelectionCursor
+_0802C910: .4byte gUnknown_03004348
+_0802C914:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C944
+ ldr r4, _0802C940 @ =gMoveSelectionCursor
+ adds r2, r4
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C92C
+ b _0802CA38
+_0802C92C:
+ ldrb r0, [r2]
+ bl nullsub_7
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ movs r2, 0x2
+ eors r0, r2
+ b _0802C976
+ .align 2, 0
+_0802C940: .4byte gMoveSelectionCursor
+_0802C944:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C99C
+ ldr r4, _0802C994 @ =gMoveSelectionCursor
+ adds r3, r2, r4
+ ldrb r2, [r3]
+ movs r5, 0x2
+ adds r0, r6, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _0802CA38
+ ldr r1, _0802C998 @ =gUnknown_03004348
+ adds r0, r5, 0
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0802CA38
+ ldrb r0, [r3]
+ bl nullsub_7
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ eors r0, r5
+_0802C976:
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3B4
+ bl sub_802E220
+ bl sub_802E2D4
+ b _0802CA38
+ .align 2, 0
+_0802C994: .4byte gMoveSelectionCursor
+_0802C998: .4byte gUnknown_03004348
+_0802C99C:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CA38
+ ldr r0, _0802C9D8 @ =gUnknown_03004348
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0802CA38
+ ldr r0, _0802C9DC @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _0802CA38
+ ldr r4, _0802C9E0 @ =gMoveSelectionCursor
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ ldr r1, _0802C9E4 @ =gUnknown_081FAE80
+ bl sub_802E12C
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802C9EC
+ ldr r0, _0802C9E8 @ =gUnknown_03004344
+ strb r5, [r0]
+ b _0802C9F4
+ .align 2, 0
+_0802C9D8: .4byte gUnknown_03004348
+_0802C9DC: .4byte gBattleTypeFlags
+_0802C9E0: .4byte gMoveSelectionCursor
+_0802C9E4: .4byte gUnknown_081FAE80
+_0802C9E8: .4byte gUnknown_03004344
+_0802C9EC:
+ ldr r1, _0802CA44 @ =gUnknown_03004344
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r0, r1, 0
+_0802C9F4:
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ bl sub_802E3B4
+ ldr r4, _0802CA48 @ =gUnknown_03004210
+ ldr r1, _0802CA4C @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x37
+ bl FillWindowRect
+ ldr r1, _0802CA50 @ =gUnknown_08400D89
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0802CA54 @ =gBattleBankFunc
+ ldr r0, _0802CA58 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802CA5C @ =sub_802CA60
+_0802CA36:
+ str r1, [r0]
+_0802CA38:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802CA44: .4byte gUnknown_03004344
+_0802CA48: .4byte gUnknown_03004210
+_0802CA4C: .4byte 0x00001016
+_0802CA50: .4byte gUnknown_08400D89
+_0802CA54: .4byte gBattleBankFunc
+_0802CA58: .4byte gActiveBank
+_0802CA5C: .4byte sub_802CA60
+ thumb_func_end sub_802C68C
+
+ thumb_func_start sub_802CA60
+sub_802CA60: @ 802CA60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ ldr r0, _0802CDEC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x5
+ ands r0, r1
+ cmp r0, 0
+ bne _0802CA7A
+ b _0802CE78
+_0802CA7A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0802CDF0 @ =gMoveSelectionCursor
+ mov r10, r0
+ ldr r1, _0802CDF4 @ =gActiveBank
+ mov r8, r1
+ ldrb r1, [r1]
+ adds r2, r1, r0
+ ldr r5, _0802CDF8 @ =gUnknown_03004344
+ ldrb r0, [r2]
+ ldrb r3, [r5]
+ cmp r0, r3
+ bne _0802CA98
+ b _0802CE14
+_0802CA98:
+ lsls r1, 9
+ ldr r0, _0802CDFC @ =gUnknown_02023A64
+ adds r1, r0
+ mov r9, r1
+ ldrb r1, [r2]
+ lsls r1, 1
+ add r1, r9
+ ldrh r6, [r1]
+ ldrb r0, [r5]
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldrb r0, [r5]
+ lsls r0, 1
+ add r0, r9
+ strh r6, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ add r0, r10
+ ldrb r1, [r0]
+ mov r7, r9
+ adds r7, 0x8
+ adds r1, r7, r1
+ ldrb r6, [r1]
+ ldrb r0, [r5]
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ adds r0, r7, r0
+ strb r6, [r0]
+ mov r2, r8
+ ldrb r0, [r2]
+ add r0, r10
+ ldrb r1, [r0]
+ mov r2, r9
+ adds r2, 0xC
+ adds r1, r2, r1
+ ldrb r6, [r1]
+ ldrb r0, [r5]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ adds r2, r0
+ strb r6, [r2]
+ mov r3, r8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r2, _0802CE00 @ =gDisableStructs
+ adds r6, r0, r2
+ ldrb r4, [r6, 0x18]
+ lsls r3, r4, 24
+ lsrs r2, r3, 28
+ ldr r0, _0802CE04 @ =gBitTable
+ mov r12, r0
+ add r1, r10
+ ldrb r0, [r1]
+ lsls r0, 2
+ add r0, r12
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _0802CB52
+ lsrs r1, r3, 28
+ bics r1, r0
+ lsls r1, 4
+ movs r2, 0xF
+ adds r0, r2, 0
+ ands r0, r4
+ orrs r0, r1
+ strb r0, [r6, 0x18]
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r3, _0802CE00 @ =gDisableStructs
+ adds r1, r3
+ ldrb r4, [r1, 0x18]
+ lsrs r3, r4, 4
+ ldrb r0, [r5]
+ lsls r0, 2
+ add r0, r12
+ ldr r0, [r0]
+ orrs r0, r3
+ lsls r0, 4
+ ands r2, r4
+ orrs r2, r0
+ strb r2, [r1, 0x18]
+_0802CB52:
+ bl sub_802E1B0
+ movs r6, 0
+ mov r12, r7
+ mov r5, sp
+ adds r5, 0x20
+ str r5, [sp, 0x28]
+ ldr r2, _0802CE08 @ =gBattleMons
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r4, r0, 0
+ adds r4, 0x3B
+ mov r7, r8
+ mov r10, r2
+ movs r5, 0x3
+_0802CB76:
+ mov r3, sp
+ adds r3, r6
+ adds r3, 0x8
+ ldrb r1, [r4]
+ lsls r2, r6, 1
+ adds r0, r5, 0
+ lsls r0, r2
+ ands r1, r0
+ asrs r1, r2
+ strb r1, [r3]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CB76
+ ldr r1, _0802CDF0 @ =gMoveSelectionCursor
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r0, [r0]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ ldr r2, [sp, 0x28]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r2, sp
+ adds r2, r0
+ adds r2, 0x8
+ ldr r1, _0802CDF8 @ =gUnknown_03004344
+ ldrb r0, [r1]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ movs r3, 0
+ strb r0, [r2]
+ ldrb r0, [r1]
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x8
+ ldr r5, [sp, 0x28]
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r3, [r5]
+ movs r6, 0
+ ldr r2, [sp, 0x28]
+_0802CBD0:
+ mov r0, sp
+ adds r0, r6
+ adds r0, 0x8
+ ldrb r1, [r0]
+ lsls r0, r6, 1
+ lsls r1, r0
+ ldrb r0, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CBD0
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r10
+ adds r0, 0x3B
+ ldr r2, [sp, 0x28]
+ ldrb r1, [r2]
+ strb r1, [r0]
+ movs r6, 0
+ adds r4, r7, 0
+ movs r3, 0x58
+ movs r5, 0x24
+ add r5, r10
+ mov r8, r5
+ mov r2, r9
+ mov r7, r10
+ adds r7, 0xC
+ mov r5, r12
+_0802CC0C:
+ lsls r1, r6, 1
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r1, r0
+ adds r1, r7
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r3
+ adds r1, r6, r1
+ add r1, r8
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CC0C
+ ldr r2, _0802CDF4 @ =gActiveBank
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r10
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CC4E
+ b _0802CE1C
+_0802CC4E:
+ movs r6, 0
+ mov r0, sp
+ adds r0, 0xC
+ str r0, [sp, 0x24]
+ add r1, sp, 0x14
+ mov r10, r1
+ ldr r3, _0802CE0C @ =gBattlePartyID
+ mov r9, r3
+ mov r8, r2
+ movs r7, 0x64
+ ldr r5, _0802CE10 @ =gPlayerParty
+ adds r4, r0, 0
+_0802CC66:
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ muls r0, r7
+ adds r0, r5
+ adds r1, r6, 0
+ adds r1, 0xD
+ bl GetMonData
+ strh r0, [r4]
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ muls r0, r7
+ adds r0, r5
+ adds r1, r6, 0
+ adds r1, 0x11
+ bl GetMonData
+ mov r3, r10
+ adds r1, r3, r6
+ strb r0, [r1]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CC66
+ ldr r1, _0802CE0C @ =gBattlePartyID
+ ldr r0, _0802CDF4 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802CE10 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ ldr r5, [sp, 0x28]
+ strb r0, [r5]
+ movs r6, 0
+ movs r5, 0x3
+ ldr r4, [sp, 0x28]
+_0802CCC6:
+ mov r3, sp
+ adds r3, r6
+ adds r3, 0x8
+ lsls r2, r6, 1
+ adds r1, r5, 0
+ lsls r1, r2
+ ldrb r0, [r4]
+ ands r0, r1
+ asrs r0, r2
+ strb r0, [r3]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CCC6
+ ldr r4, _0802CDF0 @ =gMoveSelectionCursor
+ ldr r3, _0802CDF4 @ =gActiveBank
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r1, 1
+ ldr r0, [sp, 0x24]
+ adds r1, r0, r1
+ ldrh r6, [r1]
+ ldr r2, _0802CDF8 @ =gUnknown_03004344
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r5, [sp, 0x24]
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ movs r5, 0
+ strh r0, [r1]
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r1, [sp, 0x24]
+ adds r0, r1, r0
+ strh r6, [r0]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ add r1, r10
+ ldrb r6, [r1]
+ ldrb r0, [r2]
+ add r0, r10
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ add r0, r10
+ strb r6, [r0]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x28]
+ strb r0, [r1]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0]
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x8
+ ldrb r0, [r2]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x8
+ ldr r2, [sp, 0x28]
+ ldrb r0, [r2]
+ strb r0, [r1]
+ strb r5, [r2]
+ movs r6, 0
+ ldr r2, [sp, 0x28]
+_0802CD5E:
+ mov r0, sp
+ adds r0, r6
+ adds r0, 0x8
+ ldrb r1, [r0]
+ lsls r0, r6, 1
+ lsls r1, r0
+ ldrb r0, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CD5E
+ movs r6, 0
+ ldr r3, _0802CE0C @ =gBattlePartyID
+ mov r10, r3
+ ldr r5, _0802CDF4 @ =gActiveBank
+ mov r9, r5
+ movs r0, 0x64
+ mov r8, r0
+ ldr r7, _0802CE10 @ =gPlayerParty
+ ldr r5, [sp, 0x24]
+ adds r5, 0x8
+ ldr r4, [sp, 0x24]
+_0802CD8C:
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ add r0, r10
+ ldrh r0, [r0]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r2, r4, 0
+ bl SetMonData
+ mov r3, r9
+ ldrb r0, [r3]
+ lsls r0, 1
+ add r0, r10
+ ldrh r0, [r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r2, r5, 0
+ bl SetMonData
+ adds r5, 0x1
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CD8C
+ ldr r1, _0802CE0C @ =gBattlePartyID
+ ldr r0, _0802CDF4 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802CE10 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ ldr r2, [sp, 0x28]
+ bl SetMonData
+ b _0802CE1C
+ .align 2, 0
+_0802CDEC: .4byte gMain
+_0802CDF0: .4byte gMoveSelectionCursor
+_0802CDF4: .4byte gActiveBank
+_0802CDF8: .4byte gUnknown_03004344
+_0802CDFC: .4byte gUnknown_02023A64
+_0802CE00: .4byte gDisableStructs
+_0802CE04: .4byte gBitTable
+_0802CE08: .4byte gBattleMons
+_0802CE0C: .4byte gBattlePartyID
+_0802CE10: .4byte gPlayerParty
+_0802CE14:
+ ldrb r0, [r5]
+ ldr r1, _0802CF20 @ =gUnknown_08400D49
+ bl sub_802E12C
+_0802CE1C:
+ ldr r1, _0802CF24 @ =gBattleBankFunc
+ ldr r2, _0802CF28 @ =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802CF2C @ =sub_802C68C
+ str r1, [r0]
+ ldr r3, _0802CF30 @ =gMoveSelectionCursor
+ ldrb r0, [r2]
+ adds r0, r3
+ ldr r1, _0802CF34 @ =gUnknown_03004344
+ ldrb r1, [r1]
+ strb r1, [r0]
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3B4
+ ldr r4, _0802CF38 @ =gUnknown_03004210
+ ldr r1, _0802CF3C @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x37
+ bl FillWindowRect
+ ldr r1, _0802CF40 @ =gUnknown_08400D38
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ bl sub_802E220
+ bl sub_802E2D4
+_0802CE78:
+ ldr r6, _0802CF44 @ =gMain
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CEF0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0802CF34 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ bl nullsub_7
+ ldr r5, _0802CF30 @ =gMoveSelectionCursor
+ ldr r4, _0802CF28 @ =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3B4
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ ldr r1, _0802CF20 @ =gUnknown_08400D49
+ bl sub_802E12C
+ ldr r1, _0802CF24 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802CF2C @ =sub_802C68C
+ str r1, [r0]
+ ldr r4, _0802CF38 @ =gUnknown_03004210
+ ldr r1, _0802CF3C @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x37
+ bl FillWindowRect
+ ldr r1, _0802CF40 @ =gUnknown_08400D38
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ bl sub_802E220
+ bl sub_802E2D4
+_0802CEF0:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CF8C
+ ldr r3, _0802CF34 @ =gUnknown_03004344
+ ldrb r2, [r3]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _0802CF8C
+ ldr r0, _0802CF30 @ =gMoveSelectionCursor
+ ldr r1, _0802CF28 @ =gActiveBank
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r5, [r1]
+ cmp r2, r5
+ bne _0802CF48
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl sub_802E3B4
+ b _0802CF4E
+ .align 2, 0
+_0802CF20: .4byte gUnknown_08400D49
+_0802CF24: .4byte gBattleBankFunc
+_0802CF28: .4byte gActiveBank
+_0802CF2C: .4byte sub_802C68C
+_0802CF30: .4byte gMoveSelectionCursor
+_0802CF34: .4byte gUnknown_03004344
+_0802CF38: .4byte gUnknown_03004210
+_0802CF3C: .4byte 0x00001016
+_0802CF40: .4byte gUnknown_08400D38
+_0802CF44: .4byte gMain
+_0802CF48:
+ ldrb r0, [r3]
+ bl nullsub_7
+_0802CF4E:
+ ldr r4, _0802CF78 @ =gUnknown_03004344
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802CF7C @ =gMoveSelectionCursor
+ ldr r0, _0802CF80 @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802CF84
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_802E3B4
+ b _0802CF8C
+ .align 2, 0
+_0802CF78: .4byte gUnknown_03004344
+_0802CF7C: .4byte gMoveSelectionCursor
+_0802CF80: .4byte gActiveBank
+_0802CF84:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl sub_802E3B4
+_0802CF8C:
+ ldr r0, _0802CFC8 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D020
+ ldr r3, _0802CFCC @ =gUnknown_03004344
+ ldrb r2, [r3]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _0802D020
+ ldr r1, _0802CFD0 @ =gUnknown_03004348
+ movs r0, 0x1
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0802D020
+ ldr r0, _0802CFD4 @ =gMoveSelectionCursor
+ ldr r1, _0802CFD8 @ =gActiveBank
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r2, r0
+ bne _0802CFDC
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl sub_802E3B4
+ b _0802CFE2
+ .align 2, 0
+_0802CFC8: .4byte gMain
+_0802CFCC: .4byte gUnknown_03004344
+_0802CFD0: .4byte gUnknown_03004348
+_0802CFD4: .4byte gMoveSelectionCursor
+_0802CFD8: .4byte gActiveBank
+_0802CFDC:
+ ldrb r0, [r3]
+ bl nullsub_7
+_0802CFE2:
+ ldr r4, _0802D00C @ =gUnknown_03004344
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802D010 @ =gMoveSelectionCursor
+ ldr r0, _0802D014 @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802D018
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_802E3B4
+ b _0802D020
+ .align 2, 0
+_0802D00C: .4byte gUnknown_03004344
+_0802D010: .4byte gMoveSelectionCursor
+_0802D014: .4byte gActiveBank
+_0802D018:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl sub_802E3B4
+_0802D020:
+ ldr r0, _0802D050 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D0A4
+ ldr r3, _0802D054 @ =gUnknown_03004344
+ ldrb r2, [r3]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0802D0A4
+ ldr r0, _0802D058 @ =gMoveSelectionCursor
+ ldr r1, _0802D05C @ =gActiveBank
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r5, [r1]
+ cmp r2, r5
+ bne _0802D060
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl sub_802E3B4
+ b _0802D066
+ .align 2, 0
+_0802D050: .4byte gMain
+_0802D054: .4byte gUnknown_03004344
+_0802D058: .4byte gMoveSelectionCursor
+_0802D05C: .4byte gActiveBank
+_0802D060:
+ ldrb r0, [r3]
+ bl nullsub_7
+_0802D066:
+ ldr r4, _0802D090 @ =gUnknown_03004344
+ ldrb r0, [r4]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802D094 @ =gMoveSelectionCursor
+ ldr r0, _0802D098 @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802D09C
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_802E3B4
+ b _0802D0A4
+ .align 2, 0
+_0802D090: .4byte gUnknown_03004344
+_0802D094: .4byte gMoveSelectionCursor
+_0802D098: .4byte gActiveBank
+_0802D09C:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl sub_802E3B4
+_0802D0A4:
+ ldr r0, _0802D0E0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D138
+ ldr r3, _0802D0E4 @ =gUnknown_03004344
+ ldrb r2, [r3]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _0802D138
+ ldr r1, _0802D0E8 @ =gUnknown_03004348
+ movs r0, 0x2
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0802D138
+ ldr r0, _0802D0EC @ =gMoveSelectionCursor
+ ldr r1, _0802D0F0 @ =gActiveBank
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r2, r0
+ bne _0802D0F4
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl sub_802E3B4
+ b _0802D0FA
+ .align 2, 0
+_0802D0E0: .4byte gMain
+_0802D0E4: .4byte gUnknown_03004344
+_0802D0E8: .4byte gUnknown_03004348
+_0802D0EC: .4byte gMoveSelectionCursor
+_0802D0F0: .4byte gActiveBank
+_0802D0F4:
+ ldrb r0, [r3]
+ bl nullsub_7
+_0802D0FA:
+ ldr r4, _0802D124 @ =gUnknown_03004344
+ ldrb r0, [r4]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802D128 @ =gMoveSelectionCursor
+ ldr r0, _0802D12C @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802D130
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_802E3B4
+ b _0802D138
+ .align 2, 0
+_0802D124: .4byte gUnknown_03004344
+_0802D128: .4byte gMoveSelectionCursor
+_0802D12C: .4byte gActiveBank
+_0802D130:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl sub_802E3B4
+_0802D138:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802CA60
+
+ thumb_func_start sub_802D148
+sub_802D148: @ 802D148
+ push {lr}
+ ldr r0, _0802D178 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802D174
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r3, _0802D17C @ =gMain
+ ldr r0, _0802D180 @ =0x0000043d
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _0802D184 @ =gPreBattleCallback1
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, _0802D188 @ =c2_8011A1C
+ bl SetMainCallback2
+_0802D174:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D178: .4byte gReceivedRemoteLinkPlayers
+_0802D17C: .4byte gMain
+_0802D180: .4byte 0x0000043d
+_0802D184: .4byte gPreBattleCallback1
+_0802D188: .4byte c2_8011A1C
+ thumb_func_end sub_802D148
+
+ thumb_func_start sub_802D18C
+sub_802D18C: @ 802D18C
+ push {lr}
+ ldr r0, _0802D1BC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D1F2
+ ldr r0, _0802D1C0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D1D0
+ bl sub_800832C
+ ldr r1, _0802D1C4 @ =gBattleBankFunc
+ ldr r0, _0802D1C8 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802D1CC @ =sub_802D148
+ str r1, [r0]
+ b _0802D1F2
+ .align 2, 0
+_0802D1BC: .4byte gPaletteFade
+_0802D1C0: .4byte gBattleTypeFlags
+_0802D1C4: .4byte gBattleBankFunc
+_0802D1C8: .4byte gActiveBank
+_0802D1CC: .4byte sub_802D148
+_0802D1D0:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r2, _0802D1F8 @ =gMain
+ ldr r0, _0802D1FC @ =0x0000043d
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _0802D200 @ =gPreBattleCallback1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_0802D1F2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D1F8: .4byte gMain
+_0802D1FC: .4byte 0x0000043d
+_0802D200: .4byte gPreBattleCallback1
+ thumb_func_end sub_802D18C
+
+ thumb_func_start sub_802D204
+sub_802D204: @ 802D204
+ push {lr}
+ ldr r2, _0802D22C @ =gSprites
+ ldr r1, _0802D230 @ =gObjectBankIDs
+ ldr r0, _0802D234 @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0802D238 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D228
+ bl PlayerBufferExecCompleted
+_0802D228:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D22C: .4byte gSprites
+_0802D230: .4byte gObjectBankIDs
+_0802D234: .4byte gActiveBank
+_0802D238: .4byte SpriteCallbackDummy
+ thumb_func_end sub_802D204
+
+ thumb_func_start sub_802D23C
+sub_802D23C: @ 802D23C
+ push {lr}
+ ldr r2, _0802D264 @ =gSprites
+ ldr r1, _0802D268 @ =gObjectBankIDs
+ ldr r0, _0802D26C @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0802D270 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D260
+ bl PlayerBufferExecCompleted
+_0802D260:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D264: .4byte gSprites
+_0802D268: .4byte gObjectBankIDs
+_0802D26C: .4byte gActiveBank
+_0802D270: .4byte SpriteCallbackDummy
+ thumb_func_end sub_802D23C
+
+ thumb_func_start sub_802D274
+sub_802D274: @ 802D274
+ push {r4-r6,lr}
+ ldr r6, _0802D2CC @ =gSprites
+ ldr r5, _0802D2D0 @ =gObjectBankIDs
+ ldr r4, _0802D2D4 @ =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _0802D2D8 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D2C6
+ ldr r0, _0802D2DC @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ bl nullsub_10
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ bl PlayerBufferExecCompleted
+_0802D2C6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D2CC: .4byte gSprites
+_0802D2D0: .4byte gObjectBankIDs
+_0802D2D4: .4byte gActiveBank
+_0802D2D8: .4byte SpriteCallbackDummy
+_0802D2DC: .4byte gSaveBlock2
+ thumb_func_end sub_802D274
+
+ thumb_func_start sub_802D2E0
+sub_802D2E0: @ 802D2E0
+ push {lr}
+ ldr r3, _0802D314 @ =gActiveBank
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _0802D318 @ =0x02017810
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0802D310
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ bl PlayerBufferExecCompleted
+_0802D310:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D314: .4byte gActiveBank
+_0802D318: .4byte 0x02017810
+ thumb_func_end sub_802D2E0
+
+ thumb_func_start sub_802D31C
+sub_802D31C: @ 802D31C
+ push {r4-r7,lr}
+ movs r6, 0
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D340
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D374
+ ldr r0, _0802D360 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D374
+_0802D340:
+ ldr r2, _0802D364 @ =gSprites
+ ldr r1, _0802D368 @ =gHealthboxIDs
+ ldr r0, _0802D36C @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0802D370 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D3AA
+ b _0802D3A8
+ .align 2, 0
+_0802D360: .4byte gBattleTypeFlags
+_0802D364: .4byte gSprites
+_0802D368: .4byte gHealthboxIDs
+_0802D36C: .4byte gActiveBank
+_0802D370: .4byte SpriteCallbackDummy
+_0802D374:
+ ldr r2, _0802D45C @ =gSprites
+ ldr r5, _0802D460 @ =gHealthboxIDs
+ ldr r0, _0802D464 @ =gActiveBank
+ ldrb r3, [r0]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r4, [r0]
+ ldr r0, _0802D468 @ =SpriteCallbackDummy
+ cmp r4, r0
+ bne _0802D3AA
+ movs r0, 0x2
+ eors r3, r0
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _0802D3AA
+_0802D3A8:
+ movs r6, 0x1
+_0802D3AA:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D3B6
+ movs r6, 0
+_0802D3B6:
+ cmp r6, 0
+ bne _0802D3BC
+ b _0802D4DA
+_0802D3BC:
+ ldr r7, _0802D464 @ =gActiveBank
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r5, _0802D46C @ =0x02017810
+ adds r4, r0, r5
+ ldrb r1, [r4, 0x1]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D3D8
+ b _0802D4DA
+_0802D3D8:
+ movs r6, 0x2
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D4DA
+ ldrb r1, [r4]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ strb r4, [r0, 0x1]
+ ldr r4, _0802D470 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r0, _0802D474 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D47C
+ ldr r0, _0802D478 @ =gMPlay_BGM
+ bl m4aMPlayContinue
+ b _0802D488
+ .align 2, 0
+_0802D45C: .4byte gSprites
+_0802D460: .4byte gHealthboxIDs
+_0802D464: .4byte gActiveBank
+_0802D468: .4byte SpriteCallbackDummy
+_0802D46C: .4byte 0x02017810
+_0802D470: .4byte 0x000027f9
+_0802D474: .4byte gBattleTypeFlags
+_0802D478: .4byte gMPlay_BGM
+_0802D47C:
+ ldr r0, _0802D4E0 @ =gMPlay_BGM
+ ldr r1, _0802D4E4 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_0802D488:
+ ldr r7, _0802D4E8 @ =gBattlePartyID
+ ldr r4, _0802D4EC @ =gActiveBank
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _0802D4F0 @ =gPlayerParty
+ adds r0, r5
+ bl sub_80324F8
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D4BE
+ ldrb r0, [r4]
+ movs r1, 0x2
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ bl sub_80324F8
+_0802D4BE:
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802D4F4 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, _0802D4F8 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802D4FC @ =sub_802D2E0
+ str r1, [r0]
+_0802D4DA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D4E0: .4byte gMPlay_BGM
+_0802D4E4: .4byte 0x0000ffff
+_0802D4E8: .4byte gBattlePartyID
+_0802D4EC: .4byte gActiveBank
+_0802D4F0: .4byte gPlayerParty
+_0802D4F4: .4byte 0x02017810
+_0802D4F8: .4byte gBattleBankFunc
+_0802D4FC: .4byte sub_802D2E0
+ thumb_func_end sub_802D31C
+
+ thumb_func_start sub_802D500
+sub_802D500: @ 802D500
+ push {r4-r7,lr}
+ ldr r5, _0802D654 @ =gActiveBank
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r4, _0802D658 @ =0x02017810
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r7, 0x88
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D530
+ ldr r0, _0802D65C @ =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0802D660 @ =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_0802D530:
+ ldrb r0, [r5]
+ movs r6, 0x2
+ adds r2, r6, 0
+ eors r2, r0
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D55E
+ ldr r0, _0802D65C @ =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0802D660 @ =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_0802D55E:
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r3, 0x8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D64C
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D64C
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D5EE
+ ldr r0, _0802D664 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D5EE
+ ldr r1, _0802D668 @ =gUnknown_0300434C
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802D66C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r4, _0802D670 @ =gHealthboxIDs
+ ldrb r0, [r5]
+ adds r1, r6, 0
+ eors r1, r0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _0802D65C @ =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0802D660 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ eors r0, r6
+ bl sub_804777C
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+_0802D5EE:
+ ldr r1, _0802D668 @ =gUnknown_0300434C
+ ldr r4, _0802D654 @ =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802D66C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r5, _0802D670 @ =gHealthboxIDs
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _0802D65C @ =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0802D660 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldr r2, _0802D674 @ =0x02017840
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _0802D678 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802D67C @ =sub_802D31C
+ str r1, [r0]
+_0802D64C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D654: .4byte gActiveBank
+_0802D658: .4byte 0x02017810
+_0802D65C: .4byte gBattlePartyID
+_0802D660: .4byte gPlayerParty
+_0802D664: .4byte gBattleTypeFlags
+_0802D668: .4byte gUnknown_0300434C
+_0802D66C: .4byte gSprites
+_0802D670: .4byte gHealthboxIDs
+_0802D674: .4byte 0x02017840
+_0802D678: .4byte gBattleBankFunc
+_0802D67C: .4byte sub_802D31C
+ thumb_func_end sub_802D500
+
+ thumb_func_start sub_802D680
+sub_802D680: @ 802D680
+ push {r4-r6,lr}
+ ldr r2, _0802D710 @ =gSprites
+ ldr r0, _0802D714 @ =gHealthboxIDs
+ ldr r6, _0802D718 @ =gActiveBank
+ ldrb r3, [r6]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0802D71C @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D708
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r5, _0802D720 @ =0x02017810
+ adds r2, r0, r5
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D708
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r6]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _0802D724 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldrb r2, [r6]
+ lsls r0, r2, 2
+ adds r1, r5, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D6FC
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_0802D6FC:
+ ldr r0, _0802D728 @ =gBattleBankFunc
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0802D72C @ =sub_802D730
+ str r0, [r1]
+_0802D708:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D710: .4byte gSprites
+_0802D714: .4byte gHealthboxIDs
+_0802D718: .4byte gActiveBank
+_0802D71C: .4byte SpriteCallbackDummy
+_0802D720: .4byte 0x02017810
+_0802D724: .4byte 0x000027f9
+_0802D728: .4byte gBattleBankFunc
+_0802D72C: .4byte sub_802D730
+ thumb_func_end sub_802D680
+
+ thumb_func_start sub_802D730
+sub_802D730: @ 802D730
+ push {r4,lr}
+ ldr r4, _0802D780 @ =gActiveBank
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802D784 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D77A
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D77A
+ ldr r0, _0802D788 @ =gMPlay_BGM
+ ldr r1, _0802D78C @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ ldr r2, _0802D790 @ =gBattlePartyID
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802D794 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80324F8
+ bl PlayerBufferExecCompleted
+_0802D77A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D780: .4byte gActiveBank
+_0802D784: .4byte 0x02017810
+_0802D788: .4byte gMPlay_BGM
+_0802D78C: .4byte 0x0000ffff
+_0802D790: .4byte gBattlePartyID
+_0802D794: .4byte gPlayerParty
+ thumb_func_end sub_802D730
+
+ thumb_func_start sub_802D798
+sub_802D798: @ 802D798
+ push {r4-r6,lr}
+ ldr r5, _0802D844 @ =gActiveBank
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r6, _0802D848 @ =0x02017810
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D7C6
+ ldr r0, _0802D84C @ =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0802D850 @ =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_0802D7C6:
+ ldr r4, _0802D854 @ =gSprites
+ ldr r0, _0802D858 @ =gUnknown_0300434C
+ ldrb r2, [r5]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r3, r0
+ ldr r1, [r0]
+ ldr r0, _0802D85C @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D83C
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D83C
+ adds r0, r3, r4
+ bl DestroySprite
+ ldr r4, _0802D860 @ =gHealthboxIDs
+ ldrb r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _0802D84C @ =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0802D850 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ bl sub_804777C
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r5]
+ bl sub_8031F88
+ ldr r1, _0802D864 @ =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802D868 @ =sub_802D680
+ str r1, [r0]
+_0802D83C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D844: .4byte gActiveBank
+_0802D848: .4byte 0x02017810
+_0802D84C: .4byte gBattlePartyID
+_0802D850: .4byte gPlayerParty
+_0802D854: .4byte gSprites
+_0802D858: .4byte gUnknown_0300434C
+_0802D85C: .4byte SpriteCallbackDummy
+_0802D860: .4byte gHealthboxIDs
+_0802D864: .4byte gBattleBankFunc
+_0802D868: .4byte sub_802D680
+ thumb_func_end sub_802D798
+
+ thumb_func_start c3_0802FDF4
+c3_0802FDF4: @ 802D86C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D88E
+ ldr r0, _0802D894 @ =gMPlay_BGM
+ ldr r1, _0802D898 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ adds r0, r4, 0
+ bl DestroyTask
+_0802D88E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D894: .4byte gMPlay_BGM
+_0802D898: .4byte 0x0000ffff
+ thumb_func_end c3_0802FDF4
+
+ thumb_func_start bx_t1_healthbar_update
+bx_t1_healthbar_update: @ 802D89C
+ push {r4-r6,lr}
+ ldr r5, _0802D8DC @ =gActiveBank
+ ldrb r0, [r5]
+ ldr r6, _0802D8E0 @ =gHealthboxIDs
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0802D8E4
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ movs r2, 0
+ bl sub_80440EC
+ b _0802D8FE
+ .align 2, 0
+_0802D8DC: .4byte gActiveBank
+_0802D8E0: .4byte gHealthboxIDs
+_0802D8E4:
+ ldr r2, _0802D904 @ =gBattlePartyID
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802D908 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80324F8
+ bl PlayerBufferExecCompleted
+_0802D8FE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D904: .4byte gBattlePartyID
+_0802D908: .4byte gPlayerParty
+ thumb_func_end bx_t1_healthbar_update
+
+ thumb_func_start sub_802D90C
+sub_802D90C: @ 802D90C
+ push {lr}
+ ldr r0, _0802D920 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0802D91A
+ bl PlayerBufferExecCompleted
+_0802D91A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D920: .4byte gUnknown_03004210
+ thumb_func_end sub_802D90C
+
+ thumb_func_start sub_802D924
+sub_802D924: @ 802D924
+ 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, _0802DA24 @ =gTasks
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ mov r8, r0
+ ldrb r0, [r0, 0x8]
+ mov r10, r0
+ mov r1, r8
+ ldrb r7, [r1, 0xC]
+ str r7, [sp, 0x8]
+ ldrh r2, [r1, 0xA]
+ str r2, [sp, 0xC]
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0802D96A
+ ldr r1, _0802DA28 @ =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r10, r0
+ bne _0802D96A
+ b _0802DA80
+_0802D96A:
+ movs r0, 0x64
+ mov r1, r10
+ muls r1, r0
+ ldr r0, _0802DA2C @ =gPlayerParty
+ adds r6, r1, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ movs r1, 0x19
+ bl GetMonData
+ str r0, [sp, 0x4]
+ ldr r3, _0802DA30 @ =gExperienceTables
+ adds r4, 0x1
+ lsls r4, 2
+ ldr r2, _0802DA34 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x13]
+ movs r1, 0xCA
+ lsls r1, 1
+ muls r1, r2
+ adds r4, r1
+ adds r4, r3
+ ldr r2, [r4]
+ str r2, [sp]
+ ldr r3, [sp, 0xC]
+ lsls r1, r3, 16
+ asrs r1, 16
+ adds r0, r1
+ cmp r0, r2
+ bcc _0802DA58
+ adds r0, r6, 0
+ movs r1, 0x19
+ mov r2, sp
+ bl SetMonData
+ adds r0, r6, 0
+ bl CalculateMonStats
+ ldr r2, [sp]
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ subs r2, r0
+ ldr r0, [sp, 0xC]
+ subs r2, r0, r2
+ ldr r4, _0802DA38 @ =gActiveBank
+ ldrb r5, [r4]
+ strb r7, [r4]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x1
+ movs r1, 0xB
+ bl dp01_build_cmdbuf_x21_a_bb
+ strb r5, [r4]
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802DA40
+ ldr r2, _0802DA28 @ =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r2
+ mov r1, r10
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _0802DA1E
+ movs r0, 0x2
+ eors r7, r0
+ lsls r0, r7, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0802DA40
+_0802DA1E:
+ ldr r0, _0802DA3C @ =sub_802DCB0
+ b _0802DA82
+ .align 2, 0
+_0802DA24: .4byte gTasks
+_0802DA28: .4byte gBattlePartyID
+_0802DA2C: .4byte gPlayerParty
+_0802DA30: .4byte gExperienceTables
+_0802DA34: .4byte gBaseStats
+_0802DA38: .4byte gActiveBank
+_0802DA3C: .4byte sub_802DCB0
+_0802DA40:
+ ldr r0, _0802DA50 @ =gTasks
+ mov r2, r9
+ lsls r1, r2, 2
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0802DA54 @ =sub_802DDC4
+ b _0802DA84
+ .align 2, 0
+_0802DA50: .4byte gTasks
+_0802DA54: .4byte sub_802DDC4
+_0802DA58:
+ str r0, [sp, 0x4]
+ add r2, sp, 0x4
+ adds r0, r6, 0
+ movs r1, 0x19
+ bl SetMonData
+ ldr r1, _0802DA78 @ =gBattleBankFunc
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, _0802DA7C @ =sub_802D90C
+ str r1, [r0]
+ mov r0, r9
+ bl DestroyTask
+ b _0802DA86
+ .align 2, 0
+_0802DA78: .4byte gBattleBankFunc
+_0802DA7C: .4byte sub_802D90C
+_0802DA80:
+ ldr r0, _0802DA98 @ =sub_802DA9C
+_0802DA82:
+ mov r1, r8
+_0802DA84:
+ str r0, [r1]
+_0802DA86:
+ 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
+_0802DA98: .4byte sub_802DA9C
+ thumb_func_end sub_802D924
+
+ thumb_func_start sub_802DA9C
+sub_802DA9C: @ 802DA9C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0802DB54 @ =gTasks
+ lsls r2, r0, 2
+ mov r8, r2
+ add r8, r0
+ mov r0, r8
+ lsls r0, 3
+ mov r8, r0
+ add r8, r1
+ mov r2, r8
+ ldrb r1, [r2, 0x8]
+ movs r0, 0xA
+ ldrsh r2, [r2, r0]
+ mov r9, r2
+ mov r2, r8
+ ldrb r2, [r2, 0xC]
+ mov r10, r2
+ movs r0, 0x64
+ adds r6, r1, 0
+ muls r6, r0
+ ldr r0, _0802DB58 @ =gPlayerParty
+ adds r6, r0
+ adds r0, r6, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ movs r1, 0x19
+ bl GetMonData
+ adds r3, r0, 0
+ ldr r6, _0802DB5C @ =gExperienceTables
+ lsls r1, r4, 2
+ ldr r2, _0802DB60 @ =gBaseStats
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r2
+ adds r1, r0
+ adds r1, r6
+ ldr r1, [r1]
+ subs r3, r1
+ adds r4, 0x1
+ lsls r4, 2
+ adds r4, r0
+ adds r4, r6
+ ldr r2, [r4]
+ subs r2, r1
+ ldr r0, _0802DB64 @ =gHealthboxIDs
+ add r0, r10
+ ldrb r1, [r0]
+ mov r0, r9
+ negs r0, r0
+ str r0, [sp]
+ mov r0, r10
+ bl sub_8043D84
+ movs r0, 0x21
+ bl PlaySE
+ ldr r0, _0802DB68 @ =sub_802DB6C
+ mov r1, r8
+ str r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DB54: .4byte gTasks
+_0802DB58: .4byte gPlayerParty
+_0802DB5C: .4byte gExperienceTables
+_0802DB60: .4byte gBaseStats
+_0802DB64: .4byte gHealthboxIDs
+_0802DB68: .4byte sub_802DB6C
+ thumb_func_end sub_802DA9C
+
+ thumb_func_start sub_802DB6C
+sub_802DB6C: @ 802DB6C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0802DB98 @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrh r1, [r6, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r6, r2]
+ cmp r0, 0xC
+ bgt _0802DB9C
+ adds r0, r1, 0x1
+ strh r0, [r6, 0x1C]
+ b _0802DC98
+ .align 2, 0
+_0802DB98: .4byte gTasks
+_0802DB9C:
+ ldrb r0, [r6, 0x8]
+ mov r9, r0
+ ldrh r2, [r6, 0xA]
+ mov r10, r2
+ ldrb r7, [r6, 0xC]
+ ldr r5, _0802DC64 @ =gHealthboxIDs
+ adds r5, r7, r5
+ ldrb r1, [r5]
+ adds r0, r7, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _0802DC98
+ movs r0, 0x21
+ bl m4aSongNumStop
+ movs r0, 0x64
+ mov r1, r9
+ muls r1, r0
+ ldr r0, _0802DC68 @ =gPlayerParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x19
+ bl GetMonData
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r3, _0802DC6C @ =gExperienceTables
+ adds r4, 0x1
+ lsls r4, 2
+ ldr r2, _0802DC70 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r1
+ adds r4, r0
+ adds r4, r3
+ ldr r1, [r4]
+ str r1, [sp]
+ mov r2, r10
+ lsls r0, r2, 16
+ asrs r4, r0, 16
+ ldr r0, [sp, 0x4]
+ adds r0, r4
+ cmp r0, r1
+ blt _0802DC7C
+ adds r0, r5, 0
+ movs r1, 0x19
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ bl CalculateMonStats
+ ldr r2, [sp]
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ subs r2, r0
+ subs r2, r4, r2
+ ldr r4, _0802DC74 @ =gActiveBank
+ ldrb r5, [r4]
+ strb r7, [r4]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x1
+ movs r1, 0xB
+ bl dp01_build_cmdbuf_x21_a_bb
+ strb r5, [r4]
+ ldr r0, _0802DC78 @ =sub_802DCB0
+ str r0, [r6]
+ b _0802DC98
+ .align 2, 0
+_0802DC64: .4byte gHealthboxIDs
+_0802DC68: .4byte gPlayerParty
+_0802DC6C: .4byte gExperienceTables
+_0802DC70: .4byte gBaseStats
+_0802DC74: .4byte gActiveBank
+_0802DC78: .4byte sub_802DCB0
+_0802DC7C:
+ str r0, [sp, 0x4]
+ add r2, sp, 0x4
+ adds r0, r5, 0
+ movs r1, 0x19
+ bl SetMonData
+ ldr r1, _0802DCA8 @ =gBattleBankFunc
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r1, _0802DCAC @ =sub_802D90C
+ str r1, [r0]
+ mov r0, r8
+ bl DestroyTask
+_0802DC98:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DCA8: .4byte gBattleBankFunc
+_0802DCAC: .4byte sub_802D90C
+ thumb_func_end sub_802DB6C
+
+ thumb_func_start sub_802DCB0
+sub_802DCB0: @ 802DCB0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0802DD04 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrb r4, [r0, 0xC]
+ ldrb r6, [r0, 0x8]
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802DCE4
+ ldr r1, _0802DD08 @ =gBattlePartyID
+ movs r0, 0x2
+ adds r2, r4, 0
+ eors r2, r0
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ bne _0802DCE4
+ adds r4, r2, 0
+_0802DCE4:
+ adds r0, r4, 0
+ adds r1, r4, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl move_anim_start_t4
+ ldr r0, _0802DD04 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0802DD0C @ =sub_802DD10
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DD04: .4byte gTasks
+_0802DD08: .4byte gBattlePartyID
+_0802DD0C: .4byte sub_802DD10
+ thumb_func_end sub_802DCB0
+
+ thumb_func_start sub_802DD10
+sub_802DD10: @ 802DD10
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0802DD78 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrb r5, [r2, 0xC]
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _0802DD7C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802DDAE
+ ldrb r4, [r2, 0x8]
+ movs r0, 0x64
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _0802DD80 @ =gPlayerParty
+ adds r7, r1, r0
+ adds r0, r7, 0
+ movs r1, 0x38
+ bl GetMonData
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802DD8C
+ ldr r1, _0802DD84 @ =gBattlePartyID
+ movs r0, 0x2
+ adds r2, r5, 0
+ eors r2, r0
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _0802DD8C
+ ldr r0, _0802DD88 @ =gHealthboxIDs
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8045A5C
+ b _0802DDA0
+ .align 2, 0
+_0802DD78: .4byte gTasks
+_0802DD7C: .4byte 0x02017810
+_0802DD80: .4byte gPlayerParty
+_0802DD84: .4byte gBattlePartyID
+_0802DD88: .4byte gHealthboxIDs
+_0802DD8C:
+ ldr r0, _0802DDB4 @ =gHealthboxIDs
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ movs r1, 0x64
+ muls r1, r4
+ ldr r2, _0802DDB8 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+_0802DDA0:
+ ldr r0, _0802DDBC @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0802DDC0 @ =sub_802DDC4
+ str r0, [r1]
+_0802DDAE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DDB4: .4byte gHealthboxIDs
+_0802DDB8: .4byte gPlayerParty
+_0802DDBC: .4byte gTasks
+_0802DDC0: .4byte sub_802DDC4
+ thumb_func_end sub_802DD10
+
+ thumb_func_start sub_802DDC4
+sub_802DDC4: @ 802DDC4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0802DE00 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802DE04 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x38
+ bl GetMonData
+ ldrb r0, [r4, 0xC]
+ ldr r1, _0802DE08 @ =gBattleBankFunc
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802DE0C @ =sub_802D90C
+ str r1, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DE00: .4byte gTasks
+_0802DE04: .4byte gPlayerParty
+_0802DE08: .4byte gBattleBankFunc
+_0802DE0C: .4byte sub_802D90C
+ thumb_func_end sub_802DDC4
+
+ thumb_func_start sub_802DE10
+sub_802DE10: @ 802DE10
+ push {r4-r6,lr}
+ ldr r6, _0802DE94 @ =gSprites
+ ldr r5, _0802DE98 @ =gObjectBankIDs
+ ldr r4, _0802DE9C @ =gActiveBank
+ ldrb r2, [r4]
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r3, 0x22
+ ldrsh r1, [r0, r3]
+ movs r3, 0x26
+ ldrsh r0, [r0, r3]
+ adds r1, r0
+ cmp r1, 0xA0
+ ble _0802DE8C
+ ldr r1, _0802DEA0 @ =gBattlePartyID
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802DEA4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl nullsub_9
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ ldr r1, _0802DEA8 @ =gHealthboxIDs
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl PlayerBufferExecCompleted
+_0802DE8C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DE94: .4byte gSprites
+_0802DE98: .4byte gObjectBankIDs
+_0802DE9C: .4byte gActiveBank
+_0802DEA0: .4byte gBattlePartyID
+_0802DEA4: .4byte gPlayerParty
+_0802DEA8: .4byte gHealthboxIDs
+ thumb_func_end sub_802DE10
+
+ thumb_func_start sub_802DEAC
+sub_802DEAC: @ 802DEAC
+ push {r4-r6,lr}
+ ldr r6, _0802DF04 @ =gActiveBank
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _0802DF08 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802DEFC
+ ldr r5, _0802DF0C @ =gObjectBankIDs
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0802DF10 @ =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r1, _0802DF14 @ =gHealthboxIDs
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl PlayerBufferExecCompleted
+_0802DEFC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DF04: .4byte gActiveBank
+_0802DF08: .4byte 0x02017810
+_0802DF0C: .4byte gObjectBankIDs
+_0802DF10: .4byte gSprites
+_0802DF14: .4byte gHealthboxIDs
+ thumb_func_end sub_802DEAC
+
+ thumb_func_start sub_802DF18
+sub_802DF18: @ 802DF18
+ push {lr}
+ ldr r0, _0802DF2C @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0802DF26
+ bl PlayerBufferExecCompleted
+_0802DF26:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DF2C: .4byte gUnknown_03004210
+ thumb_func_end sub_802DF18
+
+ thumb_func_start sub_802DF30
+sub_802DF30: @ 802DF30
+ push {r4,lr}
+ ldr r0, _0802DF70 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802DF6A
+ ldr r1, _0802DF74 @ =gBattleBankFunc
+ ldr r2, _0802DF78 @ =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802DF7C @ =sub_802DF88
+ str r1, [r0]
+ ldr r3, _0802DF80 @ =gTasks
+ ldr r1, _0802DF84 @ =gUnknown_0300434C
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldrb r4, [r1, 0x8]
+ bl DestroyTask
+ adds r0, r4, 0
+ bl sub_8094E20
+_0802DF6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DF70: .4byte gPaletteFade
+_0802DF74: .4byte gBattleBankFunc
+_0802DF78: .4byte gActiveBank
+_0802DF7C: .4byte sub_802DF88
+_0802DF80: .4byte gTasks
+_0802DF84: .4byte gUnknown_0300434C
+ thumb_func_end sub_802DF30
+
+ thumb_func_start sub_802DF88
+sub_802DF88: @ 802DF88
+ push {lr}
+ ldr r0, _0802DFB8 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0802DFBC @ =sub_800F808
+ cmp r1, r0
+ bne _0802DFF8
+ ldr r0, _0802DFC0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802DFF8
+ ldr r0, _0802DFC4 @ =gUnknown_0202E8F4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0802DFD0
+ ldr r0, _0802DFC8 @ =gUnknown_0202E8F5
+ ldrb r1, [r0]
+ ldr r2, _0802DFCC @ =gUnknown_02038470
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+ b _0802DFDA
+ .align 2, 0
+_0802DFB8: .4byte gMain
+_0802DFBC: .4byte sub_800F808
+_0802DFC0: .4byte gPaletteFade
+_0802DFC4: .4byte gUnknown_0202E8F4
+_0802DFC8: .4byte gUnknown_0202E8F5
+_0802DFCC: .4byte gUnknown_02038470
+_0802DFD0:
+ movs r0, 0x1
+ movs r1, 0x6
+ movs r2, 0
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+_0802DFDA:
+ ldr r1, _0802DFFC @ =gBattleBufferA
+ ldr r0, _0802E000 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0802DFF4
+ bl b_link_standby_message
+_0802DFF4:
+ bl PlayerBufferExecCompleted
+_0802DFF8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DFFC: .4byte gBattleBufferA
+_0802E000: .4byte gActiveBank
+ thumb_func_end sub_802DF88
+
+ thumb_func_start sub_802E004
+sub_802E004: @ 802E004
+ push {lr}
+ ldr r0, _0802E02C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E028
+ ldr r1, _0802E030 @ =gBattleBankFunc
+ ldr r0, _0802E034 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802E038 @ =sub_802E03C
+ str r1, [r0]
+ bl nullsub_14
+ bl sub_80A6DCC
+_0802E028:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E02C: .4byte gPaletteFade
+_0802E030: .4byte gBattleBankFunc
+_0802E034: .4byte gActiveBank
+_0802E038: .4byte sub_802E03C
+ thumb_func_end sub_802E004
+
+ thumb_func_start sub_802E03C
+sub_802E03C: @ 802E03C
+ push {lr}
+ ldr r0, _0802E068 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0802E06C @ =sub_800F808
+ cmp r1, r0
+ bne _0802E062
+ ldr r0, _0802E070 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E062
+ ldr r0, _0802E074 @ =gScriptItemId
+ ldrh r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl PlayerBufferExecCompleted
+_0802E062:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E068: .4byte gMain
+_0802E06C: .4byte sub_800F808
+_0802E070: .4byte gPaletteFade
+_0802E074: .4byte gScriptItemId
+ thumb_func_end sub_802E03C
+
+ thumb_func_start bx_wait_t1
+bx_wait_t1: @ 802E078
+ push {lr}
+ ldr r0, _0802E0A4 @ =gDoingBattleAnim
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802E09A
+ ldr r0, _0802E0A8 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802E0AC @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E09E
+_0802E09A:
+ bl PlayerBufferExecCompleted
+_0802E09E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E0A4: .4byte gDoingBattleAnim
+_0802E0A8: .4byte gActiveBank
+_0802E0AC: .4byte 0x02017810
+ thumb_func_end bx_wait_t1
+
+ thumb_func_start bx_blink_t1
+bx_blink_t1: @ 802E0B0
+ push {r4,lr}
+ ldr r1, _0802E0EC @ =gObjectBankIDs
+ ldr r0, _0802E0F0 @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _0802E0F4 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x20
+ bne _0802E0FC
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x5
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _0802E0F8 @ =gDoingBattleAnim
+ strb r3, [r0]
+ bl PlayerBufferExecCompleted
+ b _0802E126
+ .align 2, 0
+_0802E0EC: .4byte gObjectBankIDs
+_0802E0F0: .4byte gActiveBank
+_0802E0F4: .4byte gSprites
+_0802E0F8: .4byte gDoingBattleAnim
+_0802E0FC:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E120
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_0802E120:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_0802E126:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_blink_t1
+
+ thumb_func_start sub_802E12C
+sub_802E12C: @ 802E12C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r0, _0802E180 @ =gActiveBank
+ ldrb r4, [r0]
+ lsls r4, 9
+ ldr r0, _0802E184 @ =gUnknown_02023A64
+ adds r4, r0
+ ldr r5, _0802E188 @ =gDisplayedStringBattle
+ adds r0, r5, 0
+ bl StringCopy
+ lsls r0, r6, 1
+ adds r4, r0
+ ldrh r1, [r4]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _0802E18C @ =gMoveNames
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringAppend
+ ldr r4, _0802E190 @ =gUnknown_03004210
+ adds r1, r5, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 18
+ movs r2, 0xC0
+ lsls r2, 18
+ adds r0, r2
+ lsrs r2, r0, 16
+ movs r0, 0x1
+ ands r0, r6
+ movs r3, 0x1
+ cmp r0, 0
+ beq _0802E176
+ movs r3, 0xB
+_0802E176:
+ cmp r6, 0x1
+ bgt _0802E194
+ movs r0, 0x37
+ b _0802E196
+ .align 2, 0
+_0802E180: .4byte gActiveBank
+_0802E184: .4byte gUnknown_02023A64
+_0802E188: .4byte gDisplayedStringBattle
+_0802E18C: .4byte gMoveNames
+_0802E190: .4byte gUnknown_03004210
+_0802E194:
+ movs r0, 0x39
+_0802E196:
+ str r0, [sp]
+ adds r0, r4, 0
+ bl InitWindow
+ ldr r0, _0802E1AC @ =gUnknown_03004210
+ bl sub_8002F44
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E1AC: .4byte gUnknown_03004210
+ thumb_func_end sub_802E12C
+
+ thumb_func_start sub_802E1B0
+sub_802E1B0: @ 802E1B0
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r0, _0802E208 @ =gActiveBank
+ ldrb r4, [r0]
+ lsls r4, 9
+ ldr r0, _0802E20C @ =gUnknown_02023A64
+ adds r4, r0
+ ldr r5, _0802E210 @ =gUnknown_03004348
+ movs r0, 0
+ strb r0, [r5]
+ ldr r0, _0802E214 @ =gUnknown_03004210
+ ldr r1, _0802E218 @ =0x00001016
+ movs r2, 0x14
+ str r2, [sp]
+ movs r2, 0x3A
+ str r2, [sp, 0x4]
+ movs r2, 0x1
+ movs r3, 0x37
+ bl FillWindowRect
+ movs r6, 0
+_0802E1DA:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl nullsub_7
+ adds r0, r6, 0
+ ldr r1, _0802E21C @ =gUnknown_08400D49
+ bl sub_802E12C
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _0802E1F6
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_0802E1F6:
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802E1DA
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E208: .4byte gActiveBank
+_0802E20C: .4byte gUnknown_02023A64
+_0802E210: .4byte gUnknown_03004348
+_0802E214: .4byte gUnknown_03004210
+_0802E218: .4byte 0x00001016
+_0802E21C: .4byte gUnknown_08400D49
+ thumb_func_end sub_802E1B0
+
+ thumb_func_start sub_802E220
+sub_802E220: @ 802E220
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r4, _0802E2B8 @ =gBattleBufferA
+ ldr r6, _0802E2BC @ =gActiveBank
+ ldrb r0, [r6]
+ lsls r1, r0, 9
+ adds r0, r4, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0802E2B0
+ adds r4, 0x4
+ adds r4, r1, r4
+ ldr r2, _0802E2C0 @ =gDisplayedStringBattle
+ ldr r1, _0802E2C4 @ =gUnknown_08400D49
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r1, 0xFC
+ strb r1, [r2]
+ movs r0, 0x11
+ strb r0, [r2, 0x1]
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ strb r1, [r2]
+ movs r0, 0x14
+ strb r0, [r2, 0x1]
+ movs r0, 0x6
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ ldr r5, _0802E2C8 @ =gMoveSelectionCursor
+ ldrb r1, [r6]
+ adds r1, r5
+ adds r0, r4, 0
+ adds r0, 0x8
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ adds r2, 0x1
+ ldrb r0, [r6]
+ adds r0, r5
+ adds r4, 0xC
+ ldrb r0, [r0]
+ adds r4, r0
+ ldrb r1, [r4]
+ adds r0, r2, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r4, _0802E2CC @ =gUnknown_03004210
+ ldr r1, _0802E2C0 @ =gDisplayedStringBattle
+ ldr r2, _0802E2D0 @ =0x000002a2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x19
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+_0802E2B0:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E2B8: .4byte gBattleBufferA
+_0802E2BC: .4byte gActiveBank
+_0802E2C0: .4byte gDisplayedStringBattle
+_0802E2C4: .4byte gUnknown_08400D49
+_0802E2C8: .4byte gMoveSelectionCursor
+_0802E2CC: .4byte gUnknown_03004210
+_0802E2D0: .4byte 0x000002a2
+ thumb_func_end sub_802E220
+
+ thumb_func_start sub_802E2D4
+sub_802E2D4: @ 802E2D4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, _0802E314 @ =gBattleBufferA
+ ldr r5, _0802E318 @ =gActiveBank
+ ldrb r0, [r5]
+ lsls r1, r0, 9
+ adds r0, r4, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0802E328
+ ldr r4, _0802E31C @ =gUnknown_03004210
+ ldr r1, _0802E320 @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x37
+ bl FillWindowRect
+ ldr r1, _0802E324 @ =gUnknown_08400D52
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x13
+ bl InitWindow
+ b _0802E388
+ .align 2, 0
+_0802E314: .4byte gBattleBufferA
+_0802E318: .4byte gActiveBank
+_0802E31C: .4byte gUnknown_03004210
+_0802E320: .4byte 0x00001016
+_0802E324: .4byte gUnknown_08400D52
+_0802E328:
+ adds r4, 0x4
+ adds r4, r1, r4
+ ldr r3, _0802E398 @ =gDisplayedStringBattle
+ ldr r1, _0802E39C @ =gUnknown_08400D49
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+ ldr r2, _0802E3A0 @ =gBattleMoves
+ ldr r1, _0802E3A4 @ =gMoveSelectionCursor
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r0
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ lsls r1, r0, 3
+ subs r1, r0
+ ldr r0, _0802E3A8 @ =gTypeNames
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ ldr r4, _0802E3AC @ =gUnknown_03004210
+ ldr r1, _0802E3B0 @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x39
+ bl FillWindowRect
+ ldr r1, _0802E398 @ =gDisplayedStringBattle
+ movs r2, 0xB0
+ lsls r2, 2
+ movs r0, 0x39
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+_0802E388:
+ ldr r0, _0802E3AC @ =gUnknown_03004210
+ bl sub_8002F44
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E398: .4byte gDisplayedStringBattle
+_0802E39C: .4byte gUnknown_08400D49
+_0802E3A0: .4byte gBattleMoves
+_0802E3A4: .4byte gMoveSelectionCursor
+_0802E3A8: .4byte gTypeNames
+_0802E3AC: .4byte gUnknown_03004210
+_0802E3B0: .4byte 0x00001016
+ thumb_func_end sub_802E2D4
+
+ thumb_func_start sub_802E3B4
+sub_802E3B4: @ 802E3B4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x48
+ bl sub_814A958
+ ldr r1, _0802E3DC @ =gUnknown_081FAE89
+ lsls r4, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ adds r1, 0x1
+ adds r4, r1
+ ldrb r1, [r4]
+ bl sub_814A880
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E3DC: .4byte gUnknown_081FAE89
+ thumb_func_end sub_802E3B4
+
+ thumb_func_start nullsub_7
+nullsub_7: @ 802E3E0
+ bx lr
+ thumb_func_end nullsub_7
+
+ thumb_func_start sub_802E3E4
+sub_802E3E4: @ 802E3E4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2A
+ bl sub_814A958
+ ldr r1, _0802E40C @ =gUnknown_081FAE91
+ lsls r4, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ adds r1, 0x1
+ adds r4, r1
+ ldrb r1, [r4]
+ bl sub_814A880
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E40C: .4byte gUnknown_081FAE91
+ thumb_func_end sub_802E3E4
+
+ thumb_func_start nullsub_8
+nullsub_8: @ 802E410
+ bx lr
+ thumb_func_end nullsub_8
+
+ thumb_func_start sub_802E414
+sub_802E414: @ 802E414
+ push {lr}
+ ldr r0, _0802E420 @ =ReshowBattleScreenAfterMenu
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E420: .4byte ReshowBattleScreenAfterMenu
+ thumb_func_end sub_802E414
+
+ thumb_func_start sub_802E424
+sub_802E424: @ 802E424
+ push {lr}
+ ldr r0, _0802E430 @ =ReshowBattleScreenAfterMenu
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E430: .4byte ReshowBattleScreenAfterMenu
+ thumb_func_end sub_802E424
+
+ thumb_func_start sub_802E434
+sub_802E434: @ 802E434
+ push {lr}
+ ldr r0, _0802E458 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802E45C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E452
+ bl PlayerBufferExecCompleted
+_0802E452:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E458: .4byte gActiveBank
+_0802E45C: .4byte 0x02017810
+ thumb_func_end sub_802E434
+
+ thumb_func_start sub_802E460
+sub_802E460: @ 802E460
+ push {lr}
+ ldr r0, _0802E484 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802E488 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E47E
+ bl PlayerBufferExecCompleted
+_0802E47E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E484: .4byte gActiveBank
+_0802E488: .4byte 0x02017810
+ thumb_func_end sub_802E460
+
+ thumb_func_start b_link_standby_message
+b_link_standby_message: @ 802E48C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _0802E4BC @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802E4B6
+ ldr r0, _0802E4C0 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0802E4C4 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r0, _0802E4C8 @ =gUnknown_03004210
+ ldr r1, _0802E4CC @ =gUnknown_08400CE0
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+_0802E4B6:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E4BC: .4byte gBattleTypeFlags
+_0802E4C0: .4byte gUnknown_030042A4
+_0802E4C4: .4byte gUnknown_030042A0
+_0802E4C8: .4byte gUnknown_03004210
+_0802E4CC: .4byte gUnknown_08400CE0
+ thumb_func_end b_link_standby_message
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_8.s b/asm/battle_8.s
new file mode 100644
index 000000000..366c503f2
--- /dev/null
+++ b/asm/battle_8.s
@@ -0,0 +1,5222 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start OpponentHandleGetAttributes
+OpponentHandleGetAttributes: @ 8033524
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _08033550 @ =gBattleBufferA
+ ldr r0, _08033554 @ =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0803355C
+ ldr r0, _08033558 @ =gBattlePartyID
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl sub_8033598
+ adds r6, r0, 0
+ b _0803357E
+ .align 2, 0
+_08033550: .4byte gBattleBufferA
+_08033554: .4byte gActiveBank
+_08033558: .4byte gBattlePartyID
+_0803355C:
+ ldrb r4, [r1]
+ movs r5, 0
+_08033560:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _08033576
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl sub_8033598
+ adds r6, r0
+_08033576:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08033560
+_0803357E:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl OpponentBufferExecCompleted
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleGetAttributes
+
+ thumb_func_start sub_8033598
+sub_8033598: @ 8033598
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x90
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r2, _080335CC @ =gBattleBufferA
+ ldr r3, _080335D0 @ =gActiveBank
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _080335C2
+ bl _08033D2E
+_080335C2:
+ lsls r0, 2
+ ldr r1, _080335D4 @ =_080335D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080335CC: .4byte gBattleBufferA
+_080335D0: .4byte gActiveBank
+_080335D4: .4byte _080335D8
+ .align 2, 0
+_080335D8:
+ .4byte _080336C8
+ .4byte _080338EC
+ .4byte _080338FC
+ .4byte _0803390C
+ .4byte _08033974
+ .4byte _08033974
+ .4byte _08033974
+ .4byte _08033974
+ .4byte _08033990
+ .4byte _080339CC
+ .4byte _080339CC
+ .4byte _080339CC
+ .4byte _080339CC
+ .4byte _08033D2E
+ .4byte _08033D2E
+ .4byte _08033D2E
+ .4byte _08033D2E
+ .4byte _080339E8
+ .4byte _080339F8
+ .4byte _08033A28
+ .4byte _08033A38
+ .4byte _08033A48
+ .4byte _08033A58
+ .4byte _08033A68
+ .4byte _08033A78
+ .4byte _08033A88
+ .4byte _08033A98
+ .4byte _08033AA8
+ .4byte _08033AB8
+ .4byte _08033AC8
+ .4byte _08033AD8
+ .4byte _08033AE8
+ .4byte _08033B38
+ .4byte _08033B48
+ .4byte _08033B58
+ .4byte _08033B68
+ .4byte _08033B78
+ .4byte _08033B88
+ .4byte _08033B98
+ .4byte _08033BA8
+ .4byte _08033BB8
+ .4byte _08033BEC
+ .4byte _08033BFC
+ .4byte _08033C0C
+ .4byte _08033C1C
+ .4byte _08033C2C
+ .4byte _08033C3C
+ .4byte _08033C4C
+ .4byte _08033C5C
+ .4byte _08033C7C
+ .4byte _08033C8C
+ .4byte _08033C9C
+ .4byte _08033CAC
+ .4byte _08033CBC
+ .4byte _08033CCC
+ .4byte _08033CDC
+ .4byte _08033CEC
+ .4byte _08033CFC
+ .4byte _08033D0C
+ .4byte _08033D1C
+_080336C8:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _080338DC @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2E]
+ movs r6, 0
+ add r0, sp, 0x24
+ mov r9, r0
+ movs r1, 0x3B
+ add r1, sp
+ mov r10, r1
+ mov r2, sp
+ adds r2, 0x2B
+ str r2, [sp, 0x80]
+ mov r0, sp
+ adds r0, 0x2A
+ str r0, [sp, 0x7C]
+ mov r1, sp
+ adds r1, 0x68
+ str r1, [sp, 0x8C]
+ adds r2, 0x5
+ str r2, [sp, 0x84]
+ adds r0, 0x12
+ str r0, [sp, 0x88]
+ mov r8, r4
+ add r4, sp, 0xC
+_08033714:
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r0, r8
+ bl GetMonData
+ strh r0, [r4]
+ adds r1, r6, 0
+ adds r1, 0x11
+ mov r0, r8
+ bl GetMonData
+ mov r2, r9
+ adds r1, r2, r6
+ strb r0, [r1]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08033714
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _080338DC @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r10
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ ldr r2, [sp, 0x80]
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl GetMonData
+ str r0, [sp, 0x44]
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl GetMonData
+ mov r3, sp
+ movs r5, 0x1F
+ ands r0, r5
+ ldrb r2, [r3, 0x14]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl GetMonData
+ mov r3, sp
+ movs r6, 0x1F
+ ands r0, r6
+ lsls r0, 5
+ ldrh r2, [r3, 0x14]
+ ldr r1, _080338E0 @ =0xfffffc1f
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ mov r3, sp
+ ands r0, r5
+ lsls r0, 2
+ ldrb r2, [r3, 0x15]
+ movs r1, 0x7D
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x15]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r1, 15
+ ldr r0, [sp, 0x14]
+ ldr r2, _080338E4 @ =0xfff07fff
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ mov r3, sp
+ ands r0, r6
+ lsls r0, 4
+ ldrh r2, [r3, 0x16]
+ ldr r1, _080338E8 @ =0xfffffe0f
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x16]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ mov r3, sp
+ ands r0, r5
+ lsls r0, 1
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x48]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ str r0, [sp, 0x4C]
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r1, [sp, 0x7C]
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x28]
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2C]
+ adds r0, r4, 0
+ movs r1, 0x3B
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x3F
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0xA]
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ mov r3, sp
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 6
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ mov r3, sp
+ lsls r0, 7
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x7F
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [sp, 0x54]
+ adds r0, r4, 0
+ movs r1, 0x2
+ ldr r2, [sp, 0x8C]
+ bl GetMonData
+ ldr r0, [sp, 0x84]
+ ldr r1, [sp, 0x8C]
+ bl StringCopy10
+ adds r0, r4, 0
+ movs r1, 0x7
+ ldr r2, [sp, 0x88]
+ bl GetMonData
+ mov r2, sp
+ movs r6, 0
+_080338CC:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _080338CC
+ b _08033D2E
+ .align 2, 0
+_080338DC: .4byte gEnemyParty
+_080338E0: .4byte 0xfffffc1f
+_080338E4: .4byte 0xfff07fff
+_080338E8: .4byte 0xfffffe0f
+_080338EC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080338F8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ b _08033C66
+ .align 2, 0
+_080338F8: .4byte gEnemyParty
+_080338FC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033908 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ b _08033C66
+ .align 2, 0
+_08033908: .4byte gEnemyParty
+_0803390C:
+ movs r6, 0
+ add r2, sp, 0x58
+ mov r9, r2
+ add r0, sp, 0x60
+ mov r10, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08033970 @ =gEnemyParty
+ adds r4, r1, r0
+ mov r8, r9
+_08033922:
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ mov r1, r8
+ strh r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ bl GetMonData
+ mov r2, r10
+ adds r1, r2, r6
+ strb r0, [r1]
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08033922
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033970 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_08033960:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _08033960
+ b _08033D2E
+ .align 2, 0
+_08033970: .4byte gEnemyParty
+_08033974:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803398C @ =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _08033C66
+ .align 2, 0
+_0803398C: .4byte gEnemyParty
+_08033990:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, _080339C8 @ =gEnemyParty
+ mov r8, r2
+_0803399C:
+ adds r1, r6, 0
+ adds r1, 0x11
+ mov r2, r8
+ adds r0, r4, r2
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0803399C
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080339C8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _08033D2E
+ .align 2, 0
+_080339C8: .4byte gEnemyParty
+_080339CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080339E4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _08033D26
+ .align 2, 0
+_080339E4: .4byte gEnemyParty
+_080339E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080339F4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1
+ b _08033A02
+ .align 2, 0
+_080339F4: .4byte gEnemyParty
+_080339F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A24 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x19
+_08033A02:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ movs r6, 0x3
+ b _08033D2E
+ .align 2, 0
+_08033A24: .4byte gEnemyParty
+_08033A28:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A34 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1A
+ b _08033D26
+ .align 2, 0
+_08033A34: .4byte gEnemyParty
+_08033A38:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A44 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1B
+ b _08033D26
+ .align 2, 0
+_08033A44: .4byte gEnemyParty
+_08033A48:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A54 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1C
+ b _08033D26
+ .align 2, 0
+_08033A54: .4byte gEnemyParty
+_08033A58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A64 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1D
+ b _08033D26
+ .align 2, 0
+_08033A64: .4byte gEnemyParty
+_08033A68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A74 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1E
+ b _08033D26
+ .align 2, 0
+_08033A74: .4byte gEnemyParty
+_08033A78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A84 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1F
+ b _08033D26
+ .align 2, 0
+_08033A84: .4byte gEnemyParty
+_08033A88:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A94 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x20
+ b _08033D26
+ .align 2, 0
+_08033A94: .4byte gEnemyParty
+_08033A98:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AA4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x22
+ b _08033D26
+ .align 2, 0
+_08033AA4: .4byte gEnemyParty
+_08033AA8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AB4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x23
+ b _08033D26
+ .align 2, 0
+_08033AB4: .4byte gEnemyParty
+_08033AB8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AC4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x24
+ b _08033D26
+ .align 2, 0
+_08033AC4: .4byte gEnemyParty
+_08033AC8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AD4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x25
+ b _08033D26
+ .align 2, 0
+_08033AD4: .4byte gEnemyParty
+_08033AD8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AE4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x26
+ b _08033D26
+ .align 2, 0
+_08033AE4: .4byte gEnemyParty
+_08033AE8:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08033B34 @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl GetMonData
+ strb r0, [r7]
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl GetMonData
+ strb r0, [r7, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ strb r0, [r7, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ strb r0, [r7, 0x3]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ strb r0, [r7, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ strb r0, [r7, 0x5]
+ movs r6, 0x6
+ b _08033D2E
+ .align 2, 0
+_08033B34: .4byte gEnemyParty
+_08033B38:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B44 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x27
+ b _08033D26
+ .align 2, 0
+_08033B44: .4byte gEnemyParty
+_08033B48:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B54 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x28
+ b _08033D26
+ .align 2, 0
+_08033B54: .4byte gEnemyParty
+_08033B58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B64 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x29
+ b _08033D26
+ .align 2, 0
+_08033B64: .4byte gEnemyParty
+_08033B68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B74 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2A
+ b _08033D26
+ .align 2, 0
+_08033B74: .4byte gEnemyParty
+_08033B78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B84 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2B
+ b _08033D26
+ .align 2, 0
+_08033B84: .4byte gEnemyParty
+_08033B88:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B94 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ b _08033D26
+ .align 2, 0
+_08033B94: .4byte gEnemyParty
+_08033B98:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033BA4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0
+ b _08033BC2
+ .align 2, 0
+_08033BA4: .4byte gEnemyParty
+_08033BA8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033BB4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x9
+ b _08033C66
+ .align 2, 0
+_08033BB4: .4byte gEnemyParty
+_08033BB8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033BE8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x37
+_08033BC2:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ lsrs r0, r1, 24
+ strb r0, [r7, 0x3]
+ movs r6, 0x4
+ b _08033D2E
+ .align 2, 0
+_08033BE8: .4byte gEnemyParty
+_08033BEC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033BF8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x38
+ b _08033D26
+ .align 2, 0
+_08033BF8: .4byte gEnemyParty
+_08033BFC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C08 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ b _08033C66
+ .align 2, 0
+_08033C08: .4byte gEnemyParty
+_08033C0C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C18 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ b _08033C66
+ .align 2, 0
+_08033C18: .4byte gEnemyParty
+_08033C1C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C28 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3B
+ b _08033C66
+ .align 2, 0
+_08033C28: .4byte gEnemyParty
+_08033C2C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C38 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3C
+ b _08033C66
+ .align 2, 0
+_08033C38: .4byte gEnemyParty
+_08033C3C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C48 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3D
+ b _08033C66
+ .align 2, 0
+_08033C48: .4byte gEnemyParty
+_08033C4C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C58 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3E
+ b _08033C66
+ .align 2, 0
+_08033C58: .4byte gEnemyParty
+_08033C5C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C78 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3F
+_08033C66:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _08033D2E
+ .align 2, 0
+_08033C78: .4byte gEnemyParty
+_08033C7C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C88 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x16
+ b _08033D26
+ .align 2, 0
+_08033C88: .4byte gEnemyParty
+_08033C8C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C98 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x17
+ b _08033D26
+ .align 2, 0
+_08033C98: .4byte gEnemyParty
+_08033C9C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CA8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x18
+ b _08033D26
+ .align 2, 0
+_08033CA8: .4byte gEnemyParty
+_08033CAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CB8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x21
+ b _08033D26
+ .align 2, 0
+_08033CB8: .4byte gEnemyParty
+_08033CBC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CC8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2F
+ b _08033D26
+ .align 2, 0
+_08033CC8: .4byte gEnemyParty
+_08033CCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CD8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x30
+ b _08033D26
+ .align 2, 0
+_08033CD8: .4byte gEnemyParty
+_08033CDC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CE8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x32
+ b _08033D26
+ .align 2, 0
+_08033CE8: .4byte gEnemyParty
+_08033CEC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CF8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x33
+ b _08033D26
+ .align 2, 0
+_08033CF8: .4byte gEnemyParty
+_08033CFC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033D08 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x34
+ b _08033D26
+ .align 2, 0
+_08033D08: .4byte gEnemyParty
+_08033D0C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033D18 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x35
+ b _08033D26
+ .align 2, 0
+_08033D18: .4byte gEnemyParty
+_08033D1C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033D40 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x36
+_08033D26:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_08033D2E:
+ adds r0, r6, 0
+ add sp, 0x90
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08033D40: .4byte gEnemyParty
+ thumb_func_end sub_8033598
+
+ thumb_func_start dp01t_01_2_read_pokmon_data_slice
+dp01t_01_2_read_pokmon_data_slice: @ 8033D44
+ push {r4-r7,lr}
+ sub sp, 0x58
+ ldr r2, _08033DBC @ =gBattlePartyID
+ ldr r5, _08033DC0 @ =gActiveBank
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ adds r4, r2, 0
+ muls r4, r0
+ ldr r3, _08033DC4 @ =gBattleBufferA
+ lsls r1, 9
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ ldr r0, _08033DC8 @ =gEnemyParty
+ adds r0, r2, r0
+ adds r6, r4, r0
+ mov r0, sp
+ adds r4, r0, r2
+ movs r2, 0
+ adds r0, r3, 0x2
+ adds r1, r0
+ adds r7, r5, 0
+ mov r12, r3
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcs _08033D9A
+ adds r3, r0, 0
+_08033D80:
+ adds r1, r4, r2
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _08033D80
+_08033D9A:
+ ldrb r0, [r7]
+ lsls r0, 9
+ mov r1, r12
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ adds r2, r4, 0
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl OpponentBufferExecCompleted
+ add sp, 0x58
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08033DBC: .4byte gBattlePartyID
+_08033DC0: .4byte gActiveBank
+_08033DC4: .4byte gBattleBufferA
+_08033DC8: .4byte gEnemyParty
+ thumb_func_end dp01t_01_2_read_pokmon_data_slice
+
+ thumb_func_start OpponentHandleSetAttributes
+OpponentHandleSetAttributes: @ 8033DCC
+ push {r4,r5,lr}
+ ldr r1, _08033DF0 @ =gBattleBufferA
+ ldr r0, _08033DF4 @ =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08033DFC
+ ldr r0, _08033DF8 @ =gBattlePartyID
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8033E24
+ b _08033E1A
+ .align 2, 0
+_08033DF0: .4byte gBattleBufferA
+_08033DF4: .4byte gActiveBank
+_08033DF8: .4byte gBattlePartyID
+_08033DFC:
+ ldrb r4, [r1]
+ movs r5, 0
+_08033E00:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _08033E0E
+ adds r0, r5, 0
+ bl sub_8033E24
+_08033E0E:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08033E00
+_08033E1A:
+ bl OpponentBufferExecCompleted
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleSetAttributes
+
+ thumb_func_start sub_8033E24
+sub_8033E24: @ 8033E24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r3, _08033E5C @ =gActiveBank
+ ldrb r0, [r3]
+ lsls r0, 9
+ ldr r2, _08033E60 @ =gUnknown_02023A63
+ adds r4, r0, r2
+ adds r7, r4, 0
+ subs r1, r2, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r6, r3, 0
+ adds r3, r2, 0
+ cmp r0, 0x3B
+ bls _08033E52
+ bl _08034730
+_08033E52:
+ lsls r0, 2
+ ldr r1, _08033E64 @ =_08033E68
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08033E5C: .4byte gActiveBank
+_08033E60: .4byte gUnknown_02023A63
+_08033E64: .4byte _08033E68
+ .align 2, 0
+_08033E68:
+ .4byte _08033F58
+ .4byte _080340F0
+ .4byte _0803410C
+ .4byte _08034128
+ .4byte _0803417C
+ .4byte _0803417C
+ .4byte _0803417C
+ .4byte _0803417C
+ .4byte _0803419C
+ .4byte _08034204
+ .4byte _08034204
+ .4byte _08034204
+ .4byte _08034204
+ .4byte _08034730
+ .4byte _08034730
+ .4byte _08034730
+ .4byte _08034730
+ .4byte _0803422C
+ .4byte _08034248
+ .4byte _08034264
+ .4byte _08034280
+ .4byte _0803429C
+ .4byte _080342B8
+ .4byte _080342D4
+ .4byte _080342F0
+ .4byte _0803430C
+ .4byte _08034328
+ .4byte _08034344
+ .4byte _08034360
+ .4byte _0803437C
+ .4byte _08034398
+ .4byte _080343B4
+ .4byte _08034428
+ .4byte _08034444
+ .4byte _08034460
+ .4byte _0803447C
+ .4byte _08034498
+ .4byte _080344B4
+ .4byte _080344D0
+ .4byte _080344EC
+ .4byte _08034508
+ .4byte _08034524
+ .4byte _08034540
+ .4byte _0803455C
+ .4byte _08034578
+ .4byte _08034594
+ .4byte _080345B0
+ .4byte _080345CC
+ .4byte _080345E8
+ .4byte _08034604
+ .4byte _08034620
+ .4byte _0803463C
+ .4byte _08034658
+ .4byte _08034674
+ .4byte _08034690
+ .4byte _080346AC
+ .4byte _080346C8
+ .4byte _080346E4
+ .4byte _08034700
+ .4byte _0803471C
+_08033F58:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _080340EC @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ adds r2, r7, 0
+ bl SetMonData
+ adds r2, r7, 0
+ adds r2, 0x2E
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0x3B
+ adds r0, r7
+ mov r10, r0
+ adds r0, r7, 0
+ adds r0, 0x2B
+ str r0, [sp, 0x20]
+ adds r0, 0x19
+ str r0, [sp, 0x28]
+ adds r0, 0x4
+ str r0, [sp, 0x2C]
+ adds r0, 0x4
+ str r0, [sp, 0x30]
+ subs r0, 0x22
+ str r0, [sp, 0x1C]
+ subs r0, 0x2
+ str r0, [sp, 0x18]
+ adds r0, 0x4
+ str r0, [sp, 0x24]
+ adds r0, r7, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r7, 0x4
+ str r0, [sp, 0x8]
+ adds r0, r7, 0x6
+ str r0, [sp, 0xC]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x14]
+ mov r9, r4
+ adds r6, r7, 0
+ adds r6, 0x24
+ adds r4, r7, 0
+ adds r4, 0xC
+_08033FBE:
+ mov r1, r8
+ adds r1, 0xD
+ mov r0, r9
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ mov r0, r9
+ adds r2, r6, 0
+ bl SetMonData
+ adds r6, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _08033FBE
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _080340EC @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ mov r2, r10
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x20
+ ldr r2, [sp, 0x20]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x19
+ ldr r2, [sp, 0x28]
+ bl SetMonData
+ ldrb r0, [r7, 0x14]
+ lsls r0, 27
+ lsrs r0, 27
+ mov r1, sp
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x27
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r7, 0x14]
+ lsls r0, 22
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x28
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r7, 0x15]
+ lsls r0, 25
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldr r0, [r7, 0x14]
+ lsls r0, 12
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r7, 0x16]
+ lsls r0, 23
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r7, 0x17]
+ lsls r0, 26
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0
+ ldr r2, [sp, 0x2C]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x37
+ ldr r2, [sp, 0x30]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x38
+ ldr r2, [sp, 0x1C]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x39
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3A
+ ldr r2, [sp, 0x24]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3B
+ ldr r2, [sp, 0x4]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3C
+ ldr r2, [sp, 0x8]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3D
+ ldr r2, [sp, 0xC]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3E
+ ldr r2, [sp, 0x10]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3F
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080340EC: .4byte gEnemyParty
+_080340F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034108 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xB
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034108: .4byte gEnemyParty
+_0803410C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034124 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xC
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034124: .4byte gEnemyParty
+_08034128:
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xC
+ adds r0, r4
+ mov r9, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08034178 @ =gEnemyParty
+ adds r7, r1, r0
+ adds r6, r4, 0
+ adds r6, 0x8
+_08034140:
+ mov r1, r8
+ adds r1, 0xD
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ adds r0, r7, 0
+ adds r2, r6, 0
+ bl SetMonData
+ adds r6, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _08034140
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034178 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034178: .4byte gEnemyParty
+_0803417C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034194 @ =gEnemyParty
+ adds r0, r1
+ ldr r3, _08034198 @ =gBattleBufferA
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0803421A
+ .align 2, 0
+_08034194: .4byte gEnemyParty
+_08034198: .4byte gBattleBufferA
+_0803419C:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08034200 @ =gEnemyParty
+ adds r4, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ adds r0, r4, 0
+ movs r1, 0x11
+ str r3, [sp, 0x34]
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034200: .4byte gEnemyParty
+_08034204:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034224 @ =gEnemyParty
+ adds r0, r1
+ ldr r3, _08034228 @ =gBattleBufferA
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_0803421A:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034224: .4byte gEnemyParty
+_08034228: .4byte gBattleBufferA
+_0803422C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034244 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034244: .4byte gEnemyParty
+_08034248:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034260 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x19
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034260: .4byte gEnemyParty
+_08034264:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803427C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1A
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803427C: .4byte gEnemyParty
+_08034280:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034298 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1B
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034298: .4byte gEnemyParty
+_0803429C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080342B4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1C
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080342B4: .4byte gEnemyParty
+_080342B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080342D0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1D
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080342D0: .4byte gEnemyParty
+_080342D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080342EC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1E
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080342EC: .4byte gEnemyParty
+_080342F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034308 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1F
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034308: .4byte gEnemyParty
+_0803430C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034324 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x20
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034324: .4byte gEnemyParty
+_08034328:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034340 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x22
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034340: .4byte gEnemyParty
+_08034344:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803435C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x23
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803435C: .4byte gEnemyParty
+_08034360:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034378 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x24
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034378: .4byte gEnemyParty
+_0803437C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034394 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x25
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034394: .4byte gEnemyParty
+_08034398:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080343B0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x26
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080343B0: .4byte gEnemyParty
+_080343B4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08034424 @ =gEnemyParty
+ adds r4, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ adds r0, r4, 0
+ movs r1, 0x27
+ str r3, [sp, 0x34]
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x5
+ adds r2, r0
+ adds r0, r4, 0
+ b _080344C2
+ .align 2, 0
+_08034424: .4byte gEnemyParty
+_08034428:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034440 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x27
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034440: .4byte gEnemyParty
+_08034444:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803445C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x28
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803445C: .4byte gEnemyParty
+_08034460:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034478 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x29
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034478: .4byte gEnemyParty
+_0803447C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034494 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2A
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034494: .4byte gEnemyParty
+_08034498:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080344B0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2B
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080344B0: .4byte gEnemyParty
+_080344B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080344CC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+_080344C2:
+ movs r1, 0x2C
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080344CC: .4byte gEnemyParty
+_080344D0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080344E8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080344E8: .4byte gEnemyParty
+_080344EC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034504 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x9
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034504: .4byte gEnemyParty
+_08034508:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034520 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x37
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034520: .4byte gEnemyParty
+_08034524:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803453C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x38
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803453C: .4byte gEnemyParty
+_08034540:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034558 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x39
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034558: .4byte gEnemyParty
+_0803455C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034574 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3A
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034574: .4byte gEnemyParty
+_08034578:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034590 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3B
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034590: .4byte gEnemyParty
+_08034594:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080345AC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3C
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080345AC: .4byte gEnemyParty
+_080345B0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080345C8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3D
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080345C8: .4byte gEnemyParty
+_080345CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080345E4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3E
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080345E4: .4byte gEnemyParty
+_080345E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034600 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3F
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034600: .4byte gEnemyParty
+_08034604:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803461C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x16
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803461C: .4byte gEnemyParty
+_08034620:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034638 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x17
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034638: .4byte gEnemyParty
+_0803463C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034654 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x18
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034654: .4byte gEnemyParty
+_08034658:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034670 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x21
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034670: .4byte gEnemyParty
+_08034674:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803468C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2F
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803468C: .4byte gEnemyParty
+_08034690:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080346A8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x30
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080346A8: .4byte gEnemyParty
+_080346AC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080346C4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x32
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080346C4: .4byte gEnemyParty
+_080346C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080346E0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x33
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080346E0: .4byte gEnemyParty
+_080346E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080346FC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x34
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080346FC: .4byte gEnemyParty
+_08034700:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034718 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x35
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034718: .4byte gEnemyParty
+_0803471C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034740 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x36
+ bl SetMonData
+_08034730:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034740: .4byte gEnemyParty
+ thumb_func_end sub_8033E24
+
+ thumb_func_start sub_8034744
+sub_8034744: @ 8034744
+ push {r4-r7,lr}
+ ldr r1, _080347A8 @ =gBattlePartyID
+ ldr r7, _080347AC @ =gActiveBank
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r3, r1, 0
+ muls r3, r0
+ ldr r4, _080347B0 @ =gBattleBufferA
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, _080347B4 @ =gEnemyParty
+ adds r0, r1
+ adds r5, r3, r0
+ movs r3, 0
+ adds r0, r4, 0x2
+ adds r2, r0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _0803479C
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_0803477A:
+ adds r1, r5, r3
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, 0x3
+ adds r0, r3, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _0803477A
+_0803479C:
+ bl OpponentBufferExecCompleted
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080347A8: .4byte gBattlePartyID
+_080347AC: .4byte gActiveBank
+_080347B0: .4byte gBattleBufferA
+_080347B4: .4byte gEnemyParty
+ thumb_func_end sub_8034744
+
+ thumb_func_start OpponentHandleLoadPokeSprite
+OpponentHandleLoadPokeSprite: @ 80347B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r6, _080348E8 @ =gActiveBank
+ ldrb r0, [r6]
+ lsls r0, 1
+ ldr r1, _080348EC @ =gBattlePartyID
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r7, 0x64
+ muls r0, r7
+ ldr r2, _080348F0 @ =gEnemyParty
+ mov r10, r2
+ add r0, r10
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ ldr r2, _080348EC @ =gBattlePartyID
+ adds r0, r2
+ ldrh r0, [r0]
+ muls r0, r7
+ add r0, r10
+ bl sub_8031794
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080348F4 @ =gUnknown_02024E8C
+ mov r9, r0
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r6]
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r9
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _080348F8 @ =gObjectBankIDs
+ ldrb r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r5, _080348FC @ =gSprites
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08034900 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r2, [r6]
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ ldrb r3, [r6]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r2, [r6]
+ adds r4, r2, r4
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08034904 @ =gBattleMonForms
+ adds r2, r1
+ ldrb r1, [r2]
+ bl StartSpriteAnim
+ ldrb r4, [r6]
+ lsls r0, r4, 1
+ ldr r2, _080348EC @ =gBattlePartyID
+ adds r0, r2
+ ldrh r0, [r0]
+ muls r0, r7
+ add r0, r10
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+ ldr r1, _08034908 @ =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803490C @ =sub_8033018
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080348E8: .4byte gActiveBank
+_080348EC: .4byte gBattlePartyID
+_080348F0: .4byte gEnemyParty
+_080348F4: .4byte gUnknown_02024E8C
+_080348F8: .4byte gObjectBankIDs
+_080348FC: .4byte gSprites
+_08034900: .4byte 0x0000ff10
+_08034904: .4byte gBattleMonForms
+_08034908: .4byte gBattleBankFunc
+_0803490C: .4byte sub_8033018
+ thumb_func_end OpponentHandleLoadPokeSprite
+
+ thumb_func_start OpponentHandleSendOutPoke
+OpponentHandleSendOutPoke: @ 8034910
+ push {r4,lr}
+ ldr r1, _08034948 @ =gBattlePartyID
+ ldr r4, _0803494C @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r1
+ ldr r3, _08034950 @ =gBattleBufferA
+ lsls r0, 9
+ adds r1, r3, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2]
+ ldrb r0, [r4]
+ lsls r1, r0, 9
+ adds r3, 0x2
+ adds r1, r3
+ ldrb r1, [r1]
+ bl sub_803495C
+ ldr r1, _08034954 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034958 @ =sub_80333D4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034948: .4byte gBattlePartyID
+_0803494C: .4byte gActiveBank
+_08034950: .4byte gBattleBufferA
+_08034954: .4byte gBattleBankFunc
+_08034958: .4byte sub_80333D4
+ thumb_func_end OpponentHandleSendOutPoke
+
+ thumb_func_start sub_803495C
+sub_803495C: @ 803495C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8032AA8
+ ldr r0, _08034AB8 @ =gBattlePartyID
+ lsls r4, r6, 1
+ adds r4, r0
+ ldr r0, _08034ABC @ =gBattleBufferA
+ lsls r1, r6, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0x64
+ mov r9, r1
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r5, _08034AC0 @ =gEnemyParty
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _08034AC4 @ =sub_80312F0
+ bl CreateInvisibleSpriteWithCallback
+ ldr r1, _08034AC8 @ =gUnknown_0300434C
+ mov r10, r1
+ add r10, r6
+ mov r1, r10
+ strb r0, [r1]
+ ldrh r0, [r4]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r5
+ adds r1, r6, 0
+ bl sub_8031794
+ adds r0, r6, 0
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08034ACC @ =gUnknown_02024E8C
+ mov r9, r0
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r9
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _08034AD0 @ =gObjectBankIDs
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, _08034AD4 @ =gSprites
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ mov r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x30]
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, r6, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08034AD8 @ =gBattleMonForms
+ adds r6, r1
+ ldrb r1, [r6]
+ bl StartSpriteAnim
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ 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 r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08034ADC @ =SpriteCallbackDummy
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFE
+ bl sub_8046400
+ mov r1, r10
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x2E]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034AB8: .4byte gBattlePartyID
+_08034ABC: .4byte gBattleBufferA
+_08034AC0: .4byte gEnemyParty
+_08034AC4: .4byte sub_80312F0
+_08034AC8: .4byte gUnknown_0300434C
+_08034ACC: .4byte gUnknown_02024E8C
+_08034AD0: .4byte gObjectBankIDs
+_08034AD4: .4byte gSprites
+_08034AD8: .4byte gBattleMonForms
+_08034ADC: .4byte SpriteCallbackDummy
+ thumb_func_end sub_803495C
+
+ thumb_func_start OpponentHandleReturnPokeToBall
+OpponentHandleReturnPokeToBall: @ 8034AE0
+ push {r4-r6,lr}
+ ldr r1, _08034B10 @ =gBattleBufferA
+ ldr r6, _08034B14 @ =gActiveBank
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _08034B24
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _08034B18 @ =0x02017810
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, _08034B1C @ =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034B20 @ =sub_8034B74
+ str r1, [r0]
+ b _08034B60
+ .align 2, 0
+_08034B10: .4byte gBattleBufferA
+_08034B14: .4byte gActiveBank
+_08034B18: .4byte 0x02017810
+_08034B1C: .4byte gBattleBankFunc
+_08034B20: .4byte sub_8034B74
+_08034B24:
+ ldr r5, _08034B68 @ =gObjectBankIDs
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08034B6C @ =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldrb r0, [r6]
+ bl sub_8032A08
+ ldr r1, _08034B70 @ =gHealthboxIDs
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl OpponentBufferExecCompleted
+_08034B60:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034B68: .4byte gObjectBankIDs
+_08034B6C: .4byte gSprites
+_08034B70: .4byte gHealthboxIDs
+ thumb_func_end OpponentHandleReturnPokeToBall
+
+ thumb_func_start sub_8034B74
+sub_8034B74: @ 8034B74
+ push {r4,r5,lr}
+ ldr r5, _08034B90 @ =gActiveBank
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _08034B94 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _08034B98
+ cmp r0, 0x1
+ beq _08034BC4
+ b _08034BEC
+ .align 2, 0
+_08034B90: .4byte gActiveBank
+_08034B94: .4byte 0x02017810
+_08034B98:
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08034BB4
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08034BB4:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08034BEC
+_08034BC4:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08034BEC
+ strb r0, [r3, 0x4]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x2
+ bl move_anim_start_t4
+ ldr r1, _08034BF4 @ =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034BF8 @ =sub_8033160
+ str r1, [r0]
+_08034BEC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034BF4: .4byte gBattleBankFunc
+_08034BF8: .4byte sub_8033160
+ thumb_func_end sub_8034B74
+
+ thumb_func_start OpponentHandleTrainerThrow
+OpponentHandleTrainerThrow: @ 8034BFC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r3, _08034C18 @ =gTrainerBattleOpponent
+ ldrh r1, [r3]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _08034C1C
+ bl GetSecretBaseTrainerPicIndex
+ b _08034C42
+ .align 2, 0
+_08034C18: .4byte gTrainerBattleOpponent
+_08034C1C:
+ ldr r0, _08034C30 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08034C34
+ bl get_trainer_class_pic_index
+ b _08034C42
+ .align 2, 0
+_08034C30: .4byte gBattleTypeFlags
+_08034C34:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _08034C48
+ bl sub_8135FBC
+_08034C42:
+ lsls r0, 24
+ lsrs r0, 24
+ b _08034C56
+_08034C48:
+ ldr r2, _08034D88 @ =gTrainers
+ ldrh r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x3]
+_08034C56:
+ mov r9, r0
+ ldr r0, _08034D8C @ =gActiveBank
+ mov r8, r0
+ ldrb r1, [r0]
+ mov r0, r9
+ bl sub_8031A6C
+ mov r1, r8
+ ldrb r0, [r1]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r5, _08034D90 @ =gUnknown_02024E8C
+ ldr r1, _08034D94 @ =gTrainerFrontPicCoords
+ mov r2, r9
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0x8
+ subs r4, r0
+ lsls r4, 18
+ movs r0, 0xA0
+ lsls r0, 14
+ adds r4, r0
+ asrs r4, 16
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ movs r1, 0xB0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r5, _08034D98 @ =gObjectBankIDs
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _08034D9C @ =gSprites
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08034DA0 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldr r0, _08034DA4 @ =gTrainerFrontPicPaletteTable
+ mov r1, r9
+ lsls r6, r1, 3
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r4
+ lsls r0, 4
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1, 0x38]
+ ldr r0, _08034DA8 @ =gTrainerFrontPicTable
+ adds r6, r0
+ ldrh r0, [r6, 0x6]
+ bl GetSpriteTileStartByTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _08034DAC @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08034DB0 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r2, r9
+ strh r2, [r0, 0x6]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _08034DB4 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _08034DB8 @ =gBattleBankFunc
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034DBC @ =sub_8032B4C
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034D88: .4byte gTrainers
+_08034D8C: .4byte gActiveBank
+_08034D90: .4byte gUnknown_02024E8C
+_08034D94: .4byte gTrainerFrontPicCoords
+_08034D98: .4byte gObjectBankIDs
+_08034D9C: .4byte gSprites
+_08034DA0: .4byte 0x0000ff10
+_08034DA4: .4byte gTrainerFrontPicPaletteTable
+_08034DA8: .4byte gTrainerFrontPicTable
+_08034DAC: .4byte 0x000003ff
+_08034DB0: .4byte 0xfffffc00
+_08034DB4: .4byte sub_80313A0
+_08034DB8: .4byte gBattleBankFunc
+_08034DBC: .4byte sub_8032B4C
+ thumb_func_end OpponentHandleTrainerThrow
+
+ thumb_func_start OpponentHandleTrainerSlide
+OpponentHandleTrainerSlide: @ 8034DC0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r3, _08034DDC @ =gTrainerBattleOpponent
+ ldrh r1, [r3]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _08034DE0
+ bl GetSecretBaseTrainerPicIndex
+ b _08034E06
+ .align 2, 0
+_08034DDC: .4byte gTrainerBattleOpponent
+_08034DE0:
+ ldr r0, _08034DF4 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08034DF8
+ bl get_trainer_class_pic_index
+ b _08034E06
+ .align 2, 0
+_08034DF4: .4byte gBattleTypeFlags
+_08034DF8:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _08034E0C
+ bl sub_8135FBC
+_08034E06:
+ lsls r0, 24
+ lsrs r0, 24
+ b _08034E1A
+_08034E0C:
+ ldr r2, _08034F4C @ =gTrainers
+ ldrh r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x3]
+_08034E1A:
+ mov r9, r0
+ ldr r0, _08034F50 @ =gActiveBank
+ mov r8, r0
+ ldrb r1, [r0]
+ mov r0, r9
+ bl sub_8031A6C
+ mov r1, r8
+ ldrb r0, [r1]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _08034F54 @ =gUnknown_02024E8C
+ ldr r2, _08034F58 @ =gTrainerFrontPicCoords
+ mov r3, r9
+ lsls r1, r3, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 14
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0xB0
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r5, _08034F5C @ =gObjectBankIDs
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _08034F60 @ =gSprites
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x60
+ strh r1, [r0, 0x24]
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x20]
+ adds r1, 0x20
+ strh r1, [r0, 0x20]
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08034F64 @ =0x0000fffe
+ strh r1, [r0, 0x2E]
+ ldr r0, _08034F68 @ =gTrainerFrontPicPaletteTable
+ mov r3, r9
+ lsls r6, r3, 3
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r4
+ lsls r0, 4
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ mov r3, r8
+ ldrb r0, [r3]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1, 0x38]
+ ldr r0, _08034F6C @ =gTrainerFrontPicTable
+ adds r6, r0
+ ldrh r0, [r6, 0x6]
+ bl GetSpriteTileStartByTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _08034F70 @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08034F74 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ mov r3, r8
+ ldrb r0, [r3]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r1, r9
+ strh r1, [r0, 0x6]
+ ldrb r0, [r3]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _08034F78 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _08034F7C @ =gBattleBankFunc
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034F80 @ =sub_8032B84
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034F4C: .4byte gTrainers
+_08034F50: .4byte gActiveBank
+_08034F54: .4byte gUnknown_02024E8C
+_08034F58: .4byte gTrainerFrontPicCoords
+_08034F5C: .4byte gObjectBankIDs
+_08034F60: .4byte gSprites
+_08034F64: .4byte 0x0000fffe
+_08034F68: .4byte gTrainerFrontPicPaletteTable
+_08034F6C: .4byte gTrainerFrontPicTable
+_08034F70: .4byte 0x000003ff
+_08034F74: .4byte 0xfffffc00
+_08034F78: .4byte sub_80313A0
+_08034F7C: .4byte gBattleBankFunc
+_08034F80: .4byte sub_8032B84
+ thumb_func_end OpponentHandleTrainerSlide
+
+ thumb_func_start OpponentHandleTrainerSlideBack
+OpponentHandleTrainerSlideBack: @ 8034F84
+ push {r4-r6,lr}
+ ldr r6, _08035014 @ =gObjectBankIDs
+ ldr r4, _08035018 @ =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _0803501C @ =gSprites
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x8C
+ lsls r1, 1
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08035020 @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08035024 @ =SpriteCallbackDummy
+ bl oamt_set_x3A_32
+ ldr r1, _08035028 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803502C @ =sub_8032BBC
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035014: .4byte gObjectBankIDs
+_08035018: .4byte gActiveBank
+_0803501C: .4byte gSprites
+_08035020: .4byte sub_8078B34
+_08035024: .4byte SpriteCallbackDummy
+_08035028: .4byte gBattleBankFunc
+_0803502C: .4byte sub_8032BBC
+ thumb_func_end OpponentHandleTrainerSlideBack
+
+ thumb_func_start sub_8035030
+sub_8035030: @ 8035030
+ push {r4,r5,lr}
+ ldr r5, _08035074 @ =gActiveBank
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _08035078 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _0803507C
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08035062
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08035062:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _080350B8
+ .align 2, 0
+_08035074: .4byte gActiveBank
+_08035078: .4byte 0x02017810
+_0803507C:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080350B8
+ strb r0, [r3, 0x4]
+ movs r0, 0x10
+ movs r1, 0x3F
+ bl PlaySE12WithPanning
+ ldr r2, _080350C0 @ =gSprites
+ ldr r1, _080350C4 @ =gObjectBankIDs
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080350C8 @ =sub_8010384
+ str r1, [r0]
+ ldr r1, _080350CC @ =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080350D0 @ =sub_803311C
+ str r1, [r0]
+_080350B8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080350C0: .4byte gSprites
+_080350C4: .4byte gObjectBankIDs
+_080350C8: .4byte sub_8010384
+_080350CC: .4byte gBattleBankFunc
+_080350D0: .4byte sub_803311C
+ thumb_func_end sub_8035030
+
+ thumb_func_start sub_80350D4
+sub_80350D4: @ 80350D4
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80350D4
+
+ thumb_func_start sub_80350E0
+sub_80350E0: @ 80350E0
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80350E0
+
+ thumb_func_start OpponentHandleBallThrow
+OpponentHandleBallThrow: @ 80350EC
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleBallThrow
+
+ thumb_func_start OpponentHandlePause
+OpponentHandlePause: @ 80350F8
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandlePause
+
+ thumb_func_start OpponentHandleMoveAnimation
+OpponentHandleMoveAnimation: @ 8035104
+ push {r4-r6,lr}
+ ldr r6, _080351E8 @ =gActiveBank
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035116
+ b _08035226
+_08035116:
+ ldr r0, _080351EC @ =gBattleBufferA
+ mov r12, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r12
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r5, _080351F0 @ =gUnknown_0202F7C4
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _080351F4 @ =gMovePowerMoveAnim
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x4
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x5
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r4, _080351F8 @ =gMoveDmgMoveAnim
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x6
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x7
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x8
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 16
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x9
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 24
+ orrs r3, r1
+ str r3, [r4]
+ ldr r3, _080351FC @ =gHappinessMoveAnim
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _08035200 @ =gWeatherMoveAnim
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0xC
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0xD
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r3, _08035204 @ =gDisableStructMoveAnim
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _08035208 @ =gPID_perBank
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, [r2]
+ str r2, [r1]
+ ldrb r1, [r5]
+ bl sub_8031720
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0803520C
+ bl OpponentBufferExecCompleted
+ b _08035226
+ .align 2, 0
+_080351E8: .4byte gActiveBank
+_080351EC: .4byte gBattleBufferA
+_080351F0: .4byte gUnknown_0202F7C4
+_080351F4: .4byte gMovePowerMoveAnim
+_080351F8: .4byte gMoveDmgMoveAnim
+_080351FC: .4byte gHappinessMoveAnim
+_08035200: .4byte gWeatherMoveAnim
+_08035204: .4byte gDisableStructMoveAnim
+_08035208: .4byte gPID_perBank
+_0803520C:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0803522C @ =0x02017810
+ adds r0, r1
+ strb r2, [r0, 0x4]
+ ldr r1, _08035230 @ =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035234 @ =sub_8035238
+ str r1, [r0]
+_08035226:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803522C: .4byte 0x02017810
+_08035230: .4byte gBattleBankFunc
+_08035234: .4byte sub_8035238
+ thumb_func_end OpponentHandleMoveAnimation
+
+ thumb_func_start sub_8035238
+sub_8035238: @ 8035238
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _0803527C @ =gBattleBufferA
+ ldr r5, _08035280 @ =gActiveBank
+ ldrb r3, [r5]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r9, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r6, r2, 0x2
+ mov r8, r6
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r7, [r1]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r6, _08035284 @ =0x02017810
+ adds r0, r6
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _080352C6
+ cmp r2, 0x1
+ bgt _08035288
+ cmp r2, 0
+ beq _08035292
+ b _08035390
+ .align 2, 0
+_0803527C: .4byte gBattleBufferA
+_08035280: .4byte gActiveBank
+_08035284: .4byte 0x02017810
+_08035288:
+ cmp r2, 0x2
+ beq _080352EC
+ cmp r2, 0x3
+ beq _08035358
+ b _08035390
+_08035292:
+ lsls r1, r3, 2
+ adds r0, r6, 0
+ subs r0, 0x10
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _080352B6
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_080352B6:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08035390
+_080352C6:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08035390
+ movs r0, 0
+ bl sub_80326EC
+ adds r0, r4, 0
+ bl ExecuteMoveAnim
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08035390
+_080352EC:
+ ldr r0, _08035348 @ =gAnimScriptCallback
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _0803534C @ =gAnimScriptActive
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08035390
+ movs r0, 0x1
+ bl sub_80326EC
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r4, r6, 0
+ subs r4, 0x10
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08035334
+ cmp r7, 0x1
+ bhi _08035334
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r1, 0x9
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_08035334:
+ ldr r0, _08035350 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08035354 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _08035390
+ .align 2, 0
+_08035348: .4byte gAnimScriptCallback
+_0803534C: .4byte gAnimScriptActive
+_08035350: .4byte gActiveBank
+_08035354: .4byte 0x02017810
+_08035358:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08035390
+ bl sub_8031F24
+ ldrb r0, [r5]
+ lsls r2, r0, 9
+ mov r3, r9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r8
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_80324BC
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r4, [r0, 0x4]
+ bl OpponentBufferExecCompleted
+_08035390:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035238
+
+ thumb_func_start OpponentHandlePrintString
+OpponentHandlePrintString: @ 803539C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080353E0 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080353E4 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r4, _080353E8 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _080353EC @ =gUnknown_02023A62
+ adds r0, r1
+ ldrh r0, [r0]
+ bl BufferStringBattle
+ ldr r0, _080353F0 @ =gUnknown_03004210
+ ldr r1, _080353F4 @ =gDisplayedStringBattle
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _080353F8 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080353FC @ =sub_80331D0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080353E0: .4byte gUnknown_030042A4
+_080353E4: .4byte gUnknown_030042A0
+_080353E8: .4byte gActiveBank
+_080353EC: .4byte gUnknown_02023A62
+_080353F0: .4byte gUnknown_03004210
+_080353F4: .4byte gDisplayedStringBattle
+_080353F8: .4byte gBattleBankFunc
+_080353FC: .4byte sub_80331D0
+ thumb_func_end OpponentHandlePrintString
+
+ thumb_func_start OpponentHandlePrintStringPlayerOnly
+OpponentHandlePrintStringPlayerOnly: @ 8035400
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandlePrintStringPlayerOnly
+
+ thumb_func_start sub_803540C
+sub_803540C: @ 803540C
+ push {lr}
+ bl sub_8036B0C
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803540C
+
+ thumb_func_start sub_803541C
+sub_803541C: @ 803541C
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803541C
+
+ thumb_func_start sub_8035428
+sub_8035428: @ 8035428
+ push {r4-r6,lr}
+ ldr r6, _0803545C @ =gActiveBank
+ ldrb r0, [r6]
+ lsls r0, 9
+ ldr r1, _08035460 @ =gUnknown_02023A64
+ adds r5, r0, r1
+ ldr r0, _08035464 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x93
+ lsls r0, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _080354F8
+ bl BattleAI_SetupAIData
+ bl BattleAI_GetAIActionToUse
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ beq _08035468
+ cmp r4, 0x5
+ bne _08035474
+ movs r0, 0x1
+ movs r1, 0x4
+ b _0803546C
+ .align 2, 0
+_0803545C: .4byte gActiveBank
+_08035460: .4byte gUnknown_02023A64
+_08035464: .4byte gBattleTypeFlags
+_08035468:
+ movs r0, 0x1
+ movs r1, 0x3
+_0803546C:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _080354E0
+_08035474:
+ ldr r3, _080354E8 @ =gBattleMoves
+ lsls r0, r4, 1
+ adds r2, r5, r0
+ ldrh r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x12
+ ands r0, r1
+ cmp r0, 0
+ beq _08035494
+ ldr r1, _080354EC @ =gBankTarget
+ ldrb r0, [r6]
+ strb r0, [r1]
+_08035494:
+ ldrh r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080354CE
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r5, _080354EC @ =gBankTarget
+ strb r0, [r5]
+ ldr r0, _080354F0 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _080354F4 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080354CE
+ movs r0, 0x2
+ bl GetBankByPlayerAI
+ strb r0, [r5]
+_080354CE:
+ ldr r0, _080354EC @ =gBankTarget
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ movs r0, 0x1
+ movs r1, 0xA
+ adds r2, r4, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_080354E0:
+ bl OpponentBufferExecCompleted
+ b _0803558A
+ .align 2, 0
+_080354E8: .4byte gBattleMoves
+_080354EC: .4byte gBankTarget
+_080354F0: .4byte gAbsentBankFlags
+_080354F4: .4byte gBitTable
+_080354F8:
+ movs r6, 0x3
+_080354FA:
+ bl Random
+ adds r4, r0, 0
+ ands r4, r6
+ lsls r0, r4, 1
+ adds r0, r5, r0
+ ldrh r2, [r0]
+ cmp r2, 0
+ beq _080354FA
+ ldr r1, _08035534 @ =gBattleMoves
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x12
+ ands r0, r1
+ cmp r0, 0
+ beq _0803553C
+ ldr r0, _08035538 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ movs r0, 0x1
+ movs r1, 0xA
+ adds r2, r4, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _08035586
+ .align 2, 0
+_08035534: .4byte gBattleMoves
+_08035538: .4byte gActiveBank
+_0803553C:
+ ldr r0, _0803556C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08035570
+ bl Random
+ movs r1, 0x2
+ ands r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r1, 0
+ bl GetBankByPlayerAI
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 16
+ orrs r2, r4
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _08035586
+ .align 2, 0
+_0803556C: .4byte gBattleTypeFlags
+_08035570:
+ movs r0, 0
+ bl GetBankByPlayerAI
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 16
+ orrs r2, r4
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+_08035586:
+ bl OpponentBufferExecCompleted
+_0803558A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035428
+
+ thumb_func_start sub_8035590
+sub_8035590: @ 8035590
+ push {lr}
+ ldr r1, _080355B4 @ =0x02000000
+ ldr r0, _080355B8 @ =gActiveBank
+ ldrb r0, [r0]
+ lsrs r0, 1
+ lsls r0, 1
+ ldr r2, _080355BC @ =0x000160d4
+ adds r0, r2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080355B4: .4byte 0x02000000
+_080355B8: .4byte gActiveBank
+_080355BC: .4byte 0x000160d4
+ thumb_func_end sub_8035590
+
+ thumb_func_start sub_80355C0
+sub_80355C0: @ 80355C0
+ push {r4-r6,lr}
+ ldr r6, _08035604 @ =0x02000000
+ ldr r5, _08035608 @ =gActiveBank
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r1, _0803560C @ =0x000160c8
+ adds r0, r1
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _08035664
+ bl sub_8036CD4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bne _0803568A
+ ldr r0, _08035610 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08035614
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ b _08035628
+ .align 2, 0
+_08035604: .4byte 0x02000000
+_08035608: .4byte gActiveBank
+_0803560C: .4byte 0x000160c8
+_08035610: .4byte gBattleTypeFlags
+_08035614:
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x3
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08035628:
+ movs r4, 0
+ b _0803562E
+_0803562C:
+ adds r4, 0x1
+_0803562E:
+ cmp r4, 0x5
+ bgt _0803568A
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _0803565C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0803562C
+ ldr r1, _08035660 @ =gBattlePartyID
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _0803562C
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _0803562C
+ b _0803568A
+ .align 2, 0
+_0803565C: .4byte gEnemyParty
+_08035660: .4byte gBattlePartyID
+_08035664:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _080356B0 @ =0x000160c8
+ adds r0, r2
+ adds r0, r6
+ ldrb r4, [r0]
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r1, _080356B0 @ =0x000160c8
+ adds r0, r1
+ adds r0, r6
+ movs r1, 0x6
+ strb r1, [r0]
+_0803568A:
+ ldr r1, _080356B4 @ =0x02000000
+ ldr r0, _080356B8 @ =gActiveBank
+ ldrb r0, [r0]
+ ldr r2, _080356BC @ =0x00016068
+ adds r0, r2
+ adds r0, r1
+ strb r4, [r0]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ movs r2, 0
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl OpponentBufferExecCompleted
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080356B0: .4byte 0x000160c8
+_080356B4: .4byte 0x02000000
+_080356B8: .4byte gActiveBank
+_080356BC: .4byte 0x00016068
+ thumb_func_end sub_80355C0
+
+ thumb_func_start sub_80356C0
+sub_80356C0: @ 80356C0
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80356C0
+
+ thumb_func_start OpponentHandleHealthBarUpdate
+OpponentHandleHealthBarUpdate: @ 80356CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r0, 0
+ bl load_gfxc_health_bar
+ ldr r3, _08035744 @ =gBattleBufferA
+ ldr r0, _08035748 @ =gActiveBank
+ mov r9, r0
+ ldrb r4, [r0]
+ lsls r2, r4, 9
+ adds r0, r3, 0x3
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r1, 8
+ adds r3, 0x2
+ adds r2, r3
+ ldrb r0, [r2]
+ orrs r0, r1
+ lsls r0, 16
+ asrs r7, r0, 16
+ ldr r0, _0803574C @ =0x00007fff
+ cmp r7, r0
+ beq _0803575C
+ ldr r6, _08035750 @ =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _08035754 @ =gEnemyParty
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ mov r8, r0
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ adds r3, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _08035758 @ =gHealthboxIDs
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _08035786
+ .align 2, 0
+_08035744: .4byte gBattleBufferA
+_08035748: .4byte gActiveBank
+_0803574C: .4byte 0x00007fff
+_08035750: .4byte gBattlePartyID
+_08035754: .4byte gEnemyParty
+_08035758: .4byte gHealthboxIDs
+_0803575C:
+ ldr r1, _080357A4 @ =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080357A8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _080357AC @ =gHealthboxIDs
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+_08035786:
+ ldr r1, _080357B0 @ =gBattleBankFunc
+ ldr r0, _080357B4 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080357B8 @ =sub_80330C8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080357A4: .4byte gBattlePartyID
+_080357A8: .4byte gEnemyParty
+_080357AC: .4byte gHealthboxIDs
+_080357B0: .4byte gBattleBankFunc
+_080357B4: .4byte gActiveBank
+_080357B8: .4byte sub_80330C8
+ thumb_func_end OpponentHandleHealthBarUpdate
+
+ thumb_func_start OpponentHandleExpBarUpdate
+OpponentHandleExpBarUpdate: @ 80357BC
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleExpBarUpdate
+
+ thumb_func_start OpponentHandleStatusIconUpdate
+OpponentHandleStatusIconUpdate: @ 80357C8
+ push {r4,lr}
+ ldr r4, _08035820 @ =gActiveBank
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035818
+ ldr r0, _08035824 @ =gHealthboxIDs
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08035828 @ =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0803582C @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0x9
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08035830 @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, _08035834 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035838 @ =sub_8033494
+ str r1, [r0]
+_08035818:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035820: .4byte gActiveBank
+_08035824: .4byte gHealthboxIDs
+_08035828: .4byte gBattlePartyID
+_0803582C: .4byte gEnemyParty
+_08035830: .4byte 0x02017810
+_08035834: .4byte gBattleBankFunc
+_08035838: .4byte sub_8033494
+ thumb_func_end OpponentHandleStatusIconUpdate
+
+ thumb_func_start OpponentHandleStatusAnimation
+OpponentHandleStatusAnimation: @ 803583C
+ push {r4,r5,lr}
+ ldr r5, _08035894 @ =gActiveBank
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803588C
+ ldr r4, _08035898 @ =gBattleBufferA
+ ldrb r3, [r5]
+ lsls r3, 9
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ adds r2, r4, 0x4
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 16
+ orrs r1, r2
+ adds r4, 0x5
+ adds r3, r4
+ ldrb r2, [r3]
+ lsls r2, 24
+ orrs r1, r2
+ bl move_anim_start_t2_for_situation
+ ldr r1, _0803589C @ =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080358A0 @ =sub_8033494
+ str r1, [r0]
+_0803588C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035894: .4byte gActiveBank
+_08035898: .4byte gBattleBufferA
+_0803589C: .4byte gBattleBankFunc
+_080358A0: .4byte sub_8033494
+ thumb_func_end OpponentHandleStatusAnimation
+
+ thumb_func_start OpponentHandleStatusXor
+OpponentHandleStatusXor: @ 80358A4
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleStatusXor
+
+ thumb_func_start sub_80358B0
+sub_80358B0: @ 80358B0
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358B0
+
+ thumb_func_start OpponentHandleDMATransfer
+OpponentHandleDMATransfer: @ 80358BC
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleDMATransfer
+
+ thumb_func_start sub_80358C8
+sub_80358C8: @ 80358C8
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358C8
+
+ thumb_func_start sub_80358D4
+sub_80358D4: @ 80358D4
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358D4
+
+ thumb_func_start sub_80358E0
+sub_80358E0: @ 80358E0
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358E0
+
+ thumb_func_start sub_80358EC
+sub_80358EC: @ 80358EC
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358EC
+
+ thumb_func_start sub_80358F8
+sub_80358F8: @ 80358F8
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358F8
+
+ thumb_func_start sub_8035904
+sub_8035904: @ 8035904
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035904
+
+ thumb_func_start sub_8035910
+sub_8035910: @ 8035910
+ push {lr}
+ ldr r2, _08035928 @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035928: .4byte gUnknown_020238C8
+ thumb_func_end sub_8035910
+
+ thumb_func_start sub_803592C
+sub_803592C: @ 803592C
+ push {lr}
+ ldr r3, _08035958 @ =gUnknown_020238C8
+ ldr r1, _0803595C @ =gBattleBufferA
+ ldr r0, _08035960 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x7F
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035958: .4byte gUnknown_020238C8
+_0803595C: .4byte gBattleBufferA
+_08035960: .4byte gActiveBank
+ thumb_func_end sub_803592C
+
+ thumb_func_start sub_8035964
+sub_8035964: @ 8035964
+ push {lr}
+ ldr r2, _08035978 @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035978: .4byte gUnknown_020238C8
+ thumb_func_end sub_8035964
+
+ thumb_func_start sub_803597C
+sub_803597C: @ 803597C
+ push {lr}
+ ldr r3, _080359A0 @ =gUnknown_020238C8
+ ldr r1, [r3]
+ lsls r1, 24
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ lsls r1, 7
+ ldrb r2, [r3]
+ movs r0, 0x7F
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080359A0: .4byte gUnknown_020238C8
+ thumb_func_end sub_803597C
+
+ thumb_func_start OpponentHandleHitAnimation
+OpponentHandleHitAnimation: @ 80359A4
+ push {r4,lr}
+ ldr r3, _080359CC @ =gSprites
+ ldr r2, _080359D0 @ =gObjectBankIDs
+ ldr r4, _080359D4 @ =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080359D8
+ bl OpponentBufferExecCompleted
+ b _08035A02
+ .align 2, 0
+_080359CC: .4byte gSprites
+_080359D0: .4byte gObjectBankIDs
+_080359D4: .4byte gActiveBank
+_080359D8:
+ ldr r1, _08035A08 @ =gDoingBattleAnim
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r4]
+ bl sub_8047858
+ ldr r1, _08035A0C @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035A10 @ =bx_blink_t7
+ str r1, [r0]
+_08035A02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035A08: .4byte gDoingBattleAnim
+_08035A0C: .4byte gBattleBankFunc
+_08035A10: .4byte bx_blink_t7
+ thumb_func_end OpponentHandleHitAnimation
+
+ thumb_func_start sub_8035A14
+sub_8035A14: @ 8035A14
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035A14
+
+ thumb_func_start OpponentHandleEffectivenessSound
+OpponentHandleEffectivenessSound: @ 8035A20
+ push {r4,lr}
+ ldr r4, _08035A5C @ =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _08035A34
+ movs r3, 0xC0
+_08035A34:
+ ldr r2, _08035A60 @ =gBattleBufferA
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ lsls r1, r3, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ bl OpponentBufferExecCompleted
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035A5C: .4byte gActiveBank
+_08035A60: .4byte gBattleBufferA
+ thumb_func_end OpponentHandleEffectivenessSound
+
+ thumb_func_start sub_8035A64
+sub_8035A64: @ 8035A64
+ push {lr}
+ ldr r2, _08035A8C @ =gBattleBufferA
+ ldr r0, _08035A90 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035A8C: .4byte gBattleBufferA
+_08035A90: .4byte gActiveBank
+ thumb_func_end sub_8035A64
+
+ thumb_func_start OpponentHandleFaintingCry
+OpponentHandleFaintingCry: @ 8035A94
+ push {lr}
+ ldr r1, _08035AC4 @ =gBattlePartyID
+ ldr r0, _08035AC8 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08035ACC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ movs r2, 0x5
+ bl PlayCry3
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035AC4: .4byte gBattlePartyID
+_08035AC8: .4byte gActiveBank
+_08035ACC: .4byte gEnemyParty
+ thumb_func_end OpponentHandleFaintingCry
+
+ thumb_func_start dp01t_2E_7_battle_intro
+dp01t_2E_7_battle_intro: @ 8035AD0
+ push {lr}
+ ldr r1, _08035AF8 @ =gBattleBufferA
+ ldr r0, _08035AFC @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _08035B00 @ =gUnknown_02024DE8
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035AF8: .4byte gBattleBufferA
+_08035AFC: .4byte gActiveBank
+_08035B00: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_7_battle_intro
+
+ thumb_func_start sub_8035B04
+sub_8035B04: @ 8035B04
+ push {r4-r6,lr}
+ ldr r5, _08035BE0 @ =gObjectBankIDs
+ ldr r6, _08035BE4 @ =gActiveBank
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08035BE8 @ =gSprites
+ adds r0, r4
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x8C
+ lsls r1, 1
+ strh r1, [r0, 0x32]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08035BEC @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08035BF0 @ =sub_8035C10
+ bl oamt_set_x3A_32
+ ldr r0, _08035BF4 @ =sub_8035C44
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08035BF8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r6]
+ strh r0, [r1, 0x8]
+ ldrb r3, [r6]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r2, _08035BFC @ =0x02017810
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08035BC2
+ ldr r0, _08035C00 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, _08035C04 @ =sub_8044CA0
+ str r1, [r0]
+_08035BC2:
+ adds r2, 0x30
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _08035C08 @ =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035C0C @ =nullsub_45
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035BE0: .4byte gObjectBankIDs
+_08035BE4: .4byte gActiveBank
+_08035BE8: .4byte gSprites
+_08035BEC: .4byte sub_8078B34
+_08035BF0: .4byte sub_8035C10
+_08035BF4: .4byte sub_8035C44
+_08035BF8: .4byte gTasks
+_08035BFC: .4byte 0x02017810
+_08035C00: .4byte gUnknown_02024E68
+_08035C04: .4byte sub_8044CA0
+_08035C08: .4byte gBattleBankFunc
+_08035C0C: .4byte nullsub_45
+ thumb_func_end sub_8035B04
+
+ thumb_func_start sub_8035C10
+sub_8035C10: @ 8035C10
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x6]
+ bl sub_8031B74
+ ldrh r0, [r4, 0x38]
+ ldr r1, _08035C3C @ =0x000003ff
+ ands r1, r0
+ ldrh r2, [r4, 0x4]
+ ldr r0, _08035C40 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035C3C: .4byte 0x000003ff
+_08035C40: .4byte 0xfffffc00
+ thumb_func_end sub_8035C10
+
+ thumb_func_start sub_8035C44
+sub_8035C44: @ 8035C44
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r7, _08035C9C @ =gActiveBank
+ ldrb r0, [r7]
+ mov r9, r0
+ ldr r1, _08035CA0 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ strb r0, [r7]
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035C7E
+ ldr r0, _08035CA4 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08035CB0
+_08035C7E:
+ ldr r0, _08035CA8 @ =gBattleBufferA
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _08035CAC @ =gBattlePartyID
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_803495C
+ b _08035CF0
+ .align 2, 0
+_08035C9C: .4byte gActiveBank
+_08035CA0: .4byte gTasks
+_08035CA4: .4byte gBattleTypeFlags
+_08035CA8: .4byte gBattleBufferA
+_08035CAC: .4byte gBattlePartyID
+_08035CB0:
+ ldr r4, _08035D14 @ =gBattleBufferA
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r6, _08035D18 @ =gBattlePartyID
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_803495C
+ ldrb r0, [r7]
+ movs r5, 0x2
+ eors r0, r5
+ strb r0, [r7]
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r1, r4
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_803495C
+ ldrb r0, [r7]
+ eors r0, r5
+ strb r0, [r7]
+_08035CF0:
+ ldr r1, _08035D1C @ =gBattleBankFunc
+ ldr r2, _08035D20 @ =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035D24 @ =sub_8032E2C
+ str r1, [r0]
+ mov r0, r9
+ strb r0, [r2]
+ mov r0, r8
+ bl DestroyTask
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035D14: .4byte gBattleBufferA
+_08035D18: .4byte gBattlePartyID
+_08035D1C: .4byte gBattleBankFunc
+_08035D20: .4byte gActiveBank
+_08035D24: .4byte sub_8032E2C
+ thumb_func_end sub_8035C44
+
+ thumb_func_start dp01t_30_7_0803D67C
+dp01t_30_7_0803D67C: @ 8035D28
+ push {r4-r6,lr}
+ ldr r1, _08035D50 @ =gBattleBufferA
+ ldr r0, _08035D54 @ =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08035D58
+ adds r0, r2, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035D58
+ bl OpponentBufferExecCompleted
+ b _08035E12
+ .align 2, 0
+_08035D50: .4byte gBattleBufferA
+_08035D54: .4byte gActiveBank
+_08035D58:
+ ldr r3, _08035DA8 @ =gActiveBank
+ ldrb r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08035DAC @ =0x02017810
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _08035DB0 @ =gBattleBufferA
+ ldrb r2, [r3]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r6, r3, 0
+ cmp r0, 0
+ beq _08035DBC
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r4
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 26
+ lsrs r0, r1, 27
+ cmp r0, 0x1
+ bhi _08035DB4
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ b _08035E12
+ .align 2, 0
+_08035DA8: .4byte gActiveBank
+_08035DAC: .4byte 0x02017810
+_08035DB0: .4byte gBattleBufferA
+_08035DB4:
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+_08035DBC:
+ adds r5, r6, 0
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, _08035E18 @ =gUnknown_02023A64
+ adds r1, r3, r4
+ subs r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ subs r4, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ bl sub_8044804
+ ldr r2, _08035E1C @ =gUnknown_02024E68
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _08035E20 @ =0x02017810
+ adds r0, r3
+ strb r2, [r0, 0x5]
+ ldrb r1, [r5]
+ lsls r0, r1, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08035E06
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_08035E06:
+ ldr r0, _08035E24 @ =gBattleBankFunc
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08035E28 @ =sub_8035E2C
+ str r0, [r1]
+_08035E12:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035E18: .4byte gUnknown_02023A64
+_08035E1C: .4byte gUnknown_02024E68
+_08035E20: .4byte 0x02017810
+_08035E24: .4byte gBattleBankFunc
+_08035E28: .4byte sub_8035E2C
+ thumb_func_end dp01t_30_7_0803D67C
+
+ thumb_func_start sub_8035E2C
+sub_8035E2C: @ 8035E2C
+ push {r4,lr}
+ ldr r4, _08035E64 @ =gActiveBank
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _08035E68 @ =0x02017810
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _08035E5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl OpponentBufferExecCompleted
+_08035E5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035E64: .4byte gActiveBank
+_08035E68: .4byte 0x02017810
+ thumb_func_end sub_8035E2C
+
+ thumb_func_start sub_8035E6C
+sub_8035E6C: @ 8035E6C
+ push {lr}
+ ldr r0, _08035EA4 @ =gActiveBank
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _08035EA8 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08035E9A
+ ldr r2, _08035EAC @ =gTasks
+ ldr r0, _08035EB0 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _08035EB4 @ =sub_8044CA0
+ str r1, [r0]
+_08035E9A:
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035EA4: .4byte gActiveBank
+_08035EA8: .4byte 0x02017810
+_08035EAC: .4byte gTasks
+_08035EB0: .4byte gUnknown_02024E68
+_08035EB4: .4byte sub_8044CA0
+ thumb_func_end sub_8035E6C
+
+ thumb_func_start sub_8035EB8
+sub_8035EB8: @ 8035EB8
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035EB8
+
+ thumb_func_start OpponentHandleSpriteInvisibility
+OpponentHandleSpriteInvisibility: @ 8035EC4
+ push {r4,lr}
+ ldr r4, _08035F14 @ =gActiveBank
+ ldrb r0, [r4]
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035F0A
+ ldr r3, _08035F18 @ =gSprites
+ ldr r0, _08035F1C @ =gObjectBankIDs
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _08035F20 @ =gBattleBufferA
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r1, [r1]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl sub_8031F88
+_08035F0A:
+ bl OpponentBufferExecCompleted
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035F14: .4byte gActiveBank
+_08035F18: .4byte gSprites
+_08035F1C: .4byte gObjectBankIDs
+_08035F20: .4byte gBattleBufferA
+ thumb_func_end OpponentHandleSpriteInvisibility
+
+ thumb_func_start OpponentHandleBattleAnimation
+OpponentHandleBattleAnimation: @ 8035F24
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _08035F68 @ =gActiveBank
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035F7C
+ ldr r5, _08035F6C @ =gBattleBufferA
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035F70
+ bl OpponentBufferExecCompleted
+ b _08035F7C
+ .align 2, 0
+_08035F68: .4byte gActiveBank
+_08035F6C: .4byte gBattleBufferA
+_08035F70:
+ ldr r0, _08035F84 @ =gBattleBankFunc
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08035F88 @ =sub_80334C0
+ str r0, [r1]
+_08035F7C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035F84: .4byte gBattleBankFunc
+_08035F88: .4byte sub_80334C0
+ thumb_func_end OpponentHandleBattleAnimation
+
+ thumb_func_start OpponentHandleLinkStandbyMsg
+OpponentHandleLinkStandbyMsg: @ 8035F8C
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleLinkStandbyMsg
+
+ thumb_func_start OpponentHandleResetActionMoveSelection
+OpponentHandleResetActionMoveSelection: @ 8035F98
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleResetActionMoveSelection
+
+ thumb_func_start sub_8035FA4
+sub_8035FA4: @ 8035FA4
+ push {lr}
+ ldr r0, _08035FD8 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0x2
+ bne _08035FCE
+ ldr r2, _08035FDC @ =gMain
+ ldr r0, _08035FE0 @ =0x0000043d
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _08035FE4 @ =gPreBattleCallback1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_08035FCE:
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035FD8: .4byte gBattleTypeFlags
+_08035FDC: .4byte gMain
+_08035FE0: .4byte 0x0000043d
+_08035FE4: .4byte gPreBattleCallback1
+ thumb_func_end sub_8035FA4
+
+ thumb_func_start nullsub_46
+nullsub_46: @ 8035FE8
+ bx lr
+ thumb_func_end nullsub_46
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s
deleted file mode 100644
index dc3cd456f..000000000
--- a/asm/battle_811DA74.s
+++ /dev/null
@@ -1,5890 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_74
-nullsub_74: @ 811DA74
- bx lr
- thumb_func_end nullsub_74
-
- thumb_func_start sub_811DA78
-sub_811DA78: @ 811DA78
- ldr r1, _0811DA88 @ =gUnknown_03004330
- ldr r0, _0811DA8C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811DA90 @ =sub_811DA94
- str r1, [r0]
- bx lr
- .align 2, 0
-_0811DA88: .4byte gUnknown_03004330
-_0811DA8C: .4byte gUnknown_02024A60
-_0811DA90: .4byte sub_811DA94
- thumb_func_end sub_811DA78
-
- thumb_func_start sub_811DA94
-sub_811DA94: @ 811DA94
- push {lr}
- ldr r2, _0811DAC8 @ =gUnknown_02024A64
- ldr r1, _0811DACC @ =gBitTable
- ldr r0, _0811DAD0 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0811DAE0
- ldr r0, _0811DAD4 @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0811DADC
- ldr r0, _0811DAD8 @ =gUnknown_083FE4F4
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _0811DAE0
- .align 2, 0
-_0811DAC8: .4byte gUnknown_02024A64
-_0811DACC: .4byte gBitTable
-_0811DAD0: .4byte gUnknown_02024A60
-_0811DAD4: .4byte gUnknown_02023A60
-_0811DAD8: .4byte gUnknown_083FE4F4
-_0811DADC:
- bl dp01_tbl3_exec_completed
-_0811DAE0:
- pop {r0}
- bx r0
- thumb_func_end sub_811DA94
-
- thumb_func_start sub_811DAE4
-sub_811DAE4: @ 811DAE4
- push {lr}
- ldr r2, _0811DB0C @ =gSprites
- ldr r1, _0811DB10 @ =gUnknown_02024BE0
- ldr r0, _0811DB14 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0811DB18 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0811DB08
- bl dp01_tbl3_exec_completed
-_0811DB08:
- pop {r0}
- bx r0
- .align 2, 0
-_0811DB0C: .4byte gSprites
-_0811DB10: .4byte gUnknown_02024BE0
-_0811DB14: .4byte gUnknown_02024A60
-_0811DB18: .4byte SpriteCallbackDummy
- thumb_func_end sub_811DAE4
-
- thumb_func_start sub_811DB1C
-sub_811DB1C: @ 811DB1C
- push {r4-r6,lr}
- ldr r6, _0811DB74 @ =gSprites
- ldr r5, _0811DB78 @ =gUnknown_02024BE0
- ldr r4, _0811DB7C @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _0811DB80 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0811DB6C
- movs r0, 0
- bl nullsub_10
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl FreeSpriteOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- bl dp01_tbl3_exec_completed
-_0811DB6C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DB74: .4byte gSprites
-_0811DB78: .4byte gUnknown_02024BE0
-_0811DB7C: .4byte gUnknown_02024A60
-_0811DB80: .4byte SpriteCallbackDummy
- thumb_func_end sub_811DB1C
-
- thumb_func_start sub_811DB84
-sub_811DB84: @ 811DB84
- push {lr}
- ldr r3, _0811DBB8 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _0811DBBC @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0811DBB4
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl dp01_tbl3_exec_completed
-_0811DBB4:
- pop {r0}
- bx r0
- .align 2, 0
-_0811DBB8: .4byte gUnknown_02024A60
-_0811DBBC: .4byte 0x02017810
- thumb_func_end sub_811DB84
-
- thumb_func_start sub_811DBC0
-sub_811DBC0: @ 811DBC0
- push {r4-r6,lr}
- movs r6, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0811DBE4
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0811DC18
- ldr r0, _0811DC04 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0811DC18
-_0811DBE4:
- ldr r2, _0811DC08 @ =gSprites
- ldr r1, _0811DC0C @ =gUnknown_03004340
- ldr r0, _0811DC10 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0811DC14 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0811DC50
- b _0811DC4E
- .align 2, 0
-_0811DC04: .4byte gUnknown_020239F8
-_0811DC08: .4byte gSprites
-_0811DC0C: .4byte gUnknown_03004340
-_0811DC10: .4byte gUnknown_02024A60
-_0811DC14: .4byte SpriteCallbackDummy
-_0811DC18:
- ldr r2, _0811DC84 @ =gSprites
- ldr r5, _0811DC88 @ =gUnknown_03004340
- ldr r0, _0811DC8C @ =gUnknown_02024A60
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- adds r4, 0x1C
- adds r0, r4
- ldr r2, [r0]
- ldr r0, _0811DC90 @ =SpriteCallbackDummy
- cmp r2, r0
- bne _0811DC50
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- cmp r0, r2
- bne _0811DC50
-_0811DC4E:
- movs r6, 0x1
-_0811DC50:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _0811DC5C
- movs r6, 0
-_0811DC5C:
- cmp r6, 0
- beq _0811DC7E
- ldr r2, _0811DC8C @ =gUnknown_02024A60
- ldrb r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811DC94 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _0811DC98 @ =gUnknown_03004330
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811DC9C @ =sub_811DB84
- str r1, [r0]
-_0811DC7E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DC84: .4byte gSprites
-_0811DC88: .4byte gUnknown_03004340
-_0811DC8C: .4byte gUnknown_02024A60
-_0811DC90: .4byte SpriteCallbackDummy
-_0811DC94: .4byte 0x02017810
-_0811DC98: .4byte gUnknown_03004330
-_0811DC9C: .4byte sub_811DB84
- thumb_func_end sub_811DBC0
-
- thumb_func_start sub_811DCA0
-sub_811DCA0: @ 811DCA0
- push {r4-r7,lr}
- ldr r6, _0811DDBC @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0811DDC0 @ =0x02017810
- adds r3, r0, r4
- ldrb r1, [r3]
- movs r5, 0x8
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _0811DDB4
- movs r7, 0x2
- adds r1, r7, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0811DDB4
- ldrb r0, [r3, 0x9]
- adds r0, 0x1
- strb r0, [r3, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0811DDB4
- ldrb r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- strb r2, [r1, 0x9]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0811DD56
- ldr r0, _0811DDC4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0811DD56
- ldr r1, _0811DDC8 @ =gUnknown_0300434C
- ldrb r0, [r6]
- eors r0, r7
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811DDCC @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _0811DDD0 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r1, r7, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _0811DDD4 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0811DDD8 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r6]
- eors r0, r7
- bl sub_804777C
- ldrb r0, [r6]
- eors r0, r7
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
-_0811DD56:
- ldr r1, _0811DDC8 @ =gUnknown_0300434C
- ldr r4, _0811DDBC @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811DDCC @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _0811DDD0 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _0811DDD4 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0811DDD8 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldr r2, _0811DDDC @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0811DDE0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811DDE4 @ =sub_811DBC0
- str r1, [r0]
-_0811DDB4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DDBC: .4byte gUnknown_02024A60
-_0811DDC0: .4byte 0x02017810
-_0811DDC4: .4byte gUnknown_020239F8
-_0811DDC8: .4byte gUnknown_0300434C
-_0811DDCC: .4byte gSprites
-_0811DDD0: .4byte gUnknown_03004340
-_0811DDD4: .4byte gUnknown_02024A6A
-_0811DDD8: .4byte gPlayerParty
-_0811DDDC: .4byte 0x02017840
-_0811DDE0: .4byte gUnknown_03004330
-_0811DDE4: .4byte sub_811DBC0
- thumb_func_end sub_811DCA0
-
- thumb_func_start sub_811DDE8
-sub_811DDE8: @ 811DDE8
- push {lr}
- ldr r2, _0811DE1C @ =gSprites
- ldr r1, _0811DE20 @ =gUnknown_02024BE0
- ldr r0, _0811DE24 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- bge _0811DE16
- movs r2, 0x24
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0811DE16
- bl dp01_tbl3_exec_completed
-_0811DE16:
- pop {r0}
- bx r0
- .align 2, 0
-_0811DE1C: .4byte gSprites
-_0811DE20: .4byte gUnknown_02024BE0
-_0811DE24: .4byte gUnknown_02024A60
- thumb_func_end sub_811DDE8
-
- thumb_func_start bx_t3_healthbar_update
-bx_t3_healthbar_update: @ 811DE28
- push {r4-r6,lr}
- ldr r5, _0811DE68 @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r6, _0811DE6C @ =gUnknown_03004340
- adds r1, r0, r6
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0811DE70
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _0811DE8A
- .align 2, 0
-_0811DE68: .4byte gUnknown_02024A60
-_0811DE6C: .4byte gUnknown_03004340
-_0811DE70:
- ldr r2, _0811DE90 @ =gUnknown_02024A6A
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811DE94 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl3_exec_completed
-_0811DE8A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DE90: .4byte gUnknown_02024A6A
-_0811DE94: .4byte gPlayerParty
- thumb_func_end bx_t3_healthbar_update
-
- thumb_func_start sub_811DE98
-sub_811DE98: @ 811DE98
- push {r4-r6,lr}
- ldr r6, _0811DF1C @ =gSprites
- ldr r5, _0811DF20 @ =gUnknown_02024BE0
- ldr r4, _0811DF24 @ =gUnknown_02024A60
- ldrb r2, [r4]
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r3, 0x22
- ldrsh r1, [r0, r3]
- movs r3, 0x26
- ldrsh r0, [r0, r3]
- adds r1, r0
- cmp r1, 0xA0
- ble _0811DF14
- ldr r1, _0811DF28 @ =gUnknown_02024A6A
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0811DF2C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl nullsub_9
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r1, _0811DF30 @ =gUnknown_03004340
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl3_exec_completed
-_0811DF14:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DF1C: .4byte gSprites
-_0811DF20: .4byte gUnknown_02024BE0
-_0811DF24: .4byte gUnknown_02024A60
-_0811DF28: .4byte gUnknown_02024A6A
-_0811DF2C: .4byte gPlayerParty
-_0811DF30: .4byte gUnknown_03004340
- thumb_func_end sub_811DE98
-
- thumb_func_start sub_811DF34
-sub_811DF34: @ 811DF34
- push {r4-r6,lr}
- ldr r6, _0811DF8C @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0811DF90 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0811DF84
- ldr r5, _0811DF94 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0811DF98 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0811DF9C @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl3_exec_completed
-_0811DF84:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DF8C: .4byte gUnknown_02024A60
-_0811DF90: .4byte 0x02017810
-_0811DF94: .4byte gUnknown_02024BE0
-_0811DF98: .4byte gSprites
-_0811DF9C: .4byte gUnknown_03004340
- thumb_func_end sub_811DF34
-
- thumb_func_start sub_811DFA0
-sub_811DFA0: @ 811DFA0
- push {lr}
- ldr r0, _0811DFB4 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0811DFAE
- bl dp01_tbl3_exec_completed
-_0811DFAE:
- pop {r0}
- bx r0
- .align 2, 0
-_0811DFB4: .4byte gUnknown_03004210
- thumb_func_end sub_811DFA0
-
- thumb_func_start bx_blink_t3
-bx_blink_t3: @ 811DFB8
- push {r4,lr}
- ldr r1, _0811DFF4 @ =gUnknown_02024BE0
- ldr r0, _0811DFF8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _0811DFFC @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _0811E004
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0811E000 @ =gUnknown_02024E6D
- strb r3, [r0]
- bl dp01_tbl3_exec_completed
- b _0811E02E
- .align 2, 0
-_0811DFF4: .4byte gUnknown_02024BE0
-_0811DFF8: .4byte gUnknown_02024A60
-_0811DFFC: .4byte gSprites
-_0811E000: .4byte gUnknown_02024E6D
-_0811E004:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0811E028
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_0811E028:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_0811E02E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t3
-
- thumb_func_start sub_811E034
-sub_811E034: @ 811E034
- push {r4,lr}
- ldr r2, _0811E084 @ =gSprites
- ldr r0, _0811E088 @ =gUnknown_03004340
- ldr r4, _0811E08C @ =gUnknown_02024A60
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0811E090 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0811E07C
- lsls r0, r3, 2
- ldr r1, _0811E094 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0811E070
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_0811E070:
- ldr r0, _0811E098 @ =gUnknown_03004330
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0811E09C @ =sub_811E0A0
- str r0, [r1]
-_0811E07C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811E084: .4byte gSprites
-_0811E088: .4byte gUnknown_03004340
-_0811E08C: .4byte gUnknown_02024A60
-_0811E090: .4byte SpriteCallbackDummy
-_0811E094: .4byte 0x02017800
-_0811E098: .4byte gUnknown_03004330
-_0811E09C: .4byte sub_811E0A0
- thumb_func_end sub_811E034
-
- thumb_func_start sub_811E0A0
-sub_811E0A0: @ 811E0A0
- push {lr}
- ldr r0, _0811E0C4 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811E0C8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0811E0BE
- bl dp01_tbl3_exec_completed
-_0811E0BE:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E0C4: .4byte gUnknown_02024A60
-_0811E0C8: .4byte 0x02017810
- thumb_func_end sub_811E0A0
-
- thumb_func_start sub_811E0CC
-sub_811E0CC: @ 811E0CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _0811E190 @ =gUnknown_02024A60
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0811E194 @ =0x02017810
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811E186
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _0811E198 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _0811E19C @ =c3_0802FDF4
- movs r1, 0xA
- bl CreateTask
- ldr r0, _0811E1A0 @ =gUnknown_02024A6A
- mov r8, r0
- ldrb r1, [r7]
- lsls r0, r1, 1
- add r0, r8
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0811E1A4 @ =gPlayerParty
- adds r0, r5
- bl sub_80324F8
- ldr r1, _0811E1A8 @ =gUnknown_02024BE0
- ldrb r0, [r7]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811E1AC @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, _0811E1B0 @ =gUnknown_03004340
- ldrb r1, [r7]
- adds r0, r1, r4
- ldrb r0, [r0]
- lsls r1, 1
- add r1, r8
- ldrh r1, [r1]
- muls r1, r6
- adds r1, r5
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r7]
- bl sub_804777C
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r7]
- bl sub_8031F88
- ldr r1, _0811E1B4 @ =gUnknown_03004330
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811E1B8 @ =sub_811E034
- str r1, [r0]
-_0811E186:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811E190: .4byte gUnknown_02024A60
-_0811E194: .4byte 0x02017810
-_0811E198: .4byte 0x000027f9
-_0811E19C: .4byte c3_0802FDF4
-_0811E1A0: .4byte gUnknown_02024A6A
-_0811E1A4: .4byte gPlayerParty
-_0811E1A8: .4byte gUnknown_02024BE0
-_0811E1AC: .4byte gSprites
-_0811E1B0: .4byte gUnknown_03004340
-_0811E1B4: .4byte gUnknown_03004330
-_0811E1B8: .4byte sub_811E034
- thumb_func_end sub_811E0CC
-
- thumb_func_start sub_811E1BC
-sub_811E1BC: @ 811E1BC
- push {r4-r6,lr}
- ldr r4, _0811E234 @ =gUnknown_02024A60
- ldrb r2, [r4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _0811E238 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0811E1EA
- ldr r0, _0811E23C @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0811E240 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0811E1EA:
- ldr r5, _0811E244 @ =gSprites
- ldr r0, _0811E248 @ =gUnknown_0300434C
- ldrb r2, [r4]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r5, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _0811E24C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0811E22C
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0811E22C
- adds r0, r3, r5
- bl DestroySprite
- ldr r1, _0811E250 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811E254 @ =sub_811E0CC
- str r1, [r0]
-_0811E22C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811E234: .4byte gUnknown_02024A60
-_0811E238: .4byte 0x02017810
-_0811E23C: .4byte gUnknown_02024A6A
-_0811E240: .4byte gPlayerParty
-_0811E244: .4byte gSprites
-_0811E248: .4byte gUnknown_0300434C
-_0811E24C: .4byte SpriteCallbackDummy
-_0811E250: .4byte gUnknown_03004330
-_0811E254: .4byte sub_811E0CC
- thumb_func_end sub_811E1BC
-
- thumb_func_start sub_811E258
-sub_811E258: @ 811E258
- push {lr}
- ldr r0, _0811E288 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0811E284
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, _0811E28C @ =gMain
- ldr r0, _0811E290 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0811E294 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _0811E298 @ =c2_8011A1C
- bl SetMainCallback2
-_0811E284:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E288: .4byte gReceivedRemoteLinkPlayers
-_0811E28C: .4byte gMain
-_0811E290: .4byte 0x0000043d
-_0811E294: .4byte gUnknown_030042D0
-_0811E298: .4byte c2_8011A1C
- thumb_func_end sub_811E258
-
- thumb_func_start sub_811E29C
-sub_811E29C: @ 811E29C
- push {lr}
- ldr r0, _0811E2CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811E302
- ldr r0, _0811E2D0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0811E2E0
- bl sub_800832C
- ldr r1, _0811E2D4 @ =gUnknown_03004330
- ldr r0, _0811E2D8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811E2DC @ =sub_811E258
- str r1, [r0]
- b _0811E302
- .align 2, 0
-_0811E2CC: .4byte gPaletteFade
-_0811E2D0: .4byte gUnknown_020239F8
-_0811E2D4: .4byte gUnknown_03004330
-_0811E2D8: .4byte gUnknown_02024A60
-_0811E2DC: .4byte sub_811E258
-_0811E2E0:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r2, _0811E308 @ =gMain
- ldr r0, _0811E30C @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _0811E310 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0811E302:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E308: .4byte gMain
-_0811E30C: .4byte 0x0000043d
-_0811E310: .4byte gUnknown_030042D0
- thumb_func_end sub_811E29C
-
- thumb_func_start dp01_tbl3_exec_completed
-dp01_tbl3_exec_completed: @ 811E314
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0811E354 @ =gUnknown_03004330
- ldr r4, _0811E358 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811E35C @ =sub_811DA94
- str r1, [r0]
- ldr r0, _0811E360 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0811E368
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _0811E364 @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0811E37A
- .align 2, 0
-_0811E354: .4byte gUnknown_03004330
-_0811E358: .4byte gUnknown_02024A60
-_0811E35C: .4byte sub_811DA94
-_0811E360: .4byte gUnknown_020239F8
-_0811E364: .4byte gUnknown_02023A60
-_0811E368:
- ldr r2, _0811E384 @ =gUnknown_02024A64
- ldr r1, _0811E388 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0811E37A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811E384: .4byte gUnknown_02024A64
-_0811E388: .4byte gBitTable
- thumb_func_end dp01_tbl3_exec_completed
-
- thumb_func_start sub_811E38C
-sub_811E38C: @ 811E38C
- push {lr}
- ldr r0, _0811E3B0 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811E3B4 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0811E3AA
- bl dp01_tbl3_exec_completed
-_0811E3AA:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E3B0: .4byte gUnknown_02024A60
-_0811E3B4: .4byte 0x02017810
- thumb_func_end sub_811E38C
-
- thumb_func_start sub_811E3B8
-sub_811E3B8: @ 811E3B8
- push {lr}
- ldr r0, _0811E3DC @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811E3E0 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0811E3D6
- bl dp01_tbl3_exec_completed
-_0811E3D6:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E3DC: .4byte gUnknown_02024A60
-_0811E3E0: .4byte 0x02017810
- thumb_func_end sub_811E3B8
-
- thumb_func_start dp01t_00_3_getattr
-dp01t_00_3_getattr: @ 811E3E4
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _0811E410 @ =gUnknown_02023A60
- ldr r0, _0811E414 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0811E41C
- ldr r0, _0811E418 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_player_pokemon
- adds r6, r0, 0
- b _0811E43E
- .align 2, 0
-_0811E410: .4byte gUnknown_02023A60
-_0811E414: .4byte gUnknown_02024A60
-_0811E418: .4byte gUnknown_02024A6A
-_0811E41C:
- ldrb r4, [r1]
- movs r5, 0
-_0811E420:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0811E436
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_player_pokemon
- adds r6, r0
-_0811E436:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _0811E420
-_0811E43E:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl3_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_3_getattr
-
- thumb_func_start dp01_getattr_by_ch1_for_player_pokemon
-dp01_getattr_by_ch1_for_player_pokemon: @ 811E458
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _0811E48C @ =gUnknown_02023A60
- ldr r3, _0811E490 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0811E482
- bl _0811EBEE
-_0811E482:
- lsls r0, 2
- ldr r1, _0811E494 @ =_0811E498
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811E48C: .4byte gUnknown_02023A60
-_0811E490: .4byte gUnknown_02024A60
-_0811E494: .4byte _0811E498
- .align 2, 0
-_0811E498:
- .4byte _0811E588
- .4byte _0811E7AC
- .4byte _0811E7BC
- .4byte _0811E7CC
- .4byte _0811E834
- .4byte _0811E834
- .4byte _0811E834
- .4byte _0811E834
- .4byte _0811E850
- .4byte _0811E88C
- .4byte _0811E88C
- .4byte _0811E88C
- .4byte _0811E88C
- .4byte _0811EBEE
- .4byte _0811EBEE
- .4byte _0811EBEE
- .4byte _0811EBEE
- .4byte _0811E8A8
- .4byte _0811E8B8
- .4byte _0811E8E8
- .4byte _0811E8F8
- .4byte _0811E908
- .4byte _0811E918
- .4byte _0811E928
- .4byte _0811E938
- .4byte _0811E948
- .4byte _0811E958
- .4byte _0811E968
- .4byte _0811E978
- .4byte _0811E988
- .4byte _0811E998
- .4byte _0811E9A8
- .4byte _0811E9F8
- .4byte _0811EA08
- .4byte _0811EA18
- .4byte _0811EA28
- .4byte _0811EA38
- .4byte _0811EA48
- .4byte _0811EA58
- .4byte _0811EA68
- .4byte _0811EA78
- .4byte _0811EAAC
- .4byte _0811EABC
- .4byte _0811EACC
- .4byte _0811EADC
- .4byte _0811EAEC
- .4byte _0811EAFC
- .4byte _0811EB0C
- .4byte _0811EB1C
- .4byte _0811EB3C
- .4byte _0811EB4C
- .4byte _0811EB5C
- .4byte _0811EB6C
- .4byte _0811EB7C
- .4byte _0811EB8C
- .4byte _0811EB9C
- .4byte _0811EBAC
- .4byte _0811EBBC
- .4byte _0811EBCC
- .4byte _0811EBDC
-_0811E588:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811E79C @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_0811E5D4:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0811E5D4
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811E79C @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _0811E7A0 @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _0811E7A4 @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _0811E7A8 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_0811E78C:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _0811E78C
- b _0811EBEE
- .align 2, 0
-_0811E79C: .4byte gPlayerParty
-_0811E7A0: .4byte 0xfffffc1f
-_0811E7A4: .4byte 0xfff07fff
-_0811E7A8: .4byte 0xfffffe0f
-_0811E7AC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E7B8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- b _0811EB26
- .align 2, 0
-_0811E7B8: .4byte gPlayerParty
-_0811E7BC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E7C8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- b _0811EB26
- .align 2, 0
-_0811E7C8: .4byte gPlayerParty
-_0811E7CC:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0811E830 @ =gPlayerParty
- adds r4, r1, r0
- mov r8, r9
-_0811E7E2:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0811E7E2
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E830 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_0811E820:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _0811E820
- b _0811EBEE
- .align 2, 0
-_0811E830: .4byte gPlayerParty
-_0811E834:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E84C @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _0811EB26
- .align 2, 0
-_0811E84C: .4byte gPlayerParty
-_0811E850:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _0811E888 @ =gPlayerParty
- mov r8, r2
-_0811E85C:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0811E85C
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E888 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _0811EBEE
- .align 2, 0
-_0811E888: .4byte gPlayerParty
-_0811E88C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E8A4 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0811EBE6
- .align 2, 0
-_0811E8A4: .4byte gPlayerParty
-_0811E8A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E8B4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- b _0811E8C2
- .align 2, 0
-_0811E8B4: .4byte gPlayerParty
-_0811E8B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E8E4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x19
-_0811E8C2:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _0811EBEE
- .align 2, 0
-_0811E8E4: .4byte gPlayerParty
-_0811E8E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E8F4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1A
- b _0811EBE6
- .align 2, 0
-_0811E8F4: .4byte gPlayerParty
-_0811E8F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E904 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1B
- b _0811EBE6
- .align 2, 0
-_0811E904: .4byte gPlayerParty
-_0811E908:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E914 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1C
- b _0811EBE6
- .align 2, 0
-_0811E914: .4byte gPlayerParty
-_0811E918:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E924 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1D
- b _0811EBE6
- .align 2, 0
-_0811E924: .4byte gPlayerParty
-_0811E928:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E934 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1E
- b _0811EBE6
- .align 2, 0
-_0811E934: .4byte gPlayerParty
-_0811E938:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E944 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1F
- b _0811EBE6
- .align 2, 0
-_0811E944: .4byte gPlayerParty
-_0811E948:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E954 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x20
- b _0811EBE6
- .align 2, 0
-_0811E954: .4byte gPlayerParty
-_0811E958:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E964 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x22
- b _0811EBE6
- .align 2, 0
-_0811E964: .4byte gPlayerParty
-_0811E968:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E974 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x23
- b _0811EBE6
- .align 2, 0
-_0811E974: .4byte gPlayerParty
-_0811E978:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E984 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x24
- b _0811EBE6
- .align 2, 0
-_0811E984: .4byte gPlayerParty
-_0811E988:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E994 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x25
- b _0811EBE6
- .align 2, 0
-_0811E994: .4byte gPlayerParty
-_0811E998:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E9A4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x26
- b _0811EBE6
- .align 2, 0
-_0811E9A4: .4byte gPlayerParty
-_0811E9A8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811E9F4 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _0811EBEE
- .align 2, 0
-_0811E9F4: .4byte gPlayerParty
-_0811E9F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA04 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x27
- b _0811EBE6
- .align 2, 0
-_0811EA04: .4byte gPlayerParty
-_0811EA08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA14 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x28
- b _0811EBE6
- .align 2, 0
-_0811EA14: .4byte gPlayerParty
-_0811EA18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA24 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x29
- b _0811EBE6
- .align 2, 0
-_0811EA24: .4byte gPlayerParty
-_0811EA28:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA34 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2A
- b _0811EBE6
- .align 2, 0
-_0811EA34: .4byte gPlayerParty
-_0811EA38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA44 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2B
- b _0811EBE6
- .align 2, 0
-_0811EA44: .4byte gPlayerParty
-_0811EA48:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA54 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- b _0811EBE6
- .align 2, 0
-_0811EA54: .4byte gPlayerParty
-_0811EA58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA64 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- b _0811EA82
- .align 2, 0
-_0811EA64: .4byte gPlayerParty
-_0811EA68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA74 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x9
- b _0811EB26
- .align 2, 0
-_0811EA74: .4byte gPlayerParty
-_0811EA78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAA8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x37
-_0811EA82:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _0811EBEE
- .align 2, 0
-_0811EAA8: .4byte gPlayerParty
-_0811EAAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAB8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- b _0811EBE6
- .align 2, 0
-_0811EAB8: .4byte gPlayerParty
-_0811EABC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAC8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- b _0811EB26
- .align 2, 0
-_0811EAC8: .4byte gPlayerParty
-_0811EACC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAD8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- b _0811EB26
- .align 2, 0
-_0811EAD8: .4byte gPlayerParty
-_0811EADC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAE8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3B
- b _0811EB26
- .align 2, 0
-_0811EAE8: .4byte gPlayerParty
-_0811EAEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAF8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3C
- b _0811EB26
- .align 2, 0
-_0811EAF8: .4byte gPlayerParty
-_0811EAFC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB08 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3D
- b _0811EB26
- .align 2, 0
-_0811EB08: .4byte gPlayerParty
-_0811EB0C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB18 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3E
- b _0811EB26
- .align 2, 0
-_0811EB18: .4byte gPlayerParty
-_0811EB1C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB38 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3F
-_0811EB26:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _0811EBEE
- .align 2, 0
-_0811EB38: .4byte gPlayerParty
-_0811EB3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB48 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- b _0811EBE6
- .align 2, 0
-_0811EB48: .4byte gPlayerParty
-_0811EB4C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB58 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- b _0811EBE6
- .align 2, 0
-_0811EB58: .4byte gPlayerParty
-_0811EB5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB68 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- b _0811EBE6
- .align 2, 0
-_0811EB68: .4byte gPlayerParty
-_0811EB6C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB78 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- b _0811EBE6
- .align 2, 0
-_0811EB78: .4byte gPlayerParty
-_0811EB7C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB88 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- b _0811EBE6
- .align 2, 0
-_0811EB88: .4byte gPlayerParty
-_0811EB8C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB98 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x30
- b _0811EBE6
- .align 2, 0
-_0811EB98: .4byte gPlayerParty
-_0811EB9C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EBA8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x32
- b _0811EBE6
- .align 2, 0
-_0811EBA8: .4byte gPlayerParty
-_0811EBAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EBB8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x33
- b _0811EBE6
- .align 2, 0
-_0811EBB8: .4byte gPlayerParty
-_0811EBBC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EBC8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x34
- b _0811EBE6
- .align 2, 0
-_0811EBC8: .4byte gPlayerParty
-_0811EBCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EBD8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x35
- b _0811EBE6
- .align 2, 0
-_0811EBD8: .4byte gPlayerParty
-_0811EBDC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EC00 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x36
-_0811EBE6:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_0811EBEE:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811EC00: .4byte gPlayerParty
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon
-
- thumb_func_start sub_811EC04
-sub_811EC04: @ 811EC04
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811EC04
-
- thumb_func_start sub_811EC10
-sub_811EC10: @ 811EC10
- push {r4,r5,lr}
- ldr r1, _0811EC34 @ =gUnknown_02023A60
- ldr r0, _0811EC38 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0811EC40
- ldr r0, _0811EC3C @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_811EC68
- b _0811EC5E
- .align 2, 0
-_0811EC34: .4byte gUnknown_02023A60
-_0811EC38: .4byte gUnknown_02024A60
-_0811EC3C: .4byte gUnknown_02024A6A
-_0811EC40:
- ldrb r4, [r1]
- movs r5, 0
-_0811EC44:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0811EC52
- adds r0, r5, 0
- bl sub_811EC68
-_0811EC52:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0811EC44
-_0811EC5E:
- bl dp01_tbl3_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_811EC10
-
- thumb_func_start sub_811EC68
-sub_811EC68: @ 811EC68
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0811ECA0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, _0811ECA4 @ =gUnknown_02023A63
- adds r3, r0, r2
- adds r6, r3, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r2, 0
- cmp r0, 0x3B
- bls _0811EC94
- bl _0811F62E
-_0811EC94:
- lsls r0, 2
- ldr r1, _0811ECA8 @ =_0811ECAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811ECA0: .4byte gUnknown_02024A60
-_0811ECA4: .4byte gUnknown_02023A63
-_0811ECA8: .4byte _0811ECAC
- .align 2, 0
-_0811ECAC:
- .4byte _0811ED9C
- .4byte _0811EF34
- .4byte _0811EF54
- .4byte _0811EF74
- .4byte _0811EFCC
- .4byte _0811EFCC
- .4byte _0811EFCC
- .4byte _0811EFCC
- .4byte _0811EFF4
- .4byte _0811F058
- .4byte _0811F058
- .4byte _0811F058
- .4byte _0811F058
- .4byte _0811F62E
- .4byte _0811F62E
- .4byte _0811F62E
- .4byte _0811F62E
- .4byte _0811F088
- .4byte _0811F0A8
- .4byte _0811F0C8
- .4byte _0811F0E8
- .4byte _0811F108
- .4byte _0811F128
- .4byte _0811F148
- .4byte _0811F168
- .4byte _0811F188
- .4byte _0811F1A8
- .4byte _0811F1C8
- .4byte _0811F1E8
- .4byte _0811F208
- .4byte _0811F228
- .4byte _0811F248
- .4byte _0811F2B8
- .4byte _0811F2D8
- .4byte _0811F2F8
- .4byte _0811F318
- .4byte _0811F338
- .4byte _0811F358
- .4byte _0811F378
- .4byte _0811F398
- .4byte _0811F3B8
- .4byte _0811F3D8
- .4byte _0811F3F8
- .4byte _0811F418
- .4byte _0811F438
- .4byte _0811F458
- .4byte _0811F478
- .4byte _0811F498
- .4byte _0811F4B8
- .4byte _0811F4D8
- .4byte _0811F4F8
- .4byte _0811F518
- .4byte _0811F538
- .4byte _0811F558
- .4byte _0811F578
- .4byte _0811F598
- .4byte _0811F5B8
- .4byte _0811F5D8
- .4byte _0811F5F8
- .4byte _0811F618
-_0811ED9C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811EF30 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r6, 0
- bl SetMonData
- adds r2, r6, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r6
- mov r10, r0
- adds r0, r6, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r6, 0x2
- str r0, [sp, 0x4]
- adds r0, r6, 0x4
- str r0, [sp, 0x8]
- adds r0, r6, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r7, r6, 0
- adds r7, 0x24
- adds r4, r6, 0
- adds r4, 0xC
-_0811EE02:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r7, 0
- bl SetMonData
- adds r7, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0811EE02
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811EF30 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r6, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r6, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EF30: .4byte gPlayerParty
-_0811EF34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EF4C @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811EF50 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EF4C: .4byte gPlayerParty
-_0811EF50: .4byte gUnknown_02024A60
-_0811EF54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EF6C @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811EF70 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EF6C: .4byte gPlayerParty
-_0811EF70: .4byte gUnknown_02024A60
-_0811EF74:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r3
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0811EFC8 @ =gPlayerParty
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_0811EF8E:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0811EF8E
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EFC8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EFC8: .4byte gPlayerParty
-_0811EFCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EFE8 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0811EFEC @ =gUnknown_02023A60
- ldr r1, _0811EFF0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0811F070
- .align 2, 0
-_0811EFE8: .4byte gPlayerParty
-_0811EFEC: .4byte gUnknown_02023A60
-_0811EFF0: .4byte gUnknown_02024A60
-_0811EFF4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811F050 @ =gPlayerParty
- adds r4, r0
- ldr r5, _0811F054 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x11
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F050: .4byte gPlayerParty
-_0811F054: .4byte gUnknown_02024A60
-_0811F058:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F07C @ =gPlayerParty
- adds r0, r1
- ldr r3, _0811F080 @ =gUnknown_02023A60
- ldr r1, _0811F084 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0811F070:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F07C: .4byte gPlayerParty
-_0811F080: .4byte gUnknown_02023A60
-_0811F084: .4byte gUnknown_02024A60
-_0811F088:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F0A0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F0A4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F0A0: .4byte gPlayerParty
-_0811F0A4: .4byte gUnknown_02024A60
-_0811F0A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F0C0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F0C4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F0C0: .4byte gPlayerParty
-_0811F0C4: .4byte gUnknown_02024A60
-_0811F0C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F0E0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F0E4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F0E0: .4byte gPlayerParty
-_0811F0E4: .4byte gUnknown_02024A60
-_0811F0E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F100 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F104 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F100: .4byte gPlayerParty
-_0811F104: .4byte gUnknown_02024A60
-_0811F108:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F120 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F124 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F120: .4byte gPlayerParty
-_0811F124: .4byte gUnknown_02024A60
-_0811F128:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F140 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F144 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F140: .4byte gPlayerParty
-_0811F144: .4byte gUnknown_02024A60
-_0811F148:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F160 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F164 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F160: .4byte gPlayerParty
-_0811F164: .4byte gUnknown_02024A60
-_0811F168:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F180 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F184 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F180: .4byte gPlayerParty
-_0811F184: .4byte gUnknown_02024A60
-_0811F188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F1A0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F1A4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F1A0: .4byte gPlayerParty
-_0811F1A4: .4byte gUnknown_02024A60
-_0811F1A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F1C0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F1C4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F1C0: .4byte gPlayerParty
-_0811F1C4: .4byte gUnknown_02024A60
-_0811F1C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F1E0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F1E4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F1E0: .4byte gPlayerParty
-_0811F1E4: .4byte gUnknown_02024A60
-_0811F1E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F200 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F204 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F200: .4byte gPlayerParty
-_0811F204: .4byte gUnknown_02024A60
-_0811F208:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F220 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F224 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F220: .4byte gPlayerParty
-_0811F224: .4byte gUnknown_02024A60
-_0811F228:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F240 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F244 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F240: .4byte gPlayerParty
-_0811F244: .4byte gUnknown_02024A60
-_0811F248:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811F2B0 @ =gPlayerParty
- adds r4, r0
- ldr r5, _0811F2B4 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x27
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _0811F368
- .align 2, 0
-_0811F2B0: .4byte gPlayerParty
-_0811F2B4: .4byte gUnknown_02024A60
-_0811F2B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F2D0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F2D4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F2D0: .4byte gPlayerParty
-_0811F2D4: .4byte gUnknown_02024A60
-_0811F2D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F2F0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F2F4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F2F0: .4byte gPlayerParty
-_0811F2F4: .4byte gUnknown_02024A60
-_0811F2F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F310 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F314 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F310: .4byte gPlayerParty
-_0811F314: .4byte gUnknown_02024A60
-_0811F318:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F330 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F334 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F330: .4byte gPlayerParty
-_0811F334: .4byte gUnknown_02024A60
-_0811F338:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F350 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F354 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F350: .4byte gPlayerParty
-_0811F354: .4byte gUnknown_02024A60
-_0811F358:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F370 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F374 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_0811F368:
- movs r1, 0x2C
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F370: .4byte gPlayerParty
-_0811F374: .4byte gUnknown_02024A60
-_0811F378:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F390 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F394 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F390: .4byte gPlayerParty
-_0811F394: .4byte gUnknown_02024A60
-_0811F398:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F3B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F3B4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F3B0: .4byte gPlayerParty
-_0811F3B4: .4byte gUnknown_02024A60
-_0811F3B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F3D0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F3D4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F3D0: .4byte gPlayerParty
-_0811F3D4: .4byte gUnknown_02024A60
-_0811F3D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F3F0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F3F4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F3F0: .4byte gPlayerParty
-_0811F3F4: .4byte gUnknown_02024A60
-_0811F3F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F410 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F414 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F410: .4byte gPlayerParty
-_0811F414: .4byte gUnknown_02024A60
-_0811F418:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F430 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F434 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F430: .4byte gPlayerParty
-_0811F434: .4byte gUnknown_02024A60
-_0811F438:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F450 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F454 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F450: .4byte gPlayerParty
-_0811F454: .4byte gUnknown_02024A60
-_0811F458:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F470 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F474 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F470: .4byte gPlayerParty
-_0811F474: .4byte gUnknown_02024A60
-_0811F478:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F490 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F494 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F490: .4byte gPlayerParty
-_0811F494: .4byte gUnknown_02024A60
-_0811F498:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F4B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F4B4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F4B0: .4byte gPlayerParty
-_0811F4B4: .4byte gUnknown_02024A60
-_0811F4B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F4D0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F4D4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F4D0: .4byte gPlayerParty
-_0811F4D4: .4byte gUnknown_02024A60
-_0811F4D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F4F0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F4F4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F4F0: .4byte gPlayerParty
-_0811F4F4: .4byte gUnknown_02024A60
-_0811F4F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F510 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F514 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F510: .4byte gPlayerParty
-_0811F514: .4byte gUnknown_02024A60
-_0811F518:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F530 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F534 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F530: .4byte gPlayerParty
-_0811F534: .4byte gUnknown_02024A60
-_0811F538:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F550 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F554 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F550: .4byte gPlayerParty
-_0811F554: .4byte gUnknown_02024A60
-_0811F558:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F570 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F574 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F570: .4byte gPlayerParty
-_0811F574: .4byte gUnknown_02024A60
-_0811F578:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F590 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F594 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F590: .4byte gPlayerParty
-_0811F594: .4byte gUnknown_02024A60
-_0811F598:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F5B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F5B4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F5B0: .4byte gPlayerParty
-_0811F5B4: .4byte gUnknown_02024A60
-_0811F5B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F5D0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F5D4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F5D0: .4byte gPlayerParty
-_0811F5D4: .4byte gUnknown_02024A60
-_0811F5D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F5F0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F5F4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F5F0: .4byte gPlayerParty
-_0811F5F4: .4byte gUnknown_02024A60
-_0811F5F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F610 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F614 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F610: .4byte gPlayerParty
-_0811F614: .4byte gUnknown_02024A60
-_0811F618:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F658 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0811F65C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_0811F62E:
- ldr r2, _0811F660 @ =gUnknown_02024A6A
- ldr r0, _0811F65C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811F658 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F658: .4byte gPlayerParty
-_0811F65C: .4byte gUnknown_02024A60
-_0811F660: .4byte gUnknown_02024A6A
- thumb_func_end sub_811EC68
-
- thumb_func_start sub_811F664
-sub_811F664: @ 811F664
- push {r4-r7,lr}
- ldr r1, _0811F6C8 @ =gUnknown_02024A6A
- ldr r7, _0811F6CC @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0811F6D0 @ =gUnknown_02023A60
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _0811F6D4 @ =gPlayerParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _0811F6BC
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_0811F69A:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _0811F69A
-_0811F6BC:
- bl dp01_tbl3_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F6C8: .4byte gUnknown_02024A6A
-_0811F6CC: .4byte gUnknown_02024A60
-_0811F6D0: .4byte gUnknown_02023A60
-_0811F6D4: .4byte gPlayerParty
- thumb_func_end sub_811F664
-
- thumb_func_start sub_811F6D8
-sub_811F6D8: @ 811F6D8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _0811F7CC @ =gUnknown_02024A6A
- mov r8, r0
- ldr r6, _0811F7D0 @ =gUnknown_02024A60
- ldrb r1, [r6]
- lsls r0, r1, 1
- add r0, r8
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0811F7D4 @ =gPlayerParty
- adds r0, r4
- bl sub_80318FC
- ldrb r0, [r6]
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _0811F7D8 @ =gUnknown_02024E8C
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _0811F7DC @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _0811F7E0 @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F7E4 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F7E8 @ =gUnknown_02024E84
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldr r1, _0811F7EC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811F7F0 @ =sub_811DDE8
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F7CC: .4byte gUnknown_02024A6A
-_0811F7D0: .4byte gUnknown_02024A60
-_0811F7D4: .4byte gPlayerParty
-_0811F7D8: .4byte gUnknown_02024E8C
-_0811F7DC: .4byte gUnknown_02024BE0
-_0811F7E0: .4byte gSprites
-_0811F7E4: .4byte 0x0000ff10
-_0811F7E8: .4byte gUnknown_02024E84
-_0811F7EC: .4byte gUnknown_03004330
-_0811F7F0: .4byte sub_811DDE8
- thumb_func_end sub_811F6D8
-
- thumb_func_start sub_811F7F4
-sub_811F7F4: @ 811F7F4
- push {r4-r6,lr}
- ldr r5, _0811F84C @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r4, _0811F850 @ =gUnknown_02023A60
- lsls r1, r0, 9
- adds r6, r4, 0x2
- adds r1, r6
- ldrb r1, [r1]
- bl sub_8032AA8
- ldr r2, _0811F854 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r2
- lsls r0, 9
- adds r4, 0x1
- adds r0, r4
- ldrb r0, [r0]
- strh r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811F858 @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldrb r0, [r5]
- lsls r1, r0, 9
- adds r1, r6
- ldrb r1, [r1]
- bl sub_811F864
- ldr r1, _0811F85C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811F860 @ =sub_811E1BC
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F84C: .4byte gUnknown_02024A60
-_0811F850: .4byte gUnknown_02023A60
-_0811F854: .4byte gUnknown_02024A6A
-_0811F858: .4byte gPlayerParty
-_0811F85C: .4byte gUnknown_03004330
-_0811F860: .4byte sub_811E1BC
- thumb_func_end sub_811F7F4
-
- thumb_func_start sub_811F864
-sub_811F864: @ 811F864
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0811F9A8 @ =gUnknown_02024A6A
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, _0811F9AC @ =gUnknown_02023A60
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
- ldrh r1, [r2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0811F9B0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _0811F9B4 @ =sub_80312F0
- bl object_new_hidden_with_callback
- ldr r1, _0811F9B8 @ =gUnknown_0300434C
- mov r9, r1
- add r9, r6
- mov r1, r9
- strb r0, [r1]
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _0811F9BC @ =gUnknown_02024E8C
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r10
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _0811F9C0 @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _0811F9C4 @ =gSprites
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F9C8 @ =gUnknown_02024E84
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- 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 r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0811F9CC @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFF
- bl sub_8046400
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F9A8: .4byte gUnknown_02024A6A
-_0811F9AC: .4byte gUnknown_02023A60
-_0811F9B0: .4byte gPlayerParty
-_0811F9B4: .4byte sub_80312F0
-_0811F9B8: .4byte gUnknown_0300434C
-_0811F9BC: .4byte gUnknown_02024E8C
-_0811F9C0: .4byte gUnknown_02024BE0
-_0811F9C4: .4byte gSprites
-_0811F9C8: .4byte gUnknown_02024E84
-_0811F9CC: .4byte SpriteCallbackDummy
- thumb_func_end sub_811F864
-
- thumb_func_start sub_811F9D0
-sub_811F9D0: @ 811F9D0
- push {r4-r6,lr}
- ldr r1, _0811FA00 @ =gUnknown_02023A60
- ldr r6, _0811FA04 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _0811FA14
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0811FA08 @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _0811FA0C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FA10 @ =sub_811FA5C
- str r1, [r0]
- b _0811FA4A
- .align 2, 0
-_0811FA00: .4byte gUnknown_02023A60
-_0811FA04: .4byte gUnknown_02024A60
-_0811FA08: .4byte 0x02017810
-_0811FA0C: .4byte gUnknown_03004330
-_0811FA10: .4byte sub_811FA5C
-_0811FA14:
- ldr r5, _0811FA50 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0811FA54 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0811FA58 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl3_exec_completed
-_0811FA4A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FA50: .4byte gUnknown_02024BE0
-_0811FA54: .4byte gSprites
-_0811FA58: .4byte gUnknown_03004340
- thumb_func_end sub_811F9D0
-
- thumb_func_start sub_811FA5C
-sub_811FA5C: @ 811FA5C
- push {r4,r5,lr}
- ldr r5, _0811FA78 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0811FA7C @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0811FA80
- cmp r0, 0x1
- beq _0811FAAC
- b _0811FAD4
- .align 2, 0
-_0811FA78: .4byte gUnknown_02024A60
-_0811FA7C: .4byte 0x02017810
-_0811FA80:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0811FA9C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0811FA9C:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _0811FAD4
-_0811FAAC:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0811FAD4
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x1
- bl move_anim_start_t4
- ldr r1, _0811FADC @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FAE0 @ =sub_811DF34
- str r1, [r0]
-_0811FAD4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FADC: .4byte gUnknown_03004330
-_0811FAE0: .4byte sub_811DF34
- thumb_func_end sub_811FA5C
-
- thumb_func_start sub_811FAE4
-sub_811FAE4: @ 811FAE4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _0811FB14 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0811FB24
- ldr r6, _0811FB18 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x2
- ands r1, r0
- ldr r5, _0811FB1C @ =0x0000fff0
- cmp r1, 0
- beq _0811FB0A
- movs r5, 0x10
-_0811FB0A:
- ldr r4, _0811FB20 @ =gLinkPlayers
- ldrb r0, [r6]
- bl sub_803FC34
- b _0811FB34
- .align 2, 0
-_0811FB14: .4byte gUnknown_020239F8
-_0811FB18: .4byte gUnknown_02024A60
-_0811FB1C: .4byte 0x0000fff0
-_0811FB20: .4byte gLinkPlayers
-_0811FB24:
- movs r5, 0
- ldr r4, _0811FC08 @ =gLinkPlayers
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
-_0811FB34:
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r4, [r1, 0x13]
- ldr r6, _0811FC0C @ =gUnknown_02024A60
- ldrb r1, [r6]
- adds r0, r4, 0
- bl sub_8031AF4
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0811FC10 @ =gUnknown_02024E8C
- mov r8, r0
- lsls r5, 16
- movs r0, 0xA0
- lsls r0, 15
- adds r5, r0
- asrs r5, 16
- ldr r0, _0811FC14 @ =gTrainerBackPicCoords
- lsls r4, 2
- adds r4, r0
- ldrb r0, [r4]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 15
- adds r4, r0
- asrs r4, 16
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0811FC18 @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _0811FC1C @ =gSprites
- ldrb r3, [r6]
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0811FC20 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0811FC24 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0811FC28 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FC2C @ =sub_811DAE4
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FC08: .4byte gLinkPlayers
-_0811FC0C: .4byte gUnknown_02024A60
-_0811FC10: .4byte gUnknown_02024E8C
-_0811FC14: .4byte gTrainerBackPicCoords
-_0811FC18: .4byte gUnknown_02024BE0
-_0811FC1C: .4byte gSprites
-_0811FC20: .4byte 0x0000fffe
-_0811FC24: .4byte sub_80313A0
-_0811FC28: .4byte gUnknown_03004330
-_0811FC2C: .4byte sub_811DAE4
- thumb_func_end sub_811FAE4
-
- thumb_func_start sub_811FC30
-sub_811FC30: @ 811FC30
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FC30
-
- thumb_func_start sub_811FC3C
-sub_811FC3C: @ 811FC3C
- push {r4-r6,lr}
- ldr r6, _0811FCC8 @ =gUnknown_02024BE0
- ldr r4, _0811FCCC @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _0811FCD0 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811FCD4 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0811FCD8 @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811FCDC @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldr r1, _0811FCE0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FCE4 @ =sub_811DB1C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FCC8: .4byte gUnknown_02024BE0
-_0811FCCC: .4byte gUnknown_02024A60
-_0811FCD0: .4byte gSprites
-_0811FCD4: .4byte 0x0000ffd8
-_0811FCD8: .4byte sub_8078B34
-_0811FCDC: .4byte SpriteCallbackDummy
-_0811FCE0: .4byte gUnknown_03004330
-_0811FCE4: .4byte sub_811DB1C
- thumb_func_end sub_811FC3C
-
- thumb_func_start sub_811FCE8
-sub_811FCE8: @ 811FCE8
- push {r4,r5,lr}
- ldr r5, _0811FD2C @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0811FD30 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _0811FD34
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0811FD1A
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0811FD1A:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0811FDAA
- .align 2, 0
-_0811FD2C: .4byte gUnknown_02024A60
-_0811FD30: .4byte 0x02017810
-_0811FD34:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0811FDAA
- strb r4, [r3, 0x4]
- ldr r2, _0811FDB0 @ =gUnknown_02024A6A
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811FDB4 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- movs r1, 0x40
- negs r1, r1
- movs r0, 0x10
- bl PlaySE12WithPanning
- ldr r2, _0811FDB8 @ =gSprites
- ldr r3, _0811FDBC @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x30]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strh r1, [r0, 0x32]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0811FDC0 @ =sub_80105EC
- str r1, [r0]
- ldr r1, _0811FDC4 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FDC8 @ =sub_811DE98
- str r1, [r0]
-_0811FDAA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FDB0: .4byte gUnknown_02024A6A
-_0811FDB4: .4byte gPlayerParty
-_0811FDB8: .4byte gSprites
-_0811FDBC: .4byte gUnknown_02024BE0
-_0811FDC0: .4byte sub_80105EC
-_0811FDC4: .4byte gUnknown_03004330
-_0811FDC8: .4byte sub_811DE98
- thumb_func_end sub_811FCE8
-
- thumb_func_start sub_811FDCC
-sub_811FDCC: @ 811FDCC
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDCC
-
- thumb_func_start sub_811FDD8
-sub_811FDD8: @ 811FDD8
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDD8
-
- thumb_func_start sub_811FDE4
-sub_811FDE4: @ 811FDE4
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDE4
-
- thumb_func_start sub_811FDF0
-sub_811FDF0: @ 811FDF0
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDF0
-
- thumb_func_start sub_811FDFC
-sub_811FDFC: @ 811FDFC
- push {r4-r6,lr}
- ldr r6, _0811FEE0 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _0811FE0E
- b _0811FF1E
-_0811FE0E:
- ldr r0, _0811FEE4 @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _0811FEE8 @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _0811FEEC @ =gUnknown_0202F7BC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _0811FEF0 @ =gUnknown_0202F7B8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _0811FEF4 @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _0811FEF8 @ =gUnknown_0202F7C0
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _0811FEFC @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _0811FF00 @ =gUnknown_02024E70
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0811FF04
- bl dp01_tbl3_exec_completed
- b _0811FF1E
- .align 2, 0
-_0811FEE0: .4byte gUnknown_02024A60
-_0811FEE4: .4byte gUnknown_02023A60
-_0811FEE8: .4byte gUnknown_0202F7C4
-_0811FEEC: .4byte gUnknown_0202F7BC
-_0811FEF0: .4byte gUnknown_0202F7B8
-_0811FEF4: .4byte gUnknown_0202F7BE
-_0811FEF8: .4byte gUnknown_0202F7C0
-_0811FEFC: .4byte gUnknown_0202F7B4
-_0811FF00: .4byte gUnknown_02024E70
-_0811FF04:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811FF24 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _0811FF28 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FF2C @ =sub_811FF30
- str r1, [r0]
-_0811FF1E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FF24: .4byte 0x02017810
-_0811FF28: .4byte gUnknown_03004330
-_0811FF2C: .4byte sub_811FF30
- thumb_func_end sub_811FDFC
-
- thumb_func_start sub_811FF30
-sub_811FF30: @ 811FF30
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0811FF74 @ =gUnknown_02023A60
- ldr r5, _0811FF78 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _0811FF7C @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _0811FFBE
- cmp r2, 0x1
- bgt _0811FF80
- cmp r2, 0
- beq _0811FF8A
- b _08120088
- .align 2, 0
-_0811FF74: .4byte gUnknown_02023A60
-_0811FF78: .4byte gUnknown_02024A60
-_0811FF7C: .4byte 0x02017810
-_0811FF80:
- cmp r2, 0x2
- beq _0811FFE4
- cmp r2, 0x3
- beq _08120050
- b _08120088
-_0811FF8A:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _0811FFAE
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0811FFAE:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08120088
-_0811FFBE:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08120088
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl move_anim_start_t1
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08120088
-_0811FFE4:
- ldr r0, _08120040 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08120044 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08120088
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0812002C
- cmp r7, 0x1
- bhi _0812002C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0812002C:
- ldr r0, _08120048 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812004C @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08120088
- .align 2, 0
-_08120040: .4byte gUnknown_0202F7AC
-_08120044: .4byte gUnknown_0202F7B1
-_08120048: .4byte gUnknown_02024A60
-_0812004C: .4byte 0x02017810
-_08120050:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08120088
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl3_exec_completed
-_08120088:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811FF30
-
- thumb_func_start sub_8120094
-sub_8120094: @ 8120094
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _081200D8 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _081200DC @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _081200E0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _081200E4 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _081200E8 @ =gUnknown_03004210
- ldr r1, _081200EC @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _081200F0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081200F4 @ =sub_811DFA0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081200D8: .4byte gUnknown_030042A4
-_081200DC: .4byte gUnknown_030042A0
-_081200E0: .4byte gUnknown_02024A60
-_081200E4: .4byte gUnknown_02023A62
-_081200E8: .4byte gUnknown_03004210
-_081200EC: .4byte gUnknown_020238CC
-_081200F0: .4byte gUnknown_03004330
-_081200F4: .4byte sub_811DFA0
- thumb_func_end sub_8120094
-
- thumb_func_start sub_81200F8
-sub_81200F8: @ 81200F8
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81200F8
-
- thumb_func_start sub_8120104
-sub_8120104: @ 8120104
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120104
-
- thumb_func_start sub_8120110
-sub_8120110: @ 8120110
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120110
-
- thumb_func_start sub_812011C
-sub_812011C: @ 812011C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812011C
-
- thumb_func_start sub_8120128
-sub_8120128: @ 8120128
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120128
-
- thumb_func_start sub_8120134
-sub_8120134: @ 8120134
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120134
-
- thumb_func_start sub_8120140
-sub_8120140: @ 8120140
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120140
-
- thumb_func_start sub_812014C
-sub_812014C: @ 812014C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _081201C4 @ =gUnknown_02023A60
- ldr r0, _081201C8 @ =gUnknown_02024A60
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _081201CC @ =0x00007fff
- cmp r7, r0
- beq _081201DC
- ldr r6, _081201D0 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _081201D4 @ =gPlayerParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _081201D8 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08120206
- .align 2, 0
-_081201C4: .4byte gUnknown_02023A60
-_081201C8: .4byte gUnknown_02024A60
-_081201CC: .4byte 0x00007fff
-_081201D0: .4byte gUnknown_02024A6A
-_081201D4: .4byte gPlayerParty
-_081201D8: .4byte gUnknown_03004340
-_081201DC:
- ldr r1, _08120224 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08120228 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _0812022C @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08120206:
- ldr r1, _08120230 @ =gUnknown_03004330
- ldr r0, _08120234 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120238 @ =bx_t3_healthbar_update
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08120224: .4byte gUnknown_02024A6A
-_08120228: .4byte gPlayerParty
-_0812022C: .4byte gUnknown_03004340
-_08120230: .4byte gUnknown_03004330
-_08120234: .4byte gUnknown_02024A60
-_08120238: .4byte bx_t3_healthbar_update
- thumb_func_end sub_812014C
-
- thumb_func_start sub_812023C
-sub_812023C: @ 812023C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812023C
-
- thumb_func_start sub_8120248
-sub_8120248: @ 8120248
- push {r4,lr}
- ldr r4, _081202A0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08120298
- ldr r0, _081202A4 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _081202A8 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _081202AC @ =gPlayerParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _081202B0 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _081202B4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081202B8 @ =sub_811E38C
- str r1, [r0]
-_08120298:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081202A0: .4byte gUnknown_02024A60
-_081202A4: .4byte gUnknown_03004340
-_081202A8: .4byte gUnknown_02024A6A
-_081202AC: .4byte gPlayerParty
-_081202B0: .4byte 0x02017810
-_081202B4: .4byte gUnknown_03004330
-_081202B8: .4byte sub_811E38C
- thumb_func_end sub_8120248
-
- thumb_func_start sub_81202BC
-sub_81202BC: @ 81202BC
- push {r4,r5,lr}
- ldr r5, _08120314 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0812030C
- ldr r4, _08120318 @ =gUnknown_02023A60
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _0812031C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120320 @ =sub_811E38C
- str r1, [r0]
-_0812030C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08120314: .4byte gUnknown_02024A60
-_08120318: .4byte gUnknown_02023A60
-_0812031C: .4byte gUnknown_03004330
-_08120320: .4byte sub_811E38C
- thumb_func_end sub_81202BC
-
- thumb_func_start sub_8120324
-sub_8120324: @ 8120324
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120324
-
- thumb_func_start sub_8120330
-sub_8120330: @ 8120330
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120330
-
- thumb_func_start sub_812033C
-sub_812033C: @ 812033C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812033C
-
- thumb_func_start sub_8120348
-sub_8120348: @ 8120348
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120348
-
- thumb_func_start sub_8120354
-sub_8120354: @ 8120354
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120354
-
- thumb_func_start sub_8120360
-sub_8120360: @ 8120360
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120360
-
- thumb_func_start sub_812036C
-sub_812036C: @ 812036C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812036C
-
- thumb_func_start sub_8120378
-sub_8120378: @ 8120378
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120378
-
- thumb_func_start sub_8120384
-sub_8120384: @ 8120384
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120384
-
- thumb_func_start sub_8120390
-sub_8120390: @ 8120390
- push {lr}
- ldr r2, _081203A8 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081203A8: .4byte gUnknown_020238C8
- thumb_func_end sub_8120390
-
- thumb_func_start sub_81203AC
-sub_81203AC: @ 81203AC
- push {lr}
- ldr r3, _081203D8 @ =gUnknown_020238C8
- ldr r1, _081203DC @ =gUnknown_02023A60
- ldr r0, _081203E0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081203D8: .4byte gUnknown_020238C8
-_081203DC: .4byte gUnknown_02023A60
-_081203E0: .4byte gUnknown_02024A60
- thumb_func_end sub_81203AC
-
- thumb_func_start sub_81203E4
-sub_81203E4: @ 81203E4
- push {lr}
- ldr r2, _081203F8 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081203F8: .4byte gUnknown_020238C8
- thumb_func_end sub_81203E4
-
- thumb_func_start sub_81203FC
-sub_81203FC: @ 81203FC
- push {lr}
- ldr r3, _08120420 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08120420: .4byte gUnknown_020238C8
- thumb_func_end sub_81203FC
-
- thumb_func_start dp01t_29_3_blink
-dp01t_29_3_blink: @ 8120424
- push {r4,lr}
- ldr r3, _0812044C @ =gSprites
- ldr r2, _08120450 @ =gUnknown_02024BE0
- ldr r4, _08120454 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08120458
- bl dp01_tbl3_exec_completed
- b _08120482
- .align 2, 0
-_0812044C: .4byte gSprites
-_08120450: .4byte gUnknown_02024BE0
-_08120454: .4byte gUnknown_02024A60
-_08120458:
- ldr r1, _08120488 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _0812048C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120490 @ =bx_blink_t3
- str r1, [r0]
-_08120482:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08120488: .4byte gUnknown_02024E6D
-_0812048C: .4byte gUnknown_03004330
-_08120490: .4byte bx_blink_t3
- thumb_func_end dp01t_29_3_blink
-
- thumb_func_start sub_8120494
-sub_8120494: @ 8120494
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120494
-
- thumb_func_start sub_81204A0
-sub_81204A0: @ 81204A0
- push {r4,lr}
- ldr r4, _081204DC @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _081204B4
- movs r3, 0xC0
-_081204B4:
- ldr r2, _081204E0 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl3_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081204DC: .4byte gUnknown_02024A60
-_081204E0: .4byte gUnknown_02023A60
- thumb_func_end sub_81204A0
-
- thumb_func_start sub_81204E4
-sub_81204E4: @ 81204E4
- push {lr}
- ldr r2, _0812050C @ =gUnknown_02023A60
- ldr r0, _08120510 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812050C: .4byte gUnknown_02023A60
-_08120510: .4byte gUnknown_02024A60
- thumb_func_end sub_81204E4
-
- thumb_func_start sub_8120514
-sub_8120514: @ 8120514
- push {lr}
- ldr r1, _08120548 @ =gUnknown_02024A6A
- ldr r0, _0812054C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08120550 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- negs r1, r1
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08120548: .4byte gUnknown_02024A6A
-_0812054C: .4byte gUnknown_02024A60
-_08120550: .4byte gPlayerParty
- thumb_func_end sub_8120514
-
- thumb_func_start dp01t_2E_3_battle_intro
-dp01t_2E_3_battle_intro: @ 8120554
- push {lr}
- ldr r1, _0812057C @ =gUnknown_02023A60
- ldr r0, _08120580 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _08120584 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812057C: .4byte gUnknown_02023A60
-_08120580: .4byte gUnknown_02024A60
-_08120584: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_3_battle_intro
-
- thumb_func_start sub_8120588
-sub_8120588: @ 8120588
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r6, _081206DC @ =gUnknown_02024BE0
- ldr r7, _081206E0 @ =gUnknown_02024A60
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _081206E4 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _081206E8 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _081206EC @ =sub_8078B34
- str r1, [r0]
- ldrb r2, [r7]
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x38]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _081206F0 @ =sub_8030E38
- bl oamt_set_x3A_32
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _081206F4 @ =0x0000d6f9
- bl AllocSpritePalette
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _081206F8 @ =gTrainerBackPicPaletteTable
- mov r8, r0
- ldrb r0, [r7]
- bl sub_803FC34
- ldr r2, _081206FC @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x13]
- lsls r0, 3
- add r0, r8
- ldr r0, [r0]
- lsls r4, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- movs r2, 0x20
- bl LoadCompressedPalette
- ldrb r0, [r7]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r4
- strb r0, [r1, 0x5]
- ldr r0, _08120700 @ =sub_812071C
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08120704 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- ldrb r3, [r7]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _08120708 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081206BA
- ldr r0, _0812070C @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _08120710 @ =sub_8044CA0
- str r1, [r0]
-_081206BA:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08120714 @ =gUnknown_03004330
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120718 @ =nullsub_74
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081206DC: .4byte gUnknown_02024BE0
-_081206E0: .4byte gUnknown_02024A60
-_081206E4: .4byte gSprites
-_081206E8: .4byte 0x0000ffd8
-_081206EC: .4byte sub_8078B34
-_081206F0: .4byte sub_8030E38
-_081206F4: .4byte 0x0000d6f9
-_081206F8: .4byte gTrainerBackPicPaletteTable
-_081206FC: .4byte gLinkPlayers
-_08120700: .4byte sub_812071C
-_08120704: .4byte gTasks
-_08120708: .4byte 0x02017810
-_0812070C: .4byte gUnknown_02024E68
-_08120710: .4byte sub_8044CA0
-_08120714: .4byte gUnknown_03004330
-_08120718: .4byte nullsub_74
- thumb_func_end sub_8120588
-
- thumb_func_start sub_812071C
-sub_812071C: @ 812071C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _08120744 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x17
- bgt _08120748
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _08120804
- .align 2, 0
-_08120744: .4byte gTasks
-_08120748:
- ldr r7, _08120788 @ =gUnknown_02024A60
- ldrb r0, [r7]
- mov r9, r0
- ldrh r0, [r1, 0x8]
- strb r0, [r7]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08120768
- ldr r0, _0812078C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08120798
-_08120768:
- ldr r0, _08120790 @ =gUnknown_02023A60
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08120794 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_811F864
- b _081207EC
- .align 2, 0
-_08120788: .4byte gUnknown_02024A60
-_0812078C: .4byte gUnknown_020239F8
-_08120790: .4byte gUnknown_02023A60
-_08120794: .4byte gUnknown_02024A6A
-_08120798:
- ldr r4, _08120810 @ =gUnknown_02023A60
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r5, _08120814 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_811F864
- ldrb r0, [r7]
- movs r6, 0x2
- eors r0, r6
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _08120818 @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldrb r0, [r7]
- movs r1, 0
- bl sub_811F864
- ldrb r0, [r7]
- eors r0, r6
- strb r0, [r7]
-_081207EC:
- ldr r1, _0812081C @ =gUnknown_03004330
- ldr r2, _08120820 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120824 @ =sub_811DCA0
- str r1, [r0]
- mov r3, r9
- strb r3, [r2]
- mov r0, r8
- bl DestroyTask
-_08120804:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08120810: .4byte gUnknown_02023A60
-_08120814: .4byte gUnknown_02024A6A
-_08120818: .4byte gPlayerParty
-_0812081C: .4byte gUnknown_03004330
-_08120820: .4byte gUnknown_02024A60
-_08120824: .4byte sub_811DCA0
- thumb_func_end sub_812071C
-
- thumb_func_start dp01t_30_3_80EB11C
-dp01t_30_3_80EB11C: @ 8120828
- push {r4-r6,lr}
- ldr r1, _08120850 @ =gUnknown_02023A60
- ldr r0, _08120854 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08120858
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08120858
- bl dp01_tbl3_exec_completed
- b _081208C0
- .align 2, 0
-_08120850: .4byte gUnknown_02023A60
-_08120854: .4byte gUnknown_02024A60
-_08120858:
- ldr r5, _081208C8 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r6, _081208CC @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _081208D0 @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _081208D4 @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081208B4
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_081208B4:
- ldr r0, _081208D8 @ =gUnknown_03004330
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, _081208DC @ =sub_81208E0
- str r0, [r1]
-_081208C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081208C8: .4byte gUnknown_02024A60
-_081208CC: .4byte 0x02017810
-_081208D0: .4byte gUnknown_02023A64
-_081208D4: .4byte gUnknown_02024E68
-_081208D8: .4byte gUnknown_03004330
-_081208DC: .4byte sub_81208E0
- thumb_func_end dp01t_30_3_80EB11C
-
- thumb_func_start sub_81208E0
-sub_81208E0: @ 81208E0
- push {r4,lr}
- ldr r4, _08120918 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0812091C @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08120910
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl3_exec_completed
-_08120910:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08120918: .4byte gUnknown_02024A60
-_0812091C: .4byte 0x02017810
- thumb_func_end sub_81208E0
-
- thumb_func_start sub_8120920
-sub_8120920: @ 8120920
- push {lr}
- ldr r0, _08120958 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _0812095C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812094E
- ldr r2, _08120960 @ =gTasks
- ldr r0, _08120964 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08120968 @ =sub_8044CA0
- str r1, [r0]
-_0812094E:
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08120958: .4byte gUnknown_02024A60
-_0812095C: .4byte 0x02017810
-_08120960: .4byte gTasks
-_08120964: .4byte gUnknown_02024E68
-_08120968: .4byte sub_8044CA0
- thumb_func_end sub_8120920
-
- thumb_func_start sub_812096C
-sub_812096C: @ 812096C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812096C
-
- thumb_func_start sub_8120978
-sub_8120978: @ 8120978
- push {r4,lr}
- ldr r4, _081209C8 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _081209BE
- ldr r3, _081209CC @ =gSprites
- ldr r0, _081209D0 @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _081209D4 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_081209BE:
- bl dp01_tbl3_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081209C8: .4byte gUnknown_02024A60
-_081209CC: .4byte gSprites
-_081209D0: .4byte gUnknown_02024BE0
-_081209D4: .4byte gUnknown_02023A60
- thumb_func_end sub_8120978
-
- thumb_func_start sub_81209D8
-sub_81209D8: @ 81209D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08120A1C @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08120A30
- ldr r5, _08120A20 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _08120A24
- bl dp01_tbl3_exec_completed
- b _08120A30
- .align 2, 0
-_08120A1C: .4byte gUnknown_02024A60
-_08120A20: .4byte gUnknown_02023A60
-_08120A24:
- ldr r0, _08120A38 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08120A3C @ =sub_811E3B8
- str r0, [r1]
-_08120A30:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08120A38: .4byte gUnknown_03004330
-_08120A3C: .4byte sub_811E3B8
- thumb_func_end sub_81209D8
-
- thumb_func_start sub_8120A40
-sub_8120A40: @ 8120A40
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120A40
-
- thumb_func_start sub_8120A4C
-sub_8120A4C: @ 8120A4C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120A4C
-
- thumb_func_start sub_8120A58
-sub_8120A58: @ 8120A58
- push {r4,lr}
- ldr r2, _08120A90 @ =gUnknown_02024D26
- ldr r1, _08120A94 @ =gUnknown_02023A60
- ldr r4, _08120A98 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl3_exec_completed
- ldr r1, _08120A9C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120AA0 @ =sub_811E29C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08120A90: .4byte gUnknown_02024D26
-_08120A94: .4byte gUnknown_02023A60
-_08120A98: .4byte gUnknown_02024A60
-_08120A9C: .4byte gUnknown_03004330
-_08120AA0: .4byte sub_811E29C
- thumb_func_end sub_8120A58
-
- thumb_func_start nullsub_75
-nullsub_75: @ 8120AA4
- bx lr
- thumb_func_end nullsub_75
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_9.s b/asm/battle_9.s
new file mode 100644
index 000000000..887fbd702
--- /dev/null
+++ b/asm/battle_9.s
@@ -0,0 +1,4080 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start ai_switch_perish_song
+ai_switch_perish_song: @ 8035FEC
+ push {lr}
+ ldr r1, _08036038 @ =gStatuses3
+ ldr r0, _0803603C @ =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0803604C
+ ldr r0, _08036040 @ =gDisableStructs
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xF]
+ lsls r0, 28
+ cmp r0, 0
+ bne _0803604C
+ adds r0, r2, 0
+ bl GetBankIdentity
+ ldr r1, _08036044 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _08036048 @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x6
+ strb r1, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _0803604E
+ .align 2, 0
+_08036038: .4byte gStatuses3
+_0803603C: .4byte gActiveBank
+_08036040: .4byte gDisableStructs
+_08036044: .4byte 0x02000000
+_08036048: .4byte 0x000160c8
+_0803604C:
+ movs r0, 0
+_0803604E:
+ pop {r1}
+ bx r1
+ thumb_func_end ai_switch_perish_song
+
+ thumb_func_start sub_8036054
+sub_8036054: @ 8036054
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _0803606C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080360A0
+ b _080361C8
+ .align 2, 0
+_0803606C: .4byte gBattleTypeFlags
+_08036070:
+ ldr r0, _08036094 @ =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ ldr r1, _08036098 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _0803609C @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ strb r6, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _080361CA
+ .align 2, 0
+_08036094: .4byte gActiveBank
+_08036098: .4byte 0x02000000
+_0803609C: .4byte 0x000160c8
+_080360A0:
+ ldr r4, _080361D8 @ =gBattleMons
+ movs r0, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x19
+ beq _080360BC
+ b _080361C8
+_080360BC:
+ movs r0, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r6, 0
+ adds r7, r4, 0
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r4, r0, r7
+ movs r3, 0x20
+ adds r3, r4
+ mov r8, r3
+_080360D8:
+ lsls r1, r6, 1
+ ldr r0, _080361DC @ =gActiveBank
+ ldrb r0, [r0]
+ muls r0, r5
+ adds r1, r0
+ adds r0, r7, 0
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08036104
+ ldrh r1, [r4]
+ mov r3, r8
+ ldrb r2, [r3]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ bne _080361C8
+_08036104:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080360D8
+ movs r6, 0
+ ldr r0, _080361E0 @ =gEnemyParty
+ mov r9, r0
+_08036110:
+ movs r0, 0x64
+ adds r5, r6, 0
+ muls r5, r0
+ mov r2, r9
+ adds r4, r5, r2
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080361C2
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080361C2
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080361C2
+ ldr r1, _080361E4 @ =gBattlePartyID
+ ldr r0, _080361DC @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080361C2
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ movs r0, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r4, 0
+ mov r8, r5
+ ldr r1, _080361D8 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r5, r0, r1
+ adds r7, r5, 0
+ adds r7, 0x20
+_0803617C:
+ adds r1, r4, 0
+ adds r1, 0xD
+ mov r0, r8
+ add r0, r9
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080361BC
+ ldrh r1, [r5]
+ ldrb r2, [r7]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ beq _080361BC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080361BC
+ b _08036070
+_080361BC:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0803617C
+_080361C2:
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08036110
+_080361C8:
+ movs r0, 0
+_080361CA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080361D8: .4byte gBattleMons
+_080361DC: .4byte gActiveBank
+_080361E0: .4byte gEnemyParty
+_080361E4: .4byte gBattlePartyID
+ thumb_func_end sub_8036054
+
+ thumb_func_start sub_80361E8
+sub_80361E8: @ 80361E8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0x1
+ bl ai_has_super_effective_move_on_field
+ lsls r0, 24
+ cmp r0, 0
+ beq _08036214
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08036214
+ b _08036400
+_08036214:
+ ldr r1, _0803627C @ =gMoveHitWith
+ ldr r5, _08036280 @ =gActiveBank
+ ldrb r3, [r5]
+ lsls r0, r3, 1
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ cmp r1, 0
+ bne _08036226
+ b _08036400
+_08036226:
+ ldr r0, _08036284 @ =0x0000ffff
+ cmp r1, r0
+ bne _0803622E
+ b _08036400
+_0803622E:
+ ldr r2, _08036288 @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _08036242
+ b _08036400
+_08036242:
+ ldr r0, _0803628C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080362AE
+ mov r8, r3
+ mov r0, r8
+ bl GetBankIdentity
+ movs r4, 0x2
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r1, _08036290 @ =gAbsentBankFlags
+ ldrb r1, [r1]
+ ldr r2, _08036294 @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08036298
+ ldrb r7, [r5]
+ b _080362B2
+ .align 2, 0
+_0803627C: .4byte gMoveHitWith
+_08036280: .4byte gActiveBank
+_08036284: .4byte 0x0000ffff
+_08036288: .4byte gBattleMoves
+_0803628C: .4byte gBattleTypeFlags
+_08036290: .4byte gAbsentBankFlags
+_08036294: .4byte gBitTable
+_08036298:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _080362B2
+_080362AE:
+ adds r7, r3, 0
+ mov r8, r7
+_080362B2:
+ ldr r3, _080362D4 @ =gBattleMoves
+ ldr r1, _080362D8 @ =gMoveHitWith
+ ldr r2, _080362DC @ =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x2]
+ adds r1, r2, 0
+ cmp r0, 0xA
+ bne _080362E0
+ movs r0, 0x12
+ b _080362F2
+ .align 2, 0
+_080362D4: .4byte gBattleMoves
+_080362D8: .4byte gMoveHitWith
+_080362DC: .4byte gActiveBank
+_080362E0:
+ cmp r0, 0xB
+ bne _080362EA
+ movs r2, 0xB
+ mov r10, r2
+ b _080362F4
+_080362EA:
+ cmp r0, 0xD
+ beq _080362F0
+ b _08036400
+_080362F0:
+ movs r0, 0xA
+_080362F2:
+ mov r10, r0
+_080362F4:
+ ldr r2, _08036308 @ =gBattleMons
+ ldrb r1, [r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r10
+ bne _0803633C
+ b _08036400
+ .align 2, 0
+_08036308: .4byte gBattleMons
+_0803630C:
+ ldr r0, _08036330 @ =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ ldr r1, _08036334 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _08036338 @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ strb r6, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _08036402
+ .align 2, 0
+_08036330: .4byte gActiveBank
+_08036334: .4byte 0x02000000
+_08036338: .4byte 0x000160c8
+_0803633C:
+ movs r6, 0
+ ldr r0, _080363CC @ =gBaseStats
+ mov r9, r0
+_08036342:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _080363D0 @ =gEnemyParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080363FA
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080363FA
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080363FA
+ ldr r1, _080363D4 @ =gBattlePartyID
+ mov r2, r8
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080363FA
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080363FA
+ ldr r1, _080363D8 @ =0x02000000
+ ldr r0, _080363DC @ =0x00016068
+ add r0, r8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080363FA
+ ldr r2, _080363DC @ =0x00016068
+ adds r0, r7, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080363FA
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0
+ movs r1, 0x2E
+ bl GetMonData
+ cmp r0, 0
+ beq _080363E0
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x17]
+ b _080363EA
+ .align 2, 0
+_080363CC: .4byte gBaseStats
+_080363D0: .4byte gEnemyParty
+_080363D4: .4byte gBattlePartyID
+_080363D8: .4byte 0x02000000
+_080363DC: .4byte 0x00016068
+_080363E0:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x16]
+_080363EA:
+ cmp r10, r0
+ bne _080363FA
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _0803630C
+_080363FA:
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08036342
+_08036400:
+ movs r0, 0
+_08036402:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80361E8
+
+ thumb_func_start ai_switchout_natural_cure
+ai_switchout_natural_cure: @ 8036410
+ push {r4,r5,lr}
+ ldr r3, _08036468 @ =gBattleMons
+ ldr r5, _0803646C @ =gActiveBank
+ ldrb r4, [r5]
+ movs r0, 0x58
+ adds r2, r4, 0
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080364D8
+ adds r1, r2, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1E
+ bne _080364D8
+ ldrh r0, [r1, 0x2C]
+ ldrh r1, [r1, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bcc _080364D8
+ ldr r1, _08036470 @ =gMoveHitWith
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08036456
+ ldr r0, _08036474 @ =0x0000ffff
+ cmp r1, r0
+ bne _08036478
+_08036456:
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08036478
+ ldrb r0, [r5]
+ b _080364E0
+ .align 2, 0
+_08036468: .4byte gBattleMons
+_0803646C: .4byte gActiveBank
+_08036470: .4byte gMoveHitWith
+_08036474: .4byte 0x0000ffff
+_08036478:
+ ldr r2, _080364A4 @ =gBattleMoves
+ ldr r1, _080364A8 @ =gMoveHitWith
+ ldr r4, _080364AC @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _080364B0
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080364B0
+ ldrb r0, [r4]
+ b _080364E0
+ .align 2, 0
+_080364A4: .4byte gBattleMoves
+_080364A8: .4byte gMoveHitWith
+_080364AC: .4byte gActiveBank
+_080364B0:
+ movs r0, 0x8
+ movs r1, 0x1
+ bl sub_80366A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080364FE
+ movs r0, 0x4
+ movs r1, 0x1
+ bl sub_80366A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080364FE
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _080364DC
+_080364D8:
+ movs r0, 0
+ b _08036500
+_080364DC:
+ ldr r0, _08036508 @ =gActiveBank
+ ldrb r0, [r0]
+_080364E0:
+ bl GetBankIdentity
+ ldr r1, _0803650C @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _08036510 @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x6
+ strb r1, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_080364FE:
+ movs r0, 0x1
+_08036500:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08036508: .4byte gActiveBank
+_0803650C: .4byte 0x02000000
+_08036510: .4byte 0x000160c8
+ thumb_func_end ai_switchout_natural_cure
+
+ thumb_func_start ai_has_super_effective_move_on_field
+ai_has_super_effective_move_on_field: @ 8036514
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080365AC @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _080365B0 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0803659C
+ movs r4, 0
+ ldr r6, _080365B4 @ =gBattleMons
+ movs r7, 0x58
+ adds r0, r3, 0
+ muls r0, r7
+ adds r5, r0, r6
+ movs r0, 0x20
+ adds r0, r5
+ mov r9, r0
+_08036550:
+ lsls r1, r4, 1
+ ldr r0, _080365B8 @ =gActiveBank
+ ldrb r0, [r0]
+ muls r0, r7
+ adds r1, r0
+ adds r0, r6, 0
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08036596
+ ldrh r1, [r5]
+ mov r3, r9
+ ldrb r2, [r3]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ beq _08036596
+ mov r0, r8
+ cmp r0, 0
+ bne _080365C0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080365C0
+_08036596:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08036550
+_0803659C:
+ ldr r0, _080365BC @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080365C4
+ b _0803663E
+ .align 2, 0
+_080365AC: .4byte gAbsentBankFlags
+_080365B0: .4byte gBitTable
+_080365B4: .4byte gBattleMons
+_080365B8: .4byte gActiveBank
+_080365BC: .4byte gBattleTypeFlags
+_080365C0:
+ movs r0, 0x1
+ b _08036640
+_080365C4:
+ movs r0, 0x2
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0803664C @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _08036650 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0803663E
+ movs r4, 0
+ ldr r6, _08036654 @ =gBattleMons
+ movs r7, 0x58
+ adds r0, r3, 0
+ muls r0, r7
+ adds r5, r0, r6
+ movs r3, 0x20
+ adds r3, r5
+ mov r9, r3
+_080365F2:
+ lsls r1, r4, 1
+ ldr r0, _08036658 @ =gActiveBank
+ ldrb r0, [r0]
+ muls r0, r7
+ adds r1, r0
+ adds r0, r6, 0
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08036638
+ ldrh r1, [r5]
+ mov r3, r9
+ ldrb r2, [r3]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ beq _08036638
+ mov r0, r8
+ cmp r0, 0
+ bne _080365C0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080365C0
+_08036638:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080365F2
+_0803663E:
+ movs r0, 0
+_08036640:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803664C: .4byte gAbsentBankFlags
+_08036650: .4byte gBitTable
+_08036654: .4byte gBattleMons
+_08036658: .4byte gActiveBank
+ thumb_func_end ai_has_super_effective_move_on_field
+
+ thumb_func_start ai_is_too_invested_in_stat_buffs
+ai_is_too_invested_in_stat_buffs: @ 803665C
+ push {r4,lr}
+ movs r4, 0
+ ldr r1, _0803669C @ =gBattleMons
+ ldr r0, _080366A0 @ =gActiveBank
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x18
+ adds r2, r0, r1
+ movs r3, 0x7
+_08036670:
+ ldrb r1, [r2]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x6
+ ble _08036686
+ subs r1, 0x6
+ lsls r0, r4, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08036686:
+ adds r2, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08036670
+ movs r0, 0
+ cmp r4, 0x3
+ bls _08036696
+ movs r0, 0x1
+_08036696:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803669C: .4byte gBattleMons
+_080366A0: .4byte gActiveBank
+ thumb_func_end ai_is_too_invested_in_stat_buffs
+
+ thumb_func_start sub_80366A4
+sub_80366A4: @ 80366A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ ldr r1, _08036730 @ =gMoveHitWith
+ ldr r5, _08036734 @ =gActiveBank
+ ldrb r3, [r5]
+ lsls r0, r3, 1
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ cmp r1, 0
+ bne _080366CE
+ b _080368D8
+_080366CE:
+ ldr r0, _08036738 @ =0x0000ffff
+ cmp r1, r0
+ bne _080366D6
+ b _080368D8
+_080366D6:
+ ldr r0, _0803673C @ =gUnknown_02024C5C
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080366E2
+ b _080368D8
+_080366E2:
+ ldr r2, _08036740 @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _080366F6
+ b _080368D8
+_080366F6:
+ ldr r0, _08036744 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08036798
+ mov r9, r3
+ mov r0, r9
+ bl GetBankIdentity
+ movs r4, 0x2
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r1, _08036748 @ =gAbsentBankFlags
+ ldrb r1, [r1]
+ ldr r2, _0803674C @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08036750
+ ldrb r5, [r5]
+ mov r10, r5
+ b _0803679C
+ .align 2, 0
+_08036730: .4byte gMoveHitWith
+_08036734: .4byte gActiveBank
+_08036738: .4byte 0x0000ffff
+_0803673C: .4byte gUnknown_02024C5C
+_08036740: .4byte gBattleMoves
+_08036744: .4byte gBattleTypeFlags
+_08036748: .4byte gAbsentBankFlags
+_0803674C: .4byte gBitTable
+_08036750:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ b _0803679C
+_08036768:
+ ldr r0, _0803678C @ =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ ldr r1, _08036790 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _08036794 @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ strb r6, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _080368DA
+ .align 2, 0
+_0803678C: .4byte gActiveBank
+_08036790: .4byte 0x02000000
+_08036794: .4byte 0x000160c8
+_08036798:
+ mov r9, r3
+ mov r10, r9
+_0803679C:
+ movs r6, 0
+_0803679E:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _08036830 @ =gEnemyParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080367B6
+ b _080368D0
+_080367B6:
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ bne _080367C4
+ b _080368D0
+_080367C4:
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080368D0
+ ldr r1, _08036834 @ =gBattlePartyID
+ mov r2, r9
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080368D0
+ mov r2, r10
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080368D0
+ ldr r1, _08036838 @ =0x02000000
+ ldr r0, _0803683C @ =0x00016068
+ add r0, r9
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080368D0
+ ldr r0, _0803683C @ =0x00016068
+ add r0, r10
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080368D0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0
+ movs r1, 0x2E
+ bl GetMonData
+ cmp r0, 0
+ beq _08036844
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _08036840 @ =gBaseStats
+ adds r0, r1
+ ldrb r2, [r0, 0x17]
+ b _08036850
+ .align 2, 0
+_08036830: .4byte gEnemyParty
+_08036834: .4byte gBattlePartyID
+_08036838: .4byte 0x02000000
+_0803683C: .4byte 0x00016068
+_08036840: .4byte gBaseStats
+_08036844:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r2, _080368EC @ =gBaseStats
+ adds r0, r2
+ ldrb r2, [r0, 0x16]
+_08036850:
+ ldr r1, _080368F0 @ =gMoveHitWith
+ ldr r5, _080368F4 @ =gActiveBank
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r1, r4, 0
+ bl ai_rate_move
+ ldr r1, [sp]
+ ands r1, r0
+ cmp r1, 0
+ beq _080368D0
+ ldr r1, _080368F8 @ =gUnknown_02024C5C
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ movs r4, 0
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ mov r8, r1
+ ldr r1, _080368FC @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r5, r0, r1
+ adds r7, r5, 0
+ adds r7, 0x20
+_0803688E:
+ ldr r0, _08036900 @ =gEnemyParty
+ adds r1, r4, 0
+ adds r1, 0xD
+ add r0, r8
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080368CA
+ ldrh r1, [r5]
+ ldrb r2, [r7]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ beq _080368CA
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp, 0x4]
+ bl __modsi3
+ cmp r0, 0
+ bne _080368CA
+ b _08036768
+_080368CA:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0803688E
+_080368D0:
+ adds r6, 0x1
+ cmp r6, 0x5
+ bgt _080368D8
+ b _0803679E
+_080368D8:
+ movs r0, 0
+_080368DA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080368EC: .4byte gBaseStats
+_080368F0: .4byte gMoveHitWith
+_080368F4: .4byte gActiveBank
+_080368F8: .4byte gUnknown_02024C5C
+_080368FC: .4byte gBattleMons
+_08036900: .4byte gEnemyParty
+ thumb_func_end sub_80366A4
+
+ thumb_func_start sub_8036904
+sub_8036904: @ 8036904
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r6, _080369E0 @ =gBattleMons
+ ldr r4, _080369E4 @ =gActiveBank
+ ldrb r2, [r4]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r6, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080369E8 @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ beq _0803692A
+ b _08036AFC
+_0803692A:
+ ldr r0, _080369EC @ =gStatuses3
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x80
+ lsls r0, 3
+ ands r1, r0
+ cmp r1, 0
+ beq _0803693E
+ b _08036AFC
+_0803693E:
+ str r1, [sp]
+ movs r0, 0xC
+ adds r1, r2, 0
+ movs r2, 0x17
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08036956
+ b _08036AFC
+_08036956:
+ ldrb r1, [r4]
+ str r0, [sp]
+ movs r0, 0xC
+ movs r2, 0x47
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0803696E
+ b _08036AFC
+_0803696E:
+ str r0, [sp]
+ movs r0, 0xE
+ movs r1, 0
+ movs r2, 0x2A
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _080369A0
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _08036994
+ b _08036AFC
+_08036994:
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _080369A0
+ b _08036AFC
+_080369A0:
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _080369F0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08036A12
+ ldr r4, _080369E4 @ =gActiveBank
+ ldrb r7, [r4]
+ adds r0, r7, 0
+ bl GetBankIdentity
+ movs r5, 0x2
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r1, _080369F4 @ =gAbsentBankFlags
+ ldrb r1, [r1]
+ ldr r2, _080369F8 @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080369FC
+ ldrb r6, [r4]
+ b _08036A18
+ .align 2, 0
+_080369E0: .4byte gBattleMons
+_080369E4: .4byte gActiveBank
+_080369E8: .4byte 0x0400e000
+_080369EC: .4byte gStatuses3
+_080369F0: .4byte gBattleTypeFlags
+_080369F4: .4byte gAbsentBankFlags
+_080369F8: .4byte gBitTable
+_080369FC:
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _08036A18
+_08036A12:
+ ldr r0, _08036AE8 @ =gActiveBank
+ ldrb r6, [r0]
+ adds r7, r6, 0
+_08036A18:
+ movs r5, 0
+_08036A1A:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08036AEC @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08036A7E
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08036A7E
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08036A7E
+ ldr r1, _08036AF0 @ =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _08036A7E
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _08036A7E
+ ldr r1, _08036AF4 @ =0x02000000
+ ldr r2, _08036AF8 @ =0x00016068
+ adds r0, r7, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _08036A7E
+ adds r0, r6, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _08036A7E
+ movs r0, 0x1
+ add r8, r0
+_08036A7E:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08036A1A
+ mov r2, r8
+ cmp r2, 0
+ beq _08036AFC
+ bl ai_switch_perish_song
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ bl sub_8036054
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ bl sub_80361E8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ bl ai_switchout_natural_cure
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ movs r0, 0
+ bl ai_has_super_effective_move_on_field
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AFC
+ bl ai_is_too_invested_in_stat_buffs
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AFC
+ movs r0, 0x8
+ movs r1, 0x2
+ bl sub_80366A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ movs r0, 0x4
+ movs r1, 0x3
+ bl sub_80366A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08036AFC
+_08036AE4:
+ movs r0, 0x1
+ b _08036AFE
+ .align 2, 0
+_08036AE8: .4byte gActiveBank
+_08036AEC: .4byte gEnemyParty
+_08036AF0: .4byte gBattlePartyID
+_08036AF4: .4byte 0x02000000
+_08036AF8: .4byte 0x00016068
+_08036AFC:
+ movs r0, 0
+_08036AFE:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8036904
+
+ thumb_func_start sub_8036B0C
+sub_8036B0C: @ 8036B0C
+ push {r4-r6,lr}
+ ldr r5, _08036B68 @ =gBattleTypeFlags
+ ldrh r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08036B1C
+ b _08036C2E
+_08036B1C:
+ bl sub_8036904
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036B28
+ b _08036C24
+_08036B28:
+ ldr r4, _08036B6C @ =0x02000000
+ ldr r0, _08036B70 @ =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r1, _08036B74 @ =0x000160c8
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _08036BEA
+ bl sub_8036CD4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bne _08036BD4
+ ldrh r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08036B78
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ b _08036B8C
+ .align 2, 0
+_08036B68: .4byte gBattleTypeFlags
+_08036B6C: .4byte 0x02000000
+_08036B70: .4byte gActiveBank
+_08036B74: .4byte 0x000160c8
+_08036B78:
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x3
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08036B8C:
+ movs r4, 0
+_08036B8E:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08036C0C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08036BCE
+ ldr r1, _08036C10 @ =gBattlePartyID
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _08036BCE
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _08036BCE
+ ldr r1, _08036C14 @ =0x02000000
+ ldr r2, _08036C18 @ =0x00016068
+ adds r0, r6, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _08036BCE
+ adds r0, r5, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _08036BD4
+_08036BCE:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08036B8E
+_08036BD4:
+ ldr r0, _08036C1C @ =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ ldr r1, _08036C14 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r3, _08036C20 @ =0x000160c8
+ adds r0, r3
+ adds r0, r1
+ strb r4, [r0]
+_08036BEA:
+ ldr r4, _08036C1C @ =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ ldr r2, _08036C14 @ =0x02000000
+ ldrb r1, [r4]
+ ldr r3, _08036C18 @ =0x00016068
+ adds r1, r3
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 25
+ adds r3, 0x60
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _08036C40
+ .align 2, 0
+_08036C0C: .4byte gEnemyParty
+_08036C10: .4byte gBattlePartyID
+_08036C14: .4byte 0x02000000
+_08036C18: .4byte 0x00016068
+_08036C1C: .4byte gActiveBank
+_08036C20: .4byte 0x000160c8
+_08036C24:
+ bl sub_803708C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036C40
+_08036C2E:
+ ldr r0, _08036C48 @ =gActiveBank
+ ldrb r0, [r0]
+ movs r2, 0x1
+ eors r2, r0
+ lsls r2, 8
+ movs r0, 0x1
+ movs r1, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_08036C40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036C48: .4byte gActiveBank
+ thumb_func_end sub_8036B0C
+
+ thumb_func_start sub_8036C4C
+sub_8036C4C: @ 8036C4C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ movs r7, 0
+ ldr r0, _08036CD0 @ =gTypeEffectiveness
+ mov r10, r0
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08036CBE
+ mov r5, r10
+_08036C7A:
+ ldrb r0, [r5]
+ cmp r0, 0xFE
+ beq _08036CB0
+ ldr r1, [sp]
+ cmp r0, r1
+ bne _08036CB0
+ ldrb r4, [r5, 0x1]
+ cmp r4, r9
+ bne _08036C9A
+ ldrb r1, [r6]
+ ldrb r0, [r5, 0x2]
+ muls r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ strb r0, [r6]
+_08036C9A:
+ cmp r4, r8
+ bne _08036CB0
+ cmp r9, r8
+ beq _08036CB0
+ ldrb r1, [r6]
+ ldrb r0, [r5, 0x2]
+ muls r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ strb r0, [r6]
+_08036CB0:
+ adds r5, 0x3
+ adds r7, 0x3
+ mov r1, r10
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08036C7A
+_08036CBE:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036CD0: .4byte gTypeEffectiveness
+ thumb_func_end sub_8036C4C
+
+ thumb_func_start sub_8036CD4
+sub_8036CD4: @ 8036CD4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, _08036D1C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08036D78
+ ldr r4, _08036D20 @ =gActiveBank
+ ldrb r0, [r4]
+ str r0, [sp, 0xC]
+ bl GetBankIdentity
+ movs r5, 0x2
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r1, _08036D24 @ =gAbsentBankFlags
+ ldrb r1, [r1]
+ ldr r2, _08036D28 @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08036D2C
+ ldrb r4, [r4]
+ str r4, [sp, 0x10]
+ b _08036D42
+ .align 2, 0
+_08036D1C: .4byte gBattleTypeFlags
+_08036D20: .4byte gActiveBank
+_08036D24: .4byte gAbsentBankFlags
+_08036D28: .4byte gBitTable
+_08036D2C:
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+_08036D42:
+ bl Random
+ movs r3, 0x2
+ ands r0, r3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _08036D70 @ =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, _08036D74 @ =gBitTable
+ mov r4, r10
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08036D8C
+ eors r4, r3
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r10, r0
+ b _08036D8C
+ .align 2, 0
+_08036D70: .4byte gAbsentBankFlags
+_08036D74: .4byte gBitTable
+_08036D78:
+ movs r0, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _08036E5C @ =gActiveBank
+ ldrb r0, [r0]
+ str r0, [sp, 0x10]
+ str r0, [sp, 0xC]
+_08036D8C:
+ movs r0, 0
+ mov r9, r0
+ mov r1, sp
+ str r1, [sp, 0x14]
+_08036D94:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ movs r3, 0x6
+ str r3, [sp, 0x8]
+ movs r7, 0
+ ldr r4, _08036E60 @ =gBitTable
+ mov r8, r4
+_08036DA2:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _08036E64 @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _08036E7C
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08036E7C
+ mov r1, r8
+ ldr r0, [r1]
+ mov r2, r9
+ ands r0, r2
+ cmp r0, 0
+ bne _08036E7C
+ ldr r1, _08036E68 @ =gBattlePartyID
+ ldr r3, [sp, 0xC]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08036E7C
+ ldr r4, [sp, 0x10]
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08036E7C
+ ldr r1, _08036E6C @ =0x02000000
+ ldr r2, _08036E70 @ =0x00016068
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08036E7C
+ adds r0, r4, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08036E7C
+ ldr r1, _08036E74 @ =gBaseStats
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x6]
+ ldrb r6, [r0, 0x7]
+ movs r0, 0xA
+ ldr r3, [sp, 0x14]
+ strb r0, [r3]
+ movs r0, 0x58
+ mov r4, r10
+ muls r4, r0
+ ldr r0, _08036E78 @ =gBattleMons
+ adds r4, r0
+ adds r0, r4, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r2, r6, 0
+ mov r3, sp
+ bl sub_8036C4C
+ adds r4, 0x22
+ ldrb r0, [r4]
+ adds r1, r5, 0
+ adds r2, r6, 0
+ mov r3, sp
+ bl sub_8036C4C
+ ldr r2, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcs _08036E8A
+ ldr r2, [sp, 0x14]
+ ldrb r2, [r2]
+ str r2, [sp, 0x4]
+ lsls r0, r7, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ b _08036E8A
+ .align 2, 0
+_08036E5C: .4byte gActiveBank
+_08036E60: .4byte gBitTable
+_08036E64: .4byte gEnemyParty
+_08036E68: .4byte gBattlePartyID
+_08036E6C: .4byte 0x02000000
+_08036E70: .4byte 0x00016068
+_08036E74: .4byte gBaseStats
+_08036E78: .4byte gBattleMons
+_08036E7C:
+ mov r3, r8
+ ldr r0, [r3]
+ mov r4, r9
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r9, r0
+_08036E8A:
+ movs r0, 0x4
+ add r8, r0
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08036DA2
+ ldr r1, [sp, 0x8]
+ cmp r1, 0x6
+ beq _08036EF8
+ movs r7, 0
+ movs r0, 0x64
+ adds r5, r1, 0
+ muls r5, r0
+ ldr r6, _08036EEC @ =gEnemyParty
+_08036EA4:
+ adds r1, r7, 0
+ adds r1, 0xD
+ adds r0, r5, r6
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08036ECA
+ ldr r0, _08036EF0 @ =gActiveBank
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ mov r2, r10
+ bl move_effectiveness_something
+ movs r1, 0x2
+ ands r1, r0
+ cmp r1, 0
+ bne _08036ED0
+_08036ECA:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08036EA4
+_08036ED0:
+ cmp r7, 0x4
+ beq _08036ED6
+ b _08036FEE
+_08036ED6:
+ ldr r2, [sp, 0x8]
+ lsls r0, r2, 2
+ ldr r3, _08036EF4 @ =gBitTable
+ adds r0, r3
+ ldr r0, [r0]
+ mov r4, r9
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r0, 24
+ b _08036EFA
+ .align 2, 0
+_08036EEC: .4byte gEnemyParty
+_08036EF0: .4byte gActiveBank
+_08036EF4: .4byte gBitTable
+_08036EF8:
+ movs r0, 0x3F
+_08036EFA:
+ mov r9, r0
+ mov r1, r9
+ cmp r1, 0x3F
+ beq _08036F04
+ b _08036D94
+_08036F04:
+ ldr r0, _08037000 @ =gDynamicBasePower
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _08037004 @ =0x02000000
+ ldr r3, _08037008 @ =0x0001601c
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r4, _0803700C @ =0x0001601f
+ adds r0, r4
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08037010 @ =gBattleMoveFlags
+ strb r2, [r0]
+ ldr r0, _08037014 @ =gCritMultiplier
+ strb r1, [r0]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r1, 0x6
+ str r1, [sp, 0x8]
+ movs r7, 0
+_08036F2C:
+ movs r0, 0x64
+ adds r6, r7, 0
+ muls r6, r0
+ ldr r2, _08037018 @ =gEnemyParty
+ adds r4, r6, r2
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ adds r3, r7, 0x1
+ str r3, [sp, 0x18]
+ cmp r0, 0
+ beq _08036FE8
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08036FE8
+ ldr r1, _0803701C @ =gBattlePartyID
+ ldr r4, [sp, 0xC]
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08036FE8
+ ldr r2, [sp, 0x10]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08036FE8
+ ldr r1, _08037004 @ =0x02000000
+ ldr r3, _08037020 @ =0x00016068
+ adds r0, r4, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08036FE8
+ adds r0, r2, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08036FE8
+ movs r5, 0
+ mov r9, r6
+ ldr r4, _08037024 @ =gBattleMoveDamage
+ mov r8, r4
+ ldr r6, _08037028 @ =gActiveBank
+_08036F90:
+ adds r1, r5, 0
+ adds r1, 0xD
+ ldr r0, _08037018 @ =gEnemyParty
+ add r0, r9
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0
+ mov r1, r8
+ str r0, [r1]
+ cmp r4, 0
+ beq _08036FCC
+ ldr r0, _0803702C @ =gBattleMoves
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ beq _08036FCC
+ ldrb r0, [r6]
+ mov r1, r10
+ bl sub_801CAF8
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ mov r2, r10
+ bl move_effectiveness_something
+_08036FCC:
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r3, [sp, 0x4]
+ cmp r3, r0
+ bge _08036FE2
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ lsls r0, r7, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+_08036FE2:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08036F90
+_08036FE8:
+ ldr r7, [sp, 0x18]
+ cmp r7, 0x5
+ ble _08036F2C
+_08036FEE:
+ ldr r0, [sp, 0x8]
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08037000: .4byte gDynamicBasePower
+_08037004: .4byte 0x02000000
+_08037008: .4byte 0x0001601c
+_0803700C: .4byte 0x0001601f
+_08037010: .4byte gBattleMoveFlags
+_08037014: .4byte gCritMultiplier
+_08037018: .4byte gEnemyParty
+_0803701C: .4byte gBattlePartyID
+_08037020: .4byte 0x00016068
+_08037024: .4byte gBattleMoveDamage
+_08037028: .4byte gActiveBank
+_0803702C: .4byte gBattleMoves
+ thumb_func_end sub_8036CD4
+
+ thumb_func_start ai_identify_item_effect
+ai_identify_item_effect: @ 8037030
+ push {r4,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bne _08037040
+ movs r0, 0x1
+ b _08037086
+_08037040:
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0803704E
+ movs r0, 0x2
+ b _08037086
+_0803704E:
+ ldrb r4, [r2, 0x3]
+ movs r3, 0x3F
+ adds r0, r3, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _0803705E
+ movs r0, 0x3
+ b _08037086
+_0803705E:
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08037074
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0
+ bne _08037074
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ beq _08037078
+_08037074:
+ movs r0, 0x4
+ b _08037086
+_08037078:
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ bne _08037084
+ movs r0, 0x6
+ b _08037086
+_08037084:
+ movs r0, 0x5
+_08037086:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end ai_identify_item_effect
+
+ thumb_func_start sub_803708C
+sub_803708C: @ 803708C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ str r0, [sp]
+ mov r8, r0
+ mov r9, r0
+_080370A0:
+ movs r0, 0x64
+ mov r1, r9
+ muls r1, r0
+ ldr r0, _08037170 @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080370DC
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080370DC
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080370DC
+ ldr r0, [sp]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_080370DC:
+ movs r1, 0x1
+ add r9, r1
+ mov r2, r9
+ cmp r2, 0x5
+ ble _080370A0
+ movs r3, 0
+ mov r9, r3
+_080370EA:
+ ldr r4, _08037174 @ =0x02016a00
+ mov r0, r9
+ cmp r0, 0
+ beq _08037106
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r0, [r0]
+ mov r1, r9
+ subs r0, r1
+ adds r0, 0x1
+ ldr r2, [sp]
+ cmp r2, r0
+ ble _08037106
+ b _080374EC
+_08037106:
+ mov r3, r9
+ lsls r1, r3, 1
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ mov r10, r0
+ str r1, [sp, 0x4]
+ cmp r0, 0
+ bne _0803711C
+ b _080374EC
+_0803711C:
+ ldr r1, _08037178 @ =gItemEffectTable
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _0803712C
+ b _080374EC
+_0803712C:
+ adds r5, r1, 0
+ mov r0, r10
+ cmp r0, 0xAF
+ bne _08037136
+ ldr r5, _0803717C @ =gSaveBlock1 + 0x3676
+_08037136:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ bl ai_identify_item_effect
+ ldr r2, _08037180 @ =0xfffe9600
+ adds r4, r2
+ ldr r3, _08037184 @ =gActiveBank
+ ldrb r1, [r3]
+ lsrs r1, 1
+ ldr r2, _08037188 @ =0x000160d8
+ adds r1, r2
+ adds r1, r4
+ strb r0, [r1]
+ ldrb r0, [r3]
+ lsrs r0, 1
+ adds r0, r2
+ adds r0, r4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x5
+ bls _08037166
+ b _080374A8
+_08037166:
+ lsls r0, 2
+ ldr r1, _0803718C @ =_08037190
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08037170: .4byte gEnemyParty
+_08037174: .4byte 0x02016a00
+_08037178: .4byte gItemEffectTable
+_0803717C: .4byte gSaveBlock1 + 0x3676
+_08037180: .4byte 0xfffe9600
+_08037184: .4byte gActiveBank
+_08037188: .4byte 0x000160d8
+_0803718C: .4byte _08037190
+ .align 2, 0
+_08037190:
+ .4byte _080371A8
+ .4byte _080371D0
+ .4byte _0803721C
+ .4byte _08037388
+ .4byte _08037468
+ .4byte _080374F8
+_080371A8:
+ ldr r2, _080371C8 @ =gBattleMons
+ ldr r0, _080371CC @ =gActiveBank
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x2C]
+ ldrh r0, [r0, 0x28]
+ lsrs r1, 2
+ cmp r0, r1
+ bcc _080371C0
+ b _080374A8
+_080371C0:
+ cmp r0, 0
+ bne _080371C6
+ b _080374A8
+_080371C6:
+ b _08037450
+ .align 2, 0
+_080371C8: .4byte gBattleMons
+_080371CC: .4byte gActiveBank
+_080371D0:
+ mov r0, r10
+ movs r1, 0x4
+ movs r2, 0x4
+ bl GetItemEffectParamOffset
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080371E4
+ b _080374A8
+_080371E4:
+ ldr r2, _08037214 @ =gBattleMons
+ ldr r0, _08037218 @ =gActiveBank
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x28]
+ cmp r2, 0
+ bne _080371F8
+ b _080374A8
+_080371F8:
+ ldrh r3, [r1, 0x2C]
+ lsrs r0, r3, 2
+ cmp r2, r0
+ bcs _08037202
+ b _08037496
+_08037202:
+ adds r0, r2, 0
+ subs r0, r3, r0
+ adds r1, r5, r4
+ ldrb r1, [r1]
+ cmp r0, r1
+ bgt _08037210
+ b _080374A8
+_08037210:
+ b _08037496
+ .align 2, 0
+_08037214: .4byte gBattleMons
+_08037218: .4byte gActiveBank
+_0803721C:
+ ldr r2, _08037378 @ =0x02000000
+ ldr r3, _0803737C @ =gActiveBank
+ ldrb r0, [r3]
+ lsrs r0, 1
+ ldr r6, _08037380 @ =0x000160da
+ adds r0, r6
+ adds r0, r2
+ movs r1, 0
+ mov r12, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldrb r1, [r5, 0x3]
+ movs r7, 0x20
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08037264
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08037264
+ lsrs r1, r4, 1
+ adds r1, r6
+ adds r1, r2
+ ldrb r0, [r1]
+ orrs r0, r7
+ strb r0, [r1]
+ movs r0, 0x1
+ mov r8, r0
+_08037264:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x10
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080372A0
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0803728E
+ movs r0, 0x80
+ ands r1, r0
+ cmp r1, 0
+ beq _080372A0
+_0803728E:
+ lsrs r1, r4, 1
+ ldr r0, _08037380 @ =0x000160da
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ movs r1, 0x1
+ mov r8, r1
+_080372A0:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x8
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080372D4
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080372D4
+ lsrs r0, r4, 1
+ ldr r1, _08037380 @ =0x000160da
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ movs r0, 0x1
+ mov r8, r0
+_080372D4:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x4
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08037308
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08037308
+ lsrs r0, r4, 1
+ ldr r1, _08037380 @ =0x000160da
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ movs r0, 0x1
+ mov r8, r0
+_08037308:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803733C
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803733C
+ lsrs r0, r4, 1
+ ldr r1, _08037380 @ =0x000160da
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ movs r0, 0x1
+ mov r8, r0
+_0803733C:
+ ldrb r1, [r5, 0x3]
+ movs r4, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0803734A
+ b _080374A8
+_0803734A:
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r3, [r3]
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _08037362
+ b _080374A8
+_08037362:
+ lsrs r0, r3, 1
+ ldr r1, _08037380 @ =0x000160da
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r4
+ strb r1, [r0]
+ movs r2, 0x1
+ mov r8, r2
+ b _080374AE
+ .align 2, 0
+_08037378: .4byte 0x02000000
+_0803737C: .4byte gActiveBank
+_08037380: .4byte 0x000160da
+_08037384: .4byte gBattleMons
+_08037388:
+ ldr r6, _08037458 @ =0x02000000
+ ldr r4, _0803745C @ =gActiveBank
+ ldrb r0, [r4]
+ lsrs r0, 1
+ ldr r3, _08037460 @ =0x000160da
+ adds r0, r3
+ adds r0, r6
+ movs r1, 0
+ mov r12, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _08037464 @ =gDisableStructs
+ ldrb r2, [r4]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x16]
+ cmp r0, 0
+ beq _080374A8
+ ldrb r1, [r5]
+ movs r7, 0xF
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080373CA
+ lsrs r0, r2, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+_080373CA:
+ ldrb r1, [r5, 0x1]
+ movs r2, 0xF0
+ mov r8, r2
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _080373E8
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+_080373E8:
+ ldrb r1, [r5, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08037402
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08037402:
+ ldrb r1, [r5, 0x2]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803741C
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_0803741C:
+ ldrb r1, [r5, 0x2]
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08037436
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+_08037436:
+ ldrb r1, [r5]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ beq _08037450
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_08037450:
+ movs r3, 0x1
+ mov r8, r3
+ b _080374AE
+ .align 2, 0
+_08037458: .4byte 0x02000000
+_0803745C: .4byte gActiveBank
+_08037460: .4byte 0x000160da
+_08037464: .4byte gDisableStructs
+_08037468:
+ ldr r4, _0803749C @ =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080374A0 @ =gDisableStructs
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x16]
+ cmp r0, 0
+ beq _080374A8
+ ldr r0, _080374A4 @ =gSideTimer
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ bne _080374A8
+_08037496:
+ movs r0, 0x1
+ mov r8, r0
+ b _080374AE
+ .align 2, 0
+_0803749C: .4byte gActiveBank
+_080374A0: .4byte gDisableStructs
+_080374A4: .4byte gSideTimer
+_080374A8:
+ mov r1, r8
+ cmp r1, 0
+ beq _080374EC
+_080374AE:
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ ldr r1, _080374DC @ =0x02000000
+ ldr r0, _080374E0 @ =gActiveBank
+ ldrb r0, [r0]
+ lsrs r0, 1
+ lsls r0, 1
+ ldr r2, _080374E4 @ =0x000160d4
+ adds r0, r2
+ adds r0, r1
+ movs r2, 0
+ mov r3, r10
+ strb r3, [r0]
+ ldr r0, _080374E8 @ =0x00016a24
+ adds r1, r0
+ ldr r3, [sp, 0x4]
+ adds r1, r3, r1
+ strh r2, [r1]
+ mov r0, r8
+ b _080374FA
+ .align 2, 0
+_080374DC: .4byte 0x02000000
+_080374E0: .4byte gActiveBank
+_080374E4: .4byte 0x000160d4
+_080374E8: .4byte 0x00016a24
+_080374EC:
+ movs r0, 0x1
+ add r9, r0
+ mov r1, r9
+ cmp r1, 0x3
+ bgt _080374F8
+ b _080370EA
+_080374F8:
+ movs r0, 0
+_080374FA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803708C
+
+ thumb_func_start nullsub_47
+nullsub_47: @ 803750C
+ bx lr
+ thumb_func_end nullsub_47
+
+ thumb_func_start SetBankFuncToLinkOpponentBufferRunCommand
+SetBankFuncToLinkOpponentBufferRunCommand: @ 8037510
+ ldr r1, _08037520 @ =gBattleBankFunc
+ ldr r0, _08037524 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037528 @ =sub_803752C
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08037520: .4byte gBattleBankFunc
+_08037524: .4byte gActiveBank
+_08037528: .4byte sub_803752C
+ thumb_func_end SetBankFuncToLinkOpponentBufferRunCommand
+
+ thumb_func_start sub_803752C
+sub_803752C: @ 803752C
+ push {lr}
+ ldr r2, _08037560 @ =gBattleExecBuffer
+ ldr r1, _08037564 @ =gBitTable
+ ldr r0, _08037568 @ =gActiveBank
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08037578
+ ldr r0, _0803756C @ =gBattleBufferA
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _08037574
+ ldr r0, _08037570 @ =gLinkOpponentBufferCommands
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _08037578
+ .align 2, 0
+_08037560: .4byte gBattleExecBuffer
+_08037564: .4byte gBitTable
+_08037568: .4byte gActiveBank
+_0803756C: .4byte gBattleBufferA
+_08037570: .4byte gLinkOpponentBufferCommands
+_08037574:
+ bl dp01_tbl4_exec_completed
+_08037578:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803752C
+
+ thumb_func_start sub_803757C
+sub_803757C: @ 803757C
+ push {lr}
+ ldr r2, _080375A4 @ =gSprites
+ ldr r1, _080375A8 @ =gObjectBankIDs
+ ldr r0, _080375AC @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _080375B0 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _080375A0
+ bl dp01_tbl4_exec_completed
+_080375A0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080375A4: .4byte gSprites
+_080375A8: .4byte gObjectBankIDs
+_080375AC: .4byte gActiveBank
+_080375B0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_803757C
+
+ thumb_func_start sub_80375B4
+sub_80375B4: @ 80375B4
+ push {r4-r6,lr}
+ ldr r4, _0803762C @ =gSprites
+ ldr r6, _08037630 @ =gObjectBankIDs
+ ldr r5, _08037634 @ =gActiveBank
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r2, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r0, _08037638 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08037624
+ adds r0, r2, r4
+ ldrh r0, [r0, 0x6]
+ bl sub_8031B74
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x38]
+ ldr r2, _0803763C @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08037640 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ bl dp01_tbl4_exec_completed
+_08037624:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803762C: .4byte gSprites
+_08037630: .4byte gObjectBankIDs
+_08037634: .4byte gActiveBank
+_08037638: .4byte SpriteCallbackDummy
+_0803763C: .4byte 0x000003ff
+_08037640: .4byte 0xfffffc00
+ thumb_func_end sub_80375B4
+
+ thumb_func_start sub_8037644
+sub_8037644: @ 8037644
+ push {lr}
+ ldr r3, _08037678 @ =gActiveBank
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _0803767C @ =0x02017810
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _08037674
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ bl dp01_tbl4_exec_completed
+_08037674:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037678: .4byte gActiveBank
+_0803767C: .4byte 0x02017810
+ thumb_func_end sub_8037644
+
+ thumb_func_start sub_8037680
+sub_8037680: @ 8037680
+ push {r4-r7,lr}
+ movs r6, 0
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080376A4
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080376D8
+ ldr r0, _080376C4 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080376D8
+_080376A4:
+ ldr r2, _080376C8 @ =gSprites
+ ldr r1, _080376CC @ =gHealthboxIDs
+ ldr r0, _080376D0 @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _080376D4 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0803770E
+ b _0803770C
+ .align 2, 0
+_080376C4: .4byte gBattleTypeFlags
+_080376C8: .4byte gSprites
+_080376CC: .4byte gHealthboxIDs
+_080376D0: .4byte gActiveBank
+_080376D4: .4byte SpriteCallbackDummy
+_080376D8:
+ ldr r2, _080377D8 @ =gSprites
+ ldr r5, _080377DC @ =gHealthboxIDs
+ ldr r0, _080377E0 @ =gActiveBank
+ ldrb r3, [r0]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r4, [r0]
+ ldr r0, _080377E4 @ =SpriteCallbackDummy
+ cmp r4, r0
+ bne _0803770E
+ movs r0, 0x2
+ eors r3, r0
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _0803770E
+_0803770C:
+ movs r6, 0x1
+_0803770E:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803771A
+ movs r6, 0
+_0803771A:
+ cmp r6, 0
+ bne _08037720
+ b _08037822
+_08037720:
+ ldr r7, _080377E0 @ =gActiveBank
+ ldrb r0, [r7]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ bne _080377B4
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r5, _080377E8 @ =0x02017810
+ adds r4, r0, r5
+ ldrb r1, [r4, 0x1]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08037822
+ movs r6, 0x2
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08037822
+ ldrb r1, [r4]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ strb r4, [r0, 0x1]
+ ldr r4, _080377EC @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+_080377B4:
+ ldr r0, _080377F0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080377F8
+ ldrb r0, [r7]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08037804
+ ldr r0, _080377F4 @ =gMPlay_BGM
+ bl m4aMPlayContinue
+ b _08037804
+ .align 2, 0
+_080377D8: .4byte gSprites
+_080377DC: .4byte gHealthboxIDs
+_080377E0: .4byte gActiveBank
+_080377E4: .4byte SpriteCallbackDummy
+_080377E8: .4byte 0x02017810
+_080377EC: .4byte 0x000027f9
+_080377F0: .4byte gBattleTypeFlags
+_080377F4: .4byte gMPlay_BGM
+_080377F8:
+ ldr r0, _08037828 @ =gMPlay_BGM
+ ldr r1, _0803782C @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08037804:
+ ldr r2, _08037830 @ =gActiveBank
+ ldrb r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037834 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, _08037838 @ =gBattleBankFunc
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803783C @ =sub_8037644
+ str r1, [r0]
+_08037822:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037828: .4byte gMPlay_BGM
+_0803782C: .4byte 0x0000ffff
+_08037830: .4byte gActiveBank
+_08037834: .4byte 0x02017810
+_08037838: .4byte gBattleBankFunc
+_0803783C: .4byte sub_8037644
+ thumb_func_end sub_8037680
+
+ thumb_func_start sub_8037840
+sub_8037840: @ 8037840
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r6, _08037A48 @ =gActiveBank
+ ldrb r2, [r6]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r5, _08037A4C @ =0x02017810
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r4, 0x88
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08037878
+ ldr r0, _08037A50 @ =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08037A54 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08037878:
+ ldrb r0, [r6]
+ movs r7, 0x2
+ adds r2, r7, 0
+ eors r2, r0
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080378A6
+ ldr r0, _08037A50 @ =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08037A54 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_080378A6:
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r3, 0x8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080378BE
+ b _08037A3A
+_080378BE:
+ adds r1, r2, 0
+ eors r1, r7
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080378DA
+ b _08037A3A
+_080378DA:
+ ldr r0, _08037A58 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803791A
+ adds r0, r2, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _0803791A
+ ldrb r0, [r6]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x9]
+ adds r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0803790E
+ b _08037A3A
+_0803790E:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strb r4, [r0, 0x9]
+_0803791A:
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _080379B2
+ ldr r0, _08037A58 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080379B2
+ ldr r1, _08037A5C @ =gUnknown_0300434C
+ ldr r5, _08037A48 @ =gActiveBank
+ ldrb r0, [r5]
+ movs r4, 0x2
+ eors r0, r4
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037A60 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r0, _08037A64 @ =gHealthboxIDs
+ mov r8, r0
+ ldrb r0, [r5]
+ adds r1, r4, 0
+ eors r1, r0
+ mov r2, r8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ ldr r2, _08037A50 @ =gBattlePartyID
+ mov r10, r2
+ lsls r1, 1
+ add r1, r10
+ ldrh r1, [r1]
+ movs r2, 0x64
+ mov r9, r2
+ mov r2, r9
+ muls r2, r1
+ adds r1, r2, 0
+ ldr r6, _08037A54 @ =gEnemyParty
+ adds r1, r6
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ eors r0, r4
+ bl sub_804777C
+ ldrb r0, [r5]
+ eors r0, r4
+ add r0, r8
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r5]
+ eors r4, r0
+ lsls r0, r4, 1
+ add r0, r10
+ ldrh r0, [r0]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+_080379B2:
+ ldr r1, _08037A5C @ =gUnknown_0300434C
+ ldr r4, _08037A48 @ =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037A60 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r5, _08037A64 @ =gHealthboxIDs
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _08037A50 @ =gBattlePartyID
+ mov r9, r2
+ lsls r1, 1
+ add r1, r9
+ ldrh r1, [r1]
+ movs r2, 0x64
+ mov r8, r2
+ mov r2, r8
+ muls r2, r1
+ adds r1, r2, 0
+ ldr r6, _08037A54 @ =gEnemyParty
+ adds r1, r6
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r5, [r4]
+ lsls r0, r5, 1
+ add r0, r9
+ ldrh r0, [r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl sub_8032984
+ ldr r2, _08037A68 @ =0x02017840
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _08037A6C @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037A70 @ =sub_8037680
+ str r1, [r0]
+_08037A3A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037A48: .4byte gActiveBank
+_08037A4C: .4byte 0x02017810
+_08037A50: .4byte gBattlePartyID
+_08037A54: .4byte gEnemyParty
+_08037A58: .4byte gBattleTypeFlags
+_08037A5C: .4byte gUnknown_0300434C
+_08037A60: .4byte gSprites
+_08037A64: .4byte gHealthboxIDs
+_08037A68: .4byte 0x02017840
+_08037A6C: .4byte gBattleBankFunc
+_08037A70: .4byte sub_8037680
+ thumb_func_end sub_8037840
+
+ thumb_func_start sub_8037A74
+sub_8037A74: @ 8037A74
+ push {r4-r7,lr}
+ ldr r2, _08037ACC @ =gSprites
+ ldr r0, _08037AD0 @ =gObjectBankIDs
+ ldr r7, _08037AD4 @ =gActiveBank
+ ldrb r3, [r7]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r2, r0, 31
+ cmp r2, 0x1
+ bne _08037B18
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bne _08037B18
+ lsls r4, r3, 1
+ adds r0, r4, r3
+ lsls r0, 2
+ ldr r6, _08037AD8 @ =0x02017810
+ adds r1, r0, r6
+ ldrb r5, [r1]
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ bne _08037AE4
+ ldr r0, _08037ADC @ =gBattlePartyID
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08037AE0 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_8141828
+ b _08037B18
+ .align 2, 0
+_08037ACC: .4byte gSprites
+_08037AD0: .4byte gObjectBankIDs
+_08037AD4: .4byte gActiveBank
+_08037AD8: .4byte 0x02017810
+_08037ADC: .4byte gBattlePartyID
+_08037AE0: .4byte gEnemyParty
+_08037AE4:
+ ldrb r0, [r1, 0x1]
+ ands r2, r0
+ cmp r2, 0
+ beq _08037B18
+ movs r0, 0x7F
+ ands r0, r5
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _08037B20 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ bl dp01_tbl4_exec_completed
+_08037B18:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037B20: .4byte 0x000027f9
+ thumb_func_end sub_8037A74
+
+ thumb_func_start sub_8037B24
+sub_8037B24: @ 8037B24
+ push {r4-r6,lr}
+ ldr r6, _08037B64 @ =gActiveBank
+ ldrb r0, [r6]
+ ldr r5, _08037B68 @ =gHealthboxIDs
+ adds r1, r0, r5
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08037B6C
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r2, 0
+ bl sub_80440EC
+ b _08037B70
+ .align 2, 0
+_08037B64: .4byte gActiveBank
+_08037B68: .4byte gHealthboxIDs
+_08037B6C:
+ bl dp01_tbl4_exec_completed
+_08037B70:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8037B24
+
+ thumb_func_start sub_8037B78
+sub_8037B78: @ 8037B78
+ push {lr}
+ ldr r2, _08037BAC @ =gSprites
+ ldr r0, _08037BB0 @ =gObjectBankIDs
+ ldr r1, _08037BB4 @ =gActiveBank
+ ldrb r3, [r1]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ bne _08037BA6
+ ldr r0, _08037BB8 @ =gHealthboxIDs
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl4_exec_completed
+_08037BA6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037BAC: .4byte gSprites
+_08037BB0: .4byte gObjectBankIDs
+_08037BB4: .4byte gActiveBank
+_08037BB8: .4byte gHealthboxIDs
+ thumb_func_end sub_8037B78
+
+ thumb_func_start sub_8037BBC
+sub_8037BBC: @ 8037BBC
+ push {r4-r6,lr}
+ ldr r6, _08037C18 @ =gActiveBank
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _08037C1C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08037C12
+ ldr r5, _08037C20 @ =gObjectBankIDs
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08037C24 @ =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldrb r0, [r6]
+ bl sub_8032A08
+ ldr r1, _08037C28 @ =gHealthboxIDs
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl4_exec_completed
+_08037C12:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037C18: .4byte gActiveBank
+_08037C1C: .4byte 0x02017810
+_08037C20: .4byte gObjectBankIDs
+_08037C24: .4byte gSprites
+_08037C28: .4byte gHealthboxIDs
+ thumb_func_end sub_8037BBC
+
+ thumb_func_start sub_8037C2C
+sub_8037C2C: @ 8037C2C
+ push {lr}
+ ldr r0, _08037C40 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _08037C3A
+ bl dp01_tbl4_exec_completed
+_08037C3A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037C40: .4byte gUnknown_03004210
+ thumb_func_end sub_8037C2C
+
+ thumb_func_start dp01t_0F_4_move_anim
+dp01t_0F_4_move_anim: @ 8037C44
+ push {r4,lr}
+ ldr r1, _08037C80 @ =gObjectBankIDs
+ ldr r0, _08037C84 @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _08037C88 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x20
+ bne _08037C90
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x5
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08037C8C @ =gDoingBattleAnim
+ strb r3, [r0]
+ bl dp01_tbl4_exec_completed
+ b _08037CBA
+ .align 2, 0
+_08037C80: .4byte gObjectBankIDs
+_08037C84: .4byte gActiveBank
+_08037C88: .4byte gSprites
+_08037C8C: .4byte gDoingBattleAnim
+_08037C90:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08037CB4
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_08037CB4:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_08037CBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_0F_4_move_anim
+
+ thumb_func_start sub_8037CC0
+sub_8037CC0: @ 8037CC0
+ push {r4,lr}
+ ldr r2, _08037D10 @ =gSprites
+ ldr r0, _08037D14 @ =gHealthboxIDs
+ ldr r4, _08037D18 @ =gActiveBank
+ ldrb r3, [r4]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08037D1C @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08037D08
+ lsls r0, r3, 2
+ ldr r1, _08037D20 @ =0x02017800
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08037CFC
+ adds r0, r3, 0
+ adds r1, r3, 0
+ adds r2, r3, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_08037CFC:
+ ldr r0, _08037D24 @ =gBattleBankFunc
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08037D28 @ =sub_8037D2C
+ str r0, [r1]
+_08037D08:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037D10: .4byte gSprites
+_08037D14: .4byte gHealthboxIDs
+_08037D18: .4byte gActiveBank
+_08037D1C: .4byte SpriteCallbackDummy
+_08037D20: .4byte 0x02017800
+_08037D24: .4byte gBattleBankFunc
+_08037D28: .4byte sub_8037D2C
+ thumb_func_end sub_8037CC0
+
+ thumb_func_start sub_8037D2C
+sub_8037D2C: @ 8037D2C
+ push {lr}
+ ldr r0, _08037D58 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037D5C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08037D52
+ ldr r0, _08037D60 @ =c3_0802FDF4
+ movs r1, 0xA
+ bl CreateTask
+ bl dp01_tbl4_exec_completed
+_08037D52:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037D58: .4byte gActiveBank
+_08037D5C: .4byte 0x02017810
+_08037D60: .4byte c3_0802FDF4
+ thumb_func_end sub_8037D2C
+
+ thumb_func_start sub_8037D64
+sub_8037D64: @ 8037D64
+ push {r4,r5,lr}
+ ldr r5, _08037E08 @ =gActiveBank
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _08037E0C @ =0x02017810
+ adds r2, r0, r3
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08037E00
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _08037E10 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r1, _08037E14 @ =gObjectBankIDs
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037E18 @ =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r4, _08037E1C @ =gHealthboxIDs
+ ldrb r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _08037E20 @ =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08037E24 @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ bl sub_804777C
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r5]
+ bl sub_8031F88
+ ldr r1, _08037E28 @ =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037E2C @ =sub_8037CC0
+ str r1, [r0]
+_08037E00:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037E08: .4byte gActiveBank
+_08037E0C: .4byte 0x02017810
+_08037E10: .4byte 0x000027f9
+_08037E14: .4byte gObjectBankIDs
+_08037E18: .4byte gSprites
+_08037E1C: .4byte gHealthboxIDs
+_08037E20: .4byte gBattlePartyID
+_08037E24: .4byte gEnemyParty
+_08037E28: .4byte gBattleBankFunc
+_08037E2C: .4byte sub_8037CC0
+ thumb_func_end sub_8037D64
+
+ thumb_func_start sub_8037E30
+sub_8037E30: @ 8037E30
+ push {r4-r6,lr}
+ ldr r5, _08037ECC @ =gActiveBank
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r6, _08037ED0 @ =0x02017810
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _08037E5E
+ ldr r0, _08037ED4 @ =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08037ED8 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08037E5E:
+ ldr r4, _08037EDC @ =gSprites
+ ldr r0, _08037EE0 @ =gUnknown_0300434C
+ ldrb r2, [r5]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r3, r0
+ ldr r1, [r0]
+ ldr r0, _08037EE4 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08037EC4
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08037EC4
+ adds r0, r3, r4
+ bl DestroySprite
+ ldrb r4, [r5]
+ ldr r1, _08037ED4 @ =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08037ED8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+ ldr r1, _08037EE8 @ =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037EEC @ =sub_8037D64
+ str r1, [r0]
+_08037EC4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037ECC: .4byte gActiveBank
+_08037ED0: .4byte 0x02017810
+_08037ED4: .4byte gBattlePartyID
+_08037ED8: .4byte gEnemyParty
+_08037EDC: .4byte gSprites
+_08037EE0: .4byte gUnknown_0300434C
+_08037EE4: .4byte SpriteCallbackDummy
+_08037EE8: .4byte gBattleBankFunc
+_08037EEC: .4byte sub_8037D64
+ thumb_func_end sub_8037E30
+
+ thumb_func_start sub_8037EF0
+sub_8037EF0: @ 8037EF0
+ push {lr}
+ ldr r0, _08037F20 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08037F1C
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r3, _08037F24 @ =gMain
+ ldr r0, _08037F28 @ =0x0000043d
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08037F2C @ =gPreBattleCallback1
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, _08037F30 @ =c2_8011A1C
+ bl SetMainCallback2
+_08037F1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037F20: .4byte gReceivedRemoteLinkPlayers
+_08037F24: .4byte gMain
+_08037F28: .4byte 0x0000043d
+_08037F2C: .4byte gPreBattleCallback1
+_08037F30: .4byte c2_8011A1C
+ thumb_func_end sub_8037EF0
+
+ thumb_func_start sub_8037F34
+sub_8037F34: @ 8037F34
+ push {lr}
+ ldr r0, _08037F64 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08037F9A
+ ldr r0, _08037F68 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08037F78
+ bl sub_800832C
+ ldr r1, _08037F6C @ =gBattleBankFunc
+ ldr r0, _08037F70 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037F74 @ =sub_8037EF0
+ str r1, [r0]
+ b _08037F9A
+ .align 2, 0
+_08037F64: .4byte gPaletteFade
+_08037F68: .4byte gBattleTypeFlags
+_08037F6C: .4byte gBattleBankFunc
+_08037F70: .4byte gActiveBank
+_08037F74: .4byte sub_8037EF0
+_08037F78:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r2, _08037FA0 @ =gMain
+ ldr r0, _08037FA4 @ =0x0000043d
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _08037FA8 @ =gPreBattleCallback1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_08037F9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037FA0: .4byte gMain
+_08037FA4: .4byte 0x0000043d
+_08037FA8: .4byte gPreBattleCallback1
+ thumb_func_end sub_8037F34
+
+ thumb_func_start sub_8037FAC
+sub_8037FAC: @ 8037FAC
+ push {lr}
+ ldr r0, _08037FD0 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037FD4 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08037FCA
+ bl dp01_tbl4_exec_completed
+_08037FCA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037FD0: .4byte gActiveBank
+_08037FD4: .4byte 0x02017810
+ thumb_func_end sub_8037FAC
+
+ thumb_func_start sub_8037FD8
+sub_8037FD8: @ 8037FD8
+ push {lr}
+ ldr r0, _08037FFC @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08038000 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08037FF6
+ bl dp01_tbl4_exec_completed
+_08037FF6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037FFC: .4byte gActiveBank
+_08038000: .4byte 0x02017810
+ thumb_func_end sub_8037FD8
+
+ thumb_func_start dp01_tbl4_exec_completed
+dp01_tbl4_exec_completed: @ 8038004
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _08038044 @ =gBattleBankFunc
+ ldr r4, _08038048 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803804C @ =sub_803752C
+ str r1, [r0]
+ ldr r0, _08038050 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08038058
+ bl GetMultiplayerId
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl dp01_prepare_buffer_wireless_probably
+ ldr r1, _08038054 @ =gBattleBufferA
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0803806A
+ .align 2, 0
+_08038044: .4byte gBattleBankFunc
+_08038048: .4byte gActiveBank
+_0803804C: .4byte sub_803752C
+_08038050: .4byte gBattleTypeFlags
+_08038054: .4byte gBattleBufferA
+_08038058:
+ ldr r2, _08038074 @ =gBattleExecBuffer
+ ldr r1, _08038078 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0803806A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08038074: .4byte gBattleExecBuffer
+_08038078: .4byte gBitTable
+ thumb_func_end dp01_tbl4_exec_completed
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_ai.s b/asm/battle_ai.s
deleted file mode 100644
index 78e928ac7..000000000
--- a/asm/battle_ai.s
+++ /dev/null
@@ -1,2170 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start BattleAICmd_if_status_in_party
-BattleAICmd_if_status_in_party: @ 8108964
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0810897C @ =gAIScriptPtr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- cmp r1, 0x1
- bne _081089A4
- ldr r1, _08108980 @ =gEnemyParty
- b _081089A6
- .align 2, 0
-_0810897C: .4byte gAIScriptPtr
-_08108980: .4byte gEnemyParty
-_08108984:
- ldr r3, _081089A0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108A12
- .align 2, 0
-_081089A0: .4byte gAIScriptPtr
-_081089A4:
- ldr r1, _08108A20 @ =gPlayerParty
-_081089A6:
- mov r9, r1
- ldr r1, [r0]
- ldrb r7, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r7, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r7, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r7, r0
- movs r0, 0
- mov r8, r0
- movs r1, 0xCE
- lsls r1, 1
- mov r10, r1
-_081089C8:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- add r4, r9
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- cmp r5, 0
- beq _08108A00
- cmp r5, r10
- beq _08108A00
- cmp r6, 0
- beq _08108A00
- cmp r0, r7
- beq _08108984
-_08108A00:
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _081089C8
- ldr r1, _08108A24 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_08108A12:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108A20: .4byte gPlayerParty
-_08108A24: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_if_status_in_party
-
- thumb_func_start BattleAICmd_if_status_not_in_party
-BattleAICmd_if_status_not_in_party: @ 8108A28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08108A44 @ =gAIScriptPtr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r2, r0, 0
- cmp r1, 0x1
- bne _08108A4C
- ldr r0, _08108A48 @ =gEnemyParty
- mov r10, r0
- b _08108A50
- .align 2, 0
-_08108A44: .4byte gAIScriptPtr
-_08108A48: .4byte gEnemyParty
-_08108A4C:
- ldr r1, _08108AE4 @ =gPlayerParty
- mov r10, r1
-_08108A50:
- ldr r1, [r2]
- ldrb r7, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r7, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r7, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r7, r0
- movs r0, 0
- mov r8, r0
- mov r9, r2
-_08108A6C:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- add r4, r10
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- cmp r5, 0
- beq _08108AB0
- movs r1, 0xCE
- lsls r1, 1
- cmp r5, r1
- beq _08108AB0
- cmp r6, 0
- beq _08108AB0
- cmp r0, r7
- bne _08108AB0
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_08108AB0:
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _08108A6C
- ldr r3, _08108AE8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108AE4: .4byte gPlayerParty
-_08108AE8: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_if_status_not_in_party
-
- thumb_func_start BattleAICmd_unk_36
-BattleAICmd_unk_36: @ 8108AEC
- push {lr}
- ldr r2, _08108B3C @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08108B00
- ldr r1, _08108B40 @ =0x02016800
- movs r0, 0x1
- str r0, [r1, 0x8]
-_08108B00:
- ldrh r2, [r2]
- movs r0, 0x18
- ands r0, r2
- adds r3, r2, 0
- cmp r0, 0
- beq _08108B12
- ldr r1, _08108B40 @ =0x02016800
- movs r0, 0x2
- str r0, [r1, 0x8]
-_08108B12:
- movs r0, 0x60
- ands r0, r3
- cmp r0, 0
- beq _08108B20
- ldr r1, _08108B40 @ =0x02016800
- movs r0, 0
- str r0, [r1, 0x8]
-_08108B20:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08108B2E
- ldr r1, _08108B40 @ =0x02016800
- movs r0, 0x3
- str r0, [r1, 0x8]
-_08108B2E:
- ldr r1, _08108B44 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08108B3C: .4byte word_2024DB8
-_08108B40: .4byte 0x02016800
-_08108B44: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_unk_36
-
- thumb_func_start BattleAICmd_if_effect
-BattleAICmd_if_effect: @ 8108B48
- push {lr}
- ldr r2, _08108B7C @ =gBattleMoves
- ldr r0, _08108B80 @ =0x02016800
- ldrh r1, [r0, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r3, _08108B84 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r0, [r0]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _08108B88
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108B8C
- .align 2, 0
-_08108B7C: .4byte gBattleMoves
-_08108B80: .4byte 0x02016800
-_08108B84: .4byte gAIScriptPtr
-_08108B88:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108B8C:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_effect
-
- thumb_func_start BattleAICmd_if_not_effect
-BattleAICmd_if_not_effect: @ 8108B90
- push {lr}
- ldr r2, _08108BC4 @ =gBattleMoves
- ldr r0, _08108BC8 @ =0x02016800
- ldrh r1, [r0, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r3, _08108BCC @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r0, [r0]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- beq _08108BD0
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108BD4
- .align 2, 0
-_08108BC4: .4byte gBattleMoves
-_08108BC8: .4byte 0x02016800
-_08108BCC: .4byte gAIScriptPtr
-_08108BD0:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108BD4:
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_not_effect
-
- thumb_func_start BattleAICmd_if_stat_level_less_than
-BattleAICmd_if_stat_level_less_than: @ 8108BD8
- push {r4,lr}
- ldr r0, _08108BEC @ =gAIScriptPtr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08108BF4
- ldr r0, _08108BF0 @ =gUnknown_02024C07
- b _08108BF6
- .align 2, 0
-_08108BEC: .4byte gAIScriptPtr
-_08108BF0: .4byte gUnknown_02024C07
-_08108BF4:
- ldr r0, _08108C2C @ =gUnknown_02024C08
-_08108BF6:
- ldrb r3, [r0]
- ldr r1, _08108C30 @ =gBattleMons
- ldr r2, [r4]
- movs r0, 0x58
- muls r0, r3
- ldrb r3, [r2, 0x2]
- adds r0, r3
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bge _08108C34
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08108C3A
- .align 2, 0
-_08108C2C: .4byte gUnknown_02024C08
-_08108C30: .4byte gBattleMons
-_08108C34:
- adds r0, r2, 0
- adds r0, 0x8
- str r0, [r4]
-_08108C3A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_stat_level_less_than
-
- thumb_func_start BattleAICmd_if_stat_level_more_than
-BattleAICmd_if_stat_level_more_than: @ 8108C40
- push {r4,lr}
- ldr r0, _08108C54 @ =gAIScriptPtr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08108C5C
- ldr r0, _08108C58 @ =gUnknown_02024C07
- b _08108C5E
- .align 2, 0
-_08108C54: .4byte gAIScriptPtr
-_08108C58: .4byte gUnknown_02024C07
-_08108C5C:
- ldr r0, _08108C94 @ =gUnknown_02024C08
-_08108C5E:
- ldrb r3, [r0]
- ldr r1, _08108C98 @ =gBattleMons
- ldr r2, [r4]
- movs r0, 0x58
- muls r0, r3
- ldrb r3, [r2, 0x2]
- adds r0, r3
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- ble _08108C9C
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08108CA2
- .align 2, 0
-_08108C94: .4byte gUnknown_02024C08
-_08108C98: .4byte gBattleMons
-_08108C9C:
- adds r0, r2, 0
- adds r0, 0x8
- str r0, [r4]
-_08108CA2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_stat_level_more_than
-
- thumb_func_start BattleAICmd_if_stat_level_equal
-BattleAICmd_if_stat_level_equal: @ 8108CA8
- push {r4,lr}
- ldr r0, _08108CBC @ =gAIScriptPtr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08108CC4
- ldr r0, _08108CC0 @ =gUnknown_02024C07
- b _08108CC6
- .align 2, 0
-_08108CBC: .4byte gAIScriptPtr
-_08108CC0: .4byte gUnknown_02024C07
-_08108CC4:
- ldr r0, _08108CFC @ =gUnknown_02024C08
-_08108CC6:
- ldrb r3, [r0]
- ldr r1, _08108D00 @ =gBattleMons
- ldr r2, [r4]
- movs r0, 0x58
- muls r0, r3
- ldrb r3, [r2, 0x2]
- adds r0, r3
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bne _08108D04
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08108D0A
- .align 2, 0
-_08108CFC: .4byte gUnknown_02024C08
-_08108D00: .4byte gBattleMons
-_08108D04:
- adds r0, r2, 0
- adds r0, 0x8
- str r0, [r4]
-_08108D0A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_stat_level_equal
-
- thumb_func_start BattleAICmd_if_stat_level_not_equal
-BattleAICmd_if_stat_level_not_equal: @ 8108D10
- push {r4,lr}
- ldr r0, _08108D24 @ =gAIScriptPtr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08108D2C
- ldr r0, _08108D28 @ =gUnknown_02024C07
- b _08108D2E
- .align 2, 0
-_08108D24: .4byte gAIScriptPtr
-_08108D28: .4byte gUnknown_02024C07
-_08108D2C:
- ldr r0, _08108D64 @ =gUnknown_02024C08
-_08108D2E:
- ldrb r3, [r0]
- ldr r1, _08108D68 @ =gBattleMons
- ldr r2, [r4]
- movs r0, 0x58
- muls r0, r3
- ldrb r3, [r2, 0x2]
- adds r0, r3
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- beq _08108D6C
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08108D72
- .align 2, 0
-_08108D64: .4byte gUnknown_02024C08
-_08108D68: .4byte gBattleMons
-_08108D6C:
- adds r0, r2, 0
- adds r0, 0x8
- str r0, [r4]
-_08108D72:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_stat_level_not_equal
-
- thumb_func_start BattleAICmd_if_can_faint
-BattleAICmd_if_can_faint: @ 8108D78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, _08108E1C @ =gBattleMoves
- ldr r6, _08108E20 @ =0x02016800
- ldrh r1, [r6, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bls _08108E4C
- ldr r0, _08108E24 @ =gUnknown_02024DEC
- movs r1, 0
- strh r1, [r0]
- ldr r2, _08108E28 @ =0xfffff81c
- adds r0, r6, r2
- strb r1, [r0]
- adds r2, 0x3
- adds r0, r6, r2
- movs r2, 0x1
- mov r8, r2
- mov r2, r8
- strb r2, [r0]
- ldr r0, _08108E2C @ =gUnknown_02024C68
- strb r1, [r0]
- ldr r0, _08108E30 @ =gCritMultiplier
- strb r2, [r0]
- ldr r5, _08108E34 @ =gUnknown_02024BE6
- ldrh r0, [r6, 0x2]
- strh r0, [r5]
- ldr r4, _08108E38 @ =gUnknown_02024C07
- ldrb r0, [r4]
- ldr r7, _08108E3C @ =gUnknown_02024C08
- ldrb r1, [r7]
- bl sub_801CAF8
- ldrh r0, [r5]
- ldrb r1, [r4]
- ldrb r2, [r7]
- bl move_effectiveness_something
- ldr r4, _08108E40 @ =gUnknown_02024BEC
- adds r0, r6, 0
- adds r0, 0x18
- ldrb r6, [r6, 0x1]
- adds r0, r6
- ldrb r1, [r0]
- ldr r0, [r4]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _08108DEE
- mov r0, r8
- str r0, [r4]
-_08108DEE:
- ldr r2, _08108E44 @ =gBattleMons
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x28]
- ldr r0, [r4]
- cmp r1, r0
- bgt _08108E4C
- ldr r3, _08108E48 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108E54
- .align 2, 0
-_08108E1C: .4byte gBattleMoves
-_08108E20: .4byte 0x02016800
-_08108E24: .4byte gUnknown_02024DEC
-_08108E28: .4byte 0xfffff81c
-_08108E2C: .4byte gUnknown_02024C68
-_08108E30: .4byte gCritMultiplier
-_08108E34: .4byte gUnknown_02024BE6
-_08108E38: .4byte gUnknown_02024C07
-_08108E3C: .4byte gUnknown_02024C08
-_08108E40: .4byte gUnknown_02024BEC
-_08108E44: .4byte gBattleMons
-_08108E48: .4byte gAIScriptPtr
-_08108E4C:
- ldr r1, _08108E60 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08108E54:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108E60: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_if_can_faint
-
- thumb_func_start BattleAICmd_if_cant_faint
-BattleAICmd_if_cant_faint: @ 8108E64
- push {r4-r7,lr}
- ldr r2, _08108EF8 @ =gBattleMoves
- ldr r7, _08108EFC @ =0x02016800
- ldrh r1, [r7, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bls _08108F28
- ldr r0, _08108F00 @ =gUnknown_02024DEC
- movs r1, 0
- strh r1, [r0]
- ldr r2, _08108F04 @ =0xfffff81c
- adds r0, r7, r2
- strb r1, [r0]
- adds r2, 0x3
- adds r0, r7, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r0, _08108F08 @ =gUnknown_02024C68
- strb r1, [r0]
- ldr r0, _08108F0C @ =gCritMultiplier
- strb r2, [r0]
- ldr r6, _08108F10 @ =gUnknown_02024BE6
- ldrh r0, [r7, 0x2]
- strh r0, [r6]
- ldr r4, _08108F14 @ =gUnknown_02024C07
- ldrb r0, [r4]
- ldr r5, _08108F18 @ =gUnknown_02024C08
- ldrb r1, [r5]
- bl sub_801CAF8
- ldrh r0, [r6]
- ldrb r1, [r4]
- ldrb r2, [r5]
- bl move_effectiveness_something
- ldr r4, _08108F1C @ =gUnknown_02024BEC
- adds r0, r7, 0
- adds r0, 0x18
- ldrb r7, [r7, 0x1]
- adds r0, r7
- ldrb r1, [r0]
- ldr r0, [r4]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- ldr r3, _08108F20 @ =gBattleMons
- ldrb r2, [r5]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r1, [r1, 0x28]
- cmp r1, r0
- ble _08108F28
- ldr r3, _08108F24 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108F30
- .align 2, 0
-_08108EF8: .4byte gBattleMoves
-_08108EFC: .4byte 0x02016800
-_08108F00: .4byte gUnknown_02024DEC
-_08108F04: .4byte 0xfffff81c
-_08108F08: .4byte gUnknown_02024C68
-_08108F0C: .4byte gCritMultiplier
-_08108F10: .4byte gUnknown_02024BE6
-_08108F14: .4byte gUnknown_02024C07
-_08108F18: .4byte gUnknown_02024C08
-_08108F1C: .4byte gUnknown_02024BEC
-_08108F20: .4byte gBattleMons
-_08108F24: .4byte gAIScriptPtr
-_08108F28:
- ldr r1, _08108F38 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08108F30:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108F38: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_if_cant_faint
-
- thumb_func_start BattleAICmd_unk_3F
-BattleAICmd_unk_3F: @ 8108F3C
- push {r4-r7,lr}
- ldr r1, _08108F58 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r6, r0, 0x2
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _08108F64
- cmp r0, 0x1
- bgt _08108F5C
- cmp r0, 0
- beq _08108FA8
- b _08109008
- .align 2, 0
-_08108F58: .4byte gAIScriptPtr
-_08108F5C:
- cmp r0, 0x2
- beq _08108FA8
- cmp r0, 0x3
- bne _08109008
-_08108F64:
- movs r3, 0
- ldr r2, _08108FA0 @ =gBattleMons
- ldr r5, _08108FA4 @ =gUnknown_02024C07
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldrh r1, [r6]
- cmp r0, r1
- beq _08108F9A
- adds r7, r5, 0
- movs r6, 0x58
- adds r5, r2, 0
- adds r2, r1, 0
-_08108F84:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _08108F9A
- lsls r1, r3, 1
- ldrb r0, [r7]
- muls r0, r6
- adds r1, r0
- adds r1, r5
- ldrh r0, [r1]
- cmp r0, r2
- bne _08108F84
-_08108F9A:
- cmp r3, 0x4
- beq _08108FDE
- b _08108FF0
- .align 2, 0
-_08108FA0: .4byte gBattleMons
-_08108FA4: .4byte gUnknown_02024C07
-_08108FA8:
- movs r3, 0
- ldr r5, _08108FE8 @ =0x02016a00
- ldr r1, _08108FEC @ =gUnknown_02024C08
- ldrb r0, [r1]
- lsrs r0, 1
- lsls r0, 4
- adds r0, r5
- ldrh r0, [r0]
- ldrh r2, [r6]
- cmp r0, r2
- beq _08108FDA
- adds r6, r5, 0
- adds r5, r1, 0
-_08108FC2:
- adds r3, 0x1
- cmp r3, 0x7
- bgt _08108FDA
- lsls r0, r3, 1
- ldrb r1, [r5]
- lsrs r1, 1
- lsls r1, 4
- adds r0, r1
- adds r0, r6
- ldrh r0, [r0]
- cmp r0, r2
- bne _08108FC2
-_08108FDA:
- cmp r3, 0x8
- bne _08108FF0
-_08108FDE:
- ldr r0, [r4]
- adds r0, 0x8
- str r0, [r4]
- b _08109008
- .align 2, 0
-_08108FE8: .4byte 0x02016a00
-_08108FEC: .4byte gUnknown_02024C08
-_08108FF0:
- ldr r2, [r4]
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_08109008:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_unk_3F
-
- thumb_func_start BattleAICmd_unk_40
-BattleAICmd_unk_40: @ 8109010
- push {r4-r7,lr}
- ldr r1, _0810902C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r6, r0, 0x2
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _08109038
- cmp r0, 0x1
- bgt _08109030
- cmp r0, 0
- beq _0810907C
- b _081090DC
- .align 2, 0
-_0810902C: .4byte gAIScriptPtr
-_08109030:
- cmp r0, 0x2
- beq _0810907C
- cmp r0, 0x3
- bne _081090DC
-_08109038:
- movs r3, 0
- ldr r2, _08109074 @ =gBattleMons
- ldr r5, _08109078 @ =gUnknown_02024C07
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldrh r1, [r6]
- cmp r0, r1
- beq _0810906E
- adds r7, r5, 0
- movs r6, 0x58
- adds r5, r2, 0
- adds r2, r1, 0
-_08109058:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _0810906E
- lsls r1, r3, 1
- ldrb r0, [r7]
- muls r0, r6
- adds r1, r0
- adds r1, r5
- ldrh r0, [r1]
- cmp r0, r2
- bne _08109058
-_0810906E:
- cmp r3, 0x4
- bne _081090B2
- b _081090C4
- .align 2, 0
-_08109074: .4byte gBattleMons
-_08109078: .4byte gUnknown_02024C07
-_0810907C:
- movs r3, 0
- ldr r5, _081090BC @ =0x02016a00
- ldr r1, _081090C0 @ =gUnknown_02024C08
- ldrb r0, [r1]
- lsrs r0, 1
- lsls r0, 4
- adds r0, r5
- ldrh r0, [r0]
- ldrh r2, [r6]
- cmp r0, r2
- beq _081090AE
- adds r6, r5, 0
- adds r5, r1, 0
-_08109096:
- adds r3, 0x1
- cmp r3, 0x7
- bgt _081090AE
- lsls r0, r3, 1
- ldrb r1, [r5]
- lsrs r1, 1
- lsls r1, 4
- adds r0, r1
- adds r0, r6
- ldrh r0, [r0]
- cmp r0, r2
- bne _08109096
-_081090AE:
- cmp r3, 0x8
- beq _081090C4
-_081090B2:
- ldr r0, [r4]
- adds r0, 0x8
- str r0, [r4]
- b _081090DC
- .align 2, 0
-_081090BC: .4byte 0x02016a00
-_081090C0: .4byte gUnknown_02024C08
-_081090C4:
- ldr r2, [r4]
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_081090DC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_unk_40
-
- thumb_func_start BattleAICmd_if_move_effect
-BattleAICmd_if_move_effect: @ 81090E4
- push {r4-r7,lr}
- ldr r1, _081090FC @ =gAIScriptPtr
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _08109108
- cmp r0, 0x1
- bgt _08109100
- cmp r0, 0
- beq _0810915C
- b _081091B8
- .align 2, 0
-_081090FC: .4byte gAIScriptPtr
-_08109100:
- cmp r0, 0x2
- beq _0810915C
- cmp r0, 0x3
- bne _081091B8
-_08109108:
- movs r3, 0
- ldr r1, _0810914C @ =gBattleMons
- ldr r0, _08109150 @ =gUnknown_02024C07
- ldrb r2, [r0]
- ldr r6, _08109154 @ =gBattleMoves
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
- ldr r5, _08109158 @ =gAIScriptPtr
-_0810911C:
- ldrh r0, [r2]
- cmp r0, 0
- beq _08109136
- adds r1, r0, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r1, [r5]
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810913E
-_08109136:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _0810911C
-_0810913E:
- cmp r3, 0x4
- bne _081091A0
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- b _081091B8
- .align 2, 0
-_0810914C: .4byte gBattleMons
-_08109150: .4byte gUnknown_02024C07
-_08109154: .4byte gBattleMoves
-_08109158: .4byte gAIScriptPtr
-_0810915C:
- movs r3, 0
- ldr r1, _081091C0 @ =gBattleMons
- ldr r0, _081091C4 @ =gUnknown_02024C07
- ldrb r2, [r0]
- ldr r7, _081091C8 @ =gBattleMoves
- ldr r6, _081091CC @ =0x02016a00
- ldr r5, _081091D0 @ =gUnknown_02024C08
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
-_08109172:
- lsls r1, r3, 1
- ldrh r0, [r2]
- cmp r0, 0
- beq _08109198
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 4
- adds r0, r1, r0
- adds r0, r6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, [r4]
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _081091A0
-_08109198:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x7
- ble _08109172
-_081091A0:
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_081091B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081091C0: .4byte gBattleMons
-_081091C4: .4byte gUnknown_02024C07
-_081091C8: .4byte gBattleMoves
-_081091CC: .4byte 0x02016a00
-_081091D0: .4byte gUnknown_02024C08
- thumb_func_end BattleAICmd_if_move_effect
-
- thumb_func_start BattleAICmd_if_not_move_effect
-BattleAICmd_if_not_move_effect: @ 81091D4
- push {r4-r6,lr}
- ldr r1, _081091EC @ =gAIScriptPtr
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _081091F8
- cmp r0, 0x1
- bgt _081091F0
- cmp r0, 0
- beq _0810925C
- b _08109294
- .align 2, 0
-_081091EC: .4byte gAIScriptPtr
-_081091F0:
- cmp r0, 0x2
- beq _0810925C
- cmp r0, 0x3
- bne _08109294
-_081091F8:
- movs r3, 0
- ldr r1, _0810924C @ =gBattleMons
- ldr r0, _08109250 @ =gUnknown_02024C07
- ldrb r2, [r0]
- ldr r6, _08109254 @ =gBattleMoves
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
- ldr r5, _08109258 @ =gAIScriptPtr
-_0810920C:
- ldrh r0, [r2]
- cmp r0, 0
- beq _08109226
- adds r1, r0, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r1, [r5]
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810922E
-_08109226:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _0810920C
-_0810922E:
- cmp r3, 0x4
- bne _0810928E
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08109294
- .align 2, 0
-_0810924C: .4byte gBattleMons
-_08109250: .4byte gUnknown_02024C07
-_08109254: .4byte gBattleMoves
-_08109258: .4byte gAIScriptPtr
-_0810925C:
- movs r3, 0
- ldr r1, _0810929C @ =0x02016a00
- ldr r0, _081092A0 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsrs r0, 1
- lsls r0, 4
- adds r2, r0, r1
- ldr r5, _081092A4 @ =gBattleMoves
-_0810926C:
- ldrh r0, [r2]
- cmp r0, 0
- beq _08109286
- adds r1, r0, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, [r4]
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810928E
-_08109286:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x7
- ble _0810926C
-_0810928E:
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
-_08109294:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810929C: .4byte 0x02016a00
-_081092A0: .4byte gUnknown_02024C08
-_081092A4: .4byte gBattleMoves
- thumb_func_end BattleAICmd_if_not_move_effect
-
- thumb_func_start BattleAICmd_if_last_move_did_damage
-BattleAICmd_if_last_move_did_damage: @ 81092A8
- push {r4,r5,lr}
- ldr r0, _081092BC @ =gAIScriptPtr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _081092C4
- ldr r0, _081092C0 @ =gUnknown_02024C07
- b _081092C6
- .align 2, 0
-_081092BC: .4byte gAIScriptPtr
-_081092C0: .4byte gUnknown_02024C07
-_081092C4:
- ldr r0, _081092E4 @ =gUnknown_02024C08
-_081092C6:
- ldrb r3, [r0]
- adds r4, r5, 0
- ldr r2, [r4]
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- bne _081092EC
- ldr r0, _081092E8 @ =gUnknown_02024CA8
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x4]
- cmp r0, 0
- beq _081092F0
- b _08109306
- .align 2, 0
-_081092E4: .4byte gUnknown_02024C08
-_081092E8: .4byte gUnknown_02024CA8
-_081092EC:
- cmp r0, 0x1
- beq _081092F6
-_081092F0:
- adds r0, r2, 0x7
- str r0, [r4]
- b _08109328
-_081092F6:
- ldr r0, _08109320 @ =gUnknown_02024CA8
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x6]
- cmp r0, 0
- beq _08109324
-_08109306:
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08109328
- .align 2, 0
-_08109320: .4byte gUnknown_02024CA8
-_08109324:
- adds r0, r2, 0x7
- str r0, [r5]
-_08109328:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_last_move_did_damage
-
- thumb_func_start BattleAICmd_if_encored
-BattleAICmd_if_encored: @ 8109330
- push {r4,lr}
- ldr r4, _08109344 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- cmp r0, 0
- beq _08109348
- cmp r0, 0x1
- beq _08109370
- b _081093AC
- .align 2, 0
-_08109344: .4byte gAIScriptPtr
-_08109348:
- ldr r2, _08109364 @ =gUnknown_02024CA8
- ldr r0, _08109368 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0810936C @ =0x02016800
- ldrh r0, [r0, 0x4]
- ldrh r1, [r1, 0x2]
- cmp r0, r1
- beq _08109388
- b _081093AC
- .align 2, 0
-_08109364: .4byte gUnknown_02024CA8
-_08109368: .4byte gUnknown_02024A60
-_0810936C: .4byte 0x02016800
-_08109370:
- ldr r2, _081093A0 @ =gUnknown_02024CA8
- ldr r0, _081093A4 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _081093A8 @ =0x02016800
- ldrh r0, [r0, 0x6]
- ldrh r1, [r1, 0x2]
- cmp r0, r1
- bne _081093AC
-_08109388:
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081093B0
- .align 2, 0
-_081093A0: .4byte gUnknown_02024CA8
-_081093A4: .4byte gUnknown_02024A60
-_081093A8: .4byte 0x02016800
-_081093AC:
- adds r0, r3, 0x6
- str r0, [r4]
-_081093B0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_encored
-
- thumb_func_start BattleAICmd_unk_45
-BattleAICmd_unk_45: @ 81093B8
- ldr r2, _081093C4 @ =0x02016800
- ldrb r1, [r2, 0x10]
- movs r0, 0xB
- orrs r0, r1
- strb r0, [r2, 0x10]
- bx lr
- .align 2, 0
-_081093C4: .4byte 0x02016800
- thumb_func_end BattleAICmd_unk_45
-
- thumb_func_start BattleAICmd_if_random_2
-BattleAICmd_if_random_2: @ 81093C8
- push {r4,lr}
- ldr r0, _0810940C @ =0x02000000
- ldr r1, _08109410 @ =0x00016088
- adds r0, r1
- ldrb r0, [r0]
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _08109418
- ldr r3, _08109414 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08109420
- .align 2, 0
-_0810940C: .4byte 0x02000000
-_08109410: .4byte 0x00016088
-_08109414: .4byte gAIScriptPtr
-_08109418:
- ldr r1, _08109428 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08109420:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109428: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_if_random_2
-
- thumb_func_start BattleAICmd_unk_47
-BattleAICmd_unk_47: @ 810942C
- ldr r2, _08109438 @ =0x02016800
- ldrb r1, [r2, 0x10]
- movs r0, 0xD
- orrs r0, r1
- strb r0, [r2, 0x10]
- bx lr
- .align 2, 0
-_08109438: .4byte 0x02016800
- thumb_func_end BattleAICmd_unk_47
-
- thumb_func_start BattleAICmd_get_hold_effect
-BattleAICmd_get_hold_effect: @ 810943C
- push {r4,lr}
- ldr r0, _0810944C @ =gAIScriptPtr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08109454
- ldr r0, _08109450 @ =gUnknown_02024C07
- b _08109456
- .align 2, 0
-_0810944C: .4byte gAIScriptPtr
-_08109450: .4byte gUnknown_02024C07
-_08109454:
- ldr r0, _0810947C @ =gUnknown_02024C08
-_08109456:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08109488
- adds r0, r4, 0
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- ldr r2, _08109480 @ =0x02016800
- ldr r3, _08109484 @ =0x00000222
- adds r0, r2, r3
- adds r1, r0
- ldrb r0, [r1]
- str r0, [r2, 0x8]
- b _0810949E
- .align 2, 0
-_0810947C: .4byte gUnknown_02024C08
-_08109480: .4byte 0x02016800
-_08109484: .4byte 0x00000222
-_08109488:
- ldr r1, _081094AC @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffect
- ldr r1, _081094B0 @ =0x02016800
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1, 0x8]
-_0810949E:
- ldr r1, _081094B4 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081094AC: .4byte gBattleMons
-_081094B0: .4byte 0x02016800
-_081094B4: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_get_hold_effect
-
- thumb_func_start BattleAICmd_get_gender
-BattleAICmd_get_gender: @ 81094B8
- push {lr}
- ldr r0, _081094C8 @ =gAIScriptPtr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _081094D0
- ldr r0, _081094CC @ =gUnknown_02024C07
- b _081094D2
- .align 2, 0
-_081094C8: .4byte gAIScriptPtr
-_081094CC: .4byte gUnknown_02024C07
-_081094D0:
- ldr r0, _081094FC @ =gUnknown_02024C08
-_081094D2:
- ldrb r1, [r0]
- ldr r2, _08109500 @ =gBattleMons
- movs r0, 0x58
- muls r1, r0
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, 0x48
- adds r1, r2
- ldr r1, [r1]
- bl GetGenderFromSpeciesAndPersonality
- ldr r1, _08109504 @ =0x02016800
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1, 0x8]
- ldr r1, _08109508 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_081094FC: .4byte gUnknown_02024C08
-_08109500: .4byte gBattleMons
-_08109504: .4byte 0x02016800
-_08109508: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_get_gender
-
- thumb_func_start BattleAICmd_is_first_turn
-BattleAICmd_is_first_turn: @ 810950C
- push {r4,lr}
- ldr r0, _08109520 @ =gAIScriptPtr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08109528
- ldr r0, _08109524 @ =gUnknown_02024C07
- b _0810952A
- .align 2, 0
-_08109520: .4byte gAIScriptPtr
-_08109524: .4byte gUnknown_02024C07
-_08109528:
- ldr r0, _08109548 @ =gUnknown_02024C08
-_0810952A:
- ldrb r3, [r0]
- ldr r2, _0810954C @ =0x02016800
- ldr r1, _08109550 @ =gUnknown_02024CA8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x16]
- str r0, [r2, 0x8]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109548: .4byte gUnknown_02024C08
-_0810954C: .4byte 0x02016800
-_08109550: .4byte gUnknown_02024CA8
- thumb_func_end BattleAICmd_is_first_turn
-
- thumb_func_start BattleAICmd_get_stockpile_count
-BattleAICmd_get_stockpile_count: @ 8109554
- push {r4,lr}
- ldr r0, _08109568 @ =gAIScriptPtr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08109570
- ldr r0, _0810956C @ =gUnknown_02024C07
- b _08109572
- .align 2, 0
-_08109568: .4byte gAIScriptPtr
-_0810956C: .4byte gUnknown_02024C07
-_08109570:
- ldr r0, _08109590 @ =gUnknown_02024C08
-_08109572:
- ldrb r3, [r0]
- ldr r2, _08109594 @ =0x02016800
- ldr r1, _08109598 @ =gUnknown_02024CA8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x9]
- str r0, [r2, 0x8]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109590: .4byte gUnknown_02024C08
-_08109594: .4byte 0x02016800
-_08109598: .4byte gUnknown_02024CA8
- thumb_func_end BattleAICmd_get_stockpile_count
-
- thumb_func_start BattleAICmd_unk_4C
-BattleAICmd_unk_4C: @ 810959C
- ldr r2, _081095B4 @ =0x02016800
- ldr r0, _081095B8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- str r0, [r2, 0x8]
- ldr r1, _081095BC @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_081095B4: .4byte 0x02016800
-_081095B8: .4byte gUnknown_020239F8
-_081095BC: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_unk_4C
-
- thumb_func_start BattleAICmd_get_item
-BattleAICmd_get_item: @ 81095C0
- push {lr}
- ldr r0, _081095D4 @ =gAIScriptPtr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r2, r0, 0
- cmp r1, 0x1
- bne _081095DC
- ldr r0, _081095D8 @ =gUnknown_02024C07
- b _081095DE
- .align 2, 0
-_081095D4: .4byte gAIScriptPtr
-_081095D8: .4byte gUnknown_02024C07
-_081095DC:
- ldr r0, _081095F8 @ =gUnknown_02024C08
-_081095DE:
- ldrb r0, [r0]
- ldr r1, _081095FC @ =0x02016800
- lsls r0, 1
- adds r0, r1
- ldr r3, _08109600 @ =0xfffff8cc
- adds r0, r3
- ldrb r0, [r0]
- str r0, [r1, 0x8]
- ldr r0, [r2]
- adds r0, 0x2
- str r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_081095F8: .4byte gUnknown_02024C08
-_081095FC: .4byte 0x02016800
-_08109600: .4byte 0xfffff8cc
- thumb_func_end BattleAICmd_get_item
-
- thumb_func_start BattleAICmd_unk_4E
-BattleAICmd_unk_4E: @ 8109604
- ldr r3, _08109620 @ =0x02016800
- ldr r2, _08109624 @ =gBattleMoves
- ldr r1, [r3, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- str r0, [r3, 0x8]
- ldr r1, _08109628 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08109620: .4byte 0x02016800
-_08109624: .4byte gBattleMoves
-_08109628: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_unk_4E
-
- thumb_func_start BattleAICmd_unk_4F
-BattleAICmd_unk_4F: @ 810962C
- ldr r3, _08109648 @ =0x02016800
- ldr r2, _0810964C @ =gBattleMoves
- ldr r1, [r3, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- str r0, [r3, 0x8]
- ldr r1, _08109650 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08109648: .4byte 0x02016800
-_0810964C: .4byte gBattleMoves
-_08109650: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_unk_4F
-
- thumb_func_start BattleAICmd_unk_50
-BattleAICmd_unk_50: @ 8109654
- ldr r3, _08109670 @ =0x02016800
- ldr r2, _08109674 @ =gBattleMoves
- ldr r1, [r3, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- str r0, [r3, 0x8]
- ldr r1, _08109678 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08109670: .4byte 0x02016800
-_08109674: .4byte gBattleMoves
-_08109678: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_unk_50
-
- thumb_func_start BattleAICmd_get_protect_count
-BattleAICmd_get_protect_count: @ 810967C
- push {r4,lr}
- ldr r0, _08109690 @ =gAIScriptPtr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08109698
- ldr r0, _08109694 @ =gUnknown_02024C07
- b _0810969A
- .align 2, 0
-_08109690: .4byte gAIScriptPtr
-_08109694: .4byte gUnknown_02024C07
-_08109698:
- ldr r0, _081096B8 @ =gUnknown_02024C08
-_0810969A:
- ldrb r3, [r0]
- ldr r2, _081096BC @ =0x02016800
- ldr r1, _081096C0 @ =gUnknown_02024CA8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- str r0, [r2, 0x8]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081096B8: .4byte gUnknown_02024C08
-_081096BC: .4byte 0x02016800
-_081096C0: .4byte gUnknown_02024CA8
- thumb_func_end BattleAICmd_get_protect_count
-
- thumb_func_start BattleAICmd_unk_52
-BattleAICmd_unk_52: @ 81096C4
- bx lr
- thumb_func_end BattleAICmd_unk_52
-
- thumb_func_start BattleAICmd_unk_53
-BattleAICmd_unk_53: @ 81096C8
- bx lr
- thumb_func_end BattleAICmd_unk_53
-
- thumb_func_start BattleAICmd_unk_54
-BattleAICmd_unk_54: @ 81096CC
- bx lr
- thumb_func_end BattleAICmd_unk_54
-
- thumb_func_start BattleAICmd_unk_55
-BattleAICmd_unk_55: @ 81096D0
- bx lr
- thumb_func_end BattleAICmd_unk_55
-
- thumb_func_start BattleAICmd_unk_56
-BattleAICmd_unk_56: @ 81096D4
- bx lr
- thumb_func_end BattleAICmd_unk_56
-
- thumb_func_start BattleAICmd_unk_57
-BattleAICmd_unk_57: @ 81096D8
- bx lr
- thumb_func_end BattleAICmd_unk_57
-
- thumb_func_start BattleAICmd_call
-BattleAICmd_call: @ 81096DC
- push {r4,lr}
- ldr r4, _08109708 @ =gAIScriptPtr
- ldr r0, [r4]
- adds r0, 0x5
- bl sub_81098C4
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109708: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_call
-
- thumb_func_start BattleAICmd_jump
-BattleAICmd_jump: @ 810970C
- ldr r3, _08109728 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_08109728: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_jump
-
- thumb_func_start BattleAICmd_unk_5A
-BattleAICmd_unk_5A: @ 810972C
- push {lr}
- bl sub_8109908
- lsls r0, 24
- cmp r0, 0
- bne _08109742
- ldr r2, _08109748 @ =0x02016800
- ldrb r1, [r2, 0x10]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2, 0x10]
-_08109742:
- pop {r0}
- bx r0
- .align 2, 0
-_08109748: .4byte 0x02016800
- thumb_func_end BattleAICmd_unk_5A
-
- thumb_func_start BattleAICmd_if_level_cond
-BattleAICmd_if_level_cond: @ 810974C
- push {r4,r5,lr}
- ldr r5, _08109764 @ =gAIScriptPtr
- ldr r4, [r5]
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1
- beq _081097A0
- cmp r0, 0x1
- bgt _08109768
- cmp r0, 0
- beq _0810976E
- b _0810981C
- .align 2, 0
-_08109764: .4byte gAIScriptPtr
-_08109768:
- cmp r0, 0x2
- beq _081097D0
- b _0810981C
-_0810976E:
- ldr r3, _08109794 @ =gBattleMons
- ldr r0, _08109798 @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- adds r1, r3
- adds r1, 0x2A
- ldr r0, _0810979C @ =gUnknown_02024C08
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bhi _081097F2
- b _08109818
- .align 2, 0
-_08109794: .4byte gBattleMons
-_08109798: .4byte gUnknown_02024C07
-_0810979C: .4byte gUnknown_02024C08
-_081097A0:
- ldr r3, _081097C4 @ =gBattleMons
- ldr r0, _081097C8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- adds r1, r3
- adds r1, 0x2A
- ldr r0, _081097CC @ =gUnknown_02024C08
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _081097F2
- b _08109818
- .align 2, 0
-_081097C4: .4byte gBattleMons
-_081097C8: .4byte gUnknown_02024C07
-_081097CC: .4byte gUnknown_02024C08
-_081097D0:
- ldr r3, _0810980C @ =gBattleMons
- ldr r0, _08109810 @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- adds r1, r3
- adds r1, 0x2A
- ldr r0, _08109814 @ =gUnknown_02024C08
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08109818
-_081097F2:
- ldrb r1, [r4, 0x2]
- ldrb r0, [r4, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r4, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _0810981C
- .align 2, 0
-_0810980C: .4byte gBattleMons
-_08109810: .4byte gUnknown_02024C07
-_08109814: .4byte gUnknown_02024C08
-_08109818:
- adds r0, r4, 0x6
- str r0, [r5]
-_0810981C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleAICmd_if_level_cond
-
- thumb_func_start BattleAICmd_if_taunted
-BattleAICmd_if_taunted: @ 8109824
- push {lr}
- ldr r2, _08109858 @ =gUnknown_02024CA8
- ldr r0, _0810985C @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08109864
- ldr r3, _08109860 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0810986C
- .align 2, 0
-_08109858: .4byte gUnknown_02024CA8
-_0810985C: .4byte gUnknown_02024C08
-_08109860: .4byte gAIScriptPtr
-_08109864:
- ldr r1, _08109870 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0810986C:
- pop {r0}
- bx r0
- .align 2, 0
-_08109870: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_if_taunted
-
- thumb_func_start BattleAICmd_if_not_taunted
-BattleAICmd_if_not_taunted: @ 8109874
- push {lr}
- ldr r2, _081098A8 @ =gUnknown_02024CA8
- ldr r0, _081098AC @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- bne _081098B4
- ldr r3, _081098B0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081098BC
- .align 2, 0
-_081098A8: .4byte gUnknown_02024CA8
-_081098AC: .4byte gUnknown_02024C08
-_081098B0: .4byte gAIScriptPtr
-_081098B4:
- ldr r1, _081098C0 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_081098BC:
- pop {r0}
- bx r0
- .align 2, 0
-_081098C0: .4byte gAIScriptPtr
- thumb_func_end BattleAICmd_if_not_taunted
-
- thumb_func_start sub_81098C4
-sub_81098C4: @ 81098C4
- push {r4,lr}
- ldr r4, _081098E0 @ =0x02016c00
- adds r3, r4, 0
- adds r3, 0x20
- ldrb r1, [r3]
- adds r2, r1, 0x1
- strb r2, [r3]
- lsls r1, 24
- lsrs r1, 22
- adds r1, r4
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081098E0: .4byte 0x02016c00
- thumb_func_end sub_81098C4
-
- thumb_func_start unref_sub_81098E4
-unref_sub_81098E4: @ 81098E4
- ldr r3, _08109900 @ =0x02016c00
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r1, _08109904 @ =gAIScriptPtr
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .align 2, 0
-_08109900: .4byte 0x02016c00
-_08109904: .4byte gAIScriptPtr
- thumb_func_end unref_sub_81098E4
-
- thumb_func_start sub_8109908
-sub_8109908: @ 8109908
- push {lr}
- ldr r3, _0810991C @ =0x02016c00
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0
- bne _08109920
- movs r0, 0
- b _08109932
- .align 2, 0
-_0810991C: .4byte 0x02016c00
-_08109920:
- subs r0, 0x1
- strb r0, [r2]
- ldr r1, _08109938 @ =gAIScriptPtr
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0x1
-_08109932:
- pop {r1}
- bx r1
- .align 2, 0
-_08109938: .4byte gAIScriptPtr
- thumb_func_end sub_8109908
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_807B69C.s b/asm/battle_anim_807B69C.s
new file mode 100644
index 000000000..e34f47f1c
--- /dev/null
+++ b/asm/battle_anim_807B69C.s
@@ -0,0 +1,960 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_807B69C
+unref_sub_807B69C: @ 807B69C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0807B740 @ =gObjectBankIDs
+ adds r0, r4, r0
+ ldrb r6, [r0]
+ ldr r0, _0807B744 @ =sub_807B7E0
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0807B748 @ =gBattleAnimPicTable + (136 * 8)
+ bl LoadCompressedObjectPic
+ ldr r0, _0807B74C @ =gBattleAnimPaletteTable + (136 * 8)
+ bl LoadCompressedObjectPalette
+ ldr r1, _0807B750 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0, r1
+ strh r4, [r1, 0x8]
+ cmp r5, 0
+ beq _0807B75C
+ movs r0, 0x1F
+ strh r0, [r1, 0xA]
+ movs r5, 0
+ lsls r0, r6, 4
+ ldr r7, _0807B754 @ =gSprites
+ adds r0, r6
+ lsls r0, 2
+ adds r6, r0, r7
+_0807B6F0:
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ ldrh r2, [r6, 0x22]
+ adds r2, 0x20
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, _0807B758 @ =gSpriteTemplate_83931F8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r3, r0, r7
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r1, r0, 4
+ adds r0, r1
+ strh r0, [r3, 0x2E]
+ movs r0, 0xFF
+ lsls r0, 8
+ strh r0, [r3, 0x30]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ cmp r5, 0x4
+ bls _0807B734
+ movs r0, 0x15
+ strh r0, [r3, 0x3A]
+_0807B734:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0807B6F0
+ b _0807B7BC
+ .align 2, 0
+_0807B740: .4byte gObjectBankIDs
+_0807B744: .4byte sub_807B7E0
+_0807B748: .4byte gBattleAnimPicTable + (136 * 8)
+_0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8)
+_0807B750: .4byte gTasks
+_0807B754: .4byte gSprites
+_0807B758: .4byte gSpriteTemplate_83931F8
+_0807B75C:
+ movs r0, 0xF8
+ lsls r0, 7
+ strh r0, [r1, 0xA]
+ movs r5, 0
+ lsls r0, r6, 4
+ ldr r7, _0807B7D8 @ =gSprites
+ adds r0, r6
+ lsls r0, 2
+ adds r6, r0, r7
+_0807B76E:
+ movs r2, 0x20
+ ldrsh r1, [r6, r2]
+ ldrh r2, [r6, 0x22]
+ subs r2, 0x20
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, _0807B7DC @ =gSpriteTemplate_83931F8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r3, r0, r7
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r1, r0, 4
+ adds r0, r1
+ strh r0, [r3, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r3, 0x30]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ cmp r5, 0x4
+ bls _0807B7B2
+ movs r0, 0x15
+ strh r0, [r3, 0x3A]
+_0807B7B2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0807B76E
+_0807B7BC:
+ ldr r0, _0807B7D8 @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x3C]
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807B7D8: .4byte gSprites
+_0807B7DC: .4byte gSpriteTemplate_83931F8
+ thumb_func_end unref_sub_807B69C
+
+ thumb_func_start sub_807B7E0
+sub_807B7E0: @ 807B7E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0807B838 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x2
+ bne _0807B866
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 16
+ ldrb r2, [r4, 0x10]
+ ldrh r3, [r4, 0xA]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r2, [r4, 0x12]
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0807B83C
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0807B86A
+ movs r0, 0x1
+ eors r0, r2
+ strh r0, [r4, 0x12]
+ b _0807B86A
+ .align 2, 0
+_0807B838: .4byte gTasks
+_0807B83C:
+ ldrh r1, [r4, 0x10]
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0807B86A
+ strh r1, [r4, 0x10]
+ movs r0, 0x1
+ eors r0, r2
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0807B86A
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0807B86A
+_0807B866:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+_0807B86A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B7E0
+
+ thumb_func_start sub_807B870
+sub_807B870: @ 807B870
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _0807B89C
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ ldr r1, _0807B898 @ =sub_807B8A4
+ str r1, [r2, 0x1C]
+ adds r0, r2, 0
+ bl _call_via_r1
+ b _0807B8A0
+ .align 2, 0
+_0807B898: .4byte sub_807B8A4
+_0807B89C:
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x3A]
+_0807B8A0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B870
+
+ thumb_func_start sub_807B8A4
+sub_807B8A4: @ 807B8A4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _0807B8D0
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+ b _0807B8D6
+_0807B8D0:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+_0807B8D6:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x34
+ bne _0807B918
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0807B912
+ adds r0, r4, 0
+ bl DestroySpriteAndFreeResources
+ b _0807B918
+_0807B912:
+ adds r0, r4, 0
+ bl DestroySprite
+_0807B918:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B8A4
+
+ thumb_func_start sub_807B920
+sub_807B920: @ 807B920
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _0807B9B0 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r1, _0807B9B4 @ =0xffe00000
+ adds r0, r1
+ lsrs r5, r0, 16
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r2, _0807B9B8 @ =0xffdc0000
+ adds r0, r2
+ lsrs r4, r0, 16
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807B95E
+ lsls r0, r5, 16
+ ldr r1, _0807B9BC @ =0xfffa0000
+ adds r0, r1
+ lsrs r5, r0, 16
+_0807B95E:
+ ldr r1, _0807B9C0 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0807B9C4 @ =gSpriteTemplate_83931E0
+ lsls r1, r5, 16
+ asrs r1, 16
+ lsls r2, r4, 16
+ asrs r2, 16
+ movs r3, 0x4
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0807B9C8 @ =gSprites
+ adds r0, r1
+ ldr r1, _0807B9CC @ =gSubspriteTables_83931D8
+ bl SetSubspriteTables
+ ldr r1, _0807B9D0 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x26]
+ ldr r1, _0807B9D4 @ =sub_807B9D8
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B9B0: .4byte gBattleAnimEnemyMonIndex
+_0807B9B4: .4byte 0xffe00000
+_0807B9B8: .4byte 0xffdc0000
+_0807B9BC: .4byte 0xfffa0000
+_0807B9C0: .4byte REG_BLDCNT
+_0807B9C4: .4byte gSpriteTemplate_83931E0
+_0807B9C8: .4byte gSprites
+_0807B9CC: .4byte gSubspriteTables_83931D8
+_0807B9D0: .4byte gTasks
+_0807B9D4: .4byte sub_807B9D8
+ thumb_func_end sub_807B920
+
+ thumb_func_start sub_807B9D8
+sub_807B9D8: @ 807B9D8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807BA04 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ adds r2, r0, 0
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0807BA0C
+ ldr r0, _0807BA08 @ =sub_807BA24
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _0807BA1C
+ .align 2, 0
+_0807BA04: .4byte gTasks
+_0807BA08: .4byte sub_807BA24
+_0807BA0C:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ ldr r2, _0807BA20 @ =REG_BLDALPHA
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ strh r1, [r2]
+_0807BA1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BA20: .4byte REG_BLDALPHA
+ thumb_func_end sub_807B9D8
+
+ thumb_func_start sub_807BA24
+sub_807BA24: @ 807BA24
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0807BABC @ =0x0000271a
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0807BAC0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ ble _0807BAB4
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0807BAB4
+ ldr r3, _0807BAC4 @ =gPlttBufferFaded
+ lsls r2, 4
+ mov r12, r2
+ ldr r1, _0807BAC8 @ =0x0000010d
+ add r1, r12
+ lsls r1, 1
+ adds r1, r3
+ ldrh r4, [r1]
+ movs r2, 0x87
+ lsls r2, 1
+ add r2, r12
+ lsls r2, 1
+ adds r2, r3
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r0, _0807BACC @ =0x0000010f
+ add r0, r12
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ strh r1, [r2]
+ strh r4, [r0]
+ strh r6, [r5, 0xC]
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0807BAB4
+ strh r6, [r5, 0xE]
+ strh r6, [r5, 0xA]
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ strh r0, [r5, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0807BAB4
+ movs r0, 0x9
+ strh r0, [r5, 0xA]
+ ldr r0, _0807BAD0 @ =sub_807BAD4
+ str r0, [r5]
+_0807BAB4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BABC: .4byte 0x0000271a
+_0807BAC0: .4byte gTasks
+_0807BAC4: .4byte gPlttBufferFaded
+_0807BAC8: .4byte 0x0000010d
+_0807BACC: .4byte 0x0000010f
+_0807BAD0: .4byte sub_807BAD4
+ thumb_func_end sub_807BA24
+
+ thumb_func_start sub_807BAD4
+sub_807BAD4: @ 807BAD4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807BB04 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+ adds r3, r0, 0
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0807BB0C
+ ldr r0, _0807BB08 @ =sub_807BB24
+ str r0, [r2]
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ b _0807BB1C
+ .align 2, 0
+_0807BB04: .4byte gTasks
+_0807BB08: .4byte sub_807BB24
+_0807BB0C:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ ldr r2, _0807BB20 @ =REG_BLDALPHA
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ strh r1, [r2]
+_0807BB1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BB20: .4byte REG_BLDALPHA
+ thumb_func_end sub_807BAD4
+
+ thumb_func_start sub_807BB24
+sub_807BB24: @ 807BB24
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ ldr r1, _0807BB64 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x25
+ bne _0807BB6C
+ ldrh r0, [r1, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0807BB68 @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ b _0807BB7E
+ .align 2, 0
+_0807BB64: .4byte gTasks
+_0807BB68: .4byte gSprites
+_0807BB6C:
+ cmp r0, 0x27
+ bne _0807BB7E
+ ldr r0, _0807BB84 @ =REG_BLDCNT
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_0807BB7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BB84: .4byte REG_BLDCNT
+ thumb_func_end sub_807BB24
+
+ thumb_func_start sub_807BB88
+sub_807BB88: @ 807BB88
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r3, 0
+ ldr r0, _0807BBA8 @ =0x02017840
+ ldrh r0, [r0]
+ subs r0, 0xF
+ cmp r0, 0x2B
+ bls _0807BB9C
+ b _0807BD20
+_0807BB9C:
+ lsls r0, 2
+ ldr r1, _0807BBAC @ =_0807BBB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807BBA8: .4byte 0x02017840
+_0807BBAC: .4byte _0807BBB0
+ .align 2, 0
+_0807BBB0:
+ .4byte _0807BC60
+ .4byte _0807BC66
+ .4byte _0807BC6C
+ .4byte _0807BC72
+ .4byte _0807BC78
+ .4byte _0807BC7E
+ .4byte _0807BC84
+ .4byte _0807BC8A
+ .4byte _0807BC90
+ .4byte _0807BC96
+ .4byte _0807BC9C
+ .4byte _0807BCA2
+ .4byte _0807BCA8
+ .4byte _0807BCAE
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BCB4
+ .4byte _0807BCB8
+ .4byte _0807BCBC
+ .4byte _0807BCC0
+ .4byte _0807BCC4
+ .4byte _0807BCC8
+ .4byte _0807BCCC
+ .4byte _0807BCD0
+ .4byte _0807BCD8
+ .4byte _0807BCE0
+ .4byte _0807BCE8
+ .4byte _0807BCF0
+ .4byte _0807BCF8
+ .4byte _0807BD00
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD08
+ .4byte _0807BD0C
+ .4byte _0807BD10
+ .4byte _0807BD18
+_0807BC60:
+ movs r5, 0
+ movs r2, 0
+ b _0807BD28
+_0807BC66:
+ movs r5, 0
+ movs r2, 0x1
+ b _0807BD28
+_0807BC6C:
+ movs r5, 0
+ movs r2, 0x3
+ b _0807BD28
+_0807BC72:
+ movs r5, 0
+ movs r2, 0x5
+ b _0807BD28
+_0807BC78:
+ movs r5, 0
+ movs r2, 0x6
+ b _0807BD28
+_0807BC7E:
+ movs r5, 0
+ movs r2, 0x2
+ b _0807BD28
+_0807BC84:
+ movs r5, 0
+ movs r2, 0x4
+ b _0807BD28
+_0807BC8A:
+ movs r5, 0x1
+ movs r2, 0
+ b _0807BD28
+_0807BC90:
+ movs r5, 0x1
+ movs r2, 0x1
+ b _0807BD28
+_0807BC96:
+ movs r5, 0x1
+ movs r2, 0x3
+ b _0807BD28
+_0807BC9C:
+ movs r5, 0x1
+ movs r2, 0x5
+ b _0807BD28
+_0807BCA2:
+ movs r5, 0x1
+ movs r2, 0x6
+ b _0807BD28
+_0807BCA8:
+ movs r5, 0x1
+ movs r2, 0x2
+ b _0807BD28
+_0807BCAE:
+ movs r5, 0x1
+ movs r2, 0x4
+ b _0807BD28
+_0807BCB4:
+ movs r5, 0
+ b _0807BCD2
+_0807BCB8:
+ movs r5, 0
+ b _0807BCDA
+_0807BCBC:
+ movs r5, 0
+ b _0807BCE2
+_0807BCC0:
+ movs r5, 0
+ b _0807BCEA
+_0807BCC4:
+ movs r5, 0
+ b _0807BCF2
+_0807BCC8:
+ movs r5, 0
+ b _0807BCFA
+_0807BCCC:
+ movs r5, 0
+ b _0807BD02
+_0807BCD0:
+ movs r5, 0x1
+_0807BCD2:
+ movs r2, 0
+ movs r3, 0x1
+ b _0807BD28
+_0807BCD8:
+ movs r5, 0x1
+_0807BCDA:
+ movs r2, 0x1
+ movs r3, 0x1
+ b _0807BD28
+_0807BCE0:
+ movs r5, 0x1
+_0807BCE2:
+ movs r2, 0x3
+ movs r3, 0x1
+ b _0807BD28
+_0807BCE8:
+ movs r5, 0x1
+_0807BCEA:
+ movs r2, 0x5
+ movs r3, 0x1
+ b _0807BD28
+_0807BCF0:
+ movs r5, 0x1
+_0807BCF2:
+ movs r2, 0x6
+ movs r3, 0x1
+ b _0807BD28
+_0807BCF8:
+ movs r5, 0x1
+_0807BCFA:
+ movs r2, 0x2
+ movs r3, 0x1
+ b _0807BD28
+_0807BD00:
+ movs r5, 0x1
+_0807BD02:
+ movs r2, 0x4
+ movs r3, 0x1
+ b _0807BD28
+_0807BD08:
+ movs r5, 0
+ b _0807BD12
+_0807BD0C:
+ movs r5, 0
+ b _0807BD1A
+_0807BD10:
+ movs r5, 0x1
+_0807BD12:
+ movs r2, 0xFF
+ movs r3, 0
+ b _0807BD28
+_0807BD18:
+ movs r5, 0x1
+_0807BD1A:
+ movs r2, 0xFF
+ movs r3, 0x1
+ b _0807BD28
+_0807BD20:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _0807BD4A
+_0807BD28:
+ ldr r0, _0807BD50 @ =gBattleAnimArgs
+ movs r1, 0
+ strh r5, [r0]
+ strh r2, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ strh r3, [r0, 0x8]
+ ldr r1, _0807BD54 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0807BD58 @ =sub_80E32E0
+ str r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_0807BD4A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BD50: .4byte gBattleAnimArgs
+_0807BD54: .4byte gTasks
+_0807BD58: .4byte sub_80E32E0
+ thumb_func_end sub_807BB88
+
+ thumb_func_start move_anim_start_t2
+move_anim_start_t2: @ 807BD5C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _0807BD98 @ =gBattleAnimPlayerMonIndex
+ strb r4, [r0]
+ ldr r0, _0807BD9C @ =gBattleAnimEnemyMonIndex
+ strb r4, [r0]
+ ldr r0, _0807BDA0 @ =gBattleAnims_StatusConditions
+ movs r2, 0
+ bl DoMoveAnim
+ ldr r0, _0807BDA4 @ =sub_807BDAC
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807BDA8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BD98: .4byte gBattleAnimPlayerMonIndex
+_0807BD9C: .4byte gBattleAnimEnemyMonIndex
+_0807BDA0: .4byte gBattleAnims_StatusConditions
+_0807BDA4: .4byte sub_807BDAC
+_0807BDA8: .4byte gTasks
+ thumb_func_end move_anim_start_t2
+
+ thumb_func_start sub_807BDAC
+sub_807BDAC: @ 807BDAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0807BDF0 @ =gAnimScriptCallback
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _0807BDF4 @ =gAnimScriptActive
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807BDEA
+ ldr r1, _0807BDF8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0807BDFC @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_0807BDEA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BDF0: .4byte gAnimScriptCallback
+_0807BDF4: .4byte gAnimScriptActive
+_0807BDF8: .4byte gTasks
+_0807BDFC: .4byte 0x02017810
+ thumb_func_end sub_807BDAC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80A7E7C.s b/asm/battle_anim_80A7E7C.s
deleted file mode 100644
index 362acec8b..000000000
--- a/asm/battle_anim_80A7E7C.s
+++ /dev/null
@@ -1,2589 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80A7E7C
-sub_80A7E7C: @ 80A7E7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A7E9C @ =gUnknown_03004B00
- ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _080A7EA0
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A7EDC
- .align 2, 0
-_080A7E9C: .4byte gUnknown_03004B00
-_080A7EA0:
- ldr r1, _080A7EE4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r4, 0x2]
- strh r1, [r0, 0x24]
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x26]
- ldr r1, _080A7EE8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x8]
- ldrh r1, [r4, 0x6]
- strh r1, [r0, 0xA]
- ldrh r1, [r4, 0x8]
- strh r1, [r0, 0xC]
- ldrh r1, [r4, 0x8]
- strh r1, [r0, 0xE]
- ldrh r1, [r4, 0x2]
- strh r1, [r0, 0x10]
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x12]
- ldr r1, _080A7EEC @ =sub_80A7EF0
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
-_080A7EDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7EE4: .4byte gSprites
-_080A7EE8: .4byte gTasks
-_080A7EEC: .4byte sub_80A7EF0
- thumb_func_end sub_80A7E7C
-
- thumb_func_start sub_80A7EF0
-sub_80A7EF0: @ 80A7EF0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A7F2C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xE]
- movs r2, 0xE
- ldrsh r5, [r3, r2]
- adds r7, r1, 0
- cmp r5, 0
- bne _080A7F96
- ldr r2, _080A7F30 @ =gSprites
- movs r6, 0x8
- ldrsh r1, [r3, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r6, 0x24
- ldrsh r0, [r1, r6]
- adds r6, r2, 0
- cmp r0, 0
- bne _080A7F34
- ldrh r0, [r3, 0x10]
- strh r0, [r1, 0x24]
- b _080A7F36
- .align 2, 0
-_080A7F2C: .4byte gTasks
-_080A7F30: .4byte gSprites
-_080A7F34:
- strh r5, [r1, 0x24]
-_080A7F36:
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r7
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r6
- movs r5, 0x26
- ldrsh r0, [r1, r5]
- cmp r0, 0
- bne _080A7F56
- ldrh r0, [r3, 0x12]
- b _080A7F58
-_080A7F56:
- movs r0, 0
-_080A7F58:
- strh r0, [r1, 0x26]
- adds r0, r2, r4
- lsls r0, 3
- adds r2, r0, r7
- ldrh r0, [r2, 0xC]
- strh r0, [r2, 0xE]
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r3, r0, 16
- cmp r3, 0
- bne _080A7F9A
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r3, [r0, 0x24]
- movs r5, 0x8
- ldrsh r1, [r2, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r3, [r0, 0x26]
- adds r0, r4, 0
- bl move_anim_task_del
- b _080A7F9A
-_080A7F96:
- subs r0, 0x1
- strh r0, [r3, 0xE]
-_080A7F9A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7EF0
-
- thumb_func_start sub_80A7FA0
-sub_80A7FA0: @ 80A7FA0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _080A7FC8 @ =gUnknown_03004B00
- ldrh r0, [r2]
- movs r3, 0
- ldrsh r1, [r2, r3]
- cmp r1, 0x3
- bgt _080A7FCC
- lsls r0, 24
- lsrs r0, 24
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- bne _080A8022
- b _080A8026
- .align 2, 0
-_080A7FC8: .4byte gUnknown_03004B00
-_080A7FCC:
- cmp r1, 0x8
- beq _080A8018
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x5
- beq _080A7FEC
- cmp r0, 0x5
- bgt _080A7FE2
- cmp r0, 0x4
- beq _080A7FE8
- b _080A7FF4
-_080A7FE2:
- cmp r0, 0x6
- beq _080A7FF0
- b _080A7FF4
-_080A7FE8:
- movs r0, 0
- b _080A7FF6
-_080A7FEC:
- movs r0, 0x2
- b _080A7FF6
-_080A7FF0:
- movs r0, 0x1
- b _080A7FF6
-_080A7FF4:
- movs r0, 0x3
-_080A7FF6:
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _080A800C
- movs r6, 0x1
-_080A800C:
- ldr r0, _080A8014 @ =gUnknown_02024BE0
- adds r0, r4, r0
- b _080A8020
- .align 2, 0
-_080A8014: .4byte gUnknown_02024BE0
-_080A8018:
- ldr r1, _080A8030 @ =gUnknown_02024BE0
- ldr r0, _080A8034 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
-_080A8020:
- ldrb r3, [r0]
-_080A8022:
- cmp r6, 0
- beq _080A8038
-_080A8026:
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A8076
- .align 2, 0
-_080A8030: .4byte gUnknown_02024BE0
-_080A8034: .4byte gUnknown_0202F7C8
-_080A8038:
- ldr r1, _080A807C @ =gSprites
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldr r2, _080A8080 @ =gUnknown_03004B00
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x24]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x26]
- ldr r1, _080A8084 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x8]
- ldrh r1, [r2, 0x6]
- strh r1, [r0, 0xA]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0xC]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0xE]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x10]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x12]
- ldr r1, _080A8088 @ =sub_80A808C
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
-_080A8076:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A807C: .4byte gSprites
-_080A8080: .4byte gUnknown_03004B00
-_080A8084: .4byte gTasks
-_080A8088: .4byte sub_80A808C
- thumb_func_end sub_80A7FA0
-
- thumb_func_start sub_80A808C
-sub_80A808C: @ 80A808C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A80D0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r1
- ldrh r2, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- mov r12, r1
- cmp r0, 0
- bne _080A8144
- ldr r2, _080A80D4 @ =gSprites
- movs r7, 0x8
- ldrsh r1, [r3, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- ldrh r5, [r3, 0x10]
- movs r7, 0x10
- ldrsh r0, [r3, r7]
- adds r7, r2, 0
- cmp r1, r0
- bne _080A80D8
- negs r0, r5
- strh r0, [r4, 0x24]
- b _080A80DA
- .align 2, 0
-_080A80D0: .4byte gTasks
-_080A80D4: .4byte gSprites
-_080A80D8:
- strh r5, [r4, 0x24]
-_080A80DA:
- lsls r3, r6, 2
- adds r1, r3, r6
- lsls r1, 3
- add r1, r12
- movs r0, 0x8
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r7
- movs r0, 0x26
- ldrsh r2, [r4, r0]
- mov r8, r2
- ldrh r5, [r1, 0x12]
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- cmp r8, r0
- bne _080A8104
- negs r0, r5
- strh r0, [r4, 0x26]
- b _080A8106
-_080A8104:
- strh r5, [r4, 0x26]
-_080A8106:
- adds r0, r3, r6
- lsls r0, 3
- mov r4, r12
- adds r3, r0, r4
- ldrh r0, [r3, 0xC]
- strh r0, [r3, 0xE]
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _080A8148
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x24]
- movs r4, 0x8
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
- b _080A8148
-_080A8144:
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_080A8148:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A808C
-
- thumb_func_start sub_80A8154
-sub_80A8154: @ 80A8154
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A8174 @ =gUnknown_03004B00
- ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- bne _080A8178
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A81C6
- .align 2, 0
-_080A8174: .4byte gUnknown_03004B00
-_080A8178:
- ldr r0, _080A81CC @ =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x2]
- ldrh r2, [r1, 0x24]
- adds r0, r2
- movs r2, 0
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x4]
- ldrh r6, [r1, 0x26]
- adds r0, r6
- strh r0, [r1, 0x26]
- ldr r0, _080A81D0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- strh r3, [r1, 0x8]
- strh r2, [r1, 0xA]
- ldrh r0, [r4, 0x6]
- strh r0, [r1, 0xC]
- strh r2, [r1, 0xE]
- ldrh r0, [r4, 0x8]
- strh r0, [r1, 0x10]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- lsls r0, 1
- strh r0, [r1, 0x12]
- movs r6, 0x4
- ldrsh r0, [r4, r6]
- lsls r0, 1
- strh r0, [r1, 0x14]
- ldr r2, _080A81D4 @ =sub_80A81D8
- str r2, [r1]
- adds r0, r5, 0
- bl _call_via_r2
-_080A81C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A81CC: .4byte gSprites
-_080A81D0: .4byte gTasks
-_080A81D4: .4byte sub_80A81D8
- thumb_func_end sub_80A8154
-
- thumb_func_start sub_80A81D8
-sub_80A81D8: @ 80A81D8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A8230 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- adds r6, r1, 0
- cmp r0, 0
- beq _080A81F6
- b _080A8308
-_080A81F6:
- ldrh r1, [r4, 0xA]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A8238
- ldr r2, _080A8234 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r3, [r0, 0x24]
- adds r1, r3
- strh r1, [r0, 0x24]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x14]
- ldrh r3, [r0, 0x26]
- adds r1, r3
- strh r1, [r0, 0x26]
- adds r3, r2, 0
- b _080A8262
- .align 2, 0
-_080A8230: .4byte gTasks
-_080A8234: .4byte gSprites
-_080A8238:
- ldr r3, _080A82C4 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x24]
- ldrh r2, [r4, 0x12]
- subs r1, r2
- strh r1, [r0, 0x24]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- ldrh r2, [r4, 0x14]
- subs r1, r2
- strh r1, [r0, 0x26]
-_080A8262:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r0, [r4, 0x10]
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0xA]
- adds r2, r0, 0x1
- strh r2, [r4, 0xA]
- lsls r0, r2, 16
- asrs r0, 16
- movs r6, 0xC
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080A830C
- movs r0, 0x1
- ands r2, r0
- cmp r2, 0
- beq _080A82C8
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- ldrh r6, [r1, 0x24]
- adds r0, r6
- strh r0, [r1, 0x24]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- ldrh r3, [r1, 0x26]
- adds r0, r3
- strh r0, [r1, 0x26]
- b _080A8300
- .align 2, 0
-_080A82C4: .4byte gSprites
-_080A82C8:
- movs r6, 0x8
- ldrsh r0, [r4, r6]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r2, 0x26]
- subs r0, r1
- strh r0, [r2, 0x26]
-_080A8300:
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A830C
-_080A8308:
- subs r0, r2, 0x1
- strh r0, [r4, 0xE]
-_080A830C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A81D8
-
- thumb_func_start sub_80A8314
-sub_80A8314: @ 80A8314
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080A8364 @ =gUnknown_03004B00
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A8368 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r5, 0x2]
- strh r2, [r1, 0x24]
- ldr r2, _080A836C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x8]
- ldrh r0, [r5, 0x2]
- strh r0, [r1, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r1, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r1, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r1, 0x10]
- ldr r2, _080A8370 @ =sub_80A8374
- str r2, [r1]
- adds r0, r4, 0
- bl _call_via_r2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8364: .4byte gUnknown_03004B00
-_080A8368: .4byte gSprites
-_080A836C: .4byte gTasks
-_080A8370: .4byte sub_80A8374
- thumb_func_end sub_80A8314
-
- thumb_func_start sub_80A8374
-sub_80A8374: @ 80A8374
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080A8400 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r2
- ldrb r5, [r3, 0x8]
- ldrh r4, [r3, 0xA]
- ldrh r1, [r3, 0x18]
- adds r0, r1, 0x1
- strh r0, [r3, 0x18]
- movs r7, 0xC
- ldrsh r0, [r3, r7]
- lsls r1, 16
- asrs r1, 16
- mov r12, r2
- ldr r7, _080A8404 @ =gSprites
- cmp r0, r1
- bne _080A83C6
- movs r0, 0
- strh r0, [r3, 0x18]
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, r0, r7
- ldrh r3, [r1, 0x24]
- movs r0, 0x24
- ldrsh r2, [r1, r0]
- lsls r0, r4, 16
- asrs r0, 16
- cmp r2, r0
- bne _080A83BE
- negs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_080A83BE:
- lsls r0, r4, 16
- asrs r0, 16
- adds r0, r3
- strh r0, [r1, 0x24]
-_080A83C6:
- lsls r2, r6, 2
- adds r2, r6
- lsls r2, 3
- add r2, r12
- strh r4, [r2, 0xA]
- ldrh r1, [r2, 0xE]
- ldrh r0, [r2, 0x1A]
- adds r1, r0
- strh r1, [r2, 0x1A]
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r7
- lsls r1, 16
- asrs r1, 24
- strh r1, [r0, 0x26]
- ldrh r0, [r2, 0x10]
- subs r0, 0x1
- strh r0, [r2, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _080A83F8
- adds r0, r6, 0
- bl move_anim_task_del
-_080A83F8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8400: .4byte gTasks
-_080A8404: .4byte gSprites
- thumb_func_end sub_80A8374
-
- thumb_func_start sub_80A8408
-sub_80A8408: @ 80A8408
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0x1
- ldr r4, _080A847C @ =gUnknown_03004B00
- ldrb r0, [r4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- ble _080A842C
- movs r0, 0x5
- strh r0, [r4, 0x8]
-_080A842C:
- movs r1, 0
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- adds r3, r4, 0
- ldr r2, _080A8480 @ =gTasks
- mov r12, r2
- lsls r4, r5, 2
- ldr r2, _080A8484 @ =sub_80A8488
- mov r8, r2
- cmp r1, r0
- bge _080A8452
- adds r2, r0, 0
-_080A8444:
- lsls r0, r6, 25
- lsrs r6, r0, 24
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r2
- blt _080A8444
-_080A8452:
- adds r0, r4, r5
- lsls r0, 3
- add r0, r12
- strh r7, [r0, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r0, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r0, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r0, 0xE]
- strh r6, [r0, 0x10]
- mov r1, r8
- str r1, [r0]
- adds r0, r5, 0
- bl _call_via_r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A847C: .4byte gUnknown_03004B00
-_080A8480: .4byte gTasks
-_080A8484: .4byte sub_80A8488
- thumb_func_end sub_80A8408
-
- thumb_func_start sub_80A8488
-sub_80A8488: @ 80A8488
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080A84F8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrb r4, [r5, 0x8]
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- bl Sin
- ldr r2, _080A84FC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r4, r1, r2
- strh r0, [r4, 0x24]
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r5, 0xC]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x10]
- ldrh r1, [r5, 0x12]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x12]
- cmp r0, 0
- bne _080A84E0
- ldrh r0, [r5, 0xE]
- subs r0, 0x1
- strh r0, [r5, 0xE]
-_080A84E0:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080A84F2
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
-_080A84F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A84F8: .4byte gTasks
-_080A84FC: .4byte gSprites
- thumb_func_end sub_80A8488
-
- thumb_func_start sub_80A8500
-sub_80A8500: @ 80A8500
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A8528 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A851C
- ldr r1, _080A852C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A851C:
- adds r0, r4, 0
- bl sub_80A8408
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8528: .4byte gUnknown_0202F7C8
-_080A852C: .4byte gUnknown_03004B00
- thumb_func_end sub_80A8500
-
- thumb_func_start sub_80A8530
-sub_80A8530: @ 80A8530
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080A8558 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8560
- ldr r1, _080A855C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- b _080A8564
- .align 2, 0
-_080A8558: .4byte gUnknown_0202F7C8
-_080A855C: .4byte gUnknown_03004B00
-_080A8560:
- ldr r1, _080A8590 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
-_080A8564:
- strh r0, [r4, 0x30]
- ldrh r2, [r1]
- movs r0, 0
- strh r2, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldr r1, _080A8594 @ =gUnknown_02024BE0
- ldr r0, _080A8598 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r1, _080A859C @ =sub_80A85A4
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080A85A0 @ =sub_8078458
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8590: .4byte gUnknown_03004B00
-_080A8594: .4byte gUnknown_02024BE0
-_080A8598: .4byte gUnknown_0202F7C8
-_080A859C: .4byte sub_80A85A4
-_080A85A0: .4byte sub_8078458
- thumb_func_end sub_80A8530
-
- thumb_func_start sub_80A85A4
-sub_80A85A4: @ 80A85A4
- push {lr}
- ldrh r1, [r0, 0x36]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x30]
- negs r1, r1
- strh r1, [r0, 0x30]
- ldr r1, _080A85C0 @ =sub_8078458
- str r1, [r0, 0x1C]
- ldr r1, _080A85C4 @ =move_anim_8072740
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080A85C0: .4byte sub_8078458
-_080A85C4: .4byte move_anim_8072740
- thumb_func_end sub_80A85A4
-
- thumb_func_start sub_80A85C8
-sub_80A85C8: @ 80A85C8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r5, _080A8608 @ =gUnknown_03004B00
- ldrb r0, [r5, 0x4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r5]
- movs r1, 0
- strh r2, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldrh r1, [r5, 0x2]
- strh r1, [r4, 0x32]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r1, _080A860C @ =sub_80A8614
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080A8610 @ =sub_8078458
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8608: .4byte gUnknown_03004B00
-_080A860C: .4byte sub_80A8614
-_080A8610: .4byte sub_8078458
- thumb_func_end sub_80A85C8
-
- thumb_func_start sub_80A8614
-sub_80A8614: @ 80A8614
- push {lr}
- ldrh r1, [r0, 0x36]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x32]
- negs r1, r1
- strh r1, [r0, 0x32]
- ldr r1, _080A8630 @ =sub_8078458
- str r1, [r0, 0x1C]
- ldr r1, _080A8634 @ =move_anim_8072740
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080A8630: .4byte sub_8078458
-_080A8634: .4byte move_anim_8072740
- thumb_func_end sub_80A8614
-
- thumb_func_start sub_80A8638
-sub_80A8638: @ 80A8638
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _080A8650 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A865C
- ldr r1, _080A8654 @ =gUnknown_02024BE0
- ldr r0, _080A8658 @ =gUnknown_0202F7C8
- b _080A8660
- .align 2, 0
-_080A8650: .4byte gUnknown_03004B00
-_080A8654: .4byte gUnknown_02024BE0
-_080A8658: .4byte gUnknown_0202F7C8
-_080A865C:
- ldr r1, _080A86C0 @ =gUnknown_02024BE0
- ldr r0, _080A86C4 @ =gUnknown_0202F7C9
-_080A8660:
- ldrb r0, [r0]
- adds r0, r1
- ldrb r7, [r0]
- ldr r5, _080A86C8 @ =gUnknown_03004B00
- ldrh r0, [r5, 0x4]
- movs r3, 0
- strh r0, [r6, 0x2E]
- ldr r0, _080A86CC @ =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r6, 0x30]
- ldrh r0, [r4, 0x20]
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x22]
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- str r3, [sp]
- bl sub_8078A5C
- ldr r3, [sp]
- strh r3, [r6, 0x34]
- strh r3, [r6, 0x36]
- ldrh r0, [r4, 0x24]
- strh r0, [r6, 0x38]
- ldrh r0, [r4, 0x26]
- strh r0, [r6, 0x3A]
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080A86D0
- strh r3, [r6, 0x32]
- b _080A86D6
- .align 2, 0
-_080A86C0: .4byte gUnknown_02024BE0
-_080A86C4: .4byte gUnknown_0202F7C9
-_080A86C8: .4byte gUnknown_03004B00
-_080A86CC: .4byte gSprites
-_080A86D0:
- cmp r0, 0x2
- bne _080A86D6
- strh r3, [r6, 0x30]
-_080A86D6:
- ldr r0, _080A86EC @ =gUnknown_03004B00
- ldrh r1, [r0, 0x2]
- lsls r0, r7, 8
- orrs r0, r1
- strh r0, [r6, 0x3C]
- ldr r0, _080A86F0 @ =sub_80A86F4
- str r0, [r6, 0x1C]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A86EC: .4byte gUnknown_03004B00
-_080A86F0: .4byte sub_80A86F4
- thumb_func_end sub_80A8638
-
- thumb_func_start sub_80A86F4
-sub_80A86F4: @ 80A86F4
- push {r4-r6,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x3C]
- lsls r1, r0, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- lsls r0, 16
- asrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080A8730 @ =gSprites
- adds r3, r1, r0
- ldrh r0, [r2, 0x2E]
- movs r6, 0x2E
- ldrsh r1, [r2, r6]
- cmp r1, 0
- bne _080A8734
- cmp r4, 0x1
- bhi _080A871E
- strh r1, [r3, 0x24]
-_080A871E:
- cmp r5, 0x2
- beq _080A8726
- cmp r5, 0
- bne _080A8728
-_080A8726:
- strh r1, [r3, 0x26]
-_080A8728:
- adds r0, r2, 0
- bl move_anim_8072740
- b _080A875E
- .align 2, 0
-_080A8730: .4byte gSprites
-_080A8734:
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x30]
- ldrh r0, [r2, 0x34]
- adds r1, r0
- strh r1, [r2, 0x34]
- ldrh r0, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r0, r4
- strh r0, [r2, 0x36]
- lsls r1, 16
- asrs r1, 24
- ldrh r6, [r2, 0x38]
- adds r1, r6
- strh r1, [r3, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r2, 0x3A]
- adds r0, r2
- strh r0, [r3, 0x26]
-_080A875E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A86F4
-
- thumb_func_start sub_80A8764
-sub_80A8764: @ 80A8764
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080A8778 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A8780
- ldr r0, _080A877C @ =gUnknown_0202F7C8
- b _080A8782
- .align 2, 0
-_080A8778: .4byte gUnknown_03004B00
-_080A877C: .4byte gUnknown_0202F7C8
-_080A8780:
- ldr r0, _080A8800 @ =gUnknown_0202F7C9
-_080A8782:
- ldrb r2, [r0]
- ldr r0, _080A8804 @ =gUnknown_02024BE0
- adds r0, r2, r0
- ldrb r6, [r0]
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A87AC
- ldr r1, _080A8808 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080A87AC
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A87AC:
- ldr r2, _080A8808 @ =gUnknown_03004B00
- ldrh r0, [r2, 0x8]
- movs r4, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080A880C @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x2]
- ldrh r3, [r1, 0x20]
- adds r0, r3
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x22]
- strh r0, [r5, 0x34]
- ldrh r0, [r2, 0x4]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078A5C
- strh r4, [r5, 0x34]
- strh r4, [r5, 0x36]
- strh r6, [r5, 0x38]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080A8810 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080A8814 @ =sub_80784A8
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8800: .4byte gUnknown_0202F7C9
-_080A8804: .4byte gUnknown_02024BE0
-_080A8808: .4byte gUnknown_03004B00
-_080A880C: .4byte gSprites
-_080A8810: .4byte move_anim_8072740
-_080A8814: .4byte sub_80784A8
- thumb_func_end sub_80A8764
-
- thumb_func_start sub_80A8818
-sub_80A8818: @ 80A8818
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080A8838 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A8840
- ldr r0, _080A883C @ =gUnknown_0202F7C8
- b _080A8842
- .align 2, 0
-_080A8838: .4byte gUnknown_03004B00
-_080A883C: .4byte gUnknown_0202F7C8
-_080A8840:
- ldr r0, _080A88C0 @ =gUnknown_0202F7C9
-_080A8842:
- ldrb r1, [r0]
- ldr r0, _080A88C4 @ =gUnknown_02024BE0
- adds r0, r1, r0
- ldrb r7, [r0]
- adds r0, r1, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A886C
- ldr r1, _080A88C8 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080A886C
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A886C:
- ldr r5, _080A88C8 @ =gUnknown_03004B00
- ldrh r0, [r5, 0x8]
- strh r0, [r6, 0x2E]
- ldr r0, _080A88CC @ =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r6, 0x30]
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r6, 0x34]
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl sub_8078A5C
- ldrh r0, [r4, 0x24]
- lsls r0, 8
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x26]
- lsls r0, 8
- strh r0, [r6, 0x36]
- strh r7, [r6, 0x38]
- ldrh r0, [r5, 0xA]
- strh r0, [r6, 0x3A]
- lsls r0, 16
- cmp r0, 0
- bne _080A88D4
- ldr r1, _080A88D0 @ =move_anim_8072740
- adds r0, r6, 0
- bl oamt_set_x3A_32
- b _080A88DC
- .align 2, 0
-_080A88C0: .4byte gUnknown_0202F7C9
-_080A88C4: .4byte gUnknown_02024BE0
-_080A88C8: .4byte gUnknown_03004B00
-_080A88CC: .4byte gSprites
-_080A88D0: .4byte move_anim_8072740
-_080A88D4:
- ldr r1, _080A88E8 @ =sub_80A88F0
- adds r0, r6, 0
- bl oamt_set_x3A_32
-_080A88DC:
- ldr r0, _080A88EC @ =sub_80784A8
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A88E8: .4byte sub_80A88F0
-_080A88EC: .4byte sub_80784A8
- thumb_func_end sub_80A8818
-
- thumb_func_start sub_80A88F0
-sub_80A88F0: @ 80A88F0
- push {r4,lr}
- ldr r4, _080A891C @ =gSprites
- movs r1, 0x38
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- movs r3, 0
- strh r3, [r1, 0x24]
- movs r1, 0x38
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r3, [r1, 0x26]
- bl move_anim_8072740
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A891C: .4byte gSprites
- thumb_func_end sub_80A88F0
-
- thumb_func_start sub_80A8920
-sub_80A8920: @ 80A8920
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080A89A4 @ =gUnknown_03004B00
- movs r0, 0x6
- ldrsh r1, [r5, r0]
- movs r0, 0x80
- lsls r0, 8
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _080A89A8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8952
- ldrh r0, [r5, 0x2]
- negs r0, r0
- strh r0, [r5, 0x2]
- ldrh r0, [r5, 0xA]
- negs r0, r0
- strh r0, [r5, 0xA]
-_080A8952:
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- ldr r1, _080A89AC @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- lsls r0, 8
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- lsls r0, 8
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x14]
- strh r7, [r4, 0x16]
- ldr r0, _080A89B0 @ =sub_80A89B4
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A89A4: .4byte gUnknown_03004B00
-_080A89A8: .4byte gUnknown_0202F7C8
-_080A89AC: .4byte gTasks
-_080A89B0: .4byte sub_80A89B4
- thumb_func_end sub_80A8920
-
- thumb_func_start sub_80A89B4
-sub_80A89B4: @ 80A89B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A8A0C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r1, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- ldrh r2, [r5, 0x1E]
- adds r0, r2
- strh r0, [r5, 0x1E]
- ldr r2, _080A8A10 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r2
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x1C]
- lsrs r0, 8
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x16]
- ldrh r1, [r5, 0x1C]
- adds r0, r1
- strh r0, [r5, 0x1C]
- ldrh r0, [r5, 0xE]
- subs r0, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080A8A04
- ldr r0, _080A8A14 @ =sub_80A8A18
- str r0, [r5]
-_080A8A04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A0C: .4byte gTasks
-_080A8A10: .4byte gSprites
-_080A8A14: .4byte sub_80A8A18
- thumb_func_end sub_80A89B4
-
- thumb_func_start sub_80A8A18
-sub_80A8A18: @ 80A8A18
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080A8A3C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A8A40
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- b _080A8A74
- .align 2, 0
-_080A8A3C: .4byte gTasks
-_080A8A40:
- ldrb r0, [r4, 0x8]
- ldrh r2, [r4, 0x12]
- ldrh r1, [r4, 0x20]
- adds r2, r1
- strh r2, [r4, 0x20]
- ldr r3, _080A8A7C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsls r2, 16
- asrs r2, 24
- ldrh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 24
- adds r2, r0
- strh r2, [r1, 0x24]
- ldrh r0, [r4, 0x14]
- subs r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _080A8A74
- adds r0, r5, 0
- bl move_anim_task_del
-_080A8A74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A7C: .4byte gSprites
- thumb_func_end sub_80A8A18
-
- thumb_func_start sub_80A8A80
-sub_80A8A80: @ 80A8A80
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A8AA4 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _080A8AAE
- cmp r0, 0x2
- bgt _080A8AA8
- cmp r0, 0
- blt _080A8AE0
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- b _080A8AE8
- .align 2, 0
-_080A8AA4: .4byte gUnknown_03004B00
-_080A8AA8:
- cmp r0, 0x3
- beq _080A8AB8
- b _080A8AE0
-_080A8AAE:
- ldr r5, _080A8AB4 @ =gUnknown_0202F7C8
- b _080A8ABA
- .align 2, 0
-_080A8AB4: .4byte gUnknown_0202F7C8
-_080A8AB8:
- ldr r5, _080A8AD8 @ =gUnknown_0202F7C9
-_080A8ABA:
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080A8AE0
- ldr r1, _080A8ADC @ =gUnknown_02024BE0
- ldrb r0, [r5]
- eors r0, r4
- adds r0, r1
- ldrb r2, [r0]
- b _080A8AE8
- .align 2, 0
-_080A8AD8: .4byte gUnknown_0202F7C9
-_080A8ADC: .4byte gUnknown_02024BE0
-_080A8AE0:
- adds r0, r6, 0
- bl move_anim_task_del
- b _080A8B28
-_080A8AE8:
- ldr r1, _080A8B08 @ =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r5, r0, r1
- strh r2, [r5, 0x8]
- ldr r0, _080A8B0C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8B14
- ldr r0, _080A8B10 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x2]
- b _080A8B1A
- .align 2, 0
-_080A8B08: .4byte gTasks
-_080A8B0C: .4byte gUnknown_0202F7C9
-_080A8B10: .4byte gUnknown_03004B00
-_080A8B14:
- ldr r0, _080A8B30 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x2]
- negs r0, r0
-_080A8B1A:
- strh r0, [r5, 0xA]
- ldr r0, _080A8B34 @ =gTasks
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A8B38 @ =sub_80A8B3C
- str r0, [r1]
-_080A8B28:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8B30: .4byte gUnknown_03004B00
-_080A8B34: .4byte gTasks
-_080A8B38: .4byte sub_80A8B3C
- thumb_func_end sub_80A8A80
-
- thumb_func_start sub_80A8B3C
-sub_80A8B3C: @ 80A8B3C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A8B80 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r2, [r1, 0x8]
- ldr r3, _080A8B84 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r1, 0xA]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r1, r0
- adds r1, 0x20
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bls _080A8B7A
- adds r0, r4, 0
- bl move_anim_task_del
-_080A8B7A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8B80: .4byte gTasks
-_080A8B84: .4byte gSprites
- thumb_func_end sub_80A8B3C
-
- thumb_func_start sub_80A8B88
-sub_80A8B88: @ 80A8B88
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _080A8BD8 @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8BA4
- ldr r1, _080A8BDC @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A8BA4:
- ldr r4, _080A8BDC @ =gUnknown_03004B00
- ldrb r0, [r4, 0x8]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A8BE0 @ =gTasks
- lsls r3, r5, 2
- adds r1, r3, r5
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r4]
- strh r1, [r2, 0x8]
- ldrh r1, [r4, 0x2]
- strh r1, [r2, 0xA]
- ldrh r1, [r4, 0x4]
- strh r1, [r2, 0xC]
- ldrh r1, [r4, 0x6]
- strh r1, [r2, 0xE]
- strh r0, [r2, 0x10]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A8BE4
- ldrb r0, [r6]
- b _080A8BE8
- .align 2, 0
-_080A8BD8: .4byte gUnknown_0202F7C8
-_080A8BDC: .4byte gUnknown_03004B00
-_080A8BE0: .4byte gTasks
-_080A8BE4:
- ldr r0, _080A8C00 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
-_080A8BE8:
- strh r0, [r2, 0x12]
- ldr r1, _080A8C04 @ =gTasks
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x20]
- ldr r1, _080A8C08 @ =sub_80A8C0C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8C00: .4byte gUnknown_0202F7C9
-_080A8C04: .4byte gTasks
-_080A8C08: .4byte sub_80A8C0C
- thumb_func_end sub_80A8B88
-
- thumb_func_start sub_80A8C0C
-sub_80A8C0C: @ 80A8C0C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A8C5C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrb r7, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- lsls r1, r0, 16
- strh r0, [r4, 0x1C]
- lsrs r1, 24
- mov r8, r1
- mov r0, r8
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- bl Sin
- lsls r0, 16
- lsrs r5, r0, 16
- mov r9, r5
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A8C64
- ldr r0, _080A8C60 @ =gSprites
- lsls r2, r7, 4
- adds r1, r2, r7
- lsls r1, 2
- adds r1, r0
- strh r5, [r1, 0x24]
- mov r9, r0
- adds r4, r2, 0
- b _080A8CAA
- .align 2, 0
-_080A8C5C: .4byte gTasks
-_080A8C60: .4byte gSprites
-_080A8C64:
- ldrb r0, [r4, 0x12]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080A8C8C
- ldr r1, _080A8C88 @ =gSprites
- lsls r2, r7, 4
- adds r0, r2, r7
- lsls r0, 2
- adds r3, r0, r1
- lsls r0, r5, 16
- asrs r0, 16
- mov r9, r1
- adds r4, r2, 0
- cmp r0, 0
- bge _080A8CA8
- b _080A8CA6
- .align 2, 0
-_080A8C88: .4byte gSprites
-_080A8C8C:
- ldr r1, _080A8D2C @ =gSprites
- lsls r2, r7, 4
- adds r0, r2, r7
- lsls r0, 2
- adds r3, r0, r1
- mov r4, r9
- lsls r0, r4, 16
- asrs r0, 16
- mov r9, r1
- adds r4, r2, 0
- cmp r0, 0
- bge _080A8CA6
- negs r0, r0
-_080A8CA6:
- negs r0, r0
-_080A8CA8:
- strh r0, [r3, 0x26]
-_080A8CAA:
- mov r5, r8
- cmp r5, 0x7F
- bls _080A8CCC
- ldr r1, _080A8D30 @ =gTasks
- lsls r2, r6, 2
- adds r0, r2, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0x1E
- ldrsh r0, [r3, r5]
- adds r5, r1, 0
- cmp r0, 0
- bne _080A8CCC
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080A8CEE
-_080A8CCC:
- mov r2, r8
- cmp r2, 0x7E
- bhi _080A8D20
- ldr r1, _080A8D30 @ =gTasks
- lsls r2, r6, 2
- adds r0, r2, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0x1E
- ldrsh r0, [r3, r5]
- adds r5, r1, 0
- cmp r0, 0x1
- bne _080A8D20
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080A8D20
-_080A8CEE:
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x1E]
- movs r2, 0x1
- eors r0, r2
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- eors r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0xE]
- subs r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r3, r0, 16
- cmp r3, 0
- bne _080A8D20
- adds r0, r4, r7
- lsls r0, 2
- add r0, r9
- strh r3, [r0, 0x24]
- strh r3, [r0, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
-_080A8D20:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8D2C: .4byte gSprites
-_080A8D30: .4byte gTasks
- thumb_func_end sub_80A8C0C
-
- thumb_func_start sub_80A8D34
-sub_80A8D34: @ 80A8D34
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _080A8D80 @ =gUnknown_03004B00
- ldrb r0, [r6, 0x6]
- bl obj_id_for_side_relative_to_move
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r1, [r6, 0x8]
- adds r0, r5, 0
- bl sub_8078E70
- ldr r1, _080A8D84 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r6]
- strh r1, [r0, 0x8]
- ldrh r1, [r6, 0x2]
- strh r1, [r0, 0xA]
- ldrh r1, [r6, 0x4]
- strh r1, [r0, 0xC]
- ldrh r1, [r6, 0x4]
- strh r1, [r0, 0xE]
- strh r5, [r0, 0x10]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x1C]
- strh r1, [r0, 0x1E]
- ldr r1, _080A8D88 @ =sub_80A8D8C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8D80: .4byte gUnknown_03004B00
-_080A8D84: .4byte gTasks
-_080A8D88: .4byte sub_80A8D8C
- thumb_func_end sub_80A8D34
-
- thumb_func_start sub_80A8D8C
-sub_80A8D8C: @ 80A8D8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080A8DEC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0xA]
- ldrh r3, [r4, 0x1E]
- adds r0, r3
- strh r0, [r4, 0x1E]
- ldrb r0, [r4, 0x10]
- adds r6, r0, 0
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- movs r3, 0x1E
- ldrsh r2, [r4, r3]
- adds r0, r6, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080A8DFC
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- ble _080A8DF0
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- negs r0, r0
- strh r0, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r1, [r4, 0xE]
- b _080A8DFC
- .align 2, 0
-_080A8DEC: .4byte gTasks
-_080A8DF0:
- adds r0, r6, 0
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
-_080A8DFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8D8C
-
- thumb_func_start sub_80A8E04
-sub_80A8E04: @ 80A8E04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _080A8E40 @ =gUnknown_03004B00
- ldrb r0, [r4, 0x4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0
- bl sub_8078E70
- ldr r1, _080A8E44 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2, 0xA]
- ldrh r0, [r4]
- strh r0, [r2, 0xC]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- beq _080A8E48
- strh r1, [r2, 0xE]
- b _080A8E54
- .align 2, 0
-_080A8E40: .4byte gUnknown_03004B00
-_080A8E44: .4byte gTasks
-_080A8E48:
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r3, r0, 0
- muls r3, r1
- adds r0, r3, 0
- strh r0, [r2, 0xE]
-_080A8E54:
- ldr r1, _080A8E80 @ =gTasks
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r5, r0, r1
- ldr r6, _080A8E84 @ =gUnknown_03004B00
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x10]
- mov r0, r8
- strh r0, [r5, 0x12]
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x14]
- bl sub_8076BE0
- lsls r0, 24
- mov r8, r4
- cmp r0, 0
- beq _080A8E88
- movs r0, 0x1
- strh r0, [r5, 0x16]
- b _080A8EAC
- .align 2, 0
-_080A8E80: .4byte gTasks
-_080A8E84: .4byte gUnknown_03004B00
-_080A8E88:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A8E98
- ldr r0, _080A8E94 @ =gUnknown_0202F7C8
- b _080A8E9A
- .align 2, 0
-_080A8E94: .4byte gUnknown_0202F7C8
-_080A8E98:
- ldr r0, _080A8EF0 @ =gUnknown_0202F7C9
-_080A8E9A:
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _080A8EAA
- movs r1, 0x1
-_080A8EAA:
- strh r1, [r5, 0x16]
-_080A8EAC:
- ldr r0, _080A8EF4 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r4, r1, r0
- movs r3, 0x16
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A8ED8
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080A8ED8
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0xE]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x10]
-_080A8ED8:
- ldr r0, _080A8EF4 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A8EF8 @ =sub_80A8FD8
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8EF0: .4byte gUnknown_0202F7C9
-_080A8EF4: .4byte gTasks
-_080A8EF8: .4byte sub_80A8FD8
- thumb_func_end sub_80A8E04
-
- thumb_func_start sub_80A8EFC
-sub_80A8EFC: @ 80A8EFC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A8F38 @ =gUnknown_03004B00
- ldrb r0, [r4, 0x4]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0
- bl sub_8078E70
- ldr r1, _080A8F3C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xA]
- ldrh r1, [r4]
- strh r1, [r0, 0xC]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A8F44
- ldr r0, _080A8F40 @ =gUnknown_0202F7C8
- b _080A8F46
- .align 2, 0
-_080A8F38: .4byte gUnknown_03004B00
-_080A8F3C: .4byte gTasks
-_080A8F40: .4byte gUnknown_0202F7C8
-_080A8F44:
- ldr r0, _080A8F74 @ =gUnknown_0202F7C9
-_080A8F46:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080A8F58
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
-_080A8F58:
- ldr r0, _080A8F78 @ =gUnknown_03004B00
- movs r2, 0x6
- ldrsh r1, [r0, r2]
- adds r6, r0, 0
- cmp r1, 0x1
- beq _080A8F80
- ldr r2, _080A8F7C @ =gTasks
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0xE]
- b _080A8F9A
- .align 2, 0
-_080A8F74: .4byte gUnknown_0202F7C9
-_080A8F78: .4byte gUnknown_03004B00
-_080A8F7C: .4byte gTasks
-_080A8F80:
- ldr r3, _080A8FD0 @ =gTasks
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r0, r3
- ldrh r2, [r6]
- ldrh r1, [r6, 0x2]
- adds r7, r2, 0
- muls r7, r1
- adds r1, r7, 0
- strh r1, [r0, 0xE]
- adds r2, r3, 0
- adds r3, r4, 0
-_080A8F9A:
- adds r1, r3, r5
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r6, 0x2]
- strh r0, [r1, 0x10]
- mov r0, r8
- strh r0, [r1, 0x12]
- ldrh r0, [r6, 0x6]
- strh r0, [r1, 0x14]
- movs r0, 0x1
- strh r0, [r1, 0x16]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0xE]
- movs r7, 0x10
- ldrsh r0, [r1, r7]
- negs r0, r0
- strh r0, [r1, 0x10]
- ldr r0, _080A8FD4 @ =sub_80A8FD8
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8FD0: .4byte gTasks
-_080A8FD4: .4byte sub_80A8FD8
- thumb_func_end sub_80A8EFC
-
- thumb_func_start sub_80A8FD8
-sub_80A8FD8: @ 80A8FD8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A9030 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xE]
- adds r0, r1
- strh r0, [r4, 0xE]
- ldrb r0, [r4, 0x12]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xE]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080A900C
- ldrb r0, [r4, 0x12]
- bl sub_8078F9C
-_080A900C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080A9052
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080A9034
- cmp r0, 0x1
- ble _080A903A
- cmp r0, 0x2
- beq _080A9042
- b _080A903A
- .align 2, 0
-_080A9030: .4byte gTasks
-_080A9034:
- ldrb r0, [r4, 0x12]
- bl sub_8078F40
-_080A903A:
- adds r0, r5, 0
- bl move_anim_task_del
- b _080A9052
-_080A9042:
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r0, 0x1
- strh r0, [r4, 0x14]
-_080A9052:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8FD8
-
- thumb_func_start sub_80A9058
-sub_80A9058: @ 80A9058
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080A9084 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r8, r0
- cmp r1, 0
- bne _080A9090
- ldr r4, _080A9088 @ =gTasks
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r6, r0, r4
- ldr r0, _080A908C @ =gUnknown_0202F7BC
- ldrh r0, [r0]
- movs r1, 0xC
- bl __udivsi3
- b _080A90A4
- .align 2, 0
-_080A9084: .4byte gUnknown_03004B00
-_080A9088: .4byte gTasks
-_080A908C: .4byte gUnknown_0202F7BC
-_080A9090:
- ldr r4, _080A912C @ =gTasks
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r6, r0, r4
- ldr r0, _080A9130 @ =gUnknown_0202F7B8
- ldr r0, [r0]
- movs r1, 0xC
- bl __divsi3
-_080A90A4:
- strh r0, [r6, 0x26]
- lsls r0, 16
- adds r1, r4, 0
- cmp r0, 0
- bgt _080A90B2
- movs r0, 0x1
- strh r0, [r6, 0x26]
-_080A90B2:
- movs r2, 0x26
- ldrsh r0, [r6, r2]
- cmp r0, 0x10
- ble _080A90BE
- movs r0, 0x10
- strh r0, [r6, 0x26]
-_080A90BE:
- adds r4, r5, r7
- lsls r4, 3
- adds r4, r1
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- movs r5, 0
- strh r1, [r4, 0x24]
- ldrh r2, [r4, 0x26]
- movs r0, 0x1
- ands r0, r2
- adds r1, r0
- strh r1, [r4, 0x22]
- strh r5, [r4, 0x20]
- mov r1, r8
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x1C]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x1E]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- ldr r2, _080A9134 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x18]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x26]
- strh r0, [r4, 0x1A]
- strh r5, [r4, 0x8]
- mov r1, r8
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xA]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0xC]
- ldr r0, _080A9138 @ =sub_80A913C
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A912C: .4byte gTasks
-_080A9130: .4byte gUnknown_0202F7B8
-_080A9134: .4byte gSprites
-_080A9138: .4byte sub_80A913C
- thumb_func_end sub_80A9058
-
- thumb_func_start sub_80A913C
-sub_80A913C: @ 80A913C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A9190 @ =gTasks
- adds r3, r0, r1
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xA
- ldrsh r1, [r3, r2]
- cmp r0, r1
- ble _080A921A
- movs r0, 0
- strh r0, [r3, 0x8]
- ldrh r0, [r3, 0x20]
- adds r1, r0, 0x1
- movs r0, 0x1
- ands r1, r0
- strh r1, [r3, 0x20]
- movs r2, 0x1C
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080A91AE
- cmp r1, 0
- beq _080A9198
- ldr r2, _080A9194 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x18]
- adds r1, r2
- b _080A91AC
- .align 2, 0
-_080A9190: .4byte gTasks
-_080A9194: .4byte gSprites
-_080A9198:
- ldr r2, _080A91D4 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x18]
- ldrh r2, [r3, 0x24]
- subs r1, r2
-_080A91AC:
- strh r1, [r0, 0x24]
-_080A91AE:
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080A91E8
- movs r2, 0x20
- ldrsh r4, [r3, r2]
- cmp r4, 0
- beq _080A91D8
- ldr r2, _080A91D4 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x26]
- strh r1, [r0, 0x26]
- b _080A91E8
- .align 2, 0
-_080A91D4: .4byte gSprites
-_080A91D8:
- ldr r2, _080A9220 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x26]
-_080A91E8:
- ldrh r0, [r3, 0xC]
- subs r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- bne _080A921A
- ldr r2, _080A9220 @ =gSprites
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x24]
- movs r0, 0x16
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x26]
- adds r0, r5, 0
- bl move_anim_task_del
-_080A921A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9220: .4byte gSprites
- thumb_func_end sub_80A913C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s
index d784aa4b7..fd5b9fb88 100644
--- a/asm/battle_anim_80CA710.s
+++ b/asm/battle_anim_80CA710.s
@@ -10,7 +10,7 @@
sub_80CA710: @ 80CA710
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080CA744 @ =gUnknown_03004B00
+ ldr r5, _080CA744 @ =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
@@ -23,9 +23,9 @@ sub_80CA710: @ 80CA710
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x30]
- ldr r0, _080CA748 @ =gUnknown_0202F7C8
+ ldr r0, _080CA748 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CA74C
@@ -33,13 +33,13 @@ sub_80CA710: @ 80CA710
negs r0, r0
b _080CA74E
.align 2, 0
-_080CA744: .4byte gUnknown_03004B00
-_080CA748: .4byte gUnknown_0202F7C8
+_080CA744: .4byte gBattleAnimArgs
+_080CA748: .4byte gBattleAnimPlayerMonIndex
_080CA74C:
ldrh r0, [r5, 0x8]
_080CA74E:
strh r0, [r4, 0x34]
- ldr r0, _080CA760 @ =gUnknown_03004B00
+ ldr r0, _080CA760 @ =gBattleAnimArgs
ldrh r0, [r0, 0xA]
strh r0, [r4, 0x36]
ldr r0, _080CA764 @ =sub_80CA768
@@ -48,7 +48,7 @@ _080CA74E:
pop {r0}
bx r0
.align 2, 0
-_080CA760: .4byte gUnknown_03004B00
+_080CA760: .4byte gBattleAnimArgs
_080CA764: .4byte sub_80CA768
thumb_func_end sub_80CA710
@@ -98,10 +98,10 @@ sub_80CA7B0: @ 80CA7B0
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080CA7F0 @ =gUnknown_03004B00
+ ldr r0, _080CA7F0 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
- ldr r5, _080CA7F4 @ =gUnknown_0202F7C8
+ ldr r5, _080CA7F4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -123,8 +123,8 @@ sub_80CA7B0: @ 80CA7B0
pop {r0}
bx r0
.align 2, 0
-_080CA7F0: .4byte gUnknown_03004B00
-_080CA7F4: .4byte gUnknown_0202F7C8
+_080CA7F0: .4byte gBattleAnimArgs
+_080CA7F4: .4byte gBattleAnimPlayerMonIndex
_080CA7F8: .4byte sub_8078B34
_080CA7FC: .4byte move_anim_8074EE0
thumb_func_end sub_80CA7B0
@@ -135,13 +135,13 @@ sub_80CA800: @ 80CA800
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080CA848 @ =gUnknown_03004B00
+ ldr r5, _080CA848 @ =gBattleAnimArgs
ldrb r1, [r5, 0x6]
adds r0, r4, 0
bl StartSpriteAnim
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
- ldr r5, _080CA84C @ =gUnknown_0202F7C9
+ ldr r5, _080CA84C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -163,8 +163,8 @@ sub_80CA800: @ 80CA800
pop {r0}
bx r0
.align 2, 0
-_080CA848: .4byte gUnknown_03004B00
-_080CA84C: .4byte gUnknown_0202F7C9
+_080CA848: .4byte gBattleAnimArgs
+_080CA84C: .4byte gBattleAnimEnemyMonIndex
_080CA850: .4byte sub_8078B34
_080CA854: .4byte move_anim_8072740
thumb_func_end sub_80CA800
@@ -175,12 +175,12 @@ sub_80CA858: @ 80CA858
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r6, _080CA8A8 @ =gUnknown_03004B00
+ ldr r6, _080CA8A8 @ =gBattleAnimArgs
ldrh r0, [r6, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, _080CA8AC @ =gUnknown_0202F7C9
+ ldr r5, _080CA8AC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -207,8 +207,8 @@ sub_80CA858: @ 80CA858
pop {r0}
bx r0
.align 2, 0
-_080CA8A8: .4byte gUnknown_03004B00
-_080CA8AC: .4byte gUnknown_0202F7C9
+_080CA8A8: .4byte gBattleAnimArgs
+_080CA8AC: .4byte gBattleAnimEnemyMonIndex
_080CA8B0: .4byte sub_80CA8B4
thumb_func_end sub_80CA858
@@ -228,15 +228,15 @@ _080CA8CA:
ldrsh r0, [r4, r1]
cmp r0, 0x7F
ble _080CA8E4
- ldr r0, _080CA8E0 @ =gUnknown_0202F7C9
+ ldr r0, _080CA8E0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079E90
adds r0, 0x1
b _080CA8EE
.align 2, 0
-_080CA8E0: .4byte gUnknown_0202F7C9
+_080CA8E0: .4byte gBattleAnimEnemyMonIndex
_080CA8E4:
- ldr r0, _080CA924 @ =gUnknown_0202F7C9
+ ldr r0, _080CA924 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079E90
adds r0, 0x6
@@ -268,7 +268,7 @@ _080CA91E:
pop {r0}
bx r0
.align 2, 0
-_080CA924: .4byte gUnknown_0202F7C9
+_080CA924: .4byte gBattleAnimEnemyMonIndex
thumb_func_end sub_80CA8B4
thumb_func_start sub_80CA928
@@ -297,7 +297,7 @@ sub_80CA928: @ 80CA928
strh r0, [r5, 0xA]
movs r0, 0x6
strh r0, [r5, 0x8]
- ldr r1, _080CA99C @ =gUnknown_03004B00
+ ldr r1, _080CA99C @ =gBattleAnimArgs
movs r0, 0xF
strh r0, [r1]
strh r2, [r1, 0x2]
@@ -305,7 +305,7 @@ sub_80CA928: @ 80CA928
strh r0, [r1, 0x4]
strh r2, [r1, 0x6]
ldr r4, _080CA9A0 @ =gSpriteTemplate_83D631C
- ldr r0, _080CA9A4 @ =gUnknown_0202F7C9
+ ldr r0, _080CA9A4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079E90
adds r3, r0, 0
@@ -322,16 +322,16 @@ _080CA982:
cmp r0, 0xF
bne _080CA990
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080CA990:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080CA998: .4byte gTasks
-_080CA99C: .4byte gUnknown_03004B00
+_080CA99C: .4byte gBattleAnimArgs
_080CA9A0: .4byte gSpriteTemplate_83D631C
-_080CA9A4: .4byte gUnknown_0202F7C9
+_080CA9A4: .4byte gBattleAnimEnemyMonIndex
thumb_func_end sub_80CA928
thumb_func_start sub_80CA9A8
@@ -340,10 +340,10 @@ sub_80CA9A8: @ 80CA9A8
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r6, _080CA9EC @ =gUnknown_03004B00
+ ldr r6, _080CA9EC @ =gBattleAnimArgs
ldrh r0, [r6, 0x6]
strh r0, [r4, 0x2E]
- ldr r5, _080CA9F0 @ =gUnknown_0202F7C8
+ ldr r5, _080CA9F0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -366,8 +366,8 @@ sub_80CA9A8: @ 80CA9A8
pop {r0}
bx r0
.align 2, 0
-_080CA9EC: .4byte gUnknown_03004B00
-_080CA9F0: .4byte gUnknown_0202F7C8
+_080CA9EC: .4byte gBattleAnimArgs
+_080CA9F0: .4byte gBattleAnimPlayerMonIndex
_080CA9F4: .4byte sub_80CA9F8
thumb_func_end sub_80CA9A8
@@ -399,7 +399,7 @@ sub_80CAA14: @ 80CAA14
ands r1, r0
adds r0, r5, 0
bl StartSpriteAnim
- ldr r4, _080CAA5C @ =gUnknown_0202F7C8
+ ldr r4, _080CAA5C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -413,7 +413,7 @@ sub_80CAA14: @ 80CAA14
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CAA60
@@ -421,7 +421,7 @@ sub_80CAA14: @ 80CAA14
subs r0, 0x14
b _080CAA64
.align 2, 0
-_080CAA5C: .4byte gUnknown_0202F7C8
+_080CAA5C: .4byte gBattleAnimPlayerMonIndex
_080CAA60:
ldrh r0, [r5, 0x20]
adds r0, 0x14
@@ -436,7 +436,7 @@ _080CAA64:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080CAAC4 @ =gUnknown_0202F7C9
+ ldr r4, _080CAAC4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -469,7 +469,7 @@ _080CAA64:
pop {r0}
bx r0
.align 2, 0
-_080CAAC4: .4byte gUnknown_0202F7C9
+_080CAAC4: .4byte gBattleAnimEnemyMonIndex
_080CAAC8: .4byte sub_80CAACC
thumb_func_end sub_80CAA14
@@ -522,21 +522,21 @@ sub_80CAB18: @ 80CAB18
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080CAB78 @ =gUnknown_0202F7C8
+ ldr r0, _080CAB78 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CAB38
- ldr r1, _080CAB7C @ =gUnknown_03004B00
+ ldr r1, _080CAB7C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080CAB38:
- ldr r4, _080CAB7C @ =gUnknown_03004B00
+ ldr r4, _080CAB7C @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, _080CAB80 @ =gUnknown_0202F7C9
+ ldr r5, _080CAB80 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -563,9 +563,9 @@ _080CAB38:
pop {r0}
bx r0
.align 2, 0
-_080CAB78: .4byte gUnknown_0202F7C8
-_080CAB7C: .4byte gUnknown_03004B00
-_080CAB80: .4byte gUnknown_0202F7C9
+_080CAB78: .4byte gBattleAnimPlayerMonIndex
+_080CAB7C: .4byte gBattleAnimArgs
+_080CAB80: .4byte gBattleAnimEnemyMonIndex
_080CAB84: .4byte sub_80CAB88
thumb_func_end sub_80CAB18
@@ -634,7 +634,7 @@ sub_80CABF8: @ 80CABF8
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r5, _080CAC3C @ =gUnknown_03004B00
+ ldr r5, _080CAC3C @ =gBattleAnimArgs
ldrb r1, [r5, 0x8]
adds r0, r4, 0
bl StartSpriteAnim
@@ -662,7 +662,7 @@ _080CAC22:
pop {r0}
bx r0
.align 2, 0
-_080CAC3C: .4byte gUnknown_03004B00
+_080CAC3C: .4byte gBattleAnimArgs
_080CAC40: .4byte sub_80CAC44
thumb_func_end sub_80CABF8
@@ -693,7 +693,7 @@ sub_80CAC44: @ 80CAC44
lsrs r0, 16
cmp r0, 0x7F
bhi _080CAC98
- ldr r0, _080CAC94 @ =gUnknown_0202F7C9
+ ldr r0, _080CAC94 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -706,9 +706,9 @@ sub_80CAC44: @ 80CAC44
orrs r0, r1
b _080CACBC
.align 2, 0
-_080CAC94: .4byte gUnknown_0202F7C9
+_080CAC94: .4byte gBattleAnimEnemyMonIndex
_080CAC98:
- ldr r0, _080CACE8 @ =gUnknown_0202F7C9
+ ldr r0, _080CACE8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079ED4
adds r0, 0x1
@@ -749,7 +749,7 @@ _080CACE0:
pop {r0}
bx r0
.align 2, 0
-_080CACE8: .4byte gUnknown_0202F7C9
+_080CACE8: .4byte gBattleAnimEnemyMonIndex
thumb_func_end sub_80CAC44
thumb_func_start sub_80CACEC
@@ -757,22 +757,22 @@ sub_80CACEC: @ 80CACEC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080CAD06
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080CAD0E
_080CAD06:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080CAD4A
_080CAD0E:
- ldr r0, _080CAD2C @ =gUnknown_0202F7C9
+ ldr r0, _080CAD2C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -784,7 +784,7 @@ _080CAD0E:
strb r1, [r0]
b _080CAD44
.align 2, 0
-_080CAD2C: .4byte gUnknown_0202F7C9
+_080CAD2C: .4byte gBattleAnimEnemyMonIndex
_080CAD30: .4byte REG_BG2CNT
_080CAD34:
ldr r2, _080CAD50 @ =REG_BG1CNT
@@ -797,7 +797,7 @@ _080CAD34:
strb r0, [r2]
_080CAD44:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080CAD4A:
pop {r4}
pop {r0}
@@ -812,7 +812,7 @@ sub_80CAD54: @ 80CAD54
adds r4, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r5, _080CAD9C @ =gUnknown_03004B00
+ ldr r5, _080CAD9C @ =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -820,7 +820,7 @@ sub_80CAD54: @ 80CAD54
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
- ldr r0, _080CADA0 @ =gUnknown_0202F7C8
+ ldr r0, _080CADA0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -841,8 +841,8 @@ sub_80CAD54: @ 80CAD54
pop {r0}
bx r0
.align 2, 0
-_080CAD9C: .4byte gUnknown_03004B00
-_080CADA0: .4byte gUnknown_0202F7C8
+_080CAD9C: .4byte gBattleAnimArgs
+_080CADA0: .4byte gBattleAnimPlayerMonIndex
_080CADA4: .4byte sub_80CADA8
thumb_func_end sub_80CAD54
@@ -875,15 +875,15 @@ sub_80CADA8: @ 80CADA8
lsrs r0, 16
cmp r0, 0x7F
bhi _080CADF4
- ldr r0, _080CADF0 @ =gUnknown_0202F7C8
+ ldr r0, _080CADF0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
b _080CADFE
.align 2, 0
-_080CADF0: .4byte gUnknown_0202F7C8
+_080CADF0: .4byte gBattleAnimPlayerMonIndex
_080CADF4:
- ldr r0, _080CAE10 @ =gUnknown_0202F7C8
+ ldr r0, _080CAE10 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
bl sub_8079E90
adds r0, 0x1
@@ -898,7 +898,7 @@ _080CADFE:
strh r0, [r4, 0x38]
b _080CAE1A
.align 2, 0
-_080CAE10: .4byte gUnknown_0202F7C8
+_080CAE10: .4byte gBattleAnimPlayerMonIndex
_080CAE14:
adds r0, r4, 0
bl move_anim_8072740
@@ -914,7 +914,7 @@ sub_80CAE20: @ 80CAE20
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080CAE68 @ =gUnknown_03004B00
+ ldr r5, _080CAE68 @ =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -922,7 +922,7 @@ sub_80CAE20: @ 80CAE20
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
- ldr r0, _080CAE6C @ =gUnknown_0202F7C8
+ ldr r0, _080CAE6C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -943,8 +943,8 @@ sub_80CAE20: @ 80CAE20
pop {r0}
bx r0
.align 2, 0
-_080CAE68: .4byte gUnknown_03004B00
-_080CAE6C: .4byte gUnknown_0202F7C8
+_080CAE68: .4byte gBattleAnimArgs
+_080CAE6C: .4byte gBattleAnimPlayerMonIndex
_080CAE70: .4byte sub_80CAE74
thumb_func_end sub_80CAE20
@@ -1007,7 +1007,7 @@ _080CAED2:
sub_80CAED8: @ 80CAED8
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080CAF14 @ =gUnknown_0202F7C8
+ ldr r5, _080CAF14 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -1020,7 +1020,7 @@ sub_80CAED8: @ 80CAED8
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
- ldr r1, _080CAF18 @ =gUnknown_03004B00
+ ldr r1, _080CAF18 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
@@ -1033,8 +1033,8 @@ sub_80CAED8: @ 80CAED8
pop {r0}
bx r0
.align 2, 0
-_080CAF14: .4byte gUnknown_0202F7C8
-_080CAF18: .4byte gUnknown_03004B00
+_080CAF14: .4byte gBattleAnimPlayerMonIndex
+_080CAF18: .4byte gBattleAnimArgs
_080CAF1C: .4byte sub_80CAF20
thumb_func_end sub_80CAED8
@@ -1087,9 +1087,9 @@ _080CAF68:
sub_80CAF6C: @ 80CAF6C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CAF8C @ =gUnknown_0202F7C8
+ ldr r0, _080CAF8C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CAF90
@@ -1100,7 +1100,7 @@ sub_80CAF6C: @ 80CAF6C
negs r0, r0
b _080CAF9A
.align 2, 0
-_080CAF8C: .4byte gUnknown_0202F7C8
+_080CAF8C: .4byte gBattleAnimPlayerMonIndex
_080CAF90:
movs r1, 0x2E
ldrsh r0, [r4, r1]
@@ -1142,25 +1142,25 @@ sub_80CAFD0: @ 80CAFD0
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080CB024 @ =gUnknown_0202F7C8
+ ldr r0, _080CB024 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CAFF0
- ldr r1, _080CB028 @ =gUnknown_03004B00
+ ldr r1, _080CB028 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080CAFF0:
- ldr r6, _080CB028 @ =gUnknown_03004B00
+ ldr r6, _080CB028 @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
movs r1, 0xC
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CB030
- ldr r4, _080CB02C @ =gUnknown_0202F7C9
+ ldr r4, _080CB02C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -1178,11 +1178,11 @@ _080CAFF0:
adds r0, r6
b _080CB050
.align 2, 0
-_080CB024: .4byte gUnknown_0202F7C8
-_080CB028: .4byte gUnknown_03004B00
-_080CB02C: .4byte gUnknown_0202F7C9
+_080CB024: .4byte gBattleAnimPlayerMonIndex
+_080CB028: .4byte gBattleAnimArgs
+_080CB02C: .4byte gBattleAnimEnemyMonIndex
_080CB030:
- ldr r0, _080CB07C @ =gUnknown_0202F7C9
+ ldr r0, _080CB07C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -1199,18 +1199,18 @@ _080CB030:
adds r0, r1
_080CB050:
strh r0, [r5, 0x36]
- ldr r0, _080CB080 @ =gUnknown_03004B00
+ ldr r0, _080CB080 @ =gBattleAnimArgs
ldrh r0, [r0, 0xA]
strh r0, [r5, 0x38]
adds r0, r5, 0
bl sub_80786EC
- ldr r0, _080CB084 @ =gUnknown_0202F7C8
+ ldr r0, _080CB084 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
adds r4, r0, 0
- ldr r0, _080CB07C @ =gUnknown_0202F7C9
+ ldr r0, _080CB07C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -1218,9 +1218,9 @@ _080CB050:
movs r0, 0x1
b _080CB08A
.align 2, 0
-_080CB07C: .4byte gUnknown_0202F7C9
-_080CB080: .4byte gUnknown_03004B00
-_080CB084: .4byte gUnknown_0202F7C8
+_080CB07C: .4byte gBattleAnimEnemyMonIndex
+_080CB080: .4byte gBattleAnimArgs
+_080CB084: .4byte gBattleAnimPlayerMonIndex
_080CB088:
movs r0, 0
_080CB08A:
@@ -1329,16 +1329,16 @@ _080CB13C:
sub_80CB144: @ 80CB144
push {r4,lr}
adds r4, r0, 0
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080CB170
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080CB170
- ldr r0, _080CB198 @ =gUnknown_0202F7C9
+ ldr r0, _080CB198 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -1350,7 +1350,7 @@ _080CB170:
ldrh r0, [r4, 0x22]
adds r0, 0x20
strh r0, [r4, 0x22]
- ldr r1, _080CB19C @ =gUnknown_03004B00
+ ldr r1, _080CB19C @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
@@ -1367,8 +1367,8 @@ _080CB170:
pop {r0}
bx r0
.align 2, 0
-_080CB198: .4byte gUnknown_0202F7C9
-_080CB19C: .4byte gUnknown_03004B00
+_080CB198: .4byte gBattleAnimEnemyMonIndex
+_080CB19C: .4byte gBattleAnimArgs
_080CB1A0: .4byte sub_80CB1A4
thumb_func_end sub_80CB144
@@ -1426,7 +1426,7 @@ _080CB1E0:
ldrsh r0, [r4, r1]
cmp r0, 0x7F
bgt _080CB220
- ldr r0, _080CB21C @ =gUnknown_0202F7C9
+ ldr r0, _080CB21C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
@@ -1434,9 +1434,9 @@ _080CB1E0:
subs r0, 0x1
b _080CB22E
.align 2, 0
-_080CB21C: .4byte gUnknown_0202F7C9
+_080CB21C: .4byte gBattleAnimEnemyMonIndex
_080CB220:
- ldr r0, _080CB258 @ =gUnknown_0202F7C9
+ ldr r0, _080CB258 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
@@ -1465,7 +1465,7 @@ _080CB252:
pop {r0}
bx r0
.align 2, 0
-_080CB258: .4byte gUnknown_0202F7C9
+_080CB258: .4byte gBattleAnimEnemyMonIndex
thumb_func_end sub_80CB1A4
thumb_func_start sub_80CB25C
@@ -1480,7 +1480,7 @@ sub_80CB25C: @ 80CB25C
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
- ldr r4, _080CB290 @ =gUnknown_03004B00
+ ldr r4, _080CB290 @ =gBattleAnimArgs
ldrb r1, [r4, 0x4]
adds r0, r5, 0
bl StartSpriteAffineAnim
@@ -1494,7 +1494,7 @@ sub_80CB25C: @ 80CB25C
pop {r0}
bx r0
.align 2, 0
-_080CB290: .4byte gUnknown_03004B00
+_080CB290: .4byte gBattleAnimArgs
_080CB294: .4byte sub_80CB298
thumb_func_end sub_80CB25C
@@ -1502,7 +1502,7 @@ _080CB294: .4byte sub_80CB298
sub_80CB298: @ 80CB298
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CB2C8 @ =gUnknown_03004B00
+ ldr r0, _080CB2C8 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080CB2CC @ =0x0000ffff
cmp r1, r0
@@ -1525,7 +1525,7 @@ _080CB2C2:
pop {r0}
bx r0
.align 2, 0
-_080CB2C8: .4byte gUnknown_03004B00
+_080CB2C8: .4byte gBattleAnimArgs
_080CB2CC: .4byte 0x0000ffff
_080CB2D0: .4byte sub_80CB2D4
thumb_func_end sub_80CB298
@@ -1610,7 +1610,7 @@ sub_80CB340: @ 80CB340
cmp r0, 0
bge _080CB370
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080CB396
.align 2, 0
_080CB36C: .4byte gSprites
@@ -1623,7 +1623,7 @@ _080CB370:
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r2, _080CB3A0 @ =gUnknown_03004B00
+ ldr r2, _080CB3A0 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x8]
ldrh r1, [r2, 0x2]
@@ -1639,7 +1639,7 @@ _080CB396:
bx r0
.align 2, 0
_080CB39C: .4byte gTasks
-_080CB3A0: .4byte gUnknown_03004B00
+_080CB3A0: .4byte gBattleAnimArgs
_080CB3A4: .4byte sub_80CB3A8
thumb_func_end sub_80CB340
@@ -1671,9 +1671,9 @@ sub_80CB3A8: @ 80CB3A8
lsls r1, 16
asrs r1, 24
strh r1, [r5, 0x24]
- ldr r0, _080CB430 @ =gUnknown_0202F7C9
+ ldr r0, _080CB430 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CB3F2
@@ -1709,7 +1709,7 @@ _080CB420:
.align 2, 0
_080CB428: .4byte gTasks
_080CB42C: .4byte gSprites
-_080CB430: .4byte gUnknown_0202F7C9
+_080CB430: .4byte gBattleAnimEnemyMonIndex
_080CB434: .4byte sub_80CB438
thumb_func_end sub_80CB3A8
@@ -1718,7 +1718,7 @@ sub_80CB438: @ 80CB438
push {r4-r6,lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r0, _080CB484 @ =gUnknown_03004B00
+ ldr r0, _080CB484 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080CB488 @ =0x0000ffff
cmp r1, r0
@@ -1752,7 +1752,7 @@ sub_80CB438: @ 80CB438
strh r0, [r6, 0x8]
b _080CB4C2
.align 2, 0
-_080CB484: .4byte gUnknown_03004B00
+_080CB484: .4byte gBattleAnimArgs
_080CB488: .4byte 0x0000ffff
_080CB48C: .4byte gTasks
_080CB490: .4byte gSprites
@@ -1779,7 +1779,7 @@ _080CB4A8:
cmp r0, 0x3
bne _080CB4C2
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080CB4C2:
pop {r4-r6}
pop {r0}
@@ -1800,13 +1800,13 @@ sub_80CB4CC: @ 80CB4CC
beq _080CB538
b _080CB58A
_080CB4DE:
- ldr r6, _080CB530 @ =gUnknown_0202F7C9
+ ldr r6, _080CB530 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r6]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080CB4F6
- ldr r1, _080CB534 @ =gUnknown_03004B00
+ ldr r1, _080CB534 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r1, r2]
negs r0, r0
@@ -1816,7 +1816,7 @@ _080CB4F6:
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080CB534 @ =gUnknown_03004B00
+ ldr r4, _080CB534 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -1840,8 +1840,8 @@ _080CB4F6:
strh r0, [r5, 0x2E]
b _080CB58A
.align 2, 0
-_080CB530: .4byte gUnknown_0202F7C9
-_080CB534: .4byte gUnknown_03004B00
+_080CB530: .4byte gBattleAnimEnemyMonIndex
+_080CB534: .4byte gBattleAnimArgs
_080CB538:
adds r2, r5, 0
adds r2, 0x3E
@@ -1862,7 +1862,7 @@ _080CB538:
bl ChangeSpriteAffineAnim
movs r0, 0x19
strh r0, [r5, 0x2E]
- ldr r4, _080CB590 @ =gUnknown_0202F7C8
+ ldr r4, _080CB590 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -1885,7 +1885,7 @@ _080CB58A:
pop {r0}
bx r0
.align 2, 0
-_080CB590: .4byte gUnknown_0202F7C8
+_080CB590: .4byte gBattleAnimPlayerMonIndex
_080CB594: .4byte sub_8078CC0
_080CB598: .4byte move_anim_8072740
thumb_func_end sub_80CB4CC
@@ -1898,7 +1898,7 @@ sub_80CB59C: @ 80CB59C
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080CB608
- ldr r4, _080CB614 @ =gUnknown_0202F7C8
+ ldr r4, _080CB614 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -1911,7 +1911,7 @@ sub_80CB59C: @ 80CB59C
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080CB618 @ =gUnknown_03004B00
+ ldr r4, _080CB618 @ =gBattleAnimArgs
ldrh r0, [r4]
strh r0, [r5, 0x24]
ldrh r0, [r4, 0x2]
@@ -1950,8 +1950,8 @@ _080CB608:
pop {r0}
bx r0
.align 2, 0
-_080CB614: .4byte gUnknown_0202F7C8
-_080CB618: .4byte gUnknown_03004B00
+_080CB614: .4byte gBattleAnimPlayerMonIndex
+_080CB618: .4byte gBattleAnimArgs
_080CB61C: .4byte sub_80CB710
thumb_func_end sub_80CB59C
@@ -1964,7 +1964,7 @@ sub_80CB620: @ 80CB620
push {r4-r6}
sub sp, 0x4
mov r9, r0
- ldr r4, _080CB6FC @ =gUnknown_0202F7C8
+ ldr r4, _080CB6FC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -1979,7 +1979,7 @@ sub_80CB620: @ 80CB620
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r6, _080CB700 @ =gUnknown_0202F7C9
+ ldr r6, _080CB700 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -2001,7 +2001,7 @@ sub_80CB620: @ 80CB620
lsrs r3, r4, 16
mov r10, r3
asrs r4, 16
- ldr r6, _080CB704 @ =gUnknown_03004B00
+ ldr r6, _080CB704 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
muls r0, r4
@@ -2060,9 +2060,9 @@ sub_80CB620: @ 80CB620
pop {r0}
bx r0
.align 2, 0
-_080CB6FC: .4byte gUnknown_0202F7C8
-_080CB700: .4byte gUnknown_0202F7C9
-_080CB704: .4byte gUnknown_03004B00
+_080CB6FC: .4byte gBattleAnimPlayerMonIndex
+_080CB700: .4byte gBattleAnimEnemyMonIndex
+_080CB704: .4byte gBattleAnimArgs
_080CB708: .4byte sub_80CB710
_080CB70C: .4byte gUnknown_03000728
thumb_func_end sub_80CB620
@@ -2123,12 +2123,12 @@ sub_80CB768: @ 80CB768
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CB7A8
- ldr r5, _080CB7E4 @ =gUnknown_0202F7C8
+ ldr r5, _080CB7E4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080CB7E8 @ =gUnknown_03004B00
+ ldr r4, _080CB7E8 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r2, [r4]
adds r0, r2
@@ -2178,8 +2178,8 @@ _080CB7DE:
pop {r0}
bx r0
.align 2, 0
-_080CB7E4: .4byte gUnknown_0202F7C8
-_080CB7E8: .4byte gUnknown_03004B00
+_080CB7E4: .4byte gBattleAnimPlayerMonIndex
+_080CB7E8: .4byte gBattleAnimArgs
thumb_func_end sub_80CB768
thumb_func_start sub_80CB7EC
@@ -2380,7 +2380,7 @@ sub_80CB94C: @ 80CB94C
adds r5, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r4, _080CB994 @ =gUnknown_0202F7C9
+ ldr r4, _080CB994 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -2391,7 +2391,7 @@ sub_80CB94C: @ 80CB94C
bl sub_8077ABC
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080CB998 @ =gUnknown_0202F7C8
+ ldr r0, _080CB998 @ =gBattleAnimPlayerMonIndex
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -2408,8 +2408,8 @@ sub_80CB94C: @ 80CB94C
movs r0, 0x1
b _080CB9AE
.align 2, 0
-_080CB994: .4byte gUnknown_0202F7C9
-_080CB998: .4byte gUnknown_0202F7C8
+_080CB994: .4byte gBattleAnimEnemyMonIndex
+_080CB998: .4byte gBattleAnimPlayerMonIndex
_080CB99C:
strh r6, [r5, 0x3A]
adds r0, r2, 0
@@ -2487,14 +2487,14 @@ _080CBA20:
sub_80CBA28: @ 80CBA28
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, _080CBA64 @ =gUnknown_0202F7C9
+ ldr r4, _080CBA64 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x1
bl sub_8077ABC
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -2513,7 +2513,7 @@ sub_80CBA28: @ 80CBA28
ldr r0, _080CBA68 @ =sub_80CB8E8
b _080CBA96
.align 2, 0
-_080CBA64: .4byte gUnknown_0202F7C9
+_080CBA64: .4byte gBattleAnimEnemyMonIndex
_080CBA68: .4byte sub_80CB8E8
_080CBA6C:
movs r0, 0xFF
@@ -2521,7 +2521,7 @@ _080CBA6C:
adds r0, r6, 0
adds r0, 0xA
strh r0, [r5, 0x3C]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080CBA84
@@ -2556,7 +2556,7 @@ sub_80CBAA4: @ 80CBAA4
adds r0, r4, 0
movs r1, 0
bl sub_8078764
- ldr r0, _080CBAE4 @ =gUnknown_03004B00
+ ldr r0, _080CBAE4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x30]
_080CBABE:
@@ -2580,7 +2580,7 @@ _080CBADE:
pop {r0}
bx r0
.align 2, 0
-_080CBAE4: .4byte gUnknown_03004B00
+_080CBAE4: .4byte gBattleAnimArgs
thumb_func_end sub_80CBAA4
thumb_func_start sub_80CBAE8
@@ -2589,7 +2589,7 @@ sub_80CBAE8: @ 80CBAE8
adds r5, r0, 0
movs r1, 0
bl sub_8078764
- ldr r4, _080CBB30 @ =gUnknown_0202F7C8
+ ldr r4, _080CBB30 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -2600,7 +2600,7 @@ sub_80CBAE8: @ 80CBAE8
bl sub_8077ABC
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080CBB34 @ =gUnknown_0202F7C9
+ ldr r0, _080CBB34 @ =gBattleAnimEnemyMonIndex
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -2617,8 +2617,8 @@ sub_80CBAE8: @ 80CBAE8
movs r0, 0x1
b _080CBB4A
.align 2, 0
-_080CBB30: .4byte gUnknown_0202F7C8
-_080CBB34: .4byte gUnknown_0202F7C9
+_080CBB30: .4byte gBattleAnimPlayerMonIndex
+_080CBB34: .4byte gBattleAnimEnemyMonIndex
_080CBB38:
strh r6, [r5, 0x3A]
adds r0, r2, 0
@@ -2721,11 +2721,11 @@ sub_80CBBF0: @ 80CBBF0
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080CBC84
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080CBC18
- ldr r0, _080CBC14 @ =gUnknown_03004B00
+ ldr r0, _080CBC14 @ =gBattleAnimArgs
ldrh r1, [r0, 0x2]
strh r1, [r4, 0x30]
movs r1, 0x78
@@ -2733,9 +2733,9 @@ sub_80CBBF0: @ 80CBBF0
adds r5, r0, 0
b _080CBC3A
.align 2, 0
-_080CBC14: .4byte gUnknown_03004B00
+_080CBC14: .4byte gBattleAnimArgs
_080CBC18:
- ldr r0, _080CBC74 @ =gUnknown_03004B00
+ ldr r0, _080CBC74 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r3, [r0, r1]
adds r1, r3, 0
@@ -2782,7 +2782,7 @@ _080CBC3A:
movs r0, 0x1F
b _080CBC82
.align 2, 0
-_080CBC74: .4byte gUnknown_03004B00
+_080CBC74: .4byte gBattleAnimArgs
_080CBC78: .4byte sub_80CBC8C
_080CBC7C:
adds r1, r4, 0
@@ -2917,7 +2917,7 @@ _080CBD44:
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080CBD92
@@ -3002,7 +3002,7 @@ sub_80CBDF4: @ 80CBDF4
lsls r0, 3
ldr r1, _080CBF48 @ =gTasks
adds r5, r0, r1
- ldr r4, _080CBF4C @ =gUnknown_0202F7C9
+ ldr r4, _080CBF4C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
bl sub_8079E90
lsls r0, 24
@@ -3030,7 +3030,7 @@ sub_80CBDF4: @ 80CBDF4
bl sub_807A100
strh r0, [r5, 0x1E]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
movs r2, 0x1
@@ -3065,7 +3065,7 @@ _080CBE5C:
cmp r0, 0x40
bne _080CBE94
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080CBE94:
ldr r4, _080CBF54 @ =gSprites
movs r0, 0xC
@@ -3156,7 +3156,7 @@ _080CBE94:
bx r0
.align 2, 0
_080CBF48: .4byte gTasks
-_080CBF4C: .4byte gUnknown_0202F7C9
+_080CBF4C: .4byte gBattleAnimEnemyMonIndex
_080CBF50: .4byte gSpriteTemplate_83D6884
_080CBF54: .4byte gSprites
_080CBF58: .4byte sub_80CBF5C
@@ -3636,7 +3636,7 @@ _080CC30A:
cmp r0, 0
bne _080CC330
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080CC330
_080CC31A:
ldrh r0, [r6, 0xA]
@@ -3827,40 +3827,40 @@ _080CC470: .4byte gTasks
sub_80CC474: @ 80CC474
push {r4-r7,lr}
adds r4, r0, 0
- ldr r0, _080CC488 @ =gUnknown_03004B00
+ ldr r0, _080CC488 @ =gBattleAnimArgs
movs r1, 0xC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CC490
- ldr r0, _080CC48C @ =gUnknown_0202F7C8
+ ldr r0, _080CC48C @ =gBattleAnimPlayerMonIndex
b _080CC492
.align 2, 0
-_080CC488: .4byte gUnknown_03004B00
-_080CC48C: .4byte gUnknown_0202F7C8
+_080CC488: .4byte gBattleAnimArgs
+_080CC48C: .4byte gBattleAnimPlayerMonIndex
_080CC490:
- ldr r0, _080CC4B0 @ =gUnknown_0202F7C9
+ ldr r0, _080CC4B0 @ =gBattleAnimEnemyMonIndex
_080CC492:
ldrb r6, [r0]
adds r0, r6, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CC4BC
movs r0, 0
strh r0, [r4, 0x36]
- ldr r1, _080CC4B4 @ =gUnknown_03004B00
+ ldr r1, _080CC4B4 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x32]
ldr r0, _080CC4B8 @ =0x0000fff0
b _080CC4CC
.align 2, 0
-_080CC4B0: .4byte gUnknown_0202F7C9
-_080CC4B4: .4byte gUnknown_03004B00
+_080CC4B0: .4byte gBattleAnimEnemyMonIndex
+_080CC4B4: .4byte gBattleAnimArgs
_080CC4B8: .4byte 0x0000fff0
_080CC4BC:
movs r0, 0x1
strh r0, [r4, 0x36]
- ldr r1, _080CC4F0 @ =gUnknown_03004B00
+ ldr r1, _080CC4F0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
negs r0, r0
strh r0, [r4, 0x32]
@@ -3886,7 +3886,7 @@ _080CC4CC:
beq _080CC4FE
b _080CC56C
.align 2, 0
-_080CC4F0: .4byte gUnknown_03004B00
+_080CC4F0: .4byte gBattleAnimArgs
_080CC4F4:
cmp r0, 0x2
beq _080CC508
@@ -3923,7 +3923,7 @@ _080CC518:
strb r0, [r4, 0x5]
b _080CC56C
_080CC534:
- ldr r0, _080CC578 @ =gUnknown_0202F7C9
+ ldr r0, _080CC578 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -3956,7 +3956,7 @@ _080CC56C:
pop {r0}
bx r0
.align 2, 0
-_080CC578: .4byte gUnknown_0202F7C9
+_080CC578: .4byte gBattleAnimEnemyMonIndex
_080CC57C: .4byte sub_80CC580
thumb_func_end sub_80CC474
@@ -4111,7 +4111,7 @@ _080CC650:
bne _080CC6AA
strh r7, [r5, 0x1E]
_080CC6AA:
- ldr r0, _080CC6C8 @ =gUnknown_03004B00
+ ldr r0, _080CC6C8 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x1
@@ -4119,14 +4119,14 @@ _080CC6AA:
cmp r1, r0
bne _080CC6BE
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080CC6BE:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080CC6C4: .4byte gUnknown_083D6984
-_080CC6C8: .4byte gUnknown_03004B00
+_080CC6C8: .4byte gBattleAnimArgs
thumb_func_end sub_80CC5F8
thumb_func_start sub_80CC6CC
@@ -4134,7 +4134,7 @@ sub_80CC6CC: @ 80CC6CC
push {r4-r7,lr}
sub sp, 0x4
adds r6, r0, 0
- ldr r1, _080CC6E4 @ =gUnknown_03004B00
+ ldr r1, _080CC6E4 @ =gBattleAnimArgs
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
@@ -4143,18 +4143,18 @@ sub_80CC6CC: @ 80CC6CC
bl move_anim_8072740
b _080CC7C2
.align 2, 0
-_080CC6E4: .4byte gUnknown_03004B00
+_080CC6E4: .4byte gBattleAnimArgs
_080CC6E8:
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, 0
bne _080CC6F8
- ldr r4, _080CC6F4 @ =gUnknown_0202F7C8
+ ldr r4, _080CC6F4 @ =gBattleAnimPlayerMonIndex
b _080CC6FA
.align 2, 0
-_080CC6F4: .4byte gUnknown_0202F7C8
+_080CC6F4: .4byte gBattleAnimPlayerMonIndex
_080CC6F8:
- ldr r4, _080CC734 @ =gUnknown_0202F7C9
+ ldr r4, _080CC734 @ =gBattleAnimEnemyMonIndex
_080CC6FA:
ldrb r0, [r4]
movs r1, 0x2
@@ -4166,7 +4166,7 @@ _080CC6FA:
bl sub_8077ABC
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080CC738 @ =gUnknown_03004B00
+ ldr r0, _080CC738 @ =gBattleAnimArgs
ldrh r1, [r0, 0x8]
strh r1, [r6, 0x2E]
movs r3, 0x2
@@ -4184,8 +4184,8 @@ _080CC6FA:
strh r2, [r6, 0x3A]
b _080CC74C
.align 2, 0
-_080CC734: .4byte gUnknown_0202F7C9
-_080CC738: .4byte gUnknown_03004B00
+_080CC734: .4byte gBattleAnimEnemyMonIndex
+_080CC738: .4byte gBattleAnimArgs
_080CC73C:
strh r5, [r6, 0x20]
strh r2, [r6, 0x22]
@@ -4233,7 +4233,7 @@ _080CC74C:
bl sub_80790F0
lsls r0, 16
lsrs r4, r0, 16
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080CC7AE
@@ -4317,13 +4317,13 @@ _080CC826:
sub_80CC82C: @ 80CC82C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CC84C @ =gUnknown_0202F7C8
+ ldr r0, _080CC84C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CC854
- ldr r2, _080CC850 @ =gUnknown_03004B00
+ ldr r2, _080CC850 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -4331,10 +4331,10 @@ sub_80CC82C: @ 80CC82C
ldrh r0, [r2, 0x2]
b _080CC860
.align 2, 0
-_080CC84C: .4byte gUnknown_0202F7C8
-_080CC850: .4byte gUnknown_03004B00
+_080CC84C: .4byte gBattleAnimPlayerMonIndex
+_080CC850: .4byte gBattleAnimArgs
_080CC854:
- ldr r0, _080CC878 @ =gUnknown_03004B00
+ ldr r0, _080CC878 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -4353,7 +4353,7 @@ _080CC860:
pop {r0}
bx r0
.align 2, 0
-_080CC878: .4byte gUnknown_03004B00
+_080CC878: .4byte gBattleAnimArgs
_080CC87C: .4byte sub_8078600
_080CC880: .4byte move_anim_8072740
thumb_func_end sub_80CC82C
@@ -4362,9 +4362,9 @@ _080CC880: .4byte move_anim_8072740
sub_80CC884: @ 80CC884
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080CC8BC @ =gUnknown_0202F7C8
+ ldr r0, _080CC8BC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080CC89E
@@ -4374,7 +4374,7 @@ sub_80CC884: @ 80CC884
_080CC89E:
ldr r0, _080CC8C0 @ =sub_80CC810
str r0, [r5, 0x1C]
- ldr r4, _080CC8C4 @ =gUnknown_03004B00
+ ldr r4, _080CC8C4 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r5, 0
@@ -4387,16 +4387,16 @@ _080CC89E:
pop {r0}
bx r0
.align 2, 0
-_080CC8BC: .4byte gUnknown_0202F7C8
+_080CC8BC: .4byte gBattleAnimPlayerMonIndex
_080CC8C0: .4byte sub_80CC810
-_080CC8C4: .4byte gUnknown_03004B00
+_080CC8C4: .4byte gBattleAnimArgs
thumb_func_end sub_80CC884
thumb_func_start sub_80CC8C8
sub_80CC8C8: @ 80CC8C8
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080CC908 @ =gUnknown_03004B00
+ ldr r1, _080CC908 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -4425,7 +4425,7 @@ sub_80CC8C8: @ 80CC8C8
pop {r0}
bx r0
.align 2, 0
-_080CC908: .4byte gUnknown_03004B00
+_080CC908: .4byte gBattleAnimArgs
_080CC90C: .4byte move_anim_8074EE0
_080CC910: .4byte sub_8078504
thumb_func_end sub_80CC8C8
@@ -4434,7 +4434,7 @@ _080CC910: .4byte sub_8078504
sub_80CC914: @ 80CC914
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080CC964 @ =gUnknown_0202F7C9
+ ldr r4, _080CC964 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -4448,7 +4448,7 @@ sub_80CC914: @ 80CC914
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080CC948
@@ -4458,7 +4458,7 @@ sub_80CC914: @ 80CC914
_080CC948:
ldr r0, _080CC968 @ =sub_80CCB00
str r0, [r5, 0x1C]
- ldr r0, _080CC96C @ =gUnknown_03004B00
+ ldr r0, _080CC96C @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
adds r3, r0, 0
@@ -4470,9 +4470,9 @@ _080CC948:
strh r0, [r5, 0x20]
b _080CC984
.align 2, 0
-_080CC964: .4byte gUnknown_0202F7C9
+_080CC964: .4byte gBattleAnimEnemyMonIndex
_080CC968: .4byte sub_80CCB00
-_080CC96C: .4byte gUnknown_03004B00
+_080CC96C: .4byte gBattleAnimArgs
_080CC970:
ldrh r0, [r5, 0x20]
ldrh r1, [r3]
@@ -4522,7 +4522,7 @@ sub_80CC9BC: @ 80CC9BC
mov r7, r8
push {r7}
adds r6, r0, 0
- ldr r0, _080CC9D8 @ =gUnknown_03004B00
+ ldr r0, _080CC9D8 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -4533,9 +4533,9 @@ sub_80CC9BC: @ 80CC9BC
beq _080CC9FC
b _080CCA58
.align 2, 0
-_080CC9D8: .4byte gUnknown_03004B00
+_080CC9D8: .4byte gBattleAnimArgs
_080CC9DC:
- ldr r5, _080CC9F8 @ =gUnknown_0202F7C9
+ ldr r5, _080CC9F8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
@@ -4548,9 +4548,9 @@ _080CC9DC:
adds r0, r4, 0
b _080CCA68
.align 2, 0
-_080CC9F8: .4byte gUnknown_0202F7C9
+_080CC9F8: .4byte gBattleAnimEnemyMonIndex
_080CC9FC:
- ldr r5, _080CCA54 @ =gUnknown_0202F7C9
+ ldr r5, _080CCA54 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -4590,9 +4590,9 @@ _080CC9FC:
lsrs r4, r0, 1
b _080CCA72
.align 2, 0
-_080CCA54: .4byte gUnknown_0202F7C9
+_080CCA54: .4byte gBattleAnimEnemyMonIndex
_080CCA58:
- ldr r4, _080CCAA4 @ =gUnknown_0202F7C9
+ ldr r4, _080CCAA4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -4607,9 +4607,9 @@ _080CCA68:
_080CCA72:
strh r7, [r6, 0x20]
strh r4, [r6, 0x22]
- ldr r0, _080CCAA4 @ =gUnknown_0202F7C9
+ ldr r0, _080CCAA4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080CCA8A
@@ -4619,7 +4619,7 @@ _080CCA72:
_080CCA8A:
ldr r0, _080CCAA8 @ =sub_80CCB00
str r0, [r6, 0x1C]
- ldr r0, _080CCAAC @ =gUnknown_03004B00
+ ldr r0, _080CCAAC @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
adds r3, r0, 0
@@ -4631,9 +4631,9 @@ _080CCA8A:
strh r0, [r6, 0x20]
b _080CCAC4
.align 2, 0
-_080CCAA4: .4byte gUnknown_0202F7C9
+_080CCAA4: .4byte gBattleAnimEnemyMonIndex
_080CCAA8: .4byte sub_80CCB00
-_080CCAAC: .4byte gUnknown_03004B00
+_080CCAAC: .4byte gBattleAnimArgs
_080CCAB0:
ldrh r0, [r6, 0x20]
ldrh r1, [r3]
@@ -4858,12 +4858,12 @@ _080CCC4C: .4byte gSprites
sub_80CCC50: @ 80CCC50
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080CCC70 @ =gUnknown_03004B00
+ ldr r4, _080CCC70 @ =gBattleAnimArgs
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
- ldr r0, _080CCC74 @ =gUnknown_0202F7C8
+ ldr r0, _080CCC74 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CCC78
@@ -4872,15 +4872,15 @@ sub_80CCC50: @ 80CCC50
subs r0, r1
b _080CCC7E
.align 2, 0
-_080CCC70: .4byte gUnknown_03004B00
-_080CCC74: .4byte gUnknown_0202F7C8
+_080CCC70: .4byte gBattleAnimArgs
+_080CCC74: .4byte gBattleAnimPlayerMonIndex
_080CCC78:
ldrh r0, [r4]
ldrh r1, [r5, 0x20]
adds r0, r1
_080CCC7E:
strh r0, [r5, 0x20]
- ldr r4, _080CCCAC @ =gUnknown_03004B00
+ ldr r4, _080CCCAC @ =gBattleAnimArgs
ldrb r1, [r4, 0xA]
adds r0, r5, 0
bl StartSpriteAnim
@@ -4901,7 +4901,7 @@ _080CCC7E:
pop {r0}
bx r0
.align 2, 0
-_080CCCAC: .4byte gUnknown_03004B00
+_080CCCAC: .4byte gBattleAnimArgs
_080CCCB0: .4byte sub_80CCCB4
thumb_func_end sub_80CCC50
@@ -4968,21 +4968,21 @@ _080CCD1C:
sub_80CCD24: @ 80CCD24
push {r4-r6,lr}
adds r5, r0, 0
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080CCD3A
- ldr r1, _080CCD98 @ =gUnknown_03004B00
+ ldr r1, _080CCD98 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
adds r0, 0x8
strh r0, [r1, 0x2]
_080CCD3A:
- ldr r6, _080CCD9C @ =gUnknown_0202F7C8
+ ldr r6, _080CCD9C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r6]
movs r1, 0
bl sub_8077EE4
lsls r0, 24
- ldr r4, _080CCD98 @ =gUnknown_03004B00
+ ldr r4, _080CCD98 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -4996,11 +4996,11 @@ _080CCD3A:
adds r0, r4
strh r0, [r5, 0x22]
ldrb r0, [r6]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CCD78
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080CCDA0
@@ -5021,8 +5021,8 @@ _080CCD78:
strb r1, [r5, 0x5]
b _080CCDB8
.align 2, 0
-_080CCD98: .4byte gUnknown_03004B00
-_080CCD9C: .4byte gUnknown_0202F7C8
+_080CCD98: .4byte gBattleAnimArgs
+_080CCD9C: .4byte gBattleAnimPlayerMonIndex
_080CCDA0:
ldrb r0, [r6]
bl sub_8079ED4
@@ -5036,7 +5036,7 @@ _080CCDA0:
orrs r0, r1
strb r0, [r5, 0x5]
_080CCDB8:
- ldr r0, _080CCDF8 @ =gUnknown_03004B00
+ ldr r0, _080CCDF8 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
ldr r0, _080CCDFC @ =0x00002828
@@ -5067,7 +5067,7 @@ _080CCDB8:
pop {r0}
bx r0
.align 2, 0
-_080CCDF8: .4byte gUnknown_03004B00
+_080CCDF8: .4byte gBattleAnimArgs
_080CCDFC: .4byte 0x00002828
_080CCE00: .4byte REG_BLDCNT
_080CCE04: .4byte REG_BLDALPHA
@@ -5207,7 +5207,7 @@ _080CCF00: .4byte sub_807861C
sub_80CCF04: @ 80CCF04
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _080CCF5C @ =gUnknown_0202F7C9
+ ldr r6, _080CCF5C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -5248,7 +5248,7 @@ sub_80CCF04: @ 80CCF04
pop {r0}
bx r0
.align 2, 0
-_080CCF5C: .4byte gUnknown_0202F7C9
+_080CCF5C: .4byte gBattleAnimEnemyMonIndex
_080CCF60: .4byte 0x0000ffe8
_080CCF64: .4byte REG_BLDCNT
_080CCF68: .4byte REG_BLDALPHA
@@ -5507,7 +5507,7 @@ _080CD138:
sub_80CD140: @ 80CD140
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080CD184 @ =gUnknown_03004B00
+ ldr r5, _080CD184 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -5538,7 +5538,7 @@ _080CD154:
pop {r0}
bx r0
.align 2, 0
-_080CD184: .4byte gUnknown_03004B00
+_080CD184: .4byte gBattleAnimArgs
_080CD188: .4byte move_anim_8072740
_080CD18C: .4byte sub_8078394
thumb_func_end sub_80CD140
@@ -5547,21 +5547,21 @@ _080CD18C: .4byte sub_8078394
sub_80CD190: @ 80CD190
push {r4-r6,lr}
adds r5, r0, 0
- ldr r0, _080CD1A4 @ =gUnknown_03004B00
+ ldr r0, _080CD1A4 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CD1AC
- ldr r0, _080CD1A8 @ =gUnknown_0202F7C8
+ ldr r0, _080CD1A8 @ =gBattleAnimPlayerMonIndex
b _080CD1AE
.align 2, 0
-_080CD1A4: .4byte gUnknown_03004B00
-_080CD1A8: .4byte gUnknown_0202F7C8
+_080CD1A4: .4byte gBattleAnimArgs
+_080CD1A8: .4byte gBattleAnimPlayerMonIndex
_080CD1AC:
- ldr r0, _080CD1F0 @ =gUnknown_0202F7C9
+ ldr r0, _080CD1F0 @ =gBattleAnimEnemyMonIndex
_080CD1AE:
ldrb r6, [r0]
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080CD1F8
@@ -5572,7 +5572,7 @@ _080CD1AE:
lsls r0, 24
cmp r0, 0
beq _080CD1F8
- ldr r4, _080CD1F4 @ =gUnknown_03004B00
+ ldr r4, _080CD1F4 @ =gBattleAnimArgs
ldrb r1, [r4, 0xC]
adds r2, r5, 0
adds r2, 0x20
@@ -5590,10 +5590,10 @@ _080CD1AE:
strh r0, [r5, 0x22]
b _080CD248
.align 2, 0
-_080CD1F0: .4byte gUnknown_0202F7C9
-_080CD1F4: .4byte gUnknown_03004B00
+_080CD1F0: .4byte gBattleAnimEnemyMonIndex
+_080CD1F4: .4byte gBattleAnimArgs
_080CD1F8:
- ldr r4, _080CD218 @ =gUnknown_03004B00
+ ldr r4, _080CD218 @ =gBattleAnimArgs
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r0, 0
@@ -5608,7 +5608,7 @@ _080CD1F8:
movs r1, 0x1
b _080CD22E
.align 2, 0
-_080CD218: .4byte gUnknown_03004B00
+_080CD218: .4byte gBattleAnimArgs
_080CD21C:
adds r0, r6, 0
movs r1, 0x2
@@ -5625,13 +5625,13 @@ _080CD22E:
ldrh r4, [r4, 0x2]
adds r0, r4
strh r0, [r5, 0x22]
- ldr r0, _080CD268 @ =gUnknown_03004B00
+ ldr r0, _080CD268 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r0, r5, 0
bl sub_807867C
_080CD248:
- ldr r1, _080CD268 @ =gUnknown_03004B00
+ ldr r1, _080CD268 @ =gBattleAnimArgs
ldrh r0, [r1, 0xA]
strh r0, [r5, 0x2E]
ldrh r0, [r1, 0x6]
@@ -5647,7 +5647,7 @@ _080CD248:
pop {r0}
bx r0
.align 2, 0
-_080CD268: .4byte gUnknown_03004B00
+_080CD268: .4byte gBattleAnimArgs
_080CD26C: .4byte move_anim_8072740
_080CD270: .4byte sub_8078394
thumb_func_end sub_80CD190
@@ -5657,13 +5657,13 @@ sub_80CD274: @ 80CD274
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r0, _080CD2A0 @ =gUnknown_0202F7C8
+ ldr r0, _080CD2A0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080CD2A8
- ldr r0, _080CD2A4 @ =gUnknown_03004B00
+ ldr r0, _080CD2A4 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -5674,10 +5674,10 @@ sub_80CD274: @ 80CD274
strh r0, [r4, 0x22]
b _080CD2C2
.align 2, 0
-_080CD2A0: .4byte gUnknown_0202F7C8
-_080CD2A4: .4byte gUnknown_03004B00
+_080CD2A0: .4byte gBattleAnimPlayerMonIndex
+_080CD2A4: .4byte gBattleAnimArgs
_080CD2A8:
- ldr r2, _080CD2CC @ =gUnknown_03004B00
+ ldr r2, _080CD2CC @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -5696,7 +5696,7 @@ _080CD2C2:
pop {r0}
bx r0
.align 2, 0
-_080CD2CC: .4byte gUnknown_03004B00
+_080CD2CC: .4byte gBattleAnimArgs
_080CD2D0: .4byte sub_80CD2D4
thumb_func_end sub_80CD274
@@ -5749,13 +5749,13 @@ sub_80CD328: @ 80CD328
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r0, _080CD358 @ =gUnknown_0202F7C8
+ ldr r0, _080CD358 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080CD360
- ldr r1, _080CD35C @ =gUnknown_03004B00
+ ldr r1, _080CD35C @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -5768,10 +5768,10 @@ sub_80CD328: @ 80CD328
strh r0, [r4, 0x34]
b _080CD37E
.align 2, 0
-_080CD358: .4byte gUnknown_0202F7C8
-_080CD35C: .4byte gUnknown_03004B00
+_080CD358: .4byte gBattleAnimPlayerMonIndex
+_080CD35C: .4byte gBattleAnimArgs
_080CD360:
- ldr r2, _080CD388 @ =gUnknown_03004B00
+ ldr r2, _080CD388 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -5792,7 +5792,7 @@ _080CD37E:
pop {r0}
bx r0
.align 2, 0
-_080CD388: .4byte gUnknown_03004B00
+_080CD388: .4byte gBattleAnimArgs
_080CD38C: .4byte 0x0000ffff
_080CD390: .4byte sub_80CD394
thumb_func_end sub_80CD328
@@ -6043,7 +6043,7 @@ _080CD54C:
strh r1, [r5, 0x24]
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, _080CD59C @ =gUnknown_0202F7C9
+ ldr r4, _080CD59C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -6068,7 +6068,7 @@ _080CD594:
pop {r0}
bx r0
.align 2, 0
-_080CD59C: .4byte gUnknown_0202F7C9
+_080CD59C: .4byte gBattleAnimEnemyMonIndex
_080CD5A0: .4byte sub_8078B34
_080CD5A4: .4byte sub_80CD654
thumb_func_end sub_80CD4EC
@@ -6165,7 +6165,7 @@ _080CD650: .4byte sub_80CD654
sub_80CD654: @ 80CD654
push {lr}
adds r2, r0, 0
- ldr r0, _080CD670 @ =gUnknown_03004B00
+ ldr r0, _080CD670 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080CD674 @ =0x0000ffff
cmp r1, r0
@@ -6179,7 +6179,7 @@ _080CD66C:
pop {r0}
bx r0
.align 2, 0
-_080CD670: .4byte gUnknown_03004B00
+_080CD670: .4byte gBattleAnimArgs
_080CD674: .4byte 0x0000ffff
_080CD678: .4byte sub_80CD67C
thumb_func_end sub_80CD654
@@ -6231,7 +6231,7 @@ _080CD6C4:
sub_80CD6CC: @ 80CD6CC
push {r4,lr}
adds r3, r0, 0
- ldr r0, _080CD6EC @ =gUnknown_03004B00
+ ldr r0, _080CD6EC @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r3, 0x6]
lsls r0, 16
@@ -6246,7 +6246,7 @@ sub_80CD6CC: @ 80CD6CC
strh r0, [r3, 0x22]
b _080CD742
.align 2, 0
-_080CD6EC: .4byte gUnknown_03004B00
+_080CD6EC: .4byte gBattleAnimArgs
_080CD6F0:
cmp r0, 0x2
bne _080CD70C
@@ -6329,7 +6329,7 @@ sub_80CD774: @ 80CD774
strb r0, [r2]
movs r0, 0
strh r0, [r3, 0x2E]
- ldr r0, _080CD79C @ =gUnknown_03004B00
+ ldr r0, _080CD79C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -6340,7 +6340,7 @@ sub_80CD774: @ 80CD774
beq _080CD7A6
b _080CD7C0
.align 2, 0
-_080CD79C: .4byte gUnknown_03004B00
+_080CD79C: .4byte gBattleAnimArgs
_080CD7A0:
cmp r0, 0x2
beq _080CD7B8
@@ -6376,9 +6376,9 @@ sub_80CD7CC: @ 80CD7CC
adds r4, r0, 0
movs r0, 0x6
strh r0, [r4, 0x2E]
- ldr r5, _080CD80C @ =gUnknown_0202F7C8
+ ldr r5, _080CD80C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
movs r2, 0x2
negs r2, r2
@@ -6390,7 +6390,7 @@ _080CD7EA:
strh r1, [r4, 0x30]
movs r0, 0
strh r0, [r4, 0x32]
- ldr r1, _080CD810 @ =gUnknown_02024BE0
+ ldr r1, _080CD810 @ =gObjectBankIDs
ldrb r0, [r5]
adds r0, r1
ldrb r0, [r0]
@@ -6404,8 +6404,8 @@ _080CD7EA:
pop {r0}
bx r0
.align 2, 0
-_080CD80C: .4byte gUnknown_0202F7C8
-_080CD810: .4byte gUnknown_02024BE0
+_080CD80C: .4byte gBattleAnimPlayerMonIndex
+_080CD810: .4byte gObjectBankIDs
_080CD814: .4byte sub_80CD81C
_080CD818: .4byte sub_8078458
thumb_func_end sub_80CD7CC
@@ -6418,8 +6418,8 @@ sub_80CD81C: @ 80CD81C
ldrsh r6, [r5, r0]
cmp r6, 0
bne _080CD858
- ldr r1, _080CD898 @ =gUnknown_02024BE0
- ldr r4, _080CD89C @ =gUnknown_0202F7C8
+ ldr r1, _080CD898 @ =gObjectBankIDs
+ ldr r4, _080CD89C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
@@ -6427,7 +6427,7 @@ sub_80CD81C: @ 80CD81C
movs r1, 0
bl sub_8078E70
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
@@ -6474,8 +6474,8 @@ _080CD892:
pop {r0}
bx r0
.align 2, 0
-_080CD898: .4byte gUnknown_02024BE0
-_080CD89C: .4byte gUnknown_0202F7C8
+_080CD898: .4byte gObjectBankIDs
+_080CD89C: .4byte gBattleAnimPlayerMonIndex
_080CD8A0: .4byte 0xfffffd00
_080CD8A4: .4byte sub_80CD9B8
thumb_func_end sub_80CD81C
@@ -6486,9 +6486,9 @@ sub_80CD8A8: @ 80CD8A8
adds r4, r0, 0
movs r0, 0x4
strh r0, [r4, 0x2E]
- ldr r5, _080CD8E8 @ =gUnknown_0202F7C8
+ ldr r5, _080CD8E8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
movs r1, 0x3
cmp r0, 0
@@ -6500,7 +6500,7 @@ _080CD8C6:
strh r1, [r4, 0x30]
movs r0, 0
strh r0, [r4, 0x32]
- ldr r1, _080CD8EC @ =gUnknown_02024BE0
+ ldr r1, _080CD8EC @ =gObjectBankIDs
ldrb r0, [r5]
adds r0, r1
ldrb r0, [r0]
@@ -6514,8 +6514,8 @@ _080CD8C6:
pop {r0}
bx r0
.align 2, 0
-_080CD8E8: .4byte gUnknown_0202F7C8
-_080CD8EC: .4byte gUnknown_02024BE0
+_080CD8E8: .4byte gBattleAnimPlayerMonIndex
+_080CD8EC: .4byte gObjectBankIDs
_080CD8F0: .4byte sub_80CD9B8
_080CD8F4: .4byte sub_8078458
thumb_func_end sub_80CD8A8
@@ -6550,19 +6550,19 @@ sub_80CD91C: @ 80CD91C
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080CD96C
- ldr r1, _080CD958 @ =gUnknown_02024BE0
- ldr r4, _080CD95C @ =gUnknown_0202F7C8
+ ldr r1, _080CD958 @ =gObjectBankIDs
+ ldr r4, _080CD95C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
strh r0, [r5, 0x34]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CD960
@@ -6573,8 +6573,8 @@ sub_80CD91C: @ 80CD91C
lsls r0, 4
b _080CD96A
.align 2, 0
-_080CD958: .4byte gUnknown_02024BE0
-_080CD95C: .4byte gUnknown_0202F7C8
+_080CD958: .4byte gObjectBankIDs
+_080CD95C: .4byte gBattleAnimPlayerMonIndex
_080CD960:
movs r0, 0x80
lsls r0, 3
@@ -6659,14 +6659,14 @@ _080CD9EA:
b _080CDAC2
_080CD9F0:
strh r5, [r4, 0x30]
- ldr r1, _080CDA74 @ =gUnknown_02024BE0
- ldr r2, _080CDA78 @ =gUnknown_0202F7C8
+ ldr r1, _080CDA74 @ =gObjectBankIDs
+ ldr r2, _080CDA78 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
strh r0, [r4, 0x32]
ldrb r0, [r2]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x34]
@@ -6723,8 +6723,8 @@ _080CDA2E:
strh r0, [r4, 0x2E]
b _080CDAC2
.align 2, 0
-_080CDA74: .4byte gUnknown_02024BE0
-_080CDA78: .4byte gUnknown_0202F7C8
+_080CDA74: .4byte gObjectBankIDs
+_080CDA78: .4byte gBattleAnimPlayerMonIndex
_080CDA7C: .4byte 0xfffffe00
_080CDA80:
ldrh r0, [r4, 0x36]
@@ -6772,20 +6772,20 @@ sub_80CDAC8: @ 80CDAC8
adds r0, r6
lsls r0, 3
adds r5, r0, r1
- ldr r1, _080CDB10 @ =gUnknown_02024BE0
- ldr r2, _080CDB14 @ =gUnknown_0202F7C8
+ ldr r1, _080CDB10 @ =gObjectBankIDs
+ ldr r2, _080CDB14 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
movs r4, 0
strh r0, [r5, 0x8]
ldrb r0, [r2]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r2, r0, 24
strh r2, [r5, 0xA]
strh r4, [r5, 0xC]
- ldr r0, _080CDB18 @ =gUnknown_03004B00
+ ldr r0, _080CDB18 @ =gBattleAnimArgs
movs r3, 0
ldrsh r1, [r0, r3]
cmp r1, 0
@@ -6793,13 +6793,13 @@ sub_80CDAC8: @ 80CDAC8
cmp r1, 0x1
beq _080CDB38
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080CDB56
.align 2, 0
_080CDB0C: .4byte gTasks
-_080CDB10: .4byte gUnknown_02024BE0
-_080CDB14: .4byte gUnknown_0202F7C8
-_080CDB18: .4byte gUnknown_03004B00
+_080CDB10: .4byte gObjectBankIDs
+_080CDB14: .4byte gBattleAnimPlayerMonIndex
+_080CDB18: .4byte gBattleAnimArgs
_080CDB1C:
strh r1, [r5, 0xC]
movs r0, 0x8
@@ -7075,7 +7075,7 @@ _080CDD08:
_080CDD10: .4byte gSprites
_080CDD14:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080CDD1A:
pop {r4}
pop {r0}
@@ -7118,7 +7118,7 @@ _080CDD60:
ldrb r0, [r4, 0x8]
bl sub_8078F40
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080CDD6C:
pop {r4,r5}
pop {r0}
@@ -7129,18 +7129,18 @@ _080CDD6C:
sub_80CDD74: @ 80CDD74
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080CDD88 @ =gUnknown_03004B00
+ ldr r6, _080CDD88 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CDD90
- ldr r4, _080CDD8C @ =gUnknown_0202F7C8
+ ldr r4, _080CDD8C @ =gBattleAnimPlayerMonIndex
b _080CDD92
.align 2, 0
-_080CDD88: .4byte gUnknown_03004B00
-_080CDD8C: .4byte gUnknown_0202F7C8
+_080CDD88: .4byte gBattleAnimArgs
+_080CDD8C: .4byte gBattleAnimPlayerMonIndex
_080CDD90:
- ldr r4, _080CDDD0 @ =gUnknown_0202F7C9
+ ldr r4, _080CDDD0 @ =gBattleAnimEnemyMonIndex
_080CDD92:
ldrb r0, [r4]
movs r1, 0x2
@@ -7170,7 +7170,7 @@ _080CDD92:
pop {r0}
bx r0
.align 2, 0
-_080CDDD0: .4byte gUnknown_0202F7C9
+_080CDDD0: .4byte gBattleAnimEnemyMonIndex
_080CDDD4: .4byte sub_80CDEC0
_080CDDD8: .4byte sub_8078600
thumb_func_end sub_80CDD74
@@ -7179,7 +7179,7 @@ _080CDDD8: .4byte sub_8078600
sub_80CDDDC: @ 80CDDDC
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080CDE14 @ =gUnknown_0202F7C9
+ ldr r5, _080CDE14 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -7203,7 +7203,7 @@ sub_80CDDDC: @ 80CDDDC
pop {r0}
bx r0
.align 2, 0
-_080CDE14: .4byte gUnknown_0202F7C9
+_080CDE14: .4byte gBattleAnimEnemyMonIndex
_080CDE18: .4byte 0x0000ffd0
_080CDE1C: .4byte sub_80CDE78
_080CDE20: .4byte sub_8078600
@@ -7213,13 +7213,13 @@ _080CDE20: .4byte sub_8078600
sub_80CDE24: @ 80CDE24
push {r4-r6,lr}
adds r4, r0, 0
- ldr r5, _080CDE68 @ =gUnknown_0202F7C9
+ ldr r5, _080CDE68 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
- ldr r1, _080CDE6C @ =gUnknown_03004B00
+ ldr r1, _080CDE6C @ =gBattleAnimArgs
ldr r2, _080CDE70 @ =0x0000ffd0
adds r0, r2
ldrh r1, [r1]
@@ -7243,8 +7243,8 @@ sub_80CDE24: @ 80CDE24
pop {r0}
bx r0
.align 2, 0
-_080CDE68: .4byte gUnknown_0202F7C9
-_080CDE6C: .4byte gUnknown_03004B00
+_080CDE68: .4byte gBattleAnimEnemyMonIndex
+_080CDE6C: .4byte gBattleAnimArgs
_080CDE70: .4byte 0x0000ffd0
_080CDE74: .4byte sub_80CDEC0
thumb_func_end sub_80CDE24
@@ -7338,18 +7338,18 @@ _080CDF08:
sub_80CDF0C: @ 80CDF0C
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080CDF20 @ =gUnknown_03004B00
+ ldr r6, _080CDF20 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CDF28
- ldr r4, _080CDF24 @ =gUnknown_0202F7C8
+ ldr r4, _080CDF24 @ =gBattleAnimPlayerMonIndex
b _080CDF2A
.align 2, 0
-_080CDF20: .4byte gUnknown_03004B00
-_080CDF24: .4byte gUnknown_0202F7C8
+_080CDF20: .4byte gBattleAnimArgs
+_080CDF24: .4byte gBattleAnimPlayerMonIndex
_080CDF28:
- ldr r4, _080CDF64 @ =gUnknown_0202F7C9
+ ldr r4, _080CDF64 @ =gBattleAnimEnemyMonIndex
_080CDF2A:
ldrb r0, [r4]
movs r1, 0
@@ -7369,7 +7369,7 @@ _080CDF2A:
strh r0, [r5, 0x22]
movs r0, 0
strh r0, [r5, 0x2E]
- ldr r0, _080CDF68 @ =gUnknown_03004B00
+ ldr r0, _080CDF68 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r5, 0x30]
ldr r0, _080CDF6C @ =sub_80CDF70
@@ -7378,8 +7378,8 @@ _080CDF2A:
pop {r0}
bx r0
.align 2, 0
-_080CDF64: .4byte gUnknown_0202F7C9
-_080CDF68: .4byte gUnknown_03004B00
+_080CDF64: .4byte gBattleAnimEnemyMonIndex
+_080CDF68: .4byte gBattleAnimArgs
_080CDF6C: .4byte sub_80CDF70
thumb_func_end sub_80CDF0C
@@ -7424,7 +7424,7 @@ _080CDFAC:
sub_80CDFB0: @ 80CDFB0
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _080CDFF8 @ =gUnknown_0202F7C8
+ ldr r6, _080CDFF8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -7456,7 +7456,7 @@ sub_80CDFB0: @ 80CDFB0
pop {r0}
bx r0
.align 2, 0
-_080CDFF8: .4byte gUnknown_0202F7C8
+_080CDFF8: .4byte gBattleAnimPlayerMonIndex
_080CDFFC: .4byte sub_80CE000
thumb_func_end sub_80CDFB0
@@ -7551,12 +7551,12 @@ sub_80CE09C: @ 80CE09C
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CE0E6
- ldr r4, _080CE0FC @ =gUnknown_0202F7C8
+ ldr r4, _080CE0FC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r5, _080CE100 @ =gUnknown_03004B00
+ ldr r5, _080CE100 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r5]
adds r0, r1
@@ -7569,7 +7569,7 @@ sub_80CE09C: @ 80CE09C
ldrh r5, [r5, 0x2]
adds r0, r5
strh r0, [r6, 0x22]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080CE0E0
@@ -7581,7 +7581,7 @@ _080CE0E0:
adds r0, 0x1
strh r0, [r6, 0x2E]
_080CE0E6:
- ldr r0, _080CE100 @ =gUnknown_03004B00
+ ldr r0, _080CE100 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080CE104 @ =0x0000ffff
cmp r1, r0
@@ -7593,8 +7593,8 @@ _080CE0F6:
pop {r0}
bx r0
.align 2, 0
-_080CE0FC: .4byte gUnknown_0202F7C8
-_080CE100: .4byte gUnknown_03004B00
+_080CE0FC: .4byte gBattleAnimPlayerMonIndex
+_080CE100: .4byte gBattleAnimArgs
_080CE104: .4byte 0x0000ffff
thumb_func_end sub_80CE09C
@@ -7612,19 +7612,19 @@ sub_80CE108: @ 80CE108
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _080CE134
- ldr r1, _080CE12C @ =gUnknown_03004B00
+ ldr r1, _080CE12C @ =gBattleAnimArgs
ldr r0, _080CE130 @ =0x0000ffff
strh r0, [r1, 0xE]
b _080CE16C
.align 2, 0
_080CE128: .4byte gTasks
-_080CE12C: .4byte gUnknown_03004B00
+_080CE12C: .4byte gBattleAnimArgs
_080CE130: .4byte 0x0000ffff
_080CE134:
cmp r0, 0x2
bne _080CE140
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080CE172
_080CE140:
ldrh r0, [r4, 0x8]
@@ -7673,7 +7673,7 @@ sub_80CE17C: @ 80CE17C
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
- ldr r0, _080CE1A4 @ =gUnknown_03004B00
+ ldr r0, _080CE1A4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r0, _080CE1A8 @ =sub_80CE1AC
@@ -7682,7 +7682,7 @@ sub_80CE17C: @ 80CE17C
pop {r0}
bx r0
.align 2, 0
-_080CE1A4: .4byte gUnknown_03004B00
+_080CE1A4: .4byte gBattleAnimArgs
_080CE1A8: .4byte sub_80CE1AC
thumb_func_end sub_80CE17C
@@ -7708,7 +7708,7 @@ _080CE1C0:
strb r0, [r2]
movs r0, 0x1E
strh r0, [r5, 0x2E]
- ldr r4, _080CE204 @ =gUnknown_0202F7C8
+ ldr r4, _080CE204 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -7731,7 +7731,7 @@ _080CE1FC:
pop {r0}
bx r0
.align 2, 0
-_080CE204: .4byte gUnknown_0202F7C8
+_080CE204: .4byte gBattleAnimPlayerMonIndex
_080CE208: .4byte sub_8078B34
_080CE20C: .4byte move_anim_8072740
thumb_func_end sub_80CE1AC
@@ -7769,7 +7769,7 @@ sub_80CE210: @ 80CE210
cmp r0, 0x10
bne _080CE252
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080CE252:
pop {r4}
pop {r0}
@@ -7785,19 +7785,19 @@ unref_sub_80CE260: @ 80CE260
lsls r0, 24
lsrs r7, r0, 24
movs r4, 0
- ldr r0, _080CE2C8 @ =gUnknown_02024A68
+ ldr r0, _080CE2C8 @ =gNoOfAllBanks
ldrb r0, [r0]
cmp r4, r0
bcs _080CE2BC
- ldr r6, _080CE2CC @ =gUnknown_03004B00
- ldr r5, _080CE2D0 @ =gUnknown_03004340
+ ldr r6, _080CE2CC @ =gBattleAnimArgs
+ ldr r5, _080CE2D0 @ =gHealthboxIDs
_080CE274:
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0x1
bne _080CE290
adds r0, r4, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080CE290
@@ -7810,7 +7810,7 @@ _080CE290:
cmp r0, 0x1
bne _080CE2AE
adds r0, r4, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7822,20 +7822,20 @@ _080CE2AE:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080CE2C8 @ =gUnknown_02024A68
+ ldr r0, _080CE2C8 @ =gNoOfAllBanks
ldrb r0, [r0]
cmp r4, r0
bcc _080CE274
_080CE2BC:
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080CE2C8: .4byte gUnknown_02024A68
-_080CE2CC: .4byte gUnknown_03004B00
-_080CE2D0: .4byte gUnknown_03004340
+_080CE2C8: .4byte gNoOfAllBanks
+_080CE2CC: .4byte gBattleAnimArgs
+_080CE2D0: .4byte gHealthboxIDs
thumb_func_end unref_sub_80CE260
thumb_func_start unref_sub_80CE2D4
@@ -7846,7 +7846,7 @@ unref_sub_80CE2D4: @ 80CE2D4
movs r4, 0
b _080CE2EE
_080CE2DE:
- ldr r0, _080CE304 @ =gUnknown_03004340
+ ldr r0, _080CE304 @ =gHealthboxIDs
adds r0, r4, r0
ldrb r0, [r0]
bl sub_8043DFC
@@ -7854,25 +7854,25 @@ _080CE2DE:
lsls r0, 24
lsrs r4, r0, 24
_080CE2EE:
- ldr r0, _080CE308 @ =gUnknown_02024A68
+ ldr r0, _080CE308 @ =gNoOfAllBanks
ldrb r0, [r0]
cmp r4, r0
bcc _080CE2DE
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080CE304: .4byte gUnknown_03004340
-_080CE308: .4byte gUnknown_02024A68
+_080CE304: .4byte gHealthboxIDs
+_080CE308: .4byte gNoOfAllBanks
thumb_func_end unref_sub_80CE2D4
thumb_func_start sub_80CE30C
sub_80CE30C: @ 80CE30C
push {r4,lr}
adds r4, r0, 0
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080CE322
@@ -7881,7 +7881,7 @@ sub_80CE30C: @ 80CE30C
movs r0, 0x28
b _080CE32A
_080CE322:
- ldr r0, _080CE34C @ =gUnknown_03004B00
+ ldr r0, _080CE34C @ =gBattleAnimArgs
ldrh r1, [r0]
strh r1, [r4, 0x20]
ldrh r0, [r0, 0x2]
@@ -7903,7 +7903,7 @@ _080CE32A:
pop {r0}
bx r0
.align 2, 0
-_080CE34C: .4byte gUnknown_03004B00
+_080CE34C: .4byte gBattleAnimArgs
_080CE350: .4byte sub_80CE354
thumb_func_end sub_80CE30C
@@ -7926,12 +7926,12 @@ _080CE366:
sub_80CE36C: @ 80CE36C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CE3A4 @ =gUnknown_0202F7C8
+ ldr r0, _080CE3A4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r2, _080CE3A8 @ =gUnknown_03004B00
+ ldr r2, _080CE3A8 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r2]
adds r0, r1
@@ -7951,8 +7951,8 @@ sub_80CE36C: @ 80CE36C
pop {r0}
bx r0
.align 2, 0
-_080CE3A4: .4byte gUnknown_0202F7C8
-_080CE3A8: .4byte gUnknown_03004B00
+_080CE3A4: .4byte gBattleAnimPlayerMonIndex
+_080CE3A8: .4byte gBattleAnimArgs
_080CE3AC: .4byte sub_80CE3B0
thumb_func_end sub_80CE36C
@@ -8304,7 +8304,7 @@ _080CE64C:
cmp r0, 0
bne _080CE65E
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080CE65E:
add sp, 0x4
pop {r3}
@@ -8320,7 +8320,7 @@ _080CE66C: .4byte gPaletteFade
sub_80CE670: @ 80CE670
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080CE6F4 @ =gUnknown_03004B00
+ ldr r6, _080CE6F4 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r6, r1]
cmp r0, 0x1
@@ -8339,7 +8339,7 @@ _080CE68E:
strh r0, [r5, 0x2E]
ldrh r0, [r6, 0x4]
strh r0, [r5, 0x30]
- ldr r4, _080CE6F8 @ =gUnknown_0202F7C9
+ ldr r4, _080CE6F8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -8359,7 +8359,7 @@ _080CE68E:
ldrh r1, [r5, 0x20]
strh r1, [r5, 0x3A]
strh r0, [r5, 0x3C]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080CE700
@@ -8383,13 +8383,13 @@ _080CE68E:
ldr r0, _080CE6FC @ =0xffffec00
b _080CE726
.align 2, 0
-_080CE6F4: .4byte gUnknown_03004B00
-_080CE6F8: .4byte gUnknown_0202F7C9
+_080CE6F4: .4byte gBattleAnimArgs
+_080CE6F8: .4byte gBattleAnimEnemyMonIndex
_080CE6FC: .4byte 0xffffec00
_080CE700:
- ldr r0, _080CE740 @ =gUnknown_0202F7C8
+ ldr r0, _080CE740 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080CE748
@@ -8417,7 +8417,7 @@ _080CE726:
strh r0, [r5, 0x38]
b _080CE784
.align 2, 0
-_080CE740: .4byte gUnknown_0202F7C8
+_080CE740: .4byte gBattleAnimPlayerMonIndex
_080CE744: .4byte 0xfffff600
_080CE748:
ldrh r0, [r5, 0x20]
@@ -8615,9 +8615,9 @@ _080CE8B4:
_080CE8C6:
ldr r0, _080CE8E8 @ =sub_80CE910
str r0, [r6]
- ldr r0, _080CE8EC @ =gUnknown_0202F7C8
+ ldr r0, _080CE8EC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -8630,7 +8630,7 @@ _080CE8C6:
.align 2, 0
_080CE8E4: .4byte sub_80CE974
_080CE8E8: .4byte sub_80CE910
-_080CE8EC: .4byte gUnknown_0202F7C8
+_080CE8EC: .4byte gBattleAnimPlayerMonIndex
_080CE8F0: .4byte 0x0000fdff
_080CE8F4:
movs r2, 0x80
@@ -8664,9 +8664,9 @@ sub_80CE910: @ 80CE910
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CE968
- ldr r0, _080CE948 @ =gUnknown_0202F7C8
+ ldr r0, _080CE948 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -8679,7 +8679,7 @@ sub_80CE910: @ 80CE910
b _080CE956
.align 2, 0
_080CE944: .4byte gTasks
-_080CE948: .4byte gUnknown_0202F7C8
+_080CE948: .4byte gBattleAnimPlayerMonIndex
_080CE94C:
movs r0, 0x80
lsls r0, 19
@@ -8693,7 +8693,7 @@ _080CE956:
ldr r0, _080CE970 @ =0x00002771
bl FreeSpritePaletteByTag
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080CE968:
pop {r4}
pop {r0}
@@ -8877,7 +8877,7 @@ _080CEAB2:
cmp r4, 0x3
bls _080CEA6A
mov r0, r9
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r3,r4}
mov r8, r3
mov r9, r4
@@ -8909,7 +8909,7 @@ _080CEAE2:
cmp r4, 0x3
bls _080CEAE2
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
@@ -8923,7 +8923,7 @@ sub_80CEB0C: @ 80CEB0C
sub sp, 0x4
adds r5, r0, 0
bl sub_8078650
- ldr r4, _080CEB64 @ =gUnknown_03004B00
+ ldr r4, _080CEB64 @ =gBattleAnimArgs
ldrb r1, [r4]
adds r0, r5, 0
bl StartSpriteAnim
@@ -8953,7 +8953,7 @@ _080CEB48:
strh r1, [r5, 0x32]
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x34]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080CEB6C
@@ -8961,10 +8961,10 @@ _080CEB48:
movs r3, 0x28
b _080CEB86
.align 2, 0
-_080CEB64: .4byte gUnknown_03004B00
+_080CEB64: .4byte gBattleAnimArgs
_080CEB68: .4byte gUnknown_083D712C
_080CEB6C:
- ldr r4, _080CEBBC @ =gUnknown_0202F7C9
+ ldr r4, _080CEBBC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -9002,7 +9002,7 @@ _080CEB86:
pop {r0}
bx r0
.align 2, 0
-_080CEBBC: .4byte gUnknown_0202F7C9
+_080CEBBC: .4byte gBattleAnimEnemyMonIndex
_080CEBC0: .4byte sub_80CEC1C
thumb_func_end sub_80CEB0C
@@ -9165,14 +9165,14 @@ _080CECE4: .4byte gUnknown_083D712C
sub_80CECE8: @ 80CECE8
push {r4-r7,lr}
adds r6, r0, 0
- ldr r7, _080CED6C @ =gUnknown_0202F7C8
+ ldr r7, _080CED6C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r7]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080CED06
- ldr r1, _080CED70 @ =gUnknown_03004B00
+ ldr r1, _080CED70 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r1, r2]
negs r0, r0
@@ -9182,7 +9182,7 @@ _080CED06:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080CED70 @ =gUnknown_03004B00
+ ldr r4, _080CED70 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
@@ -9225,8 +9225,8 @@ _080CED06:
pop {r0}
bx r0
.align 2, 0
-_080CED6C: .4byte gUnknown_0202F7C8
-_080CED70: .4byte gUnknown_03004B00
+_080CED6C: .4byte gBattleAnimPlayerMonIndex
+_080CED70: .4byte gBattleAnimArgs
_080CED74: .4byte sub_80CED78
thumb_func_end sub_80CECE8
@@ -9297,7 +9297,7 @@ _080CEDEA:
sub_80CEDF0: @ 80CEDF0
push {r4-r6,lr}
adds r5, r0, 0
- ldr r0, _080CEE10 @ =gUnknown_03004B00
+ ldr r0, _080CEE10 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -9312,11 +9312,11 @@ sub_80CEDF0: @ 80CEDF0
movs r6, 0x10
b _080CEE16
.align 2, 0
-_080CEE10: .4byte gUnknown_03004B00
+_080CEE10: .4byte gBattleAnimArgs
_080CEE14:
ldr r6, _080CEE50 @ =0x0000fff0
_080CEE16:
- ldr r4, _080CEE54 @ =gUnknown_0202F7C8
+ ldr r4, _080CEE54 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -9343,7 +9343,7 @@ _080CEE16:
bx r0
.align 2, 0
_080CEE50: .4byte 0x0000fff0
-_080CEE54: .4byte gUnknown_0202F7C8
+_080CEE54: .4byte gBattleAnimPlayerMonIndex
_080CEE58: .4byte sub_80782D8
_080CEE5C: .4byte move_anim_8072740
thumb_func_end sub_80CEDF0
@@ -9356,7 +9356,7 @@ sub_80CEE60: @ 80CEE60
ldrh r0, [r4, 0x22]
adds r0, 0x8
strh r0, [r4, 0x22]
- ldr r5, _080CEED8 @ =gUnknown_03004B00
+ ldr r5, _080CEED8 @ =gBattleAnimArgs
ldrb r1, [r5, 0x2]
adds r0, r4, 0
bl StartSpriteAnim
@@ -9409,7 +9409,7 @@ _080CEEAC:
pop {r0}
bx r0
.align 2, 0
-_080CEED8: .4byte gUnknown_03004B00
+_080CEED8: .4byte gBattleAnimArgs
_080CEEDC: .4byte gUnknown_083D712C
_080CEEE0: .4byte 0x0000ffe0
_080CEEE4: .4byte sub_80CEEE8
@@ -9471,7 +9471,7 @@ sub_80CEF44: @ 80CEF44
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080CEF64
@@ -9514,31 +9514,31 @@ _080CEF90:
sub_80CEF9C: @ 80CEF9C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080CEFB0 @ =gUnknown_03004B00
+ ldr r0, _080CEFB0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CEFB8
- ldr r0, _080CEFB4 @ =gUnknown_0202F7C8
+ ldr r0, _080CEFB4 @ =gBattleAnimPlayerMonIndex
b _080CEFBA
.align 2, 0
-_080CEFB0: .4byte gUnknown_03004B00
-_080CEFB4: .4byte gUnknown_0202F7C8
+_080CEFB0: .4byte gBattleAnimArgs
+_080CEFB4: .4byte gBattleAnimPlayerMonIndex
_080CEFB8:
- ldr r0, _080CEFF8 @ =gUnknown_0202F7C9
+ ldr r0, _080CEFF8 @ =gBattleAnimEnemyMonIndex
_080CEFBA:
ldrb r4, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl sub_80CEF44
adds r0, r4, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r1, 31
- ldr r0, _080CEFFC @ =gUnknown_03004B00
+ ldr r0, _080CEFFC @ =gBattleAnimArgs
ldrh r0, [r0, 0x2]
strh r0, [r5, 0x2E]
adds r0, r1, 0x2
@@ -9554,8 +9554,8 @@ _080CEFBA:
pop {r0}
bx r0
.align 2, 0
-_080CEFF8: .4byte gUnknown_0202F7C9
-_080CEFFC: .4byte gUnknown_03004B00
+_080CEFF8: .4byte gBattleAnimEnemyMonIndex
+_080CEFFC: .4byte gBattleAnimArgs
_080CF000: .4byte sub_80CF008
_080CF004: .4byte sub_8078600
thumb_func_end sub_80CEF9C
@@ -9593,18 +9593,18 @@ _080CF03C: .4byte sub_8078600
sub_80CF040: @ 80CF040
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CF054 @ =gUnknown_03004B00
+ ldr r0, _080CF054 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CF05C
- ldr r0, _080CF058 @ =gUnknown_0202F7C8
+ ldr r0, _080CF058 @ =gBattleAnimPlayerMonIndex
b _080CF05E
.align 2, 0
-_080CF054: .4byte gUnknown_03004B00
-_080CF058: .4byte gUnknown_0202F7C8
+_080CF054: .4byte gBattleAnimArgs
+_080CF058: .4byte gBattleAnimPlayerMonIndex
_080CF05C:
- ldr r0, _080CF07C @ =gUnknown_0202F7C9
+ ldr r0, _080CF07C @ =gBattleAnimEnemyMonIndex
_080CF05E:
ldrb r0, [r0]
adds r1, r4, 0
@@ -9620,7 +9620,7 @@ _080CF05E:
pop {r0}
bx r0
.align 2, 0
-_080CF07C: .4byte gUnknown_0202F7C9
+_080CF07C: .4byte gBattleAnimEnemyMonIndex
_080CF080: .4byte sub_80CF088
_080CF084: .4byte sub_80785E4
thumb_func_end sub_80CF040
@@ -9657,18 +9657,18 @@ _080CF0B8: .4byte sub_80785E4
sub_80CF0BC: @ 80CF0BC
push {r4-r6,lr}
adds r4, r0, 0
- ldr r0, _080CF0D0 @ =gUnknown_03004B00
+ ldr r0, _080CF0D0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CF0D8
- ldr r0, _080CF0D4 @ =gUnknown_0202F7C8
+ ldr r0, _080CF0D4 @ =gBattleAnimPlayerMonIndex
b _080CF0DA
.align 2, 0
-_080CF0D0: .4byte gUnknown_03004B00
-_080CF0D4: .4byte gUnknown_0202F7C8
+_080CF0D0: .4byte gBattleAnimArgs
+_080CF0D4: .4byte gBattleAnimPlayerMonIndex
_080CF0D8:
- ldr r0, _080CF12C @ =gUnknown_0202F7C9
+ ldr r0, _080CF12C @ =gBattleAnimEnemyMonIndex
_080CF0DA:
ldrb r5, [r0]
adds r0, r5, 0
@@ -9709,7 +9709,7 @@ _080CF102:
pop {r0}
bx r0
.align 2, 0
-_080CF12C: .4byte gUnknown_0202F7C9
+_080CF12C: .4byte gBattleAnimEnemyMonIndex
_080CF130: .4byte sub_80CF138
_080CF134: .4byte sub_80785E4
thumb_func_end sub_80CF0BC
@@ -9803,25 +9803,25 @@ _080CF1C4: .4byte gSineTable
sub_80CF1C8: @ 80CF1C8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080CF1DC @ =gUnknown_03004B00
+ ldr r0, _080CF1DC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CF1E4
- ldr r0, _080CF1E0 @ =gUnknown_0202F7C8
+ ldr r0, _080CF1E0 @ =gBattleAnimPlayerMonIndex
b _080CF1E6
.align 2, 0
-_080CF1DC: .4byte gUnknown_03004B00
-_080CF1E0: .4byte gUnknown_0202F7C8
+_080CF1DC: .4byte gBattleAnimArgs
+_080CF1E0: .4byte gBattleAnimPlayerMonIndex
_080CF1E4:
- ldr r0, _080CF208 @ =gUnknown_0202F7C9
+ ldr r0, _080CF208 @ =gBattleAnimEnemyMonIndex
_080CF1E6:
ldrb r4, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl sub_80CEF44
adds r0, r4, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080CF20C
@@ -9831,7 +9831,7 @@ _080CF1E6:
movs r0, 0x2
b _080CF216
.align 2, 0
-_080CF208: .4byte gUnknown_0202F7C9
+_080CF208: .4byte gBattleAnimEnemyMonIndex
_080CF20C:
adds r0, r5, 0
movs r1, 0x1
@@ -9903,7 +9903,7 @@ sub_80CF280: @ 80CF280
push {r4,r5,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r5, _080CF2C4 @ =gUnknown_03004B00
+ ldr r5, _080CF2C4 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -9931,7 +9931,7 @@ sub_80CF280: @ 80CF280
pop {r0}
bx r0
.align 2, 0
-_080CF2C4: .4byte gUnknown_03004B00
+_080CF2C4: .4byte gBattleAnimArgs
_080CF2C8: .4byte move_anim_8074EE0
_080CF2CC: .4byte sub_8078278
thumb_func_end sub_80CF280
@@ -9940,18 +9940,18 @@ _080CF2CC: .4byte sub_8078278
sub_80CF2D0: @ 80CF2D0
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CF2E4 @ =gUnknown_03004B00
+ ldr r0, _080CF2E4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CF2EC
- ldr r0, _080CF2E8 @ =gUnknown_0202F7C8
+ ldr r0, _080CF2E8 @ =gBattleAnimPlayerMonIndex
b _080CF2EE
.align 2, 0
-_080CF2E4: .4byte gUnknown_03004B00
-_080CF2E8: .4byte gUnknown_0202F7C8
+_080CF2E4: .4byte gBattleAnimArgs
+_080CF2E8: .4byte gBattleAnimPlayerMonIndex
_080CF2EC:
- ldr r0, _080CF308 @ =gUnknown_0202F7C9
+ ldr r0, _080CF308 @ =gBattleAnimEnemyMonIndex
_080CF2EE:
ldrb r0, [r0]
adds r1, r4, 0
@@ -9965,7 +9965,7 @@ _080CF2EE:
pop {r0}
bx r0
.align 2, 0
-_080CF308: .4byte gUnknown_0202F7C9
+_080CF308: .4byte gBattleAnimEnemyMonIndex
_080CF30C: .4byte sub_80CF310
thumb_func_end sub_80CF2D0
@@ -10075,7 +10075,7 @@ _080CF3C0: .4byte gSprites
sub_80CF3C4: @ 80CF3C4
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, _080CF40C @ =gUnknown_0202F7C8
+ ldr r4, _080CF40C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -10088,17 +10088,17 @@ sub_80CF3C4: @ 80CF3C4
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r1, _080CF410 @ =gUnknown_02024BE0
- ldr r0, _080CF414 @ =gUnknown_0202F7C9
+ ldr r1, _080CF410 @ =gObjectBankIDs
+ ldr r0, _080CF414 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CF41C
- ldr r0, _080CF418 @ =gUnknown_03004B00
+ ldr r0, _080CF418 @ =gBattleAnimArgs
ldrh r1, [r5, 0x20]
ldrh r2, [r0]
subs r1, r2
@@ -10106,12 +10106,12 @@ sub_80CF3C4: @ 80CF3C4
adds r1, r0, 0
b _080CF426
.align 2, 0
-_080CF40C: .4byte gUnknown_0202F7C8
-_080CF410: .4byte gUnknown_02024BE0
-_080CF414: .4byte gUnknown_0202F7C9
-_080CF418: .4byte gUnknown_03004B00
+_080CF40C: .4byte gBattleAnimPlayerMonIndex
+_080CF410: .4byte gObjectBankIDs
+_080CF414: .4byte gBattleAnimEnemyMonIndex
+_080CF418: .4byte gBattleAnimArgs
_080CF41C:
- ldr r1, _080CF450 @ =gUnknown_03004B00
+ ldr r1, _080CF450 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -10138,7 +10138,7 @@ _080CF426:
pop {r0}
bx r0
.align 2, 0
-_080CF450: .4byte gUnknown_03004B00
+_080CF450: .4byte gBattleAnimArgs
_080CF454: .4byte sub_80CF374
thumb_func_end sub_80CF3C4
@@ -10148,7 +10148,7 @@ sub_80CF458: @ 80CF458
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080CF484 @ =gUnknown_03004B00
+ ldr r1, _080CF484 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
@@ -10164,7 +10164,7 @@ sub_80CF458: @ 80CF458
pop {r0}
bx r0
.align 2, 0
-_080CF484: .4byte gUnknown_03004B00
+_080CF484: .4byte gBattleAnimArgs
_080CF488: .4byte sub_80782D8
_080CF48C: .4byte sub_80CF490
thumb_func_end sub_80CF458
@@ -10216,8 +10216,8 @@ sub_80CF4D8: @ 80CF4D8
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r1, _080CF504 @ =gUnknown_02024BE0
- ldr r0, _080CF508 @ =gUnknown_0202F7C8
+ ldr r1, _080CF504 @ =gObjectBankIDs
+ ldr r0, _080CF508 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -10234,8 +10234,8 @@ sub_80CF4D8: @ 80CF4D8
pop {r0}
bx r0
.align 2, 0
-_080CF504: .4byte gUnknown_02024BE0
-_080CF508: .4byte gUnknown_0202F7C8
+_080CF504: .4byte gObjectBankIDs
+_080CF508: .4byte gBattleAnimPlayerMonIndex
_080CF50C: .4byte gTasks
_080CF510: .4byte sub_80CF514
thumb_func_end sub_80CF4D8
@@ -10245,12 +10245,12 @@ sub_80CF514: @ 80CF514
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r1, _080CF544 @ =gUnknown_02024BE0
- ldr r0, _080CF548 @ =gUnknown_0202F7C8
+ ldr r1, _080CF544 @ =gObjectBankIDs
+ ldr r0, _080CF548 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
adds r1, r0, r1
ldrb r4, [r1]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080CF550
@@ -10266,8 +10266,8 @@ sub_80CF514: @ 80CF514
adds r6, r2, 0
b _080CF55E
.align 2, 0
-_080CF544: .4byte gUnknown_02024BE0
-_080CF548: .4byte gUnknown_0202F7C8
+_080CF544: .4byte gObjectBankIDs
+_080CF548: .4byte gBattleAnimPlayerMonIndex
_080CF54C: .4byte gTasks
_080CF550:
ldr r2, _080CF590 @ =gTasks
@@ -10353,7 +10353,7 @@ _080CF5E2:
adds r0, r4, 0
bl sub_8078F40
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080CF608
.align 2, 0
_080CF5FC: .4byte gSprites
@@ -10373,7 +10373,7 @@ sub_80CF610: @ 80CF610
push {r4,r5,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r5, _080CF658 @ =gUnknown_03004B00
+ ldr r5, _080CF658 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -10382,9 +10382,9 @@ sub_80CF610: @ 80CF610
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r0, _080CF65C @ =gUnknown_0202F7C8
+ ldr r0, _080CF65C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CF660
@@ -10403,8 +10403,8 @@ sub_80CF610: @ 80CF610
strb r1, [r2]
b _080CF674
.align 2, 0
-_080CF658: .4byte gUnknown_03004B00
-_080CF65C: .4byte gUnknown_0202F7C8
+_080CF658: .4byte gBattleAnimArgs
+_080CF65C: .4byte gBattleAnimPlayerMonIndex
_080CF660:
movs r1, 0x4
ldrsh r0, [r5, r1]
@@ -10477,25 +10477,25 @@ sub_80CF6DC: @ 80CF6DC
push {r7}
sub sp, 0x4
adds r5, r0, 0
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080CF700
- ldr r1, _080CF6FC @ =gUnknown_03004B00
+ ldr r1, _080CF6FC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
b _080CF722
.align 2, 0
-_080CF6FC: .4byte gUnknown_03004B00
+_080CF6FC: .4byte gBattleAnimArgs
_080CF700:
- ldr r0, _080CF7C8 @ =gUnknown_0202F7C8
+ ldr r0, _080CF7C8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CF722
- ldr r1, _080CF7CC @ =gUnknown_03004B00
+ ldr r1, _080CF7CC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
@@ -10509,12 +10509,12 @@ _080CF722:
adds r0, r5, 0
movs r1, 0x1
bl sub_80787B0
- ldr r4, _080CF7D0 @ =gUnknown_0202F7C9
+ ldr r4, _080CF7D0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r6, _080CF7CC @ =gUnknown_03004B00
+ ldr r6, _080CF7CC @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r6, 0x4]
adds r0, r1
@@ -10550,7 +10550,7 @@ _080CF722:
lsls r1, 24
adds r0, r1
lsrs r4, r0, 16
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080CF794
@@ -10583,9 +10583,9 @@ _080CF794:
pop {r0}
bx r0
.align 2, 0
-_080CF7C8: .4byte gUnknown_0202F7C8
-_080CF7CC: .4byte gUnknown_03004B00
-_080CF7D0: .4byte gUnknown_0202F7C9
+_080CF7C8: .4byte gBattleAnimPlayerMonIndex
+_080CF7CC: .4byte gBattleAnimArgs
+_080CF7D0: .4byte gBattleAnimEnemyMonIndex
_080CF7D4: .4byte 0xffffa000
_080CF7D8: .4byte sub_8078B34
_080CF7DC: .4byte move_anim_8072740
@@ -10890,7 +10890,7 @@ sub_80CF9F8: @ 80CF9F8
cmp r0, 0
bne _080CFA16
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080CFA16:
pop {r0}
bx r0
@@ -11031,7 +11031,7 @@ sub_80CFB04: @ 80CFB04
mov r4, sp
adds r4, 0x2
strh r1, [r4]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
mov r10, r4
cmp r0, 0
@@ -11043,7 +11043,7 @@ sub_80CFB04: @ 80CFB04
adds r0, r1
movs r1, 0x2
strh r1, [r0, 0x10]
- ldr r3, _080CFB64 @ =gUnknown_03004B00
+ ldr r3, _080CFB64 @ =gBattleAnimArgs
ldrh r0, [r3]
negs r0, r0
strh r0, [r3]
@@ -11060,15 +11060,15 @@ sub_80CFB04: @ 80CFB04
b _080CFBCA
.align 2, 0
_080CFB60: .4byte gTasks
-_080CFB64: .4byte gUnknown_03004B00
+_080CFB64: .4byte gBattleAnimArgs
_080CFB68:
movs r0, 0x1
orrs r0, r1
strh r0, [r3, 0x4]
b _080CFBCA
_080CFB70:
- ldr r1, _080CFBB4 @ =gUnknown_02024A72
- ldr r0, _080CFBB8 @ =gUnknown_0202F7C9
+ ldr r1, _080CFBB4 @ =gBanksBySide
+ ldr r0, _080CFBB8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -11084,7 +11084,7 @@ _080CFB70:
lsls r0, 3
adds r0, r1
strh r3, [r0, 0x10]
- ldr r2, _080CFBC0 @ =gUnknown_03004B00
+ ldr r2, _080CFBC0 @ =gBattleAnimArgs
ldrh r0, [r2]
negs r0, r0
strh r0, [r2]
@@ -11101,17 +11101,17 @@ _080CFB70:
ands r0, r1
b _080CFBC8
.align 2, 0
-_080CFBB4: .4byte gUnknown_02024A72
-_080CFBB8: .4byte gUnknown_0202F7C9
+_080CFBB4: .4byte gBanksBySide
+_080CFBB8: .4byte gBattleAnimEnemyMonIndex
_080CFBBC: .4byte gTasks
-_080CFBC0: .4byte gUnknown_03004B00
+_080CFBC0: .4byte gBattleAnimArgs
_080CFBC4:
movs r0, 0x1
orrs r0, r1
_080CFBC8:
strh r0, [r2, 0x4]
_080CFBCA:
- ldr r5, _080CFC24 @ =gUnknown_0202F7C8
+ ldr r5, _080CFC24 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -11131,13 +11131,13 @@ _080CFBCA:
lsrs r0, 24
strh r0, [r4, 0x1C]
mov r9, r0
- ldr r0, _080CFC2C @ =gUnknown_020239F8
+ ldr r0, _080CFC2C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080CFC34
- ldr r4, _080CFC30 @ =gUnknown_0202F7C9
+ ldr r4, _080CFC30 @ =gBattleAnimEnemyMonIndex
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
@@ -11152,13 +11152,13 @@ _080CFBCA:
bl sub_807A3FC
b _080CFC56
.align 2, 0
-_080CFC24: .4byte gUnknown_0202F7C8
+_080CFC24: .4byte gBattleAnimPlayerMonIndex
_080CFC28: .4byte gTasks
-_080CFC2C: .4byte gUnknown_020239F8
-_080CFC30: .4byte gUnknown_0202F7C9
+_080CFC2C: .4byte gBattleTypeFlags
+_080CFC30: .4byte gBattleAnimEnemyMonIndex
_080CFC34:
mov r5, sp
- ldr r4, _080CFC90 @ =gUnknown_0202F7C9
+ ldr r4, _080CFC90 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -11180,7 +11180,7 @@ _080CFC56:
lsls r1, 3
adds r1, r0
mov r2, sp
- ldr r3, _080CFC98 @ =gUnknown_03004B00
+ ldr r3, _080CFC98 @ =gBattleAnimArgs
ldrh r0, [r3]
ldrh r2, [r2]
adds r0, r2
@@ -11203,9 +11203,9 @@ _080CFC56:
subs r0, r2, r1
b _080CFC9E
.align 2, 0
-_080CFC90: .4byte gUnknown_0202F7C9
+_080CFC90: .4byte gBattleAnimEnemyMonIndex
_080CFC94: .4byte gTasks
-_080CFC98: .4byte gUnknown_03004B00
+_080CFC98: .4byte gBattleAnimArgs
_080CFC9C:
subs r0, r1, r2
_080CFC9E:
@@ -11213,7 +11213,7 @@ _080CFC9E:
lsrs r0, 16
lsls r4, r0, 16
asrs r4, 16
- ldr r5, _080CFD14 @ =gUnknown_03004B00
+ ldr r5, _080CFD14 @ =gBattleAnimArgs
ldrh r1, [r5, 0x4]
movs r0, 0x2
negs r0, r0
@@ -11263,7 +11263,7 @@ _080CFC9E:
strh r1, [r6, 0x18]
b _080CFD3C
.align 2, 0
-_080CFD14: .4byte gUnknown_03004B00
+_080CFD14: .4byte gBattleAnimArgs
_080CFD18: .4byte gTasks
_080CFD1C:
subs r4, r1
@@ -11286,7 +11286,7 @@ _080CFD3C:
adds r0, r3, r7
lsls r0, 3
adds r5, r0, r1
- ldr r4, _080CFD80 @ =gUnknown_03004B00
+ ldr r4, _080CFD80 @ =gBattleAnimArgs
ldrh r0, [r4, 0x6]
strh r0, [r5, 0xE]
ldrh r1, [r4, 0x8]
@@ -11301,7 +11301,7 @@ _080CFD3C:
asrs r0, 16
cmp r0, 0x3F
ble _080CFDB4
- ldr r0, _080CFD84 @ =gUnknown_0202F7C9
+ ldr r0, _080CFD84 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -11314,15 +11314,15 @@ _080CFD3C:
b _080CFDC4
.align 2, 0
_080CFD7C: .4byte gTasks
-_080CFD80: .4byte gUnknown_03004B00
-_080CFD84: .4byte gUnknown_0202F7C9
+_080CFD80: .4byte gBattleAnimArgs
+_080CFD84: .4byte gBattleAnimEnemyMonIndex
_080CFD88: .4byte 0x0000ffc0
_080CFD8C:
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0x3F
ble _080CFDB4
- ldr r0, _080CFDAC @ =gUnknown_0202F7C9
+ ldr r0, _080CFDAC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -11334,10 +11334,10 @@ _080CFD8C:
adds r0, r1
b _080CFDC4
.align 2, 0
-_080CFDAC: .4byte gUnknown_0202F7C9
+_080CFDAC: .4byte gBattleAnimEnemyMonIndex
_080CFDB0: .4byte 0x0000ffc0
_080CFDB4:
- ldr r0, _080CFDF0 @ =gUnknown_0202F7C9
+ ldr r0, _080CFDF0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -11369,7 +11369,7 @@ _080CFDDC:
pop {r0}
bx r0
.align 2, 0
-_080CFDF0: .4byte gUnknown_0202F7C9
+_080CFDF0: .4byte gBattleAnimEnemyMonIndex
_080CFDF4: .4byte gTasks
_080CFDF8: .4byte sub_80CFA20
thumb_func_end sub_80CFB04
@@ -11466,7 +11466,7 @@ sub_80CFE9C: @ 80CFE9C
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r4, _080CFF3C @ =gUnknown_0202F7C9
+ ldr r4, _080CFF3C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -11476,15 +11476,15 @@ sub_80CFE9C: @ 80CFE9C
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080CFF40 @ =gUnknown_03004B00
+ ldr r4, _080CFF40 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x6]
adds r0, r1
lsls r0, 16
lsrs r7, r0, 16
- ldr r0, _080CFF44 @ =gUnknown_0202F7C8
+ ldr r0, _080CFF44 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080CFEE0
@@ -11536,9 +11536,9 @@ _080CFEE0:
pop {r0}
bx r0
.align 2, 0
-_080CFF3C: .4byte gUnknown_0202F7C9
-_080CFF40: .4byte gUnknown_03004B00
-_080CFF44: .4byte gUnknown_0202F7C8
+_080CFF3C: .4byte gBattleAnimEnemyMonIndex
+_080CFF40: .4byte gBattleAnimArgs
+_080CFF44: .4byte gBattleAnimPlayerMonIndex
_080CFF48: .4byte sub_8078C00
_080CFF4C: .4byte move_anim_8072740
thumb_func_end sub_80CFE9C
@@ -11568,9 +11568,9 @@ sub_80CFF68: @ 80CFF68
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x24]
- ldr r0, _080CFFD4 @ =gUnknown_0202F7C8
+ ldr r0, _080CFFD4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080CFF8C
@@ -11613,7 +11613,7 @@ _080CFFCC:
pop {r0}
bx r0
.align 2, 0
-_080CFFD4: .4byte gUnknown_0202F7C8
+_080CFFD4: .4byte gBattleAnimPlayerMonIndex
thumb_func_end sub_80CFF68
thumb_func_start sub_80CFFD8
@@ -11624,7 +11624,7 @@ sub_80CFFD8: @ 80CFFD8
bl sub_80787B0
movs r0, 0x14
strh r0, [r4, 0x2E]
- ldr r5, _080D0024 @ =gUnknown_0202F7C9
+ ldr r5, _080D0024 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -11652,7 +11652,7 @@ sub_80CFFD8: @ 80CFFD8
pop {r0}
bx r0
.align 2, 0
-_080D0024: .4byte gUnknown_0202F7C9
+_080D0024: .4byte gBattleAnimEnemyMonIndex
_080D0028: .4byte sub_8078B34
_080D002C: .4byte sub_80D0030
thumb_func_end sub_80CFFD8
@@ -11781,9 +11781,9 @@ sub_80D0118: @ 80D0118
adds r4, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r0, _080D0168 @ =gUnknown_0202F7C8
+ ldr r0, _080D0168 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D0136
@@ -11791,7 +11791,7 @@ sub_80D0118: @ 80D0118
adds r0, 0x10
strh r0, [r4, 0x22]
_080D0136:
- ldr r1, _080D016C @ =gUnknown_03004B00
+ ldr r1, _080D016C @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x4]
@@ -11814,8 +11814,8 @@ _080D0136:
pop {r0}
bx r0
.align 2, 0
-_080D0168: .4byte gUnknown_0202F7C8
-_080D016C: .4byte gUnknown_03004B00
+_080D0168: .4byte gBattleAnimPlayerMonIndex
+_080D016C: .4byte gBattleAnimArgs
_080D0170: .4byte sub_8078114
_080D0174: .4byte move_anim_8072740
thumb_func_end sub_80D0118
@@ -11831,7 +11831,7 @@ sub_80D0178: @ 80D0178
movs r0, 0x10
mov r8, r0
ldr r6, _080D01F8 @ =0x0000fff0
- ldr r0, _080D01FC @ =gUnknown_03004B00
+ ldr r0, _080D01FC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -11856,7 +11856,7 @@ _080D01A4:
strh r0, [r5, 0x22]
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, _080D0200 @ =gUnknown_0202F7C9
+ ldr r4, _080D0200 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -11884,8 +11884,8 @@ _080D01A4:
.align 2, 0
_080D01F4: .4byte 0x0000ffe0
_080D01F8: .4byte 0x0000fff0
-_080D01FC: .4byte gUnknown_03004B00
-_080D0200: .4byte gUnknown_0202F7C9
+_080D01FC: .4byte gBattleAnimArgs
+_080D0200: .4byte gBattleAnimEnemyMonIndex
_080D0204: .4byte sub_8078B34
_080D0208: .4byte sub_80D020C
thumb_func_end sub_80D0178
@@ -11920,7 +11920,7 @@ sub_80D0228: @ 80D0228
movs r2, 0x10
mov r9, r2
ldr r6, _080D02C0 @ =0x0000fff0
- ldr r7, _080D02C4 @ =gUnknown_03004B00
+ ldr r7, _080D02C4 @ =gBattleAnimArgs
ldrh r1, [r7]
movs r2, 0
ldrsh r0, [r7, r2]
@@ -11949,7 +11949,7 @@ _080D025C:
movs r0, 0x6
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
- ldr r4, _080D02C8 @ =gUnknown_0202F7C9
+ ldr r4, _080D02C8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -11983,8 +11983,8 @@ _080D025C:
.align 2, 0
_080D02BC: .4byte 0x0000ffe0
_080D02C0: .4byte 0x0000fff0
-_080D02C4: .4byte gUnknown_03004B00
-_080D02C8: .4byte gUnknown_0202F7C9
+_080D02C4: .4byte gBattleAnimArgs
+_080D02C8: .4byte gBattleAnimEnemyMonIndex
_080D02CC: .4byte sub_80D02D0
thumb_func_end sub_80D0228
@@ -12202,7 +12202,7 @@ sub_80D0428: @ 80D0428
movs r1, 0x1
bl sub_8079108
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D0478:
pop {r4,r5}
pop {r0}
@@ -12238,7 +12238,7 @@ sub_80D0488: @ 80D0488
strh r0, [r4, 0x10]
strh r5, [r4, 0x12]
strh r5, [r4, 0x14]
- ldr r0, _080D04D8 @ =gUnknown_0202F7C8
+ ldr r0, _080D04D8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -12251,7 +12251,7 @@ sub_80D0488: @ 80D0488
bx r0
.align 2, 0
_080D04D4: .4byte gTasks
-_080D04D8: .4byte gUnknown_0202F7C8
+_080D04D8: .4byte gBattleAnimPlayerMonIndex
_080D04DC: .4byte sub_80D04E0
thumb_func_end sub_80D0488
@@ -12403,7 +12403,7 @@ _080D05EC:
movs r1, 0
strh r1, [r0, 0x26]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D060A:
pop {r4,r5}
pop {r0}
@@ -12580,17 +12580,17 @@ sub_80D074C: @ 80D074C
lsls r0, 3
ldr r1, _080D0770 @ =gTasks
adds r4, r0, r1
- ldr r5, _080D0774 @ =gUnknown_03004B00
+ ldr r5, _080D0774 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080D0778
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080D079E
.align 2, 0
_080D0770: .4byte gTasks
-_080D0774: .4byte gUnknown_03004B00
+_080D0774: .4byte gBattleAnimArgs
_080D0778:
ldrb r0, [r5]
bl obj_id_for_side_relative_to_move
@@ -12746,7 +12746,7 @@ _080D0878:
adds r0, r2
strh r5, [r0, 0x26]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080D08BC
.align 2, 0
_080D08AC: .4byte gSprites
@@ -12808,7 +12808,7 @@ sub_80D0904: @ 80D0904
cmp r0, 0
bne _080D0924
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D0924:
pop {r4}
pop {r0}
@@ -12821,9 +12821,9 @@ _080D092C: .4byte gTasks
sub_80D0930: @ 80D0930
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D0960 @ =gUnknown_0202F7C8
+ ldr r5, _080D0960 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D0964
@@ -12840,7 +12840,7 @@ sub_80D0930: @ 80D0930
movs r0, 0x40
b _080D097E
.align 2, 0
-_080D0960: .4byte gUnknown_0202F7C8
+_080D0960: .4byte gBattleAnimPlayerMonIndex
_080D0964:
adds r0, r4, 0
movs r1, 0x1
@@ -12855,7 +12855,7 @@ _080D0964:
ldr r0, _080D09B0 @ =0x0000ffc0
_080D097E:
strh r0, [r4, 0x30]
- ldr r0, _080D09B4 @ =gUnknown_0202F7C8
+ ldr r0, _080D09B4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -12878,7 +12878,7 @@ _080D097E:
bx r0
.align 2, 0
_080D09B0: .4byte 0x0000ffc0
-_080D09B4: .4byte gUnknown_0202F7C8
+_080D09B4: .4byte gBattleAnimPlayerMonIndex
_080D09B8: .4byte move_anim_8072740
_080D09BC: .4byte sub_8078394
thumb_func_end sub_80D0930
@@ -12887,27 +12887,27 @@ _080D09BC: .4byte sub_8078394
sub_80D09C0: @ 80D09C0
push {r4-r6,lr}
adds r6, r0, 0
- ldr r0, _080D09D4 @ =gUnknown_03004B00
+ ldr r0, _080D09D4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D09DC
- ldr r0, _080D09D8 @ =gUnknown_0202F7C8
+ ldr r0, _080D09D8 @ =gBattleAnimPlayerMonIndex
b _080D09DE
.align 2, 0
-_080D09D4: .4byte gUnknown_03004B00
-_080D09D8: .4byte gUnknown_0202F7C8
+_080D09D4: .4byte gBattleAnimArgs
+_080D09D8: .4byte gBattleAnimPlayerMonIndex
_080D09DC:
- ldr r0, _080D0A3C @ =gUnknown_0202F7C9
+ ldr r0, _080D0A3C @ =gBattleAnimEnemyMonIndex
_080D09DE:
ldrb r5, [r0]
adds r0, r5, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080D09F8
- ldr r1, _080D0A40 @ =gUnknown_03004B00
+ ldr r1, _080D0A40 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r1, r2]
negs r0, r0
@@ -12917,7 +12917,7 @@ _080D09F8:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D0A40 @ =gUnknown_03004B00
+ ldr r4, _080D0A40 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
@@ -12946,8 +12946,8 @@ _080D0A2A:
pop {r0}
bx r0
.align 2, 0
-_080D0A3C: .4byte gUnknown_0202F7C9
-_080D0A40: .4byte gUnknown_03004B00
+_080D0A3C: .4byte gBattleAnimEnemyMonIndex
+_080D0A40: .4byte gBattleAnimArgs
_080D0A44: .4byte move_anim_8074EE0
_080D0A48: .4byte sub_80785E4
thumb_func_end sub_80D09C0
@@ -12999,7 +12999,7 @@ sub_80D0A8C: @ 80D0A8C
cmp r0, 0
bne _080D0AAC
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D0AAC:
pop {r4}
pop {r0}
@@ -13050,9 +13050,9 @@ sub_80D0AB8: @ 80D0AB8
strh r2, [r4, 0x18]
movs r0, 0x2
strh r0, [r4, 0x1A]
- ldr r0, _080D0B34 @ =gUnknown_0202F7C8
+ ldr r0, _080D0B34 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -13070,7 +13070,7 @@ _080D0B22:
.align 2, 0
_080D0B2C: .4byte gTasks
_080D0B30: .4byte gSprites
-_080D0B34: .4byte gUnknown_0202F7C8
+_080D0B34: .4byte gBattleAnimPlayerMonIndex
_080D0B38: .4byte sub_80D0B3C
thumb_func_end sub_80D0AB8
@@ -13242,7 +13242,7 @@ _080D0C5C:
strh r1, [r0, 0x22]
_080D0C7A:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D0C80:
pop {r4,r5}
pop {r0}
@@ -13260,7 +13260,7 @@ sub_80D0C88: @ 80D0C88
lsls r1, 3
ldr r0, _080D0CD8 @ =gTasks
adds r5, r1, r0
- ldr r4, _080D0CDC @ =gUnknown_0202F7C9
+ ldr r4, _080D0CDC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
bl sub_8077FC0
lsls r0, 24
@@ -13278,7 +13278,7 @@ sub_80D0C88: @ 80D0C88
bl sub_807A100
strh r0, [r5, 0x26]
ldrb r0, [r4]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -13290,7 +13290,7 @@ sub_80D0C88: @ 80D0C88
b _080D0CF0
.align 2, 0
_080D0CD8: .4byte gTasks
-_080D0CDC: .4byte gUnknown_0202F7C9
+_080D0CDC: .4byte gBattleAnimEnemyMonIndex
_080D0CE0: .4byte gUnknown_030042C0
_080D0CE4: .4byte REG_BG1HOFS
_080D0CE8:
@@ -13458,7 +13458,7 @@ _080D0E04:
movs r0, 0x3
strb r0, [r1, 0x15]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D0E22:
pop {r4}
pop {r0}
@@ -13472,7 +13472,7 @@ _080D0E2C: .4byte gUnknown_03004DC0
sub_80D0E30: @ 80D0E30
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _080D0E84 @ =gUnknown_0202F7C9
+ ldr r6, _080D0E84 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r6]
movs r1, 0
bl sub_8077ABC
@@ -13509,7 +13509,7 @@ sub_80D0E30: @ 80D0E30
pop {r0}
bx r0
.align 2, 0
-_080D0E84: .4byte gUnknown_0202F7C9
+_080D0E84: .4byte gBattleAnimEnemyMonIndex
_080D0E88: .4byte sub_80D0E8C
thumb_func_end sub_80D0E30
@@ -13702,27 +13702,27 @@ sub_80D0FD8: @ 80D0FD8
mov r1, sp
adds r1, 0x2
strh r5, [r1]
- ldr r0, _080D0FFC @ =gUnknown_03004B00
+ ldr r0, _080D0FFC @ =gBattleAnimArgs
movs r3, 0x4
ldrsh r2, [r0, r3]
adds r7, r1, 0
adds r1, r0, 0
cmp r2, 0
bne _080D1004
- ldr r0, _080D1000 @ =gUnknown_0202F7C8
+ ldr r0, _080D1000 @ =gBattleAnimPlayerMonIndex
b _080D1006
.align 2, 0
-_080D0FFC: .4byte gUnknown_03004B00
-_080D1000: .4byte gUnknown_0202F7C8
+_080D0FFC: .4byte gBattleAnimArgs
+_080D1000: .4byte gBattleAnimPlayerMonIndex
_080D1004:
- ldr r0, _080D1040 @ =gUnknown_0202F7C9
+ ldr r0, _080D1040 @ =gBattleAnimEnemyMonIndex
_080D1006:
ldrb r5, [r0]
ldrb r1, [r1, 0x6]
movs r0, 0x1
adds r4, r0, 0
eors r4, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080D107E
@@ -13744,7 +13744,7 @@ _080D1006:
movs r1, 0
b _080D1048
.align 2, 0
-_080D1040: .4byte gUnknown_0202F7C9
+_080D1040: .4byte gBattleAnimEnemyMonIndex
_080D1044:
adds r0, r5, 0
movs r1, 0x2
@@ -13753,11 +13753,11 @@ _080D1048:
lsls r0, 24
lsrs r4, r0, 24
adds r0, r5, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D1074
- ldr r2, _080D1070 @ =gUnknown_03004B00
+ ldr r2, _080D1070 @ =gBattleAnimArgs
mov r0, sp
ldrh r1, [r0]
subs r1, r4
@@ -13767,9 +13767,9 @@ _080D1048:
strh r0, [r2]
b _080D107E
.align 2, 0
-_080D1070: .4byte gUnknown_03004B00
+_080D1070: .4byte gBattleAnimArgs
_080D1074:
- ldr r1, _080D1090 @ =gUnknown_03004B00
+ ldr r1, _080D1090 @ =gBattleAnimArgs
mov r0, sp
ldrh r0, [r0]
subs r0, r4
@@ -13784,7 +13784,7 @@ _080D107E:
pop {r0}
bx r0
.align 2, 0
-_080D1090: .4byte gUnknown_03004B00
+_080D1090: .4byte gBattleAnimArgs
_080D1094: .4byte sub_80793C4
thumb_func_end sub_80D0FD8
@@ -13821,27 +13821,27 @@ sub_80D10B8: @ 80D10B8
mov r1, sp
adds r1, 0x2
strh r6, [r1]
- ldr r0, _080D10E4 @ =gUnknown_03004B00
+ ldr r0, _080D10E4 @ =gBattleAnimArgs
movs r2, 0xA
ldrsh r0, [r0, r2]
cmp r0, 0
bne _080D10F0
- ldr r0, _080D10E8 @ =gUnknown_0202F7C8
+ ldr r0, _080D10E8 @ =gBattleAnimPlayerMonIndex
ldrb r7, [r0]
- ldr r0, _080D10EC @ =gUnknown_0202F7C9
+ ldr r0, _080D10EC @ =gBattleAnimEnemyMonIndex
b _080D10F6
.align 2, 0
-_080D10E4: .4byte gUnknown_03004B00
-_080D10E8: .4byte gUnknown_0202F7C8
-_080D10EC: .4byte gUnknown_0202F7C9
+_080D10E4: .4byte gBattleAnimArgs
+_080D10E8: .4byte gBattleAnimPlayerMonIndex
+_080D10EC: .4byte gBattleAnimEnemyMonIndex
_080D10F0:
- ldr r0, _080D1110 @ =gUnknown_0202F7C9
+ ldr r0, _080D1110 @ =gBattleAnimEnemyMonIndex
ldrb r7, [r0]
- ldr r0, _080D1114 @ =gUnknown_0202F7C8
+ ldr r0, _080D1114 @ =gBattleAnimPlayerMonIndex
_080D10F6:
ldrb r0, [r0]
mov r8, r0
- ldr r0, _080D1118 @ =gUnknown_03004B00
+ ldr r0, _080D1118 @ =gBattleAnimArgs
movs r3, 0xC
ldrsh r0, [r0, r3]
cmp r0, 0
@@ -13852,9 +13852,9 @@ _080D10F6:
str r1, [sp, 0x4]
b _080D1124
.align 2, 0
-_080D1110: .4byte gUnknown_0202F7C9
-_080D1114: .4byte gUnknown_0202F7C8
-_080D1118: .4byte gUnknown_03004B00
+_080D1110: .4byte gBattleAnimEnemyMonIndex
+_080D1114: .4byte gBattleAnimPlayerMonIndex
+_080D1118: .4byte gBattleAnimArgs
_080D111C:
movs r2, 0x2
mov r10, r2
@@ -13862,7 +13862,7 @@ _080D111C:
str r3, [sp, 0x4]
_080D1124:
adds r0, r7, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D1180
@@ -13870,7 +13870,7 @@ _080D1124:
mov r1, r10
bl sub_8077ABC
lsls r0, 24
- ldr r1, _080D1164 @ =gUnknown_03004B00
+ ldr r1, _080D1164 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r1]
adds r0, r1
@@ -13886,28 +13886,28 @@ _080D1124:
cmp r0, 0
beq _080D1170
ldr r2, _080D1168 @ =gSprites
- ldr r0, _080D116C @ =gUnknown_02024BE0
+ ldr r0, _080D116C @ =gObjectBankIDs
adds r0, r4, r0
b _080D120A
.align 2, 0
-_080D1164: .4byte gUnknown_03004B00
+_080D1164: .4byte gBattleAnimArgs
_080D1168: .4byte gSprites
-_080D116C: .4byte gUnknown_02024BE0
+_080D116C: .4byte gObjectBankIDs
_080D1170:
ldr r2, _080D1178 @ =gSprites
- ldr r0, _080D117C @ =gUnknown_02024BE0
+ ldr r0, _080D117C @ =gObjectBankIDs
add r0, r8
b _080D120A
.align 2, 0
_080D1178: .4byte gSprites
-_080D117C: .4byte gUnknown_02024BE0
+_080D117C: .4byte gObjectBankIDs
_080D1180:
adds r0, r7, 0
mov r1, r10
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
- ldr r1, _080D11EC @ =gUnknown_03004B00
+ ldr r1, _080D11EC @ =gBattleAnimArgs
ldrh r1, [r1]
subs r0, r1
lsls r0, 16
@@ -13930,7 +13930,7 @@ _080D1180:
cmp r0, 0
beq _080D1204
ldr r3, _080D11F8 @ =gSprites
- ldr r2, _080D11FC @ =gUnknown_02024BE0
+ ldr r2, _080D11FC @ =gObjectBankIDs
adds r0, r7, r2
ldrb r1, [r0]
lsls r0, r1, 4
@@ -13955,17 +13955,17 @@ _080D1180:
adds r0, 0x1
b _080D121A
.align 2, 0
-_080D11EC: .4byte gUnknown_03004B00
+_080D11EC: .4byte gBattleAnimArgs
_080D11F0: .4byte gMain
_080D11F4: .4byte 0x0000043d
_080D11F8: .4byte gSprites
-_080D11FC: .4byte gUnknown_02024BE0
+_080D11FC: .4byte gObjectBankIDs
_080D1200:
adds r0, r6, 0
b _080D1214
_080D1204:
ldr r2, _080D1268 @ =gSprites
- ldr r0, _080D126C @ =gUnknown_02024BE0
+ ldr r0, _080D126C @ =gObjectBankIDs
adds r0, r7, r0
_080D120A:
ldrb r1, [r0]
@@ -13985,7 +13985,7 @@ _080D121A:
ldr r1, [sp, 0x4]
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D1270 @ =gUnknown_03004B00
+ ldr r4, _080D1270 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
@@ -14015,8 +14015,8 @@ _080D121A:
b _080D129C
.align 2, 0
_080D1268: .4byte gSprites
-_080D126C: .4byte gUnknown_02024BE0
-_080D1270: .4byte gUnknown_03004B00
+_080D126C: .4byte gObjectBankIDs
+_080D1270: .4byte gBattleAnimArgs
_080D1274: .4byte gMain
_080D1278: .4byte 0x0000043d
_080D127C:
@@ -14036,13 +14036,13 @@ _080D127C:
strh r0, [r3, 0x2]
_080D129C:
mov r0, r8
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D12C0
mov r3, sp
mov r2, sp
- ldr r1, _080D12BC @ =gUnknown_03004B00
+ ldr r1, _080D12BC @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
ldrh r2, [r2]
adds r0, r2
@@ -14050,11 +14050,11 @@ _080D129C:
adds r2, r1, 0
b _080D12CE
.align 2, 0
-_080D12BC: .4byte gUnknown_03004B00
+_080D12BC: .4byte gBattleAnimArgs
_080D12C0:
mov r3, sp
mov r0, sp
- ldr r2, _080D1310 @ =gUnknown_03004B00
+ ldr r2, _080D1310 @ =gBattleAnimArgs
ldrh r0, [r0]
ldrh r1, [r2, 0x6]
subs r0, r1
@@ -14092,7 +14092,7 @@ _080D12CE:
pop {r0}
bx r0
.align 2, 0
-_080D1310: .4byte gUnknown_03004B00
+_080D1310: .4byte gBattleAnimArgs
_080D1314: .4byte sub_80D1098
thumb_func_end sub_80D10B8
@@ -14110,7 +14110,7 @@ sub_80D1318: @ 80D1318
ldr r1, _080D135C @ =0x01010000
adds r0, r1
lsrs r0, 16
- ldr r1, _080D1360 @ =gUnknown_03004B00
+ ldr r1, _080D1360 @ =gBattleAnimArgs
ldrb r2, [r1, 0xA]
ldrh r3, [r1, 0x8]
movs r1, 0xF
@@ -14129,7 +14129,7 @@ _080D133E:
.align 2, 0
_080D1358: .4byte 0x000027db
_080D135C: .4byte 0x01010000
-_080D1360: .4byte gUnknown_03004B00
+_080D1360: .4byte gBattleAnimArgs
_080D1364: .4byte sub_80793C4
thumb_func_end sub_80D1318
@@ -14139,9 +14139,9 @@ sub_80D1368: @ 80D1368
adds r4, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r0, _080D139C @ =gUnknown_0202F7C8
+ ldr r0, _080D139C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
movs r1, 0xA0
cmp r0, 0
@@ -14152,7 +14152,7 @@ _080D1384:
lsls r0, 2
strh r0, [r4, 0x2E]
strh r1, [r4, 0x30]
- ldr r0, _080D13A4 @ =gUnknown_03004B00
+ ldr r0, _080D13A4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x3C]
ldr r0, _080D13A8 @ =sub_80D13AC
@@ -14161,9 +14161,9 @@ _080D1384:
pop {r0}
bx r0
.align 2, 0
-_080D139C: .4byte gUnknown_0202F7C8
+_080D139C: .4byte gBattleAnimPlayerMonIndex
_080D13A0: .4byte 0x0000ff60
-_080D13A4: .4byte gUnknown_03004B00
+_080D13A4: .4byte gBattleAnimArgs
_080D13A8: .4byte sub_80D13AC
thumb_func_end sub_80D1368
@@ -14184,9 +14184,9 @@ sub_80D13AC: @ 80D13AC
strh r0, [r4, 0x24]
subs r2, 0x20
strh r2, [r4, 0x2E]
- ldr r0, _080D1418 @ =gUnknown_0202F7C8
+ ldr r0, _080D1418 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
movs r1, 0xA0
cmp r0, 0
@@ -14223,7 +14223,7 @@ _080D1410:
pop {r0}
bx r0
.align 2, 0
-_080D1418: .4byte gUnknown_0202F7C8
+_080D1418: .4byte gBattleAnimPlayerMonIndex
_080D141C: .4byte 0x0000ff60
_080D1420: .4byte sub_80D1424
thumb_func_end sub_80D13AC
@@ -14391,7 +14391,7 @@ _080D1548: .4byte sub_80D154C
sub_80D154C: @ 80D154C
push {lr}
adds r3, r0, 0
- ldr r0, _080D1574 @ =gUnknown_03004B00
+ ldr r0, _080D1574 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080D1578 @ =0x0000ffff
cmp r1, r0
@@ -14409,7 +14409,7 @@ sub_80D154C: @ 80D154C
ldr r0, _080D157C @ =sub_80D158C
b _080D1582
.align 2, 0
-_080D1574: .4byte gUnknown_03004B00
+_080D1574: .4byte gBattleAnimArgs
_080D1578: .4byte 0x0000ffff
_080D157C: .4byte sub_80D158C
_080D1580:
@@ -14504,7 +14504,7 @@ sub_80D15E0: @ 80D15E0
orrs r1, r2
strb r1, [r0]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D162A:
pop {r4,r5}
pop {r0}
@@ -14531,9 +14531,9 @@ sub_80D1638: @ 80D1638
strh r0, [r4, 0xE]
movs r0, 0x3
strh r0, [r4, 0x20]
- ldr r0, _080D1670 @ =gUnknown_0202F7C9
+ ldr r0, _080D1670 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D1678
@@ -14543,7 +14543,7 @@ sub_80D1638: @ 80D1638
b _080D167E
.align 2, 0
_080D166C: .4byte gTasks
-_080D1670: .4byte gUnknown_0202F7C9
+_080D1670: .4byte gBattleAnimEnemyMonIndex
_080D1674: .4byte 0x0000ffff
_080D1678:
movs r0, 0x1
@@ -14714,7 +14714,7 @@ _080D178A:
cmp r0, 0
bne _080D17BA
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D17BA:
pop {r4,r5}
pop {r0}
@@ -14859,7 +14859,7 @@ _080D18B0:
ands r1, r2
strb r1, [r0]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D18CE:
pop {r4-r6}
pop {r0}
@@ -14888,7 +14888,7 @@ sub_80D18D4: @ 80D18D4
strh r0, [r4, 0x16]
strh r0, [r4, 0x18]
strh r0, [r4, 0x22]
- ldr r5, _080D1928 @ =gUnknown_0202F7C8
+ ldr r5, _080D1928 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -14908,7 +14908,7 @@ sub_80D18D4: @ 80D18D4
bx r0
.align 2, 0
_080D1924: .4byte gTasks
-_080D1928: .4byte gUnknown_0202F7C8
+_080D1928: .4byte gBattleAnimPlayerMonIndex
_080D192C: .4byte sub_80D1930
thumb_func_end sub_80D18D4
@@ -15072,7 +15072,7 @@ _080D1A5C:
cmp r0, 0
bne _080D1A6A
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D1A6A:
pop {r4-r6}
pop {r0}
@@ -15162,7 +15162,7 @@ _080D1AF4:
cmp r5, 0x4
ble _080D1AF4
ldr r4, _080D1B3C @ =gBattleAnimSpritePalette_206
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
ldr r1, _080D1B40 @ =0x02018000
cmp r0, 0
@@ -15175,7 +15175,7 @@ _080D1B1C:
movs r5, 0
_080D1B24:
lsls r4, r5, 5
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080D1B4C
@@ -15207,7 +15207,7 @@ _080D1B4E:
cmp r5, 0x4
ble _080D1B24
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0x8
pop {r4-r6}
pop {r0}
@@ -15231,7 +15231,7 @@ _080D1B8A:
cmp r4, 0
bge _080D1B8A
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
@@ -15293,18 +15293,18 @@ sub_80D1C08: @ 80D1C08
adds r5, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r6, _080D1C70 @ =gUnknown_0202F7C8
+ ldr r6, _080D1C70 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r6]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D1C28
- ldr r1, _080D1C74 @ =gUnknown_03004B00
+ ldr r1, _080D1C74 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080D1C28:
- ldr r4, _080D1C74 @ =gUnknown_03004B00
+ ldr r4, _080D1C74 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r5, 0x2E]
ldrb r0, [r6]
@@ -15336,8 +15336,8 @@ _080D1C28:
pop {r0}
bx r0
.align 2, 0
-_080D1C70: .4byte gUnknown_0202F7C8
-_080D1C74: .4byte gUnknown_03004B00
+_080D1C70: .4byte gBattleAnimPlayerMonIndex
+_080D1C74: .4byte gBattleAnimArgs
_080D1C78: .4byte sub_8078B34
_080D1C7C: .4byte move_anim_8072740
thumb_func_end sub_80D1C08
@@ -15390,7 +15390,7 @@ sub_80D1CD0: @ 80D1CD0
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
movs r2, 0xF0
cmp r0, 0
@@ -15549,7 +15549,7 @@ _080D1DF8:
adds r0, 0x4
strh r4, [r0]
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D1E1E:
add sp, 0xC
pop {r4,r5}
@@ -15622,7 +15622,7 @@ _080D1E94:
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D1EBC:
pop {r4-r6}
pop {r0}
@@ -15691,7 +15691,7 @@ _080D1F24:
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D1F4C:
pop {r4-r6}
pop {r0}
@@ -15710,7 +15710,7 @@ sub_80D1F58: @ 80D1F58
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, _080D1F9C @ =gUnknown_0202F7C9
+ ldr r5, _080D1F9C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -15733,7 +15733,7 @@ sub_80D1F58: @ 80D1F58
pop {r0}
bx r0
.align 2, 0
-_080D1F9C: .4byte gUnknown_0202F7C9
+_080D1F9C: .4byte gBattleAnimEnemyMonIndex
_080D1FA0: .4byte sub_80D1FA4
thumb_func_end sub_80D1F58
@@ -15776,7 +15776,7 @@ sub_80D1FDC: @ 80D1FDC
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2000
- ldr r1, _080D1FFC @ =gUnknown_03004B00
+ ldr r1, _080D1FFC @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x2]
@@ -15785,7 +15785,7 @@ sub_80D1FDC: @ 80D1FDC
strh r0, [r4, 0x2E]
b _080D205C
.align 2, 0
-_080D1FFC: .4byte gUnknown_03004B00
+_080D1FFC: .4byte gBattleAnimArgs
_080D2000:
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x36]
@@ -15841,7 +15841,7 @@ _080D205C:
thumb_func_start sub_80D2064
sub_80D2064: @ 80D2064
push {lr}
- ldr r2, _080D2088 @ =gUnknown_03004B00
+ ldr r2, _080D2088 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x20]
movs r1, 0xA0
@@ -15857,7 +15857,7 @@ sub_80D2064: @ 80D2064
pop {r0}
bx r0
.align 2, 0
-_080D2088: .4byte gUnknown_03004B00
+_080D2088: .4byte gBattleAnimArgs
_080D208C: .4byte sub_80782D8
_080D2090: .4byte sub_80D2094
thumb_func_end sub_80D2064
@@ -15943,7 +15943,7 @@ sub_80D2100: @ 80D2100
movs r0, 0x3F
ands r0, r1
strb r0, [r4, 0x1]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080D2144
@@ -15987,7 +15987,7 @@ _080D2144:
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080D21A4
@@ -16200,7 +16200,7 @@ _080D230E:
ldr r1, _080D23A4 @ =0x85000200
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080D235C
@@ -16234,7 +16234,7 @@ _080D236C:
orrs r0, r1
strb r0, [r2]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D238C:
add sp, 0x10
pop {r3-r5}
@@ -16280,7 +16280,7 @@ sub_80D23B4: @ 80D23B4
movs r0, 0x3F
ands r0, r1
strb r0, [r4, 0x1]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080D23FE
@@ -16313,7 +16313,7 @@ _080D23FE:
ldr r0, _080D2454 @ =0x85000400
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080D245C
@@ -16330,9 +16330,9 @@ _080D2450: .4byte 0x040000d4
_080D2454: .4byte 0x85000400
_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest
_080D245C:
- ldr r0, _080D2478 @ =gUnknown_0202F7C9
+ ldr r0, _080D2478 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -16343,7 +16343,7 @@ _080D246E:
bl LZDecompressVram
b _080D2488
.align 2, 0
-_080D2478: .4byte gUnknown_0202F7C9
+_080D2478: .4byte gBattleAnimEnemyMonIndex
_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer
_080D2480:
ldr r0, _080D24CC @ =gBattleAnimBackgroundTilemap_ScaryFaceOpponent
@@ -16359,7 +16359,7 @@ _080D2488:
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080D24B6
@@ -16564,7 +16564,7 @@ _080D25FE:
ldr r1, _080D2694 @ =0x85000200
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080D264C
@@ -16598,7 +16598,7 @@ _080D265C:
orrs r0, r1
strb r0, [r2]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D267C:
add sp, 0x10
pop {r3-r5}
@@ -16621,7 +16621,7 @@ _080D26A0: .4byte REG_BLDCNT
sub_80D26A4: @ 80D26A4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D26F8 @ =gUnknown_0202F7C8
+ ldr r5, _080D26F8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -16640,7 +16640,7 @@ sub_80D26A4: @ 80D26A4
movs r1, 0x80
orrs r0, r1
strb r0, [r2]
- ldr r1, _080D26FC @ =gUnknown_03004B00
+ ldr r1, _080D26FC @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x2]
@@ -16658,8 +16658,8 @@ sub_80D26A4: @ 80D26A4
pop {r0}
bx r0
.align 2, 0
-_080D26F8: .4byte gUnknown_0202F7C8
-_080D26FC: .4byte gUnknown_03004B00
+_080D26F8: .4byte gBattleAnimPlayerMonIndex
+_080D26FC: .4byte gBattleAnimArgs
_080D2700: .4byte sub_80D2704
thumb_func_end sub_80D26A4
@@ -16759,7 +16759,7 @@ _080D2790:
movs r0, 0x1
strh r0, [r4, 0x38]
_080D27C0:
- ldr r0, _080D27D8 @ =gUnknown_03004B00
+ ldr r0, _080D27D8 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080D27DC @ =0x0000ffff
cmp r1, r0
@@ -16771,7 +16771,7 @@ _080D27D0:
pop {r0}
bx r0
.align 2, 0
-_080D27D8: .4byte gUnknown_03004B00
+_080D27D8: .4byte gBattleAnimArgs
_080D27DC: .4byte 0x0000ffff
thumb_func_end sub_80D2704
@@ -16779,7 +16779,7 @@ _080D27DC: .4byte 0x0000ffff
sub_80D27E0: @ 80D27E0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D2828 @ =gUnknown_0202F7C8
+ ldr r4, _080D2828 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -16792,7 +16792,7 @@ sub_80D27E0: @ 80D27E0
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080D282C @ =gUnknown_03004B00
+ ldr r4, _080D282C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0xA
@@ -16809,8 +16809,8 @@ sub_80D27E0: @ 80D27E0
pop {r0}
bx r0
.align 2, 0
-_080D2828: .4byte gUnknown_0202F7C8
-_080D282C: .4byte gUnknown_03004B00
+_080D2828: .4byte gBattleAnimPlayerMonIndex
+_080D282C: .4byte gBattleAnimArgs
_080D2830: .4byte sub_80D2834
thumb_func_end sub_80D27E0
@@ -16887,7 +16887,7 @@ _080D28A8:
sub_80D28AC: @ 80D28AC
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D28F8 @ =gUnknown_0202F7C8
+ ldr r4, _080D28F8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -16900,7 +16900,7 @@ sub_80D28AC: @ 80D28AC
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080D28FC @ =gUnknown_03004B00
+ ldr r4, _080D28FC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
movs r1, 0xA
@@ -16919,8 +16919,8 @@ sub_80D28AC: @ 80D28AC
pop {r0}
bx r0
.align 2, 0
-_080D28F8: .4byte gUnknown_0202F7C8
-_080D28FC: .4byte gUnknown_03004B00
+_080D28F8: .4byte gBattleAnimPlayerMonIndex
+_080D28FC: .4byte gBattleAnimArgs
_080D2900: .4byte sub_80D287C
thumb_func_end sub_80D28AC
@@ -16964,7 +16964,7 @@ sub_80D2938: @ 80D2938
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2956
- ldr r0, _080D29C8 @ =gUnknown_03004B00
+ ldr r0, _080D29C8 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -17032,7 +17032,7 @@ _080D29C2:
pop {r0}
bx r0
.align 2, 0
-_080D29C8: .4byte gUnknown_03004B00
+_080D29C8: .4byte gBattleAnimArgs
thumb_func_end sub_80D2938
thumb_func_start sub_80D29CC
@@ -17101,7 +17101,7 @@ sub_80D2A38: @ 80D2A38
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2A5C
- ldr r1, _080D2A58 @ =gUnknown_03004B00
+ ldr r1, _080D2A58 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x2]
@@ -17110,7 +17110,7 @@ sub_80D2A38: @ 80D2A38
strh r0, [r4, 0x2E]
b _080D2AB0
.align 2, 0
-_080D2A58: .4byte gUnknown_03004B00
+_080D2A58: .4byte gBattleAnimArgs
_080D2A5C:
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x36]
@@ -17167,7 +17167,7 @@ sub_80D2ABC: @ 80D2ABC
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2AF6
- ldr r1, _080D2BB8 @ =gUnknown_03004B00
+ ldr r1, _080D2BB8 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -17179,7 +17179,7 @@ sub_80D2ABC: @ 80D2ABC
adds r0, r4, 0
movs r1, 0
bl StartSpriteAnim
- ldr r0, _080D2BBC @ =gUnknown_0202F7C9
+ ldr r0, _080D2BBC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
@@ -17290,8 +17290,8 @@ _080D2B80:
strb r0, [r3]
b _080D2BD2
.align 2, 0
-_080D2BB8: .4byte gUnknown_03004B00
-_080D2BBC: .4byte gUnknown_0202F7C9
+_080D2BB8: .4byte gBattleAnimArgs
+_080D2BBC: .4byte gBattleAnimEnemyMonIndex
_080D2BC0: .4byte 0x0000ffff
_080D2BC4:
adds r2, r4, 0
@@ -17322,7 +17322,7 @@ sub_80D2BE8: @ 80D2BE8
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2C1C
- ldr r1, _080D2C18 @ =gUnknown_03004B00
+ ldr r1, _080D2C18 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -17339,7 +17339,7 @@ sub_80D2BE8: @ 80D2BE8
strh r0, [r4, 0x2E]
b _080D2C30
.align 2, 0
-_080D2C18: .4byte gUnknown_03004B00
+_080D2C18: .4byte gBattleAnimArgs
_080D2C1C:
adds r0, r4, 0
adds r0, 0x3F
@@ -17360,7 +17360,7 @@ _080D2C30:
sub_80D2C38: @ 80D2C38
push {r4,r5,lr}
adds r5, r0, 0
- ldr r1, _080D2C50 @ =gUnknown_03004B00
+ ldr r1, _080D2C50 @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r0, [r1, r2]
cmp r0, 0
@@ -17369,18 +17369,18 @@ sub_80D2C38: @ 80D2C38
bl move_anim_8072740
b _080D2CB8
.align 2, 0
-_080D2C50: .4byte gUnknown_03004B00
+_080D2C50: .4byte gBattleAnimArgs
_080D2C54:
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
bne _080D2C64
- ldr r4, _080D2C60 @ =gUnknown_0202F7C8
+ ldr r4, _080D2C60 @ =gBattleAnimPlayerMonIndex
b _080D2C66
.align 2, 0
-_080D2C60: .4byte gUnknown_0202F7C8
+_080D2C60: .4byte gBattleAnimPlayerMonIndex
_080D2C64:
- ldr r4, _080D2C94 @ =gUnknown_0202F7C9
+ ldr r4, _080D2C94 @ =gBattleAnimEnemyMonIndex
_080D2C66:
ldrb r0, [r4]
movs r1, 0x2
@@ -17394,7 +17394,7 @@ _080D2C66:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, _080D2C98 @ =gUnknown_03004B00
+ ldr r0, _080D2C98 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r0, r2]
adds r2, r0, 0
@@ -17404,8 +17404,8 @@ _080D2C66:
adds r0, 0x20
b _080D2CA0
.align 2, 0
-_080D2C94: .4byte gUnknown_0202F7C9
-_080D2C98: .4byte gUnknown_03004B00
+_080D2C94: .4byte gBattleAnimEnemyMonIndex
+_080D2C98: .4byte gBattleAnimArgs
_080D2C9C:
ldrh r0, [r5, 0x20]
subs r0, 0x20
@@ -17465,7 +17465,7 @@ sub_80D2CF8: @ 80D2CF8
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r0, _080D2D2C @ =gUnknown_03004B00
+ ldr r0, _080D2D2C @ =gBattleAnimArgs
ldrb r0, [r0]
bl obj_id_for_side_relative_to_move
adds r1, r0, 0
@@ -17485,7 +17485,7 @@ sub_80D2CF8: @ 80D2CF8
pop {r0}
bx r0
.align 2, 0
-_080D2D2C: .4byte gUnknown_03004B00
+_080D2D2C: .4byte gBattleAnimArgs
_080D2D30: .4byte gTasks
_080D2D34: .4byte gUnknown_083D7CA8
_080D2D38: .4byte sub_80D2D3C
@@ -17506,7 +17506,7 @@ sub_80D2D3C: @ 80D2D3C
cmp r0, 0
bne _080D2D5C
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D2D5C:
pop {r4}
pop {r0}
@@ -17519,27 +17519,27 @@ _080D2D64: .4byte gTasks
sub_80D2D68: @ 80D2D68
push {r4-r7,lr}
adds r5, r0, 0
- ldr r0, _080D2D7C @ =gUnknown_03004B00
+ ldr r0, _080D2D7C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D2D84
- ldr r0, _080D2D80 @ =gUnknown_0202F7C8
+ ldr r0, _080D2D80 @ =gBattleAnimPlayerMonIndex
b _080D2D86
.align 2, 0
-_080D2D7C: .4byte gUnknown_03004B00
-_080D2D80: .4byte gUnknown_0202F7C8
+_080D2D7C: .4byte gBattleAnimArgs
+_080D2D80: .4byte gBattleAnimPlayerMonIndex
_080D2D84:
- ldr r0, _080D2E1C @ =gUnknown_0202F7C9
+ ldr r0, _080D2E1C @ =gBattleAnimEnemyMonIndex
_080D2D86:
ldrb r6, [r0]
adds r0, r6, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080D2DA0
- ldr r1, _080D2E20 @ =gUnknown_03004B00
+ ldr r1, _080D2E20 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r1, r2]
negs r0, r0
@@ -17549,7 +17549,7 @@ _080D2DA0:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r7, _080D2E20 @ =gUnknown_03004B00
+ ldr r7, _080D2E20 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r3, [r7, 0x2]
adds r0, r3
@@ -17607,8 +17607,8 @@ _080D2DF0:
pop {r0}
bx r0
.align 2, 0
-_080D2E1C: .4byte gUnknown_0202F7C9
-_080D2E20: .4byte gUnknown_03004B00
+_080D2E1C: .4byte gBattleAnimEnemyMonIndex
+_080D2E20: .4byte gBattleAnimArgs
_080D2E24: .4byte 0x000003ff
_080D2E28: .4byte 0xfffffc00
_080D2E2C: .4byte sub_80D2E30
@@ -17654,7 +17654,7 @@ sub_80D2E68: @ 80D2E68
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D2E8A
- ldr r0, _080D2EC4 @ =gUnknown_03004B00
+ ldr r0, _080D2EC4 @ =gBattleAnimArgs
ldrh r1, [r0]
movs r0, 0x78
subs r0, r1
@@ -17695,7 +17695,7 @@ _080D2EBC:
pop {r0}
bx r0
.align 2, 0
-_080D2EC4: .4byte gUnknown_03004B00
+_080D2EC4: .4byte gBattleAnimArgs
thumb_func_end sub_80D2E68
thumb_func_start sub_80D2EC8
@@ -17708,7 +17708,7 @@ sub_80D2EC8: @ 80D2EC8
bne _080D2EF6
movs r5, 0x78
strh r5, [r6, 0x20]
- ldr r4, _080D2F78 @ =gUnknown_03004B00
+ ldr r4, _080D2F78 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r4, r2]
lsrs r1, r0, 31
@@ -17785,7 +17785,7 @@ _080D2F72:
pop {r0}
bx r0
.align 2, 0
-_080D2F78: .4byte gUnknown_03004B00
+_080D2F78: .4byte gBattleAnimArgs
_080D2F7C: .4byte sub_80D2F80
thumb_func_end sub_80D2EC8
@@ -17876,13 +17876,13 @@ _080D300E:
sub_80D3014: @ 80D3014
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D3058 @ =gUnknown_020239F8
+ ldr r0, _080D3058 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080D3060
- ldr r4, _080D305C @ =gUnknown_0202F7C8
+ ldr r4, _080D305C @ =gBattleAnimPlayerMonIndex
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
@@ -17905,10 +17905,10 @@ sub_80D3014: @ 80D3014
bl StartSpriteAffineAnim
b _080D3080
.align 2, 0
-_080D3058: .4byte gUnknown_020239F8
-_080D305C: .4byte gUnknown_0202F7C8
+_080D3058: .4byte gBattleTypeFlags
+_080D305C: .4byte gBattleAnimPlayerMonIndex
_080D3060:
- ldr r4, _080D30A0 @ =gUnknown_0202F7C8
+ ldr r4, _080D30A0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -17939,7 +17939,7 @@ _080D3080:
pop {r0}
bx r0
.align 2, 0
-_080D30A0: .4byte gUnknown_0202F7C8
+_080D30A0: .4byte gBattleAnimPlayerMonIndex
_080D30A4: .4byte sub_8078B34
_080D30A8: .4byte move_anim_8072740
thumb_func_end sub_80D3014
@@ -17949,19 +17949,19 @@ sub_80D30AC: @ 80D30AC
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r3, _080D30C8 @ =gUnknown_03004B00
- ldr r1, _080D30CC @ =gUnknown_0202F7B4
+ ldr r3, _080D30C8 @ =gBattleAnimArgs
+ ldr r1, _080D30CC @ =gDisableStructMoveAnim
ldr r1, [r1]
ldrb r2, [r1, 0x10]
movs r1, 0x1
ands r1, r2
strh r1, [r3, 0xE]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
-_080D30C8: .4byte gUnknown_03004B00
-_080D30CC: .4byte gUnknown_0202F7B4
+_080D30C8: .4byte gBattleAnimArgs
+_080D30CC: .4byte gDisableStructMoveAnim
thumb_func_end sub_80D30AC
thumb_func_start update_fury_cutter_counter_copy
@@ -17969,17 +17969,17 @@ update_fury_cutter_counter_copy: @ 80D30D0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080D30E8 @ =gUnknown_03004B00
- ldr r1, _080D30EC @ =gUnknown_0202F7B4
+ ldr r2, _080D30E8 @ =gBattleAnimArgs
+ ldr r1, _080D30EC @ =gDisableStructMoveAnim
ldr r1, [r1]
ldrb r1, [r1, 0x10]
strh r1, [r2, 0xE]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
-_080D30E8: .4byte gUnknown_03004B00
-_080D30EC: .4byte gUnknown_0202F7B4
+_080D30E8: .4byte gBattleAnimArgs
+_080D30EC: .4byte gDisableStructMoveAnim
thumb_func_end update_fury_cutter_counter_copy
thumb_func_start sub_80D30F0
@@ -17997,7 +17997,7 @@ sub_80D30F0: @ 80D30F0
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080D3118
- ldr r1, _080D317C @ =gUnknown_03004B00
+ ldr r1, _080D317C @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r5, 0xA]
ldrh r0, [r1, 0x2]
@@ -18043,14 +18043,14 @@ _080D3160:
cmp r1, r0
bne _080D3172
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D3172:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080D3178: .4byte gTasks
-_080D317C: .4byte gUnknown_03004B00
+_080D317C: .4byte gBattleAnimArgs
_080D3180: .4byte gSpriteTemplate_83D9130
thumb_func_end sub_80D30F0
@@ -18099,9 +18099,9 @@ _080D31C2:
sub_80D31C8: @ 80D31C8
push {r4-r6,lr}
adds r6, r0, 0
- ldr r5, _080D31F0 @ =gUnknown_0202F7C8
+ ldr r5, _080D31F0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D31F8
@@ -18110,19 +18110,19 @@ sub_80D31C8: @ 80D31C8
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
- ldr r4, _080D31F4 @ =gUnknown_03004B00
+ ldr r4, _080D31F4 @ =gBattleAnimArgs
ldrh r1, [r4]
subs r0, r1
b _080D320A
.align 2, 0
-_080D31F0: .4byte gUnknown_0202F7C8
-_080D31F4: .4byte gUnknown_03004B00
+_080D31F0: .4byte gBattleAnimPlayerMonIndex
+_080D31F4: .4byte gBattleAnimArgs
_080D31F8:
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D32D0 @ =gUnknown_03004B00
+ ldr r4, _080D32D0 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -18142,23 +18142,23 @@ _080D320A:
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
- ldr r0, _080D32D4 @ =gUnknown_0202F7C8
+ ldr r0, _080D32D4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D3240
- ldr r1, _080D32D0 @ =gUnknown_03004B00
+ ldr r1, _080D32D0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080D3240:
- ldr r5, _080D32D0 @ =gUnknown_03004B00
+ ldr r5, _080D32D0 @ =gBattleAnimArgs
ldrh r0, [r5, 0xC]
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
strh r0, [r6, 0x30]
- ldr r4, _080D32D8 @ =gUnknown_0202F7C9
+ ldr r4, _080D32D8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -18176,7 +18176,7 @@ _080D3240:
adds r0, r6, 0
bl obj_translate_based_on_private_1_2_3_4
ldr r0, _080D32DC @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -18219,9 +18219,9 @@ _080D3240:
pop {r0}
bx r0
.align 2, 0
-_080D32D0: .4byte gUnknown_03004B00
-_080D32D4: .4byte gUnknown_0202F7C8
-_080D32D8: .4byte gUnknown_0202F7C9
+_080D32D0: .4byte gBattleAnimArgs
+_080D32D4: .4byte gBattleAnimPlayerMonIndex
+_080D32D8: .4byte gBattleAnimEnemyMonIndex
_080D32DC: .4byte SpriteCallbackDummy
_080D32E0: .4byte gSprites
_080D32E4: .4byte sub_80D32E8
@@ -18339,13 +18339,13 @@ sub_80D33B4: @ 80D33B4
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080D33DC @ =gUnknown_0202F7C8
+ ldr r0, _080D33DC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D33E4
- ldr r1, _080D33E0 @ =gUnknown_03004B00
+ ldr r1, _080D33E0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
lsls r0, 16
@@ -18353,10 +18353,10 @@ sub_80D33B4: @ 80D33B4
adds r7, r1, 0
b _080D33EA
.align 2, 0
-_080D33DC: .4byte gUnknown_0202F7C8
-_080D33E0: .4byte gUnknown_03004B00
+_080D33DC: .4byte gBattleAnimPlayerMonIndex
+_080D33E0: .4byte gBattleAnimArgs
_080D33E4:
- ldr r0, _080D3440 @ =gUnknown_03004B00
+ ldr r0, _080D3440 @ =gBattleAnimArgs
ldrh r6, [r0, 0x4]
adds r7, r0, 0
_080D33EA:
@@ -18364,7 +18364,7 @@ _080D33EA:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080D3444 @ =gUnknown_0202F7C9
+ ldr r4, _080D3444 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -18399,8 +18399,8 @@ _080D33EA:
pop {r0}
bx r0
.align 2, 0
-_080D3440: .4byte gUnknown_03004B00
-_080D3444: .4byte gUnknown_0202F7C9
+_080D3440: .4byte gBattleAnimArgs
+_080D3444: .4byte gBattleAnimEnemyMonIndex
_080D3448: .4byte sub_80D344C
thumb_func_end sub_80D33B4
@@ -18408,7 +18408,7 @@ _080D3448: .4byte sub_80D344C
sub_80D344C: @ 80D344C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D3488 @ =gUnknown_03004B00
+ ldr r0, _080D3488 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
ldr r0, _080D348C @ =0x0000ffff
cmp r1, r0
@@ -18435,7 +18435,7 @@ _080D3480:
pop {r0}
bx r0
.align 2, 0
-_080D3488: .4byte gUnknown_03004B00
+_080D3488: .4byte gBattleAnimArgs
_080D348C: .4byte 0x0000ffff
thumb_func_end sub_80D344C
@@ -18449,7 +18449,7 @@ sub_80D3490: @ 80D3490
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r0, _080D34C8 @ =gUnknown_03004B00
+ ldr r0, _080D34C8 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x8]
ldr r0, _080D34CC @ =0x0000279c
@@ -18467,7 +18467,7 @@ sub_80D3490: @ 80D3490
bx r0
.align 2, 0
_080D34C4: .4byte gTasks
-_080D34C8: .4byte gUnknown_03004B00
+_080D34C8: .4byte gBattleAnimArgs
_080D34CC: .4byte 0x0000279c
_080D34D0: .4byte sub_80D34D4
thumb_func_end sub_80D3490
@@ -18531,7 +18531,7 @@ _080D3526:
cmp r1, r0
bne _080D3546
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D3546:
pop {r4-r7}
pop {r0}
@@ -18551,7 +18551,7 @@ sub_80D3554: @ 80D3554
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080D35BC @ =gUnknown_0202F7C9
+ ldr r4, _080D35BC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -18574,7 +18574,7 @@ sub_80D3554: @ 80D3554
lsls r0, 8
bl __divsi3
strh r0, [r5, 0x38]
- ldr r0, _080D35C0 @ =gUnknown_03004B00
+ ldr r0, _080D35C0 @ =gBattleAnimArgs
ldrh r2, [r0, 0x6]
strh r2, [r5, 0x3C]
ldrh r1, [r0, 0xE]
@@ -18590,8 +18590,8 @@ sub_80D3554: @ 80D3554
strh r0, [r5, 0x3C]
b _080D35C8
.align 2, 0
-_080D35BC: .4byte gUnknown_0202F7C9
-_080D35C0: .4byte gUnknown_03004B00
+_080D35BC: .4byte gBattleAnimEnemyMonIndex
+_080D35C0: .4byte gBattleAnimArgs
_080D35C4:
lsls r0, r1, 8
strh r0, [r5, 0x3A]
@@ -18661,7 +18661,7 @@ sub_80D3630: @ 80D3630
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r3, _080D3654 @ =gUnknown_03004B00
+ ldr r3, _080D3654 @ =gBattleAnimArgs
ldrh r0, [r3]
movs r2, 0
strh r0, [r1, 0x8]
@@ -18671,7 +18671,7 @@ sub_80D3630: @ 80D3630
bx lr
.align 2, 0
_080D3650: .4byte gTasks
-_080D3654: .4byte gUnknown_03004B00
+_080D3654: .4byte gBattleAnimArgs
_080D3658: .4byte sub_80D365C
thumb_func_end sub_80D3630
@@ -18680,7 +18680,7 @@ sub_80D365C: @ 80D365C
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, _080D3690 @ =gUnknown_03004B00
+ ldr r2, _080D3690 @ =gBattleAnimArgs
ldrh r0, [r2, 0xE]
adds r0, 0x3
movs r1, 0xFF
@@ -18698,12 +18698,12 @@ sub_80D365C: @ 80D365C
cmp r1, 0
bne _080D368A
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D368A:
pop {r0}
bx r0
.align 2, 0
-_080D3690: .4byte gUnknown_03004B00
+_080D3690: .4byte gBattleAnimArgs
_080D3694: .4byte gTasks
thumb_func_end sub_80D365C
@@ -18711,7 +18711,7 @@ _080D3694: .4byte gTasks
sub_80D3698: @ 80D3698
push {r4-r7,lr}
adds r4, r0, 0
- ldr r7, _080D36E4 @ =gUnknown_0202F7C8
+ ldr r7, _080D36E4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r7]
movs r1, 0
bl sub_8077ABC
@@ -18730,12 +18730,12 @@ sub_80D3698: @ 80D3698
bl sub_8079E90
lsls r0, 24
lsrs r5, r0, 24
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080D36F2
ldrb r0, [r7]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D36EC
@@ -18743,7 +18743,7 @@ sub_80D3698: @ 80D3698
strh r0, [r4, 0x24]
b _080D36F4
.align 2, 0
-_080D36E4: .4byte gUnknown_0202F7C8
+_080D36E4: .4byte gBattleAnimPlayerMonIndex
_080D36E8: .4byte 0x0000fff6
_080D36EC:
strh r6, [r4, 0x24]
@@ -18787,29 +18787,29 @@ _080D3722:
sub_80D3728: @ 80D3728
push {r4-r7,lr}
adds r6, r0, 0
- ldr r5, _080D37E8 @ =gUnknown_0202F7C8
+ ldr r5, _080D37E8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
adds r4, r0, 0
- ldr r0, _080D37EC @ =gUnknown_0202F7C9
+ ldr r0, _080D37EC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _080D3772
- ldr r4, _080D37F0 @ =gUnknown_03004B00
+ ldr r4, _080D37F0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
negs r0, r0
strh r0, [r4]
ldrb r0, [r5]
- bl battle_get_per_side_status
+ bl GetBankIdentity
lsls r0, 24
cmp r0, 0
beq _080D376A
ldrb r0, [r5]
- bl battle_get_per_side_status
+ bl GetBankIdentity
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -18820,7 +18820,7 @@ _080D376A:
negs r0, r0
strh r0, [r4]
_080D3772:
- ldr r5, _080D37F0 @ =gUnknown_03004B00
+ ldr r5, _080D37F0 @ =gBattleAnimArgs
movs r1, 0xA
ldrsh r0, [r5, r1]
movs r1, 0xFF
@@ -18839,9 +18839,9 @@ _080D3786:
_080D3790:
adds r0, r6, 0
bl sub_80787B0
- ldr r0, _080D37E8 @ =gUnknown_0202F7C8
+ ldr r0, _080D37E8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D37AA
@@ -18851,7 +18851,7 @@ _080D3790:
_080D37AA:
ldrh r0, [r5, 0x8]
strh r0, [r6, 0x2E]
- ldr r4, _080D37EC @ =gUnknown_0202F7C9
+ ldr r4, _080D37EC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -18877,9 +18877,9 @@ _080D37AA:
pop {r0}
bx r0
.align 2, 0
-_080D37E8: .4byte gUnknown_0202F7C8
-_080D37EC: .4byte gUnknown_0202F7C9
-_080D37F0: .4byte gUnknown_03004B00
+_080D37E8: .4byte gBattleAnimPlayerMonIndex
+_080D37EC: .4byte gBattleAnimEnemyMonIndex
+_080D37F0: .4byte gBattleAnimArgs
_080D37F4: .4byte sub_8078B34
_080D37F8: .4byte move_anim_8072740
thumb_func_end sub_80D3728
@@ -18890,7 +18890,7 @@ sub_80D37FC: @ 80D37FC
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r0, _080D382C @ =gUnknown_03004B00
+ ldr r0, _080D382C @ =gBattleAnimArgs
ldrh r1, [r0, 0x8]
strh r1, [r4, 0x2E]
ldrh r0, [r0, 0x4]
@@ -18909,7 +18909,7 @@ sub_80D37FC: @ 80D37FC
pop {r0}
bx r0
.align 2, 0
-_080D382C: .4byte gUnknown_03004B00
+_080D382C: .4byte gBattleAnimArgs
_080D3830: .4byte sub_8078B34
_080D3834: .4byte move_anim_8072740
thumb_func_end sub_80D37FC
@@ -18918,7 +18918,7 @@ _080D3834: .4byte move_anim_8072740
sub_80D3838: @ 80D3838
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D3850 @ =gUnknown_03004B00
+ ldr r0, _080D3850 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -18928,13 +18928,13 @@ sub_80D3838: @ 80D3838
bl sub_8078764
b _080D385C
.align 2, 0
-_080D3850: .4byte gUnknown_03004B00
+_080D3850: .4byte gBattleAnimArgs
_080D3854:
adds r0, r4, 0
movs r1, 0x1
bl sub_80787B0
_080D385C:
- ldr r0, _080D386C @ =gUnknown_03004B00
+ ldr r0, _080D386C @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x3C]
ldr r0, _080D3870 @ =sub_80D3874
@@ -18943,7 +18943,7 @@ _080D385C:
pop {r0}
bx r0
.align 2, 0
-_080D386C: .4byte gUnknown_03004B00
+_080D386C: .4byte gBattleAnimArgs
_080D3870: .4byte sub_80D3874
thumb_func_end sub_80D3838
@@ -19068,7 +19068,7 @@ _080D3920:
ldr r1, _080D399C @ =0x85000400
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080D39B8
@@ -19080,9 +19080,9 @@ _080D3920:
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r0, _080D39A0 @ =gUnknown_0202F7C8
+ ldr r0, _080D39A0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -19095,7 +19095,7 @@ _080D3990: .4byte 0x00003f42
_080D3994: .4byte REG_BG1CNT
_080D3998: .4byte 0x040000d4
_080D399C: .4byte 0x85000400
-_080D39A0: .4byte gUnknown_0202F7C8
+_080D39A0: .4byte gBattleAnimPlayerMonIndex
_080D39A4: .4byte gUnknown_08E70968
_080D39A8:
ldr r0, _080D39B4 @ =gUnknown_08E70C38
@@ -19119,7 +19119,7 @@ _080D39CE:
ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf
ldr r1, [sp]
bl LZDecompressVram
- ldr r0, _080D39F8 @ =gUnknown_03004B00
+ ldr r0, _080D39F8 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -19134,7 +19134,7 @@ _080D39CE:
.align 2, 0
_080D39F0: .4byte gUnknown_08E70F0C
_080D39F4: .4byte gBattleAnimBackgroundImage_Surf
-_080D39F8: .4byte gUnknown_03004B00
+_080D39F8: .4byte gBattleAnimArgs
_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf
_080D3A00:
ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal
@@ -19174,7 +19174,7 @@ _080D3A0E:
lsls r0, 5
strh r0, [r7, 0xA]
strh r0, [r7, 0xC]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -19203,9 +19203,9 @@ _080D3A88: .4byte gUnknown_030042C0
_080D3A8C: .4byte 0x0000ffd0
_080D3A90: .4byte gUnknown_030041B4
_080D3A94:
- ldr r0, _080D3AC4 @ =gUnknown_0202F7C8
+ ldr r0, _080D3AC4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x1
@@ -19226,7 +19226,7 @@ _080D3A94:
strh r1, [r7, 0xE]
b _080D3AEE
.align 2, 0
-_080D3AC4: .4byte gUnknown_0202F7C8
+_080D3AC4: .4byte gBattleAnimPlayerMonIndex
_080D3AC8: .4byte 0x0000ff20
_080D3ACC: .4byte gUnknown_030042C0
_080D3AD0: .4byte gUnknown_030041B4
@@ -19502,7 +19502,7 @@ _080D3CAA:
ldr r1, _080D3D58 @ =0x85000400
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080D3D02
@@ -19535,7 +19535,7 @@ _080D3D02:
ldr r1, _080D3D64 @ =0x0000ffff
strh r1, [r0, 0x26]
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D3D32:
add sp, 0x18
pop {r3-r5}
@@ -20363,7 +20363,7 @@ _080D437C:
cmp r0, 0
bne _080D438A
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D438A:
add sp, 0xC
pop {r4-r6}
@@ -20374,13 +20374,13 @@ _080D438A:
thumb_func_start sub_80D4394
sub_80D4394: @ 80D4394
push {r4,r5,lr}
- ldr r4, _080D43B8 @ =gUnknown_0202F7C8
+ ldr r4, _080D43B8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D43C8
- ldr r1, _080D43BC @ =gUnknown_02024A6A
+ ldr r1, _080D43BC @ =gBattlePartyID
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -20390,14 +20390,14 @@ sub_80D4394: @ 80D4394
ldr r0, _080D43C0 @ =gPlayerParty
b _080D43D8
.align 2, 0
-_080D43B8: .4byte gUnknown_0202F7C8
-_080D43BC: .4byte gUnknown_02024A6A
+_080D43B8: .4byte gBattleAnimPlayerMonIndex
+_080D43BC: .4byte gBattlePartyID
_080D43C0: .4byte gPlayerParty
_080D43C4:
adds r0, r2, 0
b _080D440A
_080D43C8:
- ldr r1, _080D4410 @ =gUnknown_02024A6A
+ ldr r1, _080D4410 @ =gBattlePartyID
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -20435,7 +20435,7 @@ _080D440A:
pop {r1}
bx r1
.align 2, 0
-_080D4410: .4byte gUnknown_02024A6A
+_080D4410: .4byte gBattlePartyID
_080D4414: .4byte gEnemyParty
thumb_func_end sub_80D4394
@@ -20451,7 +20451,7 @@ sub_80D4418: @ 80D4418
lsls r1, 24
lsrs r1, 24
str r1, [sp]
- ldr r4, _080D4520 @ =gUnknown_0202F7C8
+ ldr r4, _080D4520 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -20571,7 +20571,7 @@ _080D44EA:
pop {r0}
bx r0
.align 2, 0
-_080D4520: .4byte gUnknown_0202F7C8
+_080D4520: .4byte gBattleAnimPlayerMonIndex
_080D4524: .4byte gSpriteTemplate_83D9378
_080D4528: .4byte gSprites
thumb_func_end sub_80D4418
@@ -20681,9 +20681,9 @@ sub_80D45D8: @ 80D45D8
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xA]
- ldr r0, _080D460C @ =gUnknown_0202F7C8
+ ldr r0, _080D460C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D4610
@@ -20693,7 +20693,7 @@ sub_80D45D8: @ 80D45D8
b _080D4616
.align 2, 0
_080D4608: .4byte gTasks
-_080D460C: .4byte gUnknown_0202F7C8
+_080D460C: .4byte gBattleAnimPlayerMonIndex
_080D4610:
movs r0, 0x10
strh r0, [r4, 0x10]
@@ -20761,7 +20761,7 @@ _080D467A:
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080D46F4
- ldr r5, _080D4708 @ =gUnknown_03004B00
+ ldr r5, _080D4708 @ =gBattleAnimArgs
movs r1, 0x1
mov r8, r1
mov r2, r8
@@ -20784,7 +20784,7 @@ _080D467A:
ldr r1, [r0]
adds r0, r2, 0
bl _call_via_r1
- ldr r1, _080D4710 @ =gUnknown_0202F7B2
+ ldr r1, _080D4710 @ =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
@@ -20805,7 +20805,7 @@ _080D46C4:
ldr r1, [r0]
adds r0, r2, 0
bl _call_via_r1
- ldr r1, _080D4710 @ =gUnknown_0202F7B2
+ ldr r1, _080D4710 @ =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
@@ -20824,16 +20824,16 @@ _080D46F4:
strh r0, [r4, 0x8]
b _080D4722
.align 2, 0
-_080D4708: .4byte gUnknown_03004B00
+_080D4708: .4byte gBattleAnimArgs
_080D470C: .4byte sub_80E1864
-_080D4710: .4byte gUnknown_0202F7B2
+_080D4710: .4byte gAnimVisualTaskCount
_080D4714:
movs r2, 0x1A
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080D4722
adds r0, r1, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D4722:
pop {r3}
mov r8, r3
@@ -21079,7 +21079,7 @@ sub_80D48F4: @ 80D48F4
lsls r1, 3
ldr r0, _080D4978 @ =gTasks
adds r5, r1, r0
- ldr r4, _080D497C @ =gUnknown_0202F7C8
+ ldr r4, _080D497C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -21094,7 +21094,7 @@ sub_80D48F4: @ 80D48F4
lsrs r0, 24
strh r0, [r5, 0x10]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
@@ -21104,7 +21104,7 @@ sub_80D48F4: @ 80D48F4
movs r1, 0x1
_080D4938:
strh r1, [r5, 0x16]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080D494C
@@ -21136,7 +21136,7 @@ _080D494C:
bx r0
.align 2, 0
_080D4978: .4byte gTasks
-_080D497C: .4byte gUnknown_0202F7C8
+_080D497C: .4byte gBattleAnimPlayerMonIndex
_080D4980: .4byte 0x0000ffe0
_080D4984: .4byte sub_80D4988
thumb_func_end sub_80D48F4
@@ -21300,7 +21300,7 @@ _080D4ABA:
b _080D4AC8
_080D4AC2:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D4AC8:
pop {r4}
pop {r0}
@@ -21456,7 +21456,7 @@ _080D4BEC: .4byte sub_80D4988
thumb_func_start sub_80D4BF0
sub_80D4BF0: @ 80D4BF0
- ldr r2, _080D4C10 @ =gUnknown_03004B00
+ ldr r2, _080D4C10 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x20]
ldrh r1, [r2, 0x2]
@@ -21473,7 +21473,7 @@ sub_80D4BF0: @ 80D4BF0
str r1, [r0, 0x1C]
bx lr
.align 2, 0
-_080D4C10: .4byte gUnknown_03004B00
+_080D4C10: .4byte gBattleAnimArgs
_080D4C14: .4byte sub_80D4C18
thumb_func_end sub_80D4BF0
@@ -21556,7 +21556,7 @@ sub_80D4CA4: @ 80D4CA4
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080D4CE0 @ =gUnknown_0202F7C9
+ ldr r5, _080D4CE0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -21569,7 +21569,7 @@ sub_80D4CA4: @ 80D4CA4
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
- ldr r1, _080D4CE4 @ =gUnknown_03004B00
+ ldr r1, _080D4CE4 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x34]
ldrh r0, [r1, 0x6]
@@ -21580,8 +21580,8 @@ sub_80D4CA4: @ 80D4CA4
pop {r0}
bx r0
.align 2, 0
-_080D4CE0: .4byte gUnknown_0202F7C9
-_080D4CE4: .4byte gUnknown_03004B00
+_080D4CE0: .4byte gBattleAnimEnemyMonIndex
+_080D4CE4: .4byte gBattleAnimArgs
_080D4CE8: .4byte sub_80D4CEC
thumb_func_end sub_80D4CA4
@@ -21734,7 +21734,7 @@ _080D4DF2:
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
- ldr r0, _080D4E3C @ =gUnknown_0202F7C8
+ ldr r0, _080D4E3C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
@@ -21750,7 +21750,7 @@ _080D4DF2:
.align 2, 0
_080D4E34: .4byte gSpriteTemplate_83D9420
_080D4E38: .4byte gSprites
-_080D4E3C: .4byte gUnknown_0202F7C8
+_080D4E3C: .4byte gBattleAnimPlayerMonIndex
_080D4E40:
strh r7, [r4, 0x32]
_080D4E42:
@@ -21792,7 +21792,7 @@ _080D4E68:
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
- ldr r0, _080D4EB4 @ =gUnknown_0202F7C8
+ ldr r0, _080D4EB4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
@@ -21808,7 +21808,7 @@ _080D4E68:
.align 2, 0
_080D4EAC: .4byte gSpriteTemplate_83D9420
_080D4EB0: .4byte gSprites
-_080D4EB4: .4byte gUnknown_0202F7C8
+_080D4EB4: .4byte gBattleAnimPlayerMonIndex
_080D4EB8:
strh r7, [r4, 0x32]
_080D4EBA:
@@ -21833,7 +21833,7 @@ _080D4EBA:
sub_80D4ED8: @ 80D4ED8
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D4F0C @ =gUnknown_03004B00
+ ldr r0, _080D4F0C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x2E]
movs r0, 0x3C
@@ -21856,7 +21856,7 @@ sub_80D4ED8: @ 80D4ED8
pop {r0}
bx r0
.align 2, 0
-_080D4F0C: .4byte gUnknown_03004B00
+_080D4F0C: .4byte gBattleAnimArgs
_080D4F10: .4byte move_anim_8072740
_080D4F14: .4byte sub_8078174
thumb_func_end sub_80D4ED8
@@ -21865,7 +21865,7 @@ _080D4F14: .4byte sub_8078174
sub_80D4F18: @ 80D4F18
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D4F50 @ =gUnknown_03004B00
+ ldr r5, _080D4F50 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -21889,7 +21889,7 @@ sub_80D4F18: @ 80D4F18
pop {r0}
bx r0
.align 2, 0
-_080D4F50: .4byte gUnknown_03004B00
+_080D4F50: .4byte gBattleAnimArgs
_080D4F54: .4byte sub_8078394
_080D4F58: .4byte move_anim_8072740
thumb_func_end sub_80D4F18
@@ -21899,13 +21899,13 @@ sub_80D4F5C: @ 80D4F5C
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r0, _080D4F90 @ =gUnknown_0202F7C8
+ ldr r0, _080D4F90 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D4F98
- ldr r2, _080D4F94 @ =gUnknown_03004B00
+ ldr r2, _080D4F94 @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -21920,10 +21920,10 @@ sub_80D4F5C: @ 80D4F5C
adds r1, r2, 0
b _080D4FAE
.align 2, 0
-_080D4F90: .4byte gUnknown_0202F7C8
-_080D4F94: .4byte gUnknown_03004B00
+_080D4F90: .4byte gBattleAnimPlayerMonIndex
+_080D4F94: .4byte gBattleAnimArgs
_080D4F98:
- ldr r1, _080D4FC4 @ =gUnknown_03004B00
+ ldr r1, _080D4FC4 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -21947,7 +21947,7 @@ _080D4FAE:
pop {r0}
bx r0
.align 2, 0
-_080D4FC4: .4byte gUnknown_03004B00
+_080D4FC4: .4byte gBattleAnimArgs
_080D4FC8: .4byte sub_80D5038
thumb_func_end sub_80D4F5C
@@ -21955,13 +21955,13 @@ _080D4FC8: .4byte sub_80D5038
sub_80D4FCC: @ 80D4FCC
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D4FF8 @ =gUnknown_0202F7C8
+ ldr r0, _080D4FF8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D5000
- ldr r2, _080D4FFC @ =gUnknown_03004B00
+ ldr r2, _080D4FFC @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -21975,10 +21975,10 @@ sub_80D4FCC: @ 80D4FCC
adds r1, r2, 0
b _080D5018
.align 2, 0
-_080D4FF8: .4byte gUnknown_0202F7C8
-_080D4FFC: .4byte gUnknown_03004B00
+_080D4FF8: .4byte gBattleAnimPlayerMonIndex
+_080D4FFC: .4byte gBattleAnimArgs
_080D5000:
- ldr r1, _080D5030 @ =gUnknown_03004B00
+ ldr r1, _080D5030 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -22003,7 +22003,7 @@ _080D5018:
pop {r0}
bx r0
.align 2, 0
-_080D5030: .4byte gUnknown_03004B00
+_080D5030: .4byte gBattleAnimArgs
_080D5034: .4byte sub_80D5038
thumb_func_end sub_80D4FCC
@@ -22047,23 +22047,23 @@ sub_80D5074: @ 80D5074
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r0, _080D5098 @ =gUnknown_0202F7C8
+ ldr r0, _080D5098 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D50A0
- ldr r0, _080D509C @ =gUnknown_03004B00
+ ldr r0, _080D509C @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
strh r1, [r4, 0x20]
b _080D50B2
.align 2, 0
-_080D5098: .4byte gUnknown_0202F7C8
-_080D509C: .4byte gUnknown_03004B00
+_080D5098: .4byte gBattleAnimPlayerMonIndex
+_080D509C: .4byte gBattleAnimArgs
_080D50A0:
- ldr r0, _080D50E0 @ =gUnknown_03004B00
+ ldr r0, _080D50E0 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -22096,7 +22096,7 @@ _080D50B2:
pop {r0}
bx r0
.align 2, 0
-_080D50E0: .4byte gUnknown_03004B00
+_080D50E0: .4byte gBattleAnimArgs
_080D50E4: .4byte sub_80D50E8
thumb_func_end sub_80D5074
@@ -22206,33 +22206,33 @@ _080D51A4: .4byte move_anim_8072740
sub_80D51A8: @ 80D51A8
push {r4-r6,lr}
adds r6, r0, 0
- ldr r5, _080D5200 @ =gUnknown_0202F7C8
+ ldr r5, _080D5200 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
adds r4, r0, 0
- ldr r0, _080D5204 @ =gUnknown_0202F7C9
+ ldr r0, _080D5204 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _080D51EE
movs r0, 0x2
- bl battle_get_side_with_given_state
+ bl GetBankByPlayerAI
ldrb r1, [r5]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
beq _080D51E6
movs r0, 0x3
- bl battle_get_side_with_given_state
+ bl GetBankByPlayerAI
ldrb r1, [r5]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
bne _080D51EE
_080D51E6:
- ldr r1, _080D5208 @ =gUnknown_03004B00
+ ldr r1, _080D5208 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
@@ -22245,15 +22245,15 @@ _080D51EE:
pop {r0}
bx r0
.align 2, 0
-_080D5200: .4byte gUnknown_0202F7C8
-_080D5204: .4byte gUnknown_0202F7C9
-_080D5208: .4byte gUnknown_03004B00
+_080D5200: .4byte gBattleAnimPlayerMonIndex
+_080D5204: .4byte gBattleAnimEnemyMonIndex
+_080D5208: .4byte gBattleAnimArgs
_080D520C: .4byte sub_8079534
thumb_func_end sub_80D51A8
thumb_func_start sub_80D5210
sub_80D5210: @ 80D5210
- ldr r2, _080D5224 @ =gUnknown_03004B00
+ ldr r2, _080D5224 @ =gBattleAnimArgs
ldrh r1, [r2]
negs r1, r1
strh r1, [r2]
@@ -22264,7 +22264,7 @@ sub_80D5210: @ 80D5210
str r1, [r0, 0x1C]
bx lr
.align 2, 0
-_080D5224: .4byte gUnknown_03004B00
+_080D5224: .4byte gBattleAnimArgs
_080D5228: .4byte sub_8079534
thumb_func_end sub_80D5210
@@ -22274,7 +22274,7 @@ sub_80D522C: @ 80D522C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080D524C @ =gUnknown_03004B00
+ ldr r0, _080D524C @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
movs r1, 0
strh r0, [r4, 0x3C]
@@ -22285,7 +22285,7 @@ sub_80D522C: @ 80D522C
pop {r0}
bx r0
.align 2, 0
-_080D524C: .4byte gUnknown_03004B00
+_080D524C: .4byte gBattleAnimArgs
_080D5250: .4byte sub_80D5254
thumb_func_end sub_80D522C
@@ -22305,7 +22305,7 @@ sub_80D5254: @ 80D5254
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080D52A4 @ =gUnknown_0202F7C9
+ ldr r4, _080D52A4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -22329,7 +22329,7 @@ _080D529E:
pop {r0}
bx r0
.align 2, 0
-_080D52A4: .4byte gUnknown_0202F7C9
+_080D52A4: .4byte gBattleAnimEnemyMonIndex
_080D52A8: .4byte sub_80D52AC
thumb_func_end sub_80D5254
@@ -22343,7 +22343,7 @@ sub_80D52AC: @ 80D52AC
beq _080D52F4
movs r4, 0
strh r4, [r6, 0x2E]
- ldr r5, _080D52EC @ =gUnknown_0202F7C9
+ ldr r5, _080D52EC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -22364,7 +22364,7 @@ sub_80D52AC: @ 80D52AC
bl _call_via_r1
b _080D531E
.align 2, 0
-_080D52EC: .4byte gUnknown_0202F7C9
+_080D52EC: .4byte gBattleAnimEnemyMonIndex
_080D52F0: .4byte sub_80D5324
_080D52F4:
movs r1, 0x3C
@@ -22440,7 +22440,7 @@ sub_80D5348: @ 80D5348
sub_80D5374: @ 80D5374
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080D53A8 @ =gUnknown_03004B00
+ ldr r1, _080D53A8 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -22464,7 +22464,7 @@ sub_80D5374: @ 80D5374
pop {r0}
bx r0
.align 2, 0
-_080D53A8: .4byte gUnknown_03004B00
+_080D53A8: .4byte gBattleAnimArgs
_080D53AC: .4byte move_anim_8072740
_080D53B0: .4byte sub_8078364
thumb_func_end sub_80D5374
@@ -22475,7 +22475,7 @@ sub_80D53B4: @ 80D53B4
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080D53E8 @ =gUnknown_03004B00
+ ldr r1, _080D53E8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x6]
@@ -22495,7 +22495,7 @@ sub_80D53B4: @ 80D53B4
pop {r0}
bx r0
.align 2, 0
-_080D53E8: .4byte gUnknown_03004B00
+_080D53E8: .4byte gBattleAnimArgs
_080D53EC: .4byte sub_80782D8
_080D53F0: .4byte sub_80D53F4
thumb_func_end sub_80D53B4
@@ -22595,9 +22595,9 @@ sub_80D5470: @ 80D5470
adds r0, r2
ldrh r0, [r0, 0x22]
strh r0, [r4, 0x10]
- ldr r0, _080D54D8 @ =gUnknown_0202F7C8
+ ldr r0, _080D54D8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x12]
@@ -22615,7 +22615,7 @@ sub_80D5470: @ 80D5470
.align 2, 0
_080D54D0: .4byte gTasks
_080D54D4: .4byte gSprites
-_080D54D8: .4byte gUnknown_0202F7C8
+_080D54D8: .4byte gBattleAnimPlayerMonIndex
_080D54DC: .4byte sub_80D54E0
thumb_func_end sub_80D5470
@@ -22986,7 +22986,7 @@ _080D57AC:
cmp r0, 0
bne _080D57BA
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D57BA:
add sp, 0xC
pop {r4,r5}
@@ -23021,9 +23021,9 @@ sub_80D57C4: @ 80D57C4
lsls r0, 2
adds r0, r1
ldrh r4, [r0, 0x20]
- ldr r0, _080D5818 @ =gUnknown_0202F7C8
+ ldr r0, _080D5818 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D581C
@@ -23035,7 +23035,7 @@ sub_80D57C4: @ 80D57C4
b _080D5826
.align 2, 0
_080D5814: .4byte gSprites
-_080D5818: .4byte gUnknown_0202F7C8
+_080D5818: .4byte gBattleAnimPlayerMonIndex
_080D581C:
adds r0, r4, 0
adds r0, 0x10
@@ -23203,9 +23203,9 @@ sub_80D5940: @ 80D5940
adds r0, r2
lsls r0, 16
lsrs r4, r0, 16
- ldr r0, _080D597C @ =gUnknown_0202F7C8
+ ldr r0, _080D597C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D5980
@@ -23215,7 +23215,7 @@ sub_80D5940: @ 80D5940
b _080D5986
.align 2, 0
_080D5978: .4byte gSprites
-_080D597C: .4byte gUnknown_0202F7C8
+_080D597C: .4byte gBattleAnimPlayerMonIndex
_080D5980:
lsls r0, r4, 16
movs r1, 0xB0
@@ -23313,7 +23313,7 @@ _080D5A1C:
thumb_func_start sub_80D5A20
sub_80D5A20: @ 80D5A20
push {r4,r5,lr}
- ldr r3, _080D5A64 @ =gUnknown_03004B00
+ ldr r3, _080D5A64 @ =gBattleAnimArgs
ldrh r1, [r3]
movs r2, 0
strh r1, [r0, 0x20]
@@ -23346,7 +23346,7 @@ sub_80D5A20: @ 80D5A20
pop {r0}
bx r0
.align 2, 0
-_080D5A64: .4byte gUnknown_03004B00
+_080D5A64: .4byte gBattleAnimArgs
_080D5A68: .4byte 0x000003ff
_080D5A6C: .4byte 0xfffffc00
_080D5A70: .4byte sub_80D5A74
@@ -23460,28 +23460,28 @@ _080D5B28:
adds r0, r5, 0
movs r1, 0
bl sub_80787B0
- ldr r4, _080D5B50 @ =gUnknown_03004B00
+ ldr r4, _080D5B50 @ =gBattleAnimArgs
ldrb r1, [r4, 0x4]
adds r0, r5, 0
bl StartSpriteAnim
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x3C]
- ldr r0, _080D5B54 @ =gUnknown_0202F7C8
+ ldr r0, _080D5B54 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D5B58
movs r0, 0x4
b _080D5B5A
.align 2, 0
-_080D5B50: .4byte gUnknown_03004B00
-_080D5B54: .4byte gUnknown_0202F7C8
+_080D5B50: .4byte gBattleAnimArgs
+_080D5B54: .4byte gBattleAnimPlayerMonIndex
_080D5B58:
ldr r0, _080D5B78 @ =0x0000fffc
_080D5B5A:
strh r0, [r5, 0x36]
- ldr r0, _080D5B7C @ =gUnknown_0202F7C9
+ ldr r0, _080D5B7C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -23496,14 +23496,14 @@ _080D5B5A:
b _080D5BD6
.align 2, 0
_080D5B78: .4byte 0x0000fffc
-_080D5B7C: .4byte gUnknown_0202F7C9
+_080D5B7C: .4byte gBattleAnimEnemyMonIndex
_080D5B80:
ldrh r0, [r5, 0x30]
adds r0, 0xC0
strh r0, [r5, 0x30]
- ldr r0, _080D5BA0 @ =gUnknown_0202F7C8
+ ldr r0, _080D5BA0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D5BA4
@@ -23513,7 +23513,7 @@ _080D5B80:
negs r0, r0
b _080D5BAA
.align 2, 0
-_080D5BA0: .4byte gUnknown_0202F7C8
+_080D5BA0: .4byte gBattleAnimPlayerMonIndex
_080D5BA4:
ldrh r0, [r5, 0x30]
lsls r0, 16
@@ -23579,7 +23579,7 @@ _080D5BDE:
lsls r0, 1
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
- ldr r4, _080D5C54 @ =gUnknown_0202F7C9
+ ldr r4, _080D5C54 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -23603,7 +23603,7 @@ _080D5C4E:
pop {r0}
bx r0
.align 2, 0
-_080D5C54: .4byte gUnknown_0202F7C9
+_080D5C54: .4byte gBattleAnimEnemyMonIndex
_080D5C58: .4byte sub_80D5C5C
thumb_func_end sub_80D5B0C
@@ -23668,7 +23668,7 @@ sub_80D5CC0: @ 80D5CC0
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080D5CD8
- ldr r0, _080D5D4C @ =gUnknown_03004B00
+ ldr r0, _080D5D4C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x30]
adds r0, r1, 0x1
@@ -23715,7 +23715,7 @@ _080D5CD8:
lsrs r0, 16
cmp r0, 0x83
bls _080D5D5C
- ldr r0, _080D5D58 @ =gUnknown_0202F7C9
+ ldr r0, _080D5D58 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -23729,12 +23729,12 @@ _080D5CD8:
strb r0, [r4, 0x5]
b _080D5DA0
.align 2, 0
-_080D5D4C: .4byte gUnknown_03004B00
+_080D5D4C: .4byte gBattleAnimArgs
_080D5D50: .4byte gMain
_080D5D54: .4byte 0x0000043d
-_080D5D58: .4byte gUnknown_0202F7C9
+_080D5D58: .4byte gBattleAnimEnemyMonIndex
_080D5D5C:
- ldr r0, _080D5D80 @ =gUnknown_0202F7C9
+ ldr r0, _080D5D80 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
@@ -23751,7 +23751,7 @@ _080D5D5C:
strb r1, [r4, 0x5]
b _080D5DA0
.align 2, 0
-_080D5D80: .4byte gUnknown_0202F7C9
+_080D5D80: .4byte gBattleAnimEnemyMonIndex
_080D5D84:
adds r0, r2, 0
subs r0, 0x40
@@ -23813,9 +23813,9 @@ sub_80D5DDC: @ 80D5DDC
lsls r1, 3
ldr r0, _080D5E3C @ =gTasks
adds r4, r1, r0
- ldr r0, _080D5E40 @ =gUnknown_0202F7C8
+ ldr r0, _080D5E40 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
@@ -23825,7 +23825,7 @@ sub_80D5DDC: @ 80D5DDC
movs r1, 0x1
_080D5E02:
strh r1, [r4, 0x20]
- ldr r0, _080D5E44 @ =gUnknown_0202F7C9
+ ldr r0, _080D5E44 @ =gBattleAnimEnemyMonIndex
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -23851,8 +23851,8 @@ _080D5E02:
bx r0
.align 2, 0
_080D5E3C: .4byte gTasks
-_080D5E40: .4byte gUnknown_0202F7C8
-_080D5E44: .4byte gUnknown_0202F7C9
+_080D5E40: .4byte gBattleAnimPlayerMonIndex
+_080D5E44: .4byte gBattleAnimEnemyMonIndex
_080D5E48: .4byte sub_80D5E4C
thumb_func_end sub_80D5DDC
@@ -24152,7 +24152,7 @@ _080D6044:
blt _080D6044
_080D606E:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D6074:
pop {r4-r7}
pop {r0}
@@ -24173,19 +24173,19 @@ sub_80D6080: @ 80D6080
mov r0, sp
ldrb r0, [r0, 0x8]
lsls r0, 4
- ldr r1, _080D60B0 @ =gUnknown_03004B00
+ ldr r1, _080D60B0 @ =gBattleAnimArgs
ldrb r2, [r1]
ldrh r3, [r1, 0x2]
movs r1, 0x10
bl BlendPalette
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080D60B0: .4byte gUnknown_03004B00
+_080D60B0: .4byte gBattleAnimArgs
thumb_func_end sub_80D6080
thumb_func_start sub_80D60B4
@@ -24205,7 +24205,7 @@ sub_80D60B4: @ 80D60B4
movs r3, 0x8
ldrsh r0, [r2, r3]
mov r9, r1
- ldr r4, _080D6110 @ =gUnknown_03004B00
+ ldr r4, _080D6110 @ =gBattleAnimArgs
mov r8, r4
cmp r0, 0
bne _080D60EA
@@ -24221,8 +24221,8 @@ _080D60EA:
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
- ldr r1, _080D6114 @ =gUnknown_02024BE0
- ldr r0, _080D6118 @ =gUnknown_0202F7C9
+ ldr r1, _080D6114 @ =gObjectBankIDs
+ ldr r0, _080D6118 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
@@ -24236,9 +24236,9 @@ _080D60EA:
b _080D6126
.align 2, 0
_080D610C: .4byte gTasks
-_080D6110: .4byte gUnknown_03004B00
-_080D6114: .4byte gUnknown_02024BE0
-_080D6118: .4byte gUnknown_0202F7C9
+_080D6110: .4byte gBattleAnimArgs
+_080D6114: .4byte gObjectBankIDs
+_080D6118: .4byte gBattleAnimEnemyMonIndex
_080D611C: .4byte gUnknown_083D9794
_080D6120:
ldr r4, _080D616C @ =gUnknown_083D97A4
@@ -24314,7 +24314,7 @@ _080D618E:
strh r1, [r0, 0x24]
strh r1, [r0, 0x26]
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D61B4:
pop {r3-r5}
mov r8, r3
@@ -24331,23 +24331,23 @@ _080D61C4: .4byte gSprites
sub_80D61C8: @ 80D61C8
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D61E8 @ =gUnknown_0202F7C8
+ ldr r0, _080D61E8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D61F0
- ldr r0, _080D61EC @ =gUnknown_03004B00
+ ldr r0, _080D61EC @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
strh r1, [r4, 0x20]
b _080D61FC
.align 2, 0
-_080D61E8: .4byte gUnknown_0202F7C8
-_080D61EC: .4byte gUnknown_03004B00
+_080D61E8: .4byte gBattleAnimPlayerMonIndex
+_080D61EC: .4byte gBattleAnimArgs
_080D61F0:
- ldr r1, _080D6210 @ =gUnknown_03004B00
+ ldr r1, _080D6210 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -24364,7 +24364,7 @@ _080D61FC:
pop {r0}
bx r0
.align 2, 0
-_080D6210: .4byte gUnknown_03004B00
+_080D6210: .4byte gBattleAnimArgs
_080D6214: .4byte sub_80D6218
thumb_func_end sub_80D61C8
@@ -24389,23 +24389,23 @@ _080D622E:
sub_80D6234: @ 80D6234
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D6254 @ =gUnknown_0202F7C8
+ ldr r0, _080D6254 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D625C
- ldr r0, _080D6258 @ =gUnknown_03004B00
+ ldr r0, _080D6258 @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r0, [r0]
subs r1, r0
strh r1, [r4, 0x20]
b _080D6266
.align 2, 0
-_080D6254: .4byte gUnknown_0202F7C8
-_080D6258: .4byte gUnknown_03004B00
+_080D6254: .4byte gBattleAnimPlayerMonIndex
+_080D6258: .4byte gBattleAnimArgs
_080D625C:
- ldr r0, _080D6270 @ =gUnknown_03004B00
+ ldr r0, _080D6270 @ =gBattleAnimArgs
ldrh r0, [r0]
ldrh r1, [r4, 0x20]
adds r0, r1
@@ -24417,7 +24417,7 @@ _080D6266:
pop {r0}
bx r0
.align 2, 0
-_080D6270: .4byte gUnknown_03004B00
+_080D6270: .4byte gBattleAnimArgs
_080D6274: .4byte sub_80D6278
thumb_func_end sub_80D6234
@@ -24442,7 +24442,7 @@ _080D628E:
sub_80D6294: @ 80D6294
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D62D8 @ =gUnknown_0202F7C9
+ ldr r4, _080D62D8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -24455,13 +24455,13 @@ sub_80D6294: @ 80D6294
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, _080D62DC @ =gUnknown_0202F7C8
+ ldr r0, _080D62DC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D62E4
- ldr r2, _080D62E0 @ =gUnknown_03004B00
+ ldr r2, _080D62E0 @ =gBattleAnimArgs
ldrh r0, [r5, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -24472,11 +24472,11 @@ sub_80D6294: @ 80D6294
strh r0, [r5, 0x22]
b _080D62F8
.align 2, 0
-_080D62D8: .4byte gUnknown_0202F7C9
-_080D62DC: .4byte gUnknown_0202F7C8
-_080D62E0: .4byte gUnknown_03004B00
+_080D62D8: .4byte gBattleAnimEnemyMonIndex
+_080D62DC: .4byte gBattleAnimPlayerMonIndex
+_080D62E0: .4byte gBattleAnimArgs
_080D62E4:
- ldr r0, _080D631C @ =gUnknown_03004B00
+ ldr r0, _080D631C @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r5, 0x20]
adds r1, r2
@@ -24504,7 +24504,7 @@ _080D62F8:
pop {r0}
bx r0
.align 2, 0
-_080D631C: .4byte gUnknown_03004B00
+_080D631C: .4byte gBattleAnimArgs
_080D6320: .4byte move_anim_8074EE0
_080D6324: .4byte sub_8078114
thumb_func_end sub_80D6294
@@ -24513,7 +24513,7 @@ _080D6324: .4byte sub_8078114
sub_80D6328: @ 80D6328
push {r4-r7,lr}
adds r5, r0, 0
- ldr r0, _080D6340 @ =gUnknown_03004B00
+ ldr r0, _080D6340 @ =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0x1
@@ -24524,7 +24524,7 @@ sub_80D6328: @ 80D6328
beq _080D634E
b _080D63A0
.align 2, 0
-_080D6340: .4byte gUnknown_03004B00
+_080D6340: .4byte gBattleAnimArgs
_080D6344:
cmp r0, 0x2
beq _080D6358
@@ -24532,12 +24532,12 @@ _080D6344:
beq _080D637C
b _080D63A0
_080D634E:
- ldr r0, _080D6354 @ =gUnknown_0202F7C8
+ ldr r0, _080D6354 @ =gBattleAnimPlayerMonIndex
b _080D63A2
.align 2, 0
-_080D6354: .4byte gUnknown_0202F7C8
+_080D6354: .4byte gBattleAnimPlayerMonIndex
_080D6358:
- ldr r4, _080D6370 @ =gUnknown_0202F7C8
+ ldr r4, _080D6370 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r6, 0x2
eors r0, r6
@@ -24548,14 +24548,14 @@ _080D6358:
ldrb r4, [r4]
b _080D63A4
.align 2, 0
-_080D6370: .4byte gUnknown_0202F7C8
+_080D6370: .4byte gBattleAnimPlayerMonIndex
_080D6374:
ldrb r0, [r4]
adds r4, r6, 0
eors r4, r0
b _080D63A4
_080D637C:
- ldr r0, _080D6398 @ =gUnknown_0202F7C8
+ ldr r0, _080D6398 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
movs r4, 0x2
eors r0, r4
@@ -24563,19 +24563,19 @@ _080D637C:
lsls r0, 24
cmp r0, 0
beq _080D63A0
- ldr r0, _080D639C @ =gUnknown_0202F7C9
+ ldr r0, _080D639C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
eors r4, r0
b _080D63A4
.align 2, 0
-_080D6398: .4byte gUnknown_0202F7C8
-_080D639C: .4byte gUnknown_0202F7C9
+_080D6398: .4byte gBattleAnimPlayerMonIndex
+_080D639C: .4byte gBattleAnimEnemyMonIndex
_080D63A0:
- ldr r0, _080D63C4 @ =gUnknown_0202F7C9
+ ldr r0, _080D63C4 @ =gBattleAnimEnemyMonIndex
_080D63A2:
ldrb r4, [r0]
_080D63A4:
- ldr r0, _080D63C8 @ =gUnknown_03004B00
+ ldr r0, _080D63C8 @ =gBattleAnimArgs
movs r2, 0xA
ldrsh r0, [r0, r2]
cmp r0, 0
@@ -24590,8 +24590,8 @@ _080D63A4:
movs r1, 0x1
b _080D63DE
.align 2, 0
-_080D63C4: .4byte gUnknown_0202F7C9
-_080D63C8: .4byte gUnknown_03004B00
+_080D63C4: .4byte gBattleAnimEnemyMonIndex
+_080D63C8: .4byte gBattleAnimArgs
_080D63CC:
adds r0, r4, 0
movs r1, 0x2
@@ -24607,7 +24607,7 @@ _080D63DE:
lsrs r0, 24
strh r0, [r5, 0x22]
ldr r7, _080D647C @ =gSineTable
- ldr r6, _080D6480 @ =gUnknown_03004B00
+ ldr r6, _080D6480 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
lsls r0, 1
@@ -24682,7 +24682,7 @@ _080D6442:
bx r0
.align 2, 0
_080D647C: .4byte gSineTable
-_080D6480: .4byte gUnknown_03004B00
+_080D6480: .4byte gBattleAnimArgs
_080D6484: .4byte gOamMatrices
_080D6488: .4byte sub_80DA48C
thumb_func_end sub_80D6328
@@ -24693,12 +24693,12 @@ sub_80D648C: @ 80D648C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080D6500 @ =gUnknown_03004B00
+ ldr r5, _080D6500 @ =gBattleAnimArgs
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r6, _080D6504 @ =gUnknown_0202F7C9
+ ldr r6, _080D6504 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -24743,8 +24743,8 @@ sub_80D648C: @ 80D648C
pop {r0}
bx r0
.align 2, 0
-_080D6500: .4byte gUnknown_03004B00
-_080D6504: .4byte gUnknown_0202F7C9
+_080D6500: .4byte gBattleAnimArgs
+_080D6504: .4byte gBattleAnimEnemyMonIndex
_080D6508: .4byte 0x000003ff
_080D650C: .4byte 0xfffffc00
_080D6510: .4byte sub_80D6514
@@ -24866,24 +24866,24 @@ sub_80D65DC: @ 80D65DC
ands r0, r1
cmp r0, 0
beq _080D65FE
- ldr r0, _080D664C @ =gUnknown_0202F7C9
+ ldr r0, _080D664C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D6606
_080D65FE:
- ldr r1, _080D6650 @ =gUnknown_03004B00
+ ldr r1, _080D6650 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
_080D6606:
- ldr r5, _080D664C @ =gUnknown_0202F7C9
+ ldr r5, _080D664C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D6650 @ =gUnknown_03004B00
+ ldr r4, _080D6650 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4, 0x2]
adds r0, r1
@@ -24909,8 +24909,8 @@ _080D6606:
.align 2, 0
_080D6644: .4byte gMain
_080D6648: .4byte 0x0000043d
-_080D664C: .4byte gUnknown_0202F7C9
-_080D6650: .4byte gUnknown_03004B00
+_080D664C: .4byte gBattleAnimEnemyMonIndex
+_080D6650: .4byte gBattleAnimArgs
_080D6654: .4byte sub_80D658C
thumb_func_end sub_80D65DC
@@ -24918,7 +24918,7 @@ _080D6654: .4byte sub_80D658C
sub_80D6658: @ 80D6658
push {r4-r6,lr}
adds r5, r0, 0
- ldr r1, _080D6674 @ =gUnknown_03004B00
+ ldr r1, _080D6674 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x2E]
movs r2, 0xE
@@ -24928,13 +24928,13 @@ sub_80D6658: @ 80D6658
ands r0, r1
cmp r0, 0
beq _080D667C
- ldr r0, _080D6678 @ =gUnknown_0202F7C9
+ ldr r0, _080D6678 @ =gBattleAnimEnemyMonIndex
b _080D667E
.align 2, 0
-_080D6674: .4byte gUnknown_03004B00
-_080D6678: .4byte gUnknown_0202F7C9
+_080D6674: .4byte gBattleAnimArgs
+_080D6678: .4byte gBattleAnimEnemyMonIndex
_080D667C:
- ldr r0, _080D670C @ =gUnknown_0202F7C8
+ ldr r0, _080D670C @ =gBattleAnimPlayerMonIndex
_080D667E:
ldrb r6, [r0]
ldr r0, _080D6710 @ =gMain
@@ -24946,12 +24946,12 @@ _080D667E:
cmp r0, 0
beq _080D669C
adds r0, r6, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D66A4
_080D669C:
- ldr r1, _080D6718 @ =gUnknown_03004B00
+ ldr r1, _080D6718 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -24960,7 +24960,7 @@ _080D66A4:
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080D6718 @ =gUnknown_03004B00
+ ldr r4, _080D6718 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -25005,10 +25005,10 @@ _080D66A4:
pop {r0}
bx r0
.align 2, 0
-_080D670C: .4byte gUnknown_0202F7C8
+_080D670C: .4byte gBattleAnimPlayerMonIndex
_080D6710: .4byte gMain
_080D6714: .4byte 0x0000043d
-_080D6718: .4byte gUnknown_03004B00
+_080D6718: .4byte gBattleAnimArgs
_080D671C: .4byte 0x00007fff
_080D6720: .4byte 0x000003ff
_080D6724: .4byte 0xfffffc00
@@ -25081,7 +25081,7 @@ sub_80D679C: @ 80D679C
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
- ldr r3, _080D67D8 @ =gUnknown_03004B00
+ ldr r3, _080D67D8 @ =gBattleAnimArgs
movs r5, 0x6
ldrsh r0, [r3, r5]
lsls r0, 2
@@ -25104,7 +25104,7 @@ sub_80D679C: @ 80D679C
movs r0, 0x10
b _080D67F2
.align 2, 0
-_080D67D8: .4byte gUnknown_03004B00
+_080D67D8: .4byte gBattleAnimArgs
_080D67DC: .4byte 0x000003ff
_080D67E0: .4byte 0xfffffc00
_080D67E4:
@@ -25119,7 +25119,7 @@ _080D67F2:
orrs r1, r0
strb r1, [r4, 0x3]
_080D67F6:
- ldr r0, _080D6810 @ =gUnknown_03004B00
+ ldr r0, _080D6810 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r0, _080D6814 @ =sub_80782D8
@@ -25131,7 +25131,7 @@ _080D67F6:
pop {r0}
bx r0
.align 2, 0
-_080D6810: .4byte gUnknown_03004B00
+_080D6810: .4byte gBattleAnimArgs
_080D6814: .4byte sub_80782D8
_080D6818: .4byte move_anim_8072740
thumb_func_end sub_80D679C
@@ -25142,7 +25142,7 @@ sub_80D681C: @ 80D681C
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, _080D6864 @ =gUnknown_0202F7C9
+ ldr r6, _080D6864 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r6]
movs r1, 0
bl sub_8077ABC
@@ -25152,7 +25152,7 @@ sub_80D681C: @ 80D681C
lsls r4, 3
adds r4, r1
lsls r0, 24
- ldr r5, _080D686C @ =gUnknown_03004B00
+ ldr r5, _080D686C @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r5]
adds r0, r1
@@ -25173,9 +25173,9 @@ sub_80D681C: @ 80D681C
pop {r0}
bx r0
.align 2, 0
-_080D6864: .4byte gUnknown_0202F7C9
+_080D6864: .4byte gBattleAnimEnemyMonIndex
_080D6868: .4byte gTasks
-_080D686C: .4byte gUnknown_03004B00
+_080D686C: .4byte gBattleAnimArgs
_080D6870: .4byte sub_80D6874
thumb_func_end sub_80D681C
@@ -25337,7 +25337,7 @@ _080D6992:
_080D69AC: .4byte gSpriteTemplate_83D9938
_080D69B0:
mov r0, r9
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080D69FC
_080D69B8:
cmp r7, 0
@@ -25439,7 +25439,7 @@ _080D6A66:
sub_80D6A6C: @ 80D6A6C
push {r4-r7,lr}
adds r4, r0, 0
- ldr r0, _080D6AD4 @ =gUnknown_03004B00
+ ldr r0, _080D6AD4 @ =gBattleAnimArgs
ldrh r1, [r0]
ldrh r2, [r4, 0x20]
adds r1, r2
@@ -25476,7 +25476,7 @@ sub_80D6A6C: @ 80D6A6C
ands r0, r5
orrs r0, r1
strh r0, [r6, 0x4]
- ldr r1, _080D6AE8 @ =gUnknown_0202F7B2
+ ldr r1, _080D6AE8 @ =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
@@ -25489,12 +25489,12 @@ sub_80D6A6C: @ 80D6A6C
pop {r0}
bx r0
.align 2, 0
-_080D6AD4: .4byte gUnknown_03004B00
+_080D6AD4: .4byte gBattleAnimArgs
_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950
_080D6ADC: .4byte gSprites
_080D6AE0: .4byte 0x000003ff
_080D6AE4: .4byte 0xfffffc00
-_080D6AE8: .4byte gUnknown_0202F7B2
+_080D6AE8: .4byte gAnimVisualTaskCount
_080D6AEC: .4byte sub_80D6AF0
thumb_func_end sub_80D6A6C
@@ -25551,19 +25551,19 @@ sub_80D6B3C: @ 80D6B3C
lsls r1, 3
ldr r0, _080D6B5C @ =gTasks
adds r5, r1, r0
- ldr r0, _080D6B60 @ =gUnknown_03004B00
+ ldr r0, _080D6B60 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D6B68
- ldr r4, _080D6B64 @ =gUnknown_0202F7C8
+ ldr r4, _080D6B64 @ =gBattleAnimPlayerMonIndex
b _080D6B6A
.align 2, 0
_080D6B5C: .4byte gTasks
-_080D6B60: .4byte gUnknown_03004B00
-_080D6B64: .4byte gUnknown_0202F7C8
+_080D6B60: .4byte gBattleAnimArgs
+_080D6B64: .4byte gBattleAnimPlayerMonIndex
_080D6B68:
- ldr r4, _080D6BAC @ =gUnknown_0202F7C9
+ ldr r4, _080D6BAC @ =gBattleAnimEnemyMonIndex
_080D6B6A:
ldrb r0, [r4]
movs r1, 0x2
@@ -25577,7 +25577,7 @@ _080D6B6A:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x26]
- ldr r2, _080D6BB0 @ =gUnknown_03004B00
+ ldr r2, _080D6BB0 @ =gBattleAnimArgs
ldrh r0, [r2, 0x2]
movs r1, 0
strh r0, [r5, 0x14]
@@ -25596,8 +25596,8 @@ _080D6B6A:
pop {r0}
bx r0
.align 2, 0
-_080D6BAC: .4byte gUnknown_0202F7C9
-_080D6BB0: .4byte gUnknown_03004B00
+_080D6BAC: .4byte gBattleAnimEnemyMonIndex
+_080D6BB0: .4byte gBattleAnimArgs
_080D6BB4: .4byte sub_80D6BB8
thumb_func_end sub_80D6B3C
@@ -25731,7 +25731,7 @@ _080D6CB8:
cmp r0, 0
bne _080D6CC6
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D6CC6:
pop {r4-r7}
pop {r0}
@@ -25785,18 +25785,18 @@ _080D6D14: .4byte sub_80D6CCC
sub_80D6D18: @ 80D6D18
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D6D2C @ =gUnknown_03004B00
+ ldr r0, _080D6D2C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D6D34
- ldr r4, _080D6D30 @ =gUnknown_0202F7C8
+ ldr r4, _080D6D30 @ =gBattleAnimPlayerMonIndex
b _080D6D36
.align 2, 0
-_080D6D2C: .4byte gUnknown_03004B00
-_080D6D30: .4byte gUnknown_0202F7C8
+_080D6D2C: .4byte gBattleAnimArgs
+_080D6D30: .4byte gBattleAnimPlayerMonIndex
_080D6D34:
- ldr r4, _080D6D64 @ =gUnknown_0202F7C9
+ ldr r4, _080D6D64 @ =gBattleAnimEnemyMonIndex
_080D6D36:
ldrb r0, [r4]
movs r1, 0x2
@@ -25819,7 +25819,7 @@ _080D6D36:
pop {r0}
bx r0
.align 2, 0
-_080D6D64: .4byte gUnknown_0202F7C9
+_080D6D64: .4byte gBattleAnimEnemyMonIndex
_080D6D68: .4byte move_anim_8074EE0
_080D6D6C: .4byte sub_80785E4
thumb_func_end sub_80D6D18
@@ -25828,18 +25828,18 @@ _080D6D6C: .4byte sub_80785E4
sub_80D6D70: @ 80D6D70
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D6D84 @ =gUnknown_03004B00
+ ldr r0, _080D6D84 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D6D8C
- ldr r4, _080D6D88 @ =gUnknown_0202F7C8
+ ldr r4, _080D6D88 @ =gBattleAnimPlayerMonIndex
b _080D6D8E
.align 2, 0
-_080D6D84: .4byte gUnknown_03004B00
-_080D6D88: .4byte gUnknown_0202F7C8
+_080D6D84: .4byte gBattleAnimArgs
+_080D6D88: .4byte gBattleAnimPlayerMonIndex
_080D6D8C:
- ldr r4, _080D6DC8 @ =gUnknown_0202F7C9
+ ldr r4, _080D6DC8 @ =gBattleAnimEnemyMonIndex
_080D6D8E:
ldrb r0, [r4]
movs r1, 0x2
@@ -25853,7 +25853,7 @@ _080D6D8E:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r1, _080D6DCC @ =gUnknown_03004B00
+ ldr r1, _080D6DCC @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r5, 0x24]
ldrh r0, [r1, 0x4]
@@ -25867,8 +25867,8 @@ _080D6D8E:
pop {r0}
bx r0
.align 2, 0
-_080D6DC8: .4byte gUnknown_0202F7C9
-_080D6DCC: .4byte gUnknown_03004B00
+_080D6DC8: .4byte gBattleAnimEnemyMonIndex
+_080D6DCC: .4byte gBattleAnimArgs
_080D6DD0: .4byte move_anim_8072740
_080D6DD4: .4byte sub_8078600
thumb_func_end sub_80D6D70
@@ -25879,7 +25879,7 @@ sub_80D6DD8: @ 80D6DD8
adds r5, r0, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r4, _080D6E30 @ =gUnknown_0202F7C8
+ ldr r4, _080D6E30 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -25900,7 +25900,7 @@ sub_80D6DD8: @ 80D6DD8
movs r0, 0x10
strh r0, [r5, 0x3C]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -25916,7 +25916,7 @@ _080D6E26:
pop {r0}
bx r0
.align 2, 0
-_080D6E30: .4byte gUnknown_0202F7C8
+_080D6E30: .4byte gBattleAnimPlayerMonIndex
_080D6E34: .4byte sub_80D6E38
thumb_func_end sub_80D6DD8
@@ -26011,7 +26011,7 @@ _080D6ED0:
lsrs r0, 24
movs r6, 0
strh r0, [r5, 0x26]
- ldr r4, _080D6F04 @ =gUnknown_0202F7C8
+ ldr r4, _080D6F04 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -26019,7 +26019,7 @@ _080D6ED0:
lsrs r0, 24
strh r0, [r5, 0x24]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D6F0C
@@ -26028,7 +26028,7 @@ _080D6ED0:
movs r0, 0x2
b _080D6F12
.align 2, 0
-_080D6F04: .4byte gUnknown_0202F7C8
+_080D6F04: .4byte gBattleAnimPlayerMonIndex
_080D6F08: .4byte 0x0000ffe0
_080D6F0C:
movs r0, 0x20
@@ -26154,7 +26154,7 @@ _080D6FE0:
ands r1, r2
strb r1, [r0]
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D7000:
pop {r4-r6}
pop {r0}
@@ -26193,9 +26193,9 @@ _080D7034:
_080D703A:
b _080D718E
_080D703C:
- ldr r4, _080D707C @ =gUnknown_0202F7C8
+ ldr r4, _080D707C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
@@ -26206,7 +26206,7 @@ _080D703C:
_080D7052:
movs r6, 0
strh r1, [r5, 0xA]
- ldr r0, _080D7080 @ =gUnknown_03004B00
+ ldr r0, _080D7080 @ =gBattleAnimArgs
movs r1, 0
ldrsh r2, [r0, r1]
adds r3, r0, 0
@@ -26225,8 +26225,8 @@ _080D7052:
ldr r0, _080D7084 @ =0x0000fff0
b _080D70F0
.align 2, 0
-_080D707C: .4byte gUnknown_0202F7C8
-_080D7080: .4byte gUnknown_03004B00
+_080D707C: .4byte gBattleAnimPlayerMonIndex
+_080D7080: .4byte gBattleAnimArgs
_080D7084: .4byte 0x0000fff0
_080D7088:
ldrb r0, [r4]
@@ -26254,7 +26254,7 @@ _080D70B0:
movs r0, 0x78
subs r0, r1
strh r0, [r5, 0xE]
- ldr r4, _080D70E4 @ =gUnknown_0202F7C9
+ ldr r4, _080D70E4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x3
bl sub_8077ABC
@@ -26273,7 +26273,7 @@ _080D70B0:
strh r0, [r5, 0x10]
b _080D7126
.align 2, 0
-_080D70E4: .4byte gUnknown_0202F7C9
+_080D70E4: .4byte gBattleAnimEnemyMonIndex
_080D70E8:
ldr r0, _080D710C @ =0x0000fff0
strh r0, [r5, 0xE]
@@ -26360,7 +26360,7 @@ _080D7180:
cmp r0, 0
bne _080D718E
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D718E:
pop {r4-r6}
pop {r0}
@@ -26506,7 +26506,7 @@ sub_80D727C: @ 80D727C
beq _080D72C0
b _080D72D4
_080D728E:
- ldr r4, _080D72BC @ =gUnknown_0202F7C8
+ ldr r4, _080D72BC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -26527,7 +26527,7 @@ _080D728E:
strh r0, [r5, 0x2E]
b _080D72D4
.align 2, 0
-_080D72BC: .4byte gUnknown_0202F7C8
+_080D72BC: .4byte gBattleAnimPlayerMonIndex
_080D72C0:
adds r0, r5, 0
adds r0, 0x3F
@@ -26576,7 +26576,7 @@ _080D7308:
.4byte _080D7444
.4byte _080D7454
_080D731C:
- ldr r4, _080D73A0 @ =gUnknown_0202F7C8
+ ldr r4, _080D73A0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -26591,7 +26591,7 @@ _080D731C:
strh r0, [r5, 0x16]
movs r0, 0x4
strh r0, [r5, 0x18]
- ldr r0, _080D73A4 @ =gUnknown_0202F7C9
+ ldr r0, _080D73A4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
movs r1, 0x2
bl sub_8077ABC
@@ -26636,8 +26636,8 @@ _080D731C:
adds r0, 0x1
b _080D7466
.align 2, 0
-_080D73A0: .4byte gUnknown_0202F7C8
-_080D73A4: .4byte gUnknown_0202F7C9
+_080D73A0: .4byte gBattleAnimPlayerMonIndex
+_080D73A4: .4byte gBattleAnimEnemyMonIndex
_080D73A8: .4byte 0x0000ffff
_080D73AC:
ldrh r0, [r5, 0xA]
@@ -26727,7 +26727,7 @@ _080D7444:
cmp r0, 0
bne _080D7468
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080D7468
_080D7454:
ldrh r1, [r5, 0x1E]
@@ -26934,7 +26934,7 @@ _080D75C4:
beq _080D7640
b _080D764E
_080D75CA:
- ldr r0, _080D7614 @ =gUnknown_0202F7C9
+ ldr r0, _080D7614 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -26956,7 +26956,7 @@ _080D75E4:
bgt _080D75E4
strh r1, [r5, 0x24]
_080D75F4:
- ldr r4, _080D7614 @ =gUnknown_0202F7C9
+ ldr r4, _080D7614 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -26971,7 +26971,7 @@ _080D75F4:
strh r0, [r5, 0x20]
b _080D7638
.align 2, 0
-_080D7614: .4byte gUnknown_0202F7C9
+_080D7614: .4byte gBattleAnimEnemyMonIndex
_080D7618:
ldrh r0, [r5, 0xA]
adds r0, 0x1
@@ -26999,7 +26999,7 @@ _080D7640:
cmp r0, 0
bne _080D764E
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D764E:
pop {r4,r5}
pop {r0}
@@ -27121,7 +27121,7 @@ sub_80D7704: @ 80D7704
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
- ldr r4, _080D7814 @ =gUnknown_0202F7C9
+ ldr r4, _080D7814 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -27134,7 +27134,7 @@ sub_80D7704: @ 80D7704
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r4, _080D7818 @ =gUnknown_0202F7C8
+ ldr r4, _080D7818 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -27146,7 +27146,7 @@ sub_80D7704: @ 80D7704
bl sub_8077ABC
lsls r0, 24
lsrs r6, r0, 24
- ldr r1, _080D781C @ =gUnknown_03004B00
+ ldr r1, _080D781C @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r1]
@@ -27223,7 +27223,7 @@ _080D77DE:
movs r2, 0x98
lsls r2, 1
mov r12, r2
- ldr r1, _080D781C @ =gUnknown_03004B00
+ ldr r1, _080D781C @ =gBattleAnimArgs
mov r10, r1
cmp r0, r12
bhi _080D784A
@@ -27235,9 +27235,9 @@ _080D77DE:
.align 2, 0
_080D780C: .4byte 0x000003ff
_080D7810: .4byte 0xfffffc00
-_080D7814: .4byte gUnknown_0202F7C9
-_080D7818: .4byte gUnknown_0202F7C8
-_080D781C: .4byte gUnknown_03004B00
+_080D7814: .4byte gBattleAnimEnemyMonIndex
+_080D7818: .4byte gBattleAnimPlayerMonIndex
+_080D781C: .4byte gBattleAnimArgs
_080D7820:
lsls r1, r3, 16
asrs r1, 16
@@ -27351,7 +27351,7 @@ _080D78E6:
sub_80D78EC: @ 80D78EC
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D7920 @ =gUnknown_03004B00
+ ldr r0, _080D7920 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x2E]
movs r0, 0x3C
@@ -27374,7 +27374,7 @@ sub_80D78EC: @ 80D78EC
pop {r0}
bx r0
.align 2, 0
-_080D7920: .4byte gUnknown_03004B00
+_080D7920: .4byte gBattleAnimArgs
_080D7924: .4byte move_anim_8072740
_080D7928: .4byte sub_8078174
thumb_func_end sub_80D78EC
@@ -27385,42 +27385,42 @@ sub_80D792C: @ 80D792C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080D7960 @ =gUnknown_0202F7C9
+ ldr r0, _080D7960 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
- ldr r0, _080D7964 @ =gUnknown_0202F7C8
+ ldr r0, _080D7964 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D796C
- ldr r0, _080D7968 @ =gUnknown_03004B00
+ ldr r0, _080D7968 @ =gBattleAnimArgs
ldrh r1, [r4, 0x32]
ldrh r0, [r0, 0x4]
subs r1, r0
strh r1, [r4, 0x32]
b _080D7976
.align 2, 0
-_080D7960: .4byte gUnknown_0202F7C9
-_080D7964: .4byte gUnknown_0202F7C8
-_080D7968: .4byte gUnknown_03004B00
+_080D7960: .4byte gBattleAnimEnemyMonIndex
+_080D7964: .4byte gBattleAnimPlayerMonIndex
+_080D7968: .4byte gBattleAnimArgs
_080D796C:
- ldr r0, _080D79A4 @ =gUnknown_03004B00
+ ldr r0, _080D79A4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
ldrh r1, [r4, 0x32]
adds r0, r1
strh r0, [r4, 0x32]
_080D7976:
- ldr r0, _080D79A8 @ =gUnknown_0202F7C9
+ ldr r0, _080D79A8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
- ldr r1, _080D79A4 @ =gUnknown_03004B00
+ ldr r1, _080D79A4 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r2, [r1, 0x6]
adds r0, r2
@@ -27436,8 +27436,8 @@ _080D7976:
pop {r0}
bx r0
.align 2, 0
-_080D79A4: .4byte gUnknown_03004B00
-_080D79A8: .4byte gUnknown_0202F7C9
+_080D79A4: .4byte gBattleAnimArgs
+_080D79A8: .4byte gBattleAnimEnemyMonIndex
_080D79AC: .4byte move_anim_8072740
_080D79B0: .4byte sub_8078B34
thumb_func_end sub_80D792C
@@ -27446,7 +27446,7 @@ _080D79B0: .4byte sub_8078B34
sub_80D79B4: @ 80D79B4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D79CC @ =gUnknown_03004B00
+ ldr r5, _080D79CC @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -27456,9 +27456,9 @@ sub_80D79B4: @ 80D79B4
bl sub_8078764
b _080D7A06
.align 2, 0
-_080D79CC: .4byte gUnknown_03004B00
+_080D79CC: .4byte gBattleAnimArgs
_080D79D0:
- ldr r0, _080D7A18 @ =gUnknown_0202F7C9
+ ldr r0, _080D7A18 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -27466,9 +27466,9 @@ _080D79D0:
adds r3, 0x22
movs r1, 0x1
bl sub_807A3FC
- ldr r0, _080D7A1C @ =gUnknown_0202F7C8
+ ldr r0, _080D7A1C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D79F6
@@ -27494,8 +27494,8 @@ _080D7A06:
pop {r0}
bx r0
.align 2, 0
-_080D7A18: .4byte gUnknown_0202F7C9
-_080D7A1C: .4byte gUnknown_0202F7C8
+_080D7A18: .4byte gBattleAnimEnemyMonIndex
+_080D7A1C: .4byte gBattleAnimPlayerMonIndex
_080D7A20: .4byte sub_80D7A28
_080D7A24: .4byte sub_80785E4
thumb_func_end sub_80D79B4
@@ -27540,7 +27540,7 @@ sub_80D7A64: @ 80D7A64
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r6, _080D7AAC @ =gUnknown_03004B00
+ ldr r6, _080D7AAC @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -27551,7 +27551,7 @@ sub_80D7A64: @ 80D7A64
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080D7AB4
- ldr r4, _080D7AB0 @ =gUnknown_0202F7C9
+ ldr r4, _080D7AB0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -27568,10 +27568,10 @@ sub_80D7A64: @ 80D7A64
strh r0, [r5, 0x36]
b _080D7AC6
.align 2, 0
-_080D7AAC: .4byte gUnknown_03004B00
-_080D7AB0: .4byte gUnknown_0202F7C9
+_080D7AAC: .4byte gBattleAnimArgs
+_080D7AB0: .4byte gBattleAnimEnemyMonIndex
_080D7AB4:
- ldr r0, _080D7AE0 @ =gUnknown_0202F7C9
+ ldr r0, _080D7AE0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -27580,24 +27580,24 @@ _080D7AB4:
movs r1, 0x1
bl sub_807A3FC
_080D7AC6:
- ldr r0, _080D7AE4 @ =gUnknown_0202F7C8
+ ldr r0, _080D7AE4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D7AEC
- ldr r0, _080D7AE8 @ =gUnknown_03004B00
+ ldr r0, _080D7AE8 @ =gBattleAnimArgs
ldrh r1, [r5, 0x32]
ldrh r0, [r0, 0x4]
subs r1, r0
strh r1, [r5, 0x32]
b _080D7AF6
.align 2, 0
-_080D7AE0: .4byte gUnknown_0202F7C9
-_080D7AE4: .4byte gUnknown_0202F7C8
-_080D7AE8: .4byte gUnknown_03004B00
+_080D7AE0: .4byte gBattleAnimEnemyMonIndex
+_080D7AE4: .4byte gBattleAnimPlayerMonIndex
+_080D7AE8: .4byte gBattleAnimArgs
_080D7AEC:
- ldr r0, _080D7B94 @ =gUnknown_03004B00
+ ldr r0, _080D7B94 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
ldrh r2, [r5, 0x32]
adds r0, r2
@@ -27684,7 +27684,7 @@ _080D7B76:
pop {r0}
bx r0
.align 2, 0
-_080D7B94: .4byte gUnknown_03004B00
+_080D7B94: .4byte gBattleAnimArgs
_080D7B98: .4byte sub_8078D8C
_080D7B9C: .4byte sub_80D7BA0
thumb_func_end sub_80D7A64
@@ -27706,9 +27706,9 @@ sub_80D7BA0: @ 80D7BA0
strh r5, [r4, 0x24]
movs r0, 0x80
strh r0, [r4, 0x2E]
- ldr r0, _080D7BFC @ =gUnknown_0202F7C8
+ ldr r0, _080D7BFC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
ldr r1, _080D7C00 @ =0x0000ffec
cmp r0, 0
@@ -27735,7 +27735,7 @@ _080D7BD0:
pop {r0}
bx r0
.align 2, 0
-_080D7BFC: .4byte gUnknown_0202F7C8
+_080D7BFC: .4byte gBattleAnimPlayerMonIndex
_080D7C00: .4byte 0x0000ffec
_080D7C04: .4byte sub_80D7C08
thumb_func_end sub_80D7BA0
@@ -27744,9 +27744,9 @@ _080D7C04: .4byte sub_80D7C08
sub_80D7C08: @ 80D7C08
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D7C5C @ =gUnknown_0202F7C8
+ ldr r0, _080D7C5C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
ldr r1, _080D7C60 @ =0x0000ffec
cmp r0, 0
@@ -27782,7 +27782,7 @@ _080D7C1E:
strh r0, [r4, 0x38]
b _080D7C82
.align 2, 0
-_080D7C5C: .4byte gUnknown_0202F7C8
+_080D7C5C: .4byte gBattleAnimPlayerMonIndex
_080D7C60: .4byte 0x0000ffec
_080D7C64:
ldrh r0, [r4, 0x24]
@@ -27855,7 +27855,7 @@ sub_80D7CD4: @ 80D7CD4
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080D7D18 @ =gUnknown_03004B00
+ ldr r1, _080D7D18 @ =gBattleAnimArgs
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -27866,7 +27866,7 @@ sub_80D7CD4: @ 80D7CD4
ldrsh r0, [r1, r2]
cmp r0, 0
bne _080D7D20
- ldr r4, _080D7D1C @ =gUnknown_0202F7C9
+ ldr r4, _080D7D1C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -27881,10 +27881,10 @@ sub_80D7CD4: @ 80D7CD4
strh r0, [r5, 0x36]
b _080D7D32
.align 2, 0
-_080D7D18: .4byte gUnknown_03004B00
-_080D7D1C: .4byte gUnknown_0202F7C9
+_080D7D18: .4byte gBattleAnimArgs
+_080D7D1C: .4byte gBattleAnimEnemyMonIndex
_080D7D20:
- ldr r0, _080D7D50 @ =gUnknown_0202F7C9
+ ldr r0, _080D7D50 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -27893,13 +27893,13 @@ _080D7D20:
movs r1, 0x1
bl sub_807A3FC
_080D7D32:
- ldr r0, _080D7D54 @ =gUnknown_0202F7C8
+ ldr r0, _080D7D54 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D7D5C
- ldr r0, _080D7D58 @ =gUnknown_03004B00
+ ldr r0, _080D7D58 @ =gBattleAnimArgs
ldrh r1, [r5, 0x32]
ldrh r2, [r0, 0x4]
subs r1, r2
@@ -27907,11 +27907,11 @@ _080D7D32:
adds r1, r0, 0
b _080D7D66
.align 2, 0
-_080D7D50: .4byte gUnknown_0202F7C9
-_080D7D54: .4byte gUnknown_0202F7C8
-_080D7D58: .4byte gUnknown_03004B00
+_080D7D50: .4byte gBattleAnimEnemyMonIndex
+_080D7D54: .4byte gBattleAnimPlayerMonIndex
+_080D7D58: .4byte gBattleAnimArgs
_080D7D5C:
- ldr r1, _080D7E10 @ =gUnknown_03004B00
+ ldr r1, _080D7E10 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
ldrh r2, [r5, 0x32]
adds r0, r2
@@ -27981,7 +27981,7 @@ _080D7DCE:
strh r0, [r5, 0x22]
strh r1, [r5, 0x26]
strh r1, [r5, 0x24]
- ldr r1, _080D7E10 @ =gUnknown_03004B00
+ ldr r1, _080D7E10 @ =gBattleAnimArgs
ldr r6, _080D7E14 @ =sub_80D7E18
mov r3, sp
adds r2, r7, 0
@@ -28004,7 +28004,7 @@ _080D7DEE:
pop {r0}
bx r0
.align 2, 0
-_080D7E10: .4byte gUnknown_03004B00
+_080D7E10: .4byte gBattleAnimArgs
_080D7E14: .4byte sub_80D7E18
thumb_func_end sub_80D7CD4
@@ -28076,7 +28076,7 @@ sub_80D7E88: @ 80D7E88
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D7EF4
- ldr r5, _080D7EA8 @ =gUnknown_03004B00
+ ldr r5, _080D7EA8 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -28086,9 +28086,9 @@ sub_80D7E88: @ 80D7E88
bl sub_8078764
b _080D7EE2
.align 2, 0
-_080D7EA8: .4byte gUnknown_03004B00
+_080D7EA8: .4byte gBattleAnimArgs
_080D7EAC:
- ldr r0, _080D7EEC @ =gUnknown_0202F7C9
+ ldr r0, _080D7EEC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -28096,9 +28096,9 @@ _080D7EAC:
adds r3, 0x22
movs r1, 0
bl sub_807A3FC
- ldr r0, _080D7EF0 @ =gUnknown_0202F7C8
+ ldr r0, _080D7EF0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D7ED2
@@ -28120,8 +28120,8 @@ _080D7EE2:
strh r0, [r4, 0x2E]
b _080D7F08
.align 2, 0
-_080D7EEC: .4byte gUnknown_0202F7C9
-_080D7EF0: .4byte gUnknown_0202F7C8
+_080D7EEC: .4byte gBattleAnimEnemyMonIndex
+_080D7EF0: .4byte gBattleAnimPlayerMonIndex
_080D7EF4:
adds r0, r4, 0
adds r0, 0x3F
@@ -28142,7 +28142,7 @@ _080D7F08:
sub_80D7F10: @ 80D7F10
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080D7F30 @ =gUnknown_03004B00
+ ldr r6, _080D7F30 @ =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -28156,9 +28156,9 @@ sub_80D7F10: @ 80D7F10
bl sub_80787B0
b _080D7F72
.align 2, 0
-_080D7F30: .4byte gUnknown_03004B00
+_080D7F30: .4byte gBattleAnimArgs
_080D7F34:
- ldr r4, _080D7F5C @ =gUnknown_0202F7C8
+ ldr r4, _080D7F5C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
@@ -28167,7 +28167,7 @@ _080D7F34:
movs r1, 0
bl sub_807A3FC
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D7F60
@@ -28176,24 +28176,24 @@ _080D7F34:
subs r0, r1
b _080D7F66
.align 2, 0
-_080D7F5C: .4byte gUnknown_0202F7C8
+_080D7F5C: .4byte gBattleAnimPlayerMonIndex
_080D7F60:
ldrh r0, [r6]
ldrh r1, [r5, 0x20]
adds r0, r1
_080D7F66:
strh r0, [r5, 0x20]
- ldr r0, _080D7F78 @ =gUnknown_03004B00
+ ldr r0, _080D7F78 @ =gBattleAnimArgs
ldrh r0, [r0, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
_080D7F72:
- ldr r0, _080D7F7C @ =gUnknown_0202F7C8
+ ldr r0, _080D7F7C @ =gBattleAnimPlayerMonIndex
b _080D7FD0
.align 2, 0
-_080D7F78: .4byte gUnknown_03004B00
-_080D7F7C: .4byte gUnknown_0202F7C8
+_080D7F78: .4byte gBattleAnimArgs
+_080D7F7C: .4byte gBattleAnimPlayerMonIndex
_080D7F80:
movs r1, 0xA
ldrsh r0, [r6, r1]
@@ -28204,7 +28204,7 @@ _080D7F80:
bl sub_8078764
b _080D7FCE
_080D7F92:
- ldr r4, _080D7FB8 @ =gUnknown_0202F7C9
+ ldr r4, _080D7FB8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
@@ -28213,7 +28213,7 @@ _080D7F92:
movs r1, 0
bl sub_807A3FC
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D7FBC
@@ -28222,29 +28222,29 @@ _080D7F92:
subs r0, r1
b _080D7FC2
.align 2, 0
-_080D7FB8: .4byte gUnknown_0202F7C9
+_080D7FB8: .4byte gBattleAnimEnemyMonIndex
_080D7FBC:
ldrh r0, [r6]
ldrh r1, [r5, 0x20]
adds r0, r1
_080D7FC2:
strh r0, [r5, 0x20]
- ldr r0, _080D7FEC @ =gUnknown_03004B00
+ ldr r0, _080D7FEC @ =gBattleAnimArgs
ldrh r0, [r0, 0x2]
ldrh r1, [r5, 0x22]
adds r0, r1
strh r0, [r5, 0x22]
_080D7FCE:
- ldr r0, _080D7FF0 @ =gUnknown_0202F7C9
+ ldr r0, _080D7FF0 @ =gBattleAnimEnemyMonIndex
_080D7FD0:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
- ldr r0, _080D7FEC @ =gUnknown_03004B00
+ ldr r0, _080D7FEC @ =gBattleAnimArgs
movs r1, 0xA
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080D7FE8
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _080D7FF4
@@ -28252,15 +28252,15 @@ _080D7FE8:
movs r0, 0x20
b _080D7FF6
.align 2, 0
-_080D7FEC: .4byte gUnknown_03004B00
-_080D7FF0: .4byte gUnknown_0202F7C9
+_080D7FEC: .4byte gBattleAnimArgs
+_080D7FF0: .4byte gBattleAnimEnemyMonIndex
_080D7FF4:
movs r0, 0x40
_080D7FF6:
strh r0, [r5, 0x3A]
- ldr r0, _080D803C @ =gUnknown_0202F7C9
+ ldr r0, _080D803C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D800C
@@ -28268,7 +28268,7 @@ _080D7FF6:
adds r0, 0x8
strh r0, [r5, 0x22]
_080D800C:
- ldr r1, _080D8040 @ =gUnknown_03004B00
+ ldr r1, _080D8040 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -28291,8 +28291,8 @@ _080D800C:
pop {r0}
bx r0
.align 2, 0
-_080D803C: .4byte gUnknown_0202F7C9
-_080D8040: .4byte gUnknown_03004B00
+_080D803C: .4byte gBattleAnimEnemyMonIndex
+_080D8040: .4byte gBattleAnimArgs
_080D8044: .4byte sub_80D8048
thumb_func_end sub_80D7F10
@@ -28400,7 +28400,7 @@ sub_80D80E0: @ 80D80E0
movs r0, 0x3F
ands r0, r1
strb r0, [r4, 0x1]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080D812A
@@ -28448,7 +28448,7 @@ _080D812A:
lsls r1, 4
movs r2, 0x20
bl LoadPalette
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080D8190
@@ -28679,7 +28679,7 @@ _080D832A:
ldr r1, _080D83C8 @ =0x85000200
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080D8378
@@ -28717,7 +28717,7 @@ _080D838C:
orrs r0, r1
strb r0, [r2]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D83B0:
add sp, 0x10
pop {r3-r5}
@@ -28742,7 +28742,7 @@ _080D83DC: .4byte REG_BLDCNT
sub_80D83E0: @ 80D83E0
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D840C @ =gUnknown_0202F7C8
+ ldr r5, _080D840C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -28761,7 +28761,7 @@ sub_80D83E0: @ 80D83E0
pop {r0}
bx r0
.align 2, 0
-_080D840C: .4byte gUnknown_0202F7C8
+_080D840C: .4byte gBattleAnimPlayerMonIndex
_080D8410: .4byte sub_807941C
thumb_func_end sub_80D83E0
@@ -28792,7 +28792,7 @@ sub_80D8414: @ 80D8414
movs r0, 0x3F
ands r0, r1
strb r0, [r4, 0x1]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080D845E
@@ -28840,7 +28840,7 @@ _080D845E:
lsls r1, 4
movs r2, 0x20
bl LoadPalette
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080D84C4
@@ -29061,7 +29061,7 @@ _080D864A:
ldr r1, _080D86E8 @ =0x85000200
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080D8698
@@ -29099,7 +29099,7 @@ _080D86AC:
orrs r0, r1
strb r0, [r2]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D86D0:
add sp, 0x10
pop {r3-r5}
@@ -29126,16 +29126,16 @@ sub_80D8700: @ 80D8700
mov r7, r8
push {r7}
adds r5, r0, 0
- ldr r6, _080D87E8 @ =gUnknown_03004B00
+ ldr r6, _080D87E8 @ =gBattleAnimArgs
ldrh r0, [r6]
strh r0, [r5, 0x2E]
- ldr r0, _080D87EC @ =gUnknown_0202F7C8
+ ldr r0, _080D87EC @ =gBattleAnimPlayerMonIndex
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
bl sub_8077ABC
adds r4, r0, 0
- ldr r7, _080D87F0 @ =gUnknown_0202F7C9
+ ldr r7, _080D87F0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r7]
movs r1, 0x2
bl sub_8077ABC
@@ -29147,7 +29147,7 @@ sub_80D8700: @ 80D8700
lsls r0, 8
strh r0, [r5, 0x3C]
_080D8734:
- ldr r3, _080D87F4 @ =gUnknown_02024A72
+ ldr r3, _080D87F4 @ =gBanksBySide
ldrb r0, [r7]
adds r0, r3
ldrb r1, [r0]
@@ -29196,7 +29196,7 @@ _080D8790:
movs r0, 0x1
strh r0, [r5, 0x3A]
_080D8794:
- ldr r4, _080D87EC @ =gUnknown_0202F7C8
+ ldr r4, _080D87EC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -29209,7 +29209,7 @@ _080D8794:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r6, _080D87E8 @ =gUnknown_03004B00
+ ldr r6, _080D87E8 @ =gBattleAnimArgs
movs r1, 0xE
ldrsh r0, [r6, r1]
cmp r0, 0
@@ -29218,7 +29218,7 @@ _080D8794:
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x30]
- ldr r4, _080D87F0 @ =gUnknown_0202F7C9
+ ldr r4, _080D87F0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -29235,17 +29235,17 @@ _080D8794:
movs r1, 0x3
b _080D8824
.align 2, 0
-_080D87E8: .4byte gUnknown_03004B00
-_080D87EC: .4byte gUnknown_0202F7C8
-_080D87F0: .4byte gUnknown_0202F7C9
-_080D87F4: .4byte gUnknown_02024A72
+_080D87E8: .4byte gBattleAnimArgs
+_080D87EC: .4byte gBattleAnimPlayerMonIndex
+_080D87F0: .4byte gBattleAnimEnemyMonIndex
+_080D87F4: .4byte gBanksBySide
_080D87F8: .4byte gSprites
_080D87FC:
ldrh r0, [r6, 0x2]
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x30]
- ldr r4, _080D886C @ =gUnknown_0202F7C9
+ ldr r4, _080D886C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -29274,7 +29274,7 @@ _080D8824:
ldrh r1, [r5, 0x3C]
orrs r0, r1
strh r0, [r5, 0x3C]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080D8858
@@ -29295,7 +29295,7 @@ _080D8858:
pop {r0}
bx r0
.align 2, 0
-_080D886C: .4byte gUnknown_0202F7C9
+_080D886C: .4byte gBattleAnimEnemyMonIndex
_080D8870: .4byte sub_80D8874
thumb_func_end sub_80D8700
@@ -29357,7 +29357,7 @@ _080D88C8:
_080D88D6:
movs r5, 0x50
strh r5, [r4, 0x2E]
- ldr r6, _080D8928 @ =gUnknown_0202F7C9
+ ldr r6, _080D8928 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r6]
movs r1, 0
bl sub_8077ABC
@@ -29384,7 +29384,7 @@ _080D88D6:
ands r0, r1
cmp r0, 0
beq _080D8938
- ldr r1, _080D8934 @ =gUnknown_02024A72
+ ldr r1, _080D8934 @ =gBanksBySide
ldrb r0, [r6]
adds r0, r1
ldrb r1, [r0]
@@ -29396,10 +29396,10 @@ _080D88D6:
strh r0, [r4, 0x38]
b _080D893A
.align 2, 0
-_080D8928: .4byte gUnknown_0202F7C9
+_080D8928: .4byte gBattleAnimEnemyMonIndex
_080D892C: .4byte gMain
_080D8930: .4byte 0x0000043d
-_080D8934: .4byte gUnknown_02024A72
+_080D8934: .4byte gBanksBySide
_080D8938:
strh r5, [r4, 0x38]
_080D893A:
@@ -29544,8 +29544,8 @@ _080D8A12:
ands r0, r1
cmp r0, 0
beq _080D8A78
- ldr r1, _080D8A70 @ =gUnknown_02024A72
- ldr r0, _080D8A74 @ =gUnknown_0202F7C9
+ ldr r1, _080D8A70 @ =gBanksBySide
+ ldr r0, _080D8A74 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -29559,8 +29559,8 @@ _080D8A12:
.align 2, 0
_080D8A68: .4byte gMain
_080D8A6C: .4byte 0x0000043d
-_080D8A70: .4byte gUnknown_02024A72
-_080D8A74: .4byte gUnknown_0202F7C9
+_080D8A70: .4byte gBanksBySide
+_080D8A74: .4byte gBattleAnimEnemyMonIndex
_080D8A78:
ldr r0, _080D8A90 @ =0x0000fff0
_080D8A7A:
@@ -29601,7 +29601,7 @@ _080D8A94:
_080D8AC2:
adds r0, r4, 0
bl DestroySprite
- ldr r1, _080D8AD8 @ =gUnknown_0202F7B2
+ ldr r1, _080D8AD8 @ =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
@@ -29610,7 +29610,7 @@ _080D8AD0:
pop {r0}
bx r0
.align 2, 0
-_080D8AD8: .4byte gUnknown_0202F7B2
+_080D8AD8: .4byte gAnimVisualTaskCount
thumb_func_end sub_80D8874
thumb_func_start sub_80D8ADC
@@ -29721,7 +29721,7 @@ _080D8B92:
cmp r0, 0
bne _080D8BA0
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D8BA0:
pop {r4,r5}
pop {r0}
@@ -29760,7 +29760,7 @@ sub_80D8BA8: @ 80D8BA8
ldrh r0, [r4, 0x2]
lsls r0, 20
lsrs r0, 24
- bl battle_get_side_with_given_state
+ bl GetBankByPlayerAI
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
@@ -30067,7 +30067,7 @@ _080D8E48: .4byte gTasks
unc_080B06FC: @ 80D8E4C
push {r4-r6,lr}
adds r5, r0, 0
- ldr r0, _080D8ECC @ =gUnknown_0202F7B4
+ ldr r0, _080D8ECC @ =gDisableStructMoveAnim
ldr r0, [r0]
ldrb r1, [r0, 0x11]
lsrs r0, r1, 4
@@ -30086,12 +30086,12 @@ _080D8E6A:
adds r0, r5, 0
movs r1, 0x1
bl sub_80787B0
- ldr r6, _080D8ED0 @ =gUnknown_03004B00
+ ldr r6, _080D8ED0 @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
- ldr r0, _080D8ED4 @ =gUnknown_0202F7C8
+ ldr r0, _080D8ED4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D8E92
@@ -30099,7 +30099,7 @@ _080D8E6A:
negs r0, r0
strh r0, [r6, 0x4]
_080D8E92:
- ldr r4, _080D8ED8 @ =gUnknown_0202F7C9
+ ldr r4, _080D8ED8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -30126,10 +30126,10 @@ _080D8E92:
pop {r0}
bx r0
.align 2, 0
-_080D8ECC: .4byte gUnknown_0202F7B4
-_080D8ED0: .4byte gUnknown_03004B00
-_080D8ED4: .4byte gUnknown_0202F7C8
-_080D8ED8: .4byte gUnknown_0202F7C9
+_080D8ECC: .4byte gDisableStructMoveAnim
+_080D8ED0: .4byte gBattleAnimArgs
+_080D8ED4: .4byte gBattleAnimPlayerMonIndex
+_080D8ED8: .4byte gBattleAnimEnemyMonIndex
_080D8EDC: .4byte sub_80D8EE0
thumb_func_end unc_080B06FC
@@ -30256,11 +30256,11 @@ sub_80D8FC0: @ 80D8FC0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r1, _080D8FE8 @ =gUnknown_03004B00
+ ldr r1, _080D8FE8 @ =gBattleAnimArgs
ldrb r3, [r1]
lsls r3, 1
adds r3, r1
- ldr r1, _080D8FEC @ =gUnknown_0202F7B4
+ ldr r1, _080D8FEC @ =gDisableStructMoveAnim
ldr r1, [r1]
ldrb r1, [r1, 0x11]
lsrs r2, r1, 4
@@ -30269,19 +30269,19 @@ sub_80D8FC0: @ 80D8FC0
subs r2, r1
subs r2, 0x1
strh r2, [r3]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
-_080D8FE8: .4byte gUnknown_03004B00
-_080D8FEC: .4byte gUnknown_0202F7B4
+_080D8FE8: .4byte gBattleAnimArgs
+_080D8FEC: .4byte gDisableStructMoveAnim
thumb_func_end sub_80D8FC0
thumb_func_start unc_080B08A0
unc_080B08A0: @ 80D8FF0
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D9020 @ =gUnknown_03004B00
+ ldr r5, _080D9020 @ =gBattleAnimArgs
movs r0, 0
ldrsh r1, [r5, r0]
adds r0, r4, 0
@@ -30301,7 +30301,7 @@ unc_080B08A0: @ 80D8FF0
pop {r0}
bx r0
.align 2, 0
-_080D9020: .4byte gUnknown_03004B00
+_080D9020: .4byte gBattleAnimArgs
_080D9024: .4byte sub_80782D8
_080D9028: .4byte move_anim_8072740
thumb_func_end unc_080B08A0
@@ -30310,14 +30310,14 @@ _080D9028: .4byte move_anim_8072740
sub_80D902C: @ 80D902C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D9070 @ =gUnknown_03004B00
+ ldr r4, _080D9070 @ =gBattleAnimArgs
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _080D9054
- ldr r0, _080D9074 @ =gUnknown_0202F7C8
+ ldr r0, _080D9074 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D9054
@@ -30328,7 +30328,7 @@ sub_80D902C: @ 80D902C
negs r0, r0
strh r0, [r4, 0x6]
_080D9054:
- ldr r4, _080D9070 @ =gUnknown_03004B00
+ ldr r4, _080D9070 @ =gBattleAnimArgs
ldrb r1, [r4, 0xC]
adds r0, r5, 0
bl StartSpriteAnim
@@ -30340,19 +30340,19 @@ _080D9054:
pop {r0}
bx r0
.align 2, 0
-_080D9070: .4byte gUnknown_03004B00
-_080D9074: .4byte gUnknown_0202F7C8
+_080D9070: .4byte gBattleAnimArgs
+_080D9074: .4byte gBattleAnimPlayerMonIndex
thumb_func_end sub_80D902C
thumb_func_start sub_80D9078
sub_80D9078: @ 80D9078
push {r4,lr}
adds r4, r0, 0
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080D9094
- ldr r0, _080D90A0 @ =gUnknown_03004B00
+ ldr r0, _080D90A0 @ =gBattleAnimArgs
ldrh r1, [r0, 0x2]
negs r1, r1
strh r1, [r0, 0x2]
@@ -30366,14 +30366,14 @@ _080D9094:
pop {r0}
bx r0
.align 2, 0
-_080D90A0: .4byte gUnknown_03004B00
+_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 @ =gUnknown_03004B00
+ ldr r4, _080D90C4 @ =gBattleAnimArgs
ldrb r1, [r4, 0x8]
bl StartSpriteAnim
movs r1, 0x6
@@ -30385,13 +30385,13 @@ sub_80D90A4: @ 80D90A4
bl sub_80787B0
b _080D90D0
.align 2, 0
-_080D90C4: .4byte gUnknown_03004B00
+_080D90C4: .4byte gBattleAnimArgs
_080D90C8:
adds r0, r5, 0
movs r1, 0x1
bl sub_8078764
_080D90D0:
- ldr r0, _080D90E8 @ =gUnknown_03004B00
+ ldr r0, _080D90E8 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r5, 0x2E]
ldr r0, _080D90EC @ =sub_80782D8
@@ -30403,7 +30403,7 @@ _080D90D0:
pop {r0}
bx r0
.align 2, 0
-_080D90E8: .4byte gUnknown_03004B00
+_080D90E8: .4byte gBattleAnimArgs
_080D90EC: .4byte sub_80782D8
_080D90F0: .4byte move_anim_8072740
thumb_func_end sub_80D90A4
@@ -30415,19 +30415,19 @@ sub_80D90F4: @ 80D90F4
mov r6, r8
push {r6,r7}
adds r5, r0, 0
- ldr r0, _080D9110 @ =gUnknown_03004B00
+ ldr r0, _080D9110 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
mov r9, r0
cmp r1, 0
bne _080D9118
- ldr r0, _080D9114 @ =gUnknown_0202F7C8
+ ldr r0, _080D9114 @ =gBattleAnimPlayerMonIndex
b _080D911A
.align 2, 0
-_080D9110: .4byte gUnknown_03004B00
-_080D9114: .4byte gUnknown_0202F7C8
+_080D9110: .4byte gBattleAnimArgs
+_080D9114: .4byte gBattleAnimPlayerMonIndex
_080D9118:
- ldr r0, _080D9260 @ =gUnknown_0202F7C9
+ ldr r0, _080D9260 @ =gBattleAnimEnemyMonIndex
_080D911A:
ldrb r0, [r0]
mov r8, r0
@@ -30514,7 +30514,7 @@ _080D91C4:
negs r0, r0
lsrs r4, r0, 16
_080D91D6:
- ldr r0, _080D9264 @ =gUnknown_02024A72
+ ldr r0, _080D9264 @ =gBanksBySide
add r0, r8
ldrb r1, [r0]
adds r0, r7, 0
@@ -30584,8 +30584,8 @@ _080D9250:
pop {r0}
bx r0
.align 2, 0
-_080D9260: .4byte gUnknown_0202F7C9
-_080D9264: .4byte gUnknown_02024A72
+_080D9260: .4byte gBattleAnimEnemyMonIndex
+_080D9264: .4byte gBanksBySide
_080D9268: .4byte 0xfff00000
_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8
_080D9270: .4byte gSprites
@@ -30646,7 +30646,7 @@ sub_80D92D0: @ 80D92D0
bl sub_8078764
movs r0, 0x1E
strh r0, [r4, 0x2E]
- ldr r0, _080D92F0 @ =gUnknown_03004B00
+ ldr r0, _080D92F0 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -30656,7 +30656,7 @@ sub_80D92D0: @ 80D92D0
strh r0, [r4, 0x32]
b _080D9306
.align 2, 0
-_080D92F0: .4byte gUnknown_03004B00
+_080D92F0: .4byte gBattleAnimArgs
_080D92F4:
ldrh r0, [r4, 0x20]
adds r0, 0x14
@@ -30730,21 +30730,21 @@ _080D9374: .4byte move_anim_8072740
sub_80D9378: @ 80D9378
push {r4-r6,lr}
adds r6, r0, 0
- ldr r0, _080D93F4 @ =gUnknown_0202F7C8
+ ldr r0, _080D93F4 @ =gBattleAnimPlayerMonIndex
ldrb r1, [r0]
movs r0, 0x2
- ldr r2, _080D93F8 @ =gUnknown_0202F7C9
+ ldr r2, _080D93F8 @ =gBattleAnimEnemyMonIndex
eors r0, r1
ldrb r1, [r2]
cmp r0, r1
bne _080D93A4
ldrb r0, [r2]
- bl battle_get_per_side_status
+ bl GetBankIdentity
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080D93A4
- ldr r1, _080D93FC @ =gUnknown_03004B00
+ ldr r1, _080D93FC @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r1, r2]
negs r0, r0
@@ -30753,18 +30753,18 @@ _080D93A4:
adds r0, r6, 0
movs r1, 0x1
bl sub_8078764
- ldr r0, _080D93F4 @ =gUnknown_0202F7C8
+ ldr r0, _080D93F4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D93C2
- ldr r1, _080D93FC @ =gUnknown_03004B00
+ ldr r1, _080D93FC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080D93C2:
- ldr r4, _080D93FC @ =gUnknown_03004B00
+ ldr r4, _080D93FC @ =gBattleAnimArgs
ldrh r0, [r4, 0x6]
movs r5, 0
strh r0, [r6, 0x2E]
@@ -30789,9 +30789,9 @@ _080D93C2:
pop {r0}
bx r0
.align 2, 0
-_080D93F4: .4byte gUnknown_0202F7C8
-_080D93F8: .4byte gUnknown_0202F7C9
-_080D93FC: .4byte gUnknown_03004B00
+_080D93F4: .4byte gBattleAnimPlayerMonIndex
+_080D93F8: .4byte gBattleAnimEnemyMonIndex
+_080D93FC: .4byte gBattleAnimArgs
_080D9400: .4byte sub_80D9404
thumb_func_end sub_80D9378
@@ -30832,7 +30832,7 @@ sub_80D943C: @ 80D943C
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r5, _080D9468 @ =gUnknown_03004B00
+ ldr r5, _080D9468 @ =gBattleAnimArgs
ldrb r1, [r5, 0x4]
adds r0, r4, 0
bl StartSpriteAnim
@@ -30847,7 +30847,7 @@ sub_80D943C: @ 80D943C
pop {r0}
bx r0
.align 2, 0
-_080D9468: .4byte gUnknown_03004B00
+_080D9468: .4byte gBattleAnimArgs
_080D946C: .4byte sub_80782D8
_080D9470: .4byte sub_80D9474
thumb_func_end sub_80D943C
@@ -30885,7 +30885,7 @@ sub_80D94A8: @ 80D94A8
adds r4, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r0, _080D94C4 @ =gUnknown_03004B00
+ ldr r0, _080D94C4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldr r0, _080D94C8 @ =sub_80D94CC
@@ -30894,7 +30894,7 @@ sub_80D94A8: @ 80D94A8
pop {r0}
bx r0
.align 2, 0
-_080D94C4: .4byte gUnknown_03004B00
+_080D94C4: .4byte gBattleAnimArgs
_080D94C8: .4byte sub_80D94CC
thumb_func_end sub_80D94A8
@@ -30913,7 +30913,7 @@ sub_80D94CC: @ 80D94CC
bne _080D9510
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, _080D9518 @ =gUnknown_0202F7C9
+ ldr r4, _080D9518 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -30936,7 +30936,7 @@ _080D9510:
pop {r0}
bx r0
.align 2, 0
-_080D9518: .4byte gUnknown_0202F7C9
+_080D9518: .4byte gBattleAnimEnemyMonIndex
_080D951C: .4byte sub_8078B34
_080D9520: .4byte sub_80D9524
thumb_func_end sub_80D94CC
@@ -30968,7 +30968,7 @@ sub_80D9540: @ 80D9540
adds r0, r4, 0
movs r1, 0x1
bl sub_8078764
- ldr r1, _080D9568 @ =gUnknown_03004B00
+ ldr r1, _080D9568 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x6]
@@ -30978,7 +30978,7 @@ sub_80D9540: @ 80D9540
strh r0, [r4, 0x2E]
b _080D95C8
.align 2, 0
-_080D9568: .4byte gUnknown_03004B00
+_080D9568: .4byte gBattleAnimArgs
_080D956C:
ldrh r0, [r4, 0x30]
ldrh r2, [r4, 0x36]
@@ -31035,18 +31035,18 @@ _080D95C8:
sub_80D95D0: @ 80D95D0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D95E4 @ =gUnknown_03004B00
+ ldr r0, _080D95E4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D95EC
- ldr r4, _080D95E8 @ =gUnknown_0202F7C8
+ ldr r4, _080D95E8 @ =gBattleAnimPlayerMonIndex
b _080D95EE
.align 2, 0
-_080D95E4: .4byte gUnknown_03004B00
-_080D95E8: .4byte gUnknown_0202F7C8
+_080D95E4: .4byte gBattleAnimArgs
+_080D95E8: .4byte gBattleAnimPlayerMonIndex
_080D95EC:
- ldr r4, _080D9634 @ =gUnknown_0202F7C9
+ ldr r4, _080D9634 @ =gBattleAnimEnemyMonIndex
_080D95EE:
ldrb r0, [r4]
movs r1, 0
@@ -31060,7 +31060,7 @@ _080D95EE:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r1, _080D9638 @ =gUnknown_03004B00
+ ldr r1, _080D9638 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -31082,8 +31082,8 @@ _080D95EE:
pop {r0}
bx r0
.align 2, 0
-_080D9634: .4byte gUnknown_0202F7C9
-_080D9638: .4byte gUnknown_03004B00
+_080D9634: .4byte gBattleAnimEnemyMonIndex
+_080D9638: .4byte gBattleAnimArgs
_080D963C: .4byte sub_80D9640
thumb_func_end sub_80D95D0
@@ -31160,12 +31160,12 @@ _080D96B4: .4byte 0x0000fffe
sub_80D96B8: @ 80D96B8
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080D96DC @ =gUnknown_03004B00
+ ldr r6, _080D96DC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080D96E4
- ldr r4, _080D96E0 @ =gUnknown_0202F7C8
+ ldr r4, _080D96E0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -31175,10 +31175,10 @@ sub_80D96B8: @ 80D96B8
adds r0, r2
b _080D96F6
.align 2, 0
-_080D96DC: .4byte gUnknown_03004B00
-_080D96E0: .4byte gUnknown_0202F7C8
+_080D96DC: .4byte gBattleAnimArgs
+_080D96E0: .4byte gBattleAnimPlayerMonIndex
_080D96E4:
- ldr r4, _080D9740 @ =gUnknown_0202F7C9
+ ldr r4, _080D9740 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -31199,7 +31199,7 @@ _080D96F6:
ldrh r2, [r5, 0x4]
lsls r1, r2, 22
lsrs r1, 22
- ldr r3, _080D9744 @ =gUnknown_03004B00
+ ldr r3, _080D9744 @ =gBattleAnimArgs
movs r4, 0x2
ldrsh r0, [r3, r4]
lsls r0, 4
@@ -31224,8 +31224,8 @@ _080D96F6:
beq _080D975A
b _080D978A
.align 2, 0
-_080D9740: .4byte gUnknown_0202F7C9
-_080D9744: .4byte gUnknown_03004B00
+_080D9740: .4byte gBattleAnimEnemyMonIndex
+_080D9744: .4byte gBattleAnimArgs
_080D9748: .4byte 0x000003ff
_080D974C: .4byte 0xfffffc00
_080D9750:
@@ -31304,12 +31304,12 @@ _080D97C8:
sub_80D97CC: @ 80D97CC
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D9818 @ =gUnknown_03004B00
+ ldr r0, _080D9818 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D9828
- ldr r4, _080D981C @ =gUnknown_02024C07
+ ldr r4, _080D981C @ =gBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -31322,7 +31322,7 @@ sub_80D97CC: @ 80D97CC
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, _080D9820 @ =gUnknown_0202F7C8
+ ldr r0, _080D9820 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -31334,15 +31334,15 @@ sub_80D97CC: @ 80D97CC
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- ldr r0, _080D9824 @ =gUnknown_0202F7C9
+ ldr r0, _080D9824 @ =gBattleAnimEnemyMonIndex
b _080D9844
.align 2, 0
-_080D9818: .4byte gUnknown_03004B00
-_080D981C: .4byte gUnknown_02024C07
-_080D9820: .4byte gUnknown_0202F7C8
-_080D9824: .4byte gUnknown_0202F7C9
+_080D9818: .4byte gBattleAnimArgs
+_080D981C: .4byte gBankAttacker
+_080D9820: .4byte gBattleAnimPlayerMonIndex
+_080D9824: .4byte gBattleAnimEnemyMonIndex
_080D9828:
- ldr r0, _080D9860 @ =gUnknown_0202F7C9
+ ldr r0, _080D9860 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -31354,7 +31354,7 @@ _080D9828:
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- ldr r0, _080D9864 @ =gUnknown_0202F7C8
+ ldr r0, _080D9864 @ =gBattleAnimPlayerMonIndex
_080D9844:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
@@ -31370,8 +31370,8 @@ _080D9844:
pop {r0}
bx r0
.align 2, 0
-_080D9860: .4byte gUnknown_0202F7C9
-_080D9864: .4byte gUnknown_0202F7C8
+_080D9860: .4byte gBattleAnimEnemyMonIndex
+_080D9864: .4byte gBattleAnimPlayerMonIndex
_080D9868: .4byte sub_80D986C
thumb_func_end sub_80D97CC
@@ -31432,7 +31432,7 @@ _080D98D4: .4byte sub_8078BB8
sub_80D98D8: @ 80D98D8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D9924 @ =gUnknown_03004B00
+ ldr r4, _080D9924 @ =gBattleAnimArgs
ldrh r0, [r4]
strh r0, [r5, 0x20]
movs r2, 0x78
@@ -31467,7 +31467,7 @@ sub_80D98D8: @ 80D98D8
pop {r0}
bx r0
.align 2, 0
-_080D9924: .4byte gUnknown_03004B00
+_080D9924: .4byte gBattleAnimArgs
_080D9928: .4byte 0x000003ff
_080D992C: .4byte 0xfffffc00
_080D9930: .4byte sub_80D9934
@@ -31515,7 +31515,7 @@ _080D997E:
strh r0, [r7, 0x2E]
b _080D99DC
_080D9986:
- ldr r4, _080D99E8 @ =gUnknown_0202F7C8
+ ldr r4, _080D99E8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -31528,7 +31528,7 @@ _080D9986:
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r2, _080D99EC @ =gUnknown_0202F7C9
+ ldr r2, _080D99EC @ =gBattleAnimEnemyMonIndex
mov r8, r2
ldrb r0, [r2]
movs r1, 0x2
@@ -31561,8 +31561,8 @@ _080D99DC:
pop {r0}
bx r0
.align 2, 0
-_080D99E8: .4byte gUnknown_0202F7C8
-_080D99EC: .4byte gUnknown_0202F7C9
+_080D99E8: .4byte gBattleAnimPlayerMonIndex
+_080D99EC: .4byte gBattleAnimEnemyMonIndex
_080D99F0: .4byte sub_80D99F4
thumb_func_end sub_80D9934
@@ -31609,12 +31609,12 @@ _080D9A34:
sub_80D9A38: @ 80D9A38
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080D9A6C @ =gUnknown_03004B00
+ ldr r0, _080D9A6C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D9A7C
- ldr r4, _080D9A70 @ =gUnknown_02024C07
+ ldr r4, _080D9A70 @ =gBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -31627,19 +31627,19 @@ sub_80D9A38: @ 80D9A38
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, _080D9A74 @ =gUnknown_0202F7C9
+ ldr r0, _080D9A74 @ =gBattleAnimEnemyMonIndex
ldrb r4, [r0]
- ldr r0, _080D9A78 @ =gUnknown_0202F7C8
+ ldr r0, _080D9A78 @ =gBattleAnimPlayerMonIndex
b _080D9A82
.align 2, 0
-_080D9A6C: .4byte gUnknown_03004B00
-_080D9A70: .4byte gUnknown_02024C07
-_080D9A74: .4byte gUnknown_0202F7C9
-_080D9A78: .4byte gUnknown_0202F7C8
+_080D9A6C: .4byte gBattleAnimArgs
+_080D9A70: .4byte gBankAttacker
+_080D9A74: .4byte gBattleAnimEnemyMonIndex
+_080D9A78: .4byte gBattleAnimPlayerMonIndex
_080D9A7C:
- ldr r0, _080D9AB4 @ =gUnknown_0202F7C8
+ ldr r0, _080D9AB4 @ =gBattleAnimPlayerMonIndex
ldrb r4, [r0]
- ldr r0, _080D9AB8 @ =gUnknown_0202F7C9
+ ldr r0, _080D9AB8 @ =gBattleAnimEnemyMonIndex
_080D9A82:
ldrb r0, [r0]
bl sub_8079ED4
@@ -31652,7 +31652,7 @@ _080D9A82:
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080D9ABC
@@ -31665,11 +31665,11 @@ _080D9A82:
subs r0, 0x47
b _080D9AD6
.align 2, 0
-_080D9AB4: .4byte gUnknown_0202F7C8
-_080D9AB8: .4byte gUnknown_0202F7C9
+_080D9AB4: .4byte gBattleAnimPlayerMonIndex
+_080D9AB8: .4byte gBattleAnimEnemyMonIndex
_080D9ABC:
adds r0, r4, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D9ADC
@@ -31743,7 +31743,7 @@ _080D9B3A:
sub_80D9B48: @ 80D9B48
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, _080D9BC4 @ =gUnknown_0202F7C9
+ ldr r4, _080D9BC4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -31756,7 +31756,7 @@ sub_80D9B48: @ 80D9B48
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r1, _080D9BC8 @ =gUnknown_03004B00
+ ldr r1, _080D9BC8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r5, 0x30]
ldrh r0, [r1]
@@ -31768,7 +31768,7 @@ sub_80D9B48: @ 80D9B48
ldr r0, _080D9BCC @ =gUnknown_0202F7C4
ldrb r6, [r0]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D9B92
@@ -31802,8 +31802,8 @@ _080D9BA6:
pop {r0}
bx r0
.align 2, 0
-_080D9BC4: .4byte gUnknown_0202F7C9
-_080D9BC8: .4byte gUnknown_03004B00
+_080D9BC4: .4byte gBattleAnimEnemyMonIndex
+_080D9BC8: .4byte gBattleAnimArgs
_080D9BCC: .4byte gUnknown_0202F7C4
_080D9BD0: .4byte sub_80D9B24
thumb_func_end sub_80D9B48
@@ -31812,7 +31812,7 @@ _080D9BD0: .4byte sub_80D9B24
sub_80D9BD4: @ 80D9BD4
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D9BEC @ =gUnknown_03004B00
+ ldr r0, _080D9BEC @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -31822,13 +31822,13 @@ sub_80D9BD4: @ 80D9BD4
bl sub_80787B0
b _080D9BF8
.align 2, 0
-_080D9BEC: .4byte gUnknown_03004B00
+_080D9BEC: .4byte gBattleAnimArgs
_080D9BF0:
adds r0, r4, 0
movs r1, 0
bl sub_8078764
_080D9BF8:
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080D9C0C
@@ -31837,9 +31837,9 @@ _080D9BF8:
bl StartSpriteAnim
b _080D9C22
_080D9C0C:
- ldr r0, _080D9C34 @ =gUnknown_0202F7C8
+ ldr r0, _080D9C34 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D9C22
@@ -31856,7 +31856,7 @@ _080D9C22:
pop {r0}
bx r0
.align 2, 0
-_080D9C34: .4byte gUnknown_0202F7C8
+_080D9C34: .4byte gBattleAnimPlayerMonIndex
_080D9C38: .4byte sub_8078600
_080D9C3C: .4byte move_anim_8072740
thumb_func_end sub_80D9BD4
@@ -31916,13 +31916,13 @@ sub_80D9C80: @ 80D9C80
bne _080D9CD2
movs r0, 0
bl sub_80789D4
- ldr r0, _080D9CB4 @ =gUnknown_03004B00
+ ldr r0, _080D9CB4 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r4, 0x18]
b _080D9CCA
.align 2, 0
_080D9CB0: .4byte gTasks
-_080D9CB4: .4byte gUnknown_03004B00
+_080D9CB4: .4byte gBattleAnimArgs
_080D9CB8:
ldrh r0, [r4, 0x18]
subs r0, 0x1
@@ -31952,9 +31952,9 @@ _080D9CDE:
ldrh r1, [r4, 0x1C]
adds r0, r1
strh r0, [r4, 0x1C]
- ldr r0, _080D9D0C @ =gUnknown_0202F7C9
+ ldr r0, _080D9D0C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080D9D14
@@ -31968,7 +31968,7 @@ _080D9CDE:
adds r7, r1, 0
b _080D9D24
.align 2, 0
-_080D9D0C: .4byte gUnknown_0202F7C9
+_080D9D0C: .4byte gBattleAnimEnemyMonIndex
_080D9D10: .4byte gUnknown_030041B0
_080D9D14:
ldr r2, _080D9D64 @ =gUnknown_030041B0
@@ -31993,7 +31993,7 @@ _080D9D24:
strh r1, [r4, 0x1A]
ands r0, r2
strh r0, [r4, 0x1C]
- ldr r0, _080D9D6C @ =gUnknown_03004B00
+ ldr r0, _080D9D6C @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x1
@@ -32005,7 +32005,7 @@ _080D9D24:
movs r0, 0x1
bl sub_80789D4
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D9D5C:
pop {r4-r7}
pop {r0}
@@ -32013,14 +32013,14 @@ _080D9D5C:
.align 2, 0
_080D9D64: .4byte gUnknown_030041B0
_080D9D68: .4byte gUnknown_030041B8
-_080D9D6C: .4byte gUnknown_03004B00
+_080D9D6C: .4byte gBattleAnimArgs
thumb_func_end sub_80D9C80
thumb_func_start sub_80D9D70
sub_80D9D70: @ 80D9D70
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D9DC4 @ =gUnknown_03004B00
+ ldr r4, _080D9DC4 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -32034,7 +32034,7 @@ _080D9D86:
bl sub_80787B0
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
- ldr r4, _080D9DC8 @ =gUnknown_0202F7C9
+ ldr r4, _080D9DC8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -32057,8 +32057,8 @@ _080D9D86:
pop {r0}
bx r0
.align 2, 0
-_080D9DC4: .4byte gUnknown_03004B00
-_080D9DC8: .4byte gUnknown_0202F7C9
+_080D9DC4: .4byte gBattleAnimArgs
+_080D9DC8: .4byte gBattleAnimEnemyMonIndex
_080D9DCC: .4byte 0x0000ffe2
_080D9DD0: .4byte sub_80D9DD4
thumb_func_end sub_80D9D70
@@ -32084,7 +32084,7 @@ sub_80D9DF0: @ 80D9DF0
push {r4-r6,lr}
sub sp, 0x4
adds r4, r0, 0
- ldr r5, _080D9E64 @ =gUnknown_03004B00
+ ldr r5, _080D9E64 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -32096,7 +32096,7 @@ _080D9E08:
adds r0, r4, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080D9E68 @ =gUnknown_0202F7C9
+ ldr r0, _080D9E68 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
mov r6, sp
adds r6, 0x2
@@ -32104,9 +32104,9 @@ _080D9E08:
mov r2, sp
adds r3, r6, 0
bl sub_807A3FC
- ldr r0, _080D9E6C @ =gUnknown_0202F7C8
+ ldr r0, _080D9E6C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D9E36
@@ -32136,9 +32136,9 @@ _080D9E36:
pop {r0}
bx r0
.align 2, 0
-_080D9E64: .4byte gUnknown_03004B00
-_080D9E68: .4byte gUnknown_0202F7C9
-_080D9E6C: .4byte gUnknown_0202F7C8
+_080D9E64: .4byte gBattleAnimArgs
+_080D9E68: .4byte gBattleAnimEnemyMonIndex
+_080D9E6C: .4byte gBattleAnimPlayerMonIndex
_080D9E70: .4byte 0x0000ffe2
_080D9E74: .4byte sub_80D9E78
thumb_func_end sub_80D9DF0
@@ -32163,7 +32163,7 @@ _080D9E8C:
sub_80D9E94: @ 80D9E94
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D9EE0 @ =gUnknown_03004B00
+ ldr r5, _080D9EE0 @ =gBattleAnimArgs
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
@@ -32196,7 +32196,7 @@ sub_80D9E94: @ 80D9E94
pop {r0}
bx r0
.align 2, 0
-_080D9EE0: .4byte gUnknown_03004B00
+_080D9EE0: .4byte gBattleAnimArgs
_080D9EE4: .4byte sub_80D9EE8
thumb_func_end sub_80D9E94
@@ -32229,7 +32229,7 @@ _080D9F0E:
sub_80D9F14: @ 80D9F14
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D9F74 @ =gUnknown_0202F7C9
+ ldr r0, _080D9F74 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -32237,18 +32237,18 @@ sub_80D9F14: @ 80D9F14
adds r3, 0x22
movs r1, 0x1
bl sub_807A3FC
- ldr r0, _080D9F78 @ =gUnknown_0202F7C8
+ ldr r0, _080D9F78 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D9F40
- ldr r1, _080D9F7C @ =gUnknown_03004B00
+ ldr r1, _080D9F7C @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
_080D9F40:
- ldr r0, _080D9F7C @ =gUnknown_03004B00
+ ldr r0, _080D9F7C @ =gBattleAnimArgs
ldrh r2, [r0]
ldrh r1, [r4, 0x20]
adds r2, r1
@@ -32273,9 +32273,9 @@ _080D9F40:
pop {r0}
bx r0
.align 2, 0
-_080D9F74: .4byte gUnknown_0202F7C9
-_080D9F78: .4byte gUnknown_0202F7C8
-_080D9F7C: .4byte gUnknown_03004B00
+_080D9F74: .4byte gBattleAnimEnemyMonIndex
+_080D9F78: .4byte gBattleAnimPlayerMonIndex
+_080D9F7C: .4byte gBattleAnimArgs
_080D9F80: .4byte sub_8078B34
_080D9F84: .4byte move_anim_8072740
thumb_func_end sub_80D9F14
@@ -32284,7 +32284,7 @@ _080D9F84: .4byte move_anim_8072740
sub_80D9F88: @ 80D9F88
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D9FA0 @ =gUnknown_03004B00
+ ldr r5, _080D9FA0 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r0, 0
@@ -32294,9 +32294,9 @@ sub_80D9F88: @ 80D9F88
bl sub_8078764
b _080D9FDA
.align 2, 0
-_080D9FA0: .4byte gUnknown_03004B00
+_080D9FA0: .4byte gBattleAnimArgs
_080D9FA4:
- ldr r0, _080D9FE4 @ =gUnknown_0202F7C9
+ ldr r0, _080D9FE4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -32304,9 +32304,9 @@ _080D9FA4:
adds r3, 0x22
movs r1, 0x1
bl sub_807A3FC
- ldr r0, _080D9FE8 @ =gUnknown_0202F7C8
+ ldr r0, _080D9FE8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080D9FCA
@@ -32329,8 +32329,8 @@ _080D9FDA:
pop {r0}
bx r0
.align 2, 0
-_080D9FE4: .4byte gUnknown_0202F7C9
-_080D9FE8: .4byte gUnknown_0202F7C8
+_080D9FE4: .4byte gBattleAnimEnemyMonIndex
+_080D9FE8: .4byte gBattleAnimPlayerMonIndex
_080D9FEC: .4byte sub_80D9FF0
thumb_func_end sub_80D9F88
@@ -32436,7 +32436,7 @@ sub_80DA09C: @ 80DA09C
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r1, _080DA0D0 @ =gUnknown_03004B00
+ ldr r1, _080DA0D0 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x8]
ldrh r0, [r1]
@@ -32453,7 +32453,7 @@ sub_80DA09C: @ 80DA09C
bx r0
.align 2, 0
_080DA0CC: .4byte gTasks
-_080DA0D0: .4byte gUnknown_03004B00
+_080DA0D0: .4byte gBattleAnimArgs
_080DA0D4: .4byte 0x00002719
_080DA0D8: .4byte sub_80DA0DC
thumb_func_end sub_80DA09C
@@ -32520,7 +32520,7 @@ _080DA13A:
cmp r1, 0
bne _080DA154
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DA154:
pop {r4-r7}
pop {r0}
@@ -32538,23 +32538,23 @@ sub_80DA16C: @ 80DA16C
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080DA1D8 @ =gUnknown_0202F7C8
+ ldr r0, _080DA1D8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DA18C
- ldr r1, _080DA1DC @ =gUnknown_03004B00
+ ldr r1, _080DA1DC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080DA18C:
- ldr r4, _080DA1DC @ =gUnknown_03004B00
+ ldr r4, _080DA1DC @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
strh r0, [r6, 0x30]
- ldr r5, _080DA1E0 @ =gUnknown_0202F7C9
+ ldr r5, _080DA1E0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -32584,9 +32584,9 @@ _080DA18C:
pop {r0}
bx r0
.align 2, 0
-_080DA1D8: .4byte gUnknown_0202F7C8
-_080DA1DC: .4byte gUnknown_03004B00
-_080DA1E0: .4byte gUnknown_0202F7C9
+_080DA1D8: .4byte gBattleAnimPlayerMonIndex
+_080DA1DC: .4byte gBattleAnimArgs
+_080DA1E0: .4byte gBattleAnimEnemyMonIndex
_080DA1E4: .4byte sub_80785E4
_080DA1E8: .4byte sub_80DA1EC
thumb_func_end sub_80DA16C
@@ -32611,13 +32611,13 @@ _080DA200:
sub_80DA208: @ 80DA208
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080DA2A4 @ =gUnknown_0202F7C8
+ ldr r4, _080DA2A4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DA234
- ldr r1, _080DA2A8 @ =gUnknown_03004B00
+ ldr r1, _080DA2A8 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -32631,11 +32631,11 @@ sub_80DA208: @ 80DA208
negs r0, r0
strh r0, [r1, 0x6]
_080DA234:
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DA24C
- ldr r0, _080DA2A8 @ =gUnknown_03004B00
+ ldr r0, _080DA2A8 @ =gBattleAnimArgs
ldrh r1, [r0, 0x2]
negs r1, r1
strh r1, [r0, 0x2]
@@ -32653,7 +32653,7 @@ _080DA24C:
movs r1, 0x3
bl sub_8077ABC
lsls r0, 24
- ldr r2, _080DA2A8 @ =gUnknown_03004B00
+ ldr r2, _080DA2A8 @ =gBattleAnimArgs
ldrh r1, [r2]
ldrh r3, [r5, 0x20]
adds r1, r3
@@ -32668,7 +32668,7 @@ _080DA24C:
ldrsh r0, [r2, r3]
cmp r0, 0
bne _080DA2B0
- ldr r4, _080DA2AC @ =gUnknown_0202F7C9
+ ldr r4, _080DA2AC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -32683,11 +32683,11 @@ _080DA24C:
strh r0, [r5, 0x36]
b _080DA2C2
.align 2, 0
-_080DA2A4: .4byte gUnknown_0202F7C8
-_080DA2A8: .4byte gUnknown_03004B00
-_080DA2AC: .4byte gUnknown_0202F7C9
+_080DA2A4: .4byte gBattleAnimPlayerMonIndex
+_080DA2A8: .4byte gBattleAnimArgs
+_080DA2AC: .4byte gBattleAnimEnemyMonIndex
_080DA2B0:
- ldr r0, _080DA2F0 @ =gUnknown_0202F7C9
+ ldr r0, _080DA2F0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -32696,7 +32696,7 @@ _080DA2B0:
movs r1, 0x1
bl sub_807A3FC
_080DA2C2:
- ldr r4, _080DA2F4 @ =gUnknown_03004B00
+ ldr r4, _080DA2F4 @ =gBattleAnimArgs
ldrh r0, [r4, 0x4]
ldrh r1, [r5, 0x32]
adds r0, r1
@@ -32717,8 +32717,8 @@ _080DA2C2:
pop {r0}
bx r0
.align 2, 0
-_080DA2F0: .4byte gUnknown_0202F7C9
-_080DA2F4: .4byte gUnknown_03004B00
+_080DA2F0: .4byte gBattleAnimEnemyMonIndex
+_080DA2F4: .4byte gBattleAnimArgs
_080DA2F8: .4byte sub_8078B34
_080DA2FC: .4byte move_anim_8072740
thumb_func_end sub_80DA208
@@ -32729,7 +32729,7 @@ sub_80DA300: @ 80DA300
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080DA33C @ =gUnknown_03004B00
+ ldr r1, _080DA33C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
@@ -32754,7 +32754,7 @@ sub_80DA300: @ 80DA300
pop {r0}
bx r0
.align 2, 0
-_080DA33C: .4byte gUnknown_03004B00
+_080DA33C: .4byte gBattleAnimArgs
_080DA340: .4byte sub_80DA348
_080DA344: .4byte gSprites
thumb_func_end sub_80DA300
@@ -32802,9 +32802,9 @@ _080DA386:
sub_80DA38C: @ 80DA38C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080DA3B4 @ =gUnknown_0202F7C8
+ ldr r0, _080DA3B4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DA3BC
@@ -32818,19 +32818,19 @@ sub_80DA38C: @ 80DA38C
bl StartSpriteAffineAnim
b _080DA3C2
.align 2, 0
-_080DA3B4: .4byte gUnknown_0202F7C8
+_080DA3B4: .4byte gBattleAnimPlayerMonIndex
_080DA3B8: .4byte 0x0000ffe0
_080DA3BC:
ldr r0, _080DA400 @ =0x0000ffe0
strh r0, [r5, 0x20]
strh r0, [r5, 0x22]
_080DA3C2:
- ldr r0, _080DA404 @ =gUnknown_03004B00
+ ldr r0, _080DA404 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080DA408 @ =gUnknown_0202F7C9
+ ldr r4, _080DA408 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -32854,8 +32854,8 @@ _080DA3C2:
bx r0
.align 2, 0
_080DA400: .4byte 0x0000ffe0
-_080DA404: .4byte gUnknown_03004B00
-_080DA408: .4byte gUnknown_0202F7C9
+_080DA404: .4byte gBattleAnimArgs
+_080DA408: .4byte gBattleAnimEnemyMonIndex
_080DA40C: .4byte sub_80DA410
thumb_func_end sub_80DA38C
@@ -32953,7 +32953,7 @@ sub_80DA48C: @ 80DA48C
_080DA4BE:
adds r0, r4, 0
bl DestroySprite
- ldr r1, _080DA4D4 @ =gUnknown_0202F7B2
+ ldr r1, _080DA4D4 @ =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
@@ -32962,7 +32962,7 @@ _080DA4CC:
pop {r0}
bx r0
.align 2, 0
-_080DA4D4: .4byte gUnknown_0202F7B2
+_080DA4D4: .4byte gAnimVisualTaskCount
thumb_func_end sub_80DA48C
thumb_func_start sub_80DA4D8
@@ -32973,28 +32973,28 @@ sub_80DA4D8: @ 80DA4D8
adds r7, r0, 0
adds r5, r7, 0
adds r5, 0x2E
- ldr r0, _080DA4F8 @ =gUnknown_03004B00
+ ldr r0, _080DA4F8 @ =gBattleAnimArgs
ldrh r1, [r0, 0xE]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _080DA500
- ldr r0, _080DA4FC @ =gUnknown_0202F7C8
+ ldr r0, _080DA4FC @ =gBattleAnimPlayerMonIndex
b _080DA502
.align 2, 0
-_080DA4F8: .4byte gUnknown_03004B00
-_080DA4FC: .4byte gUnknown_0202F7C8
+_080DA4F8: .4byte gBattleAnimArgs
+_080DA4FC: .4byte gBattleAnimPlayerMonIndex
_080DA500:
- ldr r0, _080DA5B0 @ =gUnknown_0202F7C9
+ ldr r0, _080DA5B0 @ =gBattleAnimEnemyMonIndex
_080DA502:
ldrb r6, [r0]
adds r0, r6, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080DA518
- ldr r1, _080DA5B4 @ =gUnknown_03004B00
+ ldr r1, _080DA5B4 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -33003,7 +33003,7 @@ _080DA518:
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080DA5B4 @ =gUnknown_03004B00
+ ldr r4, _080DA5B4 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -33073,8 +33073,8 @@ _080DA518:
strb r1, [r7, 0x5]
b _080DA5D8
.align 2, 0
-_080DA5B0: .4byte gUnknown_0202F7C9
-_080DA5B4: .4byte gUnknown_03004B00
+_080DA5B0: .4byte gBattleAnimEnemyMonIndex
+_080DA5B4: .4byte gBattleAnimArgs
_080DA5B8: .4byte gMain
_080DA5BC: .4byte 0x0000043d
_080DA5C0:
@@ -34081,7 +34081,7 @@ _080DAD2C: .4byte sub_80DA48C
sub_80DAD30: @ 80DAD30
push {r4,r5,lr}
adds r4, r0, 0
- ldr r0, _080DAD78 @ =gUnknown_0202F7C9
+ ldr r0, _080DAD78 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -34093,7 +34093,7 @@ sub_80DAD30: @ 80DAD30
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
- ldr r5, _080DAD7C @ =gUnknown_0202F7C8
+ ldr r5, _080DAD7C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -34112,8 +34112,8 @@ sub_80DAD30: @ 80DAD30
pop {r0}
bx r0
.align 2, 0
-_080DAD78: .4byte gUnknown_0202F7C9
-_080DAD7C: .4byte gUnknown_0202F7C8
+_080DAD78: .4byte gBattleAnimEnemyMonIndex
+_080DAD7C: .4byte gBattleAnimPlayerMonIndex
_080DAD80: .4byte sub_807941C
thumb_func_end sub_80DAD30
@@ -34121,7 +34121,7 @@ _080DAD80: .4byte sub_807941C
sub_80DAD84: @ 80DAD84
push {r4-r7,lr}
adds r4, r0, 0
- ldr r5, _080DADCC @ =gUnknown_03004B00
+ ldr r5, _080DADCC @ =gBattleAnimArgs
ldrh r0, [r5]
strh r0, [r4, 0x30]
ldrh r0, [r5, 0x2]
@@ -34136,8 +34136,8 @@ sub_80DAD84: @ 80DAD84
ands r0, r1
cmp r0, 0
beq _080DAE44
- ldr r0, _080DADD8 @ =gUnknown_02024A72
- ldr r1, _080DADDC @ =gUnknown_0202F7C9
+ ldr r0, _080DADD8 @ =gBanksBySide
+ ldr r1, _080DADDC @ =gBattleAnimEnemyMonIndex
ldrb r2, [r1]
adds r0, r2, r0
ldrb r1, [r0]
@@ -34154,11 +34154,11 @@ sub_80DAD84: @ 80DAD84
adds r0, r5
b _080DADEE
.align 2, 0
-_080DADCC: .4byte gUnknown_03004B00
+_080DADCC: .4byte gBattleAnimArgs
_080DADD0: .4byte gMain
_080DADD4: .4byte 0x0000043d
-_080DADD8: .4byte gUnknown_02024A72
-_080DADDC: .4byte gUnknown_0202F7C9
+_080DADD8: .4byte gBanksBySide
+_080DADDC: .4byte gBattleAnimEnemyMonIndex
_080DADE0:
adds r0, r2, 0
movs r1, 0x1
@@ -34168,12 +34168,12 @@ _080DADE0:
adds r0, 0x28
_080DADEE:
strh r0, [r4, 0x3C]
- ldr r0, _080DAE1C @ =gUnknown_03004B00
+ ldr r0, _080DAE1C @ =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080DAE24
- ldr r0, _080DAE20 @ =gUnknown_0202F7C9
+ ldr r0, _080DAE20 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
@@ -34190,10 +34190,10 @@ _080DADEE:
strb r1, [r4, 0x5]
b _080DAE58
.align 2, 0
-_080DAE1C: .4byte gUnknown_03004B00
-_080DAE20: .4byte gUnknown_0202F7C9
+_080DAE1C: .4byte gBattleAnimArgs
+_080DAE20: .4byte gBattleAnimEnemyMonIndex
_080DAE24:
- ldr r0, _080DAE40 @ =gUnknown_0202F7C9
+ ldr r0, _080DAE40 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -34207,9 +34207,9 @@ _080DAE24:
strb r0, [r4, 0x5]
b _080DAE58
.align 2, 0
-_080DAE40: .4byte gUnknown_0202F7C9
+_080DAE40: .4byte gBattleAnimEnemyMonIndex
_080DAE44:
- ldr r0, _080DAEFC @ =gUnknown_0202F7C9
+ ldr r0, _080DAEFC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -34303,7 +34303,7 @@ _080DAEF2:
pop {r0}
bx r0
.align 2, 0
-_080DAEFC: .4byte gUnknown_0202F7C9
+_080DAEFC: .4byte gBattleAnimEnemyMonIndex
_080DAF00: .4byte gSineTable
_080DAF04: .4byte gOamMatrices
_080DAF08: .4byte sub_80DAF0C
@@ -34442,7 +34442,7 @@ _080DAFFC: .4byte sub_80DA6F0
sub_80DB000: @ 80DB000
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080DB018 @ =gUnknown_03004B00
+ ldr r0, _080DB018 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -34452,20 +34452,20 @@ sub_80DB000: @ 80DB000
bl sub_80787B0
b _080DB024
.align 2, 0
-_080DB018: .4byte gUnknown_03004B00
+_080DB018: .4byte gBattleAnimArgs
_080DB01C:
adds r0, r5, 0
movs r1, 0
bl sub_8078764
_080DB024:
- ldr r4, _080DB08C @ =gUnknown_03004B00
+ ldr r4, _080DB08C @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080DB03C
- ldr r0, _080DB090 @ =gUnknown_0202F7C8
+ ldr r0, _080DB090 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DB052
@@ -34474,9 +34474,9 @@ _080DB03C:
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _080DB058
- ldr r0, _080DB094 @ =gUnknown_0202F7C9
+ ldr r0, _080DB094 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080DB058
@@ -34485,7 +34485,7 @@ _080DB052:
adds r0, 0x8
strh r0, [r5, 0x20]
_080DB058:
- ldr r4, _080DB08C @ =gUnknown_03004B00
+ ldr r4, _080DB08C @ =gBattleAnimArgs
ldrb r1, [r4, 0x8]
adds r0, r5, 0
bl SeekSpriteAnim
@@ -34511,9 +34511,9 @@ _080DB058:
pop {r0}
bx r0
.align 2, 0
-_080DB08C: .4byte gUnknown_03004B00
-_080DB090: .4byte gUnknown_0202F7C8
-_080DB094: .4byte gUnknown_0202F7C9
+_080DB08C: .4byte gBattleAnimArgs
+_080DB090: .4byte gBattleAnimPlayerMonIndex
+_080DB094: .4byte gBattleAnimEnemyMonIndex
_080DB098: .4byte 0x00000ccc
_080DB09C: .4byte sub_80DB0A0
thumb_func_end sub_80DB000
@@ -34576,7 +34576,7 @@ sub_80DB0E8: @ 80DB0E8
ands r0, r1
cmp r0, 0
bne _080DB162
- ldr r1, _080DB184 @ =gUnknown_0202F7B2
+ ldr r1, _080DB184 @ =gAnimVisualTaskCount
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
@@ -34586,7 +34586,7 @@ sub_80DB0E8: @ 80DB0E8
negs r5, r5
adds r1, r5, 0
bl Sin
- ldr r4, _080DB188 @ =gUnknown_03004B00
+ ldr r4, _080DB188 @ =gBattleAnimArgs
strh r0, [r4]
movs r1, 0x8
ldrsh r0, [r7, r1]
@@ -34599,7 +34599,7 @@ sub_80DB0E8: @ 80DB0E8
strh r0, [r4, 0x6]
ldr r0, _080DB18C @ =gBattleAnimSpriteTemplate_83DB538
mov r8, r0
- ldr r5, _080DB190 @ =gUnknown_0202F7C9
+ ldr r5, _080DB190 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -34625,7 +34625,7 @@ _080DB162:
cmp r0, 0xFF
ble _080DB176
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DB176:
pop {r3}
mov r8, r3
@@ -34634,10 +34634,10 @@ _080DB176:
bx r0
.align 2, 0
_080DB180: .4byte gTasks
-_080DB184: .4byte gUnknown_0202F7B2
-_080DB188: .4byte gUnknown_03004B00
+_080DB184: .4byte gAnimVisualTaskCount
+_080DB188: .4byte gBattleAnimArgs
_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538
-_080DB190: .4byte gUnknown_0202F7C9
+_080DB190: .4byte gBattleAnimEnemyMonIndex
thumb_func_end sub_80DB0E8
thumb_func_start sub_80DB194
@@ -34709,7 +34709,7 @@ _080DB20A:
beq _080DB240
b _080DB27E
_080DB210:
- ldr r0, _080DB228 @ =gUnknown_0202F7C9
+ ldr r0, _080DB228 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -34721,7 +34721,7 @@ _080DB210:
strh r0, [r4, 0x26]
b _080DB238
.align 2, 0
-_080DB228: .4byte gUnknown_0202F7C9
+_080DB228: .4byte gBattleAnimEnemyMonIndex
_080DB22C:
ldrh r0, [r4, 0x26]
adds r0, 0xA
@@ -34778,7 +34778,7 @@ sub_80DB288: @ 80DB288
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080DB2C4 @ =gUnknown_03004B00
+ ldr r1, _080DB2C4 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x6]
@@ -34803,7 +34803,7 @@ sub_80DB288: @ 80DB288
pop {r0}
bx r0
.align 2, 0
-_080DB2C4: .4byte gUnknown_03004B00
+_080DB2C4: .4byte gBattleAnimArgs
_080DB2C8: .4byte sub_80DB2D0
_080DB2CC: .4byte gSprites
thumb_func_end sub_80DB288
@@ -34914,18 +34914,18 @@ sub_80DB374: @ 80DB374
beq _080DB3E0
b _080DB44C
_080DB388:
- ldr r0, _080DB398 @ =gUnknown_03004B00
+ ldr r0, _080DB398 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
bne _080DB3A0
- ldr r4, _080DB39C @ =gUnknown_0202F7C8
+ ldr r4, _080DB39C @ =gBattleAnimPlayerMonIndex
b _080DB3A2
.align 2, 0
-_080DB398: .4byte gUnknown_03004B00
-_080DB39C: .4byte gUnknown_0202F7C8
+_080DB398: .4byte gBattleAnimArgs
+_080DB39C: .4byte gBattleAnimPlayerMonIndex
_080DB3A0:
- ldr r4, _080DB3DC @ =gUnknown_0202F7C9
+ ldr r4, _080DB3DC @ =gBattleAnimEnemyMonIndex
_080DB3A2:
ldrb r0, [r4]
movs r1, 0
@@ -34954,7 +34954,7 @@ _080DB3A2:
strh r0, [r5, 0x2E]
b _080DB44C
.align 2, 0
-_080DB3DC: .4byte gUnknown_0202F7C9
+_080DB3DC: .4byte gBattleAnimEnemyMonIndex
_080DB3E0:
movs r1, 0x32
ldrsh r0, [r5, r1]
@@ -35061,7 +35061,7 @@ _080DB49C:
subs r0, r1
_080DB4A4:
strh r0, [r5, 0x30]
- ldr r2, _080DB4CC @ =gUnknown_03004B00
+ ldr r2, _080DB4CC @ =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r5, 0x32]
lsls r0, 16
@@ -35079,13 +35079,13 @@ _080DB4C0:
ldrsh r0, [r2, r1]
cmp r0, 0
bne _080DB4D4
- ldr r4, _080DB4D0 @ =gUnknown_0202F7C8
+ ldr r4, _080DB4D0 @ =gBattleAnimPlayerMonIndex
b _080DB4D6
.align 2, 0
-_080DB4CC: .4byte gUnknown_03004B00
-_080DB4D0: .4byte gUnknown_0202F7C8
+_080DB4CC: .4byte gBattleAnimArgs
+_080DB4D0: .4byte gBattleAnimPlayerMonIndex
_080DB4D4:
- ldr r4, _080DB500 @ =gUnknown_0202F7C9
+ ldr r4, _080DB500 @ =gBattleAnimEnemyMonIndex
_080DB4D6:
ldrb r0, [r4]
movs r1, 0
@@ -35106,7 +35106,7 @@ _080DB4D6:
pop {r0}
bx r0
.align 2, 0
-_080DB500: .4byte gUnknown_0202F7C9
+_080DB500: .4byte gBattleAnimEnemyMonIndex
_080DB504: .4byte sub_80DB508
thumb_func_end sub_80DB458
@@ -35245,7 +35245,7 @@ sub_80DB5E4: @ 80DB5E4
mov r8, r0
ldrh r4, [r0, 0x20]
ldrh r5, [r0, 0x22]
- ldr r6, _080DB698 @ =gUnknown_0202F7C8
+ ldr r6, _080DB698 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -35321,7 +35321,7 @@ sub_80DB5E4: @ 80DB5E4
pop {r0}
bx r0
.align 2, 0
-_080DB698: .4byte gUnknown_0202F7C8
+_080DB698: .4byte gBattleAnimPlayerMonIndex
_080DB69C: .4byte sub_80DB6A0
thumb_func_end sub_80DB5E4
@@ -35369,7 +35369,7 @@ unref_sub_80DB6E4: @ 80DB6E4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080DB714 @ =gUnknown_03004B00
+ ldr r0, _080DB714 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -35389,7 +35389,7 @@ unref_sub_80DB6E4: @ 80DB6E4
orrs r0, r2
b _080DB73A
.align 2, 0
-_080DB714: .4byte gUnknown_03004B00
+_080DB714: .4byte gBattleAnimArgs
_080DB718: .4byte gSprites
_080DB71C:
movs r0, 0
@@ -35409,7 +35409,7 @@ _080DB71C:
_080DB73A:
strb r0, [r1]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -35421,13 +35421,13 @@ _080DB748: .4byte gSprites
sub_80DB74C: @ 80DB74C
push {r4-r7,lr}
adds r6, r0, 0
- ldr r0, _080DB804 @ =gUnknown_0202F7C8
+ ldr r0, _080DB804 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DB768
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DB77E
@@ -35444,17 +35444,17 @@ _080DB768:
movs r0, 0xC8
strb r0, [r1]
_080DB77E:
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DB7DA
movs r0, 0x1
- bl battle_get_side_with_given_state
+ bl GetBankByPlayerAI
lsls r0, 24
lsrs r4, r0, 24
adds r7, r4, 0
adds r0, r4, 0
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -35485,17 +35485,17 @@ _080DB7BC:
adds r1, r5, 0
bl sub_8076034
_080DB7DA:
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DB810
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080DB810
- ldr r0, _080DB804 @ =gUnknown_0202F7C8
+ ldr r0, _080DB804 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080DB808
@@ -35504,20 +35504,20 @@ _080DB7DA:
movs r0, 0x50
b _080DB84A
.align 2, 0
-_080DB804: .4byte gUnknown_0202F7C8
+_080DB804: .4byte gBattleAnimPlayerMonIndex
_080DB808:
movs r0, 0xB0
strh r0, [r6, 0x20]
movs r0, 0x28
b _080DB84A
_080DB810:
- ldr r5, _080DB880 @ =gUnknown_0202F7C8
+ ldr r5, _080DB880 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DB826
- ldr r1, _080DB884 @ =gUnknown_03004B00
+ ldr r1, _080DB884 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -35526,7 +35526,7 @@ _080DB826:
movs r1, 0
bl sub_8077ABC
lsls r0, 24
- ldr r4, _080DB884 @ =gUnknown_03004B00
+ ldr r4, _080DB884 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -35540,7 +35540,7 @@ _080DB826:
adds r0, r4
_080DB84A:
strh r0, [r6, 0x22]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DB85C
@@ -35548,7 +35548,7 @@ _080DB84A:
adds r0, 0x9
strh r0, [r6, 0x22]
_080DB85C:
- ldr r0, _080DB884 @ =gUnknown_03004B00
+ ldr r0, _080DB884 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
bl IndexOfSpritePaletteTag
lsls r0, 24
@@ -35565,8 +35565,8 @@ _080DB85C:
pop {r0}
bx r0
.align 2, 0
-_080DB880: .4byte gUnknown_0202F7C8
-_080DB884: .4byte gUnknown_03004B00
+_080DB880: .4byte gBattleAnimPlayerMonIndex
+_080DB884: .4byte gBattleAnimArgs
_080DB888: .4byte sub_80DB88C
thumb_func_end sub_80DB74C
@@ -35679,12 +35679,12 @@ sub_80DB92C: @ 80DB92C
negs r1, r1
cmp r0, r1
bne _080DB9CC
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DB9BC
movs r0, 0x1
- bl battle_get_side_with_given_state
+ bl GetBankByPlayerAI
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
@@ -35694,7 +35694,7 @@ sub_80DB92C: @ 80DB92C
cmp r0, 0
beq _080DB98E
ldr r2, _080DB9D8 @ =gSprites
- ldr r0, _080DB9DC @ =gUnknown_02024BE0
+ ldr r0, _080DB9DC @ =gObjectBankIDs
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -35717,7 +35717,7 @@ _080DB98E:
cmp r0, 0
beq _080DB9BC
ldr r2, _080DB9D8 @ =gSprites
- ldr r0, _080DB9DC @ =gUnknown_02024BE0
+ ldr r0, _080DB9DC @ =gObjectBankIDs
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -35746,7 +35746,7 @@ _080DB9CC:
.align 2, 0
_080DB9D4: .4byte REG_BLDALPHA
_080DB9D8: .4byte gSprites
-_080DB9DC: .4byte gUnknown_02024BE0
+_080DB9DC: .4byte gObjectBankIDs
_080DB9E0: .4byte sub_80DB9E4
thumb_func_end sub_80DB92C
@@ -35754,16 +35754,16 @@ _080DB9E0: .4byte sub_80DB9E4
sub_80DB9E4: @ 80DB9E4
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DBA3C
movs r0, 0x1
- bl battle_get_side_with_given_state
+ bl GetBankByPlayerAI
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -35808,7 +35808,7 @@ sub_80DBA4C: @ 80DBA4C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080DBAD8
- ldr r5, _080DBA98 @ =gUnknown_03004B00
+ ldr r5, _080DBA98 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r5, r1]
movs r6, 0
@@ -35816,17 +35816,17 @@ sub_80DBA4C: @ 80DBA4C
bne _080DBA66
movs r6, 0x1
_080DBA66:
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DBAAE
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080DBAAE
- ldr r0, _080DBA9C @ =gUnknown_0202F7C8
+ ldr r0, _080DBA9C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080DBAA0
@@ -35839,8 +35839,8 @@ _080DBA66:
strh r0, [r4, 0x22]
b _080DBAD0
.align 2, 0
-_080DBA98: .4byte gUnknown_03004B00
-_080DBA9C: .4byte gUnknown_0202F7C8
+_080DBA98: .4byte gBattleAnimArgs
+_080DBA9C: .4byte gBattleAnimPlayerMonIndex
_080DBAA0:
ldrh r0, [r5]
adds r0, 0xB0
@@ -35850,7 +35850,7 @@ _080DBAA0:
strh r0, [r4, 0x22]
b _080DBAD0
_080DBAAE:
- ldr r0, _080DBAC4 @ =gUnknown_03004B00
+ ldr r0, _080DBAC4 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -35860,7 +35860,7 @@ _080DBAAE:
bl sub_80787B0
b _080DBAD0
.align 2, 0
-_080DBAC4: .4byte gUnknown_03004B00
+_080DBAC4: .4byte gBattleAnimArgs
_080DBAC8:
adds r0, r4, 0
adds r1, r6, 0
@@ -35890,7 +35890,7 @@ _080DBAEC:
sub_80DBAF4: @ 80DBAF4
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080DBB3C @ =gUnknown_0202F7C8
+ ldr r4, _080DBB3C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -35904,7 +35904,7 @@ sub_80DBAF4: @ 80DBAF4
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DBB44
@@ -35920,7 +35920,7 @@ sub_80DBAF4: @ 80DBAF4
ldr r0, _080DBB40 @ =0x0000ffff
b _080DBB52
.align 2, 0
-_080DBB3C: .4byte gUnknown_0202F7C8
+_080DBB3C: .4byte gBattleAnimPlayerMonIndex
_080DBB40: .4byte 0x0000ffff
_080DBB44:
ldrh r0, [r5, 0x20]
@@ -35949,7 +35949,7 @@ _080DBB6C: .4byte sub_8078600
sub_80DBB70: @ 80DBB70
push {r4-r7,lr}
adds r5, r0, 0
- ldr r6, _080DBBF4 @ =gUnknown_0202F7C8
+ ldr r6, _080DBBF4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r6]
movs r1, 0x1
bl sub_807A100
@@ -35971,7 +35971,7 @@ sub_80DBB70: @ 80DBB70
lsls r1, 16
lsrs r7, r1, 16
ldrb r0, [r6]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -36010,7 +36010,7 @@ _080DBBE2:
pop {r0}
bx r0
.align 2, 0
-_080DBBF4: .4byte gUnknown_0202F7C8
+_080DBBF4: .4byte gBattleAnimPlayerMonIndex
_080DBBF8: .4byte sub_80DBC00
_080DBBFC: .4byte sub_8078600
thumb_func_end sub_80DBB70
@@ -36139,7 +36139,7 @@ sub_80DBCD0: @ 80DBCD0
cmp r0, 0
bne _080DBCF0
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DBCF0:
pop {r4}
pop {r0}
@@ -36166,9 +36166,9 @@ sub_80DBCFC: @ 80DBCFC
strh r0, [r4, 0x8]
strh r1, [r4, 0xA]
strh r1, [r4, 0xC]
- ldr r0, _080DBD4C @ =gUnknown_0202F7C8
+ ldr r0, _080DBD4C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
movs r1, 0x8
cmp r0, 0
@@ -36187,7 +36187,7 @@ _080DBD30:
bx r0
.align 2, 0
_080DBD48: .4byte gTasks
-_080DBD4C: .4byte gUnknown_0202F7C8
+_080DBD4C: .4byte gBattleAnimPlayerMonIndex
_080DBD50: .4byte gUnknown_083DA8C4
_080DBD54: .4byte sub_80DBD58
thumb_func_end sub_80DBCFC
@@ -36271,7 +36271,7 @@ _080DBDC0:
ldrb r0, [r4, 0x8]
bl sub_8078F40
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DBDF6:
pop {r4,r5}
pop {r0}
@@ -36294,7 +36294,7 @@ sub_80DBE00: @ 80DBE00
movs r7, 0x10
strh r7, [r5, 0xE]
strh r0, [r5, 0x10]
- ldr r4, _080DBE88 @ =gUnknown_0202F7C8
+ ldr r4, _080DBE88 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -36345,7 +36345,7 @@ _080DBE6A:
bx r0
.align 2, 0
_080DBE84: .4byte gTasks
-_080DBE88: .4byte gUnknown_0202F7C8
+_080DBE88: .4byte gBattleAnimPlayerMonIndex
_080DBE8C: .4byte REG_BLDCNT
_080DBE90: .4byte REG_BLDALPHA
_080DBE94: .4byte sub_80DBE98
@@ -36555,7 +36555,7 @@ _080DC004:
subs r0, 0x2
strh r1, [r0]
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DC014:
pop {r4-r6}
pop {r0}
@@ -36609,12 +36609,12 @@ _080DC05C:
sub_80DC068: @ 80DC068
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080DC0A4 @ =gUnknown_03004B00
+ ldr r6, _080DC0A4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080DC094
- ldr r4, _080DC0A8 @ =gUnknown_0202F7C8
+ ldr r4, _080DC0A8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -36636,8 +36636,8 @@ _080DC094:
pop {r0}
bx r0
.align 2, 0
-_080DC0A4: .4byte gUnknown_03004B00
-_080DC0A8: .4byte gUnknown_0202F7C8
+_080DC0A4: .4byte gBattleAnimArgs
+_080DC0A8: .4byte gBattleAnimPlayerMonIndex
_080DC0AC: .4byte sub_80DC020
thumb_func_end sub_80DC068
@@ -36651,18 +36651,18 @@ sub_80DC0B0: @ 80DC0B0
lsls r1, 3
ldr r0, _080DC10C @ =gTasks
adds r5, r1, r0
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DC154
- ldr r0, _080DC110 @ =gUnknown_03004B00
+ ldr r0, _080DC110 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
bne _080DC120
ldr r0, _080DC114 @ =0x0000fff6
strh r0, [r5, 0x1C]
- ldr r4, _080DC118 @ =gUnknown_0202F7C9
+ ldr r4, _080DC118 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x5
bl sub_807A100
@@ -36673,7 +36673,7 @@ sub_80DC0B0: @ 80DC0B0
bl sub_807A100
adds r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, _080DC11C @ =gUnknown_0202F7C8
+ ldr r4, _080DC11C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x5
bl sub_807A100
@@ -36686,14 +36686,14 @@ sub_80DC0B0: @ 80DC0B0
b _080DC1DE
.align 2, 0
_080DC10C: .4byte gTasks
-_080DC110: .4byte gUnknown_03004B00
+_080DC110: .4byte gBattleAnimArgs
_080DC114: .4byte 0x0000fff6
-_080DC118: .4byte gUnknown_0202F7C9
-_080DC11C: .4byte gUnknown_0202F7C8
+_080DC118: .4byte gBattleAnimEnemyMonIndex
+_080DC11C: .4byte gBattleAnimPlayerMonIndex
_080DC120:
movs r0, 0xA
strh r0, [r5, 0x1C]
- ldr r4, _080DC14C @ =gUnknown_0202F7C8
+ ldr r4, _080DC14C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x4
bl sub_807A100
@@ -36704,24 +36704,24 @@ _080DC120:
bl sub_807A100
subs r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, _080DC150 @ =gUnknown_0202F7C9
+ ldr r4, _080DC150 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x4
bl sub_807A100
adds r0, 0x8
b _080DC1D2
.align 2, 0
-_080DC14C: .4byte gUnknown_0202F7C8
-_080DC150: .4byte gUnknown_0202F7C9
+_080DC14C: .4byte gBattleAnimPlayerMonIndex
+_080DC150: .4byte gBattleAnimEnemyMonIndex
_080DC154:
- ldr r0, _080DC198 @ =gUnknown_03004B00
+ ldr r0, _080DC198 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
bne _080DC1A8
ldr r0, _080DC19C @ =0x0000fff6
strh r0, [r5, 0x1C]
- ldr r4, _080DC1A0 @ =gUnknown_0202F7C9
+ ldr r4, _080DC1A0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x4
bl sub_807A100
@@ -36732,7 +36732,7 @@ _080DC154:
bl sub_807A100
adds r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, _080DC1A4 @ =gUnknown_0202F7C8
+ ldr r4, _080DC1A4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x4
bl sub_807A100
@@ -36744,14 +36744,14 @@ _080DC154:
adds r0, 0x8
b _080DC1DE
.align 2, 0
-_080DC198: .4byte gUnknown_03004B00
+_080DC198: .4byte gBattleAnimArgs
_080DC19C: .4byte 0x0000fff6
-_080DC1A0: .4byte gUnknown_0202F7C9
-_080DC1A4: .4byte gUnknown_0202F7C8
+_080DC1A0: .4byte gBattleAnimEnemyMonIndex
+_080DC1A4: .4byte gBattleAnimPlayerMonIndex
_080DC1A8:
movs r0, 0xA
strh r0, [r5, 0x1C]
- ldr r4, _080DC1F0 @ =gUnknown_0202F7C8
+ ldr r4, _080DC1F0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x5
bl sub_807A100
@@ -36762,7 +36762,7 @@ _080DC1A8:
bl sub_807A100
subs r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, _080DC1F4 @ =gUnknown_0202F7C9
+ ldr r4, _080DC1F4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x5
bl sub_807A100
@@ -36783,8 +36783,8 @@ _080DC1DE:
pop {r0}
bx r0
.align 2, 0
-_080DC1F0: .4byte gUnknown_0202F7C8
-_080DC1F4: .4byte gUnknown_0202F7C9
+_080DC1F0: .4byte gBattleAnimPlayerMonIndex
+_080DC1F4: .4byte gBattleAnimEnemyMonIndex
_080DC1F8: .4byte sub_80DC1FC
thumb_func_end sub_80DC0B0
@@ -36871,7 +36871,7 @@ _080DC294:
cmp r0, 0x11
ble _080DC2A8
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DC2A8:
pop {r4,r5}
pop {r0}
@@ -36909,7 +36909,7 @@ sub_80DC2D4: @ 80DC2D4
lsls r1, 3
ldr r0, _080DC30C @ =gTasks
adds r4, r1, r0
- ldr r0, _080DC310 @ =gUnknown_0202F7C9
+ ldr r0, _080DC310 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
bl sub_8077FC0
lsls r0, 24
@@ -36917,7 +36917,7 @@ sub_80DC2D4: @ 80DC2D4
adds r0, r1, 0
subs r0, 0x20
strh r0, [r4, 0x24]
- ldr r0, _080DC314 @ =gUnknown_03004B00
+ ldr r0, _080DC314 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0x1
@@ -36929,8 +36929,8 @@ sub_80DC2D4: @ 80DC2D4
b _080DC346
.align 2, 0
_080DC30C: .4byte gTasks
-_080DC310: .4byte gUnknown_0202F7C9
-_080DC314: .4byte gUnknown_03004B00
+_080DC310: .4byte gBattleAnimEnemyMonIndex
+_080DC314: .4byte gBattleAnimArgs
_080DC318:
cmp r0, 0x2
beq _080DC336
@@ -36967,9 +36967,9 @@ _080DC346:
movs r0, 0
strh r0, [r4, 0x24]
_080DC352:
- ldr r0, _080DC36C @ =gUnknown_0202F7C9
+ ldr r0, _080DC36C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -36980,7 +36980,7 @@ _080DC352:
ldr r0, _080DC374 @ =REG_BG1HOFS
b _080DC380
.align 2, 0
-_080DC36C: .4byte gUnknown_0202F7C9
+_080DC36C: .4byte gBattleAnimEnemyMonIndex
_080DC370: .4byte gUnknown_030042C0
_080DC374: .4byte REG_BG1HOFS
_080DC378:
@@ -37175,7 +37175,7 @@ _080DC4D4:
_080DC4DC: .4byte gUnknown_03004DC0
_080DC4E0:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DC4E6:
pop {r3,r4}
mov r8, r3
@@ -37208,12 +37208,12 @@ sub_80DC4F4: @ 80DC4F4
cmp r6, 0xFF
bne _080DC52C
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080DC5D6
.align 2, 0
_080DC528: .4byte gTasks
_080DC52C:
- ldr r1, _080DC550 @ =gUnknown_03004B00
+ ldr r1, _080DC550 @ =gBattleAnimArgs
ldrb r0, [r1]
bl duplicate_obj_of_side_rel2move_in_transparent_mode
lsls r0, 16
@@ -37225,10 +37225,10 @@ _080DC52C:
adds r0, r5, 0
bl FreeOamMatrix
mov r0, r8
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080DC5D6
.align 2, 0
-_080DC550: .4byte gUnknown_03004B00
+_080DC550: .4byte gBattleAnimArgs
_080DC554:
ldr r2, _080DC5E4 @ =gSprites
lsls r4, r0, 4
@@ -37280,7 +37280,7 @@ _080DC554:
lsrs r3, 30
adds r0, r4, 0
bl CalcCenterToCornerVec
- ldr r1, _080DC5EC @ =gUnknown_03004B00
+ ldr r1, _080DC5EC @ =gBattleAnimArgs
ldrb r0, [r1]
bl obj_id_for_side_relative_to_move
lsls r0, 24
@@ -37303,7 +37303,7 @@ _080DC5D6:
.align 2, 0
_080DC5E4: .4byte gSprites
_080DC5E8: .4byte SpriteCallbackDummy
-_080DC5EC: .4byte gUnknown_03004B00
+_080DC5EC: .4byte gBattleAnimArgs
_080DC5F0: .4byte sub_80DC5F4
thumb_func_end sub_80DC4F4
@@ -37434,7 +37434,7 @@ _080DC6E8:
lsrs r0, 24
bl FreeOamMatrix
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DC6F8:
pop {r4,r5}
pop {r0}
@@ -37461,7 +37461,7 @@ _080DC716:
beq _080DC808
b _080DC818
_080DC720:
- ldr r4, _080DC76C @ =gUnknown_0202F7C8
+ ldr r4, _080DC76C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -37474,7 +37474,7 @@ _080DC720:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DC74E
@@ -37498,7 +37498,7 @@ _080DC74E:
strh r0, [r2]
b _080DC7A2
.align 2, 0
-_080DC76C: .4byte gUnknown_0202F7C8
+_080DC76C: .4byte gBattleAnimPlayerMonIndex
_080DC770: .4byte REG_BLDCNT
_080DC774: .4byte REG_BLDALPHA
_080DC778:
@@ -37594,14 +37594,14 @@ _080DC820: .4byte REG_BLDCNT
sub_80DC824: @ 80DC824
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DC850
adds r0, r6, 0
movs r1, 0x2
bl StartSpriteAffineAnim
- ldr r0, _080DC84C @ =gUnknown_03004B00
+ ldr r0, _080DC84C @ =gBattleAnimArgs
ldrh r1, [r0, 0x4]
negs r1, r1
strh r1, [r0, 0x4]
@@ -37610,18 +37610,18 @@ sub_80DC824: @ 80DC824
strh r1, [r0]
b _080DC880
.align 2, 0
-_080DC84C: .4byte gUnknown_03004B00
+_080DC84C: .4byte gBattleAnimArgs
_080DC850:
- ldr r0, _080DC8E4 @ =gUnknown_0202F7C9
+ ldr r0, _080DC8E4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080DC880
adds r0, r6, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r1, _080DC8E8 @ =gUnknown_03004B00
+ ldr r1, _080DC8E8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
@@ -37635,12 +37635,12 @@ _080DC850:
negs r0, r0
strh r0, [r1]
_080DC880:
- ldr r5, _080DC8E4 @ =gUnknown_0202F7C9
+ ldr r5, _080DC8E4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077EE4
lsls r0, 24
- ldr r4, _080DC8E8 @ =gUnknown_03004B00
+ ldr r4, _080DC8E8 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -37680,8 +37680,8 @@ _080DC880:
pop {r0}
bx r0
.align 2, 0
-_080DC8E4: .4byte gUnknown_0202F7C9
-_080DC8E8: .4byte gUnknown_03004B00
+_080DC8E4: .4byte gBattleAnimEnemyMonIndex
+_080DC8E8: .4byte gBattleAnimArgs
_080DC8EC: .4byte sub_8078B34
_080DC8F0: .4byte move_anim_8072740
thumb_func_end sub_80DC824
@@ -37690,11 +37690,11 @@ _080DC8F0: .4byte move_anim_8072740
sub_80DC8F4: @ 80DC8F4
push {r4-r6,lr}
adds r6, r0, 0
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DC918
- ldr r1, _080DC914 @ =gUnknown_03004B00
+ ldr r1, _080DC914 @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r1]
@@ -37703,15 +37703,15 @@ sub_80DC8F4: @ 80DC8F4
bl StartSpriteAffineAnim
b _080DC934
.align 2, 0
-_080DC914: .4byte gUnknown_03004B00
+_080DC914: .4byte gBattleAnimArgs
_080DC918:
- ldr r0, _080DC990 @ =gUnknown_0202F7C9
+ ldr r0, _080DC990 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080DC934
- ldr r0, _080DC994 @ =gUnknown_03004B00
+ ldr r0, _080DC994 @ =gBattleAnimArgs
ldrh r1, [r0, 0x2]
negs r1, r1
strh r1, [r0, 0x2]
@@ -37719,12 +37719,12 @@ _080DC918:
negs r1, r1
strh r1, [r0]
_080DC934:
- ldr r5, _080DC990 @ =gUnknown_0202F7C9
+ ldr r5, _080DC990 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077EE4
lsls r0, 24
- ldr r4, _080DC994 @ =gUnknown_03004B00
+ ldr r4, _080DC994 @ =gBattleAnimArgs
lsrs r0, 24
ldrh r1, [r4]
adds r0, r1
@@ -37760,8 +37760,8 @@ _080DC934:
pop {r0}
bx r0
.align 2, 0
-_080DC990: .4byte gUnknown_0202F7C9
-_080DC994: .4byte gUnknown_03004B00
+_080DC990: .4byte gBattleAnimEnemyMonIndex
+_080DC994: .4byte gBattleAnimArgs
_080DC998: .4byte sub_8078B34
_080DC99C: .4byte move_anim_8072740
thumb_func_end sub_80DC8F4
@@ -37770,11 +37770,11 @@ _080DC99C: .4byte move_anim_8072740
sub_80DC9A0: @ 80DC9A0
push {r4,r5,lr}
adds r5, r0, 0
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DC9BC
- ldr r0, _080DC9FC @ =gUnknown_03004B00
+ ldr r0, _080DC9FC @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
lsrs r2, r1, 31
@@ -37785,7 +37785,7 @@ _080DC9BC:
adds r0, r5, 0
movs r1, 0x1
bl sub_80787B0
- ldr r1, _080DC9FC @ =gUnknown_03004B00
+ ldr r1, _080DC9FC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
@@ -37796,7 +37796,7 @@ _080DC9BC:
ldrsh r0, [r1, r2]
cmp r0, 0
bne _080DCA04
- ldr r4, _080DCA00 @ =gUnknown_0202F7C9
+ ldr r4, _080DCA00 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -37811,10 +37811,10 @@ _080DC9BC:
strh r0, [r5, 0x36]
b _080DCA16
.align 2, 0
-_080DC9FC: .4byte gUnknown_03004B00
-_080DCA00: .4byte gUnknown_0202F7C9
+_080DC9FC: .4byte gBattleAnimArgs
+_080DCA00: .4byte gBattleAnimEnemyMonIndex
_080DCA04:
- ldr r0, _080DCA2C @ =gUnknown_0202F7C9
+ ldr r0, _080DCA2C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -37825,7 +37825,7 @@ _080DCA04:
_080DCA16:
adds r0, r5, 0
bl sub_8078BD4
- ldr r0, _080DCA30 @ =gUnknown_03004B00
+ ldr r0, _080DCA30 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r5, 0x38]
ldr r0, _080DCA34 @ =sub_80DCA38
@@ -37834,8 +37834,8 @@ _080DCA16:
pop {r0}
bx r0
.align 2, 0
-_080DCA2C: .4byte gUnknown_0202F7C9
-_080DCA30: .4byte gUnknown_03004B00
+_080DCA2C: .4byte gBattleAnimEnemyMonIndex
+_080DCA30: .4byte gBattleAnimArgs
_080DCA34: .4byte sub_80DCA38
thumb_func_end sub_80DC9A0
@@ -37874,7 +37874,7 @@ _080DCA6A:
sub_80DCA70: @ 80DCA70
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DCAA0 @ =gUnknown_0202F7C9
+ ldr r0, _080DCAA0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -37882,24 +37882,24 @@ sub_80DCA70: @ 80DCA70
adds r3, 0x22
movs r1, 0
bl sub_807A3FC
- ldr r0, _080DCAA4 @ =gUnknown_0202F7C8
+ ldr r0, _080DCAA4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DCAAC
- ldr r0, _080DCAA8 @ =gUnknown_03004B00
+ ldr r0, _080DCAA8 @ =gBattleAnimArgs
ldrh r1, [r4, 0x20]
ldrh r2, [r0]
subs r1, r2
strh r1, [r4, 0x20]
b _080DCAB8
.align 2, 0
-_080DCAA0: .4byte gUnknown_0202F7C9
-_080DCAA4: .4byte gUnknown_0202F7C8
-_080DCAA8: .4byte gUnknown_03004B00
+_080DCAA0: .4byte gBattleAnimEnemyMonIndex
+_080DCAA4: .4byte gBattleAnimPlayerMonIndex
+_080DCAA8: .4byte gBattleAnimArgs
_080DCAAC:
- ldr r1, _080DCAE0 @ =gUnknown_03004B00
+ ldr r1, _080DCAE0 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -37910,9 +37910,9 @@ _080DCAB8:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r0, _080DCAE4 @ =gUnknown_0202F7C9
+ ldr r0, _080DCAE4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080DCAD4
@@ -37926,8 +37926,8 @@ _080DCAD4:
pop {r0}
bx r0
.align 2, 0
-_080DCAE0: .4byte gUnknown_03004B00
-_080DCAE4: .4byte gUnknown_0202F7C9
+_080DCAE0: .4byte gBattleAnimArgs
+_080DCAE4: .4byte gBattleAnimEnemyMonIndex
_080DCAE8: .4byte sub_80DCAEC
thumb_func_end sub_80DCA70
@@ -38063,25 +38063,25 @@ sub_80DCBCC: @ 80DCBCC
push {r4-r7,lr}
sub sp, 0x4
adds r7, r0, 0
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DCBEC
- ldr r1, _080DCBE8 @ =gUnknown_03004B00
+ ldr r1, _080DCBE8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
b _080DCC0E
.align 2, 0
-_080DCBE8: .4byte gUnknown_03004B00
+_080DCBE8: .4byte gBattleAnimArgs
_080DCBEC:
- ldr r0, _080DCCE8 @ =gUnknown_0202F7C8
+ ldr r0, _080DCCE8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DCC0E
- ldr r1, _080DCCEC @ =gUnknown_03004B00
+ ldr r1, _080DCCEC @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
@@ -38092,34 +38092,34 @@ _080DCBEC:
negs r0, r0
strh r0, [r1, 0x6]
_080DCC0E:
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DCC5E
- ldr r0, _080DCCE8 @ =gUnknown_0202F7C8
+ ldr r0, _080DCCE8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
adds r4, r0, 0
- ldr r5, _080DCCF0 @ =gUnknown_0202F7C9
+ ldr r5, _080DCCF0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _080DCC5E
ldrb r0, [r5]
- bl battle_get_per_side_status
+ bl GetBankIdentity
lsls r0, 24
cmp r0, 0
beq _080DCC4C
ldrb r0, [r5]
- bl battle_get_per_side_status
+ bl GetBankIdentity
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080DCC5E
_080DCC4C:
- ldr r0, _080DCCEC @ =gUnknown_03004B00
+ ldr r0, _080DCCEC @ =gBattleAnimArgs
movs r2, 0x4
ldrsh r1, [r0, r2]
negs r1, r1
@@ -38132,13 +38132,13 @@ _080DCC5E:
adds r0, r7, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080DCCF0 @ =gUnknown_0202F7C9
+ ldr r5, _080DCCF0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
adds r4, r0, 0
lsls r4, 24
- ldr r6, _080DCCEC @ =gUnknown_03004B00
+ ldr r6, _080DCCEC @ =gBattleAnimArgs
lsrs r4, 24
ldrh r0, [r6, 0x4]
adds r4, r0
@@ -38192,9 +38192,9 @@ _080DCC5E:
pop {r0}
bx r0
.align 2, 0
-_080DCCE8: .4byte gUnknown_0202F7C8
-_080DCCEC: .4byte gUnknown_03004B00
-_080DCCF0: .4byte gUnknown_0202F7C9
+_080DCCE8: .4byte gBattleAnimPlayerMonIndex
+_080DCCEC: .4byte gBattleAnimArgs
+_080DCCF0: .4byte gBattleAnimEnemyMonIndex
_080DCCF4: .4byte sub_8078B34
_080DCCF8: .4byte move_anim_8072740
thumb_func_end sub_80DCBCC
@@ -38205,21 +38205,21 @@ sub_80DCCFC: @ 80DCCFC
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080DCD68 @ =gUnknown_0202F7C8
+ ldr r0, _080DCD68 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DCD1C
- ldr r1, _080DCD6C @ =gUnknown_03004B00
+ ldr r1, _080DCD6C @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080DCD1C:
- ldr r4, _080DCD6C @ =gUnknown_03004B00
+ ldr r4, _080DCD6C @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, _080DCD70 @ =gUnknown_0202F7C9
+ ldr r5, _080DCD70 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -38252,9 +38252,9 @@ _080DCD1C:
pop {r0}
bx r0
.align 2, 0
-_080DCD68: .4byte gUnknown_0202F7C8
-_080DCD6C: .4byte gUnknown_03004B00
-_080DCD70: .4byte gUnknown_0202F7C9
+_080DCD68: .4byte gBattleAnimPlayerMonIndex
+_080DCD6C: .4byte gBattleAnimArgs
+_080DCD70: .4byte gBattleAnimEnemyMonIndex
_080DCD74: .4byte sub_80DCD78
thumb_func_end sub_80DCCFC
@@ -38365,18 +38365,18 @@ _080DCE34:
sub_80DCE40: @ 80DCE40
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080DCE54 @ =gUnknown_03004B00
+ ldr r0, _080DCE54 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DCE5C
- ldr r4, _080DCE58 @ =gUnknown_0202F7C8
+ ldr r4, _080DCE58 @ =gBattleAnimPlayerMonIndex
b _080DCE5E
.align 2, 0
-_080DCE54: .4byte gUnknown_03004B00
-_080DCE58: .4byte gUnknown_0202F7C8
+_080DCE54: .4byte gBattleAnimArgs
+_080DCE58: .4byte gBattleAnimPlayerMonIndex
_080DCE5C:
- ldr r4, _080DCE90 @ =gUnknown_0202F7C9
+ ldr r4, _080DCE90 @ =gBattleAnimEnemyMonIndex
_080DCE5E:
ldrb r0, [r4]
movs r1, 0x2
@@ -38400,7 +38400,7 @@ _080DCE5E:
pop {r0}
bx r0
.align 2, 0
-_080DCE90: .4byte gUnknown_0202F7C9
+_080DCE90: .4byte gBattleAnimEnemyMonIndex
_080DCE94: .4byte move_anim_8074EE0
_080DCE98: .4byte sub_80785E4
thumb_func_end sub_80DCE40
@@ -38409,12 +38409,12 @@ _080DCE98: .4byte sub_80785E4
sub_80DCE9C: @ 80DCE9C
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _080DCF08 @ =gUnknown_03004B00
+ ldr r6, _080DCF08 @ =gBattleAnimArgs
movs r1, 0x6
ldrsh r0, [r6, r1]
cmp r0, 0
beq _080DCEBC
- ldr r0, _080DCF0C @ =gUnknown_0202F7C9
+ ldr r0, _080DCF0C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x20
@@ -38457,8 +38457,8 @@ _080DCEBC:
pop {r0}
bx r0
.align 2, 0
-_080DCF08: .4byte gUnknown_03004B00
-_080DCF0C: .4byte gUnknown_0202F7C9
+_080DCF08: .4byte gBattleAnimArgs
+_080DCF0C: .4byte gBattleAnimEnemyMonIndex
_080DCF10: .4byte 0x0000ffba
_080DCF14: .4byte sub_80DCF1C
_080DCF18: .4byte sub_8078278
@@ -38501,14 +38501,14 @@ _080DCF5C: .4byte sub_8078278
sub_80DCF60: @ 80DCF60
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080DCF88 @ =gUnknown_03004B00
+ ldr r4, _080DCF88 @ =gBattleAnimArgs
ldrb r1, [r4, 0xA]
bl StartSpriteAnim
adds r0, r5, 0
bl AnimateSprite
- ldr r0, _080DCF8C @ =gUnknown_0202F7C8
+ ldr r0, _080DCF8C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DCF90
@@ -38517,15 +38517,15 @@ sub_80DCF60: @ 80DCF60
subs r0, r1
b _080DCF96
.align 2, 0
-_080DCF88: .4byte gUnknown_03004B00
-_080DCF8C: .4byte gUnknown_0202F7C8
+_080DCF88: .4byte gBattleAnimArgs
+_080DCF8C: .4byte gBattleAnimPlayerMonIndex
_080DCF90:
ldrh r0, [r4]
ldrh r1, [r5, 0x20]
adds r0, r1
_080DCF96:
strh r0, [r5, 0x20]
- ldr r3, _080DCFD8 @ =gUnknown_03004B00
+ ldr r3, _080DCFD8 @ =gBattleAnimArgs
ldrh r2, [r3, 0x2]
ldrh r0, [r5, 0x22]
adds r2, r0
@@ -38555,7 +38555,7 @@ _080DCF96:
pop {r0}
bx r0
.align 2, 0
-_080DCFD8: .4byte gUnknown_03004B00
+_080DCFD8: .4byte gBattleAnimArgs
_080DCFDC: .4byte sub_8078394
_080DCFE0: .4byte move_anim_8074EE0
thumb_func_end sub_80DCF60
@@ -38564,7 +38564,7 @@ _080DCFE0: .4byte move_anim_8074EE0
sub_80DCFE4: @ 80DCFE4
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DCFFC @ =gUnknown_03004B00
+ ldr r0, _080DCFFC @ =gBattleAnimArgs
movs r1, 0xC
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -38574,13 +38574,13 @@ sub_80DCFE4: @ 80DCFE4
bl sub_80787B0
b _080DD008
.align 2, 0
-_080DCFFC: .4byte gUnknown_03004B00
+_080DCFFC: .4byte gBattleAnimArgs
_080DD000:
adds r0, r4, 0
movs r1, 0
bl sub_8078764
_080DD008:
- ldr r1, _080DD024 @ =gUnknown_03004B00
+ ldr r1, _080DD024 @ =gBattleAnimArgs
ldrh r0, [r1, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r1, 0x4]
@@ -38595,7 +38595,7 @@ _080DD008:
pop {r0}
bx r0
.align 2, 0
-_080DD024: .4byte gUnknown_03004B00
+_080DD024: .4byte gBattleAnimArgs
_080DD028: .4byte sub_80DD02C
thumb_func_end sub_80DCFE4
@@ -38668,7 +38668,7 @@ do_boulder_dust: @ 80DD078
movs r0, 0x3F
ands r0, r1
strb r0, [r4, 0x1]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DD0C4
@@ -38710,7 +38710,7 @@ _080DD0C4:
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DD120
@@ -38721,14 +38721,14 @@ _080DD0C4:
movs r3, 0
bl sub_80763FC
_080DD120:
- ldr r0, _080DD180 @ =gUnknown_03004B00
+ ldr r0, _080DD180 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080DD13A
- ldr r0, _080DD184 @ =gUnknown_0202F7C8
+ ldr r0, _080DD184 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DD13A
@@ -38758,8 +38758,8 @@ _080DD170: .4byte 0x85000400
_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew
_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew
_080DD17C: .4byte gBattleAnimSpritePalette_261
-_080DD180: .4byte gUnknown_03004B00
-_080DD184: .4byte gUnknown_0202F7C8
+_080DD180: .4byte gBattleAnimArgs
+_080DD184: .4byte gBattleAnimPlayerMonIndex
_080DD188: .4byte gTasks
_080DD18C: .4byte sub_80DD190
thumb_func_end do_boulder_dust
@@ -38972,7 +38972,7 @@ _080DD2F6:
ldr r1, _080DD394 @ =0x85000200
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080DD344
@@ -39010,7 +39010,7 @@ _080DD358:
orrs r0, r1
strb r0, [r2]
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DD37C:
add sp, 0x10
pop {r3-r5}
@@ -39039,14 +39039,14 @@ sub_80DD3AC: @ 80DD3AC
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080DD428
- ldr r4, _080DD3F0 @ =gUnknown_03004B00
+ ldr r4, _080DD3F0 @ =gBattleAnimArgs
movs r2, 0x6
ldrsh r0, [r4, r2]
cmp r0, 0
beq _080DD3F8
- ldr r0, _080DD3F4 @ =gUnknown_0202F7C8
+ ldr r0, _080DD3F4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DD3F8
@@ -39066,13 +39066,13 @@ sub_80DD3AC: @ 80DD3AC
strb r0, [r5, 0x3]
b _080DD3FC
.align 2, 0
-_080DD3F0: .4byte gUnknown_03004B00
-_080DD3F4: .4byte gUnknown_0202F7C8
+_080DD3F0: .4byte gBattleAnimArgs
+_080DD3F4: .4byte gBattleAnimPlayerMonIndex
_080DD3F8:
ldr r0, _080DD41C @ =0x0000ffc0
strh r0, [r5, 0x20]
_080DD3FC:
- ldr r4, _080DD420 @ =gUnknown_03004B00
+ ldr r4, _080DD420 @ =gBattleAnimArgs
ldrh r0, [r4]
strh r0, [r5, 0x22]
ldr r1, _080DD424 @ =gUnknown_083DAD10
@@ -39088,7 +39088,7 @@ _080DD3FC:
b _080DD484
.align 2, 0
_080DD41C: .4byte 0x0000ffc0
-_080DD420: .4byte gUnknown_03004B00
+_080DD420: .4byte gBattleAnimArgs
_080DD424: .4byte gUnknown_083DAD10
_080DD428:
ldrh r1, [r5, 0x30]
@@ -39151,7 +39151,7 @@ _080DD48C: .4byte move_anim_8072740
sub_80DD490: @ 80DD490
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080DD4C8 @ =gUnknown_03004B00
+ ldr r5, _080DD4C8 @ =gBattleAnimArgs
ldrb r1, [r5, 0x8]
bl StartSpriteAnim
adds r0, r4, 0
@@ -39174,7 +39174,7 @@ sub_80DD490: @ 80DD490
pop {r0}
bx r0
.align 2, 0
-_080DD4C8: .4byte gUnknown_03004B00
+_080DD4C8: .4byte gBattleAnimArgs
_080DD4CC: .4byte sub_8078B34
_080DD4D0: .4byte move_anim_8072740
thumb_func_end sub_80DD490
@@ -39193,7 +39193,7 @@ sub_80DD4D4: @ 80DD4D4
lsls r1, 3
ldr r0, _080DD554 @ =gTasks
adds r6, r1, r0
- ldr r5, _080DD558 @ =gUnknown_0202F7C8
+ ldr r5, _080DD558 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -39209,7 +39209,7 @@ sub_80DD4D4: @ 80DD4D4
lsls r1, 13
adds r0, r1
lsrs r7, r0, 16
- ldr r4, _080DD55C @ =gUnknown_0202F7C9
+ ldr r4, _080DD55C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -39243,8 +39243,8 @@ _080DD544:
b _080DD566
.align 2, 0
_080DD554: .4byte gTasks
-_080DD558: .4byte gUnknown_0202F7C8
-_080DD55C: .4byte gUnknown_0202F7C9
+_080DD558: .4byte gBattleAnimPlayerMonIndex
+_080DD55C: .4byte gBattleAnimEnemyMonIndex
_080DD560:
lsls r1, r5, 3
movs r0, 0x30
@@ -39507,7 +39507,7 @@ _080DD75E:
cmp r0, 0
bne _080DD76C
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DD76C:
pop {r4}
pop {r0}
@@ -39681,7 +39681,7 @@ _080DD8B8: .4byte gTasks
thumb_func_start sub_80DD8BC
sub_80DD8BC: @ 80DD8BC
push {lr}
- ldr r0, _080DD8E4 @ =gUnknown_0202F7B4
+ ldr r0, _080DD8E4 @ =gDisableStructMoveAnim
ldr r0, [r0]
ldrb r1, [r0, 0x11]
lsrs r0, r1, 4
@@ -39702,14 +39702,14 @@ _080DD8DE:
pop {r1}
bx r1
.align 2, 0
-_080DD8E4: .4byte gUnknown_0202F7B4
+_080DD8E4: .4byte gDisableStructMoveAnim
thumb_func_end sub_80DD8BC
thumb_func_start sub_80DD8E8
sub_80DD8E8: @ 80DD8E8
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080DD920 @ =gUnknown_03004B00
+ ldr r5, _080DD920 @ =gBattleAnimArgs
ldrb r1, [r5, 0x8]
bl StartSpriteAnim
ldrh r0, [r5]
@@ -39735,7 +39735,7 @@ sub_80DD8E8: @ 80DD8E8
pop {r0}
bx r0
.align 2, 0
-_080DD920: .4byte gUnknown_03004B00
+_080DD920: .4byte gBattleAnimArgs
_080DD924: .4byte sub_80DD928
thumb_func_end sub_80DD8E8
@@ -39787,9 +39787,9 @@ _080DD972:
sub_80DD978: @ 80DD978
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DD9A0 @ =gUnknown_0202F7C8
+ ldr r0, _080DD9A0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -39804,14 +39804,14 @@ _080DD994:
pop {r0}
bx r0
.align 2, 0
-_080DD9A0: .4byte gUnknown_0202F7C8
+_080DD9A0: .4byte gBattleAnimPlayerMonIndex
thumb_func_end sub_80DD978
thumb_func_start sub_80DD9A4
sub_80DD9A4: @ 80DD9A4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080DD9F0 @ =gUnknown_0202F7C9
+ ldr r5, _080DD9F0 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -39823,7 +39823,7 @@ sub_80DD9A4: @ 80DD9A4
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
- ldr r2, _080DD9F4 @ =gUnknown_03004B00
+ ldr r2, _080DD9F4 @ =gBattleAnimArgs
ldrh r3, [r2]
ldrh r5, [r4, 0x20]
adds r1, r3, r5
@@ -39844,8 +39844,8 @@ sub_80DD9A4: @ 80DD9A4
pop {r0}
bx r0
.align 2, 0
-_080DD9F0: .4byte gUnknown_0202F7C9
-_080DD9F4: .4byte gUnknown_03004B00
+_080DD9F0: .4byte gBattleAnimEnemyMonIndex
+_080DD9F4: .4byte gBattleAnimArgs
_080DD9F8: .4byte sub_80DD9FC
thumb_func_end sub_80DD9A4
@@ -39896,11 +39896,11 @@ sub_80DDA4C: @ 80DDA4C
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, _080DDA84 @ =gUnknown_0202F7B8
+ ldr r2, _080DDA84 @ =gMoveDmgMoveAnim
ldr r0, [r2]
cmp r0, 0x20
bgt _080DDA60
- ldr r1, _080DDA88 @ =gUnknown_03004B00
+ ldr r1, _080DDA88 @ =gBattleAnimArgs
movs r0, 0
strh r0, [r1, 0xE]
_080DDA60:
@@ -39909,23 +39909,23 @@ _080DDA60:
subs r0, 0x21
cmp r0, 0x20
bhi _080DDA70
- ldr r1, _080DDA88 @ =gUnknown_03004B00
+ ldr r1, _080DDA88 @ =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
_080DDA70:
cmp r2, 0x41
ble _080DDA7A
- ldr r1, _080DDA88 @ =gUnknown_03004B00
+ ldr r1, _080DDA88 @ =gBattleAnimArgs
movs r0, 0x2
strh r0, [r1, 0xE]
_080DDA7A:
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
-_080DDA84: .4byte gUnknown_0202F7B8
-_080DDA88: .4byte gUnknown_03004B00
+_080DDA84: .4byte gMoveDmgMoveAnim
+_080DDA88: .4byte gBattleAnimArgs
thumb_func_end sub_80DDA4C
thumb_func_start sub_80DDA8C
@@ -39965,7 +39965,7 @@ _080DDAAE:
movs r0, 0x1
bl sub_80789D4
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DDADA:
ldrh r0, [r5, 0x8]
adds r0, 0x1
@@ -40015,7 +40015,7 @@ _080DDB1C:
ldrh r4, [r4, 0xC]
adds r0, r4
strh r0, [r6]
- ldr r0, _080DDB64 @ =gUnknown_03004B00
+ ldr r0, _080DDB64 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
ldr r0, _080DDB68 @ =0x00000fff
@@ -40026,7 +40026,7 @@ _080DDB1C:
movs r0, 0x1
bl sub_80789D4
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DDB54:
pop {r4-r6}
pop {r0}
@@ -40034,7 +40034,7 @@ _080DDB54:
.align 2, 0
_080DDB5C: .4byte gTasks
_080DDB60: .4byte gUnknown_030041B8
-_080DDB64: .4byte gUnknown_03004B00
+_080DDB64: .4byte gBattleAnimArgs
_080DDB68: .4byte 0x00000fff
thumb_func_end sub_80DDAF0
@@ -40044,12 +40044,12 @@ sub_80DDB6C: @ 80DDB6C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080DDBC8 @ =gUnknown_03004B00
+ ldr r0, _080DDBC8 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, _080DDBCC @ =gUnknown_0202F7C9
+ ldr r5, _080DDBCC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -40082,8 +40082,8 @@ sub_80DDB6C: @ 80DDB6C
pop {r0}
bx r0
.align 2, 0
-_080DDBC8: .4byte gUnknown_03004B00
-_080DDBCC: .4byte gUnknown_0202F7C9
+_080DDBC8: .4byte gBattleAnimArgs
+_080DDBCC: .4byte gBattleAnimEnemyMonIndex
_080DDBD0: .4byte sub_80DDBD8
_080DDBD4: .4byte REG_BLDCNT
thumb_func_end sub_80DDB6C
@@ -40420,7 +40420,7 @@ sub_80DDDF0: @ 80DDDF0
movs r2, 0
movs r1, 0x80
strh r1, [r0, 0x8]
- ldr r1, _080DDE74 @ =gUnknown_03004B00
+ ldr r1, _080DDE74 @ =gBattleAnimArgs
ldrh r1, [r1]
strh r1, [r0, 0xA]
strh r2, [r0, 0xC]
@@ -40435,7 +40435,7 @@ sub_80DDDF0: @ 80DDDF0
_080DDE68: .4byte REG_BLDCNT
_080DDE6C: .4byte gSprites
_080DDE70: .4byte gTasks
-_080DDE74: .4byte gUnknown_03004B00
+_080DDE74: .4byte gBattleAnimArgs
_080DDE78: .4byte sub_80DDE7C
thumb_func_end sub_80DDDF0
@@ -40528,7 +40528,7 @@ _080DDF22:
adds r0, r1, 0
bl sub_8078F40
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
ldr r0, _080DDF3C @ =REG_BLDCNT
strh r6, [r0]
adds r0, 0x2
@@ -40551,7 +40551,7 @@ sub_80DDF40: @ 80DDF40
adds r4, r0, 0
ldrh r5, [r4, 0x20]
ldrh r6, [r4, 0x22]
- ldr r0, _080DDFDC @ =gUnknown_0202F7C8
+ ldr r0, _080DDFDC @ =gBattleAnimPlayerMonIndex
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
@@ -40570,7 +40570,7 @@ sub_80DDF40: @ 80DDF40
strh r0, [r4, 0x22]
mov r1, r9
strh r1, [r4, 0x2E]
- ldr r2, _080DDFE0 @ =gUnknown_03004B00
+ ldr r2, _080DDFE0 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r4, 0x30]
ldrh r1, [r2, 0x2]
@@ -40618,8 +40618,8 @@ sub_80DDF40: @ 80DDF40
pop {r0}
bx r0
.align 2, 0
-_080DDFDC: .4byte gUnknown_0202F7C8
-_080DDFE0: .4byte gUnknown_03004B00
+_080DDFDC: .4byte gBattleAnimPlayerMonIndex
+_080DDFE0: .4byte gBattleAnimArgs
_080DDFE4: .4byte sub_80DDFE8
thumb_func_end sub_80DDF40
@@ -40671,7 +40671,7 @@ _080DE032:
lsls r0, 16
cmp r0, 0
bgt _080DE0F6
- ldr r4, _080DE098 @ =gUnknown_0202F7C9
+ ldr r4, _080DE098 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -40712,7 +40712,7 @@ _080DE032:
strh r0, [r5, 0x3C]
b _080DE0E2
.align 2, 0
-_080DE098: .4byte gUnknown_0202F7C9
+_080DE098: .4byte gBattleAnimEnemyMonIndex
_080DE09C:
ldrh r0, [r5, 0x3A]
ldrh r1, [r5, 0x36]
@@ -40734,7 +40734,7 @@ _080DE09C:
lsls r0, 16
cmp r0, 0
bgt _080DE0F6
- ldr r4, _080DE0EC @ =gUnknown_0202F7C9
+ ldr r4, _080DE0EC @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -40753,7 +40753,7 @@ _080DE0E2:
strh r0, [r5, 0x2E]
b _080DE0F6
.align 2, 0
-_080DE0EC: .4byte gUnknown_0202F7C9
+_080DE0EC: .4byte gBattleAnimEnemyMonIndex
_080DE0F0:
adds r0, r5, 0
bl move_anim_8074EE0
@@ -40886,7 +40886,7 @@ sub_80DE1B0: @ 80DE1B0
cmp r0, 0
bge _080DE1E0
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080DE2C0
.align 2, 0
_080DE1DC: .4byte gTasks
@@ -40917,9 +40917,9 @@ _080DE1E0:
adds r0, r4
movs r1, 0x50
strh r1, [r0, 0x2E]
- ldr r0, _080DE250 @ =gUnknown_0202F7C9
+ ldr r0, _080DE250 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080DE258
@@ -40943,7 +40943,7 @@ _080DE1E0:
_080DE244: .4byte REG_BLDCNT
_080DE248: .4byte REG_BLDALPHA
_080DE24C: .4byte gSprites
-_080DE250: .4byte gUnknown_0202F7C9
+_080DE250: .4byte gBattleAnimEnemyMonIndex
_080DE254: .4byte 0x0000ff70
_080DE258:
movs r2, 0x8
@@ -41114,7 +41114,7 @@ _080DE37C:
_080DE39C: .4byte REG_BLDCNT
_080DE3A0:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DE3A6:
pop {r4}
pop {r0}
@@ -41156,9 +41156,9 @@ sub_80DE3D4: @ 80DE3D4
lsls r0, 3
ldr r1, _080DE40C @ =gTasks
adds r5, r0, r1
- ldr r0, _080DE410 @ =gUnknown_0202F7C9
+ ldr r0, _080DE410 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r6, r0, 24
movs r1, 0x26
@@ -41174,7 +41174,7 @@ _080DE400:
mov pc, r0
.align 2, 0
_080DE40C: .4byte gTasks
-_080DE410: .4byte gUnknown_0202F7C9
+_080DE410: .4byte gBattleAnimEnemyMonIndex
_080DE414: .4byte _080DE418
.align 2, 0
_080DE418:
@@ -41204,7 +41204,7 @@ _080DE42C:
bl FreeSpritePaletteByTag
_080DE456:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080DE60A
.align 2, 0
_080DE460: .4byte 0x00002771
@@ -41516,9 +41516,9 @@ sub_80DE6B0: @ 80DE6B0
lsls r0, 3
ldr r1, _080DE6E0 @ =gTasks
adds r4, r0, r1
- ldr r0, _080DE6E4 @ =gUnknown_0202F7C9
+ ldr r0, _080DE6E4 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r6, r0, 24
movs r1, 0x26
@@ -41532,7 +41532,7 @@ sub_80DE6B0: @ 80DE6B0
b _080DE7AA
.align 2, 0
_080DE6E0: .4byte gTasks
-_080DE6E4: .4byte gUnknown_0202F7C9
+_080DE6E4: .4byte gBattleAnimEnemyMonIndex
_080DE6E8:
cmp r0, 0x2
beq _080DE740
@@ -41625,7 +41625,7 @@ _080DE79E:
orrs r1, r2
strh r1, [r0]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DE7AA:
ldrh r0, [r4, 0x26]
adds r0, 0x1
@@ -41643,12 +41643,12 @@ sub_80DE7B8: @ 80DE7B8
mov r5, r8
push {r5-r7}
adds r7, r0, 0
- ldr r0, _080DE7F4 @ =gUnknown_03004B00
+ ldr r0, _080DE7F4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DE800
- ldr r4, _080DE7F8 @ =gUnknown_0202F7C8
+ ldr r4, _080DE7F8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -41663,14 +41663,14 @@ sub_80DE7B8: @ 80DE7B8
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
- ldr r4, _080DE7FC @ =gUnknown_0202F7C9
+ ldr r4, _080DE7FC @ =gBattleAnimEnemyMonIndex
b _080DE824
.align 2, 0
-_080DE7F4: .4byte gUnknown_03004B00
-_080DE7F8: .4byte gUnknown_0202F7C8
-_080DE7FC: .4byte gUnknown_0202F7C9
+_080DE7F4: .4byte gBattleAnimArgs
+_080DE7F8: .4byte gBattleAnimPlayerMonIndex
+_080DE7FC: .4byte gBattleAnimEnemyMonIndex
_080DE800:
- ldr r4, _080DE8C8 @ =gUnknown_0202F7C9
+ ldr r4, _080DE8C8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -41685,7 +41685,7 @@ _080DE800:
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
- ldr r4, _080DE8CC @ =gUnknown_0202F7C8
+ ldr r4, _080DE8CC @ =gBattleAnimPlayerMonIndex
_080DE824:
ldrb r0, [r4]
movs r1, 0
@@ -41715,7 +41715,7 @@ _080DE824:
mov r1, r10
subs r0, r1, r6
lsls r0, 4
- ldr r5, _080DE8D0 @ =gUnknown_03004B00
+ ldr r5, _080DE8D0 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r5, r2]
bl __divsi3
@@ -41765,9 +41765,9 @@ _080DE824:
pop {r0}
bx r0
.align 2, 0
-_080DE8C8: .4byte gUnknown_0202F7C9
-_080DE8CC: .4byte gUnknown_0202F7C8
-_080DE8D0: .4byte gUnknown_03004B00
+_080DE8C8: .4byte gBattleAnimEnemyMonIndex
+_080DE8CC: .4byte gBattleAnimPlayerMonIndex
+_080DE8D0: .4byte gBattleAnimArgs
_080DE8D4: .4byte sub_80DE8D8
thumb_func_end sub_80DE7B8
@@ -41841,10 +41841,10 @@ sub_80DE918: @ 80DE918
strh r0, [r1, 0x18]
movs r0, 0x10
strh r0, [r1, 0x1A]
- ldr r2, _080DEA70 @ =gUnknown_03004B00
+ ldr r2, _080DEA70 @ =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0x1C]
- ldr r4, _080DEA74 @ =gUnknown_0202F7C8
+ ldr r4, _080DEA74 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -41857,7 +41857,7 @@ sub_80DE918: @ 80DE918
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x8]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DE988
@@ -41867,7 +41867,7 @@ _080DE988:
_080DE98A:
lsls r1, r4, 16
asrs r3, r1, 16
- ldr r0, _080DEA74 @ =gUnknown_0202F7C8
+ ldr r0, _080DEA74 @ =gBattleAnimPlayerMonIndex
ldrb r2, [r0]
str r1, [sp, 0x10]
cmp r3, r2
@@ -41922,7 +41922,7 @@ _080DE98A:
mov r2, r10
subs r0, r2, r6
lsls r0, 4
- ldr r3, _080DEA70 @ =gUnknown_03004B00
+ ldr r3, _080DEA70 @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r3, r2]
bl __divsi3
@@ -41932,12 +41932,12 @@ _080DE98A:
asrs r0, 16
subs r0, r7
lsls r0, 4
- ldr r2, _080DEA70 @ =gUnknown_03004B00
+ ldr r2, _080DEA70 @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r2, r3]
bl __divsi3
strh r0, [r4, 0x34]
- ldr r1, _080DEA70 @ =gUnknown_03004B00
+ ldr r1, _080DEA70 @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x36]
mov r2, r10
@@ -41974,8 +41974,8 @@ _080DEA56:
.align 2, 0
_080DEA68: .4byte gTasks
_080DEA6C: .4byte REG_BLDCNT
-_080DEA70: .4byte gUnknown_03004B00
-_080DEA74: .4byte gUnknown_0202F7C8
+_080DEA70: .4byte gBattleAnimArgs
+_080DEA74: .4byte gBattleAnimPlayerMonIndex
_080DEA78: .4byte gSpriteTemplate_83DAF08
_080DEA7C: .4byte gSprites
_080DEA80: .4byte gSprites + 0x1C
@@ -42013,7 +42013,7 @@ _080DEA88:
strh r0, [r4, 0x30]
subs r0, r3, r7
lsls r0, 4
- ldr r3, _080DEB2C @ =gUnknown_03004B00
+ ldr r3, _080DEB2C @ =gBattleAnimArgs
movs r2, 0x2
ldrsh r1, [r3, r2]
bl __divsi3
@@ -42022,12 +42022,12 @@ _080DEA88:
ldr r1, [sp, 0xC]
subs r0, r3, r1
lsls r0, 4
- ldr r2, _080DEB2C @ =gUnknown_03004B00
+ ldr r2, _080DEB2C @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r2, r3]
bl __divsi3
strh r0, [r4, 0x34]
- ldr r1, _080DEB2C @ =gUnknown_03004B00
+ ldr r1, _080DEB2C @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
strh r0, [r4, 0x36]
mov r2, r10
@@ -42059,7 +42059,7 @@ _080DEB0C:
.align 2, 0
_080DEB24: .4byte gSpriteTemplate_83DAF08
_080DEB28: .4byte gSprites
-_080DEB2C: .4byte gUnknown_03004B00
+_080DEB2C: .4byte gBattleAnimArgs
_080DEB30: .4byte sub_80DE8D8
_080DEB34: .4byte sub_80DEB38
thumb_func_end sub_80DE918
@@ -42257,7 +42257,7 @@ _080DEC94:
adds r0, 0x2
strh r1, [r0]
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DECA4:
pop {r4,r5}
pop {r0}
@@ -42290,13 +42290,13 @@ sub_80DECB0: @ 80DECB0
adds r1, 0x4
movs r0, 0x10
strh r0, [r1]
- ldr r0, _080DED08 @ =gUnknown_0202F7C8
+ ldr r0, _080DED08 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080DECF4
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080DED0C
@@ -42308,7 +42308,7 @@ _080DECF8: .4byte gUnknown_030042C4
_080DECFC: .4byte gUnknown_03004240
_080DED00: .4byte REG_WININ
_080DED04: .4byte 0x00003f3f
-_080DED08: .4byte gUnknown_0202F7C8
+_080DED08: .4byte gBattleAnimPlayerMonIndex
_080DED0C:
movs r6, 0xC8
_080DED0E:
@@ -42552,7 +42552,7 @@ sub_80DEEE8: @ 80DEEE8
adds r0, 0x4
strh r2, [r0]
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DEF20:
pop {r4}
pop {r0}
@@ -42571,9 +42571,9 @@ sub_80DEF3C: @ 80DEF3C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080DEF68 @ =gUnknown_0202F7C8
+ ldr r0, _080DEF68 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080DEF70
@@ -42588,7 +42588,7 @@ sub_80DEF3C: @ 80DEF3C
strb r1, [r4, 0x3]
b _080DEF74
.align 2, 0
-_080DEF68: .4byte gUnknown_0202F7C8
+_080DEF68: .4byte gBattleAnimPlayerMonIndex
_080DEF6C: .4byte 0x0000fffe
_080DEF70:
ldr r2, _080DEF90 @ =0x0000ffe8
@@ -42775,9 +42775,9 @@ sub_80DF0B8: @ 80DF0B8
movs r1, 0xC
bl Sin
strh r0, [r4, 0x24]
- ldr r0, _080DF120 @ =gUnknown_0202F7C8
+ ldr r0, _080DF120 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DF0DC
@@ -42819,7 +42819,7 @@ _080DF0DC:
strh r0, [r1]
b _080DF17E
.align 2, 0
-_080DF120: .4byte gUnknown_0202F7C8
+_080DF120: .4byte gBattleAnimPlayerMonIndex
_080DF124: .4byte 0x0000050b
_080DF128: .4byte REG_BLDCNT
_080DF12C:
@@ -42908,7 +42908,7 @@ sub_80DF1A4: @ 80DF1A4
mov r8, r0
mov r2, r8
strh r2, [r4, 0xA]
- ldr r5, _080DF240 @ =gUnknown_0202F7C8
+ ldr r5, _080DF240 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -42965,7 +42965,7 @@ sub_80DF1A4: @ 80DF1A4
bx r0
.align 2, 0
_080DF23C: .4byte gTasks
-_080DF240: .4byte gUnknown_0202F7C8
+_080DF240: .4byte gBattleAnimPlayerMonIndex
_080DF244: .4byte REG_BLDCNT
_080DF248: .4byte sub_80DF24C
thumb_func_end sub_80DF1A4
@@ -43022,9 +43022,9 @@ _080DF292:
lsls r0, 2
adds r5, r0, r1
strh r7, [r5, 0x2E]
- ldr r0, _080DF2FC @ =gUnknown_0202F7C8
+ ldr r0, _080DF2FC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
movs r1, 0
lsls r0, 24
cmp r0, 0
@@ -43056,7 +43056,7 @@ _080DF2E6:
.align 2, 0
_080DF2F4: .4byte gSpriteTemplate_83DAF80
_080DF2F8: .4byte gSprites
-_080DF2FC: .4byte gUnknown_0202F7C8
+_080DF2FC: .4byte gBattleAnimPlayerMonIndex
_080DF300:
ldrh r0, [r4, 0xA]
adds r0, 0x1
@@ -43168,7 +43168,7 @@ _080DF3BC:
adds r0, 0x2
strh r1, [r0]
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DF3CC:
pop {r4-r7}
pop {r0}
@@ -43288,8 +43288,8 @@ sub_80DF49C: @ 80DF49C
movs r2, 0x4
orrs r1, r2
strb r1, [r3]
- ldr r2, _080DF4E0 @ =gUnknown_02024BE0
- ldr r1, _080DF4E4 @ =gUnknown_0202F7C8
+ ldr r2, _080DF4E0 @ =gObjectBankIDs
+ ldr r1, _080DF4E4 @ =gBattleAnimPlayerMonIndex
ldrb r1, [r1]
adds r1, r2
ldrb r1, [r1]
@@ -43298,7 +43298,7 @@ sub_80DF49C: @ 80DF49C
strh r1, [r0, 0x2E]
movs r1, 0xA
strh r1, [r0, 0x30]
- ldr r2, _080DF4E8 @ =gUnknown_03004B00
+ ldr r2, _080DF4E8 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0x32]
ldrh r1, [r2, 0x2]
@@ -43317,9 +43317,9 @@ sub_80DF49C: @ 80DF49C
strh r1, [r0, 0x22]
bx lr
.align 2, 0
-_080DF4E0: .4byte gUnknown_02024BE0
-_080DF4E4: .4byte gUnknown_0202F7C8
-_080DF4E8: .4byte gUnknown_03004B00
+_080DF4E0: .4byte gObjectBankIDs
+_080DF4E4: .4byte gBattleAnimPlayerMonIndex
+_080DF4E8: .4byte gBattleAnimArgs
_080DF4EC: .4byte sub_80DF4F4
_080DF4F0: .4byte gSprites
thumb_func_end sub_80DF49C
@@ -43415,7 +43415,7 @@ _080DF59C: .4byte move_anim_8074EE0
sub_80DF5A0: @ 80DF5A0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080DF5E8 @ =gUnknown_0202F7C8
+ ldr r4, _080DF5E8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -43429,11 +43429,11 @@ sub_80DF5A0: @ 80DF5A0
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DF5F0
- ldr r2, _080DF5EC @ =gUnknown_03004B00
+ ldr r2, _080DF5EC @ =gBattleAnimArgs
ldrh r0, [r5, 0x20]
ldrh r1, [r2]
subs r0, r1
@@ -43447,10 +43447,10 @@ sub_80DF5A0: @ 80DF5A0
adds r1, r2, 0
b _080DF5FA
.align 2, 0
-_080DF5E8: .4byte gUnknown_0202F7C8
-_080DF5EC: .4byte gUnknown_03004B00
+_080DF5E8: .4byte gBattleAnimPlayerMonIndex
+_080DF5EC: .4byte gBattleAnimArgs
_080DF5F0:
- ldr r1, _080DF630 @ =gUnknown_03004B00
+ ldr r1, _080DF630 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -43483,7 +43483,7 @@ _080DF5FA:
pop {r0}
bx r0
.align 2, 0
-_080DF630: .4byte gUnknown_03004B00
+_080DF630: .4byte gBattleAnimArgs
_080DF634: .4byte move_anim_8074EE0
_080DF638: .4byte sub_8078504
thumb_func_end sub_80DF5A0
@@ -43493,7 +43493,7 @@ sub_80DF63C: @ 80DF63C
push {r4,r5,lr}
adds r5, r0, 0
bl sub_8078650
- ldr r4, _080DF694 @ =gUnknown_0202F7C9
+ ldr r4, _080DF694 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -43506,13 +43506,13 @@ sub_80DF63C: @ 80DF63C
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
- ldr r0, _080DF698 @ =gUnknown_0202F7C8
+ ldr r0, _080DF698 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DF6A0
- ldr r2, _080DF69C @ =gUnknown_03004B00
+ ldr r2, _080DF69C @ =gBattleAnimArgs
ldrh r0, [r5, 0x20]
ldrh r1, [r2, 0x2]
subs r0, r1
@@ -43530,11 +43530,11 @@ sub_80DF63C: @ 80DF63C
strh r0, [r5, 0x36]
b _080DF6CA
.align 2, 0
-_080DF694: .4byte gUnknown_0202F7C9
-_080DF698: .4byte gUnknown_0202F7C8
-_080DF69C: .4byte gUnknown_03004B00
+_080DF694: .4byte gBattleAnimEnemyMonIndex
+_080DF698: .4byte gBattleAnimPlayerMonIndex
+_080DF69C: .4byte gBattleAnimArgs
_080DF6A0:
- ldr r1, _080DF6E4 @ =gUnknown_03004B00
+ ldr r1, _080DF6E4 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -43555,7 +43555,7 @@ _080DF6A0:
movs r1, 0x1
bl StartSpriteAnim
_080DF6CA:
- ldr r0, _080DF6E4 @ =gUnknown_03004B00
+ ldr r0, _080DF6E4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r5, 0x2E]
ldr r0, _080DF6E8 @ =sub_8078B34
@@ -43567,7 +43567,7 @@ _080DF6CA:
pop {r0}
bx r0
.align 2, 0
-_080DF6E4: .4byte gUnknown_03004B00
+_080DF6E4: .4byte gBattleAnimArgs
_080DF6E8: .4byte sub_8078B34
_080DF6EC: .4byte move_anim_8074EE0
thumb_func_end sub_80DF63C
@@ -43576,18 +43576,18 @@ _080DF6EC: .4byte move_anim_8074EE0
sub_80DF6F0: @ 80DF6F0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080DF704 @ =gUnknown_03004B00
+ ldr r0, _080DF704 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DF70C
- ldr r4, _080DF708 @ =gUnknown_0202F7C8
+ ldr r4, _080DF708 @ =gBattleAnimPlayerMonIndex
b _080DF70E
.align 2, 0
-_080DF704: .4byte gUnknown_03004B00
-_080DF708: .4byte gUnknown_0202F7C8
+_080DF704: .4byte gBattleAnimArgs
+_080DF708: .4byte gBattleAnimPlayerMonIndex
_080DF70C:
- ldr r4, _080DF750 @ =gUnknown_0202F7C9
+ ldr r4, _080DF750 @ =gBattleAnimEnemyMonIndex
_080DF70E:
ldrb r0, [r4]
movs r1, 0
@@ -43601,7 +43601,7 @@ _080DF70E:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r4, _080DF754 @ =gUnknown_03004B00
+ ldr r4, _080DF754 @ =gBattleAnimArgs
movs r0, 0x2
ldrsh r1, [r4, r0]
adds r0, r5, 0
@@ -43619,8 +43619,8 @@ _080DF70E:
pop {r0}
bx r0
.align 2, 0
-_080DF750: .4byte gUnknown_0202F7C9
-_080DF754: .4byte gUnknown_03004B00
+_080DF750: .4byte gBattleAnimEnemyMonIndex
+_080DF754: .4byte gBattleAnimArgs
_080DF758: .4byte sub_8078600
_080DF75C: .4byte move_anim_8074EE0
thumb_func_end sub_80DF6F0
@@ -43629,9 +43629,9 @@ _080DF75C: .4byte move_anim_8074EE0
sub_80DF760: @ 80DF760
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DF788 @ =gUnknown_0202F7C8
+ ldr r0, _080DF788 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080DF77A
@@ -43645,14 +43645,14 @@ _080DF77A:
pop {r0}
bx r0
.align 2, 0
-_080DF788: .4byte gUnknown_0202F7C8
+_080DF788: .4byte gBattleAnimPlayerMonIndex
thumb_func_end sub_80DF760
thumb_func_start sub_80DF78C
sub_80DF78C: @ 80DF78C
push {r4-r7,lr}
adds r6, r0, 0
- ldr r4, _080DF7E0 @ =gUnknown_0202F7C8
+ ldr r4, _080DF7E0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -43669,10 +43669,10 @@ sub_80DF78C: @ 80DF78C
strh r5, [r6, 0x36]
movs r0, 0x1
strh r0, [r6, 0x38]
- ldr r0, _080DF7E4 @ =gUnknown_03004B00
+ ldr r0, _080DF7E4 @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r6, 0x3A]
- ldr r4, _080DF7E8 @ =gUnknown_02024C07
+ ldr r4, _080DF7E8 @ =gBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_807A100
@@ -43688,9 +43688,9 @@ sub_80DF78C: @ 80DF78C
lsrs r0, r7, 17
b _080DF7EE
.align 2, 0
-_080DF7E0: .4byte gUnknown_0202F7C8
-_080DF7E4: .4byte gUnknown_03004B00
-_080DF7E8: .4byte gUnknown_02024C07
+_080DF7E0: .4byte gBattleAnimPlayerMonIndex
+_080DF7E4: .4byte gBattleAnimArgs
+_080DF7E8: .4byte gBankAttacker
_080DF7EC:
lsrs r0, r1, 17
_080DF7EE:
@@ -43864,9 +43864,9 @@ sub_80DF924: @ 80DF924
lsls r1, 3
ldr r0, _080DF950 @ =gTasks
adds r4, r1, r0
- ldr r0, _080DF954 @ =gUnknown_0202F7C8
+ ldr r0, _080DF954 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -43877,7 +43877,7 @@ sub_80DF924: @ 80DF924
b _080DF966
.align 2, 0
_080DF950: .4byte gTasks
-_080DF954: .4byte gUnknown_0202F7C8
+_080DF954: .4byte gBattleAnimPlayerMonIndex
_080DF958: .4byte REG_BG1HOFS
_080DF95C: .4byte gUnknown_030042C0
_080DF960:
@@ -43895,7 +43895,7 @@ _080DF966:
strb r0, [r1, 0x8]
mov r0, sp
strb r5, [r0, 0x9]
- ldr r0, _080DF9E8 @ =gUnknown_0202F7C8
+ ldr r0, _080DF9E8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
bl sub_8077FC0
lsls r0, 24
@@ -43948,7 +43948,7 @@ _080DF9C4:
_080DF9DC: .4byte REG_BG2HOFS
_080DF9E0: .4byte gUnknown_03004288
_080DF9E4: .4byte 0xa2600001
-_080DF9E8: .4byte gUnknown_0202F7C8
+_080DF9E8: .4byte gBattleAnimPlayerMonIndex
_080DF9EC: .4byte gUnknown_03004DE0
_080DF9F0: .4byte sub_80DF9F4
thumb_func_end sub_80DF924
@@ -44045,7 +44045,7 @@ _080DFA92:
_080DFAA0: .4byte gUnknown_03004DC0
_080DFAA4:
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080DFAAA:
pop {r0}
bx r0
@@ -44120,7 +44120,7 @@ sub_80DFB28: @ 80DFB28
mov r6, r8
push {r6}
adds r4, r0, 0
- ldr r5, _080DFBC8 @ =gUnknown_03004B00
+ ldr r5, _080DFBC8 @ =gBattleAnimArgs
movs r0, 0x4
ldrsh r1, [r5, r0]
lsls r0, r1, 1
@@ -44128,7 +44128,7 @@ sub_80DFB28: @ 80DFB28
movs r1, 0x5
bl __divsi3
adds r6, r0, 0
- ldr r1, _080DFBCC @ =gUnknown_0202F7C8
+ ldr r1, _080DFBCC @ =gBattleAnimPlayerMonIndex
mov r8, r1
ldrb r0, [r1]
movs r1, 0x2
@@ -44193,8 +44193,8 @@ _080DFBB0:
pop {r0}
bx r0
.align 2, 0
-_080DFBC8: .4byte gUnknown_03004B00
-_080DFBCC: .4byte gUnknown_0202F7C8
+_080DFBC8: .4byte gBattleAnimArgs
+_080DFBCC: .4byte gBattleAnimPlayerMonIndex
_080DFBD0: .4byte sub_80DFBD8
_080DFBD4: .4byte gUnknown_03000730
thumb_func_end sub_80DFB28
@@ -44248,16 +44248,16 @@ sub_80DFC24: @ 80DFC24
adds r1, r4
lsls r1, 3
adds r1, r0
- ldr r0, _080DFC5C @ =gUnknown_03004B00
+ ldr r0, _080DFC5C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r1, 0x8]
- ldr r0, _080DFC60 @ =gUnknown_0202F7C8
+ ldr r0, _080DFC60 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
movs r2, 0x10
strh r2, [r1, 0xA]
ldr r1, _080DFC64 @ =REG_BLDALPHA
strh r2, [r1]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -44267,8 +44267,8 @@ sub_80DFC24: @ 80DFC24
b _080DFC74
.align 2, 0
_080DFC58: .4byte gTasks
-_080DFC5C: .4byte gUnknown_03004B00
-_080DFC60: .4byte gUnknown_0202F7C8
+_080DFC5C: .4byte gBattleAnimArgs
+_080DFC60: .4byte gBattleAnimPlayerMonIndex
_080DFC64: .4byte REG_BLDALPHA
_080DFC68: .4byte REG_BLDCNT
_080DFC6C: .4byte 0x00003f42
@@ -44330,8 +44330,8 @@ sub_80DFC9C: @ 80DFC9C
cmp r2, 0x10
bne _080DFD1E
ldr r2, _080DFD0C @ =gSprites
- ldr r1, _080DFD10 @ =gUnknown_02024BE0
- ldr r0, _080DFD14 @ =gUnknown_0202F7C8
+ ldr r1, _080DFD10 @ =gObjectBankIDs
+ ldr r0, _080DFD14 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -44345,14 +44345,14 @@ sub_80DFC9C: @ 80DFC9C
orrs r1, r2
strb r1, [r0]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080DFD1E
.align 2, 0
_080DFD04: .4byte gTasks
_080DFD08: .4byte REG_BLDALPHA
_080DFD0C: .4byte gSprites
-_080DFD10: .4byte gUnknown_02024BE0
-_080DFD14: .4byte gUnknown_0202F7C8
+_080DFD10: .4byte gObjectBankIDs
+_080DFD14: .4byte gBattleAnimPlayerMonIndex
_080DFD18:
ldrh r0, [r4, 0xC]
adds r0, 0x1
@@ -44372,7 +44372,7 @@ sub_80DFD24: @ 80DFD24
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, _080DFD4C @ =gUnknown_03004B00
+ ldr r0, _080DFD4C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r1, 0x8]
movs r2, 0x80
@@ -44385,7 +44385,7 @@ sub_80DFD24: @ 80DFD24
bx lr
.align 2, 0
_080DFD48: .4byte gTasks
-_080DFD4C: .4byte gUnknown_03004B00
+_080DFD4C: .4byte gBattleAnimArgs
_080DFD50: .4byte sub_80DFD58
_080DFD54: .4byte REG_BLDALPHA
thumb_func_end sub_80DFD24
@@ -44428,7 +44428,7 @@ sub_80DFD58: @ 80DFD58
strh r3, [r0]
strh r3, [r5]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080DFDBA
.align 2, 0
_080DFDA8: .4byte gTasks
@@ -44454,9 +44454,9 @@ sub_80DFDC0: @ 80DFDC0
lsls r2, 5
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _080DFDEC @ =gUnknown_0202F7C8
+ ldr r0, _080DFDEC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -44466,7 +44466,7 @@ sub_80DFDC0: @ 80DFDC0
b _080DFDFC
.align 2, 0
_080DFDE8: .4byte REG_BLDALPHA
-_080DFDEC: .4byte gUnknown_0202F7C8
+_080DFDEC: .4byte gBattleAnimPlayerMonIndex
_080DFDF0: .4byte REG_BLDCNT
_080DFDF4: .4byte 0x00003f42
_080DFDF8:
@@ -44476,7 +44476,7 @@ _080DFDFC:
adds r0, r2, 0
strh r0, [r1]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -44489,14 +44489,14 @@ _080DFE10: .4byte 0x00003f44
sub_80DFE14: @ 80DFE14
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _080DFE80 @ =gUnknown_0202F7C9
+ ldr r6, _080DFE80 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x30]
- ldr r5, _080DFE84 @ =gUnknown_0202F7C8
+ ldr r5, _080DFE84 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -44535,8 +44535,8 @@ sub_80DFE14: @ 80DFE14
pop {r0}
bx r0
.align 2, 0
-_080DFE80: .4byte gUnknown_0202F7C9
-_080DFE84: .4byte gUnknown_0202F7C8
+_080DFE80: .4byte gBattleAnimEnemyMonIndex
+_080DFE84: .4byte gBattleAnimPlayerMonIndex
_080DFE88: .4byte 0x0000ffd8
_080DFE8C: .4byte sub_80DFE90
thumb_func_end sub_80DFE14
@@ -44619,7 +44619,7 @@ _080DFF14:
sub_80DFF1C: @ 80DFF1C
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080DFF50 @ =gUnknown_03004B00
+ ldr r5, _080DFF50 @ =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
@@ -44643,7 +44643,7 @@ sub_80DFF1C: @ 80DFF1C
pop {r0}
bx r0
.align 2, 0
-_080DFF50: .4byte gUnknown_03004B00
+_080DFF50: .4byte gBattleAnimArgs
_080DFF54: .4byte sub_80DFF58
thumb_func_end sub_80DFF1C
@@ -44718,19 +44718,19 @@ _080DFFCA:
sub_80DFFD0: @ 80DFFD0
push {r4-r7,lr}
adds r4, r0, 0
- ldr r0, _080DFFE4 @ =gUnknown_03004B00
+ ldr r0, _080DFFE4 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r3, r0, 0
cmp r1, 0
bne _080DFFEC
- ldr r0, _080DFFE8 @ =gUnknown_0202F7C8
+ ldr r0, _080DFFE8 @ =gBattleAnimPlayerMonIndex
b _080DFFEE
.align 2, 0
-_080DFFE4: .4byte gUnknown_03004B00
-_080DFFE8: .4byte gUnknown_0202F7C8
+_080DFFE4: .4byte gBattleAnimArgs
+_080DFFE8: .4byte gBattleAnimPlayerMonIndex
_080DFFEC:
- ldr r0, _080E001C @ =gUnknown_0202F7C9
+ ldr r0, _080E001C @ =gBattleAnimEnemyMonIndex
_080DFFEE:
ldrb r5, [r0]
movs r6, 0x14
@@ -44755,7 +44755,7 @@ _080DFFEE:
beq _080E0032
b _080E00A0
.align 2, 0
-_080E001C: .4byte gUnknown_0202F7C9
+_080E001C: .4byte gBattleAnimEnemyMonIndex
_080E0020: .4byte 0x000003ff
_080E0024: .4byte 0xfffffc00
_080E0028:
@@ -44867,7 +44867,7 @@ sub_80E00EC: @ 80E00EC
lsls r1, 3
ldr r0, _080E0150 @ =gTasks
adds r5, r1, r0
- ldr r4, _080E0154 @ =gUnknown_0202F7C8
+ ldr r4, _080E0154 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x1
bl sub_8077ABC
@@ -44898,7 +44898,7 @@ sub_80E00EC: @ 80E00EC
adds r0, 0x20
strh r0, [r5, 0x26]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080E015C
@@ -44906,15 +44906,15 @@ sub_80E00EC: @ 80E00EC
b _080E015E
.align 2, 0
_080E0150: .4byte gTasks
-_080E0154: .4byte gUnknown_0202F7C8
+_080E0154: .4byte gBattleAnimPlayerMonIndex
_080E0158: .4byte 0x0000fff4
_080E015C:
ldr r0, _080E01A8 @ =0x0000ffc0
_080E015E:
strh r0, [r5, 0x18]
- ldr r0, _080E01AC @ =gUnknown_0202F7C8
+ ldr r0, _080E01AC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xE]
@@ -44938,7 +44938,7 @@ _080E015E:
ldr r0, _080E01BC @ =REG_BG1VOFS
str r0, [sp]
movs r7, 0x2
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E01F4
@@ -44946,7 +44946,7 @@ _080E015E:
b _080E01EE
.align 2, 0
_080E01A8: .4byte 0x0000ffc0
-_080E01AC: .4byte gUnknown_0202F7C8
+_080E01AC: .4byte gBattleAnimPlayerMonIndex
_080E01B0: .4byte gUnknown_030041B4
_080E01B4: .4byte REG_BLDCNT
_080E01B8: .4byte 0x00003f42
@@ -44967,7 +44967,7 @@ _080E01C4:
ldr r0, _080E0284 @ =REG_BG2VOFS
str r0, [sp]
movs r7, 0x4
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E01F4
@@ -45195,7 +45195,7 @@ _080E03A2:
_080E03AC: .4byte gUnknown_03004DC0
_080E03B0:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E03B6:
pop {r4}
pop {r0}
@@ -45235,7 +45235,7 @@ _080E03EC:
.4byte _080E053C
.4byte _080E05A4
_080E0400:
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -45252,7 +45252,7 @@ _080E0400:
adds r0, 0x2
strh r1, [r0]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080E05F2
.align 2, 0
_080E042C: .4byte gUnknown_030042C4
@@ -45260,9 +45260,9 @@ _080E0430: .4byte gUnknown_03004240
_080E0434: .4byte REG_WININ
_080E0438: .4byte 0x00003f3f
_080E043C:
- ldr r0, _080E045C @ =gUnknown_0202F7C9
+ ldr r0, _080E045C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xE]
@@ -45275,7 +45275,7 @@ _080E043C:
ldr r1, _080E0468 @ =gUnknown_03004288
b _080E0476
.align 2, 0
-_080E045C: .4byte gUnknown_0202F7C9
+_080E045C: .4byte gBattleAnimEnemyMonIndex
_080E0460: .4byte REG_BLDCNT
_080E0464: .4byte 0x00003f42
_080E0468: .4byte gUnknown_03004288
@@ -45328,7 +45328,7 @@ _080E04C4:
.align 2, 0
_080E04CC: .4byte gUnknown_03004280
_080E04D0:
- ldr r4, _080E051C @ =gUnknown_0202F7C9
+ ldr r4, _080E051C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x1
bl sub_8077ABC
@@ -45356,14 +45356,14 @@ _080E04D0:
adds r0, 0x4
strh r0, [r5, 0x26]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _080E0524
ldr r0, _080E0520 @ =0x0000fff4
b _080E0526
.align 2, 0
-_080E051C: .4byte gUnknown_0202F7C9
+_080E051C: .4byte gBattleAnimEnemyMonIndex
_080E0520: .4byte 0x0000fff4
_080E0524:
ldr r0, _080E0538 @ =0x0000ffc0
@@ -45674,7 +45674,7 @@ _080E0768:
adds r0, 0x2
strh r1, [r0]
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E0784:
pop {r4}
pop {r0}
@@ -45901,9 +45901,9 @@ sub_80E0918: @ 80E0918
lsls r0, 24
lsrs r0, 24
mov r10, r0
- ldr r6, _080E09B8 @ =gUnknown_0202F7C8
+ ldr r6, _080E09B8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r6]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -45916,7 +45916,7 @@ sub_80E0918: @ 80E0918
bl sub_8076034
ldr r0, _080E09BC @ =gSprites
mov r9, r0
- ldr r0, _080E09C0 @ =gUnknown_02024BE0
+ ldr r0, _080E09C0 @ =gObjectBankIDs
mov r8, r0
ldrb r0, [r6]
add r0, r8
@@ -45960,7 +45960,7 @@ sub_80E0918: @ 80E0918
strb r1, [r0]
_080E09A2:
mov r0, r10
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r3-r5}
mov r8, r3
mov r9, r4
@@ -45969,9 +45969,9 @@ _080E09A2:
pop {r0}
bx r0
.align 2, 0
-_080E09B8: .4byte gUnknown_0202F7C8
+_080E09B8: .4byte gBattleAnimPlayerMonIndex
_080E09BC: .4byte gSprites
-_080E09C0: .4byte gUnknown_02024BE0
+_080E09C0: .4byte gObjectBankIDs
thumb_func_end sub_80E0918
thumb_func_start sub_80E09C4
@@ -45979,9 +45979,9 @@ sub_80E09C4: @ 80E09C4
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r4, _080E0A0C @ =gUnknown_0202F7C8
+ ldr r4, _080E0A0C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -46004,19 +46004,19 @@ sub_80E09C4: @ 80E09C4
bl sub_8076464
_080E0A00:
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080E0A0C: .4byte gUnknown_0202F7C8
+_080E0A0C: .4byte gBattleAnimPlayerMonIndex
thumb_func_end sub_80E09C4
thumb_func_start sub_80E0A10
sub_80E0A10: @ 80E0A10
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080E0A40 @ =gUnknown_03004B00
+ ldr r1, _080E0A40 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -46037,7 +46037,7 @@ sub_80E0A10: @ 80E0A10
pop {r0}
bx r0
.align 2, 0
-_080E0A40: .4byte gUnknown_03004B00
+_080E0A40: .4byte gBattleAnimArgs
_080E0A44: .4byte sub_8078600
_080E0A48: .4byte move_anim_8072740
thumb_func_end sub_80E0A10
@@ -46092,7 +46092,7 @@ sub_80E0A4C: @ 80E0A4C
movs r0, 0x3F
ands r0, r1
strb r0, [r5, 0x1]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E0AC4
@@ -46104,23 +46104,23 @@ sub_80E0A4C: @ 80E0A4C
orrs r1, r0
strb r1, [r5]
_080E0AC4:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080E0B40
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E0B40
- ldr r4, _080E0B74 @ =gUnknown_0202F7C8
+ ldr r4, _080E0B74 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
- bl battle_get_per_side_status
+ bl GetBankIdentity
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _080E0AF4
ldrb r0, [r4]
- bl battle_get_per_side_status
+ bl GetBankIdentity
lsls r0, 24
cmp r0, 0
bne _080E0B40
@@ -46134,7 +46134,7 @@ _080E0AF4:
cmp r0, 0x1
bne _080E0B40
ldr r3, _080E0B78 @ =gSprites
- ldr r1, _080E0B7C @ =gUnknown_02024BE0
+ ldr r1, _080E0B7C @ =gObjectBankIDs
ldrb r0, [r4]
eors r0, r6
adds r0, r1
@@ -46163,7 +46163,7 @@ _080E0AF4:
strb r0, [r5]
movs r7, 0x1
_080E0B40:
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080E0B84
@@ -46180,18 +46180,18 @@ _080E0B64: .4byte REG_BLDCNT
_080E0B68: .4byte 0x00003f42
_080E0B6C: .4byte 0x00000c08
_080E0B70: .4byte REG_BG1CNT
-_080E0B74: .4byte gUnknown_0202F7C8
+_080E0B74: .4byte gBattleAnimPlayerMonIndex
_080E0B78: .4byte gSprites
-_080E0B7C: .4byte gUnknown_02024BE0
+_080E0B7C: .4byte gObjectBankIDs
_080E0B80: .4byte 0x02019348
_080E0B84:
- ldr r4, _080E0BA4 @ =gUnknown_0202F7C8
+ ldr r4, _080E0BA4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080E0BB0
- ldr r1, _080E0BA8 @ =gUnknown_02024A6A
+ ldr r1, _080E0BA8 @ =gBattlePartyID
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -46201,11 +46201,11 @@ _080E0B84:
ldr r1, _080E0BAC @ =gEnemyParty
b _080E0BC0
.align 2, 0
-_080E0BA4: .4byte gUnknown_0202F7C8
-_080E0BA8: .4byte gUnknown_02024A6A
+_080E0BA4: .4byte gBattleAnimPlayerMonIndex
+_080E0BA8: .4byte gBattlePartyID
_080E0BAC: .4byte gEnemyParty
_080E0BB0:
- ldr r1, _080E0C58 @ =gUnknown_02024A6A
+ ldr r1, _080E0C58 @ =gBattlePartyID
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -46225,7 +46225,7 @@ _080E0BCC:
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080E0C60 @ =gUnknown_0202F7C8
+ ldr r0, _080E0C60 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
adds r1, r4, 0
adds r2, r5, 0
@@ -46274,7 +46274,7 @@ _080E0BCC:
lsrs r0, 4
adds r0, 0x10
adds r1, r0, 0
- ldr r2, _080E0C84 @ =gUnknown_03004B00
+ ldr r2, _080E0C84 @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r0, [r2, r3]
cmp r0, 0
@@ -46284,9 +46284,9 @@ _080E0BCC:
bl sub_8079108
b _080E0C94
.align 2, 0
-_080E0C58: .4byte gUnknown_02024A6A
+_080E0C58: .4byte gBattlePartyID
_080E0C5C: .4byte gPlayerParty
-_080E0C60: .4byte gUnknown_0202F7C8
+_080E0C60: .4byte gBattleAnimPlayerMonIndex
_080E0C64: .4byte 0x040000d4
_080E0C68: .4byte 0x85000400
_080E0C6C: .4byte gUnknown_08D1D574
@@ -46295,7 +46295,7 @@ _080E0C74: .4byte gUnknown_08D1D54C
_080E0C78: .4byte gUnknown_030042C0
_080E0C7C: .4byte gSprites
_080E0C80: .4byte gUnknown_030041B4
-_080E0C84: .4byte gUnknown_03004B00
+_080E0C84: .4byte gBattleAnimArgs
_080E0C88:
lsls r0, r1, 4
ldrh r3, [r2, 0x4]
@@ -46310,7 +46310,7 @@ _080E0C94:
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x8]
- ldr r2, _080E0CC8 @ =gUnknown_03004B00
+ ldr r2, _080E0CC8 @ =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0xA]
ldrh r1, [r2, 0x2]
@@ -46329,7 +46329,7 @@ _080E0C94:
bx r0
.align 2, 0
_080E0CC4: .4byte gTasks
-_080E0CC8: .4byte gUnknown_03004B00
+_080E0CC8: .4byte gBattleAnimArgs
_080E0CCC: .4byte sub_80E0CD0
thumb_func_end sub_80E0A4C
@@ -46379,7 +46379,7 @@ sub_80E0CD0: @ 80E0CD0
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E0D40
@@ -46445,8 +46445,8 @@ _080E0D84:
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _080E0DE2
- ldr r2, _080E0E1C @ =gUnknown_02024BE0
- ldr r0, _080E0E20 @ =gUnknown_0202F7C8
+ ldr r2, _080E0E1C @ =gObjectBankIDs
+ ldr r0, _080E0E20 @ =gBattleAnimPlayerMonIndex
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -46470,7 +46470,7 @@ _080E0D84:
strb r0, [r2, 0x5]
_080E0DE2:
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E0DE8:
add sp, 0x10
pop {r4-r7}
@@ -46488,8 +46488,8 @@ _080E0E0C: .4byte REG_BLDCNT
_080E0E10: .4byte gSprites
_080E0E14: .4byte 0x040000d4
_080E0E18: .4byte 0x85000200
-_080E0E1C: .4byte gUnknown_02024BE0
-_080E0E20: .4byte gUnknown_0202F7C8
+_080E0E1C: .4byte gObjectBankIDs
+_080E0E20: .4byte gBattleAnimPlayerMonIndex
thumb_func_end sub_80E0CD0
thumb_func_start sub_80E0E24
@@ -46498,7 +46498,7 @@ sub_80E0E24: @ 80E0E24
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
- ldr r0, _080E0E44 @ =gUnknown_03004B00
+ ldr r0, _080E0E44 @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r2, r0, 0
@@ -46510,7 +46510,7 @@ sub_80E0E24: @ 80E0E24
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E0E44: .4byte gUnknown_03004B00
+_080E0E44: .4byte gBattleAnimArgs
_080E0E48: .4byte _080E0E4C
.align 2, 0
_080E0E4C:
@@ -46548,7 +46548,7 @@ _080E0E8A:
beq _080E0EB6
_080E0E90:
adds r0, r4, 0
- bl battle_get_side_with_given_state
+ bl GetBankByPlayerAI
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
@@ -46556,12 +46556,12 @@ _080E0E90:
lsls r0, 24
cmp r0, 0
beq _080E0EB4
- ldr r0, _080E0EB0 @ =gUnknown_02024BE0
+ ldr r0, _080E0EB0 @ =gObjectBankIDs
adds r0, r4, r0
ldrb r2, [r0]
b _080E0EB6
.align 2, 0
-_080E0EB0: .4byte gUnknown_02024BE0
+_080E0EB0: .4byte gObjectBankIDs
_080E0EB4:
movs r2, 0xFF
_080E0EB6:
@@ -46575,18 +46575,18 @@ _080E0EB6:
ldrb r0, [r0, 0x5]
lsrs r0, 4
adds r0, 0x10
- ldr r1, _080E0EE4 @ =gUnknown_03004B00
+ ldr r1, _080E0EE4 @ =gBattleAnimArgs
ldrb r1, [r1, 0x2]
bl sub_8079108
_080E0ED2:
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080E0EE0: .4byte gSprites
-_080E0EE4: .4byte gUnknown_03004B00
+_080E0EE4: .4byte gBattleAnimArgs
thumb_func_end sub_80E0E24
thumb_func_start sub_80E0EE8
@@ -46598,31 +46598,31 @@ sub_80E0EE8: @ 80E0EE8
ldrb r0, [r2]
cmp r0, 0x1
bhi _080E0EFC
- ldr r1, _080E0F18 @ =gUnknown_03004B00
+ ldr r1, _080E0F18 @ =gBattleAnimArgs
movs r0, 0
strh r0, [r1, 0xE]
_080E0EFC:
ldrb r0, [r2]
cmp r0, 0x2
bne _080E0F08
- ldr r1, _080E0F18 @ =gUnknown_03004B00
+ ldr r1, _080E0F18 @ =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
_080E0F08:
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
_080E0F14: .4byte gUnknown_0202F7C4
-_080E0F18: .4byte gUnknown_03004B00
+_080E0F18: .4byte gBattleAnimArgs
thumb_func_end sub_80E0EE8
thumb_func_start sub_80E0F1C
sub_80E0F1C: @ 80E0F1C
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E0F74 @ =gUnknown_0202F7C8
+ ldr r5, _080E0F74 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -46637,7 +46637,7 @@ sub_80E0F1C: @ 80E0F1C
strh r0, [r4, 0x22]
movs r0, 0x14
strh r0, [r4, 0x2E]
- ldr r5, _080E0F78 @ =gUnknown_0202F7C9
+ ldr r5, _080E0F78 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -46660,8 +46660,8 @@ sub_80E0F1C: @ 80E0F1C
pop {r0}
bx r0
.align 2, 0
-_080E0F74: .4byte gUnknown_0202F7C8
-_080E0F78: .4byte gUnknown_0202F7C9
+_080E0F74: .4byte gBattleAnimPlayerMonIndex
+_080E0F78: .4byte gBattleAnimEnemyMonIndex
_080E0F7C: .4byte 0x0000ffd8
_080E0F80: .4byte sub_80E0F84
thumb_func_end sub_80E0F1C
@@ -46687,7 +46687,7 @@ sub_80E0F84: @ 80E0F84
strh r1, [r5, 0x24]
movs r0, 0x14
strh r0, [r5, 0x2E]
- ldr r4, _080E0FE0 @ =gUnknown_0202F7C8
+ ldr r4, _080E0FE0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -46711,7 +46711,7 @@ _080E0FD8:
pop {r0}
bx r0
.align 2, 0
-_080E0FE0: .4byte gUnknown_0202F7C8
+_080E0FE0: .4byte gBattleAnimPlayerMonIndex
_080E0FE4: .4byte sub_80E0FE8
thumb_func_end sub_80E0F84
@@ -46737,21 +46737,21 @@ sub_80E1004: @ 80E1004
adds r6, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r0, _080E1064 @ =gUnknown_0202F7C8
+ ldr r0, _080E1064 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080E1024
- ldr r1, _080E1068 @ =gUnknown_03004B00
+ ldr r1, _080E1068 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080E1024:
- ldr r4, _080E1068 @ =gUnknown_03004B00
+ ldr r4, _080E1068 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, _080E106C @ =gUnknown_0202F7C9
+ ldr r5, _080E106C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -46777,9 +46777,9 @@ _080E1024:
pop {r0}
bx r0
.align 2, 0
-_080E1064: .4byte gUnknown_0202F7C8
-_080E1068: .4byte gUnknown_03004B00
-_080E106C: .4byte gUnknown_0202F7C9
+_080E1064: .4byte gBattleAnimPlayerMonIndex
+_080E1068: .4byte gBattleAnimArgs
+_080E106C: .4byte gBattleAnimEnemyMonIndex
_080E1070: .4byte sub_8078B34
_080E1074: .4byte move_anim_8072740
thumb_func_end sub_80E1004
@@ -46792,7 +46792,7 @@ sub_80E1078: @ 80E1078
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r4, _080E10F8 @ =gUnknown_0202F7C9
+ ldr r4, _080E10F8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077EE4
@@ -46827,7 +46827,7 @@ _080E10C0:
lsls r0, 16
lsrs r4, r0, 16
_080E10D0:
- ldr r0, _080E10FC @ =gUnknown_03004B00
+ ldr r0, _080E10FC @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r6, 0x2E]
mov r1, r8
@@ -46846,8 +46846,8 @@ _080E10D0:
pop {r0}
bx r0
.align 2, 0
-_080E10F8: .4byte gUnknown_0202F7C9
-_080E10FC: .4byte gUnknown_03004B00
+_080E10F8: .4byte gBattleAnimEnemyMonIndex
+_080E10FC: .4byte gBattleAnimArgs
_080E1100: .4byte sub_8078B34
_080E1104: .4byte move_anim_8074EE0
thumb_func_end sub_80E1078
@@ -46867,12 +46867,12 @@ sub_80E1108: @ 80E1108
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
- ldr r6, _080E1170 @ =gUnknown_03004B00
+ ldr r6, _080E1170 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080E117C
- ldr r4, _080E1174 @ =gUnknown_0202F7C8
+ ldr r4, _080E1174 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -46904,8 +46904,8 @@ _080E1162:
.align 2, 0
_080E1168: .4byte 0x000003ff
_080E116C: .4byte 0xfffffc00
-_080E1170: .4byte gUnknown_03004B00
-_080E1174: .4byte gUnknown_0202F7C8
+_080E1170: .4byte gBattleAnimArgs
+_080E1174: .4byte gBattleAnimPlayerMonIndex
_080E1178: .4byte sub_80E1198
_080E117C:
ldrh r0, [r6, 0x2]
@@ -47029,7 +47029,7 @@ sub_80E1244: @ 80E1244
lsls r0, 3
ldr r1, _080E1264 @ =gTasks
adds r1, r0, r1
- ldr r0, _080E1268 @ =gUnknown_03004B00
+ ldr r0, _080E1268 @ =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
@@ -47038,7 +47038,7 @@ sub_80E1244: @ 80E1244
b _080E1272
.align 2, 0
_080E1264: .4byte gTasks
-_080E1268: .4byte gUnknown_03004B00
+_080E1268: .4byte gBattleAnimArgs
_080E126C: .4byte sub_80E1284
_080E1270:
ldr r0, _080E1280 @ =sub_80E143C
@@ -47090,9 +47090,9 @@ _080E12C4:
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
- ldr r0, _080E12EC @ =gUnknown_0202F7C8
+ ldr r0, _080E12EC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1E]
@@ -47104,7 +47104,7 @@ _080E12C4:
ldr r0, _080E12F4 @ =gUnknown_030041B4
b _080E1300
.align 2, 0
-_080E12EC: .4byte gUnknown_0202F7C8
+_080E12EC: .4byte gBattleAnimPlayerMonIndex
_080E12F0: .4byte gUnknown_030042C0
_080E12F4: .4byte gUnknown_030041B4
_080E12F8:
@@ -47115,7 +47115,7 @@ _080E12F8:
_080E1300:
ldrh r0, [r0]
strh r0, [r4, 0x22]
- ldr r0, _080E1344 @ =gUnknown_0202F7C8
+ ldr r0, _080E1344 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
bl sub_8077FC0
lsls r0, 24
@@ -47146,7 +47146,7 @@ _080E1322:
.align 2, 0
_080E133C: .4byte gUnknown_03004288
_080E1340: .4byte gUnknown_03004280
-_080E1344: .4byte gUnknown_0202F7C8
+_080E1344: .4byte gBattleAnimPlayerMonIndex
_080E1348: .4byte gSprites
_080E134C:
ldrb r0, [r4, 0x1E]
@@ -47254,7 +47254,7 @@ _080E1406:
_080E1410: .4byte gUnknown_03004DC0
_080E1414:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
ldr r2, _080E1438 @ =gSprites
movs r0, 0x1C
ldrsh r1, [r4, r0]
@@ -47298,9 +47298,9 @@ sub_80E143C: @ 80E143C
movs r4, 0
strh r4, [r1, 0x24]
strh r4, [r1, 0x26]
- ldr r0, _080E1480 @ =gUnknown_0202F7C8
+ ldr r0, _080E1480 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -47309,14 +47309,14 @@ sub_80E143C: @ 80E143C
b _080E148A
.align 2, 0
_080E147C: .4byte gSprites
-_080E1480: .4byte gUnknown_0202F7C8
+_080E1480: .4byte gBattleAnimPlayerMonIndex
_080E1484: .4byte gUnknown_030041B4
_080E1488:
ldr r0, _080E1498 @ =gUnknown_03004280
_080E148A:
strh r4, [r0]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
@@ -47334,7 +47334,7 @@ sub_80E149C: @ 80E149C
lsls r0, 3
ldr r1, _080E14BC @ =gTasks
adds r1, r0, r1
- ldr r0, _080E14C0 @ =gUnknown_03004B00
+ ldr r0, _080E14C0 @ =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
@@ -47343,7 +47343,7 @@ sub_80E149C: @ 80E149C
b _080E14CA
.align 2, 0
_080E14BC: .4byte gTasks
-_080E14C0: .4byte gUnknown_03004B00
+_080E14C0: .4byte gBattleAnimArgs
_080E14C4: .4byte sub_80E14DC
_080E14C8:
ldr r0, _080E14D8 @ =sub_80E1560
@@ -47421,7 +47421,7 @@ _080E1500:
_080E1550: .4byte gSprites
_080E1554:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E155A:
pop {r4,r5}
pop {r0}
@@ -47463,9 +47463,9 @@ _080E15A0:
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
- ldr r0, _080E15C4 @ =gUnknown_0202F7C8
+ ldr r0, _080E15C4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
+ bl GetBankIdentity_permutated
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1E]
@@ -47474,14 +47474,14 @@ _080E15A0:
ldr r0, _080E15C8 @ =gUnknown_030042C0
b _080E15CE
.align 2, 0
-_080E15C4: .4byte gUnknown_0202F7C8
+_080E15C4: .4byte gBattleAnimPlayerMonIndex
_080E15C8: .4byte gUnknown_030042C0
_080E15CC:
ldr r0, _080E15EC @ =gUnknown_03004288
_080E15CE:
ldrh r0, [r0]
strh r0, [r4, 0x20]
- ldr r0, _080E15F0 @ =gUnknown_0202F7C8
+ ldr r0, _080E15F0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
bl sub_8077FC0
lsls r0, 24
@@ -47494,7 +47494,7 @@ _080E15CE:
b _080E164A
.align 2, 0
_080E15EC: .4byte gUnknown_03004288
-_080E15F0: .4byte gUnknown_0202F7C8
+_080E15F0: .4byte gBattleAnimPlayerMonIndex
_080E15F4:
ldrb r0, [r4, 0x1E]
movs r1, 0x26
@@ -47549,7 +47549,7 @@ _080E1654: .4byte gSprites
_080E1658: .4byte gUnknown_03004DC0
_080E165C:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E1662:
pop {r4}
pop {r0}
@@ -47662,19 +47662,19 @@ _080E1724: .4byte 0xa2600001
sub_80E1728: @ 80E1728
push {r4-r7,lr}
adds r5, r0, 0
- ldr r0, _080E173C @ =gUnknown_03004B00
+ ldr r0, _080E173C @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r7, r0, 0
cmp r1, 0
bne _080E1744
- ldr r0, _080E1740 @ =gUnknown_0202F7C8
+ ldr r0, _080E1740 @ =gBattleAnimPlayerMonIndex
b _080E1746
.align 2, 0
-_080E173C: .4byte gUnknown_03004B00
-_080E1740: .4byte gUnknown_0202F7C8
+_080E173C: .4byte gBattleAnimArgs
+_080E1740: .4byte gBattleAnimPlayerMonIndex
_080E1744:
- ldr r0, _080E17A8 @ =gUnknown_0202F7C9
+ ldr r0, _080E17A8 @ =gBattleAnimEnemyMonIndex
_080E1746:
ldrb r4, [r0]
movs r6, 0x18
@@ -47723,7 +47723,7 @@ _080E1762:
pop {r0}
bx r0
.align 2, 0
-_080E17A8: .4byte gUnknown_0202F7C9
+_080E17A8: .4byte gBattleAnimEnemyMonIndex
_080E17AC: .4byte sub_80E17B0
thumb_func_end sub_80E1728
@@ -47747,18 +47747,18 @@ _080E17C4:
sub_80E17CC: @ 80E17CC
push {r4-r6,lr}
adds r6, r0, 0
- ldr r0, _080E17E0 @ =gUnknown_03004B00
+ ldr r0, _080E17E0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080E17E8
- ldr r0, _080E17E4 @ =gUnknown_0202F7C8
+ ldr r0, _080E17E4 @ =gBattleAnimPlayerMonIndex
b _080E17EA
.align 2, 0
-_080E17E0: .4byte gUnknown_03004B00
-_080E17E4: .4byte gUnknown_0202F7C8
+_080E17E0: .4byte gBattleAnimArgs
+_080E17E4: .4byte gBattleAnimPlayerMonIndex
_080E17E8:
- ldr r0, _080E1848 @ =gUnknown_0202F7C9
+ ldr r0, _080E1848 @ =gBattleAnimEnemyMonIndex
_080E17EA:
ldrb r5, [r0]
adds r0, r5, 0
@@ -47768,7 +47768,7 @@ _080E17EA:
lsrs r0, 24
ldr r2, _080E184C @ =0x0000fff0
adds r0, r2
- ldr r4, _080E1850 @ =gUnknown_03004B00
+ ldr r4, _080E1850 @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r4, r3]
lsls r1, 5
@@ -47805,9 +47805,9 @@ _080E17EA:
pop {r0}
bx r0
.align 2, 0
-_080E1848: .4byte gUnknown_0202F7C9
+_080E1848: .4byte gBattleAnimEnemyMonIndex
_080E184C: .4byte 0x0000fff0
-_080E1850: .4byte gUnknown_03004B00
+_080E1850: .4byte gBattleAnimArgs
_080E1854: .4byte 0x000003ff
_080E1858: .4byte 0xfffffc00
_080E185C: .4byte move_anim_8072740
@@ -47824,7 +47824,7 @@ sub_80E1864: @ 80E1864
lsls r0, 3
ldr r1, _080E1888 @ =gTasks
adds r4, r0, r1
- ldr r0, _080E188C @ =gUnknown_03004B00
+ ldr r0, _080E188C @ =gBattleAnimArgs
ldrh r2, [r0, 0x2]
movs r3, 0x2
ldrsh r1, [r0, r3]
@@ -47835,9 +47835,9 @@ sub_80E1864: @ 80E1864
b _080E189C
.align 2, 0
_080E1888: .4byte gTasks
-_080E188C: .4byte gUnknown_03004B00
+_080E188C: .4byte gBattleAnimArgs
_080E1890:
- ldr r0, _080E18BC @ =gUnknown_0202F7BC
+ ldr r0, _080E18BC @ =gMovePowerMoveAnim
ldrh r0, [r0]
movs r1, 0xA
bl __udivsi3
@@ -47860,7 +47860,7 @@ _080E189C:
ldr r0, _080E18C4 @ =sub_80E1934
b _080E1926
.align 2, 0
-_080E18BC: .4byte gUnknown_0202F7BC
+_080E18BC: .4byte gMovePowerMoveAnim
_080E18C0: .4byte gUnknown_030041B0
_080E18C4: .4byte sub_80E1934
_080E18C8:
@@ -47881,7 +47881,7 @@ _080E18CE:
adds r1, r4, 0
adds r1, 0x8
adds r1, r0
- ldr r0, _080E1904 @ =gUnknown_02024BE0
+ ldr r0, _080E1904 @ =gObjectBankIDs
adds r0, r5, r0
ldrb r0, [r0]
strh r0, [r1]
@@ -47896,7 +47896,7 @@ _080E18F8:
bls _080E18CE
b _080E1924
.align 2, 0
-_080E1904: .4byte gUnknown_02024BE0
+_080E1904: .4byte gObjectBankIDs
_080E1908:
ldrb r0, [r6]
bl obj_id_for_side_relative_to_move
@@ -47906,7 +47906,7 @@ _080E1908:
cmp r0, 0xFF
bne _080E1920
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080E1928
_080E1920:
movs r0, 0x1
@@ -48050,7 +48050,7 @@ _080E1A18:
ldrh r0, [r3, 0x22]
strh r0, [r1]
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E1A24:
pop {r0}
bx r0
@@ -48171,7 +48171,7 @@ _080E1ADC:
blt _080E1ADC
_080E1B00:
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E1B06:
pop {r4-r7}
pop {r0}
@@ -48252,9 +48252,9 @@ sub_80E1B88: @ 80E1B88
push {lr}
lsls r0, 24
lsrs r1, r0, 24
- ldr r3, _080E1BA8 @ =gUnknown_03004B00
+ ldr r3, _080E1BA8 @ =gBattleAnimArgs
movs r2, 0
- ldr r0, _080E1BAC @ =gUnknown_0202F7BC
+ ldr r0, _080E1BAC @ =gMovePowerMoveAnim
ldrh r0, [r0]
cmp r0, 0x63
bls _080E1B9C
@@ -48262,12 +48262,12 @@ sub_80E1B88: @ 80E1B88
_080E1B9C:
strh r2, [r3, 0x1E]
adds r0, r1, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
-_080E1BA8: .4byte gUnknown_03004B00
-_080E1BAC: .4byte gUnknown_0202F7BC
+_080E1BA8: .4byte gBattleAnimArgs
+_080E1BAC: .4byte gMovePowerMoveAnim
thumb_func_end sub_80E1B88
thumb_func_start sub_80E1BB0
@@ -48275,20 +48275,20 @@ sub_80E1BB0: @ 80E1BB0
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
- ldr r2, _080E1BC8 @ =gUnknown_03004B00
+ ldr r2, _080E1BC8 @ =gBattleAnimArgs
ldrh r1, [r2]
movs r0, 0x1
ands r0, r1
adds r6, r2, 0
cmp r0, 0
beq _080E1BD0
- ldr r0, _080E1BCC @ =gUnknown_0202F7C9
+ ldr r0, _080E1BCC @ =gBattleAnimEnemyMonIndex
b _080E1BD2
.align 2, 0
-_080E1BC8: .4byte gUnknown_03004B00
-_080E1BCC: .4byte gUnknown_0202F7C9
+_080E1BC8: .4byte gBattleAnimArgs
+_080E1BCC: .4byte gBattleAnimEnemyMonIndex
_080E1BD0:
- ldr r0, _080E1C40 @ =gUnknown_0202F7C8
+ ldr r0, _080E1C40 @ =gBattleAnimPlayerMonIndex
_080E1BD2:
ldrb r0, [r0]
adds r5, r0, 0
@@ -48338,12 +48338,12 @@ _080E1BE2:
ldrh r0, [r6, 0x4]
strh r0, [r4, 0xE]
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080E1C40: .4byte gUnknown_0202F7C8
+_080E1C40: .4byte gBattleAnimPlayerMonIndex
_080E1C44: .4byte sub_80E1C58
_080E1C48: .4byte gTasks
_080E1C4C: .4byte 0x000001ff
@@ -48361,7 +48361,7 @@ sub_80E1C58: @ 80E1C58
lsls r0, 3
ldr r1, _080E1C88 @ =gTasks
adds r2, r0, r1
- ldr r0, _080E1C8C @ =gUnknown_03004B00
+ ldr r0, _080E1C8C @ =gBattleAnimArgs
movs r4, 0xE
ldrsh r1, [r0, r4]
movs r4, 0xE
@@ -48378,7 +48378,7 @@ sub_80E1C58: @ 80E1C58
b _080E1CA4
.align 2, 0
_080E1C88: .4byte gTasks
-_080E1C8C: .4byte gUnknown_03004B00
+_080E1C8C: .4byte gBattleAnimArgs
_080E1C90: .4byte gUnknown_030041B0
_080E1C94: .4byte gUnknown_030041B8
_080E1C98:
@@ -48401,7 +48401,7 @@ _080E1CB0: .4byte gUnknown_030041B8
sub_80E1CB4: @ 80E1CB4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E1CEC @ =gUnknown_03004B00
+ ldr r5, _080E1CEC @ =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
@@ -48412,9 +48412,9 @@ sub_80E1CB4: @ 80E1CB4
strh r0, [r4, 0x22]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
- ldr r0, _080E1CF0 @ =gUnknown_0202F7C8
+ ldr r0, _080E1CF0 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -48426,8 +48426,8 @@ sub_80E1CB4: @ 80E1CB4
strh r0, [r4, 0x36]
b _080E1D02
.align 2, 0
-_080E1CEC: .4byte gUnknown_03004B00
-_080E1CF0: .4byte gUnknown_0202F7C8
+_080E1CEC: .4byte gBattleAnimArgs
+_080E1CF0: .4byte gBattleAnimPlayerMonIndex
_080E1CF4:
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x30]
@@ -48436,7 +48436,7 @@ _080E1CF4:
movs r1, 0x1
bl StartSpriteAnim
_080E1D02:
- ldr r0, _080E1D18 @ =gUnknown_03004B00
+ ldr r0, _080E1D18 @ =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r4, 0x34]
ldr r1, _080E1D1C @ =sub_80E1D20
@@ -48447,7 +48447,7 @@ _080E1D02:
pop {r0}
bx r0
.align 2, 0
-_080E1D18: .4byte gUnknown_03004B00
+_080E1D18: .4byte gBattleAnimArgs
_080E1D1C: .4byte sub_80E1D20
thumb_func_end sub_80E1CB4
@@ -48510,7 +48510,7 @@ sub_80E1D84: @ 80E1D84
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
- ldr r4, _080E1DBC @ =gUnknown_03004B00
+ ldr r4, _080E1DBC @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_80E1DC4
@@ -48534,7 +48534,7 @@ sub_80E1D84: @ 80E1D84
pop {r0}
bx r0
.align 2, 0
-_080E1DBC: .4byte gUnknown_03004B00
+_080E1DBC: .4byte gBattleAnimArgs
_080E1DC0: .4byte sub_80E1E0C
thumb_func_end sub_80E1D84
@@ -48600,7 +48600,7 @@ _080E1E28: .4byte gPaletteFade
sub_80E1E2C: @ 80E1E2C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E1E78 @ =gUnknown_03004B00
+ ldr r4, _080E1E78 @ =gBattleAnimArgs
ldrh r0, [r4, 0x2]
strh r0, [r5, 0x2E]
strh r0, [r5, 0x30]
@@ -48634,7 +48634,7 @@ sub_80E1E2C: @ 80E1E2C
pop {r0}
bx r0
.align 2, 0
-_080E1E78: .4byte gUnknown_03004B00
+_080E1E78: .4byte gBattleAnimArgs
_080E1E7C: .4byte sub_80E1E80
thumb_func_end sub_80E1E2C
@@ -48741,7 +48741,7 @@ _080E1F38: .4byte gPaletteFade
sub_80E1F3C: @ 80E1F3C
push {r4,lr}
adds r4, r0, 0
- ldr r1, _080E1F80 @ =gUnknown_03004B00
+ ldr r1, _080E1F80 @ =gBattleAnimArgs
ldrh r0, [r1]
ldrh r2, [r4, 0x20]
adds r0, r2
@@ -48772,7 +48772,7 @@ sub_80E1F3C: @ 80E1F3C
pop {r0}
bx r0
.align 2, 0
-_080E1F80: .4byte gUnknown_03004B00
+_080E1F80: .4byte gBattleAnimArgs
_080E1F84: .4byte move_anim_8074EE0
_080E1F88: .4byte sub_8078174
thumb_func_end sub_80E1F3C
@@ -48787,7 +48787,7 @@ sub_80E1F8C: @ 80E1F8C
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r3, _080E1FD4 @ =gUnknown_03004B00
+ ldr r3, _080E1FD4 @ =gBattleAnimArgs
ldrh r1, [r3]
movs r5, 0
strh r1, [r4, 0x8]
@@ -48813,7 +48813,7 @@ sub_80E1F8C: @ 80E1F8C
bx r0
.align 2, 0
_080E1FD0: .4byte gTasks
-_080E1FD4: .4byte gUnknown_03004B00
+_080E1FD4: .4byte gBattleAnimArgs
_080E1FD8: .4byte sub_80E202C
thumb_func_end sub_80E1F8C
@@ -48910,7 +48910,7 @@ _080E2080:
b _080E208E
_080E2088:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E208E:
pop {r4-r6}
pop {r0}
@@ -48927,7 +48927,7 @@ sub_80E2094: @ 80E2094
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r3, _080E20DC @ =gUnknown_03004B00
+ ldr r3, _080E20DC @ =gBattleAnimArgs
ldrh r1, [r3]
movs r5, 0
strh r1, [r4, 0x8]
@@ -48953,7 +48953,7 @@ sub_80E2094: @ 80E2094
bx r0
.align 2, 0
_080E20D8: .4byte gTasks
-_080E20DC: .4byte gUnknown_03004B00
+_080E20DC: .4byte gBattleAnimArgs
_080E20E0: .4byte sub_80E2140
thumb_func_end sub_80E2094
@@ -49055,7 +49055,7 @@ _080E2194:
b _080E21A2
_080E219C:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E21A2:
pop {r4-r6}
pop {r0}
@@ -49073,7 +49073,7 @@ sub_80E21A8: @ 80E21A8
adds r4, r0
lsls r4, 3
adds r4, r1
- ldr r5, _080E220C @ =gUnknown_03004B00
+ ldr r5, _080E220C @ =gBattleAnimArgs
ldrh r0, [r5, 0x2]
strh r0, [r4, 0x8]
ldrh r0, [r5, 0x2]
@@ -49112,7 +49112,7 @@ sub_80E21A8: @ 80E21A8
bx r0
.align 2, 0
_080E2208: .4byte gTasks
-_080E220C: .4byte gUnknown_03004B00
+_080E220C: .4byte gBattleAnimArgs
_080E2210: .4byte sub_80E2214
thumb_func_end sub_80E21A8
@@ -49244,7 +49244,7 @@ sub_80E22CC: @ 80E22CC
movs r3, 0
bl BeginNormalPaletteFade
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E2312:
add sp, 0x4
pop {r4,r5}
@@ -49265,11 +49265,11 @@ sub_80E2324: @ 80E2324
lsrs r0, 24
mov r8, r0
movs r2, 0
- ldr r0, _080E239C @ =gUnknown_0202F7C8
+ ldr r0, _080E239C @ =gBattleAnimPlayerMonIndex
ldrb r6, [r0]
- ldr r0, _080E23A0 @ =gUnknown_0202F7C9
+ ldr r0, _080E23A0 @ =gBattleAnimEnemyMonIndex
ldrb r7, [r0]
- ldr r4, _080E23A4 @ =gUnknown_03004B00
+ ldr r4, _080E23A4 @ =gBattleAnimArgs
ldrh r1, [r4]
movs r5, 0x80
lsls r5, 1
@@ -49309,7 +49309,7 @@ _080E2382:
adds r0, r2, 0
bl InvertPlttBuffer
mov r0, r8
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0xC
pop {r3}
mov r8, r3
@@ -49317,9 +49317,9 @@ _080E2382:
pop {r0}
bx r0
.align 2, 0
-_080E239C: .4byte gUnknown_0202F7C8
-_080E23A0: .4byte gUnknown_0202F7C9
-_080E23A4: .4byte gUnknown_03004B00
+_080E239C: .4byte gBattleAnimPlayerMonIndex
+_080E23A0: .4byte gBattleAnimEnemyMonIndex
+_080E23A4: .4byte gBattleAnimArgs
thumb_func_end sub_80E2324
thumb_func_start unref_sub_80E23A8
@@ -49342,7 +49342,7 @@ unref_sub_80E23A8: @ 80E23A8
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080E23EA
- ldr r1, _080E24A0 @ =gUnknown_03004B00
+ ldr r1, _080E24A0 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r4, 0xC]
ldrh r0, [r1, 0x2]
@@ -49361,10 +49361,10 @@ _080E23EA:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
- ldr r0, _080E24A4 @ =gUnknown_0202F7C8
+ ldr r0, _080E24A4 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
mov r9, r0
- ldr r0, _080E24A8 @ =gUnknown_0202F7C9
+ ldr r0, _080E24A8 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
mov r10, r0
ldrh r1, [r4, 0xC]
@@ -49382,7 +49382,7 @@ _080E240C:
cmp r0, 0
beq _080E243C
ldr r2, _080E24B0 @ =gSprites
- ldr r0, _080E24B4 @ =gUnknown_03004340
+ ldr r0, _080E24B4 @ =gHealthboxIDs
add r0, r9
ldrb r1, [r0]
lsls r0, r1, 4
@@ -49439,7 +49439,7 @@ _080E2464:
adds r0, r5, 0
bl UnfadePlttBuffer
mov r0, r8
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E248E:
pop {r3-r5}
mov r8, r3
@@ -49450,12 +49450,12 @@ _080E248E:
bx r0
.align 2, 0
_080E249C: .4byte gTasks
-_080E24A0: .4byte gUnknown_03004B00
-_080E24A4: .4byte gUnknown_0202F7C8
-_080E24A8: .4byte gUnknown_0202F7C9
+_080E24A0: .4byte gBattleAnimArgs
+_080E24A4: .4byte gBattleAnimPlayerMonIndex
+_080E24A8: .4byte gBattleAnimEnemyMonIndex
_080E24AC: .4byte 0x0000ffff
_080E24B0: .4byte gSprites
-_080E24B4: .4byte gUnknown_03004340
+_080E24B4: .4byte gHealthboxIDs
thumb_func_end unref_sub_80E23A8
thumb_func_start sub_80E24B8
@@ -49468,7 +49468,7 @@ sub_80E24B8: @ 80E24B8
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r1, _080E24EC @ =gUnknown_03004B00
+ ldr r1, _080E24EC @ =gBattleAnimArgs
ldrh r0, [r1]
negs r0, r0
strh r0, [r4, 0x2E]
@@ -49487,7 +49487,7 @@ sub_80E24B8: @ 80E24B8
beq _080E24F6
b _080E2518
.align 2, 0
-_080E24EC: .4byte gUnknown_03004B00
+_080E24EC: .4byte gBattleAnimArgs
_080E24F0:
cmp r0, 0x2
beq _080E2508
@@ -49523,7 +49523,7 @@ _080E2520:
orrs r1, r0
ldr r0, [r1]
strh r0, [r4, 0x36]
- ldr r0, _080E2554 @ =gUnknown_03004B00
+ ldr r0, _080E2554 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r4, 0x38]
subs r0, 0x2
@@ -49540,7 +49540,7 @@ _080E2544:
bx r0
.align 2, 0
_080E2550: .4byte gSpriteCoordOffsetY
-_080E2554: .4byte gUnknown_03004B00
+_080E2554: .4byte gBattleAnimArgs
_080E2558: .4byte sub_80E255C
thumb_func_end sub_80E24B8
@@ -49598,13 +49598,13 @@ _080E25A0:
cmp r0, 0x1
bhi _080E25F4
movs r4, 0
- ldr r5, _080E2600 @ =gUnknown_02024A68
+ ldr r5, _080E2600 @ =gNoOfAllBanks
ldrb r0, [r5]
cmp r4, r0
bcs _080E25F4
ldr r2, _080E2604 @ =gSprites
mov r12, r2
- ldr r6, _080E2608 @ =gUnknown_02024BE0
+ ldr r6, _080E2608 @ =gObjectBankIDs
movs r7, 0x3
negs r7, r7
_080E25D2:
@@ -49633,17 +49633,17 @@ _080E25FA:
pop {r0}
bx r0
.align 2, 0
-_080E2600: .4byte gUnknown_02024A68
+_080E2600: .4byte gNoOfAllBanks
_080E2604: .4byte gSprites
-_080E2608: .4byte gUnknown_02024BE0
+_080E2608: .4byte gObjectBankIDs
thumb_func_end sub_80E255C
thumb_func_start sub_80E260C
sub_80E260C: @ 80E260C
push {r4-r6,lr}
ldr r6, _080E2680 @ =gSprites
- ldr r4, _080E2684 @ =gUnknown_02024BE0
- ldr r5, _080E2688 @ =gUnknown_0202F7C8
+ ldr r4, _080E2684 @ =gObjectBankIDs
+ ldr r5, _080E2688 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -49658,7 +49658,7 @@ sub_80E260C: @ 80E260C
adds r0, r2, 0
ands r0, r3
strb r0, [r1]
- ldr r3, _080E268C @ =gUnknown_0202F7C9
+ ldr r3, _080E268C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r3]
adds r0, r4
ldrb r1, [r0]
@@ -49670,7 +49670,7 @@ sub_80E260C: @ 80E260C
ldrb r1, [r0]
ands r2, r1
strb r2, [r0]
- ldr r0, _080E2690 @ =gUnknown_03004B00
+ ldr r0, _080E2690 @ =gBattleAnimArgs
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0x2
@@ -49699,10 +49699,10 @@ sub_80E260C: @ 80E260C
b _080E26B0
.align 2, 0
_080E2680: .4byte gSprites
-_080E2684: .4byte gUnknown_02024BE0
-_080E2688: .4byte gUnknown_0202F7C8
-_080E268C: .4byte gUnknown_0202F7C9
-_080E2690: .4byte gUnknown_03004B00
+_080E2684: .4byte gObjectBankIDs
+_080E2688: .4byte gBattleAnimPlayerMonIndex
+_080E268C: .4byte gBattleAnimEnemyMonIndex
+_080E2690: .4byte gBattleAnimArgs
_080E2694:
cmp r0, 0
bne _080E269C
@@ -49738,7 +49738,7 @@ sub_80E26BC: @ 80E26BC
adds r2, r0
lsls r2, 3
adds r2, r1
- ldr r3, _080E2700 @ =gUnknown_03004B00
+ ldr r3, _080E2700 @ =gBattleAnimArgs
ldrh r1, [r3]
strh r1, [r2, 0x8]
ldrh r1, [r3, 0x2]
@@ -49763,7 +49763,7 @@ sub_80E26BC: @ 80E26BC
bx r0
.align 2, 0
_080E26FC: .4byte gTasks
-_080E2700: .4byte gUnknown_03004B00
+_080E2700: .4byte gBattleAnimArgs
_080E2704: .4byte gUnknown_030041B0
_080E2708: .4byte gUnknown_030041B8
_080E270C: .4byte sub_80E2710
@@ -49837,7 +49837,7 @@ _080E2770:
strh r1, [r6]
strh r1, [r2]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080E279A
_080E2796:
subs r0, r2, 0x1
@@ -49852,7 +49852,7 @@ _080E279A:
sub_80E27A0: @ 80E27A0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E27C0 @ =gUnknown_03004B00
+ ldr r4, _080E27C0 @ =gBattleAnimArgs
ldrb r1, [r4, 0x6]
bl StartSpriteAffineAnim
movs r1, 0x4
@@ -49864,7 +49864,7 @@ sub_80E27A0: @ 80E27A0
bl sub_80787B0
b _080E27CC
.align 2, 0
-_080E27C0: .4byte gUnknown_03004B00
+_080E27C0: .4byte gBattleAnimArgs
_080E27C4:
adds r0, r5, 0
movs r1, 0x1
@@ -49887,7 +49887,7 @@ _080E27E4: .4byte move_anim_8072740
sub_80E27E8: @ 80E27E8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E2808 @ =gUnknown_03004B00
+ ldr r4, _080E2808 @ =gBattleAnimArgs
ldrb r1, [r4, 0x6]
bl StartSpriteAffineAnim
movs r1, 0x4
@@ -49899,13 +49899,13 @@ sub_80E27E8: @ 80E27E8
bl sub_80787B0
b _080E2814
.align 2, 0
-_080E2808: .4byte gUnknown_03004B00
+_080E2808: .4byte gBattleAnimArgs
_080E280C:
adds r0, r5, 0
movs r1, 0x1
bl sub_8078764
_080E2814:
- ldr r0, _080E282C @ =gUnknown_03004B00
+ ldr r0, _080E282C @ =gBattleAnimArgs
ldrh r0, [r0, 0x8]
strh r0, [r5, 0x2E]
ldr r0, _080E2830 @ =sub_80785E4
@@ -49917,7 +49917,7 @@ _080E2814:
pop {r0}
bx r0
.align 2, 0
-_080E282C: .4byte gUnknown_03004B00
+_080E282C: .4byte gBattleAnimArgs
_080E2830: .4byte sub_80785E4
_080E2834: .4byte sub_80DA48C
thumb_func_end sub_80E27E8
@@ -49926,17 +49926,17 @@ _080E2834: .4byte sub_80DA48C
sub_80E2838: @ 80E2838
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080E2868 @ =gUnknown_0202F7C8
+ ldr r0, _080E2868 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080E285C
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E285C
- ldr r1, _080E286C @ =gUnknown_03004B00
+ ldr r1, _080E286C @ =gBattleAnimArgs
ldrh r0, [r1, 0x2]
negs r0, r0
strh r0, [r1, 0x2]
@@ -49947,15 +49947,15 @@ _080E285C:
pop {r0}
bx r0
.align 2, 0
-_080E2868: .4byte gUnknown_0202F7C8
-_080E286C: .4byte gUnknown_03004B00
+_080E2868: .4byte gBattleAnimPlayerMonIndex
+_080E286C: .4byte gBattleAnimArgs
thumb_func_end sub_80E2838
thumb_func_start sub_80E2870
sub_80E2870: @ 80E2870
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E28A8 @ =gUnknown_03004B00
+ ldr r5, _080E28A8 @ =gBattleAnimArgs
movs r0, 0x2
ldrsh r1, [r5, r0]
movs r0, 0x1
@@ -49979,7 +49979,7 @@ _080E288C:
bl sub_80787B0
b _080E28B4
.align 2, 0
-_080E28A8: .4byte gUnknown_03004B00
+_080E28A8: .4byte gBattleAnimArgs
_080E28AC:
adds r0, r4, 0
movs r1, 0
@@ -50024,7 +50024,7 @@ _080E2904: .4byte sub_80785E4
sub_80E2908: @ 80E2908
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E2968 @ =gUnknown_03004B00
+ ldr r5, _080E2968 @ =gBattleAnimArgs
ldrb r0, [r5]
bl obj_id_for_side_relative_to_move
lsls r0, 24
@@ -50067,7 +50067,7 @@ sub_80E2908: @ 80E2908
pop {r0}
bx r0
.align 2, 0
-_080E2968: .4byte gUnknown_03004B00
+_080E2968: .4byte gBattleAnimArgs
_080E296C: .4byte gSprites
_080E2970: .4byte move_anim_8074EE0
_080E2974: .4byte sub_80785E4
@@ -50077,7 +50077,7 @@ _080E2974: .4byte sub_80785E4
sub_80E2978: @ 80E2978
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080E2990 @ =gUnknown_03004B00
+ ldr r0, _080E2990 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -50087,13 +50087,13 @@ sub_80E2978: @ 80E2978
bl sub_80787B0
b _080E299C
.align 2, 0
-_080E2990: .4byte gUnknown_03004B00
+_080E2990: .4byte gBattleAnimArgs
_080E2994:
adds r0, r4, 0
movs r1, 0x1
bl sub_8078764
_080E299C:
- ldr r0, _080E29B4 @ =gUnknown_03004B00
+ ldr r0, _080E29B4 @ =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r4, 0x2E]
ldr r1, _080E29B8 @ =move_anim_8072740
@@ -50105,7 +50105,7 @@ _080E299C:
pop {r0}
bx r0
.align 2, 0
-_080E29B4: .4byte gUnknown_03004B00
+_080E29B4: .4byte gBattleAnimArgs
_080E29B8: .4byte move_anim_8072740
_080E29BC: .4byte sub_80782D8
thumb_func_end sub_80E2978
@@ -50114,7 +50114,7 @@ _080E29BC: .4byte sub_80782D8
sub_80E29C0: @ 80E29C0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080E29E0 @ =gUnknown_03004B00
+ ldr r4, _080E29E0 @ =gBattleAnimArgs
ldrb r1, [r4, 0x6]
bl StartSpriteAffineAnim
movs r1, 0x4
@@ -50126,7 +50126,7 @@ sub_80E29C0: @ 80E29C0
bl sub_80787B0
b _080E29EC
.align 2, 0
-_080E29E0: .4byte gUnknown_03004B00
+_080E29E0: .4byte gBattleAnimArgs
_080E29E4:
adds r0, r5, 0
movs r1, 0x1
@@ -50180,7 +50180,7 @@ sub_80E2A38: @ 80E2A38
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r4, _080E2A78 @ =gUnknown_03004B00
+ ldr r4, _080E2A78 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_80E1DC4
@@ -50205,7 +50205,7 @@ sub_80E2A38: @ 80E2A38
pop {r0}
bx r0
.align 2, 0
-_080E2A78: .4byte gUnknown_03004B00
+_080E2A78: .4byte gBattleAnimArgs
thumb_func_end sub_80E2A38
thumb_func_start sub_80E2A7C
@@ -50220,7 +50220,7 @@ sub_80E2A7C: @ 80E2A7C
movs r0, 0x1
bl sub_80E1DC4
adds r5, r0, 0
- ldr r0, _080E2AA8 @ =gUnknown_03004B00
+ ldr r0, _080E2AA8 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x7
@@ -50231,7 +50231,7 @@ sub_80E2A7C: @ 80E2A7C
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E2AA8: .4byte gUnknown_03004B00
+_080E2AA8: .4byte gBattleAnimArgs
_080E2AAC: .4byte _080E2AB0
.align 2, 0
_080E2AB0:
@@ -50247,33 +50247,33 @@ _080E2AD0:
movs r5, 0
_080E2AD2:
mov r0, sp
- ldr r1, _080E2AD8 @ =gUnknown_0202F7C8
+ ldr r1, _080E2AD8 @ =gBattleAnimPlayerMonIndex
b _080E2AE2
.align 2, 0
-_080E2AD8: .4byte gUnknown_0202F7C8
+_080E2AD8: .4byte gBattleAnimPlayerMonIndex
_080E2ADC:
movs r5, 0
_080E2ADE:
mov r0, sp
- ldr r1, _080E2AE8 @ =gUnknown_0202F7C9
+ ldr r1, _080E2AE8 @ =gBattleAnimEnemyMonIndex
_080E2AE2:
ldrb r1, [r1]
strb r1, [r0]
b _080E2B26
.align 2, 0
-_080E2AE8: .4byte gUnknown_0202F7C9
+_080E2AE8: .4byte gBattleAnimEnemyMonIndex
_080E2AEC:
mov r1, sp
- ldr r0, _080E2AFC @ =gUnknown_0202F7C8
+ ldr r0, _080E2AFC @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
strb r0, [r1]
- ldr r0, _080E2B00 @ =gUnknown_0202F7C9
+ ldr r0, _080E2B00 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
strb r0, [r1, 0x1]
b _080E2B26
.align 2, 0
-_080E2AFC: .4byte gUnknown_0202F7C8
-_080E2B00: .4byte gUnknown_0202F7C9
+_080E2AFC: .4byte gBattleAnimPlayerMonIndex
+_080E2B00: .4byte gBattleAnimEnemyMonIndex
_080E2B04:
mov r1, sp
movs r0, 0xFF
@@ -50282,14 +50282,14 @@ _080E2B04:
_080E2B0C:
movs r5, 0
mov r2, sp
- ldr r0, _080E2B14 @ =gUnknown_0202F7C8
+ ldr r0, _080E2B14 @ =gBattleAnimPlayerMonIndex
b _080E2B1E
.align 2, 0
-_080E2B14: .4byte gUnknown_0202F7C8
+_080E2B14: .4byte gBattleAnimPlayerMonIndex
_080E2B18:
movs r5, 0
mov r2, sp
- ldr r0, _080E2B70 @ =gUnknown_0202F7C9
+ ldr r0, _080E2B70 @ =gBattleAnimEnemyMonIndex
_080E2B1E:
ldrb r0, [r0]
movs r1, 0x2
@@ -50332,7 +50332,7 @@ _080E2B54:
pop {r0}
bx r0
.align 2, 0
-_080E2B70: .4byte gUnknown_0202F7C9
+_080E2B70: .4byte gBattleAnimEnemyMonIndex
thumb_func_end sub_80E2A7C
thumb_func_start sub_80E2B74
@@ -50340,12 +50340,12 @@ sub_80E2B74: @ 80E2B74
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080E2B98 @ =gUnknown_03004B00
+ ldr r0, _080E2B98 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_80E1DC4
adds r2, r0, 0
- ldr r0, _080E2B9C @ =gUnknown_0300428C
+ ldr r0, _080E2B9C @ =gBattleTerrain
ldrb r0, [r0]
cmp r0, 0x9
bhi _080E2C4A
@@ -50355,8 +50355,8 @@ sub_80E2B74: @ 80E2B74
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E2B98: .4byte gUnknown_03004B00
-_080E2B9C: .4byte gUnknown_0300428C
+_080E2B98: .4byte gBattleAnimArgs
+_080E2B9C: .4byte gBattleTerrain
_080E2BA0: .4byte _080E2BA4
.align 2, 0
_080E2BA4:
@@ -50371,63 +50371,63 @@ _080E2BA4:
.4byte _080E2C44
.4byte _080E2C44
_080E2BCC:
- ldr r1, _080E2BD4 @ =gUnknown_03004B00
+ ldr r1, _080E2BD4 @ =gBattleAnimArgs
ldr r0, _080E2BD8 @ =0x00000b0c
b _080E2C48
.align 2, 0
-_080E2BD4: .4byte gUnknown_03004B00
+_080E2BD4: .4byte gBattleAnimArgs
_080E2BD8: .4byte 0x00000b0c
_080E2BDC:
- ldr r1, _080E2BE4 @ =gUnknown_03004B00
+ ldr r1, _080E2BE4 @ =gBattleAnimArgs
movs r0, 0x9E
lsls r0, 4
b _080E2C48
.align 2, 0
-_080E2BE4: .4byte gUnknown_03004B00
+_080E2BE4: .4byte gBattleAnimArgs
_080E2BE8:
- ldr r1, _080E2BF0 @ =gUnknown_03004B00
+ ldr r1, _080E2BF0 @ =gBattleAnimArgs
ldr r0, _080E2BF4 @ =0x00002f1e
b _080E2C48
.align 2, 0
-_080E2BF0: .4byte gUnknown_03004B00
+_080E2BF0: .4byte gBattleAnimArgs
_080E2BF4: .4byte 0x00002f1e
_080E2BF8:
- ldr r1, _080E2C00 @ =gUnknown_03004B00
+ ldr r1, _080E2C00 @ =gBattleAnimArgs
movs r0, 0x90
lsls r0, 7
b _080E2C48
.align 2, 0
-_080E2C00: .4byte gUnknown_03004B00
+_080E2C00: .4byte gBattleAnimArgs
_080E2C04:
- ldr r1, _080E2C0C @ =gUnknown_03004B00
+ ldr r1, _080E2C0C @ =gBattleAnimArgs
ldr r0, _080E2C10 @ =0x00007ecb
b _080E2C48
.align 2, 0
-_080E2C0C: .4byte gUnknown_03004B00
+_080E2C0C: .4byte gBattleAnimArgs
_080E2C10: .4byte 0x00007ecb
_080E2C14:
- ldr r1, _080E2C1C @ =gUnknown_03004B00
+ ldr r1, _080E2C1C @ =gBattleAnimArgs
ldr r0, _080E2C20 @ =0x00007ecb
b _080E2C48
.align 2, 0
-_080E2C1C: .4byte gUnknown_03004B00
+_080E2C1C: .4byte gBattleAnimArgs
_080E2C20: .4byte 0x00007ecb
_080E2C24:
- ldr r1, _080E2C2C @ =gUnknown_03004B00
+ ldr r1, _080E2C2C @ =gBattleAnimArgs
ldr r0, _080E2C30 @ =0x00002a16
b _080E2C48
.align 2, 0
-_080E2C2C: .4byte gUnknown_03004B00
+_080E2C2C: .4byte gBattleAnimArgs
_080E2C30: .4byte 0x00002a16
_080E2C34:
- ldr r1, _080E2C3C @ =gUnknown_03004B00
+ ldr r1, _080E2C3C @ =gBattleAnimArgs
ldr r0, _080E2C40 @ =0x00000d2e
b _080E2C48
.align 2, 0
-_080E2C3C: .4byte gUnknown_03004B00
+_080E2C3C: .4byte gBattleAnimArgs
_080E2C40: .4byte 0x00000d2e
_080E2C44:
- ldr r1, _080E2C58 @ =gUnknown_03004B00
+ ldr r1, _080E2C58 @ =gBattleAnimArgs
ldr r0, _080E2C5C @ =0x00007fff
_080E2C48:
strh r0, [r1, 0x8]
@@ -50439,7 +50439,7 @@ _080E2C4A:
pop {r0}
bx r0
.align 2, 0
-_080E2C58: .4byte gUnknown_03004B00
+_080E2C58: .4byte gBattleAnimArgs
_080E2C5C: .4byte 0x00007fff
thumb_func_end sub_80E2B74
@@ -50449,7 +50449,7 @@ sub_80E2C60: @ 80E2C60
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080E2C88 @ =gUnknown_03004B00
+ ldr r0, _080E2C88 @ =gBattleAnimArgs
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 24
@@ -50463,7 +50463,7 @@ sub_80E2C60: @ 80E2C60
pop {r0}
bx r0
.align 2, 0
-_080E2C88: .4byte gUnknown_03004B00
+_080E2C88: .4byte gBattleAnimArgs
thumb_func_end sub_80E2C60
thumb_func_start sub_80E2C8C
@@ -50479,7 +50479,7 @@ sub_80E2C8C: @ 80E2C8C
strh r1, [r2, 0x8]
lsrs r1, 16
strh r1, [r2, 0xA]
- ldr r3, _080E2CC8 @ =gUnknown_03004B00
+ ldr r3, _080E2CC8 @ =gBattleAnimArgs
ldrh r1, [r3, 0x2]
strh r1, [r2, 0xC]
ldrh r1, [r3, 0x4]
@@ -50497,7 +50497,7 @@ sub_80E2C8C: @ 80E2C8C
bx r0
.align 2, 0
_080E2CC4: .4byte gTasks
-_080E2CC8: .4byte gUnknown_03004B00
+_080E2CC8: .4byte gBattleAnimArgs
_080E2CCC: .4byte sub_80E2CD0
thumb_func_end sub_80E2C8C
@@ -50579,7 +50579,7 @@ _080E2D54:
b _080E2D6C
_080E2D5E:
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080E2D6C
_080E2D66:
mov r0, r8
@@ -50601,7 +50601,7 @@ sub_80E2D78: @ 80E2D78
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r4, _080E2DAC @ =gUnknown_03004B00
+ ldr r4, _080E2DAC @ =gBattleAnimArgs
ldrb r0, [r4]
ldrb r1, [r4, 0x2]
ldrb r2, [r4, 0x4]
@@ -50621,7 +50621,7 @@ sub_80E2D78: @ 80E2D78
pop {r0}
bx r0
.align 2, 0
-_080E2DAC: .4byte gUnknown_03004B00
+_080E2DAC: .4byte gBattleAnimArgs
_080E2DB0: .4byte gTasks
_080E2DB4: .4byte sub_80E2DB8
thumb_func_end sub_80E2D78
@@ -50638,7 +50638,7 @@ sub_80E2DB8: @ 80E2DB8
cmp r0, 0
bne _080E2DD0
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E2DD0:
pop {r0}
bx r0
@@ -50655,7 +50655,7 @@ sub_80E2DD8: @ 80E2DD8
lsls r1, 3
ldr r0, _080E2E04 @ =gTasks
adds r1, r0
- ldr r2, _080E2E08 @ =gUnknown_03004B00
+ ldr r2, _080E2E08 @ =gBattleAnimArgs
ldrh r0, [r2]
movs r3, 0
strh r0, [r1, 0x8]
@@ -50672,7 +50672,7 @@ sub_80E2DD8: @ 80E2DD8
bx lr
.align 2, 0
_080E2E04: .4byte gTasks
-_080E2E08: .4byte gUnknown_03004B00
+_080E2E08: .4byte gBattleAnimArgs
_080E2E0C: .4byte sub_80E2E10
thumb_func_end sub_80E2DD8
@@ -50781,7 +50781,7 @@ _080E2ED4:
cmp r0, 0
bne _080E2EE2
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E2EE2:
pop {r4-r6}
pop {r0}
@@ -50880,7 +50880,7 @@ sub_80E2F2C: @ 80E2F2C
movs r1, 0x20
orrs r0, r1
strb r0, [r4, 0x1]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E2FAC
@@ -50892,23 +50892,23 @@ sub_80E2F2C: @ 80E2F2C
orrs r1, r0
strb r1, [r4]
_080E2FAC:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080E3028
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E3028
- ldr r5, _080E305C @ =gUnknown_0202F7C8
+ ldr r5, _080E305C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r5]
- bl battle_get_per_side_status
+ bl GetBankIdentity
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _080E2FDC
ldrb r0, [r5]
- bl battle_get_per_side_status
+ bl GetBankIdentity
lsls r0, 24
cmp r0, 0
bne _080E3028
@@ -50922,7 +50922,7 @@ _080E2FDC:
cmp r0, 0x1
bne _080E3028
ldr r3, _080E3060 @ =gSprites
- ldr r1, _080E3064 @ =gUnknown_02024BE0
+ ldr r1, _080E3064 @ =gObjectBankIDs
ldrb r0, [r5]
eors r0, r6
adds r0, r1
@@ -50951,7 +50951,7 @@ _080E2FDC:
strb r0, [r4]
movs r7, 0x1
_080E3028:
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080E306C
@@ -50968,18 +50968,18 @@ _080E304C: .4byte REG_BLDCNT
_080E3050: .4byte 0x00003f42
_080E3054: .4byte 0x00000c08
_080E3058: .4byte REG_BG1CNT
-_080E305C: .4byte gUnknown_0202F7C8
+_080E305C: .4byte gBattleAnimPlayerMonIndex
_080E3060: .4byte gSprites
-_080E3064: .4byte gUnknown_02024BE0
+_080E3064: .4byte gObjectBankIDs
_080E3068: .4byte 0x02019348
_080E306C:
- ldr r4, _080E308C @ =gUnknown_0202F7C8
+ ldr r4, _080E308C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080E3098
- ldr r1, _080E3090 @ =gUnknown_02024A6A
+ ldr r1, _080E3090 @ =gBattlePartyID
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -50989,11 +50989,11 @@ _080E306C:
ldr r1, _080E3094 @ =gEnemyParty
b _080E30A8
.align 2, 0
-_080E308C: .4byte gUnknown_0202F7C8
-_080E3090: .4byte gUnknown_02024A6A
+_080E308C: .4byte gBattleAnimPlayerMonIndex
+_080E3090: .4byte gBattlePartyID
_080E3094: .4byte gEnemyParty
_080E3098:
- ldr r1, _080E3160 @ =gUnknown_02024A6A
+ ldr r1, _080E3160 @ =gBattlePartyID
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -51012,7 +51012,7 @@ _080E30B4:
bl obj_id_for_side_relative_to_move
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080E3168 @ =gUnknown_0202F7C8
+ ldr r0, _080E3168 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
adds r1, r5, 0
adds r2, r4, 0
@@ -51033,7 +51033,7 @@ _080E30B4:
ldr r0, [r2, 0x8]
ldr r0, _080E3174 @ =gUnknown_08D20A30
bl LZDecompressVram
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080E3106
@@ -51087,9 +51087,9 @@ _080E3106:
pop {r0}
bx r0
.align 2, 0
-_080E3160: .4byte gUnknown_02024A6A
+_080E3160: .4byte gBattlePartyID
_080E3164: .4byte gPlayerParty
-_080E3168: .4byte gUnknown_0202F7C8
+_080E3168: .4byte gBattleAnimPlayerMonIndex
_080E316C: .4byte 0x040000d4
_080E3170: .4byte 0x85000400
_080E3174: .4byte gUnknown_08D20A30
@@ -51150,7 +51150,7 @@ sub_80E3194: @ 80E3194
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E3208
@@ -51199,8 +51199,8 @@ _080E3208:
ldrsh r0, [r4, r3]
cmp r0, 0x1
bne _080E3288
- ldr r2, _080E32D8 @ =gUnknown_02024BE0
- ldr r0, _080E32DC @ =gUnknown_0202F7C8
+ ldr r2, _080E32D8 @ =gObjectBankIDs
+ ldr r0, _080E32DC @ =gBattleAnimPlayerMonIndex
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -51232,7 +51232,7 @@ _080E3288:
movs r0, 0
strh r0, [r7]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E329E:
add sp, 0x10
pop {r3}
@@ -51252,8 +51252,8 @@ _080E32C8: .4byte REG_BLDCNT
_080E32CC: .4byte gSprites
_080E32D0: .4byte 0x040000d4
_080E32D4: .4byte 0x85000200
-_080E32D8: .4byte gUnknown_02024BE0
-_080E32DC: .4byte gUnknown_0202F7C8
+_080E32D8: .4byte gObjectBankIDs
+_080E32DC: .4byte gBattleAnimPlayerMonIndex
thumb_func_end sub_80E3194
thumb_func_start sub_80E32E0
@@ -51274,7 +51274,7 @@ sub_80E32E0: @ 80E32E0
mov r7, r12
adds r7, 0x8
adds r5, r1, 0
- ldr r6, _080E3334 @ =gUnknown_03004B00
+ ldr r6, _080E3334 @ =gBattleAnimArgs
_080E3302:
lsls r0, r2, 1
adds r1, r0, r4
@@ -51300,7 +51300,7 @@ _080E3302:
.align 2, 0
_080E332C: .4byte gTasks
_080E3330: .4byte sub_80E3338
-_080E3334: .4byte gUnknown_03004B00
+_080E3334: .4byte gBattleAnimArgs
thumb_func_end sub_80E32E0
thumb_func_start sub_80E3338
@@ -51344,13 +51344,13 @@ _080E336C:
ldrsh r0, [r7, r1]
cmp r0, 0
bne _080E3390
- ldr r0, _080E338C @ =gUnknown_0202F7C8
+ ldr r0, _080E338C @ =gBattleAnimPlayerMonIndex
b _080E3392
.align 2, 0
_080E3388: .4byte gTasks
-_080E338C: .4byte gUnknown_0202F7C8
+_080E338C: .4byte gBattleAnimPlayerMonIndex
_080E3390:
- ldr r0, _080E34B4 @ =gUnknown_0202F7C9
+ ldr r0, _080E34B4 @ =gBattleAnimEnemyMonIndex
_080E3392:
ldrb r5, [r0]
movs r0, 0x2
@@ -51358,7 +51358,7 @@ _080E3392:
mov r2, r8
eors r2, r0
mov r8, r2
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E33BC
@@ -51420,7 +51420,7 @@ _080E33C0:
movs r1, 0x20
orrs r0, r1
strb r0, [r4, 0x1]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E3432
@@ -51432,7 +51432,7 @@ _080E33C0:
orrs r1, r0
strb r1, [r4]
_080E3432:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080E34A4
@@ -51441,13 +51441,13 @@ _080E3432:
cmp r0, 0
bne _080E34A4
adds r0, r5, 0
- bl battle_get_per_side_status
+ bl GetBankIdentity
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _080E345E
adds r0, r5, 0
- bl battle_get_per_side_status
+ bl GetBankIdentity
lsls r0, 24
cmp r0, 0
bne _080E34A4
@@ -51459,7 +51459,7 @@ _080E345E:
cmp r0, 0x1
bne _080E34A4
ldr r1, _080E34D8 @ =gSprites
- ldr r0, _080E34DC @ =gUnknown_02024BE0
+ ldr r0, _080E34DC @ =gObjectBankIDs
add r0, r8
ldrb r0, [r0]
lsls r2, r0, 4
@@ -51487,7 +51487,7 @@ _080E345E:
movs r2, 0x1
str r2, [sp, 0x20]
_080E34A4:
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080E34E4
@@ -51495,7 +51495,7 @@ _080E34A4:
ldrh r4, [r0]
b _080E3522
.align 2, 0
-_080E34B4: .4byte gUnknown_0202F7C9
+_080E34B4: .4byte gBattleAnimEnemyMonIndex
_080E34B8: .4byte gUnknown_030042C4
_080E34BC: .4byte gUnknown_03004240
_080E34C0: .4byte REG_WININ
@@ -51505,15 +51505,15 @@ _080E34CC: .4byte REG_BLDCNT
_080E34D0: .4byte 0x00003f42
_080E34D4: .4byte REG_BG1CNT
_080E34D8: .4byte gSprites
-_080E34DC: .4byte gUnknown_02024BE0
+_080E34DC: .4byte gObjectBankIDs
_080E34E0: .4byte 0x02019348
_080E34E4:
adds r0, r5, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080E3508
- ldr r1, _080E3500 @ =gUnknown_02024A6A
+ ldr r1, _080E3500 @ =gBattlePartyID
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
@@ -51522,10 +51522,10 @@ _080E34E4:
ldr r1, _080E3504 @ =gEnemyParty
b _080E3516
.align 2, 0
-_080E3500: .4byte gUnknown_02024A6A
+_080E3500: .4byte gBattlePartyID
_080E3504: .4byte gEnemyParty
_080E3508:
- ldr r1, _080E3568 @ =gUnknown_02024A6A
+ ldr r1, _080E3568 @ =gBattlePartyID
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
@@ -51539,7 +51539,7 @@ _080E3516:
lsls r0, 16
lsrs r4, r0, 16
_080E3522:
- ldr r6, _080E3570 @ =gUnknown_02024BE0
+ ldr r6, _080E3570 @ =gObjectBankIDs
adds r0, r5, r6
ldrb r1, [r0]
adds r0, r5, 0
@@ -51572,16 +51572,16 @@ _080E3550:
bl LZDecompressVram
b _080E3580
.align 2, 0
-_080E3568: .4byte gUnknown_02024A6A
+_080E3568: .4byte gBattlePartyID
_080E356C: .4byte gPlayerParty
-_080E3570: .4byte gUnknown_02024BE0
+_080E3570: .4byte gObjectBankIDs
_080E3574: .4byte gBattleStatMask1_Tilemap
_080E3578:
ldr r0, _080E35B0 @ =gBattleStatMask2_Tilemap
ldr r1, [sp, 0x4]
bl LZDecompressVram
_080E3580:
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080E3598
@@ -51734,7 +51734,7 @@ _080E3692:
mov r3, sp
ldrh r3, [r3, 0x20]
strh r3, [r1, 0x14]
- ldr r0, _080E36D8 @ =gUnknown_02024BE0
+ ldr r0, _080E36D8 @ =gObjectBankIDs
add r0, r8
ldrb r0, [r0]
strh r0, [r1, 0x16]
@@ -51754,7 +51754,7 @@ _080E3692:
bl PlaySE12WithPanning
b _080E36F4
.align 2, 0
-_080E36D8: .4byte gUnknown_02024BE0
+_080E36D8: .4byte gObjectBankIDs
_080E36DC: .4byte sub_80E3704
_080E36E0:
movs r0, 0x40
@@ -51884,7 +51884,7 @@ _080E378E:
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E37E8
@@ -51956,7 +51956,7 @@ _080E3854:
ands r0, r1
strb r0, [r2, 0x1]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E3866:
pop {r4-r7}
pop {r0}
@@ -52123,7 +52123,7 @@ _080E39A4:
_080E39AC: .4byte 0x0000ffff
_080E39B0:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E39B6:
pop {r4-r6}
pop {r0}
@@ -52181,7 +52181,7 @@ sub_80E3A08: @ 80E3A08
lsrs r6, r0, 24
movs r4, 0
movs r2, 0
- ldr r0, _080E3A50 @ =gUnknown_0202F7C8
+ ldr r0, _080E3A50 @ =gBattleAnimPlayerMonIndex
ldrb r3, [r0]
movs r5, 0x1
_080E3A18:
@@ -52197,7 +52197,7 @@ _080E3A26:
cmp r2, 0x3
bls _080E3A18
movs r2, 0x5
- ldr r0, _080E3A54 @ =gUnknown_03004B00
+ ldr r0, _080E3A54 @ =gBattleAnimArgs
adds r1, r0, 0
adds r1, 0x8
_080E3A34:
@@ -52214,8 +52214,8 @@ _080E3A34:
pop {r0}
bx r0
.align 2, 0
-_080E3A50: .4byte gUnknown_0202F7C8
-_080E3A54: .4byte gUnknown_03004B00
+_080E3A50: .4byte gBattleAnimPlayerMonIndex
+_080E3A54: .4byte gBattleAnimArgs
thumb_func_end sub_80E3A08
thumb_func_start sub_80E3A58
@@ -52230,14 +52230,14 @@ sub_80E3A58: @ 80E3A58
bl CreateTask
lsls r0, 24
lsrs r5, r0, 24
- ldr r4, _080E3AC4 @ =gUnknown_03004B00
+ ldr r4, _080E3AC4 @ =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0
beq _080E3A94
- ldr r0, _080E3AC8 @ =gUnknown_0202F7C8
+ ldr r0, _080E3AC8 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080E3A94
@@ -52253,7 +52253,7 @@ _080E3A94:
adds r1, r5
lsls r1, 3
adds r1, r0
- ldr r2, _080E3AC4 @ =gUnknown_03004B00
+ ldr r2, _080E3AC4 @ =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0xA]
ldrh r0, [r2, 0x2]
@@ -52264,14 +52264,14 @@ _080E3A94:
adds r0, 0x1
strh r0, [r1, 0x8]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080E3AC0: .4byte sub_80E3AD0
-_080E3AC4: .4byte gUnknown_03004B00
-_080E3AC8: .4byte gUnknown_0202F7C8
+_080E3AC4: .4byte gBattleAnimArgs
+_080E3AC8: .4byte gBattleAnimPlayerMonIndex
_080E3ACC: .4byte gTasks
thumb_func_end sub_80E3A58
@@ -52312,7 +52312,7 @@ sub_80E3AD0: @ 80E3AD0
strh r3, [r1, 0x1C]
ands r2, r0
strh r2, [r1, 0x1E]
- ldr r0, _080E3B48 @ =gUnknown_03004B00
+ ldr r0, _080E3B48 @ =gBattleAnimArgs
movs r3, 0xE
ldrsh r2, [r0, r3]
movs r7, 0xE
@@ -52334,7 +52334,7 @@ _080E3B36:
_080E3B3C: .4byte gTasks
_080E3B40: .4byte gUnknown_030041B0
_080E3B44: .4byte gUnknown_030041B8
-_080E3B48: .4byte gUnknown_03004B00
+_080E3B48: .4byte gBattleAnimArgs
thumb_func_end sub_80E3AD0
thumb_func_start sub_80E3B4C
@@ -52343,21 +52343,21 @@ sub_80E3B4C: @ 80E3B4C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080E3B70 @ =gUnknown_0202F7C8
+ ldr r0, _080E3B70 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
- ldr r1, _080E3B74 @ =gUnknown_03004B00
+ bl GetBankSide
+ ldr r1, _080E3B74 @ =gBattleAnimArgs
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0xE]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080E3B70: .4byte gUnknown_0202F7C8
-_080E3B74: .4byte gUnknown_03004B00
+_080E3B70: .4byte gBattleAnimPlayerMonIndex
+_080E3B74: .4byte gBattleAnimArgs
thumb_func_end sub_80E3B4C
thumb_func_start sub_80E3B78
@@ -52366,21 +52366,21 @@ sub_80E3B78: @ 80E3B78
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080E3B9C @ =gUnknown_0202F7C9
+ ldr r0, _080E3B9C @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
- ldr r1, _080E3BA0 @ =gUnknown_03004B00
+ bl GetBankSide
+ ldr r1, _080E3BA0 @ =gBattleAnimArgs
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0xE]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080E3B9C: .4byte gUnknown_0202F7C9
-_080E3BA0: .4byte gUnknown_03004B00
+_080E3B9C: .4byte gBattleAnimEnemyMonIndex
+_080E3BA0: .4byte gBattleAnimArgs
thumb_func_end sub_80E3B78
thumb_func_start sub_80E3BA4
@@ -52388,12 +52388,12 @@ sub_80E3BA4: @ 80E3BA4
push {r4,r5,lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r5, _080E3BD0 @ =gUnknown_03004B00
+ ldr r5, _080E3BD0 @ =gBattleAnimArgs
movs r4, 0
- ldr r0, _080E3BD4 @ =gUnknown_0202F7C8
+ ldr r0, _080E3BD4 @ =gBattleAnimPlayerMonIndex
ldrb r2, [r0]
movs r0, 0x2
- ldr r1, _080E3BD8 @ =gUnknown_0202F7C9
+ ldr r1, _080E3BD8 @ =gBattleAnimEnemyMonIndex
eors r0, r2
ldrb r1, [r1]
cmp r0, r1
@@ -52402,14 +52402,14 @@ sub_80E3BA4: @ 80E3BA4
_080E3BC0:
strh r4, [r5, 0xE]
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080E3BD0: .4byte gUnknown_03004B00
-_080E3BD4: .4byte gUnknown_0202F7C8
-_080E3BD8: .4byte gUnknown_0202F7C9
+_080E3BD0: .4byte gBattleAnimArgs
+_080E3BD4: .4byte gBattleAnimPlayerMonIndex
+_080E3BD8: .4byte gBattleAnimEnemyMonIndex
thumb_func_end sub_80E3BA4
thumb_func_start sub_80E3BDC
@@ -52420,7 +52420,7 @@ sub_80E3BDC: @ 80E3BDC
movs r4, 0
ldr r6, _080E3C3C @ =gSprites
_080E3BE6:
- ldr r0, _080E3C40 @ =gUnknown_0202F7C8
+ ldr r0, _080E3C40 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
cmp r4, r0
beq _080E3C24
@@ -52430,14 +52430,14 @@ _080E3BE6:
lsls r0, 24
cmp r0, 0
beq _080E3C24
- ldr r0, _080E3C44 @ =gUnknown_02024BE0
+ ldr r0, _080E3C44 @ =gObjectBankIDs
adds r0, r4, r0
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r6
- ldr r1, _080E3C48 @ =gUnknown_03004B00
+ ldr r1, _080E3C48 @ =gBattleAnimArgs
adds r2, 0x3E
movs r0, 0x1
ldrb r3, [r1]
@@ -52457,15 +52457,15 @@ _080E3C24:
cmp r4, 0x3
bls _080E3BE6
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080E3C3C: .4byte gSprites
-_080E3C40: .4byte gUnknown_0202F7C8
-_080E3C44: .4byte gUnknown_02024BE0
-_080E3C48: .4byte gUnknown_03004B00
+_080E3C40: .4byte gBattleAnimPlayerMonIndex
+_080E3C44: .4byte gObjectBankIDs
+_080E3C48: .4byte gBattleAnimArgs
thumb_func_end sub_80E3BDC
thumb_func_start sub_80E3C4C
@@ -52505,7 +52505,7 @@ sub_80E3C4C: @ 80E3C4C
movs r0, 0x2
adds r6, r7, 0
eors r6, r0
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E3CAE
@@ -52565,7 +52565,7 @@ _080E3CB2:
movs r1, 0x20
orrs r0, r1
strb r0, [r4, 0x1]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E3D22
@@ -52577,7 +52577,7 @@ _080E3CB2:
orrs r1, r0
strb r1, [r4]
_080E3D22:
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080E3D58
@@ -52596,11 +52596,11 @@ _080E3D50: .4byte REG_BG1CNT
_080E3D54: .4byte 0x02019348
_080E3D58:
adds r0, r7, 0
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _080E3D7C
- ldr r1, _080E3D74 @ =gUnknown_02024A6A
+ ldr r1, _080E3D74 @ =gBattlePartyID
lsls r0, r7, 1
adds r0, r1
ldrh r1, [r0]
@@ -52609,10 +52609,10 @@ _080E3D58:
ldr r1, _080E3D78 @ =gEnemyParty
b _080E3D8A
.align 2, 0
-_080E3D74: .4byte gUnknown_02024A6A
+_080E3D74: .4byte gBattlePartyID
_080E3D78: .4byte gEnemyParty
_080E3D7C:
- ldr r1, _080E3E48 @ =gUnknown_02024A6A
+ ldr r1, _080E3E48 @ =gBattlePartyID
lsls r0, r7, 1
adds r0, r1
ldrh r1, [r0]
@@ -52626,7 +52626,7 @@ _080E3D8A:
lsls r0, 16
lsrs r4, r0, 16
_080E3D96:
- ldr r5, _080E3E50 @ =gUnknown_02024BE0
+ ldr r5, _080E3E50 @ =gObjectBankIDs
adds r0, r7, r5
ldrb r1, [r0]
adds r0, r7, 0
@@ -52651,7 +52651,7 @@ _080E3DC0:
ldr r1, [sp, 0x4]
ldr r0, [sp, 0x50]
bl LZDecompressVram
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080E3DE6
@@ -52710,9 +52710,9 @@ _080E3DE6:
pop {r0}
bx r0
.align 2, 0
-_080E3E48: .4byte gUnknown_02024A6A
+_080E3E48: .4byte gBattlePartyID
_080E3E4C: .4byte gPlayerParty
-_080E3E50: .4byte gUnknown_02024BE0
+_080E3E50: .4byte gObjectBankIDs
_080E3E54: .4byte gUnknown_030042C0
_080E3E58: .4byte gUnknown_030041B4
_080E3E5C: .4byte gTasks
@@ -52865,7 +52865,7 @@ _080E3F32:
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
bne _080E3F90
@@ -52914,7 +52914,7 @@ _080E3FD0:
ands r0, r1
strb r0, [r2, 0x1]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080E3FE2:
pop {r4-r7}
pop {r0}
@@ -52935,16 +52935,16 @@ sub_80E4008: @ 80E4008
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080E4020 @ =gUnknown_03004B00
- ldr r1, _080E4024 @ =gUnknown_0300428C
+ ldr r2, _080E4020 @ =gBattleAnimArgs
+ ldr r1, _080E4024 @ =gBattleTerrain
ldrb r1, [r1]
strh r1, [r2]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
-_080E4020: .4byte gUnknown_03004B00
-_080E4024: .4byte gUnknown_0300428C
+_080E4020: .4byte gBattleAnimArgs
+_080E4024: .4byte gBattleTerrain
thumb_func_end sub_80E4008
thumb_func_start sub_80E4028
@@ -52954,7 +52954,7 @@ sub_80E4028: @ 80E4028
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
- ldr r0, _080E4068 @ =gUnknown_03004B00
+ ldr r0, _080E4068 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -52982,36 +52982,36 @@ _080E405A:
beq _080E405A
b _080E4084
.align 2, 0
-_080E4068: .4byte gUnknown_03004B00
+_080E4068: .4byte gBattleAnimArgs
_080E406C:
cmp r0, 0x1
bne _080E4078
- ldr r0, _080E4074 @ =gUnknown_0202F7C8
+ ldr r0, _080E4074 @ =gBattleAnimPlayerMonIndex
b _080E407E
.align 2, 0
-_080E4074: .4byte gUnknown_0202F7C8
+_080E4074: .4byte gBattleAnimPlayerMonIndex
_080E4078:
cmp r0, 0x2
bne _080E4084
- ldr r0, _080E409C @ =gUnknown_0202F7C9
+ ldr r0, _080E409C @ =gBattleAnimEnemyMonIndex
_080E407E:
ldrb r0, [r0]
adds r4, r0, 0
adds r4, 0x10
_080E4084:
- ldr r0, _080E40A0 @ =gUnknown_03004B00
+ ldr r0, _080E40A0 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r0, r1]
lsls r5, r0, 5
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080E40A8
ldr r0, _080E40A4 @ =0x02014800
b _080E40AA
.align 2, 0
-_080E409C: .4byte gUnknown_0202F7C9
-_080E40A0: .4byte gUnknown_03004B00
+_080E409C: .4byte gBattleAnimEnemyMonIndex
+_080E40A0: .4byte gBattleAnimArgs
_080E40A4: .4byte 0x02014800
_080E40A8:
ldr r0, _080E40C8 @ =0x02018000
@@ -53024,7 +53024,7 @@ _080E40AA:
movs r2, 0x20
bl memcpy
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -53041,7 +53041,7 @@ sub_80E40D0: @ 80E40D0
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
- ldr r0, _080E4110 @ =gUnknown_03004B00
+ ldr r0, _080E4110 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -53069,18 +53069,18 @@ _080E4102:
beq _080E4102
b _080E412C
.align 2, 0
-_080E4110: .4byte gUnknown_03004B00
+_080E4110: .4byte gBattleAnimArgs
_080E4114:
cmp r0, 0x1
bne _080E4120
- ldr r0, _080E411C @ =gUnknown_0202F7C8
+ ldr r0, _080E411C @ =gBattleAnimPlayerMonIndex
b _080E4126
.align 2, 0
-_080E411C: .4byte gUnknown_0202F7C8
+_080E411C: .4byte gBattleAnimPlayerMonIndex
_080E4120:
cmp r0, 0x2
bne _080E412C
- ldr r0, _080E4148 @ =gUnknown_0202F7C9
+ ldr r0, _080E4148 @ =gBattleAnimEnemyMonIndex
_080E4126:
ldrb r0, [r0]
adds r4, r0, 0
@@ -53089,20 +53089,20 @@ _080E412C:
lsls r1, r4, 5
ldr r0, _080E414C @ =gPlttBufferUnfaded
adds r5, r1, r0
- ldr r0, _080E4150 @ =gUnknown_03004B00
+ ldr r0, _080E4150 @ =gBattleAnimArgs
movs r1, 0x2
ldrsh r0, [r0, r1]
lsls r4, r0, 5
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080E4158
ldr r0, _080E4154 @ =0x02014800
b _080E415A
.align 2, 0
-_080E4148: .4byte gUnknown_0202F7C9
+_080E4148: .4byte gBattleAnimEnemyMonIndex
_080E414C: .4byte gPlttBufferUnfaded
-_080E4150: .4byte gUnknown_03004B00
+_080E4150: .4byte gBattleAnimArgs
_080E4154: .4byte 0x02014800
_080E4158:
ldr r0, _080E4174 @ =0x02018000
@@ -53112,7 +53112,7 @@ _080E415A:
movs r2, 0x20
bl memcpy
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -53128,7 +53128,7 @@ sub_80E4178: @ 80E4178
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
- ldr r0, _080E41B8 @ =gUnknown_03004B00
+ ldr r0, _080E41B8 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
@@ -53156,18 +53156,18 @@ _080E41AA:
beq _080E41AA
b _080E41D4
.align 2, 0
-_080E41B8: .4byte gUnknown_03004B00
+_080E41B8: .4byte gBattleAnimArgs
_080E41BC:
cmp r0, 0x1
bne _080E41C8
- ldr r0, _080E41C4 @ =gUnknown_0202F7C8
+ ldr r0, _080E41C4 @ =gBattleAnimPlayerMonIndex
b _080E41CE
.align 2, 0
-_080E41C4: .4byte gUnknown_0202F7C8
+_080E41C4: .4byte gBattleAnimPlayerMonIndex
_080E41C8:
cmp r0, 0x2
bne _080E41D4
- ldr r0, _080E41F4 @ =gUnknown_0202F7C9
+ ldr r0, _080E41F4 @ =gBattleAnimEnemyMonIndex
_080E41CE:
ldrb r0, [r0]
adds r4, r0, 0
@@ -53181,13 +53181,13 @@ _080E41D4:
movs r2, 0x20
bl memcpy
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080E41F4: .4byte gUnknown_0202F7C9
+_080E41F4: .4byte gBattleAnimEnemyMonIndex
_080E41F8: .4byte gPlttBufferUnfaded
_080E41FC: .4byte gPlttBufferFaded
thumb_func_end sub_80E4178
@@ -53197,28 +53197,28 @@ sub_80E4200: @ 80E4200
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _080E4220
- ldr r1, _080E421C @ =gUnknown_03004B00
+ ldr r1, _080E421C @ =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
b _080E4224
.align 2, 0
-_080E421C: .4byte gUnknown_03004B00
+_080E421C: .4byte gBattleAnimArgs
_080E4220:
- ldr r0, _080E4230 @ =gUnknown_03004B00
+ ldr r0, _080E4230 @ =gBattleAnimArgs
strh r1, [r0, 0xE]
_080E4224:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080E4230: .4byte gUnknown_03004B00
+_080E4230: .4byte gBattleAnimArgs
thumb_func_end sub_80E4200
thumb_func_start sub_80E4234
@@ -53226,22 +53226,22 @@ sub_80E4234: @ 80E4234
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080E4254 @ =gUnknown_0202F7C8
- ldr r1, _080E4258 @ =gUnknown_02024C08
+ ldr r2, _080E4254 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _080E4258 @ =gBankTarget
ldrb r1, [r1]
strb r1, [r2]
- ldr r2, _080E425C @ =gUnknown_0202F7C9
- ldr r1, _080E4260 @ =gUnknown_02024C0A
+ ldr r2, _080E425C @ =gBattleAnimEnemyMonIndex
+ ldr r1, _080E4260 @ =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
-_080E4254: .4byte gUnknown_0202F7C8
-_080E4258: .4byte gUnknown_02024C08
-_080E425C: .4byte gUnknown_0202F7C9
-_080E4260: .4byte gUnknown_02024C0A
+_080E4254: .4byte gBattleAnimPlayerMonIndex
+_080E4258: .4byte gBankTarget
+_080E425C: .4byte gBattleAnimEnemyMonIndex
+_080E4260: .4byte gEffectBank
thumb_func_end sub_80E4234
thumb_func_start sub_80E4264
@@ -53249,36 +53249,36 @@ sub_80E4264: @ 80E4264
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080E428C @ =gUnknown_0202F7C8
+ ldr r0, _080E428C @ =gBattleAnimPlayerMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
adds r4, r0, 0
- ldr r0, _080E4290 @ =gUnknown_0202F7C9
+ ldr r0, _080E4290 @ =gBattleAnimEnemyMonIndex
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _080E4298
- ldr r1, _080E4294 @ =gUnknown_03004B00
+ ldr r1, _080E4294 @ =gBattleAnimArgs
movs r0, 0x1
b _080E429C
.align 2, 0
-_080E428C: .4byte gUnknown_0202F7C8
-_080E4290: .4byte gUnknown_0202F7C9
-_080E4294: .4byte gUnknown_03004B00
+_080E428C: .4byte gBattleAnimPlayerMonIndex
+_080E4290: .4byte gBattleAnimEnemyMonIndex
+_080E4294: .4byte gBattleAnimArgs
_080E4298:
- ldr r1, _080E42AC @ =gUnknown_03004B00
+ ldr r1, _080E42AC @ =gBattleAnimArgs
movs r0, 0
_080E429C:
strh r0, [r1, 0xE]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080E42AC: .4byte gUnknown_03004B00
+_080E42AC: .4byte gBattleAnimArgs
thumb_func_end sub_80E4264
thumb_func_start sub_80E42B0
@@ -53286,16 +53286,16 @@ sub_80E42B0: @ 80E42B0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080E42C8 @ =gUnknown_0202F7C9
- ldr r1, _080E42CC @ =gUnknown_02024C08
+ ldr r2, _080E42C8 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _080E42CC @ =gBankTarget
ldrb r1, [r1]
strb r1, [r2]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
-_080E42C8: .4byte gUnknown_0202F7C9
-_080E42CC: .4byte gUnknown_02024C08
+_080E42C8: .4byte gBattleAnimEnemyMonIndex
+_080E42CC: .4byte gBankTarget
thumb_func_end sub_80E42B0
thumb_func_start sub_80E42D0
@@ -53303,22 +53303,22 @@ sub_80E42D0: @ 80E42D0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080E42F0 @ =gUnknown_0202F7C8
- ldr r1, _080E42F4 @ =gUnknown_02024C07
+ ldr r2, _080E42F0 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _080E42F4 @ =gBankAttacker
ldrb r1, [r1]
strb r1, [r2]
- ldr r2, _080E42F8 @ =gUnknown_0202F7C9
- ldr r1, _080E42FC @ =gUnknown_02024C0A
+ ldr r2, _080E42F8 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _080E42FC @ =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
-_080E42F0: .4byte gUnknown_0202F7C8
-_080E42F4: .4byte gUnknown_02024C07
-_080E42F8: .4byte gUnknown_0202F7C9
-_080E42FC: .4byte gUnknown_02024C0A
+_080E42F0: .4byte gBattleAnimPlayerMonIndex
+_080E42F4: .4byte gBankAttacker
+_080E42F8: .4byte gBattleAnimEnemyMonIndex
+_080E42FC: .4byte gEffectBank
thumb_func_end sub_80E42D0
thumb_func_start sub_80E4300
@@ -53326,12 +53326,12 @@ sub_80E4300: @ 80E4300
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_8076BE0
+ bl IsContest
lsls r0, 24
cmp r0, 0
beq _080E4318
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080E434E
_080E4318:
ldr r0, _080E4354 @ =gTasks
@@ -53339,7 +53339,7 @@ _080E4318:
adds r3, r4
lsls r3, 3
adds r3, r0
- ldr r1, _080E4358 @ =gUnknown_0202F7C8
+ ldr r1, _080E4358 @ =gBattleAnimPlayerMonIndex
ldrb r0, [r1]
lsls r0, 2
ldr r2, _080E435C @ =0x02017800
@@ -53357,7 +53357,7 @@ _080E4318:
strb r0, [r1]
ldr r0, _080E4360 @ =sub_80E4368
str r0, [r3]
- ldr r1, _080E4364 @ =gUnknown_0202F7B2
+ ldr r1, _080E4364 @ =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
@@ -53367,10 +53367,10 @@ _080E434E:
bx r0
.align 2, 0
_080E4354: .4byte gTasks
-_080E4358: .4byte gUnknown_0202F7C8
+_080E4358: .4byte gBattleAnimPlayerMonIndex
_080E435C: .4byte 0x02017800
_080E4360: .4byte sub_80E4368
-_080E4364: .4byte gUnknown_0202F7B2
+_080E4364: .4byte gAnimVisualTaskCount
thumb_func_end sub_80E4300
thumb_func_start sub_80E4368
@@ -53378,14 +53378,14 @@ sub_80E4368: @ 80E4368
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080E43B0 @ =gUnknown_03004B00
+ ldr r0, _080E43B0 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x80
lsls r0, 5
cmp r1, r0
bne _080E43A8
- ldr r0, _080E43B4 @ =gUnknown_0202F7C8
+ ldr r0, _080E43B4 @ =gBattleAnimPlayerMonIndex
ldrb r3, [r0]
lsls r3, 2
ldr r0, _080E43B8 @ =0x02017800
@@ -53411,8 +53411,8 @@ _080E43A8:
pop {r0}
bx r0
.align 2, 0
-_080E43B0: .4byte gUnknown_03004B00
-_080E43B4: .4byte gUnknown_0202F7C8
+_080E43B0: .4byte gBattleAnimArgs
+_080E43B4: .4byte gBattleAnimPlayerMonIndex
_080E43B8: .4byte 0x02017800
_080E43BC: .4byte gTasks
thumb_func_end sub_80E4368
@@ -53422,7 +53422,7 @@ sub_80E43C0: @ 80E43C0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080E43D8 @ =gUnknown_020239F8
+ ldr r0, _080E43D8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -53431,7 +53431,7 @@ sub_80E43C0: @ 80E43C0
ldr r0, _080E43DC @ =sub_80E4C34
b _080E4408
.align 2, 0
-_080E43D8: .4byte gUnknown_020239F8
+_080E43D8: .4byte gBattleTypeFlags
_080E43DC: .4byte sub_80E4C34
_080E43E0:
movs r0, 0x80
@@ -53560,7 +53560,7 @@ _080E44D0:
.4byte _080E4588
.4byte _080E46B8
_080E44E4:
- ldr r0, _080E44FC @ =gUnknown_020239F8
+ ldr r0, _080E44FC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -53573,7 +53573,7 @@ _080E44E4:
movs r1, 0x10
b _080E450A
.align 2, 0
-_080E44FC: .4byte gUnknown_020239F8
+_080E44FC: .4byte gBattleTypeFlags
_080E4500:
lsls r0, r4, 2
adds r0, r4
@@ -53929,7 +53929,7 @@ _080E47B0:
adds r2, r0, r1
movs r3, 0x10
strh r3, [r2, 0x10]
- ldr r0, _080E47D0 @ =gUnknown_020239F8
+ ldr r0, _080E47D0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -53939,7 +53939,7 @@ _080E47B0:
b _080E47D8
.align 2, 0
_080E47CC: .4byte gTasks
-_080E47D0: .4byte gUnknown_020239F8
+_080E47D0: .4byte gBattleTypeFlags
_080E47D4:
movs r0, 0x1
strh r0, [r2, 0xC]
@@ -54246,7 +54246,7 @@ _080E4A14:
lsls r0, 3
adds r3, r0, r1
strh r2, [r3, 0x10]
- ldr r0, _080E4A5C @ =gUnknown_020239F8
+ ldr r0, _080E4A5C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -54260,7 +54260,7 @@ _080E4A4C: .4byte 0x00001842
_080E4A50: .4byte REG_BLDALPHA
_080E4A54: .4byte 0x00000808
_080E4A58: .4byte gTasks
-_080E4A5C: .4byte gUnknown_020239F8
+_080E4A5C: .4byte gBattleTypeFlags
_080E4A60:
movs r0, 0x1
_080E4A62:
@@ -54884,14 +54884,14 @@ sub_80E4EF8: @ 80E4EF8
lsls r5, 24
lsrs r5, 24
adds r0, r4, 0
- bl battle_get_side_with_given_state
+ bl GetBankByPlayerAI
lsls r0, 24
lsrs r0, 24
ldr r2, _080E4FCC @ =0x040000d4
ldr r1, _080E4FD0 @ =gUnknown_081FAF4C
lsls r4, 2
adds r4, r1
- ldr r1, _080E4FD4 @ =gUnknown_02024E84
+ ldr r1, _080E4FD4 @ =gBattleMonForms
adds r0, r1
ldrb r1, [r0]
lsls r1, 11
@@ -54962,7 +54962,7 @@ _080E4FBC:
.align 2, 0
_080E4FCC: .4byte 0x040000d4
_080E4FD0: .4byte gUnknown_081FAF4C
-_080E4FD4: .4byte gUnknown_02024E84
+_080E4FD4: .4byte gBattleMonForms
_080E4FD8: .4byte 0x80000400
thumb_func_end sub_80E4EF8
diff --git a/asm/battle_anim_81258BC.s b/asm/battle_anim_81258BC.s
new file mode 100644
index 000000000..f2f127690
--- /dev/null
+++ b/asm/battle_anim_81258BC.s
@@ -0,0 +1,2125 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_812AECC
+unref_sub_812AECC: @ 812AECC
+ push {lr}
+ bl sub_812613C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _0812AEEA
+ cmp r0, 0x1
+ ble _0812AF08
+ cmp r1, 0x2
+ beq _0812AEF4
+ cmp r1, 0x3
+ beq _0812AEFA
+ b _0812AF08
+_0812AEEA:
+ movs r0, 0x16
+ bl PlaySE
+ movs r0, 0x1
+ b _0812AF0A
+_0812AEF4:
+ bl sub_812AF10
+ b _0812AF08
+_0812AEFA:
+ movs r0, 0x16
+ bl PlaySE
+ bl sub_812AF10
+ movs r0, 0x1
+ b _0812AF0A
+_0812AF08:
+ movs r0, 0
+_0812AF0A:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_812AECC
+
+ thumb_func_start sub_812AF10
+sub_812AF10: @ 812AF10
+ push {lr}
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _0812AF2C @ =gStringVar4
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AF2C: .4byte gStringVar4
+ thumb_func_end sub_812AF10
+
+ thumb_func_start sub_812AF30
+sub_812AF30: @ 812AF30
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0812AF8C @ =gTasks
+ lsls r6, r0, 2
+ adds r6, r0
+ lsls r6, 3
+ adds r6, r1
+ ldr r1, _0812AF90 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r6, 0x8]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r6, 0xA]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r5, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl sub_807712C
+ strh r4, [r6, 0xC]
+ strh r5, [r6, 0xE]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r6, 0x10]
+ movs r0, 0xA
+ strh r0, [r6, 0x1C]
+ ldr r0, _0812AF94 @ =sub_812AF98
+ str r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AF8C: .4byte gTasks
+_0812AF90: .4byte gBattleAnimArgs
+_0812AF94: .4byte sub_812AF98
+ thumb_func_end sub_812AF30
+
+ thumb_func_start sub_812AF98
+sub_812AF98: @ 812AF98
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812AFC8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r5, [r4, 0xC]
+ ldrb r6, [r4, 0x10]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ bne _0812AFD0
+ movs r0, 0x5
+ strh r0, [r4, 0x1C]
+ strh r1, [r4, 0x1E]
+ ldr r0, _0812AFCC @ =sub_812B004
+ str r0, [r4]
+ b _0812AFFE
+ .align 2, 0
+_0812AFC8: .4byte gTasks
+_0812AFCC: .4byte sub_812B004
+_0812AFD0:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _0812AFEA
+ strh r1, [r4, 0x1C]
+ ldrh r0, [r4, 0x8]
+ lsls r1, r5, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+_0812AFEA:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r0, r5, 16
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_8077104
+ strh r0, [r4, 0xC]
+_0812AFFE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AF98
+
+ thumb_func_start sub_812B004
+sub_812B004: @ 812B004
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0812B054 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _0812B04C
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ ldrh r0, [r4, 0xA]
+ lsls r1, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0812B04C
+ adds r0, r5, 0
+ bl DestroyAnimSoundTask
+_0812B04C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B054: .4byte gTasks
+ thumb_func_end sub_812B004
+
+ thumb_func_start sub_812B058
+sub_812B058: @ 812B058
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0812B0FC @ =gBattleAnimArgs
+ ldrh r1, [r0]
+ str r1, [sp]
+ ldrb r5, [r0, 0x4]
+ ldrb r6, [r0, 0x6]
+ ldrb r3, [r0, 0x8]
+ mov r10, r3
+ ldrb r7, [r0, 0xA]
+ ldrb r1, [r0, 0xC]
+ mov r9, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r5, 0
+ bl sub_8076F98
+ adds r5, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ lsls r6, 24
+ asrs r6, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_807712C
+ ldr r2, _0812B100 @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ mov r6, sp
+ ldrh r6, [r6]
+ strh r6, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0xE]
+ mov r0, r10
+ strh r0, [r1, 0x10]
+ strh r7, [r1, 0x12]
+ mov r3, r9
+ strh r3, [r1, 0x14]
+ strh r2, [r1, 0x1C]
+ strh r4, [r1, 0x1E]
+ strh r3, [r1, 0x20]
+ ldr r2, _0812B104 @ =sub_812B108
+ str r2, [r1]
+ mov r0, r8
+ bl _call_via_r2
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B0FC: .4byte gBattleAnimArgs
+_0812B100: .4byte gTasks
+_0812B104: .4byte sub_812B108
+ thumb_func_end sub_812B058
+
+ thumb_func_start sub_812B108
+sub_812B108: @ 812B108
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0812B14C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x20]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _0812B150
+ movs r0, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x8]
+ movs r1, 0x1E
+ ldrsb r1, [r4, r1]
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812B150
+ adds r0, r5, 0
+ bl DestroyAnimSoundTask
+ b _0812B182
+ .align 2, 0
+_0812B14C: .4byte gTasks
+_0812B150:
+ ldr r1, _0812B188 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _0812B182
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r4, 0xE]
+ ldrh r1, [r4, 0x1E]
+ adds r0, r1
+ strh r0, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ bl sub_8077104
+ strh r0, [r4, 0x1E]
+_0812B182:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B188: .4byte gTasks
+ thumb_func_end sub_812B108
+
+ thumb_func_start sub_812B18C
+sub_812B18C: @ 812B18C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812B1CC
+ ldr r0, _0812B1BC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812B1C4
+ ldr r0, _0812B1C0 @ =0x02019348
+ ldrh r4, [r0]
+ b _0812B272
+ .align 2, 0
+_0812B1BC: .4byte gBattleAnimArgs
+_0812B1C0: .4byte 0x02019348
+_0812B1C4:
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ b _0812B272
+_0812B1CC:
+ ldr r0, _0812B1E0 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _0812B1E8
+ ldr r0, _0812B1E4 @ =gBattleAnimPlayerMonIndex
+ ldrb r4, [r0]
+ b _0812B20E
+ .align 2, 0
+_0812B1E0: .4byte gBattleAnimArgs
+_0812B1E4: .4byte gBattleAnimPlayerMonIndex
+_0812B1E8:
+ cmp r1, 0x1
+ bne _0812B1F8
+ ldr r0, _0812B1F4 @ =gBattleAnimEnemyMonIndex
+ ldrb r4, [r0]
+ b _0812B20E
+ .align 2, 0
+_0812B1F4: .4byte gBattleAnimEnemyMonIndex
+_0812B1F8:
+ cmp r1, 0x2
+ bne _0812B204
+ ldr r0, _0812B200 @ =gBattleAnimPlayerMonIndex
+ b _0812B206
+ .align 2, 0
+_0812B200: .4byte gBattleAnimPlayerMonIndex
+_0812B204:
+ ldr r0, _0812B230 @ =gBattleAnimEnemyMonIndex
+_0812B206:
+ ldrb r1, [r0]
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r1
+_0812B20E:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _0812B21A
+ cmp r0, 0x3
+ bne _0812B234
+_0812B21A:
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812B234
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ b _0812B2B0
+ .align 2, 0
+_0812B230: .4byte gBattleAnimEnemyMonIndex
+_0812B234:
+ adds r0, r4, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812B258
+ ldr r1, _0812B250 @ =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812B254 @ =gEnemyParty
+ b _0812B266
+ .align 2, 0
+_0812B250: .4byte gBattlePartyID
+_0812B254: .4byte gEnemyParty
+_0812B258:
+ ldr r1, _0812B290 @ =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812B294 @ =gPlayerParty
+_0812B266:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0812B272:
+ cmp r4, 0
+ beq _0812B2AA
+ ldr r0, _0812B298 @ =gBattleAnimArgs
+ ldrh r2, [r0, 0x2]
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xFF
+ bne _0812B29C
+ lsls r1, r6, 24
+ asrs r1, 24
+ adds r0, r4, 0
+ bl PlayCry1
+ b _0812B2AA
+ .align 2, 0
+_0812B290: .4byte gBattlePartyID
+_0812B294: .4byte gPlayerParty
+_0812B298: .4byte gBattleAnimArgs
+_0812B29C:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ bl PlayCry3
+_0812B2AA:
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0812B2B0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B18C
+
+ thumb_func_start sub_812B2B8
+sub_812B2B8: @ 812B2B8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812B2DC
+ ldr r0, _0812B2D8 @ =0x02019348
+ b _0812B2E6
+ .align 2, 0
+_0812B2D8: .4byte 0x02019348
+_0812B2DC:
+ ldr r1, _0812B304 @ =gUnknown_0202F7CA
+ ldr r0, _0812B308 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+_0812B2E6:
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0812B2F6
+ lsls r1, r4, 24
+ asrs r1, 24
+ movs r2, 0x4
+ bl PlayCry3
+_0812B2F6:
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B304: .4byte gUnknown_0202F7CA
+_0812B308: .4byte gBattleAnimPlayerMonIndex
+ thumb_func_end sub_812B2B8
+
+ thumb_func_start sub_812B30C
+sub_812B30C: @ 812B30C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0812B33C @ =gBattleAnimArgs
+ ldrh r5, [r0]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl PlaySE1WithPanning
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B33C: .4byte gBattleAnimArgs
+ thumb_func_end sub_812B30C
+
+ thumb_func_start sub_812B340
+sub_812B340: @ 812B340
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0812B370 @ =gBattleAnimArgs
+ ldrh r5, [r0]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl PlaySE2WithPanning
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B370: .4byte gBattleAnimArgs
+ thumb_func_end sub_812B340
+
+ thumb_func_start sub_812B374
+sub_812B374: @ 812B374
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0812B3F8 @ =gBattleAnimArgs
+ ldrb r5, [r0, 0x2]
+ ldrb r6, [r0, 0x4]
+ ldrh r1, [r0, 0x6]
+ mov r9, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r5, 0
+ bl sub_8076F98
+ adds r5, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ lsls r6, 24
+ asrs r6, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_807712C
+ ldr r2, _0812B3FC @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0xE]
+ mov r0, r9
+ strh r0, [r1, 0x12]
+ strh r2, [r1, 0x1C]
+ strh r4, [r1, 0x1E]
+ ldr r2, _0812B400 @ =sub_812B404
+ str r2, [r1]
+ mov r0, r8
+ bl _call_via_r2
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B3F8: .4byte gBattleAnimArgs
+_0812B3FC: .4byte gTasks
+_0812B400: .4byte sub_812B404
+ thumb_func_end sub_812B374
+
+ thumb_func_start sub_812B404
+sub_812B404: @ 812B404
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812B45C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r2, [r4, 0xE]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _0812B43E
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ adds r0, r2, r1
+ strh r0, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ bl sub_8077104
+ strh r0, [r4, 0x1E]
+_0812B43E:
+ ldr r1, _0812B460 @ =gUnknown_0202F7D2
+ ldrh r0, [r4, 0x1E]
+ strb r0, [r1]
+ movs r3, 0x1E
+ ldrsh r1, [r4, r3]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _0812B456
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0812B456:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B45C: .4byte gTasks
+_0812B460: .4byte gUnknown_0202F7D2
+ thumb_func_end sub_812B404
+
+ thumb_func_start unref_sub_812B464
+unref_sub_812B464: @ 812B464
+ bx lr
+ thumb_func_end unref_sub_812B464
+
+ thumb_func_start SetBankFuncToSafariBufferRunCommand
+SetBankFuncToSafariBufferRunCommand: @ 812B468
+ ldr r1, _0812B478 @ =gBattleBankFunc
+ ldr r0, _0812B47C @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812B480 @ =SafariBufferRunCommand
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_0812B478: .4byte gBattleBankFunc
+_0812B47C: .4byte gActiveBank
+_0812B480: .4byte SafariBufferRunCommand
+ thumb_func_end SetBankFuncToSafariBufferRunCommand
+
+ thumb_func_start SafariBufferRunCommand
+SafariBufferRunCommand: @ 812B484
+ push {lr}
+ ldr r2, _0812B4B8 @ =gBattleExecBuffer
+ ldr r1, _0812B4BC @ =gBitTable
+ ldr r0, _0812B4C0 @ =gActiveBank
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0812B4D0
+ ldr r0, _0812B4C4 @ =gBattleBufferA
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _0812B4CC
+ ldr r0, _0812B4C8 @ =gSafariBufferCommands
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _0812B4D0
+ .align 2, 0
+_0812B4B8: .4byte gBattleExecBuffer
+_0812B4BC: .4byte gBitTable
+_0812B4C0: .4byte gActiveBank
+_0812B4C4: .4byte gBattleBufferA
+_0812B4C8: .4byte gSafariBufferCommands
+_0812B4CC:
+ bl SafariBufferExecCompleted
+_0812B4D0:
+ pop {r0}
+ bx r0
+ thumb_func_end SafariBufferRunCommand
+
+ thumb_func_start bx_battle_menu_t6_2
+bx_battle_menu_t6_2: @ 812B4D4
+ push {r4,r5,lr}
+ ldr r0, _0812B508 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B546
+ movs r0, 0x5
+ bl PlaySE
+ bl DestroyMenuCursor
+ ldr r1, _0812B50C @ =gActionSelectionCursor
+ ldr r0, _0812B510 @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0812B524
+ cmp r0, 0x1
+ bgt _0812B514
+ cmp r0, 0
+ beq _0812B51E
+ b _0812B540
+ .align 2, 0
+_0812B508: .4byte gMain
+_0812B50C: .4byte gActionSelectionCursor
+_0812B510: .4byte gActiveBank
+_0812B514:
+ cmp r0, 0x2
+ beq _0812B52A
+ cmp r0, 0x3
+ beq _0812B536
+ b _0812B540
+_0812B51E:
+ movs r0, 0x1
+ movs r1, 0x5
+ b _0812B52E
+_0812B524:
+ movs r0, 0x1
+ movs r1, 0x6
+ b _0812B52E
+_0812B52A:
+ movs r0, 0x1
+ movs r1, 0x7
+_0812B52E:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _0812B540
+_0812B536:
+ movs r0, 0x1
+ movs r1, 0x8
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_0812B540:
+ bl SafariBufferExecCompleted
+ b _0812B64E
+_0812B546:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B584
+ ldr r5, _0812B57C @ =gActionSelectionCursor
+ ldr r4, _0812B580 @ =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B64E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _0812B5F2
+ .align 2, 0
+_0812B57C: .4byte gActionSelectionCursor
+_0812B580: .4byte gActiveBank
+_0812B584:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B5C0
+ ldr r5, _0812B5B8 @ =gActionSelectionCursor
+ ldr r4, _0812B5BC @ =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B64E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _0812B5F2
+ .align 2, 0
+_0812B5B8: .4byte gActionSelectionCursor
+_0812B5BC: .4byte gActiveBank
+_0812B5C0:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B60C
+ ldr r5, _0812B604 @ =gActionSelectionCursor
+ ldr r4, _0812B608 @ =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B64E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x2
+_0812B5F2:
+ eors r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+ b _0812B64E
+ .align 2, 0
+_0812B604: .4byte gActionSelectionCursor
+_0812B608: .4byte gActiveBank
+_0812B60C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B64E
+ ldr r5, _0812B654 @ =gActionSelectionCursor
+ ldr r4, _0812B658 @ =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B64E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x2
+ eors r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+_0812B64E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B654: .4byte gActionSelectionCursor
+_0812B658: .4byte gActiveBank
+ thumb_func_end bx_battle_menu_t6_2
+
+ thumb_func_start sub_812B65C
+sub_812B65C: @ 812B65C
+ push {lr}
+ ldr r2, _0812B684 @ =gSprites
+ ldr r1, _0812B688 @ =gObjectBankIDs
+ ldr r0, _0812B68C @ =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0812B690 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0812B680
+ bl SafariBufferExecCompleted
+_0812B680:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B684: .4byte gSprites
+_0812B688: .4byte gObjectBankIDs
+_0812B68C: .4byte gActiveBank
+_0812B690: .4byte SpriteCallbackDummy
+ thumb_func_end sub_812B65C
+
+ thumb_func_start sub_812B694
+sub_812B694: @ 812B694
+ push {lr}
+ ldr r0, _0812B6A8 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0812B6A2
+ bl SafariBufferExecCompleted
+_0812B6A2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B6A8: .4byte gUnknown_03004210
+ thumb_func_end sub_812B694
+
+ thumb_func_start sub_812B6AC
+sub_812B6AC: @ 812B6AC
+ push {lr}
+ ldr r0, _0812B6DC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B6D6
+ ldr r2, _0812B6E0 @ =gMain
+ ldr r0, _0812B6E4 @ =0x0000043d
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _0812B6E8 @ =gPreBattleCallback1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_0812B6D6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B6DC: .4byte gPaletteFade
+_0812B6E0: .4byte gMain
+_0812B6E4: .4byte 0x0000043d
+_0812B6E8: .4byte gPreBattleCallback1
+ thumb_func_end sub_812B6AC
+
+ thumb_func_start bx_wait_t6
+bx_wait_t6: @ 812B6EC
+ push {lr}
+ ldr r0, _0812B718 @ =gDoingBattleAnim
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0812B70E
+ ldr r0, _0812B71C @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812B720 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B712
+_0812B70E:
+ bl SafariBufferExecCompleted
+_0812B712:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B718: .4byte gDoingBattleAnim
+_0812B71C: .4byte gActiveBank
+_0812B720: .4byte 0x02017810
+ thumb_func_end bx_wait_t6
+
+ thumb_func_start sub_812B724
+sub_812B724: @ 812B724
+ push {lr}
+ ldr r0, _0812B748 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B744
+ ldr r1, _0812B74C @ =gBattleBankFunc
+ ldr r0, _0812B750 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812B754 @ =sub_812B758
+ str r1, [r0]
+ bl sub_810BADC
+_0812B744:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B748: .4byte gPaletteFade
+_0812B74C: .4byte gBattleBankFunc
+_0812B750: .4byte gActiveBank
+_0812B754: .4byte sub_812B758
+ thumb_func_end sub_812B724
+
+ thumb_func_start sub_812B758
+sub_812B758: @ 812B758
+ push {lr}
+ ldr r0, _0812B784 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0812B788 @ =sub_800F808
+ cmp r1, r0
+ bne _0812B77E
+ ldr r0, _0812B78C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B77E
+ ldr r0, _0812B790 @ =gScriptItemId
+ ldrh r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl SafariBufferExecCompleted
+_0812B77E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B784: .4byte gMain
+_0812B788: .4byte sub_800F808
+_0812B78C: .4byte gPaletteFade
+_0812B790: .4byte gScriptItemId
+ thumb_func_end sub_812B758
+
+ thumb_func_start sub_812B794
+sub_812B794: @ 812B794
+ push {lr}
+ ldr r0, _0812B7B8 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812B7BC @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B7B2
+ bl SafariBufferExecCompleted
+_0812B7B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B7B8: .4byte gActiveBank
+_0812B7BC: .4byte 0x02017810
+ thumb_func_end sub_812B794
+
+ thumb_func_start SafariBufferExecCompleted
+SafariBufferExecCompleted: @ 812B7C0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _0812B800 @ =gBattleBankFunc
+ ldr r4, _0812B804 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812B808 @ =SafariBufferRunCommand
+ str r1, [r0]
+ ldr r0, _0812B80C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B814
+ bl GetMultiplayerId
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl dp01_prepare_buffer_wireless_probably
+ ldr r1, _0812B810 @ =gBattleBufferA
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0812B826
+ .align 2, 0
+_0812B800: .4byte gBattleBankFunc
+_0812B804: .4byte gActiveBank
+_0812B808: .4byte SafariBufferRunCommand
+_0812B80C: .4byte gBattleTypeFlags
+_0812B810: .4byte gBattleBufferA
+_0812B814:
+ ldr r2, _0812B830 @ =gBattleExecBuffer
+ ldr r1, _0812B834 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0812B826:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B830: .4byte gBattleExecBuffer
+_0812B834: .4byte gBitTable
+ thumb_func_end SafariBufferExecCompleted
+
+ thumb_func_start unref_sub_812B838
+unref_sub_812B838: @ 812B838
+ push {lr}
+ ldr r0, _0812B85C @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812B860 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B856
+ bl SafariBufferExecCompleted
+_0812B856:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B85C: .4byte gActiveBank
+_0812B860: .4byte 0x02017810
+ thumb_func_end unref_sub_812B838
+
+ thumb_func_start SafariHandleGetAttributes
+SafariHandleGetAttributes: @ 812B864
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end SafariHandleGetAttributes
+
+ thumb_func_start sub_812B870
+sub_812B870: @ 812B870
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B870
+
+ thumb_func_start sub_812B87C
+sub_812B87C: @ 812B87C
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B87C
+
+ thumb_func_start sub_812B888
+sub_812B888: @ 812B888
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B888
+
+ thumb_func_start sub_812B894
+sub_812B894: @ 812B894
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B894
+
+ thumb_func_start sub_812B8A0
+sub_812B8A0: @ 812B8A0
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B8A0
+
+ thumb_func_start sub_812B8AC
+sub_812B8AC: @ 812B8AC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B8AC
+
+ thumb_func_start sub_812B8B8
+sub_812B8B8: @ 812B8B8
+ push {r4-r6,lr}
+ ldr r4, _0812B96C @ =gSaveBlock2
+ ldrb r0, [r4, 0x8]
+ ldr r5, _0812B970 @ =gActiveBank
+ ldrb r1, [r5]
+ bl sub_8031AF4
+ ldrb r6, [r4, 0x8]
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _0812B974 @ =gUnknown_02024E8C
+ ldr r2, _0812B978 @ =gTrainerBackPicCoords
+ ldrb r1, [r4, 0x8]
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0x50
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r6, _0812B97C @ =gObjectBankIDs
+ ldrb r1, [r5]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r4, _0812B980 @ =gSprites
+ ldrb r3, [r5]
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xF0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0812B984 @ =0x0000fffe
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _0812B988 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _0812B98C @ =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812B990 @ =sub_812B65C
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B96C: .4byte gSaveBlock2
+_0812B970: .4byte gActiveBank
+_0812B974: .4byte gUnknown_02024E8C
+_0812B978: .4byte gTrainerBackPicCoords
+_0812B97C: .4byte gObjectBankIDs
+_0812B980: .4byte gSprites
+_0812B984: .4byte 0x0000fffe
+_0812B988: .4byte sub_80313A0
+_0812B98C: .4byte gBattleBankFunc
+_0812B990: .4byte sub_812B65C
+ thumb_func_end sub_812B8B8
+
+ thumb_func_start sub_812B994
+sub_812B994: @ 812B994
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B994
+
+ thumb_func_start sub_812B9A0
+sub_812B9A0: @ 812B9A0
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B9A0
+
+ thumb_func_start sub_812B9AC
+sub_812B9AC: @ 812B9AC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B9AC
+
+ thumb_func_start sub_812B9B8
+sub_812B9B8: @ 812B9B8
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B9B8
+
+ thumb_func_start sub_812B9C4
+sub_812B9C4: @ 812B9C4
+ push {r4,r5,lr}
+ ldr r1, _0812BA00 @ =0x02017840
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ ldr r1, _0812BA04 @ =gDoingBattleAnim
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r5, _0812BA08 @ =gActiveBank
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl move_anim_start_t4
+ ldr r1, _0812BA0C @ =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BA10 @ =bx_wait_t6
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BA00: .4byte 0x02017840
+_0812BA04: .4byte gDoingBattleAnim
+_0812BA08: .4byte gActiveBank
+_0812BA0C: .4byte gBattleBankFunc
+_0812BA10: .4byte bx_wait_t6
+ thumb_func_end sub_812B9C4
+
+ thumb_func_start sub_812BA14
+sub_812BA14: @ 812BA14
+ push {r4,r5,lr}
+ ldr r1, _0812BA58 @ =gBattleBufferA
+ ldr r5, _0812BA5C @ =gActiveBank
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, _0812BA60 @ =0x02017840
+ strb r1, [r0, 0x8]
+ ldr r1, _0812BA64 @ =gDoingBattleAnim
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl move_anim_start_t4
+ ldr r1, _0812BA68 @ =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BA6C @ =bx_wait_t6
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BA58: .4byte gBattleBufferA
+_0812BA5C: .4byte gActiveBank
+_0812BA60: .4byte 0x02017840
+_0812BA64: .4byte gDoingBattleAnim
+_0812BA68: .4byte gBattleBankFunc
+_0812BA6C: .4byte bx_wait_t6
+ thumb_func_end sub_812BA14
+
+ thumb_func_start sub_812BA70
+sub_812BA70: @ 812BA70
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BA70
+
+ thumb_func_start sub_812BA7C
+sub_812BA7C: @ 812BA7C
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BA7C
+
+ thumb_func_start SafariHandlePrintString
+SafariHandlePrintString: @ 812BA88
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0812BACC @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0812BAD0 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r4, _0812BAD4 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _0812BAD8 @ =gUnknown_02023A62
+ adds r0, r1
+ ldrh r0, [r0]
+ bl BufferStringBattle
+ ldr r0, _0812BADC @ =gUnknown_03004210
+ ldr r1, _0812BAE0 @ =gDisplayedStringBattle
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _0812BAE4 @ =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BAE8 @ =sub_812B694
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BACC: .4byte gUnknown_030042A4
+_0812BAD0: .4byte gUnknown_030042A0
+_0812BAD4: .4byte gActiveBank
+_0812BAD8: .4byte gUnknown_02023A62
+_0812BADC: .4byte gUnknown_03004210
+_0812BAE0: .4byte gDisplayedStringBattle
+_0812BAE4: .4byte gBattleBankFunc
+_0812BAE8: .4byte sub_812B694
+ thumb_func_end SafariHandlePrintString
+
+ thumb_func_start SafariHandlePrintStringPlayerOnly
+SafariHandlePrintStringPlayerOnly: @ 812BAEC
+ push {lr}
+ ldr r0, _0812BB04 @ =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812BB08
+ bl SafariHandlePrintString
+ b _0812BB0C
+ .align 2, 0
+_0812BB04: .4byte gActiveBank
+_0812BB08:
+ bl SafariBufferExecCompleted
+_0812BB0C:
+ pop {r0}
+ bx r0
+ thumb_func_end SafariHandlePrintStringPlayerOnly
+
+.section .text_812BBFC
+
+ thumb_func_start sub_812BBFC
+sub_812BBFC: @ 812BBFC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BBFC
+
+ thumb_func_start sub_812BC08
+sub_812BC08: @ 812BC08
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC08
+
+ thumb_func_start sub_812BC14
+sub_812BC14: @ 812BC14
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0812BC44 @ =gBattleBankFunc
+ ldr r2, _0812BC48 @ =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BC4C @ =sub_812B724
+ str r1, [r0]
+ ldr r1, _0812BC50 @ =gBankInMenu
+ ldrb r0, [r2]
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BC44: .4byte gBattleBankFunc
+_0812BC48: .4byte gActiveBank
+_0812BC4C: .4byte sub_812B724
+_0812BC50: .4byte gBankInMenu
+ thumb_func_end sub_812BC14
+
+ thumb_func_start sub_812BC54
+sub_812BC54: @ 812BC54
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC54
+
+ thumb_func_start sub_812BC60
+sub_812BC60: @ 812BC60
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC60
+
+ thumb_func_start sub_812BC6C
+sub_812BC6C: @ 812BC6C
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC6C
+
+ thumb_func_start sub_812BC78
+sub_812BC78: @ 812BC78
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC78
+
+ thumb_func_start sub_812BC84
+sub_812BC84: @ 812BC84
+ push {lr}
+ ldr r0, _0812BCB0 @ =gHealthboxIDs
+ ldr r1, _0812BCB4 @ =gActiveBank
+ ldrb r1, [r1]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _0812BCB8 @ =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0812BCBC @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0xB
+ bl sub_8045A5C
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BCB0: .4byte gHealthboxIDs
+_0812BCB4: .4byte gActiveBank
+_0812BCB8: .4byte gBattlePartyID
+_0812BCBC: .4byte gPlayerParty
+ thumb_func_end sub_812BC84
+
+ thumb_func_start sub_812BCC0
+sub_812BCC0: @ 812BCC0
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCC0
+
+ thumb_func_start sub_812BCCC
+sub_812BCCC: @ 812BCCC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCCC
+
+ thumb_func_start sub_812BCD8
+sub_812BCD8: @ 812BCD8
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCD8
+
+ thumb_func_start sub_812BCE4
+sub_812BCE4: @ 812BCE4
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCE4
+
+ thumb_func_start sub_812BCF0
+sub_812BCF0: @ 812BCF0
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCF0
+
+ thumb_func_start sub_812BCFC
+sub_812BCFC: @ 812BCFC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCFC
+
+ thumb_func_start sub_812BD08
+sub_812BD08: @ 812BD08
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD08
+
+ thumb_func_start sub_812BD14
+sub_812BD14: @ 812BD14
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD14
+
+ thumb_func_start sub_812BD20
+sub_812BD20: @ 812BD20
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD20
+
+ thumb_func_start sub_812BD2C
+sub_812BD2C: @ 812BD2C
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD2C
+
+ thumb_func_start sub_812BD38
+sub_812BD38: @ 812BD38
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD38
+
+ thumb_func_start sub_812BD44
+sub_812BD44: @ 812BD44
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD44
+
+ thumb_func_start sub_812BD50
+sub_812BD50: @ 812BD50
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD50
+
+ thumb_func_start sub_812BD5C
+sub_812BD5C: @ 812BD5C
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD5C
+
+ thumb_func_start sub_812BD68
+sub_812BD68: @ 812BD68
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD68
+
+ thumb_func_start sub_812BD74
+sub_812BD74: @ 812BD74
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD74
+
+ thumb_func_start sub_812BD80
+sub_812BD80: @ 812BD80
+ push {r4,lr}
+ ldr r4, _0812BDBC @ =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _0812BD94
+ movs r3, 0xC0
+_0812BD94:
+ ldr r2, _0812BDC0 @ =gBattleBufferA
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ lsls r1, r3, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ bl SafariBufferExecCompleted
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BDBC: .4byte gActiveBank
+_0812BDC0: .4byte gBattleBufferA
+ thumb_func_end sub_812BD80
+
+ thumb_func_start sub_812BDC4
+sub_812BDC4: @ 812BDC4
+ push {lr}
+ ldr r2, _0812BDEC @ =gBattleBufferA
+ ldr r0, _0812BDF0 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BDEC: .4byte gBattleBufferA
+_0812BDF0: .4byte gActiveBank
+ thumb_func_end sub_812BDC4
+
+ thumb_func_start sub_812BDF4
+sub_812BDF4: @ 812BDF4
+ push {lr}
+ ldr r1, _0812BE24 @ =gBattlePartyID
+ ldr r0, _0812BE28 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812BE2C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ bl PlayCry1
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BE24: .4byte gBattlePartyID
+_0812BE28: .4byte gActiveBank
+_0812BE2C: .4byte gPlayerParty
+ thumb_func_end sub_812BDF4
+
+ thumb_func_start dp01t_2E_6_battle_intro
+dp01t_2E_6_battle_intro: @ 812BE30
+ push {lr}
+ ldr r1, _0812BE58 @ =gBattleBufferA
+ ldr r0, _0812BE5C @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _0812BE60 @ =gUnknown_02024DE8
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BE58: .4byte gBattleBufferA
+_0812BE5C: .4byte gActiveBank
+_0812BE60: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_6_battle_intro
+
+ thumb_func_start sub_812BE64
+sub_812BE64: @ 812BE64
+ push {r4,r5,lr}
+ ldr r5, _0812BEA0 @ =gHealthboxIDs
+ ldr r4, _0812BEA4 @ =gActiveBank
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _0812BEA8 @ =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0812BEAC @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0xA
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ bl SafariBufferExecCompleted
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BEA0: .4byte gHealthboxIDs
+_0812BEA4: .4byte gActiveBank
+_0812BEA8: .4byte gBattlePartyID
+_0812BEAC: .4byte gPlayerParty
+ thumb_func_end sub_812BE64
+
+ thumb_func_start sub_812BEB0
+sub_812BEB0: @ 812BEB0
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BEB0
+
+ thumb_func_start sub_812BEBC
+sub_812BEBC: @ 812BEBC
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BEBC
+
+ thumb_func_start sub_812BEC8
+sub_812BEC8: @ 812BEC8
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BEC8
+
+ thumb_func_start sub_812BED4
+sub_812BED4: @ 812BED4
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BED4
+
+ thumb_func_start sub_812BEE0
+sub_812BEE0: @ 812BEE0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r5, _0812BF18 @ =gBattleBufferA
+ ldr r6, _0812BF1C @ =gActiveBank
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812BF20
+ bl SafariBufferExecCompleted
+ b _0812BF2C
+ .align 2, 0
+_0812BF18: .4byte gBattleBufferA
+_0812BF1C: .4byte gActiveBank
+_0812BF20:
+ ldr r0, _0812BF34 @ =gBattleBankFunc
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0812BF38 @ =sub_812B794
+ str r0, [r1]
+_0812BF2C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BF34: .4byte gBattleBankFunc
+_0812BF38: .4byte sub_812B794
+ thumb_func_end sub_812BEE0
+
+ thumb_func_start sub_812BF3C
+sub_812BF3C: @ 812BF3C
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BF3C
+
+ thumb_func_start sub_812BF48
+sub_812BF48: @ 812BF48
+ push {lr}
+ bl SafariBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BF48
+
+ thumb_func_start sub_812BF54
+sub_812BF54: @ 812BF54
+ push {r4,lr}
+ ldr r2, _0812BF98 @ =gBattleOutcome
+ ldr r1, _0812BF9C @ =gBattleBufferA
+ ldr r4, _0812BFA0 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl SafariBufferExecCompleted
+ ldr r0, _0812BFA4 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0812BF90
+ ldr r0, _0812BFA8 @ =gBattleBankFunc
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0812BFAC @ =sub_812B6AC
+ str r0, [r1]
+_0812BF90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BF98: .4byte gBattleOutcome
+_0812BF9C: .4byte gBattleBufferA
+_0812BFA0: .4byte gActiveBank
+_0812BFA4: .4byte gBattleTypeFlags
+_0812BFA8: .4byte gBattleBankFunc
+_0812BFAC: .4byte sub_812B6AC
+ thumb_func_end sub_812BF54
+
+ thumb_func_start nullsub_78
+nullsub_78: @ 812BFB0
+ bx lr
+ thumb_func_end nullsub_78
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s
new file mode 100644
index 000000000..bae3d9bc2
--- /dev/null
+++ b/asm/battle_anim_812C144.s
@@ -0,0 +1,13097 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_812C144
+sub_812C144: @ 812C144
+ push {lr}
+ adds r2, r0, 0
+ ldr r1, _0812C168 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r3, [r2, 0x20]
+ adds r0, r3
+ strh r0, [r2, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r3, [r2, 0x22]
+ adds r0, r3
+ strh r0, [r2, 0x22]
+ movs r3, 0x6
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0812C16C
+ ldrh r0, [r1, 0x4]
+ b _0812C170
+ .align 2, 0
+_0812C168: .4byte gBattleAnimArgs
+_0812C16C:
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+_0812C170:
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r2, 0x30]
+ ldr r0, _0812C180 @ =sub_812C184
+ str r0, [r2, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C180: .4byte sub_812C184
+ thumb_func_end sub_812C144
+
+ thumb_func_start sub_812C184
+sub_812C184: @ 812C184
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ ble _0812C1C4
+ ldrh r1, [r3, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r3, 0x24]
+ ldrh r0, [r3, 0x2E]
+ adds r1, r0
+ strh r1, [r3, 0x32]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ b _0812C1CA
+_0812C1C4:
+ adds r0, r3, 0
+ bl move_anim_8072740
+_0812C1CA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C184
+
+ thumb_func_start sub_812C1D0
+sub_812C1D0: @ 812C1D0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _0812C21C @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 8
+ movs r0, 0x80
+ lsls r0, 12
+ adds r4, r0
+ asrs r4, 16
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 8
+ movs r0, 0x80
+ lsls r0, 12
+ adds r1, r0
+ asrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8046234
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C21C: .4byte gBattleAnimEnemyMonIndex
+ thumb_func_end sub_812C1D0
+
+ thumb_func_start sub_812C220
+sub_812C220: @ 812C220
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x5A
+ strh r0, [r4, 0x2E]
+ ldr r0, _0812C258 @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ movs r0, 0x7
+ strh r0, [r4, 0x30]
+ ldr r1, _0812C25C @ =sub_812C268
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _0812C260 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _0812C264 @ =REG_BLDALPHA
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C258: .4byte sub_80782D8
+_0812C25C: .4byte sub_812C268
+_0812C260: .4byte REG_BLDCNT
+_0812C264: .4byte REG_BLDALPHA
+ thumb_func_end sub_812C220
+
+ thumb_func_start sub_812C268
+sub_812C268: @ 812C268
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _0812C29C @ =REG_BLDALPHA
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0812C296
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812C2A0 @ =sub_812C2A4
+ str r0, [r3, 0x1C]
+_0812C296:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C29C: .4byte REG_BLDALPHA
+_0812C2A0: .4byte sub_812C2A4
+ thumb_func_end sub_812C268
+
+ thumb_func_start sub_812C2A4
+sub_812C2A4: @ 812C2A4
+ push {lr}
+ ldr r1, _0812C2B8 @ =REG_BLDCNT
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C2B8: .4byte REG_BLDCNT
+ thumb_func_end sub_812C2A4
+
+ thumb_func_start sub_812C2BC
+sub_812C2BC: @ 812C2BC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r4, _0812C348 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldrh r0, [r5, 0x20]
+ subs r0, r7
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x22]
+ subs r1, r6
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 23
+ adds r0, r1
+ lsrs r4, r0, 16
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812C31A
+ movs r1, 0x80
+ lsls r1, 7
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0812C31A:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldr r0, _0812C34C @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ strh r7, [r5, 0x32]
+ strh r6, [r5, 0x36]
+ ldr r0, _0812C350 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _0812C354 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C348: .4byte gBattleAnimEnemyMonIndex
+_0812C34C: .4byte gBattleAnimArgs
+_0812C350: .4byte sub_8078B34
+_0812C354: .4byte move_anim_8072740
+ thumb_func_end sub_812C2BC
+
+ thumb_func_start sub_812C358
+sub_812C358: @ 812C358
+ ldr r2, _0812C378 @ =REG_BLDCNT
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r1, r3, 0
+ strh r1, [r2]
+ adds r2, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r1, r3, 0
+ strh r1, [r2]
+ movs r1, 0x4
+ strh r1, [r0, 0x2E]
+ ldr r1, _0812C37C @ =sub_812C380
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_0812C378: .4byte REG_BLDCNT
+_0812C37C: .4byte sub_812C380
+ thumb_func_end sub_812C358
+
+ thumb_func_start sub_812C380
+sub_812C380: @ 812C380
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, _0812C3A0 @ =REG_BLDALPHA
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812C3A4
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ b _0812C3A8
+ .align 2, 0
+_0812C3A0: .4byte REG_BLDALPHA
+_0812C3A4:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+_0812C3A8:
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ beq _0812C3B6
+ cmp r0, 0x4
+ bne _0812C3BE
+_0812C3B6:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x30]
+_0812C3BE:
+ ldrh r0, [r4, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x46
+ ble _0812C3FC
+ ldr r0, _0812C404 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812C408 @ =sub_812C40C
+ str r0, [r4, 0x1C]
+_0812C3FC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C404: .4byte REG_BLDCNT
+_0812C408: .4byte sub_812C40C
+ thumb_func_end sub_812C380
+
+ thumb_func_start sub_812C40C
+sub_812C40C: @ 812C40C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _0812C448
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812C448
+ ldr r0, _0812C44C @ =sub_812C450
+ str r0, [r3, 0x1C]
+_0812C448:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C44C: .4byte sub_812C450
+ thumb_func_end sub_812C40C
+
+ thumb_func_start sub_812C450
+sub_812C450: @ 812C450
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x6
+ bhi _0812C4A8
+ lsls r0, 2
+ ldr r1, _0812C468 @ =_0812C46C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812C468: .4byte _0812C46C
+ .align 2, 0
+_0812C46C:
+ .4byte _0812C488
+ .4byte _0812C488
+ .4byte _0812C492
+ .4byte _0812C492
+ .4byte _0812C4A0
+ .4byte _0812C4A0
+ .4byte _0812C4A8
+_0812C488:
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r2, 0x24]
+ strh r1, [r2, 0x26]
+ b _0812C4B0
+_0812C492:
+ ldr r0, _0812C49C @ =0x0000ffff
+ strh r0, [r2, 0x24]
+ movs r0, 0
+ b _0812C4AE
+ .align 2, 0
+_0812C49C: .4byte 0x0000ffff
+_0812C4A0:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ movs r0, 0x1
+ b _0812C4AE
+_0812C4A8:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ ldr r0, _0812C4F0 @ =0x0000ffff
+_0812C4AE:
+ strh r0, [r2, 0x26]
+_0812C4B0:
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0812C4C2
+ strh r3, [r2, 0x34]
+_0812C4C2:
+ ldrh r0, [r2, 0x36]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _0812C4EA
+ movs r0, 0x10
+ strh r0, [r2, 0x2E]
+ strh r3, [r2, 0x30]
+ ldr r1, _0812C4F4 @ =REG_BLDCNT
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x2E]
+ strh r0, [r1]
+ ldr r0, _0812C4F8 @ =sub_812C4FC
+ str r0, [r2, 0x1C]
+_0812C4EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C4F0: .4byte 0x0000ffff
+_0812C4F4: .4byte REG_BLDCNT
+_0812C4F8: .4byte sub_812C4FC
+ thumb_func_end sub_812C450
+
+ thumb_func_start sub_812C4FC
+sub_812C4FC: @ 812C4FC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r4, _0812C558 @ =REG_BLDALPHA
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r4]
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812C526
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ movs r1, 0
+ strh r0, [r2, 0x2E]
+ strh r1, [r2, 0x30]
+_0812C526:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0812C53A
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+_0812C53A:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bge _0812C550
+ ldr r1, _0812C55C @ =REG_BLDCNT
+ movs r0, 0
+ strh r0, [r1]
+ strh r0, [r4]
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0812C550:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C558: .4byte REG_BLDALPHA
+_0812C55C: .4byte REG_BLDCNT
+ thumb_func_end sub_812C4FC
+
+ thumb_func_start sub_812C560
+sub_812C560: @ 812C560
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812C57C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0812C580 @ =sub_812C588
+ str r0, [r1]
+ ldr r1, _0812C584 @ =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0812C57C: .4byte gTasks
+_0812C580: .4byte sub_812C588
+_0812C584: .4byte gAnimVisualTaskCount
+ thumb_func_end sub_812C560
+
+ thumb_func_start sub_812C588
+sub_812C588: @ 812C588
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80789BC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _0812C614 @ =gTasks
+ lsls r5, r4, 2
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r7
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0812C5F8
+ ldr r0, _0812C618 @ =gPlttBufferFaded
+ lsls r2, r6, 4
+ adds r1, r2, 0
+ adds r1, 0xB
+ lsls r1, 1
+ adds r1, r0
+ ldrh r3, [r1]
+ mov r8, r3
+ movs r3, 0xA
+ mov r9, r7
+ adds r7, r5, 0
+ mov r12, r0
+ adds r5, r2, 0
+ lsls r0, r6, 5
+ add r0, r12
+ adds r2, r0, 0
+ adds r2, 0x14
+_0812C5D6:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ subs r2, 0x2
+ subs r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bgt _0812C5D6
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r12
+ movs r1, 0
+ mov r2, r8
+ strh r2, [r0]
+ adds r0, r7, r4
+ lsls r0, 3
+ add r0, r9
+ strh r1, [r0, 0x12]
+_0812C5F8:
+ ldr r0, _0812C61C @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _0812C620 @ =0x0000ffff
+ cmp r1, r0
+ bne _0812C608
+ adds r0, r4, 0
+ bl DestroyTask
+_0812C608:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C614: .4byte gTasks
+_0812C618: .4byte gPlttBufferFaded
+_0812C61C: .4byte gBattleAnimArgs
+_0812C620: .4byte 0x0000ffff
+ thumb_func_end sub_812C588
+
+ thumb_func_start sub_812C624
+sub_812C624: @ 812C624
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812C640 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0812C644 @ =sub_812C64C
+ str r0, [r1]
+ ldr r1, _0812C648 @ =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0812C640: .4byte gTasks
+_0812C644: .4byte sub_812C64C
+_0812C648: .4byte gAnimVisualTaskCount
+ thumb_func_end sub_812C624
+
+ thumb_func_start sub_812C64C
+sub_812C64C: @ 812C64C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl sub_80789BC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, _0812C70C @ =gTasks
+ mov r0, r8
+ lsls r3, r0, 2
+ adds r1, r3, r0
+ lsls r1, 3
+ adds r1, r5
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0812C6EE
+ ldr r0, _0812C710 @ =gPlttBufferFaded
+ lsls r2, r7, 4
+ adds r1, r2, 0
+ adds r1, 0xB
+ lsls r1, 1
+ adds r1, r0
+ ldrh r6, [r1]
+ movs r4, 0xA
+ mov r10, r3
+ mov r9, r0
+ adds r5, r2, 0
+ ldr r2, _0812C714 @ =gPlttBufferUnfaded
+ mov r12, r2
+ lsls r0, r7, 5
+ add r0, r9
+ adds r3, r0, 0
+ adds r3, 0x14
+_0812C6A0:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ subs r3, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _0812C6A0
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r9
+ strh r6, [r0]
+ adds r1, r5, 0
+ adds r1, 0xB
+ lsls r1, 1
+ add r1, r12
+ ldrh r6, [r1]
+ movs r4, 0xA
+ lsls r0, r7, 5
+ add r0, r12
+ adds r2, r0, 0
+ adds r2, 0x14
+_0812C6CA:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ subs r2, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _0812C6CA
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r12
+ movs r1, 0
+ strh r6, [r0]
+ mov r0, r10
+ add r0, r8
+ lsls r0, 3
+ ldr r2, _0812C70C @ =gTasks
+ adds r0, r2
+ strh r1, [r0, 0x12]
+_0812C6EE:
+ ldr r0, _0812C718 @ =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, _0812C71C @ =0x0000ffff
+ cmp r1, r0
+ bne _0812C6FE
+ mov r0, r8
+ bl DestroyTask
+_0812C6FE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C70C: .4byte gTasks
+_0812C710: .4byte gPlttBufferFaded
+_0812C714: .4byte gPlttBufferUnfaded
+_0812C718: .4byte gBattleAnimArgs
+_0812C71C: .4byte 0x0000ffff
+ thumb_func_end sub_812C64C
+
+ thumb_func_start sub_812C720
+sub_812C720: @ 812C720
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _0812C784 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ mov r5, sp
+ adds r5, 0x2
+ movs r1, 0
+ mov r2, sp
+ adds r3, r5, 0
+ bl sub_807A3FC
+ ldr r0, _0812C788 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812C754
+ ldr r1, _0812C78C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_0812C754:
+ ldr r1, _0812C78C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ mov r2, sp
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ ldrh r5, [r5]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ ldr r0, _0812C790 @ =0x0000ffce
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _0812C794 @ =sub_812C798
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C784: .4byte gBattleAnimEnemyMonIndex
+_0812C788: .4byte gBattleAnimPlayerMonIndex
+_0812C78C: .4byte gBattleAnimArgs
+_0812C790: .4byte 0x0000ffce
+_0812C794: .4byte sub_812C798
+ thumb_func_end sub_812C720
+
+ thumb_func_start sub_812C798
+sub_812C798: @ 812C798
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812C7BA
+ movs r1, 0
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ ldr r0, _0812C7C0 @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _0812C7C4 @ =sub_812C7C8
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+_0812C7BA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C7C0: .4byte sub_80782D8
+_0812C7C4: .4byte sub_812C7C8
+ thumb_func_end sub_812C798
+
+ thumb_func_start sub_812C7C8
+sub_812C7C8: @ 812C7C8
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812C7F4
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_0812C7F4:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _0812C808
+ adds r0, r3, 0
+ bl move_anim_8072740
+_0812C808:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C7C8
+
+ thumb_func_start sub_812C80C
+sub_812C80C: @ 812C80C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r5, _0812C83C @ =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]
+ ldr r0, _0812C840 @ =sub_8078600
+ str r0, [r4, 0x1C]
+ ldr r1, _0812C844 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C83C: .4byte gBattleAnimArgs
+_0812C840: .4byte sub_8078600
+_0812C844: .4byte move_anim_8072740
+ thumb_func_end sub_812C80C
+
+ thumb_func_start sub_812C848
+sub_812C848: @ 812C848
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812C8A8
+ adds r0, r4, 0
+ bl sub_8078650
+ ldr r5, _0812C884 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ adds r0, r4, 0
+ bl sub_807867C
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812C89C
+ ldr r0, _0812C888 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812C88C
+ ldrh r0, [r5, 0x4]
+ b _0812C8A2
+ .align 2, 0
+_0812C884: .4byte gBattleAnimArgs
+_0812C888: .4byte gBattleAnimPlayerMonIndex
+_0812C88C:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r2, 0x6
+ ldrsh r0, [r5, r2]
+ negs r0, r0
+ b _0812C8A6
+_0812C89C:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+_0812C8A2:
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x6]
+_0812C8A6:
+ strh r0, [r4, 0x32]
+_0812C8A8:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ movs r3, 0xFF
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ strh r1, [r4, 0x24]
+ ands r0, r3
+ movs r1, 0x5
+ bl Sin
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xF0
+ bls _0812C900
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812C900:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C848
+
+ thumb_func_start sub_812C908
+sub_812C908: @ 812C908
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812C91E
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0812C91E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C908
+
+ thumb_func_start sub_812C924
+sub_812C924: @ 812C924
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0812C940 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812C948
+ ldr r1, _0812C944 @ =gBattleAnimArgs
+ movs r0, 0
+ b _0812C94C
+ .align 2, 0
+_0812C940: .4byte gBattleAnimEnemyMonIndex
+_0812C944: .4byte gBattleAnimArgs
+_0812C948:
+ ldr r1, _0812C95C @ =gBattleAnimArgs
+ movs r0, 0x1
+_0812C94C:
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C95C: .4byte gBattleAnimArgs
+ thumb_func_end sub_812C924
+
+ thumb_func_start sub_812C960
+sub_812C960: @ 812C960
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0812C974 @ =gMoveDmgMoveAnim
+ ldr r0, [r0]
+ cmp r0, 0
+ ble _0812C97C
+ ldr r1, _0812C978 @ =gBattleAnimArgs
+ movs r0, 0
+ b _0812C980
+ .align 2, 0
+_0812C974: .4byte gMoveDmgMoveAnim
+_0812C978: .4byte gBattleAnimArgs
+_0812C97C:
+ ldr r1, _0812C98C @ =gBattleAnimArgs
+ movs r0, 0x1
+_0812C980:
+ strh r0, [r1, 0xE]
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C98C: .4byte gBattleAnimArgs
+ thumb_func_end sub_812C960
+
+ thumb_func_start sub_812C990
+sub_812C990: @ 812C990
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0812C9EC @ =REG_WINOUT
+ ldr r2, _0812C9F0 @ =0x00001f3f
+ adds r0, r2, 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 r0, _0812C9F4 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0812C9F8 @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r0, _0812C9FC @ =REG_WIN0H
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812CA00 @ =sub_812CA04
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C9EC: .4byte REG_WINOUT
+_0812C9F0: .4byte 0x00001f3f
+_0812C9F4: .4byte gUnknown_030042C4
+_0812C9F8: .4byte gUnknown_03004240
+_0812C9FC: .4byte REG_WIN0H
+_0812CA00: .4byte sub_812CA04
+ thumb_func_end sub_812C990
+
+ thumb_func_start sub_812CA04
+sub_812CA04: @ 812CA04
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bhi _0812CAC4
+ lsls r0, 2
+ ldr r1, _0812CA1C @ =_0812CA20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812CA1C: .4byte _0812CA20
+ .align 2, 0
+_0812CA20:
+ .4byte _0812CA38
+ .4byte _0812CA56
+ .4byte _0812CA76
+ .4byte _0812CA56
+ .4byte _0812CA96
+ .4byte _0812CAA6
+_0812CA38:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812CAC4
+ b _0812CA9E
+_0812CA56:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x75
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _0812CAC4
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _0812CA9E
+_0812CA76:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x75
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x29
+ bne _0812CAC4
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _0812CA9E
+_0812CA96:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_0812CA9E:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0812CAC4
+_0812CAA6:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812CAC4
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812CACC @ =sub_812CAD0
+ str r0, [r4, 0x1C]
+_0812CAC4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CACC: .4byte sub_812CAD0
+ thumb_func_end sub_812CA04
+
+ thumb_func_start sub_812CAD0
+sub_812CAD0: @ 812CAD0
+ push {r4,lr}
+ ldr r2, _0812CAF4 @ =REG_WINOUT
+ ldr r3, _0812CAF8 @ =0x00003f3f
+ adds r1, r3, 0
+ strh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 19
+ ldrh r1, [r3]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r2, r4, 0
+ eors r1, r2
+ strh r1, [r3]
+ bl move_anim_8072740
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CAF4: .4byte REG_WINOUT
+_0812CAF8: .4byte 0x00003f3f
+ thumb_func_end sub_812CAD0
+
+ thumb_func_start sub_812CAFC
+sub_812CAFC: @ 812CAFC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _0812CB70 @ =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0812CB28
+ ldr r4, _0812CB74 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_0812CB28:
+ ldrh r0, [r6]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ movs r3, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r6, 0x2]
+ ldrh r4, [r5, 0x22]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r4, _0812CB78 @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _0812CB7C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0812CB84
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldr r0, _0812CB80 @ =0x0000fff4
+ strh r0, [r5, 0x24]
+ movs r0, 0x2
+ b _0812CB8A
+ .align 2, 0
+_0812CB70: .4byte gBattleAnimArgs
+_0812CB74: .4byte gBattleAnimPlayerMonIndex
+_0812CB78: .4byte 0x000003ff
+_0812CB7C: .4byte 0xfffffc00
+_0812CB80: .4byte 0x0000fff4
+_0812CB84:
+ movs r0, 0xC
+ strh r0, [r5, 0x24]
+ ldr r0, _0812CBA8 @ =0x0000fffe
+_0812CB8A:
+ strh r0, [r5, 0x30]
+ ldr r1, _0812CBAC @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xFF
+ beq _0812CB9E
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x34]
+_0812CB9E:
+ ldr r0, _0812CBB0 @ =sub_812CBB4
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CBA8: .4byte 0x0000fffe
+_0812CBAC: .4byte gBattleAnimArgs
+_0812CBB0: .4byte sub_812CBB4
+ thumb_func_end sub_812CAFC
+
+ thumb_func_start sub_812CBB4
+sub_812CBB4: @ 812CBB4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812CBF2
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812CC12
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812CC12
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xDE
+ bl PlaySE1WithPanning
+ b _0812CC12
+_0812CBF2:
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x30]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _0812CC04
+ negs r0, r0
+_0812CC04:
+ cmp r0, 0xC
+ bne _0812CC12
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x32]
+_0812CC12:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812CC20
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812CC20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812CBB4
+
+ thumb_func_start sub_812CC28
+sub_812CC28: @ 812CC28
+ push {lr}
+ ldrb r2, [r0, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ movs r1, 0xFF
+ strh r1, [r0, 0x34]
+ bl sub_812CAFC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812CC28
+
+ thumb_func_start sub_812CC44
+sub_812CC44: @ 812CC44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812CC7A
+ ldr r1, _0812CC88 @ =REG_WININ
+ ldr r2, _0812CC8C @ =0x00001f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0812CC90 @ =gUnknown_03004200
+ ldr r2, _0812CC94 @ =0x000098f0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0812CC98 @ =gUnknown_03004244
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, _0812CC9C @ =REG_WIN1H
+ ldr r0, _0812CCA0 @ =gUnknown_030042C4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0812CCA4 @ =gUnknown_03004240
+ ldrh r0, [r0]
+ strh r0, [r1]
+_0812CC7A:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CC88: .4byte REG_WININ
+_0812CC8C: .4byte 0x00001f3f
+_0812CC90: .4byte gUnknown_03004200
+_0812CC94: .4byte 0x000098f0
+_0812CC98: .4byte gUnknown_03004244
+_0812CC9C: .4byte REG_WIN1H
+_0812CCA0: .4byte gUnknown_030042C4
+_0812CCA4: .4byte gUnknown_03004240
+ thumb_func_end sub_812CC44
+
+ thumb_func_start sub_812CCA8
+sub_812CCA8: @ 812CCA8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812CCCA
+ ldr r1, _0812CCD8 @ =REG_WININ
+ ldr r2, _0812CCDC @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0812CCE0 @ =gUnknown_03004200
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0812CCE4 @ =gUnknown_03004244
+ strh r1, [r0]
+_0812CCCA:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CCD8: .4byte REG_WININ
+_0812CCDC: .4byte 0x00003f3f
+_0812CCE0: .4byte gUnknown_03004200
+_0812CCE4: .4byte gUnknown_03004244
+ thumb_func_end sub_812CCA8
+
+ thumb_func_start sub_812CCE8
+sub_812CCE8: @ 812CCE8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _0812CCFC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0812CD04
+ ldr r4, _0812CD00 @ =gBattleAnimPlayerMonIndex
+ b _0812CD06
+ .align 2, 0
+_0812CCFC: .4byte gBattleAnimArgs
+_0812CD00: .4byte gBattleAnimPlayerMonIndex
+_0812CD04:
+ ldr r4, _0812CD58 @ =gBattleAnimEnemyMonIndex
+_0812CD06:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r2, _0812CD5C @ =gBattleAnimArgs
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x26]
+ movs r3, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r4, [r2, 0x6]
+ movs r6, 0x6
+ ldrsh r1, [r2, r6]
+ cmp r0, r1
+ ble _0812CD3E
+ movs r3, 0x1
+_0812CD3E:
+ strh r3, [r5, 0x2E]
+ movs r0, 0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0xA]
+ strh r0, [r5, 0x34]
+ strh r4, [r5, 0x36]
+ ldr r0, _0812CD60 @ =sub_812CD64
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CD58: .4byte gBattleAnimEnemyMonIndex
+_0812CD5C: .4byte gBattleAnimArgs
+_0812CD60: .4byte sub_812CD64
+ thumb_func_end sub_812CCE8
+
+ thumb_func_start sub_812CD64
+sub_812CD64: @ 812CD64
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0x30]
+ ldr r1, _0812CDAC @ =gSineTable
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x26]
+ adds r1, r0, r3
+ strh r1, [r2, 0x26]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _0812CDB0
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bge _0812CDC2
+ adds r0, r2, 0
+ bl move_anim_8072740
+ b _0812CDC2
+ .align 2, 0
+_0812CDAC: .4byte gSineTable
+_0812CDB0:
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ ble _0812CDC2
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0812CDC2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812CD64
+
+ thumb_func_start sub_812CDC8
+sub_812CDC8: @ 812CDC8
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0812CDE8 @ =gTasks
+ adds r5, r1, r0
+ ldr r0, _0812CDEC @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812CDF4
+ ldr r4, _0812CDF0 @ =gBattleAnimPlayerMonIndex
+ b _0812CDF6
+ .align 2, 0
+_0812CDE8: .4byte gTasks
+_0812CDEC: .4byte gBattleAnimArgs
+_0812CDF0: .4byte gBattleAnimPlayerMonIndex
+_0812CDF4:
+ ldr r4, _0812CE3C @ =gBattleAnimEnemyMonIndex
+_0812CDF6:
+ ldrb r0, [r4]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0
+ adds r1, r0, 0
+ adds r1, 0x24
+ movs r2, 0
+ strh r1, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ subs r0, 0x21
+ strh r0, [r5, 0xC]
+ cmp r0, 0
+ bge _0812CE20
+ strh r2, [r5, 0xC]
+_0812CE20:
+ ldrh r0, [r5, 0x8]
+ strh r0, [r5, 0xE]
+ movs r0, 0x8
+ strh r0, [r5, 0x10]
+ ldr r1, _0812CE40 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x12]
+ strh r2, [r5, 0x14]
+ strh r2, [r5, 0x16]
+ cmp r7, 0x1
+ bne _0812CE48
+ ldr r0, _0812CE44 @ =gUnknown_030042C0
+ b _0812CE4A
+ .align 2, 0
+_0812CE3C: .4byte gBattleAnimEnemyMonIndex
+_0812CE40: .4byte gBattleAnimArgs
+_0812CE44: .4byte gUnknown_030042C0
+_0812CE48:
+ ldr r0, _0812CE68 @ =gUnknown_03004288
+_0812CE4A:
+ ldrh r2, [r0]
+ strh r2, [r5, 0x18]
+ adds r3, r2, 0
+ adds r3, 0xF0
+ strh r3, [r5, 0x1A]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x1C]
+ movs r4, 0x4
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bne _0812CE6C
+ strh r3, [r5, 0x1E]
+ ldrh r3, [r5, 0x18]
+ b _0812CE70
+ .align 2, 0
+_0812CE68: .4byte gUnknown_03004288
+_0812CE6C:
+ strh r2, [r5, 0x1E]
+ ldrh r3, [r5, 0x1A]
+_0812CE70:
+ movs r0, 0
+ strh r0, [r5, 0x26]
+ ldrh r1, [r5, 0xC]
+ lsls r2, r1, 16
+ asrs r1, r2, 16
+ movs r6, 0xE
+ ldrsh r0, [r5, r6]
+ cmp r1, r0
+ bgt _0812CEA6
+ ldr r4, _0812CEB0 @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r0, r4
+ mov r12, r0
+_0812CE8C:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ add r1, r12
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r6, 0xE
+ ldrsh r0, [r5, r6]
+ cmp r1, r0
+ ble _0812CE8C
+_0812CEA6:
+ cmp r7, 0x1
+ bne _0812CEB8
+ ldr r0, _0812CEB4 @ =REG_BG1HOFS
+ b _0812CEBA
+ .align 2, 0
+_0812CEB0: .4byte gUnknown_03004DE0
+_0812CEB4: .4byte REG_BG1HOFS
+_0812CEB8:
+ ldr r0, _0812CEE4 @ =REG_BG2HOFS
+_0812CEBA:
+ str r0, [sp]
+ ldr r0, _0812CEE8 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _0812CEEC @ =sub_812CEF0
+ str r0, [r5]
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CEE4: .4byte REG_BG2HOFS
+_0812CEE8: .4byte 0xa2600001
+_0812CEEC: .4byte sub_812CEF0
+ thumb_func_end sub_812CDC8
+
+ thumb_func_start sub_812CEF0
+sub_812CEF0: @ 812CEF0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _0812CF40 @ =gTasks
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _0812CF18
+ strh r2, [r4, 0x8]
+_0812CF18:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0812CF44
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _0812CF48
+ strh r2, [r4, 0xA]
+ movs r0, 0x1
+ strh r0, [r4, 0x26]
+ b _0812CF48
+ .align 2, 0
+_0812CF40: .4byte gTasks
+_0812CF44:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_0812CF48:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812CF74
+ movs r0, 0
+ strh r0, [r4, 0x14]
+ movs r1, 0
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0812CF66
+ movs r1, 0x1
+_0812CF66:
+ strh r1, [r4, 0x16]
+ cmp r1, 0
+ beq _0812CF70
+ ldrh r0, [r4, 0x18]
+ b _0812CF72
+_0812CF70:
+ ldrh r0, [r4, 0x1A]
+_0812CF72:
+ strh r0, [r4, 0x20]
+_0812CF74:
+ ldrh r1, [r4, 0x8]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bge _0812CFA8
+ ldr r5, _0812D000 @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_0812CF8A:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x20]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x20]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _0812CF8A
+_0812CFA8:
+ ldrh r1, [r4, 0xA]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bgt _0812CFDC
+ ldr r5, _0812D000 @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_0812CFBE:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ ble _0812CFBE
+_0812CFDC:
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0812CFF8
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812CFF2
+ ldr r1, _0812D004 @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_0812CFF2:
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_0812CFF8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D000: .4byte gUnknown_03004DE0
+_0812D004: .4byte gUnknown_03004DC0
+ thumb_func_end sub_812CEF0
+
+ thumb_func_start sub_812D008
+sub_812D008: @ 812D008
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _0812D05C @ =gTasks
+ adds r4, r0
+ movs r5, 0
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ ldr r6, _0812D060 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xE]
+ movs r0, 0x20
+ strh r0, [r4, 0x10]
+ ldr r0, _0812D064 @ =0x0000ffec
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _0812D068 @ =sub_812D06C
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D05C: .4byte gTasks
+_0812D060: .4byte gBattleAnimPlayerMonIndex
+_0812D064: .4byte 0x0000ffec
+_0812D068: .4byte sub_812D06C
+ thumb_func_end sub_812D008
+
+ thumb_func_start sub_812D06C
+sub_812D06C: @ 812D06C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _0812D098 @ =gTasks
+ adds r6, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x5
+ bls _0812D08C
+ b _0812D246
+_0812D08C:
+ lsls r0, 2
+ ldr r1, _0812D09C @ =_0812D0A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812D098: .4byte gTasks
+_0812D09C: .4byte _0812D0A0
+ .align 2, 0
+_0812D0A0:
+ .4byte _0812D0B8
+ .4byte _0812D178
+ .4byte _0812D1A6
+ .4byte _0812D1BA
+ .4byte _0812D1D0
+ .4byte _0812D238
+_0812D0B8:
+ movs r0, 0xC
+ ldrsh r2, [r6, r0]
+ ldrh r1, [r6, 0xA]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812D0CE
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ subs r0, r2, r0
+ b _0812D0D4
+_0812D0CE:
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ adds r0, r2, r0
+_0812D0D4:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldrh r2, [r6, 0x12]
+ ldrh r0, [r6, 0xE]
+ adds r2, r0
+ ldr r0, _0812D168 @ =gBattleAnimSpriteTemplate_83D7220
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldrb r4, [r6, 0xA]
+ movs r3, 0x6
+ subs r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xBA
+ bl PlaySE12WithPanning
+ cmp r4, 0x40
+ beq _0812D138
+ ldr r5, _0812D16C @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r3, r1, r5
+ ldrh r0, [r6, 0xA]
+ movs r2, 0x1
+ ands r2, r0
+ adds r3, 0x3F
+ ldrb r4, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r4
+ orrs r0, r2
+ strb r0, [r3]
+ adds r5, 0x1C
+ adds r1, r5
+ ldr r0, _0812D170 @ =SpriteCallbackDummy
+ str r0, [r1]
+_0812D138:
+ ldrh r1, [r6, 0xA]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0812D150
+ ldrh r0, [r6, 0x10]
+ subs r0, 0x6
+ strh r0, [r6, 0x10]
+ ldrh r0, [r6, 0x12]
+ subs r0, 0x6
+ strh r0, [r6, 0x12]
+_0812D150:
+ ldrh r1, [r6, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D174 @ =gUnknown_08402400
+ adds r0, r6, 0
+ bl sub_80798F4
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+ strh r4, [r6, 0x8]
+ b _0812D246
+ .align 2, 0
+_0812D168: .4byte gBattleAnimSpriteTemplate_83D7220
+_0812D16C: .4byte gSprites
+_0812D170: .4byte SpriteCallbackDummy
+_0812D174: .4byte gUnknown_08402400
+_0812D178:
+ adds r0, r6, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0812D246
+ movs r2, 0xA
+ ldrsh r1, [r6, r2]
+ cmp r1, 0x6
+ bne _0812D198
+ movs r0, 0x8
+ strh r0, [r6, 0x14]
+ movs r0, 0x3
+ strh r0, [r6, 0x8]
+ b _0812D246
+_0812D198:
+ cmp r1, 0x2
+ bgt _0812D19E
+ movs r0, 0xA
+_0812D19E:
+ strh r0, [r6, 0x14]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ b _0812D246
+_0812D1A6:
+ ldrh r0, [r6, 0x14]
+ movs r2, 0x14
+ ldrsh r1, [r6, r2]
+ cmp r1, 0
+ beq _0812D1B6
+ subs r0, 0x1
+ strh r0, [r6, 0x14]
+ b _0812D246
+_0812D1B6:
+ strh r1, [r6, 0x8]
+ b _0812D246
+_0812D1BA:
+ ldrh r1, [r6, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ beq _0812D1CA
+ subs r0, r1, 0x1
+ strh r0, [r6, 0x14]
+ b _0812D246
+_0812D1CA:
+ movs r0, 0x4
+ strh r0, [r6, 0x8]
+ b _0812D246
+_0812D1D0:
+ movs r5, 0
+ movs r7, 0
+ ldr r3, _0812D22C @ =gSprites
+ movs r0, 0x1C
+ adds r0, r3
+ mov r8, r0
+_0812D1DC:
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r4, r0, 2
+ adds r0, r3, 0
+ adds r0, 0x14
+ adds r0, r4, r0
+ ldr r1, [r0]
+ ldr r0, _0812D230 @ =gBattleAnimSpriteTemplate_83D7220
+ cmp r1, r0
+ bne _0812D218
+ adds r0, r4, r3
+ strh r2, [r0, 0x2E]
+ movs r1, 0x6
+ strh r1, [r0, 0x30]
+ movs r1, 0x2
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ bl StartSpriteAnim
+ mov r0, r8
+ adds r1, r4, r0
+ ldr r0, _0812D234 @ =sub_812D254
+ str r0, [r1]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r2, [sp]
+ ldr r3, [sp, 0x4]
+ cmp r7, 0x6
+ beq _0812D222
+_0812D218:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3F
+ bls _0812D1DC
+_0812D222:
+ strh r7, [r6, 0x14]
+ movs r0, 0x5
+ strh r0, [r6, 0x8]
+ b _0812D246
+ .align 2, 0
+_0812D22C: .4byte gSprites
+_0812D230: .4byte gBattleAnimSpriteTemplate_83D7220
+_0812D234: .4byte sub_812D254
+_0812D238:
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0812D246
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_0812D246:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D06C
+
+ thumb_func_start sub_812D254
+sub_812D254: @ 812D254
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812D288
+ ldr r3, _0812D290 @ =gTasks
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_0812D288:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D290: .4byte gTasks
+ thumb_func_end sub_812D254
+
+ thumb_func_start sub_812D294
+sub_812D294: @ 812D294
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0812D2A8
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+_0812D2A8:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ bgt _0812D2DA
+ ldrh r0, [r5, 0x2E]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0812D2CC
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ b _0812D2D8
+_0812D2CC:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+_0812D2D8:
+ strb r0, [r2]
+_0812D2DA:
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1E
+ ble _0812D2F0
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812D2F0:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3D
+ bne _0812D33C
+ ldr r1, _0812D344 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldrh r0, [r5, 0x24]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x24]
+ strh r1, [r5, 0x26]
+ movs r0, 0x14
+ strh r0, [r5, 0x2E]
+ ldr r4, _0812D348 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _0812D34C @ =sub_8078B34
+ str r0, [r5, 0x1C]
+_0812D33C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D344: .4byte move_anim_8072740
+_0812D348: .4byte gBattleAnimEnemyMonIndex
+_0812D34C: .4byte sub_8078B34
+ thumb_func_end sub_812D294
+
+ thumb_func_start sub_812D350
+sub_812D350: @ 812D350
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0812D370 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812D374
+ cmp r0, 0x1
+ beq _0812D394
+ b _0812D3A6
+ .align 2, 0
+_0812D370: .4byte gTasks
+_0812D374:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D390 @ =gUnknown_084024B0
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812D3A6
+ .align 2, 0
+_0812D390: .4byte gUnknown_084024B0
+_0812D394:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812D3A6
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0812D3A6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D350
+
+ thumb_func_start sub_812D3AC
+sub_812D3AC: @ 812D3AC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0812D40C
+ cmp r0, 0x1
+ bgt _0812D3CC
+ cmp r0, 0
+ beq _0812D3D6
+ b _0812D4AE
+_0812D3CC:
+ cmp r0, 0x2
+ beq _0812D43C
+ cmp r0, 0x3
+ beq _0812D490
+ b _0812D4AE
+_0812D3D6:
+ ldr r4, _0812D408 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x32]
+ b _0812D484
+ .align 2, 0
+_0812D408: .4byte gBattleAnimPlayerMonIndex
+_0812D40C:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x60
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1A
+ strh r0, [r5, 0x32]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ movs r0, 0x32
+ ldrsh r2, [r5, r0]
+ adds r0, r6, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0812D43C
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_0812D43C:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x60
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x30
+ strh r0, [r5, 0x32]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ movs r0, 0x32
+ ldrsh r2, [r5, r0]
+ adds r0, r6, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _0812D4AE
+ movs r0, 0
+ strh r0, [r5, 0x34]
+ ldr r1, _0812D48C @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r6, 0
+ bl sub_8078F40
+_0812D484:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _0812D4AE
+ .align 2, 0
+_0812D48C: .4byte gSprites
+_0812D490:
+ ldrh r0, [r5, 0x26]
+ subs r0, 0x6
+ strh r0, [r5, 0x26]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ movs r2, 0x26
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _0812D4AE
+ adds r0, r5, 0
+ bl move_anim_8072740
+_0812D4AE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D3AC
+
+ thumb_func_start sub_812D4B4
+sub_812D4B4: @ 812D4B4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0812D4CC @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812D4D4
+ ldr r0, _0812D4D0 @ =0x0000fff0
+ b _0812D4D8
+ .align 2, 0
+_0812D4CC: .4byte gBattleAnimPlayerMonIndex
+_0812D4D0: .4byte 0x0000fff0
+_0812D4D4:
+ movs r0, 0x80
+ lsls r0, 1
+_0812D4D8:
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x22]
+ ldr r0, _0812D4E8 @ =sub_812D4EC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D4E8: .4byte sub_812D4EC
+ thumb_func_end sub_812D4B4
+
+ thumb_func_start sub_812D4EC
+sub_812D4EC: @ 812D4EC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x48
+ strh r0, [r4, 0x2E]
+ ldr r0, _0812D50C @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812D510
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 20
+ b _0812D518
+ .align 2, 0
+_0812D50C: .4byte gBattleAnimPlayerMonIndex
+_0812D510:
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 20
+ negs r0, r0
+_0812D518:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x10
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r5, r0, r1
+ strh r5, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812D564
+ ldr r0, _0812D584 @ =gSpriteTemplate_8402500
+ ldrh r1, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r4, 0x22]
+ adds r2, r5
+ lsls r2, 16
+ asrs r2, 16
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSpriteAndAnimate
+_0812D564:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x20
+ movs r1, 0x98
+ lsls r1, 1
+ cmp r0, r1
+ bls _0812D57E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812D57E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D584: .4byte gSpriteTemplate_8402500
+ thumb_func_end sub_812D4EC
+
+ thumb_func_start sub_812D588
+sub_812D588: @ 812D588
+ push {r4,lr}
+ adds r4, r0, 0
+ bl Random
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0812D5A2
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ b _0812D5AA
+_0812D5A2:
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x5
+_0812D5AA:
+ ldr r3, _0812D5DC @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _0812D5E0 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ bl Random
+ movs r1, 0x7
+ ands r0, r1
+ adds r1, r0, 0
+ cmp r1, 0x3
+ ble _0812D5CC
+ negs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+_0812D5CC:
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _0812D5E4 @ =sub_812D5E8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D5DC: .4byte 0x000003ff
+_0812D5E0: .4byte 0xfffffc00
+_0812D5E4: .4byte sub_812D5E8
+ thumb_func_end sub_812D588
+
+ thumb_func_start sub_812D5E8
+sub_812D5E8: @ 812D5E8
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ bgt _0812D62A
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0812D65E
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ movs r0, 0
+ b _0812D65C
+_0812D62A:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x2
+ bne _0812D640
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812D640:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x3
+ bne _0812D658
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812D670 @ =0x0000ffff
+ strh r0, [r3, 0x30]
+_0812D658:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+_0812D65C:
+ strh r0, [r3, 0x30]
+_0812D65E:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x3C
+ ble _0812D66C
+ adds r0, r3, 0
+ bl DestroySprite
+_0812D66C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D670: .4byte 0x0000ffff
+ thumb_func_end sub_812D5E8
+
+ thumb_func_start sub_812D674
+sub_812D674: @ 812D674
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812D6AC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812D6B4
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D6B0 @ =gUnknown_08402518
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812D6C6
+ .align 2, 0
+_0812D6AC: .4byte gTasks
+_0812D6B0: .4byte gUnknown_08402518
+_0812D6B4:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812D6C6
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0812D6C6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D674
+
+ thumb_func_start sub_812D6CC
+sub_812D6CC: @ 812D6CC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812D704 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812D70C
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D708 @ =gUnknown_08402540
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812D71E
+ .align 2, 0
+_0812D704: .4byte gTasks
+_0812D708: .4byte gUnknown_08402540
+_0812D70C:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812D71E
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0812D71E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D6CC
+
+ thumb_func_start sub_812D724
+sub_812D724: @ 812D724
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812D736
+ cmp r0, 0x1
+ beq _0812D760
+ b _0812D788
+_0812D736:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ movs r0, 0x90
+ lsls r0, 4
+ strh r0, [r4, 0x30]
+ ldr r0, _0812D75C @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0812D788
+ .align 2, 0
+_0812D75C: .4byte gBattleAnimPlayerMonIndex
+_0812D760:
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ subs r2, 0x60
+ strh r2, [r4, 0x30]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ ble _0812D788
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812D788:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D724
+
+ thumb_func_start sub_812D790
+sub_812D790: @ 812D790
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812D7C8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812D7D0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D7CC @ =gUnknown_08402590
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812D7E2
+ .align 2, 0
+_0812D7C8: .4byte gTasks
+_0812D7CC: .4byte gUnknown_08402590
+_0812D7D0:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812D7E2
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0812D7E2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D790
+
+ thumb_func_start sub_812D7E8
+sub_812D7E8: @ 812D7E8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0812D818 @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r3, r1, 0
+ cmp r0, 0x4
+ bls _0812D80E
+ b _0812DAFA
+_0812D80E:
+ lsls r0, 2
+ ldr r1, _0812D81C @ =_0812D820
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812D818: .4byte gTasks
+_0812D81C: .4byte _0812D820
+ .align 2, 0
+_0812D820:
+ .4byte _0812D834
+ .4byte _0812D888
+ .4byte _0812D8C4
+ .4byte _0812DA48
+ .4byte _0812DA84
+_0812D834:
+ ldr r1, _0812D850 @ =REG_MOSAIC
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _0812D854 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812D85C
+ ldr r0, _0812D858 @ =REG_BG1CNT
+ b _0812D85E
+ .align 2, 0
+_0812D850: .4byte REG_MOSAIC
+_0812D854: .4byte gBattleAnimPlayerMonIndex
+_0812D858: .4byte REG_BG1CNT
+_0812D85C:
+ ldr r0, _0812D87C @ =REG_BG2CNT
+_0812D85E:
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0812D880 @ =gTasks
+ mov r6, r8
+ lsls r1, r6, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0812D884 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1C]
+ b _0812DA2A
+ .align 2, 0
+_0812D87C: .4byte REG_BG2CNT
+_0812D880: .4byte gTasks
+_0812D884: .4byte gBattleAnimArgs
+_0812D888:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0xC]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _0812D8A2
+ b _0812DAFA
+_0812D8A2:
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xA]
+ ldr r1, _0812D8C0 @ =REG_MOSAIC
+ lsls r0, r2, 4
+ orrs r0, r2
+ strh r0, [r1]
+ cmp r2, 0xF
+ beq _0812D8BC
+ b _0812DAFA
+_0812D8BC:
+ b _0812DA78
+ .align 2, 0
+_0812D8C0: .4byte REG_MOSAIC
+_0812D8C4:
+ ldr r5, _0812D8F4 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r5]
+ ldr r1, _0812D8F8 @ =gBattleAnimEnemyMonIndex
+ ldrb r1, [r1]
+ mov r2, r8
+ lsls r4, r2, 2
+ adds r2, r4, r2
+ lsls r2, 3
+ adds r2, r3
+ ldrb r2, [r2, 0x1C]
+ bl sub_8031FC4
+ ldrb r1, [r5]
+ mov r0, sp
+ bl sub_8078954
+ bl IsContest
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ beq _0812D8FC
+ movs r1, 0
+ b _0812D906
+ .align 2, 0
+_0812D8F4: .4byte gBattleAnimPlayerMonIndex
+_0812D8F8: .4byte gBattleAnimEnemyMonIndex
+_0812D8FC:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r1, r0, 24
+_0812D906:
+ ldr r0, _0812D9CC @ =gUnknown_081FAF4C
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, _0812D9D0 @ =gBattleMonForms
+ ldr r0, _0812D9D4 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 11
+ ldr r1, [r1]
+ adds r1, r0
+ ldr r2, [sp]
+ ldr r0, _0812D9D8 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0812D9DC @ =0x84000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812DA20
+ ldr r5, _0812D9E0 @ =0x02019348
+ ldrh r0, [r5]
+ bl sub_80AEB1C
+ adds r4, r0, 0
+ ldrh r0, [r5, 0x2]
+ bl sub_80AEB1C
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _0812D9A2
+ ldr r6, [sp, 0x4]
+ movs r5, 0
+ movs r0, 0x7
+ mov r12, r0
+ movs r7, 0
+_0812D956:
+ movs r4, 0
+ adds r3, r7, r6
+ mov r1, r12
+ lsls r0, r1, 1
+ adds r2, r0, r6
+_0812D960:
+ ldrh r1, [r3]
+ ldrh r0, [r2]
+ strh r0, [r3]
+ strh r1, [r2]
+ adds r3, 0x2
+ subs r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0812D960
+ movs r2, 0x20
+ add r12, r2
+ adds r7, 0x40
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0812D956
+ movs r5, 0
+ movs r0, 0x80
+ lsls r0, 3
+ adds r3, r0, 0
+_0812D986:
+ adds r2, r5, 0x1
+ lsls r0, r5, 6
+ adds r1, r0, r6
+ movs r4, 0x7
+_0812D98E:
+ ldrh r0, [r1]
+ eors r0, r3
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0812D98E
+ adds r5, r2, 0
+ cmp r5, 0x7
+ ble _0812D986
+_0812D9A2:
+ ldr r0, _0812D9E0 @ =0x02019348
+ ldrh r0, [r0, 0x2]
+ bl sub_80AEB1C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812D9F0
+ ldr r3, _0812D9E4 @ =gSprites
+ ldr r4, _0812D9E8 @ =gObjectBankIDs
+ ldr r2, _0812D9D4 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, _0812D9EC @ =gSpriteAffineAnimTable_81E7C18
+ b _0812DA0A
+ .align 2, 0
+_0812D9CC: .4byte gUnknown_081FAF4C
+_0812D9D0: .4byte gBattleMonForms
+_0812D9D4: .4byte gBattleAnimPlayerMonIndex
+_0812D9D8: .4byte 0x040000d4
+_0812D9DC: .4byte 0x84000200
+_0812D9E0: .4byte 0x02019348
+_0812D9E4: .4byte gSprites
+_0812D9E8: .4byte gObjectBankIDs
+_0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18
+_0812D9F0:
+ ldr r3, _0812DA34 @ =gSprites
+ ldr r4, _0812DA38 @ =gObjectBankIDs
+ ldr r2, _0812DA3C @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, _0812DA40 @ =gSpriteAffineAnimTable_81E7BEC
+_0812DA0A:
+ str r1, [r0]
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_0812DA20:
+ ldr r0, _0812DA44 @ =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+_0812DA2A:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0812DAFA
+ .align 2, 0
+_0812DA34: .4byte gSprites
+_0812DA38: .4byte gObjectBankIDs
+_0812DA3C: .4byte gBattleAnimPlayerMonIndex
+_0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC
+_0812DA44: .4byte gTasks
+_0812DA48:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0xC]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812DAFA
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xA]
+ ldr r1, _0812DA80 @ =REG_MOSAIC
+ lsls r0, r2, 4
+ orrs r0, r2
+ strh r0, [r1]
+ cmp r2, 0
+ bne _0812DAFA
+_0812DA78:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812DAFA
+ .align 2, 0
+_0812DA80: .4byte REG_MOSAIC
+_0812DA84:
+ ldr r1, _0812DAA0 @ =REG_MOSAIC
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _0812DAA4 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812DAAC
+ ldr r2, _0812DAA8 @ =REG_BG1CNT
+ b _0812DAAE
+ .align 2, 0
+_0812DAA0: .4byte REG_MOSAIC
+_0812DAA4: .4byte gBattleAnimPlayerMonIndex
+_0812DAA8: .4byte REG_BG1CNT
+_0812DAAC:
+ ldr r2, _0812DB08 @ =REG_BG2CNT
+_0812DAAE:
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812DAF4
+ ldr r4, _0812DB0C @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812DAF4
+ ldr r0, _0812DB10 @ =gTasks
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r6, 0x1C
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ bne _0812DAF4
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ ldr r2, _0812DB14 @ =0x02017800
+ adds r1, r2
+ ldrh r1, [r1, 0x2]
+ bl sub_8032984
+_0812DAF4:
+ mov r0, r8
+ bl DestroyAnimVisualTask
+_0812DAFA:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DB08: .4byte REG_BG2CNT
+_0812DB0C: .4byte gBattleAnimPlayerMonIndex
+_0812DB10: .4byte gTasks
+_0812DB14: .4byte 0x02017800
+ thumb_func_end sub_812D7E8
+
+ thumb_func_start c3_80DFBE4
+c3_80DFBE4: @ 812DB18
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0812DB48 @ =gBattleAnimArgs
+ ldr r3, _0812DB4C @ =gSprites
+ ldr r2, _0812DB50 @ =gObjectBankIDs
+ ldr r1, _0812DB54 @ =gBattleAnimPlayerMonIndex
+ ldrb r1, [r1]
+ adds r1, r2
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ lsls r1, 29
+ lsrs r1, 31
+ strh r1, [r4, 0xE]
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DB48: .4byte gBattleAnimArgs
+_0812DB4C: .4byte gSprites
+_0812DB50: .4byte gObjectBankIDs
+_0812DB54: .4byte gBattleAnimPlayerMonIndex
+ thumb_func_end c3_80DFBE4
+
+ thumb_func_start sub_812DB58
+sub_812DB58: @ 812DB58
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0812DB7C @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ ldr r1, _0812DB80 @ =gBattleAnimEnemyMonIndex
+ ldrb r1, [r1]
+ movs r2, 0x1
+ bl sub_8031FC4
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DB7C: .4byte gBattleAnimPlayerMonIndex
+_0812DB80: .4byte gBattleAnimEnemyMonIndex
+ thumb_func_end sub_812DB58
+
+ thumb_func_start sub_812DB84
+sub_812DB84: @ 812DB84
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _0812DBB4 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _0812DBA8
+ b _0812DE80
+_0812DBA8:
+ lsls r0, 2
+ ldr r1, _0812DBB8 @ =_0812DBBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812DBB4: .4byte gTasks
+_0812DBB8: .4byte _0812DBBC
+ .align 2, 0
+_0812DBBC:
+ .4byte _0812DBD0
+ .4byte _0812DCFC
+ .4byte _0812DD4C
+ .4byte _0812DDB6
+ .4byte _0812DDEA
+_0812DBD0:
+ ldr r1, _0812DC70 @ =REG_BLDCNT
+ ldr r4, _0812DC74 @ =0x00003f42
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _0812DC78 @ =REG_BG1CNT
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812DC12
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_0812DC12:
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ ldr r2, _0812DC7C @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0812DC80 @ =0x85000400
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _0812DC84 @ =gUnknown_08D2AA98
+ bl LZDecompressVram
+ ldr r0, _0812DC88 @ =gUnknown_08D2A9E0
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _0812DC8C @ =gUnknown_08D2AA80
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812DC9C
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+ ldr r1, _0812DC90 @ =gUnknown_030042C0
+ ldr r2, _0812DC94 @ =0x0000ffc8
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0812DC98 @ =gUnknown_030041B4
+ strh r4, [r0]
+ b _0812DCCE
+ .align 2, 0
+_0812DC70: .4byte REG_BLDCNT
+_0812DC74: .4byte 0x00003f42
+_0812DC78: .4byte REG_BG1CNT
+_0812DC7C: .4byte 0x040000d4
+_0812DC80: .4byte 0x85000400
+_0812DC84: .4byte gUnknown_08D2AA98
+_0812DC88: .4byte gUnknown_08D2A9E0
+_0812DC8C: .4byte gUnknown_08D2AA80
+_0812DC90: .4byte gUnknown_030042C0
+_0812DC94: .4byte 0x0000ffc8
+_0812DC98: .4byte gUnknown_030041B4
+_0812DC9C:
+ ldr r0, _0812DCB4 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812DCC0
+ ldr r1, _0812DCB8 @ =gUnknown_030042C0
+ ldr r4, _0812DCBC @ =0x0000ff79
+ adds r0, r4, 0
+ b _0812DCC6
+ .align 2, 0
+_0812DCB4: .4byte gBattleAnimPlayerMonIndex
+_0812DCB8: .4byte gUnknown_030042C0
+_0812DCBC: .4byte 0x0000ff79
+_0812DCC0:
+ ldr r1, _0812DCEC @ =gUnknown_030042C0
+ ldr r2, _0812DCF0 @ =0x0000fff6
+ adds r0, r2, 0
+_0812DCC6:
+ strh r0, [r1]
+ ldr r1, _0812DCF4 @ =gUnknown_030041B4
+ movs r0, 0
+ strh r0, [r1]
+_0812DCCE:
+ ldr r0, _0812DCF8 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0812DCEC @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1C]
+ ldr r0, _0812DCF4 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ b _0812DDD2
+ .align 2, 0
+_0812DCEC: .4byte gUnknown_030042C0
+_0812DCF0: .4byte 0x0000fff6
+_0812DCF4: .4byte gUnknown_030041B4
+_0812DCF8: .4byte gTasks
+_0812DCFC:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x10]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0812DD12
+ b _0812DE80
+_0812DD12:
+ movs r0, 0
+ strh r0, [r3, 0x10]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _0812DD28
+ movs r0, 0xC
+ strh r0, [r3, 0xA]
+_0812DD28:
+ ldr r2, _0812DD48 @ =REG_BLDALPHA
+ ldrh r1, [r3, 0xA]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r4, 0xA
+ ldrsh r0, [r3, r4]
+ cmp r0, 0xC
+ beq _0812DD40
+ b _0812DE80
+_0812DD40:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _0812DE80
+ .align 2, 0
+_0812DD48: .4byte REG_BLDALPHA
+_0812DD4C:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0812DD64
+ movs r0, 0
+ strh r0, [r3, 0xA]
+_0812DD64:
+ ldr r2, _0812DDA4 @ =REG_BLDALPHA
+ ldrh r1, [r3, 0xA]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _0812DD7C
+ b _0812DE80
+_0812DD7C:
+ ldr r2, _0812DDA8 @ =gUnknown_030042C0
+ ldr r1, _0812DDAC @ =gUnknown_084025C0
+ movs r4, 0xC
+ ldrsh r0, [r3, r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r3, 0x1C]
+ adds r0, r1
+ strh r0, [r2]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0812DDB0
+ strh r0, [r3, 0x8]
+ b _0812DE80
+ .align 2, 0
+_0812DDA4: .4byte REG_BLDALPHA
+_0812DDA8: .4byte gUnknown_030042C0
+_0812DDAC: .4byte gUnknown_084025C0
+_0812DDB0:
+ movs r0, 0x3
+ strh r0, [r3, 0x8]
+ b _0812DE80
+_0812DDB6:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xE]
+ adds r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0812DE80
+ movs r0, 0
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+_0812DDD2:
+ strh r0, [r1, 0x8]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xE4
+ bl PlaySE12WithPanning
+ b _0812DE80
+_0812DDEA:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ add r5, sp, 0xC
+ movs r6, 0
+ ldr r1, _0812DE90 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r0, _0812DE94 @ =0x85000400
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_0812DE0C:
+ str r6, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _0812DE0C
+ str r6, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ ldr r0, _0812DE90 @ =0x040000d4
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0812DE98 @ =0x85000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812DE5A
+ ldr r2, _0812DE9C @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812DE5A:
+ ldr r2, _0812DE9C @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812DEA0 @ =gUnknown_030042C0
+ strh r4, [r0]
+ ldr r0, _0812DEA4 @ =gUnknown_030041B4
+ strh r4, [r0]
+ ldr r0, _0812DEA8 @ =REG_BLDCNT
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_0812DE80:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DE90: .4byte 0x040000d4
+_0812DE94: .4byte 0x85000400
+_0812DE98: .4byte 0x85000200
+_0812DE9C: .4byte REG_BG1CNT
+_0812DEA0: .4byte gUnknown_030042C0
+_0812DEA4: .4byte gUnknown_030041B4
+_0812DEA8: .4byte REG_BLDCNT
+ thumb_func_end sub_812DB84
+
+ thumb_func_start sub_812DEAC
+sub_812DEAC: @ 812DEAC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFC
+ lsls r1, 14
+ ands r1, r0
+ lsrs r5, r1, 16
+ adds r1, r5, 0
+ cmp r1, 0x1F
+ ble _0812DED6
+ movs r0, 0x20
+ subs r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0812DED6:
+ ldr r4, _0812DFD0 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r5
+ strh r0, [r7, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r7, 0x22]
+ ldr r1, _0812DFD4 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r7, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r7, 0x32]
+ ldr r4, _0812DFD8 @ =gBattleAnimSpriteTemplate_84025EC
+ movs r0, 0x20
+ ldrsh r1, [r7, r0]
+ movs r0, 0x22
+ ldrsh r2, [r7, r0]
+ adds r5, r7, 0
+ adds r5, 0x43
+ ldrb r3, [r5]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ bl CreateSprite
+ mov r9, r0
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r0, 0x20
+ ldrsh r1, [r7, r0]
+ movs r0, 0x22
+ ldrsh r2, [r7, r0]
+ ldrb r3, [r5]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ bl CreateSprite
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ mov r0, r9
+ lsls r2, r0, 4
+ add r2, r9
+ lsls r2, 2
+ ldr r1, _0812DFDC @ =gSprites
+ mov r10, r1
+ adds r5, r2, r1
+ adds r0, r5, 0
+ movs r1, 0x1
+ str r2, [sp]
+ bl StartSpriteAnim
+ mov r0, r8
+ lsls r6, r0, 4
+ add r6, r8
+ lsls r6, 2
+ mov r1, r10
+ adds r4, r6, r1
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ ldr r1, _0812DFD4 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ ldr r0, _0812DFE0 @ =0x0000ffff
+ strh r0, [r5, 0x3C]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r4, 0x3C]
+ adds r5, 0x3E
+ ldrb r0, [r5]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5]
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ orrs r0, r1
+ strb r0, [r4]
+ movs r0, 0x1C
+ add r10, r0
+ ldr r2, [sp]
+ add r2, r10
+ ldr r0, _0812DFE4 @ =sub_812E0F8
+ str r0, [r2]
+ add r6, r10
+ str r0, [r6]
+ mov r1, r9
+ strh r1, [r7, 0x3A]
+ mov r0, r8
+ strh r0, [r7, 0x3C]
+ ldr r0, _0812DFE8 @ =sub_812DFEC
+ str r0, [r7, 0x1C]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DFD0: .4byte gBattleAnimPlayerMonIndex
+_0812DFD4: .4byte gBattleAnimArgs
+_0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC
+_0812DFDC: .4byte gSprites
+_0812DFE0: .4byte 0x0000ffff
+_0812DFE4: .4byte sub_812E0F8
+_0812DFE8: .4byte sub_812DFEC
+ thumb_func_end sub_812DEAC
+
+ thumb_func_start sub_812DFEC
+sub_812DFEC: @ 812DFEC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x32]
+ ldrh r0, [r3, 0x34]
+ adds r2, r0
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r3, 0x26]
+ subs r1, r0
+ strh r1, [r3, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r3, 0x34]
+ movs r2, 0x36
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0812E03A
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x8
+ negs r1, r1
+ cmp r0, r1
+ bge _0812E03A
+ ldr r2, _0812E094 @ =gSprites
+ movs r0, 0x3A
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrh r0, [r3, 0x36]
+ adds r0, 0x1
+ strh r0, [r3, 0x36]
+_0812E03A:
+ movs r1, 0x36
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _0812E06E
+ movs r2, 0x26
+ ldrsh r1, [r3, r2]
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _0812E06E
+ ldr r2, _0812E094 @ =gSprites
+ movs r0, 0x3C
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrh r0, [r3, 0x36]
+ adds r0, 0x1
+ strh r0, [r3, 0x36]
+_0812E06E:
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0812E090
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812E098 @ =sub_812E09C
+ str r0, [r3, 0x1C]
+_0812E090:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E094: .4byte gSprites
+_0812E098: .4byte sub_812E09C
+ thumb_func_end sub_812DFEC
+
+ thumb_func_start sub_812E09C
+sub_812E09C: @ 812E09C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _0812E0F0 @ =gSprites
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r6, r5, 0
+ adds r6, 0x1C
+ adds r0, r3, r6
+ ldr r2, [r0]
+ ldr r0, _0812E0F4 @ =SpriteCallbackDummy
+ cmp r2, r0
+ bne _0812E0E8
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldr r0, [r1]
+ cmp r0, r2
+ bne _0812E0E8
+ adds r0, r3, r5
+ bl DestroySprite
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812E0E8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E0F0: .4byte gSprites
+_0812E0F4: .4byte SpriteCallbackDummy
+ thumb_func_end sub_812E09C
+
+ thumb_func_start sub_812E0F8
+sub_812E0F8: @ 812E0F8
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0812E144
+ ldrh r2, [r3, 0x32]
+ ldrh r1, [r3, 0x34]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x26]
+ subs r0, r1
+ strh r0, [r3, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r3, 0x34]
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0812E144
+ mov r1, r12
+ ldrb r0, [r1]
+ movs r1, 0x4
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldr r0, _0812E148 @ =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+_0812E144:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E148: .4byte SpriteCallbackDummy
+ thumb_func_end sub_812E0F8
+
+ thumb_func_start sub_812E14C
+sub_812E14C: @ 812E14C
+ push {r4-r6,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0812E174 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _0812E16A
+ b _0812E476
+_0812E16A:
+ lsls r0, 2
+ ldr r1, _0812E178 @ =_0812E17C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812E174: .4byte gTasks
+_0812E178: .4byte _0812E17C
+ .align 2, 0
+_0812E17C:
+ .4byte _0812E194
+ .4byte _0812E300
+ .4byte _0812E388
+ .4byte _0812E3BC
+ .4byte _0812E3E8
+ .4byte _0812E420
+_0812E194:
+ ldr r1, _0812E230 @ =REG_BLDCNT
+ ldr r3, _0812E234 @ =0x00003f42
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0812E238 @ =0x00000d03
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _0812E23C @ =REG_BG1CNT
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812E1D4
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_0812E1D4:
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ ldr r2, _0812E240 @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0812E244 @ =0x85000400
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _0812E248 @ =gUnknown_08D2AA98
+ bl LZDecompressVram
+ ldr r0, _0812E24C @ =gUnknown_08D2A9E0
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _0812E250 @ =gUnknown_08D2AA80
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812E260
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+ ldr r1, _0812E254 @ =gUnknown_030042C0
+ ldr r3, _0812E258 @ =0x0000ffc8
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _0812E25C @ =gUnknown_030041B4
+ strh r4, [r0]
+ b _0812E2D2
+ .align 2, 0
+_0812E230: .4byte REG_BLDCNT
+_0812E234: .4byte 0x00003f42
+_0812E238: .4byte 0x00000d03
+_0812E23C: .4byte REG_BG1CNT
+_0812E240: .4byte 0x040000d4
+_0812E244: .4byte 0x85000400
+_0812E248: .4byte gUnknown_08D2AA98
+_0812E24C: .4byte gUnknown_08D2A9E0
+_0812E250: .4byte gUnknown_08D2AA80
+_0812E254: .4byte gUnknown_030042C0
+_0812E258: .4byte 0x0000ffc8
+_0812E25C: .4byte gUnknown_030041B4
+_0812E260:
+ ldr r0, _0812E2A0 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812E2B4
+ ldr r1, _0812E2A4 @ =gUnknown_030042C0
+ cmp r4, 0x1
+ bne _0812E284
+ ldr r2, _0812E2A8 @ =0x0000ff65
+ adds r0, r2, 0
+ strh r0, [r1]
+_0812E284:
+ cmp r4, 0x3
+ bne _0812E28E
+ ldr r3, _0812E2AC @ =0x0000ff8d
+ adds r0, r3, 0
+ strh r0, [r1]
+_0812E28E:
+ cmp r4, 0
+ bne _0812E296
+ movs r0, 0xE
+ strh r0, [r1]
+_0812E296:
+ cmp r4, 0x2
+ bne _0812E2CC
+ ldr r1, _0812E2A4 @ =gUnknown_030042C0
+ ldr r2, _0812E2B0 @ =0x0000ffec
+ b _0812E2C8
+ .align 2, 0
+_0812E2A0: .4byte gBattleAnimEnemyMonIndex
+_0812E2A4: .4byte gUnknown_030042C0
+_0812E2A8: .4byte 0x0000ff65
+_0812E2AC: .4byte 0x0000ff8d
+_0812E2B0: .4byte 0x0000ffec
+_0812E2B4:
+ cmp r4, 0x1
+ bne _0812E2C0
+ ldr r1, _0812E2EC @ =gUnknown_030042C0
+ ldr r3, _0812E2F0 @ =0x0000ff79
+ adds r0, r3, 0
+ strh r0, [r1]
+_0812E2C0:
+ cmp r4, 0
+ bne _0812E2CC
+ ldr r1, _0812E2EC @ =gUnknown_030042C0
+ ldr r2, _0812E2F4 @ =0x0000fff6
+_0812E2C8:
+ adds r0, r2, 0
+ strh r0, [r1]
+_0812E2CC:
+ ldr r1, _0812E2F8 @ =gUnknown_030041B4
+ movs r0, 0
+ strh r0, [r1]
+_0812E2D2:
+ ldr r0, _0812E2FC @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0812E2EC @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1C]
+ ldr r0, _0812E2F8 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1E]
+ b _0812E380
+ .align 2, 0
+_0812E2EC: .4byte gUnknown_030042C0
+_0812E2F0: .4byte 0x0000ff79
+_0812E2F4: .4byte 0x0000fff6
+_0812E2F8: .4byte gUnknown_030041B4
+_0812E2FC: .4byte gTasks
+_0812E300:
+ ldr r1, _0812E334 @ =gTasks
+ lsls r4, r6, 2
+ adds r0, r4, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r0, 0
+ strh r0, [r5, 0xE]
+ ldr r0, _0812E338 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812E344
+ ldr r2, _0812E33C @ =gUnknown_030042C0
+ ldr r1, _0812E340 @ =gUnknown_08402604
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r5, [r5, 0x1C]
+ adds r0, r5
+ b _0812E356
+ .align 2, 0
+_0812E334: .4byte gTasks
+_0812E338: .4byte gBattleAnimEnemyMonIndex
+_0812E33C: .4byte gUnknown_030042C0
+_0812E340: .4byte gUnknown_08402604
+_0812E344:
+ ldr r2, _0812E374 @ =gUnknown_030042C0
+ ldr r1, _0812E378 @ =gUnknown_08402604
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldrh r0, [r5, 0x1C]
+ subs r0, r1
+_0812E356:
+ strh r0, [r2]
+ ldr r0, _0812E37C @ =gTasks
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ adds r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0812E380
+ strh r0, [r1, 0x8]
+ b _0812E476
+ .align 2, 0
+_0812E374: .4byte gUnknown_030042C0
+_0812E378: .4byte gUnknown_08402604
+_0812E37C: .4byte gTasks
+_0812E380:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0812E476
+_0812E388:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _0812E3A2
+ movs r0, 0x5
+ strh r0, [r4, 0xA]
+_0812E3A2:
+ ldr r2, _0812E3B8 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0xA]
+ lsls r0, 8
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bne _0812E476
+ b _0812E3DC
+ .align 2, 0
+_0812E3B8: .4byte REG_BLDALPHA
+_0812E3BC:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r1, [r4, 0xE]
+ adds r1, 0x1
+ strh r1, [r4, 0xE]
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, _0812E3E4 @ =gUnknown_08402608
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ ble _0812E476
+_0812E3DC:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812E476
+ .align 2, 0
+_0812E3E4: .4byte gUnknown_08402608
+_0812E3E8:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ ble _0812E402
+ movs r0, 0xD
+ strh r0, [r4, 0xA]
+_0812E402:
+ ldr r2, _0812E41C @ =REG_BLDALPHA
+ ldrh r0, [r4, 0xA]
+ lsls r0, 8
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xD
+ bne _0812E476
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812E476
+ .align 2, 0
+_0812E41C: .4byte REG_BLDALPHA
+_0812E420:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ ldr r1, _0812E480 @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _0812E484 @ =0x85000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812E450
+ ldr r2, _0812E488 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812E450:
+ ldr r2, _0812E488 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812E48C @ =gUnknown_030042C0
+ strh r4, [r0]
+ ldr r0, _0812E490 @ =gUnknown_030041B4
+ strh r4, [r0]
+ ldr r0, _0812E494 @ =REG_BLDCNT
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_0812E476:
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E480: .4byte 0x040000d4
+_0812E484: .4byte 0x85000200
+_0812E488: .4byte REG_BG1CNT
+_0812E48C: .4byte gUnknown_030042C0
+_0812E490: .4byte gUnknown_030041B4
+_0812E494: .4byte REG_BLDCNT
+ thumb_func_end sub_812E14C
+
+ thumb_func_start sub_812E498
+sub_812E498: @ 812E498
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812E4D0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812E4D8
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812E4D4 @ =gUnknown_08402610
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812E4EA
+ .align 2, 0
+_0812E4D0: .4byte gTasks
+_0812E4D4: .4byte gUnknown_08402610
+_0812E4D8:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812E4EA
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0812E4EA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E498
+
+ thumb_func_start sub_812E4F0
+sub_812E4F0: @ 812E4F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _0812E50E
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0812E562
+_0812E50E:
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ cmp r1, 0x14
+ ble _0812E562
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xA0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x80
+ strh r0, [r4, 0x32]
+ ldr r0, _0812E53C @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812E540
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ b _0812E546
+ .align 2, 0
+_0812E53C: .4byte gBattleAnimPlayerMonIndex
+_0812E540:
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+_0812E546:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ ble _0812E562
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812E562:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E4F0
+
+ thumb_func_start sub_812E568
+sub_812E568: @ 812E568
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _0812E58C @ =gTasks
+ adds r4, r0, r1
+ ldr r5, _0812E590 @ =gBattleAnimArgs
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0812E594
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _0812E628
+ .align 2, 0
+_0812E58C: .4byte gTasks
+_0812E590: .4byte gBattleAnimArgs
+_0812E594:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bge _0812E5A0
+ movs r0, 0
+ strh r0, [r5, 0x4]
+_0812E5A0:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x2
+ ble _0812E5AC
+ movs r0, 0x2
+ strh r0, [r5, 0x4]
+_0812E5AC:
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r1, 1
+ movs r0, 0x8
+ subs r0, r1
+ strh r0, [r4, 0xE]
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ lsls r0, 7
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r5, 0x4]
+ adds r0, 0x2
+ strh r0, [r4, 0x12]
+ ldrh r0, [r5, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x14]
+ ldrb r0, [r5]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0812E5F8
+ ldr r0, _0812E5F4 @ =gBattleAnimPlayerMonIndex
+ b _0812E5FA
+ .align 2, 0
+_0812E5F4: .4byte gBattleAnimPlayerMonIndex
+_0812E5F8:
+ ldr r0, _0812E630 @ =gBattleAnimEnemyMonIndex
+_0812E5FA:
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812E618
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x12]
+_0812E618:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _0812E634 @ =sub_812E638
+ str r0, [r4]
+_0812E628:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E630: .4byte gBattleAnimEnemyMonIndex
+_0812E634: .4byte sub_812E638
+ thumb_func_end sub_812E568
+
+ thumb_func_start sub_812E638
+sub_812E638: @ 812E638
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0812E65C @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r6, [r4, r0]
+ cmp r6, 0x1
+ beq _0812E6C0
+ cmp r6, 0x1
+ bgt _0812E660
+ cmp r6, 0
+ beq _0812E66C
+ b _0812E798
+ .align 2, 0
+_0812E65C: .4byte gTasks
+_0812E660:
+ cmp r6, 0x2
+ beq _0812E718
+ cmp r6, 0x3
+ bne _0812E66A
+ b _0812E788
+_0812E66A:
+ b _0812E798
+_0812E66C:
+ ldr r2, _0812E6BC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0xC]
+ ldrh r1, [r4, 0x10]
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0812E798
+ strh r6, [r4, 0xA]
+ b _0812E780
+ .align 2, 0
+_0812E6BC: .4byte gSprites
+_0812E6C0:
+ ldr r2, _0812E714 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r4, 0x12]
+ subs r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ cmp r1, r0
+ blt _0812E798
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _0812E780
+ .align 2, 0
+_0812E714: .4byte gSprites
+_0812E718:
+ ldr r2, _0812E77C @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ movs r5, 0
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0xC]
+ ldrh r1, [r4, 0x10]
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0812E798
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0812E780
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0x8]
+ b _0812E798
+ .align 2, 0
+_0812E77C: .4byte gSprites
+_0812E780:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812E798
+_0812E788:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0812E798:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E638
+
+ thumb_func_start sub_812E7A0
+sub_812E7A0: @ 812E7A0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0812E7BC @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0812E7C4
+ strh r0, [r4, 0x20]
+ ldr r1, _0812E7C0 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ b _0812E7CE
+ .align 2, 0
+_0812E7BC: .4byte gBattleAnimPlayerMonIndex
+_0812E7C0: .4byte gBattleAnimArgs
+_0812E7C4:
+ movs r0, 0xF0
+ strh r0, [r4, 0x20]
+ ldr r1, _0812E7E8 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ subs r0, 0x1E
+_0812E7CE:
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrb r1, [r1, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _0812E7EC @ =sub_812E7F0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E7E8: .4byte gBattleAnimArgs
+_0812E7EC: .4byte sub_812E7F0
+ thumb_func_end sub_812E7A0
+
+ thumb_func_start sub_812E7F0
+sub_812E7F0: @ 812E7F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldr r0, _0812E830 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812E834
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x5
+ strh r1, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0xF0
+ ble _0812E822
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812E822:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r1, 0x10
+ bl Sin
+ b _0812E858
+ .align 2, 0
+_0812E830: .4byte gBattleAnimPlayerMonIndex
+_0812E834:
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x5
+ strh r1, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ lsls r1, 16
+ cmp r1, 0
+ bge _0812E84C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812E84C:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r1, 0x10
+ bl Cos
+_0812E858:
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E7F0
+
+ thumb_func_start sub_812E860
+sub_812E860: @ 812E860
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _0812E8A8 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ strh r0, [r4, 0x22]
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r4, 0x24]
+ ldr r0, _0812E8AC @ =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _0812E8B0 @ =sub_812E8B4
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E8A8: .4byte gTasks
+_0812E8AC: .4byte gBattleAnimArgs
+_0812E8B0: .4byte sub_812E8B4
+ thumb_func_end sub_812E860
+
+ thumb_func_start sub_812E8B4
+sub_812E8B4: @ 812E8B4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0812E8E0 @ =gTasks
+ adds r7, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ mov r8, r0
+ cmp r0, 0x1
+ beq _0812E950
+ cmp r0, 0x1
+ bgt _0812E8E4
+ cmp r0, 0
+ beq _0812E8EC
+ b _0812E9CA
+ .align 2, 0
+_0812E8E0: .4byte gTasks
+_0812E8E4:
+ mov r2, r8
+ cmp r2, 0x2
+ beq _0812E9B8
+ b _0812E9CA
+_0812E8EC:
+ movs r3, 0x80
+ lsls r3, 2
+ adds r0, r3, 0
+ ldrh r1, [r7, 0xC]
+ adds r2, r0, r1
+ strh r2, [r7, 0xC]
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r3, [r7, 0x24]
+ mov r8, r3
+ movs r3, 0x24
+ ldrsh r1, [r7, r3]
+ cmp r0, r1
+ blt _0812E9CA
+ mov r0, r8
+ subs r5, r0, r2
+ lsls r5, 16
+ asrs r5, 16
+ adds r6, r1, 0
+ lsls r6, 1
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl __divsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x1
+ ands r4, r1
+ cmp r4, 0
+ bne _0812E944
+ lsls r0, 16
+ asrs r0, 16
+ mov r2, r8
+ subs r0, r2, r0
+ b _0812E9A2
+_0812E944:
+ lsls r0, 16
+ asrs r0, 16
+ mov r3, r8
+ subs r0, r3
+ strh r0, [r7, 0xC]
+ b _0812E9CA
+_0812E950:
+ ldr r1, _0812E9A8 @ =0xfffffe00
+ adds r0, r1, 0
+ ldrh r2, [r7, 0xC]
+ adds r1, r0, r2
+ strh r1, [r7, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r7, r3]
+ movs r2, 0x24
+ ldrsh r6, [r7, r2]
+ cmn r0, r6
+ bgt _0812E9CA
+ ldrh r3, [r7, 0x24]
+ mov r9, r3
+ mov r0, r9
+ subs r4, r0, r1
+ lsls r4, 16
+ asrs r4, 16
+ lsls r6, 1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __divsi3
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ mov r1, r8
+ ands r1, r5
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _0812E9AC
+ lsls r0, r2, 16
+ asrs r0, 16
+ mov r2, r9
+ subs r0, r2
+_0812E9A2:
+ strh r0, [r7, 0xC]
+ strh r1, [r7, 0x8]
+ b _0812E9CA
+ .align 2, 0
+_0812E9A8: .4byte 0xfffffe00
+_0812E9AC:
+ lsls r0, r2, 16
+ asrs r0, 16
+ mov r3, r9
+ subs r0, r3, r0
+ strh r0, [r7, 0xC]
+ b _0812E9CA
+_0812E9B8:
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _0812EA40
+_0812E9CA:
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r7, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldr r2, _0812EA38 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ movs r2, 0xC
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bge _0812E9FE
+ adds r0, 0x3F
+_0812E9FE:
+ asrs r0, 6
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r7, 0xA]
+ adds r0, 0x1
+ strh r0, [r7, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0812EA40
+ ldrh r1, [r7, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ beq _0812EA3C
+ subs r0, r1, 0x1
+ strh r0, [r7, 0x20]
+ ldrh r0, [r7, 0x24]
+ ldrh r1, [r7, 0x22]
+ subs r0, r1
+ strh r0, [r7, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _0812EA40
+ movs r0, 0x10
+ strh r0, [r7, 0x24]
+ b _0812EA40
+ .align 2, 0
+_0812EA38: .4byte gSprites
+_0812EA3C:
+ movs r0, 0x2
+ strh r0, [r7, 0x8]
+_0812EA40:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E8B4
+
+ thumb_func_start sub_812EA4C
+sub_812EA4C: @ 812EA4C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0812EAAC
+ ldr r6, _0812EAA4 @ =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bne _0812EA80
+ ldr r4, _0812EAA8 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_0812EA80:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r1, [r6, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r1, r2
+ strh r0, [r5, 0x22]
+ movs r0, 0x80
+ strh r0, [r5, 0x30]
+ movs r0, 0xC0
+ lsls r0, 2
+ strh r0, [r5, 0x32]
+ strh r1, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _0812EB0A
+ .align 2, 0
+_0812EAA4: .4byte gBattleAnimArgs
+_0812EAA8: .4byte gBattleAnimPlayerMonIndex
+_0812EAAC:
+ ldrh r1, [r5, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r5, 0x26]
+ adds r0, r2
+ strh r0, [r5, 0x26]
+ movs r2, 0x36
+ ldrsh r0, [r5, r2]
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _0812EAEA
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmn r1, r0
+ ble _0812EAEA
+ movs r0, 0x1
+ strh r0, [r5, 0x36]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 1
+ strh r0, [r5, 0x32]
+_0812EAEA:
+ adds r0, r4, 0
+ adds r0, 0xC0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x80
+ strh r0, [r5, 0x32]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812EB0A
+ adds r0, r5, 0
+ bl move_anim_8072740
+_0812EB0A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812EA4C
+
+ thumb_func_start sub_812EB10
+sub_812EB10: @ 812EB10
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldr r1, _0812EB40 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0812EC1C
+ ldr r0, _0812EB44 @ =gBattleAnimArgs
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ mov r8, r0
+ cmp r1, 0
+ bne _0812EB4C
+ ldr r0, _0812EB48 @ =gBattleAnimPlayerMonIndex
+ b _0812EB4E
+ .align 2, 0
+_0812EB40: .4byte gTasks
+_0812EB44: .4byte gBattleAnimArgs
+_0812EB48: .4byte gBattleAnimPlayerMonIndex
+_0812EB4C:
+ ldr r0, _0812EB88 @ =gBattleAnimEnemyMonIndex
+_0812EB4E:
+ ldrb r0, [r0]
+ strh r0, [r2, 0x1E]
+ mov r1, r8
+ ldrb r0, [r1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0812EB8C @ =gTasks
+ lsls r4, r7, 2
+ adds r0, r4, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ strh r5, [r6, 0x1C]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078E70
+ mov r2, r8
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x1
+ beq _0812EBB0
+ cmp r0, 0x1
+ bgt _0812EB90
+ cmp r0, 0
+ beq _0812EB98
+ lsls r2, r5, 4
+ b _0812EBF8
+ .align 2, 0
+_0812EB88: .4byte gBattleAnimEnemyMonIndex
+_0812EB8C: .4byte gTasks
+_0812EB90:
+ cmp r0, 0x2
+ beq _0812EBBA
+ lsls r2, r5, 4
+ b _0812EBF8
+_0812EB98:
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r5, 0
+ movs r1, 0xE0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r5, 0
+ bl sub_8079A64
+ lsls r2, r5, 4
+ b _0812EBF8
+_0812EBB0:
+ movs r2, 0x98
+ lsls r2, 1
+ movs r3, 0xF0
+ lsls r3, 4
+ b _0812EBC2
+_0812EBBA:
+ movs r2, 0x98
+ lsls r2, 1
+ movs r3, 0xF1
+ lsls r3, 8
+_0812EBC2:
+ adds r0, r5, 0
+ movs r1, 0xD0
+ bl obj_id_set_rotscale
+ adds r0, r5, 0
+ bl sub_8079A64
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812EBE8
+ ldrb r0, [r6, 0x1E]
+ bl GetBankSide
+ lsls r0, 24
+ lsls r2, r5, 4
+ cmp r0, 0
+ bne _0812EBF8
+_0812EBE8:
+ ldr r0, _0812EC14 @ =gSprites
+ lsls r2, r5, 4
+ adds r1, r2, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x10
+ strh r0, [r1, 0x26]
+_0812EBF8:
+ ldr r1, _0812EC14 @ =gSprites
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x24]
+ ldr r0, _0812EC18 @ =gTasks
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0812EC68
+ .align 2, 0
+_0812EC14: .4byte gSprites
+_0812EC18: .4byte gTasks
+_0812EC1C:
+ ldrb r5, [r2, 0x1C]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0812EC40
+ strh r4, [r2, 0xC]
+ ldr r0, _0812EC74 @ =gSprites
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x24]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+_0812EC40:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bne _0812EC68
+ adds r0, r5, 0
+ bl sub_8078F40
+ ldr r1, _0812EC74 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ strh r4, [r0, 0x24]
+ strh r4, [r0, 0x26]
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_0812EC68:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EC74: .4byte gSprites
+ thumb_func_end sub_812EB10
+
+ thumb_func_start sub_812EC78
+sub_812EC78: @ 812EC78
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xC
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, r0
+ ldr r3, _0812ECC4 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _0812ECC8 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ bl Random
+ ldr r5, _0812ECCC @ =0x000001ff
+ ands r5, r0
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _0812ECD0
+ movs r2, 0xBC
+ lsls r2, 3
+ adds r0, r5, r2
+ b _0812ECD8
+ .align 2, 0
+_0812ECC4: .4byte 0x000003ff
+_0812ECC8: .4byte 0xfffffc00
+_0812ECCC: .4byte 0x000001ff
+_0812ECD0:
+ movs r3, 0xBC
+ lsls r3, 3
+ adds r0, r3, 0
+ subs r0, r5
+_0812ECD8:
+ strh r0, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812ECEA
+ movs r2, 0x90
+ lsls r2, 3
+ adds r0, r1, r2
+ b _0812ECF2
+_0812ECEA:
+ movs r3, 0x90
+ lsls r3, 3
+ adds r0, r3, 0
+ subs r0, r1
+_0812ECF2:
+ strh r0, [r4, 0x30]
+ ldr r0, _0812ED04 @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812ED0C
+ ldr r0, _0812ED08 @ =0x0000fff8
+ b _0812ED0E
+ .align 2, 0
+_0812ED04: .4byte gBattleAnimArgs
+_0812ED08: .4byte 0x0000fff8
+_0812ED0C:
+ movs r0, 0xF8
+_0812ED0E:
+ strh r0, [r4, 0x20]
+ movs r0, 0x68
+ strh r0, [r4, 0x22]
+ ldr r0, _0812ED20 @ =sub_812ED24
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812ED20: .4byte sub_812ED24
+ thumb_func_end sub_812EC78
+
+ thumb_func_start sub_812ED24
+sub_812ED24: @ 812ED24
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812ED3C
+ ldrh r3, [r4, 0x2E]
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ b _0812ED46
+_0812ED3C:
+ ldrh r3, [r4, 0x2E]
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+_0812ED46:
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ adds r0, r3, 0
+ subs r0, 0x16
+ strh r0, [r4, 0x2E]
+ adds r1, r2, 0
+ subs r1, 0x30
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0812ED6A
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_0812ED6A:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0812ED7E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812ED7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812ED24
+
+ thumb_func_start sub_812ED84
+sub_812ED84: @ 812ED84
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0812EDE4 @ =REG_WINOUT
+ ldr r2, _0812EDE8 @ =0x00001f3f
+ adds r0, r2, 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 r0, _0812EDEC @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0812EDF0 @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r0, _0812EDF4 @ =REG_WIN0H
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldr r0, _0812EDF8 @ =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812EDFC @ =sub_812EE00
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EDE4: .4byte REG_WINOUT
+_0812EDE8: .4byte 0x00001f3f
+_0812EDEC: .4byte gUnknown_030042C4
+_0812EDF0: .4byte gUnknown_03004240
+_0812EDF4: .4byte REG_WIN0H
+_0812EDF8: .4byte gBattleAnimArgs
+_0812EDFC: .4byte sub_812EE00
+ thumb_func_end sub_812ED84
+
+ thumb_func_start sub_812EE00
+sub_812EE00: @ 812EE00
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0812EE3E
+ cmp r0, 0x1
+ bgt _0812EE16
+ cmp r0, 0
+ beq _0812EE20
+ b _0812EE94
+_0812EE16:
+ cmp r0, 0x2
+ beq _0812EE54
+ cmp r0, 0x3
+ beq _0812EE76
+ b _0812EE94
+_0812EE20:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812EE94
+ b _0812EE6E
+_0812EE3E:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812EE94
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ b _0812EE6E
+_0812EE54:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812EE94
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0812EE6E:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ b _0812EE94
+_0812EE76:
+ ldr r1, _0812EE9C @ =REG_WINOUT
+ ldr r2, _0812EEA0 @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ 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]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812EE94:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EE9C: .4byte REG_WINOUT
+_0812EEA0: .4byte 0x00003f3f
+ thumb_func_end sub_812EE00
+
+ thumb_func_start sub_812EEA4
+sub_812EEA4: @ 812EEA4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _0812EEE0 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, _0812EEE4 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldr r1, _0812EEE8 @ =sub_812EEEC
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EEE0: .4byte gBattleAnimPlayerMonIndex
+_0812EEE4: .4byte gBattleAnimArgs
+_0812EEE8: .4byte sub_812EEEC
+ thumb_func_end sub_812EEA4
+
+ thumb_func_start sub_812EEEC
+sub_812EEEC: @ 812EEEC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ ldrh r1, [r4, 0x34]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x9
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ lsls r1, r0, 16
+ cmp r0, 0x3F
+ bls _0812EF26
+ asrs r0, r1, 16
+ cmp r0, 0xC3
+ ble _0812EF38
+_0812EF26:
+ ldr r0, _0812EF34 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ b _0812EF42
+ .align 2, 0
+_0812EF34: .4byte gBattleAnimPlayerMonIndex
+_0812EF38:
+ ldr r0, _0812EF84 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r0, 0x1
+_0812EF42:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r3, 0x38
+ ldrsh r2, [r4, r3]
+ cmp r2, 0
+ bne _0812EF88
+ movs r1, 0x80
+ lsls r1, 3
+ adds r0, r1, 0
+ ldrh r3, [r4, 0x32]
+ adds r0, r3
+ strh r0, [r4, 0x32]
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r3, [r4, 0x34]
+ adds r0, r3
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _0812EFB8
+ strh r2, [r4, 0x36]
+ movs r0, 0x1
+ strh r0, [r4, 0x38]
+ b _0812EFB8
+ .align 2, 0
+_0812EF84: .4byte gBattleAnimPlayerMonIndex
+_0812EF88:
+ cmp r2, 0x1
+ bne _0812EFB8
+ ldr r1, _0812EFC0 @ =0xfffffc00
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x32]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldr r3, _0812EFC4 @ =0xffffff00
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _0812EFB8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812EFB8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EFC0: .4byte 0xfffffc00
+_0812EFC4: .4byte 0xffffff00
+ thumb_func_end sub_812EEEC
+
+ thumb_func_start sub_812EFC8
+sub_812EFC8: @ 812EFC8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812F004
+ movs r0, 0x1
+ str r0, [sp, 0x14]
+ ldr r0, _0812F000 @ =0x02019348
+ ldr r1, [r0, 0x10]
+ mov r9, r1
+ ldr r2, [r0, 0xC]
+ mov r8, r2
+ ldrh r6, [r0, 0x2]
+ movs r3, 0x14
+ b _0812F13C
+ .align 2, 0
+_0812F000: .4byte 0x02019348
+_0812F004:
+ ldr r0, _0812F070 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812F0AC
+ movs r0, 0
+ str r0, [sp, 0x14]
+ ldr r6, _0812F074 @ =gBattlePartyID
+ ldr r4, _0812F078 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r7, _0812F07C @ =gPlayerParty
+ adds r0, r7
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ movs r1, 0x1
+ bl GetMonData
+ mov r8, r0
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ ldr r0, _0812F080 @ =0x02017800
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0812F0A4
+ adds r0, r2, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812F084
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ b _0812F092
+ .align 2, 0
+_0812F070: .4byte gBattleAnimPlayerMonIndex
+_0812F074: .4byte gBattlePartyID
+_0812F078: .4byte gBattleAnimEnemyMonIndex
+_0812F07C: .4byte gPlayerParty
+_0812F080: .4byte 0x02017800
+_0812F084:
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ ldr r1, _0812F0A0 @ =gEnemyParty
+ adds r0, r1
+_0812F092:
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0812F0A6
+ .align 2, 0
+_0812F0A0: .4byte gEnemyParty
+_0812F0A4:
+ ldrh r6, [r1, 0x2]
+_0812F0A6:
+ movs r1, 0x14
+ mov r10, r1
+ b _0812F13E
+_0812F0AC:
+ movs r2, 0x1
+ str r2, [sp, 0x14]
+ ldr r6, _0812F10C @ =gBattlePartyID
+ ldr r4, _0812F110 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r7, _0812F114 @ =gEnemyParty
+ adds r0, r7
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ movs r1, 0x1
+ bl GetMonData
+ mov r8, r0
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ ldr r0, _0812F118 @ =0x02017800
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0812F138
+ adds r0, r2, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812F120
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ ldr r1, _0812F11C @ =gPlayerParty
+ adds r0, r1
+ b _0812F12C
+ .align 2, 0
+_0812F10C: .4byte gBattlePartyID
+_0812F110: .4byte gBattleAnimEnemyMonIndex
+_0812F114: .4byte gEnemyParty
+_0812F118: .4byte 0x02017800
+_0812F11C: .4byte gPlayerParty
+_0812F120:
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+_0812F12C:
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0812F13A
+_0812F138:
+ ldrh r6, [r1, 0x2]
+_0812F13A:
+ ldr r3, _0812F218 @ =0x0000ffec
+_0812F13C:
+ mov r10, r3
+_0812F13E:
+ ldr r0, _0812F21C @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, _0812F21C @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r1, 16
+ adds r4, r1
+ lsls r4, 16
+ asrs r4, 16
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ mov r3, r9
+ str r3, [sp, 0x8]
+ mov r0, r8
+ str r0, [sp, 0xC]
+ adds r0, r6, 0
+ ldr r1, [sp, 0x14]
+ movs r2, 0
+ adds r3, r4, 0
+ bl sub_8079F44
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0812F220 @ =gSprites
+ lsls r5, r6, 4
+ adds r5, r6
+ lsls r5, 2
+ adds r5, r0
+ movs r0, 0x3
+ ands r7, r0
+ lsls r7, 2
+ mov r8, r7
+ ldrb r0, [r5, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r0
+ mov r2, r8
+ orrs r1, r2
+ strb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x1]
+ adds r0, r4, 0
+ ands r0, r2
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r5, 0x1]
+ ldr r0, _0812F224 @ =0x00007fff
+ lsrs r1, 4
+ lsls r1, 4
+ movs r3, 0x80
+ lsls r3, 1
+ adds r2, r3, 0
+ orrs r1, r2
+ movs r2, 0x20
+ bl FillPalette
+ ldrb r0, [r5, 0x5]
+ ands r4, r0
+ mov r0, r8
+ orrs r4, r0
+ strb r4, [r5, 0x5]
+ ldr r1, _0812F228 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r3, _0812F22C @ =REG_BLDALPHA
+ ldr r0, _0812F230 @ =gTasks
+ ldr r2, [sp, 0x10]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r0, r2
+ strh r0, [r3]
+ strh r6, [r1, 0x8]
+ ldr r0, _0812F234 @ =sub_812F238
+ str r0, [r1]
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F218: .4byte 0x0000ffec
+_0812F21C: .4byte gBattleAnimPlayerMonIndex
+_0812F220: .4byte gSprites
+_0812F224: .4byte 0x00007fff
+_0812F228: .4byte REG_BLDCNT
+_0812F22C: .4byte REG_BLDALPHA
+_0812F230: .4byte gTasks
+_0812F234: .4byte sub_812F238
+ thumb_func_end sub_812EFC8
+
+ thumb_func_start sub_812F238
+sub_812F238: @ 812F238
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812F284 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812F280
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0xA]
+ adds r1, 0x1
+ strh r1, [r3, 0xA]
+ ldr r2, _0812F288 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xA
+ bne _0812F280
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r3, 0x1C]
+ strh r0, [r3, 0x1E]
+ ldr r0, _0812F28C @ =sub_812F290
+ str r0, [r3]
+_0812F280:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F284: .4byte gTasks
+_0812F288: .4byte REG_BLDALPHA
+_0812F28C: .4byte sub_812F290
+ thumb_func_end sub_812F238
+
+ thumb_func_start sub_812F290
+sub_812F290: @ 812F290
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812F308 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ ldrb r2, [r5, 0x8]
+ ldrh r0, [r5, 0x1C]
+ subs r0, 0x10
+ movs r4, 0
+ strh r0, [r5, 0x1C]
+ ldrh r0, [r5, 0x1E]
+ adds r0, 0x80
+ strh r0, [r5, 0x1E]
+ ldr r1, _0812F30C @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrb r2, [r6, 0x1]
+ lsls r1, r2, 30
+ lsrs r1, 30
+ movs r0, 0x2
+ orrs r1, r0
+ subs r0, 0x6
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+ movs r0, 0x1C
+ ldrsh r2, [r5, r0]
+ movs r0, 0x1E
+ ldrsh r3, [r5, r0]
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8078FDC
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _0812F2FE
+ adds r0, r6, 0
+ bl sub_8079098
+ adds r0, r6, 0
+ bl sub_807A0F4
+ ldr r0, _0812F310 @ =sub_8078634
+ str r0, [r5]
+_0812F2FE:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F308: .4byte gTasks
+_0812F30C: .4byte gSprites
+_0812F310: .4byte sub_8078634
+ thumb_func_end sub_812F290
+
+ thumb_func_start sub_812F314
+sub_812F314: @ 812F314
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0812F334 @ =gTasks
+ adds r4, r1, r0
+ ldr r0, _0812F338 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812F340
+ ldr r0, _0812F33C @ =gBattleAnimPlayerMonIndex
+ b _0812F342
+ .align 2, 0
+_0812F334: .4byte gTasks
+_0812F338: .4byte gBattleAnimArgs
+_0812F33C: .4byte gBattleAnimPlayerMonIndex
+_0812F340:
+ ldr r0, _0812F3C0 @ =gBattleAnimEnemyMonIndex
+_0812F342:
+ ldrb r5, [r0]
+ movs r6, 0
+ strh r6, [r4, 0x8]
+ strh r6, [r4, 0xA]
+ strh r6, [r4, 0xC]
+ movs r0, 0x10
+ strh r0, [r4, 0xE]
+ strh r6, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ movs r0, 0x20
+ strh r0, [r4, 0x14]
+ strh r6, [r4, 0x16]
+ movs r0, 0x18
+ strh r0, [r4, 0x18]
+ adds r0, r5, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812F374
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ negs r0, r0
+ strh r0, [r4, 0x18]
+_0812F374:
+ adds r0, r5, 0
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x22
+ strh r0, [r4, 0x22]
+ cmp r0, 0
+ bge _0812F388
+ strh r6, [r4, 0x22]
+_0812F388:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x42
+ strh r0, [r4, 0x24]
+ ldr r0, _0812F3C4 @ =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ adds r0, r5, 0
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812F3DC
+ ldr r0, _0812F3C8 @ =REG_BG1HOFS
+ str r0, [sp]
+ ldr r1, _0812F3CC @ =REG_BLDCNT
+ ldr r2, _0812F3D0 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0812F3D4 @ =gUnknown_030042C0
+ ldrh r5, [r0]
+ ldr r0, _0812F3D8 @ =gUnknown_030041B4
+ b _0812F3EE
+ .align 2, 0
+_0812F3C0: .4byte gBattleAnimEnemyMonIndex
+_0812F3C4: .4byte gBattleAnimArgs
+_0812F3C8: .4byte REG_BG1HOFS
+_0812F3CC: .4byte REG_BLDCNT
+_0812F3D0: .4byte 0x00003f42
+_0812F3D4: .4byte gUnknown_030042C0
+_0812F3D8: .4byte gUnknown_030041B4
+_0812F3DC:
+ ldr r0, _0812F454 @ =REG_BG2HOFS
+ str r0, [sp]
+ ldr r1, _0812F458 @ =REG_BLDCNT
+ ldr r2, _0812F45C @ =0x00003f44
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0812F460 @ =gUnknown_03004288
+ ldrh r5, [r0]
+ ldr r0, _0812F464 @ =gUnknown_03004280
+_0812F3EE:
+ ldrh r3, [r0]
+ movs r7, 0
+ movs r2, 0
+ ldr r6, _0812F468 @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r0, r6
+ mov r12, r0
+_0812F3FE:
+ lsls r2, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r6
+ strh r5, [r0]
+ add r1, r12
+ strh r5, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 1
+ adds r1, r0, r6
+ strh r3, [r1]
+ add r0, r12
+ strh r3, [r0]
+ lsls r0, r7, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ adds r2, 0x2
+ lsls r2, 16
+ lsrs r2, 16
+ lsrs r7, r0, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _0812F3FE
+ ldr r0, _0812F46C @ =0xa6600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _0812F470 @ =sub_812F474
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F454: .4byte REG_BG2HOFS
+_0812F458: .4byte REG_BLDCNT
+_0812F45C: .4byte 0x00003f44
+_0812F460: .4byte gUnknown_03004288
+_0812F464: .4byte gUnknown_03004280
+_0812F468: .4byte gUnknown_03004DE0
+_0812F46C: .4byte 0xa6600001
+_0812F470: .4byte sub_812F474
+ thumb_func_end sub_812F314
+
+ thumb_func_start sub_812F474
+sub_812F474: @ 812F474
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0812F4A8 @ =gTasks
+ adds r6, r0, r1
+ ldrb r0, [r6, 0x12]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812F4B4
+ ldr r0, _0812F4AC @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ str r0, [sp, 0x4]
+ ldr r0, _0812F4B0 @ =gUnknown_030041B4
+ b _0812F4BC
+ .align 2, 0
+_0812F4A8: .4byte gTasks
+_0812F4AC: .4byte gUnknown_030042C0
+_0812F4B0: .4byte gUnknown_030041B4
+_0812F4B4:
+ ldr r0, _0812F4D4 @ =gUnknown_03004288
+ ldrh r0, [r0]
+ str r0, [sp, 0x4]
+ ldr r0, _0812F4D8 @ =gUnknown_03004280
+_0812F4BC:
+ ldrh r0, [r0]
+ str r0, [sp, 0x8]
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _0812F4CA
+ b _0812F6A6
+_0812F4CA:
+ cmp r0, 0x1
+ bgt _0812F4DC
+ cmp r0, 0
+ beq _0812F4EA
+ b _0812F712
+ .align 2, 0
+_0812F4D4: .4byte gUnknown_03004288
+_0812F4D8: .4byte gUnknown_03004280
+_0812F4DC:
+ cmp r0, 0x2
+ bne _0812F4E2
+ b _0812F6C4
+_0812F4E2:
+ cmp r0, 0x3
+ bne _0812F4E8
+ b _0812F70C
+_0812F4E8:
+ b _0812F712
+_0812F4EA:
+ movs r2, 0x24
+ ldrsh r0, [r6, r2]
+ lsls r0, 17
+ lsrs r5, r0, 16
+ movs r3, 0
+ str r3, [sp]
+ mov r9, r3
+ movs r4, 0
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0xA]
+ ldrh r7, [r6, 0xA]
+ mov r8, r7
+ movs r0, 0x14
+ ldrsh r1, [r6, r0]
+ movs r0, 0xFC
+ lsls r0, 3
+ bl __divsi3
+ strh r0, [r6, 0x1A]
+ movs r1, 0x16
+ ldrsh r0, [r6, r1]
+ lsls r0, 1
+ movs r2, 0x1A
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r6, 0x1C]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r6, 0x1E]
+ lsls r0, 16
+ asrs r0, 21
+ lsls r0, 16
+ lsrs r7, r0, 16
+ strh r7, [r6, 0x20]
+ ldrh r2, [r6, 0x24]
+ lsls r3, r2, 16
+ mov r12, r3
+ asrs r1, r3, 16
+ movs r3, 0x22
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ ble _0812F60A
+ ldr r0, _0812F660 @ =gUnknown_03004DC0
+ mov r10, r0
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ asrs r0, 16
+ str r0, [sp, 0x10]
+ ldr r2, [sp, 0x8]
+ lsls r0, r2, 16
+ asrs r0, 16
+ str r0, [sp, 0xC]
+_0812F55A:
+ lsls r5, 16
+ asrs r5, 16
+ adds r2, r5, 0x1
+ lsls r2, 1
+ mov r3, r10
+ ldrb r1, [r3, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ ldr r0, _0812F664 @ =gUnknown_03004DE0
+ adds r2, r0
+ lsls r4, 16
+ asrs r4, 16
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r0, 16
+ subs r0, r4, r0
+ ldr r3, [sp, 0xC]
+ adds r0, r3, r0
+ strh r0, [r2]
+ lsls r3, r5, 1
+ mov r0, r10
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r3, r0
+ ldr r1, _0812F664 @ =gUnknown_03004DE0
+ adds r3, r1
+ lsls r1, r7, 16
+ asrs r1, 16
+ ldr r2, [sp, 0x10]
+ adds r1, r2, r1
+ mov r7, r8
+ lsls r2, r7, 16
+ asrs r2, 16
+ lsls r0, r2, 1
+ ldr r7, _0812F668 @ =gSineTable
+ adds r0, r7
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ adds r1, r0
+ strh r1, [r3]
+ adds r2, 0xA
+ mov r8, r2
+ movs r0, 0xFF
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldrh r0, [r6, 0x1C]
+ ldrh r2, [r6, 0x1E]
+ adds r0, r2
+ strh r0, [r6, 0x1E]
+ lsls r0, 16
+ asrs r0, 21
+ lsls r0, 16
+ lsrs r7, r0, 16
+ strh r7, [r6, 0x20]
+ adds r4, 0x1
+ lsls r4, 16
+ lsrs r4, 16
+ subs r5, 0x2
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r3, [sp]
+ lsls r0, r3, 16
+ asrs r0, 16
+ ldrh r1, [r6, 0x14]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ str r2, [sp]
+ asrs r0, 21
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r0, _0812F66C @ =0xffff0000
+ add r0, r12
+ lsrs r2, r0, 16
+ lsls r3, r2, 16
+ mov r12, r3
+ asrs r1, r3, 16
+ movs r3, 0x22
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ bgt _0812F55A
+_0812F60A:
+ lsls r1, r2, 17
+ cmp r1, 0
+ blt _0812F636
+ ldr r4, _0812F664 @ =gUnknown_03004DE0
+ ldr r7, [sp, 0x4]
+ lsls r0, r7, 16
+ asrs r0, 16
+ adds r3, r0, 0
+ adds r3, 0xF0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r5, r4, r0
+_0812F622:
+ asrs r2, r1, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ adds r1, r5
+ strh r3, [r1]
+ subs r2, 0x2
+ lsls r1, r2, 16
+ cmp r1, 0
+ bge _0812F622
+_0812F636:
+ ldrh r0, [r6, 0x14]
+ adds r0, 0x1
+ strh r0, [r6, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _0812F69C
+ movs r0, 0x40
+ strh r0, [r6, 0x14]
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812F670
+ ldrh r0, [r6, 0xE]
+ subs r0, 0x1
+ strh r0, [r6, 0xE]
+ b _0812F676
+ .align 2, 0
+_0812F660: .4byte gUnknown_03004DC0
+_0812F664: .4byte gUnknown_03004DE0
+_0812F668: .4byte gSineTable
+_0812F66C: .4byte 0xffff0000
+_0812F670:
+ ldrh r0, [r6, 0x10]
+ adds r0, 0x1
+ strh r0, [r6, 0x10]
+_0812F676:
+ ldr r0, _0812F698 @ =REG_BLDALPHA
+ ldrh r1, [r6, 0x10]
+ lsls r1, 8
+ ldrh r2, [r6, 0xE]
+ orrs r1, r2
+ strh r1, [r0]
+ movs r2, 0xE
+ ldrsh r1, [r6, r2]
+ cmp r1, 0
+ bne _0812F712
+ movs r3, 0x10
+ ldrsh r0, [r6, r3]
+ cmp r0, 0x10
+ bne _0812F712
+ strh r1, [r6, 0xC]
+ strh r1, [r6, 0xE]
+ b _0812F700
+ .align 2, 0
+_0812F698: .4byte REG_BLDALPHA
+_0812F69C:
+ ldrh r0, [r6, 0x18]
+ ldrh r7, [r6, 0x16]
+ adds r0, r7
+ strh r0, [r6, 0x16]
+ b _0812F712
+_0812F6A6:
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _0812F712
+ ldr r1, _0812F6C0 @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ movs r0, 0
+ strh r0, [r6, 0xC]
+ b _0812F700
+ .align 2, 0
+_0812F6C0: .4byte gUnknown_03004DC0
+_0812F6C4:
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812F6DA
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ b _0812F6E0
+_0812F6DA:
+ ldrh r0, [r6, 0x10]
+ subs r0, 0x1
+ strh r0, [r6, 0x10]
+_0812F6E0:
+ ldr r2, _0812F708 @ =REG_BLDALPHA
+ ldrh r0, [r6, 0x10]
+ lsls r0, 8
+ ldrh r1, [r6, 0xE]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0xE
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x10
+ bne _0812F712
+ movs r2, 0x10
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bne _0812F712
+ strh r0, [r6, 0xC]
+ strh r0, [r6, 0xE]
+_0812F700:
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _0812F712
+ .align 2, 0
+_0812F708: .4byte REG_BLDALPHA
+_0812F70C:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_0812F712:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812F474
+
+ thumb_func_start sub_812F724
+sub_812F724: @ 812F724
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _0812F75C @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _0812F760 @ =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, _0812F764 @ =gUnknown_08402750
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _0812F768 @ =sub_812F76C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F75C: .4byte gTasks
+_0812F760: .4byte gBattleAnimArgs
+_0812F764: .4byte gUnknown_08402750
+_0812F768: .4byte sub_812F76C
+ thumb_func_end sub_812F724
+
+ thumb_func_start sub_812F76C
+sub_812F76C: @ 812F76C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, _0812F7C4 @ =gTasks
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ adds r1, r0, 0x1
+ movs r5, 0
+ strh r1, [r3, 0x8]
+ subs r0, 0x14
+ lsls r0, 16
+ lsrs r0, 16
+ adds r6, r2, 0
+ cmp r0, 0x16
+ bhi _0812F7D0
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812F7E0
+ strh r5, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ movs r5, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _0812F7D0
+ ldr r2, _0812F7C8 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0812F7CC @ =0x0000ffff
+ strh r1, [r0, 0x24]
+ b _0812F7E0
+ .align 2, 0
+_0812F7C4: .4byte gTasks
+_0812F7C8: .4byte gSprites
+_0812F7CC: .4byte 0x0000ffff
+_0812F7D0:
+ ldr r2, _0812F800 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+_0812F7E0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r6
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812F7F8
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_0812F7F8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F800: .4byte gSprites
+ thumb_func_end sub_812F76C
+
+ thumb_func_start sub_812F804
+sub_812F804: @ 812F804
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r5, r2, 0
+ adds r0, r3, 0
+ ldr r4, [sp, 0x14]
+ ldr r6, [sp, 0x18]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r2, r8
+ strh r1, [r2, 0x20]
+ strh r5, [r2, 0x22]
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, r1, 4
+ mov r3, r8
+ strh r2, [r3, 0x36]
+ lsls r5, 16
+ asrs r5, 16
+ lsls r2, r5, 4
+ strh r2, [r3, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 4
+ adds r1, r6, 0
+ bl __divsi3
+ mov r1, r8
+ strh r0, [r1, 0x3A]
+ lsls r4, 16
+ asrs r4, 16
+ subs r4, r5
+ lsls r4, 4
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812F804
+
+ thumb_func_start sub_812F86C
+sub_812F86C: @ 812F86C
+ ldrh r1, [r0, 0x3A]
+ ldrh r2, [r0, 0x36]
+ adds r1, r2
+ strh r1, [r0, 0x36]
+ ldrh r2, [r0, 0x3C]
+ ldrh r3, [r0, 0x38]
+ adds r2, r3
+ strh r2, [r0, 0x38]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r0, 0x20]
+ lsls r2, 16
+ asrs r2, 20
+ strh r2, [r0, 0x22]
+ bx lr
+ thumb_func_end sub_812F86C
+
+ thumb_func_start sub_812F88C
+sub_812F88C: @ 812F88C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldrh r6, [r4, 0x20]
+ ldrh r5, [r4, 0x22]
+ bl sub_8078650
+ ldr r0, _0812F8D4 @ =gBattleAnimArgs
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x22
+ ldrsh r2, [r4, r0]
+ lsls r6, 16
+ asrs r6, 16
+ lsls r5, 16
+ asrs r5, 16
+ str r5, [sp]
+ movs r0, 0x40
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r3, r6, 0
+ bl sub_812F804
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _0812F8D8 @ =sub_812F8DC
+ str r0, [r4, 0x1C]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F8D4: .4byte gBattleAnimArgs
+_0812F8D8: .4byte sub_812F8DC
+ thumb_func_end sub_812F88C
+
+ thumb_func_start sub_812F8DC
+sub_812F8DC: @ 812F8DC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ lsls r4, 3
+ movs r0, 0xFF
+ ands r4, r0
+ adds r0, r5, 0
+ bl sub_812F86C
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r5, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3A
+ ble _0812F942
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812F942
+ movs r0, 0
+ strh r0, [r5, 0x30]
+ ldrh r1, [r5, 0x32]
+ adds r1, 0x1
+ strh r1, [r5, 0x32]
+ movs r0, 0x1
+ ands r1, r0
+ adds r3, r5, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ subs r0, 0x6
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3
+ ble _0812F942
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_0812F942:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812F8DC
+
+ thumb_func_start sub_812F948
+sub_812F948: @ 812F948
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _0812F9A0 @ =gBattleAnimArgs
+ ldrh r0, [r6, 0x6]
+ strh r0, [r5, 0x2E]
+ ldrb r1, [r6]
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ ldr r0, _0812F9A4 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812F96E
+ ldrh r0, [r6, 0x2]
+ negs r0, r0
+ strh r0, [r6, 0x2]
+_0812F96E:
+ ldr r4, _0812F9A8 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldr r0, _0812F9AC @ =sub_80DA48C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F9A0: .4byte gBattleAnimArgs
+_0812F9A4: .4byte gBattleAnimEnemyMonIndex
+_0812F9A8: .4byte gBattleAnimPlayerMonIndex
+_0812F9AC: .4byte sub_80DA48C
+ thumb_func_end sub_812F948
+
+ thumb_func_start sub_812F9B0
+sub_812F9B0: @ 812F9B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r7, 0
+ ldr r2, _0812FA00 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ subs r0, 0x1
+ strh r0, [r3, 0x8]
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _0812FA32
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0812FA32
+ movs r2, 0x1A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0812FA04
+ ldrh r0, [r3, 0x10]
+ strh r0, [r3, 0x1A]
+ negs r0, r0
+ strh r0, [r3, 0x10]
+ b _0812FA06
+ .align 2, 0
+_0812FA00: .4byte gTasks
+_0812FA04:
+ strh r7, [r3, 0x1A]
+_0812FA06:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ movs r2, 0x1C
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0812FA22
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x1C]
+ negs r0, r0
+ strh r0, [r1, 0x12]
+ b _0812FA26
+_0812FA22:
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+_0812FA26:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ add r0, r8
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0xA]
+_0812FA32:
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ ldrh r6, [r4, 0x16]
+ ldrh r7, [r4, 0x18]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r12, r2
+ cmp r0, 0
+ beq _0812FA70
+ ldr r3, _0812FA6C @ =gSprites
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ lsrs r2, r6, 8
+ ldrh r0, [r4, 0x1A]
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ adds r2, r3, 0
+ b _0812FA86
+ .align 2, 0
+_0812FA6C: .4byte gSprites
+_0812FA70:
+ ldr r2, _0812FAB4 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ lsrs r1, r6, 8
+ ldrh r4, [r4, 0x1A]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+_0812FA86:
+ mov r1, r12
+ adds r0, r1, r5
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0812FAB8
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r2, r7, 8
+ ldrh r0, [r4, 0x1C]
+ subs r0, r2
+ b _0812FACA
+ .align 2, 0
+_0812FAB4: .4byte gSprites
+_0812FAB8:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r0, r7, 8
+ ldrh r4, [r4, 0x1C]
+ adds r0, r4
+_0812FACA:
+ strh r0, [r1, 0x26]
+ mov r2, r12
+ adds r0, r2, r5
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bgt _0812FAEA
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r1, _0812FAF4 @ =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_0812FAEA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FAF4: .4byte gAnimVisualTaskCount
+ thumb_func_end sub_812F9B0
+
+ thumb_func_start sub_812FAF8
+sub_812FAF8: @ 812FAF8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r7, 0
+ ldr r2, _0812FB4C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ subs r0, 0x1
+ strh r0, [r3, 0x8]
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _0812FB7E
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0812FB7E
+ movs r2, 0x1A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0812FB50
+ ldrh r0, [r3, 0x10]
+ strh r0, [r3, 0x1A]
+ negs r0, r0
+ strh r0, [r3, 0x10]
+ b _0812FB52
+ .align 2, 0
+_0812FB4C: .4byte gTasks
+_0812FB50:
+ strh r7, [r3, 0x1A]
+_0812FB52:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ movs r2, 0x1C
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0812FB6E
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x1C]
+ negs r0, r0
+ strh r0, [r1, 0x12]
+ b _0812FB72
+_0812FB6E:
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+_0812FB72:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ add r0, r8
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0xA]
+_0812FB7E:
+ lsls r3, r6, 2
+ adds r0, r3, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ ldrh r2, [r4, 0xC]
+ ldr r1, _0812FBD0 @ =0x00007fff
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r2, [r4, 0x16]
+ adds r0, r2
+ lsls r5, r0, 16
+ lsrs r0, r5, 16
+ mov r9, r0
+ ldrh r0, [r4, 0xE]
+ ands r1, r0
+ ldrh r2, [r4, 0x18]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r12, r3
+ cmp r0, 0
+ beq _0812FBD8
+ ldr r3, _0812FBD4 @ =gSprites
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ lsrs r2, r5, 24
+ ldrh r0, [r4, 0x1A]
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ adds r2, r3, 0
+ b _0812FBEE
+ .align 2, 0
+_0812FBD0: .4byte 0x00007fff
+_0812FBD4: .4byte gSprites
+_0812FBD8:
+ ldr r2, _0812FC1C @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ lsrs r1, r5, 24
+ ldrh r4, [r4, 0x1A]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+_0812FBEE:
+ mov r1, r12
+ adds r0, r1, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0812FC20
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r2, r7, 8
+ ldrh r0, [r4, 0x1C]
+ subs r0, r2
+ b _0812FC32
+ .align 2, 0
+_0812FC1C: .4byte gSprites
+_0812FC20:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r0, r7, 8
+ ldrh r4, [r4, 0x1C]
+ adds r0, r4
+_0812FC32:
+ strh r0, [r1, 0x26]
+ mov r2, r12
+ adds r0, r2, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r2, r0, r1
+ mov r0, r9
+ strh r0, [r2, 0x16]
+ strh r7, [r2, 0x18]
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bgt _0812FC58
+ movs r0, 0x1E
+ strh r0, [r2, 0x8]
+ movs r0, 0
+ strh r0, [r2, 0x22]
+ ldr r0, _0812FC64 @ =sub_812F9B0
+ str r0, [r2]
+_0812FC58:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FC64: .4byte sub_812F9B0
+ thumb_func_end sub_812FAF8
+
+ thumb_func_start sub_812FC68
+sub_812FC68: @ 812FC68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0812FCC8 @ =gTasks
+ mov r8, r0
+ lsls r7, r6, 2
+ adds r0, r7, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ ldr r1, _0812FCCC @ =gObjectBankIDs
+ ldr r2, _0812FCD0 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x26]
+ ldr r5, _0812FCD4 @ =gBattleAnimArgs
+ ldrh r0, [r5]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r4, 0x22]
+ movs r3, 0x6
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ beq _0812FCAC
+ ldrh r0, [r4, 0x14]
+ ldr r3, _0812FCD8 @ =0xffff8000
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r4, 0x14]
+_0812FCAC:
+ ldrb r0, [r2]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812FCDC
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xE]
+ mov r3, r8
+ adds r4, r7, 0
+ b _0812FD4C
+ .align 2, 0
+_0812FCC8: .4byte gTasks
+_0812FCCC: .4byte gObjectBankIDs
+_0812FCD0: .4byte gBattleAnimPlayerMonIndex
+_0812FCD4: .4byte gBattleAnimArgs
+_0812FCD8: .4byte 0xffff8000
+_0812FCDC:
+ movs r7, 0x2
+ ldrsh r0, [r5, r7]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0812FCF8
+ ldrh r1, [r5, 0x2]
+ ldr r0, _0812FCF4 @ =0x00007fff
+ ands r0, r1
+ b _0812FD00
+ .align 2, 0
+_0812FCF4: .4byte 0x00007fff
+_0812FCF8:
+ ldrh r0, [r5, 0x2]
+ ldr r2, _0812FD28 @ =0xffff8000
+ adds r1, r2, 0
+ orrs r0, r1
+_0812FD00:
+ strh r0, [r4, 0xC]
+ ldr r0, _0812FD2C @ =gBattleAnimArgs
+ movs r3, 0x4
+ ldrsh r1, [r0, r3]
+ movs r2, 0x80
+ lsls r2, 8
+ ands r1, r2
+ adds r5, r0, 0
+ cmp r1, 0
+ beq _0812FD38
+ ldr r3, _0812FD30 @ =gTasks
+ lsls r4, r6, 2
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r3
+ ldrh r2, [r5, 0x4]
+ ldr r0, _0812FD34 @ =0x00007fff
+ ands r0, r2
+ b _0812FD4A
+ .align 2, 0
+_0812FD28: .4byte 0xffff8000
+_0812FD2C: .4byte gBattleAnimArgs
+_0812FD30: .4byte gTasks
+_0812FD34: .4byte 0x00007fff
+_0812FD38:
+ ldr r3, _0812FD70 @ =gTasks
+ lsls r4, r6, 2
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r3
+ ldrh r2, [r5, 0x4]
+ ldr r7, _0812FD74 @ =0xffff8000
+ adds r0, r7, 0
+ orrs r0, r2
+_0812FD4A:
+ strh r0, [r1, 0xE]
+_0812FD4C:
+ adds r0, r4, r6
+ lsls r0, 3
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x18]
+ strh r1, [r0, 0x16]
+ ldrh r1, [r5, 0x8]
+ strh r1, [r0, 0x10]
+ ldrh r1, [r5, 0xA]
+ strh r1, [r0, 0x12]
+ ldr r1, _0812FD78 @ =sub_812FAF8
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FD70: .4byte gTasks
+_0812FD74: .4byte 0xffff8000
+_0812FD78: .4byte sub_812FAF8
+ thumb_func_end sub_812FC68
+
+ thumb_func_start sub_812FD7C
+sub_812FD7C: @ 812FD7C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _0812FDB4 @ =gTasks
+ adds r5, r0, r1
+ ldr r4, _0812FDB8 @ =gBattleAnimArgs
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812FD9C
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_0812FD9C:
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ strh r0, [r5, 0xA]
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0xE]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812FDC0
+ ldr r0, _0812FDBC @ =gBattleAnimPlayerMonIndex
+ b _0812FDC2
+ .align 2, 0
+_0812FDB4: .4byte gTasks
+_0812FDB8: .4byte gBattleAnimArgs
+_0812FDBC: .4byte gBattleAnimPlayerMonIndex
+_0812FDC0:
+ ldr r0, _0812FE10 @ =gBattleAnimEnemyMonIndex
+_0812FDC2:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x10]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ adds r0, r4, 0
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldr r0, _0812FE14 @ =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r5, 0x26]
+ ldr r2, _0812FE18 @ =gUnknown_084028AC
+ adds r0, r5, 0
+ bl sub_80798F4
+ ldr r0, _0812FE1C @ =sub_812FE20
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FE10: .4byte gBattleAnimEnemyMonIndex
+_0812FE14: .4byte gBattleAnimArgs
+_0812FE18: .4byte gUnknown_084028AC
+_0812FE1C: .4byte sub_812FE20
+ thumb_func_end sub_812FD7C
+
+ thumb_func_start sub_812FE20
+sub_812FE20: @ 812FE20
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0812FE40 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812FE44
+ cmp r0, 0x1
+ beq _0812FEA4
+ b _0812FEB2
+ .align 2, 0
+_0812FE40: .4byte gTasks
+_0812FE44:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _0812FE5A
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_812FEB8
+_0812FE5A:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x12
+ bne _0812FE6A
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_812FEB8
+_0812FE6A:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _0812FEB2
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812FE8C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812FEB2
+_0812FE8C:
+ strh r1, [r4, 0xA]
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812FEA0 @ =gUnknown_084028AC
+ adds r0, r4, 0
+ bl sub_80798F4
+ b _0812FEB2
+ .align 2, 0
+_0812FEA0: .4byte gUnknown_084028AC
+_0812FEA4:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812FEB2
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0812FEB2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812FE20
+
+ thumb_func_start sub_812FEB8
+sub_812FEB8: @ 812FEB8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r2, _0812FEDC @ =gTasks
+ adds r4, r0, r2
+ cmp r1, 0
+ bne _0812FEE0
+ movs r1, 0x12
+ movs r3, 0xEC
+ b _0812FEE4
+ .align 2, 0
+_0812FEDC: .4byte gTasks
+_0812FEE0:
+ movs r1, 0x1E
+ movs r3, 0x14
+_0812FEE4:
+ mov r2, sp
+ ldrh r0, [r4, 0x10]
+ subs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x10]
+ subs r0, r1
+ subs r0, 0x4
+ strh r0, [r2, 0x2]
+ ldrh r0, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r2, 0x4]
+ ldrh r0, [r4, 0x10]
+ adds r0, r1
+ adds r0, 0x4
+ strh r0, [r2, 0x6]
+ add r2, sp, 0x8
+ lsls r1, r3, 24
+ asrs r1, 24
+ ldrh r0, [r4, 0x12]
+ adds r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x12]
+ adds r0, r1
+ adds r0, 0x6
+ strh r0, [r2, 0x2]
+ movs r5, 0
+ mov r8, r2
+ ldr r7, _0812FF88 @ =gSprites
+_0812FF1C:
+ lsls r0, r5, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ ands r0, r5
+ lsls r0, 1
+ add r0, r8
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ ldrb r3, [r4, 0x14]
+ subs r3, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _0812FF8C @ =gSpriteTemplate_84028CC
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0812FF70
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r7
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ movs r0, 0x2
+ cmp r5, 0x1
+ bhi _0812FF5E
+ movs r2, 0x2
+ negs r2, r2
+ adds r0, r2, 0
+_0812FF5E:
+ strh r0, [r1, 0x30]
+ ldr r0, _0812FF90 @ =0x0000ffff
+ strh r0, [r1, 0x32]
+ strh r6, [r1, 0x34]
+ movs r0, 0x2
+ strh r0, [r1, 0x36]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_0812FF70:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _0812FF1C
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FF88: .4byte gSprites
+_0812FF8C: .4byte gSpriteTemplate_84028CC
+_0812FF90: .4byte 0x0000ffff
+ thumb_func_end sub_812FEB8
+
+ thumb_func_start sub_812FF94
+sub_812FF94: @ 812FF94
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _0812FFDA
+ ldr r3, _0812FFE0 @ =gTasks
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x34
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_0812FFDA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FFE0: .4byte gTasks
+ thumb_func_end sub_812FF94
+
+ thumb_func_start sub_812FFE4
+sub_812FFE4: @ 812FFE4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0813002C @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r1, _08130030 @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0xA]
+ ldrb r0, [r1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08130034 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldr r0, _08130038 @ =sub_813003C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813002C: .4byte gTasks
+_08130030: .4byte gBattleAnimArgs
+_08130034: .4byte gSprites
+_08130038: .4byte sub_813003C
+ thumb_func_end sub_812FFE4
+
+ thumb_func_start sub_813003C
+sub_813003C: @ 813003C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08130084 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0813008C
+ ldrh r0, [r4, 0xC]
+ ldr r2, _08130088 @ =gUnknown_084028E4
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x10
+ movs r2, 0x8
+ bl BlendPalette
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _0813007C
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_0813007C:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ b _0813009E
+ .align 2, 0
+_08130084: .4byte gTasks
+_08130088: .4byte gUnknown_084028E4
+_0813008C:
+ ldrh r0, [r4, 0xC]
+ movs r1, 0x10
+ movs r2, 0
+ movs r3, 0
+ bl BlendPalette
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0813009E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813003C
+
+ thumb_func_start sub_81300A4
+sub_81300A4: @ 81300A4
+ push {lr}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0xD0
+ lsls r2, 1
+ ldr r1, _081300E0 @ =gBattleAnimPlayerMonIndex
+ ldrb r3, [r1]
+ ldr r1, _081300E4 @ =gBattleAnimArgs
+ ldrb r1, [r1]
+ str r1, [sp]
+ movs r1, 0xA
+ str r1, [sp, 0x4]
+ movs r1, 0x2
+ str r1, [sp, 0x8]
+ movs r1, 0x1E
+ str r1, [sp, 0xC]
+ ldr r1, _081300E8 @ =gUnknown_08D2E014
+ str r1, [sp, 0x10]
+ ldr r1, _081300EC @ =gUnknown_08D2E170
+ str r1, [sp, 0x14]
+ ldr r1, _081300F0 @ =gUnknown_08D2E150
+ str r1, [sp, 0x18]
+ movs r1, 0
+ bl sub_80E3C4C
+ add sp, 0x1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081300E0: .4byte gBattleAnimPlayerMonIndex
+_081300E4: .4byte gBattleAnimArgs
+_081300E8: .4byte gUnknown_08D2E014
+_081300EC: .4byte gUnknown_08D2E170
+_081300F0: .4byte gUnknown_08D2E150
+ thumb_func_end sub_81300A4
+
+ thumb_func_start sub_81300F4
+sub_81300F4: @ 81300F4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _0813014C @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r6]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08130110
+ ldr r1, _08130150 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_08130110:
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _08130150 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08130158
+ movs r0, 0xA0
+ lsls r0, 2
+ strh r0, [r5, 0x2E]
+ ldr r0, _08130154 @ =0x0000fd80
+ strh r0, [r5, 0x30]
+ b _08130180
+ .align 2, 0
+_0813014C: .4byte gBattleAnimPlayerMonIndex
+_08130150: .4byte gBattleAnimArgs
+_08130154: .4byte 0x0000fd80
+_08130158:
+ cmp r0, 0x1
+ bne _08130172
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA0
+ lsls r0, 2
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ b _08130180
+_08130172:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0xA0
+ lsls r0, 2
+ strh r0, [r5, 0x2E]
+_08130180:
+ ldr r0, _081301AC @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _081301A0
+ ldrh r0, [r5, 0x2E]
+ negs r0, r0
+ strh r0, [r5, 0x2E]
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_081301A0:
+ ldr r0, _081301B0 @ =sub_81301B4
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081301AC: .4byte gBattleAnimPlayerMonIndex
+_081301B0: .4byte sub_81301B4
+ thumb_func_end sub_81300F4
+
+ thumb_func_start sub_81301B4
+sub_81301B4: @ 81301B4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x3A]
+ adds r0, r1
+ strh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x3C]
+ adds r1, r3
+ strh r1, [r2, 0x3C]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x38]
+ adds r0, 0x1
+ strh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xE
+ bne _081301E8
+ adds r0, r2, 0
+ bl move_anim_8072740
+_081301E8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81301B4
+
+ thumb_func_start sub_81301EC
+sub_81301EC: @ 81301EC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08130218 @ =gTasks
+ adds r6, r1, r0
+ bl IsContest
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0813021C
+ movs r0, 0x8
+ strh r0, [r6, 0x12]
+ movs r0, 0x3
+ strh r0, [r6, 0x14]
+ movs r0, 0x1
+ strh r0, [r6, 0x16]
+ b _08130226
+ .align 2, 0
+_08130218: .4byte gTasks
+_0813021C:
+ movs r0, 0xC
+ strh r0, [r6, 0x12]
+ movs r0, 0x3
+ strh r0, [r6, 0x14]
+ strh r1, [r6, 0x16]
+_08130226:
+ ldr r5, _0813025C @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r5]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08130260
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08130254
+ adds r0, 0x3
+_08130254:
+ asrs r0, 2
+ adds r0, r4, r0
+ b _08130284
+ .align 2, 0
+_0813025C: .4byte gBattleAnimPlayerMonIndex
+_08130260:
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08130280
+ adds r0, 0x3
+_08130280:
+ asrs r0, 2
+ subs r0, r4, r0
+_08130284:
+ strh r0, [r6, 0x1E]
+ ldr r5, _081302D8 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _081302A8
+ adds r0, 0x3
+_081302A8:
+ asrs r0, 2
+ subs r0, r4, r0
+ strh r0, [r6, 0x20]
+ ldr r4, _081302DC @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x24]
+ ldr r0, _081302E0 @ =sub_81302E4
+ str r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081302D8: .4byte gBattleAnimPlayerMonIndex
+_081302DC: .4byte gBattleAnimEnemyMonIndex
+_081302E0: .4byte sub_81302E4
+ thumb_func_end sub_81301EC
+
+ thumb_func_start sub_81302E4
+sub_81302E4: @ 81302E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _0813030C @ =gTasks
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ beq _08130310
+ cmp r1, 0x1
+ bne _08130308
+ b _08130408
+_08130308:
+ b _08130416
+ .align 2, 0
+_0813030C: .4byte gTasks
+_08130310:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08130416
+ strh r1, [r5, 0xA]
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ movs r4, 0x24
+ ldrsh r3, [r5, r4]
+ ldrb r4, [r5, 0x12]
+ str r4, [sp]
+ ldrb r4, [r5, 0xC]
+ str r4, [sp, 0x4]
+ add r4, sp, 0x10
+ str r4, [sp, 0x8]
+ adds r4, 0x2
+ str r4, [sp, 0xC]
+ bl sub_8130424
+ movs r6, 0
+ mov r8, r4
+ ldr r4, _08130384 @ =gSprites
+_0813034A:
+ add r0, sp, 0x10
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r3, r8
+ movs r0, 0
+ ldrsh r2, [r3, r0]
+ ldr r0, _08130388 @ =gSpriteTemplate_840294C
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _081303DE
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0813039E
+ cmp r6, 0
+ bne _0813038C
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ negs r0, r0
+ strh r0, [r1, 0x26]
+ strh r0, [r1, 0x24]
+ b _081303C6
+ .align 2, 0
+_08130384: .4byte gSprites
+_08130388: .4byte gSpriteTemplate_840294C
+_0813038C:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ strh r0, [r1, 0x26]
+ ldrh r0, [r5, 0x14]
+ strh r0, [r1, 0x24]
+ b _081303C6
+_0813039E:
+ cmp r6, 0
+ bne _081303B4
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r5, 0x14]
+ b _081303C4
+_081303B4:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ strh r0, [r1, 0x24]
+ ldrh r0, [r5, 0x14]
+ negs r0, r0
+_081303C4:
+ strh r0, [r1, 0x26]
+_081303C6:
+ ldr r1, _08130404 @ =gSprites
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ strh r7, [r0, 0x30]
+ movs r1, 0xA
+ strh r1, [r0, 0x32]
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+_081303DE:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x1
+ bls _0813034A
+ ldrh r2, [r5, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r5, r3]
+ movs r4, 0x12
+ ldrsh r0, [r5, r4]
+ cmp r1, r0
+ bne _081303FC
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_081303FC:
+ adds r0, r2, 0x1
+ strh r0, [r5, 0xC]
+ b _08130416
+ .align 2, 0
+_08130404: .4byte gSprites
+_08130408:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08130416
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_08130416:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81302E4
+
+ thumb_func_start sub_8130424
+sub_8130424: @ 8130424
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r4, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ ldr r6, [sp, 0x30]
+ mov r9, r6
+ ldr r6, [sp, 0x34]
+ mov r10, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ lsls r2, 16
+ lsrs r2, 16
+ adds r7, r2, 0
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x4]
+ lsls r4, 24
+ lsrs r6, r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r8, r5
+ cmp r5, 0
+ bne _0813046C
+ mov r2, r9
+ strh r0, [r2]
+ mov r6, r10
+ strh r1, [r6]
+ b _081304CA
+_0813046C:
+ cmp r5, r6
+ bcc _0813047A
+ mov r0, r9
+ strh r2, [r0]
+ mov r1, r10
+ strh r3, [r1]
+ b _081304CA
+_0813047A:
+ subs r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r2, r12
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r5, r1, 8
+ lsls r0, r7, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 8
+ adds r1, r6, 0
+ bl __divsi3
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r5, r0
+ ldr r2, [sp]
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r4, r1, 8
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 8
+ adds r1, r6, 0
+ bl __divsi3
+ mov r6, r8
+ muls r6, r0
+ adds r0, r6, 0
+ adds r4, r0
+ asrs r5, 8
+ mov r0, r9
+ strh r5, [r0]
+ asrs r4, 8
+ mov r1, r10
+ strh r4, [r1]
+_081304CA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130424
+
+ thumb_func_start sub_81304DC
+sub_81304DC: @ 81304DC
+ 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, 0x24
+ ble _08130512
+ ldr r3, _08130518 @ =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_08130512:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130518: .4byte gTasks
+ thumb_func_end sub_81304DC
+
+ thumb_func_start sub_813051C
+sub_813051C: @ 813051C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _08130548 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r1, _0813054C @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _08130550 @ =sub_8078CC0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130548: .4byte gBattleAnimArgs
+_0813054C: .4byte move_anim_8072740
+_08130550: .4byte sub_8078CC0
+ thumb_func_end sub_813051C
+
+ thumb_func_start sub_8130554
+sub_8130554: @ 8130554
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ ldr r1, _08130674 @ =gTasks
+ adds r7, r0, r1
+ ldr r0, _08130678 @ =gBattleAnimPlayerMonIndex
+ mov r10, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x1E]
+ mov r1, r10
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x20]
+ ldr r0, _0813067C @ =gBattleAnimEnemyMonIndex
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x22]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r4, r0, 0
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _081305C6
+ adds r0, 0x3
+_081305C6:
+ asrs r0, 2
+ adds r0, r4, r0
+ strh r0, [r7, 0x24]
+ ldr r4, _08130680 @ =gSpriteTemplate_84029AC
+ movs r0, 0x1E
+ ldrsh r5, [r7, r0]
+ movs r1, 0x20
+ ldrsh r6, [r7, r1]
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_8079E90
+ adds r3, r0, 0
+ subs r3, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x26]
+ cmp r0, 0x40
+ beq _08130690
+ ldr r4, _08130684 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r7, 0x22]
+ strh r1, [r0, 0x32]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r7, 0x24]
+ strh r1, [r0, 0x36]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08130688 @ =0x0000ffe0
+ strh r1, [r0, 0x38]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_80786EC
+ mov r1, r10
+ ldrb r0, [r1]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813066E
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_0813066E:
+ ldr r0, _0813068C @ =sub_81306A4
+ str r0, [r7]
+ b _08130696
+ .align 2, 0
+_08130674: .4byte gTasks
+_08130678: .4byte gBattleAnimPlayerMonIndex
+_0813067C: .4byte gBattleAnimEnemyMonIndex
+_08130680: .4byte gSpriteTemplate_84029AC
+_08130684: .4byte gSprites
+_08130688: .4byte 0x0000ffe0
+_0813068C: .4byte sub_81306A4
+_08130690:
+ mov r0, r9
+ bl DestroyAnimVisualTask
+_08130696:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130554
+
+ thumb_func_start sub_81306A4
+sub_81306A4: @ 81306A4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _081306C8 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _0813070C
+ cmp r1, 0x1
+ bgt _081306CC
+ cmp r1, 0
+ beq _081306D6
+ b _081307AA
+ .align 2, 0
+_081306C8: .4byte gTasks
+_081306CC:
+ cmp r1, 0x2
+ beq _08130730
+ cmp r1, 0x3
+ beq _081307A4
+ b _081307AA
+_081306D6:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081307AA
+ strh r1, [r4, 0xA]
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08130708 @ =gSprites
+ adds r0, r1
+ bl sub_8078718
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _081307AA
+ b _08130796
+ .align 2, 0
+_08130708: .4byte gSprites
+_0813070C:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0813072C @ =gSprites
+ adds r0, r1
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _081307AA
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ b _08130796
+ .align 2, 0
+_0813072C: .4byte gSprites
+_08130730:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081307AA
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xC]
+ adds r2, 0x1
+ strh r2, [r4, 0xC]
+ ldr r5, _081307A0 @ =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r0, 0x1
+ ands r2, r0
+ adds r1, 0x3E
+ lsls r2, 2
+ ldrb r3, [r1]
+ subs r0, 0x6
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081307AA
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_08130796:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081307AA
+ .align 2, 0
+_081307A0: .4byte gSprites
+_081307A4:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_081307AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81306A4
+
+ thumb_func_start sub_81307B0
+sub_81307B0: @ 81307B0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r0, _081307C4 @ =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r6, r0, 0
+ cmp r1, 0
+ bne _081307CC
+ ldr r0, _081307C8 @ =gBattleAnimPlayerMonIndex
+ b _081307CE
+ .align 2, 0
+_081307C4: .4byte gBattleAnimArgs
+_081307C8: .4byte gBattleAnimPlayerMonIndex
+_081307CC:
+ ldr r0, _08130834 @ =gBattleAnimEnemyMonIndex
+_081307CE:
+ ldrb r5, [r0]
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, _08130838 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _0813083C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x3A]
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ movs r1, 0x1
+ cmp r0, 0
+ bne _081307FC
+ movs r3, 0x1
+ negs r3, r3
+ adds r1, r3, 0
+_081307FC:
+ strh r1, [r4, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08130840
+ ldrb r2, [r4, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_807A100
+ subs r0, 0x8
+ b _0813084A
+ .align 2, 0
+_08130834: .4byte gBattleAnimEnemyMonIndex
+_08130838: .4byte 0x000003ff
+_0813083C: .4byte 0xfffffc00
+_08130840:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_807A100
+ adds r0, 0x8
+_0813084A:
+ strh r0, [r4, 0x20]
+ ldr r0, _08130858 @ =sub_813085C
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130858: .4byte sub_813085C
+ thumb_func_end sub_81307B0
+
+ thumb_func_start sub_813085C
+sub_813085C: @ 813085C
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ cmp r1, 0x1
+ beq _081308A4
+ cmp r1, 0x1
+ bgt _08130872
+ cmp r1, 0
+ beq _0813087C
+ b _08130914
+_08130872:
+ cmp r1, 0x2
+ beq _081308B4
+ cmp r1, 0x3
+ beq _081308DA
+ b _08130914
+_0813087C:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08130914
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x3C]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _08130914
+ b _081308D2
+_081308A4:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _08130914
+ b _081308CE
+_081308B4:
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r1, 2
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _08130914
+_081308CE:
+ movs r0, 0
+ strh r0, [r2, 0x30]
+_081308D2:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _08130914
+_081308DA:
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _08130914
+ ldrh r0, [r2, 0x3A]
+ subs r0, 0x1
+ strh r0, [r2, 0x3A]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0813090E
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _08130914
+_0813090E:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_08130914:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813085C
+
+ thumb_func_start sub_8130918
+sub_8130918: @ 8130918
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, _08130930 @ =gBattleAnimArgs
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _08130934
+ adds r0, r1, 0
+ bl DestroyAnimVisualTask
+ b _0813095C
+ .align 2, 0
+_08130930: .4byte gBattleAnimArgs
+_08130934:
+ ldr r0, _08130964 @ =gTasks
+ lsls r4, r1, 2
+ adds r4, r1
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r2, 0x2]
+ strh r0, [r4, 0x8]
+ ldrb r0, [r2]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, _08130968 @ =gUnknown_084029DC
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _0813096C @ =sub_8130970
+ str r0, [r4]
+_0813095C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130964: .4byte gTasks
+_08130968: .4byte gUnknown_084029DC
+_0813096C: .4byte sub_8130970
+ thumb_func_end sub_8130918
+
+ thumb_func_start sub_8130970
+sub_8130970: @ 8130970
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _081309B0 @ =gTasks
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081309CA
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081309B8
+ ldr r2, _081309B4 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ b _081309C8
+ .align 2, 0
+_081309B0: .4byte gTasks
+_081309B4: .4byte gSprites
+_081309B8:
+ ldr r2, _08130A10 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _08130A14 @ =0x0000fffe
+_081309C8:
+ strh r1, [r0, 0x24]
+_081309CA:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08130A26
+ ldr r2, _08130A10 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08130A20
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _08130A18 @ =gTasks
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08130A1C @ =gUnknown_084029DC
+ bl sub_80798F4
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ b _08130A26
+ .align 2, 0
+_08130A10: .4byte gSprites
+_08130A14: .4byte 0x0000fffe
+_08130A18: .4byte gTasks
+_08130A1C: .4byte gUnknown_084029DC
+_08130A20:
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_08130A26:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130970
+
+ thumb_func_start sub_8130A2C
+sub_8130A2C: @ 8130A2C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _08130A40 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08130A48
+ ldr r4, _08130A44 @ =gBattleAnimPlayerMonIndex
+ b _08130A4A
+ .align 2, 0
+_08130A40: .4byte gBattleAnimArgs
+_08130A44: .4byte gBattleAnimPlayerMonIndex
+_08130A48:
+ ldr r4, _08130A88 @ =gBattleAnimEnemyMonIndex
+_08130A4A:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ strh r0, [r5, 0x22]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x7
+ bgt _08130A6E
+ movs r0, 0x8
+ strh r0, [r5, 0x22]
+_08130A6E:
+ movs r2, 0
+ strh r2, [r5, 0x2E]
+ ldr r1, _08130A8C @ =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x30]
+ strh r2, [r5, 0x32]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x34]
+ ldr r0, _08130A90 @ =sub_8130A94
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130A88: .4byte gBattleAnimEnemyMonIndex
+_08130A8C: .4byte gBattleAnimArgs
+_08130A90: .4byte sub_8130A94
+ thumb_func_end sub_8130A2C
+
+ thumb_func_start sub_8130A94
+sub_8130A94: @ 8130A94
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ blt _08130AE8
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x32]
+ adds r1, 0x1
+ movs r0, 0x1
+ ands r1, r0
+ strh r1, [r3, 0x32]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ lsls r1, 2
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _08130AE8
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08130AE8
+ adds r0, r3, 0
+ bl move_anim_8072740
+_08130AE8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130A94
+
+ thumb_func_start sub_8130AEC
+sub_8130AEC: @ 8130AEC
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, _08130B18 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08130B1C
+ ldrb r2, [r3, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ movs r0, 0x64
+ strh r0, [r3, 0x20]
+ movs r0, 0x1
+ b _08130B22
+ .align 2, 0
+_08130B18: .4byte gBattleAnimArgs
+_08130B1C:
+ movs r0, 0x8C
+ strh r0, [r3, 0x20]
+ ldr r0, _08130B30 @ =0x0000ffff
+_08130B22:
+ strh r0, [r3, 0x3C]
+ movs r0, 0x38
+ strh r0, [r3, 0x22]
+ ldr r0, _08130B34 @ =sub_8130B38
+ str r0, [r3, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130B30: .4byte 0x0000ffff
+_08130B34: .4byte sub_8130B38
+ thumb_func_end sub_8130AEC
+
+ thumb_func_start sub_8130B38
+sub_8130B38: @ 8130B38
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bls _08130B46
+ b _08130D18
+_08130B46:
+ lsls r0, 2
+ ldr r1, _08130B50 @ =_08130B54
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08130B50: .4byte _08130B54
+ .align 2, 0
+_08130B54:
+ .4byte _08130B78
+ .4byte _08130BAA
+ .4byte _08130BBC
+ .4byte _08130BFC
+ .4byte _08130C0E
+ .4byte _08130C4C
+ .4byte _08130CB0
+ .4byte _08130CD0
+ .4byte _08130CF6
+_08130B78:
+ movs r3, 0x3C
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ ldrh r1, [r4, 0x22]
+ subs r1, r0
+ strh r1, [r4, 0x22]
+ ldrh r2, [r4, 0x30]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _08130B9A
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x20]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+_08130B9A:
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ beq _08130BA8
+ b _08130D18
+_08130BA8:
+ b _08130CEA
+_08130BAA:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _08130BBA
+ b _08130D18
+_08130BBA:
+ b _08130CEA
+_08130BBC:
+ ldrh r2, [r4, 0x30]
+ adds r2, 0x1
+ strh r2, [r4, 0x30]
+ movs r3, 0x3C
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r3, _08130BF8 @ =gSineTable
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x3C]
+ muls r0, r1
+ strh r0, [r4, 0x24]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0xC
+ beq _08130BF4
+ b _08130D18
+_08130BF4:
+ b _08130CEA
+ .align 2, 0
+_08130BF8: .4byte gSineTable
+_08130BFC:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ beq _08130C0C
+ b _08130D18
+_08130C0C:
+ b _08130CEA
+_08130C0E:
+ ldrh r2, [r4, 0x30]
+ adds r2, 0x1
+ strh r2, [r4, 0x30]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x22]
+ subs r0, r1
+ strh r0, [r4, 0x22]
+ ldr r3, _08130C48 @ =gSineTable
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x3C]
+ muls r0, r1
+ strh r0, [r4, 0x24]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0xC
+ bne _08130D18
+ b _08130CEE
+ .align 2, 0
+_08130C48: .4byte gSineTable
+_08130C4C:
+ ldrh r2, [r4, 0x30]
+ adds r2, 0x1
+ strh r2, [r4, 0x30]
+ movs r3, 0x3C
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r3, _08130CA4 @ =gSineTable
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x3C]
+ muls r0, r1
+ strh r0, [r4, 0x24]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0xF
+ bne _08130C98
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, _08130CA8 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _08130CAC @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+_08130C98:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x12
+ bne _08130D18
+ b _08130CEA
+ .align 2, 0
+_08130CA4: .4byte gSineTable
+_08130CA8: .4byte 0x000003ff
+_08130CAC: .4byte 0xfffffc00
+_08130CB0:
+ movs r3, 0x3C
+ ldrsh r0, [r4, r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ strh r1, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _08130D18
+ b _08130CEA
+_08130CD0:
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ ldrh r3, [r4, 0x20]
+ adds r0, r3
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08130D18
+_08130CEA:
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_08130CEE:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _08130D18
+_08130CF6:
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08130D18
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08130D18:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130B38
+
+ thumb_func_start sub_8130D20
+sub_8130D20: @ 8130D20
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08130D7C @ =gTasks
+ adds r6, r1, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x26]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08130DA8
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x1
+ bne _08130D8C
+ ldr r5, _08130D80 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r1, [r5]
+ movs r0, 0x2
+ eors r0, r1
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ ble _08130D84
+ strh r7, [r6, 0x24]
+ b _08130DAC
+ .align 2, 0
+_08130D7C: .4byte gTasks
+_08130D80: .4byte gBattleAnimPlayerMonIndex
+_08130D84:
+ ldr r0, _08130D88 @ =0x0000ffff
+ b _08130DAA
+ .align 2, 0
+_08130D88: .4byte 0x0000ffff
+_08130D8C:
+ ldr r0, _08130DA0 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08130DA8
+ ldr r0, _08130DA4 @ =0x0000ffff
+ b _08130DAA
+ .align 2, 0
+_08130DA0: .4byte gBattleAnimPlayerMonIndex
+_08130DA4: .4byte 0x0000ffff
+_08130DA8:
+ movs r0, 0x1
+_08130DAA:
+ strh r0, [r6, 0x24]
+_08130DAC:
+ ldr r0, _08130DB8 @ =sub_8130DBC
+ str r0, [r6]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130DB8: .4byte sub_8130DBC
+ thumb_func_end sub_8130D20
+
+ thumb_func_start sub_8130DBC
+sub_8130DBC: @ 8130DBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _08130DE0 @ =gTasks
+ adds r3, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x8
+ bls _08130DD6
+ b _08130F50
+_08130DD6:
+ lsls r0, 2
+ ldr r1, _08130DE4 @ =_08130DE8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08130DE0: .4byte gTasks
+_08130DE4: .4byte _08130DE8
+ .align 2, 0
+_08130DE8:
+ .4byte _08130E0C
+ .4byte _08130E1E
+ .4byte _08130E50
+ .4byte _08130E80
+ .4byte _08130EA6
+ .4byte _08130ED0
+ .4byte _08130EE0
+ .4byte _08130F00
+ .4byte _08130F38
+_08130E0C:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ beq _08130E1C
+ b _08130F50
+_08130E1C:
+ b _08130F28
+_08130E1E:
+ ldr r2, _08130E4C @ =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ lsls r2, r0, 1
+ adds r2, r0
+ ldrh r0, [r1, 0x24]
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ beq _08130E4A
+ b _08130F50
+_08130E4A:
+ b _08130F28
+ .align 2, 0
+_08130E4C: .4byte gSprites
+_08130E50:
+ ldr r2, _08130E7C @ =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x24
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ ldrh r2, [r1, 0x24]
+ adds r0, r2
+ strh r0, [r1, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _08130F50
+ b _08130F28
+ .align 2, 0
+_08130E7C: .4byte gSprites
+_08130E80:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _08130F50
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r1, [r3, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _08130F2C
+ adds r0, r1, 0x1
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0x8]
+ b _08130F50
+_08130EA6:
+ ldr r2, _08130ECC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x24]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _08130F50
+ b _08130F28
+ .align 2, 0
+_08130ECC: .4byte gSprites
+_08130ED0:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _08130F50
+ b _08130F28
+_08130EE0:
+ ldr r2, _08130EFC @ =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x24
+ ldrsh r2, [r3, r0]
+ lsls r2, 2
+ ldrh r0, [r1, 0x24]
+ subs r0, r2
+ b _08130F18
+ .align 2, 0
+_08130EFC: .4byte gSprites
+_08130F00:
+ ldr r2, _08130F34 @ =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ lsls r0, 2
+ ldrh r2, [r1, 0x24]
+ adds r0, r2
+_08130F18:
+ strh r0, [r1, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08130F50
+_08130F28:
+ movs r0, 0
+ strh r0, [r3, 0xA]
+_08130F2C:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _08130F50
+ .align 2, 0
+_08130F34: .4byte gSprites
+_08130F38:
+ ldr r2, _08130F58 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_08130F50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130F58: .4byte gSprites
+ thumb_func_end sub_8130DBC
+
+ thumb_func_start sub_8130F5C
+sub_8130F5C: @ 8130F5C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08130F78 @ =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08130F80
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _08130F7C @ =gBattleAnimPlayerMonIndex
+ b _08130F82
+ .align 2, 0
+_08130F78: .4byte gBattleAnimArgs
+_08130F7C: .4byte gBattleAnimPlayerMonIndex
+_08130F80:
+ ldr r0, _08130FD8 @ =gBattleAnimEnemyMonIndex
+_08130F82:
+ ldrb r0, [r0]
+ strh r0, [r4, 0x3C]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08130FA6
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+_08130FA6:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079ED4
+ movs r2, 0x3
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ ldrb r0, [r4, 0x1]
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+ ldr r0, _08130FDC @ =sub_8130FE0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130FD8: .4byte gBattleAnimEnemyMonIndex
+_08130FDC: .4byte sub_8130FE0
+ thumb_func_end sub_8130F5C
+
+ thumb_func_start sub_8130FE0
+sub_8130FE0: @ 8130FE0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _08130FEE
+ b _081311DE
+_08130FEE:
+ lsls r0, 2
+ ldr r1, _08130FF8 @ =_08130FFC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08130FF8: .4byte _08130FFC
+ .align 2, 0
+_08130FFC:
+ .4byte _08131010
+ .4byte _08131110
+ .4byte _08131178
+ .4byte _0813118C
+ .4byte _081311D8
+_08131010:
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5
+ bhi _08131040
+ lsls r0, 2
+ ldr r1, _08131024 @ =_08131028
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08131024: .4byte _08131028
+ .align 2, 0
+_08131028:
+ .4byte _08131044
+ .4byte _08131060
+ .4byte _08131082
+ .4byte _0813109E
+ .4byte _08131044
+ .4byte _081310C4
+_08131040:
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+_08131044:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ b _081310B8
+_08131060:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x4
+ b _081310BE
+_08131082:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ b _081310B8
+_0813109E:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+_081310B8:
+ bl sub_807A100
+ subs r0, 0x4
+_081310BE:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ b _081310E4
+_081310C4:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r1, r0, 24
+_081310E4:
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ bne _081310F0
+ movs r0, 0x18
+ b _081310FA
+_081310F0:
+ cmp r0, 0x5
+ bne _081310F8
+ movs r0, 0x6
+ b _081310FA
+_081310F8:
+ movs r0, 0xC
+_081310FA:
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ strh r1, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ b _081311CA
+_08131110:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _081311DE
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ beq _08131148
+ cmp r0, 0x5
+ beq _08131168
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _08131160
+_08131148:
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x38]
+_08131160:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ b _081311DE
+_08131168:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ movs r1, 0x10
+ strh r1, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ movs r0, 0x3
+ strh r0, [r4, 0x38]
+ b _081311DE
+_08131178:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _081311DE
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ b _081311DE
+_0813118C:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0813119E
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ b _081311A4
+_0813119E:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+_081311A4:
+ ldr r2, _081311D4 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0x32]
+ lsls r0, 8
+ ldrh r1, [r4, 0x30]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ bne _081311DE
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_081311CA:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _081311DE
+ .align 2, 0
+_081311D4: .4byte REG_BLDALPHA
+_081311D8:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_081311DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130FE0
+
+ thumb_func_start sub_81311E4
+sub_81311E4: @ 81311E4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ adds r5, r0, 0
+ strh r5, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ adds r3, r0, 0
+ strh r3, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08131242
+ ldr r0, _08131260 @ =gSpriteTemplate_8402500
+ ldrh r1, [r4, 0x20]
+ adds r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r4, 0x22]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x5
+ bl CreateSprite
+_08131242:
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08131254
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08131254:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08131260: .4byte gSpriteTemplate_8402500
+ thumb_func_end sub_81311E4
+
+ thumb_func_start sub_8131264
+sub_8131264: @ 8131264
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _081312A0 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08131290
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _081312A8
+_08131290:
+ ldr r2, _081312A4 @ =gBattleAnimArgs
+ ldrh r1, [r5, 0x20]
+ ldrh r0, [r2]
+ subs r0, r1, r0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ subs r1, r0
+ b _081312B6
+ .align 2, 0
+_081312A0: .4byte gBattleAnimEnemyMonIndex
+_081312A4: .4byte gBattleAnimArgs
+_081312A8:
+ ldr r2, _081312DC @ =gBattleAnimArgs
+ ldrh r1, [r5, 0x20]
+ ldrh r0, [r2]
+ adds r0, r1, r0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ adds r1, r0
+_081312B6:
+ strh r1, [r5, 0x32]
+ adds r3, r2, 0
+ ldrh r1, [r5, 0x22]
+ ldrh r2, [r3, 0x2]
+ adds r2, r1, r2
+ strh r2, [r5, 0x30]
+ ldrh r0, [r3, 0x6]
+ adds r1, r0
+ strh r1, [r5, 0x34]
+ ldrh r0, [r3, 0x8]
+ strh r0, [r5, 0x36]
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r5, 0x20]
+ strh r2, [r5, 0x22]
+ ldr r0, _081312E0 @ =sub_81311E4
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081312DC: .4byte gBattleAnimArgs
+_081312E0: .4byte sub_81311E4
+ thumb_func_end sub_8131264
+
+ thumb_func_start sub_81312E4
+sub_81312E4: @ 81312E4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ ldr r0, _08131328 @ =gTasks
+ mov r9, r0
+ lsls r7, r6, 2
+ adds r0, r7, r6
+ lsls r0, 3
+ mov r8, r0
+ mov r4, r8
+ add r4, r9
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0813132C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ b _08131378
+ .align 2, 0
+_08131328: .4byte gTasks
+_0813132C:
+ cmp r0, 0x1
+ bne _08131384
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x60
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ subs r0, 0xD
+ strh r0, [r4, 0xC]
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ movs r0, 0xC
+ ldrsh r2, [r4, r0]
+ adds r0, r5, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _081313E8
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ adds r0, r5, 0
+ bl sub_8078F40
+ ldr r1, _08131380 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08131378:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081313E8
+ .align 2, 0
+_08131380: .4byte gSprites
+_08131384:
+ ldr r4, _081313F4 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r4]
+ movs r1, 0
+ bl refresh_graphics_maybe
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _081313C6
+ ldr r3, _081313F8 @ =gSprites
+ ldr r2, _081313FC @ =gObjectBankIDs
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, _08131400 @ =gSpriteAffineAnimTable_81E7C18
+ str r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_081313C6:
+ mov r4, r9
+ adds r3, r7, 0
+ ldr r5, _08131404 @ =sub_8131408
+ movs r1, 0xF
+ mov r2, r8
+ adds r0, r4, r2
+ adds r0, 0x26
+ movs r2, 0
+_081313D6:
+ strh r2, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _081313D6
+ adds r0, r3, r6
+ lsls r0, 3
+ adds r0, r4
+ str r5, [r0]
+_081313E8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081313F4: .4byte gBattleAnimPlayerMonIndex
+_081313F8: .4byte gSprites
+_081313FC: .4byte gObjectBankIDs
+_08131400: .4byte gSpriteAffineAnimTable_81E7C18
+_08131404: .4byte sub_8131408
+ thumb_func_end sub_81312E4
+
+ thumb_func_start sub_8131408
+sub_8131408: @ 8131408
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08131434 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _0813146C
+ cmp r5, 0x1
+ bgt _08131438
+ cmp r5, 0
+ beq _08131442
+ b _0813155A
+ .align 2, 0
+_08131434: .4byte gTasks
+_08131438:
+ cmp r5, 0x2
+ beq _081314D8
+ cmp r5, 0x3
+ beq _08131514
+ b _0813155A
+_08131442:
+ ldr r0, _08131464 @ =gSprites
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08131468 @ =0x0000ff38
+ strh r0, [r1, 0x26]
+ movs r0, 0xC8
+ strh r0, [r1, 0x24]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ subs r0, 0xCD
+ ands r0, r2
+ strb r0, [r1]
+ strh r5, [r4, 0x1C]
+ b _08131506
+ .align 2, 0
+_08131464: .4byte gSprites
+_08131468: .4byte 0x0000ff38
+_0813146C:
+ ldrh r1, [r4, 0x1C]
+ adds r1, 0x70
+ movs r5, 0
+ strh r1, [r4, 0x1C]
+ ldr r2, _081314D0 @ =gSprites
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r2, r0, r2
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r3, [r2, 0x26]
+ adds r1, r3
+ strh r1, [r2, 0x26]
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ blt _0813149C
+ strh r5, [r2, 0x24]
+_0813149C:
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ ble _081314A6
+ strh r5, [r2, 0x26]
+_081314A6:
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _0813155A
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+ ldr r1, _081314D4 @ =0xfffff800
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x1C]
+ adds r0, r2
+ strh r0, [r4, 0x1C]
+ b _08131506
+ .align 2, 0
+_081314D0: .4byte gSprites
+_081314D4: .4byte 0xfffff800
+_081314D8:
+ ldrh r0, [r4, 0x1C]
+ subs r0, 0x70
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081314E8
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+_081314E8:
+ ldr r0, _08131510 @ =gSprites
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r4, 0x1C]
+ lsls r2, 16
+ asrs r2, 24
+ ldrh r0, [r1, 0x26]
+ subs r0, r2
+ strh r0, [r1, 0x26]
+ movs r3, 0x1C
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _0813155A
+_08131506:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0813155A
+ .align 2, 0
+_08131510: .4byte gSprites
+_08131514:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x70
+ strh r0, [r4, 0x1C]
+ ldr r2, _08131560 @ =gSprites
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r1, 0x26]
+ adds r0, r2
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08131538
+ movs r0, 0
+ strh r0, [r1, 0x26]
+_08131538:
+ movs r3, 0x26
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0813155A
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_0813155A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08131560: .4byte gSprites
+ thumb_func_end sub_8131408
+
+ thumb_func_start sub_8131564
+sub_8131564: @ 8131564
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _08131588 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131590
+ ldrb r0, [r4]
+ bl sub_8079E90
+ subs r0, 0x2
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r4, _0813158C @ =0x0000ff70
+ b _081315A0
+ .align 2, 0
+_08131588: .4byte gBattleAnimEnemyMonIndex
+_0813158C: .4byte 0x0000ff70
+_08131590:
+ ldrb r0, [r4]
+ bl sub_8079E90
+ adds r0, 0x2
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r4, _081315BC @ =0x0000ffa0
+_081315A0:
+ ldr r0, _081315C0 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ strh r4, [r5, 0x26]
+ ldr r0, _081315C4 @ =sub_81315C8
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081315BC: .4byte 0x0000ffa0
+_081315C0: .4byte gBattleAnimEnemyMonIndex
+_081315C4: .4byte sub_81315C8
+ thumb_func_end sub_8131564
+
+ thumb_func_start sub_81315C8
+sub_81315C8: @ 81315C8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _081315D6
+ b _081316F2
+_081315D6:
+ lsls r0, 2
+ ldr r1, _081315E0 @ =_081315E4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081315E0: .4byte _081315E4
+ .align 2, 0
+_081315E4:
+ .4byte _081315F8
+ .4byte _0813161C
+ .4byte _0813165C
+ .4byte _0813168C
+ .4byte _081316B8
+_081315F8:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0xA
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _081316F2
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCD
+ bl PlaySE12WithPanning
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ b _081316B0
+_0813161C:
+ ldrh r1, [r4, 0x30]
+ adds r1, 0x4
+ movs r5, 0
+ strh r1, [r4, 0x30]
+ ldr r2, _08131658 @ =gSineTable
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _081316F2
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCD
+ bl PlaySE12WithPanning
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x26]
+ b _081316B0
+ .align 2, 0
+_08131658: .4byte gSineTable
+_0813165C:
+ ldrh r1, [r4, 0x30]
+ adds r1, 0x6
+ movs r3, 0
+ strh r1, [r4, 0x30]
+ ldr r2, _08131688 @ =gSineTable
+ movs r5, 0x30
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _081316F2
+ strh r3, [r4, 0x30]
+ strh r3, [r4, 0x26]
+ b _081316B0
+ .align 2, 0
+_08131688: .4byte gSineTable
+_0813168C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _081316F2
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC0
+ bl PlaySE12WithPanning
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_081316B0:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081316F2
+_081316B8:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _081316F2
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ movs r0, 0x1
+ ands r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ subs r0, 0x6
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bne _081316F2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_081316F2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81315C8
+
+ thumb_func_start sub_81316F8
+sub_81316F8: @ 81316F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r10, r4
+ bl IsContest
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0813173E
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ asrs r7, r0, 16
+ cmp r7, 0
+ blt _0813173E
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0813174C
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _08131748 @ =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+_0813173E:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _081317EE
+ .align 2, 0
+_08131748: .4byte gSprites
+_0813174C:
+ ldr r1, _081317FC @ =gSprites
+ mov r9, r1
+ lsls r1, r0, 4
+ mov r8, r1
+ add r8, r0
+ mov r0, r8
+ lsls r0, 2
+ mov r8, r0
+ mov r4, r8
+ add r4, r9
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x18
+ strh r0, [r4, 0x24]
+ lsls r6, r7, 4
+ adds r6, r7
+ lsls r6, 2
+ mov r1, r9
+ adds r2, r6, r1
+ ldrh r0, [r2, 0x24]
+ subs r0, 0x18
+ strh r0, [r2, 0x24]
+ strh r5, [r4, 0x2E]
+ strh r5, [r2, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r2, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r2, 0x32]
+ movs r0, 0x10
+ strh r0, [r4, 0x34]
+ ldr r0, _08131800 @ =0x0000fff0
+ strh r0, [r2, 0x34]
+ strh r5, [r4, 0x36]
+ movs r0, 0x80
+ strh r0, [r2, 0x36]
+ movs r0, 0x18
+ strh r0, [r4, 0x38]
+ strh r0, [r2, 0x38]
+ mov r0, r10
+ strh r0, [r4, 0x3A]
+ strh r0, [r2, 0x3A]
+ strh r5, [r4, 0x3C]
+ strh r5, [r2, 0x3C]
+ ldr r0, _08131804 @ =gTasks
+ mov r1, r10
+ lsls r3, r1, 2
+ add r3, r10
+ lsls r3, 3
+ adds r3, r0
+ movs r0, 0x2
+ strh r0, [r3, 0x8]
+ adds r5, r4, 0
+ adds r5, 0x3E
+ ldrb r1, [r5]
+ subs r0, 0x7
+ ands r0, r1
+ strb r0, [r5]
+ adds r5, r2, 0
+ adds r5, 0x3E
+ ldrb r0, [r5]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5]
+ ldrb r5, [r4, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r5
+ strb r0, [r4, 0x1]
+ ldrb r0, [r2, 0x1]
+ ands r1, r0
+ strb r1, [r2, 0x1]
+ movs r0, 0x1C
+ add r9, r0
+ add r8, r9
+ ldr r0, _08131808 @ =sub_8131838
+ mov r1, r8
+ str r0, [r1]
+ add r6, r9
+ str r0, [r6]
+ ldr r0, _0813180C @ =sub_8131810
+ str r0, [r3]
+_081317EE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081317FC: .4byte gSprites
+_08131800: .4byte 0x0000fff0
+_08131804: .4byte gTasks
+_08131808: .4byte sub_8131838
+_0813180C: .4byte sub_8131810
+ thumb_func_end sub_81316F8
+
+ thumb_func_start sub_8131810
+sub_8131810: @ 8131810
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08131834 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0813182E
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_0813182E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08131834: .4byte gTasks
+ thumb_func_end sub_8131810
+
+ thumb_func_start sub_8131838
+sub_8131838: @ 8131838
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08131868
+ strh r5, [r4, 0x30]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_08131868:
+ ldrh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x36]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08131890
+ cmp r0, 0x1
+ beq _081318A8
+ b _081318E6
+_08131890:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ bne _081318E6
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081318E6
+_081318A8:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ ble _081318E6
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x2
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081318E6
+ ldr r3, _081318EC @ =gTasks
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_081318E6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081318EC: .4byte gTasks
+ thumb_func_end sub_8131838
+
+ thumb_func_start sub_81318F0
+sub_81318F0: @ 81318F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, _0813193C @ =gBattleAnimArgs
+ movs r2, 0
+ strh r2, [r3, 0xE]
+ ldr r1, _08131940 @ =gHappinessMoveAnim
+ ldrb r0, [r1]
+ ldrb r1, [r1]
+ adds r0, r1, 0
+ subs r0, 0x3D
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r1, 0
+ cmp r0, 0x1E
+ bhi _08131914
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+_08131914:
+ adds r0, r2, 0
+ subs r0, 0x5C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6C
+ bhi _08131924
+ movs r0, 0x2
+ strh r0, [r3, 0xE]
+_08131924:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0xC8
+ bls _08131930
+ movs r0, 0x3
+ strh r0, [r3, 0xE]
+_08131930:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813193C: .4byte gBattleAnimArgs
+_08131940: .4byte gHappinessMoveAnim
+ thumb_func_end sub_81318F0
+
+ thumb_func_start sub_8131944
+sub_8131944: @ 8131944
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _08131974 @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _0813196A
+ b _08131EA0
+_0813196A:
+ lsls r0, 2
+ ldr r1, _08131978 @ =_0813197C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08131974: .4byte gTasks
+_08131978: .4byte _0813197C
+ .align 2, 0
+_0813197C:
+ .4byte _08131990
+ .4byte _08131A44
+ .4byte _08131C20
+ .4byte _08131D40
+ .4byte _08131DC4
+_08131990:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _081319DC @ =gTasks
+ mov r2, r8
+ lsls r4, r2, 2
+ adds r0, r4, r2
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r3, 0x80
+ lsls r3, 4
+ adds r0, r3, 0
+ ldrh r1, [r6, 0xA]
+ adds r0, r1
+ strh r0, [r6, 0xA]
+ ldr r0, _081319E0 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _081319E8
+ ldr r2, _081319E4 @ =gSprites
+ lsls r3, r7, 4
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+ b _08131A02
+ .align 2, 0
+_081319DC: .4byte gTasks
+_081319E0: .4byte gBattleAnimPlayerMonIndex
+_081319E4: .4byte gSprites
+_081319E8:
+ ldr r3, _08131A3C @ =gSprites
+ lsls r4, r7, 4
+ adds r2, r4, r7
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r6, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+_08131A02:
+ ldr r1, _08131A40 @ =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrb r0, [r4, 0xA]
+ strh r0, [r4, 0xA]
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ ldrh r1, [r1, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bhi _08131A2E
+ b _08131EA0
+_08131A2E:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08131EA0
+ .align 2, 0
+_08131A3C: .4byte gSprites
+_08131A40: .4byte gTasks
+_08131A44:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08131A74
+ ldr r0, _08131A6C @ =0x02019348
+ ldr r2, [r0, 0x8]
+ mov r10, r2
+ ldr r3, [r0, 0xC]
+ mov r9, r3
+ ldrh r5, [r0]
+ ldr r0, _08131A70 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0
+ b _08131B92
+ .align 2, 0
+_08131A6C: .4byte 0x02019348
+_08131A70: .4byte gBattleAnimPlayerMonIndex
+_08131A74:
+ ldr r4, _08131AD4 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131B10
+ ldr r7, _08131AD8 @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08131ADC @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r10, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ mov r9, r0
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ ldr r0, _08131AE0 @ =0x02017800
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _08131AE4
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _08131AE6
+ .align 2, 0
+_08131AD4: .4byte gBattleAnimPlayerMonIndex
+_08131AD8: .4byte gBattlePartyID
+_08131ADC: .4byte gPlayerParty
+_08131AE0: .4byte 0x02017800
+_08131AE4:
+ ldrh r5, [r1, 0x2]
+_08131AE6:
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _08131B0C @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0
+ movs r6, 0x88
+ lsls r6, 1
+ b _08131B94
+ .align 2, 0
+_08131B0C: .4byte gSprites
+_08131B10:
+ ldr r7, _08131B64 @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08131B68 @ =gEnemyParty
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r10, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ mov r9, r0
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ ldr r0, _08131B6C @ =0x02017800
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _08131B70
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _08131B72
+ .align 2, 0
+_08131B64: .4byte gBattlePartyID
+_08131B68: .4byte gEnemyParty
+_08131B6C: .4byte 0x02017800
+_08131B70:
+ ldrh r5, [r1, 0x2]
+_08131B72:
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _08131C04 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0x1
+_08131B92:
+ ldr r6, _08131C08 @ =0x0000ffe0
+_08131B94:
+ ldr r0, _08131C0C @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r6, 16
+ asrs r3, 16
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ mov r4, r10
+ str r4, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8079F44
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08131C10 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _08131C14 @ =0x02017800
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08131BF2
+ ldr r1, _08131C04 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ orrs r0, r1
+ ldr r3, _08131C18 @ =0x00007fff
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+_08131BF2:
+ ldr r0, _08131C1C @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ strh r5, [r1, 0x26]
+ b _08131DB6
+ .align 2, 0
+_08131C04: .4byte gSprites
+_08131C08: .4byte 0x0000ffe0
+_08131C0C: .4byte gBattleAnimEnemyMonIndex
+_08131C10: .4byte gBattleAnimPlayerMonIndex
+_08131C14: .4byte 0x02017800
+_08131C18: .4byte 0x00007fff
+_08131C1C: .4byte gTasks
+_08131C20:
+ ldr r1, _08131C6C @ =gTasks
+ mov r0, r8
+ lsls r4, r0, 2
+ adds r0, r4, r0
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrh r0, [r6, 0x26]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1, 0
+ ldrh r2, [r6, 0xA]
+ adds r0, r2
+ strh r0, [r6, 0xA]
+ ldr r0, _08131C70 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _08131C78
+ ldr r3, _08131C74 @ =gSprites
+ lsls r4, r5, 4
+ adds r2, r4, r5
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r6, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+ b _08131C8E
+ .align 2, 0
+_08131C6C: .4byte gTasks
+_08131C70: .4byte gBattleAnimPlayerMonIndex
+_08131C74: .4byte gSprites
+_08131C78:
+ ldr r2, _08131CDC @ =gSprites
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+_08131C8E:
+ ldr r1, _08131CE0 @ =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrb r0, [r6, 0xA]
+ strh r0, [r6, 0xA]
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ ldrh r1, [r1, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r1, 0x24
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08131D0E
+ ldr r0, _08131CE4 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131CEC
+ lsls r4, r5, 16
+ asrs r4, 16
+ ldr r0, _08131CE8 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bge _08131D0E
+ b _08131D02
+ .align 2, 0
+_08131CDC: .4byte gSprites
+_08131CE0: .4byte gTasks
+_08131CE4: .4byte gBattleAnimPlayerMonIndex
+_08131CE8: .4byte gBattleAnimEnemyMonIndex
+_08131CEC:
+ lsls r4, r5, 16
+ asrs r4, 16
+ ldr r0, _08131D30 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ ble _08131D0E
+_08131D02:
+ ldrh r0, [r6, 0x24]
+ adds r0, 0x1
+ strh r0, [r6, 0x24]
+ ldr r1, _08131D34 @ =gBattleAnimArgs
+ ldr r0, _08131D38 @ =0x0000ffff
+ strh r0, [r1, 0xE]
+_08131D0E:
+ lsls r0, r5, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r0, r2
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bhi _08131D20
+ b _08131EA0
+_08131D20:
+ ldr r0, _08131D3C @ =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _08131DB6
+ .align 2, 0
+_08131D30: .4byte gBattleAnimEnemyMonIndex
+_08131D34: .4byte gBattleAnimArgs
+_08131D38: .4byte 0x0000ffff
+_08131D3C: .4byte gTasks
+_08131D40:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08131D8C @ =gTasks
+ mov r3, r8
+ lsls r4, r3, 2
+ adds r0, r4, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x26]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r5, _08131D90 @ =gSprites
+ adds r0, r5
+ bl sub_807A0F4
+ ldr r0, _08131D94 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _08131D98
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ adds r1, r5
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r1, 0x24]
+ b _08131DAC
+ .align 2, 0
+_08131D8C: .4byte gTasks
+_08131D90: .4byte gSprites
+_08131D94: .4byte gBattleAnimPlayerMonIndex
+_08131D98:
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r5
+ ldrh r2, [r0, 0x20]
+ movs r4, 0x88
+ lsls r4, 1
+ adds r1, r4, 0
+ subs r1, r2
+ strh r1, [r0, 0x24]
+_08131DAC:
+ ldr r0, _08131DC0 @ =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+_08131DB6:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08131EA0
+ .align 2, 0
+_08131DC0: .4byte gTasks
+_08131DC4:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08131E38 @ =gTasks
+ mov r0, r8
+ lsls r4, r0, 2
+ adds r0, r4, r0
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1, 0
+ ldrh r3, [r2, 0xA]
+ adds r0, r3
+ strh r0, [r2, 0xA]
+ ldr r0, _08131E3C @ =gBattleAnimPlayerMonIndex
+ mov r10, r0
+ ldrb r0, [r0]
+ str r2, [sp, 0x10]
+ bl GetBankSide
+ lsls r0, 24
+ mov r9, r4
+ ldr r2, [sp, 0x10]
+ cmp r0, 0
+ bne _08131E44
+ ldr r1, _08131E40 @ =gSprites
+ lsls r5, r7, 4
+ adds r0, r5, r7
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r6, 0x24]
+ adds r0, r1
+ strh r0, [r6, 0x24]
+ movs r2, 0x24
+ ldrsh r4, [r6, r2]
+ movs r3, 0x20
+ ldrsh r0, [r6, r3]
+ adds r4, r0
+ mov r1, r10
+ ldrb r0, [r1]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r5, 0
+ cmp r4, r0
+ blt _08131E7C
+ movs r2, 0
+ strh r2, [r6, 0x24]
+ b _08131E7C
+ .align 2, 0
+_08131E38: .4byte gTasks
+_08131E3C: .4byte gBattleAnimPlayerMonIndex
+_08131E40: .4byte gSprites
+_08131E44:
+ ldr r1, _08131EB0 @ =gSprites
+ lsls r5, r7, 4
+ adds r0, r5, r7
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrh r1, [r2, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r6, 0x24]
+ subs r0, r1
+ strh r0, [r6, 0x24]
+ movs r3, 0x24
+ ldrsh r4, [r6, r3]
+ movs r1, 0x20
+ ldrsh r0, [r6, r1]
+ adds r4, r0
+ mov r2, r10
+ ldrb r0, [r2]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r5, 0
+ cmp r4, r0
+ bgt _08131E7C
+ movs r4, 0
+ strh r4, [r6, 0x24]
+_08131E7C:
+ ldr r1, _08131EB4 @ =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xA]
+ strh r1, [r0, 0xA]
+ ldr r1, _08131EB0 @ =gSprites
+ adds r0, r3, r7
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08131EA0
+ mov r0, r8
+ bl DestroyAnimVisualTask
+_08131EA0:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08131EB0: .4byte gSprites
+_08131EB4: .4byte gTasks
+ thumb_func_end sub_8131944
+
+ thumb_func_start sub_8131EB8
+sub_8131EB8: @ 8131EB8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08131ECA
+ cmp r0, 0x1
+ beq _08131F72
+ b _08131FF4
+_08131ECA:
+ ldr r0, _08131F50 @ =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08131F64
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7A
+ bl PlaySE12WithPanning
+ ldr r0, _08131F54 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ ldr r0, _08131F58 @ =0x0000ffe0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08131F5C @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08131FF4
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131FF4
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _08131F60 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ b _08131FF4
+ .align 2, 0
+_08131F50: .4byte gBattleAnimArgs
+_08131F54: .4byte gBattleAnimEnemyMonIndex
+_08131F58: .4byte 0x0000ffe0
+_08131F5C: .4byte gBattleAnimPlayerMonIndex
+_08131F60: .4byte gSprites
+_08131F64:
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _08131FF4
+_08131F72:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x30]
+ adds r0, r2, 0x5
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7F
+ ble _08131FA6
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r2, 0
+ subs r0, 0x7A
+ strh r0, [r4, 0x30]
+_08131FA6:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldr r0, _08131FD0 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131FD4
+ ldrh r2, [r4, 0x32]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ adds r1, r2, 0
+ b _08131FE0
+ .align 2, 0
+_08131FD0: .4byte gBattleAnimPlayerMonIndex
+_08131FD4:
+ ldrh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+_08131FE0:
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ bne _08131FF4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08131FF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8131EB8
+
+ thumb_func_start sub_8131FFC
+sub_8131FFC: @ 8131FFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08132024 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ adds r3, r1, 0
+ cmp r0, 0x4
+ bls _08132018
+ b _0813216A
+_08132018:
+ lsls r0, 2
+ ldr r1, _08132028 @ =_0813202C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08132024: .4byte gTasks
+_08132028: .4byte _0813202C
+ .align 2, 0
+_0813202C:
+ .4byte _08132040
+ .4byte _08132090
+ .4byte _081320EC
+ .4byte _08132104
+ .4byte _0813216A
+_08132040:
+ ldr r0, _08132084 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, _08132088 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ ldr r1, _0813208C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x6
+ strh r0, [r1, 0x8]
+ cmp r5, r2
+ ble _08132076
+ negs r0, r0
+ strh r0, [r1, 0x8]
+_08132076:
+ strh r5, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08132188
+ .align 2, 0
+_08132084: .4byte gBattleAnimPlayerMonIndex
+_08132088: .4byte gBattleAnimEnemyMonIndex
+_0813208C: .4byte gTasks
+_08132090:
+ ldr r1, _081320CC @ =gObjectBankIDs
+ ldr r0, _081320D0 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, _081320D4 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x8]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _081320D8
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ b _0813215E
+ .align 2, 0
+_081320CC: .4byte gObjectBankIDs
+_081320D0: .4byte gBattleAnimPlayerMonIndex
+_081320D4: .4byte gSprites
+_081320D8:
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bgt _08132188
+ b _08132162
+_081320EC:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0, 0x8]
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ strh r1, [r0, 0x26]
+ b _08132188
+_08132104:
+ ldr r1, _08132144 @ =gObjectBankIDs
+ ldr r0, _08132148 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, _0813214C @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x8]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bge _08132150
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bgt _08132188
+ b _08132162
+ .align 2, 0
+_08132144: .4byte gObjectBankIDs
+_08132148: .4byte gBattleAnimPlayerMonIndex
+_0813214C: .4byte gSprites
+_08132150:
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+_0813215E:
+ cmp r0, r1
+ blt _08132188
+_08132162:
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x1
+ strh r0, [r2, 0x26]
+ b _08132188
+_0813216A:
+ ldr r1, _08132190 @ =gObjectBankIDs
+ ldr r0, _08132194 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, _08132198 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_08132188:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132190: .4byte gObjectBankIDs
+_08132194: .4byte gBattleAnimPlayerMonIndex
+_08132198: .4byte gSprites
+ thumb_func_end sub_8131FFC
+
+ thumb_func_start sub_813219C
+sub_813219C: @ 813219C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08132204 @ =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0xE]
+ ldr r0, _08132208 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _081321D0
+ movs r1, 0x1
+_081321D0:
+ strh r1, [r4, 0x10]
+ ldr r2, _0813220C @ =gSprites
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x14]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x1A]
+ strh r5, [r4, 0x1E]
+ movs r0, 0x1
+ strh r0, [r4, 0x1C]
+ strh r5, [r4, 0x20]
+ ldr r0, _08132210 @ =sub_8132214
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132204: .4byte gTasks
+_08132208: .4byte gBattleAnimPlayerMonIndex
+_0813220C: .4byte gSprites
+_08132210: .4byte sub_8132214
+ thumb_func_end sub_813219C
+
+ thumb_func_start sub_8132214
+sub_8132214: @ 8132214
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _08132238 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _081322BC
+ cmp r0, 0x1
+ bgt _0813223C
+ cmp r0, 0
+ beq _08132242
+ b _08132312
+ .align 2, 0
+_08132238: .4byte gTasks
+_0813223C:
+ cmp r0, 0x2
+ beq _0813230C
+ b _08132312
+_08132242:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x8
+ movs r2, 0xFF
+ ands r0, r2
+ strh r0, [r4, 0x1E]
+ ldr r5, _081322B4 @ =gSprites
+ movs r6, 0xE
+ ldrsh r0, [r4, r6]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldr r3, _081322B8 @ =gSineTable
+ movs r6, 0x1E
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x2
+ ands r0, r2
+ strh r0, [r4, 0x1A]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ movs r6, 0x1A
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x10]
+ muls r0, r1
+ ldrh r1, [r4, 0x12]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ movs r6, 0x1A
+ ldrsh r0, [r4, r6]
+ cmp r0, 0
+ bne _08132312
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r4, 0x12]
+ strh r1, [r0, 0x20]
+ b _081322FC
+ .align 2, 0
+_081322B4: .4byte gSprites
+_081322B8: .4byte gSineTable
+_081322BC:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x1E]
+ ldr r3, _08132304 @ =gSprites
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, _08132308 @ =gSineTable
+ movs r5, 0x1E
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r1, 0x24]
+ movs r6, 0x1E
+ ldrsh r2, [r4, r6]
+ cmp r2, 0
+ bne _08132312
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ strh r2, [r1, 0x24]
+_081322FC:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08132312
+ .align 2, 0
+_08132304: .4byte gSprites
+_08132308: .4byte gSineTable
+_0813230C:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_08132312:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8132214
+
+ thumb_func_start sub_8132318
+sub_8132318: @ 8132318
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0813236C @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ ldrh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0813235E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0813235E:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813236C: .4byte gBattleAnimEnemyMonIndex
+ thumb_func_end sub_8132318
+
+ thumb_func_start sub_8132370
+sub_8132370: @ 8132370
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _081323A8 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _081323B4
+ ldr r2, _081323AC @ =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _081323B0 @ =0x0000fff5
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC0
+ strh r0, [r4, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _081323CE
+ .align 2, 0
+_081323A8: .4byte gBattleAnimEnemyMonIndex
+_081323AC: .4byte gBattleAnimArgs
+_081323B0: .4byte 0x0000fff5
+_081323B4:
+ movs r0, 0xB
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC0
+ strh r0, [r4, 0x30]
+ ldr r1, _081323D8 @ =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_081323CE:
+ ldr r0, _081323DC @ =sub_8132318
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081323D8: .4byte gBattleAnimArgs
+_081323DC: .4byte sub_8132318
+ thumb_func_end sub_8132370
+
+ thumb_func_start sub_81323E0
+sub_81323E0: @ 81323E0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _08132424 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _0813240A
+ movs r0, 0x10
+ strh r0, [r5, 0x22]
+_0813240A:
+ movs r0, 0
+ strh r0, [r5, 0x3A]
+ movs r1, 0x10
+ strh r1, [r5, 0x3C]
+ ldr r0, _08132428 @ =sub_8132430
+ str r0, [r5, 0x1C]
+ ldr r0, _0813242C @ =REG_BLDALPHA
+ lsls r1, 8
+ strh r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132424: .4byte gBattleAnimPlayerMonIndex
+_08132428: .4byte sub_8132430
+_0813242C: .4byte REG_BLDALPHA
+ thumb_func_end sub_81323E0
+
+ thumb_func_start sub_8132430
+sub_8132430: @ 8132430
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r0, 0x32
+ ldrsh r1, [r3, r0]
+ cmp r1, 0x1
+ beq _081324A8
+ cmp r1, 0x1
+ bgt _08132446
+ cmp r1, 0
+ beq _08132450
+ b _08132522
+_08132446:
+ cmp r1, 0x2
+ beq _081324BE
+ cmp r1, 0x3
+ beq _0813251C
+ b _08132522
+_08132450:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08132522
+ strh r1, [r3, 0x2E]
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0813247A
+ ldrh r2, [r3, 0x3A]
+ movs r4, 0x3A
+ ldrsh r0, [r3, r4]
+ cmp r0, 0xF
+ bgt _08132488
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ b _08132488
+_0813247A:
+ ldrh r2, [r3, 0x3C]
+ movs r4, 0x3C
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _08132488
+ subs r0, r2, 0x1
+ strh r0, [r3, 0x3C]
+_08132488:
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ ldr r2, _081324A4 @ =REG_BLDALPHA
+ ldrh r0, [r3, 0x3C]
+ lsls r0, 8
+ ldrh r1, [r3, 0x3A]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x3C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _08132522
+ b _08132510
+ .align 2, 0
+_081324A4: .4byte REG_BLDALPHA
+_081324A8:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _08132522
+ strh r1, [r3, 0x2E]
+ strh r1, [r3, 0x30]
+ b _08132510
+_081324BE:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08132522
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081324EA
+ ldrh r2, [r3, 0x3A]
+ movs r4, 0x3A
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _081324F8
+ subs r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ b _081324F8
+_081324EA:
+ ldrh r2, [r3, 0x3C]
+ movs r4, 0x3C
+ ldrsh r0, [r3, r4]
+ cmp r0, 0xF
+ bgt _081324F8
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x3C]
+_081324F8:
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ ldr r2, _08132518 @ =REG_BLDALPHA
+ ldrh r0, [r3, 0x3C]
+ lsls r0, 8
+ ldrh r1, [r3, 0x3A]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x3C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x10
+ bne _08132522
+_08132510:
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ b _08132522
+ .align 2, 0
+_08132518: .4byte REG_BLDALPHA
+_0813251C:
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_08132522:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8132430
+
+ thumb_func_start sub_8132528
+sub_8132528: @ 8132528
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _08132544 @ =gBattleAnimArgs
+ movs r0, 0
+ strh r0, [r2, 0xE]
+ ldr r0, _08132548 @ =gWeatherMoveAnim
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _0813254C
+ movs r0, 0x1
+ b _0813256E
+ .align 2, 0
+_08132544: .4byte gBattleAnimArgs
+_08132548: .4byte gWeatherMoveAnim
+_0813254C:
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08132558
+ movs r0, 0x2
+ b _0813256E
+_08132558:
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _08132564
+ movs r0, 0x3
+ b _0813256E
+_08132564:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132570
+ movs r0, 0x4
+_0813256E:
+ strh r0, [r2, 0xE]
+_08132570:
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8132528
+
+ thumb_func_start sub_813257C
+sub_813257C: @ 813257C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _081325B4 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _081325B8 @ =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, _081325BC @ =gUnknown_08402B28
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _081325C0 @ =sub_81325C4
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081325B4: .4byte gTasks
+_081325B8: .4byte gBattleAnimArgs
+_081325BC: .4byte gUnknown_08402B28
+_081325C0: .4byte sub_81325C4
+ thumb_func_end sub_813257C
+
+ thumb_func_start sub_81325C4
+sub_81325C4: @ 81325C4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, _0813261C @ =gTasks
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ adds r1, r0, 0x1
+ movs r5, 0
+ strh r1, [r3, 0x8]
+ subs r0, 0x10
+ lsls r0, 16
+ lsrs r0, 16
+ adds r6, r2, 0
+ cmp r0, 0x16
+ bhi _08132628
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08132638
+ strh r5, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ movs r5, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _08132628
+ ldr r2, _08132620 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _08132624 @ =0x0000ffff
+ strh r1, [r0, 0x24]
+ b _08132638
+ .align 2, 0
+_0813261C: .4byte gTasks
+_08132620: .4byte gSprites
+_08132624: .4byte 0x0000ffff
+_08132628:
+ ldr r2, _08132658 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+_08132638:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r6
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132650
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_08132650:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132658: .4byte gSprites
+ thumb_func_end sub_81325C4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s
new file mode 100644
index 000000000..a5ab2fb83
--- /dev/null
+++ b/asm/battle_anim_813F0F4.s
@@ -0,0 +1,5740 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_813F0F4
+unref_sub_813F0F4: @ 813F0F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ ldr r0, _0813F2AC @ =gBattleAnimPlayerMonIndex
+ ldrb r3, [r0]
+ ldr r0, _0813F2B0 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0813F2B4 @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r1, _0813F2B8 @ =REG_WININ
+ ldr r2, _0813F2BC @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r4, _0813F2C0 @ =0x00003f3d
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r1, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0813F2C4 @ =REG_BLDCNT
+ ldr r2, _0813F2C8 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r4, 0x80
+ lsls r4, 5
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r2, _0813F2CC @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ mov r9, r0
+ ands r0, r1
+ movs r1, 0x4
+ mov r8, r1
+ mov r4, r8
+ orrs r0, r4
+ strb r0, [r2]
+ ldr r0, _0813F2D0 @ =gHealthboxIDs
+ adds r3, r0
+ ldrb r0, [r3]
+ ldr r1, _0813F2D4 @ =gSprites
+ mov r10, r1
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ add r4, r10
+ ldrb r7, [r4, 0x6]
+ ldrh r6, [r4, 0x38]
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0813F2D8 @ =SpriteCallbackDummy
+ bl CreateInvisibleSpriteWithCallback
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ ldr r0, _0813F2D8 @ =SpriteCallbackDummy
+ bl CreateInvisibleSpriteWithCallback
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+ ldrb r1, [r4, 0x5]
+ mov r0, r9
+ ands r0, r1
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r5, r7, 4
+ adds r5, r7
+ lsls r5, 2
+ add r5, r10
+ ldrb r1, [r5, 0x5]
+ mov r0, r9
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ add r1, r10
+ ldrb r2, [r1, 0x5]
+ mov r0, r9
+ ands r0, r2
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, [sp, 0x14]
+ lsls r6, r0, 4
+ adds r6, r0
+ lsls r6, 2
+ mov r1, r10
+ adds r7, r6, r1
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0x44
+ bl memcpy
+ ldr r2, [sp, 0x18]
+ lsls r4, r2, 4
+ adds r4, r2
+ lsls r4, 2
+ adds r0, r4, 0
+ add r0, r10
+ mov r8, r0
+ adds r1, r5, 0
+ movs r2, 0x44
+ bl memcpy
+ ldrb r1, [r7, 0x1]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r7, 0x1]
+ mov r2, r8
+ ldrb r0, [r2, 0x1]
+ mov r2, r9
+ ands r2, r0
+ orrs r2, r1
+ mov r0, r8
+ strb r2, [r0, 0x1]
+ movs r1, 0x1C
+ add r10, r1
+ add r6, r10
+ ldr r2, _0813F2D8 @ =SpriteCallbackDummy
+ str r2, [r6]
+ add r4, r10
+ str r2, [r4]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _0813F2DC @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0813F2E0 @ =0x85000400
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _0813F2E4 @ =gUnknown_08D2EE48
+ bl LZDecompressVram
+ ldr r0, _0813F2E8 @ =gUnknown_08D2EDFC
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _0813F2EC @ =gUnknown_08D2E150
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, _0813F2F0 @ =gUnknown_030042C0
+ ldrh r0, [r7, 0x20]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r1]
+ ldr r1, _0813F2F4 @ =gUnknown_030041B4
+ ldrh r0, [r7, 0x22]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r1]
+ ldr r1, _0813F2F8 @ =gTasks
+ ldr r4, [sp, 0x10]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA0
+ lsls r1, 2
+ strh r1, [r0, 0xA]
+ mov r1, sp
+ ldrh r1, [r1, 0x14]
+ strh r1, [r0, 0x8]
+ mov r2, sp
+ ldrh r2, [r2, 0x18]
+ strh r2, [r0, 0xC]
+ ldr r1, _0813F2FC @ =sub_813F300
+ str r1, [r0]
+ 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
+_0813F2AC: .4byte gBattleAnimPlayerMonIndex
+_0813F2B0: .4byte gUnknown_030042C4
+_0813F2B4: .4byte gUnknown_03004240
+_0813F2B8: .4byte REG_WININ
+_0813F2BC: .4byte 0x00003f3f
+_0813F2C0: .4byte 0x00003f3d
+_0813F2C4: .4byte REG_BLDCNT
+_0813F2C8: .4byte 0x00003f42
+_0813F2CC: .4byte REG_BG1CNT
+_0813F2D0: .4byte gHealthboxIDs
+_0813F2D4: .4byte gSprites
+_0813F2D8: .4byte SpriteCallbackDummy
+_0813F2DC: .4byte 0x040000d4
+_0813F2E0: .4byte 0x85000400
+_0813F2E4: .4byte gUnknown_08D2EE48
+_0813F2E8: .4byte gUnknown_08D2EDFC
+_0813F2EC: .4byte gUnknown_08D2E150
+_0813F2F0: .4byte gUnknown_030042C0
+_0813F2F4: .4byte gUnknown_030041B4
+_0813F2F8: .4byte gTasks
+_0813F2FC: .4byte sub_813F300
+ thumb_func_end unref_sub_813F0F4
+
+ thumb_func_start sub_813F300
+sub_813F300: @ 813F300
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0813F34C @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ mov r9, r0
+ ldr r1, _0813F350 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ movs r3, 0
+ strh r1, [r4, 0x22]
+ ldr r2, _0813F354 @ =gUnknown_030041B4
+ lsls r0, r1, 16
+ lsrs r0, 24
+ ldrh r5, [r2]
+ adds r0, r5
+ strh r0, [r2]
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0x22]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0813F394
+ cmp r0, 0x1
+ bgt _0813F358
+ cmp r0, 0
+ beq _0813F35E
+ b _0813F4B2
+ .align 2, 0
+_0813F34C: .4byte gBattleAnimPlayerMonIndex
+_0813F350: .4byte gTasks
+_0813F354: .4byte gUnknown_030041B4
+_0813F358:
+ cmp r0, 0x2
+ beq _0813F3AC
+ b _0813F4B2
+_0813F35E:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _0813F36E
+ b _0813F4B2
+_0813F36E:
+ strh r3, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r2, _0813F390 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ beq _0813F38C
+ b _0813F4B2
+_0813F38C:
+ b _0813F3A4
+ .align 2, 0
+_0813F390: .4byte REG_BLDALPHA
+_0813F394:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ beq _0813F3A4
+ b _0813F4B2
+_0813F3A4:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _0813F4B2
+_0813F3AC:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0813F4B2
+ strh r3, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r6, _0813F4C0 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r6]
+ movs r3, 0x20
+ ldrsh r5, [r4, r3]
+ cmp r5, 0
+ bne _0813F4B2
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _0813F4C4 @ =gUnknown_030042C4
+ strh r5, [r0]
+ ldr r0, _0813F4C8 @ =gUnknown_03004240
+ strh r5, [r0]
+ ldr r0, _0813F4CC @ =REG_WININ
+ ldr r2, _0813F4D0 @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813F406
+ ldr r2, _0813F4D4 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0813F406:
+ 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, _0813F4D8 @ =REG_BLDCNT
+ strh r5, [r0]
+ strh r5, [r6]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0813F4DC @ =gSprites
+ mov r8, r1
+ add r0, r8
+ bl DestroySprite
+ movs r2, 0xC
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ bl DestroySprite
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r1, _0813F4E0 @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _0813F4E4 @ =0x85000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r2, _0813F4D4 @ =REG_BG1CNT
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, _0813F4E8 @ =gHealthboxIDs
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldrb r6, [r1, 0x6]
+ ldrh r4, [r1, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r5, 0x4
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ add r1, r8
+ ldrb r3, [r1, 0x5]
+ adds r0, r2, 0
+ ands r0, r3
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ add r0, r8
+ ldrb r1, [r0, 0x5]
+ ands r2, r1
+ orrs r2, r5
+ strb r2, [r0, 0x5]
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_0813F4B2:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F4C0: .4byte REG_BLDALPHA
+_0813F4C4: .4byte gUnknown_030042C4
+_0813F4C8: .4byte gUnknown_03004240
+_0813F4CC: .4byte REG_WININ
+_0813F4D0: .4byte 0x00003f3f
+_0813F4D4: .4byte REG_BG1CNT
+_0813F4D8: .4byte REG_BLDCNT
+_0813F4DC: .4byte gSprites
+_0813F4E0: .4byte 0x040000d4
+_0813F4E4: .4byte 0x85000200
+_0813F4E8: .4byte gHealthboxIDs
+ thumb_func_end sub_813F300
+
+ thumb_func_start sub_813F4EC
+sub_813F4EC: @ 813F4EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldr r1, _0813F5D0 @ =gHealthboxIDs
+ ldr r0, _0813F5D4 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r7, _0813F5D8 @ =gSprites
+ lsls r6, r0, 4
+ adds r6, r0
+ lsls r6, 2
+ adds r6, r7
+ ldrb r0, [r6, 0x6]
+ str r0, [sp, 0x4]
+ ldrh r4, [r6, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F5DC @ =0x0000d709
+ bl AllocSpritePalette
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r0, _0813F5E0 @ =0x0000d70a
+ bl AllocSpritePalette
+ mov r9, r0
+ mov r2, r9
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ ldrb r0, [r6, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r3, r1, 0
+ orrs r0, r3
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ adds r5, r7
+ ldrb r4, [r5, 0x5]
+ lsrs r4, 4
+ lsls r4, 4
+ orrs r4, r3
+ lsls r0, 1
+ ldr r2, _0813F5E4 @ =gPlttBufferUnfaded
+ mov r10, r2
+ add r0, r10
+ mov r1, r8
+ lsls r1, 4
+ mov r8, r1
+ adds r1, r3, r1
+ movs r2, 0x20
+ str r3, [sp, 0x8]
+ bl LoadPalette
+ lsls r4, 1
+ add r4, r10
+ mov r2, r9
+ lsls r2, 4
+ mov r9, r2
+ ldr r3, [sp, 0x8]
+ add r3, r9
+ adds r0, r4, 0
+ adds r1, r3, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrb r1, [r6, 0x5]
+ movs r2, 0xF
+ adds r0, r2, 0
+ ands r0, r1
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r6, 0x5]
+ ldr r0, [sp, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r3, [r1, 0x5]
+ adds r0, r2, 0
+ ands r0, r3
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r5, 0x5]
+ ands r2, r0
+ mov r0, r9
+ orrs r2, r0
+ strb r2, [r5, 0x5]
+ ldr r0, [sp]
+ bl DestroyAnimVisualTask
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F5D0: .4byte gHealthboxIDs
+_0813F5D4: .4byte gBattleAnimPlayerMonIndex
+_0813F5D8: .4byte gSprites
+_0813F5DC: .4byte 0x0000d709
+_0813F5E0: .4byte 0x0000d70a
+_0813F5E4: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_813F4EC
+
+ thumb_func_start sub_813F5E8
+sub_813F5E8: @ 813F5E8
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0813F684 @ =gHealthboxIDs
+ ldr r0, _0813F688 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0813F68C @ =gSprites
+ mov r9, r1
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ add r5, r9
+ ldrb r0, [r5, 0x6]
+ mov r10, r0
+ ldrh r6, [r5, 0x38]
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0813F690 @ =0x0000d709
+ bl FreeSpritePaletteByTag
+ ldr r0, _0813F694 @ =0x0000d70a
+ bl FreeSpritePaletteByTag
+ ldr r0, _0813F698 @ =0x0000d6ff
+ bl IndexOfSpritePaletteTag
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F69C @ =0x0000d704
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsls r4, 4
+ ldrb r2, [r5, 0x5]
+ movs r3, 0xF
+ adds r1, r3, 0
+ ands r1, r2
+ orrs r1, r4
+ strb r1, [r5, 0x5]
+ mov r1, r10
+ lsls r2, r1, 4
+ add r2, r10
+ lsls r2, 2
+ add r2, r9
+ ldrb r5, [r2, 0x5]
+ adds r1, r3, 0
+ ands r1, r5
+ orrs r1, r4
+ strb r1, [r2, 0x5]
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ add r1, r9
+ lsrs r0, 20
+ ldrb r2, [r1, 0x5]
+ ands r3, r2
+ orrs r3, r0
+ strb r3, [r1, 0x5]
+ mov r0, r8
+ bl DestroyAnimVisualTask
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F684: .4byte gHealthboxIDs
+_0813F688: .4byte gBattleAnimPlayerMonIndex
+_0813F68C: .4byte gSprites
+_0813F690: .4byte 0x0000d709
+_0813F694: .4byte 0x0000d70a
+_0813F698: .4byte 0x0000d6ff
+_0813F69C: .4byte 0x0000d704
+ thumb_func_end sub_813F5E8
+
+ thumb_func_start sub_813F6A0
+sub_813F6A0: @ 813F6A0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0813F6C0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0813F6C4 @ =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0x1E]
+ ldr r0, _0813F6C8 @ =sub_813F6CC
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0813F6C0: .4byte gTasks
+_0813F6C4: .4byte gBattleAnimArgs
+_0813F6C8: .4byte sub_813F6CC
+ thumb_func_end sub_813F6A0
+
+ thumb_func_start sub_813F6CC
+sub_813F6CC: @ 813F6CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0813F718 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r6, 0
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0813F78C
+ strh r6, [r4, 0x8]
+ ldr r0, _0813F71C @ =0x0000d709
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r3, 0x1C
+ ldrsh r0, [r4, r3]
+ movs r1, 0x2
+ cmp r0, 0
+ bne _0813F70A
+ movs r1, 0x6
+_0813F70A:
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0813F720
+ cmp r0, 0x1
+ beq _0813F75C
+ b _0813F78C
+ .align 2, 0
+_0813F718: .4byte gTasks
+_0813F71C: .4byte 0x0000d709
+_0813F720:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _0813F732
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+_0813F732:
+ lsls r0, r2, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2
+ orrs r0, r1
+ ldrb r2, [r4, 0xC]
+ ldr r3, _0813F758 @ =0x00007f74
+ movs r1, 0x1
+ bl BlendPalette
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bne _0813F78C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _0813F78C
+ .align 2, 0
+_0813F758: .4byte 0x00007f74
+_0813F75C:
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0813F76A
+ strh r6, [r4, 0xC]
+_0813F76A:
+ lsls r0, r2, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2
+ orrs r0, r1
+ ldrb r2, [r4, 0xC]
+ ldr r3, _0813F794 @ =0x00007f74
+ movs r1, 0x1
+ bl BlendPalette
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _0813F78C
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0813F78C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F794: .4byte 0x00007f74
+ thumb_func_end sub_813F6CC
+
+ thumb_func_start sub_813F798
+sub_813F798: @ 813F798
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0813F7C4 @ =gObjectBankIDs
+ ldr r0, _0813F7C8 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r5, [r0]
+ ldr r1, _0813F7CC @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0813F7E6
+ cmp r0, 0x1
+ bgt _0813F7D0
+ cmp r0, 0
+ beq _0813F7D6
+ b _0813F838
+ .align 2, 0
+_0813F7C4: .4byte gObjectBankIDs
+_0813F7C8: .4byte gBattleAnimPlayerMonIndex
+_0813F7CC: .4byte gTasks
+_0813F7D0:
+ cmp r0, 0x2
+ beq _0813F818
+ b _0813F838
+_0813F7D6:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x1C]
+ b _0813F80A
+_0813F7E6:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x30
+ strh r0, [r4, 0x1C]
+ movs r0, 0x1C
+ ldrsh r2, [r4, r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r5, 0
+ bl sub_8079A64
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ ldr r0, _0813F814 @ =0x000002cf
+ cmp r1, r0
+ ble _0813F838
+_0813F80A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0813F838
+ .align 2, 0
+_0813F814: .4byte 0x000002cf
+_0813F818:
+ adds r0, r5, 0
+ bl sub_8078F40
+ ldr r1, _0813F840 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_0813F838:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F840: .4byte gSprites
+ thumb_func_end sub_813F798
+
+ thumb_func_start sub_813F844
+sub_813F844: @ 813F844
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0813F87C @ =gObjectBankIDs
+ ldr r4, _0813F880 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r4]
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ mov r9, r1
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813F88C
+ ldr r1, _0813F884 @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0813F888 @ =gPlayerParty
+ b _0813F89C
+ .align 2, 0
+_0813F87C: .4byte gObjectBankIDs
+_0813F880: .4byte gBattleAnimPlayerMonIndex
+_0813F884: .4byte gBattlePartyID
+_0813F888: .4byte gPlayerParty
+_0813F88C:
+ ldr r1, _0813F8CC @ =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0813F8D0 @ =gEnemyParty
+_0813F89C:
+ adds r0, r1
+ movs r1, 0x26
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, _0813F8D4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r6, r0, r2
+ movs r0, 0x8
+ ldrsh r7, [r6, r0]
+ cmp r7, 0
+ beq _0813F8D8
+ cmp r7, 0x1
+ beq _0813F958
+ b _0813F982
+ .align 2, 0
+_0813F8CC: .4byte gBattlePartyID
+_0813F8D0: .4byte gEnemyParty
+_0813F8D4: .4byte gTasks
+_0813F8D8:
+ ldr r5, _0813F950 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ adds r1, r0, 0
+ lsls r1, 24
+ ldr r2, _0813F954 @ =gSprites
+ mov r3, r9
+ lsls r0, r3, 4
+ add r0, r9
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x5]
+ lsls r2, 28
+ lsrs r2, 30
+ adds r0, 0x43
+ ldrb r3, [r0]
+ movs r0, 0x80
+ lsls r0, 22
+ adds r1, r0
+ lsrs r1, 24
+ mov r0, r8
+ str r0, [sp]
+ adds r0, r4, 0
+ bl sub_814086C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x1C]
+ str r7, [sp]
+ str r7, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r2, r0, 0
+ ldrb r1, [r5]
+ movs r0, 0
+ mov r3, r8
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x1E]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _0813F982
+ .align 2, 0
+_0813F950: .4byte gBattleAnimPlayerMonIndex
+_0813F954: .4byte gSprites
+_0813F958:
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0813F982
+ movs r3, 0x1E
+ ldrsh r0, [r6, r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0813F982
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0813F982:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813F844
+
+ thumb_func_start sub_813F990
+sub_813F990: @ 813F990
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F9B4 @ =gLastUsedItem
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80478DC
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F9B4: .4byte gLastUsedItem
+ thumb_func_end sub_813F990
+
+ thumb_func_start sub_813F9B8
+sub_813F9B8: @ 813F9B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F9DC @ =gLastUsedItem
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_804794C
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F9DC: .4byte gLastUsedItem
+ thumb_func_end sub_813F9B8
+
+ thumb_func_start sub_813F9E0
+sub_813F9E0: @ 813F9E0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0813F9F4 @ =0x02017840
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x5
+ bne _0813FA00
+ ldr r1, _0813F9F8 @ =gBattleAnimArgs
+ ldr r0, _0813F9FC @ =0x0000ffff
+ b _0813FA04
+ .align 2, 0
+_0813F9F4: .4byte 0x02017840
+_0813F9F8: .4byte gBattleAnimArgs
+_0813F9FC: .4byte 0x0000ffff
+_0813FA00:
+ ldr r1, _0813FA10 @ =gBattleAnimArgs
+ movs r0, 0
+_0813FA04:
+ strh r0, [r1, 0xE]
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FA10: .4byte gBattleAnimArgs
+ thumb_func_end sub_813F9E0
+
+ thumb_func_start ball_number_to_ball_processing_index
+ball_number_to_ball_processing_index: @ 813FA14
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ subs r0, 0x1
+ cmp r0, 0xB
+ bhi _0813FA8C
+ lsls r0, 2
+ ldr r1, _0813FA2C @ =_0813FA30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813FA2C: .4byte _0813FA30
+ .align 2, 0
+_0813FA30:
+ .4byte _0813FA60
+ .4byte _0813FA64
+ .4byte _0813FA68
+ .4byte _0813FA8C
+ .4byte _0813FA6C
+ .4byte _0813FA70
+ .4byte _0813FA74
+ .4byte _0813FA78
+ .4byte _0813FA7C
+ .4byte _0813FA80
+ .4byte _0813FA84
+ .4byte _0813FA88
+_0813FA60:
+ movs r0, 0x4
+ b _0813FA8E
+_0813FA64:
+ movs r0, 0x3
+ b _0813FA8E
+_0813FA68:
+ movs r0, 0x1
+ b _0813FA8E
+_0813FA6C:
+ movs r0, 0x2
+ b _0813FA8E
+_0813FA70:
+ movs r0, 0x5
+ b _0813FA8E
+_0813FA74:
+ movs r0, 0x6
+ b _0813FA8E
+_0813FA78:
+ movs r0, 0x7
+ b _0813FA8E
+_0813FA7C:
+ movs r0, 0x8
+ b _0813FA8E
+_0813FA80:
+ movs r0, 0x9
+ b _0813FA8E
+_0813FA84:
+ movs r0, 0xA
+ b _0813FA8E
+_0813FA88:
+ movs r0, 0xB
+ b _0813FA8E
+_0813FA8C:
+ movs r0, 0
+_0813FA8E:
+ pop {r1}
+ bx r1
+ thumb_func_end ball_number_to_ball_processing_index
+
+ thumb_func_start sub_813FA94
+sub_813FA94: @ 813FA94
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ mov r10, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _0813FB58 @ =gLastUsedItem
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _0813FB5C @ =gBallSpriteTemplates
+ adds r0, r1
+ movs r1, 0x20
+ movs r2, 0x50
+ movs r3, 0x1D
+ bl CreateSprite
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _0813FB60 @ =gSprites
+ mov r9, r1
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r6, r4, r1
+ movs r0, 0x22
+ strh r0, [r6, 0x2E]
+ ldr r2, _0813FB64 @ =gBattleAnimEnemyMonIndex
+ mov r8, r2
+ ldrb r0, [r2]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x30]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ strh r0, [r6, 0x32]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r4, r0
+ ldr r0, _0813FB68 @ =sub_813FD90
+ str r0, [r4]
+ ldr r3, _0813FB6C @ =0x02017840
+ ldr r1, _0813FB70 @ =gObjectBankIDs
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 31
+ lsls r1, 1
+ ldrb r2, [r3, 0x9]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x9]
+ ldr r1, _0813FB74 @ =gTasks
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r1, _0813FB78 @ =sub_813FB7C
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FB58: .4byte gLastUsedItem
+_0813FB5C: .4byte gBallSpriteTemplates
+_0813FB60: .4byte gSprites
+_0813FB64: .4byte gBattleAnimEnemyMonIndex
+_0813FB68: .4byte sub_813FD90
+_0813FB6C: .4byte 0x02017840
+_0813FB70: .4byte gObjectBankIDs
+_0813FB74: .4byte gTasks
+_0813FB78: .4byte sub_813FB7C
+ thumb_func_end sub_813FA94
+
+ thumb_func_start sub_813FB7C
+sub_813FB7C: @ 813FB7C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _0813FBAC @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ ldr r2, _0813FBB0 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2E]
+ ldr r0, _0813FBB4 @ =0x0000ffff
+ cmp r1, r0
+ bne _0813FBA6
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_0813FBA6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FBAC: .4byte gTasks
+_0813FBB0: .4byte gSprites
+_0813FBB4: .4byte 0x0000ffff
+ thumb_func_end sub_813FB7C
+
+ thumb_func_start sub_813FBB8
+sub_813FBB8: @ 813FBB8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0813FBD8 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813FBDC
+ movs r6, 0x20
+ movs r5, 0xB
+ b _0813FBE0
+ .align 2, 0
+_0813FBD8: .4byte gBattleTypeFlags
+_0813FBDC:
+ movs r6, 0x17
+ movs r5, 0x5
+_0813FBE0:
+ ldr r0, _0813FC9C @ =gLastUsedItem
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079E90
+ adds r3, r0, 0
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0813FCA0 @ =gBallSpriteTemplates
+ adds r0, r1
+ adds r1, r6, 0
+ adds r1, 0x20
+ movs r2, 0x50
+ orrs r5, r2
+ adds r2, r5, 0
+ bl CreateSprite
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0813FCA4 @ =gSprites
+ mov r9, r0
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r6, r4, r0
+ movs r0, 0x22
+ strh r0, [r6, 0x2E]
+ ldr r1, _0813FCA8 @ =gBattleAnimEnemyMonIndex
+ mov r8, r1
+ ldrb r0, [r1]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x30]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ strh r0, [r6, 0x32]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r4, r0
+ ldr r0, _0813FCAC @ =SpriteCallbackDummy
+ str r0, [r4]
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r1, _0813FCB0 @ =gObjectBankIDs
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r1, _0813FCB4 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r1, _0813FCB8 @ =sub_813FCBC
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FC9C: .4byte gLastUsedItem
+_0813FCA0: .4byte gBallSpriteTemplates
+_0813FCA4: .4byte gSprites
+_0813FCA8: .4byte gBattleAnimEnemyMonIndex
+_0813FCAC: .4byte SpriteCallbackDummy
+_0813FCB0: .4byte gObjectBankIDs
+_0813FCB4: .4byte gTasks
+_0813FCB8: .4byte sub_813FCBC
+ thumb_func_end sub_813FBB8
+
+ thumb_func_start sub_813FCBC
+sub_813FCBC: @ 813FCBC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0813FD1C @ =gSprites
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r1, _0813FD20 @ =gObjectBankIDs
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0813FD16
+ movs r0, 0x3D
+ movs r1, 0
+ bl PlaySE12WithPanning
+ ldr r0, _0813FD24 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0813FD28 @ =sub_813FD90
+ str r1, [r0]
+ ldr r0, _0813FD2C @ =sub_813FD34
+ movs r1, 0xA
+ bl CreateTask
+ ldr r0, _0813FD30 @ =sub_813FB7C
+ str r0, [r4]
+_0813FD16:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FD1C: .4byte gSprites
+_0813FD20: .4byte gObjectBankIDs
+_0813FD24: .4byte gTasks
+_0813FD28: .4byte sub_813FD90
+_0813FD2C: .4byte sub_813FD34
+_0813FD30: .4byte sub_813FB7C
+ thumb_func_end sub_813FCBC
+
+ thumb_func_start sub_813FD34
+sub_813FD34: @ 813FD34
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0813FD88 @ =gSprites
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r4, _0813FD8C @ =gObjectBankIDs
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ cmp r0, 0
+ bge _0813FD80
+ movs r0, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl DestroyTask
+_0813FD80:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FD88: .4byte gSprites
+_0813FD8C: .4byte gObjectBankIDs
+ thumb_func_end sub_813FD34
+
+ thumb_func_start sub_813FD90
+sub_813FD90: @ 813FD90
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x32]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ strh r2, [r4, 0x36]
+ ldr r0, _0813FDB8 @ =0x0000ffd8
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _0813FDBC @ =sub_813FDC0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FDB8: .4byte 0x0000ffd8
+_0813FDBC: .4byte sub_813FDC0
+ thumb_func_end sub_813FD90
+
+ thumb_func_start sub_813FDC0
+sub_813FDC0: @ 813FDC0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _0813FE5A
+ ldr r0, _0813FDE0 @ =0x02017840
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x5
+ bne _0813FDE8
+ ldr r0, _0813FDE4 @ =sub_81407B8
+ str r0, [r4, 0x1C]
+ b _0813FE5A
+ .align 2, 0
+_0813FDE0: .4byte 0x02017840
+_0813FDE4: .4byte sub_81407B8
+_0813FDE8:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x26]
+ adds r1, r4, 0
+ adds r1, 0x2E
+ movs r2, 0
+ adds r0, r4, 0
+ adds r0, 0x3C
+_0813FE10:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _0813FE10
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldr r0, _0813FE64 @ =sub_813FE70
+ str r0, [r4, 0x1C]
+ ldr r0, _0813FE68 @ =gLastUsedItem
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xB
+ bgt _0813FE5A
+ cmp r5, 0
+ blt _0813FE5A
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ str r5, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ ldr r0, _0813FE6C @ =gBattleAnimEnemyMonIndex
+ ldrb r1, [r0]
+ movs r0, 0
+ movs r2, 0xE
+ adds r3, r5, 0
+ bl sub_8141314
+_0813FE5A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FE64: .4byte sub_813FE70
+_0813FE68: .4byte gLastUsedItem
+_0813FE6C: .4byte gBattleAnimEnemyMonIndex
+ thumb_func_end sub_813FDC0
+
+ thumb_func_start sub_813FE70
+sub_813FE70: @ 813FE70
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0813FEAC
+ ldr r0, _0813FEB4 @ =TaskDummy
+ movs r1, 0x32
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x38]
+ ldr r0, _0813FEB8 @ =sub_813FEC8
+ str r0, [r4, 0x1C]
+ ldr r2, _0813FEBC @ =gSprites
+ ldr r1, _0813FEC0 @ =gObjectBankIDs
+ ldr r0, _0813FEC4 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x30]
+_0813FEAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FEB4: .4byte TaskDummy
+_0813FEB8: .4byte sub_813FEC8
+_0813FEBC: .4byte gSprites
+_0813FEC0: .4byte gObjectBankIDs
+_0813FEC4: .4byte gBattleAnimEnemyMonIndex
+ thumb_func_end sub_813FE70
+
+ thumb_func_start sub_813FEC8
+sub_813FEC8: @ 813FEC8
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ ldr r1, _0813FF0C @ =gObjectBankIDs
+ ldr r0, _0813FF10 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r4, [r0]
+ ldrh r0, [r7, 0x38]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0813FF14 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _0813FEFA
+ movs r0, 0x3C
+ bl PlaySE
+_0813FEFA:
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0813FF70
+ cmp r0, 0x1
+ bgt _0813FF18
+ cmp r0, 0
+ beq _0813FF1E
+ b _0813FFDC
+ .align 2, 0
+_0813FF0C: .4byte gObjectBankIDs
+_0813FF10: .4byte gBattleAnimEnemyMonIndex
+_0813FF14: .4byte gTasks
+_0813FF18:
+ cmp r0, 0x2
+ beq _0813FFB4
+ b _0813FFDC
+_0813FF1E:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x1C]
+ ldr r1, _0813FF60 @ =gUnknown_03005F0C
+ movs r0, 0x1C
+ str r0, [r1]
+ ldr r2, _0813FF64 @ =gUnknown_03005F14
+ ldr r1, _0813FF68 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ ldrh r0, [r7, 0x26]
+ ldrh r7, [r7, 0x22]
+ adds r0, r7
+ subs r1, r0
+ strh r1, [r2]
+ ldr r4, _0813FF6C @ =gUnknown_03005F10
+ ldrh r0, [r2]
+ lsls r0, 8
+ movs r1, 0x1C
+ bl __udivsi3
+ strh r0, [r4]
+ strh r0, [r5, 0xC]
+ b _0813FFCE
+ .align 2, 0
+_0813FF60: .4byte gUnknown_03005F0C
+_0813FF64: .4byte gUnknown_03005F14
+_0813FF68: .4byte gSprites
+_0813FF6C: .4byte gUnknown_03005F10
+_0813FF70:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x20
+ strh r0, [r5, 0x1C]
+ movs r0, 0x1C
+ ldrsh r2, [r5, r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0xC]
+ ldrh r1, [r5, 0xE]
+ adds r0, r1
+ strh r0, [r5, 0xE]
+ ldr r0, _0813FFAC @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ negs r0, r0
+ asrs r0, 8
+ strh r0, [r1, 0x26]
+ movs r0, 0x1C
+ ldrsh r1, [r5, r0]
+ ldr r0, _0813FFB0 @ =0x0000047f
+ cmp r1, r0
+ ble _08140004
+ b _0813FFCE
+ .align 2, 0
+_0813FFAC: .4byte gSprites
+_0813FFB0: .4byte 0x0000047f
+_0813FFB4:
+ adds r0, r4, 0
+ bl sub_8078F40
+ ldr r1, _0813FFD8 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0813FFCE:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _08140004
+ .align 2, 0
+_0813FFD8: .4byte gSprites
+_0813FFDC:
+ ldr r0, _0814000C @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xA
+ ble _08140004
+ adds r0, r6, 0
+ bl DestroyTask
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ movs r0, 0
+ strh r0, [r7, 0x38]
+ ldr r0, _08140010 @ =sub_8140014
+ str r0, [r7, 0x1C]
+_08140004:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814000C: .4byte gTasks
+_08140010: .4byte sub_8140014
+ thumb_func_end sub_813FEC8
+
+ thumb_func_start sub_8140014
+sub_8140014: @ 8140014
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0814004E
+ movs r1, 0
+ strh r1, [r4, 0x34]
+ movs r0, 0x20
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ movs r0, 0
+ movs r1, 0x20
+ bl Cos
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldr r0, _08140054 @ =sub_8140058
+ str r0, [r4, 0x1C]
+_0814004E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140054: .4byte sub_8140058
+ thumb_func_end sub_8140014
+
+ thumb_func_start sub_8140058
+sub_8140058: @ 8140058
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0
+ beq _0814006E
+ cmp r1, 0x1
+ beq _081400E2
+ b _0814010E
+_0814006E:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ adds r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ adds r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x3F
+ ble _0814010E
+ ldrh r0, [r4, 0x36]
+ subs r0, 0xA
+ strh r0, [r4, 0x36]
+ ldr r1, _081400B8 @ =0x00000101
+ adds r0, r2, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _081400AA
+ movs r5, 0x1
+_081400AA:
+ cmp r0, 0x2
+ beq _081400CA
+ cmp r0, 0x2
+ bgt _081400BC
+ cmp r0, 0x1
+ beq _081400C2
+ b _081400DA
+ .align 2, 0
+_081400B8: .4byte 0x00000101
+_081400BC:
+ cmp r0, 0x3
+ beq _081400D2
+ b _081400DA
+_081400C2:
+ movs r0, 0x38
+ bl PlaySE
+ b _0814010E
+_081400CA:
+ movs r0, 0x39
+ bl PlaySE
+ b _0814010E
+_081400D2:
+ movs r0, 0x3A
+ bl PlaySE
+ b _0814010E
+_081400DA:
+ movs r0, 0x3B
+ bl PlaySE
+ b _0814010E
+_081400E2:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ subs r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ subs r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ cmp r1, 0
+ bgt _0814010E
+ strh r5, [r4, 0x38]
+ ldr r0, _08140138 @ =0xffffff00
+ ands r0, r2
+ strh r0, [r4, 0x34]
+_0814010E:
+ cmp r5, 0
+ beq _0814014E
+ movs r5, 0
+ strh r5, [r4, 0x34]
+ movs r0, 0x40
+ movs r1, 0x20
+ bl Cos
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ ldr r0, _0814013C @ =0x02017840
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08140144
+ strh r5, [r4, 0x38]
+ ldr r0, _08140140 @ =sub_8140410
+ str r0, [r4, 0x1C]
+ b _0814014E
+ .align 2, 0
+_08140138: .4byte 0xffffff00
+_0814013C: .4byte 0x02017840
+_08140140: .4byte sub_8140410
+_08140144:
+ ldr r0, _08140154 @ =sub_8140158
+ str r0, [r4, 0x1C]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+_0814014E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140154: .4byte sub_8140158
+ thumb_func_end sub_8140058
+
+ thumb_func_start sub_8140158
+sub_8140158: @ 8140158
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _08140190
+ strh r5, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _08140198 @ =0x02017840
+ strh r5, [r0, 0xC]
+ ldr r0, _0814019C @ =sub_81401A0
+ str r0, [r4, 0x1C]
+ movs r0, 0x17
+ bl PlaySE
+_08140190:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140198: .4byte 0x02017840
+_0814019C: .4byte sub_81401A0
+ thumb_func_end sub_8140158
+
+ thumb_func_start sub_81401A0
+sub_81401A0: @ 81401A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x6
+ bls _081401B0
+ b _081403C4
+_081401B0:
+ lsls r0, r1, 2
+ ldr r1, _081401BC @ =_081401C0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081401BC: .4byte _081401C0
+ .align 2, 0
+_081401C0:
+ .4byte _081401DC
+ .4byte _08140226
+ .4byte _0814026C
+ .4byte _081402C0
+ .4byte _08140310
+ .4byte _08140368
+ .4byte _081403C4
+_081401DC:
+ ldr r0, _081401F8 @ =0x02017840
+ ldrh r2, [r0, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ ble _081401FC
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r2
+ b _08140200
+ .align 2, 0
+_081401F8: .4byte 0x02017840
+_081401FC:
+ adds r0, r2, 0
+ adds r0, 0xB0
+_08140200:
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xE
+ bhi _08140224
+ b _0814040A
+_08140224:
+ b _081402B4
+_08140226:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _081402CC
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _08140262
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl ChangeSpriteAffineAnim
+ b _0814040A
+_08140262:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ b _0814040A
+_0814026C:
+ ldr r0, _08140288 @ =0x02017840
+ ldrh r2, [r0, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ ble _0814028C
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r2
+ b _08140290
+ .align 2, 0
+_08140288: .4byte 0x02017840
+_0814028C:
+ adds r0, r2, 0
+ adds r0, 0xB0
+_08140290:
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0xC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x18
+ bhi _081402B4
+ b _0814040A
+_081402B4:
+ strh r3, [r5, 0xC]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ strh r3, [r4, 0x38]
+ b _0814040A
+_081402C0:
+ ldrh r0, [r4, 0x38]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x38]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081402DA
+_081402CC:
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ b _0814040A
+_081402DA:
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _08140308
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl ChangeSpriteAffineAnim
+ b _08140310
+_08140308:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_08140310:
+ ldr r0, _0814032C @ =0x02017840
+ ldrh r2, [r0, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ ble _08140330
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r2
+ b _08140334
+ .align 2, 0
+_0814032C: .4byte 0x02017840
+_08140330:
+ adds r0, r2, 0
+ adds r0, 0xB0
+_08140334:
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bls _0814040A
+ strh r3, [r5, 0xC]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ strh r3, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ b _0814040A
+_08140368:
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r1, r0, 24
+ ldr r0, _08140394 @ =0x02017840
+ ldrb r0, [r0, 0x8]
+ cmp r1, r0
+ bne _0814039C
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08140398 @ =sub_8140410
+ str r0, [r4, 0x1C]
+ b _0814040A
+ .align 2, 0
+_08140394: .4byte 0x02017840
+_08140398: .4byte sub_8140410
+_0814039C:
+ cmp r0, 0x4
+ bne _081403B0
+ cmp r1, 0x3
+ bne _081403B0
+ ldr r0, _081403AC @ =sub_8140434
+ str r0, [r4, 0x1C]
+ b _081403B6
+ .align 2, 0
+_081403AC: .4byte sub_8140434
+_081403B0:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+_081403B6:
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ b _0814040A
+_081403C4:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0814040A
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x34]
+ ldr r0, _081403F8 @ =0xffffff00
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _081403FC
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ b _08140404
+ .align 2, 0
+_081403F8: .4byte 0xffffff00
+_081403FC:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08140404:
+ movs r0, 0x17
+ bl PlaySE
+_0814040A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81401A0
+
+ thumb_func_start sub_8140410
+sub_8140410: @ 8140410
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x38]
+ adds r0, 0x1
+ strh r0, [r1, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0814042A
+ movs r0, 0
+ strh r0, [r1, 0x38]
+ ldr r0, _08140430 @ =sub_81405F4
+ str r0, [r1, 0x1C]
+_0814042A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140430: .4byte sub_81405F4
+ thumb_func_end sub_8140410
+
+ thumb_func_start sub_8140434
+sub_8140434: @ 8140434
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r1, [r3]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r1, _08140450 @ =sub_8140454
+ str r1, [r0, 0x1C]
+ movs r1, 0
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ strh r1, [r0, 0x38]
+ bx lr
+ .align 2, 0
+_08140450: .4byte sub_8140454
+ thumb_func_end sub_8140434
+
+ thumb_func_start sub_8140454
+sub_8140454: @ 8140454
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r7, _08140484 @ =gBattleAnimEnemyMonIndex
+ ldrh r0, [r6, 0x36]
+ adds r0, 0x1
+ strh r0, [r6, 0x36]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0x28
+ beq _081404CC
+ cmp r1, 0x5F
+ bne _08140490
+ ldr r0, _08140488 @ =gDoingBattleAnim
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ bl sub_8043EB4
+ bl m4aMPlayAllStop
+ ldr r0, _0814048C @ =0x00000173
+ bl PlaySE
+ b _081404CC
+ .align 2, 0
+_08140484: .4byte gBattleAnimEnemyMonIndex
+_08140488: .4byte gDoingBattleAnim
+_0814048C: .4byte 0x00000173
+_08140490:
+ ldr r0, _081404D4 @ =0x0000013b
+ cmp r1, r0
+ bne _081404CC
+ ldr r5, _081404D8 @ =gSprites
+ ldr r4, _081404DC @ =gObjectBankIDs
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ movs r0, 0
+ strh r0, [r6, 0x2E]
+ ldr r0, _081404E0 @ =sub_81404E4
+ str r0, [r6, 0x1C]
+_081404CC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081404D4: .4byte 0x0000013b
+_081404D8: .4byte gSprites
+_081404DC: .4byte gObjectBankIDs
+_081404E0: .4byte sub_81404E4
+ thumb_func_end sub_8140454
+
+ thumb_func_start sub_81404E4
+sub_81404E4: @ 81404E4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08140550
+ cmp r0, 0x1
+ bgt _081404FC
+ cmp r0, 0
+ beq _08140502
+ b _08140594
+_081404FC:
+ cmp r0, 0x2
+ beq _08140580
+ b _08140594
+_08140502:
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r1, _08140548 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, [r4, 0x14]
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, _0814054C @ =0x00007fff
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0814058C
+ .align 2, 0
+_08140548: .4byte REG_BLDCNT
+_0814054C: .4byte 0x00007fff
+_08140550:
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ ble _081405B2
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ ldr r3, _0814057C @ =REG_BLDALPHA
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081405B2
+ b _0814058C
+ .align 2, 0
+_0814057C: .4byte REG_BLDALPHA
+_08140580:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0814058C:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081405B2
+_08140594:
+ ldr r0, _081405BC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _081405B2
+ ldr r0, _081405C0 @ =REG_BLDCNT
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ strh r1, [r4, 0x2E]
+ ldr r0, _081405C4 @ =sub_81405C8
+ str r0, [r4, 0x1C]
+_081405B2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081405BC: .4byte gPaletteFade
+_081405C0: .4byte REG_BLDCNT
+_081405C4: .4byte sub_81405C8
+ thumb_func_end sub_81404E4
+
+ thumb_func_start sub_81405C8
+sub_81405C8: @ 81405C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _081405E0
+ ldr r0, _081405DC @ =0x0000ffff
+ strh r0, [r4, 0x2E]
+ b _081405EC
+ .align 2, 0
+_081405DC: .4byte 0x0000ffff
+_081405E0:
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_081405EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81405C8
+
+ thumb_func_start sub_81405F4
+sub_81405F4: @ 81405F4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ ldr r0, _081406A8 @ =sub_81406BC
+ str r0, [r4, 0x1C]
+ ldr r0, _081406AC @ =gLastUsedItem
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xB
+ bgt _08140646
+ cmp r5, 0
+ blt _08140646
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ str r5, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ ldr r0, _081406B0 @ =gBattleAnimEnemyMonIndex
+ ldrb r1, [r0]
+ movs r0, 0x1
+ movs r2, 0xE
+ adds r3, r5, 0
+ bl sub_8141314
+_08140646:
+ ldr r6, _081406B4 @ =gSprites
+ ldr r5, _081406B8 @ =gObjectBankIDs
+ ldr r4, _081406B0 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl AnimateSprite
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x80
+ lsls r1, 5
+ strh r1, [r0, 0x30]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081406A8: .4byte sub_81406BC
+_081406AC: .4byte gLastUsedItem
+_081406B0: .4byte gBattleAnimEnemyMonIndex
+_081406B4: .4byte gSprites
+_081406B8: .4byte gObjectBankIDs
+ thumb_func_end sub_81405F4
+
+ thumb_func_start sub_81406BC
+sub_81406BC: @ 81406BC
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081406DA
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_081406DA:
+ ldr r4, _08140708 @ =gSprites
+ ldr r3, _0814070C @ =gObjectBankIDs
+ ldr r2, _08140710 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r4
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _08140714
+ adds r0, r1, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r5, 0x1
+ b _08140734
+ .align 2, 0
+_08140708: .4byte gSprites
+_0814070C: .4byte gObjectBankIDs
+_08140710: .4byte gBattleAnimEnemyMonIndex
+_08140714:
+ ldr r6, _0814079C @ =0xfffffee0
+ adds r0, r6, 0
+ ldrh r6, [r1, 0x30]
+ adds r0, r6
+ strh r0, [r1, 0x30]
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+_08140734:
+ adds r0, r7, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08140796
+ cmp r5, 0
+ beq _08140796
+ ldr r4, _081407A0 @ =gSprites
+ ldr r3, _081407A4 @ =gObjectBankIDs
+ ldr r2, _081407A8 @ =gBattleAnimEnemyMonIndex
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r6, 0
+ movs r5, 0
+ strh r5, [r0, 0x26]
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldr r0, _081407AC @ =0x02017840
+ ldrb r1, [r0, 0x9]
+ lsls r1, 30
+ adds r2, 0x3E
+ lsrs r1, 31
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ strh r5, [r7, 0x2E]
+ ldr r0, _081407B0 @ =sub_81405C8
+ str r0, [r7, 0x1C]
+ ldr r0, _081407B4 @ =gDoingBattleAnim
+ strb r6, [r0]
+ movs r0, 0x1
+ bl sub_8043EB4
+_08140796:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814079C: .4byte 0xfffffee0
+_081407A0: .4byte gSprites
+_081407A4: .4byte gObjectBankIDs
+_081407A8: .4byte gBattleAnimEnemyMonIndex
+_081407AC: .4byte 0x02017840
+_081407B0: .4byte sub_81405C8
+_081407B4: .4byte gDoingBattleAnim
+ thumb_func_end sub_81406BC
+
+ thumb_func_start sub_81407B8
+sub_81407B8: @ 81407B8
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x26]
+ ldrh r3, [r2, 0x22]
+ adds r0, r3
+ strh r0, [r2, 0x22]
+ strh r1, [r2, 0x26]
+ strh r1, [r2, 0x24]
+ ldr r4, _081407F0 @ =sub_81407F4
+ movs r3, 0
+ movs r1, 0x5
+ adds r0, r2, 0
+ adds r0, 0x38
+_081407DC:
+ strh r3, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _081407DC
+ str r4, [r2, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081407F0: .4byte sub_81407F4
+ thumb_func_end sub_81407B8
+
+ thumb_func_start sub_81407F4
+sub_81407F4: @ 81407F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x80
+ lsls r0, 4
+ adds r2, r0, 0
+ ldrh r1, [r4, 0x2E]
+ adds r2, r1
+ movs r0, 0xD0
+ lsls r0, 3
+ adds r3, r0, 0
+ ldrh r1, [r4, 0x30]
+ adds r3, r1
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r4, 0x2E]
+ ands r3, r0
+ strh r3, [r4, 0x30]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ cmp r0, 0xA0
+ bgt _0814084A
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x8
+ negs r1, r1
+ cmp r0, r1
+ bge _0814085E
+_0814084A:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _08140864 @ =sub_81405C8
+ str r0, [r4, 0x1C]
+ ldr r1, _08140868 @ =gDoingBattleAnim
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ bl sub_8043EB4
+_0814085E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140864: .4byte sub_81405C8
+_08140868: .4byte gDoingBattleAnim
+ thumb_func_end sub_81407F4
+
+ thumb_func_start sub_814086C
+sub_814086C: @ 814086C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r5, r4, 0
+ ldr r0, _08140910 @ =gUnknown_0840B258
+ lsls r6, r5, 3
+ adds r4, r6, r0
+ ldrh r0, [r4, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _08140914 @ =0xffff0000
+ cmp r0, r1
+ bne _081408B6
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ ldr r0, _08140918 @ =gUnknown_0840B2B8
+ adds r0, r6, r0
+ bl LoadCompressedObjectPalette
+_081408B6:
+ ldr r1, _0814091C @ =gUnknown_0840B384
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08140920 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ mov r1, r10
+ strh r1, [r0, 0xA]
+ mov r1, r9
+ strh r1, [r0, 0xC]
+ mov r1, r8
+ strh r1, [r0, 0xE]
+ strh r7, [r0, 0x10]
+ strh r5, [r0, 0x26]
+ movs r0, 0xF
+ bl PlaySE
+ ldr r0, _08140924 @ =gMain
+ ldr r1, _08140928 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08140900
+ ldr r1, _0814092C @ =0x02017840
+ ldrb r0, [r1, 0xA]
+ adds r0, 0x1
+ strb r0, [r1, 0xA]
+_08140900:
+ adds r0, r4, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08140910: .4byte gUnknown_0840B258
+_08140914: .4byte 0xffff0000
+_08140918: .4byte gUnknown_0840B2B8
+_0814091C: .4byte gUnknown_0840B384
+_08140920: .4byte gTasks
+_08140924: .4byte gMain
+_08140928: .4byte 0x0000043d
+_0814092C: .4byte 0x02017840
+ thumb_func_end sub_814086C
+
+ thumb_func_start sub_8140930
+sub_8140930: @ 8140930
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _081409D0 @ =gTasks
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r7, r0, r1
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0xF
+ bgt _081409E4
+ ldrb r1, [r7, 0xA]
+ ldrb r2, [r7, 0xC]
+ ldrb r6, [r7, 0xE]
+ ldrb r3, [r7, 0x10]
+ mov r4, r8
+ lsls r0, r4, 1
+ add r0, r8
+ lsls r0, 3
+ ldr r4, _081409D4 @ =gSpriteTemplate_840B3B4
+ adds r0, r4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r5, _081409D8 @ =gSprites
+ adds r2, r4, r5
+ ldr r0, _081409DC @ =gUnknown_0840B378
+ add r0, r8
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ str r2, [sp]
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _081409E0 @ =sub_8140A08
+ str r0, [r4]
+ movs r0, 0x3
+ ands r6, r0
+ lsls r6, 2
+ ldr r2, [sp]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r2, 0x5]
+ ldrb r0, [r7, 0x8]
+ cmp r0, 0x7
+ bls _081409B6
+ subs r0, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+_081409B6:
+ lsls r0, 5
+ strh r0, [r2, 0x2E]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0xF
+ bne _081409E4
+ movs r0, 0x1
+ strh r0, [r2, 0x3C]
+ mov r0, r9
+ bl DestroyTask
+ b _081409F6
+ .align 2, 0
+_081409D0: .4byte gTasks
+_081409D4: .4byte gSpriteTemplate_840B3B4
+_081409D8: .4byte gSprites
+_081409DC: .4byte gUnknown_0840B378
+_081409E0: .4byte sub_8140A08
+_081409E4:
+ ldr r0, _08140A04 @ =gTasks
+ mov r2, r9
+ lsls r1, r2, 2
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_081409F6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140A04: .4byte gTasks
+ thumb_func_end sub_8140930
+
+ thumb_func_start sub_8140A08
+sub_8140A08: @ 8140A08
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _08140A20
+ ldr r0, _08140A1C @ =sub_8140A28
+ str r0, [r1, 0x1C]
+ b _08140A24
+ .align 2, 0
+_08140A1C: .4byte sub_8140A28
+_08140A20:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x30]
+_08140A24:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140A08
+
+ thumb_func_start sub_8140A28
+sub_8140A28: @ 8140A28
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x2
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ bne _08140A5C
+ adds r0, r4, 0
+ bl sub_8141294
+_08140A5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140A28
+
+ thumb_func_start sub_8140A64
+sub_8140A64: @ 8140A64
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140B24 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140B28 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140B2C @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140AA8:
+ ldr r0, _08140B30 @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140B34 @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140B38 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x36]
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ movs r2, 0x1
+ strh r2, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140AA8
+ ldr r0, _08140B28 @ =gSprites
+ adds r0, r5, r0
+ strh r2, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140B24: .4byte gTasks
+_08140B28: .4byte gSprites
+_08140B2C: .4byte gUnknown_0840B378
+_08140B30: .4byte gSpriteTemplate_840B3B4
+_08140B34: .4byte gSprites + 0x1C
+_08140B38: .4byte sub_8140ECC
+ thumb_func_end sub_8140A64
+
+ thumb_func_start sub_8140B3C
+sub_8140B3C: @ 8140B3C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140BFC @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140C00 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140C04 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140B80:
+ ldr r0, _08140C08 @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140C0C @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140C10 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x36]
+ movs r1, 0x1
+ strh r1, [r4, 0x38]
+ movs r0, 0x2
+ strh r0, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140B80
+ ldr r0, _08140C00 @ =gSprites
+ adds r0, r5, r0
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140BFC: .4byte gTasks
+_08140C00: .4byte gSprites
+_08140C04: .4byte gUnknown_0840B378
+_08140C08: .4byte gSpriteTemplate_840B3B4
+_08140C0C: .4byte gSprites + 0x1C
+_08140C10: .4byte sub_8140ECC
+ thumb_func_end sub_8140B3C
+
+ thumb_func_start sub_8140C14
+sub_8140C14: @ 8140C14
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140CD0 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140CD4 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140CD8 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140C58:
+ ldr r0, _08140CDC @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140CE0 @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140CE4 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r0, 0x4
+ strh r0, [r4, 0x36]
+ movs r2, 0x1
+ strh r2, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140C58
+ ldr r0, _08140CD4 @ =gSprites
+ adds r0, r5, r0
+ strh r2, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140CD0: .4byte gTasks
+_08140CD4: .4byte gSprites
+_08140CD8: .4byte gUnknown_0840B378
+_08140CDC: .4byte gSpriteTemplate_840B3B4
+_08140CE0: .4byte gSprites + 0x1C
+_08140CE4: .4byte sub_8140ECC
+ thumb_func_end sub_8140C14
+
+ thumb_func_start sub_8140CE8
+sub_8140CE8: @ 8140CE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140DAC @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140DB0 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140DB4 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140D2C:
+ ldr r0, _08140DB8 @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140DBC @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140DC0 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r6
+ strh r0, [r4, 0x2E]
+ movs r0, 0x5
+ strh r0, [r4, 0x36]
+ movs r2, 0x1
+ strh r2, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x9
+ bls _08140D2C
+ ldr r0, _08140DB0 @ =gSprites
+ adds r0, r5, r0
+ strh r2, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140DAC: .4byte gTasks
+_08140DB0: .4byte gSprites
+_08140DB4: .4byte gUnknown_0840B378
+_08140DB8: .4byte gSpriteTemplate_840B3B4
+_08140DBC: .4byte gSprites + 0x1C
+_08140DC0: .4byte sub_8140ECC
+ thumb_func_end sub_8140CE8
+
+ thumb_func_start sub_8140DC4
+sub_8140DC4: @ 8140DC4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140DF0 @ =gTasks
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r1, [r3, 0x16]
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _08140DF4
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x16]
+ b _08140EA4
+ .align 2, 0
+_08140DF0: .4byte gTasks
+_08140DF4:
+ ldrh r0, [r3, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r3, 0xA]
+ str r1, [sp]
+ ldrb r4, [r3, 0xC]
+ str r4, [sp, 0x4]
+ ldrb r1, [r3, 0xE]
+ str r1, [sp, 0x8]
+ ldrb r3, [r3, 0x10]
+ str r3, [sp, 0xC]
+ movs r6, 0
+ str r2, [sp, 0x10]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ mov r10, r1
+ ldr r3, _08140EB4 @ =gSprites
+ mov r8, r3
+ ldr r1, _08140EB8 @ =gUnknown_0840B378
+ adds r0, r1
+ mov r9, r0
+_08140E20:
+ ldr r0, _08140EBC @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r3, r9
+ ldrb r1, [r3]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _08140EC0 @ =gSprites + 0x1C
+ adds r1, r5, r0
+ ldr r0, _08140EC4 @ =sub_8140ECC
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r2, 0x8
+ strh r2, [r4, 0x36]
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ strh r0, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140E20
+ ldr r0, _08140EC8 @ =gTasks
+ ldr r4, [sp, 0x10]
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r1, r0
+ strh r2, [r1, 0x16]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _08140EA4
+ ldr r0, _08140EB4 @ =gSprites
+ adds r0, r5, r0
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+_08140EA4:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140EB4: .4byte gSprites
+_08140EB8: .4byte gUnknown_0840B378
+_08140EBC: .4byte gSpriteTemplate_840B3B4
+_08140EC0: .4byte gSprites + 0x1C
+_08140EC4: .4byte sub_8140ECC
+_08140EC8: .4byte gTasks
+ thumb_func_end sub_8140DC4
+
+ thumb_func_start sub_8140ECC
+sub_8140ECC: @ 8140ECC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ ldrh r2, [r4, 0x30]
+ adds r0, r2
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _08140F1C
+ adds r0, r4, 0
+ bl sub_8141294
+_08140F1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140ECC
+
+ thumb_func_start sub_8140F24
+sub_8140F24: @ 8140F24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08140FE0 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140FE4 @ =gSprites
+ mov r8, r3
+ ldr r0, _08140FE8 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_08140F68:
+ ldr r0, _08140FEC @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140FF0 @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _08140FF4 @ =sub_8140FF8
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r6
+ strh r0, [r4, 0x2E]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xB
+ bls _08140F68
+ ldr r0, _08140FE4 @ =gSprites
+ adds r0, r5, r0
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140FE0: .4byte gTasks
+_08140FE4: .4byte gSprites
+_08140FE8: .4byte gUnknown_0840B378
+_08140FEC: .4byte gSpriteTemplate_840B3B4
+_08140FF0: .4byte gSprites + 0x1C
+_08140FF4: .4byte sub_8140FF8
+ thumb_func_end sub_8140F24
+
+ thumb_func_start sub_8140FF8
+sub_8140FF8: @ 8140FF8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ movs r2, 0x32
+ ldrsh r1, [r5, r2]
+ adds r0, r4, 0
+ bl Sin
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl Cos
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _08141050
+ adds r0, r5, 0
+ bl sub_8141294
+_08141050:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140FF8
+
+ thumb_func_start sub_8141058
+sub_8141058: @ 8141058
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldr r1, _08141104 @ =gTasks
+ lsls r0, 2
+ ldr r2, [sp]
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r3, [r0, 0xA]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xC]
+ str r2, [sp, 0x8]
+ ldrb r3, [r0, 0xE]
+ str r3, [sp, 0xC]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0x10]
+ movs r0, 0
+ mov r8, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ str r0, [sp, 0x14]
+ ldr r0, _08141108 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r10, r1
+_0814109E:
+ movs r7, 0
+ movs r1, 0x1
+ add r1, r8
+ mov r9, r1
+_081410A6:
+ ldr r0, _0814110C @ =gSpriteTemplate_840B3B4
+ ldr r2, [sp, 0x14]
+ adds r0, r2, r0
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ ldr r3, [sp, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, r6, 4
+ adds r4, r6
+ lsls r4, 2
+ ldr r3, _08141110 @ =gSprites
+ adds r5, r4, r3
+ mov r0, r10
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r1, _08141114 @ =gSprites + 0x1C
+ adds r4, r1
+ ldr r0, _08141118 @ =sub_8140ECC
+ str r0, [r4]
+ movs r0, 0x3
+ ldr r1, [sp, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r0, [r5, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r2, r3, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ lsls r0, r7, 5
+ strh r0, [r5, 0x2E]
+ movs r0, 0x8
+ strh r0, [r5, 0x36]
+ mov r0, r8
+ cmp r0, 0
+ bne _0814111C
+ movs r0, 0x2
+ strh r0, [r5, 0x38]
+ movs r0, 0x1
+ b _08141122
+ .align 2, 0
+_08141104: .4byte gTasks
+_08141108: .4byte gUnknown_0840B378
+_0814110C: .4byte gSpriteTemplate_840B3B4
+_08141110: .4byte gSprites
+_08141114: .4byte gSprites + 0x1C
+_08141118: .4byte sub_8140ECC
+_0814111C:
+ movs r0, 0x1
+ strh r0, [r5, 0x38]
+ movs r0, 0x2
+_08141122:
+ strh r0, [r5, 0x3A]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x7
+ bls _081410A6
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x1
+ bls _0814109E
+ ldr r0, _08141160 @ =gSprites
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x3C]
+ ldr r0, [sp]
+ bl DestroyTask
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141160: .4byte gSprites
+ thumb_func_end sub_8141058
+
+ thumb_func_start sub_8141164
+sub_8141164: @ 8141164
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08141218 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _0814121C @ =gSprites
+ mov r8, r3
+ ldr r0, _08141220 @ =gUnknown_0840B378
+ adds r1, r0
+ mov r9, r1
+_081411A8:
+ ldr r0, _08141224 @ =gSpriteTemplate_840B3B4
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08141228 @ =gSprites + 0x1C
+ adds r1, r5, r3
+ ldr r0, _0814122C @ =sub_8141230
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _081411A8
+ ldr r0, _0814121C @ =gSprites
+ adds r0, r5, r0
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08141218: .4byte gTasks
+_0814121C: .4byte gSprites
+_08141220: .4byte gUnknown_0840B378
+_08141224: .4byte gSpriteTemplate_840B3B4
+_08141228: .4byte gSprites + 0x1C
+_0814122C: .4byte sub_8141230
+ thumb_func_end sub_8141164
+
+ thumb_func_start sub_8141230
+sub_8141230: @ 8141230
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r5, r2]
+ bl Sin
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl Cos
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _0814128C
+ adds r0, r5, 0
+ bl sub_8141294
+_0814128C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141230
+
+ thumb_func_start sub_8141294
+sub_8141294: @ 8141294
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _081412B8 @ =gMain
+ ldr r1, _081412BC @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081412C0
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _081412F2
+ adds r0, r5, 0
+ bl DestroySpriteAndFreeResources
+ b _0814130E
+ .align 2, 0
+_081412B8: .4byte gMain
+_081412BC: .4byte 0x0000043d
+_081412C0:
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _08141308
+ ldr r1, _081412FC @ =0x02017840
+ ldrb r0, [r1, 0xA]
+ subs r0, 0x1
+ strb r0, [r1, 0xA]
+ lsls r0, 24
+ cmp r0, 0
+ bne _081412F2
+ movs r7, 0
+ ldr r6, _08141300 @ =gUnknown_0840B258
+ ldr r4, _08141304 @ =gUnknown_0840B2B8
+_081412DC:
+ ldrh r0, [r6, 0x6]
+ bl FreeSpriteTilesByTag
+ ldrh r0, [r4, 0x4]
+ bl FreeSpritePaletteByTag
+ adds r6, 0x8
+ adds r4, 0x8
+ adds r7, 0x1
+ cmp r7, 0xB
+ ble _081412DC
+_081412F2:
+ adds r0, r5, 0
+ bl DestroySprite
+ b _0814130E
+ .align 2, 0
+_081412FC: .4byte 0x02017840
+_08141300: .4byte gUnknown_0840B258
+_08141304: .4byte gUnknown_0840B2B8
+_08141308:
+ adds r0, r5, 0
+ bl DestroySprite
+_0814130E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141294
+
+ thumb_func_start sub_8141314
+sub_8141314: @ 8141314
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ mov r9, r2
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ ldr r0, _08141378 @ =sub_81413DC
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0814137C @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r5, r0, r1
+ strh r7, [r5, 0x26]
+ strh r6, [r5, 0xE]
+ mov r0, r9
+ strh r0, [r5, 0x1C]
+ mov r1, r9
+ lsrs r0, r1, 16
+ strh r0, [r5, 0x1E]
+ cmp r4, 0
+ bne _08141384
+ lsls r0, r6, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 16
+ ldr r2, _08141380 @ =gUnknown_0840B4D4
+ lsls r1, r7, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalette
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ b _081413AA
+ .align 2, 0
+_08141378: .4byte sub_81413DC
+_0814137C: .4byte gTasks
+_08141380: .4byte gUnknown_0840B4D4
+_08141384:
+ lsls r0, r6, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldr r2, _081413CC @ =gUnknown_0840B4D4
+ lsls r1, r7, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x10
+ movs r2, 0x10
+ bl BlendPalette
+ movs r0, 0x10
+ strh r0, [r5, 0x8]
+ ldr r0, _081413D0 @ =0x0000ffff
+ strh r0, [r5, 0xA]
+ ldr r0, _081413D4 @ =sub_814146C
+ str r0, [r5]
+_081413AA:
+ ldr r0, _081413D8 @ =0x00007fff
+ str r0, [sp]
+ mov r0, r9
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ mov r0, r8
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081413CC: .4byte gUnknown_0840B4D4
+_081413D0: .4byte 0x0000ffff
+_081413D4: .4byte sub_814146C
+_081413D8: .4byte 0x00007fff
+ thumb_func_end sub_8141314
+
+ thumb_func_start sub_81413DC
+sub_81413DC: @ 81413DC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0814142C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bgt _08141434
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ lsls r0, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 16
+ ldrb r2, [r4, 0x8]
+ ldr r3, _08141430 @ =gUnknown_0840B4D4
+ lsls r1, 1
+ adds r1, r3
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _0814145C
+ .align 2, 0
+_0814142C: .4byte gTasks
+_08141430: .4byte gUnknown_0840B4D4
+_08141434:
+ ldr r0, _08141464 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0814145C
+ ldrh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ lsls r1, 16
+ orrs r0, r1
+ ldr r1, _08141468 @ =0x00007fff
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ adds r0, r5, 0
+ bl DestroyTask
+_0814145C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141464: .4byte gPaletteFade
+_08141468: .4byte 0x00007fff
+ thumb_func_end sub_81413DC
+
+ thumb_func_start sub_814146C
+sub_814146C: @ 814146C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081414AC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081414A4
+ ldr r0, _081414B0 @ =gTasks
+ lsls r4, r2, 2
+ adds r4, r2
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ lsls r1, 16
+ orrs r0, r1
+ ldr r1, _081414B4 @ =0x00007fff
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _081414B8 @ =sub_81414BC
+ str r0, [r4]
+_081414A4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081414AC: .4byte gPaletteFade
+_081414B0: .4byte gTasks
+_081414B4: .4byte 0x00007fff
+_081414B8: .4byte sub_81414BC
+ thumb_func_end sub_814146C
+
+ thumb_func_start sub_81414BC
+sub_81414BC: @ 81414BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08141508 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bgt _08141510
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ lsls r0, 20
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r3
+ lsrs r0, 16
+ ldrb r2, [r4, 0x8]
+ ldr r3, _0814150C @ =gUnknown_0840B4D4
+ lsls r1, 1
+ adds r1, r3
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _08141516
+ .align 2, 0
+_08141508: .4byte gTasks
+_0814150C: .4byte gUnknown_0840B4D4
+_08141510:
+ adds r0, r2, 0
+ bl DestroyTask
+_08141516:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81414BC
+
+ thumb_func_start sub_814151C
+sub_814151C: @ 814151C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _08141550 @ =gObjectBankIDs
+ ldr r3, _08141554 @ =gBattleAnimPlayerMonIndex
+ ldrb r2, [r3]
+ adds r0, r2, r0
+ ldrb r6, [r0]
+ ldr r1, _08141558 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _081415F4
+ cmp r0, 0x1
+ bgt _0814155C
+ cmp r0, 0
+ beq _08141562
+ b _081416B6
+ .align 2, 0
+_08141550: .4byte gObjectBankIDs
+_08141554: .4byte gBattleAnimPlayerMonIndex
+_08141558: .4byte gTasks
+_0814155C:
+ cmp r0, 0x2
+ beq _08141606
+ b _081416B6
+_08141562:
+ ldr r0, _0814159C @ =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1E]
+ movs r2, 0xA0
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r4, [r5, 0x8]
+ adds r0, r4
+ strh r0, [r5, 0x8]
+ ldrb r0, [r3]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _081415A4
+ ldr r2, _081415A0 @ =gSprites
+ lsls r3, r6, 4
+ adds r1, r3, r6
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+ adds r4, r3, 0
+ b _081415BC
+ .align 2, 0
+_0814159C: .4byte gBattleAnimArgs
+_081415A0: .4byte gSprites
+_081415A4:
+ ldr r3, _081415EC @ =gSprites
+ lsls r4, r6, 4
+ adds r2, r4, r6
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r5, 0x8]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+_081415BC:
+ ldr r1, _081415F0 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrb r0, [r3, 0x8]
+ strh r0, [r3, 0x8]
+ adds r0, r4, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0x20
+ ldrsh r1, [r0, r2]
+ movs r4, 0x24
+ ldrsh r0, [r0, r4]
+ adds r1, r0
+ adds r1, 0x20
+ movs r0, 0x98
+ lsls r0, 1
+ cmp r1, r0
+ bls _081416B6
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ b _081416B6
+ .align 2, 0
+_081415EC: .4byte gSprites
+_081415F0: .4byte gTasks
+_081415F4:
+ ldrb r1, [r5, 0x1E]
+ adds r0, r2, 0
+ adds r2, r6, 0
+ bl refresh_graphics_maybe
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ b _081416B6
+_08141606:
+ movs r1, 0xA0
+ lsls r1, 3
+ adds r0, r1, 0
+ ldrh r2, [r5, 0x8]
+ adds r0, r2
+ strh r0, [r5, 0x8]
+ ldrb r0, [r3]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814163C
+ ldr r0, _08141638 @ =gSprites
+ lsls r3, r6, 4
+ adds r2, r3, r6
+ lsls r2, 2
+ adds r2, r0
+ ldrh r1, [r5, 0x8]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r4, r3, 0
+ b _08141654
+ .align 2, 0
+_08141638: .4byte gSprites
+_0814163C:
+ ldr r0, _08141688 @ =gSprites
+ lsls r2, r6, 4
+ adds r1, r2, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ adds r4, r2, 0
+_08141654:
+ ldr r1, _0814168C @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ strh r1, [r0, 0x8]
+ ldr r0, _08141690 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08141694
+ ldr r0, _08141688 @ =gSprites
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bgt _081416AA
+ movs r0, 0
+ strh r0, [r1, 0x24]
+ b _081416B0
+ .align 2, 0
+_08141688: .4byte gSprites
+_0814168C: .4byte gTasks
+_08141690: .4byte gBattleAnimPlayerMonIndex
+_08141694:
+ ldr r0, _081416C0 @ =gSprites
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r3, 0x24
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ blt _081416AA
+ strh r2, [r1, 0x24]
+ movs r4, 0x1
+ mov r8, r4
+_081416AA:
+ mov r0, r8
+ cmp r0, 0
+ beq _081416B6
+_081416B0:
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_081416B6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081416C0: .4byte gSprites
+ thumb_func_end sub_814151C
+
+ thumb_func_start sub_81416C4
+sub_81416C4: @ 81416C4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _081416E8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08141744
+ cmp r0, 0x1
+ bgt _081416EC
+ cmp r0, 0
+ beq _081416F2
+ b _081417B8
+ .align 2, 0
+_081416E8: .4byte gTasks
+_081416EC:
+ cmp r0, 0x2
+ beq _0814177C
+ b _081417B8
+_081416F2:
+ ldr r0, _08141708 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ bl GetBankIdentity_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08141714
+ ldr r1, _0814170C @ =REG_BLDCNT
+ ldr r2, _08141710 @ =0x00003f42
+ b _08141718
+ .align 2, 0
+_08141708: .4byte gBattleAnimPlayerMonIndex
+_0814170C: .4byte REG_BLDCNT
+_08141710: .4byte 0x00003f42
+_08141714:
+ ldr r1, _08141734 @ =REG_BLDCNT
+ ldr r2, _08141738 @ =0x00003f44
+_08141718:
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0814173C @ =REG_BLDALPHA
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r1, _08141740 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ strh r1, [r0, 0x26]
+ b _081417B8
+ .align 2, 0
+_08141734: .4byte REG_BLDCNT
+_08141738: .4byte 0x00003f44
+_0814173C: .4byte REG_BLDALPHA
+_08141740: .4byte gTasks
+_08141744:
+ ldrh r0, [r4, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081417B8
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r1, 0x1
+ strh r1, [r4, 0x8]
+ ldr r3, _08141778 @ =REG_BLDALPHA
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081417B8
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _081417B8
+ .align 2, 0
+_08141778: .4byte REG_BLDALPHA
+_0814177C:
+ ldr r1, _081417C0 @ =gObjectBankIDs
+ ldr r3, _081417C4 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _081417C8 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ ldr r1, _081417CC @ =0x06010000
+ adds r0, r1
+ movs r1, 0
+ str r1, [sp]
+ ldr r1, _081417D0 @ =0x040000d4
+ mov r2, sp
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _081417D4 @ =0x85000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldrb r0, [r3]
+ bl sub_80324E0
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_081417B8:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081417C0: .4byte gObjectBankIDs
+_081417C4: .4byte gBattleAnimPlayerMonIndex
+_081417C8: .4byte gSprites
+_081417CC: .4byte 0x06010000
+_081417D0: .4byte 0x040000d4
+_081417D4: .4byte 0x85000200
+ thumb_func_end sub_81416C4
+
+ thumb_func_start sub_81417D8
+sub_81417D8: @ 81417D8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081417FC @ =gBattleAnimArgs
+ ldr r1, _08141800 @ =gBattleAnimPlayerMonIndex
+ ldrb r1, [r1]
+ lsls r1, 2
+ ldr r2, _08141804 @ =0x02017800
+ adds r1, r2
+ ldr r1, [r1]
+ lsls r1, 29
+ lsrs r1, 31
+ strh r1, [r3, 0xE]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081417FC: .4byte gBattleAnimArgs
+_08141800: .4byte gBattleAnimPlayerMonIndex
+_08141804: .4byte 0x02017800
+ thumb_func_end sub_81417D8
+
+ thumb_func_start sub_8141808
+sub_8141808: @ 8141808
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141820 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _08141824 @ =gEffectBank
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141820: .4byte gBattleAnimEnemyMonIndex
+_08141824: .4byte gEffectBank
+ thumb_func_end sub_8141808
+
+ thumb_func_start sub_8141828
+sub_8141828: @ 8141828
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ mov r8, r0
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _081418E0 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ adds r5, r0, 0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _081418FC
+ lsrs r0, r5, 16
+ ldr r7, _081418E4 @ =0x0000ffff
+ ands r5, r7
+ eors r0, r5
+ lsrs r1, r4, 16
+ eors r0, r1
+ ands r4, r7
+ eors r0, r4
+ cmp r0, 0x7
+ bhi _08141882
+ movs r0, 0x1
+ mov r8, r0
+_08141882:
+ mov r0, r8
+ cmp r0, 0
+ beq _081418FC
+ ldr r0, _081418E8 @ =0x000027f9
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r7
+ bne _081418A2
+ ldr r0, _081418EC @ =gBattleAnimPicTable + (233 * 8)
+ bl LoadCompressedObjectPic
+ ldr r0, _081418F0 @ =gBattleAnimPaletteTable + (233 * 8)
+ bl LoadCompressedObjectPalette
+_081418A2:
+ ldr r5, _081418F4 @ =sub_814191C
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081418F8 @ =gTasks
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 3
+ adds r2, r3
+ movs r4, 0
+ strh r6, [r2, 0x8]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ strh r6, [r1, 0x8]
+ strh r4, [r2, 0xA]
+ movs r0, 0x1
+ strh r0, [r1, 0xA]
+ b _0814190E
+ .align 2, 0
+_081418E0: .4byte 0x02017810
+_081418E4: .4byte 0x0000ffff
+_081418E8: .4byte 0x000027f9
+_081418EC: .4byte gBattleAnimPicTable + (233 * 8)
+_081418F0: .4byte gBattleAnimPaletteTable + (233 * 8)
+_081418F4: .4byte sub_814191C
+_081418F8: .4byte gTasks
+_081418FC:
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _08141918 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+_0814190E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141918: .4byte 0x02017810
+ thumb_func_end sub_8141828
+
+ thumb_func_start sub_814191C
+sub_814191C: @ 814191C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08141944 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x22]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3B
+ bgt _08141948
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x22]
+ b _08141AB8
+ .align 2, 0
+_08141944: .4byte gTasks
+_08141948:
+ ldr r0, _08141998 @ =0x02017840
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _08141952
+ b _08141AB8
+_08141952:
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ cmp r1, 0
+ beq _08141966
+ b _08141AB8
+_08141966:
+ ldrb r0, [r4, 0x8]
+ mov r8, r0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081419A0
+ ldr r0, _0814199C @ =gBattleAnimSpriteTemplate_84024E8
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _08141A02
+ .align 2, 0
+_08141998: .4byte 0x02017840
+_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8
+_081419A0:
+ cmp r0, 0
+ blt _081419D4
+ cmp r0, 0x3
+ bgt _081419D4
+ ldr r0, _081419CC @ =gSpriteTemplate_8402500
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _081419D0 @ =gSprites
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ adds r2, r0
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ b _081419F4
+ .align 2, 0
+_081419CC: .4byte gSpriteTemplate_8402500
+_081419D0: .4byte gSprites
+_081419D4:
+ ldr r0, _08141A2C @ =gSpriteTemplate_8402500
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08141A30 @ =gSprites
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ adds r2, r0
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x5
+_081419F4:
+ ldr r4, _08141A34 @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _08141A38 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+_08141A02:
+ ldr r2, _08141A3C @ =gTasks
+ lsls r1, r7, 2
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r6, r0, r2
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ mov r9, r1
+ cmp r0, 0
+ bne _08141A44
+ ldr r1, _08141A30 @ =gSprites
+ lsls r2, r5, 4
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08141A40 @ =sub_8141B20
+ str r1, [r0]
+ adds r4, r2, 0
+ b _08141A8C
+ .align 2, 0
+_08141A2C: .4byte gSpriteTemplate_8402500
+_08141A30: .4byte gSprites
+_08141A34: .4byte 0x000003ff
+_08141A38: .4byte 0xfffffc00
+_08141A3C: .4byte gTasks
+_08141A40: .4byte sub_8141B20
+_08141A44:
+ ldr r3, _08141AC4 @ =gSprites
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _08141AC8 @ =sub_8141B74
+ str r2, [r0]
+ adds r1, r3
+ ldr r0, _08141ACC @ =0x0000ffe0
+ strh r0, [r1, 0x24]
+ movs r0, 0x20
+ strh r0, [r1, 0x26]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08141A8C
+ mov r0, r8
+ bl GetBankSide
+ lsls r0, 24
+ movs r1, 0x3F
+ cmp r0, 0
+ bne _08141A82
+ movs r1, 0xC0
+_08141A82:
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x66
+ bl PlaySE12WithPanning
+_08141A8C:
+ ldr r1, _08141AC4 @ =gSprites
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ strh r7, [r0, 0x2E]
+ ldr r1, _08141AD0 @ =gTasks
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r1, [r2, 0x1E]
+ adds r1, 0x1
+ strh r1, [r2, 0x1E]
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x5
+ bne _08141AB8
+ ldr r0, _08141AD4 @ =sub_8141AD8
+ str r0, [r2]
+_08141AB8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141AC4: .4byte gSprites
+_08141AC8: .4byte sub_8141B74
+_08141ACC: .4byte 0x0000ffe0
+_08141AD0: .4byte gTasks
+_08141AD4: .4byte sub_8141AD8
+ thumb_func_end sub_814191C
+
+ thumb_func_start sub_8141AD8
+sub_8141AD8: @ 8141AD8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ ldr r1, _08141B18 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08141B14
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _08141B0E
+ ldrb r1, [r1, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08141B1C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+_08141B0E:
+ adds r0, r3, 0
+ bl DestroyTask
+_08141B14:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141B18: .4byte gTasks
+_08141B1C: .4byte 0x02017810
+ thumb_func_end sub_8141AD8
+
+ thumb_func_start sub_8141B20
+sub_8141B20: @ 8141B20
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x18
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x18
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xC
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08141B6A
+ ldr r2, _08141B70 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x1
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_08141B6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141B70: .4byte gTasks
+ thumb_func_end sub_8141B20
+
+ thumb_func_start sub_8141B74
+sub_8141B74: @ 8141B74
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ bgt _08141B88
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _08141BCA
+_08141B88:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r1, [r4, 0x24]
+ adds r1, 0x5
+ strh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ subs r0, 0x5
+ strh r0, [r4, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x20
+ ble _08141BCA
+ ldr r2, _08141BD0 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x1
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_08141BCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141BD0: .4byte gTasks
+ thumb_func_end sub_8141B74
+
+ thumb_func_start sub_8141BD4
+sub_8141BD4: @ 8141BD4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08141BFC @ =gBattleAnimPicTable + (269 * 8)
+ bl LoadCompressedObjectPic
+ ldr r0, _08141C00 @ =gBattleAnimPaletteTable + (269 * 8)
+ bl LoadCompressedObjectPalette
+ ldr r0, _08141C04 @ =0x0000281d
+ bl IndexOfSpritePaletteTag
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141BFC: .4byte gBattleAnimPicTable + (269 * 8)
+_08141C00: .4byte gBattleAnimPaletteTable + (269 * 8)
+_08141C04: .4byte 0x0000281d
+ thumb_func_end sub_8141BD4
+
+ thumb_func_start sub_8141C08
+sub_8141C08: @ 8141C08
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08141C2C @ =0x0000281d
+ adds r0, r5, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r5, 0
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141C2C: .4byte 0x0000281d
+ thumb_func_end sub_8141C08
+
+ thumb_func_start sub_8141C30
+sub_8141C30: @ 8141C30
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r5, _08141CA4 @ =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ ldr r0, _08141CA8 @ =0x0000ffe0
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r1, _08141CAC @ =gObjectBankIDs
+ ldr r0, _08141CB0 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08141CB4 @ =gSprites
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _08141CB8 @ =sub_8141CBC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141CA4: .4byte gBattleAnimArgs
+_08141CA8: .4byte 0x0000ffe0
+_08141CAC: .4byte gObjectBankIDs
+_08141CB0: .4byte gBattleAnimPlayerMonIndex
+_08141CB4: .4byte gSprites
+_08141CB8: .4byte sub_8141CBC
+ thumb_func_end sub_8141C30
+
+ thumb_func_start sub_8141CBC
+sub_8141CBC: @ 8141CBC
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _08141CE4 @ =gSprites
+ ldr r1, _08141CE8 @ =gObjectBankIDs
+ ldr r0, _08141CEC @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08141CE0
+ ldr r0, _08141CF0 @ =sub_8141CF4
+ str r0, [r3, 0x1C]
+_08141CE0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141CE4: .4byte gSprites
+_08141CE8: .4byte gObjectBankIDs
+_08141CEC: .4byte gBattleAnimPlayerMonIndex
+_08141CF0: .4byte sub_8141CF4
+ thumb_func_end sub_8141CBC
+
+ thumb_func_start sub_8141CF4
+sub_8141CF4: @ 8141CF4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _08141D16
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08141D1C @ =sub_8141D20
+ str r0, [r4, 0x1C]
+_08141D16:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141D1C: .4byte sub_8141D20
+ thumb_func_end sub_8141CF4
+
+ thumb_func_start sub_8141D20
+sub_8141D20: @ 8141D20
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _08141D70 @ =gSprites
+ ldr r3, _08141D74 @ =gObjectBankIDs
+ ldr r2, _08141D78 @ =gBattleAnimPlayerMonIndex
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ cmp r0, 0
+ bge _08141D68
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08141D68
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08141D68:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141D70: .4byte gSprites
+_08141D74: .4byte gObjectBankIDs
+_08141D78: .4byte gBattleAnimPlayerMonIndex
+ thumb_func_end sub_8141D20
+
+ thumb_func_start sub_8141D7C
+sub_8141D7C: @ 8141D7C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r1, _08141DA4 @ =gBattleAnimPlayerMonIndex
+ strb r0, [r1]
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ ldr r1, _08141DA8 @ =gBattleAnimEnemyMonIndex
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141DA4: .4byte gBattleAnimPlayerMonIndex
+_08141DA8: .4byte gBattleAnimEnemyMonIndex
+ thumb_func_end sub_8141D7C
+
+ thumb_func_start sub_8141DAC
+sub_8141DAC: @ 8141DAC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08141DC0 @ =0x02017840
+ ldrh r1, [r0]
+ cmp r1, 0x53
+ bne _08141DC8
+ ldr r1, _08141DC4 @ =gBattleAnimArgs
+ movs r0, 0x1
+ b _08141E00
+ .align 2, 0
+_08141DC0: .4byte 0x02017840
+_08141DC4: .4byte gBattleAnimArgs
+_08141DC8:
+ cmp r1, 0xFA
+ bne _08141DD8
+ ldr r1, _08141DD4 @ =gBattleAnimArgs
+ movs r0, 0x2
+ b _08141E00
+ .align 2, 0
+_08141DD4: .4byte gBattleAnimArgs
+_08141DD8:
+ cmp r1, 0x80
+ bne _08141DE8
+ ldr r1, _08141DE4 @ =gBattleAnimArgs
+ movs r0, 0x3
+ b _08141E00
+ .align 2, 0
+_08141DE4: .4byte gBattleAnimArgs
+_08141DE8:
+ movs r0, 0xA4
+ lsls r0, 1
+ cmp r1, r0
+ bne _08141DFC
+ ldr r1, _08141DF8 @ =gBattleAnimArgs
+ movs r0, 0x4
+ b _08141E00
+ .align 2, 0
+_08141DF8: .4byte gBattleAnimArgs
+_08141DFC:
+ ldr r1, _08141E0C @ =gBattleAnimArgs
+ movs r0, 0
+_08141E00:
+ strh r0, [r1]
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141E0C: .4byte gBattleAnimArgs
+ thumb_func_end sub_8141DAC
+
+ thumb_func_start sub_8141E10
+sub_8141E10: @ 8141E10
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141E2C @ =gBattleAnimPlayerMonIndex
+ ldr r1, _08141E30 @ =0x02017840
+ ldrh r1, [r1]
+ strb r1, [r2]
+ ldr r2, _08141E34 @ =gBattleAnimEnemyMonIndex
+ lsrs r1, 8
+ strb r1, [r2]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141E2C: .4byte gBattleAnimPlayerMonIndex
+_08141E30: .4byte 0x02017840
+_08141E34: .4byte gBattleAnimEnemyMonIndex
+ thumb_func_end sub_8141E10
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 8f903970f..badbf2b7d 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -6,8 +6,8 @@
.text
- thumb_func_start sub_8120AA8
-sub_8120AA8: @ 8120AA8
+ thumb_func_start BufferStringBattle
+BufferStringBattle: @ 8120AA8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -16,17 +16,17 @@ sub_8120AA8: @ 8120AA8
lsls r0, 16
lsrs r7, r0, 16
movs r6, 0
- ldr r5, _08120B70 @ =gUnknown_02039270
- ldr r4, _08120B74 @ =gUnknown_02024A60
+ ldr r5, _08120B70 @ =gSelectedOrderFromParty
+ ldr r4, _08120B74 @ =gActiveBank
ldrb r1, [r4]
lsls r1, 9
ldr r0, _08120B78 @ =gUnknown_02023A64
adds r1, r0
str r1, [r5]
- ldr r2, _08120B7C @ =gUnknown_02024C04
+ ldr r2, _08120B7C @ =gLastUsedItem
ldrh r0, [r1, 0x4]
strh r0, [r2]
- ldr r2, _08120B80 @ =byte_2024C06
+ ldr r2, _08120B80 @ =gLastUsedAbility
ldrb r0, [r1, 0x6]
strb r0, [r2]
ldr r3, _08120B84 @ =0x02000000
@@ -48,7 +48,7 @@ sub_8120AA8: @ 8120AA8
adds r0, r3, r2
mov r2, r8
strb r2, [r0]
- ldr r2, _08120B94 @ =gUnknown_02024C0B
+ ldr r2, _08120B94 @ =gStringBank
ldrb r0, [r1, 0xA]
strb r0, [r2]
ldrb r1, [r1, 0xB]
@@ -57,9 +57,9 @@ sub_8120AA8: @ 8120AA8
strb r1, [r0]
movs r2, 0
mov r9, r3
- ldr r3, _08120B9C @ =gUnknown_030041C0
+ ldr r3, _08120B9C @ =gBattleTextBuff1
mov r10, r3
- ldr r3, _08120BA0 @ =gUnknown_0203926C
+ ldr r3, _08120BA0 @ =gAbilitiesPerBank
_08120B10:
adds r0, r2, r3
ldr r1, [r5]
@@ -71,12 +71,12 @@ _08120B10:
cmp r2, 0x3
ble _08120B10
movs r2, 0
- ldr r0, _08120B9C @ =gUnknown_030041C0
+ ldr r0, _08120B9C @ =gBattleTextBuff1
mov r8, r0
- ldr r3, _08120B70 @ =gUnknown_02039270
- ldr r1, _08120BA4 @ =gUnknown_03004290
+ ldr r3, _08120B70 @ =gSelectedOrderFromParty
+ ldr r1, _08120BA4 @ =gBattleTextBuff2
mov r12, r1
- ldr r5, _08120BA8 @ =gUnknown_030042B0
+ ldr r5, _08120BA8 @ =gBattleTextBuff3
_08120B30:
mov r0, r8
adds r1, r2, r0
@@ -111,21 +111,21 @@ _08120B64:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08120B70: .4byte gUnknown_02039270
-_08120B74: .4byte gUnknown_02024A60
+_08120B70: .4byte gSelectedOrderFromParty
+_08120B74: .4byte gActiveBank
_08120B78: .4byte gUnknown_02023A64
-_08120B7C: .4byte gUnknown_02024C04
-_08120B80: .4byte byte_2024C06
+_08120B7C: .4byte gLastUsedItem
+_08120B80: .4byte gLastUsedAbility
_08120B84: .4byte 0x02000000
_08120B88: .4byte 0x00016003
_08120B8C: .4byte 0x0001605e
_08120B90: .4byte 0x000160c1
-_08120B94: .4byte gUnknown_02024C0B
+_08120B94: .4byte gStringBank
_08120B98: .4byte 0x000160a0
-_08120B9C: .4byte gUnknown_030041C0
-_08120BA0: .4byte gUnknown_0203926C
-_08120BA4: .4byte gUnknown_03004290
-_08120BA8: .4byte gUnknown_030042B0
+_08120B9C: .4byte gBattleTextBuff1
+_08120BA0: .4byte gAbilitiesPerBank
+_08120BA4: .4byte gBattleTextBuff2
+_08120BA8: .4byte gBattleTextBuff3
_08120BAC: .4byte _08120BB0
.align 2, 0
_08120BB0:
@@ -136,7 +136,7 @@ _08120BB0:
.4byte _08120DE8
.4byte _08120E50
_08120BC8:
- ldr r0, _08120BEC @ =gUnknown_020239F8
+ ldr r0, _08120BEC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -156,7 +156,7 @@ _08120BE8:
ldr r6, _08120BF4 @ =gUnknown_084005DB
b _08120F70
.align 2, 0
-_08120BEC: .4byte gUnknown_020239F8
+_08120BEC: .4byte gBattleTypeFlags
_08120BF0: .4byte gUnknown_084005C7
_08120BF4: .4byte gUnknown_084005DB
_08120BF8:
@@ -199,11 +199,11 @@ _08120C38: .4byte gUnknown_08400555
_08120C3C: .4byte gUnknown_0840057B
_08120C40:
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08120C7C
- ldr r0, _08120C68 @ =gUnknown_020239F8
+ ldr r0, _08120C68 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -219,7 +219,7 @@ _08120C64:
ldr r6, _08120C70 @ =gUnknown_084006F1
b _08120F70
.align 2, 0
-_08120C68: .4byte gUnknown_020239F8
+_08120C68: .4byte gBattleTypeFlags
_08120C6C: .4byte gUnknown_084006A4
_08120C70: .4byte gUnknown_084006F1
_08120C74:
@@ -228,7 +228,7 @@ _08120C74:
.align 2, 0
_08120C78: .4byte gUnknown_0840069C
_08120C7C:
- ldr r0, _08120C94 @ =gUnknown_020239F8
+ ldr r0, _08120C94 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -241,7 +241,7 @@ _08120C7C:
ldr r6, _08120C98 @ =gUnknown_0840065C
b _08120F70
.align 2, 0
-_08120C94: .4byte gUnknown_020239F8
+_08120C94: .4byte gBattleTypeFlags
_08120C98: .4byte gUnknown_0840065C
_08120C9C:
movs r0, 0x2
@@ -271,7 +271,7 @@ _08120CC4: .4byte gUnknown_084005F5
_08120CC8: .4byte gUnknown_08400635
_08120CCC:
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08120D24
@@ -290,7 +290,7 @@ _08120CF0: .4byte gUnknown_08400709
_08120CF4:
cmp r2, 0x1
beq _08120D04
- ldr r0, _08120D08 @ =gUnknown_020239F8
+ ldr r0, _08120D08 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -300,7 +300,7 @@ _08120D04:
ldr r6, _08120D0C @ =gUnknown_08400727
b _08120F70
.align 2, 0
-_08120D08: .4byte gUnknown_020239F8
+_08120D08: .4byte gBattleTypeFlags
_08120D0C: .4byte gUnknown_08400727
_08120D10:
ldr r6, _08120D1C @ =gUnknown_08400749
@@ -320,7 +320,7 @@ _08120D24:
lsls r0, 4
cmp r1, r0
bne _08120D54
- ldr r0, _08120D48 @ =gUnknown_020239F8
+ ldr r0, _08120D48 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -333,7 +333,7 @@ _08120D40:
b _08120F70
.align 2, 0
_08120D44: .4byte gTrainerBattleOpponent
-_08120D48: .4byte gUnknown_020239F8
+_08120D48: .4byte gBattleTypeFlags
_08120D4C: .4byte gUnknown_08400771
_08120D50: .4byte gUnknown_08400781
_08120D54:
@@ -345,7 +345,7 @@ _08120D5C:
ldr r0, _08120D88 @ =0x00016003
add r0, r9
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08120DB8
@@ -354,7 +354,7 @@ _08120D5C:
ldrb r3, [r0]
cmp r3, 0
beq _08120D82
- ldr r0, _08120D90 @ =gUnknown_020239F8
+ ldr r0, _08120D90 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -366,7 +366,7 @@ _08120D82:
.align 2, 0
_08120D88: .4byte 0x00016003
_08120D8C: .4byte 0x000160c1
-_08120D90: .4byte gUnknown_020239F8
+_08120D90: .4byte gBattleTypeFlags
_08120D94: .4byte gUnknown_084006B3
_08120D98:
cmp r3, 0x1
@@ -387,7 +387,7 @@ _08120DAC:
_08120DB0: .4byte gUnknown_084006D5
_08120DB4: .4byte gUnknown_084006C6
_08120DB8:
- ldr r0, _08120DD4 @ =gUnknown_020239F8
+ ldr r0, _08120DD4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -403,7 +403,7 @@ _08120DD0:
ldr r6, _08120DDC @ =gUnknown_0840068C
b _08120F70
.align 2, 0
-_08120DD4: .4byte gUnknown_020239F8
+_08120DD4: .4byte gBattleTypeFlags
_08120DD8: .4byte gUnknown_0840067C
_08120DDC: .4byte gUnknown_0840068C
_08120DE0:
@@ -414,14 +414,14 @@ _08120DE4: .4byte gUnknown_08400622
_08120DE8:
mov r0, r10
bl sub_8121D1C
- ldr r0, _08120E14 @ =gUnknown_02039270
+ ldr r0, _08120E14 @ =gSelectedOrderFromParty
ldr r2, [r0]
ldrh r1, [r2]
movs r0, 0xB1
lsls r0, 1
cmp r1, r0
bls _08120E28
- ldr r0, _08120E18 @ =gUnknown_03004290
+ ldr r0, _08120E18 @ =gBattleTextBuff2
ldr r2, _08120E1C @ =gUnknown_08401674
ldr r1, _08120E20 @ =0x02000000
ldr r3, _08120E24 @ =0x000160a0
@@ -433,13 +433,13 @@ _08120DE8:
bl StringCopy
b _08120E38
.align 2, 0
-_08120E14: .4byte gUnknown_02039270
-_08120E18: .4byte gUnknown_03004290
+_08120E14: .4byte gSelectedOrderFromParty
+_08120E18: .4byte gBattleTextBuff2
_08120E1C: .4byte gUnknown_08401674
_08120E20: .4byte 0x02000000
_08120E24: .4byte 0x000160a0
_08120E28:
- ldr r0, _08120E44 @ =gUnknown_03004290
+ ldr r0, _08120E44 @ =gBattleTextBuff2
ldrh r2, [r2]
movs r1, 0xD
muls r1, r2
@@ -447,16 +447,16 @@ _08120E28:
adds r1, r2
bl StringCopy
_08120E38:
- ldr r0, _08120E44 @ =gUnknown_03004290
+ ldr r0, _08120E44 @ =gBattleTextBuff2
bl sub_8121D74
ldr r6, _08120E4C @ =gUnknown_084007BD
b _08120F70
.align 2, 0
-_08120E44: .4byte gUnknown_03004290
+_08120E44: .4byte gBattleTextBuff2
_08120E48: .4byte gMoveNames
_08120E4C: .4byte gUnknown_084007BD
_08120E50:
- ldr r5, _08120E90 @ =gUnknown_030041C0
+ ldr r5, _08120E90 @ =gBattleTextBuff1
ldrb r1, [r5]
movs r0, 0x80
ands r0, r1
@@ -466,7 +466,7 @@ _08120E50:
ands r0, r1
strb r0, [r5]
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -478,7 +478,7 @@ _08120E50:
eors r0, r1
strb r0, [r5]
_08120E7C:
- ldr r0, _08120E90 @ =gUnknown_030041C0
+ ldr r0, _08120E90 @ =gBattleTextBuff1
ldrb r0, [r0]
subs r0, 0x2
lsls r0, 24
@@ -488,10 +488,10 @@ _08120E7C:
ldr r6, _08120E94 @ =gUnknown_083FFEFC
b _08120F70
.align 2, 0
-_08120E90: .4byte gUnknown_030041C0
+_08120E90: .4byte gBattleTextBuff1
_08120E94: .4byte gUnknown_083FFEFC
_08120E98:
- ldr r0, _08120EAC @ =gUnknown_020239F8
+ ldr r0, _08120EAC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
@@ -501,12 +501,12 @@ _08120E98:
ldr r6, _08120EB4 @ =gUnknown_083FFFF7
b _08120F70
.align 2, 0
-_08120EAC: .4byte gUnknown_020239F8
+_08120EAC: .4byte gBattleTypeFlags
_08120EB0: .4byte gUnknown_083FFFEA
_08120EB4: .4byte gUnknown_083FFFF7
_08120EB8:
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -518,13 +518,13 @@ _08120EB8:
eors r0, r1
strb r0, [r5]
_08120ED2:
- ldr r0, _08120EF0 @ =gUnknown_020239F8
+ ldr r0, _08120EF0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08120F18
- ldr r0, _08120EF4 @ =gUnknown_030041C0
+ ldr r0, _08120EF4 @ =gBattleTextBuff1
ldrb r0, [r0]
cmp r0, 0x2
beq _08120F08
@@ -534,8 +534,8 @@ _08120ED2:
beq _08120EFE
b _08120F70
.align 2, 0
-_08120EF0: .4byte gUnknown_020239F8
-_08120EF4: .4byte gUnknown_030041C0
+_08120EF0: .4byte gBattleTypeFlags
+_08120EF4: .4byte gBattleTextBuff1
_08120EF8:
cmp r0, 0x3
beq _08120F10
@@ -556,7 +556,7 @@ _08120F10:
.align 2, 0
_08120F14: .4byte gUnknown_083FFFCB
_08120F18:
- ldr r0, _08120F2C @ =gUnknown_030041C0
+ ldr r0, _08120F2C @ =gBattleTextBuff1
ldrb r0, [r0]
cmp r0, 0x2
beq _08120F40
@@ -566,7 +566,7 @@ _08120F18:
beq _08120F36
b _08120F70
.align 2, 0
-_08120F2C: .4byte gUnknown_030041C0
+_08120F2C: .4byte gBattleTextBuff1
_08120F30:
cmp r0, 0x3
beq _08120F48
@@ -591,14 +591,14 @@ _08120F50:
lsls r0, 1
cmp r7, r0
bls _08120F64
- ldr r1, _08120F60 @ =gUnknown_020238CC
+ ldr r1, _08120F60 @ =gDisplayedStringBattle
movs r0, 0xFF
strb r0, [r1]
b _08120F76
.align 2, 0
-_08120F60: .4byte gUnknown_020238CC
+_08120F60: .4byte gDisplayedStringBattle
_08120F64:
- ldr r1, _08120F84 @ =gUnknown_08400F8C
+ ldr r1, _08120F84 @ =gBattleStringsTable
adds r0, r7, 0
subs r0, 0xC
lsls r0, 2
@@ -606,7 +606,7 @@ _08120F64:
ldr r6, [r0]
_08120F70:
adds r0, r6, 0
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
_08120F76:
pop {r3-r5}
mov r8, r3
@@ -616,19 +616,19 @@ _08120F76:
pop {r0}
bx r0
.align 2, 0
-_08120F84: .4byte gUnknown_08400F8C
- thumb_func_end sub_8120AA8
+_08120F84: .4byte gBattleStringsTable
+ thumb_func_end BufferStringBattle
- thumb_func_start get_battle_strings_
-get_battle_strings_: @ 8120F88
+ thumb_func_start StrCpyDecodeToDisplayedStringBattle
+StrCpyDecodeToDisplayedStringBattle: @ 8120F88
push {lr}
- ldr r1, _08120F94 @ =gUnknown_020238CC
- bl sub_8120FFC
+ ldr r1, _08120F94 @ =gDisplayedStringBattle
+ bl StrCpyDecodeBattle
pop {r1}
bx r1
.align 2, 0
-_08120F94: .4byte gUnknown_020238CC
- thumb_func_end get_battle_strings_
+_08120F94: .4byte gDisplayedStringBattle
+ thumb_func_end StrCpyDecodeToDisplayedStringBattle
thumb_func_start sub_8120F98
sub_8120F98: @ 8120F98
@@ -686,8 +686,8 @@ _08120FF2:
bx r1
thumb_func_end sub_8120F98
- thumb_func_start sub_8120FFC
-sub_8120FFC: @ 8120FFC
+ thumb_func_start StrCpyDecodeBattle
+StrCpyDecodeBattle: @ 8120FFC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -769,7 +769,7 @@ _08121044:
.4byte _081219D4
.4byte _08121134
_081210F0:
- ldr r5, _08121100 @ =gUnknown_030041C0
+ ldr r5, _08121100 @ =gBattleTextBuff1
ldrb r0, [r5]
cmp r0, 0xFD
bne _08121108
@@ -777,7 +777,7 @@ _081210F0:
adds r0, r5, 0
b _08121140
.align 2, 0
-_08121100: .4byte gUnknown_030041C0
+_08121100: .4byte gBattleTextBuff1
_08121104: .4byte gStringVar1
_08121108:
adds r0, r5, 0
@@ -790,17 +790,17 @@ _08121118:
adds r4, r5, 0
bl _081219E6
_0812111E:
- ldr r1, _0812112C @ =gUnknown_03004290
+ ldr r1, _0812112C @ =gBattleTextBuff2
ldrb r0, [r1]
cmp r0, 0xFD
bne _08121154
ldr r4, _08121130 @ =gStringVar2
b _0812113E
.align 2, 0
-_0812112C: .4byte gUnknown_03004290
+_0812112C: .4byte gBattleTextBuff2
_08121130: .4byte gStringVar2
_08121134:
- ldr r1, _0812114C @ =gUnknown_030042B0
+ ldr r1, _0812114C @ =gBattleTextBuff3
ldrb r0, [r1]
cmp r0, 0xFD
bne _08121154
@@ -812,15 +812,15 @@ _08121140:
bl sub_8121A68
bl _081219E6
.align 2, 0
-_0812114C: .4byte gUnknown_030042B0
+_0812114C: .4byte gBattleTextBuff3
_08121150: .4byte gStringVar3
_08121154:
adds r4, r1, 0
bl _081219E6
_0812115A:
movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08121178 @ =gUnknown_02024A6A
+ bl GetBankByPlayerAI
+ ldr r1, _08121178 @ =gBattlePartyID
lsls r0, 24
lsrs r0, 23
adds r0, r1
@@ -831,12 +831,12 @@ _0812115A:
adds r0, r1
bl _0812190E
.align 2, 0
-_08121178: .4byte gUnknown_02024A6A
+_08121178: .4byte gBattlePartyID
_0812117C: .4byte gPlayerParty
_08121180:
movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _0812119C @ =gUnknown_02024A6A
+ bl GetBankByPlayerAI
+ ldr r1, _0812119C @ =gBattlePartyID
lsls r0, 24
lsrs r0, 23
adds r0, r1
@@ -847,12 +847,12 @@ _08121180:
adds r0, r1
b _0812190E
.align 2, 0
-_0812119C: .4byte gUnknown_02024A6A
+_0812119C: .4byte gBattlePartyID
_081211A0: .4byte gEnemyParty
_081211A4:
movs r0, 0x2
- bl battle_get_side_with_given_state
- ldr r1, _081211C0 @ =gUnknown_02024A6A
+ bl GetBankByPlayerAI
+ ldr r1, _081211C0 @ =gBattlePartyID
lsls r0, 24
lsrs r0, 23
adds r0, r1
@@ -863,12 +863,12 @@ _081211A4:
adds r0, r1
b _0812190E
.align 2, 0
-_081211C0: .4byte gUnknown_02024A6A
+_081211C0: .4byte gBattlePartyID
_081211C4: .4byte gPlayerParty
_081211C8:
movs r0, 0x3
- bl battle_get_side_with_given_state
- ldr r1, _081211E4 @ =gUnknown_02024A6A
+ bl GetBankByPlayerAI
+ ldr r1, _081211E4 @ =gBattlePartyID
lsls r0, 24
lsrs r0, 23
adds r0, r1
@@ -879,10 +879,10 @@ _081211C8:
adds r0, r1
b _0812190E
.align 2, 0
-_081211E4: .4byte gUnknown_02024A6A
+_081211E4: .4byte gBattlePartyID
_081211E8: .4byte gEnemyParty
_081211EC:
- ldr r2, _0812120C @ =gUnknown_02024A6A
+ ldr r2, _0812120C @ =gBattlePartyID
ldr r1, _08121210 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
@@ -898,11 +898,11 @@ _081211EC:
adds r0, r1
b _0812190E
.align 2, 0
-_0812120C: .4byte gUnknown_02024A6A
+_0812120C: .4byte gBattlePartyID
_08121210: .4byte gLinkPlayers
_08121214: .4byte gPlayerParty
_08121218:
- ldr r2, _0812123C @ =gUnknown_02024A6A
+ ldr r2, _0812123C @ =gBattlePartyID
ldr r1, _08121240 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
@@ -920,11 +920,11 @@ _08121218:
adds r0, r1
b _0812190E
.align 2, 0
-_0812123C: .4byte gUnknown_02024A6A
+_0812123C: .4byte gBattlePartyID
_08121240: .4byte gLinkPlayers
_08121244: .4byte gEnemyParty
_08121248:
- ldr r2, _0812126C @ =gUnknown_02024A6A
+ ldr r2, _0812126C @ =gBattlePartyID
ldr r1, _08121270 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
@@ -942,11 +942,11 @@ _08121248:
adds r0, r1
b _0812190E
.align 2, 0
-_0812126C: .4byte gUnknown_02024A6A
+_0812126C: .4byte gBattlePartyID
_08121270: .4byte gLinkPlayers
_08121274: .4byte gPlayerParty
_08121278:
- ldr r2, _0812129C @ =gUnknown_02024A6A
+ ldr r2, _0812129C @ =gBattlePartyID
ldr r1, _081212A0 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
@@ -964,18 +964,18 @@ _08121278:
adds r0, r1
b _0812190E
.align 2, 0
-_0812129C: .4byte gUnknown_02024A6A
+_0812129C: .4byte gBattlePartyID
_081212A0: .4byte gLinkPlayers
_081212A4: .4byte gEnemyParty
_081212A8:
- ldr r4, _081212CC @ =gUnknown_02024C07
+ ldr r4, _081212CC @ =gBankAttacker
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
adds r2, r4, 0
cmp r0, 0
beq _0812131C
- ldr r0, _081212D0 @ =gUnknown_020239F8
+ ldr r0, _081212D0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -985,8 +985,8 @@ _081212A8:
ldr r4, _081212D8 @ =gUnknown_08400797
b _081212E6
.align 2, 0
-_081212CC: .4byte gUnknown_02024C07
-_081212D0: .4byte gUnknown_020239F8
+_081212CC: .4byte gBankAttacker
+_081212D0: .4byte gBattleTypeFlags
_081212D4: .4byte gUnknown_08400791
_081212D8: .4byte gUnknown_08400797
_081212DC:
@@ -1001,12 +1001,12 @@ _081212E6:
cmp r0, 0xFF
bne _081212DC
ldrb r0, [r2]
- bl battle_get_per_side_status
+ bl GetBankIdentity
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _08121314 @ =gUnknown_02024A6A
+ bl GetBankByPlayerAI
+ ldr r1, _08121314 @ =gBattlePartyID
lsls r0, 24
lsrs r0, 23
adds r0, r1
@@ -1017,37 +1017,37 @@ _081212E6:
adds r0, r1
b _0812190E
.align 2, 0
-_08121314: .4byte gUnknown_02024A6A
+_08121314: .4byte gBattlePartyID
_08121318: .4byte gEnemyParty
_0812131C:
ldrb r0, [r2]
- bl battle_get_per_side_status
+ bl GetBankIdentity
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _08121338 @ =gUnknown_02024A6A
+ bl GetBankByPlayerAI
+ ldr r1, _08121338 @ =gBattlePartyID
lsls r0, 24
lsrs r0, 23
adds r0, r1
ldrh r1, [r0]
b _0812193A
.align 2, 0
-_08121338: .4byte gUnknown_02024A6A
+_08121338: .4byte gBattlePartyID
_0812133C:
- ldr r4, _08121370 @ =gUnknown_02024C07
+ ldr r4, _08121370 @ =gBankAttacker
ldrb r0, [r4]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _0812137C
ldrb r0, [r4]
- bl battle_get_per_side_status
+ bl GetBankIdentity
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _08121374 @ =gUnknown_02024A6A
+ bl GetBankByPlayerAI
+ ldr r1, _08121374 @ =gBattlePartyID
lsls r0, 24
lsrs r0, 23
adds r0, 0x4
@@ -1059,17 +1059,17 @@ _0812133C:
adds r0, r1
b _0812190E
.align 2, 0
-_08121370: .4byte gUnknown_02024C07
-_08121374: .4byte gUnknown_02024A6A
+_08121370: .4byte gBankAttacker
+_08121374: .4byte gBattlePartyID
_08121378: .4byte gPlayerParty
_0812137C:
ldrb r0, [r4]
- bl battle_get_per_side_status
+ bl GetBankIdentity
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _081213A0 @ =gUnknown_02024A6A
+ bl GetBankByPlayerAI
+ ldr r1, _081213A0 @ =gBattlePartyID
lsls r0, 24
lsrs r0, 23
adds r0, 0x4
@@ -1080,16 +1080,16 @@ _0812137C:
ldr r1, _081213A4 @ =gEnemyParty
b _08121940
.align 2, 0
-_081213A0: .4byte gUnknown_02024A6A
+_081213A0: .4byte gBattlePartyID
_081213A4: .4byte gEnemyParty
_081213A8:
- ldr r5, _081213F4 @ =gUnknown_02024C07
+ ldr r5, _081213F4 @ =gBankAttacker
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _0812140C
- ldr r0, _081213F8 @ =gUnknown_020239F8
+ ldr r0, _081213F8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1100,7 +1100,7 @@ _081213A8:
_081213C6:
ldrb r1, [r4]
adds r0, r1, 0
- ldr r3, _08121404 @ =gUnknown_02024A6A
+ ldr r3, _08121404 @ =gBattlePartyID
ldr r2, _08121408 @ =gEnemyParty
mov r12, r2
adds r2, r5, 0
@@ -1123,29 +1123,29 @@ _081213E8:
ldrh r1, [r0]
b _08121908
.align 2, 0
-_081213F4: .4byte gUnknown_02024C07
-_081213F8: .4byte gUnknown_020239F8
+_081213F4: .4byte gBankAttacker
+_081213F8: .4byte gBattleTypeFlags
_081213FC: .4byte gUnknown_08400791
_08121400: .4byte gUnknown_08400797
-_08121404: .4byte gUnknown_02024A6A
+_08121404: .4byte gBattlePartyID
_08121408: .4byte gEnemyParty
_0812140C:
- ldr r1, _08121418 @ =gUnknown_02024A6A
+ ldr r1, _08121418 @ =gBattlePartyID
ldrb r0, [r5]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
b _0812193A
.align 2, 0
-_08121418: .4byte gUnknown_02024A6A
+_08121418: .4byte gBattlePartyID
_0812141C:
- ldr r5, _08121468 @ =gUnknown_02024C08
+ ldr r5, _08121468 @ =gBankTarget
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _08121480
- ldr r0, _0812146C @ =gUnknown_020239F8
+ ldr r0, _0812146C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1156,7 +1156,7 @@ _0812141C:
_0812143A:
ldrb r1, [r4]
adds r0, r1, 0
- ldr r3, _08121478 @ =gUnknown_02024A6A
+ ldr r3, _08121478 @ =gBattlePartyID
ldr r2, _0812147C @ =gEnemyParty
mov r12, r2
adds r2, r5, 0
@@ -1179,29 +1179,29 @@ _0812145C:
ldrh r1, [r0]
b _08121908
.align 2, 0
-_08121468: .4byte gUnknown_02024C08
-_0812146C: .4byte gUnknown_020239F8
+_08121468: .4byte gBankTarget
+_0812146C: .4byte gBattleTypeFlags
_08121470: .4byte gUnknown_08400791
_08121474: .4byte gUnknown_08400797
-_08121478: .4byte gUnknown_02024A6A
+_08121478: .4byte gBattlePartyID
_0812147C: .4byte gEnemyParty
_08121480:
- ldr r1, _0812148C @ =gUnknown_02024A6A
+ ldr r1, _0812148C @ =gBattlePartyID
ldrb r0, [r5]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
b _0812193A
.align 2, 0
-_0812148C: .4byte gUnknown_02024A6A
+_0812148C: .4byte gBattlePartyID
_08121490:
- ldr r5, _081214DC @ =gUnknown_02024C0A
+ ldr r5, _081214DC @ =gEffectBank
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _081214F4
- ldr r0, _081214E0 @ =gUnknown_020239F8
+ ldr r0, _081214E0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1212,7 +1212,7 @@ _08121490:
_081214AE:
ldrb r1, [r4]
adds r0, r1, 0
- ldr r3, _081214EC @ =gUnknown_02024A6A
+ ldr r3, _081214EC @ =gBattlePartyID
ldr r2, _081214F0 @ =gEnemyParty
mov r12, r2
adds r2, r5, 0
@@ -1235,29 +1235,29 @@ _081214D0:
ldrh r1, [r0]
b _08121908
.align 2, 0
-_081214DC: .4byte gUnknown_02024C0A
-_081214E0: .4byte gUnknown_020239F8
+_081214DC: .4byte gEffectBank
+_081214E0: .4byte gBattleTypeFlags
_081214E4: .4byte gUnknown_08400791
_081214E8: .4byte gUnknown_08400797
-_081214EC: .4byte gUnknown_02024A6A
+_081214EC: .4byte gBattlePartyID
_081214F0: .4byte gEnemyParty
_081214F4:
- ldr r1, _08121500 @ =gUnknown_02024A6A
+ ldr r1, _08121500 @ =gBattlePartyID
ldrb r0, [r5]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
b _0812193A
.align 2, 0
-_08121500: .4byte gUnknown_02024A6A
+_08121500: .4byte gBattlePartyID
_08121504:
- ldr r5, _08121550 @ =gUnknown_02024A60
+ ldr r5, _08121550 @ =gActiveBank
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _08121568
- ldr r0, _08121554 @ =gUnknown_020239F8
+ ldr r0, _08121554 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1268,7 +1268,7 @@ _08121504:
_08121522:
ldrb r1, [r4]
adds r0, r1, 0
- ldr r3, _08121560 @ =gUnknown_02024A6A
+ ldr r3, _08121560 @ =gBattlePartyID
ldr r2, _08121564 @ =gEnemyParty
mov r12, r2
adds r2, r5, 0
@@ -1291,32 +1291,32 @@ _08121544:
ldrh r1, [r0]
b _08121908
.align 2, 0
-_08121550: .4byte gUnknown_02024A60
-_08121554: .4byte gUnknown_020239F8
+_08121550: .4byte gActiveBank
+_08121554: .4byte gBattleTypeFlags
_08121558: .4byte gUnknown_08400791
_0812155C: .4byte gUnknown_08400797
-_08121560: .4byte gUnknown_02024A6A
+_08121560: .4byte gBattlePartyID
_08121564: .4byte gEnemyParty
_08121568:
- ldr r1, _08121574 @ =gUnknown_02024A6A
+ ldr r1, _08121574 @ =gBattlePartyID
ldrb r0, [r5]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
b _0812193A
.align 2, 0
-_08121574: .4byte gUnknown_02024A6A
+_08121574: .4byte gBattlePartyID
_08121578:
ldr r4, _081215CC @ =0x02000000
ldr r0, _081215D0 @ =0x00016003
adds r5, r4, r0
ldrb r0, [r5]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
adds r2, r4, 0
cmp r0, 0
beq _081215E8
- ldr r0, _081215D4 @ =gUnknown_020239F8
+ ldr r0, _081215D4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1327,7 +1327,7 @@ _08121578:
_0812159C:
ldrb r1, [r4]
adds r0, r1, 0
- ldr r3, _081215E0 @ =gUnknown_02024A6A
+ ldr r3, _081215E0 @ =gBattlePartyID
ldr r5, _081215E4 @ =gEnemyParty
mov r12, r5
cmp r0, 0xFF
@@ -1353,22 +1353,22 @@ _081215BC:
.align 2, 0
_081215CC: .4byte 0x02000000
_081215D0: .4byte 0x00016003
-_081215D4: .4byte gUnknown_020239F8
+_081215D4: .4byte gBattleTypeFlags
_081215D8: .4byte gUnknown_08400791
_081215DC: .4byte gUnknown_08400797
-_081215E0: .4byte gUnknown_02024A6A
+_081215E0: .4byte gBattlePartyID
_081215E4: .4byte gEnemyParty
_081215E8:
- ldr r1, _081215F4 @ =gUnknown_02024A6A
+ ldr r1, _081215F4 @ =gBattlePartyID
ldrb r0, [r5]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
b _0812193A
.align 2, 0
-_081215F4: .4byte gUnknown_02024A6A
+_081215F4: .4byte gBattlePartyID
_081215F8:
- ldr r0, _08121610 @ =gUnknown_02039270
+ ldr r0, _08121610 @ =gSelectedOrderFromParty
ldr r2, [r0]
ldrh r1, [r2]
movs r0, 0xB1
@@ -1380,14 +1380,14 @@ _081215F8:
adds r0, r2
b _08121634
.align 2, 0
-_08121610: .4byte gUnknown_02039270
+_08121610: .4byte gSelectedOrderFromParty
_08121614: .4byte 0x02000000
_08121618: .4byte 0x000160a0
_0812161C:
ldrh r1, [r2]
b _08121652
_08121620:
- ldr r0, _08121640 @ =gUnknown_02039270
+ ldr r0, _08121640 @ =gSelectedOrderFromParty
ldr r2, [r0]
ldrh r1, [r2, 0x2]
movs r0, 0xB1
@@ -1404,7 +1404,7 @@ _08121634:
adds r4, r0, r1
b _081219E6
.align 2, 0
-_08121640: .4byte gUnknown_02039270
+_08121640: .4byte gSelectedOrderFromParty
_08121644: .4byte 0x02000000
_08121648: .4byte 0x000160a0
_0812164C: .4byte gUnknown_08401674
@@ -1419,13 +1419,13 @@ _08121652:
.align 2, 0
_0812165C: .4byte gMoveNames
_08121660:
- ldr r0, _081216AC @ =gUnknown_020239F8
+ ldr r0, _081216AC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081216D8
- ldr r1, _081216B0 @ =gUnknown_02024C04
+ ldr r1, _081216B0 @ =gLastUsedItem
ldrh r0, [r1]
cmp r0, 0xAF
bne _081216D4
@@ -1438,7 +1438,7 @@ _08121660:
subs r0, r1
lsls r0, 2
adds r0, r2
- ldr r1, _081216C0 @ =gUnknown_02024C0B
+ ldr r1, _081216C0 @ =gStringBank
ldrb r2, [r1]
ldrh r0, [r0, 0x18]
cmp r0, r2
@@ -1456,12 +1456,12 @@ _08121660:
mov r4, sp
b _081219E6
.align 2, 0
-_081216AC: .4byte gUnknown_020239F8
-_081216B0: .4byte gUnknown_02024C04
+_081216AC: .4byte gBattleTypeFlags
+_081216B0: .4byte gLastUsedItem
_081216B4: .4byte gLinkPlayers
_081216B8: .4byte 0x02000000
_081216BC: .4byte 0x000160cb
-_081216C0: .4byte gUnknown_02024C0B
+_081216C0: .4byte gStringBank
_081216C4: .4byte gEnigmaBerries
_081216C8: .4byte gUnknown_08400A85
_081216CC:
@@ -1473,7 +1473,7 @@ _081216D4:
ldrh r0, [r1]
b _081216DC
_081216D8:
- ldr r0, _081216E8 @ =gUnknown_02024C04
+ ldr r0, _081216E8 @ =gLastUsedItem
ldrh r0, [r0]
_081216DC:
mov r1, sp
@@ -1481,39 +1481,39 @@ _081216DC:
mov r4, sp
b _081219E6
.align 2, 0
-_081216E8: .4byte gUnknown_02024C04
+_081216E8: .4byte gLastUsedItem
_081216EC:
- ldr r0, _081216F0 @ =byte_2024C06
+ ldr r0, _081216F0 @ =gLastUsedAbility
b _08121734
.align 2, 0
-_081216F0: .4byte byte_2024C06
+_081216F0: .4byte gLastUsedAbility
_081216F4:
- ldr r1, _081216FC @ =gUnknown_0203926C
- ldr r0, _08121700 @ =gUnknown_02024C07
+ ldr r1, _081216FC @ =gAbilitiesPerBank
+ ldr r0, _08121700 @ =gBankAttacker
b _08121730
.align 2, 0
-_081216FC: .4byte gUnknown_0203926C
-_08121700: .4byte gUnknown_02024C07
+_081216FC: .4byte gAbilitiesPerBank
+_08121700: .4byte gBankAttacker
_08121704:
- ldr r1, _0812170C @ =gUnknown_0203926C
- ldr r0, _08121710 @ =gUnknown_02024C08
+ ldr r1, _0812170C @ =gAbilitiesPerBank
+ ldr r0, _08121710 @ =gBankTarget
b _08121730
.align 2, 0
-_0812170C: .4byte gUnknown_0203926C
-_08121710: .4byte gUnknown_02024C08
+_0812170C: .4byte gAbilitiesPerBank
+_08121710: .4byte gBankTarget
_08121714:
- ldr r1, _08121720 @ =gUnknown_0203926C
+ ldr r1, _08121720 @ =gAbilitiesPerBank
ldr r0, _08121724 @ =0x02000000
ldr r2, _08121728 @ =0x00016003
adds r0, r2
b _08121730
.align 2, 0
-_08121720: .4byte gUnknown_0203926C
+_08121720: .4byte gAbilitiesPerBank
_08121724: .4byte 0x02000000
_08121728: .4byte 0x00016003
_0812172C:
- ldr r1, _08121740 @ =gUnknown_0203926C
- ldr r0, _08121744 @ =gUnknown_02024C0A
+ ldr r1, _08121740 @ =gAbilitiesPerBank
+ ldr r0, _08121744 @ =gEffectBank
_08121730:
ldrb r0, [r0]
adds r0, r1
@@ -1525,8 +1525,8 @@ _08121734:
adds r4, r1, r0
b _081219E6
.align 2, 0
-_08121740: .4byte gUnknown_0203926C
-_08121744: .4byte gUnknown_02024C0A
+_08121740: .4byte gAbilitiesPerBank
+_08121744: .4byte gEffectBank
_08121748: .4byte gAbilityNames
_0812174C:
ldr r3, _08121764 @ =gTrainerBattleOpponent
@@ -1543,7 +1543,7 @@ _0812174C:
.align 2, 0
_08121764: .4byte gTrainerBattleOpponent
_08121768:
- ldr r0, _08121784 @ =gUnknown_020239F8
+ ldr r0, _08121784 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
@@ -1556,7 +1556,7 @@ _08121768:
movs r1, 0xD
b _081217AE
.align 2, 0
-_08121784: .4byte gUnknown_020239F8
+_08121784: .4byte gBattleTypeFlags
_08121788:
movs r0, 0x80
lsls r0, 4
@@ -1606,7 +1606,7 @@ _081217C0:
_081217E4: .4byte gTrainerBattleOpponent
_081217E8: .4byte 0x02017002
_081217EC:
- ldr r0, _08121804 @ =gUnknown_020239F8
+ ldr r0, _08121804 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
@@ -1618,7 +1618,7 @@ _081217EC:
mov r4, sp
b _081219E6
.align 2, 0
-_08121804: .4byte gUnknown_020239F8
+_08121804: .4byte gBattleTypeFlags
_08121808:
movs r0, 0x80
lsls r0, 4
@@ -1719,11 +1719,11 @@ _081218C0:
ldr r1, _0812191C @ =0x00016003
adds r0, r5, r1
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _08121934
- ldr r0, _08121920 @ =gUnknown_020239F8
+ ldr r0, _08121920 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -1765,7 +1765,7 @@ _0812190E:
.align 2, 0
_08121918: .4byte 0x02000000
_0812191C: .4byte 0x00016003
-_08121920: .4byte gUnknown_020239F8
+_08121920: .4byte gBattleTypeFlags
_08121924: .4byte gUnknown_08400791
_08121928: .4byte gUnknown_08400797
_0812192C: .4byte gEnemyParty
@@ -1805,15 +1805,15 @@ _08121970: .4byte 0x0000084b
_08121974: .4byte gUnknown_084009ED
_08121978: .4byte gUnknown_084009F7
_0812197C:
- ldr r0, _08121980 @ =gUnknown_02024C07
+ ldr r0, _08121980 @ =gBankAttacker
b _08121986
.align 2, 0
-_08121980: .4byte gUnknown_02024C07
+_08121980: .4byte gBankAttacker
_08121984:
- ldr r0, _08121998 @ =gUnknown_02024C08
+ ldr r0, _08121998 @ =gBankTarget
_08121986:
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
ldr r4, _0812199C @ =gUnknown_084007A7
cmp r0, 0
@@ -1821,19 +1821,19 @@ _08121986:
ldr r4, _081219A0 @ =gUnknown_084007AC
b _081219E6
.align 2, 0
-_08121998: .4byte gUnknown_02024C08
+_08121998: .4byte gBankTarget
_0812199C: .4byte gUnknown_084007A7
_081219A0: .4byte gUnknown_084007AC
_081219A4:
- ldr r0, _081219A8 @ =gUnknown_02024C07
+ ldr r0, _081219A8 @ =gBankAttacker
b _081219AE
.align 2, 0
-_081219A8: .4byte gUnknown_02024C07
+_081219A8: .4byte gBankAttacker
_081219AC:
- ldr r0, _081219C0 @ =gUnknown_02024C08
+ ldr r0, _081219C0 @ =gBankTarget
_081219AE:
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
ldr r4, _081219C4 @ =gUnknown_0840079C
cmp r0, 0
@@ -1841,19 +1841,19 @@ _081219AE:
ldr r4, _081219C8 @ =gUnknown_084007A1
b _081219E6
.align 2, 0
-_081219C0: .4byte gUnknown_02024C08
+_081219C0: .4byte gBankTarget
_081219C4: .4byte gUnknown_0840079C
_081219C8: .4byte gUnknown_084007A1
_081219CC:
- ldr r0, _081219D0 @ =gUnknown_02024C07
+ ldr r0, _081219D0 @ =gBankAttacker
b _081219D6
.align 2, 0
-_081219D0: .4byte gUnknown_02024C07
+_081219D0: .4byte gBankAttacker
_081219D4:
- ldr r0, _08121A24 @ =gUnknown_02024C08
+ ldr r0, _08121A24 @ =gBankTarget
_081219D6:
ldrb r0, [r0]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
ldr r4, _08121A28 @ =gUnknown_084007B2
cmp r0, 0
@@ -1894,7 +1894,7 @@ _08121A06:
adds r6, 0x1
b _08121A3C
.align 2, 0
-_08121A24: .4byte gUnknown_02024C08
+_08121A24: .4byte gBankTarget
_08121A28: .4byte gUnknown_084007B2
_08121A2C: .4byte gUnknown_084007B7
_08121A30:
@@ -1927,7 +1927,7 @@ _08121A4A:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_8120FFC
+ thumb_func_end StrCpyDecodeBattle
thumb_func_start sub_8121A68
sub_8121A68: @ 8121A68
@@ -1980,14 +1980,14 @@ _08121ACC:
ldrb r0, [r0, 0x2]
lsls r0, 8
orrs r1, r0
- ldr r0, _08121AE4 @ =gUnknown_08400F8C
+ ldr r0, _08121AE4 @ =gBattleStringsTable
subs r1, 0xC
lsls r1, 2
adds r1, r0
ldr r1, [r1]
b _08121CE2
.align 2, 0
-_08121AE4: .4byte gUnknown_08400F8C
+_08121AE4: .4byte gBattleStringsTable
_08121AE8:
ldrb r0, [r4, 0x1]
cmp r0, 0x2
@@ -2060,7 +2060,7 @@ _08121B54:
_08121B60: .4byte gTypeNames
_08121B64:
ldrb r0, [r4, 0x1]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08121B88
@@ -2076,7 +2076,7 @@ _08121B64:
.align 2, 0
_08121B84: .4byte gPlayerParty
_08121B88:
- ldr r0, _08121BA0 @ =gUnknown_020239F8
+ ldr r0, _08121BA0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
@@ -2087,7 +2087,7 @@ _08121B88:
bl StringAppend
b _08121BB0
.align 2, 0
-_08121BA0: .4byte gUnknown_020239F8
+_08121BA0: .4byte gBattleTypeFlags
_08121BA4: .4byte gUnknown_08400797
_08121BA8:
ldr r1, _08121BD4 @ =gUnknown_08400791
@@ -2135,7 +2135,7 @@ _08121BF0:
_08121C02:
adds r4, r5, r7
ldrb r0, [r4, 0x1]
- bl battle_side_get_owner
+ bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _08121C28
@@ -2196,7 +2196,7 @@ _08121C78:
ldrb r0, [r0, 0x2]
lsls r0, 8
orrs r2, r0
- ldr r0, _08121CC4 @ =gUnknown_020239F8
+ ldr r0, _08121CC4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
@@ -2213,7 +2213,7 @@ _08121C78:
subs r0, r1
lsls r0, 2
adds r0, r2
- ldr r1, _08121CD4 @ =gUnknown_02024C0B
+ ldr r1, _08121CD4 @ =gStringBank
ldrb r2, [r1]
ldrh r0, [r0, 0x18]
cmp r0, r2
@@ -2228,11 +2228,11 @@ _08121C78:
ldr r1, _08121CDC @ =gUnknown_08400A85
b _08121CE2
.align 2, 0
-_08121CC4: .4byte gUnknown_020239F8
+_08121CC4: .4byte gBattleTypeFlags
_08121CC8: .4byte gLinkPlayers
_08121CCC: .4byte 0x02000000
_08121CD0: .4byte 0x000160cb
-_08121CD4: .4byte gUnknown_02024C0B
+_08121CD4: .4byte gStringBank
_08121CD8: .4byte gEnigmaBerries
_08121CDC: .4byte gUnknown_08400A85
_08121CE0:
@@ -2274,7 +2274,7 @@ sub_8121D1C: @ 8121D1C
push {r4,r5,lr}
adds r4, r0, 0
movs r2, 0
- ldr r5, _08121D50 @ =gUnknown_02039270
+ ldr r5, _08121D50 @ =gSelectedOrderFromParty
ldr r3, _08121D54 @ =gUnknown_084016BC
_08121D26:
cmp r2, 0x4
@@ -2299,7 +2299,7 @@ _08121D3C:
bl StringCopy
b _08121D68
.align 2, 0
-_08121D50: .4byte gUnknown_02039270
+_08121D50: .4byte gSelectedOrderFromParty
_08121D54: .4byte gUnknown_084016BC
_08121D58: .4byte gUnknown_08400E5E
_08121D5C:
@@ -2329,7 +2329,7 @@ _08121D7E:
cmp r0, 0xFF
bne _08121D7C
ldr r1, _08121DB4 @ =gUnknown_084016BC
- ldr r5, _08121DB8 @ =gUnknown_02039270
+ ldr r5, _08121DB8 @ =gSelectedOrderFromParty
movs r0, 0
lsls r0, 1
adds r2, r0, r1
@@ -2356,7 +2356,7 @@ _08121DA8:
mov pc, r0
.align 2, 0
_08121DB4: .4byte gUnknown_084016BC
-_08121DB8: .4byte gUnknown_02039270
+_08121DB8: .4byte gSelectedOrderFromParty
_08121DBC: .4byte _08121DC0
.align 2, 0
_08121DC0:
diff --git a/asm/battle_records.s b/asm/battle_records.s
index b58a6506c..cfe822acc 100644
--- a/asm/battle_records.s
+++ b/asm/battle_records.s
@@ -47,13 +47,13 @@ _0810FFAE:
bge _0810FFAE
movs r0, 0x17
movs r1, 0
- bl sav12_xor_set
+ bl SetGameStat
movs r0, 0x18
movs r1, 0
- bl sav12_xor_set
+ bl SetGameStat
movs r0, 0x19
movs r1, 0
- bl sav12_xor_set
+ bl SetGameStat
pop {r4,r5}
pop {r0}
bx r0
@@ -264,12 +264,12 @@ _0811013A:
movs r4, 0x19
_0811013C:
adds r0, r4, 0
- bl sub_8053108
+ bl GetGameStat
ldr r1, _08110154 @ =0x0000270e
cmp r0, r1
bhi _0811014E
adds r0, r4, 0
- bl sav12_xor_increment
+ bl IncrementGameStat
_0811014E:
pop {r4}
pop {r0}
@@ -415,7 +415,7 @@ _08110250: .4byte 0x0000270f
sub_8110254: @ 8110254
push {r4,lr}
adds r4, r0, 0
- ldr r0, _08110268 @ =gUnknown_02024D26
+ ldr r0, _08110268 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x1
beq _0811026C
@@ -423,7 +423,7 @@ sub_8110254: @ 8110254
beq _0811027A
b _08110288
.align 2, 0
-_08110268: .4byte gUnknown_02024D26
+_08110268: .4byte gBattleOutcome
_0811026C:
eors r0, r4
bl sub_81101FC
@@ -457,7 +457,7 @@ sub_8110290: @ 8110290
subs r3, 0x30
adds r2, r3
ldrh r2, [r2, 0xE]
- ldr r3, _081102DC @ =gUnknown_02024D26
+ ldr r3, _081102DC @ =gBattleOutcome
ldrb r3, [r3]
ldr r6, _081102E0 @ =gLinkPlayers
ldr r5, _081102E4 @ =gLinkPlayerMapObjects
@@ -478,7 +478,7 @@ sub_8110290: @ 8110290
.align 2, 0
_081102D4: .4byte gSaveBlock1 + 0x30B8
_081102D8: .4byte gTrainerCards + 0x30
-_081102DC: .4byte gUnknown_02024D26
+_081102DC: .4byte gBattleOutcome
_081102E0: .4byte gLinkPlayers
_081102E4: .4byte gLinkPlayerMapObjects
thumb_func_end sub_8110290
@@ -488,7 +488,7 @@ PrintLinkBattleWinsLossesDraws: @ 81102E8
push {r4,lr}
ldr r4, _08110338 @ =gStringVar1
movs r0, 0x17
- bl sub_8053108
+ bl GetGameStat
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x1
@@ -496,7 +496,7 @@ PrintLinkBattleWinsLossesDraws: @ 81102E8
bl ConvertIntToDecimalStringN_DigitWidth6
ldr r4, _0811033C @ =gStringVar2
movs r0, 0x18
- bl sub_8053108
+ bl GetGameStat
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x1
@@ -504,7 +504,7 @@ PrintLinkBattleWinsLossesDraws: @ 81102E8
bl ConvertIntToDecimalStringN_DigitWidth6
ldr r4, _08110340 @ =gStringVar3
movs r0, 0x19
- bl sub_8053108
+ bl GetGameStat
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x1
@@ -635,47 +635,7 @@ _0811042E:
_08110438: .4byte gStringVar1
thumb_func_end PrintLinkBattleRecord
- thumb_func_start ShowLinkBattleRecords
-ShowLinkBattleRecords: @ 811043C
- push {r4,lr}
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuDrawTextWindow
- ldr r0, _08110488 @ =gOtherText_BattleResults
- movs r1, 0
- movs r2, 0x1
- movs r3, 0xF0
- bl sub_8072BD8
- ldr r0, _0811048C @ =gSaveBlock1 + 0x30B8
- bl PrintLinkBattleWinsLossesDraws
- ldr r0, _08110490 @ =gOtherText_WinLoseDraw
- movs r1, 0xC
- movs r2, 0x6
- bl MenuPrint
- movs r4, 0
-_08110468:
- lsls r0, r4, 4
- ldr r1, _0811048C @ =gSaveBlock1 + 0x30B8
- adds r0, r1
- adds r4, 0x1
- lsls r1, r4, 25
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- lsrs r1, 24
- bl PrintLinkBattleRecord
- cmp r4, 0x4
- ble _08110468
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08110488: .4byte gOtherText_BattleResults
-_0811048C: .4byte gSaveBlock1 + 0x30B8
-_08110490: .4byte gOtherText_WinLoseDraw
- thumb_func_end ShowLinkBattleRecords
+.section .text_8110494
thumb_func_start sub_8110494
sub_8110494: @ 8110494
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
new file mode 100644
index 000000000..15cb95854
--- /dev/null
+++ b/asm/battle_tower.s
@@ -0,0 +1,3663 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8134548
+sub_8134548: @ 8134548
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_0813454E:
+ ldr r0, _08134568 @ =gSaveBlock2
+ ldr r1, _0813456C @ =0x00000556
+ adds r0, r1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bhi _08134590
+ lsls r0, 2
+ ldr r1, _08134570 @ =_08134574
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08134568: .4byte gSaveBlock2
+_0813456C: .4byte 0x00000556
+_08134570: .4byte _08134574
+ .align 2, 0
+_08134574:
+ .4byte _08134590
+ .4byte _081345A8
+ .4byte _081345C8
+ .4byte _081345D8
+ .4byte _081345B8
+ .4byte _081345C0
+ .4byte _081345D8
+_08134590:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_813461C
+ cmp r4, 0
+ bne _081345D8
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x5
+ bl VarSet
+ b _081345D8
+_081345A8:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_813461C
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x1
+ b _081345CE
+_081345B8:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x2
+ b _081345CE
+_081345C0:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x3
+ b _081345CE
+_081345C8:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x4
+_081345CE:
+ bl VarSet
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081345D8:
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _0813454E
+ ldr r1, _08134610 @ =gSaveBlock2
+ ldr r2, _08134614 @ =0x00000556
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _081345EE
+ cmp r0, 0x6
+ bne _08134606
+_081345EE:
+ ldr r2, _08134618 @ =0x00000557
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _081345FC
+ cmp r0, 0x6
+ bne _08134606
+_081345FC:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x5
+ bl VarSet
+_08134606:
+ bl sub_8135C44
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134610: .4byte gSaveBlock2
+_08134614: .4byte 0x00000556
+_08134618: .4byte 0x00000557
+ thumb_func_end sub_8134548
+
+ thumb_func_start sub_813461C
+sub_813461C: @ 813461C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08134644 @ =gSaveBlock2
+ ldr r2, _08134648 @ =0x00000556
+ adds r1, r3, r2
+ adds r1, r0, r1
+ movs r2, 0
+ strb r2, [r1]
+ lsls r0, 1
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r1, r3, r2
+ adds r1, r0, r1
+ movs r2, 0x1
+ strh r2, [r1]
+ ldr r1, _0813464C @ =0x0000055c
+ adds r3, r1
+ adds r0, r3
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_08134644: .4byte gSaveBlock2
+_08134648: .4byte 0x00000556
+_0813464C: .4byte 0x0000055c
+ thumb_func_end sub_813461C
+
+ thumb_func_start sub_8134650
+sub_8134650: @ 8134650
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ add r4, sp, 0x28
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_813601C
+ ldr r0, _08134684 @ =gScriptResult
+ ldrh r0, [r0]
+ adds r7, r4, 0
+ cmp r0, 0
+ bne _08134680
+ ldr r1, _08134688 @ =gSaveBlock2
+ ldr r2, _0813468C @ =0x0000049a
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ beq _08134690
+_08134680:
+ movs r0, 0
+ b _081346E2
+ .align 2, 0
+_08134684: .4byte gScriptResult
+_08134688: .4byte gSaveBlock2
+_0813468C: .4byte 0x0000049a
+_08134690:
+ movs r6, 0x32
+ cmp r5, 0
+ beq _08134698
+ movs r6, 0x64
+_08134698:
+ movs r4, 0
+ mov r8, r1
+_0813469C:
+ movs r0, 0x2C
+ muls r0, r4
+ mov r3, r8
+ adds r1, r0, r3
+ movs r2, 0x9B
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ cmp r2, r6
+ bne _08134680
+ ldr r3, _081346F0 @ =0x000004cc
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ adds r3, 0x2
+ adds r1, r3
+ ldrh r1, [r1]
+ str r2, [sp]
+ add r2, sp, 0x10
+ str r2, [sp, 0x4]
+ add r2, sp, 0x1C
+ str r2, [sp, 0x8]
+ str r7, [sp, 0xC]
+ movs r2, 0x1
+ adds r3, r5, 0
+ bl CheckMonBattleTowerBanlist
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _0813469C
+ movs r1, 0
+ ldrb r0, [r7]
+ cmp r0, 0x3
+ bne _081346E0
+ movs r1, 0x1
+_081346E0:
+ adds r0, r1, 0
+_081346E2:
+ add sp, 0x2C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081346F0: .4byte 0x000004cc
+ thumb_func_end sub_8134650
+
+ thumb_func_start sub_81346F4
+sub_81346F4: @ 81346F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r0, 0
+ mov r9, r0
+ ldr r4, _08134738 @ =gSaveBlock2
+ ldr r1, _0813473C @ =0x00000554
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r7, r0, 31
+ adds r0, r7, 0
+ bl sub_8135D3C
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r7, 0
+ mov r1, r8
+ bl sub_8134650
+ lsls r0, 24
+ adds r1, r4, 0
+ cmp r0, 0
+ beq _08134744
+ ldr r2, _08134740 @ =0x00000564
+ adds r1, r2
+ movs r0, 0xC8
+ strb r0, [r1]
+ b _081347DE
+ .align 2, 0
+_08134738: .4byte gSaveBlock2
+_0813473C: .4byte 0x00000554
+_08134740: .4byte 0x00000564
+_08134744:
+ movs r5, 0
+ movs r3, 0xA4
+ mov r12, r3
+ mov r10, sp
+_0813474C:
+ mov r0, r12
+ muls r0, r5
+ movs r4, 0
+ movs r1, 0
+ movs r2, 0
+ adds r6, r5, 0x1
+ str r6, [sp, 0x14]
+ ldr r6, _081347B4 @ =gSaveBlock2 + 0x14C
+ adds r3, r0, r6
+_0813475E:
+ ldm r3!, {r0}
+ orrs r4, r0
+ adds r1, r0
+ adds r2, 0x1
+ cmp r2, 0x27
+ bls _0813475E
+ mov r3, r12
+ muls r3, r5
+ ldr r0, _081347B8 @ =gSaveBlock2
+ adds r2, r3, r0
+ movs r6, 0xA7
+ lsls r6, 1
+ adds r0, r2, r6
+ ldrh r0, [r0]
+ cmp r0, r8
+ bne _081347A4
+ subs r6, 0x2
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, r7
+ bne _081347A4
+ cmp r4, 0
+ beq _081347A4
+ ldr r2, _081347BC @ =gSaveBlock2 + 0x1EC
+ adds r0, r3, r2
+ ldr r0, [r0]
+ cmp r0, r1
+ bne _081347A4
+ mov r3, r10
+ adds r3, 0x4
+ mov r10, r3
+ subs r3, 0x4
+ stm r3!, {r5}
+ movs r6, 0x1
+ add r9, r6
+_081347A4:
+ ldr r5, [sp, 0x14]
+ cmp r5, 0x4
+ ble _0813474C
+ mov r0, r9
+ cmp r0, 0
+ bne _081347C0
+ movs r0, 0
+ b _081347E0
+ .align 2, 0
+_081347B4: .4byte gSaveBlock2 + 0x14C
+_081347B8: .4byte gSaveBlock2
+_081347BC: .4byte gSaveBlock2 + 0x1EC
+_081347C0:
+ bl Random
+ ldr r4, _081347F0 @ =gSaveBlock2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r9
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ adds r0, 0x64
+ ldr r1, _081347F4 @ =0x00000564
+ adds r4, r1
+ strb r0, [r4]
+_081347DE:
+ movs r0, 0x1
+_081347E0:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081347F0: .4byte gSaveBlock2
+_081347F4: .4byte 0x00000564
+ thumb_func_end sub_81346F4
+
+ thumb_func_start sub_81347F8
+sub_81347F8: @ 81347F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r5, _08134838 @ =gSaveBlock2
+ ldr r1, _0813483C @ =0x00000554
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r6, r0, 31
+ bl sub_81346F4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08134848
+ ldr r2, _08134840 @ =0x00000564
+ adds r4, r5, r2
+ ldrb r0, [r4]
+ bl sub_81349FC
+ lsls r0, r6, 1
+ movs r3, 0xAB
+ lsls r3, 3
+ adds r1, r5, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, r5, r0
+ ldr r1, _08134844 @ =0x00000569
+ adds r0, r1
+ ldrb r1, [r4]
+ b _081349DC
+ .align 2, 0
+_08134838: .4byte gSaveBlock2
+_0813483C: .4byte 0x00000554
+_08134840: .4byte 0x00000564
+_08134844: .4byte 0x00000569
+_08134848:
+ lsls r0, r6, 1
+ ldr r2, _081348D8 @ =0x0000055c
+ adds r1, r5, r2
+ adds r1, r0, r1
+ ldrh r1, [r1]
+ adds r7, r0, 0
+ cmp r1, 0x7
+ bls _0813485A
+ b _0813495C
+_0813485A:
+ movs r3, 0xAB
+ lsls r3, 3
+ adds r0, r5, r3
+ adds r1, r7, r0
+ ldrh r0, [r1]
+ cmp r0, 0x7
+ bne _081348E4
+ adds r6, r5, 0
+ mov r9, r7
+ adds r5, r1, 0
+ ldr r0, _081348DC @ =0x0000056a
+ adds r0, r6
+ mov r10, r0
+ mov r8, r5
+_08134876:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ lsls r2, r1, 2
+ adds r2, r1
+ ldr r1, _081348D8 @ =0x0000055c
+ adds r4, r6, r1
+ mov r3, r9
+ adds r0, r3, r4
+ ldrh r1, [r0]
+ subs r1, 0x1
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, 0x14
+ lsrs r2, 7
+ adds r2, r0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0
+ ldrh r0, [r5]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081348C8
+ mov r3, r10
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _081348C8
+ subs r0, r4, 0x4
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ subs r3, r0, 0x1
+ adds r4, 0xE
+_081348BA:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _081348C8
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081348BA
+_081348C8:
+ mov r3, r8
+ ldrh r0, [r3]
+ subs r0, 0x1
+ ldr r4, _081348E0 @ =gSaveBlock2
+ cmp r1, r0
+ bne _08134876
+ b _081349B6
+ .align 2, 0
+_081348D8: .4byte 0x0000055c
+_081348DC: .4byte 0x0000056a
+_081348E0: .4byte gSaveBlock2
+_081348E4:
+ adds r6, r5, 0
+ mov r9, r7
+ adds r5, r1, 0
+ ldr r2, _08134950 @ =0x0000056a
+ adds r2, r6
+ mov r10, r2
+ mov r8, r5
+_081348F2:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsrs r2, r0, 6
+ ldr r3, _08134954 @ =0x0000055c
+ adds r4, r6, r3
+ mov r1, r9
+ adds r0, r1, r4
+ ldrh r1, [r0]
+ subs r1, 0x1
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r2, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldrh r0, [r5]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _08134942
+ mov r3, r10
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _08134942
+ subs r0, r4, 0x4
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ subs r3, r0, 0x1
+ adds r4, 0xE
+_08134934:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _08134942
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _08134934
+_08134942:
+ mov r3, r8
+ ldrh r0, [r3]
+ subs r0, 0x1
+ ldr r4, _08134958 @ =gSaveBlock2
+ cmp r1, r0
+ bne _081348F2
+ b _081349B6
+ .align 2, 0
+_08134950: .4byte 0x0000056a
+_08134954: .4byte 0x0000055c
+_08134958: .4byte gSaveBlock2
+_0813495C:
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r0, r5, r2
+ adds r6, r7, r0
+ ldr r3, _081349EC @ =0x0000056a
+ adds r3, r5
+ mov r8, r3
+ adds r5, r6, 0
+_0813496C:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 1
+ asrs r0, 8
+ adds r0, 0x46
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldrh r0, [r6]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081349AC
+ mov r3, r8
+ ldrb r0, [r3]
+ ldr r4, _081349F0 @ =gSaveBlock2
+ cmp r0, r2
+ beq _081349AC
+ ldrh r0, [r5]
+ subs r3, r0, 0x1
+ ldr r0, _081349EC @ =0x0000056a
+ adds r4, r0
+_0813499E:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _081349AC
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0813499E
+_081349AC:
+ ldrh r0, [r6]
+ subs r0, 0x1
+ ldr r4, _081349F0 @ =gSaveBlock2
+ cmp r1, r0
+ bne _0813496C
+_081349B6:
+ ldr r1, _081349F4 @ =0x00000564
+ adds r0, r4, r1
+ strb r2, [r0]
+ ldr r2, _081349F4 @ =0x00000564
+ adds r5, r4, r2
+ ldrb r0, [r5]
+ bl sub_81349FC
+ movs r3, 0xAB
+ lsls r3, 3
+ adds r0, r4, r3
+ adds r1, r7, r0
+ ldrh r0, [r1]
+ cmp r0, 0x6
+ bhi _081349DE
+ adds r0, r4, r0
+ ldr r1, _081349F8 @ =0x00000569
+ adds r0, r1
+ ldrb r1, [r5]
+_081349DC:
+ strb r1, [r0]
+_081349DE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081349EC: .4byte 0x0000056a
+_081349F0: .4byte gSaveBlock2
+_081349F4: .4byte 0x00000564
+_081349F8: .4byte 0x00000569
+ thumb_func_end sub_81347F8
+
+ thumb_func_start sub_81349FC
+sub_81349FC: @ 81349FC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, r2, 0
+ cmp r2, 0x63
+ bhi _08134A18
+ ldr r1, _08134A14 @ =gBattleTowerTrainers
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ b _08134A38
+ .align 2, 0
+_08134A14: .4byte gBattleTowerTrainers
+_08134A18:
+ cmp r1, 0xC7
+ bhi _08134A34
+ ldr r2, _08134A2C @ =gSaveBlock2
+ subs r1, 0x64
+ movs r0, 0xA4
+ muls r0, r1
+ adds r0, r2
+ ldr r1, _08134A30 @ =0x0000014d
+ b _08134A38
+ .align 2, 0
+_08134A2C: .4byte gSaveBlock2
+_08134A30: .4byte 0x0000014d
+_08134A34:
+ ldr r0, _08134A5C @ =gSaveBlock2
+ ldr r1, _08134A60 @ =0x00000499
+_08134A38:
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0
+ ldr r3, _08134A64 @ =gUnknown_08405E60
+ ldrb r0, [r3]
+ cmp r0, r1
+ beq _08134A54
+_08134A46:
+ adds r2, 0x1
+ cmp r2, 0x1D
+ bhi _08134A54
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08134A46
+_08134A54:
+ cmp r2, 0x1E
+ beq _08134A6C
+ ldr r0, _08134A68 @ =gUnknown_08405E92
+ b _08134A8A
+ .align 2, 0
+_08134A5C: .4byte gSaveBlock2
+_08134A60: .4byte 0x00000499
+_08134A64: .4byte gUnknown_08405E60
+_08134A68: .4byte gUnknown_08405E92
+_08134A6C:
+ movs r2, 0
+ ldr r3, _08134A98 @ =gUnknown_08405E7E
+ ldrb r0, [r3]
+ cmp r0, r1
+ beq _08134A84
+_08134A76:
+ adds r2, 0x1
+ cmp r2, 0x13
+ bhi _08134A84
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08134A76
+_08134A84:
+ cmp r2, 0x14
+ beq _08134AA4
+ ldr r0, _08134A9C @ =gUnknown_08405EB0
+_08134A8A:
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ ldr r0, _08134AA0 @ =0x00004010
+ bl VarSet
+ b _08134AAC
+ .align 2, 0
+_08134A98: .4byte gUnknown_08405E7E
+_08134A9C: .4byte gUnknown_08405EB0
+_08134AA0: .4byte 0x00004010
+_08134AA4:
+ ldr r0, _08134AB0 @ =0x00004010
+ movs r1, 0x7
+ bl VarSet
+_08134AAC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134AB0: .4byte 0x00004010
+ thumb_func_end sub_81349FC
+
+ thumb_func_start sub_8134AB4
+sub_8134AB4: @ 8134AB4
+ push {lr}
+ movs r0, 0xC8
+ bl sub_81349FC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8134AB4
+
+ thumb_func_start sub_8134AC0
+sub_8134AC0: @ 8134AC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ movs r7, 0
+ mov r8, r0
+ movs r5, 0
+ ldr r0, _08134B3C @ =gSaveBlock2
+ mov r12, r0
+ mov r1, r8
+ ldrb r1, [r1, 0xC]
+ str r1, [sp, 0x18]
+ movs r2, 0xAA
+ lsls r2, 1
+ add r2, r12
+ mov r10, r2
+ mov r9, r5
+_08134AE6:
+ movs r6, 0
+ movs r3, 0
+ ldr r0, _08134B40 @ =gSaveBlock2 + 0x158
+ add r0, r9
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bne _08134B14
+ movs r0, 0xA4
+ muls r0, r5
+ ldr r1, _08134B40 @ =gSaveBlock2 + 0x158
+ adds r2, r0, r1
+ mov r4, r8
+ adds r4, 0xC
+_08134B02:
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _08134B14
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08134B02
+_08134B14:
+ cmp r3, 0x4
+ bne _08134B54
+ movs r6, 0
+ mov r2, r10
+ ldrb r0, [r2]
+ mov r3, r8
+ ldrb r3, [r3, 0x8]
+ cmp r0, r3
+ bne _08134B54
+ adds r1, r0, 0
+ movs r0, 0xA4
+ muls r0, r5
+ adds r0, 0x4
+ ldr r3, _08134B44 @ =gSaveBlock2 + 0x150
+ adds r2, r0, r3
+_08134B32:
+ cmp r1, 0xFF
+ bne _08134B48
+ movs r6, 0x7
+ b _08134B54
+ .align 2, 0
+_08134B3C: .4byte gSaveBlock2
+_08134B40: .4byte gSaveBlock2 + 0x158
+_08134B44: .4byte gSaveBlock2 + 0x150
+_08134B48:
+ adds r6, 0x1
+ cmp r6, 0x6
+ bgt _08134B54
+ ldrb r0, [r2]
+ cmp r0, r1
+ beq _08134B32
+_08134B54:
+ cmp r6, 0x7
+ beq _08134B64
+ movs r0, 0xA4
+ add r10, r0
+ add r9, r0
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _08134AE6
+_08134B64:
+ cmp r5, 0x4
+ bgt _08134B76
+ movs r0, 0xA4
+ muls r0, r5
+ add r0, r12
+ movs r1, 0xA6
+ lsls r1, 1
+ adds r0, r1
+ b _08134B9E
+_08134B76:
+ movs r5, 0
+ movs r1, 0xA7
+ lsls r1, 1
+ add r1, r12
+ b _08134B88
+_08134B80:
+ adds r1, 0xA4
+ adds r5, 0x1
+ cmp r5, 0x4
+ bgt _08134BA8
+_08134B88:
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08134B80
+ cmp r5, 0x4
+ bgt _08134BA8
+ movs r0, 0xA4
+ muls r0, r5
+ add r0, r12
+ movs r2, 0xA6
+ lsls r2, 1
+ adds r0, r2
+_08134B9E:
+ mov r1, r8
+ movs r2, 0xA4
+ bl memcpy
+ b _08134C5E
+_08134BA8:
+ mov r2, sp
+ movs r3, 0xA7
+ lsls r3, 1
+ mov r1, r12
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ movs r1, 0
+ strh r0, [r2]
+ add r0, sp, 0xC
+ strh r1, [r0]
+ adds r7, 0x1
+ movs r5, 0x1
+ add r2, sp, 0xC
+ mov r9, r2
+ mov r10, r3
+_08134BC6:
+ movs r3, 0
+ adds r0, r5, 0x1
+ mov r12, r0
+ cmp r3, r7
+ bge _08134C0A
+ movs r1, 0xA4
+ adds r0, r5, 0
+ muls r0, r1
+ ldr r2, _08134BFC @ =gSaveBlock2
+ adds r0, r2
+ mov r1, r10
+ adds r4, r0, r1
+ mov r6, sp
+_08134BE0:
+ lsls r0, r3, 1
+ add r0, sp
+ ldrh r2, [r4]
+ adds r1, r2, 0
+ ldrh r0, [r0]
+ cmp r1, r0
+ bcs _08134C00
+ movs r3, 0
+ movs r7, 0x1
+ strh r2, [r6]
+ mov r2, r9
+ strh r5, [r2]
+ b _08134C0A
+ .align 2, 0
+_08134BFC: .4byte gSaveBlock2
+_08134C00:
+ cmp r1, r0
+ bhi _08134C0A
+ adds r3, 0x1
+ cmp r3, r7
+ blt _08134BE0
+_08134C0A:
+ cmp r3, r7
+ bne _08134C2A
+ lsls r1, r7, 1
+ mov r3, sp
+ adds r2, r3, r1
+ movs r3, 0xA4
+ adds r0, r5, 0
+ muls r0, r3
+ ldr r3, _08134C70 @ =gSaveBlock2
+ adds r0, r3
+ add r0, r10
+ ldrh r0, [r0]
+ strh r0, [r2]
+ add r1, r9
+ strh r5, [r1]
+ adds r7, 0x1
+_08134C2A:
+ mov r5, r12
+ cmp r5, 0x4
+ ble _08134BC6
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r7, 0
+ bl __modsi3
+ adds r5, r0, 0
+ ldr r2, _08134C70 @ =gSaveBlock2
+ lsls r0, r5, 1
+ add r0, sp
+ adds r0, 0xC
+ ldrh r1, [r0]
+ movs r0, 0xA4
+ muls r0, r1
+ adds r0, r2
+ movs r1, 0xA6
+ lsls r1, 1
+ adds r0, r1
+ mov r1, r8
+ movs r2, 0xA4
+ bl memcpy
+_08134C5E:
+ 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
+_08134C70: .4byte gSaveBlock2
+ thumb_func_end sub_8134AC0
+
+ thumb_func_start get_trainer_class_pic_index
+get_trainer_class_pic_index: @ 8134C74
+ push {lr}
+ ldr r3, _08134C90 @ =gSaveBlock2
+ ldr r0, _08134C94 @ =0x00000564
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08134CA0
+ ldr r1, _08134C98 @ =gTrainerClassToPicIndex
+ ldr r2, _08134C9C @ =0x00000499
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ b _08134CD2
+ .align 2, 0
+_08134C90: .4byte gSaveBlock2
+_08134C94: .4byte 0x00000564
+_08134C98: .4byte gTrainerClassToPicIndex
+_08134C9C: .4byte 0x00000499
+_08134CA0:
+ cmp r0, 0x63
+ bls _08134CC0
+ ldr r2, _08134CBC @ =gTrainerClassToPicIndex
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r0, r1
+ adds r0, r3
+ adds r1, 0xA9
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r2
+ b _08134CD2
+ .align 2, 0
+_08134CBC: .4byte gTrainerClassToPicIndex
+_08134CC0:
+ ldr r3, _08134CD8 @ =gTrainerClassToPicIndex
+ ldr r2, _08134CDC @ =gBattleTowerTrainers
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r3
+_08134CD2:
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08134CD8: .4byte gTrainerClassToPicIndex
+_08134CDC: .4byte gBattleTowerTrainers
+ thumb_func_end get_trainer_class_pic_index
+
+ thumb_func_start get_trainer_class_name_index
+get_trainer_class_name_index: @ 8134CE0
+ push {lr}
+ ldr r3, _08134CFC @ =gSaveBlock2
+ ldr r0, _08134D00 @ =0x00000564
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08134D0C
+ ldr r1, _08134D04 @ =gTrainerClassToNameIndex
+ ldr r2, _08134D08 @ =0x00000499
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ b _08134D40
+ .align 2, 0
+_08134CFC: .4byte gSaveBlock2
+_08134D00: .4byte 0x00000564
+_08134D04: .4byte gTrainerClassToNameIndex
+_08134D08: .4byte 0x00000499
+_08134D0C:
+ cmp r0, 0x63
+ bhi _08134D2C
+ ldr r3, _08134D24 @ =gTrainerClassToNameIndex
+ ldr r2, _08134D28 @ =gBattleTowerTrainers
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r3
+ b _08134D40
+ .align 2, 0
+_08134D24: .4byte gTrainerClassToNameIndex
+_08134D28: .4byte gBattleTowerTrainers
+_08134D2C:
+ ldr r2, _08134D48 @ =gTrainerClassToNameIndex
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r0, r1
+ adds r0, r3
+ adds r1, 0xA9
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r2
+_08134D40:
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08134D48: .4byte gTrainerClassToNameIndex
+ thumb_func_end get_trainer_class_name_index
+
+ thumb_func_start get_trainer_name
+get_trainer_name: @ 8134D4C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r2, _08134D74 @ =gSaveBlock2
+ ldr r0, _08134D78 @ =0x00000564
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08134D80
+ movs r3, 0
+ ldr r5, _08134D7C @ =0x0000049c
+ adds r2, r5
+_08134D62:
+ adds r0, r4, r3
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08134D62
+ b _08134DC8
+ .align 2, 0
+_08134D74: .4byte gSaveBlock2
+_08134D78: .4byte 0x00000564
+_08134D7C: .4byte 0x0000049c
+_08134D80:
+ cmp r0, 0x63
+ bhi _08134DA8
+ movs r3, 0
+ ldr r2, _08134DA4 @ =gBattleTowerTrainers
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x1
+ adds r2, r0, r2
+_08134D94:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08134D94
+ b _08134DC8
+ .align 2, 0
+_08134DA4: .4byte gBattleTowerTrainers
+_08134DA8:
+ movs r3, 0
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r1, r0
+ movs r5, 0xA8
+ lsls r5, 1
+ adds r0, r2, r5
+ adds r2, r1, r0
+_08134DBA:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08134DBA
+_08134DC8:
+ adds r1, r4, r3
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end get_trainer_name
+
+ thumb_func_start sub_8134DD4
+sub_8134DD4: @ 8134DD4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ movs r0, 0
+ str r0, [sp, 0x18]
+ movs r1, 0x3C
+ str r1, [sp, 0x1C]
+ add r4, sp, 0xC
+ movs r0, 0xFF
+ strb r0, [r4]
+ bl ZeroEnemyPartyMons
+ ldr r1, _08134E04 @ =gSaveBlock2
+ ldr r2, _08134E08 @ =0x00000564
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bhi _08134E0C
+ movs r3, 0x6
+ str r3, [sp, 0x14]
+ b _08134ED8
+ .align 2, 0
+_08134E04: .4byte gSaveBlock2
+_08134E08: .4byte 0x00000564
+_08134E0C:
+ cmp r0, 0x1D
+ bhi _08134E1A
+ movs r0, 0x9
+ str r0, [sp, 0x14]
+ movs r1, 0x1E
+ str r1, [sp, 0x18]
+ b _08134ED8
+_08134E1A:
+ cmp r0, 0x27
+ bhi _08134E28
+ movs r2, 0xC
+ str r2, [sp, 0x14]
+ movs r3, 0x3C
+ str r3, [sp, 0x18]
+ b _08134ED8
+_08134E28:
+ cmp r0, 0x31
+ bhi _08134E36
+ movs r0, 0xF
+ str r0, [sp, 0x14]
+ movs r1, 0x5A
+ str r1, [sp, 0x18]
+ b _08134ED8
+_08134E36:
+ cmp r0, 0x3B
+ bhi _08134E44
+ movs r2, 0x12
+ str r2, [sp, 0x14]
+ movs r3, 0x78
+ str r3, [sp, 0x18]
+ b _08134ED8
+_08134E44:
+ cmp r0, 0x45
+ bhi _08134E52
+ movs r0, 0x15
+ str r0, [sp, 0x14]
+ movs r1, 0x96
+ str r1, [sp, 0x18]
+ b _08134ED8
+_08134E52:
+ cmp r0, 0x4F
+ bhi _08134E60
+ movs r2, 0x1F
+ str r2, [sp, 0x14]
+ movs r3, 0xB4
+ str r3, [sp, 0x18]
+ b _08134ED8
+_08134E60:
+ cmp r0, 0x63
+ bhi _08134E72
+ movs r0, 0x1F
+ str r0, [sp, 0x14]
+ movs r1, 0xC8
+ str r1, [sp, 0x18]
+ movs r2, 0x64
+ str r2, [sp, 0x1C]
+ b _08134ED8
+_08134E72:
+ cmp r0, 0xC8
+ bne _08134E9C
+ movs r6, 0
+_08134E78:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _08134E94 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r6
+ ldr r2, _08134E98 @ =gSaveBlock2 + 0x4CC
+ adds r1, r2
+ bl sub_803ADE8
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _08134E78
+ b _08135082
+ .align 2, 0
+_08134E94: .4byte gEnemyParty
+_08134E98: .4byte gSaveBlock2 + 0x4CC
+_08134E9C:
+ movs r6, 0
+ adds r4, r1, 0
+ ldr r3, _08134ECC @ =0xffffc158
+ adds r5, r4, r3
+_08134EA4:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _08134ED0 @ =gEnemyParty
+ adds r0, r1
+ ldr r2, _08134ED4 @ =0x00000564
+ adds r1, r4, r2
+ ldrb r2, [r1]
+ movs r1, 0xA4
+ muls r1, r2
+ adds r1, r5
+ movs r2, 0x2C
+ muls r2, r6
+ adds r1, r2
+ bl sub_803ADE8
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _08134EA4
+ b _08135082
+ .align 2, 0
+_08134ECC: .4byte 0xffffc158
+_08134ED0: .4byte gEnemyParty
+_08134ED4: .4byte 0x00000564
+_08134ED8:
+ ldr r2, _08134EF4 @ =gSaveBlock2
+ ldr r3, _08134EF8 @ =0x00000554
+ adds r0, r2, r3
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _08134F00
+ ldr r0, _08134EFC @ =gBattleTowerLevel100Mons
+ mov r10, r0
+ movs r2, 0x64
+ str r2, [sp, 0x10]
+ b _08134F08
+ .align 2, 0
+_08134EF4: .4byte gSaveBlock2
+_08134EF8: .4byte 0x00000554
+_08134EFC: .4byte gBattleTowerLevel100Mons
+_08134F00:
+ ldr r3, _08134F54 @ =gBattleTowerLevel50Mons
+ mov r10, r3
+ movs r0, 0x32
+ str r0, [sp, 0x10]
+_08134F08:
+ ldr r2, _08134F58 @ =gBattleTowerTrainers
+ ldr r3, _08134F5C @ =0x00000564
+ adds r0, r1, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x9]
+ str r0, [sp, 0x20]
+ movs r6, 0
+_08134F1E:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ ldr r2, [sp, 0x1C]
+ adds r0, r1, 0
+ muls r0, r2
+ asrs r0, 8
+ ldr r3, [sp, 0x18]
+ adds r7, r0, r3
+ ldr r0, [sp, 0x20]
+ cmp r0, 0
+ beq _08134F48
+ lsls r0, r7, 4
+ add r0, r10
+ ldrb r0, [r0, 0x3]
+ ldr r1, [sp, 0x20]
+ ands r0, r1
+ cmp r0, r1
+ beq _08134F48
+ b _0813507C
+_08134F48:
+ movs r5, 0
+ lsls r0, r7, 4
+ mov r2, r10
+ adds r3, r0, r2
+ movs r4, 0
+ b _08134F64
+ .align 2, 0
+_08134F54: .4byte gBattleTowerLevel50Mons
+_08134F58: .4byte gBattleTowerTrainers
+_08134F5C: .4byte 0x00000564
+_08134F60:
+ adds r4, 0x64
+ adds r5, 0x1
+_08134F64:
+ cmp r5, r6
+ bge _08134F7E
+ ldr r1, _08135094 @ =gEnemyParty
+ adds r0, r4, r1
+ movs r1, 0xB
+ movs r2, 0
+ str r3, [sp, 0x24]
+ bl GetMonData
+ ldr r3, [sp, 0x24]
+ ldrh r2, [r3]
+ cmp r0, r2
+ bne _08134F60
+_08134F7E:
+ cmp r5, r6
+ bne _0813507C
+ movs r5, 0
+ cmp r5, r6
+ bge _08134FCC
+ ldr r3, _08135098 @ =gBattleTowerHeldItems
+ mov r9, r3
+ lsls r0, r7, 4
+ add r0, r10
+ mov r8, r0
+ movs r3, 0
+_08134F94:
+ ldr r0, _08135094 @ =gEnemyParty
+ adds r4, r3, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ movs r2, 0
+ str r3, [sp, 0x24]
+ bl GetMonData
+ ldr r3, [sp, 0x24]
+ cmp r0, 0
+ beq _08134FC4
+ adds r0, r4, 0
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ mov r2, r8
+ ldrb r1, [r2, 0x2]
+ lsls r1, 1
+ add r1, r9
+ ldr r3, [sp, 0x24]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08134FCC
+_08134FC4:
+ adds r3, 0x64
+ adds r5, 0x1
+ cmp r5, r6
+ blt _08134F94
+_08134FCC:
+ cmp r5, r6
+ bne _0813507C
+ movs r5, 0
+ cmp r5, r6
+ bge _08134FEE
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08134FEE
+ add r1, sp, 0x4
+_08134FE0:
+ adds r1, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ bge _08134FEE
+ ldrh r0, [r1]
+ cmp r0, r7
+ bne _08134FE0
+_08134FEE:
+ cmp r5, r6
+ bne _0813507C
+ lsls r0, r6, 1
+ add r0, sp
+ adds r0, 0x4
+ strh r7, [r0]
+ movs r3, 0x64
+ adds r0, r6, 0
+ muls r0, r3
+ ldr r1, _08135094 @ =gEnemyParty
+ adds r0, r1
+ lsls r4, r7, 4
+ mov r3, r10
+ adds r2, r4, r3
+ ldrh r1, [r2]
+ ldrb r2, [r2, 0xC]
+ str r2, [sp]
+ ldr r2, [sp, 0x10]
+ ldr r3, [sp, 0x14]
+ bl CreateMonWithEVSpread
+ movs r5, 0
+ adds r0, r6, 0x1
+ mov r9, r0
+ mov r8, r4
+ movs r0, 0x64
+ adds r7, r6, 0
+ muls r7, r0
+ mov r0, r10
+ adds r0, 0x4
+ adds r4, r0
+ ldr r3, _08135094 @ =gEnemyParty
+_0813502E:
+ ldrh r1, [r4]
+ lsls r2, r5, 24
+ lsrs r2, 24
+ adds r0, r7, r3
+ str r3, [sp, 0x24]
+ bl SetMonMoveSlot
+ ldrh r0, [r4]
+ ldr r3, [sp, 0x24]
+ cmp r0, 0xDA
+ bne _0813504A
+ movs r0, 0
+ mov r1, sp
+ strb r0, [r1, 0xC]
+_0813504A:
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0813502E
+ movs r2, 0x64
+ adds r4, r6, 0
+ muls r4, r2
+ ldr r3, _08135094 @ =gEnemyParty
+ adds r4, r3
+ adds r0, r4, 0
+ movs r1, 0x20
+ add r2, sp, 0xC
+ bl SetMonData
+ mov r0, r8
+ add r0, r10
+ ldrb r2, [r0, 0x2]
+ lsls r2, 1
+ ldr r0, _08135098 @ =gBattleTowerHeldItems
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ mov r6, r9
+_0813507C:
+ cmp r6, 0x3
+ beq _08135082
+ b _08134F1E
+_08135082:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135094: .4byte gEnemyParty
+_08135098: .4byte gBattleTowerHeldItems
+ thumb_func_end sub_8134DD4
+
+ thumb_func_start CalcBattleTowerBanlistSeenCount
+CalcBattleTowerBanlistSeenCount: @ 813509C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r2, _081350D8 @ =gBattleTowerBanlist
+ ldrh r0, [r2]
+ ldr r1, _081350DC @ =0x0000ffff
+ cmp r0, r1
+ beq _081350CE
+ adds r6, r1, 0
+ adds r4, r2, 0
+_081350AE:
+ ldrh r0, [r4]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetNationalPokedexFlag
+ lsls r0, 24
+ cmp r0, 0
+ beq _081350C6
+ adds r5, 0x1
+_081350C6:
+ adds r4, 0x2
+ ldrh r0, [r4]
+ cmp r0, r6
+ bne _081350AE
+_081350CE:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081350D8: .4byte gBattleTowerBanlist
+_081350DC: .4byte 0x0000ffff
+ thumb_func_end CalcBattleTowerBanlistSeenCount
+
+ thumb_func_start AppendBattleTowerBannedSpeciesName
+AppendBattleTowerBannedSpeciesName: @ 81350E0
+ push {r4-r6,lr}
+ adds r5, r2, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r0, r6, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetNationalPokedexFlag
+ lsls r0, 24
+ cmp r0, 0
+ beq _081351E6
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ subs r0, r4, 0x1
+ cmp r0, 0xA
+ bhi _081351B0
+ lsls r0, 2
+ ldr r1, _08135118 @ =_0813511C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08135118: .4byte _0813511C
+ .align 2, 0
+_0813511C:
+ .4byte _08135148
+ .4byte _08135178
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+_08135148:
+ cmp r5, r4
+ bne _08135160
+ ldr r0, _08135158 @ =gStringVar1
+ ldr r1, _0813515C @ =gUnknown_08400E23
+ bl StringAppend
+ b _081351D8
+ .align 2, 0
+_08135158: .4byte gStringVar1
+_0813515C: .4byte gUnknown_08400E23
+_08135160:
+ cmp r5, r4
+ ble _081351D8
+ ldr r0, _08135170 @ =gStringVar1
+ ldr r1, _08135174 @ =gUnknown_08400E29
+ bl StringAppend
+ b _081351D8
+ .align 2, 0
+_08135170: .4byte gStringVar1
+_08135174: .4byte gUnknown_08400E29
+_08135178:
+ cmp r4, r5
+ bne _08135190
+ ldr r0, _08135188 @ =gStringVar1
+ ldr r1, _0813518C @ =gUnknown_08400E23
+ bl StringAppend
+ b _08135198
+ .align 2, 0
+_08135188: .4byte gStringVar1
+_0813518C: .4byte gUnknown_08400E23
+_08135190:
+ ldr r0, _081351A4 @ =gStringVar1
+ ldr r1, _081351A8 @ =gUnknown_08400E29
+ bl StringAppend
+_08135198:
+ ldr r0, _081351A4 @ =gStringVar1
+ ldr r1, _081351AC @ =gUnknown_08400E30
+ bl StringAppend
+ b _081351D8
+ .align 2, 0
+_081351A4: .4byte gStringVar1
+_081351A8: .4byte gUnknown_08400E29
+_081351AC: .4byte gUnknown_08400E30
+_081351B0:
+ cmp r4, r5
+ bne _081351C8
+ ldr r0, _081351C0 @ =gStringVar1
+ ldr r1, _081351C4 @ =gUnknown_08400E23
+ bl StringAppend
+ b _081351D0
+ .align 2, 0
+_081351C0: .4byte gStringVar1
+_081351C4: .4byte gUnknown_08400E23
+_081351C8:
+ ldr r0, _081351F0 @ =gStringVar1
+ ldr r1, _081351F4 @ =gUnknown_08400E29
+ bl StringAppend
+_081351D0:
+ ldr r0, _081351F0 @ =gStringVar1
+ ldr r1, _081351F8 @ =gUnknown_08400E2E
+ bl StringAppend
+_081351D8:
+ ldr r0, _081351F0 @ =gStringVar1
+ movs r1, 0xB
+ muls r1, r6
+ ldr r2, _081351FC @ =gSpeciesNames
+ adds r1, r2
+ bl StringAppend
+_081351E6:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081351F0: .4byte gStringVar1
+_081351F4: .4byte gUnknown_08400E29
+_081351F8: .4byte gUnknown_08400E2E
+_081351FC: .4byte gSpeciesNames
+ thumb_func_end AppendBattleTowerBannedSpeciesName
+
+ thumb_func_start CheckMonBattleTowerBanlist
+CheckMonBattleTowerBanlist: @ 8135200
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ mov r9, r4
+ ldr r4, [sp, 0x28]
+ mov r10, r4
+ ldr r7, [sp, 0x2C]
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r12, r3
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ movs r2, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ beq _081352CE
+ cmp r4, 0
+ beq _081352CE
+ ldr r0, _081352DC @ =gBattleTowerBanlist
+ ldrh r1, [r0]
+ ldr r5, _081352E0 @ =0x0000ffff
+ adds r3, r0, 0
+ cmp r1, r5
+ beq _08135264
+ cmp r1, r4
+ beq _08135258
+ adds r1, r3, 0
+_0813524A:
+ adds r1, 0x2
+ adds r2, 0x1
+ ldrh r0, [r1]
+ cmp r0, r5
+ beq _08135264
+ cmp r0, r4
+ bne _0813524A
+_08135258:
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ ldr r0, _081352E0 @ =0x0000ffff
+ cmp r1, r0
+ bne _081352CE
+_08135264:
+ mov r0, r12
+ cmp r0, 0
+ bne _08135270
+ mov r1, r8
+ cmp r1, 0x32
+ bhi _081352CE
+_08135270:
+ movs r2, 0
+ ldrb r3, [r7]
+ cmp r2, r3
+ bge _08135290
+ mov r1, r9
+ ldrh r0, [r1]
+ cmp r0, r4
+ beq _08135290
+ adds r5, r3, 0
+_08135282:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r5
+ bge _08135290
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _08135282
+_08135290:
+ cmp r2, r3
+ bne _081352CE
+ cmp r6, 0
+ beq _081352BA
+ movs r2, 0
+ cmp r2, r3
+ bge _081352B6
+ mov r1, r10
+ ldrh r0, [r1]
+ cmp r0, r6
+ beq _081352B6
+ adds r5, r3, 0
+_081352A8:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r5
+ bge _081352B6
+ ldrh r0, [r1]
+ cmp r0, r6
+ bne _081352A8
+_081352B6:
+ cmp r2, r3
+ bne _081352CE
+_081352BA:
+ lsls r0, r3, 1
+ add r0, r9
+ strh r4, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ add r0, r10
+ strh r6, [r0]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+_081352CE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081352DC: .4byte gBattleTowerBanlist
+_081352E0: .4byte 0x0000ffff
+ thumb_func_end CheckMonBattleTowerBanlist
+
+ thumb_func_start CheckPartyBattleTowerBanlist
+CheckPartyBattleTowerBanlist: @ 81352E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ add r1, sp, 0x28
+ movs r0, 0
+ strb r0, [r1]
+ movs r7, 0
+ mov r9, r1
+ add r0, sp, 0x1C
+ mov r10, r0
+_081352FE:
+ movs r0, 0x64
+ adds r5, r7, 0
+ muls r5, r0
+ ldr r0, _081353C4 @ =gPlayerParty
+ adds r5, r0
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r5, _081353C8 @ =gScriptResult
+ ldrb r3, [r5]
+ str r4, [sp]
+ add r0, sp, 0x10
+ str r0, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ mov r0, r8
+ adds r1, r6, 0
+ bl CheckMonBattleTowerBanlist
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _081352FE
+ mov r1, r9
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _08135420
+ ldr r1, _081353CC @ =gStringVar1
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _081353D0 @ =gSpecialVar_0x8004
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ mov r1, r9
+ strb r0, [r1]
+ bl CalcBattleTowerBanlistSeenCount
+ adds r6, r0, 0
+ ldr r2, _081353D4 @ =gBattleTowerBanlist
+ ldrh r0, [r2]
+ ldr r1, _081353D8 @ =0x0000ffff
+ cmp r0, r1
+ beq _081353A8
+ mov r5, r9
+ adds r7, r1, 0
+ adds r4, r2, 0
+_08135394:
+ ldrh r0, [r4]
+ ldrb r1, [r5]
+ adds r2, r6, 0
+ bl AppendBattleTowerBannedSpeciesName
+ strb r0, [r5]
+ adds r4, 0x2
+ ldrh r0, [r4]
+ cmp r0, r7
+ bne _08135394
+_081353A8:
+ mov r0, r9
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _081353E4
+ ldr r4, _081353CC @ =gStringVar1
+ ldr r1, _081353DC @ =gUnknown_08400E2C
+ adds r0, r4, 0
+ bl StringAppend
+ ldr r1, _081353E0 @ =gUnknown_08400E32
+ adds r0, r4, 0
+ bl StringAppend
+ b _0813543E
+ .align 2, 0
+_081353C4: .4byte gPlayerParty
+_081353C8: .4byte gScriptResult
+_081353CC: .4byte gStringVar1
+_081353D0: .4byte gSpecialVar_0x8004
+_081353D4: .4byte gBattleTowerBanlist
+_081353D8: .4byte 0x0000ffff
+_081353DC: .4byte gUnknown_08400E2C
+_081353E0: .4byte gUnknown_08400E32
+_081353E4:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08135400
+ ldr r0, _081353F8 @ =gStringVar1
+ ldr r1, _081353FC @ =gUnknown_08400E2E
+ bl StringAppend
+ b _08135408
+ .align 2, 0
+_081353F8: .4byte gStringVar1
+_081353FC: .4byte gUnknown_08400E2E
+_08135400:
+ ldr r0, _08135414 @ =gStringVar1
+ ldr r1, _08135418 @ =gUnknown_08400E2C
+ bl StringAppend
+_08135408:
+ ldr r0, _08135414 @ =gStringVar1
+ ldr r1, _0813541C @ =gUnknown_08400E36
+ bl StringAppend
+ b _0813543E
+ .align 2, 0
+_08135414: .4byte gStringVar1
+_08135418: .4byte gUnknown_08400E2C
+_0813541C: .4byte gUnknown_08400E36
+_08135420:
+ ldr r1, _08135450 @ =gSpecialVar_0x8004
+ movs r0, 0
+ strh r0, [r1]
+ ldr r2, _08135454 @ =gSaveBlock2
+ ldrb r0, [r5]
+ ldr r1, _08135458 @ =0x00000554
+ adds r2, r1
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+_0813543E:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135450: .4byte gSpecialVar_0x8004
+_08135454: .4byte gSaveBlock2
+_08135458: .4byte 0x00000554
+ thumb_func_end CheckPartyBattleTowerBanlist
+
+ thumb_func_start sub_813545C
+sub_813545C: @ 813545C
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _08135470 @ =gStringVar4
+ movs r2, 0x2
+ movs r3, 0x3
+ bl sub_80EB544
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135470: .4byte gStringVar4
+ thumb_func_end sub_813545C
+
+ thumb_func_start sub_8135474
+sub_8135474: @ 8135474
+ push {lr}
+ ldr r2, _08135490 @ =gSaveBlock2
+ ldr r0, _08135494 @ =0x00000564
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08135498
+ movs r1, 0x95
+ lsls r1, 3
+ adds r0, r2, r1
+ bl sub_813545C
+ b _081354C4
+ .align 2, 0
+_08135490: .4byte gSaveBlock2
+_08135494: .4byte 0x00000564
+_08135498:
+ cmp r0, 0x63
+ bhi _081354B4
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _081354B0 @ =gBattleTowerTrainers + 0xC
+ adds r0, r1
+ bl sub_813545C
+ b _081354C4
+ .align 2, 0
+_081354B0: .4byte gBattleTowerTrainers + 0xC
+_081354B4:
+ ldrb r1, [r1]
+ movs r0, 0xA4
+ muls r0, r1
+ ldr r3, _081354C8 @ =0xffffc14c
+ adds r1, r2, r3
+ adds r0, r1
+ bl sub_813545C
+_081354C4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081354C8: .4byte 0xffffc14c
+ thumb_func_end sub_8135474
+
+ thumb_func_start sub_81354CC
+sub_81354CC: @ 81354CC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _081354E4 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _081354E8
+ cmp r0, 0x1
+ ble _08135520
+ cmp r0, 0x2
+ beq _0813551C
+ b _08135520
+ .align 2, 0
+_081354E4: .4byte gSpecialVar_0x8004
+_081354E8:
+ movs r5, 0
+_081354EA:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08135514 @ =gSaveBlock1 + 0x238
+ adds r0, r4, r0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ ldr r0, _08135518 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081354EA
+ b _08135520
+ .align 2, 0
+_08135514: .4byte gSaveBlock1 + 0x238
+_08135518: .4byte gPlayerParty
+_0813551C:
+ bl sub_81360D0
+_08135520:
+ ldr r0, _08135530 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135530: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_81354CC
+
+ thumb_func_start sub_8135534
+sub_8135534: @ 8135534
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_811AAE8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08135558
+ ldr r0, _08135560 @ =gMain
+ ldr r1, _08135564 @ =sub_81354CC
+ str r1, [r0, 0x8]
+ ldr r0, _08135568 @ =sub_800E7C4
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08135558:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135560: .4byte gMain
+_08135564: .4byte sub_81354CC
+_08135568: .4byte sub_800E7C4
+ thumb_func_end sub_8135534
+
+ thumb_func_start sub_813556C
+sub_813556C: @ 813556C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _08135584 @ =gSpecialVar_0x8004
+ ldrh r2, [r0]
+ cmp r2, 0x1
+ beq _081355AC
+ cmp r2, 0x1
+ bgt _08135588
+ cmp r2, 0
+ beq _0813558E
+ b _08135648
+ .align 2, 0
+_08135584: .4byte gSpecialVar_0x8004
+_08135588:
+ cmp r2, 0x2
+ beq _08135600
+ b _08135648
+_0813558E:
+ ldr r1, _081355A4 @ =gBattleTypeFlags
+ movs r3, 0x84
+ lsls r3, 1
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _081355A8 @ =gTrainerBattleOpponent
+ strh r2, [r0]
+ bl sub_8134DD4
+ b _081355D6
+ .align 2, 0
+_081355A4: .4byte gBattleTypeFlags
+_081355A8: .4byte gTrainerBattleOpponent
+_081355AC:
+ movs r5, 0
+_081355AE:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _081355F4 @ =gPlayerParty
+ adds r0, r4, r0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ ldr r0, _081355F8 @ =gSaveBlock1 + 0x238
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081355AE
+_081355D6:
+ ldr r0, _081355FC @ =sub_8135534
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl current_map_music_set__default_for_battle
+ bl GetBattleTowerBattleTransition
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_811AABC
+ b _08135648
+ .align 2, 0
+_081355F4: .4byte gPlayerParty
+_081355F8: .4byte gSaveBlock1 + 0x238
+_081355FC: .4byte sub_8135534
+_08135600:
+ bl ZeroEnemyPartyMons
+ movs r5, 0
+_08135606:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08135650 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r5
+ ldr r2, _08135654 @ =gSaveBlock2 + 0x4CC
+ adds r1, r2
+ bl sub_803ADE8
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08135606
+ ldr r1, _08135658 @ =gBattleTypeFlags
+ ldr r2, _0813565C @ =0x00000808
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08135660 @ =gTrainerBattleOpponent
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08135664 @ =sub_8135534
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl current_map_music_set__default_for_battle
+ bl GetBattleTowerBattleTransition
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_811AABC
+_08135648:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135650: .4byte gEnemyParty
+_08135654: .4byte gSaveBlock2 + 0x4CC
+_08135658: .4byte gBattleTypeFlags
+_0813565C: .4byte 0x00000808
+_08135660: .4byte gTrainerBattleOpponent
+_08135664: .4byte sub_8135534
+ thumb_func_end sub_813556C
+
+ thumb_func_start sub_8135668
+sub_8135668: @ 8135668
+ push {r4,r5,lr}
+ ldr r1, _0813568C @ =gSaveBlock2
+ ldr r2, _08135690 @ =0x00000554
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r4, r0, 31
+ ldr r0, _08135694 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0xE
+ bls _08135682
+ b _0813589A
+_08135682:
+ lsls r0, 2
+ ldr r1, _08135698 @ =_0813569C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813568C: .4byte gSaveBlock2
+_08135690: .4byte 0x00000554
+_08135694: .4byte gSpecialVar_0x8004
+_08135698: .4byte _0813569C
+ .align 2, 0
+_0813569C:
+ .4byte _081356D8
+ .4byte _08135700
+ .4byte _0813571C
+ .4byte _08135726
+ .4byte _08135740
+ .4byte _08135754
+ .4byte _08135774
+ .4byte _081357D0
+ .4byte _081357FC
+ .4byte _0813589A
+ .4byte _08135820
+ .4byte _08135834
+ .4byte _0813584C
+ .4byte _0813586C
+ .4byte _08135888
+_081356D8:
+ ldr r0, _081356F0 @ =0x02000000
+ ldr r3, _081356F4 @ =0x00000556
+ adds r1, r5, r3
+ adds r1, r4, r1
+ ldrb r2, [r1]
+ ldr r3, _081356F8 @ =0x000160fb
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, _081356FC @ =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ b _08135898
+ .align 2, 0
+_081356F0: .4byte 0x02000000
+_081356F4: .4byte 0x00000556
+_081356F8: .4byte 0x000160fb
+_081356FC: .4byte gSpecialVar_0x8005
+_08135700:
+ ldr r0, _08135714 @ =gSpecialVar_0x8005
+ ldrb r0, [r0]
+ ldr r1, _08135718 @ =0x00000554
+ adds r3, r5, r1
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ b _08135810
+ .align 2, 0
+_08135714: .4byte gSpecialVar_0x8005
+_08135718: .4byte 0x00000554
+_0813571C:
+ lsls r1, r4, 1
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r0, r5, r2
+ b _0813572C
+_08135726:
+ lsls r1, r4, 1
+ ldr r3, _08135738 @ =0x0000055c
+ adds r0, r5, r3
+_0813572C:
+ adds r1, r0
+ ldr r0, _0813573C @ =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ strh r0, [r1]
+ b _0813589A
+ .align 2, 0
+_08135738: .4byte 0x0000055c
+_0813573C: .4byte gSpecialVar_0x8005
+_08135740:
+ ldr r0, _0813574C @ =gSpecialVar_0x8005
+ ldrh r1, [r0]
+ ldr r2, _08135750 @ =0x00000564
+ adds r0, r5, r2
+ strb r1, [r0]
+ b _0813589A
+ .align 2, 0
+_0813574C: .4byte gSpecialVar_0x8005
+_08135750: .4byte 0x00000564
+_08135754:
+ movs r2, 0
+ ldr r4, _0813576C @ =gSaveBlock2 + 0x565
+ ldr r3, _08135770 @ =gSelectedOrderFromParty
+_0813575A:
+ adds r0, r2, r4
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _0813575A
+ b _0813589A
+ .align 2, 0
+_0813576C: .4byte gSaveBlock2 + 0x565
+_08135770: .4byte gSelectedOrderFromParty
+_08135774:
+ ldr r3, _081357C0 @ =0x00000564
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ cmp r0, 0xC8
+ bne _08135788
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r5, r1
+ bl sub_81360AC
+_08135788:
+ movs r3, 0xAE
+ lsls r3, 3
+ adds r2, r5, r3
+ ldrh r1, [r2]
+ ldr r0, _081357C4 @ =0x0000270e
+ cmp r1, r0
+ bhi _0813579A
+ adds r0, r1, 0x1
+ strh r0, [r2]
+_0813579A:
+ lsls r4, 1
+ movs r1, 0xAB
+ lsls r1, 3
+ adds r0, r5, r1
+ adds r4, r0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ bl sub_8135A3C
+ ldr r1, _081357C8 @ =gScriptResult
+ ldrh r0, [r4]
+ strh r0, [r1]
+ ldr r1, _081357CC @ =gStringVar1
+ adds r0, 0xA1
+ strb r0, [r1]
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ b _0813589A
+ .align 2, 0
+_081357C0: .4byte 0x00000564
+_081357C4: .4byte 0x0000270e
+_081357C8: .4byte gScriptResult
+_081357CC: .4byte gStringVar1
+_081357D0:
+ lsls r0, r4, 1
+ ldr r2, _081357F0 @ =0x0000055c
+ adds r1, r5, r2
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ ldr r0, _081357F4 @ =0x00000595
+ cmp r1, r0
+ bhi _081357E4
+ adds r0, r1, 0x1
+ strh r0, [r4]
+_081357E4:
+ bl sub_8135A3C
+ ldr r1, _081357F8 @ =gScriptResult
+ ldrh r0, [r4]
+ strh r0, [r1]
+ b _0813589A
+ .align 2, 0
+_081357F0: .4byte 0x0000055c
+_081357F4: .4byte 0x00000595
+_081357F8: .4byte gScriptResult
+_081357FC:
+ ldr r0, _08135818 @ =gSpecialVar_0x8005
+ ldrb r0, [r0]
+ ldr r1, _0813581C @ =0x00000554
+ adds r3, r5, r1
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r3]
+ movs r0, 0x3
+ negs r0, r0
+_08135810:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _0813589A
+ .align 2, 0
+_08135818: .4byte gSpecialVar_0x8005
+_0813581C: .4byte 0x00000554
+_08135820:
+ ldr r2, _08135830 @ =0x00000572
+ adds r0, r5, r2
+ ldrh r1, [r0]
+ movs r0, 0x20
+ bl SetGameStat
+ b _0813589A
+ .align 2, 0
+_08135830: .4byte 0x00000572
+_08135834:
+ ldr r3, _08135848 @ =0x00000556
+ adds r0, r5, r3
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0813589A
+ adds r0, r4, 0
+ bl sub_813461C
+ b _0813589A
+ .align 2, 0
+_08135848: .4byte 0x00000556
+_0813584C:
+ ldr r1, _08135860 @ =0x00000556
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldr r1, _08135864 @ =0x02000000
+ ldr r2, _08135868 @ =0x000160fb
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _0813589A
+ .align 2, 0
+_08135860: .4byte 0x00000556
+_08135864: .4byte 0x02000000
+_08135868: .4byte 0x000160fb
+_0813586C:
+ adds r0, r4, 0
+ bl sub_8135D3C
+ ldr r1, _08135880 @ =gSaveBlock2
+ lsls r2, r4, 1
+ ldr r3, _08135884 @ =0x00000574
+ adds r1, r3
+ adds r2, r1
+ strh r0, [r2]
+ b _0813589A
+ .align 2, 0
+_08135880: .4byte gSaveBlock2
+_08135884: .4byte 0x00000574
+_08135888:
+ ldr r1, _081358A0 @ =0x00000554
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ movs r2, 0xAF
+ lsls r2, 3
+ adds r1, r5, r2
+_08135898:
+ strb r0, [r1]
+_0813589A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081358A0: .4byte 0x00000554
+ thumb_func_end sub_8135668
+
+ thumb_func_start sub_81358A4
+sub_81358A4: @ 81358A4
+ push {r4,lr}
+ ldr r1, _081358C8 @ =gSaveBlock2
+ ldr r2, _081358CC @ =0x00000554
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r4, r0, 31
+ ldr r0, _081358D0 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0xE
+ bls _081358BE
+ b _08135A0A
+_081358BE:
+ lsls r0, 2
+ ldr r1, _081358D4 @ =_081358D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081358C8: .4byte gSaveBlock2
+_081358CC: .4byte 0x00000554
+_081358D0: .4byte gSpecialVar_0x8004
+_081358D4: .4byte _081358D8
+ .align 2, 0
+_081358D8:
+ .4byte _08135914
+ .4byte _08135928
+ .4byte _0813593C
+ .4byte _0813594C
+ .4byte _08135964
+ .4byte _08135A0A
+ .4byte _08135A0A
+ .4byte _08135A0A
+ .4byte _08135978
+ .4byte _08135990
+ .4byte _081359A0
+ .4byte _081359B4
+ .4byte _081359BC
+ .4byte _081359DC
+ .4byte _081359F8
+_08135914:
+ ldr r0, _08135920 @ =gScriptResult
+ ldr r2, _08135924 @ =0x00000556
+ adds r1, r3, r2
+ adds r1, r4, r1
+ b _0813596A
+ .align 2, 0
+_08135920: .4byte gScriptResult
+_08135924: .4byte 0x00000556
+_08135928:
+ ldr r1, _08135934 @ =gScriptResult
+ ldr r4, _08135938 @ =0x00000554
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 31
+ b _08135982
+ .align 2, 0
+_08135934: .4byte gScriptResult
+_08135938: .4byte 0x00000554
+_0813593C:
+ ldr r2, _08135948 @ =gScriptResult
+ lsls r0, r4, 1
+ movs r4, 0xAB
+ lsls r4, 3
+ b _08135952
+ .align 2, 0
+_08135948: .4byte gScriptResult
+_0813594C:
+ ldr r2, _0813595C @ =gScriptResult
+ lsls r0, r4, 1
+ ldr r4, _08135960 @ =0x0000055c
+_08135952:
+ adds r1, r3, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ b _08135A0A
+ .align 2, 0
+_0813595C: .4byte gScriptResult
+_08135960: .4byte 0x0000055c
+_08135964:
+ ldr r0, _08135970 @ =gScriptResult
+ ldr r2, _08135974 @ =0x00000564
+ adds r1, r3, r2
+_0813596A:
+ ldrb r1, [r1]
+ strh r1, [r0]
+ b _08135A0A
+ .align 2, 0
+_08135970: .4byte gScriptResult
+_08135974: .4byte 0x00000564
+_08135978:
+ ldr r1, _08135988 @ =gScriptResult
+ ldr r4, _0813598C @ =0x00000554
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 30
+_08135982:
+ lsrs r0, 31
+ strh r0, [r1]
+ b _08135A0A
+ .align 2, 0
+_08135988: .4byte gScriptResult
+_0813598C: .4byte 0x00000554
+_08135990:
+ adds r0, r4, 0
+ bl sub_8135D3C
+ ldr r1, _0813599C @ =gScriptResult
+ strh r0, [r1]
+ b _08135A0A
+ .align 2, 0
+_0813599C: .4byte gScriptResult
+_081359A0:
+ ldr r1, _081359B0 @ =0x00000572
+ adds r0, r3, r1
+ ldrh r1, [r0]
+ movs r0, 0x20
+ bl SetGameStat
+ b _08135A0A
+ .align 2, 0
+_081359B0: .4byte 0x00000572
+_081359B4:
+ adds r0, r4, 0
+ bl sub_813461C
+ b _08135A0A
+_081359BC:
+ ldr r2, _081359D0 @ =0x00000556
+ adds r0, r3, r2
+ adds r0, r4, r0
+ ldr r1, _081359D4 @ =0x02000000
+ ldr r3, _081359D8 @ =0x000160fb
+ adds r1, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _08135A0A
+ .align 2, 0
+_081359D0: .4byte 0x00000556
+_081359D4: .4byte 0x02000000
+_081359D8: .4byte 0x000160fb
+_081359DC:
+ adds r0, r4, 0
+ bl sub_8135D3C
+ ldr r1, _081359F0 @ =gSaveBlock2
+ lsls r2, r4, 1
+ ldr r4, _081359F4 @ =0x00000574
+ adds r1, r4
+ adds r2, r1
+ strh r0, [r2]
+ b _08135A0A
+ .align 2, 0
+_081359F0: .4byte gSaveBlock2
+_081359F4: .4byte 0x00000574
+_081359F8:
+ ldr r1, _08135A10 @ =0x00000554
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ movs r2, 0xAF
+ lsls r2, 3
+ adds r1, r3, r2
+ strb r0, [r1]
+_08135A0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135A10: .4byte 0x00000554
+ thumb_func_end sub_81358A4
+
+ thumb_func_start sub_8135A14
+sub_8135A14: @ 8135A14
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _08135A34 @ =gSelectedOrderFromParty
+ ldr r3, _08135A38 @ =gSaveBlock2 + 0x565
+_08135A1C:
+ adds r0, r2, r4
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _08135A1C
+ bl ReducePlayerPartyToThree
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135A34: .4byte gSelectedOrderFromParty
+_08135A38: .4byte gSaveBlock2 + 0x565
+ thumb_func_end sub_8135A14
+
+ thumb_func_start sub_8135A3C
+sub_8135A3C: @ 8135A3C
+ push {r4-r6,lr}
+ ldr r6, _08135A84 @ =gSaveBlock2
+ ldr r1, _08135A88 @ =0x00000554
+ adds r0, r6, r1
+ ldrb r4, [r0]
+ lsls r4, 31
+ lsrs r4, 31
+ adds r0, r4, 0
+ bl sub_8135D3C
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r4, 1
+ movs r3, 0xAC
+ lsls r3, 3
+ adds r2, r6, r3
+ adds r4, r2
+ ldrh r0, [r4]
+ cmp r0, r5
+ bcs _08135A66
+ strh r5, [r4]
+_08135A66:
+ ldr r0, _08135A8C @ =0x00000562
+ adds r1, r6, r0
+ ldrh r0, [r2]
+ ldrh r3, [r1]
+ cmp r0, r3
+ bls _08135A94
+ adds r5, r0, 0
+ movs r0, 0x20
+ adds r1, r5, 0
+ bl SetGameStat
+ ldr r1, _08135A90 @ =0x0000270f
+ cmp r5, r1
+ bhi _08135AA4
+ b _08135AB4
+ .align 2, 0
+_08135A84: .4byte gSaveBlock2
+_08135A88: .4byte 0x00000554
+_08135A8C: .4byte 0x00000562
+_08135A90: .4byte 0x0000270f
+_08135A94:
+ ldrh r5, [r1]
+ movs r0, 0x20
+ adds r1, r5, 0
+ bl SetGameStat
+ ldr r1, _08135AAC @ =0x0000270f
+ cmp r5, r1
+ bls _08135AB4
+_08135AA4:
+ ldr r2, _08135AB0 @ =0x00000572
+ adds r0, r6, r2
+ strh r1, [r0]
+ b _08135ABA
+ .align 2, 0
+_08135AAC: .4byte 0x0000270f
+_08135AB0: .4byte 0x00000572
+_08135AB4:
+ ldr r3, _08135AC0 @ =0x00000572
+ adds r0, r6, r3
+ strh r5, [r0]
+_08135ABA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135AC0: .4byte 0x00000572
+ thumb_func_end sub_8135A3C
+
+ thumb_func_start sub_8135AC4
+sub_8135AC4: @ 8135AC4
+ push {r4-r6,lr}
+ ldr r5, _08135AF0 @ =gSaveBlock2 + 0xA8
+ adds r2, r5, 0
+ subs r2, 0xA8
+ ldr r1, _08135AF4 @ =0x000004ac
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r6, r0, 31
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _08135AFC
+ ldr r4, _08135AF8 @ =gUnknown_08405E7E
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x14
+ b _08135B0E
+ .align 2, 0
+_08135AF0: .4byte gSaveBlock2 + 0xA8
+_08135AF4: .4byte 0x000004ac
+_08135AF8: .4byte gUnknown_08405E7E
+_08135AFC:
+ ldr r4, _08135B84 @ =gUnknown_08405E60
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x1E
+_08135B0E:
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r6, [r5]
+ strb r0, [r5, 0x1]
+ adds r0, r5, 0
+ adds r0, 0xC
+ ldr r4, _08135B88 @ =gSaveBlock2 + 0xA
+ adds r1, r4, 0
+ bl copy_word_to_mem
+ adds r0, r5, 0x4
+ subs r4, 0xA
+ adds r1, r4, 0
+ bl StringCopy8
+ adds r0, r6, 0
+ bl sub_8135D3C
+ strh r0, [r5, 0x2]
+ ldr r0, _08135B8C @ =gSaveBlock1
+ ldr r1, _08135B90 @ =0x00002b28
+ adds r2, r0, r1
+ adds r1, r5, 0
+ adds r1, 0x10
+ movs r4, 0x5
+_08135B44:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08135B44
+ movs r4, 0
+ ldr r6, _08135B94 @ =gSaveBlock2 + 0x565
+_08135B56:
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08135B98 @ =gUnknown_030042FC
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r4
+ adds r1, 0x1C
+ adds r1, r5, r1
+ bl sub_803AF78
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08135B56
+ ldr r0, _08135B9C @ =gSaveBlock2 + 0xA8
+ bl sub_8135CC4
+ bl sub_8135A3C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135B84: .4byte gUnknown_08405E60
+_08135B88: .4byte gSaveBlock2 + 0xA
+_08135B8C: .4byte gSaveBlock1
+_08135B90: .4byte 0x00002b28
+_08135B94: .4byte gSaveBlock2 + 0x565
+_08135B98: .4byte gUnknown_030042FC
+_08135B9C: .4byte gSaveBlock2 + 0xA8
+ thumb_func_end sub_8135AC4
+
+ thumb_func_start sub_8135BA0
+sub_8135BA0: @ 8135BA0
+ push {r4,r5,lr}
+ ldr r2, _08135C1C @ =gSaveBlock2
+ ldr r1, _08135C20 @ =0x00000554
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r5, r0, 31
+ ldr r0, _08135C24 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ beq _08135BBA
+ cmp r0, 0
+ bne _08135BD8
+_08135BBA:
+ lsls r1, r5, 1
+ ldr r3, _08135C28 @ =0x0000055c
+ adds r0, r2, r3
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bhi _08135BD4
+ subs r3, 0x4
+ adds r0, r2, r3
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bls _08135BD8
+_08135BD4:
+ bl sub_8135AC4
+_08135BD8:
+ bl sub_8135CFC
+ ldr r4, _08135C1C @ =gSaveBlock2
+ ldr r0, _08135C2C @ =gBattleOutcome
+ ldrb r1, [r0]
+ ldr r2, _08135C30 @ =0x00000555
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, _08135C24 @ =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ cmp r1, 0x3
+ beq _08135BF8
+ ldr r3, _08135C34 @ =0x00000556
+ adds r0, r4, r3
+ adds r0, r5, r0
+ strb r1, [r0]
+_08135BF8:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0
+ bl VarSet
+ ldr r0, _08135C20 @ =0x00000554
+ adds r2, r4, r0
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x2
+ bl TrySavingData
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135C1C: .4byte gSaveBlock2
+_08135C20: .4byte 0x00000554
+_08135C24: .4byte gSpecialVar_0x8004
+_08135C28: .4byte 0x0000055c
+_08135C2C: .4byte gBattleOutcome
+_08135C30: .4byte 0x00000555
+_08135C34: .4byte 0x00000556
+ thumb_func_end sub_8135BA0
+
+ thumb_func_start sub_8135C38
+sub_8135C38: @ 8135C38
+ push {lr}
+ bl DoSoftReset
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135C38
+
+ thumb_func_start sub_8135C44
+sub_8135C44: @ 8135C44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r3, 0
+ movs r1, 0
+ ldr r2, _08135CBC @ =gSaveBlock2 + 0xA8
+_08135C50:
+ ldm r2!, {r0}
+ adds r3, r0
+ adds r1, 0x1
+ cmp r1, 0x27
+ bls _08135C50
+ ldr r5, _08135CC0 @ =gSaveBlock2
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r5, r1
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08135C70
+ adds r0, r5, 0
+ adds r0, 0xA8
+ bl sub_8135CE8
+_08135C70:
+ movs r4, 0
+ movs r7, 0xA4
+ movs r0, 0xA6
+ lsls r0, 1
+ adds r6, r5, r0
+ mov r8, r5
+_08135C7C:
+ adds r0, r4, 0
+ muls r0, r7
+ movs r3, 0
+ movs r1, 0
+ adds r5, r4, 0x1
+ adds r2, r0, r6
+_08135C88:
+ ldm r2!, {r0}
+ adds r3, r0
+ adds r1, 0x1
+ cmp r1, 0x27
+ bls _08135C88
+ adds r1, r4, 0
+ muls r1, r7
+ movs r0, 0xF6
+ lsls r0, 1
+ add r0, r8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08135CAA
+ adds r0, r1, r6
+ bl sub_8135CE8
+_08135CAA:
+ adds r4, r5, 0
+ cmp r4, 0x4
+ ble _08135C7C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135CBC: .4byte gSaveBlock2 + 0xA8
+_08135CC0: .4byte gSaveBlock2
+ thumb_func_end sub_8135C44
+
+ thumb_func_start sub_8135CC4
+sub_8135CC4: @ 8135CC4
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r2, 0xA0
+ movs r1, 0
+ str r1, [r2]
+ movs r3, 0
+ adds r4, r0, 0
+_08135CD2:
+ ldr r0, [r2]
+ ldm r4!, {r1}
+ adds r0, r1
+ str r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x27
+ bls _08135CD2
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135CC4
+
+ thumb_func_start sub_8135CE8
+sub_8135CE8: @ 8135CE8
+ push {lr}
+ movs r1, 0
+ movs r2, 0
+_08135CEE:
+ stm r0!, {r2}
+ adds r1, 0x1
+ cmp r1, 0x28
+ bls _08135CEE
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135CE8
+
+ thumb_func_start sub_8135CFC
+sub_8135CFC: @ 8135CFC
+ push {r4,lr}
+ ldr r4, _08135D34 @ =gSaveBlock2 + 0x484
+ adds r0, r4, 0
+ bl get_trainer_name
+ ldr r2, _08135D38 @ =gBattleMons
+ adds r0, r2, 0
+ adds r0, 0x58
+ ldrh r1, [r0]
+ subs r0, r4, 0x2
+ strh r1, [r0]
+ ldrh r1, [r2]
+ subs r0, r4, 0x4
+ strh r1, [r0]
+ movs r3, 0
+ adds r4, 0x8
+ adds r2, 0x30
+_08135D1E:
+ adds r0, r3, r4
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x9
+ ble _08135D1E
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135D34: .4byte gSaveBlock2 + 0x484
+_08135D38: .4byte gBattleMons
+ thumb_func_end sub_8135CFC
+
+ thumb_func_start sub_8135D3C
+sub_8135D3C: @ 8135D3C
+ push {lr}
+ lsls r0, 24
+ ldr r3, _08135D74 @ =gSaveBlock2
+ lsrs r0, 23
+ ldr r2, _08135D78 @ =0x0000055c
+ adds r1, r3, r2
+ adds r1, r0, r1
+ ldrh r2, [r1]
+ subs r2, 0x1
+ lsls r1, r2, 3
+ subs r1, r2
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r3, r2
+ adds r0, r3
+ ldr r2, _08135D7C @ =0x0000ffff
+ adds r1, r2
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r0, r1, 16
+ ldr r1, _08135D80 @ =0x0000270f
+ cmp r0, r1
+ bls _08135D6E
+ adds r0, r1, 0
+_08135D6E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08135D74: .4byte gSaveBlock2
+_08135D78: .4byte 0x0000055c
+_08135D7C: .4byte 0x0000ffff
+_08135D80: .4byte 0x0000270f
+ thumb_func_end sub_8135D3C
+
+ thumb_func_start sub_8135D84
+sub_8135D84: @ 8135D84
+ push {r4,r5,lr}
+ ldr r5, _08135DB0 @ =gSaveBlock2
+ ldr r1, _08135DB4 @ =0x00000554
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ lsls r0, 1
+ ldr r2, _08135DB8 @ =0x0000055c
+ adds r1, r5, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x5
+ ble _08135DC0
+ bl Random
+ ldr r4, _08135DBC @ =gUnknown_08405EE6
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x9
+ b _08135DCC
+ .align 2, 0
+_08135DB0: .4byte gSaveBlock2
+_08135DB4: .4byte 0x00000554
+_08135DB8: .4byte 0x0000055c
+_08135DBC: .4byte gUnknown_08405EE6
+_08135DC0:
+ bl Random
+ ldr r4, _08135DE8 @ =gUnknown_08405EDA
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+_08135DCC:
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 15
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r2, 0xAD
+ lsls r2, 3
+ adds r0, r5, r2
+ strh r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135DE8: .4byte gUnknown_08405EDA
+ thumb_func_end sub_8135D84
+
+ thumb_func_start sub_8135DEC
+sub_8135DEC: @ 8135DEC
+ push {r4-r7,lr}
+ ldr r5, _08135E20 @ =gSaveBlock2
+ ldr r1, _08135E24 @ =0x00000554
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r7, r0, 31
+ movs r0, 0xAD
+ lsls r0, 3
+ adds r6, r5, r0
+ ldrh r0, [r6]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _08135E30
+ ldrh r0, [r6]
+ ldr r1, _08135E28 @ =gStringVar1
+ bl CopyItemName
+ ldr r0, _08135E2C @ =gScriptResult
+ strh r4, [r0]
+ b _08135E40
+ .align 2, 0
+_08135E20: .4byte gSaveBlock2
+_08135E24: .4byte 0x00000554
+_08135E28: .4byte gStringVar1
+_08135E2C: .4byte gScriptResult
+_08135E30:
+ ldr r1, _08135E48 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08135E4C @ =0x00000556
+ adds r0, r5, r1
+ adds r0, r7, r0
+ movs r1, 0x6
+ strb r1, [r0]
+_08135E40:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135E48: .4byte gScriptResult
+_08135E4C: .4byte 0x00000556
+ thumb_func_end sub_8135DEC
+
+ thumb_func_start sub_8135E50
+sub_8135E50: @ 8135E50
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r6, _08135ED4 @ =gSaveBlock2
+ ldr r1, _08135ED8 @ =0x00000554
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r0, 0
+ movs r7, 0x44
+ cmp r1, 0
+ beq _08135E6C
+ movs r7, 0x45
+_08135E6C:
+ ldr r4, _08135EDC @ =gScriptResult
+ movs r0, 0
+ strh r0, [r4]
+ adds r0, r1, 0
+ bl sub_8135D3C
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x37
+ bls _08135EBA
+ movs r5, 0
+ ldr r0, _08135EE0 @ =0x00000565
+ adds r0, r6
+ mov r8, r0
+ adds r6, r4, 0
+_08135E8A:
+ mov r1, r8
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, _08135EE4 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _08135EB4
+ movs r0, 0x1
+ strh r0, [r6]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl SetMonData
+_08135EB4:
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08135E8A
+_08135EBA:
+ ldr r0, _08135EDC @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08135EC8
+ movs r0, 0x2A
+ bl IncrementGameStat
+_08135EC8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135ED4: .4byte gSaveBlock2
+_08135ED8: .4byte 0x00000554
+_08135EDC: .4byte gScriptResult
+_08135EE0: .4byte 0x00000565
+_08135EE4: .4byte gPlayerParty
+ thumb_func_end sub_8135E50
+
+ thumb_func_start unref_sub_8135EE8
+unref_sub_8135EE8: @ 8135EE8
+ push {r4-r7,lr}
+ ldr r7, _08135F0C @ =gSaveBlock2 + 0x498
+ ldr r0, _08135F10 @ =0xfffffb68
+ adds r2, r7, r0
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _08135F18
+ ldr r4, _08135F14 @ =gUnknown_08405E7E
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x14
+ b _08135F2A
+ .align 2, 0
+_08135F0C: .4byte gSaveBlock2 + 0x498
+_08135F10: .4byte 0xfffffb68
+_08135F14: .4byte gUnknown_08405E7E
+_08135F18:
+ ldr r4, _08135FA8 @ =gUnknown_08405E60
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x1E
+_08135F2A:
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r0, [r7, 0x1]
+ adds r0, r7, 0
+ adds r0, 0xC
+ ldr r4, _08135FAC @ =gSaveBlock2 + 0xA
+ adds r1, r4, 0
+ bl copy_word_to_mem
+ adds r0, r7, 0x4
+ subs r4, 0xA
+ adds r1, r4, 0
+ bl StringCopy8
+ movs r0, 0x1
+ strh r0, [r7, 0x2]
+ movs r5, 0x7
+ movs r4, 0
+ ldr r0, _08135FB0 @ =gSaveBlock1
+ ldr r1, _08135FB4 @ =0x00002b28
+ adds r6, r0, r1
+ adds r3, r7, 0
+ adds r3, 0x10
+ adds r2, r7, 0
+ adds r2, 0x28
+ adds r1, r7, 0
+ adds r1, 0x1C
+_08135F64:
+ ldrh r0, [r6]
+ strh r0, [r3]
+ strh r5, [r1]
+ adds r0, r5, 0x6
+ strh r0, [r2]
+ adds r5, 0x1
+ adds r6, 0x2
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r1, 0x2
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08135F64
+ movs r4, 0
+_08135F80:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08135FB8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r4
+ adds r1, 0x34
+ adds r1, r7, r1
+ bl sub_803AF78
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08135F80
+ adds r0, r7, 0
+ bl sub_8136088
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135FA8: .4byte gUnknown_08405E60
+_08135FAC: .4byte gSaveBlock2 + 0xA
+_08135FB0: .4byte gSaveBlock1
+_08135FB4: .4byte 0x00002b28
+_08135FB8: .4byte gPlayerParty
+ thumb_func_end unref_sub_8135EE8
+
+ thumb_func_start sub_8135FBC
+sub_8135FBC: @ 8135FBC
+ ldr r1, _08135FCC @ =gTrainerClassToPicIndex
+ ldr r0, _08135FD0 @ =gSaveBlock2
+ ldr r2, _08135FD4 @ =0x00000499
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08135FCC: .4byte gTrainerClassToPicIndex
+_08135FD0: .4byte gSaveBlock2
+_08135FD4: .4byte 0x00000499
+ thumb_func_end sub_8135FBC
+
+ thumb_func_start sub_8135FD8
+sub_8135FD8: @ 8135FD8
+ ldr r1, _08135FE8 @ =gTrainerClassToNameIndex
+ ldr r0, _08135FEC @ =gSaveBlock2
+ ldr r2, _08135FF0 @ =0x00000499
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08135FE8: .4byte gTrainerClassToNameIndex
+_08135FEC: .4byte gSaveBlock2
+_08135FF0: .4byte 0x00000499
+ thumb_func_end sub_8135FD8
+
+ thumb_func_start sub_8135FF4
+sub_8135FF4: @ 8135FF4
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r4, _08136018 @ =gSaveBlock2 + 0x49C
+_08135FFC:
+ adds r0, r3, r2
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x6
+ ble _08135FFC
+ adds r1, r3, r2
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136018: .4byte gSaveBlock2 + 0x49C
+ thumb_func_end sub_8135FF4
+
+ thumb_func_start sub_813601C
+sub_813601C: @ 813601C
+ push {r4,r5,lr}
+ ldr r1, _08136044 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r5, _08136048 @ =gSaveBlock2 + 0x498
+ movs r3, 0
+ movs r2, 0
+ adds r4, r1, 0
+ adds r1, r5, 0
+_0813602E:
+ ldm r1!, {r0}
+ orrs r3, r0
+ adds r2, 0x1
+ cmp r2, 0x2D
+ bls _0813602E
+ cmp r3, 0
+ bne _0813604C
+ movs r0, 0x1
+ strh r0, [r4]
+ b _08136078
+ .align 2, 0
+_08136044: .4byte gScriptResult
+_08136048: .4byte gSaveBlock2 + 0x498
+_0813604C:
+ movs r3, 0
+ movs r2, 0
+ ldr r4, _08136080 @ =gSaveBlock2
+ adds r1, r5, 0
+_08136054:
+ ldm r1!, {r0}
+ adds r3, r0
+ adds r2, 0x1
+ cmp r2, 0x2D
+ bls _08136054
+ movs r1, 0xAA
+ lsls r1, 3
+ adds r0, r4, r1
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08136078
+ subs r1, 0xB8
+ adds r0, r4, r1
+ bl sub_81360AC
+ ldr r1, _08136084 @ =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+_08136078:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136080: .4byte gSaveBlock2
+_08136084: .4byte gScriptResult
+ thumb_func_end sub_813601C
+
+ thumb_func_start sub_8136088
+sub_8136088: @ 8136088
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r2, 0xB8
+ movs r1, 0
+ str r1, [r2]
+ movs r3, 0
+ adds r4, r0, 0
+_08136096:
+ ldr r0, [r2]
+ ldm r4!, {r1}
+ adds r0, r1
+ str r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x2D
+ bls _08136096
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136088
+
+ thumb_func_start sub_81360AC
+sub_81360AC: @ 81360AC
+ push {lr}
+ movs r1, 0
+ movs r2, 0
+_081360B2:
+ stm r0!, {r2}
+ adds r1, 0x1
+ cmp r1, 0x2E
+ bls _081360B2
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81360AC
+
+ thumb_func_start sub_81360C0
+sub_81360C0: @ 81360C0
+ push {lr}
+ ldr r0, _081360CC @ =gSaveBlock2 + 0x4A8
+ bl sub_813545C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081360CC: .4byte gSaveBlock2 + 0x4A8
+ thumb_func_end sub_81360C0
+
+ thumb_func_start sub_81360D0
+sub_81360D0: @ 81360D0
+ push {lr}
+ ldr r0, _081360E4 @ =gBattleOutcome
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081360EC
+ ldr r1, _081360E8 @ =gStringVar4
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _08136102
+ .align 2, 0
+_081360E4: .4byte gBattleOutcome
+_081360E8: .4byte gStringVar4
+_081360EC:
+ cmp r0, 0x1
+ bne _081360FC
+ ldr r0, _081360F8 @ =gSaveBlock2 + 0x4C0
+ bl sub_813545C
+ b _08136102
+ .align 2, 0
+_081360F8: .4byte gSaveBlock2 + 0x4C0
+_081360FC:
+ ldr r0, _08136108 @ =gSaveBlock2 + 0x4B4
+ bl sub_813545C
+_08136102:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136108: .4byte gSaveBlock2 + 0x4B4
+ thumb_func_end sub_81360D0
+
+ thumb_func_start sub_813610C
+sub_813610C: @ 813610C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0813612C @ =gSaveBlock2 + 0x556
+_08136112:
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0813611E
+ bl sub_80BFD20
+_0813611E:
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _08136112
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813612C: .4byte gSaveBlock2 + 0x556
+ thumb_func_end sub_813610C
+
+.ifdef GERMAN
+ thumb_func_start de_sub_81364AC
+de_sub_81364AC: @ 81364AC
+ push {lr}
+ ldr r2, _DE_081364C0 @ =gSaveBlock2
+ ldr r0, _DE_081364C4 @ =0x00000564
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _DE_081364CC
+ ldr r1, _DE_081364C8 @ =0x00000499
+ adds r0, r2, r1
+ b _DE_081364F2
+ .align 2, 0
+_DE_081364C0: .4byte gSaveBlock2
+_DE_081364C4: .4byte 0x00000564
+_DE_081364C8: .4byte 0x00000499
+_DE_081364CC:
+ cmp r0, 0x63
+ bhi _DE_081364E4
+ ldr r2, _DE_081364E0 @ =gBattleTowerTrainers
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ b _DE_081364F2
+ .align 2, 0
+_DE_081364E0: .4byte gBattleTowerTrainers
+_DE_081364E4:
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r0, r1
+ adds r0, r2
+ adds r1, 0xA9
+ adds r0, r1
+_DE_081364F2:
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ thumb_func_end de_sub_81364AC
+
+ thumb_func_start de_sub_81364F8
+de_sub_81364F8: @ 81364F8
+ ldr r0, _DE_08136504 @ =gSaveBlock2
+ ldr r1, _DE_08136508 @ =0x00000499
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_DE_08136504: .4byte gSaveBlock2
+_DE_08136508: .4byte 0x00000499
+ thumb_func_end de_sub_81364F8
+.endif
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/berry_blender.s b/asm/berry_blender.s
index affe536ca..b6ee5f9f3 100644
--- a/asm/berry_blender.s
+++ b/asm/berry_blender.s
@@ -4998,13 +4998,13 @@ _08050AEA:
cmp r0, 0
bne _08050B00
movs r0, 0x22
- bl sav12_xor_increment
+ bl IncrementGameStat
b _08050C82
.align 2, 0
_08050AFC: .4byte gUnknown_03004834
_08050B00:
movs r0, 0x21
- bl sav12_xor_increment
+ bl IncrementGameStat
b _08050C82
_08050B08:
ldr r0, _08050B2C @ =gUnknown_03004854
@@ -5295,13 +5295,13 @@ _08050D44:
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
- ldr r1, _08050D6C @ =gUnknown_3001BB4
+ ldr r1, _08050D6C @ =gSoftResetDisabled
movs r0, 0x1
strb r0, [r1]
b _08050E28
.align 2, 0
_08050D68: .4byte gUnknown_03004854
-_08050D6C: .4byte gUnknown_3001BB4
+_08050D6C: .4byte gSoftResetDisabled
_08050D70:
bl sub_8125E2C
ldr r0, _08050D7C @ =gUnknown_03004854
@@ -5389,13 +5389,13 @@ _08050E06:
str r0, [r1]
cmp r0, 0x5
ble _08050E28
- ldr r1, _08050E24 @ =gUnknown_3001BB4
+ ldr r1, _08050E24 @ =gSoftResetDisabled
movs r0, 0
strb r0, [r1]
movs r0, 0x1
b _08050E2A
.align 2, 0
-_08050E24: .4byte gUnknown_3001BB4
+_08050E24: .4byte gSoftResetDisabled
_08050E28:
movs r0, 0
_08050E2A:
@@ -5484,7 +5484,7 @@ _08050ED8:
adds r0, 0x6F
movs r1, 0x3
strb r1, [r0]
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x17
movs r1, 0x8
movs r2, 0x1C
@@ -5513,7 +5513,7 @@ _08050F18:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x17
movs r1, 0x8
movs r2, 0x1C
@@ -5794,7 +5794,7 @@ _0805116E:
adds r0, 0x6F
movs r1, 0x3
strb r1, [r0]
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x17
movs r1, 0x8
movs r2, 0x1C
@@ -5810,7 +5810,7 @@ _08051190:
ldrb r1, [r0]
adds r1, 0x1
strb r1, [r0]
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x17
movs r1, 0x8
movs r2, 0x1C
diff --git a/asm/bike.s b/asm/bike.s
deleted file mode 100644
index d73fa55dc..000000000
--- a/asm/bike.s
+++ /dev/null
@@ -1,2211 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start MovePlayerOnBike
-MovePlayerOnBike: @ 80E50A8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _080E50CC @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E50D0
- adds r0, r3, 0
- adds r1, r4, 0
- bl MovePlayerOnMachBike
- b _080E50D8
- .align 2, 0
-_080E50CC: .4byte gPlayerAvatar
-_080E50D0:
- adds r0, r3, 0
- adds r1, r4, 0
- bl MovePlayerOnAcroBike
-_080E50D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end MovePlayerOnBike
-
- thumb_func_start MovePlayerOnMachBike
-MovePlayerOnMachBike: @ 80E50E0
- push {r4,lr}
- sub sp, 0x4
- mov r1, sp
- strb r0, [r1]
- ldr r4, _080E510C @ =gUnknown_083DB594
- mov r0, sp
- bl CheckMovementInputMachBike
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- mov r1, sp
- ldrb r1, [r1]
- ldr r2, [r0]
- adds r0, r1, 0
- bl _call_via_r2
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E510C: .4byte gUnknown_083DB594
- thumb_func_end MovePlayerOnMachBike
-
- thumb_func_start CheckMovementInputMachBike
-CheckMovementInputMachBike: @ 80E5110
- push {r4,lr}
- adds r4, r0, 0
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- ldrb r1, [r4]
- cmp r1, 0
- bne _080E5138
- strb r0, [r4]
- ldr r2, _080E5134 @ =gPlayerAvatar
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- bne _080E514C
- strb r1, [r2, 0x2]
- movs r0, 0
- b _080E5160
- .align 2, 0
-_080E5134: .4byte gPlayerAvatar
-_080E5138:
- ldr r2, _080E5154 @ =gPlayerAvatar
- cmp r1, r3
- beq _080E515C
- ldrb r0, [r2, 0x2]
- cmp r0, 0x2
- beq _080E515C
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _080E5158
- strb r3, [r4]
-_080E514C:
- movs r0, 0x2
- strb r0, [r2, 0x2]
- movs r0, 0x3
- b _080E5160
- .align 2, 0
-_080E5154: .4byte gPlayerAvatar
-_080E5158:
- movs r0, 0x1
- b _080E515E
-_080E515C:
- movs r0, 0x2
-_080E515E:
- strb r0, [r2, 0x2]
-_080E5160:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckMovementInputMachBike
-
- thumb_func_start sub_80E5168
-sub_80E5168: @ 80E5168
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl PlayerFaceDirection
- bl sub_80E6024
- pop {r0}
- bx r0
- thumb_func_end sub_80E5168
-
- thumb_func_start sub_80E517C
-sub_80E517C: @ 80E517C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E51AC @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E51B0 @ =gMapObjects
- adds r4, r0, r1
- ldrb r1, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- beq _080E51B4
- adds r0, r5, 0
- bl PlayerTurnInPlace
- bl sub_80E6024
- b _080E51BE
- .align 2, 0
-_080E51AC: .4byte gPlayerAvatar
-_080E51B0: .4byte gMapObjects
-_080E51B4:
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_80E5168
-_080E51BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E517C
-
- thumb_func_start sub_80E51C4
-sub_80E51C4: @ 80E51C4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- ldr r6, _080E51F8 @ =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E51FC @ =gMapObjects
- adds r4, r0, r1
- ldrb r1, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E520A
- ldrb r0, [r6, 0xB]
- cmp r0, 0
- beq _080E5200
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl sub_80E5270
- b _080E5266
- .align 2, 0
-_080E51F8: .4byte gPlayerAvatar
-_080E51FC: .4byte gMapObjects
-_080E5200:
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl sub_80E5168
- b _080E5266
-_080E520A:
- adds r0, r5, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r4, r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E5242
- cmp r4, 0x6
- bne _080E522C
- adds r0, r5, 0
- bl PlayerJumpLedge
- b _080E5266
-_080E522C:
- bl sub_80E6024
- subs r0, r4, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E5266
- adds r0, r5, 0
- bl PlayerOnBikeCollide
- b _080E5266
-_080E5242:
- ldr r1, _080E526C @ =gUnknown_083DB5A4
- ldrb r0, [r6, 0xA]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl _call_via_r1
- ldrb r2, [r6, 0xA]
- lsls r0, r2, 24
- lsrs r1, r0, 24
- lsrs r0, 25
- adds r0, r2, r0
- strb r0, [r6, 0xB]
- cmp r1, 0x1
- bhi _080E5266
- adds r0, r2, 0x1
- strb r0, [r6, 0xA]
-_080E5266:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E526C: .4byte gUnknown_083DB5A4
- thumb_func_end sub_80E51C4
-
- thumb_func_start sub_80E5270
-sub_80E5270: @ 80E5270
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldr r6, _080E52A8 @ =gPlayerAvatar
- ldrb r0, [r6, 0xB]
- cmp r0, 0
- beq _080E5286
- subs r0, 0x1
- strb r0, [r6, 0xB]
- strb r0, [r6, 0xA]
-_080E5286:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E52C2
- cmp r5, 0x6
- bne _080E52AC
- adds r0, r4, 0
- bl PlayerJumpLedge
- b _080E52D2
- .align 2, 0
-_080E52A8: .4byte gPlayerAvatar
-_080E52AC:
- bl sub_80E6024
- subs r0, r5, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E52D2
- adds r0, r4, 0
- bl PlayerOnBikeCollide
- b _080E52D2
-_080E52C2:
- ldr r0, _080E52D8 @ =gUnknown_083DB5A4
- ldrb r1, [r6, 0xA]
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r7, 0
- bl _call_via_r1
-_080E52D2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E52D8: .4byte gUnknown_083DB5A4
- thumb_func_end sub_80E5270
-
- thumb_func_start MovePlayerOnAcroBike
-MovePlayerOnAcroBike: @ 80E52DC
- push {r4,lr}
- sub sp, 0x4
- mov r3, sp
- strb r0, [r3]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080E5310 @ =gUnknown_083DB5B0
- mov r0, sp
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- mov r1, sp
- ldrb r1, [r1]
- ldr r2, [r0]
- adds r0, r1, 0
- bl _call_via_r2
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5310: .4byte gUnknown_083DB5B0
- thumb_func_end MovePlayerOnAcroBike
-
- thumb_func_start CheckMovementInputAcroBike
-CheckMovementInputAcroBike: @ 80E5314
- push {r4,lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080E5338 @ =gUnknown_083DB5E4
- ldr r3, _080E533C @ =gPlayerAvatar
- ldrb r3, [r3, 0x8]
- lsls r3, 2
- adds r3, r4
- ldr r3, [r3]
- bl _call_via_r3
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E5338: .4byte gUnknown_083DB5E4
-_080E533C: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputAcroBike
-
- thumb_func_start CheckMovementInputAcroBikeNormal
-CheckMovementInputAcroBikeNormal: @ 80E5340
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080E5374 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r2, 0xA]
- ldrb r1, [r4]
- cmp r1, 0
- bne _080E5380
- movs r0, 0x2
- ands r0, r6
- cmp r0, 0
- beq _080E5378
- strb r3, [r4]
- strb r1, [r2, 0x2]
- movs r0, 0x2
- strb r0, [r2, 0x8]
- movs r0, 0x3
- b _080E53D4
- .align 2, 0
-_080E5374: .4byte gPlayerAvatar
-_080E5378:
- strb r3, [r4]
- strb r1, [r2, 0x2]
- movs r0, 0
- b _080E53D4
-_080E5380:
- cmp r1, r3
- bne _080E53A6
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _080E539E
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- bne _080E539E
- adds r0, 0x1
- strb r0, [r2, 0xB]
- movs r0, 0x4
- strb r0, [r2, 0x8]
- movs r0, 0xB
- b _080E53D4
-_080E539E:
- ldrb r0, [r4]
- ldr r2, _080E53CC @ =gPlayerAvatar
- cmp r0, r3
- beq _080E53D0
-_080E53A6:
- ldr r0, _080E53CC @ =gPlayerAvatar
- ldrb r1, [r0, 0x2]
- adds r2, r0, 0
- cmp r1, 0x2
- beq _080E53D0
- movs r1, 0
- movs r0, 0x1
- strb r0, [r2, 0x8]
- ldrb r0, [r4]
- strb r0, [r2, 0x9]
- strb r1, [r2, 0x2]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- b _080E53D4
- .align 2, 0
-_080E53CC: .4byte gPlayerAvatar
-_080E53D0:
- movs r0, 0x2
- strb r0, [r2, 0x2]
-_080E53D4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CheckMovementInputAcroBikeNormal
-
- thumb_func_start CheckMovementInputAcroBikeChangingDirection
-CheckMovementInputAcroBikeChangingDirection: @ 80E53DC
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080E5404 @ =gPlayerAvatar
- ldrb r0, [r4, 0x9]
- strb r0, [r5]
- ldrb r0, [r4, 0xA]
- adds r0, 0x1
- strb r0, [r4, 0xA]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bls _080E5408
- movs r0, 0x1
- strb r0, [r4, 0x2]
- movs r0, 0
- strb r0, [r4, 0x8]
- bl sub_80E6024
- movs r0, 0x1
- b _080E544E
- .align 2, 0
-_080E5404: .4byte gPlayerAvatar
-_080E5408:
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_80E5C2C
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _080E544A
- bl sub_80E6024
- movs r0, 0x1
- strb r0, [r4, 0xB]
- adds r0, r6, 0
- bl GetOppositeDirection
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _080E543E
- movs r0, 0x6
- strb r0, [r4, 0x8]
- movs r0, 0x9
- b _080E544E
-_080E543E:
- movs r0, 0x2
- strb r0, [r4, 0x2]
- movs r0, 0x5
- strb r0, [r4, 0x8]
- movs r0, 0x8
- b _080E544E
-_080E544A:
- strb r6, [r5]
- movs r0, 0
-_080E544E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CheckMovementInputAcroBikeChangingDirection
-
- thumb_func_start CheckMovementInputAcroBikeStandingWheelie
-CheckMovementInputAcroBikeStandingWheelie: @ 80E5454
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r4, r2, 16
- lsrs r4, 16
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080E54A0 @ =gPlayerAvatar
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E54A4 @ =gMapObjects
- adds r1, r0, r1
- movs r0, 0
- strb r0, [r5, 0x2]
- movs r0, 0x2
- ands r4, r0
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0
- bne _080E54A8
- strb r4, [r5, 0xA]
- ldrb r0, [r1, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080E54AE
- strb r6, [r7]
- strb r0, [r5, 0x8]
- bl sub_80E6024
- movs r0, 0x4
- b _080E54EC
- .align 2, 0
-_080E54A0: .4byte gPlayerAvatar
-_080E54A4: .4byte gMapObjects
-_080E54A8:
- ldrb r0, [r5, 0xA]
- adds r0, 0x1
- strb r0, [r5, 0xA]
-_080E54AE:
- ldr r1, _080E54C4 @ =gPlayerAvatar
- ldrb r0, [r1, 0xA]
- cmp r0, 0x27
- bls _080E54C8
- strb r6, [r7]
- movs r0, 0x3
- strb r0, [r1, 0x8]
- bl sub_80E6024
- movs r0, 0x6
- b _080E54EC
- .align 2, 0
-_080E54C4: .4byte gPlayerAvatar
-_080E54C8:
- ldrb r0, [r7]
- cmp r0, r6
- bne _080E54DE
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0x4
- strb r0, [r1, 0x8]
- bl sub_80E6024
- movs r0, 0xA
- b _080E54EC
-_080E54DE:
- cmp r0, 0
- beq _080E54E8
- movs r0, 0x1
- strb r0, [r1, 0x2]
- b _080E54EA
-_080E54E8:
- strb r6, [r7]
-_080E54EA:
- movs r0, 0x5
-_080E54EC:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckMovementInputAcroBikeStandingWheelie
-
- thumb_func_start CheckMovementInputAcroBikeBunnyHop
-CheckMovementInputAcroBikeBunnyHop: @ 80E54F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- ldr r4, _080E5554 @ =gPlayerAvatar
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5558 @ =gMapObjects
- adds r7, r0, r1
- movs r0, 0x2
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _080E5566
- bl sub_80E6024
- ldrb r0, [r7, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080E555C
- movs r0, 0x2
- strb r0, [r4, 0x8]
- adds r0, r6, 0
- mov r1, r9
- mov r2, r8
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- b _080E558A
- .align 2, 0
-_080E5554: .4byte gPlayerAvatar
-_080E5558: .4byte gMapObjects
-_080E555C:
- strb r5, [r6]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x8]
- movs r0, 0x4
- b _080E558A
-_080E5566:
- ldrb r0, [r6]
- cmp r0, 0
- bne _080E5570
- strb r5, [r6]
- b _080E557C
-_080E5570:
- cmp r0, r2
- beq _080E5582
- ldrb r0, [r4, 0x2]
- cmp r0, 0x2
- beq _080E5582
- movs r0, 0x1
-_080E557C:
- strb r0, [r4, 0x2]
- movs r0, 0x6
- b _080E558A
-_080E5582:
- ldr r1, _080E5598 @ =gPlayerAvatar
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0x7
-_080E558A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E5598: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputAcroBikeBunnyHop
-
- thumb_func_start CheckMovementInputAcroBikeMovingWheelie
-CheckMovementInputAcroBikeMovingWheelie: @ 80E559C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- ldr r4, _080E55F8 @ =gPlayerAvatar
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E55FC @ =gMapObjects
- adds r7, r0, r1
- movs r0, 0x2
- mov r9, r0
- movs r0, 0x2
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _080E5634
- bl sub_80E6024
- ldrb r0, [r7, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080E5620
- strb r1, [r4, 0x8]
- ldrb r0, [r6]
- cmp r0, 0
- bne _080E5600
- strb r5, [r6]
- b _080E560A
- .align 2, 0
-_080E55F8: .4byte gPlayerAvatar
-_080E55FC: .4byte gMapObjects
-_080E5600:
- cmp r0, r5
- beq _080E5610
- ldrb r0, [r4, 0x2]
- cmp r0, 0x2
- beq _080E5610
-_080E560A:
- strb r1, [r4, 0x2]
- movs r0, 0x4
- b _080E5664
-_080E5610:
- ldr r1, _080E561C @ =gPlayerAvatar
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xC
- b _080E5664
- .align 2, 0
-_080E561C: .4byte gPlayerAvatar
-_080E5620:
- mov r0, r9
- strb r0, [r4, 0x8]
- adds r0, r6, 0
- mov r1, r10
- mov r2, r8
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- b _080E5664
-_080E5634:
- ldrb r0, [r6]
- cmp r0, 0
- bne _080E564A
- strb r5, [r6]
- mov r1, r9
- strb r1, [r4, 0x8]
- strb r0, [r4, 0x2]
- bl sub_80E6024
- movs r0, 0x5
- b _080E5664
-_080E564A:
- cmp r2, r0
- beq _080E565C
- ldrb r0, [r4, 0x2]
- cmp r0, 0x2
- beq _080E565C
- movs r0, 0
- strb r0, [r4, 0x2]
- movs r0, 0x5
- b _080E5664
-_080E565C:
- ldr r1, _080E5674 @ =gPlayerAvatar
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xA
-_080E5664:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E5674: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputAcroBikeMovingWheelie
-
- thumb_func_start CheckMovementInputAcroBikeUnknownMode5
-CheckMovementInputAcroBikeUnknownMode5: @ 80E5678
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r6, _080E56CC @ =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E56D0 @ =gMapObjects
- adds r0, r1
- ldrb r2, [r0, 0x1]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x1]
- ldrb r1, [r0, 0x18]
- lsls r1, 28
- lsrs r1, 28
- bl FieldObjectSetDirection
- movs r0, 0
- strb r0, [r6, 0x8]
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080E56CC: .4byte gPlayerAvatar
-_080E56D0: .4byte gMapObjects
- thumb_func_end CheckMovementInputAcroBikeUnknownMode5
-
- thumb_func_start CheckMovementInputAcroBikeUnknownMode6
-CheckMovementInputAcroBikeUnknownMode6: @ 80E56D4
- push {r4,lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080E56F4 @ =gPlayerAvatar
- movs r3, 0
- strb r3, [r4, 0x8]
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E56F4: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputAcroBikeUnknownMode6
-
- thumb_func_start sub_80E56F8
-sub_80E56F8: @ 80E56F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl PlayerFaceDirection
- pop {r0}
- bx r0
- thumb_func_end sub_80E56F8
-
- thumb_func_start sub_80E5708
-sub_80E5708: @ 80E5708
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E573C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5740 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E572E
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E572E:
- adds r0, r4, 0
- bl PlayerFaceDirection
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E573C: .4byte gPlayerAvatar
-_080E5740: .4byte gMapObjects
- thumb_func_end sub_80E5708
-
- thumb_func_start sub_80E5744
-sub_80E5744: @ 80E5744
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r0, _080E5774 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5778 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E577C
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_80E56F8
- b _080E57B6
- .align 2, 0
-_080E5774: .4byte gPlayerAvatar
-_080E5778: .4byte gMapObjects
-_080E577C:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E57B0
- cmp r1, 0x6
- bne _080E579E
- adds r0, r4, 0
- bl PlayerJumpLedge
- b _080E57B6
-_080E579E:
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E57B6
- adds r0, r4, 0
- bl PlayerOnBikeCollide
- b _080E57B6
-_080E57B0:
- adds r0, r6, 0
- bl npc_use_some_d2s
-_080E57B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E5744
-
- thumb_func_start sub_80E57BC
-sub_80E57BC: @ 80E57BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E57F0 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E57F4 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E57E2
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E57E2:
- adds r0, r4, 0
- bl sub_805951C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E57F0: .4byte gPlayerAvatar
-_080E57F4: .4byte gMapObjects
- thumb_func_end sub_80E57BC
-
- thumb_func_start sub_80E57F8
-sub_80E57F8: @ 80E57F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E582C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5830 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E581E
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E581E:
- adds r0, r4, 0
- bl sub_8059534
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E582C: .4byte gPlayerAvatar
-_080E5830: .4byte gMapObjects
- thumb_func_end sub_80E57F8
-
- thumb_func_start sub_80E5834
-sub_80E5834: @ 80E5834
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E5868 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E586C @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E585A
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E585A:
- adds r0, r4, 0
- bl sub_8059504
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5868: .4byte gPlayerAvatar
-_080E586C: .4byte gMapObjects
- thumb_func_end sub_80E5834
-
- thumb_func_start sub_80E5870
-sub_80E5870: @ 80E5870
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E58A4 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E58A8 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E5896
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E5896:
- adds r0, r4, 0
- bl sub_805954C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E58A4: .4byte gPlayerAvatar
-_080E58A8: .4byte gMapObjects
- thumb_func_end sub_80E5870
-
- thumb_func_start sub_80E58AC
-sub_80E58AC: @ 80E58AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E58D8 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E58DC @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E58E0
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_80E5870
- b _080E591A
- .align 2, 0
-_080E58D8: .4byte gPlayerAvatar
-_080E58DC: .4byte gMapObjects
-_080E58E0:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080E5914
- cmp r1, 0x9
- beq _080E5914
- cmp r1, 0x6
- bne _080E58FE
- adds r0, r4, 0
- bl sub_8059594
- b _080E591A
-_080E58FE:
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E591A
- cmp r1, 0xB
- bhi _080E5914
- adds r0, r4, 0
- bl sub_80E5870
- b _080E591A
-_080E5914:
- adds r0, r4, 0
- bl sub_8059570
-_080E591A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E58AC
-
- thumb_func_start sub_80E5920
-sub_80E5920: @ 80E5920
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- beq _080E5954
- cmp r0, 0x7
- beq _080E5980
- cmp r0, 0x9
- bls _080E594C
- adds r0, r1, 0
- adds r1, r5, 0
- bl sub_80E5EC0
- lsls r0, 24
- cmp r0, 0
- bne _080E5954
-_080E594C:
- adds r0, r5, 0
- bl sub_80E5708
- b _080E5980
-_080E5954:
- ldr r0, _080E5988 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080E598C @ =gMapObjects
- adds r4, r0
- movs r0, 0x22
- bl PlaySE
- ldrb r0, [r4, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- bl sub_80608A4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
-_080E5980:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5988: .4byte gPlayerAvatar
-_080E598C: .4byte gMapObjects
- thumb_func_end sub_80E5920
-
- thumb_func_start sub_80E5990
-sub_80E5990: @ 80E5990
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80595B8
- pop {r0}
- bx r0
- thumb_func_end sub_80E5990
-
- thumb_func_start sub_80E59A0
-sub_80E59A0: @ 80E59A0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r7, _080E59D0 @ =gPlayerAvatar
- ldrb r1, [r7, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E59D4 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E59D8
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_8059504
- b _080E5A28
- .align 2, 0
-_080E59D0: .4byte gPlayerAvatar
-_080E59D4: .4byte gMapObjects
-_080E59D8:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E5A1E
- cmp r1, 0x6
- bne _080E59FA
- adds r0, r4, 0
- bl sub_8059594
- b _080E5A28
-_080E59FA:
- cmp r1, 0x9
- beq _080E5A0E
- cmp r1, 0x4
- bhi _080E5A28
- ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- cmp r0, 0
- beq _080E5A16
-_080E5A0E:
- adds r0, r4, 0
- bl sub_8059504
- b _080E5A28
-_080E5A16:
- adds r0, r4, 0
- bl sub_80595DC
- b _080E5A28
-_080E5A1E:
- adds r0, r6, 0
- bl sub_8059618
- movs r0, 0x2
- strb r0, [r7, 0x2]
-_080E5A28:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E59A0
-
- thumb_func_start sub_80E5A30
-sub_80E5A30: @ 80E5A30
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r7, _080E5A60 @ =gPlayerAvatar
- ldrb r1, [r7, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5A64 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E5A68
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_805951C
- b _080E5AB8
- .align 2, 0
-_080E5A60: .4byte gPlayerAvatar
-_080E5A64: .4byte gMapObjects
-_080E5A68:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E5AAE
- cmp r1, 0x6
- bne _080E5A8A
- adds r0, r4, 0
- bl sub_8059594
- b _080E5AB8
-_080E5A8A:
- cmp r1, 0x9
- beq _080E5A9E
- cmp r1, 0x4
- bhi _080E5AB8
- ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- cmp r0, 0
- beq _080E5AA6
-_080E5A9E:
- adds r0, r4, 0
- bl sub_8059504
- b _080E5AB8
-_080E5AA6:
- adds r0, r4, 0
- bl sub_80595DC
- b _080E5AB8
-_080E5AAE:
- adds r0, r6, 0
- bl sub_8059600
- movs r0, 0x2
- strb r0, [r7, 0x2]
-_080E5AB8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E5A30
-
- thumb_func_start sub_80E5AC0
-sub_80E5AC0: @ 80E5AC0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r0, _080E5AF0 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5AF4 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E5AF8
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_8059534
- b _080E5B32
- .align 2, 0
-_080E5AF0: .4byte gPlayerAvatar
-_080E5AF4: .4byte gMapObjects
-_080E5AF8:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E5B2C
- cmp r1, 0x6
- bne _080E5B1A
- adds r0, r4, 0
- bl PlayerJumpLedge
- b _080E5B32
-_080E5B1A:
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E5B32
- adds r0, r4, 0
- bl sub_8059534
- b _080E5B32
-_080E5B2C:
- adds r0, r6, 0
- bl sub_8059630
-_080E5B32:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E5AC0
-
- thumb_func_start sub_80E5B38
-sub_80E5B38: @ 80E5B38
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r2, r1, 16
- ldr r0, _080E5B5C @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E5B56
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_80E5B60
-_080E5B56:
- pop {r0}
- bx r0
- .align 2, 0
-_080E5B5C: .4byte gPlayerAvatar
- thumb_func_end sub_80E5B38
-
- thumb_func_start sub_80E5B60
-sub_80E5B60: @ 80E5B60
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r5, r1, 16
- adds r0, r5, 0
- bl sub_80E5CF4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r4, _080E5B88 @ =gPlayerAvatar
- ldr r0, [r4, 0xC]
- movs r1, 0xF
- ands r0, r1
- cmp r2, r0
- bne _080E5B8C
- ldrb r0, [r4, 0x14]
- cmp r0, 0xFE
- bhi _080E5B96
- adds r0, 0x1
- strb r0, [r4, 0x14]
- b _080E5B96
- .align 2, 0
-_080E5B88: .4byte gPlayerAvatar
-_080E5B8C:
- adds r0, r2, 0
- bl sub_80E5C7C
- movs r0, 0
- strb r0, [r4, 0xB]
-_080E5B96:
- movs r0, 0xF
- adds r2, r5, 0
- ands r2, r0
- ldr r4, _080E5BB4 @ =gPlayerAvatar
- ldr r0, [r4, 0x10]
- movs r1, 0xF
- ands r0, r1
- cmp r2, r0
- bne _080E5BB8
- ldrb r0, [r4, 0x1C]
- cmp r0, 0xFE
- bhi _080E5BC2
- adds r0, 0x1
- strb r0, [r4, 0x1C]
- b _080E5BC2
- .align 2, 0
-_080E5BB4: .4byte gPlayerAvatar
-_080E5BB8:
- adds r0, r2, 0
- bl sub_80E5CB8
- movs r0, 0
- strb r0, [r4, 0xB]
-_080E5BC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E5B60
-
- thumb_func_start sub_80E5BC8
-sub_80E5BC8: @ 80E5BC8
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- movs r2, 0
- ldrb r0, [r3]
- cmp r0, 0
- beq _080E5BF2
- ldr r5, _080E5C0C @ =gUnknown_0202E86C
-_080E5BD8:
- adds r0, r2, r5
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bhi _080E5C08
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E5BD8
-_080E5BF2:
- movs r2, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _080E5C22
- ldr r3, _080E5C10 @ =gUnknown_0202E874
-_080E5BFC:
- adds r0, r2, r3
- adds r1, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080E5C14
-_080E5C08:
- movs r0, 0
- b _080E5C24
- .align 2, 0
-_080E5C0C: .4byte gUnknown_0202E86C
-_080E5C10: .4byte gUnknown_0202E874
-_080E5C14:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E5BFC
-_080E5C22:
- movs r0, 0x1
-_080E5C24:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5BC8
-
- thumb_func_start sub_80E5C2C
-sub_80E5C2C: @ 80E5C2C
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
-_080E5C32:
- ldr r0, _080E5C64 @ =gUnknown_083DB608
- adds r4, r5, r0
- ldr r0, _080E5C68 @ =gPlayerAvatar
- ldr r1, [r0, 0xC]
- ldr r2, [r0, 0x10]
- ldr r0, [r4, 0x8]
- ands r1, r0
- ldr r0, [r4, 0xC]
- ands r2, r0
- ldr r0, [r4]
- cmp r1, r0
- bne _080E5C6C
- ldr r0, [r4, 0x4]
- cmp r2, r0
- bne _080E5C6C
- ldr r0, [r4, 0x10]
- ldr r1, [r4, 0x14]
- bl sub_80E5BC8
- lsls r0, 24
- cmp r0, 0
- beq _080E5C6C
- ldrb r0, [r4, 0x18]
- b _080E5C76
- .align 2, 0
-_080E5C64: .4byte gUnknown_083DB608
-_080E5C68: .4byte gPlayerAvatar
-_080E5C6C:
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- bls _080E5C32
- movs r0, 0
-_080E5C76:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5C2C
-
- thumb_func_start sub_80E5C7C
-sub_80E5C7C: @ 80E5C7C
- push {r4,lr}
- lsls r0, 24
- ldr r3, _080E5CB4 @ =gPlayerAvatar
- ldr r2, [r3, 0xC]
- lsls r2, 4
- movs r1, 0xF0
- lsls r1, 20
- ands r1, r0
- lsrs r1, 24
- orrs r2, r1
- str r2, [r3, 0xC]
- movs r1, 0x7
- adds r4, r3, 0
- adds r3, 0x14
-_080E5C98:
- adds r2, r1, r3
- subs r1, 0x1
- adds r0, r1, r3
- ldrb r0, [r0]
- strb r0, [r2]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- bne _080E5C98
- movs r0, 0x1
- strb r0, [r4, 0x14]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5CB4: .4byte gPlayerAvatar
- thumb_func_end sub_80E5C7C
-
- thumb_func_start sub_80E5CB8
-sub_80E5CB8: @ 80E5CB8
- push {r4,lr}
- lsls r0, 24
- ldr r3, _080E5CF0 @ =gPlayerAvatar
- ldr r2, [r3, 0x10]
- lsls r2, 4
- movs r1, 0xF0
- lsls r1, 20
- ands r1, r0
- lsrs r1, 24
- orrs r2, r1
- str r2, [r3, 0x10]
- movs r1, 0x7
- adds r4, r3, 0
- adds r3, 0x1C
-_080E5CD4:
- adds r2, r1, r3
- subs r1, 0x1
- adds r0, r1, r3
- ldrb r0, [r0]
- strb r0, [r2]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- bne _080E5CD4
- movs r0, 0x1
- strb r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5CF0: .4byte gPlayerAvatar
- thumb_func_end sub_80E5CB8
-
- thumb_func_start sub_80E5CF4
-sub_80E5CF4: @ 80E5CF4
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r1, 0
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080E5D08
- movs r0, 0x2
- b _080E5D2E
-_080E5D08:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E5D14
- movs r0, 0x1
- b _080E5D2E
-_080E5D14:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080E5D20
- movs r0, 0x3
- b _080E5D2E
-_080E5D20:
- movs r0, 0x10
- ands r2, r0
- cmp r2, 0
- bne _080E5D2C
- movs r0, 0
- b _080E5D2E
-_080E5D2C:
- movs r0, 0x4
-_080E5D2E:
- pop {r1}
- bx r1
- thumb_func_end sub_80E5CF4
-
- thumb_func_start sub_80E5D34
-sub_80E5D34: @ 80E5D34
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _080E5D98 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080E5D9C @ =gMapObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- bl MoveCoords
- add r0, sp, 0x4
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- add r1, sp, 0x4
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- str r0, [sp]
- adds r0, r4, 0
- adds r3, r6, 0
- bl sub_80E5DA0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080E5D98: .4byte gPlayerAvatar
-_080E5D9C: .4byte gMapObjects
- thumb_func_end sub_80E5D34
-
- thumb_func_start sub_80E5DA0
-sub_80E5DA0: @ 80E5DA0
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, [sp, 0x10]
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- adds r5, r4, 0
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- str r5, [sp]
- bl CheckForFieldObjectCollision
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bhi _080E5DE0
- cmp r4, 0
- bne _080E5DDC
- adds r0, r5, 0
- bl IsRunningDisallowedByMetatile
- lsls r0, 24
- cmp r0, 0
- beq _080E5DD8
- movs r4, 0x2
-_080E5DD8:
- cmp r4, 0
- beq _080E5DE0
-_080E5DDC:
- bl sub_80E5E4C
-_080E5DE0:
- adds r0, r4, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5DA0
-
- thumb_func_start sub_80E5DEC
-sub_80E5DEC: @ 80E5DEC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl IsRunningDisallowedByMetatile
- lsls r0, 24
- cmp r0, 0
- bne _080E5E04
- ldr r0, _080E5E08 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x8
- bne _080E5E0C
-_080E5E04:
- movs r0, 0x1
- b _080E5E0E
- .align 2, 0
-_080E5E08: .4byte gMapHeader
-_080E5E0C:
- movs r0, 0
-_080E5E0E:
- pop {r1}
- bx r1
- thumb_func_end sub_80E5DEC
-
- thumb_func_start IsRunningDisallowedByMetatile
-IsRunningDisallowedByMetatile: @ 80E5E14
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsRunningDisallowed
- lsls r0, 24
- cmp r0, 0
- bne _080E5E3E
- adds r0, r4, 0
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- cmp r0, 0
- beq _080E5E42
- bl PlayerGetZCoord
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _080E5E42
-_080E5E3E:
- movs r0, 0x1
- b _080E5E44
-_080E5E42:
- movs r0, 0
-_080E5E44:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end IsRunningDisallowedByMetatile
-
- thumb_func_start sub_80E5E4C
-sub_80E5E4C: @ 80E5E4C
- push {lr}
- ldr r0, _080E5E68 @ =gUnknown_02039250
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E5E62
- ldr r1, _080E5E6C @ =gUnknown_02039251
- ldrb r0, [r1]
- cmp r0, 0x63
- bhi _080E5E62
- adds r0, 0x1
- strb r0, [r1]
-_080E5E62:
- pop {r0}
- bx r0
- .align 2, 0
-_080E5E68: .4byte gUnknown_02039250
-_080E5E6C: .4byte gUnknown_02039251
- thumb_func_end sub_80E5E4C
-
- thumb_func_start sub_80E5E70
-sub_80E5E70: @ 80E5E70
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- movs r1, 0xFD
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080E5E9A
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedVerticalRail
- lsls r0, 24
- cmp r0, 0
- bne _080E5EB2
- adds r0, r4, 0
- bl MetatileBehavior_IsVerticalRail
- b _080E5EAC
-_080E5E9A:
- adds r0, r5, 0
- bl MetatileBehavior_IsIsolatedHorizontalRail
- lsls r0, 24
- cmp r0, 0
- bne _080E5EB2
- adds r0, r5, 0
- bl MetatileBehavior_IsHorizontalRail
-_080E5EAC:
- lsls r0, 24
- cmp r0, 0
- beq _080E5EB6
-_080E5EB2:
- movs r0, 0
- b _080E5EB8
-_080E5EB6:
- movs r0, 0x1
-_080E5EB8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5E70
-
- thumb_func_start sub_80E5EC0
-sub_80E5EC0: @ 80E5EC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- movs r3, 0xFF
- lsls r3, 24
- adds r1, r3
- lsrs r1, 24
- cmp r1, 0x1
- bhi _080E5EE0
- cmp r0, 0xA
- beq _080E5EE8
- cmp r0, 0xC
- bne _080E5EEC
- b _080E5EE8
-_080E5EE0:
- cmp r2, 0xB
- beq _080E5EE8
- cmp r2, 0xD
- bne _080E5EEC
-_080E5EE8:
- movs r0, 0
- b _080E5EEE
-_080E5EEC:
- movs r0, 0x1
-_080E5EEE:
- pop {r1}
- bx r1
- thumb_func_end sub_80E5EC0
-
- thumb_func_start sub_80E5EF4
-sub_80E5EF4: @ 80E5EF4
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080E5F30 @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- bne _080E5F34
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl IsRunningDisallowedByMetatile
- lsls r0, 24
- cmp r0, 0
- bne _080E5F34
- movs r0, 0
- b _080E5F36
- .align 2, 0
-_080E5F30: .4byte gPlayerAvatar
-_080E5F34:
- movs r0, 0x1
-_080E5F36:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5EF4
-
- thumb_func_start player_should_look_direction_be_enforced_upon_movement
-player_should_look_direction_be_enforced_upon_movement: @ 80E5F40
- push {lr}
- movs r0, 0x4
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _080E5F74
- ldr r2, _080E5F6C @ =gMapObjects
- ldr r0, _080E5F70 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- cmp r0, 0
- beq _080E5F74
- movs r0, 0
- b _080E5F76
- .align 2, 0
-_080E5F6C: .4byte gMapObjects
-_080E5F70: .4byte gPlayerAvatar
-_080E5F74:
- movs r0, 0x1
-_080E5F76:
- pop {r1}
- bx r1
- thumb_func_end player_should_look_direction_be_enforced_upon_movement
-
- thumb_func_start GetOnOffBike
-GetOnOffBike: @ 80E5F7C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080E5FA4 @ =gUnknown_0202E854
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080E5FA8 @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _080E5FAC
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- bl sav1_reset_battle_music_maybe
- bl sub_8053E90
- b _080E5FC0
- .align 2, 0
-_080E5FA4: .4byte gUnknown_0202E854
-_080E5FA8: .4byte gPlayerAvatar
-_080E5FAC:
- adds r0, r2, 0
- bl SetPlayerAvatarTransitionFlags
- ldr r4, _080E5FC8 @ =0x00000193
- adds r0, r4, 0
- bl sav1_set_battle_music_maybe
- adds r0, r4, 0
- bl sub_8053FB0
-_080E5FC0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5FC8: .4byte 0x00000193
- thumb_func_end GetOnOffBike
-
- thumb_func_start sub_80E5FCC
-sub_80E5FCC: @ 80E5FCC
- push {lr}
- ldr r2, _080E6008 @ =gPlayerAvatar
- movs r3, 0
- strb r3, [r2, 0x8]
- strb r3, [r2, 0x9]
- strb r3, [r2, 0xA]
- strb r3, [r2, 0xB]
- str r0, [r2, 0xC]
- str r1, [r2, 0x10]
- movs r1, 0
- adds r2, 0x14
-_080E5FE2:
- adds r0, r1, r2
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _080E5FE2
- movs r1, 0
- ldr r3, _080E600C @ =gUnknown_0202E874
- movs r2, 0
-_080E5FF6:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _080E5FF6
- pop {r0}
- bx r0
- .align 2, 0
-_080E6008: .4byte gPlayerAvatar
-_080E600C: .4byte gUnknown_0202E874
- thumb_func_end sub_80E5FCC
-
- thumb_func_start sub_80E6010
-sub_80E6010: @ 80E6010
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E6020 @ =gPlayerAvatar
- strb r0, [r2, 0xA]
- lsrs r1, r0, 1
- adds r0, r1
- strb r0, [r2, 0xB]
- bx lr
- .align 2, 0
-_080E6020: .4byte gPlayerAvatar
- thumb_func_end sub_80E6010
-
- thumb_func_start sub_80E6024
-sub_80E6024: @ 80E6024
- ldr r1, _080E6030 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0xA]
- strb r0, [r1, 0xB]
- bx lr
- .align 2, 0
-_080E6030: .4byte gPlayerAvatar
- thumb_func_end sub_80E6024
-
- thumb_func_start sub_80E6034
-sub_80E6034: @ 80E6034
- push {lr}
- sub sp, 0x8
- ldr r1, _080E605C @ =gUnknown_083DB600
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- ldr r2, _080E6060 @ =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E6064
- ldrb r0, [r2, 0xA]
- lsls r0, 1
- add r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- b _080E607E
- .align 2, 0
-_080E605C: .4byte gUnknown_083DB600
-_080E6060: .4byte gPlayerAvatar
-_080E6064:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E6070
- movs r0, 0x3
- b _080E607E
-_080E6070:
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _080E607C
- movs r0, 0x1
- b _080E607E
-_080E607C:
- movs r0, 0x2
-_080E607E:
- add sp, 0x8
- pop {r1}
- bx r1
- thumb_func_end sub_80E6034
-
- thumb_func_start sub_80E6084
-sub_80E6084: @ 80E6084
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _080E60D4 @ =gPlayerAvatar
- ldrb r1, [r5]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E60CC
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- cmp r0, 0
- beq _080E60CC
- movs r0, 0x2
- strb r0, [r5, 0x8]
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_8059C94
-_080E60CC:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E60D4: .4byte gPlayerAvatar
- thumb_func_end sub_80E6084
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cable_car.s b/asm/cable_car.s
index 47afb097f..e4d989844 100644
--- a/asm/cable_car.s
+++ b/asm/cable_car.s
@@ -742,7 +742,7 @@ _081237E0:
str r3, [r2, 0x8]
ldr r0, [r2, 0x8]
bl warp_in
- ldr r0, _08123870 @ =gUnknown_0300485C
+ ldr r0, _08123870 @ =gFieldCallback
str r4, [r0]
ldr r0, _08123874 @ =CB2_LoadMap
bl SetMainCallback2
@@ -760,7 +760,7 @@ _08123860: .4byte 0x040000d4
_08123864: .4byte 0x85000400
_08123868: .4byte gUnknown_02039274
_0812386C: .4byte 0x81000800
-_08123870: .4byte gUnknown_0300485C
+_08123870: .4byte gFieldCallback
_08123874: .4byte CB2_LoadMap
thumb_func_end sub_8123740
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 2a45d386b..7e5d19c24 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -464,413 +464,15 @@ _08083034: .4byte gTasks
_08083038: .4byte sub_808303C
thumb_func_end sub_8082FEC
- thumb_func_start sub_808303C
-sub_808303C: @ 808303C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r8, r0
- ldr r0, _080830D0 @ =gTasks + 0x8
- mov r9, r0
- mov r7, r8
- add r7, r9
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _080830C2
- adds r0, r4, 0
- bl sub_8082EB8
- cmp r0, 0x1
- beq _080830C2
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _080830C2
- adds r6, r5, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8082D60
- ldr r0, _080830D4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080830C2
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r5, r0
- blt _080830C2
- adds r0, r6, 0
- bl sub_80081C8
- bl sub_8082D4C
- ldr r0, _080830D8 @ =gStringVar1
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r0, _080830DC @ =gUnknown_081A4975
- bl ShowFieldAutoScrollMessage
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, _080830E0 @ =sub_80830E4
- str r1, [r0]
-_080830C2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080830D0: .4byte gTasks + 0x8
-_080830D4: .4byte gMain
-_080830D8: .4byte gStringVar1
-_080830DC: .4byte gUnknown_081A4975
-_080830E0: .4byte sub_80830E4
- thumb_func_end sub_808303C
+.section .text_80830E4
+
+
+
- thumb_func_start sub_80830E4
-sub_80830E4: @ 80830E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r5, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _08083178
- adds r0, r5, 0
- bl sub_8082EB8
- cmp r0, 0x1
- beq _08083178
- adds r0, r5, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _08083178
- bl GetFieldMessageBoxMode
- lsls r0, 24
- cmp r0, 0
- bne _08083178
- bl sub_800820C
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _08083132
- ldr r0, _08083148 @ =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08083158
-_08083132:
- ldr r0, _0808314C @ =gUnknown_081A4932
- bl ShowFieldAutoScrollMessage
- ldr r1, _08083150 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08083154 @ =sub_8082FEC
- str r1, [r0]
- b _08083178
- .align 2, 0
-_08083148: .4byte gMain
-_0808314C: .4byte gUnknown_081A4932
-_08083150: .4byte gTasks
-_08083154: .4byte sub_8082FEC
-_08083158:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08083178
- movs r0, 0x5
- bl PlaySE
- bl sub_8007F4C
- ldr r0, _08083180 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08083184 @ =sub_8083188
- str r0, [r1]
-_08083178:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08083180: .4byte gTasks
-_08083184: .4byte sub_8083188
- thumb_func_end sub_80830E4
- thumb_func_start sub_8083188
-sub_8083188: @ 8083188
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080831CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrb r7, [r5, 0xA]
- ldrb r6, [r5, 0xC]
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _080831EA
- adds r0, r4, 0
- bl sub_8083444
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080831EA
- bl GetLinkPlayerCount_2
- adds r4, r0, 0
- bl sub_800820C
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080831D4
- ldr r0, _080831D0 @ =sub_8083418
- b _080831E8
- .align 2, 0
-_080831CC: .4byte gTasks
-_080831D0: .4byte sub_8083418
-_080831D4:
- ldr r4, _080831F0 @ =gScriptResult
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8082D9C
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- beq _080831EA
- ldr r0, _080831F4 @ =sub_8083288
-_080831E8:
- str r0, [r5]
-_080831EA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080831F0: .4byte gScriptResult
-_080831F4: .4byte sub_8083288
- thumb_func_end sub_8083188
- thumb_func_start sub_80831F8
-sub_80831F8: @ 80831F8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08083244 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrb r7, [r5, 0xA]
- ldrb r6, [r5, 0xC]
- adds r0, r4, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _08083270
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _08083270
- ldr r4, _08083248 @ =gScriptResult
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8082D9C
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _08083270
- cmp r0, 0x3
- bne _08083250
- bl sub_800832C
- bl HideFieldMessageBox
- ldr r0, _0808324C @ =sub_80833C4
- b _0808326E
- .align 2, 0
-_08083244: .4byte gTasks
-_08083248: .4byte gScriptResult
-_0808324C: .4byte sub_80833C4
-_08083250:
- bl GetLinkPlayerCount_2
- ldr r4, _08083278 @ =gFieldLinkPlayerCount
- strb r0, [r4]
- bl GetMultiplayerId
- ldr r1, _0808327C @ =gUnknown_03004860
- strb r0, [r1]
- ldrb r0, [r4]
- bl sub_80081C8
- ldr r0, _08083280 @ =gBlockSendBuffer
- bl sub_8093390
- ldr r0, _08083284 @ =sub_8083314
-_0808326E:
- str r0, [r5]
-_08083270:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08083278: .4byte gFieldLinkPlayerCount
-_0808327C: .4byte gUnknown_03004860
-_08083280: .4byte gBlockSendBuffer
-_08083284: .4byte sub_8083314
- thumb_func_end sub_80831F8
- thumb_func_start sub_8083288
-sub_8083288: @ 8083288
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _080832F8
- ldr r0, _080832BC @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _080832C8
- bl sub_800832C
- bl HideFieldMessageBox
- ldr r0, _080832C0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080832C4 @ =sub_80833C4
- str r0, [r1]
- b _080832F8
- .align 2, 0
-_080832BC: .4byte gScriptResult
-_080832C0: .4byte gTasks
-_080832C4: .4byte sub_80833C4
-_080832C8:
- bl GetLinkPlayerCount_2
- ldr r4, _08083300 @ =gFieldLinkPlayerCount
- strb r0, [r4]
- bl GetMultiplayerId
- ldr r1, _08083304 @ =gUnknown_03004860
- strb r0, [r1]
- ldrb r0, [r4]
- bl sub_80081C8
- ldr r0, _08083308 @ =gBlockSendBuffer
- bl sub_8093390
- ldr r1, _0808330C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08083310 @ =sub_8083314
- str r1, [r0]
- movs r0, 0x2
- bl sub_8007E9C
-_080832F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08083300: .4byte gFieldLinkPlayerCount
-_08083304: .4byte gUnknown_03004860
-_08083308: .4byte gBlockSendBuffer
-_0808330C: .4byte gTasks
-_08083310: .4byte sub_8083314
- thumb_func_end sub_8083288
- thumb_func_start sub_8083314
-sub_8083314: @ 8083314
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _080833B6
- bl GetBlockReceivedStatus
- adds r4, r0, 0
- bl sub_8008198
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080833B6
- movs r4, 0
- ldr r6, _0808333C @ =gTrainerCards
- b _0808335A
- .align 2, 0
-_0808333C: .4byte gTrainerCards
-_08083340:
- lsls r1, r4, 8
- ldr r0, _08083394 @ =gBlockRecvBuffer
- adds r1, r0
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 3
- adds r0, r6
- movs r2, 0x38
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0808335A:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08083340
- movs r0, 0
- bl SetSuppressLinkErrorMessage
- bl ResetBlockReceivedFlags
- bl HideFieldMessageBox
- ldr r0, _08083398 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _080833A4
- ldr r0, _0808339C @ =gLinkType
- ldrh r1, [r0]
- ldr r0, _080833A0 @ =0x00004411
- bl sub_8082D4C
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080833B6
- .align 2, 0
-_08083394: .4byte gBlockRecvBuffer
-_08083398: .4byte gScriptResult
-_0808339C: .4byte gLinkType
-_080833A0: .4byte 0x00004411
-_080833A4:
- bl sub_800832C
- ldr r0, _080833BC @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080833C0 @ =sub_80833C4
- str r0, [r1]
-_080833B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080833BC: .4byte gTasks
-_080833C0: .4byte sub_80833C4
- thumb_func_end sub_8083314
thumb_func_start sub_80833C4
sub_80833C4: @ 80833C4
@@ -1031,7 +633,7 @@ sub_80834E4: @ 80834E4
ldr r2, _08083504 @ =0x00001133
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _08083508 @ =gUnknown_020239F8
+ ldr r1, _08083508 @ =gBattleTypeFlags
movs r0, 0
strh r0, [r1]
movs r0, 0x2
@@ -1042,7 +644,7 @@ sub_80834E4: @ 80834E4
.align 2, 0
_08083500: .4byte gLinkType
_08083504: .4byte 0x00001133
-_08083508: .4byte gUnknown_020239F8
+_08083508: .4byte gBattleTypeFlags
thumb_func_end sub_80834E4
thumb_func_start sub_808350C
@@ -1055,7 +657,7 @@ sub_808350C: @ 808350C
ldr r3, _08083534 @ =0x00003311
adds r0, r3, 0
strh r0, [r1]
- ldr r0, _08083538 @ =gUnknown_020239F8
+ ldr r0, _08083538 @ =gBattleTypeFlags
strh r2, [r0]
movs r0, 0x2
movs r1, 0x4
@@ -1066,7 +668,7 @@ sub_808350C: @ 808350C
_0808352C: .4byte gScriptResult
_08083530: .4byte gLinkType
_08083534: .4byte 0x00003311
-_08083538: .4byte gUnknown_020239F8
+_08083538: .4byte gBattleTypeFlags
thumb_func_end sub_808350C
thumb_func_start sub_808353C
@@ -1185,7 +787,7 @@ sub_8083614: @ 8083614
ldr r2, _08083634 @ =0x00004411
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _08083638 @ =gUnknown_020239F8
+ ldr r1, _08083638 @ =gBattleTypeFlags
movs r0, 0
strh r0, [r1]
movs r0, 0x2
@@ -1196,7 +798,7 @@ sub_8083614: @ 8083614
.align 2, 0
_08083630: .4byte gLinkType
_08083634: .4byte 0x00004411
-_08083638: .4byte gUnknown_020239F8
+_08083638: .4byte gBattleTypeFlags
thumb_func_end sub_8083614
thumb_func_start sub_808363C
@@ -1206,7 +808,7 @@ sub_808363C: @ 808363C
ldr r2, _0808365C @ =0x00006601
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _08083660 @ =gUnknown_020239F8
+ ldr r1, _08083660 @ =gBattleTypeFlags
movs r0, 0
strh r0, [r1]
movs r0, 0x4
@@ -1217,7 +819,7 @@ sub_808363C: @ 808363C
.align 2, 0
_08083658: .4byte gLinkType
_0808365C: .4byte 0x00006601
-_08083660: .4byte gUnknown_020239F8
+_08083660: .4byte gBattleTypeFlags
thumb_func_end sub_808363C
thumb_func_start sub_8083664
@@ -1562,20 +1164,20 @@ _08083908:
beq _08083924
b _0808392E
_0808390E:
- ldr r1, _08083914 @ =gUnknown_020239F8
+ ldr r1, _08083914 @ =gBattleTypeFlags
movs r0, 0xA
b _0808392C
.align 2, 0
-_08083914: .4byte gUnknown_020239F8
+_08083914: .4byte gBattleTypeFlags
_08083918:
- ldr r1, _08083920 @ =gUnknown_020239F8
+ ldr r1, _08083920 @ =gBattleTypeFlags
movs r0, 0xB
b _0808392C
.align 2, 0
-_08083920: .4byte gUnknown_020239F8
+_08083920: .4byte gBattleTypeFlags
_08083924:
bl ReducePlayerPartyToThree
- ldr r1, _08083948 @ =gUnknown_020239F8
+ ldr r1, _08083948 @ =gBattleTypeFlags
movs r0, 0x4B
_0808392C:
strh r0, [r1]
@@ -1592,7 +1194,7 @@ _08083940:
pop {r0}
bx r0
.align 2, 0
-_08083948: .4byte gUnknown_020239F8
+_08083948: .4byte gBattleTypeFlags
_0808394C: .4byte sub_800E7C4
_08083950: .4byte gMain
_08083954: .4byte sub_8083958
@@ -1603,7 +1205,7 @@ sub_8083958: @ 8083958
push {lr}
bl call_map_music_set_to_zero
bl LoadPlayerParty
- bl SavePlayerData
+ bl SavePlayerBag
bl sub_810FEFC
ldr r0, _08083990 @ =gSpecialVar_0x8004
ldrh r0, [r0]
@@ -1644,7 +1246,7 @@ sub_80839A4: @ 80839A4
bne _080839C0
_080839B8:
bl LoadPlayerParty
- bl SavePlayerData
+ bl SavePlayerBag
_080839C0:
movs r0, 0x7F
bl copy_saved_warp2_bank_and_enter_x_to_warp1
@@ -1913,7 +1515,7 @@ unref_sub_8083BB0: @ 8083BB0
bl CreateTask
lsls r0, 24
lsrs r0, 24
- ldr r2, _08083BD8 @ =sub_80B9484
+ ldr r2, _08083BD8 @ =Task_RecordMixing_Main
adds r1, r4, 0
bl SetTaskFuncWithFollowupFunc
bl ScriptContext1_Stop
@@ -1922,7 +1524,7 @@ unref_sub_8083BB0: @ 8083BB0
bx r0
.align 2, 0
_08083BD4: .4byte sub_80839DC
-_08083BD8: .4byte sub_80B9484
+_08083BD8: .4byte Task_RecordMixing_Main
thumb_func_end unref_sub_8083BB0
thumb_func_start sub_8083BDC
@@ -2066,49 +1668,4 @@ _08083CE8: .4byte gTasks
_08083CEC: .4byte sub_8083CA4
thumb_func_end unref_sub_8083CC8
- thumb_func_start unref_sub_8083CF0
-unref_sub_8083CF0: @ 8083CF0
- push {r4-r7,lr}
- ldr r0, _08083D38 @ =0x04000128
- ldr r4, [r0]
- lsls r4, 26
- lsrs r4, 30
- ldr r0, _08083D3C @ =gUnknown_03004DA0
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, _08083D40 @ =gUnknown_0839B24A
- bl StringAppend
- movs r5, 0
- ldr r0, _08083D44 @ =word_3002910
- movs r6, 0x1
- eors r4, r6
- lsls r4, 1
- adds r7, r4, r0
- movs r4, 0
-_08083D14:
- ldrh r0, [r7]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _08083D28
- ldr r1, _08083D48 @ =gUnknown_0839B22C
- adds r1, r4, r1
- ldr r0, _08083D3C @ =gUnknown_03004DA0
- bl StringAppend
-_08083D28:
- adds r4, 0x3
- adds r5, 0x1
- cmp r5, 0x9
- ble _08083D14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08083D38: .4byte 0x04000128
-_08083D3C: .4byte gUnknown_03004DA0
-_08083D40: .4byte gUnknown_0839B24A
-_08083D44: .4byte word_3002910
-_08083D48: .4byte gUnknown_0839B22C
- thumb_func_end unref_sub_8083CF0
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/calculate_base_damage.s b/asm/calculate_base_damage.s
deleted file mode 100644
index 54f53f1a2..000000000
--- a/asm/calculate_base_damage.s
+++ /dev/null
@@ -1,1165 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CalculateBaseDamage
-CalculateBaseDamage: @ 803BA2C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- adds r7, r0, 0
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, [sp, 0x4C]
- ldr r1, [sp, 0x50]
- ldr r2, [sp, 0x54]
- ldr r4, [sp, 0x58]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0xC]
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r4, 24
- lsrs r4, 24
- movs r5, 0
- cmp r3, 0
- bne _0803BA80
- ldr r2, _0803BA78 @ =gBattleMovePower
- ldr r1, _0803BA7C @ =gBattleMoves
- ldr r3, [sp, 0x8]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- strh r0, [r2]
- b _0803BA84
- .align 2, 0
-_0803BA78: .4byte gBattleMovePower
-_0803BA7C: .4byte gBattleMoves
-_0803BA80:
- ldr r0, _0803BA9C @ =gBattleMovePower
- strh r3, [r0]
-_0803BA84:
- cmp r6, 0
- bne _0803BAA4
- ldr r1, _0803BAA0 @ =gBattleMoves
- ldr r6, [sp, 0x8]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r9, r0
- b _0803BAAE
- .align 2, 0
-_0803BA9C: .4byte gBattleMovePower
-_0803BAA0: .4byte gBattleMoves
-_0803BAA4:
- movs r0, 0x3F
- mov r9, r0
- mov r1, r9
- ands r1, r6
- mov r9, r1
-_0803BAAE:
- ldrh r6, [r7, 0x2]
- ldr r2, [sp, 0x4]
- ldrh r2, [r2, 0x4]
- str r2, [sp, 0x14]
- ldrh r3, [r7, 0x8]
- mov r8, r3
- ldr r0, [sp, 0x4]
- ldrh r0, [r0, 0xA]
- str r0, [sp, 0x18]
- ldrh r0, [r7, 0x2E]
- cmp r0, 0xAF
- bne _0803BAE0
- ldr r1, _0803BADC @ =gEnigmaBerries
- ldr r2, [sp, 0x10]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- mov r10, r3
- ldrb r0, [r0, 0x1A]
- b _0803BAF6
- .align 2, 0
-_0803BADC: .4byte gEnigmaBerries
-_0803BAE0:
- ldrh r0, [r7, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrh r0, [r7, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0803BAF6:
- str r0, [sp, 0x20]
- ldr r1, [sp, 0x4]
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0803BB26
- ldr r1, _0803BB10 @ =gEnigmaBerries
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- str r0, [sp, 0x1C]
- b _0803BB3C
- .align 2, 0
-_0803BB10: .4byte gEnigmaBerries
-_0803BB14:
- ldr r0, [sp, 0x20]
- adds r0, 0x64
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- b _0803BCDC
-_0803BB26:
- ldr r2, [sp, 0x4]
- ldrh r0, [r2, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- ldr r3, [sp, 0x4]
- ldrh r0, [r3, 0x2E]
- bl ItemId_GetHoldEffectParam
-_0803BB3C:
- adds r0, r7, 0
- adds r0, 0x20
- ldrb r1, [r0]
- str r0, [sp, 0x24]
- cmp r1, 0x25
- beq _0803BB4C
- cmp r1, 0x4A
- bne _0803BB50
-_0803BB4C:
- lsls r0, r6, 17
- lsrs r6, r0, 16
-_0803BB50:
- ldr r0, _0803BCB8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0803BCBC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0803BB5E
- b _0803BC78
-_0803BB5E:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BB98
- ldr r0, _0803BCC0 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BB98
- ldr r0, _0803BCC4 @ =0x00000807
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BB98
- ldr r0, [sp, 0x10]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BB98
- movs r0, 0x6E
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BB98:
- ldr r0, _0803BCB8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0803BCBC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BBE2
- ldr r0, _0803BCC0 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BBE2
- ldr r0, _0803BCC8 @ =0x0000080b
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BBE2
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BBE2
- movs r0, 0x6E
- ldr r1, [sp, 0x14]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803BBE2:
- ldr r0, _0803BCB8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0803BCBC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BC2E
- ldr r0, _0803BCC0 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BC2E
- ldr r0, _0803BCCC @ =0x0000080d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BC2E
- ldr r0, [sp, 0x10]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BC2E
- movs r0, 0x6E
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BC2E:
- ldr r0, _0803BCB8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0803BCBC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803BC78
- ldr r0, _0803BCC0 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0803BC78
- ldr r0, _0803BCCC @ =0x0000080d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0803BC78
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803BC78
- movs r0, 0x6E
- ldr r3, [sp, 0x18]
- muls r0, r3
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803BC78:
- movs r2, 0
- ldr r4, _0803BCD0 @ =gHoldEffectToType
- ldr r0, [sp, 0x4]
- adds r0, 0x20
- str r0, [sp, 0x28]
- adds r3, r4, 0
-_0803BC84:
- lsls r1, r2, 1
- ldrb r0, [r3]
- cmp r10, r0
- bne _0803BCD4
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r9, r0
- bne _0803BCD4
- mov r1, r9
- cmp r1, 0x8
- bhi _0803BC9E
- b _0803BB14
-_0803BC9E:
- ldr r0, [sp, 0x20]
- adds r0, 0x64
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- b _0803BCDC
- .align 2, 0
-_0803BCB8: .4byte gUnknown_020239F8
-_0803BCBC: .4byte 0x00000902
-_0803BCC0: .4byte gTrainerBattleOpponent
-_0803BCC4: .4byte 0x00000807
-_0803BCC8: .4byte 0x0000080b
-_0803BCCC: .4byte 0x0000080d
-_0803BCD0: .4byte gHoldEffectToType
-_0803BCD4:
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x10
- bls _0803BC84
-_0803BCDC:
- mov r3, r10
- cmp r3, 0x1D
- bne _0803BCF0
- movs r0, 0x96
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BCF0:
- mov r0, r10
- cmp r0, 0x22
- bne _0803BD28
- ldr r0, _0803BFDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0803BD28
- ldr r1, _0803BFE0 @ =0xfffffe69
- adds r0, r1, 0
- ldrh r2, [r7]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803BD28
- movs r0, 0x96
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BD28:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x22
- bne _0803BD60
- ldr r0, _0803BFDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0803BD60
- ldr r1, _0803BFE0 @ =0xfffffe69
- adds r0, r1, 0
- ldr r2, [sp, 0x4]
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803BD60
- movs r0, 0x96
- ldr r3, [sp, 0x18]
- muls r0, r3
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803BD60:
- mov r0, r10
- cmp r0, 0x23
- bne _0803BD76
- ldrh r1, [r7]
- ldr r0, _0803BFE4 @ =0x00000175
- cmp r1, r0
- bne _0803BD76
- mov r1, r8
- lsls r0, r1, 17
- lsrs r0, 16
- mov r8, r0
-_0803BD76:
- ldr r2, [sp, 0x1C]
- cmp r2, 0x24
- bne _0803BD8E
- ldr r3, [sp, 0x4]
- ldrh r1, [r3]
- ldr r0, _0803BFE4 @ =0x00000175
- cmp r1, r0
- bne _0803BD8E
- ldr r1, [sp, 0x18]
- lsls r0, r1, 17
- lsrs r0, 16
- str r0, [sp, 0x18]
-_0803BD8E:
- mov r2, r10
- cmp r2, 0x2D
- bne _0803BDA2
- ldrh r0, [r7]
- cmp r0, 0x19
- bne _0803BDA2
- mov r3, r8
- lsls r0, r3, 17
- lsrs r0, 16
- mov r8, r0
-_0803BDA2:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x40
- bne _0803BDB8
- ldr r1, [sp, 0x4]
- ldrh r0, [r1]
- cmp r0, 0x84
- bne _0803BDB8
- ldr r2, [sp, 0x14]
- lsls r0, r2, 17
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803BDB8:
- mov r3, r10
- cmp r3, 0x41
- bne _0803BDCE
- ldrh r0, [r7]
- subs r0, 0x68
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0803BDCE
- lsls r0, r6, 17
- lsrs r6, r0, 16
-_0803BDCE:
- ldr r1, [sp, 0x28]
- ldrb r0, [r1]
- cmp r0, 0x2F
- bne _0803BDE6
- mov r2, r9
- cmp r2, 0xA
- beq _0803BDE0
- cmp r2, 0xF
- bne _0803BDE6
-_0803BDE0:
- mov r3, r8
- lsrs r3, 1
- mov r8, r3
-_0803BDE6:
- ldr r0, [sp, 0x24]
- ldrb r4, [r0]
- cmp r4, 0x37
- bne _0803BDFC
- movs r0, 0x96
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BDFC:
- cmp r4, 0x39
- bne _0803BE2A
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x3A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BE2A
- movs r0, 0x96
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BE2A:
- ldr r2, [sp, 0x24]
- ldrb r0, [r2]
- cmp r0, 0x3A
- bne _0803BE5C
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x39
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BE5C
- movs r0, 0x96
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0803BE5C:
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x3E
- bne _0803BE78
- ldr r0, [r7, 0x4C]
- cmp r0, 0
- beq _0803BE78
- movs r0, 0x96
- muls r0, r6
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
-_0803BE78:
- ldr r2, [sp, 0x28]
- ldrb r0, [r2]
- cmp r0, 0x3F
- bne _0803BE9A
- ldr r3, [sp, 0x4]
- ldr r0, [r3, 0x4C]
- cmp r0, 0
- beq _0803BE9A
- movs r0, 0x96
- ldr r1, [sp, 0x14]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
-_0803BE9A:
- mov r2, r9
- cmp r2, 0xD
- bne _0803BEBE
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFD
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BEBE
- ldr r1, _0803BFE8 @ =gBattleMovePower
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0803BEBE:
- mov r3, r9
- cmp r3, 0xA
- bne _0803BEE2
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0
- movs r3, 0xFE
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0803BEE2
- ldr r1, _0803BFE8 @ =gBattleMovePower
- ldrh r0, [r1]
- lsrs r0, 1
- strh r0, [r1]
-_0803BEE2:
- mov r0, r9
- cmp r0, 0xC
- bne _0803BF12
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x41
- bne _0803BF12
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BF12
- ldr r4, _0803BFE8 @ =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BF12:
- mov r2, r9
- cmp r2, 0xA
- bne _0803BF42
- ldr r3, [sp, 0x24]
- ldrb r0, [r3]
- cmp r0, 0x42
- bne _0803BF42
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BF42
- ldr r4, _0803BFE8 @ =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BF42:
- mov r0, r9
- cmp r0, 0xB
- bne _0803BF72
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x43
- bne _0803BF72
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BF72
- ldr r4, _0803BFE8 @ =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BF72:
- mov r2, r9
- cmp r2, 0x6
- bne _0803BFA2
- ldr r3, [sp, 0x24]
- ldrb r0, [r3]
- cmp r0, 0x44
- bne _0803BFA2
- ldrh r0, [r7, 0x2C]
- movs r1, 0x3
- bl __udivsi3
- ldrh r1, [r7, 0x28]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0803BFA2
- ldr r4, _0803BFE8 @ =gBattleMovePower
- ldrh r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4]
-_0803BFA2:
- ldr r2, _0803BFEC @ =gBattleMoves
- ldr r0, _0803BFF0 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0803BFBC
- ldr r0, [sp, 0x14]
- lsrs r0, 1
- str r0, [sp, 0x14]
-_0803BFBC:
- mov r1, r9
- cmp r1, 0x8
- bls _0803BFC4
- b _0803C122
-_0803BFC4:
- ldr r0, _0803BFF4 @ =gCritMultiplier
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0803C000
- movs r0, 0x19
- ldrsb r0, [r7, r0]
- cmp r0, 0x6
- ble _0803BFFC
- ldr r2, _0803BFF8 @ =gStatStageRatios
- b _0803C006
- .align 2, 0
-_0803BFDC: .4byte gUnknown_020239F8
-_0803BFE0: .4byte 0xfffffe69
-_0803BFE4: .4byte 0x00000175
-_0803BFE8: .4byte gBattleMovePower
-_0803BFEC: .4byte gBattleMoves
-_0803BFF0: .4byte gUnknown_02024BE6
-_0803BFF4: .4byte gCritMultiplier
-_0803BFF8: .4byte gStatStageRatios
-_0803BFFC:
- adds r5, r6, 0
- b _0803C01E
-_0803C000:
- ldr r2, _0803C050 @ =gStatStageRatios
- movs r0, 0x19
- ldrsb r0, [r7, r0]
-_0803C006:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- adds r5, r6, 0
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_0803C01E:
- ldr r0, _0803C054 @ =gBattleMovePower
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r7, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x2
- muls r5, r0
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _0803C05C
- ldr r2, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r2, r0]
- cmp r0, 0x5
- bgt _0803C058
- ldr r2, _0803C050 @ =gStatStageRatios
- ldr r3, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r3, r0]
- b _0803C064
- .align 2, 0
-_0803C050: .4byte gStatStageRatios
-_0803C054: .4byte gBattleMovePower
-_0803C058:
- ldr r3, [sp, 0x14]
- b _0803C07E
-_0803C05C:
- ldr r2, _0803C0DC @ =gStatStageRatios
- ldr r1, [sp, 0x4]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
-_0803C064:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r6, [sp, 0x14]
- adds r3, r6, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_0803C07E:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- ldr r0, [r7, 0x4C]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0803C0A8
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x3E
- beq _0803C0A8
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C0A8:
- movs r0, 0x1
- ldr r2, [sp, 0xC]
- ands r0, r2
- cmp r0, 0
- beq _0803C0EA
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _0803C0EA
- ldr r0, _0803C0E0 @ =gUnknown_020239F8
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0803C0E4
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C0E4
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _0803C0EA
- .align 2, 0
-_0803C0DC: .4byte gStatStageRatios
-_0803C0E0: .4byte gUnknown_020239F8
-_0803C0E4:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C0EA:
- ldr r0, _0803C148 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803C11C
- ldr r0, _0803C14C @ =gBattleMoves
- ldr r3, [sp, 0x8]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _0803C11C
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C11C
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C11C:
- cmp r5, 0
- bne _0803C122
- movs r5, 0x1
-_0803C122:
- mov r6, r9
- cmp r6, 0x9
- bne _0803C12A
- movs r5, 0
-_0803C12A:
- mov r0, r9
- cmp r0, 0x9
- bhi _0803C132
- b _0803C330
-_0803C132:
- ldr r0, _0803C150 @ =gCritMultiplier
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0803C15C
- movs r0, 0x1C
- ldrsb r0, [r7, r0]
- cmp r0, 0x6
- ble _0803C158
- ldr r2, _0803C154 @ =gStatStageRatios
- b _0803C162
- .align 2, 0
-_0803C148: .4byte gUnknown_020239F8
-_0803C14C: .4byte gBattleMoves
-_0803C150: .4byte gCritMultiplier
-_0803C154: .4byte gStatStageRatios
-_0803C158:
- mov r5, r8
- b _0803C17A
-_0803C15C:
- ldr r2, _0803C1A8 @ =gStatStageRatios
- movs r0, 0x1C
- ldrsb r0, [r7, r0]
-_0803C162:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- mov r5, r8
- muls r5, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r5, 0
- bl __divsi3
- adds r5, r0, 0
-_0803C17A:
- ldr r0, _0803C1AC @ =gBattleMovePower
- ldrh r0, [r0]
- muls r5, r0
- adds r0, r7, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x2
- muls r5, r0
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _0803C1B4
- ldr r1, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0803C1B0
- ldr r2, _0803C1A8 @ =gStatStageRatios
- b _0803C1BC
- .align 2, 0
-_0803C1A8: .4byte gStatStageRatios
-_0803C1AC: .4byte gBattleMovePower
-_0803C1B0:
- ldr r3, [sp, 0x18]
- b _0803C1D6
-_0803C1B4:
- ldr r2, _0803C21C @ =gStatStageRatios
- ldr r1, [sp, 0x4]
- movs r0, 0x1D
- ldrsb r0, [r1, r0]
-_0803C1BC:
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- ldr r6, [sp, 0x18]
- adds r3, r6, 0
- muls r3, r1
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- bl __divsi3
- adds r3, r0, 0
-_0803C1D6:
- adds r0, r5, 0
- adds r1, r3, 0
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0x32
- bl __divsi3
- adds r5, r0, 0
- movs r0, 0x2
- ldr r1, [sp, 0xC]
- ands r0, r1
- cmp r0, 0
- beq _0803C22A
- ldrb r1, [r4]
- cmp r1, 0x1
- bne _0803C22A
- ldr r0, _0803C220 @ =gUnknown_020239F8
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0803C224
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C224
- adds r0, r5, 0
- movs r1, 0x3
- bl __divsi3
- lsls r5, r0, 1
- b _0803C22A
- .align 2, 0
-_0803C21C: .4byte gStatStageRatios
-_0803C220: .4byte gUnknown_020239F8
-_0803C224:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C22A:
- ldr r0, _0803C2A4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803C25C
- ldr r0, _0803C2A8 @ =gBattleMoves
- ldr r2, [sp, 0x8]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _0803C25C
- movs r0, 0x2
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803C25C
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C25C:
- movs r0, 0
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0803C30C
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0803C30C
- ldr r2, _0803C2AC @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _0803C2C4
- mov r3, r9
- cmp r3, 0xA
- beq _0803C2B0
- cmp r3, 0xB
- beq _0803C2B8
- b _0803C2C4
- .align 2, 0
-_0803C2A4: .4byte gUnknown_020239F8
-_0803C2A8: .4byte gBattleMoves
-_0803C2AC: .4byte word_2024DB8
-_0803C2B0:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
- b _0803C2C4
-_0803C2B8:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_0803C2C4:
- ldrh r1, [r4]
- movs r0, 0x9F
- ands r0, r1
- cmp r0, 0
- beq _0803C2DC
- ldr r0, _0803C2F4 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0x4C
- bne _0803C2DC
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C2DC:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0803C30C
- mov r6, r9
- cmp r6, 0xA
- beq _0803C2F8
- cmp r6, 0xB
- beq _0803C306
- b _0803C30C
- .align 2, 0
-_0803C2F4: .4byte gUnknown_02024BE6
-_0803C2F8:
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- b _0803C30C
-_0803C306:
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r5, r0, 1
-_0803C30C:
- ldr r1, _0803C344 @ =0x02017100
- ldr r2, [sp, 0x10]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803C330
- mov r3, r9
- cmp r3, 0xA
- bne _0803C330
- lsls r0, r5, 4
- subs r0, r5
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
-_0803C330:
- adds r0, r5, 0x2
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803C344: .4byte 0x02017100
- thumb_func_end CalculateBaseDamage
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/choose_party.s b/asm/choose_party.s
deleted file mode 100644
index 21988162b..000000000
--- a/asm/choose_party.s
+++ /dev/null
@@ -1,2509 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8121E10
-sub_8121E10: @ 8121E10
- push {lr}
- bl sub_8121E58
- ldr r0, _08121E2C @ =0x0201b000
- ldr r1, _08121E30 @ =0x00000263
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x4
- bl OpenPartyMenu
- pop {r0}
- bx r0
- .align 2, 0
-_08121E2C: .4byte 0x0201b000
-_08121E30: .4byte 0x00000263
- thumb_func_end sub_8121E10
-
- thumb_func_start sub_8121E34
-sub_8121E34: @ 8121E34
- push {lr}
- bl sub_8121E58
- ldr r0, _08121E50 @ =0x0201b000
- ldr r1, _08121E54 @ =0x00000263
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x4
- movs r1, 0
- bl OpenPartyMenu
- pop {r0}
- bx r0
- .align 2, 0
-_08121E50: .4byte 0x0201b000
-_08121E54: .4byte 0x00000263
- thumb_func_end sub_8121E34
-
- thumb_func_start sub_8121E58
-sub_8121E58: @ 8121E58
- push {lr}
- movs r1, 0
- ldr r3, _08121E74 @ =gUnknown_02039270
- movs r2, 0
-_08121E60:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _08121E60
- pop {r0}
- bx r0
- .align 2, 0
-_08121E74: .4byte gUnknown_02039270
- thumb_func_end sub_8121E58
-
- thumb_func_start sub_8121E78
-sub_8121E78: @ 8121E78
- push {r4-r6,lr}
- ldr r1, _08121E98 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x7
- bls _08121E8E
- b _08122026
-_08121E8E:
- lsls r0, 2
- ldr r1, _08121E9C @ =_08121EA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08121E98: .4byte 0x0201b000
-_08121E9C: .4byte _08121EA0
- .align 2, 0
-_08121EA0:
- .4byte _08121EC0
- .4byte _08121F00
- .4byte _08121F14
- .4byte _08121F28
- .4byte _08121F54
- .4byte _08121F68
- .4byte _08121F6E
- .4byte _08121FF8
-_08121EC0:
- ldr r0, _08121EE8 @ =0x00000266
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _08121EEC @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r3, r0
- bge _08121EF4
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _08121EF0 @ =gPlayerParty
- adds r2, r3
- bl sub_806D90C
- b _08122020
- .align 2, 0
-_08121EE8: .4byte 0x00000266
-_08121EEC: .4byte gPlayerPartyCount
-_08121EF0: .4byte gPlayerParty
-_08121EF4:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _08121FE8
-_08121F00:
- bl sub_806DA98
- ldr r1, _08121F10 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
- b _08121FE8
- .align 2, 0
-_08121F10: .4byte 0x0201b000
-_08121F14:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _08121FE8
-_08121F28:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _08121F50 @ =0x00000266
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122020
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _08121FE8
- .align 2, 0
-_08121F50: .4byte 0x00000266
-_08121F54:
- bl sub_806E334
- ldr r1, _08121F64 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
- b _08121FE8
- .align 2, 0
-_08121F64: .4byte 0x0201b000
-_08121F68:
- bl sub_806E0C4
- b _08121FE0
-_08121F6E:
- movs r5, 0
- b _08121FD8
-_08121F72:
- movs r4, 0
- adds r6, r5, 0x1
- b _08121F7E
-_08121F78:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_08121F7E:
- cmp r4, 0x2
- bhi _08121FA0
- ldr r0, _08121FC4 @ =gUnknown_02039270
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, r6
- bne _08121F78
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 25
- movs r2, 0xE0
- lsls r2, 21
- adds r1, r2
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_806BC3C
-_08121FA0:
- cmp r4, 0x3
- bne _08121FD4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08121FC8 @ =gPlayerParty
- adds r0, r1
- bl sub_8122030
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08121FCC
- adds r0, r5, 0
- movs r1, 0x70
- bl sub_806BC3C
- b _08121FD4
- .align 2, 0
-_08121FC4: .4byte gUnknown_02039270
-_08121FC8: .4byte gPlayerParty
-_08121FCC:
- adds r0, r5, 0
- movs r1, 0x7E
- bl sub_806BC3C
-_08121FD4:
- lsls r0, r6, 24
- lsrs r5, r0, 24
-_08121FD8:
- ldr r0, _08121FF0 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r5, r0
- bcc _08121F72
-_08121FE0:
- ldr r1, _08121FF4 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
-_08121FE8:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _08122026
- .align 2, 0
-_08121FF0: .4byte gPlayerPartyCount
-_08121FF4: .4byte 0x0201b000
-_08121FF8:
- ldr r1, _0812201C @ =0x00000266
- adds r5, r4, r1
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122020
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _08122028
- .align 2, 0
-_0812201C: .4byte 0x00000266
-_08122020:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_08122026:
- movs r0, 0
-_08122028:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8121E78
-
- thumb_func_start sub_8122030
-sub_8122030: @ 8122030
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0812207C
- ldr r0, _08122058 @ =0x0201b000
- ldr r1, _0812205C @ =0x00000263
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08122060
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0812207C
- b _081220B6
- .align 2, 0
-_08122058: .4byte 0x0201b000
-_0812205C: .4byte 0x00000263
-_08122060:
- ldr r0, _08122080 @ =gSaveBlock2
- ldr r1, _08122084 @ =0x00000554
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08122088
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x32
- bls _08122088
-_0812207C:
- movs r0, 0
- b _081220B8
- .align 2, 0
-_08122080: .4byte gSaveBlock2
-_08122084: .4byte 0x00000554
-_08122088:
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r1, _081220C0 @ =gBattleTowerBanlist
- movs r0, 0
- lsls r0, 1
- adds r2, r0, r1
- ldrh r0, [r2]
- ldr r1, _081220C4 @ =0x0000ffff
- cmp r0, r1
- beq _081220B6
- adds r4, r1, 0
- adds r1, r2, 0
-_081220A8:
- ldrh r0, [r1]
- cmp r0, r3
- beq _0812207C
- adds r1, 0x2
- ldrh r0, [r1]
- cmp r0, r4
- bne _081220A8
-_081220B6:
- movs r0, 0x1
-_081220B8:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081220C0: .4byte gBattleTowerBanlist
-_081220C4: .4byte 0x0000ffff
- thumb_func_end sub_8122030
-
- thumb_func_start sub_81220C8
-sub_81220C8: @ 81220C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _081220EC @ =0x0201b000
- ldr r2, _081220F0 @ =0x00000263
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _081221A2
- ldr r0, _081220F4 @ =gUnknown_02039270
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- bne _08122100
- movs r0, 0x11
- b _081221A4
- .align 2, 0
-_081220EC: .4byte 0x0201b000
-_081220F0: .4byte 0x00000263
-_081220F4: .4byte gUnknown_02039270
-_081220F8:
- movs r0, 0x12
- b _081221A4
-_081220FC:
- movs r0, 0x13
- b _081221A4
-_08122100:
- movs r5, 0
-_08122102:
- ldr r4, _081221B4 @ =gUnknown_02039270
- adds r4, r5, r4
- ldrb r0, [r4]
- movs r1, 0x64
- muls r0, r1
- ldr r2, _081221B8 @ =gUnknown_030042FC
- adds r0, r2
- movs r1, 0xB
- bl GetMonData
- ldr r1, _081221BC @ =0x0201b000
- ldr r2, _081221C0 @ =0x00000282
- adds r6, r1, r2
- strh r0, [r6]
- ldrb r0, [r4]
- movs r1, 0x64
- muls r0, r1
- ldr r2, _081221B8 @ =gUnknown_030042FC
- adds r0, r2
- movs r1, 0xC
- bl GetMonData
- ldr r1, _081221C4 @ =0x0201b280
- strh r0, [r1]
- adds r1, r5, 0x1
- lsls r0, r1, 24
- lsrs r5, r0, 24
- mov r10, r1
- cmp r5, 0x2
- bhi _08122198
- ldr r2, _081221C8 @ =0xfffffd7e
- adds r2, r6
- mov r9, r2
- movs r0, 0x64
- mov r8, r0
- ldr r7, _081221B8 @ =gUnknown_030042FC
-_0812214A:
- ldr r0, _081221C0 @ =0x00000282
- add r0, r9
- movs r1, 0
- ldrsh r4, [r0, r1]
- ldr r0, _081221B4 @ =gUnknown_02039270
- adds r6, r5, r0
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0xB
- bl GetMonData
- cmp r4, r0
- beq _081220F8
- movs r1, 0xA0
- lsls r1, 2
- add r1, r9
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0812218E
- adds r4, r0, 0
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0xC
- bl GetMonData
- cmp r4, r0
- beq _081220FC
-_0812218E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0812214A
-_08122198:
- mov r2, r10
- lsls r0, r2, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _08122102
-_081221A2:
- movs r0, 0xFF
-_081221A4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081221B4: .4byte gUnknown_02039270
-_081221B8: .4byte gUnknown_030042FC
-_081221BC: .4byte 0x0201b000
-_081221C0: .4byte 0x00000282
-_081221C4: .4byte 0x0201b280
-_081221C8: .4byte 0xfffffd7e
- thumb_func_end sub_81220C8
-
- thumb_func_start sub_81221CC
-sub_81221CC: @ 81221CC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, _081221E4 @ =gUnknown_02039270
-_081221D6:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081221E8
- movs r0, 0x1
- b _081221F4
- .align 2, 0
-_081221E4: .4byte gUnknown_02039270
-_081221E8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _081221D6
- movs r0, 0
-_081221F4:
- pop {r1}
- bx r1
- thumb_func_end sub_81221CC
-
- thumb_func_start sub_81221F8
-sub_81221F8: @ 81221F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x5
- movs r1, 0x1
- bl sub_806D538
- ldr r5, _08122248 @ =gUnknown_03005CE0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812224C @ =gPlayerParty
- adds r0, r1
- bl sub_8122030
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122284
- ldrb r0, [r5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- bl sub_81221CC
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1
- bne _0812225C
- ldr r1, _08122250 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x10]
- ldr r1, _08122254 @ =gUnknown_084017D8
- ldr r2, _08122258 @ =gUnknown_084017B0
- movs r0, 0x1
- b _08122270
- .align 2, 0
-_08122248: .4byte gUnknown_03005CE0
-_0812224C: .4byte gPlayerParty
-_08122250: .4byte gTasks
-_08122254: .4byte gUnknown_084017D8
-_08122258: .4byte gUnknown_084017B0
-_0812225C:
- ldr r1, _08122278 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x10]
- ldr r1, _0812227C @ =gUnknown_084017D8
- ldr r2, _08122280 @ =gUnknown_084017B0
- movs r0, 0
-_08122270:
- movs r3, 0
- bl sub_806E750
- b _0812229E
- .align 2, 0
-_08122278: .4byte gTasks
-_0812227C: .4byte gUnknown_084017D8
-_08122280: .4byte gUnknown_084017B0
-_08122284:
- ldr r1, _081222A4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x10]
- ldr r1, _081222A8 @ =gUnknown_084017D8
- ldr r2, _081222AC @ =gUnknown_084017B0
- movs r0, 0x2
- movs r3, 0
- bl sub_806E750
-_0812229E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081222A4: .4byte gTasks
-_081222A8: .4byte gUnknown_084017D8
-_081222AC: .4byte gUnknown_084017B0
- thumb_func_end sub_81221F8
-
- thumb_func_start sub_81222B0
-sub_81222B0: @ 81222B0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081222DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0812237C
- adds r0, r4, 0
- bl sub_806BE38
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _081222E0
- cmp r0, 0x2
- beq _08122354
- b _0812237C
- .align 2, 0
-_081222DC: .4byte gPaletteFade
-_081222E0:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _08122320 @ =gUnknown_03005CE0
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _08122334
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122324 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08122328 @ =gStringVar1
- bl GetMonNickname
- adds r0, r4, 0
- bl sub_81221F8
- ldr r1, _0812232C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122330 @ =sub_812238C
- str r1, [r0]
- b _08122342
- .align 2, 0
-_08122320: .4byte gUnknown_03005CE0
-_08122324: .4byte gPlayerParty
-_08122328: .4byte gStringVar1
-_0812232C: .4byte gTasks
-_08122330: .4byte sub_812238C
-_08122334:
- ldr r0, _0812234C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08122350 @ =sub_81224A8
- str r0, [r1]
-_08122342:
- adds r0, r4, 0
- bl sub_808B5B4
- b _0812237C
- .align 2, 0
-_0812234C: .4byte gTasks
-_08122350: .4byte sub_81224A8
-_08122354:
- movs r0, 0x5
- bl PlaySE
- bl sub_8121E58
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08122384 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122388 @ =sub_8122450
- str r1, [r0]
-_0812237C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08122384: .4byte gTasks
-_08122388: .4byte sub_8122450
- thumb_func_end sub_81222B0
-
- thumb_func_start sub_812238C
-sub_812238C: @ 812238C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, r7, 0
- ldr r0, _081223C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0812244A
- ldr r2, _081223CC @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081223D0
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _0812244A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0812244A
- .align 2, 0
-_081223C8: .4byte gPaletteFade
-_081223CC: .4byte gMain
-_081223D0:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _081223F2
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0812244A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0812244A
-_081223F2:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812243C
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08122430 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0x10]
- ldr r5, _08122434 @ =gUnknown_084017D8
- ldr r6, _08122438 @ =gUnknown_084017B0
- bl GetMenuCursorPos
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r7, 0
- bl _call_via_r1
- b _0812244A
- .align 2, 0
-_08122430: .4byte gTasks
-_08122434: .4byte gUnknown_084017D8
-_08122438: .4byte gUnknown_084017B0
-_0812243C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0812244A
- adds r0, r4, 0
- bl sub_8122838
-_0812244A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812238C
-
- thumb_func_start sub_8122450
-sub_8122450: @ 8122450
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08122478 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08122470
- ldr r0, _0812247C @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08122470:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122478: .4byte gPaletteFade
-_0812247C: .4byte gMain
- thumb_func_end sub_8122450
-
- thumb_func_start sub_8122480
-sub_8122480: @ 8122480
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081224A4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0812249A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081224A0
-_0812249A:
- adds r0, r2, 0
- bl sub_8122838
-_081224A0:
- pop {r0}
- bx r0
- .align 2, 0
-_081224A4: .4byte gMain
- thumb_func_end sub_8122480
-
- thumb_func_start sub_81224A8
-sub_81224A8: @ 81224A8
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_81220C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _081224D0
- movs r1, 0
- bl sub_806D538
- ldr r0, _081224CC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- b _08122518
- .align 2, 0
-_081224CC: .4byte gTasks
-_081224D0:
- ldr r0, _081224F8 @ =gUnknown_02039270
- ldrb r0, [r0]
- cmp r0, 0
- beq _08122504
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _081224FC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122500 @ =sub_8122450
- str r1, [r0]
- b _08122520
- .align 2, 0
-_081224F8: .4byte gUnknown_02039270
-_081224FC: .4byte gTasks
-_08122500: .4byte sub_8122450
-_08122504:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xE
- movs r1, 0
- bl sub_806D538
- ldr r0, _08122528 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
-_08122518:
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812252C @ =sub_8122480
- str r0, [r1]
-_08122520:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08122528: .4byte gTasks
-_0812252C: .4byte sub_8122480
- thumb_func_end sub_81224A8
-
- thumb_func_start sub_8122530
-sub_8122530: @ 8122530
- push {r4,r5,lr}
- ldr r5, _08122578 @ =0x0201b260
- ldr r4, _0812257C @ =gUnknown_020384F0
-_08122536:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122590
- ldrb r0, [r5]
- ldrb r1, [r4]
- bl sub_806C994
- ldrb r0, [r5]
- movs r1, 0
- bl sub_806C658
- ldrb r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122580 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08122584 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _08122588 @ =gUnknown_03005CE0
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r5]
- bl sub_81221F8
- ldr r0, _0812258C @ =sub_806AEDC
- bl SetMainCallback2
- b _0812259C
- .align 2, 0
-_08122578: .4byte 0x0201b260
-_0812257C: .4byte gUnknown_020384F0
-_08122580: .4byte gPlayerParty
-_08122584: .4byte gStringVar1
-_08122588: .4byte gUnknown_03005CE0
-_0812258C: .4byte sub_806AEDC
-_08122590:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122536
-_0812259C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8122530
-
- thumb_func_start sub_81225A4
-sub_81225A4: @ 81225A4
- push {lr}
- ldr r2, _081225C8 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _081225CC @ =sub_812238C
- movs r0, 0x4
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _081225D0 @ =sub_8122530
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_081225C8: .4byte gPaletteFade
-_081225CC: .4byte sub_812238C
-_081225D0: .4byte sub_8122530
- thumb_func_end sub_81225A4
-
- thumb_func_start sub_81225D4
-sub_81225D4: @ 81225D4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0812263C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08122632
- ldr r2, _08122640 @ =gSprites
- ldr r1, _08122644 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xE]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r3, 0
- bl DestroyTask
- ldr r0, _08122648 @ =0x0201b000
- ldr r1, _0812264C @ =0x00000262
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08122650 @ =gPlayerParty
- ldr r1, _08122654 @ =gPlayerPartyCount
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08122658 @ =sub_81225A4
- str r5, [sp]
- adds r1, r4, 0
- bl sub_809D8BC
-_08122632:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812263C: .4byte gPaletteFade
-_08122640: .4byte gSprites
-_08122644: .4byte gTasks
-_08122648: .4byte 0x0201b000
-_0812264C: .4byte 0x00000262
-_08122650: .4byte gPlayerParty
-_08122654: .4byte gPlayerPartyCount
-_08122658: .4byte sub_81225A4
- thumb_func_end sub_81225D4
-
- thumb_func_start sub_812265C
-sub_812265C: @ 812265C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0812268C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122690 @ =sub_81225D4
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812268C: .4byte gTasks
-_08122690: .4byte sub_81225D4
- thumb_func_end sub_812265C
-
- thumb_func_start sub_8122694
-sub_8122694: @ 8122694
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r3, _081226D4 @ =gUnknown_02039270
- ldr r2, _081226D8 @ =gUnknown_03005CE0
-_081226A0:
- adds r1, r4, r3
- ldrb r0, [r1]
- cmp r0, 0
- bne _081226DC
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r1]
- ldrb r0, [r2]
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 25
- movs r2, 0xE0
- lsls r2, 21
- adds r1, r2
- lsrs r1, 24
- bl sub_806BC3C
- cmp r4, 0x2
- bne _081226CC
- adds r0, r5, 0
- bl sub_806C890
-_081226CC:
- adds r0, r5, 0
- bl sub_8122838
- b _08122716
- .align 2, 0
-_081226D4: .4byte gUnknown_02039270
-_081226D8: .4byte gUnknown_03005CE0
-_081226DC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081226A0
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x14
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- bl sub_806D5A4
- ldr r0, _0812271C @ =gOtherText_NoMoreThreePoke
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08122720 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122724 @ =sub_8122728
- str r1, [r0]
-_08122716:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812271C: .4byte gOtherText_NoMoreThreePoke
-_08122720: .4byte gTasks
-_08122724: .4byte sub_8122728
- thumb_func_end sub_8122694
-
- thumb_func_start sub_8122728
-sub_8122728: @ 8122728
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08122768 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08122760
- ldr r0, _0812276C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0812274A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08122760
-_0812274A:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- adds r0, r4, 0
- bl sub_8122838
-_08122760:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122768: .4byte gUnknown_0202E8F6
-_0812276C: .4byte gMain
- thumb_func_end sub_8122728
-
- thumb_func_start sub_8122770
-sub_8122770: @ 8122770
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r5, _08122798 @ =gUnknown_03005CE0
- ldr r3, _0812279C @ =gUnknown_02039270
-_0812277C:
- adds r2, r4, r3
- ldrb r1, [r2]
- ldrb r0, [r5]
- adds r0, 0x1
- cmp r1, r0
- bne _081227B4
- movs r1, 0
- strb r1, [r2]
- cmp r4, 0
- beq _081227A0
- cmp r4, 0x1
- beq _081227AC
- b _081227BE
- .align 2, 0
-_08122798: .4byte gUnknown_03005CE0
-_0812279C: .4byte gUnknown_02039270
-_081227A0:
- ldrb r0, [r3, 0x1]
- strb r0, [r3]
- ldrb r0, [r3, 0x2]
- strb r0, [r3, 0x1]
- strb r4, [r3, 0x2]
- b _081227BE
-_081227AC:
- ldrb r0, [r3, 0x2]
- strb r0, [r3, 0x1]
- strb r1, [r3, 0x2]
- b _081227BE
-_081227B4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0812277C
-_081227BE:
- ldrb r0, [r5]
- movs r1, 0x70
- bl sub_806BC3C
- ldr r4, _081227F8 @ =gUnknown_02039270
- ldrb r0, [r4]
- cmp r0, 0
- beq _081227DA
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1C
- bl sub_806BC3C
-_081227DA:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _081227EC
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2A
- bl sub_806BC3C
-_081227EC:
- adds r0, r6, 0
- bl sub_8122838
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081227F8: .4byte gUnknown_02039270
- thumb_func_end sub_8122770
-
- thumb_func_start sub_81227FC
-sub_81227FC: @ 81227FC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _08122830 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122834 @ =sub_81222B0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122830: .4byte gTasks
-_08122834: .4byte sub_81222B0
- thumb_func_end sub_81227FC
-
- thumb_func_start sub_8122838
-sub_8122838: @ 8122838
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81227FC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8122838
-
- thumb_func_start sub_8122854
-sub_8122854: @ 8122854
- push {r4,lr}
- ldr r1, _08122874 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _081228E0
- lsls r0, 2
- ldr r1, _08122878 @ =_0812287C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08122874: .4byte 0x0201b000
-_08122878: .4byte _0812287C
- .align 2, 0
-_0812287C:
- .4byte _08122890
- .4byte _081228A4
- .4byte _081228AA
- .4byte _081228BE
- .4byte _081228D8
-_08122890:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_81228E8
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _081228CA
-_081228A4:
- bl sub_806DA98
- b _081228C2
-_081228AA:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_8122950
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _081228CA
-_081228BE:
- bl sub_81229B8
-_081228C2:
- ldr r1, _081228D4 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
-_081228CA:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _081228E0
- .align 2, 0
-_081228D4: .4byte 0x0201b000
-_081228D8:
- bl sub_806B908
- movs r0, 0x1
- b _081228E2
-_081228E0:
- movs r0, 0
-_081228E2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8122854
-
- thumb_func_start sub_81228E8
-sub_81228E8: @ 81228E8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_081228F0:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08122948 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08122912
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x3
- adds r3, r4, 0
- bl sub_806D880
-_08122912:
- ldr r0, _0812294C @ =gUnknown_02023A00
- lsls r1, r5, 5
- adds r3, r1, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _08122936
- adds r4, r5, 0x3
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x3
- bl sub_806D99C
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_806D50C
-_08122936:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081228F0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08122948: .4byte gPlayerParty
-_0812294C: .4byte gUnknown_02023A00
- thumb_func_end sub_81228E8
-
- thumb_func_start sub_8122950
-sub_8122950: @ 8122950
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_08122958:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _081229B0 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08122984
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_806DCD4
-_08122984:
- ldr r0, _081229B4 @ =gUnknown_02023A00
- lsls r1, r5, 5
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, 0
- beq _0812299E
- adds r1, r5, 0x3
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r2, 0x2]
- adds r0, r6, 0
- bl sub_806DCD4
-_0812299E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08122958
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081229B0: .4byte gPlayerParty
-_081229B4: .4byte gUnknown_02023A00
- thumb_func_end sub_8122950
-
- thumb_func_start sub_81229B8
-sub_81229B8: @ 81229B8
- push {r4-r7,lr}
- movs r5, 0
- movs r7, 0x64
- ldr r6, _08122A00 @ =gPlayerParty
-_081229C0:
- adds r0, r5, 0
- muls r0, r7
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08122A36
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_806E4A4
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08122A04
- cmp r0, 0x6
- beq _08122A04
- subs r2, r0, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_806E104
- b _08122A12
- .align 2, 0
-_08122A00: .4byte gPlayerParty
-_08122A04:
- adds r2, r5, 0
- muls r2, r7
- adds r2, r6
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_806E294
-_08122A12:
- adds r4, r5, 0
- muls r4, r7
- adds r4, r6
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_806E3C0
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_806E050
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_806E630
-_08122A36:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081229C0
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81229B8
-
- thumb_func_start sub_8122A48
-sub_8122A48: @ 8122A48
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08122AA0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08122A98
- ldr r0, _08122AA4 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- movs r0, 0x1E
- strh r0, [r4, 0x8]
- ldr r5, _08122AA8 @ =gUnknown_02023A00
- ldrh r1, [r5]
- adds r0, r6, 0
- movs r2, 0
- bl sub_806D4AC
- ldrh r1, [r5, 0x20]
- adds r0, r6, 0
- movs r2, 0x1
- bl sub_806D4AC
- adds r5, 0x40
- ldrh r1, [r5]
- adds r0, r6, 0
- movs r2, 0x2
- bl sub_806D4AC
- ldr r0, _08122AAC @ =sub_8122AB8
- str r0, [r4]
- ldr r0, _08122AB0 @ =0x0201b000
- ldr r1, _08122AB4 @ =0x00000261
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_08122A98:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08122AA0: .4byte gPaletteFade
-_08122AA4: .4byte gTasks
-_08122AA8: .4byte gUnknown_02023A00
-_08122AAC: .4byte sub_8122AB8
-_08122AB0: .4byte 0x0201b000
-_08122AB4: .4byte 0x00000261
- thumb_func_end sub_8122A48
-
- thumb_func_start sub_8122AB8
-sub_8122AB8: @ 8122AB8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08122AFC @ =gUnknown_02023A00
- ldrh r1, [r0, 0x20]
- adds r0, 0x40
- ldrh r2, [r0]
- adds r0, r4, 0
- bl sub_806D3B4
- ldr r1, _08122B00 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08122AF4
- ldr r0, _08122B04 @ =sub_8122B10
- str r0, [r1]
- ldr r0, _08122B08 @ =0x0201b000
- ldr r1, _08122B0C @ =0x00000261
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- movs r0, 0x78
- bl PlaySE
-_08122AF4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122AFC: .4byte gUnknown_02023A00
-_08122B00: .4byte gTasks
-_08122B04: .4byte sub_8122B10
-_08122B08: .4byte 0x0201b000
-_08122B0C: .4byte 0x00000261
- thumb_func_end sub_8122AB8
-
- thumb_func_start sub_8122B10
-sub_8122B10: @ 8122B10
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- mov r8, r0
- ldr r1, _08122B5C @ =gUnknown_02023A00
- mov r10, r1
- ldr r2, _08122B60 @ =gStringVar1
- mov r9, r2
-_08122B2E:
- mov r1, r8
- lsls r0, r1, 5
- mov r2, r10
- adds r6, r0, r2
- ldrh r1, [r6]
- adds r7, r0, 0
- cmp r1, 0
- beq _08122BDA
- mov r4, r8
- adds r4, 0x3
- lsls r0, r4, 24
- lsrs r5, r0, 24
- ldrh r2, [r6, 0x10]
- ldrh r3, [r6, 0x12]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_806E420
- ldrh r0, [r6, 0x10]
- cmp r0, 0
- bne _08122B64
- movs r2, 0x7
- b _08122B76
- .align 2, 0
-_08122B5C: .4byte gUnknown_02023A00
-_08122B60: .4byte gStringVar1
-_08122B64:
- ldr r1, _08122B88 @ =gUnknown_02023A14
- adds r0, r7, r1
- ldr r0, [r0]
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08122B8C
-_08122B76:
- lsls r0, r4, 24
- lsrs r0, 24
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x3
- bl sub_806E104
- b _08122B96
- .align 2, 0
-_08122B88: .4byte gUnknown_02023A14
-_08122B8C:
- ldrb r2, [r6, 0xF]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_806E1F4
-_08122B96:
- mov r2, r10
- adds r6, r7, r2
- ldrh r0, [r6]
- ldrb r1, [r6, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _08122C0C @ =gUnknown_02023A04
- adds r5, r7, r2
- str r5, [sp]
- movs r2, 0x3
- adds r3, r4, 0
- bl sub_806E35C
- mov r0, r9
- adds r1, r5, 0
- bl StringCopy
- mov r0, r9
- bl StringGetEnd10
- mov r0, r9
- bl sub_814A568
- adds r0, r4, 0
- movs r1, 0x3
- mov r2, r9
- bl box_print
- ldrh r2, [r6, 0x10]
- ldrh r3, [r6, 0x12]
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_806E574
-_08122BDA:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x2
- bls _08122B2E
- ldr r1, _08122C10 @ =gTasks
- ldr r2, [sp, 0x4]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122C14 @ =sub_8122C18
- str r1, [r0]
- movs r1, 0
- strh r1, [r0, 0x8]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08122C0C: .4byte gUnknown_02023A04
-_08122C10: .4byte gTasks
-_08122C14: .4byte sub_8122C18
- thumb_func_end sub_8122B10
-
- thumb_func_start sub_8122C18
-sub_8122C18: @ 8122C18
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08122C58 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bne _08122C4E
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08122C5C @ =sub_8122450
- str r0, [r4]
-_08122C4E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122C58: .4byte gTasks
-_08122C5C: .4byte sub_8122450
- thumb_func_end sub_8122C18
-
- thumb_func_start unref_sub_8122C60
-unref_sub_8122C60: @ 8122C60
- push {r4,r5,lr}
- ldr r1, _08122C80 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x7
- bls _08122C76
- b _08122D8A
-_08122C76:
- lsls r0, 2
- ldr r1, _08122C84 @ =_08122C88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08122C80: .4byte 0x0201b000
-_08122C84: .4byte _08122C88
- .align 2, 0
-_08122C88:
- .4byte _08122CA8
- .4byte _08122CE8
- .4byte _08122CEE
- .4byte _08122D02
- .4byte _08122D2C
- .4byte _08122D32
- .4byte _08122D44
- .4byte _08122D5C
-_08122CA8:
- ldr r0, _08122CD0 @ =0x00000266
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _08122CD4 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r3, r0
- bge _08122CDC
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _08122CD8 @ =gPlayerParty
- adds r2, r3
- bl sub_806D90C
- b _08122D84
- .align 2, 0
-_08122CD0: .4byte 0x00000266
-_08122CD4: .4byte gPlayerPartyCount
-_08122CD8: .4byte gPlayerParty
-_08122CDC:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _08122D50
-_08122CE8:
- bl sub_806DA98
- b _08122D48
-_08122CEE:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _08122D50
-_08122D02:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _08122D28 @ =0x00000266
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122D84
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _08122D50
- .align 2, 0
-_08122D28: .4byte 0x00000266
-_08122D2C:
- bl sub_806E334
- b _08122D48
-_08122D32:
- bl sub_806E0C4
- ldr r1, _08122D40 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08122D50
- .align 2, 0
-_08122D40: .4byte 0x0201b000
-_08122D44:
- bl sub_806BCE8
-_08122D48:
- ldr r1, _08122D58 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
-_08122D50:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _08122D8A
- .align 2, 0
-_08122D58: .4byte 0x0201b000
-_08122D5C:
- ldr r0, _08122D80 @ =0x00000266
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122D84
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _08122D8C
- .align 2, 0
-_08122D80: .4byte 0x00000266
-_08122D84:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_08122D8A:
- movs r0, 0
-_08122D8C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8122C60
-
- thumb_func_start sub_8122D94
-sub_8122D94: @ 8122D94
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08122DCC @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122DD0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- adds r2, r0, 0
- cmp r2, 0
- bne _08122DE0
- ldr r1, _08122DD4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x10]
- ldr r1, _08122DD8 @ =gUnknown_08401810
- ldr r2, _08122DDC @ =gUnknown_084017F0
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- b _08122DFA
- .align 2, 0
-_08122DCC: .4byte gUnknown_03005CE0
-_08122DD0: .4byte gPlayerParty
-_08122DD4: .4byte gTasks
-_08122DD8: .4byte gUnknown_08401810
-_08122DDC: .4byte gUnknown_084017F0
-_08122DE0:
- ldr r1, _08122E00 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x10]
- ldr r1, _08122E04 @ =gUnknown_08401810
- ldr r2, _08122E08 @ =gUnknown_084017F0
- movs r0, 0x1
- movs r3, 0
- bl sub_806E750
-_08122DFA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122E00: .4byte gTasks
-_08122E04: .4byte gUnknown_08401810
-_08122E08: .4byte gUnknown_084017F0
- thumb_func_end sub_8122D94
-
- thumb_func_start sub_8122E0C
-sub_8122E0C: @ 8122E0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08122E34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08122E9C
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08122E38
- cmp r0, 0x2
- beq _08122E84
- b _08122E9C
- .align 2, 0
-_08122E34: .4byte gPaletteFade
-_08122E38:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _08122E70 @ =gUnknown_03005CE0
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122E74 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08122E78 @ =gStringVar1
- bl GetMonNickname
- adds r0, r4, 0
- bl sub_8122D94
- ldr r1, _08122E7C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122E80 @ =sub_8122EAC
- str r1, [r0]
- b _08122E9C
- .align 2, 0
-_08122E70: .4byte gUnknown_03005CE0
-_08122E74: .4byte gPlayerParty
-_08122E78: .4byte gStringVar1
-_08122E7C: .4byte gTasks
-_08122E80: .4byte sub_8122EAC
-_08122E84:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08122EA4 @ =gUnknown_03005CE0
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _08122EA8 @ =gSpecialVar_0x8004
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8123138
-_08122E9C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122EA4: .4byte gUnknown_03005CE0
-_08122EA8: .4byte gSpecialVar_0x8004
- thumb_func_end sub_8122E0C
-
- thumb_func_start sub_8122EAC
-sub_8122EAC: @ 8122EAC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, r7, 0
- ldr r0, _08122EE8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08122F6A
- ldr r2, _08122EEC @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08122EF0
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _08122F6A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _08122F6A
- .align 2, 0
-_08122EE8: .4byte gPaletteFade
-_08122EEC: .4byte gMain
-_08122EF0:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08122F12
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08122F6A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _08122F6A
-_08122F12:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08122F5C
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08122F50 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0x10]
- ldr r5, _08122F54 @ =gUnknown_08401810
- ldr r6, _08122F58 @ =gUnknown_084017F0
- bl GetMenuCursorPos
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r7, 0
- bl _call_via_r1
- b _08122F6A
- .align 2, 0
-_08122F50: .4byte gTasks
-_08122F54: .4byte gUnknown_08401810
-_08122F58: .4byte gUnknown_084017F0
-_08122F5C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08122F6A
- adds r0, r4, 0
- bl sub_81230F4
-_08122F6A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8122EAC
-
- thumb_func_start sub_8122F70
-sub_8122F70: @ 8122F70
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08122F88 @ =gSpecialVar_0x8004
- ldr r1, _08122F8C @ =gUnknown_03005CE0
- ldrb r1, [r1]
- strh r1, [r2]
- bl sub_8123138
- pop {r0}
- bx r0
- .align 2, 0
-_08122F88: .4byte gSpecialVar_0x8004
-_08122F8C: .4byte gUnknown_03005CE0
- thumb_func_end sub_8122F70
-
- thumb_func_start sub_8122F90
-sub_8122F90: @ 8122F90
- push {r4,r5,lr}
- ldr r5, _08122FD8 @ =0x0201b260
- ldr r4, _08122FDC @ =gUnknown_020384F0
-_08122F96:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122FF0
- ldrb r0, [r5]
- ldrb r1, [r4]
- bl sub_806C994
- ldrb r0, [r5]
- movs r1, 0
- bl sub_806BF74
- ldrb r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122FE0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08122FE4 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _08122FE8 @ =gUnknown_03005CE0
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r5]
- bl sub_8122D94
- ldr r0, _08122FEC @ =sub_806AEDC
- bl SetMainCallback2
- b _08122FFC
- .align 2, 0
-_08122FD8: .4byte 0x0201b260
-_08122FDC: .4byte gUnknown_020384F0
-_08122FE0: .4byte gPlayerParty
-_08122FE4: .4byte gStringVar1
-_08122FE8: .4byte gUnknown_03005CE0
-_08122FEC: .4byte sub_806AEDC
-_08122FF0:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122F96
-_08122FFC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8122F90
-
- thumb_func_start sub_8123004
-sub_8123004: @ 8123004
- push {lr}
- ldr r2, _08123028 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _0812302C @ =sub_8122EAC
- movs r0, 0x6
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _08123030 @ =sub_8122F90
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08123028: .4byte gPaletteFade
-_0812302C: .4byte sub_8122EAC
-_08123030: .4byte sub_8122F90
- thumb_func_end sub_8123004
-
- thumb_func_start sub_8123034
-sub_8123034: @ 8123034
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0812309C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08123092
- ldr r2, _081230A0 @ =gSprites
- ldr r1, _081230A4 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xE]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r3, 0
- bl DestroyTask
- ldr r0, _081230A8 @ =0x0201b000
- ldr r1, _081230AC @ =0x00000262
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _081230B0 @ =gPlayerParty
- ldr r1, _081230B4 @ =gPlayerPartyCount
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _081230B8 @ =sub_8123004
- str r5, [sp]
- adds r1, r4, 0
- bl sub_809D8BC
-_08123092:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812309C: .4byte gPaletteFade
-_081230A0: .4byte gSprites
-_081230A4: .4byte gTasks
-_081230A8: .4byte 0x0201b000
-_081230AC: .4byte 0x00000262
-_081230B0: .4byte gPlayerParty
-_081230B4: .4byte gPlayerPartyCount
-_081230B8: .4byte sub_8123004
- thumb_func_end sub_8123034
-
- thumb_func_start sub_81230BC
-sub_81230BC: @ 81230BC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _081230EC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081230F0 @ =sub_8123034
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081230EC: .4byte gTasks
-_081230F0: .4byte sub_8123034
- thumb_func_end sub_81230BC
-
- thumb_func_start sub_81230F4
-sub_81230F4: @ 81230F4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x14
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- movs r0, 0xF
- movs r1, 0
- bl sub_806D538
- ldr r1, _08123130 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08123134 @ =sub_8122E0C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08123130: .4byte gTasks
-_08123134: .4byte sub_8122E0C
- thumb_func_end sub_81230F4
-
- thumb_func_start sub_8123138
-sub_8123138: @ 8123138
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08123168 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0812316C @ =sub_8123170
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08123168: .4byte gTasks
-_0812316C: .4byte sub_8123170
- thumb_func_end sub_8123138
-
- thumb_func_start sub_8123170
-sub_8123170: @ 8123170
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0812319C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08123194
- ldr r0, _081231A0 @ =gUnknown_0300485C
- ldr r1, _081231A4 @ =sub_81231AC
- str r1, [r0]
- ldr r0, _081231A8 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08123194:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812319C: .4byte gPaletteFade
-_081231A0: .4byte gUnknown_0300485C
-_081231A4: .4byte sub_81231AC
-_081231A8: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_8123170
-
- thumb_func_start sub_81231AC
-sub_81231AC: @ 81231AC
- push {lr}
- bl pal_fill_black
- ldr r0, _081231C0 @ =sub_81231C4
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_081231C0: .4byte sub_81231C4
- thumb_func_end sub_81231AC
-
- thumb_func_start sub_81231C4
-sub_81231C4: @ 81231C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081231E4
- adds r0, r4, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
-_081231E4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81231C4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest.s b/asm/contest.s
index 78354b363..4a85f3d16 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -11,15 +11,15 @@ nullsub_89: @ 80AB1AC
bx lr
thumb_func_end nullsub_89
- thumb_func_start sub_80AB1B0
-sub_80AB1B0: @ 80AB1B0
- ldr r1, _080AB1B8 @ =gUnknown_0203869A
+ thumb_func_start ResetLinkContestBoolean
+ResetLinkContestBoolean: @ 80AB1B0
+ ldr r1, _080AB1B8 @ =gIsLinkContest
movs r0, 0
strb r0, [r1]
bx lr
.align 2, 0
-_080AB1B8: .4byte gUnknown_0203869A
- thumb_func_end sub_80AB1B0
+_080AB1B8: .4byte gIsLinkContest
+ thumb_func_end ResetLinkContestBoolean
thumb_func_start sub_80AB1BC
sub_80AB1BC: @ 80AB1BC
@@ -302,7 +302,7 @@ _080AB3DE:
movs r1, 0
movs r2, 0x10
bl memset
- ldr r0, _080AB474 @ =gUnknown_0203869A
+ ldr r0, _080AB474 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -338,7 +338,7 @@ _080AB448:
_080AB468: .4byte 0x02019204
_080AB46C: .4byte 0x02019260
_080AB470: .4byte 0x020192d0
-_080AB474: .4byte gUnknown_0203869A
+_080AB474: .4byte gIsLinkContest
_080AB478: .4byte gUnknown_02038696
thumb_func_end sub_80AB398
@@ -420,7 +420,7 @@ _080AB4E0:
adds r0, r1
movs r1, 0
strb r1, [r0]
- bl sub_8040710
+ bl ClearBattleMonForms
bl sub_80AB398
ldr r1, _080AB54C @ =gMain
ldr r0, _080AB550 @ =0x0000043c
@@ -526,7 +526,7 @@ sub_80AB604: @ 80AB604
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080AB648 @ =gUnknown_0203869A
+ ldr r0, _080AB648 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -555,7 +555,7 @@ sub_80AB604: @ 80AB604
str r1, [r0]
b _080AB66A
.align 2, 0
-_080AB648: .4byte gUnknown_0203869A
+_080AB648: .4byte gIsLinkContest
_080AB64C: .4byte gPaletteFade
_080AB650: .4byte sub_80AB678
_080AB654: .4byte gTasks
@@ -868,7 +868,7 @@ _080AB8CC:
bl sub_80B00C8
bl sub_80B0324
bl sub_80B0518
- ldr r1, _080AB928 @ =gUnknown_02024A72
+ ldr r1, _080AB928 @ =gBanksBySide
strb r4, [r1]
movs r0, 0x1
strb r0, [r1, 0x1]
@@ -876,14 +876,14 @@ _080AB8CC:
strb r3, [r1, 0x2]
movs r2, 0x2
strb r2, [r1, 0x3]
- ldr r0, _080AB92C @ =gUnknown_020239F8
+ ldr r0, _080AB92C @ =gBattleTypeFlags
strh r4, [r0]
- ldr r4, _080AB930 @ =gUnknown_02024C07
+ ldr r4, _080AB930 @ =gBankAttacker
strb r2, [r4]
- ldr r0, _080AB934 @ =gUnknown_02024C08
+ ldr r0, _080AB934 @ =gBankTarget
strb r3, [r0]
bl sub_80AE858
- ldr r2, _080AB938 @ =gUnknown_02024BE0
+ ldr r2, _080AB938 @ =gObjectBankIDs
ldrb r1, [r4]
adds r1, r2
strb r0, [r1]
@@ -891,11 +891,11 @@ _080AB8CC:
b _080AB946
.align 2, 0
_080AB924: .4byte 0x02019204
-_080AB928: .4byte gUnknown_02024A72
-_080AB92C: .4byte gUnknown_020239F8
-_080AB930: .4byte gUnknown_02024C07
-_080AB934: .4byte gUnknown_02024C08
-_080AB938: .4byte gUnknown_02024BE0
+_080AB928: .4byte gBanksBySide
+_080AB92C: .4byte gBattleTypeFlags
+_080AB930: .4byte gBankAttacker
+_080AB934: .4byte gBankTarget
+_080AB938: .4byte gObjectBankIDs
_080AB93C:
movs r0, 0
mov r1, r10
@@ -1197,7 +1197,7 @@ sub_80ABB70: @ 80ABB70
lsls r0, 24
cmp r0, 0
bne _080ABBD4
- ldr r0, _080ABBCC @ =gUnknown_020238CC
+ ldr r0, _080ABBCC @ =gDisplayedStringBattle
ldr r1, _080ABBD0 @ =gUnknown_083CAF84
bl StringCopy
b _080ABBDC
@@ -1209,14 +1209,14 @@ _080ABBBC: .4byte 0x02018204
_080ABBC0: .4byte 0x040000d4
_080ABBC4: .4byte 0x84000100
_080ABBC8: .4byte gContestPlayerMonIndex
-_080ABBCC: .4byte gUnknown_020238CC
+_080ABBCC: .4byte gDisplayedStringBattle
_080ABBD0: .4byte gUnknown_083CAF84
_080ABBD4:
- ldr r0, _080ABC20 @ =gUnknown_020238CC
+ ldr r0, _080ABC20 @ =gDisplayedStringBattle
ldr r1, _080ABC24 @ =gUnknown_083CAFAE
bl StringCopy
_080ABBDC:
- ldr r5, _080ABC20 @ =gUnknown_020238CC
+ ldr r5, _080ABC20 @ =gDisplayedStringBattle
ldr r0, _080ABC28 @ =0x02019204
ldrb r1, [r0, 0x1]
adds r1, 0x1
@@ -1247,7 +1247,7 @@ _080ABBDC:
pop {r0}
bx r0
.align 2, 0
-_080ABC20: .4byte gUnknown_020238CC
+_080ABC20: .4byte gDisplayedStringBattle
_080ABC24: .4byte gUnknown_083CAFAE
_080ABC28: .4byte 0x02019204
_080ABC2C: .4byte gStringVar4
@@ -1577,7 +1577,7 @@ _080ABEC6:
ands r5, r0
cmp r5, 0
beq _080ABF08
- bl sub_814A7FC
+ bl DestroyMenuCursor
movs r0, 0x5
bl PlaySE
ldr r0, _080ABF00 @ =gTasks
@@ -1635,7 +1635,7 @@ _080ABF26:
lsls r0, 24
cmp r0, 0
bne _080ABF78
- ldr r0, _080ABF70 @ =gUnknown_020238CC
+ ldr r0, _080ABF70 @ =gDisplayedStringBattle
ldr r1, _080ABF74 @ =gUnknown_083CAF84
bl StringCopy
b _080ABF80
@@ -1643,14 +1643,14 @@ _080ABF26:
_080ABF64: .4byte gUnknown_03004210
_080ABF68: .4byte gUnknown_083CA340
_080ABF6C: .4byte gContestPlayerMonIndex
-_080ABF70: .4byte gUnknown_020238CC
+_080ABF70: .4byte gDisplayedStringBattle
_080ABF74: .4byte gUnknown_083CAF84
_080ABF78:
- ldr r0, _080ABFC8 @ =gUnknown_020238CC
+ ldr r0, _080ABFC8 @ =gDisplayedStringBattle
ldr r1, _080ABFCC @ =gUnknown_083CAFAE
bl StringCopy
_080ABF80:
- ldr r5, _080ABFC8 @ =gUnknown_020238CC
+ ldr r5, _080ABFC8 @ =gDisplayedStringBattle
ldr r0, _080ABFD0 @ =0x02019204
ldrb r1, [r0, 0x1]
adds r1, 0x1
@@ -1683,7 +1683,7 @@ _080ABF80:
str r1, [r0]
b _080AC098
.align 2, 0
-_080ABFC8: .4byte gUnknown_020238CC
+_080ABFC8: .4byte gDisplayedStringBattle
_080ABFCC: .4byte gUnknown_083CAFAE
_080ABFD0: .4byte 0x02019204
_080ABFD4: .4byte gStringVar4
@@ -1806,7 +1806,7 @@ sub_80AC0C8: @ 80AC0C8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080AC120 @ =gUnknown_0203869A
+ ldr r0, _080AC120 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -1843,7 +1843,7 @@ sub_80AC0C8: @ 80AC0C8
bl sub_80AFFE0
b _080AC14E
.align 2, 0
-_080AC120: .4byte gUnknown_0203869A
+_080AC120: .4byte gIsLinkContest
_080AC124: .4byte gContestPlayerMonIndex
_080AC128: .4byte 0x02019260
_080AC12C: .4byte sub_80C8A38
@@ -2173,7 +2173,7 @@ _080AC42C:
ldr r4, _080AC484 @ =0x02019204
strb r6, [r4, 0x11]
ldrb r7, [r4, 0x11]
- ldr r0, _080AC488 @ =gUnknown_0203869A
+ ldr r0, _080AC488 @ =gIsLinkContest
ldrb r1, [r0]
movs r5, 0x1
adds r0, r5, 0
@@ -2210,7 +2210,7 @@ _080AC458:
bl _080AD8CA
.align 2, 0
_080AC484: .4byte 0x02019204
-_080AC488: .4byte gUnknown_0203869A
+_080AC488: .4byte gIsLinkContest
_080AC48C: .4byte sub_80C8C80
_080AC490: .4byte sub_80AD8DC
_080AC494: .4byte gTasks
@@ -2294,7 +2294,7 @@ _080AC534:
lsls r4, 2
mov r9, r4
ldr r4, _080AC5C4 @ =0x02019348
- ldr r1, _080AC5C8 @ =gUnknown_02024E84
+ ldr r1, _080AC5C8 @ =gBattleMonForms
movs r2, 0
adds r0, r1, 0x3
_080AC542:
@@ -2343,8 +2343,8 @@ _080AC542:
lsls r4, 3
adds r4, r0
strh r5, [r4, 0xC]
- ldr r1, _080AC5E0 @ =gUnknown_02024BE0
- ldr r0, _080AC5E4 @ =gUnknown_02024C07
+ ldr r1, _080AC5E0 @ =gObjectBankIDs
+ ldr r0, _080AC5E4 @ =gBankAttacker
ldrb r0, [r0]
adds r0, r1
strb r5, [r0]
@@ -2358,14 +2358,14 @@ _080AC542:
bl _080AD8CA
.align 2, 0
_080AC5C4: .4byte 0x02019348
-_080AC5C8: .4byte gUnknown_02024E84
+_080AC5C8: .4byte gBattleMonForms
_080AC5CC: .4byte 0xfffffebc
_080AC5D0: .4byte gContestMons
_080AC5D4: .4byte gSprites
_080AC5D8: .4byte sub_80AD8FC
_080AC5DC: .4byte gTasks
-_080AC5E0: .4byte gUnknown_02024BE0
-_080AC5E4: .4byte gUnknown_02024C07
+_080AC5E0: .4byte gObjectBankIDs
+_080AC5E4: .4byte gBankAttacker
_080AC5E8:
mov r1, r8
lsls r0, r1, 2
@@ -2531,7 +2531,7 @@ _080AC730:
adds r0, r4, 0
bl sub_80B29B4
adds r0, r4, 0
- bl move_anim_start_t1
+ bl ExecuteMoveAnim
ldr r1, _080AC778 @ =gTasks
mov r3, r8
lsls r0, r3, 2
@@ -2544,10 +2544,10 @@ _080AC730:
.align 2, 0
_080AC778: .4byte gTasks
_080AC77C:
- ldr r0, _080AC7B8 @ =gUnknown_0202F7AC
+ ldr r0, _080AC7B8 @ =gAnimScriptCallback
ldr r0, [r0]
bl _call_via_r0
- ldr r0, _080AC7BC @ =gUnknown_0202F7B1
+ ldr r0, _080AC7BC @ =gAnimScriptActive
ldrb r4, [r0]
cmp r4, 0
beq _080AC790
@@ -2572,8 +2572,8 @@ _080AC790:
strh r0, [r1, 0x8]
bl _080AD8CA
.align 2, 0
-_080AC7B8: .4byte gUnknown_0202F7AC
-_080AC7BC: .4byte gUnknown_0202F7B1
+_080AC7B8: .4byte gAnimScriptCallback
+_080AC7BC: .4byte gAnimScriptActive
_080AC7C0: .4byte 0x02019204
_080AC7C4: .4byte gTasks
_080AC7C8:
@@ -4763,7 +4763,7 @@ _080AD988:
beq _080ADA08
b _080ADA10
_080AD98E:
- ldr r0, _080AD9D8 @ =gUnknown_0203869A
+ ldr r0, _080AD9D8 @ =gIsLinkContest
ldrb r1, [r0]
movs r6, 0x1
adds r0, r6, 0
@@ -4795,7 +4795,7 @@ _080AD9B8:
strh r6, [r5, 0x8]
b _080ADA10
.align 2, 0
-_080AD9D8: .4byte gUnknown_0203869A
+_080AD9D8: .4byte gIsLinkContest
_080AD9DC: .4byte 0x02019204
_080AD9E0: .4byte sub_80C8C80
_080AD9E4: .4byte sub_80AD8DC
@@ -5473,7 +5473,7 @@ sub_80ADEEC: @ 80ADEEC
ble _080ADF40
movs r0, 0
strh r0, [r4, 0x8]
- ldr r0, _080ADF24 @ =gUnknown_0203869A
+ ldr r0, _080ADF24 @ =gIsLinkContest
ldrb r0, [r0]
movs r1, 0x1
ands r1, r0
@@ -5483,7 +5483,7 @@ sub_80ADEEC: @ 80ADEEC
b _080ADF3E
.align 2, 0
_080ADF20: .4byte gTasks
-_080ADF24: .4byte gUnknown_0203869A
+_080ADF24: .4byte gIsLinkContest
_080ADF28: .4byte sub_80ADF4C
_080ADF2C:
movs r0, 0x1
@@ -5585,7 +5585,7 @@ sub_80ADFD8: @ 80ADFD8
bne _080ADFFC
adds r0, r2, 0
bl DestroyTask
- ldr r0, _080AE004 @ =gUnknown_0300485C
+ ldr r0, _080AE004 @ =gFieldCallback
ldr r1, _080AE008 @ =sub_80AE010
str r1, [r0]
ldr r0, _080AE00C @ =c2_exit_to_overworld_2_switch
@@ -5595,7 +5595,7 @@ _080ADFFC:
bx r0
.align 2, 0
_080AE000: .4byte gPaletteFade
-_080AE004: .4byte gUnknown_0300485C
+_080AE004: .4byte gFieldCallback
_080AE008: .4byte sub_80AE010
_080AE00C: .4byte c2_exit_to_overworld_2_switch
thumb_func_end sub_80ADFD8
@@ -5642,7 +5642,7 @@ _080AE04C:
thumb_func_start sub_80AE054
sub_80AE054: @ 80AE054
push {lr}
- ldr r0, _080AE06C @ =gUnknown_0203869A
+ ldr r0, _080AE06C @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -5655,7 +5655,7 @@ _080AE068:
pop {r0}
bx r0
.align 2, 0
-_080AE06C: .4byte gUnknown_0203869A
+_080AE06C: .4byte gIsLinkContest
_080AE070: .4byte gContestPlayerMonIndex
thumb_func_end sub_80AE054
@@ -5694,7 +5694,7 @@ sub_80AE098: @ 80AE098
bl StringCopy
mov r0, sp
bl StripExtCtrlCodes
- ldr r0, _080AE0F4 @ =gUnknown_0203869A
+ ldr r0, _080AE0F4 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -5726,7 +5726,7 @@ _080AE0CE:
b _080AE108
.align 2, 0
_080AE0F0: .4byte gSaveBlock2
-_080AE0F4: .4byte gUnknown_0203869A
+_080AE0F4: .4byte gIsLinkContest
_080AE0F8: .4byte gContestPlayerMonIndex
_080AE0FC: .4byte gUnknown_0203857D
_080AE100:
@@ -5768,7 +5768,7 @@ _080AE108:
bl GetMonData
mov r0, sp
bl StringGetEnd10
- ldr r0, _080AE188 @ =gUnknown_0203869A
+ ldr r0, _080AE188 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -5791,7 +5791,7 @@ _080AE108:
_080AE17C: .4byte gContestMons
_080AE180: .4byte gContestPlayerMonIndex
_080AE184: .4byte gPlayerParty
-_080AE188: .4byte gUnknown_0203869A
+_080AE188: .4byte gIsLinkContest
_080AE18C:
mov r0, sp
ldrb r2, [r0, 0x5]
@@ -6359,7 +6359,7 @@ sub_80AE5D4: @ 80AE5D4
lsrs r4, r0, 24
lsls r2, 24
lsrs r2, 24
- ldr r3, _080AE660 @ =gUnknown_020238CC
+ ldr r3, _080AE660 @ =gDisplayedStringBattle
ldr r1, _080AE664 @ =gEmptyString_81E72B0
adds r0, r3, 0
bl sub_80AE598
@@ -6374,7 +6374,7 @@ sub_80AE5D4: @ 80AE5D4
movs r0, 0xBA
strb r0, [r3]
adds r3, 0x1
- ldr r0, _080AE668 @ =gUnknown_0203869A
+ ldr r0, _080AE668 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -6393,7 +6393,7 @@ sub_80AE5D4: @ 80AE5D4
adds r0, r3, 0
bl StringCopy
ldr r0, _080AE670 @ =gUnknown_03004210
- ldr r1, _080AE660 @ =gUnknown_020238CC
+ ldr r1, _080AE660 @ =gDisplayedStringBattle
ldr r2, _080AE674 @ =gUnknown_02038696
adds r2, r4, r2
ldrb r4, [r2]
@@ -6420,9 +6420,9 @@ sub_80AE5D4: @ 80AE5D4
bl sub_8004D04
b _080AE6B0
.align 2, 0
-_080AE660: .4byte gUnknown_020238CC
+_080AE660: .4byte gDisplayedStringBattle
_080AE664: .4byte gEmptyString_81E72B0
-_080AE668: .4byte gUnknown_0203869A
+_080AE668: .4byte gIsLinkContest
_080AE66C: .4byte gLinkPlayers
_080AE670: .4byte gUnknown_03004210
_080AE674: .4byte gUnknown_02038696
@@ -6434,7 +6434,7 @@ _080AE67C:
adds r0, r3, 0
bl StringCopy
ldr r0, _080AE6BC @ =gUnknown_03004210
- ldr r1, _080AE6C0 @ =gUnknown_020238CC
+ ldr r1, _080AE6C0 @ =gDisplayedStringBattle
ldr r2, _080AE6C4 @ =gUnknown_02038696
adds r2, r4, r2
ldrb r4, [r2]
@@ -6460,7 +6460,7 @@ _080AE6B0:
.align 2, 0
_080AE6B8: .4byte gUnknown_0203857D
_080AE6BC: .4byte gUnknown_03004210
-_080AE6C0: .4byte gUnknown_020238CC
+_080AE6C0: .4byte gDisplayedStringBattle
_080AE6C4: .4byte gUnknown_02038696
_080AE6C8: .4byte gUnknown_083CA310
thumb_func_end sub_80AE5D4
@@ -6490,7 +6490,7 @@ sub_80AE6E4: @ 80AE6E4
lsrs r4, 24
lsls r2, 24
lsrs r2, 24
- ldr r3, _080AE75C @ =gUnknown_020238CC
+ ldr r3, _080AE75C @ =gDisplayedStringBattle
movs r0, 0xFC
strb r0, [r3]
movs r0, 0x6
@@ -6507,7 +6507,7 @@ sub_80AE6E4: @ 80AE6E4
movs r0, 0xFF
strb r0, [r3]
ldr r0, _080AE764 @ =gUnknown_03004210
- ldr r1, _080AE75C @ =gUnknown_020238CC
+ ldr r1, _080AE75C @ =gDisplayedStringBattle
ldr r2, _080AE768 @ =gUnknown_02038696
adds r4, r2
ldrb r4, [r4]
@@ -6540,7 +6540,7 @@ sub_80AE6E4: @ 80AE6E4
pop {r0}
bx r0
.align 2, 0
-_080AE75C: .4byte gUnknown_020238CC
+_080AE75C: .4byte gDisplayedStringBattle
_080AE760: .4byte gContestMons + 0x2
_080AE764: .4byte gUnknown_03004210
_080AE768: .4byte gUnknown_02038696
@@ -6900,7 +6900,7 @@ sub_80AE9FC: @ 80AE9FC
str r4, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r5, 0
mov r1, r8
adds r2, r6, 0
@@ -7941,17 +7941,17 @@ _080AF1FE:
ldrh r0, [r1, 0x6]
cmp r0, 0
bne _080AF228
- ldr r0, _080AF220 @ =gUnknown_020238CC
+ ldr r0, _080AF220 @ =gDisplayedStringBattle
ldr r1, _080AF224 @ =gUnknownText_MissedTurn
adds r2, r3, 0
bl sub_80AE598
b _080AF23A
.align 2, 0
_080AF21C: .4byte 0x02019260
-_080AF220: .4byte gUnknown_020238CC
+_080AF220: .4byte gDisplayedStringBattle
_080AF224: .4byte gUnknownText_MissedTurn
_080AF228:
- ldr r0, _080AF270 @ =gUnknown_020238CC
+ ldr r0, _080AF270 @ =gDisplayedStringBattle
ldrh r2, [r1, 0x6]
movs r1, 0xD
muls r1, r2
@@ -7963,7 +7963,7 @@ _080AF23A:
adds r0, r5, 0
bl sub_80AF2A0
ldr r0, _080AF278 @ =gUnknown_03004210
- ldr r1, _080AF270 @ =gUnknown_020238CC
+ ldr r1, _080AF270 @ =gDisplayedStringBattle
lsls r2, r5, 2
adds r2, r5
lsls r2, 18
@@ -7985,7 +7985,7 @@ _080AF23A:
pop {r0}
bx r0
.align 2, 0
-_080AF270: .4byte gUnknown_020238CC
+_080AF270: .4byte gDisplayedStringBattle
_080AF274: .4byte gMoveNames
_080AF278: .4byte gUnknown_03004210
_080AF27C: .4byte gUnknown_083CA318
@@ -9885,7 +9885,7 @@ _080B004A:
adds r0, r1
lsls r0, 2
adds r0, r7
- ldr r1, _080B00C4 @ =gUnknown_083CA464
+ ldr r1, _080B00C4 @ =gSubspriteTables_83CA464
bl SetSubspriteTables
ldrb r1, [r4, 0x1]
lsls r0, r1, 4
@@ -9914,7 +9914,7 @@ _080B00B4: .4byte gUnknown_083CA3C4
_080B00B8: .4byte gSpriteTemplate_83CA3F4
_080B00BC: .4byte gUnknown_02038696
_080B00C0: .4byte 0x02019338
-_080B00C4: .4byte gUnknown_083CA464
+_080B00C4: .4byte gSubspriteTables_83CA464
thumb_func_end sub_80B0034
thumb_func_start sub_80B00C8
@@ -11237,7 +11237,7 @@ sub_80B09E4: @ 80B09E4
movs r1, 0x3
movs r2, 0xC0
lsls r2, 19
- bl sub_8040F80
+ bl CopySpriteTiles
ldrb r0, [r7]
lsls r3, r0, 2
adds r3, r0
@@ -11253,7 +11253,7 @@ sub_80B09E4: @ 80B09E4
movs r1, 0x3
movs r2, 0xC0
lsls r2, 19
- bl sub_8040F80
+ bl CopySpriteTiles
ldrh r0, [r4, 0x4]
lsls r0, 22
lsrs r0, 17
@@ -14595,7 +14595,7 @@ _080B2470: .4byte 0x02019218
_080B2474: .4byte gUnknown_02038696
_080B2478: .4byte gTasks
_080B247C:
- ldr r0, _080B24C0 @ =gUnknown_0203869A
+ ldr r0, _080B24C0 @ =gIsLinkContest
ldrb r0, [r0]
ands r1, r0
cmp r1, 0
@@ -14625,7 +14625,7 @@ _080B249E:
strh r0, [r5, 0x8]
b _080B24FC
.align 2, 0
-_080B24C0: .4byte gUnknown_0203869A
+_080B24C0: .4byte gIsLinkContest
_080B24C4: .4byte 0x02019204
_080B24C8: .4byte sub_80C8C80
_080B24CC: .4byte sub_80AD8DC
@@ -15034,8 +15034,8 @@ sub_80B2790: @ 80B2790
movs r1, 0
movs r2, 0x14
bl memset
- bl sub_8075624
- ldr r1, _080B27F8 @ =gUnknown_02024E84
+ bl battle_anim_clear_some_data
+ ldr r1, _080B27F8 @ =gBattleMonForms
movs r2, 0
adds r0, r1, 0x3
_080B27D0:
@@ -15057,7 +15057,7 @@ _080B27D0:
.align 2, 0
_080B27F0: .4byte 0x02019260
_080B27F4: .4byte gContestMons
-_080B27F8: .4byte gUnknown_02024E84
+_080B27F8: .4byte gBattleMonForms
_080B27FC:
cmp r5, 0x82
beq _080B2898
@@ -15126,17 +15126,17 @@ _080B2848:
_080B2878: .4byte 0x02019260
_080B287C: .4byte gContestMons
_080B2880:
- ldr r1, _080B2888 @ =gUnknown_0202F7BE
+ ldr r1, _080B2888 @ =gHappinessMoveAnim
movs r0, 0xFF
b _080B28BC
.align 2, 0
-_080B2888: .4byte gUnknown_0202F7BE
+_080B2888: .4byte gHappinessMoveAnim
_080B288C:
- ldr r1, _080B2894 @ =gUnknown_0202F7BE
+ ldr r1, _080B2894 @ =gHappinessMoveAnim
movs r0, 0
b _080B28BC
.align 2, 0
-_080B2894: .4byte gUnknown_0202F7BE
+_080B2894: .4byte gHappinessMoveAnim
_080B2898:
ldr r0, _080B28B0 @ =0x02019204
adds r2, r0, 0
@@ -15223,10 +15223,10 @@ _080B2928: .4byte gContestMons
sub_80B292C: @ 80B292C
push {lr}
ldr r0, _080B2958 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
- ldr r1, _080B295C @ =gUnknown_02024BE0
+ bl CreateInvisibleSpriteWithCallback
+ ldr r1, _080B295C @ =gObjectBankIDs
strb r0, [r1, 0x3]
- ldr r0, _080B2960 @ =gUnknown_02024C08
+ ldr r0, _080B2960 @ =gBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -15241,15 +15241,15 @@ sub_80B292C: @ 80B292C
bx r0
.align 2, 0
_080B2958: .4byte SpriteCallbackDummy
-_080B295C: .4byte gUnknown_02024BE0
-_080B2960: .4byte gUnknown_02024C08
+_080B295C: .4byte gObjectBankIDs
+_080B2960: .4byte gBankTarget
_080B2964: .4byte gSprites
thumb_func_end sub_80B292C
thumb_func_start sub_80B2968
sub_80B2968: @ 80B2968
push {r4,lr}
- ldr r0, _080B29AC @ =gUnknown_02024BE0
+ ldr r0, _080B29AC @ =gObjectBankIDs
ldrb r0, [r0, 0x3]
lsls r4, r0, 4
adds r4, r0
@@ -15280,7 +15280,7 @@ sub_80B2968: @ 80B2968
pop {r0}
bx r0
.align 2, 0
-_080B29AC: .4byte gUnknown_02024BE0
+_080B29AC: .4byte gObjectBankIDs
_080B29B0: .4byte gSprites
thumb_func_end sub_80B2968
@@ -15341,20 +15341,20 @@ _080B29DC:
.4byte _080B2A6C
.4byte _080B2A6C
_080B2A60:
- ldr r1, _080B2A68 @ =gUnknown_02024C08
+ ldr r1, _080B2A68 @ =gBankTarget
movs r0, 0x2
b _080B2A70
.align 2, 0
-_080B2A68: .4byte gUnknown_02024C08
+_080B2A68: .4byte gBankTarget
_080B2A6C:
- ldr r1, _080B2A78 @ =gUnknown_02024C08
+ ldr r1, _080B2A78 @ =gBankTarget
movs r0, 0x3
_080B2A70:
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
-_080B2A78: .4byte gUnknown_02024C08
+_080B2A78: .4byte gBankTarget
thumb_func_end sub_80B29B4
thumb_func_start sub_80B2A7C
@@ -15537,7 +15537,7 @@ _080B2BC4:
adds r1, r4, r1
str r2, [sp]
bl StringCopy
- ldr r0, _080B2C1C @ =gUnknown_0203869A
+ ldr r0, _080B2C1C @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -15556,7 +15556,7 @@ _080B2BC4:
.align 2, 0
_080B2C14: .4byte 0x02015de0
_080B2C18: .4byte gContestMons
-_080B2C1C: .4byte gUnknown_0203869A
+_080B2C1C: .4byte gIsLinkContest
_080B2C20: .4byte gLinkPlayers + 0x8
_080B2C24:
adds r0, r5, 0
diff --git a/asm/contest_ai.s b/asm/contest_ai.s
index a947110ec..c7a67fed9 100644
--- a/asm/contest_ai.s
+++ b/asm/contest_ai.s
@@ -164,7 +164,7 @@ _08128A0E:
ldrh r1, [r1, 0x2]
cmp r1, 0
beq _08128A2C
- ldr r1, _08128A28 @ =gUnknown_08401E60
+ ldr r1, _08128A28 @ =sContestAICmdTable
ldr r0, [r5]
ldrb r0, [r0]
lsls r0, 2
@@ -173,7 +173,7 @@ _08128A0E:
bl _call_via_r0
b _08128A3C
.align 2, 0
-_08128A28: .4byte gUnknown_08401E60
+_08128A28: .4byte sContestAICmdTable
_08128A2C:
adds r0, r4, 0x5
ldrb r2, [r4, 0x4]
@@ -249,8 +249,8 @@ _08128A9A:
_08128AA4: .4byte 0x020192d0
thumb_func_end sub_8128A7C
- thumb_func_start sub_8128AA8
-sub_8128AA8: @ 8128AA8
+ thumb_func_start ContestAICmd_unk_00
+ContestAICmd_unk_00: @ 8128AA8
push {lr}
ldr r2, _08128AD0 @ =0x020192e4
adds r1, r2, 0x5
@@ -287,10 +287,10 @@ _08128ADE:
str r0, [r3]
pop {r0}
bx r0
- thumb_func_end sub_8128AA8
+ thumb_func_end ContestAICmd_unk_00
- thumb_func_start contest_ai_get_turn
-contest_ai_get_turn: @ 8128AF0
+ thumb_func_start ContestAICmd_get_turn
+ContestAICmd_get_turn: @ 8128AF0
ldr r1, _08128B04 @ =0x020192e4
adds r0, r1, 0
subs r0, 0xE0
@@ -304,12 +304,12 @@ contest_ai_get_turn: @ 8128AF0
.align 2, 0
_08128B04: .4byte 0x020192e4
_08128B08: .4byte gAIScriptPtr
- thumb_func_end contest_ai_get_turn
+ thumb_func_end ContestAICmd_get_turn
- thumb_func_start sub_8128B0C
-sub_8128B0C: @ 8128B0C
+ thumb_func_start ContestAICmd_unk_02
+ContestAICmd_unk_02: @ 8128B0C
push {lr}
- bl contest_ai_get_turn
+ bl ContestAICmd_get_turn
ldr r0, _08128B3C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -339,12 +339,12 @@ _08128B44:
_08128B48:
pop {r0}
bx r0
- thumb_func_end sub_8128B0C
+ thumb_func_end ContestAICmd_unk_02
- thumb_func_start sub_8128B4C
-sub_8128B4C: @ 8128B4C
+ thumb_func_start ContestAICmd_unk_03
+ContestAICmd_unk_03: @ 8128B4C
push {lr}
- bl contest_ai_get_turn
+ bl ContestAICmd_get_turn
ldr r0, _08128B7C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -374,12 +374,12 @@ _08128B84:
_08128B88:
pop {r0}
bx r0
- thumb_func_end sub_8128B4C
+ thumb_func_end ContestAICmd_unk_03
- thumb_func_start sub_8128B8C
-sub_8128B8C: @ 8128B8C
+ thumb_func_start ContestAICmd_unk_04
+ContestAICmd_unk_04: @ 8128B8C
push {lr}
- bl contest_ai_get_turn
+ bl ContestAICmd_get_turn
ldr r0, _08128BBC @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -409,12 +409,12 @@ _08128BC4:
_08128BC8:
pop {r0}
bx r0
- thumb_func_end sub_8128B8C
+ thumb_func_end ContestAICmd_unk_04
- thumb_func_start sub_8128BCC
-sub_8128BCC: @ 8128BCC
+ thumb_func_start ContestAICmd_unk_05
+ContestAICmd_unk_05: @ 8128BCC
push {lr}
- bl contest_ai_get_turn
+ bl ContestAICmd_get_turn
ldr r0, _08128BFC @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -444,10 +444,10 @@ _08128C04:
_08128C08:
pop {r0}
bx r0
- thumb_func_end sub_8128BCC
+ thumb_func_end ContestAICmd_unk_05
- thumb_func_start contest_ai_get_excitement
-contest_ai_get_excitement: @ 8128C0C
+ thumb_func_start ContestAICmd_get_excitement
+ContestAICmd_get_excitement: @ 8128C0C
ldr r1, _08128C24 @ =0x020192e4
adds r0, r1, 0
subs r0, 0xE0
@@ -463,12 +463,12 @@ contest_ai_get_excitement: @ 8128C0C
.align 2, 0
_08128C24: .4byte 0x020192e4
_08128C28: .4byte gAIScriptPtr
- thumb_func_end contest_ai_get_excitement
+ thumb_func_end ContestAICmd_get_excitement
- thumb_func_start sub_8128C2C
-sub_8128C2C: @ 8128C2C
+ thumb_func_start ContestAICmd_unk_07
+ContestAICmd_unk_07: @ 8128C2C
push {lr}
- bl contest_ai_get_excitement
+ bl ContestAICmd_get_excitement
ldr r0, _08128C5C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -498,12 +498,12 @@ _08128C64:
_08128C68:
pop {r0}
bx r0
- thumb_func_end sub_8128C2C
+ thumb_func_end ContestAICmd_unk_07
- thumb_func_start sub_8128C6C
-sub_8128C6C: @ 8128C6C
+ thumb_func_start ContestAICmd_unk_08
+ContestAICmd_unk_08: @ 8128C6C
push {lr}
- bl contest_ai_get_excitement
+ bl ContestAICmd_get_excitement
ldr r0, _08128C9C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -533,12 +533,12 @@ _08128CA4:
_08128CA8:
pop {r0}
bx r0
- thumb_func_end sub_8128C6C
+ thumb_func_end ContestAICmd_unk_08
- thumb_func_start sub_8128CAC
-sub_8128CAC: @ 8128CAC
+ thumb_func_start ContestAICmd_unk_09
+ContestAICmd_unk_09: @ 8128CAC
push {lr}
- bl contest_ai_get_excitement
+ bl ContestAICmd_get_excitement
ldr r0, _08128CDC @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -568,12 +568,12 @@ _08128CE4:
_08128CE8:
pop {r0}
bx r0
- thumb_func_end sub_8128CAC
+ thumb_func_end ContestAICmd_unk_09
- thumb_func_start sub_8128CEC
-sub_8128CEC: @ 8128CEC
+ thumb_func_start ContestAICmd_unk_0A
+ContestAICmd_unk_0A: @ 8128CEC
push {lr}
- bl contest_ai_get_excitement
+ bl ContestAICmd_get_excitement
ldr r0, _08128D1C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -603,10 +603,10 @@ _08128D24:
_08128D28:
pop {r0}
bx r0
- thumb_func_end sub_8128CEC
+ thumb_func_end ContestAICmd_unk_0A
- thumb_func_start contest_ai_get_user_order
-contest_ai_get_user_order: @ 8128D2C
+ thumb_func_start ContestAICmd_get_user_order
+ContestAICmd_get_user_order: @ 8128D2C
ldr r1, _08128D48 @ =0x020192e4
adds r2, r1, 0
adds r2, 0x41
@@ -624,12 +624,12 @@ contest_ai_get_user_order: @ 8128D2C
.align 2, 0
_08128D48: .4byte 0x020192e4
_08128D4C: .4byte gAIScriptPtr
- thumb_func_end contest_ai_get_user_order
+ thumb_func_end ContestAICmd_get_user_order
- thumb_func_start sub_8128D50
-sub_8128D50: @ 8128D50
+ thumb_func_start ContestAICmd_unk_0C
+ContestAICmd_unk_0C: @ 8128D50
push {lr}
- bl contest_ai_get_user_order
+ bl ContestAICmd_get_user_order
ldr r0, _08128D80 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -659,12 +659,12 @@ _08128D88:
_08128D8C:
pop {r0}
bx r0
- thumb_func_end sub_8128D50
+ thumb_func_end ContestAICmd_unk_0C
- thumb_func_start sub_8128D90
-sub_8128D90: @ 8128D90
+ thumb_func_start ContestAICmd_unk_0D
+ContestAICmd_unk_0D: @ 8128D90
push {lr}
- bl contest_ai_get_user_order
+ bl ContestAICmd_get_user_order
ldr r0, _08128DC0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -694,12 +694,12 @@ _08128DC8:
_08128DCC:
pop {r0}
bx r0
- thumb_func_end sub_8128D90
+ thumb_func_end ContestAICmd_unk_0D
- thumb_func_start sub_8128DD0
-sub_8128DD0: @ 8128DD0
+ thumb_func_start ContestAICmd_unk_0E
+ContestAICmd_unk_0E: @ 8128DD0
push {lr}
- bl contest_ai_get_user_order
+ bl ContestAICmd_get_user_order
ldr r0, _08128E00 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -729,12 +729,12 @@ _08128E08:
_08128E0C:
pop {r0}
bx r0
- thumb_func_end sub_8128DD0
+ thumb_func_end ContestAICmd_unk_0E
- thumb_func_start sub_8128E10
-sub_8128E10: @ 8128E10
+ thumb_func_start ContestAICmd_unk_0F
+ContestAICmd_unk_0F: @ 8128E10
push {lr}
- bl contest_ai_get_user_order
+ bl ContestAICmd_get_user_order
ldr r0, _08128E40 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -764,10 +764,10 @@ _08128E48:
_08128E4C:
pop {r0}
bx r0
- thumb_func_end sub_8128E10
+ thumb_func_end ContestAICmd_unk_0F
- thumb_func_start contest_ai_get_user_condition_maybe
-contest_ai_get_user_condition_maybe: @ 8128E50
+ thumb_func_start ContestAICmd_get_user_condition_maybe
+ContestAICmd_get_user_condition_maybe: @ 8128E50
push {r4,lr}
ldr r4, _08128E88 @ =0x020192e4
adds r0, r4, 0
@@ -797,12 +797,12 @@ contest_ai_get_user_condition_maybe: @ 8128E50
.align 2, 0
_08128E88: .4byte 0x020192e4
_08128E8C: .4byte gAIScriptPtr
- thumb_func_end contest_ai_get_user_condition_maybe
+ thumb_func_end ContestAICmd_get_user_condition_maybe
- thumb_func_start sub_8128E90
-sub_8128E90: @ 8128E90
+ thumb_func_start ContestAICmd_unk_11
+ContestAICmd_unk_11: @ 8128E90
push {lr}
- bl contest_ai_get_user_condition_maybe
+ bl ContestAICmd_get_user_condition_maybe
ldr r0, _08128EC0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -832,12 +832,12 @@ _08128EC8:
_08128ECC:
pop {r0}
bx r0
- thumb_func_end sub_8128E90
+ thumb_func_end ContestAICmd_unk_11
- thumb_func_start sub_8128ED0
-sub_8128ED0: @ 8128ED0
+ thumb_func_start ContestAICmd_unk_12
+ContestAICmd_unk_12: @ 8128ED0
push {lr}
- bl contest_ai_get_user_condition_maybe
+ bl ContestAICmd_get_user_condition_maybe
ldr r0, _08128F00 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -867,12 +867,12 @@ _08128F08:
_08128F0C:
pop {r0}
bx r0
- thumb_func_end sub_8128ED0
+ thumb_func_end ContestAICmd_unk_12
- thumb_func_start sub_8128F10
-sub_8128F10: @ 8128F10
+ thumb_func_start ContestAICmd_unk_13
+ContestAICmd_unk_13: @ 8128F10
push {lr}
- bl contest_ai_get_user_condition_maybe
+ bl ContestAICmd_get_user_condition_maybe
ldr r0, _08128F40 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -902,12 +902,12 @@ _08128F48:
_08128F4C:
pop {r0}
bx r0
- thumb_func_end sub_8128F10
+ thumb_func_end ContestAICmd_unk_13
- thumb_func_start sub_8128F50
-sub_8128F50: @ 8128F50
+ thumb_func_start ContestAICmd_unk_14
+ContestAICmd_unk_14: @ 8128F50
push {lr}
- bl contest_ai_get_user_condition_maybe
+ bl ContestAICmd_get_user_condition_maybe
ldr r0, _08128F80 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -937,10 +937,10 @@ _08128F88:
_08128F8C:
pop {r0}
bx r0
- thumb_func_end sub_8128F50
+ thumb_func_end ContestAICmd_unk_14
- thumb_func_start sub_8128F90
-sub_8128F90: @ 8128F90
+ thumb_func_start ContestAICmd_unk_15
+ContestAICmd_unk_15: @ 8128F90
ldr r2, _08128FB4 @ =0x020192e4
adds r0, r2, 0
adds r0, 0x41
@@ -961,12 +961,12 @@ sub_8128F90: @ 8128F90
.align 2, 0
_08128FB4: .4byte 0x020192e4
_08128FB8: .4byte gAIScriptPtr
- thumb_func_end sub_8128F90
+ thumb_func_end ContestAICmd_unk_15
- thumb_func_start sub_8128FBC
-sub_8128FBC: @ 8128FBC
+ thumb_func_start ContestAICmd_unk_16
+ContestAICmd_unk_16: @ 8128FBC
push {r4,r5,lr}
- bl sub_8128F90
+ bl ContestAICmd_unk_15
ldr r2, _08128FF4 @ =0x020192e4
ldr r4, _08128FF8 @ =gAIScriptPtr
ldr r3, [r4]
@@ -1002,12 +1002,12 @@ _08129000:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_8128FBC
+ thumb_func_end ContestAICmd_unk_16
- thumb_func_start sub_8129008
-sub_8129008: @ 8129008
+ thumb_func_start ContestAICmd_unk_17
+ContestAICmd_unk_17: @ 8129008
push {r4,r5,lr}
- bl sub_8128F90
+ bl ContestAICmd_unk_15
ldr r2, _08129040 @ =0x020192e4
ldr r4, _08129044 @ =gAIScriptPtr
ldr r3, [r4]
@@ -1043,12 +1043,12 @@ _0812904C:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_8129008
+ thumb_func_end ContestAICmd_unk_17
- thumb_func_start sub_8129054
-sub_8129054: @ 8129054
+ thumb_func_start ContestAICmd_unk_18
+ContestAICmd_unk_18: @ 8129054
push {r4,r5,lr}
- bl sub_8128F90
+ bl ContestAICmd_unk_15
ldr r2, _0812908C @ =0x020192e4
ldr r4, _08129090 @ =gAIScriptPtr
ldr r3, [r4]
@@ -1084,12 +1084,12 @@ _08129098:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_8129054
+ thumb_func_end ContestAICmd_unk_18
- thumb_func_start sub_81290A0
-sub_81290A0: @ 81290A0
+ thumb_func_start ContestAICmd_unk_19
+ContestAICmd_unk_19: @ 81290A0
push {r4,r5,lr}
- bl sub_8128F90
+ bl ContestAICmd_unk_15
ldr r2, _081290D8 @ =0x020192e4
ldr r4, _081290DC @ =gAIScriptPtr
ldr r3, [r4]
@@ -1125,10 +1125,10 @@ _081290E4:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_81290A0
+ thumb_func_end ContestAICmd_unk_19
- thumb_func_start sub_81290EC
-sub_81290EC: @ 81290EC
+ thumb_func_start ContestAICmd_unk_1A
+ContestAICmd_unk_1A: @ 81290EC
ldr r2, _08129108 @ =0x020192e4
ldr r1, _0812910C @ =gUnknown_02038670
adds r0, r2, 0
@@ -1147,12 +1147,12 @@ sub_81290EC: @ 81290EC
_08129108: .4byte 0x020192e4
_0812910C: .4byte gUnknown_02038670
_08129110: .4byte gAIScriptPtr
- thumb_func_end sub_81290EC
+ thumb_func_end ContestAICmd_unk_1A
- thumb_func_start sub_8129114
-sub_8129114: @ 8129114
+ thumb_func_start ContestAICmd_unk_1B
+ContestAICmd_unk_1B: @ 8129114
push {r4,r5,lr}
- bl sub_81290EC
+ bl ContestAICmd_unk_1A
ldr r2, _0812914C @ =0x020192e4
ldr r4, _08129150 @ =gAIScriptPtr
ldr r3, [r4]
@@ -1188,12 +1188,12 @@ _08129158:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_8129114
+ thumb_func_end ContestAICmd_unk_1B
- thumb_func_start sub_8129160
-sub_8129160: @ 8129160
+ thumb_func_start ContestAICmd_unk_1C
+ContestAICmd_unk_1C: @ 8129160
push {r4,r5,lr}
- bl sub_81290EC
+ bl ContestAICmd_unk_1A
ldr r2, _08129198 @ =0x020192e4
ldr r4, _0812919C @ =gAIScriptPtr
ldr r3, [r4]
@@ -1229,12 +1229,12 @@ _081291A4:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_8129160
+ thumb_func_end ContestAICmd_unk_1C
- thumb_func_start sub_81291AC
-sub_81291AC: @ 81291AC
+ thumb_func_start ContestAICmd_unk_1D
+ContestAICmd_unk_1D: @ 81291AC
push {r4,r5,lr}
- bl sub_81290EC
+ bl ContestAICmd_unk_1A
ldr r2, _081291E4 @ =0x020192e4
ldr r4, _081291E8 @ =gAIScriptPtr
ldr r3, [r4]
@@ -1270,12 +1270,12 @@ _081291F0:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_81291AC
+ thumb_func_end ContestAICmd_unk_1D
- thumb_func_start sub_81291F8
-sub_81291F8: @ 81291F8
+ thumb_func_start ContestAICmd_unk_1E
+ContestAICmd_unk_1E: @ 81291F8
push {r4,r5,lr}
- bl sub_81290EC
+ bl ContestAICmd_unk_1A
ldr r2, _08129230 @ =0x020192e4
ldr r4, _08129234 @ =gAIScriptPtr
ldr r3, [r4]
@@ -1311,10 +1311,10 @@ _0812923C:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_81291F8
+ thumb_func_end ContestAICmd_unk_1E
- thumb_func_start contest_ai_get_contest_type
-contest_ai_get_contest_type: @ 8129244
+ thumb_func_start ContestAICmd_get_contest_type
+ContestAICmd_get_contest_type: @ 8129244
ldr r1, _08129258 @ =0x020192e4
ldr r0, _0812925C @ =gScriptContestCategory
ldrh r0, [r0]
@@ -1328,12 +1328,12 @@ contest_ai_get_contest_type: @ 8129244
_08129258: .4byte 0x020192e4
_0812925C: .4byte gScriptContestCategory
_08129260: .4byte gAIScriptPtr
- thumb_func_end contest_ai_get_contest_type
+ thumb_func_end ContestAICmd_get_contest_type
- thumb_func_start sub_8129264
-sub_8129264: @ 8129264
+ thumb_func_start ContestAICmd_unk_20
+ContestAICmd_unk_20: @ 8129264
push {lr}
- bl contest_ai_get_contest_type
+ bl ContestAICmd_get_contest_type
ldr r0, _08129294 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -1363,12 +1363,12 @@ _0812929C:
_081292A0:
pop {r0}
bx r0
- thumb_func_end sub_8129264
+ thumb_func_end ContestAICmd_unk_20
- thumb_func_start sub_81292A4
-sub_81292A4: @ 81292A4
+ thumb_func_start ContestAICmd_unk_21
+ContestAICmd_unk_21: @ 81292A4
push {lr}
- bl contest_ai_get_contest_type
+ bl ContestAICmd_get_contest_type
ldr r0, _081292D4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -1398,10 +1398,10 @@ _081292DC:
_081292E0:
pop {r0}
bx r0
- thumb_func_end sub_81292A4
+ thumb_func_end ContestAICmd_unk_21
- thumb_func_start contest_ai_get_move_excitement
-contest_ai_get_move_excitement: @ 81292E4
+ thumb_func_start ContestAICmd_get_move_excitement
+ContestAICmd_get_move_excitement: @ 81292E4
push {r4,lr}
ldr r2, _08129318 @ =gContestMons
ldr r4, _0812931C @ =0x020192e4
@@ -1430,12 +1430,12 @@ contest_ai_get_move_excitement: @ 81292E4
_08129318: .4byte gContestMons
_0812931C: .4byte 0x020192e4
_08129320: .4byte gAIScriptPtr
- thumb_func_end contest_ai_get_move_excitement
+ thumb_func_end ContestAICmd_get_move_excitement
- thumb_func_start sub_8129324
-sub_8129324: @ 8129324
+ thumb_func_start ContestAICmd_unk_23
+ContestAICmd_unk_23: @ 8129324
push {r4,lr}
- bl contest_ai_get_move_excitement
+ bl ContestAICmd_get_move_excitement
ldr r0, _08129354 @ =0x020192e4
ldr r3, _08129358 @ =gAIScriptPtr
ldr r2, [r3]
@@ -1467,12 +1467,12 @@ _08129360:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8129324
+ thumb_func_end ContestAICmd_unk_23
- thumb_func_start sub_8129368
-sub_8129368: @ 8129368
+ thumb_func_start ContestAICmd_unk_24
+ContestAICmd_unk_24: @ 8129368
push {r4,lr}
- bl contest_ai_get_move_excitement
+ bl ContestAICmd_get_move_excitement
ldr r0, _08129398 @ =0x020192e4
ldr r3, _0812939C @ =gAIScriptPtr
ldr r2, [r3]
@@ -1504,12 +1504,12 @@ _081293A4:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8129368
+ thumb_func_end ContestAICmd_unk_24
- thumb_func_start sub_81293AC
-sub_81293AC: @ 81293AC
+ thumb_func_start ContestAICmd_unk_25
+ContestAICmd_unk_25: @ 81293AC
push {r4,lr}
- bl contest_ai_get_move_excitement
+ bl ContestAICmd_get_move_excitement
ldr r0, _081293DC @ =0x020192e4
ldr r3, _081293E0 @ =gAIScriptPtr
ldr r2, [r3]
@@ -1541,12 +1541,12 @@ _081293E8:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_81293AC
+ thumb_func_end ContestAICmd_unk_25
- thumb_func_start sub_81293F0
-sub_81293F0: @ 81293F0
+ thumb_func_start ContestAICmd_unk_26
+ContestAICmd_unk_26: @ 81293F0
push {r4,lr}
- bl contest_ai_get_move_excitement
+ bl ContestAICmd_get_move_excitement
ldr r0, _08129420 @ =0x020192e4
ldr r3, _08129424 @ =gAIScriptPtr
ldr r2, [r3]
@@ -1578,10 +1578,10 @@ _0812942C:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_81293F0
+ thumb_func_end ContestAICmd_unk_26
- thumb_func_start contest_ai_get_move_effect
-contest_ai_get_move_effect: @ 8129434
+ thumb_func_start ContestAICmd_get_move_effect
+ContestAICmd_get_move_effect: @ 8129434
ldr r2, _08129460 @ =gContestMons
ldr r3, _08129464 @ =0x020192e4
ldrb r1, [r3, 0x4]
@@ -1609,12 +1609,12 @@ _08129460: .4byte gContestMons
_08129464: .4byte 0x020192e4
_08129468: .4byte gContestMoves
_0812946C: .4byte gAIScriptPtr
- thumb_func_end contest_ai_get_move_effect
+ thumb_func_end ContestAICmd_get_move_effect
- thumb_func_start sub_8129470
-sub_8129470: @ 8129470
+ thumb_func_start ContestAICmd_unk_28
+ContestAICmd_unk_28: @ 8129470
push {lr}
- bl contest_ai_get_move_effect
+ bl ContestAICmd_get_move_effect
ldr r0, _081294A0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -1644,12 +1644,12 @@ _081294A8:
_081294AC:
pop {r0}
bx r0
- thumb_func_end sub_8129470
+ thumb_func_end ContestAICmd_unk_28
- thumb_func_start sub_81294B0
-sub_81294B0: @ 81294B0
+ thumb_func_start ContestAICmd_unk_29
+ContestAICmd_unk_29: @ 81294B0
push {lr}
- bl contest_ai_get_move_effect
+ bl ContestAICmd_get_move_effect
ldr r0, _081294E0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -1679,10 +1679,10 @@ _081294E8:
_081294EC:
pop {r0}
bx r0
- thumb_func_end sub_81294B0
+ thumb_func_end ContestAICmd_unk_29
- thumb_func_start contest_ai_get_move_effect_type
-contest_ai_get_move_effect_type: @ 81294F0
+ thumb_func_start ContestAICmd_get_move_effect_type
+ContestAICmd_get_move_effect_type: @ 81294F0
ldr r2, _08129524 @ =gContestMons
ldr r3, _08129528 @ =0x020192e4
ldrb r1, [r3, 0x4]
@@ -1715,12 +1715,12 @@ _08129528: .4byte 0x020192e4
_0812952C: .4byte gContestEffects
_08129530: .4byte gContestMoves
_08129534: .4byte gAIScriptPtr
- thumb_func_end contest_ai_get_move_effect_type
+ thumb_func_end ContestAICmd_get_move_effect_type
- thumb_func_start sub_8129538
-sub_8129538: @ 8129538
+ thumb_func_start ContestAICmd_unk_2B
+ContestAICmd_unk_2B: @ 8129538
push {lr}
- bl contest_ai_get_move_effect_type
+ bl ContestAICmd_get_move_effect_type
ldr r0, _08129568 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -1750,12 +1750,12 @@ _08129570:
_08129574:
pop {r0}
bx r0
- thumb_func_end sub_8129538
+ thumb_func_end ContestAICmd_unk_2B
- thumb_func_start sub_8129578
-sub_8129578: @ 8129578
+ thumb_func_start ContestAICmd_unk_2C
+ContestAICmd_unk_2C: @ 8129578
push {lr}
- bl contest_ai_get_move_effect_type
+ bl ContestAICmd_get_move_effect_type
ldr r0, _081295A8 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -1785,10 +1785,10 @@ _081295B0:
_081295B4:
pop {r0}
bx r0
- thumb_func_end sub_8129578
+ thumb_func_end ContestAICmd_unk_2C
- thumb_func_start contest_ai_check_move_has_highest_appeal
-contest_ai_check_move_has_highest_appeal: @ 81295B8
+ thumb_func_start ContestAICmd_check_move_has_highest_appeal
+ContestAICmd_check_move_has_highest_appeal: @ 81295B8
push {r4-r7,lr}
ldr r2, _08129610 @ =gContestMons
ldr r3, _08129614 @ =0x020192e4
@@ -1853,12 +1853,12 @@ _08129626:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end contest_ai_check_move_has_highest_appeal
+ thumb_func_end ContestAICmd_check_move_has_highest_appeal
- thumb_func_start sub_8129638
-sub_8129638: @ 8129638
+ thumb_func_start ContestAICmd_unk_2E
+ContestAICmd_unk_2E: @ 8129638
push {lr}
- bl contest_ai_check_move_has_highest_appeal
+ bl ContestAICmd_check_move_has_highest_appeal
ldr r0, _08129664 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -1891,10 +1891,10 @@ _08129674:
bx r0
.align 2, 0
_08129678: .4byte gAIScriptPtr
- thumb_func_end sub_8129638
+ thumb_func_end ContestAICmd_unk_2E
- thumb_func_start sub_812967C
-sub_812967C: @ 812967C
+ thumb_func_start ContestAICmd_unk_2F
+ContestAICmd_unk_2F: @ 812967C
push {r4-r7,lr}
ldr r2, _081296D4 @ =gContestMons
ldr r3, _081296D8 @ =0x020192e4
@@ -1959,12 +1959,12 @@ _081296EA:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_812967C
+ thumb_func_end ContestAICmd_unk_2F
- thumb_func_start sub_81296FC
-sub_81296FC: @ 81296FC
+ thumb_func_start ContestAICmd_unk_30
+ContestAICmd_unk_30: @ 81296FC
push {lr}
- bl sub_812967C
+ bl ContestAICmd_unk_2F
ldr r0, _08129728 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -1997,10 +1997,10 @@ _08129738:
bx r0
.align 2, 0
_0812973C: .4byte gAIScriptPtr
- thumb_func_end sub_81296FC
+ thumb_func_end ContestAICmd_unk_30
- thumb_func_start sub_8129740
-sub_8129740: @ 8129740
+ thumb_func_start ContestAICmd_unk_31
+ContestAICmd_unk_31: @ 8129740
push {r4,lr}
ldr r2, _08129784 @ =gContestMons
ldr r4, _08129788 @ =0x020192e4
@@ -2040,12 +2040,12 @@ _08129788: .4byte 0x020192e4
_0812978C: .4byte gContestEffects
_08129790: .4byte gContestMoves
_08129794: .4byte gAIScriptPtr
- thumb_func_end sub_8129740
+ thumb_func_end ContestAICmd_unk_31
- thumb_func_start sub_8129798
-sub_8129798: @ 8129798
+ thumb_func_start ContestAICmd_unk_32
+ContestAICmd_unk_32: @ 8129798
push {lr}
- bl sub_8129740
+ bl ContestAICmd_unk_31
ldr r0, _081297C8 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2075,12 +2075,12 @@ _081297D0:
_081297D4:
pop {r0}
bx r0
- thumb_func_end sub_8129798
+ thumb_func_end ContestAICmd_unk_32
- thumb_func_start sub_81297D8
-sub_81297D8: @ 81297D8
+ thumb_func_start ContestAICmd_unk_33
+ContestAICmd_unk_33: @ 81297D8
push {lr}
- bl sub_8129740
+ bl ContestAICmd_unk_31
ldr r0, _08129808 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2110,12 +2110,12 @@ _08129810:
_08129814:
pop {r0}
bx r0
- thumb_func_end sub_81297D8
+ thumb_func_end ContestAICmd_unk_33
- thumb_func_start sub_8129818
-sub_8129818: @ 8129818
+ thumb_func_start ContestAICmd_unk_34
+ContestAICmd_unk_34: @ 8129818
push {lr}
- bl sub_8129740
+ bl ContestAICmd_unk_31
ldr r0, _08129848 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2145,12 +2145,12 @@ _08129850:
_08129854:
pop {r0}
bx r0
- thumb_func_end sub_8129818
+ thumb_func_end ContestAICmd_unk_34
- thumb_func_start sub_8129858
-sub_8129858: @ 8129858
+ thumb_func_start ContestAICmd_unk_35
+ContestAICmd_unk_35: @ 8129858
push {lr}
- bl sub_8129740
+ bl ContestAICmd_unk_31
ldr r0, _08129888 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2180,10 +2180,10 @@ _08129890:
_08129894:
pop {r0}
bx r0
- thumb_func_end sub_8129858
+ thumb_func_end ContestAICmd_unk_35
- thumb_func_start sub_8129898
-sub_8129898: @ 8129898
+ thumb_func_start ContestAICmd_unk_36
+ContestAICmd_unk_36: @ 8129898
push {r4,lr}
ldr r2, _081298DC @ =gContestMons
ldr r4, _081298E0 @ =0x020192e4
@@ -2223,12 +2223,12 @@ _081298E0: .4byte 0x020192e4
_081298E4: .4byte gContestEffects
_081298E8: .4byte gContestMoves
_081298EC: .4byte gAIScriptPtr
- thumb_func_end sub_8129898
+ thumb_func_end ContestAICmd_unk_36
- thumb_func_start sub_81298F0
-sub_81298F0: @ 81298F0
+ thumb_func_start ContestAICmd_unk_37
+ContestAICmd_unk_37: @ 81298F0
push {lr}
- bl sub_8129898
+ bl ContestAICmd_unk_36
ldr r0, _08129920 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2258,12 +2258,12 @@ _08129928:
_0812992C:
pop {r0}
bx r0
- thumb_func_end sub_81298F0
+ thumb_func_end ContestAICmd_unk_37
- thumb_func_start sub_8129930
-sub_8129930: @ 8129930
+ thumb_func_start ContestAICmd_unk_38
+ContestAICmd_unk_38: @ 8129930
push {lr}
- bl sub_8129898
+ bl ContestAICmd_unk_36
ldr r0, _08129960 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2293,12 +2293,12 @@ _08129968:
_0812996C:
pop {r0}
bx r0
- thumb_func_end sub_8129930
+ thumb_func_end ContestAICmd_unk_38
- thumb_func_start sub_8129970
-sub_8129970: @ 8129970
+ thumb_func_start ContestAICmd_unk_39
+ContestAICmd_unk_39: @ 8129970
push {lr}
- bl sub_8129898
+ bl ContestAICmd_unk_36
ldr r0, _081299A0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2328,12 +2328,12 @@ _081299A8:
_081299AC:
pop {r0}
bx r0
- thumb_func_end sub_8129970
+ thumb_func_end ContestAICmd_unk_39
- thumb_func_start sub_81299B0
-sub_81299B0: @ 81299B0
+ thumb_func_start ContestAICmd_unk_3A
+ContestAICmd_unk_3A: @ 81299B0
push {lr}
- bl sub_8129898
+ bl ContestAICmd_unk_36
ldr r0, _081299E0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2363,10 +2363,10 @@ _081299E8:
_081299EC:
pop {r0}
bx r0
- thumb_func_end sub_81299B0
+ thumb_func_end ContestAICmd_unk_3A
- thumb_func_start contest_ai_get_move_used_count
-contest_ai_get_move_used_count: @ 81299F0
+ thumb_func_start ContestAICmd_get_move_used_count
+ContestAICmd_get_move_used_count: @ 81299F0
push {r4,lr}
ldr r3, _08129A20 @ =gContestMons
ldr r4, _08129A24 @ =0x020192e4
@@ -2410,12 +2410,12 @@ _08129A30:
bx r0
.align 2, 0
_08129A40: .4byte gAIScriptPtr
- thumb_func_end contest_ai_get_move_used_count
+ thumb_func_end ContestAICmd_get_move_used_count
- thumb_func_start sub_8129A44
-sub_8129A44: @ 8129A44
+ thumb_func_start ContestAICmd_unk_3C
+ContestAICmd_unk_3C: @ 8129A44
push {lr}
- bl contest_ai_get_move_used_count
+ bl ContestAICmd_get_move_used_count
ldr r0, _08129A74 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2445,12 +2445,12 @@ _08129A7C:
_08129A80:
pop {r0}
bx r0
- thumb_func_end sub_8129A44
+ thumb_func_end ContestAICmd_unk_3C
- thumb_func_start sub_8129A84
-sub_8129A84: @ 8129A84
+ thumb_func_start ContestAICmd_unk_3D
+ContestAICmd_unk_3D: @ 8129A84
push {lr}
- bl contest_ai_get_move_used_count
+ bl ContestAICmd_get_move_used_count
ldr r0, _08129AB4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2480,12 +2480,12 @@ _08129ABC:
_08129AC0:
pop {r0}
bx r0
- thumb_func_end sub_8129A84
+ thumb_func_end ContestAICmd_unk_3D
- thumb_func_start sub_8129AC4
-sub_8129AC4: @ 8129AC4
+ thumb_func_start ContestAICmd_unk_3E
+ContestAICmd_unk_3E: @ 8129AC4
push {lr}
- bl contest_ai_get_move_used_count
+ bl ContestAICmd_get_move_used_count
ldr r0, _08129AF4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2515,12 +2515,12 @@ _08129AFC:
_08129B00:
pop {r0}
bx r0
- thumb_func_end sub_8129AC4
+ thumb_func_end ContestAICmd_unk_3E
- thumb_func_start sub_8129B04
-sub_8129B04: @ 8129B04
+ thumb_func_start ContestAICmd_unk_3F
+ContestAICmd_unk_3F: @ 8129B04
push {lr}
- bl contest_ai_get_move_used_count
+ bl ContestAICmd_get_move_used_count
ldr r0, _08129B34 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2550,10 +2550,10 @@ _08129B3C:
_08129B40:
pop {r0}
bx r0
- thumb_func_end sub_8129B04
+ thumb_func_end ContestAICmd_unk_3F
- thumb_func_start contest_ai_check_combo_starter
-contest_ai_check_combo_starter: @ 8129B44
+ thumb_func_start ContestAICmd_check_combo_starter
+ContestAICmd_check_combo_starter: @ 8129B44
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -2613,12 +2613,12 @@ _08129B96:
_08129BAC: .4byte gContestMons
_08129BB0: .4byte 0x020192e4
_08129BB4: .4byte gAIScriptPtr
- thumb_func_end contest_ai_check_combo_starter
+ thumb_func_end ContestAICmd_check_combo_starter
- thumb_func_start sub_8129BB8
-sub_8129BB8: @ 8129BB8
+ thumb_func_start ContestAICmd_unk_41
+ContestAICmd_unk_41: @ 8129BB8
push {lr}
- bl contest_ai_check_combo_starter
+ bl ContestAICmd_check_combo_starter
ldr r0, _08129BE4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2651,12 +2651,12 @@ _08129BF4:
bx r0
.align 2, 0
_08129BF8: .4byte gAIScriptPtr
- thumb_func_end sub_8129BB8
+ thumb_func_end ContestAICmd_unk_41
- thumb_func_start sub_8129BFC
-sub_8129BFC: @ 8129BFC
+ thumb_func_start ContestAICmd_unk_42
+ContestAICmd_unk_42: @ 8129BFC
push {lr}
- bl contest_ai_check_combo_starter
+ bl ContestAICmd_check_combo_starter
ldr r0, _08129C28 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2689,10 +2689,10 @@ _08129C38:
bx r0
.align 2, 0
_08129C3C: .4byte gAIScriptPtr
- thumb_func_end sub_8129BFC
+ thumb_func_end ContestAICmd_unk_42
- thumb_func_start contest_ai_check_combo_finisher
-contest_ai_check_combo_finisher: @ 8129C40
+ thumb_func_start ContestAICmd_check_combo_finisher
+ContestAICmd_check_combo_finisher: @ 8129C40
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -2751,12 +2751,12 @@ _08129C90:
_08129CA8: .4byte gContestMons
_08129CAC: .4byte 0x020192e4
_08129CB0: .4byte gAIScriptPtr
- thumb_func_end contest_ai_check_combo_finisher
+ thumb_func_end ContestAICmd_check_combo_finisher
- thumb_func_start sub_8129CB4
-sub_8129CB4: @ 8129CB4
+ thumb_func_start ContestAICmd_unk_44
+ContestAICmd_unk_44: @ 8129CB4
push {lr}
- bl contest_ai_check_combo_finisher
+ bl ContestAICmd_check_combo_finisher
ldr r0, _08129CE0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2789,12 +2789,12 @@ _08129CF0:
bx r0
.align 2, 0
_08129CF4: .4byte gAIScriptPtr
- thumb_func_end sub_8129CB4
+ thumb_func_end ContestAICmd_unk_44
- thumb_func_start sub_8129CF8
-sub_8129CF8: @ 8129CF8
+ thumb_func_start ContestAICmd_unk_45
+ContestAICmd_unk_45: @ 8129CF8
push {lr}
- bl contest_ai_check_combo_finisher
+ bl ContestAICmd_check_combo_finisher
ldr r0, _08129D24 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2827,10 +2827,10 @@ _08129D34:
bx r0
.align 2, 0
_08129D38: .4byte gAIScriptPtr
- thumb_func_end sub_8129CF8
+ thumb_func_end ContestAICmd_unk_45
- thumb_func_start contest_ai_check_would_finish_combo
-contest_ai_check_would_finish_combo: @ 8129D3C
+ thumb_func_start ContestAICmd_check_would_finish_combo
+ContestAICmd_check_would_finish_combo: @ 8129D3C
push {r4,r5,lr}
movs r5, 0
ldr r3, _08129D8C @ =gContestMons
@@ -2875,12 +2875,12 @@ _08129D7A:
_08129D8C: .4byte gContestMons
_08129D90: .4byte 0x020192e4
_08129D94: .4byte gAIScriptPtr
- thumb_func_end contest_ai_check_would_finish_combo
+ thumb_func_end ContestAICmd_check_would_finish_combo
- thumb_func_start sub_8129D98
-sub_8129D98: @ 8129D98
+ thumb_func_start ContestAICmd_unk_47
+ContestAICmd_unk_47: @ 8129D98
push {lr}
- bl contest_ai_check_would_finish_combo
+ bl ContestAICmd_check_would_finish_combo
ldr r0, _08129DC4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2913,12 +2913,12 @@ _08129DD4:
bx r0
.align 2, 0
_08129DD8: .4byte gAIScriptPtr
- thumb_func_end sub_8129D98
+ thumb_func_end ContestAICmd_unk_47
- thumb_func_start sub_8129DDC
-sub_8129DDC: @ 8129DDC
+ thumb_func_start ContestAICmd_unk_48
+ContestAICmd_unk_48: @ 8129DDC
push {lr}
- bl contest_ai_check_would_finish_combo
+ bl ContestAICmd_check_would_finish_combo
ldr r0, _08129E08 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -2951,10 +2951,10 @@ _08129E18:
bx r0
.align 2, 0
_08129E1C: .4byte gAIScriptPtr
- thumb_func_end sub_8129DDC
+ thumb_func_end ContestAICmd_unk_48
- thumb_func_start contest_ai_get_condition
-contest_ai_get_condition: @ 8129E20
+ thumb_func_start ContestAICmd_get_condition
+ContestAICmd_get_condition: @ 8129E20
push {r4,r5,lr}
ldr r4, _08129E5C @ =gAIScriptPtr
ldr r0, [r4]
@@ -2985,12 +2985,12 @@ contest_ai_get_condition: @ 8129E20
.align 2, 0
_08129E5C: .4byte gAIScriptPtr
_08129E60: .4byte 0x020192e4
- thumb_func_end contest_ai_get_condition
+ thumb_func_end ContestAICmd_get_condition
- thumb_func_start sub_8129E64
-sub_8129E64: @ 8129E64
+ thumb_func_start ContestAICmd_unk_4A
+ContestAICmd_unk_4A: @ 8129E64
push {lr}
- bl contest_ai_get_condition
+ bl ContestAICmd_get_condition
ldr r0, _08129E94 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3020,12 +3020,12 @@ _08129E9C:
_08129EA0:
pop {r0}
bx r0
- thumb_func_end sub_8129E64
+ thumb_func_end ContestAICmd_unk_4A
- thumb_func_start sub_8129EA4
-sub_8129EA4: @ 8129EA4
+ thumb_func_start ContestAICmd_unk_4B
+ContestAICmd_unk_4B: @ 8129EA4
push {lr}
- bl contest_ai_get_condition
+ bl ContestAICmd_get_condition
ldr r0, _08129ED4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3055,12 +3055,12 @@ _08129EDC:
_08129EE0:
pop {r0}
bx r0
- thumb_func_end sub_8129EA4
+ thumb_func_end ContestAICmd_unk_4B
- thumb_func_start sub_8129EE4
-sub_8129EE4: @ 8129EE4
+ thumb_func_start ContestAICmd_unk_4C
+ContestAICmd_unk_4C: @ 8129EE4
push {lr}
- bl contest_ai_get_condition
+ bl ContestAICmd_get_condition
ldr r0, _08129F14 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3090,12 +3090,12 @@ _08129F1C:
_08129F20:
pop {r0}
bx r0
- thumb_func_end sub_8129EE4
+ thumb_func_end ContestAICmd_unk_4C
- thumb_func_start sub_8129F24
-sub_8129F24: @ 8129F24
+ thumb_func_start ContestAICmd_unk_4D
+ContestAICmd_unk_4D: @ 8129F24
push {lr}
- bl contest_ai_get_condition
+ bl ContestAICmd_get_condition
ldr r0, _08129F54 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3125,10 +3125,10 @@ _08129F5C:
_08129F60:
pop {r0}
bx r0
- thumb_func_end sub_8129F24
+ thumb_func_end ContestAICmd_unk_4D
- thumb_func_start contest_ai_get_used_combo_starter
-contest_ai_get_used_combo_starter: @ 8129F64
+ thumb_func_start ContestAICmd_get_used_combo_starter
+ContestAICmd_get_used_combo_starter: @ 8129F64
push {r4-r6,lr}
movs r6, 0
ldr r5, _08129FAC @ =gAIScriptPtr
@@ -3169,12 +3169,12 @@ _08129FAC: .4byte gAIScriptPtr
_08129FB0: .4byte gContestMoves
_08129FB4: .4byte 0x02019260
_08129FB8: .4byte 0x020192e4
- thumb_func_end contest_ai_get_used_combo_starter
+ thumb_func_end ContestAICmd_get_used_combo_starter
- thumb_func_start sub_8129FBC
-sub_8129FBC: @ 8129FBC
+ thumb_func_start ContestAICmd_unk_4F
+ContestAICmd_unk_4F: @ 8129FBC
push {lr}
- bl contest_ai_get_used_combo_starter
+ bl ContestAICmd_get_used_combo_starter
ldr r0, _08129FEC @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3204,12 +3204,12 @@ _08129FF4:
_08129FF8:
pop {r0}
bx r0
- thumb_func_end sub_8129FBC
+ thumb_func_end ContestAICmd_unk_4F
- thumb_func_start sub_8129FFC
-sub_8129FFC: @ 8129FFC
+ thumb_func_start ContestAICmd_unk_50
+ContestAICmd_unk_50: @ 8129FFC
push {lr}
- bl contest_ai_get_used_combo_starter
+ bl ContestAICmd_get_used_combo_starter
ldr r0, _0812A02C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3239,12 +3239,12 @@ _0812A034:
_0812A038:
pop {r0}
bx r0
- thumb_func_end sub_8129FFC
+ thumb_func_end ContestAICmd_unk_50
- thumb_func_start sub_812A03C
-sub_812A03C: @ 812A03C
+ thumb_func_start ContestAICmd_unk_51
+ContestAICmd_unk_51: @ 812A03C
push {lr}
- bl contest_ai_get_used_combo_starter
+ bl ContestAICmd_get_used_combo_starter
ldr r0, _0812A06C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3274,12 +3274,12 @@ _0812A074:
_0812A078:
pop {r0}
bx r0
- thumb_func_end sub_812A03C
+ thumb_func_end ContestAICmd_unk_51
- thumb_func_start sub_812A07C
-sub_812A07C: @ 812A07C
+ thumb_func_start ContestAICmd_unk_52
+ContestAICmd_unk_52: @ 812A07C
push {lr}
- bl contest_ai_get_used_combo_starter
+ bl ContestAICmd_get_used_combo_starter
ldr r0, _0812A0AC @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3309,10 +3309,10 @@ _0812A0B4:
_0812A0B8:
pop {r0}
bx r0
- thumb_func_end sub_812A07C
+ thumb_func_end ContestAICmd_unk_52
- thumb_func_start contest_ai_check_can_participate
-contest_ai_check_can_participate: @ 812A0BC
+ thumb_func_start ContestAICmd_check_can_participate
+ContestAICmd_check_can_participate: @ 812A0BC
push {lr}
ldr r0, _0812A0DC @ =gAIScriptPtr
ldr r0, [r0]
@@ -3344,12 +3344,12 @@ _0812A0E8:
.align 2, 0
_0812A0F8: .4byte 0x020192e4
_0812A0FC: .4byte gAIScriptPtr
- thumb_func_end contest_ai_check_can_participate
+ thumb_func_end ContestAICmd_check_can_participate
- thumb_func_start sub_812A100
-sub_812A100: @ 812A100
+ thumb_func_start ContestAICmd_unk_54
+ContestAICmd_unk_54: @ 812A100
push {lr}
- bl contest_ai_check_can_participate
+ bl ContestAICmd_check_can_participate
ldr r0, _0812A12C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3382,12 +3382,12 @@ _0812A13C:
bx r0
.align 2, 0
_0812A140: .4byte gAIScriptPtr
- thumb_func_end sub_812A100
+ thumb_func_end ContestAICmd_unk_54
- thumb_func_start sub_812A144
-sub_812A144: @ 812A144
+ thumb_func_start ContestAICmd_unk_55
+ContestAICmd_unk_55: @ 812A144
push {lr}
- bl contest_ai_check_can_participate
+ bl ContestAICmd_check_can_participate
ldr r0, _0812A170 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3420,10 +3420,10 @@ _0812A180:
bx r0
.align 2, 0
_0812A184: .4byte gAIScriptPtr
- thumb_func_end sub_812A144
+ thumb_func_end ContestAICmd_unk_55
- thumb_func_start contest_ai_get_val_812A188
-contest_ai_get_val_812A188: @ 812A188
+ thumb_func_start ContestAICmd_get_val_812A188
+ContestAICmd_get_val_812A188: @ 812A188
push {r4,lr}
ldr r4, _0812A1BC @ =gAIScriptPtr
ldr r0, [r4]
@@ -3451,12 +3451,12 @@ contest_ai_get_val_812A188: @ 812A188
.align 2, 0
_0812A1BC: .4byte gAIScriptPtr
_0812A1C0: .4byte 0x020192e4
- thumb_func_end contest_ai_get_val_812A188
+ thumb_func_end ContestAICmd_get_val_812A188
- thumb_func_start sub_812A1C4
-sub_812A1C4: @ 812A1C4
+ thumb_func_start ContestAICmd_unk_57
+ContestAICmd_unk_57: @ 812A1C4
push {lr}
- bl contest_ai_get_val_812A188
+ bl ContestAICmd_get_val_812A188
ldr r0, _0812A1F0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3489,12 +3489,12 @@ _0812A200:
bx r0
.align 2, 0
_0812A204: .4byte gAIScriptPtr
- thumb_func_end sub_812A1C4
+ thumb_func_end ContestAICmd_unk_57
- thumb_func_start sub_812A208
-sub_812A208: @ 812A208
+ thumb_func_start ContestAICmd_unk_58
+ContestAICmd_unk_58: @ 812A208
push {lr}
- bl contest_ai_get_val_812A188
+ bl ContestAICmd_get_val_812A188
ldr r0, _0812A234 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3527,10 +3527,10 @@ _0812A244:
bx r0
.align 2, 0
_0812A248: .4byte gAIScriptPtr
- thumb_func_end sub_812A208
+ thumb_func_end ContestAICmd_unk_58
- thumb_func_start sub_812A24C
-sub_812A24C: @ 812A24C
+ thumb_func_start ContestAICmd_unk_59
+ContestAICmd_unk_59: @ 812A24C
push {r4,r5,lr}
ldr r5, _0812A28C @ =gAIScriptPtr
ldr r0, [r5]
@@ -3565,12 +3565,12 @@ sub_812A24C: @ 812A24C
.align 2, 0
_0812A28C: .4byte gAIScriptPtr
_0812A290: .4byte 0x020192e4
- thumb_func_end sub_812A24C
+ thumb_func_end ContestAICmd_unk_59
- thumb_func_start sub_812A294
-sub_812A294: @ 812A294
+ thumb_func_start ContestAICmd_unk_5A
+ContestAICmd_unk_5A: @ 812A294
push {lr}
- bl sub_812A24C
+ bl ContestAICmd_unk_59
ldr r0, _0812A2C0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3603,12 +3603,12 @@ _0812A2D0:
bx r0
.align 2, 0
_0812A2D4: .4byte gAIScriptPtr
- thumb_func_end sub_812A294
+ thumb_func_end ContestAICmd_unk_5A
- thumb_func_start sub_812A2D8
-sub_812A2D8: @ 812A2D8
+ thumb_func_start ContestAICmd_unk_5B
+ContestAICmd_unk_5B: @ 812A2D8
push {lr}
- bl sub_812A24C
+ bl ContestAICmd_unk_59
ldr r0, _0812A304 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3641,12 +3641,12 @@ _0812A314:
bx r0
.align 2, 0
_0812A318: .4byte gAIScriptPtr
- thumb_func_end sub_812A2D8
+ thumb_func_end ContestAICmd_unk_5B
- thumb_func_start sub_812A31C
-sub_812A31C: @ 812A31C
+ thumb_func_start ContestAICmd_unk_5C
+ContestAICmd_unk_5C: @ 812A31C
push {lr}
- bl sub_812A24C
+ bl ContestAICmd_unk_59
ldr r0, _0812A348 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3679,12 +3679,12 @@ _0812A358:
bx r0
.align 2, 0
_0812A35C: .4byte gAIScriptPtr
- thumb_func_end sub_812A31C
+ thumb_func_end ContestAICmd_unk_5C
- thumb_func_start sub_812A360
-sub_812A360: @ 812A360
+ thumb_func_start ContestAICmd_unk_5D
+ContestAICmd_unk_5D: @ 812A360
push {lr}
- bl sub_812A24C
+ bl ContestAICmd_unk_59
ldr r0, _0812A38C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3717,10 +3717,10 @@ _0812A39C:
bx r0
.align 2, 0
_0812A3A0: .4byte gAIScriptPtr
- thumb_func_end sub_812A360
+ thumb_func_end ContestAICmd_unk_5D
- thumb_func_start sub_812A3A4
-sub_812A3A4: @ 812A3A4
+ thumb_func_start ContestAICmd_unk_5E
+ContestAICmd_unk_5E: @ 812A3A4
push {r4,lr}
ldr r4, _0812A3D8 @ =gAIScriptPtr
ldr r0, [r4]
@@ -3750,12 +3750,12 @@ sub_812A3A4: @ 812A3A4
_0812A3D8: .4byte gAIScriptPtr
_0812A3DC: .4byte 0x020192e4
_0812A3E0: .4byte gUnknown_02038670
- thumb_func_end sub_812A3A4
+ thumb_func_end ContestAICmd_unk_5E
- thumb_func_start sub_812A3E4
-sub_812A3E4: @ 812A3E4
+ thumb_func_start ContestAICmd_unk_5F
+ContestAICmd_unk_5F: @ 812A3E4
push {lr}
- bl sub_812A3A4
+ bl ContestAICmd_unk_5E
ldr r0, _0812A410 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3788,12 +3788,12 @@ _0812A420:
bx r0
.align 2, 0
_0812A424: .4byte gAIScriptPtr
- thumb_func_end sub_812A3E4
+ thumb_func_end ContestAICmd_unk_5F
- thumb_func_start sub_812A428
-sub_812A428: @ 812A428
+ thumb_func_start ContestAICmd_unk_60
+ContestAICmd_unk_60: @ 812A428
push {lr}
- bl sub_812A3A4
+ bl ContestAICmd_unk_5E
ldr r0, _0812A454 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3826,12 +3826,12 @@ _0812A464:
bx r0
.align 2, 0
_0812A468: .4byte gAIScriptPtr
- thumb_func_end sub_812A428
+ thumb_func_end ContestAICmd_unk_60
- thumb_func_start sub_812A46C
-sub_812A46C: @ 812A46C
+ thumb_func_start ContestAICmd_unk_61
+ContestAICmd_unk_61: @ 812A46C
push {lr}
- bl sub_812A3A4
+ bl ContestAICmd_unk_5E
ldr r0, _0812A498 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3864,12 +3864,12 @@ _0812A4A8:
bx r0
.align 2, 0
_0812A4AC: .4byte gAIScriptPtr
- thumb_func_end sub_812A46C
+ thumb_func_end ContestAICmd_unk_61
- thumb_func_start sub_812A4B0
-sub_812A4B0: @ 812A4B0
+ thumb_func_start ContestAICmd_unk_62
+ContestAICmd_unk_62: @ 812A4B0
push {lr}
- bl sub_812A3A4
+ bl ContestAICmd_unk_5E
ldr r0, _0812A4DC @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3902,10 +3902,10 @@ _0812A4EC:
bx r0
.align 2, 0
_0812A4F0: .4byte gAIScriptPtr
- thumb_func_end sub_812A4B0
+ thumb_func_end ContestAICmd_unk_62
- thumb_func_start sub_812A4F4
-sub_812A4F4: @ 812A4F4
+ thumb_func_start ContestAICmd_unk_63
+ContestAICmd_unk_63: @ 812A4F4
push {r4,lr}
ldr r4, _0812A52C @ =gAIScriptPtr
ldr r0, [r4]
@@ -3937,12 +3937,12 @@ sub_812A4F4: @ 812A4F4
_0812A52C: .4byte gAIScriptPtr
_0812A530: .4byte 0x02019204
_0812A534: .4byte gContestMoves
- thumb_func_end sub_812A4F4
+ thumb_func_end ContestAICmd_unk_63
- thumb_func_start sub_812A538
-sub_812A538: @ 812A538
+ thumb_func_start ContestAICmd_unk_64
+ContestAICmd_unk_64: @ 812A538
push {lr}
- bl sub_812A4F4
+ bl ContestAICmd_unk_63
ldr r0, _0812A568 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -3972,12 +3972,12 @@ _0812A570:
_0812A574:
pop {r0}
bx r0
- thumb_func_end sub_812A538
+ thumb_func_end ContestAICmd_unk_64
- thumb_func_start sub_812A578
-sub_812A578: @ 812A578
+ thumb_func_start ContestAICmd_unk_65
+ContestAICmd_unk_65: @ 812A578
push {lr}
- bl sub_812A4F4
+ bl ContestAICmd_unk_63
ldr r0, _0812A5A8 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -4007,12 +4007,12 @@ _0812A5B0:
_0812A5B4:
pop {r0}
bx r0
- thumb_func_end sub_812A578
+ thumb_func_end ContestAICmd_unk_65
- thumb_func_start sub_812A5B8
-sub_812A5B8: @ 812A5B8
+ thumb_func_start ContestAICmd_unk_66
+ContestAICmd_unk_66: @ 812A5B8
push {lr}
- bl sub_812A4F4
+ bl ContestAICmd_unk_63
ldr r0, _0812A5E8 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -4042,12 +4042,12 @@ _0812A5F0:
_0812A5F4:
pop {r0}
bx r0
- thumb_func_end sub_812A5B8
+ thumb_func_end ContestAICmd_unk_66
- thumb_func_start sub_812A5F8
-sub_812A5F8: @ 812A5F8
+ thumb_func_start ContestAICmd_unk_67
+ContestAICmd_unk_67: @ 812A5F8
push {lr}
- bl sub_812A4F4
+ bl ContestAICmd_unk_63
ldr r0, _0812A628 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -4077,10 +4077,10 @@ _0812A630:
_0812A634:
pop {r0}
bx r0
- thumb_func_end sub_812A5F8
+ thumb_func_end ContestAICmd_unk_67
- thumb_func_start sub_812A638
-sub_812A638: @ 812A638
+ thumb_func_start ContestAICmd_unk_68
+ContestAICmd_unk_68: @ 812A638
push {r4,lr}
ldr r4, _0812A66C @ =gAIScriptPtr
ldr r0, [r4]
@@ -4109,12 +4109,12 @@ sub_812A638: @ 812A638
.align 2, 0
_0812A66C: .4byte gAIScriptPtr
_0812A670: .4byte 0x02019204
- thumb_func_end sub_812A638
+ thumb_func_end ContestAICmd_unk_68
- thumb_func_start sub_812A674
-sub_812A674: @ 812A674
+ thumb_func_start ContestAICmd_unk_69
+ContestAICmd_unk_69: @ 812A674
push {lr}
- bl sub_812A638
+ bl ContestAICmd_unk_68
ldr r0, _0812A6A4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -4144,12 +4144,12 @@ _0812A6AC:
_0812A6B0:
pop {r0}
bx r0
- thumb_func_end sub_812A674
+ thumb_func_end ContestAICmd_unk_69
- thumb_func_start sub_812A6B4
-sub_812A6B4: @ 812A6B4
+ thumb_func_start ContestAICmd_unk_6A
+ContestAICmd_unk_6A: @ 812A6B4
push {lr}
- bl sub_812A638
+ bl ContestAICmd_unk_68
ldr r0, _0812A6E4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -4179,12 +4179,12 @@ _0812A6EC:
_0812A6F0:
pop {r0}
bx r0
- thumb_func_end sub_812A6B4
+ thumb_func_end ContestAICmd_unk_6A
- thumb_func_start sub_812A6F4
-sub_812A6F4: @ 812A6F4
+ thumb_func_start ContestAICmd_unk_6B
+ContestAICmd_unk_6B: @ 812A6F4
push {lr}
- bl sub_812A638
+ bl ContestAICmd_unk_68
ldr r0, _0812A724 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -4214,12 +4214,12 @@ _0812A72C:
_0812A730:
pop {r0}
bx r0
- thumb_func_end sub_812A6F4
+ thumb_func_end ContestAICmd_unk_6B
- thumb_func_start sub_812A734
-sub_812A734: @ 812A734
+ thumb_func_start ContestAICmd_unk_6C
+ContestAICmd_unk_6C: @ 812A734
push {lr}
- bl sub_812A638
+ bl ContestAICmd_unk_68
ldr r0, _0812A764 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -4249,10 +4249,10 @@ _0812A76C:
_0812A770:
pop {r0}
bx r0
- thumb_func_end sub_812A734
+ thumb_func_end ContestAICmd_unk_6C
- thumb_func_start sub_812A774
-sub_812A774: @ 812A774
+ thumb_func_start ContestAICmd_unk_6D
+ContestAICmd_unk_6D: @ 812A774
push {r4,r5,lr}
ldr r5, _0812A7B4 @ =gAIScriptPtr
ldr r0, [r5]
@@ -4289,12 +4289,12 @@ _0812A7B4: .4byte gAIScriptPtr
_0812A7B8: .4byte 0x02019204
_0812A7BC: .4byte gContestEffects
_0812A7C0: .4byte gContestMoves
- thumb_func_end sub_812A774
+ thumb_func_end ContestAICmd_unk_6D
- thumb_func_start sub_812A7C4
-sub_812A7C4: @ 812A7C4
+ thumb_func_start ContestAICmd_unk_6E
+ContestAICmd_unk_6E: @ 812A7C4
push {lr}
- bl sub_812A774
+ bl ContestAICmd_unk_6D
ldr r0, _0812A7F4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -4324,12 +4324,12 @@ _0812A7FC:
_0812A800:
pop {r0}
bx r0
- thumb_func_end sub_812A7C4
+ thumb_func_end ContestAICmd_unk_6E
- thumb_func_start sub_812A804
-sub_812A804: @ 812A804
+ thumb_func_start ContestAICmd_unk_6F
+ContestAICmd_unk_6F: @ 812A804
push {lr}
- bl sub_812A774
+ bl ContestAICmd_unk_6D
ldr r0, _0812A834 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -4359,10 +4359,10 @@ _0812A83C:
_0812A840:
pop {r0}
bx r0
- thumb_func_end sub_812A804
+ thumb_func_end ContestAICmd_unk_6F
- thumb_func_start sub_812A844
-sub_812A844: @ 812A844
+ thumb_func_start ContestAICmd_unk_70
+ContestAICmd_unk_70: @ 812A844
push {r4,lr}
ldr r3, _0812A864 @ =0x020192e4
ldr r4, _0812A868 @ =gAIScriptPtr
@@ -4382,10 +4382,10 @@ sub_812A844: @ 812A844
.align 2, 0
_0812A864: .4byte 0x020192e4
_0812A868: .4byte gAIScriptPtr
- thumb_func_end sub_812A844
+ thumb_func_end ContestAICmd_unk_70
- thumb_func_start sub_812A86C
-sub_812A86C: @ 812A86C
+ thumb_func_start ContestAICmd_unk_71
+ContestAICmd_unk_71: @ 812A86C
push {r4,lr}
ldr r0, _0812A890 @ =0x020192e4
ldr r4, _0812A894 @ =gAIScriptPtr
@@ -4407,10 +4407,10 @@ sub_812A86C: @ 812A86C
.align 2, 0
_0812A890: .4byte 0x020192e4
_0812A894: .4byte gAIScriptPtr
- thumb_func_end sub_812A86C
+ thumb_func_end ContestAICmd_unk_71
- thumb_func_start sub_812A898
-sub_812A898: @ 812A898
+ thumb_func_start ContestAICmd_unk_72
+ContestAICmd_unk_72: @ 812A898
push {r4,lr}
ldr r0, _0812A8C4 @ =0x020192e4
ldr r4, _0812A8C8 @ =gAIScriptPtr
@@ -4435,10 +4435,10 @@ sub_812A898: @ 812A898
.align 2, 0
_0812A8C4: .4byte 0x020192e4
_0812A8C8: .4byte gAIScriptPtr
- thumb_func_end sub_812A898
+ thumb_func_end ContestAICmd_unk_72
- thumb_func_start sub_812A8CC
-sub_812A8CC: @ 812A8CC
+ thumb_func_start ContestAICmd_unk_73
+ContestAICmd_unk_73: @ 812A8CC
push {r4,lr}
ldr r2, _0812A8F4 @ =0x020192e4
ldr r4, _0812A8F8 @ =gAIScriptPtr
@@ -4462,10 +4462,10 @@ sub_812A8CC: @ 812A8CC
.align 2, 0
_0812A8F4: .4byte 0x020192e4
_0812A8F8: .4byte gAIScriptPtr
- thumb_func_end sub_812A8CC
+ thumb_func_end ContestAICmd_unk_73
- thumb_func_start sub_812A8FC
-sub_812A8FC: @ 812A8FC
+ thumb_func_start ContestAICmd_unk_74
+ContestAICmd_unk_74: @ 812A8FC
push {r4,lr}
ldr r2, _0812A924 @ =0x020192e4
ldr r4, _0812A928 @ =gAIScriptPtr
@@ -4489,10 +4489,10 @@ sub_812A8FC: @ 812A8FC
.align 2, 0
_0812A924: .4byte 0x020192e4
_0812A928: .4byte gAIScriptPtr
- thumb_func_end sub_812A8FC
+ thumb_func_end ContestAICmd_unk_74
- thumb_func_start sub_812A92C
-sub_812A92C: @ 812A92C
+ thumb_func_start ContestAICmd_unk_75
+ContestAICmd_unk_75: @ 812A92C
push {r4,lr}
ldr r1, _0812A964 @ =0x020192e4
ldr r4, _0812A968 @ =gAIScriptPtr
@@ -4532,10 +4532,10 @@ _0812A972:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_812A92C
+ thumb_func_end ContestAICmd_unk_75
- thumb_func_start sub_812A978
-sub_812A978: @ 812A978
+ thumb_func_start ContestAICmd_unk_76
+ContestAICmd_unk_76: @ 812A978
push {r4,lr}
ldr r1, _0812A9B0 @ =0x020192e4
ldr r4, _0812A9B4 @ =gAIScriptPtr
@@ -4575,10 +4575,10 @@ _0812A9BE:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_812A978
+ thumb_func_end ContestAICmd_unk_76
- thumb_func_start sub_812A9C4
-sub_812A9C4: @ 812A9C4
+ thumb_func_start ContestAICmd_unk_77
+ContestAICmd_unk_77: @ 812A9C4
push {r4,lr}
ldr r1, _0812A9FC @ =0x020192e4
ldr r4, _0812AA00 @ =gAIScriptPtr
@@ -4618,10 +4618,10 @@ _0812AA0A:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_812A9C4
+ thumb_func_end ContestAICmd_unk_77
- thumb_func_start sub_812AA10
-sub_812AA10: @ 812AA10
+ thumb_func_start ContestAICmd_unk_78
+ContestAICmd_unk_78: @ 812AA10
push {r4,lr}
ldr r1, _0812AA48 @ =0x020192e4
ldr r4, _0812AA4C @ =gAIScriptPtr
@@ -4661,10 +4661,10 @@ _0812AA56:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_812AA10
+ thumb_func_end ContestAICmd_unk_78
- thumb_func_start sub_812AA5C
-sub_812AA5C: @ 812AA5C
+ thumb_func_start ContestAICmd_unk_79
+ContestAICmd_unk_79: @ 812AA5C
push {r4,lr}
ldr r2, _0812AA98 @ =0x020192e4
ldr r4, _0812AA9C @ =gAIScriptPtr
@@ -4704,10 +4704,10 @@ _0812AAA4:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_812AA5C
+ thumb_func_end ContestAICmd_unk_79
- thumb_func_start sub_812AAAC
-sub_812AAAC: @ 812AAAC
+ thumb_func_start ContestAICmd_unk_7A
+ContestAICmd_unk_7A: @ 812AAAC
push {r4,lr}
ldr r2, _0812AAE8 @ =0x020192e4
ldr r4, _0812AAEC @ =gAIScriptPtr
@@ -4747,10 +4747,10 @@ _0812AAF4:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_812AAAC
+ thumb_func_end ContestAICmd_unk_7A
- thumb_func_start sub_812AAFC
-sub_812AAFC: @ 812AAFC
+ thumb_func_start ContestAICmd_unk_7B
+ContestAICmd_unk_7B: @ 812AAFC
push {r4,lr}
ldr r2, _0812AB38 @ =0x020192e4
ldr r4, _0812AB3C @ =gAIScriptPtr
@@ -4790,10 +4790,10 @@ _0812AB44:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_812AAFC
+ thumb_func_end ContestAICmd_unk_7B
- thumb_func_start sub_812AB4C
-sub_812AB4C: @ 812AB4C
+ thumb_func_start ContestAICmd_unk_7C
+ContestAICmd_unk_7C: @ 812AB4C
push {r4,lr}
ldr r2, _0812AB88 @ =0x020192e4
ldr r4, _0812AB8C @ =gAIScriptPtr
@@ -4833,10 +4833,10 @@ _0812AB94:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_812AB4C
+ thumb_func_end ContestAICmd_unk_7C
- thumb_func_start sub_812AB9C
-sub_812AB9C: @ 812AB9C
+ thumb_func_start ContestAICmd_unk_7D
+ContestAICmd_unk_7D: @ 812AB9C
push {r4,lr}
bl Random
movs r2, 0xFF
@@ -4874,10 +4874,10 @@ _0812ABE0:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_812AB9C
+ thumb_func_end ContestAICmd_unk_7D
- thumb_func_start sub_812ABE8
-sub_812ABE8: @ 812ABE8
+ thumb_func_start ContestAICmd_unk_7E
+ContestAICmd_unk_7E: @ 812ABE8
push {r4,lr}
bl Random
movs r2, 0xFF
@@ -4915,10 +4915,10 @@ _0812AC2C:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_812ABE8
+ thumb_func_end ContestAICmd_unk_7E
- thumb_func_start sub_812AC34
-sub_812AC34: @ 812AC34
+ thumb_func_start ContestAICmd_unk_7F
+ContestAICmd_unk_7F: @ 812AC34
ldr r3, _0812AC50 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
@@ -4935,10 +4935,10 @@ sub_812AC34: @ 812AC34
bx lr
.align 2, 0
_0812AC50: .4byte gAIScriptPtr
- thumb_func_end sub_812AC34
+ thumb_func_end ContestAICmd_unk_7F
- thumb_func_start sub_812AC54
-sub_812AC54: @ 812AC54
+ thumb_func_start ContestAICmd_unk_80
+ContestAICmd_unk_80: @ 812AC54
push {r4,lr}
ldr r4, _0812AC80 @ =gAIScriptPtr
ldr r0, [r4]
@@ -4961,10 +4961,10 @@ sub_812AC54: @ 812AC54
bx r0
.align 2, 0
_0812AC80: .4byte gAIScriptPtr
- thumb_func_end sub_812AC54
+ thumb_func_end ContestAICmd_unk_80
- thumb_func_start sub_812AC84
-sub_812AC84: @ 812AC84
+ thumb_func_start ContestAICmd_unk_81
+ContestAICmd_unk_81: @ 812AC84
push {lr}
bl sub_812ACC8
lsls r0, 24
@@ -4980,7 +4980,7 @@ _0812AC9A:
bx r0
.align 2, 0
_0812ACA0: .4byte 0x020192e4
- thumb_func_end sub_812AC84
+ thumb_func_end ContestAICmd_unk_81
thumb_func_start sub_812ACA4
sub_812ACA4: @ 812ACA4
@@ -5034,8 +5034,8 @@ _0812ACF4:
_0812ACF8: .4byte gAIScriptPtr
thumb_func_end sub_812ACC8
- thumb_func_start contest_ai_check_for_exciting_move
-contest_ai_check_for_exciting_move: @ 812ACFC
+ thumb_func_start ContestAICmd_check_for_exciting_move
+ContestAICmd_check_for_exciting_move: @ 812ACFC
push {r4-r7,lr}
movs r5, 0
movs r4, 0
@@ -5077,12 +5077,12 @@ _0812AD36:
.align 2, 0
_0812AD48: .4byte 0x020192e4
_0812AD4C: .4byte gAIScriptPtr
- thumb_func_end contest_ai_check_for_exciting_move
+ thumb_func_end ContestAICmd_check_for_exciting_move
- thumb_func_start sub_812AD50
-sub_812AD50: @ 812AD50
+ thumb_func_start ContestAICmd_unk_83
+ContestAICmd_unk_83: @ 812AD50
push {lr}
- bl contest_ai_check_for_exciting_move
+ bl ContestAICmd_check_for_exciting_move
ldr r0, _0812AD7C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -5115,12 +5115,12 @@ _0812AD8C:
bx r0
.align 2, 0
_0812AD90: .4byte gAIScriptPtr
- thumb_func_end sub_812AD50
+ thumb_func_end ContestAICmd_unk_83
- thumb_func_start sub_812AD94
-sub_812AD94: @ 812AD94
+ thumb_func_start ContestAICmd_unk_84
+ContestAICmd_unk_84: @ 812AD94
push {lr}
- bl contest_ai_check_for_exciting_move
+ bl ContestAICmd_check_for_exciting_move
ldr r0, _0812ADC0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -5153,10 +5153,10 @@ _0812ADD0:
bx r0
.align 2, 0
_0812ADD4: .4byte gAIScriptPtr
- thumb_func_end sub_812AD94
+ thumb_func_end ContestAICmd_unk_84
- thumb_func_start sub_812ADD8
-sub_812ADD8: @ 812ADD8
+ thumb_func_start ContestAICmd_unk_85
+ContestAICmd_unk_85: @ 812ADD8
push {r4-r7,lr}
movs r6, 0
ldr r2, _0812AE08 @ =gAIScriptPtr
@@ -5212,12 +5212,12 @@ _0812AE34:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_812ADD8
+ thumb_func_end ContestAICmd_unk_85
- thumb_func_start sub_812AE44
-sub_812AE44: @ 812AE44
+ thumb_func_start ContestAICmd_unk_86
+ContestAICmd_unk_86: @ 812AE44
push {lr}
- bl sub_812ADD8
+ bl ContestAICmd_unk_85
ldr r0, _0812AE70 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -5250,12 +5250,12 @@ _0812AE80:
bx r0
.align 2, 0
_0812AE84: .4byte gAIScriptPtr
- thumb_func_end sub_812AE44
+ thumb_func_end ContestAICmd_unk_86
- thumb_func_start sub_812AE88
-sub_812AE88: @ 812AE88
+ thumb_func_start ContestAICmd_unk_87
+ContestAICmd_unk_87: @ 812AE88
push {lr}
- bl sub_812ADD8
+ bl ContestAICmd_unk_85
ldr r0, _0812AEB4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
@@ -5288,6 +5288,6 @@ _0812AEC4:
bx r0
.align 2, 0
_0812AEC8: .4byte gAIScriptPtr
- thumb_func_end sub_812AE88
+ thumb_func_end ContestAICmd_unk_87
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s
index af8d1742e..93dd26eee 100644
--- a/asm/contest_link_80C2020.s
+++ b/asm/contest_link_80C2020.s
@@ -281,17 +281,17 @@ sub_80C226C: @ 80C226C
ldrb r0, [r0]
cmp r5, r0
bne _080C2294
- ldr r0, _080C228C @ =gUnknown_020238CC
+ ldr r0, _080C228C @ =gDisplayedStringBattle
ldr r1, _080C2290 @ =gUnknown_083D17DC
bl StringCopy
adds r2, r0, 0
b _080C2296
.align 2, 0
_080C2288: .4byte gContestPlayerMonIndex
-_080C228C: .4byte gUnknown_020238CC
+_080C228C: .4byte gDisplayedStringBattle
_080C2290: .4byte gUnknown_083D17DC
_080C2294:
- ldr r2, _080C22E8 @ =gUnknown_020238CC
+ ldr r2, _080C22E8 @ =gDisplayedStringBattle
_080C2296:
movs r4, 0xFC
strb r4, [r2]
@@ -316,7 +316,7 @@ _080C2296:
adds r0, r2, 0
bl StringCopy
adds r2, r0, 0
- ldr r0, _080C22F4 @ =gUnknown_0203869A
+ ldr r0, _080C22F4 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -331,10 +331,10 @@ _080C2296:
bl StringCopy
b _080C230A
.align 2, 0
-_080C22E8: .4byte gUnknown_020238CC
+_080C22E8: .4byte gDisplayedStringBattle
_080C22EC: .4byte gContestMons + 0x2
_080C22F0: .4byte gUnknown_083D17E0
-_080C22F4: .4byte gUnknown_0203869A
+_080C22F4: .4byte gIsLinkContest
_080C22F8: .4byte gLinkPlayers + 0x8
_080C22FC:
adds r1, r7, 0
@@ -345,7 +345,7 @@ _080C22FC:
lsls r4, r5, 3
_080C230A:
ldr r0, _080C2334 @ =gMenuWindow
- ldr r1, _080C2338 @ =gUnknown_020238CC
+ ldr r1, _080C2338 @ =gDisplayedStringBattle
adds r2, r4, r5
lsls r2, 18
ldr r3, _080C233C @ =0x03020000
@@ -365,7 +365,7 @@ _080C230A:
bx r0
.align 2, 0
_080C2334: .4byte gMenuWindow
-_080C2338: .4byte gUnknown_020238CC
+_080C2338: .4byte gDisplayedStringBattle
_080C233C: .4byte 0x03020000
thumb_func_end sub_80C226C
@@ -564,7 +564,7 @@ sub_80C24F4: @ 80C24F4
ands r0, r1
cmp r0, 0
bne _080C254E
- ldr r0, _080C2530 @ =gUnknown_0203869A
+ ldr r0, _080C2530 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -582,7 +582,7 @@ sub_80C24F4: @ 80C24F4
b _080C254E
.align 2, 0
_080C252C: .4byte gPaletteFade
-_080C2530: .4byte gUnknown_0203869A
+_080C2530: .4byte gIsLinkContest
_080C2534: .4byte gOtherText_LinkStandby
_080C2538: .4byte gTasks
_080C253C: .4byte sub_80C255C
@@ -1169,7 +1169,7 @@ _080C299C:
movs r4, 0
ldr r2, _080C29F4 @ =gUnknown_02038690
ldrb r0, [r2]
- ldr r1, _080C29F8 @ =gUnknown_0203869A
+ ldr r1, _080C29F8 @ =gIsLinkContest
ldr r3, _080C29FC @ =gStringVar1
cmp r0, 0
beq _080C29D4
@@ -1198,7 +1198,7 @@ _080C29D4:
b _080C2A10
.align 2, 0
_080C29F4: .4byte gUnknown_02038690
-_080C29F8: .4byte gUnknown_0203869A
+_080C29F8: .4byte gIsLinkContest
_080C29FC: .4byte gStringVar1
_080C2A00: .4byte gLinkPlayers + 0x8
_080C2A04:
@@ -1357,7 +1357,7 @@ _080C2B14:
str r6, [sp, 0x4]
str r4, [sp, 0x8]
ldr r3, _080C2BE4 @ =0x02000000
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r6, 0
ldr r1, [sp, 0xC]
adds r2, r4, 0
@@ -1586,7 +1586,7 @@ sub_80C2D1C: @ 80C2D1C
ands r0, r1
cmp r0, 0
beq _080C2D66
- ldr r0, _080C2D70 @ =gUnknown_0203869A
+ ldr r0, _080C2D70 @ =gIsLinkContest
ldrb r1, [r0]
adds r0, r2, 0
ands r0, r1
@@ -1601,7 +1601,7 @@ _080C2D42:
lsls r0, 16
lsrs r0, 16
movs r1, 0x2
- bl sub_8090D90
+ bl GetNationalPokedexFlag
adds r5, 0x40
subs r4, 0x1
cmp r4, 0
@@ -1619,7 +1619,7 @@ _080C2D66:
bx r0
.align 2, 0
_080C2D6C: .4byte gMain
-_080C2D70: .4byte gUnknown_0203869A
+_080C2D70: .4byte gIsLinkContest
_080C2D74: .4byte gContestMons
_080C2D78: .4byte gTasks
_080C2D7C: .4byte sub_80C2D80
@@ -1630,7 +1630,7 @@ sub_80C2D80: @ 80C2D80
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080C2DAC @ =gUnknown_0203869A
+ ldr r0, _080C2DAC @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -1648,7 +1648,7 @@ sub_80C2D80: @ 80C2D80
str r1, [r0]
b _080C2DCA
.align 2, 0
-_080C2DAC: .4byte gUnknown_0203869A
+_080C2DAC: .4byte gIsLinkContest
_080C2DB0: .4byte gOtherText_LinkStandby
_080C2DB4: .4byte gTasks
_080C2DB8: .4byte sub_80C2DD8
@@ -1678,7 +1678,7 @@ sub_80C2DD8: @ 80C2DD8
ldrb r1, [r0]
cmp r1, 0
bne _080C2DFC
- ldr r0, _080C2E08 @ =gUnknown_0203869A
+ ldr r0, _080C2E08 @ =gIsLinkContest
strb r1, [r0]
bl sub_80C3764
ldr r1, _080C2E0C @ =gTasks
@@ -1694,7 +1694,7 @@ _080C2DFC:
bx r0
.align 2, 0
_080C2E04: .4byte gReceivedRemoteLinkPlayers
-_080C2E08: .4byte gUnknown_0203869A
+_080C2E08: .4byte gIsLinkContest
_080C2E0C: .4byte gTasks
_080C2E10: .4byte sub_80C2E14
thumb_func_end sub_80C2DD8
@@ -1973,7 +1973,7 @@ sub_80C3024: @ 80C3024
cmp r3, 0
beq _080C30B0
adds r1, r6, 0
- bl sub_809D4F4
+ bl GetMonIconPtr
lsls r1, r5, 9
adds r0, r1
adds r0, 0x80
@@ -2031,7 +2031,7 @@ _080C30A8: .4byte 0x84000060
_080C30AC: .4byte 0x0600c000
_080C30B0:
adds r1, r6, 0
- bl sub_809D4F4
+ bl GetMonIconPtr
lsls r1, r5, 9
adds r0, r1
adds r0, 0x80
@@ -2198,7 +2198,7 @@ _080C31CE:
bl GetStringWidthGivenWindowConfig
lsls r0, 24
lsrs r5, r0, 24
- ldr r2, _080C32D4 @ =gUnknown_020238CC
+ ldr r2, _080C32D4 @ =gDisplayedStringBattle
ldr r1, _080C32D8 @ =gUnknown_083D17E2
adds r0, r2, 0
bl StringCopy
@@ -2237,7 +2237,7 @@ _080C3218:
strb r0, [r2, 0x3]
ldr r0, _080C32DC @ =0x02018068
mov r10, r0
- ldr r1, _080C32D4 @ =gUnknown_020238CC
+ ldr r1, _080C32D4 @ =gDisplayedStringBattle
bl sub_80034D4
mov r0, sp
ldrh r4, [r0]
@@ -2301,7 +2301,7 @@ _080C32C4: .4byte gWindowConfig_81E7278
_080C32C8: .4byte 0x06010000
_080C32CC: .4byte 0x040000d4
_080C32D0: .4byte 0x85000100
-_080C32D4: .4byte gUnknown_020238CC
+_080C32D4: .4byte gDisplayedStringBattle
_080C32D8: .4byte gUnknown_083D17E2
_080C32DC: .4byte 0x02018068
_080C32E0: .4byte gUnknown_083D1624
@@ -2954,7 +2954,7 @@ sub_80C37E4: @ 80C37E4
sub sp, 0x10
movs r5, 0x1
movs r4, 0
- ldr r0, _080C3808 @ =gUnknown_0203869A
+ ldr r0, _080C3808 @ =gIsLinkContest
ldrb r0, [r0]
adds r1, r5, 0
ands r1, r0
@@ -2968,7 +2968,7 @@ sub_80C37E4: @ 80C37E4
str r2, [sp, 0x4]
b _080C386A
.align 2, 0
-_080C3808: .4byte gUnknown_0203869A
+_080C3808: .4byte gIsLinkContest
_080C380C: .4byte 0x0600e000
_080C3810: .4byte gUnknown_08E964B8
_080C3814:
@@ -4871,7 +4871,7 @@ sub_80C4698: @ 80C4698
adds r1, r0
adds r0, r5, 0
bl StringCopy
- ldr r0, _080C46E4 @ =gUnknown_0203869A
+ ldr r0, _080C46E4 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -4898,14 +4898,14 @@ _080C46DA:
bx r0
.align 2, 0
_080C46E0: .4byte gContestMons + 0x2
-_080C46E4: .4byte gUnknown_0203869A
+_080C46E4: .4byte gIsLinkContest
_080C46E8: .4byte gLinkPlayers
thumb_func_end sub_80C4698
thumb_func_start sub_80C46EC
sub_80C46EC: @ 80C46EC
push {lr}
- ldr r0, _080C4710 @ =gUnknown_0203869A
+ ldr r0, _080C4710 @ =gIsLinkContest
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -4922,7 +4922,7 @@ sub_80C46EC: @ 80C46EC
bl sub_80C4674
b _080C4730
.align 2, 0
-_080C4710: .4byte gUnknown_0203869A
+_080C4710: .4byte gIsLinkContest
_080C4714: .4byte gStringVar1
_080C4718: .4byte gSpecialVar_0x8006
_080C471C: .4byte gLinkPlayers + 0x8
@@ -5047,7 +5047,7 @@ sub_80C47F0: @ 80C47F0
movs r2, 0
ldr r3, _080C4830 @ =gUnknown_02038690
ldrb r0, [r3]
- ldr r1, _080C4834 @ =gUnknown_0203869A
+ ldr r1, _080C4834 @ =gIsLinkContest
ldr r4, _080C4838 @ =gStringVar3
cmp r0, 0
beq _080C4812
@@ -5077,7 +5077,7 @@ _080C4812:
b _080C484C
.align 2, 0
_080C4830: .4byte gUnknown_02038690
-_080C4834: .4byte gUnknown_0203869A
+_080C4834: .4byte gIsLinkContest
_080C4838: .4byte gStringVar3
_080C483C: .4byte gLinkPlayers + 0x8
_080C4840:
diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s
index bef1d4402..12dc3bdb5 100644
--- a/asm/contest_link_80C857C.s
+++ b/asm/contest_link_80C857C.s
@@ -152,7 +152,7 @@ sub_80C8660: @ 80C8660
lsrs r0, 24
cmp r0, 0x4
bne _080C868E
- ldr r1, _080C869C @ =gUnknown_0203869A
+ ldr r1, _080C869C @ =gIsLinkContest
movs r0, 0x1
strb r0, [r1]
adds r0, r4, 0
@@ -164,7 +164,7 @@ _080C868E:
.align 2, 0
_080C8694: .4byte gReceivedRemoteLinkPlayers
_080C8698: .4byte gContestPlayerMonIndex
-_080C869C: .4byte gUnknown_0203869A
+_080C869C: .4byte gIsLinkContest
thumb_func_end sub_80C8660
thumb_func_start sub_80C86A0
diff --git a/asm/contest_painting.s b/asm/contest_painting.s
deleted file mode 100644
index 91ee2d547..000000000
--- a/asm/contest_painting.s
+++ /dev/null
@@ -1,1293 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8106630
-sub_8106630: @ 8106630
- push {r4-r7,lr}
- ldr r2, _0810665C @ =0x02015de0
- subs r4, r2, 0x2
- subs r5, r2, 0x1
- ldr r3, _08106660 @ =gSaveBlock1
- subs r0, 0x1
- lsls r1, r0, 5
- adds r1, r3
- ldr r3, _08106664 @ =0x00002dfc
- adds r1, r3
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r6,r7}
- stm r2!, {r6,r7}
- strb r0, [r4]
- movs r0, 0
- strb r0, [r5]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810665C: .4byte 0x02015de0
-_08106660: .4byte gSaveBlock1
-_08106664: .4byte 0x00002dfc
- thumb_func_end sub_8106630
-
- thumb_func_start CB2_ContestPainting
-CB2_ContestPainting: @ 8106668
- push {lr}
- bl ShowContestPainting
- pop {r0}
- bx r0
- thumb_func_end CB2_ContestPainting
-
- thumb_func_start ShowContestPainting
-ShowContestPainting: @ 8106674
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _08106694 @ =gMain
- ldr r2, _08106698 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x4
- bls _08106688
- b _081067E0
-_08106688:
- lsls r0, 2
- ldr r1, _0810669C @ =_081066A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106694: .4byte gMain
-_08106698: .4byte 0x0000043c
-_0810669C: .4byte _081066A0
- .align 2, 0
-_081066A0:
- .4byte _081066B4
- .4byte _081066D8
- .4byte _08106734
- .4byte _0810675C
- .4byte _0810678C
-_081066B4:
- bl remove_some_task
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, _081066D0 @ =gUnknown_03005E8C
- ldr r0, _081066D4 @ =0x02015de0
- str r0, [r1]
- movs r0, 0x1
- bl ContestPaintingInitVars
- bl ContestPaintingInitBG
- b _0810676E
- .align 2, 0
-_081066D0: .4byte gUnknown_03005E8C
-_081066D4: .4byte 0x02015de0
-_081066D8:
- bl ResetPaletteFade
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- movs r5, 0
- ldr r1, _08106724 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _08106728 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_081066F2:
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _081066F2
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetSpriteData
- ldr r1, _0810672C @ =gMain
- ldr r2, _08106730 @ =0x0000043c
- adds r1, r2
- b _08106774
- .align 2, 0
-_08106724: .4byte 0x040000d4
-_08106728: .4byte 0x85000400
-_0810672C: .4byte gMain
-_08106730: .4byte 0x0000043c
-_08106734:
- ldrh r0, [r4, 0x20]
- bl SeedRng
- bl InitKeys
- ldr r0, _08106750 @ =0x02000000
- ldr r1, _08106754 @ =0x00015ddf
- adds r0, r1
- ldrb r0, [r0]
- bl ContestPaintingInitWindow
- ldr r2, _08106758 @ =0x0000043c
- adds r1, r4, r2
- b _08106774
- .align 2, 0
-_08106750: .4byte 0x02000000
-_08106754: .4byte 0x00015ddf
-_08106758: .4byte 0x0000043c
-_0810675C:
- ldr r1, _0810677C @ =0x02000000
- ldr r2, _08106780 @ =0x00015dde
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl sub_8107090
-_0810676E:
- ldr r1, _08106784 @ =gMain
- ldr r0, _08106788 @ =0x0000043c
- adds r1, r0
-_08106774:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081067E0
- .align 2, 0
-_0810677C: .4byte 0x02000000
-_08106780: .4byte 0x00015dde
-_08106784: .4byte gMain
-_08106788: .4byte 0x0000043c
-_0810678C:
- ldr r1, _081067E8 @ =0x02000000
- ldr r2, _081067EC @ =0x00015dde
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl ContestPaintingPrintCaption
- ldr r0, _081067F0 @ =gUnknown_083F6140
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- movs r1, 0xA0
- lsls r1, 19
- movs r4, 0
- str r4, [sp]
- ldr r0, _081067F4 @ =0x040000d4
- mov r2, sp
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _081067F8 @ =0x85000100
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r0, 0x2
- bl BeginFastPaletteFade
- ldr r0, _081067FC @ =VBlankCB_ContestPainting
- bl SetVBlankCallback
- ldr r0, _08106800 @ =gUnknown_03000750
- strb r4, [r0]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08106804 @ =CB2_HoldContestPainting
- bl SetMainCallback2
-_081067E0:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081067E8: .4byte 0x02000000
-_081067EC: .4byte 0x00015dde
-_081067F0: .4byte gUnknown_083F6140
-_081067F4: .4byte 0x040000d4
-_081067F8: .4byte 0x85000100
-_081067FC: .4byte VBlankCB_ContestPainting
-_08106800: .4byte gUnknown_03000750
-_08106804: .4byte CB2_HoldContestPainting
- thumb_func_end ShowContestPainting
-
- thumb_func_start CB2_HoldContestPainting
-CB2_HoldContestPainting: @ 8106808
- push {lr}
- bl HoldContestPainting
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end CB2_HoldContestPainting
-
- thumb_func_start CB2_QuitContestPainting
-CB2_QuitContestPainting: @ 8106818
- push {lr}
- ldr r0, _08106828 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08106828: .4byte gMain
- thumb_func_end CB2_QuitContestPainting
-
- thumb_func_start HoldContestPainting
-HoldContestPainting: @ 810682C
- push {lr}
- sub sp, 0x4
- ldr r3, _08106844 @ =gUnknown_03000750
- ldrb r1, [r3]
- cmp r1, 0x1
- beq _08106880
- cmp r1, 0x1
- bgt _08106848
- cmp r1, 0
- beq _0810684E
- b _081068E6
- .align 2, 0
-_08106844: .4byte gUnknown_03000750
-_08106848:
- cmp r1, 0x2
- beq _081068C0
- b _081068E6
-_0810684E:
- ldr r0, _08106874 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810685E
- movs r0, 0x1
- strb r0, [r3]
-_0810685E:
- ldr r0, _08106878 @ =gUnknown_03000756
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _0810687C @ =gUnknown_03000754
- ldrh r0, [r1]
- cmp r0, 0
- beq _081068E6
- subs r0, 0x1
- b _081068E4
- .align 2, 0
-_08106874: .4byte gPaletteFade
-_08106878: .4byte gUnknown_03000756
-_0810687C: .4byte gUnknown_03000754
-_08106880:
- ldr r0, _081068B4 @ =gMain
- ldrh r2, [r0, 0x2E]
- ands r1, r2
- cmp r1, 0
- bne _08106892
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _081068A4
-_08106892:
- movs r0, 0x2
- strb r0, [r3]
- subs r0, 0x3
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_081068A4:
- ldr r0, _081068B8 @ =gUnknown_03000756
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _081068BC @ =gUnknown_03000754
- movs r0, 0
- b _081068E4
- .align 2, 0
-_081068B4: .4byte gMain
-_081068B8: .4byte gUnknown_03000756
-_081068BC: .4byte gUnknown_03000754
-_081068C0:
- ldr r0, _081068EC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081068D2
- ldr r0, _081068F0 @ =CB2_QuitContestPainting
- bl SetMainCallback2
-_081068D2:
- ldr r0, _081068F4 @ =gUnknown_03000756
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _081068F8 @ =gUnknown_03000754
- ldrh r0, [r1]
- cmp r0, 0x1D
- bhi _081068E6
- adds r0, 0x1
-_081068E4:
- strh r0, [r1]
-_081068E6:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_081068EC: .4byte gPaletteFade
-_081068F0: .4byte CB2_QuitContestPainting
-_081068F4: .4byte gUnknown_03000756
-_081068F8: .4byte gUnknown_03000754
- thumb_func_end HoldContestPainting
-
- thumb_func_start ContestPaintingInitWindow
-ContestPaintingInitWindow: @ 81068FC
- push {r4,lr}
- ldr r4, _08106914 @ =gWindowConfig_81E7160
- adds r0, r4, 0
- bl InitMenuWindow
- adds r0, r4, 0
- bl SetUpWindowConfig
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106914: .4byte gWindowConfig_81E7160
- thumb_func_end ContestPaintingInitWindow
-
- thumb_func_start ContestPaintingPrintCaption
-ContestPaintingPrintCaption: @ 8106918
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _081069BE
- ldr r2, _08106974 @ =gUnknown_03005E40
- ldr r6, _08106978 @ =gUnknown_03005E8C
- ldr r0, [r6]
- ldrb r0, [r0, 0xA]
- cmp r3, 0x7
- bhi _08106988
- ldr r1, _0810697C @ =gUnknown_083F60AC
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08106980 @ =gContestText_ContestWinner
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0x16
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x16
- strb r0, [r2, 0x1]
- adds r2, 0x2
- ldr r1, _08106984 @ =gOtherText_Unknown1
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0xB
- bl StringCopy10
- movs r1, 0x6
- b _081069AE
- .align 2, 0
-_08106974: .4byte gUnknown_03005E40
-_08106978: .4byte gUnknown_03005E8C
-_0810697C: .4byte gUnknown_083F60AC
-_08106980: .4byte gContestText_ContestWinner
-_08106984: .4byte gOtherText_Unknown1
-_08106988:
- ldr r4, _081069C4 @ =gUnknown_083F60C0
- lsls r5, r0, 3
- adds r0, r5, r4
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0xB
- bl StringCopy10
- adds r2, r0, 0
- adds r4, 0x4
- adds r5, r4
- ldr r1, [r5]
- bl StringCopy
- movs r1, 0x3
-_081069AE:
- movs r2, 0xE
- ldr r0, _081069C8 @ =gUnknown_03005E40
- lsls r1, 3
- adds r1, 0x1
- lsls r2, 3
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_081069BE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081069C4: .4byte gUnknown_083F60C0
-_081069C8: .4byte gUnknown_03005E40
- thumb_func_end ContestPaintingPrintCaption
-
- thumb_func_start ContestPaintingInitBG
-ContestPaintingInitBG: @ 81069CC
- movs r0, 0x80
- lsls r0, 19
- movs r3, 0
- strh r3, [r0]
- ldr r2, _081069FC @ =0x04000200
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08106A00 @ =REG_BG0CNT
- ldr r2, _08106A04 @ =0x00000c42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08106A08 @ =0x00000a45
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08106A0C @ =REG_BLDCNT
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- bx lr
- .align 2, 0
-_081069FC: .4byte 0x04000200
-_08106A00: .4byte REG_BG0CNT
-_08106A04: .4byte 0x00000c42
-_08106A08: .4byte 0x00000a45
-_08106A0C: .4byte REG_BLDCNT
- thumb_func_end ContestPaintingInitBG
-
- thumb_func_start ContestPaintingInitVars
-ContestPaintingInitVars: @ 8106A10
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08106A34
- ldr r0, _08106A28 @ =gUnknown_03000756
- strb r1, [r0]
- ldr r0, _08106A2C @ =gUnknown_03000752
- strh r1, [r0]
- ldr r0, _08106A30 @ =gUnknown_03000754
- strh r1, [r0]
- b _08106A46
- .align 2, 0
-_08106A28: .4byte gUnknown_03000756
-_08106A2C: .4byte gUnknown_03000752
-_08106A30: .4byte gUnknown_03000754
-_08106A34:
- ldr r1, _08106A4C @ =gUnknown_03000756
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _08106A50 @ =gUnknown_03000752
- movs r0, 0xF
- strh r0, [r1]
- ldr r1, _08106A54 @ =gUnknown_03000754
- movs r0, 0x1E
- strh r0, [r1]
-_08106A46:
- pop {r0}
- bx r0
- .align 2, 0
-_08106A4C: .4byte gUnknown_03000756
-_08106A50: .4byte gUnknown_03000752
-_08106A54: .4byte gUnknown_03000754
- thumb_func_end ContestPaintingInitVars
-
- thumb_func_start ContestPaintingMosaic
-ContestPaintingMosaic: @ 8106A58
- push {lr}
- ldr r0, _08106A68 @ =gUnknown_03000756
- ldrb r1, [r0]
- cmp r1, 0
- bne _08106A70
- ldr r0, _08106A6C @ =REG_MOSAIC
- strh r1, [r0]
- b _08106A92
- .align 2, 0
-_08106A68: .4byte gUnknown_03000756
-_08106A6C: .4byte REG_MOSAIC
-_08106A70:
- ldr r1, _08106A98 @ =REG_BG1CNT
- ldr r2, _08106A9C @ =0x00000a45
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _08106AA0 @ =gUnknown_03000752
- ldr r0, _08106AA4 @ =gUnknown_03000754
- ldrh r1, [r0]
- lsrs r1, 1
- strh r1, [r2]
- ldr r3, _08106AA8 @ =REG_MOSAIC
- lsls r0, r1, 12
- lsls r2, r1, 8
- orrs r0, r2
- lsls r2, r1, 4
- orrs r0, r2
- orrs r0, r1
- strh r0, [r3]
-_08106A92:
- pop {r0}
- bx r0
- .align 2, 0
-_08106A98: .4byte REG_BG1CNT
-_08106A9C: .4byte 0x00000a45
-_08106AA0: .4byte gUnknown_03000752
-_08106AA4: .4byte gUnknown_03000754
-_08106AA8: .4byte REG_MOSAIC
- thumb_func_end ContestPaintingMosaic
-
- thumb_func_start VBlankCB_ContestPainting
-VBlankCB_ContestPainting: @ 8106AAC
- push {lr}
- bl ContestPaintingMosaic
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end VBlankCB_ContestPainting
-
- thumb_func_start sub_8106AC4
-sub_8106AC4: @ 8106AC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r4, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r4, 24
- lsrs r4, 24
- ldr r7, _08106B28 @ =gUnknown_03005E8C
- ldr r0, [r7]
- ldr r1, [r0, 0x4]
- ldr r2, [r0]
- adds r0, r6, 0
- bl species_and_otid_get_pal
- ldr r1, _08106B2C @ =gUnknown_03005E90
- mov r8, r1
- ldr r1, [r1]
- bl LZDecompressVram
- cmp r4, 0
- bne _08106B40
- lsls r0, r6, 3
- ldr r1, _08106B30 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08106B34 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08106B38 @ =gUnknown_081FAF4C
- ldr r5, [r4, 0x4]
- str r5, [sp]
- str r6, [sp, 0x4]
- ldr r4, [r7]
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
- mov r2, r8
- ldr r1, [r2]
- ldr r0, _08106B3C @ =gUnknown_03005E10
- ldr r2, [r0]
- adds r0, r5, 0
- bl sub_8106B90
- b _08106B74
- .align 2, 0
-_08106B28: .4byte gUnknown_03005E8C
-_08106B2C: .4byte gUnknown_03005E90
-_08106B30: .4byte gMonFrontPicTable
-_08106B34: .4byte gMonFrontPicCoords
-_08106B38: .4byte gUnknown_081FAF4C
-_08106B3C: .4byte gUnknown_03005E10
-_08106B40:
- lsls r0, r6, 3
- ldr r1, _08106B80 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _08106B84 @ =gMonBackPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08106B88 @ =gUnknown_081FAF4C
- ldr r5, [r4]
- str r5, [sp]
- str r6, [sp, 0x4]
- ldr r4, [r7]
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _08106B8C @ =gUnknown_03005E10
- ldr r2, [r0]
- adds r0, r5, 0
- bl sub_8106B90
-_08106B74:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08106B80: .4byte gMonBackPicTable
-_08106B84: .4byte gMonBackPicCoords
-_08106B88: .4byte gUnknown_081FAF4C
-_08106B8C: .4byte gUnknown_03005E10
- thumb_func_end sub_8106AC4
-
- thumb_func_start sub_8106B90
-sub_8106B90: @ 8106B90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r10, r0
- mov r9, r1
- str r2, [sp]
- movs r0, 0
-_08106BA4:
- movs r3, 0
- adds r1, r0, 0x1
- str r1, [sp, 0x4]
- lsls r0, 3
- str r0, [sp, 0x8]
-_08106BAE:
- movs r1, 0
- adds r2, r3, 0x1
- mov r8, r2
- ldr r7, [sp, 0x8]
- adds r0, r7, r3
- lsls r0, 5
- mov r12, r0
- lsls r4, r3, 3
-_08106BBE:
- movs r3, 0
- lsls r0, r1, 2
- adds r6, r1, 0x1
- mov r2, r12
- adds r5, r2, r0
- ldr r7, [sp, 0x8]
- adds r0, r7, r1
- lsls r0, 7
- ldr r1, [sp]
- adds r2, r0, r1
-_08106BD2:
- lsrs r0, r3, 1
- adds r0, r5, r0
- add r0, r10
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08106BE6
- lsrs r1, 4
- b _08106BEA
-_08106BE6:
- movs r0, 0xF
- ands r1, r0
-_08106BEA:
- cmp r1, 0
- bne _08106BFC
- adds r0, r4, r3
- lsls r0, 1
- adds r0, r2
- movs r7, 0x80
- lsls r7, 8
- adds r1, r7, 0
- b _08106C08
-_08106BFC:
- adds r0, r4, r3
- lsls r0, 1
- adds r0, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
-_08106C08:
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x7
- bls _08106BD2
- lsls r0, r6, 16
- lsrs r1, r0, 16
- cmp r1, 0x7
- bls _08106BBE
- mov r1, r8
- lsls r0, r1, 16
- lsrs r3, r0, 16
- cmp r3, 0x7
- bls _08106BAE
- ldr r2, [sp, 0x4]
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x7
- bls _08106BA4
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8106B90
-
- thumb_func_start sub_8106C40
-sub_8106C40: @ 8106C40
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08106C7C @ =gPictureFramePalettes
- movs r2, 0x80
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- cmp r4, 0x1
- beq _08106C5E
- b _08106DB4
-_08106C5E:
- ldr r0, _08106C80 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08106D1C
- lsls r0, 2
- ldr r1, _08106C84 @ =_08106C88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106C7C: .4byte gPictureFramePalettes
-_08106C80: .4byte gUnknown_03005E8C
-_08106C84: .4byte _08106C88
- .align 2, 0
-_08106C88:
- .4byte _08106C9C
- .4byte _08106CB4
- .4byte _08106CCC
- .4byte _08106CE4
- .4byte _08106D08
-_08106C9C:
- ldr r0, _08106CAC @ =gPictureFrameTiles_0
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CB0 @ =gPictureFrameTilemap_0
- b _08106CF0
- .align 2, 0
-_08106CAC: .4byte gPictureFrameTiles_0
-_08106CB0: .4byte gPictureFrameTilemap_0
-_08106CB4:
- ldr r0, _08106CC4 @ =gPictureFrameTiles_1
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CC8 @ =gPictureFrameTilemap_1
- b _08106CF0
- .align 2, 0
-_08106CC4: .4byte gPictureFrameTiles_1
-_08106CC8: .4byte gPictureFrameTilemap_1
-_08106CCC:
- ldr r0, _08106CDC @ =gPictureFrameTiles_2
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CE0 @ =gPictureFrameTilemap_2
- b _08106CF0
- .align 2, 0
-_08106CDC: .4byte gPictureFrameTiles_2
-_08106CE0: .4byte gPictureFrameTilemap_2
-_08106CE4:
- ldr r0, _08106CFC @ =gPictureFrameTiles_3
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106D00 @ =gPictureFrameTilemap_3
-_08106CF0:
- ldr r1, _08106D04 @ =gUnknown_03005E10
- ldr r1, [r1]
- bl RLUnCompWram
- b _08106D1C
- .align 2, 0
-_08106CFC: .4byte gPictureFrameTiles_3
-_08106D00: .4byte gPictureFrameTilemap_3
-_08106D04: .4byte gUnknown_03005E10
-_08106D08:
- ldr r0, _08106D98 @ =gPictureFrameTiles_4
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106D9C @ =gPictureFrameTilemap_4
- ldr r1, _08106DA0 @ =gUnknown_03005E10
- ldr r1, [r1]
- bl RLUnCompWram
-_08106D1C:
- movs r1, 0
- ldr r5, _08106DA4 @ =0x06006000
- ldr r0, _08106DA8 @ =0x00001015
- adds r4, r0, 0
-_08106D24:
- movs r3, 0
- lsls r2, r1, 5
-_08106D28:
- adds r0, r2, r3
- lsls r0, 1
- adds r0, r5
- strh r4, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _08106D28
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bls _08106D24
- movs r1, 0
- ldr r0, _08106DAC @ =0x0600608c
- mov r12, r0
- ldr r7, _08106DA0 @ =gUnknown_03005E10
-_08106D4C:
- movs r3, 0
- adds r6, r1, 0x1
- lsls r5, r1, 5
- lsls r4, r1, 6
-_08106D54:
- adds r2, r5, r3
- lsls r2, 1
- add r2, r12
- ldr r0, [r7]
- adds r0, r4, r0
- lsls r1, r3, 1
- adds r0, r1
- adds r0, 0x8C
- ldrh r0, [r0]
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x11
- bls _08106D54
- lsls r0, r6, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- bls _08106D4C
- movs r3, 0
- ldr r4, _08106DB0 @ =0x0600608e
- ldr r2, _08106DA0 @ =gUnknown_03005E10
-_08106D80:
- lsls r1, r3, 1
- adds r1, r4
- ldr r0, [r2]
- adds r0, 0x8E
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _08106D80
- b _08106E86
- .align 2, 0
-_08106D98: .4byte gPictureFrameTiles_4
-_08106D9C: .4byte gPictureFrameTilemap_4
-_08106DA0: .4byte gUnknown_03005E10
-_08106DA4: .4byte 0x06006000
-_08106DA8: .4byte 0x00001015
-_08106DAC: .4byte 0x0600608c
-_08106DB0: .4byte 0x0600608e
-_08106DB4:
- cmp r5, 0x7
- bhi _08106DD0
- ldr r0, _08106DC8 @ =gPictureFrameTiles_5
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106DCC @ =gPictureFrameTilemap_5
- b _08106E60
- .align 2, 0
-_08106DC8: .4byte gPictureFrameTiles_5
-_08106DCC: .4byte gPictureFrameTilemap_5
-_08106DD0:
- ldr r0, _08106DF0 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08106E86
- lsls r0, 2
- ldr r1, _08106DF4 @ =_08106DF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106DF0: .4byte gUnknown_03005E8C
-_08106DF4: .4byte _08106DF8
- .align 2, 0
-_08106DF8:
- .4byte _08106E0C
- .4byte _08106E24
- .4byte _08106E3C
- .4byte _08106E54
- .4byte _08106E74
-_08106E0C:
- ldr r0, _08106E1C @ =gPictureFrameTiles_0
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E20 @ =gPictureFrameTilemap_0
- b _08106E60
- .align 2, 0
-_08106E1C: .4byte gPictureFrameTiles_0
-_08106E20: .4byte gPictureFrameTilemap_0
-_08106E24:
- ldr r0, _08106E34 @ =gPictureFrameTiles_1
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E38 @ =gPictureFrameTilemap_1
- b _08106E60
- .align 2, 0
-_08106E34: .4byte gPictureFrameTiles_1
-_08106E38: .4byte gPictureFrameTilemap_1
-_08106E3C:
- ldr r0, _08106E4C @ =gPictureFrameTiles_2
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E50 @ =gPictureFrameTilemap_2
- b _08106E60
- .align 2, 0
-_08106E4C: .4byte gPictureFrameTiles_2
-_08106E50: .4byte gPictureFrameTilemap_2
-_08106E54:
- ldr r0, _08106E68 @ =gPictureFrameTiles_3
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E6C @ =gPictureFrameTilemap_3
-_08106E60:
- ldr r1, _08106E70 @ =0x06006000
- bl RLUnCompVram
- b _08106E86
- .align 2, 0
-_08106E68: .4byte gPictureFrameTiles_3
-_08106E6C: .4byte gPictureFrameTilemap_3
-_08106E70: .4byte 0x06006000
-_08106E74:
- ldr r0, _08106E8C @ =gPictureFrameTiles_4
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E90 @ =gPictureFrameTilemap_4
- ldr r1, _08106E94 @ =0x06006000
- bl RLUnCompVram
-_08106E86:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08106E8C: .4byte gPictureFrameTiles_4
-_08106E90: .4byte gPictureFrameTilemap_4
-_08106E94: .4byte 0x06006000
- thumb_func_end sub_8106C40
-
- thumb_func_start sub_8106E98
-sub_8106E98: @ 8106E98
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08106ED0 @ =gMain
- ldr r1, _08106ED4 @ =gOamData_83F6138
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [r4, 0x3C]
- str r2, [r4, 0x40]
- adds r3, r4, 0
- adds r3, 0x40
- ldrh r2, [r3]
- ldr r1, _08106ED8 @ =0xfffffc00
- ands r1, r2
- strh r1, [r3]
- ldrh r1, [r4, 0x3E]
- ldr r0, _08106EDC @ =0xfffffe00
- ands r0, r1
- movs r1, 0x58
- orrs r0, r1
- strh r0, [r4, 0x3E]
- adds r1, r4, 0
- adds r1, 0x3C
- movs r0, 0x18
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106ED0: .4byte gMain
-_08106ED4: .4byte gOamData_83F6138
-_08106ED8: .4byte 0xfffffc00
-_08106EDC: .4byte 0xfffffe00
- thumb_func_end sub_8106E98
-
- thumb_func_start sub_8106EE0
-sub_8106EE0: @ 8106EE0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bhi _08106EF8
- ldr r0, _08106EF4 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- b _08106F08
- .align 2, 0
-_08106EF4: .4byte gUnknown_03005E8C
-_08106EF8:
- ldr r0, _08106F18 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
-_08106F08:
- cmp r0, 0x4
- bhi _08106F46
- lsls r0, 2
- ldr r1, _08106F1C @ =_08106F20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106F18: .4byte gUnknown_03005E8C
-_08106F1C: .4byte _08106F20
- .align 2, 0
-_08106F20:
- .4byte _08106F34
- .4byte _08106F38
- .4byte _08106F3C
- .4byte _08106F40
- .4byte _08106F44
-_08106F34:
- movs r0, 0x9
- b _08106F46
-_08106F38:
- movs r0, 0xD
- b _08106F46
-_08106F3C:
- movs r0, 0x2
- b _08106F46
-_08106F40:
- movs r0, 0x24
- b _08106F46
-_08106F44:
- movs r0, 0x6
-_08106F46:
- pop {r1}
- bx r1
- thumb_func_end sub_8106EE0
-
- thumb_func_start sub_8106F4C
-sub_8106F4C: @ 8106F4C
- ldr r0, _08106F5C @ =gUnknown_03005E90
- ldr r1, _08106F60 @ =0x02017e00
- str r1, [r0]
- ldr r0, _08106F64 @ =gUnknown_03005E10
- ldr r2, _08106F68 @ =0xffffe000
- adds r1, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_08106F5C: .4byte gUnknown_03005E90
-_08106F60: .4byte 0x02017e00
-_08106F64: .4byte gUnknown_03005E10
-_08106F68: .4byte 0xffffe000
- thumb_func_end sub_8106F4C
-
- thumb_func_start sub_8106F6C
-sub_8106F6C: @ 8106F6C
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08106FAC @ =gUnknown_03005E20
- ldr r0, _08106FB0 @ =gUnknown_03005E10
- ldr r0, [r0]
- str r0, [r1, 0x4]
- ldr r0, _08106FB4 @ =gUnknown_03005E90
- ldr r0, [r0]
- str r0, [r1, 0x8]
- movs r2, 0
- strb r2, [r1, 0x18]
- ldr r0, _08106FB8 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0]
- strb r0, [r1, 0x1F]
- strb r2, [r1, 0x19]
- strb r2, [r1, 0x1A]
- movs r0, 0x40
- strb r0, [r1, 0x1B]
- strb r0, [r1, 0x1C]
- strb r0, [r1, 0x1D]
- strb r0, [r1, 0x1E]
- subs r0, r3, 0x2
- adds r4, r1, 0
- cmp r0, 0x22
- bhi _08107050
- lsls r0, 2
- ldr r1, _08106FBC @ =_08106FC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106FAC: .4byte gUnknown_03005E20
-_08106FB0: .4byte gUnknown_03005E10
-_08106FB4: .4byte gUnknown_03005E90
-_08106FB8: .4byte gUnknown_03005E8C
-_08106FBC: .4byte _08106FC0
- .align 2, 0
-_08106FC0:
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _0810704C
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _0810704C
-_0810704C:
- movs r0, 0x3
- b _08107052
-_08107050:
- movs r0, 0x1
-_08107052:
- strh r0, [r4, 0x14]
- movs r0, 0x2
- strh r0, [r4, 0x16]
- strb r3, [r4]
- ldr r0, _08107088 @ =0x06010000
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80FC7A0
- adds r0, r4, 0
- bl sub_80FDA18
- adds r0, r4, 0
- bl sub_80FD8CC
- ldr r0, _0810708C @ =gUnknown_03005E90
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x80
- lsls r2, 2
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08107088: .4byte 0x06010000
-_0810708C: .4byte gUnknown_03005E90
- thumb_func_end sub_8106F6C
-
- thumb_func_start sub_8107090
-sub_8107090: @ 8107090
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- bl sub_8106F4C
- ldr r0, _081070D0 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrh r0, [r0, 0x8]
- movs r1, 0
- bl sub_8106AC4
- adds r0, r4, 0
- bl sub_8106EE0
- lsls r0, 24
- lsrs r0, 24
- bl sub_8106F6C
- adds r0, r4, 0
- bl sub_8106E98
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8106C40
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081070D0: .4byte gUnknown_03005E8C
- thumb_func_end sub_8107090
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/crt0.s b/asm/crt0.s
index 7a492ff17..121b11744 100644
--- a/asm/crt0.s
+++ b/asm/crt0.s
@@ -30,10 +30,88 @@ GPIOPortReadEnable: @ 80000C8
.space 6
+@ 80000D0
+
+@ TODO: figure out what this data is
+
+ .ifdef GERMAN
+ .4byte 0xFFFFFFFF
+ .4byte 0xFFFFFFFF
+ .4byte 0xFFFFFFFF
+ .4byte 0xFFFFFFFF
+ .4byte 0xFFFFFFFF
+ .4byte 0xFFFFFFFF
+ .4byte 0xFFFFFFFF
+ .4byte 0xFFFFFFFF
+ .4byte 0xFFFFFFFF
+ .4byte 0xFFFFFFFF
+ .4byte 0xFFFFFFFF
+ .4byte 0xFFFFFFFF
+ .4byte 2
+ .4byte 5
+ .ascii "pokemon ruby version"
+ .space 12
+ .4byte gMonFrontPicTable
+ .4byte gMonBackPicTable
+ .4byte gMonPaletteTable
+ .4byte gMonShinyPaletteTable
+ .4byte gMonIconTable
+ .4byte gMonIconPaletteIndices
+ .4byte gMonIconPaletteTable
+ .4byte gSpeciesNames
+ .4byte gMoveNames
+ .4byte gDecorations
+ .4byte 0x1220
+ .4byte 0x1340
+ .4byte 0x18
+ .4byte 0x938
+ .4byte 0x3A8C
+ .4byte 0x46
+ .4byte 0x836
+ .4byte 0x84C
+ .4byte 0x182
+ .4byte 0xA0A0A07
+ .4byte 0xC060C0C
+ .4byte 0xC121006
+ .4byte 0x8010B0F
+ .4byte 0xC
+ .4byte 0x890
+ .4byte 0x3AC0
+ .4byte 0x234
+ .4byte 0x238
+ .4byte 9
+ .4byte 0xA
+ .4byte 0
+ .4byte 8
+ .4byte 0x556
+ .4byte 0x557
+ .4byte 0x312F
+ .4byte 0x311B
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0
+ .4byte 0xFFFFFFFF
+ .endif
+
.arm
.align 2, 0
.global Init
-Init: @ 80000D0
+Init:
mov r0, PSR_IRQ_MODE
msr cpsr_cf, r0
ldr sp, sp_irq
@@ -55,7 +133,7 @@ sp_irq: .word IWRAM_END - 0x60
.arm
.align 2, 0
.global IntrMain
-IntrMain: @ 800010C
+IntrMain:
mov r3, REG_BASE
add r3, r3, 0x200
ldr r2, [r3, OFFSET_REG_IE - 0x200]
diff --git a/asm/daycare.s b/asm/daycare.s
index 68cae0daf..a0ea9124a 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -6,510 +6,6 @@
.text
- thumb_func_start pokemon_get_nick
-pokemon_get_nick: @ 80412B0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick
-
- thumb_func_start pokemon_get_nick_
-pokemon_get_nick_: @ 80412D0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetBoxMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick_
-
- thumb_func_start daycare_count_pokemon
-daycare_count_pokemon: @ 80412F0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_080412F8:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r6, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08041310
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08041310:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _080412F8
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end daycare_count_pokemon
-
- thumb_func_start sub_8041324
-sub_8041324: @ 8041324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- mov r10, r1
- movs r7, 0
- movs r5, 0
- mov r6, r10
- adds r6, 0x74
- movs r0, 0x1
- mov r8, r0
-_0804133E:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _0804136E
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- movs r1, 0xC
- bl GetBoxMonData
- adds r1, r0, 0
- cmp r1, 0
- bne _0804136E
- lsls r0, r5, 1
- adds r0, r6, r0
- b _08041374
-_0804136E:
- lsls r0, r5, 1
- adds r0, r6, r0
- mov r1, r8
-_08041374:
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _0804133E
- mov r0, r10
- str r7, [r0, 0x70]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8041324
-
- thumb_func_start daycare_empty_slot
-daycare_empty_slot: @ 8041394
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_0804139A:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r5, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _080413B2
- lsls r0, r4, 24
- asrs r0, 24
- b _080413C0
-_080413B2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0804139A
- movs r0, 0x1
- negs r0, r0
-_080413C0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end daycare_empty_slot
-
- thumb_func_start sub_80413C8
-sub_80413C8: @ 80413C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- mov r8, r1
- mov r0, r8
- bl daycare_empty_slot
- lsls r0, 24
- lsrs r4, r0, 24
- mov r9, r4
- adds r0, r7, 0
- bl sub_80A2B94
- lsls r0, 24
- cmp r0, 0
- beq _0804144A
- lsls r0, r4, 24
- asrs r0, 24
- lsls r4, r0, 3
- subs r4, r0
- lsls r4, 3
- adds r5, r4, 0
- adds r5, 0xA0
- add r5, r8
- adds r6, r5, 0
- adds r6, 0x24
- ldr r1, _08041490 @ =gSaveBlock2
- adds r0, r6, 0
- bl StringCopy
- adds r0, r6, 0
- movs r1, 0xFC
- bl sub_814A518
- adds r6, 0x8
- adds r0, r7, 0
- adds r1, r6, 0
- bl pokemon_get_nick
- adds r0, r7, 0
- movs r1, 0x40
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- add r4, r8
- ldr r2, _08041494 @ =gSaveBlock1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r4, 0xA0
- ldr r0, _08041498 @ =0x00002b4c
- adds r1, r0
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- adds r0, r7, 0
- bl sub_80A2DF8
-_0804144A:
- mov r2, r9
- lsls r4, r2, 24
- asrs r4, 24
- lsls r5, r4, 2
- adds r4, r5, r4
- lsls r4, 4
- add r4, r8
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- bl pokemon_restore_pp
- movs r0, 0x88
- lsls r0, 1
- add r0, r8
- adds r0, r5
- movs r1, 0
- str r1, [r0]
- adds r0, r7, 0
- bl ZeroMonData
- bl party_compaction
- bl CalculatePlayerPartyCount
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08041490: .4byte gSaveBlock2
-_08041494: .4byte gSaveBlock1
-_08041498: .4byte 0x00002b4c
- thumb_func_end sub_80413C8
-
- thumb_func_start daycare_send
-daycare_send: @ 804149C
- push {lr}
- ldr r0, _080414B4 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080414B8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080414BC @ =gSaveBlock1 + 0x2F9C
- bl sub_80413C8
- pop {r0}
- bx r0
- .align 2, 0
-_080414B4: .4byte gUnknown_03005CE0
-_080414B8: .4byte gPlayerParty
-_080414BC: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end daycare_send
-
- thumb_func_start sub_80414C0
-sub_80414C0: @ 80414C0
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r5, 0
- adds r4, 0x50
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08041516
- adds r0, r5, 0
- movs r1, 0xB
- bl GetBoxMonData
- adds r6, r0, 0
- cmp r6, 0
- bne _08041516
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- bl ZeroBoxMonData
- adds r0, r5, 0
- adds r0, 0xA0
- adds r4, 0x88
- adds r1, r4, 0
- movs r2, 0x38
- bl memcpy
- movs r0, 0x88
- lsls r0, 1
- adds r2, r5, r0
- adds r0, 0x4
- adds r1, r5, r0
- ldr r0, [r1]
- str r0, [r2]
- str r6, [r1]
- adds r0, r4, 0
- bl sub_80417F4
-_08041516:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80414C0
-
- thumb_func_start sub_804151C
-sub_804151C: @ 804151C
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r5, 0
- ldr r7, _08041538 @ =0x0000ffff
-_08041524:
- adds r0, r4, 0
- bl TryIncrementMonLevel
- lsls r0, 24
- cmp r0, 0
- beq _08041560
- movs r6, 0x1
- adds r5, 0x1
- b _0804154C
- .align 2, 0
-_08041538: .4byte 0x0000ffff
-_0804153C:
- movs r6, 0
- cmp r0, r7
- bne _0804154C
- ldr r0, _0804156C @ =word_2024E82
- ldrh r1, [r0]
- adds r0, r4, 0
- bl DeleteFirstMoveAndGiveMoveToMon
-_0804154C:
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0804153C
- cmp r5, 0x63
- ble _08041524
-_08041560:
- adds r0, r4, 0
- bl CalculateMonStats
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804156C: .4byte word_2024E82
- thumb_func_end sub_804151C
-
- thumb_func_start sub_8041570
-sub_8041570: @ 8041570
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x68
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r7, r4, 2
- adds r0, r7, r4
- lsls r0, 4
- adds r6, r5, r0
- ldr r1, _08041640 @ =gStringVar1
- adds r0, r6, 0
- bl pokemon_get_nick_
- adds r0, r6, 0
- movs r1, 0xB
- bl GetBoxMonData
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- adds r0, r6, 0
- mov r1, sp
- bl sub_803B4B4
- mov r0, sp
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _080415D8
- mov r0, sp
- movs r1, 0x19
- bl GetMonData
- movs r2, 0x88
- lsls r2, 1
- adds r1, r5, r2
- adds r1, r7
- ldr r1, [r1]
- adds r0, r1
- str r0, [sp, 0x64]
- add r2, sp, 0x64
- mov r0, sp
- movs r1, 0x19
- bl SetMonData
- mov r0, sp
- bl sub_804151C
-_080415D8:
- ldr r0, _08041644 @ =gPlayerParty
- movs r1, 0xFA
- lsls r1, 1
- adds r1, r0
- mov r8, r1
- mov r0, r8
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- lsls r0, r4, 3
- subs r0, r4
- lsls r1, r0, 3
- adds r0, r5, r1
- adds r0, 0xC0
- ldrh r0, [r0]
- cmp r0, 0
- beq _08041610
- adds r4, r1, 0
- adds r4, 0xA0
- adds r4, r5, r4
- mov r0, r8
- adds r1, r4, 0
- bl sub_80A2D88
- adds r0, r4, 0
- bl sub_80417F4
-_08041610:
- bl party_compaction
- adds r0, r6, 0
- bl ZeroBoxMonData
- movs r2, 0x88
- lsls r2, 1
- adds r0, r5, r2
- adds r0, r7
- movs r1, 0
- str r1, [r0]
- adds r0, r5, 0
- bl sub_80414C0
- bl CalculatePlayerPartyCount
- mov r0, r9
- add sp, 0x68
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08041640: .4byte gStringVar1
-_08041644: .4byte gPlayerParty
- thumb_func_end sub_8041570
-
- thumb_func_start sub_8041648
-sub_8041648: @ 8041648
- push {lr}
- ldr r0, _0804165C @ =gSaveBlock1 + 0x2F9C
- ldr r1, _08041660 @ =gSpecialVar_0x8004
- ldrb r1, [r1]
- bl sub_8041570
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0804165C: .4byte gSaveBlock1 + 0x2F9C
-_08041660: .4byte gSpecialVar_0x8004
- thumb_func_end sub_8041648
-
- thumb_func_start sub_8041664
-sub_8041664: @ 8041664
- push {r4,r5,lr}
- sub sp, 0x54
- adds r4, r0, 0
- adds r5, r1, 0
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x19
- bl GetBoxMonData
- adds r0, r5
- str r0, [sp, 0x50]
- add r2, sp, 0x50
- mov r0, sp
- movs r1, 0x19
- bl SetBoxMonData
- mov r0, sp
- bl GetLevelFromBoxMonExp
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x54
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8041664
-
thumb_func_start sub_80416A0
sub_80416A0: @ 80416A0
push {r4-r6,lr}
@@ -534,7 +30,7 @@ sub_80416A0: @ 80416A0
add r5, r8
ldr r1, [r5]
adds r0, r4, 0
- bl sub_8041664
+ bl Daycare_GetLevelAfterSteps
lsls r0, 24
lsrs r0, 24
subs r0, r6
@@ -564,7 +60,7 @@ sub_80416E8: @ 80416E8
adds r6, r0
ldr r1, _08041720 @ =gStringVar1
adds r0, r6, 0
- bl pokemon_get_nick_
+ bl GetBoxMonNick
ldr r0, _08041724 @ =gStringVar2
adds r1, r5, 0
movs r2, 0
@@ -596,7 +92,7 @@ sub_8041728: @ 8041728
adds r6, r0
ldr r1, _08041768 @ =gStringVar1
adds r0, r6, 0
- bl pokemon_get_nick_
+ bl GetBoxMonNick
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
@@ -708,7 +204,7 @@ _08041812:
subs r1, 0x1
cmp r1, r2
bge _08041812
- bl sub_80A2B40
+ bl ClearMailStruct
pop {r0}
bx r0
thumb_func_end sub_80417F4
@@ -1266,7 +762,7 @@ _08041C18:
lsls r0, 16
lsrs r0, 16
ldr r1, _08041CD8 @ =gUnknown_03000470
- bl sub_804051C
+ bl GetLevelUpMovesBySpecies
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
@@ -2129,7 +1625,7 @@ sub_80422C4: @ 80422C4
beq _080422FC
ldr r1, _0804231C @ =gStringVar1
adds r0, r6, 0
- bl pokemon_get_nick_
+ bl GetBoxMonNick
adds r0, r6, 0
movs r1, 0x3
bl GetBoxMonData
@@ -2154,7 +1650,7 @@ _080422FC:
beq _08042314
ldr r1, _08042324 @ =gStringVar2
adds r0, r4, 0
- bl pokemon_get_nick_
+ bl GetBoxMonNick
_08042314:
pop {r4-r6}
pop {r0}
@@ -2168,14 +1664,14 @@ _08042324: .4byte gStringVar2
thumb_func_start sub_8042328
sub_8042328: @ 8042328
push {r4-r6,lr}
- ldr r6, _08042354 @ =gUnknown_03005CE0
+ ldr r6, _08042354 @ =gLastFieldPokeMenuOpened
ldrb r0, [r6]
movs r5, 0x64
muls r0, r5
ldr r4, _08042358 @ =gPlayerParty
adds r0, r4
ldr r1, _0804235C @ =gStringVar1
- bl pokemon_get_nick_
+ bl GetBoxMonNick
ldrb r0, [r6]
muls r0, r5
adds r0, r4
@@ -2187,7 +1683,7 @@ sub_8042328: @ 8042328
pop {r1}
bx r1
.align 2, 0
-_08042354: .4byte gUnknown_03005CE0
+_08042354: .4byte gLastFieldPokeMenuOpened
_08042358: .4byte gPlayerParty
_0804235C: .4byte gStringVar1
thumb_func_end sub_8042328
@@ -2218,7 +1714,7 @@ sp0B6_daycare: @ 8042370
_08042384: .4byte gSaveBlock1 + 0x2F9C
_08042388:
adds r0, r4, 0
- bl daycare_count_pokemon
+ bl Daycare_CountPokemon
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -2622,7 +2118,7 @@ _08042648:
adds r5, r1, r0
adds r0, r4, 0
adds r1, r5, 0
- bl pokemon_get_nick_
+ bl GetBoxMonNick
adds r0, r5, 0
adds r1, r4, 0
bl MonAppendGenderSymbol
@@ -2682,7 +2178,7 @@ _080426C6:
adds r1, r6, r3
adds r1, r2
ldr r1, [r1]
- bl sub_8041664
+ bl Daycare_GetLevelAfterSteps
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2783,10 +2279,10 @@ _0804279C:
ands r0, r1
cmp r0, 0
beq _080427E8
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0x5
bl PlaySE
- ldr r3, _080427DC @ =gUnknown_03005CE0
+ ldr r3, _080427DC @ =gLastFieldPokeMenuOpened
ldr r2, _080427E0 @ =gScriptResult
ldr r1, _080427E4 @ =gTasks
lsls r0, r4, 2
@@ -2806,7 +2302,7 @@ _0804279C:
bl EnableBothScriptContexts
b _08042816
.align 2, 0
-_080427DC: .4byte gUnknown_03005CE0
+_080427DC: .4byte gLastFieldPokeMenuOpened
_080427E0: .4byte gScriptResult
_080427E4: .4byte gTasks
_080427E8:
@@ -2815,8 +2311,8 @@ _080427E8:
ands r0, r1
cmp r0, 0
beq _08042816
- bl sub_8072DEC
- ldr r0, _0804281C @ =gUnknown_03005CE0
+ bl HandleDestroyMenuCursors
+ ldr r0, _0804281C @ =gLastFieldPokeMenuOpened
ldr r1, _08042820 @ =gScriptResult
strh r4, [r1]
movs r1, 0x2
@@ -2834,7 +2330,7 @@ _08042816:
pop {r0}
bx r0
.align 2, 0
-_0804281C: .4byte gUnknown_03005CE0
+_0804281C: .4byte gLastFieldPokeMenuOpened
_08042820: .4byte gScriptResult
thumb_func_end DaycareLevelMenuProcessKeyInput
diff --git a/asm/decoration.s b/asm/decoration.s
deleted file mode 100644
index c507b599d..000000000
--- a/asm/decoration.s
+++ /dev/null
@@ -1,7086 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80FE1DC
-sub_80FE1DC: @ 80FE1DC
- push {lr}
- sub sp, 0x8
- bl sub_80FE2B4
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _080FE218 @ =gUnknown_083EC604
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- ldr r0, _080FE21C @ =gUnknown_020388D4
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080FE218: .4byte gUnknown_083EC604
-_080FE21C: .4byte gUnknown_020388D4
- thumb_func_end sub_80FE1DC
-
- thumb_func_start sub_80FE220
-sub_80FE220: @ 80FE220
- push {lr}
- ldr r1, _080FE238 @ =gUnknown_020388D4
- movs r0, 0
- strb r0, [r1]
- bl ScriptContext2_Enable
- bl sub_80FE1DC
- bl sub_80FE394
- pop {r0}
- bx r0
- .align 2, 0
-_080FE238: .4byte gUnknown_020388D4
- thumb_func_end sub_80FE220
-
- thumb_func_start DecorationPC
-DecorationPC: @ 80FE23C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80FE220
- ldr r1, _080FE25C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE260 @ =Task_DecorationPCProcessMenuInput
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE25C: .4byte gTasks
-_080FE260: .4byte Task_DecorationPCProcessMenuInput
- thumb_func_end DecorationPC
-
- thumb_func_start Task_SecretBasePC_Decoration
-Task_SecretBasePC_Decoration: @ 80FE264
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DecorationPC
- ldr r1, _080FE284 @ =0x0201f000
- ldr r0, _080FE288 @ =gSaveBlock1 + 0x1A1A
- str r0, [r1]
- adds r0, 0x10
- str r0, [r1, 0x4]
- movs r2, 0
- movs r0, 0x10
- strb r0, [r1, 0x8]
- strb r2, [r1, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_080FE284: .4byte 0x0201f000
-_080FE288: .4byte gSaveBlock1 + 0x1A1A
- thumb_func_end Task_SecretBasePC_Decoration
-
- thumb_func_start DoPlayerPCDecoration
-DoPlayerPCDecoration: @ 80FE28C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DecorationPC
- ldr r1, _080FE2AC @ =0x0201f000
- ldr r0, _080FE2B0 @ =gSaveBlock1 + 0x2688
- str r0, [r1]
- adds r0, 0xC
- str r0, [r1, 0x4]
- movs r0, 0xC
- strb r0, [r1, 0x8]
- movs r0, 0x1
- strb r0, [r1, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_080FE2AC: .4byte 0x0201f000
-_080FE2B0: .4byte gSaveBlock1 + 0x2688
- thumb_func_end DoPlayerPCDecoration
-
- thumb_func_start sub_80FE2B4
-sub_80FE2B4: @ 80FE2B4
- push {lr}
- sub sp, 0x8
- ldr r1, _080FE2E8 @ =gUnknown_083EC654
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- add r0, sp, 0x4
- movs r1, 0xDF
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- adds r0, 0x2
- movs r1, 0xD1
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- movs r1, 0xD8
- movs r2, 0x2
- bl LoadPalette
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080FE2E8: .4byte gUnknown_083EC654
- thumb_func_end sub_80FE2B4
-
- thumb_func_start Task_DecorationPCProcessMenuInput
-Task_DecorationPCProcessMenuInput: @ 80FE2EC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, r6, 0
- ldr r0, _080FE368 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r5, 0x80
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _080FE38C
- ldr r4, _080FE36C @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080FE324
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- ldr r1, _080FE370 @ =gUnknown_020388D4
- strb r0, [r1]
- bl sub_80FE394
-_080FE324:
- ldrh r1, [r4, 0x2E]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE342
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- ldr r1, _080FE370 @ =gUnknown_020388D4
- strb r0, [r1]
- bl sub_80FE394
-_080FE342:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080FE378
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080FE374 @ =gUnknown_083EC604
- ldr r0, _080FE370 @ =gUnknown_020388D4
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
- b _080FE38C
- .align 2, 0
-_080FE368: .4byte gPaletteFade
-_080FE36C: .4byte gMain
-_080FE370: .4byte gUnknown_020388D4
-_080FE374: .4byte gUnknown_083EC604
-_080FE378:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FE38C
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl gpu_pal_decompress_alloc_tag_and_upload
-_080FE38C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end Task_DecorationPCProcessMenuInput
-
- thumb_func_start sub_80FE394
-sub_80FE394: @ 80FE394
- push {lr}
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- ldr r1, _080FE3BC @ =gUnknown_083EC624
- ldr r0, _080FE3C0 @ =gUnknown_020388D4
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_080FE3BC: .4byte gUnknown_083EC624
-_080FE3C0: .4byte gUnknown_020388D4
- thumb_func_end sub_80FE394
-
- thumb_func_start gpu_pal_decompress_alloc_tag_and_upload
-gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- ldr r0, _080FE404 @ =0x0201f000
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _080FE40C
- ldr r0, _080FE408 @ =gUnknown_0815F399
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- b _080FE412
- .align 2, 0
-_080FE404: .4byte 0x0201f000
-_080FE408: .4byte gUnknown_0815F399
-_080FE40C:
- adds r0, r4, 0
- bl ReshowPlayerPC
-_080FE412:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end gpu_pal_decompress_alloc_tag_and_upload
-
- thumb_func_start sub_80FE418
-sub_80FE418: @ 80FE418
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FE5AC
- pop {r0}
- bx r0
- thumb_func_end sub_80FE418
-
- thumb_func_start sub_80FE428
-sub_80FE428: @ 80FE428
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080FE464 @ =gUnknown_020388D4
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- bl sub_80FE394
- ldr r1, _080FE468 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE46C @ =Task_DecorationPCProcessMenuInput
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE464: .4byte gUnknown_020388D4
-_080FE468: .4byte gTasks
-_080FE46C: .4byte Task_DecorationPCProcessMenuInput
- thumb_func_end sub_80FE428
-
- thumb_func_start sub_80FE470
-sub_80FE470: @ 80FE470
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- mov r8, r1
- mov r9, r2
- adds r5, r3, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r5, 24
- lsrs r5, 24
- bl sub_8072CBC
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r7, _080FE51C @ =gStringVar4
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x5
- mov r10, r0
- strb r0, [r7, 0x1]
- strb r5, [r7, 0x2]
- adds r7, 0x3
- ldr r1, _080FE520 @ =gUnknown_083EC5E4
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- adds r0, r4, 0
- bl sub_8134194
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r7, 0
- movs r2, 0x56
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- movs r0, 0xBA
- strb r0, [r7]
- adds r7, 0x1
- ldr r0, _080FE524 @ =gDecorationInventories
- lsls r4, 3
- adds r4, r0
- ldrb r1, [r4, 0x4]
- adds r0, r7, 0
- movs r2, 0x68
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- movs r0, 0xFC
- strb r0, [r7]
- mov r0, r10
- strb r0, [r7, 0x1]
- strb r6, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- ldr r0, _080FE51C @ =gStringVar4
- mov r1, r8
- mov r2, r9
- bl MenuPrint
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE51C: .4byte gStringVar4
-_080FE520: .4byte gUnknown_083EC5E4
-_080FE524: .4byte gDecorationInventories
- thumb_func_end sub_80FE470
-
- thumb_func_start sub_80FE528
-sub_80FE528: @ 80FE528
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r5, 0
- ldr r1, _080FE574 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
-_080FE548:
- ldr r0, _080FE578 @ =0x0201f000
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- bne _080FE57C
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080FE57C
- cmp r5, 0x6
- beq _080FE57C
- cmp r5, 0x7
- beq _080FE57C
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0xD
- bl sub_80FE470
- b _080FE58E
- .align 2, 0
-_080FE574: .4byte gTasks
-_080FE578: .4byte 0x0201f000
-_080FE57C:
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0xFF
- bl sub_80FE470
-_080FE58E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _080FE548
- ldr r0, _080FE5A8 @ =gUnknownText_Exit
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE5A8: .4byte gUnknownText_Exit
- thumb_func_end sub_80FE528
-
- thumb_func_start sub_80FE5AC
-sub_80FE5AC: @ 80FE5AC
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FE528
- ldr r0, _080FE5F8 @ =gUnknown_020388F6
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x9
- bl InitMenu
- ldr r1, _080FE5FC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE600 @ =sub_80FE604
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE5F8: .4byte gUnknown_020388F6
-_080FE5FC: .4byte gTasks
-_080FE600: .4byte sub_80FE604
- thumb_func_end sub_80FE5AC
-
- thumb_func_start sub_80FE604
-sub_80FE604: @ 80FE604
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r0, _080FE638 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE61C
- b _080FE720
-_080FE61C:
- ldr r2, _080FE63C @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080FE640
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080FE720
- .align 2, 0
-_080FE638: .4byte gPaletteFade
-_080FE63C: .4byte gMain
-_080FE640:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE656
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080FE720
-_080FE656:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080FE70C
- movs r0, 0x5
- bl PlaySE
- bl GetMenuCursorPos
- ldr r4, _080FE6C0 @ =gUnknown_020388F6
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- beq _080FE704
- ldrb r0, [r4]
- bl sub_8134194
- ldr r1, _080FE6C4 @ =gUnknown_020388D5
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _080FE6DC
- ldrb r0, [r4]
- bl sub_8134104
- ldr r2, _080FE6C8 @ =gUnknown_020388D0
- ldr r1, _080FE6CC @ =gDecorationInventories
- ldrb r0, [r4]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- adds r0, r5, 0
- bl sub_80FEF50
- bl sub_80F944C
- ldr r0, _080FE6D0 @ =gUnknown_020388F7
- movs r1, 0x8
- bl sub_80F9480
- bl LoadScrollIndicatorPalette
- ldr r1, _080FE6D4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE6D8 @ =sub_80FE868
- str r1, [r0]
- b _080FE720
- .align 2, 0
-_080FE6C0: .4byte gUnknown_020388F6
-_080FE6C4: .4byte gUnknown_020388D5
-_080FE6C8: .4byte gUnknown_020388D0
-_080FE6CC: .4byte gDecorationInventories
-_080FE6D0: .4byte gUnknown_020388F7
-_080FE6D4: .4byte gTasks
-_080FE6D8: .4byte sub_80FE868
-_080FE6DC:
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080FE6FC @ =gSecretBaseText_NoDecors
- ldr r2, _080FE700 @ =sub_80FE418
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080FE720
- .align 2, 0
-_080FE6FC: .4byte gSecretBaseText_NoDecors
-_080FE700: .4byte sub_80FE418
-_080FE704:
- adds r0, r5, 0
- bl sub_80FE728
- b _080FE720
-_080FE70C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FE720
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80FE728
-_080FE720:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE604
-
- thumb_func_start sub_80FE728
-sub_80FE728: @ 80FE728
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080FE748 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- cmp r0, 0x3
- beq _080FE74C
- adds r0, r2, 0
- bl sub_80FE758
- b _080FE752
- .align 2, 0
-_080FE748: .4byte gTasks
-_080FE74C:
- adds r0, r2, 0
- bl sub_8109DAC
-_080FE752:
- pop {r0}
- bx r0
- thumb_func_end sub_80FE728
-
- thumb_func_start sub_80FE758
-sub_80FE758: @ 80FE758
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080FE794 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- beq _080FE79C
- bl sub_80FE1DC
- bl MenuDisplayMessageBox
- bl sub_80FE394
- ldr r0, _080FE798 @ =Task_DecorationPCProcessMenuInput
- str r0, [r5]
- b _080FE7A2
- .align 2, 0
-_080FE794: .4byte gTasks
-_080FE798: .4byte Task_DecorationPCProcessMenuInput
-_080FE79C:
- adds r0, r4, 0
- bl sub_80B3068
-_080FE7A2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE758
-
- thumb_func_start sub_80FE7A8
-sub_80FE7A8: @ 80FE7A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080FE7CC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r3, 0
- movs r2, 0x3
- strh r2, [r1, 0x1E]
- ldr r1, _080FE7D0 @ =gUnknown_020388F6
- strb r3, [r1]
- bl sub_80FE5AC
- pop {r0}
- bx r0
- .align 2, 0
-_080FE7CC: .4byte gTasks
-_080FE7D0: .4byte gUnknown_020388F6
- thumb_func_end sub_80FE7A8
-
- thumb_func_start sub_80FE7D4
-sub_80FE7D4: @ 80FE7D4
- push {lr}
- lsls r1, 24
- ldr r2, _080FE7E8 @ =gUnknown_083EC5E4
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_080FE7E8: .4byte gUnknown_083EC5E4
- thumb_func_end sub_80FE7D4
-
- thumb_func_start sub_80FE7EC
-sub_80FE7EC: @ 80FE7EC
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FEC94
- ldr r0, _080FE858 @ =gUnknown_020388F6
- ldrb r0, [r0]
- bl sub_80FECB8
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r4, _080FE85C @ =gUnknown_020388F2
- ldr r0, _080FE860 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FECE0
- ldr r0, _080FE864 @ =gUnknown_020388F3
- ldrb r3, [r0]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x2
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE858: .4byte gUnknown_020388F6
-_080FE85C: .4byte gUnknown_020388F2
-_080FE860: .4byte gUnknown_020388F4
-_080FE864: .4byte gUnknown_020388F3
- thumb_func_end sub_80FE7EC
-
- thumb_func_start sub_80FE868
-sub_80FE868: @ 80FE868
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80FE7EC
- ldr r1, _080FE88C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE890 @ =sub_80FE948
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE88C: .4byte gTasks
-_080FE890: .4byte sub_80FE948
- thumb_func_end sub_80FE868
-
- thumb_func_start sub_80FE894
-sub_80FE894: @ 80FE894
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- movs r0, 0
- mov r10, r0
- ldr r6, _080FE920 @ =gUnknown_020388F2
- ldrb r1, [r6]
- ldr r4, _080FE924 @ =gUnknown_020388F4
- ldrb r0, [r4]
- adds r1, r0
- ldr r2, _080FE928 @ =gUnknown_020388D5
- mov r9, r2
- ldrb r0, [r2]
- cmp r1, r0
- bne _080FE8C8
- movs r1, 0x1
- mov r10, r1
-_080FE8C8:
- movs r0, 0x5
- bl PlaySE
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0
- beq _080FE8DC
- bl MoveMenuCursor
- strb r0, [r6]
-_080FE8DC:
- cmp r7, 0
- beq _080FE8EE
- ldrb r0, [r4]
- adds r0, r7
- strb r0, [r4]
- mov r0, r8
- movs r1, 0x1
- bl sub_80FEABC
-_080FE8EE:
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r0, r1
- mov r2, r9
- ldrb r2, [r2]
- cmp r0, r2
- beq _080FE92C
- mov r0, r10
- cmp r0, 0
- beq _080FE90E
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
-_080FE90E:
- ldrb r0, [r4]
- ldrb r6, [r6]
- adds r0, r6
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FECE0
- b _080FE938
- .align 2, 0
-_080FE920: .4byte gUnknown_020388F2
-_080FE924: .4byte gUnknown_020388F4
-_080FE928: .4byte gUnknown_020388D5
-_080FE92C:
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080FE938:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE894
-
- thumb_func_start sub_80FE948
-sub_80FE948: @ 80FE948
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080FE980 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080FE95C
- b _080FEAAC
-_080FE95C:
- ldr r0, _080FE984 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x40
- bne _080FE9A0
- ldr r0, _080FE988 @ =gUnknown_020388F2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FE98C
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- movs r2, 0
- bl sub_80FE894
- b _080FE9A0
- .align 2, 0
-_080FE980: .4byte gPaletteFade
-_080FE984: .4byte gMain
-_080FE988: .4byte gUnknown_020388F2
-_080FE98C:
- ldr r0, _080FE9C4 @ =gUnknown_020388F4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FE9A0
- movs r2, 0x1
- negs r2, r2
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FE894
-_080FE9A0:
- ldr r0, _080FE9C8 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x80
- bne _080FE9EE
- ldr r2, _080FE9CC @ =gUnknown_020388F2
- ldr r1, _080FE9D0 @ =gUnknown_020388F3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080FE9D4
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_80FE894
- b _080FE9EE
- .align 2, 0
-_080FE9C4: .4byte gUnknown_020388F4
-_080FE9C8: .4byte gMain
-_080FE9CC: .4byte gUnknown_020388F2
-_080FE9D0: .4byte gUnknown_020388F3
-_080FE9D4:
- ldr r0, _080FEA38 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldrb r1, [r2]
- adds r0, r1
- ldr r1, _080FEA3C @ =gUnknown_020388D5
- ldrb r1, [r1]
- cmp r0, r1
- beq _080FE9EE
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- bl sub_80FE894
-_080FE9EE:
- ldr r0, _080FEA40 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080FEA7C
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080FEA44 @ =gUnknown_020388F5
- ldr r1, _080FEA48 @ =gUnknown_020388F2
- ldr r0, _080FEA38 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldrb r1, [r1]
- adds r0, r1
- strb r0, [r2]
- ldr r1, _080FEA3C @ =gUnknown_020388D5
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _080FEA54
- ldr r1, _080FEA4C @ =gUnknown_083EC634
- ldr r2, _080FEA50 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x1E
- ldrsh r0, [r0, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- b _080FEA68
- .align 2, 0
-_080FEA38: .4byte gUnknown_020388F4
-_080FEA3C: .4byte gUnknown_020388D5
-_080FEA40: .4byte gMain
-_080FEA44: .4byte gUnknown_020388F5
-_080FEA48: .4byte gUnknown_020388F2
-_080FEA4C: .4byte gUnknown_083EC634
-_080FEA50: .4byte gTasks
-_080FEA54:
- ldr r2, _080FEA74 @ =gUnknown_083EC634
- ldr r1, _080FEA78 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- lsls r0, 3
- adds r0, r2
-_080FEA68:
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080FEAAC
- .align 2, 0
-_080FEA74: .4byte gUnknown_083EC634
-_080FEA78: .4byte gTasks
-_080FEA7C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FEAAC
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080FEAB4 @ =gUnknown_083EC634
- ldr r2, _080FEAB8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x1E
- ldrsh r0, [r0, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_080FEAAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FEAB4: .4byte gUnknown_083EC634
-_080FEAB8: .4byte gTasks
- thumb_func_end sub_80FE948
-
- thumb_func_start sub_80FEABC
-sub_80FEABC: @ 80FEABC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080FEB58 @ =gUnknown_020388F4
- ldrb r0, [r4]
- cmp r0, 0
- bne _080FEADE
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- ldrb r0, [r4]
- cmp r0, 0
- beq _080FEAE8
-_080FEADE:
- movs r0, 0
- movs r1, 0x3C
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
-_080FEAE8:
- ldr r5, _080FEB58 @ =gUnknown_020388F4
- ldrb r0, [r5]
- adds r0, 0x7
- ldr r4, _080FEB5C @ =gUnknown_020388D5
- ldrb r1, [r4]
- cmp r0, r1
- bne _080FEAFC
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_080FEAFC:
- ldrb r0, [r5]
- adds r0, 0x7
- ldrb r4, [r4]
- cmp r0, r4
- bge _080FEB10
- movs r0, 0x1
- movs r1, 0x3C
- movs r2, 0x98
- bl CreateVerticalScrollIndicators
-_080FEB10:
- ldrb r4, [r5]
- adds r0, r4, 0
- adds r0, 0x8
- cmp r4, r0
- blt _080FEB1C
- b _080FEC7E
-_080FEB1C:
- adds r7, r5, 0
-_080FEB1E:
- ldrb r1, [r7]
- subs r1, r4, r1
- lsls r0, r1, 25
- movs r2, 0x80
- lsls r2, 18
- adds r0, r2
- lsrs r6, r0, 24
- ldr r0, _080FEB60 @ =gUnknown_020388F7
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080FEB3C
- adds r0, r1, 0
- bl sub_80F94F8
-_080FEB3C:
- ldr r0, _080FEB5C @ =gUnknown_020388D5
- ldrb r0, [r0]
- cmp r4, r0
- bne _080FEB68
- lsls r2, r6, 3
- movs r0, 0x1
- str r0, [sp]
- ldr r0, _080FEB64 @ =gUnknownText_Exit
- movs r1, 0x8
- movs r3, 0x68
- bl sub_8072A18
- b _080FEC7E
- .align 2, 0
-_080FEB58: .4byte gUnknown_020388F4
-_080FEB5C: .4byte gUnknown_020388D5
-_080FEB60: .4byte gUnknown_020388F7
-_080FEB64: .4byte gUnknownText_Exit
-_080FEB68:
- ldr r0, _080FEBC0 @ =gUnknown_020388D0
- ldr r1, [r0]
- adds r2, r1, r4
- ldrb r1, [r2]
- mov r12, r0
- adds r5, r4, 0x1
- cmp r1, 0
- bne _080FEB7A
- b _080FEC70
-_080FEB7A:
- ldr r0, _080FEBC4 @ =0x0201f000
- ldrb r5, [r0, 0x9]
- cmp r5, 0x1
- bne _080FEBDC
- ldr r0, _080FEBC8 @ =gUnknown_020388F6
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080FEBDC
- cmp r0, 0x7
- beq _080FEBDC
- ldr r0, _080FEBCC @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r3, 0x1E
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080FEBDC
- ldrb r1, [r2]
- lsls r1, 5
- ldr r0, _080FEBD0 @ =gDecorations + 0x1
- adds r1, r0
- ldr r0, _080FEBD4 @ =gStringVar1
- bl StringCopy
- lsls r2, r6, 3
- str r5, [sp]
- ldr r0, _080FEBD8 @ =gUnknown_083EC65A
- movs r1, 0x8
- movs r3, 0x68
- bl sub_8072A18
- b _080FEBF8
- .align 2, 0
-_080FEBC0: .4byte gUnknown_020388D0
-_080FEBC4: .4byte 0x0201f000
-_080FEBC8: .4byte gUnknown_020388F6
-_080FEBCC: .4byte gTasks
-_080FEBD0: .4byte gDecorations + 0x1
-_080FEBD4: .4byte gStringVar1
-_080FEBD8: .4byte gUnknown_083EC65A
-_080FEBDC:
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 5
- ldr r1, _080FEC00 @ =gDecorations + 0x1
- adds r0, r1
- lsls r2, r6, 3
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x8
- movs r3, 0x68
- bl sub_8072A18
-_080FEBF8:
- movs r1, 0
- adds r5, r4, 0x1
- b _080FEC0A
- .align 2, 0
-_080FEC00: .4byte gDecorations + 0x1
-_080FEC04:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
-_080FEC0A:
- cmp r1, 0xF
- bhi _080FEC34
- ldr r0, _080FEC38 @ =gUnknown_020388D6
- adds r0, r1, r0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, r4
- bne _080FEC04
- ldrb r3, [r7]
- subs r3, r4, r3
- ldr r1, _080FEC3C @ =gUnknown_020388F7
- adds r1, r3, r1
- lsls r3, 20
- movs r2, 0xC0
- lsls r2, 13
- adds r3, r2
- asrs r3, 16
- movs r0, 0x4
- movs r2, 0x6C
- bl sub_80F94A4
-_080FEC34:
- movs r1, 0
- b _080FEC46
- .align 2, 0
-_080FEC38: .4byte gUnknown_020388D6
-_080FEC3C: .4byte gUnknown_020388F7
-_080FEC40:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
-_080FEC46:
- cmp r1, 0xB
- bhi _080FEC70
- ldr r0, _080FEC8C @ =gUnknown_020388E6
- adds r0, r1, r0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, r4
- bne _080FEC40
- ldrb r3, [r7]
- subs r3, r4, r3
- ldr r1, _080FEC90 @ =gUnknown_020388F7
- adds r1, r3, r1
- lsls r3, 20
- movs r0, 0xC0
- lsls r0, 13
- adds r3, r0
- asrs r3, 16
- movs r0, 0x5
- movs r2, 0x6C
- bl sub_80F94A4
-_080FEC70:
- lsls r0, r5, 16
- lsrs r4, r0, 16
- ldrb r0, [r7]
- adds r0, 0x8
- cmp r4, r0
- bge _080FEC7E
- b _080FEB1E
-_080FEC7E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FEC8C: .4byte gUnknown_020388E6
-_080FEC90: .4byte gUnknown_020388F7
- thumb_func_end sub_80FEABC
-
- thumb_func_start sub_80FEC94
-sub_80FEC94: @ 80FEC94
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FEABC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FEC94
-
- thumb_func_start sub_80FECB8
-sub_80FECB8: @ 80FECB8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xF
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x3
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x1
- movs r3, 0xFF
- bl sub_80FE470
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FECB8
-
- thumb_func_start sub_80FECE0
-sub_80FECE0: @ 80FECE0
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080FED14 @ =gDecorations
- ldr r1, _080FED18 @ =gUnknown_020388D0
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 5
- adds r2, 0x18
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x30
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x80
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080FED14: .4byte gDecorations
-_080FED18: .4byte gUnknown_020388D0
- thumb_func_end sub_80FECE0
-
- thumb_func_start sub_80FED1C
-sub_80FED1C: @ 80FED1C
- push {lr}
- movs r0, 0xF
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80FED1C
-
- thumb_func_start sub_80FED3C
-sub_80FED3C: @ 80FED3C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl LoadScrollIndicatorPalette
- ldr r1, _080FED5C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FED60 @ =sub_80FE868
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FED5C: .4byte gTasks
-_080FED60: .4byte sub_80FE868
- thumb_func_end sub_80FED3C
-
- thumb_func_start sub_80FED64
-sub_80FED64: @ 80FED64
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, _080FED7C @ =gUnknown_020388D6
-_080FED6E:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080FED80
- movs r0, 0x1
- b _080FED8C
- .align 2, 0
-_080FED7C: .4byte gUnknown_020388D6
-_080FED80:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080FED6E
- movs r0, 0
-_080FED8C:
- pop {r1}
- bx r1
- thumb_func_end sub_80FED64
-
- thumb_func_start sub_80FED90
-sub_80FED90: @ 80FED90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- movs r3, 0
- ldr r4, _080FEE30 @ =gUnknown_020388D6
- movs r1, 0
- ldr r2, _080FEE34 @ =gUnknown_020388E6
-_080FEDA4:
- adds r0, r3, r4
- strb r1, [r0]
- cmp r3, 0xB
- bhi _080FEDB0
- adds r0, r3, r2
- strb r1, [r0]
-_080FEDB0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bls _080FEDA4
- movs r3, 0
- ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A
- mov r10, r0
- ldr r1, _080FEE3C @ =gDecorationInventories
- mov r9, r1
- ldr r2, _080FEE40 @ =gUnknown_020388F6
- mov r8, r2
-_080FEDC8:
- mov r1, r10
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FEE5A
- movs r1, 0
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 3
- add r0, r9
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcs _080FEE5A
- ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A
- adds r0, r3
- mov r12, r0
- ldr r7, _080FEE30 @ =gUnknown_020388D6
-_080FEDEA:
- ldr r0, _080FEE44 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- adds r4, r1, 0x1
- mov r1, r12
- ldrb r1, [r1]
- cmp r0, r1
- bne _080FEE48
- movs r1, 0
- cmp r1, r6
- bcs _080FEE1E
- ldrb r0, [r7]
- cmp r0, r4
- beq _080FEE1E
- ldr r5, _080FEE30 @ =gUnknown_020388D6
- adds r2, r4, 0
-_080FEE0C:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r6
- bcs _080FEE1E
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, r2
- bne _080FEE0C
-_080FEE1E:
- cmp r1, r6
- bne _080FEE48
- adds r0, r6, r7
- strb r4, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- b _080FEE5A
- .align 2, 0
-_080FEE30: .4byte gUnknown_020388D6
-_080FEE34: .4byte gUnknown_020388E6
-_080FEE38: .4byte gSaveBlock1 + 0x1A1A
-_080FEE3C: .4byte gDecorationInventories
-_080FEE40: .4byte gUnknown_020388F6
-_080FEE44: .4byte gUnknown_020388D0
-_080FEE48:
- lsls r0, r4, 16
- lsrs r1, r0, 16
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 3
- add r0, r9
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcc _080FEDEA
-_080FEE5A:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bls _080FEDC8
- movs r6, 0
- movs r3, 0
- ldr r0, _080FEEE4 @ =gDecorationInventories
- mov r8, r0
-_080FEE6C:
- ldr r0, _080FEEE8 @ =gSaveBlock1
- ldr r1, _080FEEEC @ =0x00002688
- adds r0, r1
- adds r2, r3, r0
- ldrb r0, [r2]
- adds r7, r3, 0x1
- cmp r0, 0
- beq _080FEF0E
- movs r1, 0
- ldr r0, _080FEEF0 @ =gUnknown_020388F6
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r8
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcs _080FEF0E
- adds r5, r2, 0
-_080FEE8E:
- ldr r0, _080FEEF4 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- adds r4, r1, 0x1
- ldrb r2, [r5]
- cmp r0, r2
- bne _080FEEFC
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80FED64
- lsls r0, 24
- cmp r0, 0
- bne _080FEEFC
- movs r1, 0
- cmp r1, r6
- bcs _080FEED0
- ldr r2, _080FEEF8 @ =gUnknown_020388E6
- ldrb r0, [r2]
- cmp r0, r4
- beq _080FEED0
- adds r3, r2, 0
- adds r2, r4, 0
-_080FEEBE:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r6
- bcs _080FEED0
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080FEEBE
-_080FEED0:
- cmp r1, r6
- bne _080FEEFC
- ldr r0, _080FEEF8 @ =gUnknown_020388E6
- adds r0, r6, r0
- strb r4, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- b _080FEF0E
- .align 2, 0
-_080FEEE4: .4byte gDecorationInventories
-_080FEEE8: .4byte gSaveBlock1
-_080FEEEC: .4byte 0x00002688
-_080FEEF0: .4byte gUnknown_020388F6
-_080FEEF4: .4byte gUnknown_020388D0
-_080FEEF8: .4byte gUnknown_020388E6
-_080FEEFC:
- lsls r0, r4, 16
- lsrs r1, r0, 16
- ldr r0, _080FEF24 @ =gUnknown_020388F6
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r8
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcc _080FEE8E
-_080FEF0E:
- lsls r0, r7, 16
- lsrs r3, r0, 16
- cmp r3, 0xB
- bls _080FEE6C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FEF24: .4byte gUnknown_020388F6
- thumb_func_end sub_80FED90
-
- thumb_func_start sub_80FEF28
-sub_80FEF28: @ 80FEF28
- push {lr}
- ldr r0, _080FEF38 @ =gUnknown_020388D5
- ldrb r1, [r0]
- cmp r1, 0x7
- bhi _080FEF40
- ldr r0, _080FEF3C @ =gUnknown_020388F3
- strb r1, [r0]
- b _080FEF46
- .align 2, 0
-_080FEF38: .4byte gUnknown_020388D5
-_080FEF3C: .4byte gUnknown_020388F3
-_080FEF40:
- ldr r1, _080FEF4C @ =gUnknown_020388F3
- movs r0, 0x7
- strb r0, [r1]
-_080FEF46:
- pop {r0}
- bx r0
- .align 2, 0
-_080FEF4C: .4byte gUnknown_020388F3
- thumb_func_end sub_80FEF28
-
- thumb_func_start sub_80FEF50
-sub_80FEF50: @ 80FEF50
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FED90
- bl sub_80FEF28
- ldr r0, _080FEF6C @ =gUnknown_020388F2
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080FEF70 @ =gUnknown_020388F4
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080FEF6C: .4byte gUnknown_020388F2
-_080FEF70: .4byte gUnknown_020388F4
- thumb_func_end sub_80FEF50
-
- thumb_func_start sub_80FEF74
-sub_80FEF74: @ 80FEF74
- push {lr}
- ldr r0, _080FEFA0 @ =gUnknown_020388F7
- movs r1, 0x8
- bl sub_80F9520
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- .align 2, 0
-_080FEFA0: .4byte gUnknown_020388F7
- thumb_func_end sub_80FEF74
-
- thumb_func_start sub_80FEFA4
-sub_80FEFA4: @ 80FEFA4
- push {r4,lr}
- movs r2, 0
- ldr r0, _080FEFD0 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldr r1, _080FEFD4 @ =gUnknown_020388F2
- ldrb r1, [r1]
- adds r0, r1
- adds r1, r0, 0x1
- ldr r4, _080FEFD8 @ =gUnknown_020388D6
- ldr r3, _080FEFDC @ =gUnknown_020388E6
-_080FEFB8:
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, r1
- beq _080FEFCC
- cmp r2, 0xB
- bhi _080FEFE0
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _080FEFE0
-_080FEFCC:
- movs r0, 0
- b _080FEFEC
- .align 2, 0
-_080FEFD0: .4byte gUnknown_020388F4
-_080FEFD4: .4byte gUnknown_020388F2
-_080FEFD8: .4byte gUnknown_020388D6
-_080FEFDC: .4byte gUnknown_020388E6
-_080FEFE0:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _080FEFB8
- movs r0, 0x1
-_080FEFEC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FEFA4
-
- thumb_func_start sub_80FEFF4
-sub_80FEFF4: @ 80FEFF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080FF028 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080FF00E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FF020
-_080FF00E:
- bl LoadScrollIndicatorPalette
- ldr r0, _080FF02C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080FF030 @ =sub_80FE868
- str r0, [r1]
-_080FF020:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF028: .4byte gMain
-_080FF02C: .4byte gTasks
-_080FF030: .4byte sub_80FE868
- thumb_func_end sub_80FEFF4
-
- thumb_func_start sub_80FF034
-sub_80FF034: @ 80FF034
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FE5AC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF034
-
- thumb_func_start sub_80FF058
-sub_80FF058: @ 80FF058
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080FF08C @ =gUnknown_020388F7
- movs r1, 0x8
- bl sub_80F9520
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- bl BuyMenuFreeMemory
- ldr r1, _080FF090 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FF094 @ =sub_80FF034
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF08C: .4byte gUnknown_020388F7
-_080FF090: .4byte gTasks
-_080FF094: .4byte sub_80FF034
- thumb_func_end sub_80FF058
-
- thumb_func_start sub_80FF098
-sub_80FF098: @ 80FF098
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080FF0D4 @ =gUnknown_020388D5
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- ldr r3, _080FF0D8 @ =gUnknown_020388F4
- ldrb r2, [r3]
- adds r0, r2, 0x7
- ldrb r1, [r1]
- cmp r0, r1
- ble _080FF0BA
- cmp r2, 0
- beq _080FF0BA
- subs r0, r2, 0x1
- strb r0, [r3]
-_080FF0BA:
- ldr r0, _080FF0DC @ =gUnknown_020388F6
- ldrb r0, [r0]
- bl sub_8134104
- adds r0, r4, 0
- bl sub_80FED90
- bl sub_80FEF28
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF0D4: .4byte gUnknown_020388D5
-_080FF0D8: .4byte gUnknown_020388F4
-_080FF0DC: .4byte gUnknown_020388F6
- thumb_func_end sub_80FF098
-
- thumb_func_start sub_80FF0E0
-sub_80FF0E0: @ 80FF0E0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080FF10C @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r4, r2, r3
- ldr r1, _080FF110 @ =gSaveBlock1
- ldrh r0, [r1]
- strh r0, [r4, 0xE]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x10]
- adds r3, 0x8
- adds r2, r3
- adds r1, r2, 0x2
- adds r0, r2, 0
- bl PlayerGetDestCoords
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF10C: .4byte gTasks
-_080FF110: .4byte gSaveBlock1
- thumb_func_end sub_80FF0E0
-
- thumb_func_start sub_80FF114
-sub_80FF114: @ 80FF114
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl DrawWholeMapView
- ldr r1, _080FF158 @ =gSaveBlock1
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- ldr r3, _080FF15C @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r3
- movs r3, 0xE
- ldrsb r3, [r4, r3]
- ldrb r4, [r4, 0x10]
- lsls r4, 24
- asrs r4, 24
- str r4, [sp]
- bl warp1_set
- bl warp_in
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF158: .4byte gSaveBlock1
-_080FF15C: .4byte gTasks
- thumb_func_end sub_80FF114
-
- thumb_func_start sub_80FF160
-sub_80FF160: @ 80FF160
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81341D4
- lsls r0, 24
- cmp r0, 0
- bne _080FF188
- ldr r1, _080FF180 @ =gSecretBaseText_NoDecors
- ldr r2, _080FF184 @ =sub_80FE428
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080FF1A2
- .align 2, 0
-_080FF180: .4byte gSecretBaseText_NoDecors
-_080FF184: .4byte sub_80FE428
-_080FF188:
- ldr r1, _080FF1A8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x1E]
- ldr r0, _080FF1AC @ =gUnknown_020388F6
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_80FE5AC
-_080FF1A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF1A8: .4byte gTasks
-_080FF1AC: .4byte gUnknown_020388F6
- thumb_func_end sub_80FF160
-
- thumb_func_start sub_80FF1B0
-sub_80FF1B0: @ 80FF1B0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080FF1D0 @ =0x0000ffff
- cmp r2, 0x22
- beq _080FF1D8
- cmp r2, 0x26
- bne _080FF1E2
- ldr r0, _080FF1D4 @ =gUnknown_083EC97C
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 16
- b _080FF1E2
- .align 2, 0
-_080FF1D0: .4byte 0x0000ffff
-_080FF1D4: .4byte gUnknown_083EC97C
-_080FF1D8:
- ldr r0, _080FF1E8 @ =gUnknown_083EC984
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 16
-_080FF1E2:
- pop {r1}
- bx r1
- .align 2, 0
-_080FF1E8: .4byte gUnknown_083EC984
- thumb_func_end sub_80FF1B0
-
- thumb_func_start sub_80FF1EC
-sub_80FF1EC: @ 80FF1EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- ldr r4, [sp, 0x54]
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x8]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp, 0x10]
- movs r2, 0
- lsls r0, r3, 16
- cmp r2, r3
- bcc _080FF222
- b _080FF384
-_080FF222:
- ldr r1, [sp, 0x8]
- str r1, [sp, 0x28]
- str r0, [sp, 0x2C]
-_080FF228:
- ldr r3, [sp, 0x4]
- ldr r4, [sp, 0xC]
- subs r1, r3, r4
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, 0x1
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r0, 0
- mov r10, r0
- adds r1, r2, 0x1
- str r1, [sp, 0x30]
- ldr r3, [sp, 0x28]
- cmp r10, r3
- bcc _080FF24C
- b _080FF374
-_080FF24C:
- ldr r4, [sp, 0x10]
- lsls r4, 5
- str r4, [sp, 0x18]
- ldr r0, _080FF2B4 @ =gDecorations + 0x1C
- adds r0, r4, r0
- str r0, [sp, 0x1C]
- ldr r0, _080FF2B8 @ =gDecorations
- adds r0, r4, r0
- str r0, [sp, 0x24]
- ldr r3, [sp, 0x8]
- adds r1, r2, 0
- muls r1, r3
- str r1, [sp, 0x20]
-_080FF266:
- ldr r0, [sp]
- add r0, r10
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, [sp, 0x20]
- add r1, r10
- ldr r4, [sp, 0x1C]
- ldr r0, [r4]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- lsls r4, r0, 16
- lsls r0, r4, 8
- lsrs r0, 24
- bl sub_8057288
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FF2AC
- ldr r3, [sp, 0x24]
- ldrb r0, [r3, 0x11]
- cmp r0, 0x1
- beq _080FF2BC
- lsrs r0, r4, 28
- cmp r0, 0
- beq _080FF2BC
-_080FF2AC:
- movs r4, 0xC0
- lsls r4, 4
- mov r8, r4
- b _080FF2C0
- .align 2, 0
-_080FF2B4: .4byte gDecorations + 0x1C
-_080FF2B8: .4byte gDecorations
-_080FF2BC:
- movs r0, 0
- mov r8, r0
-_080FF2C0:
- ldr r1, [sp, 0x24]
- ldrb r0, [r1, 0x11]
- lsls r7, r5, 16
- ldr r2, [sp, 0x14]
- lsls r2, 16
- mov r9, r2
- cmp r0, 0x3
- beq _080FF2EA
- asrs r0, r7, 16
- asrs r1, r2, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80572B0
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0x1
- cmp r0, 0x1
- beq _080FF2EC
-_080FF2EA:
- movs r6, 0
-_080FF2EC:
- ldr r3, [sp, 0x18]
- ldr r4, _080FF334 @ =gDecorations
- adds r0, r3, r4
- ldrb r0, [r0]
- ldr r4, [sp, 0x20]
- add r4, r10
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_80FF1B0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080FF338 @ =0x0000ffff
- cmp r5, r0
- beq _080FF33C
- asrs r0, r7, 16
- mov r2, r9
- asrs r1, r2, 16
- ldr r3, [sp, 0x1C]
- ldr r2, [r3]
- lsls r3, r4, 1
- adds r3, r2
- movs r4, 0x80
- lsls r4, 2
- adds r2, r4, 0
- orrs r6, r2
- ldrh r3, [r3]
- adds r2, r6, r3
- mov r3, r8
- orrs r3, r2
- orrs r3, r5
- lsls r2, r3, 16
- lsrs r2, 16
- bl MapGridSetMetatileEntryAt
- b _080FF362
- .align 2, 0
-_080FF334: .4byte gDecorations
-_080FF338: .4byte 0x0000ffff
-_080FF33C:
- asrs r0, r7, 16
- mov r2, r9
- asrs r1, r2, 16
- ldr r3, [sp, 0x1C]
- ldr r2, [r3]
- lsls r3, r4, 1
- adds r3, r2
- movs r4, 0x80
- lsls r4, 2
- adds r2, r4, 0
- orrs r6, r2
- ldrh r3, [r3]
- adds r2, r6, r3
- mov r3, r8
- orrs r3, r2
- lsls r2, r3, 16
- lsrs r2, 16
- bl MapGridSetMetatileIdAt
-_080FF362:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- ldr r4, [sp, 0x28]
- cmp r10, r4
- bcs _080FF374
- b _080FF266
-_080FF374:
- ldr r1, [sp, 0x30]
- lsls r0, r1, 16
- lsrs r2, r0, 16
- ldr r3, [sp, 0x2C]
- lsrs r0, r3, 16
- cmp r2, r0
- bcs _080FF384
- b _080FF228
-_080FF384:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF1EC
-
- thumb_func_start sub_80FF394
-sub_80FF394: @ 80FF394
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _080FF3BC @ =gDecorations
- lsls r0, r2, 5
- adds r0, r1
- ldrb r0, [r0, 0x12]
- cmp r0, 0x9
- bhi _080FF46C
- lsls r0, 2
- ldr r1, _080FF3C0 @ =_080FF3C4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FF3BC: .4byte gDecorations
-_080FF3C0: .4byte _080FF3C4
- .align 2, 0
-_080FF3C4:
- .4byte _080FF3EC
- .4byte _080FF3F6
- .4byte _080FF400
- .4byte _080FF410
- .4byte _080FF41A
- .4byte _080FF424
- .4byte _080FF434
- .4byte _080FF43E
- .4byte _080FF44E
- .4byte _080FF45E
-_080FF3EC:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
- b _080FF408
-_080FF3F6:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- b _080FF408
-_080FF400:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
-_080FF408:
- movs r3, 0x1
- bl sub_80FF1EC
- b _080FF46C
-_080FF410:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x4
- b _080FF42C
-_080FF41A:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- b _080FF42C
-_080FF424:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
-_080FF42C:
- movs r3, 0x2
- bl sub_80FF1EC
- b _080FF46C
-_080FF434:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
- b _080FF456
-_080FF43E:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x4
- bl sub_80FF1EC
- b _080FF46C
-_080FF44E:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
-_080FF456:
- movs r3, 0x3
- bl sub_80FF1EC
- b _080FF46C
-_080FF45E:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80FF1EC
-_080FF46C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF394
-
- thumb_func_start sub_80FF474
-sub_80FF474: @ 80FF474
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0
- ldr r0, _080FF54C @ =gMapHeader
- mov r8, r0
- ldr r1, _080FF550 @ =gSpecialVar_0x8005
- mov r9, r1
- ldr r2, _080FF554 @ =gSpecialVar_0x8006
- mov r10, r2
- ldr r7, _080FF558 @ =gSaveBlock1
-_080FF490:
- adds r5, r6, 0
- adds r5, 0xAE
- adds r4, r5, 0
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF570
- adds r0, r4, 0
- bl FlagReset
- movs r2, 0
- mov r4, r8
- ldr r0, [r4, 0x4]
- ldrb r6, [r0]
- cmp r2, r6
- bcs _080FF4E0
- ldr r0, [r0, 0x4]
- ldrh r0, [r0, 0x14]
- cmp r0, r5
- beq _080FF4E0
- ldr r0, _080FF54C @ =gMapHeader
- ldr r3, [r0, 0x4]
- ldrb r6, [r3]
- adds r4, r5, 0
-_080FF4C6:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r6
- bcs _080FF4E0
- ldr r0, [r3, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- cmp r0, r4
- bne _080FF4C6
-_080FF4E0:
- mov r1, r8
- ldr r0, [r1, 0x4]
- ldr r1, [r0, 0x4]
- lsls r4, r2, 1
- adds r4, r2
- lsls r4, 3
- adds r1, r4, r1
- ldr r2, _080FF55C @ =0x00003f20
- adds r0, r2, 0
- ldrb r1, [r1, 0x1]
- adds r0, r1
- ldr r1, _080FF560 @ =gUnknown_02038900
- ldr r1, [r1]
- ldr r1, [r1, 0x1C]
- ldrh r1, [r1]
- bl VarSet
- mov r5, r8
- ldr r0, [r5, 0x4]
- ldr r0, [r0, 0x4]
- adds r4, r0
- ldrb r0, [r4]
- mov r6, r9
- strh r0, [r6]
- ldr r1, _080FF564 @ =gUnknown_020391A4
- ldrh r1, [r1]
- mov r2, r10
- strh r1, [r2]
- ldr r1, _080FF568 @ =gUnknown_020391A6
- ldrh r1, [r1]
- ldr r4, _080FF56C @ =gSpecialVar_0x8007
- strh r1, [r4]
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- bl show_sprite
- ldrb r0, [r6]
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- mov r5, r10
- movs r6, 0
- ldrsh r3, [r5, r6]
- movs r5, 0
- ldrsh r4, [r4, r5]
- str r4, [sp]
- bl sub_805C0F8
- mov r6, r9
- ldrb r0, [r6]
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- bl sub_805C78C
- b _080FF57A
- .align 2, 0
-_080FF54C: .4byte gMapHeader
-_080FF550: .4byte gSpecialVar_0x8005
-_080FF554: .4byte gSpecialVar_0x8006
-_080FF558: .4byte gSaveBlock1
-_080FF55C: .4byte 0x00003f20
-_080FF560: .4byte gUnknown_02038900
-_080FF564: .4byte gUnknown_020391A4
-_080FF568: .4byte gUnknown_020391A6
-_080FF56C: .4byte gSpecialVar_0x8007
-_080FF570:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xD
- bls _080FF490
-_080FF57A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF474
-
- thumb_func_start sub_80FF58C
-sub_80FF58C: @ 80FF58C
- push {lr}
- movs r1, 0
- ldr r0, _080FF5A8 @ =0x0201f000
- ldrb r2, [r0, 0x8]
- cmp r1, r2
- bcs _080FF5B6
- ldr r3, [r0]
-_080FF59A:
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080FF5AC
- movs r0, 0x1
- b _080FF5B8
- .align 2, 0
-_080FF5A8: .4byte 0x0201f000
-_080FF5AC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _080FF59A
-_080FF5B6:
- movs r0, 0
-_080FF5B8:
- pop {r1}
- bx r1
- thumb_func_end sub_80FF58C
-
- thumb_func_start sub_80FF5BC
-sub_80FF5BC: @ 80FF5BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080FF5E4 @ =0x0201f000
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- bne _080FF5F0
- ldr r0, _080FF5E8 @ =gUnknown_020388F6
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080FF5F0
- cmp r0, 0x7
- beq _080FF5F0
- bl sub_80FEF74
- bl sub_80FED1C
- ldr r1, _080FF5EC @ =gSecretBaseText_DecorCantPlace
- b _080FF66E
- .align 2, 0
-_080FF5E4: .4byte 0x0201f000
-_080FF5E8: .4byte gUnknown_020388F6
-_080FF5EC: .4byte gSecretBaseText_DecorCantPlace
-_080FF5F0:
- bl sub_80FEFA4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF688
- bl sub_80FF58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF62C
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _080FF624 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _080FF628 @ =sub_80FF6AC
- str r1, [r0]
- b _080FF69C
- .align 2, 0
-_080FF624: .4byte gTasks
-_080FF628: .4byte sub_80FF6AC
-_080FF62C:
- bl sub_80FEF74
- bl sub_80FED1C
- ldr r0, _080FF654 @ =gStringVar1
- ldr r4, _080FF658 @ =0x0201f000
- ldrb r1, [r4, 0x8]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- bne _080FF664
- ldr r0, _080FF65C @ =gStringVar4
- ldr r1, _080FF660 @ =gSecretBaseText_NoMoreDecor
- bl StringExpandPlaceholders
- b _080FF66C
- .align 2, 0
-_080FF654: .4byte gStringVar1
-_080FF658: .4byte 0x0201f000
-_080FF65C: .4byte gStringVar4
-_080FF660: .4byte gSecretBaseText_NoMoreDecor
-_080FF664:
- ldr r0, _080FF67C @ =gStringVar4
- ldr r1, _080FF680 @ =gSecretBaseText_NoMoreDecor2
- bl StringExpandPlaceholders
-_080FF66C:
- ldr r1, _080FF67C @ =gStringVar4
-_080FF66E:
- ldr r2, _080FF684 @ =sub_80FEFF4
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080FF69C
- .align 2, 0
-_080FF67C: .4byte gStringVar4
-_080FF680: .4byte gSecretBaseText_NoMoreDecor2
-_080FF684: .4byte sub_80FEFF4
-_080FF688:
- bl sub_80FEF74
- bl sub_80FED1C
- ldr r1, _080FF6A4 @ =gSecretBaseText_InUseAlready
- ldr r2, _080FF6A8 @ =sub_80FEFF4
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080FF69C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF6A4: .4byte gSecretBaseText_InUseAlready
-_080FF6A8: .4byte sub_80FEFF4
- thumb_func_end sub_80FF5BC
-
- thumb_func_start sub_80FF6AC
-sub_80FF6AC: @ 80FF6AC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080FF6D0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- movs r1, 0xC
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- beq _080FF714
- cmp r0, 0x1
- bgt _080FF6D4
- cmp r0, 0
- beq _080FF6DA
- b _080FF77A
- .align 2, 0
-_080FF6D0: .4byte gTasks
-_080FF6D4:
- cmp r0, 0x2
- beq _080FF764
- b _080FF77A
-_080FF6DA:
- ldr r0, _080FF70C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080FF77A
- adds r0, r6, 0
- bl sub_80FF0E0
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- ldr r0, _080FF710 @ =gUnknown_020388F7
- movs r1, 0x8
- bl sub_80F9520
- bl BuyMenuFreeMemory
- movs r0, 0x1
- strh r0, [r7, 0xC]
- b _080FF77A
- .align 2, 0
-_080FF70C: .4byte gPaletteFade
-_080FF710: .4byte gUnknown_020388F7
-_080FF714:
- ldr r4, _080FF754 @ =gPaletteFade
- ldrb r0, [r4, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4, 0x8]
- ldr r5, _080FF758 @ =gUnknown_02038900
- ldr r0, _080FF75C @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _080FF760 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl AddDecorationIconObjectFromFieldObject
- adds r0, r6, 0
- bl sub_80FF960
- adds r0, r6, 0
- adds r1, r5, 0
- bl SetUpPlacingDecorationPlayerAvatar
- bl pal_fill_black
- ldrb r1, [r4, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4, 0x8]
- movs r0, 0x2
- strh r0, [r7, 0xC]
- b _080FF77A
- .align 2, 0
-_080FF754: .4byte gPaletteFade
-_080FF758: .4byte gUnknown_02038900
-_080FF75C: .4byte gUnknown_020388F5
-_080FF760: .4byte gUnknown_020388D0
-_080FF764:
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF77A
- movs r0, 0
- strh r0, [r7, 0x20]
- adds r0, r6, 0
- bl sub_810065C
-_080FF77A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF6AC
-
- thumb_func_start AddDecorationIconObjectFromFieldObject
-AddDecorationIconObjectFromFieldObject: @ 80FF780
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- bl sub_80FEF74
- bl sub_80FED1C
- adds r0, r5, 0
- bl sub_81006D0
- lsls r4, 5
- ldr r0, _080FF810 @ =gDecorations
- adds r4, r0
- str r4, [r5]
- ldrb r0, [r4, 0x11]
- cmp r0, 0x4
- beq _080FF834
- adds r0, r5, 0
- bl sub_81008BC
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- bl sub_8100930
- adds r0, r5, 0
- bl sub_8100874
- ldr r1, _080FF814 @ =0x00000884
- adds r0, r5, r1
- ldr r1, _080FF818 @ =gMapHeader
- ldr r1, [r1]
- ldr r2, [r1, 0x14]
- ldr r1, [r5]
- ldr r1, [r1, 0x1C]
- ldrh r1, [r1]
- ldr r2, [r2, 0xC]
- lsls r1, 4
- adds r1, r2
- ldrh r1, [r1, 0xE]
- lsrs r1, 12
- bl sub_810070C
- ldr r0, _080FF81C @ =gUnknown_083EC954
- bl LoadSpritePalette
- ldr r3, _080FF820 @ =gUnknown_020391A8
- ldr r2, _080FF824 @ =gSprites
- ldr r4, _080FF828 @ =gUnknown_03004880
- ldr r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r3]
- ldr r0, _080FF82C @ =gSpriteTemplate_83EC93C
- ldr r3, _080FF830 @ =gUnknown_083EC900
- ldr r1, [r5]
- ldrb r2, [r1, 0x12]
- lsls r2, 2
- adds r2, r3
- ldrb r1, [r2, 0x2]
- ldrb r2, [r2, 0x3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- str r0, [r4, 0x4]
- b _080FF87E
- .align 2, 0
-_080FF810: .4byte gDecorations
-_080FF814: .4byte 0x00000884
-_080FF818: .4byte gMapHeader
-_080FF81C: .4byte gUnknown_083EC954
-_080FF820: .4byte gUnknown_020391A8
-_080FF824: .4byte gSprites
-_080FF828: .4byte gUnknown_03004880
-_080FF82C: .4byte gSpriteTemplate_83EC93C
-_080FF830: .4byte gUnknown_083EC900
-_080FF834:
- ldr r2, _080FF888 @ =gUnknown_020391A8
- ldr r6, _080FF88C @ =gSprites
- ldr r5, _080FF890 @ =gUnknown_03004880
- ldr r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r0, [r0, 0x2E]
- strb r0, [r2]
- ldr r0, [r4, 0x1C]
- ldrh r0, [r0]
- ldr r1, _080FF894 @ =sub_81009A8
- ldr r2, _080FF898 @ =gUnknown_083EC900
- ldrb r3, [r4, 0x12]
- lsls r3, 2
- adds r3, r2
- ldrb r2, [r3, 0x2]
- ldrb r3, [r3, 0x3]
- movs r4, 0x1
- str r4, [sp]
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r0, 24
- str r0, [r5, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
-_080FF87E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF888: .4byte gUnknown_020391A8
-_080FF88C: .4byte gSprites
-_080FF890: .4byte gUnknown_03004880
-_080FF894: .4byte sub_81009A8
-_080FF898: .4byte gUnknown_083EC900
- thumb_func_end AddDecorationIconObjectFromFieldObject
-
- thumb_func_start SetUpPlacingDecorationPlayerAvatar
-SetUpPlacingDecorationPlayerAvatar: @ 80FF89C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080FF8F0 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldrb r2, [r2, 0x12]
- ldr r3, _080FF8F4 @ =gUnknown_083EC900
- ldr r0, [r1]
- ldrb r4, [r0, 0x12]
- lsls r1, r4, 2
- adds r1, r3
- lsls r0, r2, 4
- ldrb r1, [r1, 0x2]
- adds r0, r1
- subs r2, 0x1
- lsls r2, 3
- subs r0, r2
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r4, 0x2
- beq _080FF8D6
- cmp r4, 0x8
- beq _080FF8D6
- cmp r4, 0x9
- bne _080FF8DE
-_080FF8D6:
- adds r0, r2, 0
- subs r0, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
-_080FF8DE:
- ldr r0, _080FF8F8 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080FF900
- ldr r1, _080FF8FC @ =SpriteCallbackDummy
- str r0, [sp]
- movs r0, 0xC1
- b _080FF908
- .align 2, 0
-_080FF8F0: .4byte gTasks
-_080FF8F4: .4byte gUnknown_083EC900
-_080FF8F8: .4byte gSaveBlock2
-_080FF8FC: .4byte SpriteCallbackDummy
-_080FF900:
- ldr r1, _080FF94C @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC2
-_080FF908:
- movs r3, 0x48
- bl AddPseudoFieldObject
- ldr r1, _080FF950 @ =gUnknown_020391A9
- strb r0, [r1]
- ldr r3, _080FF954 @ =gSprites
- ldr r0, _080FF950 @ =gUnknown_020391A9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r4, _080FF958 @ =gUnknown_020391A8
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- bl DestroySprite
- ldr r0, _080FF95C @ =gUnknown_03004880
- ldr r0, [r0, 0x4]
- strb r0, [r4]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF94C: .4byte SpriteCallbackDummy
-_080FF950: .4byte gUnknown_020391A9
-_080FF954: .4byte gSprites
-_080FF958: .4byte gUnknown_020391A8
-_080FF95C: .4byte gUnknown_03004880
- thumb_func_end SetUpPlacingDecorationPlayerAvatar
-
- thumb_func_start sub_80FF960
-sub_80FF960: @ 80FF960
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080FF98C @ =gDecorations
- ldr r0, _080FF990 @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _080FF994 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r2
- ldrb r0, [r0, 0x12]
- cmp r0, 0x9
- bls _080FF980
- b _080FFAA6
-_080FF980:
- lsls r0, 2
- ldr r1, _080FF998 @ =_080FF99C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FF98C: .4byte gDecorations
-_080FF990: .4byte gUnknown_020388F5
-_080FF994: .4byte gUnknown_020388D0
-_080FF998: .4byte _080FF99C
- .align 2, 0
-_080FF99C:
- .4byte _080FF9C4
- .4byte _080FF9D8
- .4byte _080FF9F0
- .4byte _080FFA08
- .4byte _080FFA1C
- .4byte _080FFA30
- .4byte _080FFA44
- .4byte _080FFA64
- .4byte _080FFA7C
- .4byte _080FFA94
-_080FF9C4:
- ldr r0, _080FF9D4 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- b _080FFA88
- .align 2, 0
-_080FF9D4: .4byte gTasks
-_080FF9D8:
- ldr r1, _080FF9EC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x12]
- movs r1, 0x1
- b _080FFAA4
- .align 2, 0
-_080FF9EC: .4byte gTasks
-_080FF9F0:
- ldr r1, _080FFA04 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x12]
- movs r1, 0x1
- b _080FFAA4
- .align 2, 0
-_080FFA04: .4byte gTasks
-_080FFA08:
- ldr r1, _080FFA18 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- b _080FFAA0
- .align 2, 0
-_080FFA18: .4byte gTasks
-_080FFA1C:
- ldr r0, _080FFA2C @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- b _080FFA88
- .align 2, 0
-_080FFA2C: .4byte gTasks
-_080FFA30:
- ldr r1, _080FFA40 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- b _080FFAA0
- .align 2, 0
-_080FFA40: .4byte gTasks
-_080FFA44:
- ldr r0, _080FFA60 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x12]
- movs r0, 0x3
- strh r0, [r1, 0x14]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- b _080FFAA6
- .align 2, 0
-_080FFA60: .4byte gTasks
-_080FFA64:
- ldr r1, _080FFA78 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x12]
- movs r1, 0x4
- b _080FFAA4
- .align 2, 0
-_080FFA78: .4byte gTasks
-_080FFA7C:
- ldr r0, _080FFA90 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x3
-_080FFA88:
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- b _080FFAA6
- .align 2, 0
-_080FFA90: .4byte gTasks
-_080FFA94:
- ldr r1, _080FFAAC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
-_080FFAA0:
- strh r1, [r0, 0x12]
- movs r1, 0x2
-_080FFAA4:
- strh r1, [r0, 0x14]
-_080FFAA6:
- pop {r0}
- bx r0
- .align 2, 0
-_080FFAAC: .4byte gTasks
- thumb_func_end sub_80FF960
-
- thumb_func_start sub_80FFAB0
-sub_80FFAB0: @ 80FFAB0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080FFAF8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r3, _080FFAFC @ =gSprites
- ldr r0, _080FFB00 @ =gUnknown_020391A8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x3C]
- ldr r0, _080FFB04 @ =gUnknown_020391A9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x3C]
- bl sub_810045C
- adds r0, r4, 0
- bl sub_8100038
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FFAF8: .4byte gTasks
-_080FFAFC: .4byte gSprites
-_080FFB00: .4byte gUnknown_020391A8
-_080FFB04: .4byte gUnknown_020391A9
- thumb_func_end sub_80FFAB0
-
- thumb_func_start sub_80FFB08
-sub_80FFB08: @ 80FFB08
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080FFB54 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r3, _080FFB58 @ =gSprites
- ldr r0, _080FFB5C @ =gUnknown_020391A8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x3C]
- ldr r0, _080FFB60 @ =gUnknown_020391A9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x3C]
- bl sub_810045C
- ldr r1, _080FFB64 @ =gSecretBaseText_CancelDecorating
- ldr r2, _080FFB68 @ =sub_8100248
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FFB54: .4byte gTasks
-_080FFB58: .4byte gSprites
-_080FFB5C: .4byte gUnknown_020391A8
-_080FFB60: .4byte gUnknown_020391A9
-_080FFB64: .4byte gSecretBaseText_CancelDecorating
-_080FFB68: .4byte sub_8100248
- thumb_func_end sub_80FFB08
-
- thumb_func_start sub_80FFB6C
-sub_80FFB6C: @ 80FFB6C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- bl sub_8057274
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FFB86
- cmp r4, 0
- beq _080FFB8A
-_080FFB86:
- movs r0, 0
- b _080FFB8C
-_080FFB8A:
- movs r0, 0x1
-_080FFB8C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFB6C
-
- thumb_func_start sub_80FFB94
-sub_80FFB94: @ 80FFB94
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r5, r3, 16
- lsls r1, 16
- asrs r1, 16
- ldr r3, _080FFBD0 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- adds r0, 0x7
- cmp r1, r0
- bne _080FFBD4
- lsls r1, r4, 16
- asrs r1, 16
- movs r3, 0x10
- ldrsh r0, [r2, r3]
- adds r0, 0x7
- cmp r1, r0
- bne _080FFBD4
- cmp r5, 0
- beq _080FFBD4
- movs r0, 0
- b _080FFBD6
- .align 2, 0
-_080FFBD0: .4byte gTasks
-_080FFBD4:
- movs r0, 0x1
-_080FFBD6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFB94
-
- thumb_func_start sub_80FFBDC
-sub_80FFBDC: @ 80FFBDC
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057274
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FFC1C
- ldrb r0, [r5]
- cmp r0, 0x21
- bne _080FFC0A
- adds r0, r4, 0
- bl sub_8057300
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FFC18
-_080FFC0A:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_805729C
- lsls r0, 24
- cmp r0, 0
- beq _080FFC1C
-_080FFC18:
- movs r0, 0x1
- b _080FFC1E
-_080FFC1C:
- movs r0, 0
-_080FFC1E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFBDC
-
- thumb_func_start sub_80FFC24
-sub_80FFC24: @ 80FFC24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r1, [sp]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, _080FFC60 @ =gTasks
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- ldrb r2, [r0, 0x14]
- str r2, [sp, 0x4]
- ldrb r0, [r0, 0x12]
- str r0, [sp, 0x8]
- ldr r3, [sp]
- ldrb r0, [r3, 0x11]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080FFC56
- b _08100024
-_080FFC56:
- lsls r0, 2
- ldr r1, _080FFC64 @ =_080FFC68
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FFC60: .4byte gTasks
-_080FFC64: .4byte _080FFC68
- .align 2, 0
-_080FFC68:
- .4byte _080FFC7C
- .4byte _080FFC7C
- .4byte _080FFD68
- .4byte _080FFF1C
- .4byte _080FFFA0
-_080FFC7C:
- movs r6, 0
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _080FFC86
- b _08100024
-_080FFC86:
- mov r1, r10
- lsls r1, 2
- str r1, [sp, 0x1C]
-_080FFC8C:
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- ldr r3, _080FFD64 @ =gTasks
- adds r0, r3
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- adds r6, 0x1
- str r6, [sp, 0x14]
- ldr r0, [sp, 0x8]
- cmp r7, r0
- bcs _080FFD56
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0xC]
- asrs r1, 16
- mov r9, r1
-_080FFCB8:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- ldr r2, _080FFD64 @ =gTasks
- adds r0, r2
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- adds r0, r6, 0
- mov r1, r9
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp, 0x4]
- ldr r1, [sp, 0x14]
- subs r0, r3, r1
- ldr r2, [sp, 0x8]
- adds r1, r0, 0
- muls r1, r2
- adds r1, r7
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- ldr r1, [sp]
- bl sub_80FFBDC
- lsls r0, 24
- cmp r0, 0
- bne _080FFD1A
- b _080FFFF4
-_080FFD1A:
- mov r0, r10
- adds r1, r6, 0
- mov r2, r9
- adds r3, r5, 0
- bl sub_80FFB94
- lsls r0, 24
- cmp r0, 0
- bne _080FFD2E
- b _080FFFF4
-_080FFD2E:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0xC]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080FFD4A
- cmp r4, 0x10
- beq _080FFD4A
- b _080FFFF4
-_080FFD4A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFCB8
-_080FFD56:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r2, [sp, 0x4]
- cmp r6, r2
- bcc _080FFC8C
- b _08100024
- .align 2, 0
-_080FFD64: .4byte gTasks
-_080FFD68:
- movs r6, 0
- mov r3, r10
- lsls r3, 2
- str r3, [sp, 0x1C]
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x18]
- cmp r6, r0
- bge _080FFE54
- adds r0, r3, 0
- add r0, r10
- lsls r0, 3
- str r0, [sp, 0x10]
-_080FFD82:
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- adds r6, 0x1
- str r6, [sp, 0x14]
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcs _080FFE48
- lsls r0, 16
- str r0, [sp, 0x20]
-_080FFDA0:
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- mov r2, r9
- lsls r1, r2, 16
- adds r0, r6, 0
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp, 0x4]
- ldr r1, [sp, 0x14]
- subs r0, r3, r1
- ldr r2, [sp, 0x8]
- adds r1, r0, 0
- muls r1, r2
- adds r1, r7
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- bl sub_805729C
- lsls r0, 24
- cmp r0, 0
- bne _080FFE0C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80FFB6C
- lsls r0, 24
- cmp r0, 0
- bne _080FFE0C
- b _080FFFF4
-_080FFE0C:
- mov r0, r10
- adds r1, r6, 0
- ldr r3, [sp, 0x20]
- asrs r2, r3, 16
- adds r3, r5, 0
- bl sub_80FFB94
- lsls r0, 24
- cmp r0, 0
- bne _080FFE22
- b _080FFFF4
-_080FFE22:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _080FFE3A
- b _080FFFF4
-_080FFE3A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080FFF18 @ =gTasks
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFDA0
-_080FFE48:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- cmp r6, r3
- blt _080FFD82
-_080FFE54:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0xA]
- ldr r1, [sp, 0x4]
- subs r0, r1
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFE74
- b _08100024
-_080FFE74:
- lsls r0, 16
- str r0, [sp, 0x20]
-_080FFE78:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- ldr r1, _080FFF18 @ =gTasks
- adds r0, r1
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- mov r2, r9
- lsls r1, r2, 16
- adds r0, r6, 0
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, r7, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- bl sub_805729C
- lsls r0, 24
- cmp r0, 0
- bne _080FFEDA
- adds r0, r4, 0
- bl sub_80572B0
- lsls r0, 24
- cmp r0, 0
- bne _080FFEDA
- b _080FFFF4
-_080FFEDA:
- mov r0, r10
- adds r1, r6, 0
- ldr r3, [sp, 0x20]
- asrs r2, r3, 16
- adds r3, r5, 0
- bl sub_80FFB94
- lsls r0, 24
- cmp r0, 0
- bne _080FFEF0
- b _080FFFF4
-_080FFEF0:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080FFF0A
- cmp r4, 0x10
- bne _080FFFF4
-_080FFF0A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFE78
- b _08100024
- .align 2, 0
-_080FFF18: .4byte gTasks
-_080FFF1C:
- movs r6, 0
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _080FFF26
- b _08100024
-_080FFF26:
- mov r1, r10
- lsls r0, r1, 2
- add r0, r10
- lsls r1, r0, 3
- ldr r2, _080FFF9C @ =gTasks
- adds r0, r1, r2
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcs _080FFF8C
- adds r0, r2, 0
- adds r1, r0
- mov r8, r1
- mov r1, r9
- lsls r0, r1, 16
- asrs r5, r0, 16
-_080FFF50:
- mov r2, r8
- ldrh r0, [r2, 0x8]
- adds r0, r7
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80572B0
- lsls r0, 24
- cmp r0, 0
- beq _080FFFF4
- adds r0, r4, 0
- adds r1, r5, 0x1
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- beq _080FFFF4
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFF50
-_080FFF8C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _080FFF26
- b _08100024
- .align 2, 0
-_080FFF9C: .4byte gTasks
-_080FFFA0:
- mov r3, r10
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0xA]
- mov r9, r0
- movs r7, 0
- str r1, [sp, 0x1C]
- ldr r0, [sp, 0x8]
- cmp r7, r0
- bcs _08100024
- adds r6, r2, 0
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0x20]
-_080FFFC0:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- mov r2, r9
- lsls r1, r2, 16
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp]
- ldrb r0, [r3, 0x12]
- cmp r0, 0x5
- bne _080FFFF8
-_080FFFE8:
- adds r0, r4, 0
- bl sub_80572EC
- lsls r0, 24
- cmp r0, 0
- bne _08100004
-_080FFFF4:
- movs r0, 0
- b _08100026
-_080FFFF8:
- adds r0, r4, 0
- bl sub_80572D8
- lsls r0, 24
- cmp r0, 0
- beq _080FFFE8
-_08100004:
- adds r0, r5, 0
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bne _080FFFF4
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFFC0
-_08100024:
- movs r0, 0x1
-_08100026:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFC24
-
- thumb_func_start sub_8100038
-sub_8100038: @ 8100038
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810006C @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _08100070 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 5
- ldr r0, _08100074 @ =gDecorations
- adds r1, r0
- adds r0, r4, 0
- bl sub_80FFC24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100080
- ldr r1, _08100078 @ =gSecretBaseText_PlaceItHere
- ldr r2, _0810007C @ =sub_81000A0
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08100092
- .align 2, 0
-_0810006C: .4byte gUnknown_020388F5
-_08100070: .4byte gUnknown_020388D0
-_08100074: .4byte gDecorations
-_08100078: .4byte gSecretBaseText_PlaceItHere
-_0810007C: .4byte sub_81000A0
-_08100080:
- movs r0, 0x20
- bl PlaySE
- ldr r1, _08100098 @ =gSecretBaseText_CantBePlacedHere
- ldr r2, _0810009C @ =sub_81006A8
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08100092:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100098: .4byte gSecretBaseText_CantBePlacedHere
-_0810009C: .4byte sub_81006A8
- thumb_func_end sub_8100038
-
- thumb_func_start sub_81000A0
-sub_81000A0: @ 81000A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _081000C0 @ =gUnknown_083EC95C
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081000C0: .4byte gUnknown_083EC95C
- thumb_func_end sub_81000A0
-
- thumb_func_start sub_81000C4
-sub_81000C4: @ 81000C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_8100174
- ldr r2, _0810010C @ =gDecorations
- ldr r0, _08100110 @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _08100114 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r3, [r0]
- lsls r0, r3, 5
- adds r0, r2
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- beq _0810011C
- ldr r0, _08100118 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- ldrh r1, [r1, 0xA]
- adds r2, r3, 0
- bl sub_80FF394
- b _0810013C
- .align 2, 0
-_0810010C: .4byte gDecorations
-_08100110: .4byte gUnknown_020388F5
-_08100114: .4byte gUnknown_020388D0
-_08100118: .4byte gTasks
-_0810011C:
- ldr r2, _0810015C @ =gUnknown_020391A4
- ldr r0, _08100160 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- subs r0, 0x7
- strh r0, [r2]
- ldr r2, _08100164 @ =gUnknown_020391A6
- ldrh r0, [r1, 0xA]
- subs r0, 0x7
- strh r0, [r2]
- ldr r0, _08100168 @ =gUnknown_081A2F7B
- bl ScriptContext1_SetupScript
-_0810013C:
- ldr r2, _0810016C @ =gSprites
- ldr r0, _08100170 @ =gUnknown_020391A8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x2
- strh r1, [r0, 0x22]
- adds r0, r4, 0
- bl sub_810028C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810015C: .4byte gUnknown_020391A4
-_08100160: .4byte gTasks
-_08100164: .4byte gUnknown_020391A6
-_08100168: .4byte gUnknown_081A2F7B
-_0810016C: .4byte gSprites
-_08100170: .4byte gUnknown_020391A8
- thumb_func_end sub_81000C4
-
- thumb_func_start sub_8100174
-sub_8100174: @ 8100174
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r3, 0
- ldr r0, _081001B0 @ =0x0201f000
- ldrb r1, [r0, 0x8]
- adds r5, r0, 0
- cmp r3, r1
- bcs _0810019A
- ldr r4, [r5]
-_08100188:
- adds r2, r4, r3
- ldrb r0, [r2]
- cmp r0, 0
- beq _081001B8
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bcc _08100188
-_0810019A:
- ldrb r0, [r5, 0x9]
- cmp r0, 0
- bne _08100204
- movs r3, 0
- ldr r0, _081001B4 @ =gUnknown_020388D6
- ldrb r1, [r0]
- adds r2, r0, 0
- cmp r1, 0
- bne _081001F0
- b _08100210
- .align 2, 0
-_081001B0: .4byte 0x0201f000
-_081001B4: .4byte gUnknown_020388D6
-_081001B8:
- ldr r0, _081001E4 @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _081001E8 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, [r5, 0x4]
- adds r2, r3
- ldr r0, _081001EC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- subs r0, 0x7
- lsls r0, 4
- ldrb r1, [r1, 0xA]
- subs r1, 0x7
- adds r0, r1
- strb r0, [r2]
- b _0810019A
- .align 2, 0
-_081001E4: .4byte gUnknown_020388F5
-_081001E8: .4byte gUnknown_020388D0
-_081001EC: .4byte gTasks
-_081001F0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bhi _0810023E
- adds r1, r3, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _081001F0
- b _08100236
-_08100204:
- movs r3, 0
- ldr r0, _0810021C @ =gUnknown_020388E6
- ldrb r1, [r0]
- adds r2, r0, 0
- cmp r1, 0
- bne _08100224
-_08100210:
- ldr r0, _08100220 @ =gUnknown_020388F5
- ldrb r0, [r0]
- adds r0, 0x1
- strb r0, [r2]
- b _0810023E
- .align 2, 0
-_0810021C: .4byte gUnknown_020388E6
-_08100220: .4byte gUnknown_020388F5
-_08100224:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xB
- bhi _0810023E
- adds r1, r3, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _08100224
-_08100236:
- ldr r0, _08100244 @ =gUnknown_020388F5
- ldrb r0, [r0]
- adds r0, 0x1
- strb r0, [r1]
-_0810023E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100244: .4byte gUnknown_020388F5
- thumb_func_end sub_8100174
-
- thumb_func_start sub_8100248
-sub_8100248: @ 8100248
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _08100268 @ =gUnknown_083EC964
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100268: .4byte gUnknown_083EC964
- thumb_func_end sub_8100248
-
- thumb_func_start sub_810026C
-sub_810026C: @ 810026C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_810028C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810026C
-
- thumb_func_start sub_810028C
-sub_810028C: @ 810028C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _081002B4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _081002B8 @ =c1_overworld_prev_quest
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081002B4: .4byte gTasks
-_081002B8: .4byte c1_overworld_prev_quest
- thumb_func_end sub_810028C
-
- thumb_func_start c1_overworld_prev_quest
-c1_overworld_prev_quest: @ 81002BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _081002DC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081002E0
- cmp r0, 0x1
- beq _08100300
- b _0810031C
- .align 2, 0
-_081002DC: .4byte gTasks
-_081002E0:
- bl ScriptContext2_Enable
- ldr r0, _081002FC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810031C
- adds r0, r4, 0
- bl sub_80FF114
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _0810031C
- .align 2, 0
-_081002FC: .4byte gPaletteFade
-_08100300:
- bl sub_81016F4
- ldr r0, _08100324 @ =0x00000bb8
- bl FreeSpritePaletteByTag
- ldr r1, _08100328 @ =gUnknown_0300485C
- ldr r0, _0810032C @ =sub_8100364
- str r0, [r1]
- ldr r0, _08100330 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0810031C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100324: .4byte 0x00000bb8
-_08100328: .4byte gUnknown_0300485C
-_0810032C: .4byte sub_8100364
-_08100330: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end c1_overworld_prev_quest
-
- thumb_func_start sub_8100334
-sub_8100334: @ 8100334
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100354
- ldr r0, _0810035C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08100360 @ =sub_80FE948
- str r0, [r1]
-_08100354:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810035C: .4byte gTasks
-_08100360: .4byte sub_80FE948
- thumb_func_end sub_8100334
-
- thumb_func_start sub_8100364
-sub_8100364: @ 8100364
- push {lr}
- bl ScriptContext2_Enable
- bl LoadScrollIndicatorPalette
- bl pal_fill_black
- ldr r0, _08100388 @ =sub_8100334
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FE7EC
- pop {r0}
- bx r0
- .align 2, 0
-_08100388: .4byte sub_8100334
- thumb_func_end sub_8100364
-
- thumb_func_start sub_810038C
-sub_810038C: @ 810038C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _081003BC @ =gTasks + 0x8
- adds r2, r1, r0
- ldr r0, _081003C0 @ =gUnknown_020391AA
- ldrb r1, [r0]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _081003C4
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- subs r0, r1
- subs r0, 0x6
- cmp r0, 0
- bge _081003C4
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- b _081003DE
- .align 2, 0
-_081003BC: .4byte gTasks + 0x8
-_081003C0: .4byte gUnknown_020391AA
-_081003C4:
- ldrb r0, [r3]
- cmp r0, 0x2
- bne _081003E8
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- subs r1, 0x7
- ldr r0, _081003E4 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- cmp r1, r0
- blt _081003E8
- ldrh r0, [r2, 0x2]
- subs r0, 0x1
-_081003DE:
- strh r0, [r2, 0x2]
- movs r0, 0
- b _0810042A
- .align 2, 0
-_081003E4: .4byte gMapHeader
-_081003E8:
- ldrb r0, [r3]
- cmp r0, 0x3
- bne _081003FE
- movs r1, 0
- ldrsh r0, [r2, r1]
- subs r0, 0x7
- cmp r0, 0
- bge _081003FE
- ldrh r0, [r2]
- adds r0, 0x1
- b _0810041E
-_081003FE:
- ldrb r0, [r3]
- cmp r0, 0x4
- bne _08100428
- movs r3, 0
- ldrsh r1, [r2, r3]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- adds r1, r0
- subs r1, 0x8
- ldr r0, _08100424 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r1, r0
- blt _08100428
- ldrh r0, [r2]
- subs r0, 0x1
-_0810041E:
- strh r0, [r2]
- movs r0, 0
- b _0810042A
- .align 2, 0
-_08100424: .4byte gMapHeader
-_08100428:
- movs r0, 0x1
-_0810042A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810038C
-
- thumb_func_start sub_8100430
-sub_8100430: @ 8100430
- push {lr}
- ldr r0, _08100450 @ =gMain
- ldrh r0, [r0, 0x2C]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- beq _08100454
- cmp r1, 0x80
- beq _08100454
- cmp r1, 0x20
- beq _08100454
- cmp r1, 0x10
- beq _08100454
- movs r0, 0
- b _08100456
- .align 2, 0
-_08100450: .4byte gMain
-_08100454:
- movs r0, 0x1
-_08100456:
- pop {r1}
- bx r1
- thumb_func_end sub_8100430
-
- thumb_func_start sub_810045C
-sub_810045C: @ 810045C
- push {r4,lr}
- ldr r1, _08100488 @ =gUnknown_020391AA
- movs r0, 0
- strb r0, [r1]
- ldr r4, _0810048C @ =gSprites
- ldr r3, _08100490 @ =gUnknown_020391A8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0
- strh r2, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x34]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100488: .4byte gUnknown_020391AA
-_0810048C: .4byte gSprites
-_08100490: .4byte gUnknown_020391A8
- thumb_func_end sub_810045C
-
- thumb_func_start sub_8100494
-sub_8100494: @ 8100494
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _081004D0 @ =gSprites
- ldr r3, _081004D4 @ =gUnknown_020391A8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x36
- ldrsh r6, [r0, r1]
- cmp r6, 0
- beq _081004B2
- b _081005DE
-_081004B2:
- ldr r1, _081004D8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x1C
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _081004E0
- ldr r0, _081004DC @ =gUnknown_083EC96C
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- lsls r1, 3
- b _081004EE
- .align 2, 0
-_081004D0: .4byte gSprites
-_081004D4: .4byte gUnknown_020391A8
-_081004D8: .4byte gTasks
-_081004DC: .4byte gUnknown_083EC96C
-_081004E0:
- cmp r0, 0x2
- bne _08100500
- ldr r0, _081004FC @ =gUnknown_083EC96C
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- lsls r1, 3
- adds r0, 0x4
-_081004EE:
- adds r1, r0
- ldr r1, [r1]
- adds r0, r4, 0
- bl _call_via_r1
- b _0810063C
- .align 2, 0
-_081004FC: .4byte gUnknown_083EC96C
-_08100500:
- ldr r7, _08100644 @ =gMain
- ldrh r1, [r7, 0x2C]
- movs r0, 0xF0
- mov r12, r0
- ands r0, r1
- cmp r0, 0x40
- bne _08100534
- ldr r1, _08100648 @ =gUnknown_020391AA
- movs r0, 0x1
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0810064C @ =0x0000fffe
- strh r1, [r0, 0x34]
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- strh r0, [r2, 0xA]
-_08100534:
- ldrh r1, [r7, 0x2C]
- mov r0, r12
- ands r0, r1
- cmp r0, 0x80
- bne _08100564
- ldr r1, _08100648 @ =gUnknown_020391AA
- movs r0, 0x2
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x34]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
-_08100564:
- ldrh r1, [r7, 0x2C]
- mov r0, r12
- ands r0, r1
- cmp r0, 0x20
- bne _08100594
- ldr r1, _08100648 @ =gUnknown_020391AA
- movs r0, 0x3
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0810064C @ =0x0000fffe
- strh r1, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x34]
- ldrh r0, [r2, 0x8]
- subs r0, 0x1
- strh r0, [r2, 0x8]
-_08100594:
- ldrh r1, [r7, 0x2C]
- mov r0, r12
- ands r0, r1
- cmp r0, 0x10
- bne _081005C4
- ldr r1, _08100648 @ =gUnknown_020391AA
- movs r0, 0x4
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x34]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_081005C4:
- bl sub_8100430
- lsls r0, 24
- cmp r0, 0
- beq _081005DA
- adds r0, r4, 0
- bl sub_810038C
- lsls r0, 24
- cmp r0, 0
- bne _081005DE
-_081005DA:
- bl sub_810045C
-_081005DE:
- ldr r0, _08100648 @ =gUnknown_020391AA
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810060C
- ldr r3, _08100650 @ =gSprites
- ldr r2, _08100654 @ =gUnknown_020391A8
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x36]
- adds r1, 0x1
- strh r1, [r0, 0x36]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x36]
- movs r0, 0x7
- ands r0, r2
- strh r0, [r1, 0x36]
-_0810060C:
- ldr r0, _08100658 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r2, r1, r0
- movs r1, 0x1C
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0810063C
- ldr r4, _08100644 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810062E
- strh r3, [r2, 0x1C]
-_0810062E:
- ldrh r1, [r4, 0x2E]
- movs r3, 0x2
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810063C
- strh r3, [r2, 0x1C]
-_0810063C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08100644: .4byte gMain
-_08100648: .4byte gUnknown_020391AA
-_0810064C: .4byte 0x0000fffe
-_08100650: .4byte gSprites
-_08100654: .4byte gUnknown_020391A8
-_08100658: .4byte gTasks
- thumb_func_end sub_8100494
-
- thumb_func_start sub_810065C
-sub_810065C: @ 810065C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r2, _08100698 @ =gSprites
- ldr r0, _0810069C @ =gUnknown_020391A8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r2, 0
- strh r2, [r0, 0x3C]
- ldr r1, _081006A0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1C]
- ldr r1, _081006A4 @ =sub_8100494
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100698: .4byte gSprites
-_0810069C: .4byte gUnknown_020391A8
-_081006A0: .4byte gTasks
-_081006A4: .4byte sub_8100494
- thumb_func_end sub_810065C
-
- thumb_func_start sub_81006A8
-sub_81006A8: @ 81006A8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081006CC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081006C2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081006C8
-_081006C2:
- adds r0, r2, 0
- bl sub_810065C
-_081006C8:
- pop {r0}
- bx r0
- .align 2, 0
-_081006CC: .4byte gMain
- thumb_func_end sub_81006A8
-
- thumb_func_start sub_81006D0
-sub_81006D0: @ 81006D0
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r1, 0
- adds r2, r3, 0
- adds r2, 0x84
- movs r5, 0
- ldr r4, _08100708 @ =0x000007ff
-_081006DE:
- adds r0, r2, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bls _081006DE
- movs r1, 0
- adds r2, r3, 0x4
- movs r3, 0
-_081006F2:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3F
- bls _081006F2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100708: .4byte 0x000007ff
- thumb_func_end sub_81006D0
-
- thumb_func_start sub_810070C
-sub_810070C: @ 810070C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 16
- movs r2, 0
- ldr r0, _0810073C @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- lsrs r4, r1, 12
- ldr r3, [r0, 0x8]
-_0810071E:
- lsls r1, r2, 1
- adds r1, r5
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _0810071E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810073C: .4byte gMapHeader
- thumb_func_end sub_810070C
-
- thumb_func_start sub_8100740
-sub_8100740: @ 8100740
- push {r4-r7,lr}
- sub sp, 0x20
- adds r7, r0, 0
- lsls r1, 16
- lsrs r2, r1, 16
- lsrs r3, r1, 26
- cmp r2, 0
- beq _08100754
- ldr r0, _08100784 @ =0x000003ff
- ands r2, r0
-_08100754:
- movs r5, 0
- ldr r0, _08100788 @ =gMapHeader
- ldr r6, [r0]
- lsls r4, r2, 5
-_0810075C:
- mov r0, sp
- adds r2, r0, r5
- ldr r0, [r6, 0x10]
- ldr r0, [r0, 0x4]
- adds r1, r4, r5
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _0810075C
- cmp r3, 0x1
- beq _081007AE
- cmp r3, 0x1
- bgt _0810078C
- cmp r3, 0
- beq _08100796
- b _0810086A
- .align 2, 0
-_08100784: .4byte 0x000003ff
-_08100788: .4byte gMapHeader
-_0810078C:
- cmp r3, 0x2
- beq _0810080E
- cmp r3, 0x3
- beq _08100846
- b _0810086A
-_08100796:
- movs r5, 0
-_08100798:
- adds r1, r7, r5
- mov r2, sp
- adds r0, r2, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _08100798
- b _0810086A
-_081007AE:
- movs r5, 0
- movs r6, 0xF
-_081007B2:
- lsls r4, r5, 2
- adds r4, r7
- adds r5, 0x1
- lsls r3, r5, 2
- subs r0, r3, 0x1
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4]
- subs r0, r3, 0x2
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x1]
- subs r0, r3, 0x3
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x2]
- subs r3, 0x4
- mov r1, sp
- adds r0, r1, r3
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x3]
- lsls r5, 16
- lsrs r5, 16
- cmp r5, 0x7
- bls _081007B2
- b _0810086A
-_0810080E:
- movs r5, 0
- movs r3, 0x7
-_08100812:
- lsls r2, r5, 2
- adds r2, r7
- subs r1, r3, r5
- lsls r1, 2
- mov r4, sp
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r1, 0x1
- add r0, sp
- ldrb r0, [r0]
- strb r0, [r2, 0x1]
- adds r0, r1, 0x2
- add r0, sp
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- adds r1, 0x3
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _08100812
- b _0810086A
-_08100846:
- movs r5, 0
- movs r4, 0x1F
- movs r6, 0xF
-_0810084C:
- adds r3, r7, r5
- subs r0, r4, r5
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _0810084C
-_0810086A:
- add sp, 0x20
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8100740
-
- thumb_func_start sub_8100874
-sub_8100874: @ 8100874
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_0810087A:
- lsls r0, r4, 5
- adds r0, 0x84
- adds r0, r5, r0
- lsls r2, r4, 1
- adds r1, r5, 0x4
- adds r1, r2
- ldrh r1, [r1]
- bl sub_8100740
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3F
- bls _0810087A
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8100874
-
- thumb_func_start sub_810089C
-sub_810089C: @ 810089C
- lsls r0, 16
- ldr r1, _081008B4 @ =gMapHeader
- ldr r1, [r1]
- ldr r1, [r1, 0x14]
- ldr r1, [r1, 0xC]
- lsrs r0, 15
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _081008B8 @ =0x00000fff
- ands r0, r1
- bx lr
- .align 2, 0
-_081008B4: .4byte gMapHeader
-_081008B8: .4byte 0x00000fff
- thumb_func_end sub_810089C
-
- thumb_func_start sub_81008BC
-sub_81008BC: @ 81008BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- ldr r0, [r0]
- ldrb r0, [r0, 0x12]
- movs r6, 0
- ldr r1, _0810092C @ =gUnknown_083EC860
- lsls r5, r0, 4
- adds r0, r5, r1
- ldrb r0, [r0, 0xC]
- cmp r6, r0
- bcs _08100920
- adds r7, r1, 0
-_081008D8:
- mov r4, r8
- ldm r4!, {r1}
- adds r0, r7, 0x4
- adds r0, r5, r0
- ldr r0, [r0]
- adds r0, r6
- ldrb r0, [r0]
- ldr r1, [r1, 0x1C]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- adds r1, r7, 0
- adds r1, 0x8
- adds r1, r5, r1
- ldr r1, [r1]
- adds r1, r6
- lsls r0, 3
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl sub_810089C
- adds r2, r5, r7
- ldr r1, [r2]
- adds r1, r6
- ldrb r1, [r1]
- lsls r1, 1
- adds r4, r1
- strh r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r2, [r2, 0xC]
- cmp r6, r2
- bcc _081008D8
-_08100920:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810092C: .4byte gUnknown_083EC860
- thumb_func_end sub_81008BC
-
- thumb_func_start sub_8100930
-sub_8100930: @ 8100930
- push {r4,r5,lr}
- lsls r0, 24
- ldr r3, _08100998 @ =gUnknown_020391AC
- movs r1, 0
- strb r1, [r3]
- ldrb r2, [r3, 0x1]
- subs r1, 0x4
- ands r1, r2
- movs r4, 0xD
- negs r4, r4
- ands r1, r4
- movs r2, 0x11
- negs r2, r2
- ands r1, r2
- subs r2, 0x10
- ands r1, r2
- strb r1, [r3, 0x1]
- ldr r1, _0810099C @ =gUnknown_083EC900
- lsrs r0, 22
- adds r0, r1
- ldrb r1, [r0]
- movs r5, 0x3F
- lsls r1, 6
- strb r1, [r3, 0x1]
- ldrh r2, [r3, 0x2]
- ldr r1, _081009A0 @ =0xfffffe00
- ands r1, r2
- strh r1, [r3, 0x2]
- ldrb r2, [r3, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- strb r1, [r3, 0x3]
- ldrb r0, [r0, 0x1]
- lsls r0, 6
- ands r5, r1
- orrs r5, r0
- strb r5, [r3, 0x3]
- ldrh r1, [r3, 0x4]
- ldr r0, _081009A4 @ =0xfffffc00
- ands r0, r1
- strh r0, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- ands r4, r0
- movs r0, 0x4
- orrs r4, r0
- movs r0, 0xF
- ands r4, r0
- strb r4, [r3, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100998: .4byte gUnknown_020391AC
-_0810099C: .4byte gUnknown_083EC900
-_081009A0: .4byte 0xfffffe00
-_081009A4: .4byte 0xfffffc00
- thumb_func_end sub_8100930
-
- thumb_func_start sub_81009A8
-sub_81009A8: @ 81009A8
- movs r1, 0
- strh r1, [r0, 0x32]
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- strh r1, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- ldr r1, _081009BC @ =sub_81009C0
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_081009BC: .4byte sub_81009C0
- thumb_func_end sub_81009A8
-
- thumb_func_start sub_81009C0
-sub_81009C0: @ 81009C0
- push {lr}
- adds r2, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _081009FA
- movs r1, 0x3A
- ldrsh r0, [r2, r1]
- cmp r0, 0xE
- bgt _081009E2
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- b _081009EC
-_081009E2:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
-_081009EC:
- strb r0, [r3]
- ldrh r0, [r2, 0x3A]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x3A]
- b _08100A06
-_081009FA:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08100A06:
- pop {r0}
- bx r0
- thumb_func_end sub_81009C0
-
- thumb_func_start sub_8100A0C
-sub_8100A0C: @ 8100A0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8100D38
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100A44
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _08100A3C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _08100A40 @ =sub_8100E70
- str r1, [r0]
- b _08100A50
- .align 2, 0
-_08100A3C: .4byte gTasks
-_08100A40: .4byte sub_8100E70
-_08100A44:
- ldr r1, _08100A58 @ =gSecretBaseText_NoDecorInUse
- ldr r2, _08100A5C @ =sub_80FE428
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08100A50:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100A58: .4byte gSecretBaseText_NoDecorInUse
-_08100A5C: .4byte sub_80FE428
- thumb_func_end sub_8100A0C
-
- thumb_func_start sub_8100A60
-sub_8100A60: @ 8100A60
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08100A78 @ =0x0201f000
- ldr r1, [r3]
- adds r1, r0
- movs r2, 0
- strb r2, [r1]
- ldr r1, [r3, 0x4]
- adds r1, r0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_08100A78: .4byte 0x0201f000
- thumb_func_end sub_8100A60
-
- thumb_func_start sub_8100A7C
-sub_8100A7C: @ 8100A7C
- push {r4-r6,lr}
- ldr r6, _08100A9C @ =gSpecialVar_0x8005
- movs r0, 0
- strh r0, [r6]
- ldr r2, _08100AA0 @ =gScriptResult
- strh r0, [r2]
- ldr r4, _08100AA4 @ =gSpecialVar_0x8004
- ldr r1, _08100AA8 @ =gUnknown_02039234
- ldrh r0, [r4]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08100AB8
- movs r0, 0x1
- strh r0, [r2]
- b _08100B0A
- .align 2, 0
-_08100A9C: .4byte gSpecialVar_0x8005
-_08100AA0: .4byte gScriptResult
-_08100AA4: .4byte gSpecialVar_0x8004
-_08100AA8: .4byte gUnknown_02039234
-_08100AAC:
- ldr r1, _08100AB4 @ =gSpecialVar_0x8006
- ldrb r0, [r2]
- strh r0, [r1]
- b _08100B0A
- .align 2, 0
-_08100AB4: .4byte gSpecialVar_0x8006
-_08100AB8:
- ldr r3, _08100B10 @ =gDecorations
- ldr r2, _08100B14 @ =0x0201f000
- ldr r1, _08100B18 @ =gUnknown_020391B4
- ldrh r0, [r4]
- lsls r0, 3
- adds r4, r0, r1
- ldrb r1, [r4]
- ldr r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r3
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- bne _08100B0A
- ldrh r0, [r4, 0x4]
- strh r0, [r6]
- ldrb r0, [r4]
- bl sub_8100A60
- movs r1, 0
- ldr r0, _08100B1C @ =gMapHeader
- ldr r0, [r0, 0x4]
- ldrb r2, [r0]
- cmp r1, r2
- bcs _08100B0A
- ldr r5, [r0, 0x4]
- ldrh r4, [r6]
- adds r3, r2, 0
-_08100AF2:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0, r5
- ldrh r0, [r2, 0x14]
- cmp r0, r4
- beq _08100AAC
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bcc _08100AF2
-_08100B0A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100B10: .4byte gDecorations
-_08100B14: .4byte 0x0201f000
-_08100B18: .4byte gUnknown_020391B4
-_08100B1C: .4byte gMapHeader
- thumb_func_end sub_8100A7C
-
- thumb_func_start sub_8100B20
-sub_8100B20: @ 8100B20
- push {r4-r6,lr}
- movs r2, 0
- ldr r0, _08100B4C @ =gMapHeader
- ldr r0, [r0, 0x4]
- ldrb r1, [r0]
- cmp r2, r1
- bcs _08100B64
- adds r3, r0, 0
- ldr r5, [r3, 0x4]
- ldr r0, _08100B50 @ =gSpecialVar_0x8004
- ldrh r4, [r0]
- ldr r6, _08100B54 @ =gSpecialVar_0x8005
-_08100B38:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r5
- ldrh r0, [r1, 0x14]
- cmp r0, r4
- bne _08100B58
- ldrb r0, [r1]
- strh r0, [r6]
- b _08100B64
- .align 2, 0
-_08100B4C: .4byte gMapHeader
-_08100B50: .4byte gSpecialVar_0x8004
-_08100B54: .4byte gSpecialVar_0x8005
-_08100B58:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3]
- cmp r2, r0
- bcc _08100B38
-_08100B64:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8100B20
-
- thumb_func_start sub_8100B6C
-sub_8100B6C: @ 8100B6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r7, 0
- b _08100C64
-_08100B7C:
- lsls r3, r7, 3
- ldr r0, _08100BE0 @ =gUnknown_020391B4
- adds r4, r3, r0
- ldrb r1, [r4]
- ldr r2, _08100BE4 @ =0x0201f000
- ldr r0, [r2]
- adds r0, r1
- ldrb r6, [r0]
- lsls r0, r6, 5
- ldr r5, _08100BE8 @ =gDecorations
- adds r0, r5
- ldrb r2, [r0, 0x11]
- ldr r5, _08100BE4 @ =0x0201f000
- ldr r0, [r5, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r1, r0, 4
- mov r9, r1
- movs r5, 0xF
- mov r10, r5
- mov r1, r10
- ands r1, r0
- mov r10, r1
- adds r5, r3, 0
- adds r3, r7, 0x1
- str r3, [sp]
- cmp r2, 0x4
- beq _08100C5E
- cmp r6, 0x29
- bne _08100BD0
- mov r0, r9
- adds r0, 0x7
- adds r1, 0x7
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- bne _08100BD0
- ldrb r0, [r4, 0x2]
- adds r0, 0x1
- strb r0, [r4, 0x2]
-_08100BD0:
- movs r6, 0
- ldr r1, _08100BE0 @ =gUnknown_020391B4
- adds r2, r5, 0
- adds r0, r5, r1
- adds r3, r7, 0x1
- str r3, [sp]
- b _08100C4E
- .align 2, 0
-_08100BE0: .4byte gUnknown_020391B4
-_08100BE4: .4byte 0x0201f000
-_08100BE8: .4byte gDecorations
-_08100BEC:
- movs r4, 0
- adds r0, r2, r1
- adds r7, r6, 0x1
- str r7, [sp, 0x4]
- ldrb r0, [r0, 0x1]
- cmp r4, r0
- bcs _08100C42
- ldr r0, _08100C7C @ =gUnknown_020391B4
- adds r0, r5
- mov r8, r0
- subs r1, r6, 0x7
- str r1, [sp, 0x8]
-_08100C04:
- adds r0, r4, 0x7
- add r0, r9
- ldr r1, _08100C80 @ =gMapHeader
- ldr r3, [r1]
- mov r7, r10
- subs r2, r7, r6
- ldr r1, [r3]
- muls r2, r1
- mov r7, r9
- adds r1, r7, r4
- adds r1, r2
- ldr r2, [r3, 0xC]
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- movs r3, 0xC0
- lsls r3, 6
- adds r2, r3, 0
- orrs r2, r1
- mov r7, r10
- ldr r3, [sp, 0x8]
- subs r1, r7, r3
- bl MapGridSetMetatileEntryAt
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r7, r8
- ldrb r7, [r7, 0x1]
- cmp r4, r7
- bcc _08100C04
-_08100C42:
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r1, _08100C7C @ =gUnknown_020391B4
- adds r2, r5, 0
- adds r0, r5, r1
-_08100C4E:
- ldrb r0, [r0, 0x2]
- cmp r6, r0
- bcc _08100BEC
- ldr r2, _08100C7C @ =gUnknown_020391B4
- adds r0, r5, r2
- ldrb r0, [r0]
- bl sub_8100A60
-_08100C5E:
- ldr r3, [sp]
- lsls r0, r3, 24
- lsrs r7, r0, 24
-_08100C64:
- ldr r0, _08100C84 @ =gUnknown_02039234
- ldrb r0, [r0]
- cmp r7, r0
- bcc _08100B7C
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08100C7C: .4byte gUnknown_020391B4
-_08100C80: .4byte gMapHeader
-_08100C84: .4byte gUnknown_02039234
- thumb_func_end sub_8100B6C
-
- thumb_func_start sub_8100C88
-sub_8100C88: @ 8100C88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08100CAC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08100CC4
- cmp r0, 0x1
- bgt _08100CB0
- cmp r0, 0
- beq _08100CBA
- b _08100D24
- .align 2, 0
-_08100CAC: .4byte gTasks
-_08100CB0:
- cmp r0, 0x2
- beq _08100CF4
- cmp r0, 0x3
- beq _08100D08
- b _08100D24
-_08100CBA:
- bl sub_8100B6C
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _08100D24
-_08100CC4:
- ldr r0, _08100CEC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08100D24
- bl DrawWholeMapView
- ldr r0, _08100CF0 @ =gUnknown_081A2F8A
- bl ScriptContext1_SetupScript
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- strh r0, [r5, 0xC]
- b _08100D24
- .align 2, 0
-_08100CEC: .4byte gPaletteFade
-_08100CF0: .4byte gUnknown_081A2F8A
-_08100CF4:
- bl ScriptContext2_Enable
- adds r0, r4, 0
- bl sub_80FED90
- bl pal_fill_black
- movs r0, 0x3
- strh r0, [r5, 0xC]
- b _08100D24
-_08100D08:
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100D24
- ldr r0, _08100D2C @ =0x0000ffff
- strh r0, [r5, 0x22]
- ldr r1, _08100D30 @ =gSecretBaseText_DecorReturned
- ldr r2, _08100D34 @ =sub_81010F0
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08100D24:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100D2C: .4byte 0x0000ffff
-_08100D30: .4byte gSecretBaseText_DecorReturned
-_08100D34: .4byte sub_81010F0
- thumb_func_end sub_8100C88
-
- thumb_func_start sub_8100D38
-sub_8100D38: @ 8100D38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08100D68 @ =0x0201f000
- adds r4, r0, 0
- ldrb r0, [r4, 0x8]
- cmp r2, r0
- bcs _08100D7C
- adds r5, r4, 0
- ldr r1, _08100D6C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r1
-_08100D56:
- ldr r0, [r5]
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08100D70
- strh r2, [r1, 0x22]
- movs r0, 0x1
- b _08100D7E
- .align 2, 0
-_08100D68: .4byte 0x0201f000
-_08100D6C: .4byte gTasks
-_08100D70:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r4, 0x8]
- cmp r2, r0
- bcc _08100D56
-_08100D7C:
- movs r0, 0
-_08100D7E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8100D38
-
- thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar
-SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- bl player_get_direction_lower_nybble
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r3, _08100DD8 @ =gUnknown_020391A8
- ldr r2, _08100DDC @ =gSprites
- ldr r4, _08100DE0 @ =gUnknown_03004880
- ldr r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r3]
- bl sub_81016C8
- ldr r0, _08100DE4 @ =gSpriteTemplate_83ECA88
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- str r0, [r4, 0x4]
- ldr r0, _08100DE8 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08100DF0
- ldr r1, _08100DEC @ =SpriteCallbackDummy
- str r0, [sp]
- movs r0, 0xC1
- b _08100DF8
- .align 2, 0
-_08100DD8: .4byte gUnknown_020391A8
-_08100DDC: .4byte gSprites
-_08100DE0: .4byte gUnknown_03004880
-_08100DE4: .4byte gSpriteTemplate_83ECA88
-_08100DE8: .4byte gSaveBlock2
-_08100DEC: .4byte SpriteCallbackDummy
-_08100DF0:
- ldr r1, _08100E5C @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC2
-_08100DF8:
- movs r2, 0x88
- movs r3, 0x48
- bl AddPseudoFieldObject
- ldr r1, _08100E60 @ =gUnknown_020391A9
- strb r0, [r1]
- ldr r6, _08100E64 @ =gSprites
- ldr r0, _08100E60 @ =gUnknown_020391A9
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x4
- mov r8, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r5, _08100E68 @ =gUnknown_020391A8
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r0, _08100E6C @ =gUnknown_03004880
- ldr r0, [r0, 0x4]
- strb r0, [r5]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x5]
- ands r4, r1
- mov r1, r8
- orrs r4, r1
- strb r4, [r0, 0x5]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100E5C: .4byte SpriteCallbackDummy
-_08100E60: .4byte gUnknown_020391A9
-_08100E64: .4byte gSprites
-_08100E68: .4byte gUnknown_020391A8
-_08100E6C: .4byte gUnknown_03004880
- thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar
-
- thumb_func_start sub_8100E70
-sub_8100E70: @ 8100E70
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08100E94 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08100EC4
- cmp r0, 0x1
- bgt _08100E98
- cmp r0, 0
- beq _08100E9E
- b _08100EE6
- .align 2, 0
-_08100E94: .4byte gTasks + 0x8
-_08100E98:
- cmp r0, 0x2
- beq _08100ED2
- b _08100EE6
-_08100E9E:
- ldr r0, _08100EC0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08100EE6
- adds r0, r5, 0
- bl sub_80FF0E0
- movs r0, 0x1
- strh r0, [r4, 0x4]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xA]
- bl sub_8072DEC
- b _08100EE6
- .align 2, 0
-_08100EC0: .4byte gPaletteFade
-_08100EC4:
- bl SetUpPuttingAwayDecorationPlayerAvatar
- bl pal_fill_black
- movs r0, 0x2
- strh r0, [r4, 0x4]
- b _08100EE6
-_08100ED2:
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100EE6
- strh r0, [r4, 0x18]
- adds r0, r5, 0
- bl sub_8100EEC
-_08100EE6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8100E70
-
- thumb_func_start sub_8100EEC
-sub_8100EEC: @ 8100EEC
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r4, _08100F70 @ =gSprites
- ldr r3, _08100F74 @ =gUnknown_020391A8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r6, 0
- strh r6, [r0, 0x3C]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08100F78 @ =sub_8101698
- str r1, [r0]
- ldr r2, _08100F7C @ =gUnknown_020391A9
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x88
- strh r1, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x48
- strh r1, [r0, 0x22]
- ldr r1, _08100F80 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x1C]
- ldr r1, _08100F84 @ =sub_8100494
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100F70: .4byte gSprites
-_08100F74: .4byte gUnknown_020391A8
-_08100F78: .4byte sub_8101698
-_08100F7C: .4byte gUnknown_020391A9
-_08100F80: .4byte gTasks
-_08100F84: .4byte sub_8100494
- thumb_func_end sub_8100EEC
-
- thumb_func_start sub_8100F88
-sub_8100F88: @ 8100F88
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08100FB0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- bl sub_810045C
- adds r0, r4, 0
- bl sub_8101024
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100FB0: .4byte gTasks
- thumb_func_end sub_8100F88
-
- thumb_func_start sub_8100FB4
-sub_8100FB4: @ 8100FB4
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0810100C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- bl sub_810045C
- ldr r3, _08101010 @ =gSprites
- ldr r5, _08101014 @ =gUnknown_020391A8
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, _08101018 @ =SpriteCallbackDummy
- str r1, [r0]
- ldr r1, _0810101C @ =gSecretBaseText_StopPuttingAwayDecor
- ldr r2, _08101020 @ =sub_810156C
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810100C: .4byte gTasks
-_08101010: .4byte gSprites
-_08101014: .4byte gUnknown_020391A8
-_08101018: .4byte SpriteCallbackDummy
-_0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor
-_08101020: .4byte sub_810156C
- thumb_func_end sub_8100FB4
-
- thumb_func_start sub_8101024
-sub_8101024: @ 8101024
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8101460
- ldr r0, _08101040 @ =gUnknown_02039234
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810104C
- ldr r1, _08101044 @ =gSecretBaseText_ReturnDecor
- ldr r2, _08101048 @ =sub_8101518
- b _081010B0
- .align 2, 0
-_08101040: .4byte gUnknown_02039234
-_08101044: .4byte gSecretBaseText_ReturnDecor
-_08101048: .4byte sub_8101518
-_0810104C:
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- ldr r0, _081010BC @ =gTasks + 0x8
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057238
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08101082
- adds r0, r4, 0
- bl sub_805738C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081010D4
-_08101082:
- ldr r3, _081010C0 @ =gSprites
- ldr r4, _081010C4 @ =gUnknown_020391A8
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, _081010C8 @ =SpriteCallbackDummy
- str r1, [r0]
- ldr r1, _081010CC @ =gSecretBaseText_StopPuttingAwayDecor
- ldr r2, _081010D0 @ =sub_810156C
-_081010B0:
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _081010E0
- .align 2, 0
-_081010BC: .4byte gTasks + 0x8
-_081010C0: .4byte gSprites
-_081010C4: .4byte gUnknown_020391A8
-_081010C8: .4byte SpriteCallbackDummy
-_081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor
-_081010D0: .4byte sub_810156C
-_081010D4:
- ldr r1, _081010E8 @ =gSecretBaseText_NoDecor
- ldr r2, _081010EC @ =sub_81010F0
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_081010E0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081010E8: .4byte gSecretBaseText_NoDecor
-_081010EC: .4byte sub_81010F0
- thumb_func_end sub_8101024
-
- thumb_func_start sub_81010F0
-sub_81010F0: @ 81010F0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08101114 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810110A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08101110
-_0810110A:
- adds r0, r2, 0
- bl sub_8100EEC
-_08101110:
- pop {r0}
- bx r0
- .align 2, 0
-_08101114: .4byte gMain
- thumb_func_end sub_81010F0
-
- thumb_func_start sub_8101118
-sub_8101118: @ 8101118
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- ldr r1, _08101130 @ =gDecorations
- lsrs r0, 19
- adds r0, r1
- ldrb r1, [r0, 0x12]
- cmp r1, 0
- bne _08101134
- movs r0, 0x1
- strb r0, [r2, 0x1]
- b _08101192
- .align 2, 0
-_08101130: .4byte gDecorations
-_08101134:
- cmp r1, 0x1
- bne _08101140
- movs r0, 0x2
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- b _08101194
-_08101140:
- cmp r1, 0x2
- bne _0810114C
- movs r0, 0x3
- strb r0, [r2, 0x1]
- movs r0, 0x1
- b _08101192
-_0810114C:
- cmp r1, 0x3
- bne _08101154
- movs r0, 0x4
- b _0810118E
-_08101154:
- cmp r1, 0x4
- bne _0810115E
- movs r0, 0x2
- strb r0, [r2, 0x1]
- b _08101192
-_0810115E:
- cmp r1, 0x5
- bne _08101166
- movs r0, 0x1
- b _0810118E
-_08101166:
- cmp r1, 0x6
- bne _08101172
- movs r0, 0x1
- strb r0, [r2, 0x1]
- movs r0, 0x3
- b _08101192
-_08101172:
- cmp r1, 0x7
- bne _0810117E
- movs r0, 0x2
- strb r0, [r2, 0x1]
- movs r0, 0x4
- b _08101192
-_0810117E:
- cmp r1, 0x8
- bne _08101188
- movs r0, 0x3
- strb r0, [r2, 0x1]
- b _08101192
-_08101188:
- cmp r1, 0x9
- bne _08101194
- movs r0, 0x3
-_0810118E:
- strb r0, [r2, 0x1]
- movs r0, 0x2
-_08101192:
- strb r0, [r2, 0x2]
-_08101194:
- pop {r0}
- bx r0
- thumb_func_end sub_8101118
-
- thumb_func_start sub_8101198
-sub_8101198: @ 8101198
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- ldr r5, _081011F0 @ =gSprites
- ldr r6, _081011F4 @ =gUnknown_020391A8
- ldrb r3, [r6]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- adds r2, 0x3E
- ldrb r3, [r2]
- movs r4, 0x4
- orrs r3, r4
- strb r3, [r2]
- ldrb r3, [r6]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r3, r5, 0
- adds r3, 0x1C
- adds r2, r3
- ldr r3, _081011F8 @ =SpriteCallbackDummy
- str r3, [r2]
- ldr r4, _081011FC @ =gUnknown_020391A9
- ldrb r3, [r4]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- lsrs r0, 20
- adds r0, 0x88
- strh r0, [r2, 0x20]
- ldrb r2, [r4]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- lsrs r1, 20
- adds r1, 0x48
- strh r1, [r0, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081011F0: .4byte gSprites
-_081011F4: .4byte gUnknown_020391A8
-_081011F8: .4byte SpriteCallbackDummy
-_081011FC: .4byte gUnknown_020391A9
- thumb_func_end sub_8101198
-
- thumb_func_start sub_8101200
-sub_8101200: @ 8101200
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0810128C @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldrb r0, [r2, 0x8]
- subs r0, 0x7
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r2, 0xA]
- subs r0, 0x7
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _08101290 @ =0x0201f000
- ldr r0, [r2, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r4, r0, 4
- movs r5, 0xF
- ands r5, r0
- ldr r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _0810125A
- adds r0, r4, 0x7
- adds r1, r5, 0x7
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- bne _0810125A
- ldrb r0, [r6, 0x2]
- subs r0, 0x1
- strb r0, [r6, 0x2]
-_0810125A:
- cmp r7, r4
- bcc _08101294
- ldrb r1, [r6, 0x1]
- adds r0, r4, r1
- cmp r7, r0
- bge _08101294
- ldrb r0, [r6, 0x2]
- subs r0, r5, r0
- cmp r8, r0
- ble _08101294
- cmp r8, r5
- bhi _08101294
- subs r0, r7, r4
- adds r0, 0x1
- subs r0, r1, r0
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- subs r1, r5, r2
- lsls r1, 24
- lsrs r1, 24
- bl sub_8101198
- movs r0, 0x1
- b _08101296
- .align 2, 0
-_0810128C: .4byte gTasks
-_08101290: .4byte 0x0201f000
-_08101294:
- movs r0, 0
-_08101296:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8101200
-
- thumb_func_start sub_81012A0
-sub_81012A0: @ 81012A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0810130C @ =0x0201f000
- ldr r3, _08101310 @ =gUnknown_020391B4
- ldr r0, _08101314 @ =gUnknown_02039234
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r3
- ldrb r1, [r0]
- ldr r0, [r2, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r7, r0, 4
- movs r6, 0xF
- ands r6, r0
- movs r5, 0
- ldr r0, _08101318 @ =gSaveBlock1
- mov r8, r0
- mov r9, r3
-_081012CA:
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- ldr r2, _0810131C @ =0x00000c24
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r7
- bne _08101328
- ldr r2, _08101320 @ =0x00000c26
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r6
- bne _08101328
- ldr r0, _08101324 @ =0x00000c34
- adds r4, r1, r0
- ldrh r0, [r4]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08101328
- ldr r0, _08101314 @ =gUnknown_02039234
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r9
- ldrh r1, [r4]
- strh r1, [r0, 0x4]
- b _08101332
- .align 2, 0
-_0810130C: .4byte 0x0201f000
-_08101310: .4byte gUnknown_020391B4
-_08101314: .4byte gUnknown_02039234
-_08101318: .4byte gSaveBlock1
-_0810131C: .4byte 0x00000c24
-_08101320: .4byte 0x00000c26
-_08101324: .4byte 0x00000c34
-_08101328:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3F
- bls _081012CA
-_08101332:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81012A0
-
- thumb_func_start sub_8101340
-sub_8101340: @ 8101340
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- b _081013A2
-_0810134A:
- ldr r0, [r0]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810139C
- ldr r0, _08101390 @ =gDecorations
- ldrb r2, [r1]
- lsls r1, r2, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- bne _0810139C
- ldr r5, _08101394 @ =gUnknown_020391B4
- adds r0, r2, 0
- adds r1, r5, 0
- bl sub_8101118
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r7, 0
- adds r2, r5, 0
- bl sub_8101200
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _0810139C
- strb r6, [r5]
- bl sub_81012A0
- ldr r0, _08101398 @ =gUnknown_02039234
- strb r4, [r0]
- movs r0, 0x1
- b _081013AC
- .align 2, 0
-_08101390: .4byte gDecorations
-_08101394: .4byte gUnknown_020391B4
-_08101398: .4byte gUnknown_02039234
-_0810139C:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_081013A2:
- ldr r0, _081013B4 @ =0x0201f000
- ldrb r1, [r0, 0x8]
- cmp r6, r1
- bcc _0810134A
- movs r0, 0
-_081013AC:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081013B4: .4byte 0x0201f000
- thumb_func_end sub_8101340
-
- thumb_func_start sub_81013B8
-sub_81013B8: @ 81013B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r4, 0
- ldr r7, _08101450 @ =0x0201f000
- ldrb r0, [r7, 0x8]
- cmp r4, r0
- bcs _0810143E
- adds r6, r7, 0
- ldr r5, _08101454 @ =gUnknown_02039234
-_081013EA:
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- ldr r0, [r6, 0x4]
- adds r0, r4
- ldrb r0, [r0]
- lsrs r3, r0, 4
- movs r2, 0xF
- ands r2, r0
- cmp r1, 0
- beq _08101432
- ldr r0, _08101458 @ =gDecorations
- lsls r1, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- bne _08101432
- ldr r0, [sp]
- cmp r0, r3
- bhi _08101432
- cmp r10, r2
- bhi _08101432
- cmp r9, r3
- bcc _08101432
- cmp r8, r2
- bcc _08101432
- ldr r0, _0810145C @ =gUnknown_020391B4
- ldrb r1, [r5]
- lsls r1, 3
- adds r1, r0
- strb r4, [r1]
- bl sub_81012A0
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_08101432:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r7, 0x8]
- cmp r4, r0
- bcc _081013EA
-_0810143E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101450: .4byte 0x0201f000
-_08101454: .4byte gUnknown_02039234
-_08101458: .4byte gDecorations
-_0810145C: .4byte gUnknown_020391B4
- thumb_func_end sub_81013B8
-
- thumb_func_start sub_8101460
-sub_8101460: @ 8101460
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _081014B8 @ =gUnknown_02039234
- movs r0, 0
- strb r0, [r4]
- adds r0, r6, 0
- bl sub_8101340
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08101504
- movs r5, 0
- ldr r0, _081014BC @ =0x0201f000
- ldrb r1, [r0, 0x8]
- cmp r5, r1
- bcs _081014D2
- adds r7, r4, 0
-_08101486:
- ldr r0, [r0]
- adds r0, r5
- ldrb r1, [r0]
- cmp r1, 0
- beq _081014C4
- ldr r4, _081014C0 @ =gUnknown_020391B4
- adds r0, r1, 0
- adds r1, r4, 0
- bl sub_8101118
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8101200
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081014C4
- strb r5, [r4]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _081014D2
- .align 2, 0
-_081014B8: .4byte gUnknown_02039234
-_081014BC: .4byte 0x0201f000
-_081014C0: .4byte gUnknown_020391B4
-_081014C4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810150C @ =0x0201f000
- ldrb r1, [r0, 0x8]
- cmp r5, r1
- bcc _08101486
-_081014D2:
- ldr r0, _08101510 @ =gUnknown_02039234
- ldrb r0, [r0]
- cmp r0, 0
- beq _08101504
- ldr r0, _0810150C @ =0x0201f000
- ldr r2, _08101514 @ =gUnknown_020391B4
- ldrb r1, [r2]
- ldr r0, [r0, 0x4]
- adds r0, r1
- ldrb r1, [r0]
- lsrs r0, r1, 4
- movs r3, 0xF
- ands r3, r1
- ldrb r1, [r2, 0x2]
- subs r1, r3, r1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r2, 0x1]
- adds r2, r0
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- bl sub_81013B8
-_08101504:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810150C: .4byte 0x0201f000
-_08101510: .4byte gUnknown_02039234
-_08101514: .4byte gUnknown_020391B4
- thumb_func_end sub_8101460
-
- thumb_func_start sub_8101518
-sub_8101518: @ 8101518
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _08101538 @ =gUnknown_083EC9CC
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101538: .4byte gUnknown_083EC9CC
- thumb_func_end sub_8101518
-
- thumb_func_start sub_810153C
-sub_810153C: @ 810153C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _08101564 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _08101568 @ =sub_8100C88
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101564: .4byte gTasks
-_08101568: .4byte sub_8100C88
- thumb_func_end sub_810153C
-
- thumb_func_start sub_810156C
-sub_810156C: @ 810156C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0810158C @ =gUnknown_083EC9D4
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810158C: .4byte gUnknown_083EC9D4
- thumb_func_end sub_810156C
-
- thumb_func_start sub_8101590
-sub_8101590: @ 8101590
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_81015B0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101590
-
- thumb_func_start sub_81015B0
-sub_81015B0: @ 81015B0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _081015D8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _081015DC @ =sub_81015E0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081015D8: .4byte gTasks
-_081015DC: .4byte sub_81015E0
- thumb_func_end sub_81015B0
-
- thumb_func_start sub_81015E0
-sub_81015E0: @ 81015E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08101600 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08101604
- cmp r0, 0x1
- beq _08101620
- b _08101636
- .align 2, 0
-_08101600: .4byte gTasks
-_08101604:
- ldr r0, _0810161C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08101636
- adds r0, r4, 0
- bl sub_80FF114
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _08101636
- .align 2, 0
-_0810161C: .4byte gPaletteFade
-_08101620:
- bl sub_81016F4
- ldr r0, _0810163C @ =gUnknown_0300485C
- ldr r1, _08101640 @ =sub_8101678
- str r1, [r0]
- ldr r0, _08101644 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08101636:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810163C: .4byte gUnknown_0300485C
-_08101640: .4byte sub_8101678
-_08101644: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_81015E0
-
- thumb_func_start sub_8101648
-sub_8101648: @ 8101648
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08101668
- ldr r0, _08101670 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08101674 @ =Task_DecorationPCProcessMenuInput
- str r0, [r1]
-_08101668:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101670: .4byte gTasks
-_08101674: .4byte Task_DecorationPCProcessMenuInput
- thumb_func_end sub_8101648
-
- thumb_func_start sub_8101678
-sub_8101678: @ 8101678
- push {lr}
- bl pal_fill_black
- bl MenuDisplayMessageBox
- bl sub_80FE220
- ldr r0, _08101694 @ =sub_8101648
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08101694: .4byte sub_8101648
- thumb_func_end sub_8101678
-
- thumb_func_start sub_8101698
-sub_8101698: @ 8101698
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x2E]
- cmp r0, 0xF
- ble _081016B8
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _081016C4
-_081016B8:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_081016C4:
- pop {r0}
- bx r0
- thumb_func_end sub_8101698
-
- thumb_func_start sub_81016C8
-sub_81016C8: @ 81016C8
- push {lr}
- ldr r0, _081016DC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _081016E4
- ldr r0, _081016E0 @ =gUnknown_083ECA5C
- bl LoadSpritePalette
- b _081016EA
- .align 2, 0
-_081016DC: .4byte gSaveBlock2
-_081016E0: .4byte gUnknown_083ECA5C
-_081016E4:
- ldr r0, _081016F0 @ =gUnknown_083ECA64
- bl LoadSpritePalette
-_081016EA:
- pop {r0}
- bx r0
- .align 2, 0
-_081016F0: .4byte gUnknown_083ECA64
- thumb_func_end sub_81016C8
-
- thumb_func_start sub_81016F4
-sub_81016F4: @ 81016F4
- push {lr}
- movs r0, 0x8
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- thumb_func_end sub_81016F4
-
- thumb_func_start sub_8101700
-sub_8101700: @ 8101700
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81341D4
- lsls r0, 24
- cmp r0, 0
- bne _08101728
- ldr r1, _08101720 @ =gSecretBaseText_NoDecors
- ldr r2, _08101724 @ =sub_80FE428
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08101742
- .align 2, 0
-_08101720: .4byte gSecretBaseText_NoDecors
-_08101724: .4byte sub_80FE428
-_08101728:
- ldr r1, _08101748 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0x1E]
- ldr r0, _0810174C @ =gUnknown_020388F6
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_80FE5AC
-_08101742:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101748: .4byte gTasks
-_0810174C: .4byte gUnknown_020388F6
- thumb_func_end sub_8101700
-
- thumb_func_start unref_sub_8101750
-unref_sub_8101750: @ 8101750
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81341D4
- lsls r0, 24
- cmp r0, 0
- bne _08101778
- ldr r1, _08101770 @ =gSecretBaseText_NoDecors
- ldr r2, _08101774 @ =sub_80FE428
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08101792
- .align 2, 0
-_08101770: .4byte gSecretBaseText_NoDecors
-_08101774: .4byte sub_80FE428
-_08101778:
- ldr r1, _08101798 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x2
- strh r1, [r0, 0x1E]
- ldr r0, _0810179C @ =gUnknown_020388F6
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_80FE5AC
-_08101792:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101798: .4byte gTasks
-_0810179C: .4byte gUnknown_020388F6
- thumb_func_end unref_sub_8101750
-
- thumb_func_start sub_81017A0
-sub_81017A0: @ 81017A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80FEF74
- bl sub_80FED1C
- bl sub_80FEFA4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08101808
- ldr r0, _081017EC @ =gStringVar1
- ldr r1, _081017F0 @ =gUnknown_020388F5
- ldrb r2, [r1]
- ldr r1, _081017F4 @ =gUnknown_020388D0
- ldr r1, [r1]
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 5
- ldr r2, _081017F8 @ =gDecorations + 0x1
- adds r1, r2
- bl StringCopy
- ldr r4, _081017FC @ =gStringVar4
- ldr r1, _08101800 @ =gSecretBaseText_WillBeDiscarded
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _08101804 @ =sub_8101824
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08101814
- .align 2, 0
-_081017EC: .4byte gStringVar1
-_081017F0: .4byte gUnknown_020388F5
-_081017F4: .4byte gUnknown_020388D0
-_081017F8: .4byte gDecorations + 0x1
-_081017FC: .4byte gStringVar4
-_08101800: .4byte gSecretBaseText_WillBeDiscarded
-_08101804: .4byte sub_8101824
-_08101808:
- ldr r1, _0810181C @ =gSecretBaseText_DecorInUse
- ldr r2, _08101820 @ =sub_80FEFF4
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08101814:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810181C: .4byte gSecretBaseText_DecorInUse
-_08101820: .4byte sub_80FEFF4
- thumb_func_end sub_81017A0
-
- thumb_func_start sub_8101824
-sub_8101824: @ 8101824
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _08101844 @ =gUnknown_083ECAA0
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101844: .4byte gUnknown_083ECAA0
- thumb_func_end sub_8101824
-
- thumb_func_start sub_8101848
-sub_8101848: @ 8101848
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xE
- bl MenuZeroFillWindowRect
- ldr r6, _08101890 @ =gUnknown_020388F5
- ldrb r1, [r6]
- ldr r5, _08101894 @ =gUnknown_020388D0
- ldr r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8109A30
- ldrb r1, [r6]
- ldr r0, [r5]
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- adds r0, r4, 0
- bl sub_80FF098
- ldr r1, _08101898 @ =gSecretBaseText_DecorThrownAway
- ldr r2, _0810189C @ =sub_80FEFF4
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08101890: .4byte gUnknown_020388F5
-_08101894: .4byte gUnknown_020388D0
-_08101898: .4byte gSecretBaseText_DecorThrownAway
-_0810189C: .4byte sub_80FEFF4
- thumb_func_end sub_8101848
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index e98a76c8c..c34212a24 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -825,8 +825,8 @@ _080E675C: .4byte 0x00009da4
_080E6760: .4byte 0x00009f6e
thumb_func_end sub_80E6690
- thumb_func_start sub_80E6764
-sub_80E6764: @ 80E6764
+ thumb_func_start InitEasyChatPhrases
+InitEasyChatPhrases: @ 80E6764
push {r4-r6,lr}
movs r3, 0
ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C
@@ -926,7 +926,7 @@ _080E681C: .4byte gSaveBlock1 + 0x2B34
_080E6820: .4byte 0x0000ffff
_080E6824: .4byte gSaveBlock1 + 0x2B4C
_080E6828: .4byte gSaveBlock1 + 0x2D8C
- thumb_func_end sub_80E6764
+ thumb_func_end InitEasyChatPhrases
thumb_func_start sub_80E682C
sub_80E682C: @ 80E682C
@@ -1595,7 +1595,7 @@ _080E6D58:
.align 2, 0
_080E6D60: .4byte 0x02001000
_080E6D64:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
bl sub_80E81FC
ldr r0, _080E6D78 @ =sub_80E6AC4
bl sub_80E682C
@@ -1781,7 +1781,7 @@ _080E6ED0: .4byte 0x00009c7c
_080E6ED4: .4byte 0x0000ffff
_080E6ED8: .4byte sub_80E752C
_080E6EDC:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
bl sub_80E81FC
ldr r4, _080E6EFC @ =0x02001000
ldrb r0, [r4, 0x8]
@@ -5473,7 +5473,7 @@ _080E8A8E:
mov r0, sp
movs r1, 0x3
strh r1, [r0]
- ldr r0, _080E8B74 @ =gUnknown_083DBD10
+ ldr r0, _080E8B74 @ =gSpriteAnimTable_83DBD10
str r0, [sp, 0x8]
movs r5, 0
movs r7, 0x3F
@@ -5535,7 +5535,7 @@ _080E8AF6:
_080E8B68: .4byte gSpriteTemplate_83DBD18
_080E8B6C: .4byte gUnknown_083DB694
_080E8B70: .4byte gSprites
-_080E8B74: .4byte gUnknown_083DBD10
+_080E8B74: .4byte gSpriteAnimTable_83DBD10
thumb_func_end sub_80E8A7C
thumb_func_start sub_80E8B78
@@ -9975,7 +9975,7 @@ _080EAE50:
lsls r0, 16
lsrs r0, 16
movs r1, 0
- bl sub_8090D90
+ bl GetNationalPokedexFlag
b _080EAE7C
_080EAE62:
ldr r0, _080EAE74 @ =gUnknown_083DB694
@@ -10831,810 +10831,4 @@ _080EB4AC: .4byte gEasyChatGroupWords
_080EB4B0: .4byte 0x0000ffff
thumb_func_end sub_80EB3FC
- thumb_func_start ConvertEasyChatWordsToString
-ConvertEasyChatWordsToString: @ 80EB4B4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 16
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- ldr r0, _080EB53C @ =0xffff0000
- adds r2, r0
- lsrs r7, r2, 16
- movs r0, 0
- cmp r0, r9
- bcs _080EB524
-_080EB4D6:
- movs r6, 0
- adds r0, 0x1
- mov r8, r0
- cmp r6, r7
- bcs _080EB508
- ldr r2, _080EB540 @ =0x0000ffff
-_080EB4E2:
- ldrh r1, [r5]
- adds r0, r4, 0
- str r2, [sp]
- bl sub_80EB3FC
- adds r4, r0, 0
- ldrh r0, [r5]
- ldr r2, [sp]
- cmp r0, r2
- beq _080EB4FC
- movs r0, 0
- strb r0, [r4]
- adds r4, 0x1
-_080EB4FC:
- adds r5, 0x2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r7
- bcc _080EB4E2
-_080EB508:
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r4, 0
- bl sub_80EB3FC
- adds r4, r0, 0
- movs r0, 0xFE
- strb r0, [r4]
- adds r4, 0x1
- mov r1, r8
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, r9
- bcc _080EB4D6
-_080EB524:
- subs r4, 0x1
- movs r0, 0xFF
- strb r0, [r4]
- adds r0, r4, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB53C: .4byte 0xffff0000
-_080EB540: .4byte 0x0000ffff
- thumb_func_end ConvertEasyChatWordsToString
-
- thumb_func_start sub_80EB544
-sub_80EB544: @ 80EB544
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 16
- lsls r3, 16
- lsrs r3, 16
- mov r10, r3
- ldr r0, _080EB5B0 @ =0xffff0000
- adds r2, r0
- lsrs r2, 16
- mov r8, r2
- movs r7, 0
- cmp r7, r10
- bcs _080EB5C8
-_080EB56A:
- movs r6, 0
- adds r1, r7, 0x1
- mov r9, r1
- cmp r6, r8
- bcs _080EB59C
- ldr r2, _080EB5B4 @ =0x0000ffff
-_080EB576:
- ldrh r1, [r5]
- adds r0, r4, 0
- str r2, [sp]
- bl sub_80EB3FC
- adds r4, r0, 0
- ldrh r0, [r5]
- ldr r2, [sp]
- cmp r0, r2
- beq _080EB590
- movs r0, 0
- strb r0, [r4]
- adds r4, 0x1
-_080EB590:
- adds r5, 0x2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r8
- bcc _080EB576
-_080EB59C:
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r4, 0
- bl sub_80EB3FC
- adds r4, r0, 0
- cmp r7, 0
- bne _080EB5B8
- movs r0, 0xFE
- b _080EB5BA
- .align 2, 0
-_080EB5B0: .4byte 0xffff0000
-_080EB5B4: .4byte 0x0000ffff
-_080EB5B8:
- movs r0, 0xFA
-_080EB5BA:
- strb r0, [r4]
- adds r4, 0x1
- mov r1, r9
- lsls r0, r1, 16
- lsrs r7, r0, 16
- cmp r7, r10
- bcc _080EB56A
-_080EB5C8:
- subs r4, 0x1
- movs r0, 0xFF
- strb r0, [r4]
- adds r0, r4, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB544
-
- thumb_func_start unref_sub_80EB5E0
-unref_sub_80EB5E0: @ 80EB5E0
- push {lr}
- lsls r1, r0, 16
- lsrs r3, r1, 16
- ldr r0, _080EB5F0 @ =0x0000ffff
- cmp r3, r0
- bne _080EB5F4
- movs r0, 0
- b _080EB67C
- .align 2, 0
-_080EB5F0: .4byte 0x0000ffff
-_080EB5F4:
- lsrs r1, 25
- ldr r2, _080EB608 @ =0x000001ff
- ands r2, r3
- cmp r1, 0x13
- bgt _080EB60C
- cmp r1, 0x12
- bge _080EB620
- cmp r1, 0
- beq _080EB610
- b _080EB630
- .align 2, 0
-_080EB608: .4byte 0x000001ff
-_080EB60C:
- cmp r1, 0x15
- bne _080EB630
-_080EB610:
- movs r0, 0xB
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _080EB61C @ =gSpeciesNames
- adds r1, r0
- b _080EB660
- .align 2, 0
-_080EB61C: .4byte gSpeciesNames
-_080EB620:
- movs r0, 0xD
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _080EB62C @ =gMoveNames
- adds r1, r0
- b _080EB660
- .align 2, 0
-_080EB62C: .4byte gMoveNames
-_080EB630:
- ldr r0, _080EB664 @ =gEasyChatGroupWords
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080EB668 @ =0x0000ffff
- cmp r2, r0
- beq _080EB660
- adds r3, r0, 0
-_080EB646:
- ldrb r0, [r1]
- adds r1, 0x1
- subs r2, 0x1
- cmp r0, 0xFF
- beq _080EB658
-_080EB650:
- ldrb r0, [r1]
- adds r1, 0x1
- cmp r0, 0xFF
- bne _080EB650
-_080EB658:
- lsls r0, r2, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bne _080EB646
-_080EB660:
- movs r2, 0
- b _080EB674
- .align 2, 0
-_080EB664: .4byte gEasyChatGroupWords
-_080EB668: .4byte 0x0000ffff
-_080EB66C:
- adds r1, 0x1
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_080EB674:
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080EB66C
- adds r0, r2, 0
-_080EB67C:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80EB5E0
-
- thumb_func_start sub_80EB680
-sub_80EB680: @ 80EB680
- movs r0, 0
- bx lr
- thumb_func_end sub_80EB680
-
- thumb_func_start unref_sub_80EB684
-unref_sub_80EB684: @ 80EB684
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- cmp r0, 0x7
- beq _080EB6B4
- cmp r0, 0x7
- bgt _080EB69E
- cmp r0, 0x5
- beq _080EB6A4
- b _080EB6EE
-_080EB69E:
- cmp r2, 0x8
- beq _080EB6C4
- b _080EB6EE
-_080EB6A4:
- movs r2, 0x6
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080EB6B0 @ =gSaveBlock1 + 0x273C
- b _080EB6CE
- .align 2, 0
-_080EB6B0: .4byte gSaveBlock1 + 0x273C
-_080EB6B4:
- movs r2, 0x2
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080EB6C0 @ =gSaveBlock1 + 0x2754
- b _080EB6CE
- .align 2, 0
-_080EB6C0: .4byte gSaveBlock1 + 0x2754
-_080EB6C4:
- movs r2, 0x1
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080EB6F4 @ =gSaveBlock1 + 0x273A
-_080EB6CE:
- adds r1, r0, r1
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080EB6F8 @ =0x0000ffff
- cmp r2, r0
- beq _080EB6EE
- adds r4, r0, 0
- adds r3, r0, 0
-_080EB6E0:
- strh r4, [r1]
- adds r1, 0x2
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bne _080EB6E0
-_080EB6EE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB6F4: .4byte gSaveBlock1 + 0x273A
-_080EB6F8: .4byte 0x0000ffff
- thumb_func_end unref_sub_80EB684
-
- thumb_func_start sub_80EB6FC
-sub_80EB6FC: @ 80EB6FC
- push {lr}
- adds r2, r0, 0
- lsls r1, 16
- ldr r0, _080EB724 @ =0xffff0000
- adds r1, r0
- lsrs r0, r1, 16
- ldr r1, _080EB728 @ =0x0000ffff
- cmp r0, r1
- beq _080EB71E
- adds r3, r1, 0
-_080EB710:
- strh r3, [r2]
- adds r2, 0x2
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bne _080EB710
-_080EB71E:
- pop {r0}
- bx r0
- .align 2, 0
-_080EB724: .4byte 0xffff0000
-_080EB728: .4byte 0x0000ffff
- thumb_func_end sub_80EB6FC
-
- thumb_func_start sub_80EB72C
-sub_80EB72C: @ 80EB72C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080EB778 @ =gEasyChatGroupSizes
- adds r1, r4, r1
- ldrb r1, [r1]
- bl __modsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r4, 0
- beq _080EB758
- cmp r4, 0x15
- beq _080EB758
- cmp r4, 0x12
- beq _080EB758
- cmp r4, 0x13
- bne _080EB766
-_080EB758:
- ldr r1, _080EB77C @ =gEasyChatGroupWords
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r2, [r0]
-_080EB766:
- movs r0, 0x7F
- ands r0, r4
- lsls r0, 9
- ldr r1, _080EB780 @ =0x000001ff
- ands r2, r1
- orrs r0, r2
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB778: .4byte gEasyChatGroupSizes
-_080EB77C: .4byte gEasyChatGroupWords
-_080EB780: .4byte 0x000001ff
- thumb_func_end sub_80EB72C
-
- thumb_func_start sub_80EB784
-sub_80EB784: @ 80EB784
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80EAD7C
- lsls r0, 24
- cmp r0, 0
- bne _080EB7A0
- ldr r0, _080EB79C @ =0x0000ffff
- b _080EB7BE
- .align 2, 0
-_080EB79C: .4byte 0x0000ffff
-_080EB7A0:
- cmp r4, 0
- beq _080EB7AE
- cmp r4, 0x14
- bne _080EB7B4
- bl sub_80EB960
- b _080EB7BA
-_080EB7AE:
- bl sub_80EB9D8
- b _080EB7BA
-_080EB7B4:
- adds r0, r4, 0
- bl sub_80EB72C
-_080EB7BA:
- lsls r0, 16
- lsrs r0, 16
-_080EB7BE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB784
-
- thumb_func_start sub_80EB7C4
-sub_80EB7C4: @ 80EB7C4
- push {r4,r5,lr}
- ldr r0, _080EB7D8 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080EB7F0
- cmp r0, 0x1
- bgt _080EB7DC
- cmp r0, 0
- beq _080EB7E6
- b _080EB82E
- .align 2, 0
-_080EB7D8: .4byte gSpecialVar_0x8004
-_080EB7DC:
- cmp r0, 0x2
- beq _080EB810
- cmp r0, 0x3
- beq _080EB818
- b _080EB82E
-_080EB7E6:
- ldr r5, _080EB7EC @ =gSaveBlock1 + 0x2B1C
- movs r2, 0x2
- b _080EB81C
- .align 2, 0
-_080EB7EC: .4byte gSaveBlock1 + 0x2B1C
-_080EB7F0:
- ldr r5, _080EB80C @ =gSaveBlock1 + 0x2B28
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0x14
- bl sub_80EB680
- lsls r0, 24
- cmp r0, 0
- beq _080EB81A
- movs r2, 0x2
- movs r3, 0x3
- b _080EB81E
- .align 2, 0
-_080EB80C: .4byte gSaveBlock1 + 0x2B28
-_080EB810:
- ldr r5, _080EB814 @ =gSaveBlock1 + 0x2B34
- b _080EB81A
- .align 2, 0
-_080EB814: .4byte gSaveBlock1 + 0x2B34
-_080EB818:
- ldr r5, _080EB834 @ =gSaveBlock1 + 0x2B40
-_080EB81A:
- movs r2, 0x3
-_080EB81C:
- movs r3, 0x2
-_080EB81E:
- ldr r4, _080EB838 @ =gStringVar4
- adds r0, r4, 0
- adds r1, r5, 0
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldAutoScrollMessage
-_080EB82E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB834: .4byte gSaveBlock1 + 0x2B40
-_080EB838: .4byte gStringVar4
- thumb_func_end sub_80EB7C4
-
- thumb_func_start sub_80EB83C
-sub_80EB83C: @ 80EB83C
- push {lr}
- bl Random
- movs r1, 0x1
- ands r1, r0
- movs r0, 0xC
- cmp r1, 0
- beq _080EB84E
- movs r0, 0xD
-_080EB84E:
- bl sub_80EB784
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _080EB864 @ =gStringVar2
- bl sub_80EB3FC
- pop {r0}
- bx r0
- .align 2, 0
-_080EB864: .4byte gStringVar2
- thumb_func_end sub_80EB83C
-
- thumb_func_start sub_80EB868
-sub_80EB868: @ 80EB868
- lsls r0, 24
- lsrs r2, r0, 27
- movs r1, 0xE0
- lsls r1, 19
- ands r1, r0
- lsrs r1, 24
- ldr r0, _080EB888 @ =gSaveBlock1
- ldr r3, _080EB88C @ =0x00002d8c
- adds r0, r3
- adds r2, r0
- ldrb r0, [r2]
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_080EB888: .4byte gSaveBlock1
-_080EB88C: .4byte 0x00002d8c
- thumb_func_end sub_80EB868
-
- thumb_func_start sub_80EB890
-sub_80EB890: @ 80EB890
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x20
- bhi _080EB8B2
- lsrs r2, r0, 27
- movs r1, 0x7
- ands r1, r3
- ldr r0, _080EB8B8 @ =gSaveBlock1
- ldr r3, _080EB8BC @ =0x00002d8c
- adds r0, r3
- adds r2, r0
- movs r0, 0x1
- lsls r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
-_080EB8B2:
- pop {r0}
- bx r0
- .align 2, 0
-_080EB8B8: .4byte gSaveBlock1
-_080EB8BC: .4byte 0x00002d8c
- thumb_func_end sub_80EB890
-
- thumb_func_start sub_80EB8C0
-sub_80EB8C0: @ 80EB8C0
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_080EB8C6:
- adds r0, r4, 0
- bl sub_80EB868
- lsls r0, 24
- cmp r0, 0
- beq _080EB8D8
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080EB8D8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x20
- bls _080EB8C6
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB8C0
-
- thumb_func_start sub_80EB8EC
-sub_80EB8EC: @ 80EB8EC
- push {r4-r6,lr}
- bl sub_80EB8C0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x21
- bne _080EB918
- b _080EB952
-_080EB8FC:
- adds r0, r5, 0
- bl sub_80EB890
- ldr r0, _080EB914 @ =0x000001ff
- ands r4, r0
- movs r1, 0xA0
- lsls r1, 6
- adds r0, r1, 0
- orrs r4, r0
- adds r0, r4, 0
- b _080EB954
- .align 2, 0
-_080EB914: .4byte 0x000001ff
-_080EB918:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x21
- subs r1, r4
- bl __modsi3
- lsls r0, 16
- lsrs r6, r0, 16
- movs r4, 0
-_080EB92E:
- lsls r0, r4, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80EB868
- lsls r0, 24
- cmp r0, 0
- bne _080EB948
- cmp r6, 0
- beq _080EB8FC
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080EB948:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x20
- bls _080EB92E
-_080EB952:
- ldr r0, _080EB95C @ =0x0000ffff
-_080EB954:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB95C: .4byte 0x0000ffff
- thumb_func_end sub_80EB8EC
-
- thumb_func_start sub_80EB960
-sub_80EB960: @ 80EB960
- push {r4,r5,lr}
- bl sub_80EB8C0
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080EB984
- b _080EB9BA
-_080EB970:
- ldr r0, _080EB980 @ =0x000001ff
- ands r4, r0
- movs r1, 0xA0
- lsls r1, 6
- adds r0, r1, 0
- orrs r4, r0
- adds r0, r4, 0
- b _080EB9BC
- .align 2, 0
-_080EB980: .4byte 0x000001ff
-_080EB984:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0
-_080EB998:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80EB868
- lsls r0, 24
- cmp r0, 0
- beq _080EB9B0
- cmp r5, 0
- beq _080EB970
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080EB9B0:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x20
- bls _080EB998
-_080EB9BA:
- ldr r0, _080EB9C4 @ =0x0000ffff
-_080EB9BC:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB9C4: .4byte 0x0000ffff
- thumb_func_end sub_80EB960
-
- thumb_func_start sub_80EB9C8
-sub_80EB9C8: @ 80EB9C8
- push {lr}
- bl IsNationalPokedex
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80EB9C8
-
- thumb_func_start sub_80EB9D8
-sub_80EB9D8: @ 80EB9D8
- push {r4-r7,lr}
- movs r0, 0
- bl sub_80EAE88
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _080EB9F8
- b _080EBA46
-_080EB9EA:
- ldrh r1, [r5]
- ldr r0, _080EB9F4 @ =0x000001ff
- ands r0, r1
- b _080EBA48
- .align 2, 0
-_080EB9F4: .4byte 0x000001ff
-_080EB9F8:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080EBA50 @ =gEasyChatGroupWords
- ldr r5, [r0]
- movs r6, 0
- ldr r0, _080EBA54 @ =gEasyChatGroupSizes
- ldrb r0, [r0]
- cmp r6, r0
- bcs _080EBA46
- adds r7, r0, 0
-_080EBA1A:
- ldrh r0, [r5]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _080EBA3A
- cmp r4, 0
- beq _080EB9EA
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080EBA3A:
- adds r5, 0x2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r7
- bcc _080EBA1A
-_080EBA46:
- ldr r0, _080EBA58 @ =0x0000ffff
-_080EBA48:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080EBA50: .4byte gEasyChatGroupWords
-_080EBA54: .4byte gEasyChatGroupSizes
-_080EBA58: .4byte 0x0000ffff
- thumb_func_end sub_80EB9D8
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
index b8dae1bba..7365f4da6 100644
--- a/asm/egg_hatch.s
+++ b/asm/egg_hatch.s
@@ -6,162 +6,6 @@
.text
- thumb_func_start CreatedHatchedMon
-CreatedHatchedMon: @ 80428A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x48
- adds r6, r0, 0
- adds r5, r1, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- movs r4, 0
- add r7, sp, 0x18
- mov r0, sp
- adds r0, 0x31
- str r0, [sp, 0x38]
- mov r1, sp
- adds r1, 0x32
- str r1, [sp, 0x3C]
- add r0, sp, 0x30
- mov r9, r0
- adds r1, 0x1
- str r1, [sp, 0x40]
- mov r0, sp
- adds r0, 0x34
- str r0, [sp, 0x44]
-_080428DE:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- bl GetMonData
- lsls r1, r4, 1
- add r1, sp
- adds r1, 0x10
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080428DE
- adds r0, r6, 0
- movs r1, 0
- bl GetMonData
- mov r8, r0
- movs r4, 0
-_08042906:
- adds r1, r4, 0
- adds r1, 0x27
- adds r0, r6, 0
- bl GetMonData
- lsls r1, r4, 2
- adds r1, r7, r1
- str r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08042906
- adds r0, r6, 0
- movs r1, 0x25
- bl GetMonData
- ldr r1, [sp, 0x38]
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x8
- bl GetMonData
- ldr r1, [sp, 0x3C]
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x22
- bl GetMonData
- str r0, [sp, 0x34]
- movs r0, 0x1
- str r0, [sp]
- mov r0, r8
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r5, 0
- mov r1, r10
- movs r2, 0x5
- movs r3, 0x20
- bl CreateMon
- movs r4, 0
-_0804295E:
- adds r1, r4, 0
- adds r1, 0xD
- lsls r0, r4, 1
- mov r2, sp
- adds r2, r0
- adds r2, 0x10
- adds r0, r5, 0
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0804295E
- movs r4, 0
-_0804297C:
- adds r1, r4, 0
- adds r1, 0x27
- lsls r2, r4, 2
- adds r2, r7, r2
- adds r0, r5, 0
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0804297C
- movs r0, 0x2
- mov r1, r9
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x3
- mov r2, r9
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x25
- ldr r2, [sp, 0x38]
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x8
- ldr r2, [sp, 0x3C]
- bl SetMonData
- movs r0, 0x78
- ldr r1, [sp, 0x40]
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x20
- ldr r2, [sp, 0x40]
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x22
- ldr r2, [sp, 0x44]
- bl SetMonData
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- add sp, 0x48
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end CreatedHatchedMon
-
thumb_func_start AddHatchedMonToParty
AddHatchedMonToParty: @ 80429EC
push {r4-r6,lr}
@@ -202,13 +46,13 @@ AddHatchedMonToParty: @ 80429EC
lsrs r4, 16
adds r0, r4, 0
movs r1, 0x2
- bl sub_8090D90
+ bl GetNationalPokedexFlag
adds r0, r4, 0
movs r1, 0x3
- bl sub_8090D90
+ bl GetNationalPokedexFlag
ldr r1, _08042AA4 @ =gStringVar1
adds r0, r5, 0
- bl pokemon_get_nick
+ bl GetMonNick
mov r2, sp
adds r2, 0xE
movs r0, 0x4
@@ -229,7 +73,7 @@ AddHatchedMonToParty: @ 80429EC
movs r1, 0x23
bl SetMonData
adds r0, r5, 0
- bl sub_8040B1C
+ bl MonRestorePP
adds r0, r5, 0
bl CalculateMonStats
add sp, 0x14
@@ -266,7 +110,7 @@ sub_8042ABC: @ 8042ABC
lsls r0, 4
adds r0, r5, r0
mov r1, sp
- bl pokemon_get_nick_
+ bl GetBoxMonNick
lsls r0, r4, 3
subs r0, r4
lsls r1, r0, 3
@@ -304,7 +148,7 @@ _08042B08:
adds r1, r6, 0
bl StringCopy
adds r0, r4, 0
- bl sub_814A568
+ bl SanitizeNameString
movs r0, 0x1
b _08042B42
.align 2, 0
@@ -409,7 +253,7 @@ _08042BB4:
str r5, [sp, 0x4]
mov r4, r8
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r7, 0
bl sub_8040990
bl LoadCompressedObjectPalette
@@ -507,7 +351,7 @@ Task_EggHatch: @ 8042CAC
bne _08042CD0
ldr r0, _08042CDC @ =CB2_EggHatch_0
bl SetMainCallback2
- ldr r1, _08042CE0 @ =gUnknown_0300485C
+ ldr r1, _08042CE0 @ =gFieldCallback
ldr r0, _08042CE4 @ =sub_8080990
str r0, [r1]
adds r0, r4, 0
@@ -519,7 +363,7 @@ _08042CD0:
.align 2, 0
_08042CD8: .4byte gPaletteFade
_08042CDC: .4byte CB2_EggHatch_0
-_08042CE0: .4byte gUnknown_0300485C
+_08042CE0: .4byte gFieldCallback
_08042CE4: .4byte sub_8080990
thumb_func_end Task_EggHatch
@@ -1013,7 +857,7 @@ _08043124:
ldr r1, _08043150 @ =gPlayerParty
adds r0, r1
ldr r1, _08043154 @ =gStringVar1
- bl pokemon_get_nick
+ bl GetMonNick
ldr r4, _08043158 @ =gStringVar4
ldr r1, _0804315C @ =gOtherText_HatchedFromEgg
adds r0, r4, 0
@@ -1054,7 +898,7 @@ _08043180:
ldr r1, _080431A8 @ =gPlayerParty
adds r0, r1
ldr r1, _080431AC @ =gStringVar1
- bl pokemon_get_nick
+ bl GetMonNick
ldr r4, _080431B0 @ =gStringVar4
ldr r1, _080431B4 @ =gOtherText_NickHatchPrompt
adds r0, r4, 0
@@ -1113,7 +957,7 @@ _080431DA:
adds r0, r6
ldr r1, _08043280 @ =gStringVar3
mov r10, r1
- bl pokemon_get_nick
+ bl GetMonNick
mov r2, r9
ldr r0, [r2]
ldrb r0, [r0, 0x4]
diff --git a/asm/rom_8148B8C.s b/asm/evolution_graphics.s
index 5ed359627..1130e085e 100644
--- a/asm/rom_8148B8C.s
+++ b/asm/evolution_graphics.s
@@ -6,1163 +6,6 @@
.text
- thumb_func_start load_intro_part2_graphics
-load_intro_part2_graphics: @ 8148B8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08148BE8 @ =gUnknown_0841225C
- ldr r1, _08148BEC @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _08148BF0 @ =gUnknown_084126DC
- ldr r1, _08148BF4 @ =0x06007800
- bl LZ77UnCompVram
- ldr r0, _08148BF8 @ =gUnknown_084121FC
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- cmp r4, 0
- beq _08148BB4
- cmp r4, 0x1
- beq _08148C14
-_08148BB4:
- ldr r0, _08148BFC @ =gUnknown_084128D8
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148C00 @ =gUnknown_08412EB4
- ldr r1, _08148C04 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148C08 @ =gUnknown_08412818
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148C0C @ =gUnknown_08416B54
- bl LoadCompressedObjectPic
- ldr r0, _08148C10 @ =gUnknown_08413184
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149248
- b _08148C46
- .align 2, 0
-_08148BE8: .4byte gUnknown_0841225C
-_08148BEC: .4byte 0x06004000
-_08148BF0: .4byte gUnknown_084126DC
-_08148BF4: .4byte 0x06007800
-_08148BF8: .4byte gUnknown_084121FC
-_08148BFC: .4byte gUnknown_084128D8
-_08148C00: .4byte gUnknown_08412EB4
-_08148C04: .4byte 0x06003000
-_08148C08: .4byte gUnknown_08412818
-_08148C0C: .4byte gUnknown_08416B54
-_08148C10: .4byte gUnknown_08413184
-_08148C14:
- ldr r0, _08148C58 @ =gUnknown_08413340
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148C5C @ =gUnknown_084139C8
- ldr r1, _08148C60 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148C64 @ =gUnknown_08413300
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148C68 @ =gUnknown_08416BDC
- bl LoadCompressedObjectPic
- ldr r0, _08148C6C @ =gUnknown_08413CCC
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149264
-_08148C46:
- ldr r1, _08148C70 @ =gUnknown_0203935C
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08148C74 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148C58: .4byte gUnknown_08413340
-_08148C5C: .4byte gUnknown_084139C8
-_08148C60: .4byte 0x06003000
-_08148C64: .4byte gUnknown_08413300
-_08148C68: .4byte gUnknown_08416BDC
-_08148C6C: .4byte gUnknown_08413CCC
-_08148C70: .4byte gUnknown_0203935C
-_08148C74: .4byte gReservedSpritePaletteCount
- thumb_func_end load_intro_part2_graphics
-
- thumb_func_start sub_8148C78
-sub_8148C78: @ 8148C78
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08148CA4 @ =REG_BG3CNT
- ldr r2, _08148CA8 @ =0x00000603
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- adds r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08148CAC @ =0x00000f05
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xF2
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08148CA4: .4byte REG_BG3CNT
-_08148CA8: .4byte 0x00000603
-_08148CAC: .4byte 0x00000f05
- thumb_func_end sub_8148C78
-
- thumb_func_start sub_8148CB0
-sub_8148CB0: @ 8148CB0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08148CD4 @ =gUnknown_0841225C
- ldr r1, _08148CD8 @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _08148CDC @ =gUnknown_084126DC
- ldr r1, _08148CE0 @ =0x06007800
- bl LZ77UnCompVram
- cmp r4, 0x4
- bhi _08148CFC
- lsls r0, r4, 2
- ldr r1, _08148CE4 @ =_08148CE8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148CD4: .4byte gUnknown_0841225C
-_08148CD8: .4byte 0x06004000
-_08148CDC: .4byte gUnknown_084126DC
-_08148CE0: .4byte 0x06007800
-_08148CE4: .4byte _08148CE8
- .align 2, 0
-_08148CE8:
- .4byte _08148CFC
- .4byte _08148D58
- .4byte _08148DC4
- .4byte _08148DC4
- .4byte _08148E1C
-_08148CFC:
- ldr r0, _08148D34 @ =gUnknown_084121FC
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148D38 @ =gUnknown_084128D8
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148D3C @ =gUnknown_08412EB4
- ldr r1, _08148D40 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148D44 @ =gUnknown_08412818
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148D48 @ =gUnknown_08416B54
- bl LoadCompressedObjectPic
- ldr r0, _08148D4C @ =gUnknown_084131C4
- ldr r1, _08148D50 @ =0x06010000
- bl LZ77UnCompVram
- ldr r0, _08148D54 @ =gUnknown_08413184
- b _08148D8E
- .align 2, 0
-_08148D34: .4byte gUnknown_084121FC
-_08148D38: .4byte gUnknown_084128D8
-_08148D3C: .4byte gUnknown_08412EB4
-_08148D40: .4byte 0x06003000
-_08148D44: .4byte gUnknown_08412818
-_08148D48: .4byte gUnknown_08416B54
-_08148D4C: .4byte gUnknown_084131C4
-_08148D50: .4byte 0x06010000
-_08148D54: .4byte gUnknown_08413184
-_08148D58:
- ldr r0, _08148DA0 @ =gUnknown_0841221C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148DA4 @ =gUnknown_084128D8
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148DA8 @ =gUnknown_08412EB4
- ldr r1, _08148DAC @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148DB0 @ =gUnknown_08412878
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148DB4 @ =gUnknown_08416B54
- bl LoadCompressedObjectPic
- ldr r0, _08148DB8 @ =gUnknown_084131C4
- ldr r1, _08148DBC @ =0x06010000
- bl LZ77UnCompVram
- ldr r0, _08148DC0 @ =gUnknown_084131A4
-_08148D8E:
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149248
- b _08148E58
- .align 2, 0
-_08148DA0: .4byte gUnknown_0841221C
-_08148DA4: .4byte gUnknown_084128D8
-_08148DA8: .4byte gUnknown_08412EB4
-_08148DAC: .4byte 0x06003000
-_08148DB0: .4byte gUnknown_08412878
-_08148DB4: .4byte gUnknown_08416B54
-_08148DB8: .4byte gUnknown_084131C4
-_08148DBC: .4byte 0x06010000
-_08148DC0: .4byte gUnknown_084131A4
-_08148DC4:
- ldr r0, _08148E04 @ =gUnknown_0841221C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E08 @ =gUnknown_08413340
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148E0C @ =gUnknown_084139C8
- ldr r1, _08148E10 @ =0x06003000
- bl LZ77UnCompVram
- ldr r4, _08148E14 @ =gUnknown_08413320
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E18 @ =gUnknown_08416BDC
- bl LoadCompressedObjectPic
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149264
- b _08148E58
- .align 2, 0
-_08148E04: .4byte gUnknown_0841221C
-_08148E08: .4byte gUnknown_08413340
-_08148E0C: .4byte gUnknown_084139C8
-_08148E10: .4byte 0x06003000
-_08148E14: .4byte gUnknown_08413320
-_08148E18: .4byte gUnknown_08416BDC
-_08148E1C:
- ldr r0, _08148E6C @ =gUnknown_0841223C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E70 @ =gUnknown_08413E78
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148E74 @ =gUnknown_08414084
- ldr r1, _08148E78 @ =0x06003000
- bl LZ77UnCompVram
- ldr r0, _08148E7C @ =gUnknown_08413E38
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08148E80 @ =gUnknown_08416C70
- bl LoadCompressedObjectPic
- ldr r0, _08148E84 @ =gUnknown_08414064
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149280
-_08148E58:
- ldr r1, _08148E88 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r1, _08148E8C @ =gUnknown_0203935C
- movs r0, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148E6C: .4byte gUnknown_0841223C
-_08148E70: .4byte gUnknown_08413E78
-_08148E74: .4byte gUnknown_08414084
-_08148E78: .4byte 0x06003000
-_08148E7C: .4byte gUnknown_08413E38
-_08148E80: .4byte gUnknown_08416C70
-_08148E84: .4byte gUnknown_08414064
-_08148E88: .4byte gReservedSpritePaletteCount
-_08148E8C: .4byte gUnknown_0203935C
- thumb_func_end sub_8148CB0
-
- thumb_func_start sub_8148E90
-sub_8148E90: @ 8148E90
- ldr r1, _08148EB4 @ =REG_BG3CNT
- ldr r2, _08148EB8 @ =0x00000603
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- adds r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08148EBC @ =0x00000f05
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08148EB4: .4byte REG_BG3CNT
-_08148EB8: .4byte 0x00000603
-_08148EBC: .4byte 0x00000f05
- thumb_func_end sub_8148E90
-
- thumb_func_start sub_8148EC0
-sub_8148EC0: @ 8148EC0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- ldr r1, _08148F34 @ =sub_8148F3C
- mov r9, r1
- mov r0, r9
- movs r1, 0
- str r3, [sp]
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08148F38 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xA]
- strh r2, [r0, 0xC]
- strh r2, [r0, 0xE]
- mov r1, r8
- strh r1, [r0, 0x10]
- strh r2, [r0, 0x12]
- strh r2, [r0, 0x14]
- ldr r3, [sp]
- strh r3, [r0, 0x16]
- movs r1, 0x8
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- adds r0, r4, 0
- bl _call_via_r9
- adds r0, r4, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08148F34: .4byte sub_8148F3C
-_08148F38: .4byte gTasks
- thumb_func_end sub_8148EC0
-
- thumb_func_start sub_8148F3C
-sub_8148F3C: @ 8148F3C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08148FB4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xA]
- lsls r4, r0, 16
- adds r6, r1, 0
- cmp r4, 0
- beq _08148F7C
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0xE]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0xC]
- strh r2, [r3, 0xE]
- ldr r0, _08148FB8 @ =REG_BG1HOFS
- strh r1, [r0]
- ldr r2, _08148FBC @ =REG_BG1VOFS
- ldr r1, _08148FC0 @ =gUnknown_02039358
- ldr r0, _08148FC4 @ =gUnknown_0203935A
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
-_08148F7C:
- ldrh r0, [r3, 0x10]
- lsls r4, r0, 16
- cmp r4, 0
- beq _08148FD8
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0x14]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0x12]
- strh r2, [r3, 0x14]
- ldr r0, _08148FC8 @ =REG_BG2HOFS
- strh r1, [r0]
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08148FD0
- ldr r2, _08148FCC @ =REG_BG2VOFS
- ldr r1, _08148FC0 @ =gUnknown_02039358
- ldr r0, _08148FC4 @ =gUnknown_0203935A
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
- b _08148FD8
- .align 2, 0
-_08148FB4: .4byte gTasks
-_08148FB8: .4byte REG_BG1HOFS
-_08148FBC: .4byte REG_BG1VOFS
-_08148FC0: .4byte gUnknown_02039358
-_08148FC4: .4byte gUnknown_0203935A
-_08148FC8: .4byte REG_BG2HOFS
-_08148FCC: .4byte REG_BG2VOFS
-_08148FD0:
- ldr r0, _08149010 @ =REG_BG2VOFS
- ldr r1, _08149014 @ =gUnknown_02039358
- ldrh r1, [r1]
- strh r1, [r0]
-_08148FD8:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r6
- ldrh r0, [r3, 0x16]
- lsls r4, r0, 16
- cmp r4, 0
- beq _08149008
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0x1A]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0x18]
- strh r2, [r3, 0x1A]
- ldr r0, _08149018 @ =REG_BG3HOFS
- strh r1, [r0]
- ldr r1, _0814901C @ =REG_BG3VOFS
- ldr r0, _08149014 @ =gUnknown_02039358
- ldrh r0, [r0]
- strh r0, [r1]
-_08149008:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149010: .4byte REG_BG2VOFS
-_08149014: .4byte gUnknown_02039358
-_08149018: .4byte REG_BG3HOFS
-_0814901C: .4byte REG_BG3VOFS
- thumb_func_end sub_8148F3C
-
- thumb_func_start sub_8149020
-sub_8149020: @ 8149020
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08149100
- cmp r0, 0x1
- ble _08149034
- cmp r0, 0x2
- beq _08149098
-_08149034:
- ldr r0, _08149060 @ =gMain
- ldr r2, [r0, 0x20]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _08149100
- ldr r0, _08149064 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149100
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _0814906C
- ldr r2, _08149068 @ =gPlttBufferUnfaded
- ldrh r1, [r2, 0x12]
- mov r0, sp
- strh r1, [r0]
- ldrh r1, [r2, 0x14]
- b _08149076
- .align 2, 0
-_08149060: .4byte gMain
-_08149064: .4byte gPaletteFade
-_08149068: .4byte gPlttBufferUnfaded
-_0814906C:
- ldr r2, _08149094 @ =gPlttBufferUnfaded
- ldrh r1, [r2, 0x14]
- mov r0, sp
- strh r1, [r0]
- ldrh r1, [r2, 0x12]
-_08149076:
- adds r0, 0x2
- strh r1, [r0]
- adds r4, r0, 0
- mov r0, sp
- movs r1, 0x9
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- bl LoadPalette
- b _08149100
- .align 2, 0
-_08149094: .4byte gPlttBufferUnfaded
-_08149098:
- ldr r0, _081490C8 @ =gMain
- ldr r2, [r0, 0x20]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _08149100
- ldr r0, _081490CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149100
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _081490D8
- mov r1, sp
- ldr r2, _081490D0 @ =0x00003d27
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _081490D4 @ =0x00000295
- b _081490E6
- .align 2, 0
-_081490C8: .4byte gMain
-_081490CC: .4byte gPaletteFade
-_081490D0: .4byte 0x00003d27
-_081490D4: .4byte 0x00000295
-_081490D8:
- mov r1, sp
- movs r2, 0xC7
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08149108 @ =0x00003d27
-_081490E6:
- adds r0, r2, 0
- strh r0, [r1]
- adds r4, r1, 0
- mov r0, sp
- movs r1, 0xC
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0x2
- bl LoadPalette
-_08149100:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149108: .4byte 0x00003d27
- thumb_func_end sub_8149020
-
- thumb_func_start sub_814910C
-sub_814910C: @ 814910C
- push {lr}
- adds r2, r0, 0
- ldr r0, _08149124 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08149128
- adds r0, r2, 0
- bl DestroySprite
- b _0814916C
- .align 2, 0
-_08149124: .4byte gUnknown_0203935C
-_08149128:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- lsls r0, 16
- ldrh r1, [r2, 0x32]
- orrs r0, r1
- ldrh r1, [r2, 0x30]
- adds r0, r1
- asrs r1, r0, 16
- strh r1, [r2, 0x20]
- strh r0, [r2, 0x32]
- cmp r1, 0xFF
- ble _08149144
- ldr r0, _08149158 @ =0x0000ffe0
- strh r0, [r2, 0x20]
-_08149144:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08149164
- ldr r1, _0814915C @ =gUnknown_02039358
- ldr r0, _08149160 @ =gUnknown_0203935A
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- b _08149168
- .align 2, 0
-_08149158: .4byte 0x0000ffe0
-_0814915C: .4byte gUnknown_02039358
-_08149160: .4byte gUnknown_0203935A
-_08149164:
- ldr r0, _08149170 @ =gUnknown_02039358
- ldrh r0, [r0]
-_08149168:
- negs r0, r0
- strh r0, [r2, 0x26]
-_0814916C:
- pop {r0}
- bx r0
- .align 2, 0
-_08149170: .4byte gUnknown_02039358
- thumb_func_end sub_814910C
-
- thumb_func_start sub_8149174
-sub_8149174: @ 8149174
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r7, 0
- cmp r7, r8
- bcs _0814922A
- ldr r0, _0814923C @ =gSprites
- mov r10, r0
- movs r2, 0x3F
- mov r9, r2
-_0814919E:
- lsls r6, r7, 3
- ldr r0, [sp, 0x4]
- adds r6, r0
- ldrb r1, [r6, 0x1]
- ldrb r2, [r6, 0x2]
- ldrb r3, [r6, 0x3]
- ldr r0, _08149240 @ =gSpriteTemplate_8416B3C
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- mov r2, r10
- adds r4, r5, r2
- ldrb r2, [r6]
- lsls r1, r2, 26
- lsrs r1, 30
- lsrs r2, 6
- adds r0, r4, 0
- movs r3, 0
- bl CalcCenterToCornerVec
- ldrb r3, [r4, 0x5]
- movs r0, 0xC
- orrs r3, r0
- strb r3, [r4, 0x5]
- ldrb r1, [r6]
- lsls r1, 26
- lsrs r1, 30
- lsls r1, 6
- ldrb r2, [r4, 0x1]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r6]
- lsrs r1, 6
- lsls r1, 6
- ldrb r2, [r4, 0x3]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0xF
- ands r3, r0
- strb r3, [r4, 0x5]
- ldr r0, _08149244 @ =gSprites + 0x8
- adds r5, r0
- ldr r2, [sp, 0x8]
- str r2, [r5]
- ldrb r1, [r6]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, r8
- bcc _0814919E
-_0814922A:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814923C: .4byte gSprites
-_08149240: .4byte gSpriteTemplate_8416B3C
-_08149244: .4byte gSprites + 0x8
- thumb_func_end sub_8149174
-
- thumb_func_start sub_8149248
-sub_8149248: @ 8149248
- push {lr}
- ldr r1, _0814925C @ =gUnknown_08416B94
- ldr r2, _08149260 @ =gSpriteAnimTable_8416B84
- movs r0, 0
- movs r3, 0x9
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_0814925C: .4byte gUnknown_08416B94
-_08149260: .4byte gSpriteAnimTable_8416B84
- thumb_func_end sub_8149248
-
- thumb_func_start sub_8149264
-sub_8149264: @ 8149264
- push {lr}
- ldr r1, _08149278 @ =gUnknown_08416C10
- ldr r2, _0814927C @ =gSpriteAnimTable_8416C04
- movs r0, 0x1
- movs r3, 0xC
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_08149278: .4byte gUnknown_08416C10
-_0814927C: .4byte gSpriteAnimTable_8416C04
- thumb_func_end sub_8149264
-
- thumb_func_start sub_8149280
-sub_8149280: @ 8149280
- push {lr}
- ldr r1, _08149294 @ =gUnknown_08416C8C
- ldr r2, _08149298 @ =gSpriteAnimTable_8416C88
- movs r0, 0x1
- movs r3, 0x6
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_08149294: .4byte gUnknown_08416C8C
-_08149298: .4byte gSpriteAnimTable_8416C88
- thumb_func_end sub_8149280
-
- thumb_func_start nullsub_82
-nullsub_82: @ 814929C
- bx lr
- thumb_func_end nullsub_82
-
- thumb_func_start sub_81492A0
-sub_81492A0: @ 81492A0
- push {r4,lr}
- ldr r4, _0814930C @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r2, 0x3E
- adds r2, r0
- mov r12, r2
- movs r2, 0x4
- ands r2, r1
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x20]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x24]
- strh r1, [r0, 0x24]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814930C: .4byte gSprites
- thumb_func_end sub_81492A0
-
- thumb_func_start intro_create_brendan_sprite
-intro_create_brendan_sprite: @ 8149310
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _0814935C @ =gSpriteTemplate_8416CDC
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08149360 @ =gSpriteTemplate_8416D2C
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149364 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r6, [r1, 0x2E]
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814935C: .4byte gSpriteTemplate_8416CDC
-_08149360: .4byte gSpriteTemplate_8416D2C
-_08149364: .4byte gSprites
- thumb_func_end intro_create_brendan_sprite
-
- thumb_func_start intro_create_may_sprite
-intro_create_may_sprite: @ 8149368
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _081493B4 @ =gSpriteTemplate_8416CF4
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _081493B8 @ =gSpriteTemplate_8416D44
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081493BC @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r6, [r1, 0x2E]
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081493B4: .4byte gSpriteTemplate_8416CF4
-_081493B8: .4byte gSpriteTemplate_8416D44
-_081493BC: .4byte gSprites
- thumb_func_end intro_create_may_sprite
-
- thumb_func_start nullsub_83
-nullsub_83: @ 81493C0
- bx lr
- thumb_func_end nullsub_83
-
- thumb_func_start sub_81493C4
-sub_81493C4: @ 81493C4
- push {r4,lr}
- ldr r4, _08149420 @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r2, 0x3E
- adds r2, r0
- mov r12, r2
- movs r2, 0x4
- ands r2, r1
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x24]
- strh r1, [r0, 0x24]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149420: .4byte gSprites
- thumb_func_end sub_81493C4
-
- thumb_func_start intro_create_latios_sprite
-intro_create_latios_sprite: @ 8149424
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, _08149490 @ =gSpriteTemplate_8416D7C
- mov r8, r0
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _08149494 @ =0xffe00000
- adds r2, r0
- asrs r2, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, r8
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08149498 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- strh r6, [r0, 0x2E]
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0814949C @ =sub_81493C4
- str r0, [r4]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08149490: .4byte gSpriteTemplate_8416D7C
-_08149494: .4byte 0xffe00000
-_08149498: .4byte gSprites
-_0814949C: .4byte sub_81493C4
- thumb_func_end intro_create_latios_sprite
-
- thumb_func_start intro_create_latias_sprite
-intro_create_latias_sprite: @ 81494A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, _0814950C @ =gSpriteTemplate_8416D94
- mov r8, r0
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _08149510 @ =0xffe00000
- adds r2, r0
- asrs r2, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, r8
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08149514 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- strh r6, [r0, 0x2E]
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _08149518 @ =sub_81493C4
- str r0, [r4]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814950C: .4byte gSpriteTemplate_8416D94
-_08149510: .4byte 0xffe00000
-_08149514: .4byte gSprites
-_08149518: .4byte sub_81493C4
- thumb_func_end intro_create_latias_sprite
-
thumb_func_start nullsub_84
nullsub_84: @ 814951C
bx lr
@@ -2983,385 +1826,4 @@ _0814A2B0: .4byte gSprites
_0814A2B4: .4byte gTasks
thumb_func_end sub_814A208
- thumb_func_start sub_814A2B8
-sub_814A2B8: @ 814A2B8
- ldr r2, _0814A2CC @ =gUnknown_08417068
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- lsls r1, 1
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- bx lr
- .align 2, 0
-_0814A2CC: .4byte gUnknown_08417068
- thumb_func_end sub_814A2B8
-
- thumb_func_start sub_814A2D0
-sub_814A2D0: @ 814A2D0
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _0814A2E8 @ =gBardMusicTable
- lsrs r0, 14
- adds r0, r2
- ldr r0, [r0]
- lsls r2, r1, 1
- adds r2, r1
- lsls r2, 4
- adds r0, r2
- bx lr
- .align 2, 0
-_0814A2E8: .4byte gBardMusicTable
- thumb_func_end sub_814A2D0
-
- thumb_func_start sub_814A2EC
-sub_814A2EC: @ 814A2EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- ldr r4, _0814A370 @ =gUnknown_084170F4
- adds r2, r1, 0
- adds r3, r6, 0
- adds r3, 0x18
- movs r7, 0x5
-_0814A306:
- ldrb r0, [r2]
- strh r0, [r3]
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _0814A328
- movs r1, 0x1
- ldrsb r1, [r2, r1]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- adds r1, r0
- strh r1, [r3, 0x2]
- ldrh r0, [r2, 0x4]
- strh r0, [r3, 0x6]
- ldrh r0, [r6, 0x4]
- adds r0, r1
- strh r0, [r6, 0x4]
-_0814A328:
- adds r2, 0x8
- adds r3, 0x8
- subs r7, 0x1
- cmp r7, 0
- bge _0814A306
- movs r7, 0x6
- movs r5, 0
- movs r0, 0x1E
- mov r8, r0
- adds r4, r6, 0
-_0814A33C:
- mov r0, r8
- add r0, r9
- adds r1, r5, 0
- bl sub_814A2B8
- adds r1, r0, 0
- strh r1, [r4, 0x1C]
- adds r4, 0x8
- adds r5, 0x1
- cmp r5, r7
- blt _0814A33C
- ldrb r1, [r6]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r6]
- strb r2, [r6, 0x1]
- strb r2, [r6, 0x2]
- strb r2, [r6, 0x3]
- strh r2, [r6, 0xA]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A370: .4byte gUnknown_084170F4
- thumb_func_end sub_814A2EC
-
- thumb_func_start SetUpFieldMove_Teleport
-SetUpFieldMove_Teleport: @ 814A374
- push {lr}
- ldr r0, _0814A38C @ =gMapHeader
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0814A390
- movs r0, 0
- b _0814A39E
- .align 2, 0
-_0814A38C: .4byte gMapHeader
-_0814A390:
- ldr r1, _0814A3A4 @ =gUnknown_0300485C
- ldr r0, _0814A3A8 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0814A3AC @ =gUnknown_03005CE4
- ldr r0, _0814A3B0 @ =hm_teleport_run_dp02scr
- str r0, [r1]
- movs r0, 0x1
-_0814A39E:
- pop {r1}
- bx r1
- .align 2, 0
-_0814A3A4: .4byte gUnknown_0300485C
-_0814A3A8: .4byte sub_808AB90
-_0814A3AC: .4byte gUnknown_03005CE4
-_0814A3B0: .4byte hm_teleport_run_dp02scr
- thumb_func_end SetUpFieldMove_Teleport
-
- thumb_func_start hm_teleport_run_dp02scr
-hm_teleport_run_dp02scr: @ 814A3B4
- push {lr}
- bl new_game
- movs r0, 0x3F
- bl FieldEffectStart
- ldr r0, _0814A3CC @ =gUnknown_0202FF84
- ldr r1, _0814A3D0 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0814A3CC: .4byte gUnknown_0202FF84
-_0814A3D0: .4byte gUnknown_03005CE0
- thumb_func_end hm_teleport_run_dp02scr
-
- thumb_func_start FldEff_UseTeleport
-FldEff_UseTeleport: @ 814A3D4
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814A3FC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0814A400 @ =sub_814A404
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0814A3FC: .4byte gTasks
-_0814A400: .4byte sub_814A404
- thumb_func_end FldEff_UseTeleport
-
- thumb_func_start sub_814A404
-sub_814A404: @ 814A404
- push {lr}
- movs r0, 0x3F
- bl FieldEffectActiveListRemove
- bl sub_8087BA8
- pop {r0}
- bx r0
- thumb_func_end sub_814A404
-
- thumb_func_start unref_sub_814A414
-unref_sub_814A414: @ 814A414
- push {lr}
- sub sp, 0x8
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x12
- bl MenuDrawTextWindow
- ldr r3, _0814A458 @ =gUnknown_0842C29C
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x8
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x8
- bl InitMenu
- ldr r1, _0814A45C @ =gCallback_03004AE8
- ldr r0, _0814A460 @ =sub_814A464
- str r0, [r1]
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_0814A458: .4byte gUnknown_0842C29C
-_0814A45C: .4byte gCallback_03004AE8
-_0814A460: .4byte sub_814A464
- thumb_func_end unref_sub_814A414
-
- thumb_func_start sub_814A464
-sub_814A464: @ 814A464
- push {lr}
- bl ProcessMenuInput
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r0, r2, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- bne _0814A480
- movs r0, 0
- b _0814A4B2
-_0814A480:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0814A4AC
- ldr r0, _0814A4A0 @ =gUnknown_02024D1E
- strb r2, [r0]
- ldr r2, _0814A4A4 @ =gCallback_03004AE8
- ldr r0, _0814A4A8 @ =gUnknown_0842C29C
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- movs r0, 0
- b _0814A4B2
- .align 2, 0
-_0814A4A0: .4byte gUnknown_02024D1E
-_0814A4A4: .4byte gCallback_03004AE8
-_0814A4A8: .4byte gUnknown_0842C29C
-_0814A4AC:
- bl sub_8071C20
- movs r0, 0x1
-_0814A4B2:
- pop {r1}
- bx r1
- thumb_func_end sub_814A464
-
- thumb_func_start sub_814A4B8
-sub_814A4B8: @ 814A4B8
- push {r4,lr}
- ldr r2, _0814A4FC @ =gSaveBlock2
- ldr r1, _0814A500 @ =0x00000556
- adds r0, r2, r1
- movs r1, 0x3
- strb r1, [r0]
- ldr r3, _0814A504 @ =0x00000557
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _0814A508 @ =gUnknown_02024D1E
- ldrb r0, [r3]
- adds r0, 0x1
- ldr r4, _0814A50C @ =0x0000055c
- adds r1, r2, r4
- strh r0, [r1]
- ldrb r0, [r3]
- adds r0, 0x1
- ldr r3, _0814A510 @ =0x0000055e
- adds r1, r2, r3
- strh r0, [r1]
- subs r4, 0x4
- adds r0, r2, r4
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _0814A514 @ =0x0000055a
- adds r2, r0
- strh r1, [r2]
- bl sub_8071C20
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A4FC: .4byte gSaveBlock2
-_0814A500: .4byte 0x00000556
-_0814A504: .4byte 0x00000557
-_0814A508: .4byte gUnknown_02024D1E
-_0814A50C: .4byte 0x0000055c
-_0814A510: .4byte 0x0000055e
-_0814A514: .4byte 0x0000055a
- thumb_func_end sub_814A4B8
-
- thumb_func_start sub_814A518
-sub_814A518: @ 814A518
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl StripExtCtrlCodes
- adds r0, r4, 0
- bl StringLength
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r5, 0xFC
- bne _0814A556
- cmp r1, 0x5
- bhi _0814A55A
- movs r3, 0xFC
- movs r2, 0x7
-_0814A53A:
- adds r0, r4, r1
- strb r3, [r0]
- strb r2, [r0, 0x1]
- adds r0, r1, 0x2
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bls _0814A53A
- b _0814A55A
-_0814A54C:
- adds r0, r4, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_0814A556:
- cmp r1, 0x5
- bls _0814A54C
-_0814A55A:
- adds r1, r4, r1
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_814A518
-
- thumb_func_start sub_814A568
-sub_814A568: @ 814A568
- push {r4,lr}
- adds r4, r0, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _0814A582
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
- b _0814A588
-_0814A582:
- adds r0, r4, 0
- bl StripExtCtrlCodes
-_0814A588:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814A568
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 9d009f567..c6d3c0978 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -201,7 +201,7 @@ EvolutionScene: @ 8111984
ldr r0, _08111C3C @ =gUnknown_03004210
adds r1, r4, 0
bl InitWindowFromConfig
- ldr r1, _08111C40 @ =gUnknown_0300428C
+ ldr r1, _08111C40 @ =gBattleTerrain
movs r0, 0x9
strb r0, [r1]
bl sub_800D6D4
@@ -435,7 +435,7 @@ _08111C30: .4byte gUnknown_03004280
_08111C34: .4byte gUnknown_030041B0
_08111C38: .4byte gUnknown_030041B8
_08111C3C: .4byte gUnknown_03004210
-_08111C40: .4byte gUnknown_0300428C
+_08111C40: .4byte gBattleTerrain
_08111C44: .4byte gReservedSpritePaletteCount
_08111C48: .4byte gStringVar1
_08111C4C: .4byte gStringVar2
@@ -540,7 +540,7 @@ CB2_EvolutionSceneLoadGraphics: @ 8111C90
ldr r0, _08111E4C @ =gUnknown_03004210
adds r1, r4, 0
bl InitWindowFromConfig
- ldr r1, _08111E50 @ =gUnknown_0300428C
+ ldr r1, _08111E50 @ =gBattleTerrain
movs r0, 0x9
strb r0, [r1]
bl sub_800D6D4
@@ -647,7 +647,7 @@ _08111E40: .4byte gUnknown_03004280
_08111E44: .4byte gUnknown_030041B0
_08111E48: .4byte gUnknown_030041B8
_08111E4C: .4byte gUnknown_03004210
-_08111E50: .4byte gUnknown_0300428C
+_08111E50: .4byte gBattleTerrain
_08111E54: .4byte gReservedSpritePaletteCount
_08111E58: .4byte gMonFrontPicTable
_08111E5C: .4byte gMonFrontPicCoords
@@ -1233,13 +1233,13 @@ _08112354:
lsls r0, 16
lsrs r0, 16
movs r1, 0x2
- bl sub_8090D90
+ bl GetNationalPokedexFlag
ldrh r0, [r4, 0xC]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x3
- bl sub_8090D90
+ bl GetNationalPokedexFlag
adds r0, r5, 0
movs r1, 0xB
bl GetMonData
@@ -1321,7 +1321,7 @@ Task_EvolutionScene: @ 811240C
beq _0811246E
movs r0, 0x10
strh r0, [r3, 0x8]
- ldr r0, _08112498 @ =gUnknown_02024D1E
+ ldr r0, _08112498 @ =gBattleCommunication
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
@@ -1351,7 +1351,7 @@ _08112484:
.align 2, 0
_08112490: .4byte gTasks
_08112494: .4byte gMain
-_08112498: .4byte gUnknown_02024D1E
+_08112498: .4byte gBattleCommunication
_0811249C: .4byte _081124A0
.align 2, 0
_081124A0:
@@ -1503,7 +1503,7 @@ _081125FC:
_0811260C:
movs r0, 0x11
bl sub_8149970
- ldr r1, _08112628 @ =gUnknown_02024D1E
+ ldr r1, _08112628 @ =gBattleCommunication
strb r0, [r1, 0x2]
ldr r0, _0811262C @ =gTasks
mov r2, r8
@@ -1513,10 +1513,10 @@ _0811260C:
b _08112A2E
.align 2, 0
_08112624: .4byte gPaletteFade
-_08112628: .4byte gUnknown_02024D1E
+_08112628: .4byte gBattleCommunication
_0811262C: .4byte gTasks
_08112630:
- ldr r4, _08112664 @ =gUnknown_02024D1E
+ ldr r4, _08112664 @ =gBattleCommunication
ldrb r0, [r4, 0x2]
lsls r1, r0, 2
adds r1, r0
@@ -1541,10 +1541,10 @@ _08112646:
strb r0, [r4, 0x2]
bl _08112FD0
.align 2, 0
-_08112664: .4byte gUnknown_02024D1E
+_08112664: .4byte gBattleCommunication
_08112668: .4byte 0x02014800
_0811266C:
- ldr r4, _08112698 @ =gUnknown_02024D1E
+ ldr r4, _08112698 @ =gBattleCommunication
ldrb r0, [r4, 0x2]
lsls r1, r0, 2
adds r1, r0
@@ -1566,7 +1566,7 @@ _08112682:
adds r1, r6
b _08112A2E
.align 2, 0
-_08112698: .4byte gUnknown_02024D1E
+_08112698: .4byte gBattleCommunication
_0811269C: .4byte 0x02014800
_081126A0:
ldr r1, _081126D8 @ =0x02014800
@@ -1580,7 +1580,7 @@ _081126A0:
_081126B2:
movs r0, 0x3
strb r0, [r1, 0x3]
- ldr r0, _081126DC @ =gUnknown_02024D1E
+ ldr r0, _081126DC @ =gBattleCommunication
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
@@ -1598,10 +1598,10 @@ _081126CC:
b _08112A2E
.align 2, 0
_081126D8: .4byte 0x02014800
-_081126DC: .4byte gUnknown_02024D1E
+_081126DC: .4byte gBattleCommunication
_081126E0:
bl sub_8149B44
- ldr r1, _081126F4 @ =gUnknown_02024D1E
+ ldr r1, _081126F4 @ =gBattleCommunication
strb r0, [r1, 0x2]
ldr r0, _081126F8 @ =gTasks
mov r3, r8
@@ -1610,10 +1610,10 @@ _081126E0:
adds r1, r0
b _08112A2E
.align 2, 0
-_081126F4: .4byte gUnknown_02024D1E
+_081126F4: .4byte gBattleCommunication
_081126F8: .4byte gTasks
_081126FC:
- ldr r5, _08112724 @ =gUnknown_02024D1E
+ ldr r5, _08112724 @ =gBattleCommunication
ldrb r0, [r5, 0x2]
lsls r1, r0, 2
adds r1, r0
@@ -1633,9 +1633,9 @@ _08112712:
strb r0, [r5, 0x2]
b _08112992
.align 2, 0
-_08112724: .4byte gUnknown_02024D1E
+_08112724: .4byte gBattleCommunication
_08112728:
- ldr r0, _08112750 @ =gUnknown_02024D1E
+ ldr r0, _08112750 @ =gBattleCommunication
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
@@ -1654,7 +1654,7 @@ _0811273E:
adds r1, r6
b _08112A2E
.align 2, 0
-_08112750: .4byte gUnknown_02024D1E
+_08112750: .4byte gBattleCommunication
_08112754:
bl IsSEPlaying
lsls r0, 24
@@ -1733,21 +1733,21 @@ _081127BE:
ldrh r1, [r4, 0xE]
ldrh r2, [r4, 0x10]
mov r0, r9
- bl sub_803FB68
+ bl EvolutionRenameMon
ldrh r0, [r4, 0x10]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x2
- bl sub_8090D90
+ bl GetNationalPokedexFlag
ldrh r0, [r4, 0x10]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x3
- bl sub_8090D90
+ bl GetNationalPokedexFlag
movs r0, 0xE
- bl sav12_xor_increment
+ bl IncrementGameStat
b _08112FD0
.align 2, 0
_08112834: .4byte gPaletteFade
@@ -1789,7 +1789,7 @@ _08112856:
movs r1, 0x2
add r2, sp, 0x4
bl GetMonData
- ldr r0, _081128A8 @ =gUnknown_030041C0
+ ldr r0, _081128A8 @ =gBattleTextBuff1
add r1, sp, 0x4
bl StringCopy10
ldr r0, _081128AC @ =0x0000ffff
@@ -1800,7 +1800,7 @@ _08112856:
b _08112FD0
.align 2, 0
_081128A4: .4byte gUnknown_03004210
-_081128A8: .4byte gUnknown_030041C0
+_081128A8: .4byte gBattleTextBuff1
_081128AC: .4byte 0x0000ffff
_081128B0:
ldr r0, _081128C0 @ =0x0000fffe
@@ -1868,7 +1868,7 @@ _0811291A:
_0811292C: .4byte gPaletteFade
_08112930: .4byte gUnknown_03005E94
_08112934:
- ldr r0, _08112968 @ =gUnknown_02024D1E
+ ldr r0, _08112968 @ =gBattleCommunication
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
@@ -1893,7 +1893,7 @@ _08112948:
adds r1, r6
b _08112A2E
.align 2, 0
-_08112968: .4byte gUnknown_02024D1E
+_08112968: .4byte gBattleCommunication
_0811296C: .4byte 0x0006001c
_08112970: .4byte 0x00007fff
_08112974:
@@ -1967,10 +1967,10 @@ _081129FE:
bl sub_8024CEC
ldr r0, _08112A3C @ =0x0000016f
bl PlayFanfare
- ldr r0, _08112A40 @ =gUnknown_08400F8C
+ ldr r0, _08112A40 @ =gBattleStringsTable
ldr r0, [r0, 0xC]
- bl get_battle_strings_
- ldr r1, _08112A44 @ =gUnknown_020238CC
+ bl StrCpyDecodeToDisplayedStringBattle
+ ldr r1, _08112A44 @ =gDisplayedStringBattle
movs r0, 0xF
str r0, [sp]
adds r0, r4, 0
@@ -1992,8 +1992,8 @@ _08112A2E:
.align 2, 0
_08112A38: .4byte gUnknown_03004210
_08112A3C: .4byte 0x0000016f
-_08112A40: .4byte gUnknown_08400F8C
-_08112A44: .4byte gUnknown_020238CC
+_08112A40: .4byte gBattleStringsTable
+_08112A44: .4byte gDisplayedStringBattle
_08112A48: .4byte gTasks
_08112A4C:
ldr r0, _08112A80 @ =gUnknown_03004210
@@ -2073,10 +2073,10 @@ _08112AE2:
b _08112FD0
_08112AEE:
bl sub_8024CEC
- ldr r0, _08112B20 @ =gUnknown_08400F8C
+ ldr r0, _08112B20 @ =gBattleStringsTable
ldr r0, [r0, 0x10]
- bl get_battle_strings_
- ldr r1, _08112B24 @ =gUnknown_020238CC
+ bl StrCpyDecodeToDisplayedStringBattle
+ ldr r1, _08112B24 @ =gDisplayedStringBattle
movs r0, 0xF
str r0, [sp]
adds r0, r4, 0
@@ -2093,8 +2093,8 @@ _08112AEE:
b _08112FCE
.align 2, 0
_08112B1C: .4byte gUnknown_03004210
-_08112B20: .4byte gUnknown_08400F8C
-_08112B24: .4byte gUnknown_020238CC
+_08112B20: .4byte gBattleStringsTable
+_08112B24: .4byte gDisplayedStringBattle
_08112B28: .4byte gTasks
_08112B2C:
ldr r4, _08112B6C @ =gUnknown_03004210
@@ -2109,10 +2109,10 @@ _08112B36:
beq _08112B42
b _08112FD0
_08112B42:
- ldr r0, _08112B70 @ =gUnknown_08400F8C
+ ldr r0, _08112B70 @ =gBattleStringsTable
ldr r0, [r0, 0x14]
- bl get_battle_strings_
- ldr r1, _08112B74 @ =gUnknown_020238CC
+ bl StrCpyDecodeToDisplayedStringBattle
+ ldr r1, _08112B74 @ =gDisplayedStringBattle
movs r0, 0xF
str r0, [sp]
adds r0, r4, 0
@@ -2129,8 +2129,8 @@ _08112B42:
b _08112FCE
.align 2, 0
_08112B6C: .4byte gUnknown_03004210
-_08112B70: .4byte gUnknown_08400F8C
-_08112B74: .4byte gUnknown_020238CC
+_08112B70: .4byte gBattleStringsTable
+_08112B74: .4byte gDisplayedStringBattle
_08112B78: .4byte gTasks
_08112B7C:
ldr r4, _08112BF8 @ =gUnknown_03004210
@@ -2143,10 +2143,10 @@ _08112B86:
lsls r0, 24
cmp r0, 0
bne _08112BC0
- ldr r0, _08112BFC @ =gUnknown_08400F8C
+ ldr r0, _08112BFC @ =gBattleStringsTable
ldr r0, [r0, 0x18]
- bl get_battle_strings_
- ldr r1, _08112C00 @ =gUnknown_020238CC
+ bl StrCpyDecodeToDisplayedStringBattle
+ ldr r1, _08112C00 @ =gDisplayedStringBattle
movs r0, 0xF
str r0, [sp]
adds r0, r4, 0
@@ -2188,16 +2188,16 @@ _08112BD6:
adds r0, 0x1
movs r2, 0
strh r0, [r1, 0x18]
- ldr r0, _08112C08 @ =gUnknown_02024D1E
+ ldr r0, _08112C08 @ =gBattleCommunication
strb r2, [r0, 0x1]
bl sub_802BC6C
b _08112FD0
.align 2, 0
_08112BF8: .4byte gUnknown_03004210
-_08112BFC: .4byte gUnknown_08400F8C
-_08112C00: .4byte gUnknown_020238CC
+_08112BFC: .4byte gBattleStringsTable
+_08112C00: .4byte gDisplayedStringBattle
_08112C04: .4byte gTasks
-_08112C08: .4byte gUnknown_02024D1E
+_08112C08: .4byte gBattleCommunication
_08112C0C:
ldr r0, _08112CA4 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -2205,7 +2205,7 @@ _08112C0C:
ands r0, r1
cmp r0, 0
beq _08112C32
- ldr r4, _08112CA8 @ =gUnknown_02024D1E
+ ldr r4, _08112CA8 @ =gBattleCommunication
ldrb r0, [r4, 0x1]
cmp r0, 0
beq _08112C32
@@ -2222,7 +2222,7 @@ _08112C32:
ands r0, r1
cmp r0, 0
beq _08112C58
- ldr r4, _08112CA8 @ =gUnknown_02024D1E
+ ldr r4, _08112CA8 @ =gBattleCommunication
ldrb r0, [r4, 0x1]
cmp r0, 0
bne _08112C58
@@ -2240,14 +2240,14 @@ _08112C58:
cmp r0, 0
beq _08112CE2
bl sub_8023AD8
- ldr r0, _08112CAC @ =gUnknown_08400F8C
+ ldr r0, _08112CAC @ =gBattleStringsTable
movs r1, 0x92
lsls r1, 3
adds r0, r1
ldr r0, [r0]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r0, _08112CB0 @ =gUnknown_03004210
- ldr r1, _08112CB4 @ =gUnknown_020238CC
+ ldr r1, _08112CB4 @ =gDisplayedStringBattle
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
@@ -2255,7 +2255,7 @@ _08112C58:
bl sub_8002EB0
movs r0, 0x5
bl PlaySE
- ldr r0, _08112CA8 @ =gUnknown_02024D1E
+ ldr r0, _08112CA8 @ =gBattleCommunication
ldrb r2, [r0, 0x1]
cmp r2, 0
beq _08112CBC
@@ -2269,10 +2269,10 @@ _08112C58:
b _08112CE2
.align 2, 0
_08112CA4: .4byte gMain
-_08112CA8: .4byte gUnknown_02024D1E
-_08112CAC: .4byte gUnknown_08400F8C
+_08112CA8: .4byte gBattleCommunication
+_08112CAC: .4byte gBattleStringsTable
_08112CB0: .4byte gUnknown_03004210
-_08112CB4: .4byte gUnknown_020238CC
+_08112CB4: .4byte gDisplayedStringBattle
_08112CB8: .4byte gTasks
_08112CBC:
ldr r0, _08112D28 @ =gTasks
@@ -2303,14 +2303,14 @@ _08112CE2:
b _08112FD0
_08112CF0:
bl sub_8023AD8
- ldr r0, _08112D30 @ =gUnknown_08400F8C
+ ldr r0, _08112D30 @ =gBattleStringsTable
movs r1, 0x92
lsls r1, 3
adds r0, r1
ldr r0, [r0]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r0, _08112D34 @ =gUnknown_03004210
- ldr r1, _08112D38 @ =gUnknown_020238CC
+ ldr r1, _08112D38 @ =gDisplayedStringBattle
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
@@ -2329,9 +2329,9 @@ _08112CF0:
.align 2, 0
_08112D28: .4byte gTasks
_08112D2C: .4byte gMain
-_08112D30: .4byte gUnknown_08400F8C
+_08112D30: .4byte gBattleStringsTable
_08112D34: .4byte gUnknown_03004210
-_08112D38: .4byte gUnknown_020238CC
+_08112D38: .4byte gDisplayedStringBattle
_08112D3C:
ldr r0, _08112D78 @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -2408,16 +2408,16 @@ _08112DCC:
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
- bl sub_8040A00
+ bl IsHMMove2
cmp r0, 0
beq _08112E24
- ldr r0, _08112E10 @ =gUnknown_08400F8C
+ ldr r0, _08112E10 @ =gBattleStringsTable
ldr r3, _08112E14 @ =0x000004cc
adds r0, r3
ldr r0, [r0]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r0, _08112E18 @ =gUnknown_03004210
- ldr r1, _08112E1C @ =gUnknown_020238CC
+ ldr r1, _08112E1C @ =gDisplayedStringBattle
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
@@ -2432,13 +2432,13 @@ _08112DCC:
strh r1, [r0, 0x18]
b _08112FD0
.align 2, 0
-_08112E10: .4byte gUnknown_08400F8C
+_08112E10: .4byte gBattleStringsTable
_08112E14: .4byte 0x000004cc
_08112E18: .4byte gUnknown_03004210
-_08112E1C: .4byte gUnknown_020238CC
+_08112E1C: .4byte gDisplayedStringBattle
_08112E20: .4byte gTasks
_08112E24:
- ldr r1, _08112E80 @ =gUnknown_03004290
+ ldr r1, _08112E80 @ =gBattleTextBuff2
movs r0, 0xFD
strb r0, [r1]
movs r0, 0x2
@@ -2458,14 +2458,14 @@ _08112E24:
mov r0, r9
adds r2, r4, 0
bl SetMonMoveSlot
- ldr r0, _08112E88 @ =gUnknown_08400F8C
+ ldr r0, _08112E88 @ =gBattleStringsTable
movs r3, 0xCF
lsls r3, 2
adds r0, r3
ldr r0, [r0]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r0, _08112E8C @ =gUnknown_03004210
- ldr r1, _08112E90 @ =gUnknown_020238CC
+ ldr r1, _08112E90 @ =gDisplayedStringBattle
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
@@ -2480,11 +2480,11 @@ _08112E24:
adds r0, 0x1
b _08112FCE
.align 2, 0
-_08112E80: .4byte gUnknown_03004290
+_08112E80: .4byte gBattleTextBuff2
_08112E84: .4byte word_2024E82
-_08112E88: .4byte gUnknown_08400F8C
+_08112E88: .4byte gBattleStringsTable
_08112E8C: .4byte gUnknown_03004210
-_08112E90: .4byte gUnknown_020238CC
+_08112E90: .4byte gDisplayedStringBattle
_08112E94: .4byte gTasks
_08112E98:
ldr r4, _08112ED8 @ =gUnknown_03004210
@@ -2499,10 +2499,10 @@ _08112EA2:
beq _08112EAE
b _08112FD0
_08112EAE:
- ldr r0, _08112EDC @ =gUnknown_08400F8C
+ ldr r0, _08112EDC @ =gBattleStringsTable
ldr r0, [r0, 0x1C]
- bl get_battle_strings_
- ldr r1, _08112EE0 @ =gUnknown_020238CC
+ bl StrCpyDecodeToDisplayedStringBattle
+ ldr r1, _08112EE0 @ =gDisplayedStringBattle
movs r0, 0xF
str r0, [sp]
adds r0, r4, 0
@@ -2519,8 +2519,8 @@ _08112EAE:
b _08112FCE
.align 2, 0
_08112ED8: .4byte gUnknown_03004210
-_08112EDC: .4byte gUnknown_08400F8C
-_08112EE0: .4byte gUnknown_020238CC
+_08112EDC: .4byte gBattleStringsTable
+_08112EE0: .4byte gDisplayedStringBattle
_08112EE4: .4byte gTasks
_08112EE8:
ldr r4, _08112F28 @ =gUnknown_03004210
@@ -2531,13 +2531,13 @@ _08112EE8:
lsls r0, 24
cmp r0, 0
bne _08112FD0
- ldr r0, _08112F2C @ =gUnknown_08400F8C
+ ldr r0, _08112F2C @ =gBattleStringsTable
movs r1, 0xD0
lsls r1, 2
adds r0, r1
ldr r0, [r0]
- bl get_battle_strings_
- ldr r1, _08112F30 @ =gUnknown_020238CC
+ bl StrCpyDecodeToDisplayedStringBattle
+ ldr r1, _08112F30 @ =gDisplayedStringBattle
movs r0, 0xF
str r0, [sp]
adds r0, r4, 0
@@ -2554,15 +2554,15 @@ _08112EE8:
b _08112FD0
.align 2, 0
_08112F28: .4byte gUnknown_03004210
-_08112F2C: .4byte gUnknown_08400F8C
-_08112F30: .4byte gUnknown_020238CC
+_08112F2C: .4byte gBattleStringsTable
+_08112F30: .4byte gDisplayedStringBattle
_08112F34: .4byte gTasks
_08112F38:
- ldr r0, _08112F68 @ =gUnknown_08400F8C
+ ldr r0, _08112F68 @ =gBattleStringsTable
ldr r0, [r0, 0x20]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r0, _08112F6C @ =gUnknown_03004210
- ldr r1, _08112F70 @ =gUnknown_020238CC
+ ldr r1, _08112F70 @ =gDisplayedStringBattle
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
@@ -2581,16 +2581,16 @@ _08112F38:
strh r1, [r0, 0x18]
b _08112FD0
.align 2, 0
-_08112F68: .4byte gUnknown_08400F8C
+_08112F68: .4byte gBattleStringsTable
_08112F6C: .4byte gUnknown_03004210
-_08112F70: .4byte gUnknown_020238CC
+_08112F70: .4byte gDisplayedStringBattle
_08112F74: .4byte gTasks
_08112F78:
- ldr r0, _08112FA0 @ =gUnknown_08400F8C
+ ldr r0, _08112FA0 @ =gBattleStringsTable
ldr r0, [r0, 0x24]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r0, _08112FA4 @ =gUnknown_03004210
- ldr r1, _08112FA8 @ =gUnknown_020238CC
+ ldr r1, _08112FA8 @ =gDisplayedStringBattle
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
@@ -2606,9 +2606,9 @@ _08112F9A:
strh r1, [r0, 0x8]
b _08112FD0
.align 2, 0
-_08112FA0: .4byte gUnknown_08400F8C
+_08112FA0: .4byte gBattleStringsTable
_08112FA4: .4byte gUnknown_03004210
-_08112FA8: .4byte gUnknown_020238CC
+_08112FA8: .4byte gDisplayedStringBattle
_08112FAC: .4byte gTasks
_08112FB0:
ldr r0, _08112FE0 @ =gUnknown_03004210
@@ -2808,7 +2808,7 @@ _0811315C:
strh r0, [r1]
movs r0, 0x11
bl sub_8149970
- ldr r1, _08113184 @ =gUnknown_02024D1E
+ ldr r1, _08113184 @ =gBattleCommunication
strb r0, [r1, 0x2]
ldr r1, _08113188 @ =gTasks
lsls r0, r7, 2
@@ -2818,10 +2818,10 @@ _0811315C:
b _08113298
.align 2, 0
_08113180: .4byte gPaletteFade
-_08113184: .4byte gUnknown_02024D1E
+_08113184: .4byte gBattleCommunication
_08113188: .4byte gTasks
_0811318C:
- ldr r4, _081131C0 @ =gUnknown_02024D1E
+ ldr r4, _081131C0 @ =gBattleCommunication
ldrb r0, [r4, 0x2]
lsls r1, r0, 2
adds r1, r0
@@ -2846,10 +2846,10 @@ _081131A2:
strb r0, [r4, 0x2]
bl _08113B3A
.align 2, 0
-_081131C0: .4byte gUnknown_02024D1E
+_081131C0: .4byte gBattleCommunication
_081131C4: .4byte 0x02014800
_081131C8:
- ldr r4, _081131EC @ =gUnknown_02024D1E
+ ldr r4, _081131EC @ =gBattleCommunication
ldrb r0, [r4, 0x2]
lsls r1, r0, 2
adds r1, r0
@@ -2867,7 +2867,7 @@ _081131DE:
strb r0, [r4, 0x2]
b _08113290
.align 2, 0
-_081131EC: .4byte gUnknown_02024D1E
+_081131EC: .4byte gBattleCommunication
_081131F0: .4byte 0x02014800
_081131F4:
ldr r1, _08113224 @ =0x02014800
@@ -2881,7 +2881,7 @@ _081131F4:
_08113206:
movs r0, 0x3
strb r0, [r1, 0x3]
- ldr r0, _08113228 @ =gUnknown_02024D1E
+ ldr r0, _08113228 @ =gBattleCommunication
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
@@ -2895,10 +2895,10 @@ _08113220:
b _08113290
.align 2, 0
_08113224: .4byte 0x02014800
-_08113228: .4byte gUnknown_02024D1E
+_08113228: .4byte gBattleCommunication
_0811322C:
bl sub_8149B44
- ldr r1, _08113240 @ =gUnknown_02024D1E
+ ldr r1, _08113240 @ =gBattleCommunication
strb r0, [r1, 0x2]
ldr r1, _08113244 @ =gTasks
lsls r0, r7, 2
@@ -2907,10 +2907,10 @@ _0811322C:
adds r0, r1
b _08113298
.align 2, 0
-_08113240: .4byte gUnknown_02024D1E
+_08113240: .4byte gBattleCommunication
_08113244: .4byte gTasks
_08113248:
- ldr r5, _08113270 @ =gUnknown_02024D1E
+ ldr r5, _08113270 @ =gBattleCommunication
ldrb r0, [r5, 0x2]
lsls r1, r0, 2
adds r1, r0
@@ -2930,9 +2930,9 @@ _0811325E:
strb r0, [r5, 0x2]
b _081132E2
.align 2, 0
-_08113270: .4byte gUnknown_02024D1E
+_08113270: .4byte gBattleCommunication
_08113274:
- ldr r0, _081132A4 @ =gUnknown_02024D1E
+ ldr r0, _081132A4 @ =gBattleCommunication
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
@@ -2956,7 +2956,7 @@ _08113298:
strh r1, [r0, 0x8]
bl _08113B3A
.align 2, 0
-_081132A4: .4byte gUnknown_02024D1E
+_081132A4: .4byte gBattleCommunication
_081132A8:
bl IsSEPlaying
lsls r0, 24
@@ -3041,21 +3041,21 @@ _08113316:
ldrh r1, [r4, 0xE]
ldrh r2, [r4, 0x10]
mov r0, r8
- bl sub_803FB68
+ bl EvolutionRenameMon
ldrh r0, [r4, 0x10]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x2
- bl sub_8090D90
+ bl GetNationalPokedexFlag
ldrh r0, [r4, 0x10]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x3
- bl sub_8090D90
+ bl GetNationalPokedexFlag
movs r0, 0xE
- bl sav12_xor_increment
+ bl IncrementGameStat
b _08113B3A
.align 2, 0
_08113390: .4byte gPaletteFade
@@ -3106,7 +3106,7 @@ _081133C2:
movs r1, 0x2
add r2, sp, 0x4
bl GetMonData
- ldr r0, _08113418 @ =gUnknown_030041C0
+ ldr r0, _08113418 @ =gBattleTextBuff1
add r1, sp, 0x4
bl StringCopy10
ldr r0, _0811341C @ =0x0000ffff
@@ -3118,7 +3118,7 @@ _081133C2:
.align 2, 0
_08113410: .4byte gUnknown_03004828
_08113414: .4byte gTasks
-_08113418: .4byte gUnknown_030041C0
+_08113418: .4byte gBattleTextBuff1
_0811341C: .4byte 0x0000ffff
_08113420:
ldr r0, _08113430 @ =0x0000fffe
@@ -3189,12 +3189,12 @@ _081134A8:
bl sub_8024CEC
ldr r0, _081134E8 @ =0x0000016f
bl PlayFanfare
- ldr r0, _081134EC @ =gUnknown_08400F8C
+ ldr r0, _081134EC @ =gBattleStringsTable
ldr r0, [r0, 0xC]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r2, [r4]
adds r0, r2, 0x4
- ldr r1, _081134F0 @ =gUnknown_020238CC
+ ldr r1, _081134F0 @ =gDisplayedStringBattle
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
@@ -3216,8 +3216,8 @@ _081134DC:
.align 2, 0
_081134E4: .4byte gUnknown_03004828
_081134E8: .4byte 0x0000016f
-_081134EC: .4byte gUnknown_08400F8C
-_081134F0: .4byte gUnknown_020238CC
+_081134EC: .4byte gBattleStringsTable
+_081134F0: .4byte gDisplayedStringBattle
_081134F4: .4byte gTasks
_081134F8:
ldr r0, _08113530 @ =gUnknown_03004828
@@ -3301,12 +3301,12 @@ _08113598:
b _08113B3A
_081135A4:
bl sub_8024CEC
- ldr r0, _081135D8 @ =gUnknown_08400F8C
+ ldr r0, _081135D8 @ =gBattleStringsTable
ldr r0, [r0, 0x10]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r2, [r4]
adds r0, r2, 0x4
- ldr r1, _081135DC @ =gUnknown_020238CC
+ ldr r1, _081135DC @ =gDisplayedStringBattle
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
@@ -3323,8 +3323,8 @@ _081135A4:
b _08113B38
.align 2, 0
_081135D4: .4byte gUnknown_03004828
-_081135D8: .4byte gUnknown_08400F8C
-_081135DC: .4byte gUnknown_020238CC
+_081135D8: .4byte gBattleStringsTable
+_081135DC: .4byte gDisplayedStringBattle
_081135E0: .4byte gTasks
_081135E4:
ldr r4, _08113628 @ =gUnknown_03004828
@@ -3340,12 +3340,12 @@ _081135F0:
beq _081135FC
b _08113B3A
_081135FC:
- ldr r0, _0811362C @ =gUnknown_08400F8C
+ ldr r0, _0811362C @ =gBattleStringsTable
ldr r0, [r0, 0x14]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r2, [r4]
adds r0, r2, 0x4
- ldr r1, _08113630 @ =gUnknown_020238CC
+ ldr r1, _08113630 @ =gDisplayedStringBattle
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
@@ -3362,8 +3362,8 @@ _081135FC:
b _08113B38
.align 2, 0
_08113628: .4byte gUnknown_03004828
-_0811362C: .4byte gUnknown_08400F8C
-_08113630: .4byte gUnknown_020238CC
+_0811362C: .4byte gBattleStringsTable
+_08113630: .4byte gDisplayedStringBattle
_08113634: .4byte gTasks
_08113638:
ldr r4, _081136FC @ =gUnknown_03004828
@@ -3377,12 +3377,12 @@ _08113644:
lsls r0, 24
cmp r0, 0
bne _08113682
- ldr r0, _08113700 @ =gUnknown_08400F8C
+ ldr r0, _08113700 @ =gBattleStringsTable
ldr r0, [r0, 0x18]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r2, [r4]
adds r0, r2, 0x4
- ldr r1, _08113704 @ =gUnknown_020238CC
+ ldr r1, _08113704 @ =gDisplayedStringBattle
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
@@ -3424,7 +3424,7 @@ _0811369C:
movs r2, 0x8
movs r3, 0x1D
bl DrawTextWindow
- ldr r4, _0811370C @ =gUnknown_02024D1E
+ ldr r4, _0811370C @ =gBattleCommunication
strb r6, [r4, 0x1]
ldr r2, [r5]
adds r0, r2, 0x4
@@ -3460,10 +3460,10 @@ _0811369C:
b _08113B3A
.align 2, 0
_081136FC: .4byte gUnknown_03004828
-_08113700: .4byte gUnknown_08400F8C
-_08113704: .4byte gUnknown_020238CC
+_08113700: .4byte gBattleStringsTable
+_08113704: .4byte gDisplayedStringBattle
_08113708: .4byte gTasks
-_0811370C: .4byte gUnknown_02024D1E
+_0811370C: .4byte gBattleCommunication
_08113710: .4byte gOtherText_YesNoAndPlayer
_08113714: .4byte 0x0000ffff
_08113718: .4byte 0x00002d9f
@@ -3474,7 +3474,7 @@ _0811371C:
ands r0, r1
cmp r0, 0
beq _08113742
- ldr r4, _081137D0 @ =gUnknown_02024D1E
+ ldr r4, _081137D0 @ =gBattleCommunication
ldrb r0, [r4, 0x1]
cmp r0, 0
beq _08113742
@@ -3491,7 +3491,7 @@ _08113742:
ands r0, r1
cmp r0, 0
beq _08113768
- ldr r4, _081137D0 @ =gUnknown_02024D1E
+ ldr r4, _081137D0 @ =gBattleCommunication
ldrb r0, [r4, 0x1]
cmp r0, 0
bne _08113768
@@ -3517,16 +3517,16 @@ _08113768:
movs r2, 0x8
movs r3, 0x1D
bl ZeroFillWindowRect
- bl sub_814A7FC
- ldr r0, _081137D8 @ =gUnknown_08400F8C
+ bl DestroyMenuCursor
+ ldr r0, _081137D8 @ =gBattleStringsTable
movs r1, 0x92
lsls r1, 3
adds r0, r1
ldr r0, [r0]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r2, [r4]
adds r0, r2, 0x4
- ldr r1, _081137DC @ =gUnknown_020238CC
+ ldr r1, _081137DC @ =gDisplayedStringBattle
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
@@ -3535,7 +3535,7 @@ _08113768:
bl sub_8002EB0
movs r0, 0x5
bl PlaySE
- ldr r0, _081137D0 @ =gUnknown_02024D1E
+ ldr r0, _081137D0 @ =gBattleCommunication
ldrb r2, [r0, 0x1]
cmp r2, 0
beq _081137E4
@@ -3549,10 +3549,10 @@ _08113768:
b _0811380A
.align 2, 0
_081137CC: .4byte gMain
-_081137D0: .4byte gUnknown_02024D1E
+_081137D0: .4byte gBattleCommunication
_081137D4: .4byte gUnknown_03004828
-_081137D8: .4byte gUnknown_08400F8C
-_081137DC: .4byte gUnknown_020238CC
+_081137D8: .4byte gBattleStringsTable
+_081137DC: .4byte gDisplayedStringBattle
_081137E0: .4byte gTasks
_081137E4:
ldr r0, _08113868 @ =gTasks
@@ -3591,16 +3591,16 @@ _08113818:
movs r2, 0x8
movs r3, 0x1D
bl ZeroFillWindowRect
- bl sub_814A7FC
- ldr r0, _08113874 @ =gUnknown_08400F8C
+ bl DestroyMenuCursor
+ ldr r0, _08113874 @ =gBattleStringsTable
movs r1, 0x92
lsls r1, 3
adds r0, r1
ldr r0, [r0]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r2, [r4]
adds r0, r2, 0x4
- ldr r1, _08113878 @ =gUnknown_020238CC
+ ldr r1, _08113878 @ =gDisplayedStringBattle
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
@@ -3621,8 +3621,8 @@ _08113818:
_08113868: .4byte gTasks
_0811386C: .4byte gMain
_08113870: .4byte gUnknown_03004828
-_08113874: .4byte gUnknown_08400F8C
-_08113878: .4byte gUnknown_020238CC
+_08113874: .4byte gBattleStringsTable
+_08113878: .4byte gDisplayedStringBattle
_0811387C:
ldr r0, _081138B8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -3701,18 +3701,18 @@ _08113910:
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
- bl sub_8040A00
+ bl IsHMMove2
cmp r0, 0
beq _08113970
- ldr r0, _0811395C @ =gUnknown_08400F8C
+ ldr r0, _0811395C @ =gBattleStringsTable
ldr r3, _08113960 @ =0x000004cc
adds r0, r3
ldr r0, [r0]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r0, _08113964 @ =gUnknown_03004828
ldr r2, [r0]
adds r0, r2, 0x4
- ldr r1, _08113968 @ =gUnknown_020238CC
+ ldr r1, _08113968 @ =gDisplayedStringBattle
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
@@ -3728,13 +3728,13 @@ _08113910:
strh r1, [r0, 0x18]
b _08113B3A
.align 2, 0
-_0811395C: .4byte gUnknown_08400F8C
+_0811395C: .4byte gBattleStringsTable
_08113960: .4byte 0x000004cc
_08113964: .4byte gUnknown_03004828
-_08113968: .4byte gUnknown_020238CC
+_08113968: .4byte gDisplayedStringBattle
_0811396C: .4byte gTasks
_08113970:
- ldr r1, _081139D0 @ =gUnknown_03004290
+ ldr r1, _081139D0 @ =gBattleTextBuff2
movs r0, 0xFD
strb r0, [r1]
movs r0, 0x2
@@ -3754,16 +3754,16 @@ _08113970:
mov r0, r8
adds r2, r4, 0
bl SetMonMoveSlot
- ldr r0, _081139D8 @ =gUnknown_08400F8C
+ ldr r0, _081139D8 @ =gBattleStringsTable
movs r3, 0xCF
lsls r3, 2
adds r0, r3
ldr r0, [r0]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r0, _081139DC @ =gUnknown_03004828
ldr r2, [r0]
adds r0, r2, 0x4
- ldr r1, _081139E0 @ =gUnknown_020238CC
+ ldr r1, _081139E0 @ =gDisplayedStringBattle
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
@@ -3779,11 +3779,11 @@ _08113970:
adds r0, 0x1
b _08113B38
.align 2, 0
-_081139D0: .4byte gUnknown_03004290
+_081139D0: .4byte gBattleTextBuff2
_081139D4: .4byte word_2024E82
-_081139D8: .4byte gUnknown_08400F8C
+_081139D8: .4byte gBattleStringsTable
_081139DC: .4byte gUnknown_03004828
-_081139E0: .4byte gUnknown_020238CC
+_081139E0: .4byte gDisplayedStringBattle
_081139E4: .4byte gTasks
_081139E8:
ldr r4, _08113A2C @ =gUnknown_03004828
@@ -3799,12 +3799,12 @@ _081139F4:
beq _08113A00
b _08113B3A
_08113A00:
- ldr r0, _08113A30 @ =gUnknown_08400F8C
+ ldr r0, _08113A30 @ =gBattleStringsTable
ldr r0, [r0, 0x1C]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r2, [r4]
adds r0, r2, 0x4
- ldr r1, _08113A34 @ =gUnknown_020238CC
+ ldr r1, _08113A34 @ =gDisplayedStringBattle
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
@@ -3821,8 +3821,8 @@ _08113A00:
b _08113B38
.align 2, 0
_08113A2C: .4byte gUnknown_03004828
-_08113A30: .4byte gUnknown_08400F8C
-_08113A34: .4byte gUnknown_020238CC
+_08113A30: .4byte gBattleStringsTable
+_08113A34: .4byte gDisplayedStringBattle
_08113A38: .4byte gTasks
_08113A3C:
ldr r4, _08113A80 @ =gUnknown_03004828
@@ -3834,15 +3834,15 @@ _08113A3C:
lsls r0, 24
cmp r0, 0
bne _08113B3A
- ldr r0, _08113A84 @ =gUnknown_08400F8C
+ ldr r0, _08113A84 @ =gBattleStringsTable
movs r1, 0xD0
lsls r1, 2
adds r0, r1
ldr r0, [r0]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r2, [r4]
adds r0, r2, 0x4
- ldr r1, _08113A88 @ =gUnknown_020238CC
+ ldr r1, _08113A88 @ =gDisplayedStringBattle
adds r2, 0x34
ldrb r2, [r2]
movs r4, 0xF
@@ -3858,17 +3858,17 @@ _08113A3C:
b _08113B3A
.align 2, 0
_08113A80: .4byte gUnknown_03004828
-_08113A84: .4byte gUnknown_08400F8C
-_08113A88: .4byte gUnknown_020238CC
+_08113A84: .4byte gBattleStringsTable
+_08113A88: .4byte gDisplayedStringBattle
_08113A8C: .4byte gTasks
_08113A90:
- ldr r0, _08113AC8 @ =gUnknown_08400F8C
+ ldr r0, _08113AC8 @ =gBattleStringsTable
ldr r0, [r0, 0x20]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r0, _08113ACC @ =gUnknown_03004828
ldr r2, [r0]
adds r0, r2, 0x4
- ldr r1, _08113AD0 @ =gUnknown_020238CC
+ ldr r1, _08113AD0 @ =gDisplayedStringBattle
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
@@ -3888,18 +3888,18 @@ _08113A90:
strh r1, [r0, 0x18]
b _08113B3A
.align 2, 0
-_08113AC8: .4byte gUnknown_08400F8C
+_08113AC8: .4byte gBattleStringsTable
_08113ACC: .4byte gUnknown_03004828
-_08113AD0: .4byte gUnknown_020238CC
+_08113AD0: .4byte gDisplayedStringBattle
_08113AD4: .4byte gTasks
_08113AD8:
- ldr r0, _08113B08 @ =gUnknown_08400F8C
+ ldr r0, _08113B08 @ =gBattleStringsTable
ldr r0, [r0, 0x24]
- bl get_battle_strings_
+ bl StrCpyDecodeToDisplayedStringBattle
ldr r0, _08113B0C @ =gUnknown_03004828
ldr r2, [r0]
adds r0, r2, 0x4
- ldr r1, _08113B10 @ =gUnknown_020238CC
+ ldr r1, _08113B10 @ =gDisplayedStringBattle
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
@@ -3915,9 +3915,9 @@ _08113AD8:
strh r1, [r0, 0x8]
b _08113B3A
.align 2, 0
-_08113B08: .4byte gUnknown_08400F8C
+_08113B08: .4byte gBattleStringsTable
_08113B0C: .4byte gUnknown_03004828
-_08113B10: .4byte gUnknown_020238CC
+_08113B10: .4byte gDisplayedStringBattle
_08113B14: .4byte gTasks
_08113B18:
ldr r0, _08113B48 @ =gUnknown_03004828
@@ -6694,7 +6694,7 @@ _081150D4: .4byte gUnknown_030041B8
thumb_func_start sub_81150D8
sub_81150D8: @ 81150D8
push {lr}
- ldr r0, _081150F4 @ =gUnknown_02024D1E
+ ldr r0, _081150F4 @ =gBattleCommunication
ldrb r1, [r0, 0x1]
lsls r1, 28
movs r0, 0x90
@@ -6706,7 +6706,7 @@ sub_81150D8: @ 81150D8
pop {r0}
bx r0
.align 2, 0
-_081150F4: .4byte gUnknown_02024D1E
+_081150F4: .4byte gBattleCommunication
thumb_func_end sub_81150D8
thumb_func_start HBlankCB_TradeEvolutionScene
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
index 68a1b02c9..9df9dfd8d 100644
--- a/asm/field_effect_helpers.s
+++ b/asm/field_effect_helpers.s
@@ -715,7 +715,7 @@ _08126D3E:
cmp r0, r1
bne _08126DBC
ldrb r0, [r4, 0x1E]
- bl sub_8056E14
+ bl MetatileBehavior_IsPokeGrass
lsls r0, 24
cmp r0, 0
bne _08126DBC
diff --git a/asm/rom_8080874.s b/asm/field_fadetransition.s
index d4a6414fb..e882e7030 100644
--- a/asm/rom_8080874.s
+++ b/asm/field_fadetransition.s
@@ -6,185 +6,6 @@
.text
- thumb_func_start palette_bg_faded_fill_black
-palette_bg_faded_fill_black: @ 8080874
- push {lr}
- sub sp, 0x4
- ldr r0, _0808088C @ =0x7fff7fff
- str r0, [sp]
- ldr r1, _08080890 @ =gPlttBufferFaded
- ldr r2, _08080894 @ =0x01000100
- mov r0, sp
- bl CpuFastSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0808088C: .4byte 0x7fff7fff
-_08080890: .4byte gPlttBufferFaded
-_08080894: .4byte 0x01000100
- thumb_func_end palette_bg_faded_fill_black
-
- thumb_func_start palette_bg_faded_fill_white
-palette_bg_faded_fill_white: @ 8080898
- push {lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r1, _080808B0 @ =gPlttBufferFaded
- ldr r2, _080808B4 @ =0x01000100
- mov r0, sp
- bl CpuFastSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080808B0: .4byte gPlttBufferFaded
-_080808B4: .4byte 0x01000100
- thumb_func_end palette_bg_faded_fill_white
-
- thumb_func_start pal_fill_for_maplights
-pal_fill_for_maplights: @ 80808B8
- push {r4,lr}
- bl get_map_light_from_warp0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sav1_map_get_light_level
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl fade_type_for_given_maplight_pair
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080808E2
- cmp r0, 0x1
- beq _080808F0
- b _080808FC
-_080808E2:
- movs r0, 0
- movs r1, 0
- bl fade_screen
- bl palette_bg_faded_fill_white
- b _080808FC
-_080808F0:
- movs r0, 0x2
- movs r1, 0
- bl fade_screen
- bl palette_bg_faded_fill_black
-_080808FC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pal_fill_for_maplights
-
- thumb_func_start pal_fill_black
-pal_fill_black: @ 8080904
- push {lr}
- movs r0, 0
- movs r1, 0
- bl fade_screen
- bl palette_bg_faded_fill_white
- pop {r0}
- bx r0
- thumb_func_end pal_fill_black
-
- thumb_func_start sub_8080918
-sub_8080918: @ 8080918
- push {r4,lr}
- bl sav1_map_get_light_level
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl warp1_get_mapheader
- ldrb r1, [r0, 0x17]
- adds r0, r4, 0
- bl sub_810CDB8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0808093E
- cmp r0, 0x1
- beq _08080948
- b _08080950
-_0808093E:
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- b _08080950
-_08080948:
- movs r0, 0x3
- movs r1, 0
- bl fade_screen
-_08080950:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8080918
-
- thumb_func_start sub_8080958
-sub_8080958: @ 8080958
- push {lr}
- lsls r0, 24
- movs r1, 0
- cmp r0, 0
- bne _08080964
- movs r1, 0x1
-_08080964:
- adds r0, r1, 0
- bl sub_8059B88
- pop {r0}
- bx r0
- thumb_func_end sub_8080958
-
- thumb_func_start task0A_asap_script_env_2_enable_and_set_ctx_running
-task0A_asap_script_env_2_enable_and_set_ctx_running: @ 8080970
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8080E70
- cmp r0, 0x1
- bne _08080988
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_08080988:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task0A_asap_script_env_2_enable_and_set_ctx_running
-
- thumb_func_start sub_8080990
-sub_8080990: @ 8080990
- push {lr}
- bl ScriptContext2_Enable
- bl sub_8053E90
- bl pal_fill_black
- ldr r0, _080809AC @ =task0A_asap_script_env_2_enable_and_set_ctx_running
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080809AC: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running
- thumb_func_end sub_8080990
-
- thumb_func_start sub_80809B0
-sub_80809B0: @ 80809B0
- push {lr}
- bl ScriptContext2_Enable
- bl pal_fill_black
- ldr r0, _080809C8 @ =task0A_asap_script_env_2_enable_and_set_ctx_running
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080809C8: .4byte task0A_asap_script_env_2_enable_and_set_ctx_running
- thumb_func_end sub_80809B0
-
thumb_func_start task_mpl_807DD60
task_mpl_807DD60: @ 80809CC
push {r4,r5,lr}
@@ -226,7 +47,7 @@ _08080A06:
ldrb r0, [r1, 0x4]
cmp r0, 0x1
beq _08080A36
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
_08080A1C:
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -250,7 +71,7 @@ sub_8080A3C: @ 8080A3C
push {lr}
bl ScriptContext2_Enable
bl sub_8053E90
- bl palette_bg_faded_fill_white
+ bl palette_bg_fill_black
ldr r0, _08080A58 @ =task_mpl_807DD60
movs r1, 0xA
bl CreateTask
@@ -293,7 +114,7 @@ _08080A90:
lsls r0, 24
cmp r0, 0
beq _08080ABC
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
_08080A9E:
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -318,7 +139,7 @@ sub_8080AC4: @ 8080AC4
push {lr}
bl ScriptContext2_Enable
bl sub_8053E90
- bl palette_bg_faded_fill_white
+ bl palette_bg_fill_black
ldr r0, _08080AE0 @ =sub_8080A5C
movs r1, 0xA
bl CreateTask
@@ -357,7 +178,7 @@ sub_8080AE4: @ 8080AE4
_08080B18: .4byte sub_8080B9C
_08080B1C:
adds r0, r4, 0
- bl sub_8056F08
+ bl MetatileBehavior_IsNonAnimDoor
lsls r0, 24
lsrs r0, 24
ldr r1, _08080B40 @ =task_map_chg_seq_0807E2CC
@@ -381,7 +202,7 @@ _08080B44: .4byte task_map_chg_seq_0807E20C
mapldr_default: @ 8080B48
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
bl sub_8080AE4
bl ScriptContext2_Enable
pop {r0}
@@ -403,7 +224,7 @@ sub_8080B60: @ 8080B60
sub_8080B78: @ 8080B78
push {lr}
bl sub_8053E90
- bl pal_fill_for_maplights
+ bl pal_fill_for_map_transition
movs r0, 0x2E
bl PlaySE
ldr r0, _08080B98 @ =task_map_chg_seq_0807E2CC
@@ -453,7 +274,7 @@ _08080BD0:
_08080BE4:
movs r0, 0
bl sub_8080958
- bl player_bitmagic
+ bl FreezeMapObjects
adds r0, r6, 0
adds r1, r7, 0
bl PlayerGetDestCoords
@@ -534,7 +355,7 @@ _08080C84:
cmp r0, 0x1
beq _08080CAE
_08080C9A:
- bl sub_806451C
+ bl UnfreezeMapObjects
movs r0, 0x4
strh r0, [r5, 0x8]
b _08080CAE
@@ -582,7 +403,7 @@ _08080CE4:
_08080CEE:
movs r0, 0
bl sub_8080958
- bl player_bitmagic
+ bl FreezeMapObjects
adds r0, r6, 0
adds r1, r7, 0
bl PlayerGetDestCoords
@@ -625,7 +446,7 @@ _08080D50:
lsls r0, 24
cmp r0, 0
beq _08080D6E
- bl sub_806451C
+ bl UnfreezeMapObjects
movs r0, 0x3
strh r0, [r5, 0x8]
b _08080D6E
@@ -659,7 +480,7 @@ task_map_chg_seq_0807E2CC: @ 8080D74
.align 2, 0
_08080D94: .4byte gTasks
_08080D98:
- bl player_bitmagic
+ bl FreezeMapObjects
bl ScriptContext2_Enable
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -669,7 +490,7 @@ _08080DA8:
bl sub_8080E70
cmp r0, 0
beq _08080DBE
- bl sub_806451C
+ bl UnfreezeMapObjects
bl ScriptContext2_Disable
adds r0, r5, 0
bl DestroyTask
@@ -792,11 +613,11 @@ sub_8080E88: @ 8080E88
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
bl PlayRainSoundEffect
movs r0, 0x9
bl PlaySE
- ldr r0, _08080EB4 @ =gUnknown_0300485C
+ ldr r0, _08080EB4 @ =gFieldCallback
ldr r1, _08080EB8 @ =mapldr_default
str r1, [r0]
ldr r0, _08080EBC @ =task0A_fade_n_map_maybe
@@ -805,7 +626,7 @@ sub_8080E88: @ 8080E88
pop {r0}
bx r0
.align 2, 0
-_08080EB4: .4byte gUnknown_0300485C
+_08080EB4: .4byte gFieldCallback
_08080EB8: .4byte mapldr_default
_08080EBC: .4byte task0A_fade_n_map_maybe
thumb_func_end sub_8080E88
@@ -815,9 +636,9 @@ sp13E_warp_to_last_warp: @ 8080EC0
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
bl PlayRainSoundEffect
- ldr r0, _08080EE4 @ =gUnknown_0300485C
+ ldr r0, _08080EE4 @ =gFieldCallback
ldr r1, _08080EE8 @ =mapldr_default
str r1, [r0]
ldr r0, _08080EEC @ =task0A_fade_n_map_maybe
@@ -826,7 +647,7 @@ sp13E_warp_to_last_warp: @ 8080EC0
pop {r0}
bx r0
.align 2, 0
-_08080EE4: .4byte gUnknown_0300485C
+_08080EE4: .4byte gFieldCallback
_08080EE8: .4byte mapldr_default
_08080EEC: .4byte task0A_fade_n_map_maybe
thumb_func_end sp13E_warp_to_last_warp
@@ -835,7 +656,7 @@ _08080EEC: .4byte task0A_fade_n_map_maybe
sub_8080EF0: @ 8080EF0
push {lr}
bl ScriptContext2_Enable
- ldr r0, _08080F08 @ =gUnknown_0300485C
+ ldr r0, _08080F08 @ =gFieldCallback
ldr r1, _08080F0C @ =mapldr_default
str r1, [r0]
ldr r0, _08080F10 @ =sub_808115C
@@ -844,7 +665,7 @@ sub_8080EF0: @ 8080EF0
pop {r0}
bx r0
.align 2, 0
-_08080F08: .4byte gUnknown_0300485C
+_08080F08: .4byte gFieldCallback
_08080F0C: .4byte mapldr_default
_08080F10: .4byte sub_808115C
thumb_func_end sub_8080EF0
@@ -853,13 +674,13 @@ _08080F10: .4byte sub_808115C
sp13F_fall_to_last_warp: @ 8080F14
push {lr}
bl sp13E_warp_to_last_warp
- ldr r1, _08080F24 @ =gUnknown_0300485C
+ ldr r1, _08080F24 @ =gFieldCallback
ldr r0, _08080F28 @ =sub_8086748
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
-_08080F24: .4byte gUnknown_0300485C
+_08080F24: .4byte gFieldCallback
_08080F28: .4byte sub_8086748
thumb_func_end sp13F_fall_to_last_warp
@@ -903,20 +724,20 @@ sub_8080F68: @ 8080F68
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
movs r0, 0x2D
bl PlaySE
ldr r0, _08080F90 @ =task0A_fade_n_map_maybe
movs r1, 0xA
bl CreateTask
- ldr r1, _08080F94 @ =gUnknown_0300485C
+ ldr r1, _08080F94 @ =gFieldCallback
ldr r0, _08080F98 @ =sub_8080B78
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08080F90: .4byte task0A_fade_n_map_maybe
-_08080F94: .4byte gUnknown_0300485C
+_08080F94: .4byte gFieldCallback
_08080F98: .4byte sub_8080B78
thumb_func_end sub_8080F68
@@ -924,18 +745,18 @@ _08080F98: .4byte sub_8080B78
sub_8080F9C: @ 8080F9C
push {lr}
bl ScriptContext2_Enable
- bl sub_8080918
+ bl fade_8080918
ldr r0, _08080FB8 @ =task0A_fade_n_map_maybe
movs r1, 0xA
bl CreateTask
- ldr r1, _08080FBC @ =gUnknown_0300485C
+ ldr r1, _08080FBC @ =gFieldCallback
ldr r0, _08080FC0 @ =sub_80C791C
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08080FB8: .4byte task0A_fade_n_map_maybe
-_08080FBC: .4byte gUnknown_0300485C
+_08080FBC: .4byte gFieldCallback
_08080FC0: .4byte sub_80C791C
thumb_func_end sub_8080F9C
@@ -999,7 +820,7 @@ sub_808102C: @ 808102C
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
movs r0, 0x9
bl PlaySE
ldr r0, _0808104C @ =sub_8080FC4
@@ -1116,7 +937,7 @@ _08081118:
beq _08081142
b _08081152
_0808111E:
- bl player_bitmagic
+ bl FreezeMapObjects
bl ScriptContext2_Enable
b _0808113A
_08081128:
@@ -1183,7 +1004,7 @@ _08081194:
.4byte _0808128C
.4byte _080812A8
_080811A8:
- bl player_bitmagic
+ bl FreezeMapObjects
adds r0, r4, 0
adds r1, r6, 0
bl PlayerGetDestCoords
@@ -1304,7 +1125,7 @@ _080812A2:
b _080812BC
_080812A8:
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
bl PlayRainSoundEffect
movs r0, 0
strh r0, [r5, 0x8]
@@ -1344,7 +1165,7 @@ _080812F0:
beq _0808131A
b _0808132A
_080812F6:
- bl player_bitmagic
+ bl FreezeMapObjects
bl ScriptContext2_Enable
b _08081312
_08081300:
@@ -1379,11 +1200,11 @@ sub_8081334: @ 8081334
push {lr}
bl ScriptContext2_Enable
bl sub_8053FF8
- bl sub_8080918
+ bl fade_8080918
bl PlayRainSoundEffect
movs r0, 0x9
bl PlaySE
- ldr r0, _08081360 @ =gUnknown_0300485C
+ ldr r0, _08081360 @ =gFieldCallback
ldr r1, _08081364 @ =sub_8080B60
str r1, [r0]
ldr r0, _08081368 @ =sub_80812C8
@@ -1392,789 +1213,9 @@ sub_8081334: @ 8081334
pop {r0}
bx r0
.align 2, 0
-_08081360: .4byte gUnknown_0300485C
+_08081360: .4byte gFieldCallback
_08081364: .4byte sub_8080B60
_08081368: .4byte sub_80812C8
thumb_func_end sub_8081334
-
- thumb_func_start sub_808136C
-sub_808136C: @ 808136C
- push {lr}
- cmp r1, 0xA0
- bhi _08081394
- cmp r2, 0
- bge _08081378
- movs r2, 0
-_08081378:
- cmp r2, 0xFF
- ble _0808137E
- movs r2, 0xFF
-_0808137E:
- cmp r3, 0
- bge _08081384
- movs r3, 0
-_08081384:
- cmp r3, 0xFF
- ble _0808138A
- movs r3, 0xFF
-_0808138A:
- lsls r1, 1
- adds r1, r0
- lsls r0, r2, 8
- orrs r0, r3
- strh r0, [r1]
-_08081394:
- pop {r0}
- bx r0
- thumb_func_end sub_808136C
-
- thumb_func_start sub_8081398
-sub_8081398: @ 8081398
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- mov r10, r1
- mov r9, r2
- adds r6, r3, 0
- mov r8, r6
- movs r7, 0
- cmp r6, 0
- blt _08081414
-_080813B4:
- mov r0, r9
- subs r1, r0, r7
- mov r0, r10
- subs r4, r0, r6
- adds r5, r0, r6
- ldr r0, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_808136C
- mov r0, r9
- adds r1, r0, r7
- ldr r0, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_808136C
- mov r0, r9
- subs r1, r0, r6
- mov r0, r10
- subs r4, r0, r7
- adds r5, r0, r7
- ldr r0, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_808136C
- mov r0, r9
- adds r1, r0, r6
- ldr r0, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_808136C
- mov r1, r8
- adds r1, 0x1
- lsls r0, r7, 1
- subs r1, r0
- mov r8, r1
- adds r7, 0x1
- cmp r1, 0
- bge _08081410
- subs r1, r6, 0x1
- lsls r0, r1, 1
- add r8, r0
- adds r6, r1, 0
-_08081410:
- cmp r6, r7
- bge _080813B4
-_08081414:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8081398
-
- thumb_func_start sub_8081424
-sub_8081424: @ 8081424
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08081448 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08081480
- cmp r0, 0x1
- bgt _0808144C
- cmp r0, 0
- beq _08081452
- b _080814E2
- .align 2, 0
-_08081448: .4byte gTasks + 0x8
-_0808144C:
- cmp r0, 0x2
- beq _080814D8
- b _080814E2
-_08081452:
- ldr r0, _08081478 @ =gUnknown_03004DC0
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _0808147C @ =gUnknown_03004DE0
- adds r0, r1
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r5, 0x6
- ldrsh r3, [r4, r5]
- bl sub_8081398
- movs r0, 0x1
- strh r0, [r4]
- b _080814E2
- .align 2, 0
-_08081478: .4byte gUnknown_03004DC0
-_0808147C: .4byte gUnknown_03004DE0
-_08081480:
- ldr r0, _080814C8 @ =gUnknown_03004DC0
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _080814CC @ =gUnknown_03004DE0
- adds r0, r1
- movs r6, 0x2
- ldrsh r1, [r4, r6]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r6, 0x6
- ldrsh r3, [r4, r6]
- bl sub_8081398
- movs r0, 0
- strh r0, [r4]
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r4, 0x6]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _080814E2
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080814D0
- bl remove_some_task
- movs r0, 0x2
- strh r0, [r4]
- b _080814E2
- .align 2, 0
-_080814C8: .4byte gUnknown_03004DC0
-_080814CC: .4byte gUnknown_03004DE0
-_080814D0:
- adds r0, r5, 0
- bl DestroyTask
- b _080814E2
-_080814D8:
- bl dp12_8087EA4
- adds r0, r5, 0
- bl DestroyTask
-_080814E2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8081424
-
- thumb_func_start sub_80814E8
-sub_80814E8: @ 80814E8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808150C @ =sub_8081424
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08081504
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_08081504:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808150C: .4byte sub_8081424
- thumb_func_end sub_80814E8
-
- thumb_func_start sub_8081510
-sub_8081510: @ 8081510
- push {r4,lr}
- ldr r4, _08081530 @ =sub_80814E8
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08081528
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_08081528:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08081530: .4byte sub_80814E8
- thumb_func_end sub_8081510
-
- thumb_func_start sub_8081534
-sub_8081534: @ 8081534
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- mov r9, r1
- adds r5, r2, 0
- adds r4, r3, 0
- ldr r6, [sp, 0x1C]
- ldr r0, [sp, 0x20]
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08081578 @ =sub_8081424
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0808157C @ =gTasks + 0x8
- adds r1, r0, r1
- strh r5, [r1, 0x6]
- strh r4, [r1, 0x8]
- mov r0, r8
- strh r0, [r1, 0x2]
- mov r0, r9
- strh r0, [r1, 0x4]
- strh r6, [r1, 0xC]
- cmp r5, r4
- bge _08081580
- strh r7, [r1, 0xA]
- b _08081584
- .align 2, 0
-_08081578: .4byte sub_8081424
-_0808157C: .4byte gTasks + 0x8
-_08081580:
- negs r0, r7
- strh r0, [r1, 0xA]
-_08081584:
- adds r0, r2, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8081534
-
- thumb_func_start sub_8081594
-sub_8081594: @ 8081594
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl sav1_get_flash_used_on_map
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- cmp r4, 0
- bne _080815AE
- movs r5, 0x1
-_080815AE:
- ldr r1, _080815DC @ =gUnknown_0839ACDC
- lsls r0, 1
- adds r0, r1
- ldrh r2, [r0]
- lsls r0, r4, 1
- adds r0, r1
- ldrh r3, [r0]
- str r5, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x78
- movs r1, 0x50
- bl sub_8081534
- bl sub_8081510
- bl ScriptContext2_Enable
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080815DC: .4byte gUnknown_0839ACDC
- thumb_func_end sub_8081594
-
- thumb_func_start sub_80815E0
-sub_80815E0: @ 80815E0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0808160E
- ldr r4, _08081614 @ =gUnknown_03004DE0
- ldr r1, _08081618 @ =gUnknown_0839ACDC
- lsls r0, 1
- adds r0, r1
- ldrh r3, [r0]
- adds r0, r4, 0
- movs r1, 0x78
- movs r2, 0x50
- bl sub_8081398
- movs r0, 0xF0
- lsls r0, 3
- adds r1, r4, r0
- movs r2, 0xF0
- lsls r2, 1
- adds r0, r4, 0
- bl CpuFastSet
-_0808160E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08081614: .4byte gUnknown_03004DE0
-_08081618: .4byte gUnknown_0839ACDC
- thumb_func_end sub_80815E0
-
- thumb_func_start sub_808161C
-sub_808161C: @ 808161C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- cmp r0, 0
- bne _0808162A
- movs r1, 0x1F
- b _08081630
-_0808162A:
- movs r0, 0xF8
- lsls r0, 7
- adds r1, r0, 0
-_08081630:
- mov r0, sp
- strh r1, [r0]
- movs r5, 0
- movs r4, 0xF0
- lsls r4, 16
-_0808163A:
- lsrs r1, r4, 16
- mov r0, sp
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0x80
- lsls r0, 9
- adds r4, r0
- adds r5, 0x1
- cmp r5, 0xF
- ble _0808163A
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808161C
-
- thumb_func_start sub_8081658
-sub_8081658: @ 8081658
- push {lr}
- lsls r0, 16
- ldr r2, _08081678 @ =REG_BLDALPHA
- ldrh r1, [r2]
- lsls r1, 24
- lsrs r3, r1, 24
- ldrh r1, [r2]
- lsrs r2, r1, 8
- cmp r0, 0
- beq _0808167C
- cmp r3, 0
- beq _08081686
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _08081686
- .align 2, 0
-_08081678: .4byte REG_BLDALPHA
-_0808167C:
- cmp r2, 0xF
- bhi _08081686
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_08081686:
- ldr r1, _0808169C @ =REG_BLDALPHA
- lsls r0, r2, 8
- orrs r0, r3
- strh r0, [r1]
- cmp r3, 0
- bne _080816A0
- cmp r2, 0x10
- bne _080816A0
- movs r0, 0x1
- b _080816A2
- .align 2, 0
-_0808169C: .4byte REG_BLDALPHA
-_080816A0:
- movs r0, 0
-_080816A2:
- pop {r1}
- bx r1
- thumb_func_end sub_8081658
-
- thumb_func_start sub_80816A8
-sub_80816A8: @ 80816A8
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080816D0 @ =gTasks + 0x8
- adds r7, r0, r1
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0x7
- bls _080816C4
- b _08081892
-_080816C4:
- lsls r0, 2
- ldr r1, _080816D4 @ =_080816D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080816D0: .4byte gTasks + 0x8
-_080816D4: .4byte _080816D8
- .align 2, 0
-_080816D8:
- .4byte _080816F8
- .4byte _08081790
- .4byte _080817BC
- .4byte _080817D8
- .4byte _080817EE
- .4byte _08081852
- .4byte _08081818
- .4byte _08081826
-_080816F8:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- strh r0, [r7, 0xC]
- ldr r3, _0808176C @ =REG_BLDCNT
- ldrh r0, [r3]
- strh r0, [r7, 0xE]
- ldr r6, _08081770 @ =REG_BLDALPHA
- ldrh r0, [r6]
- strh r0, [r7, 0x10]
- ldr r5, _08081774 @ =REG_WININ
- ldrh r0, [r5]
- strh r0, [r7, 0x12]
- ldr r4, _08081778 @ =REG_WINOUT
- ldrh r0, [r4]
- strh r0, [r7, 0x14]
- ldrh r1, [r2]
- ldr r0, _0808177C @ =0x0000bfff
- ands r0, r1
- strh r0, [r2]
- ldr r1, _08081780 @ =gUnknown_081E29E8
- ldrh r0, [r3]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r3]
- ldr r2, _08081784 @ =0x0000070c
- adds r0, r2, 0
- strh r0, [r6]
- movs r0, 0x3F
- strh r0, [r5]
- movs r0, 0x1E
- strh r0, [r4]
- ldr r4, _08081788 @ =gUnknown_03004DE0
- movs r0, 0x4
- ldrsh r1, [r7, r0]
- movs r0, 0x6
- ldrsh r2, [r7, r0]
- adds r0, r4, 0
- movs r3, 0x1
- bl sub_8081398
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r4, r2
- movs r2, 0xF0
- lsls r2, 1
- adds r0, r4, 0
- bl CpuFastSet
- ldr r2, _0808178C @ =gUnknown_0839ACEC
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- ldr r2, [r2, 0x8]
- bl sub_80895F8
- movs r0, 0x1
- strh r0, [r7]
- b _08081892
- .align 2, 0
-_0808176C: .4byte REG_BLDCNT
-_08081770: .4byte REG_BLDALPHA
-_08081774: .4byte REG_WININ
-_08081778: .4byte REG_WINOUT
-_0808177C: .4byte 0x0000bfff
-_08081780: .4byte gUnknown_081E29E8
-_08081784: .4byte 0x0000070c
-_08081788: .4byte gUnknown_03004DE0
-_0808178C: .4byte gUnknown_0839ACEC
-_08081790:
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuFillWindowRectWithBlankTile
- ldrb r0, [r7, 0x2]
- bl sub_808161C
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- movs r2, 0x6
- ldrsh r1, [r7, r2]
- movs r2, 0x1
- str r2, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r3, 0xA0
- bl sub_8081534
- strh r4, [r7]
- b _08081892
-_080817BC:
- ldr r0, _080817D4 @ =sub_8081424
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08081892
- bl EnableBothScriptContexts
- movs r0, 0x3
- strh r0, [r7]
- b _08081892
- .align 2, 0
-_080817D4: .4byte sub_8081424
-_080817D8:
- bl InstallCameraPanAheadCallback
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0
- strh r0, [r7, 0xA]
- movs r0, 0x4
- strh r0, [r7, 0x8]
- strh r0, [r7]
- b _08081892
-_080817EE:
- ldrh r0, [r7, 0x8]
- subs r0, 0x1
- strh r0, [r7, 0x8]
- lsls r0, 16
- cmp r0, 0
- bne _08081892
- movs r0, 0x4
- strh r0, [r7, 0x8]
- ldrh r0, [r7, 0xA]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r7, 0xA]
- movs r1, 0x4
- negs r1, r1
- cmp r0, 0
- beq _08081810
- movs r1, 0x4
-_08081810:
- movs r0, 0
- bl SetCameraPanning
- b _08081892
-_08081818:
- bl InstallCameraPanAheadCallback
- movs r0, 0x8
- strh r0, [r7, 0x8]
- movs r0, 0x7
- strh r0, [r7]
- b _08081892
-_08081826:
- ldrh r0, [r7, 0x8]
- subs r0, 0x1
- strh r0, [r7, 0x8]
- lsls r0, 16
- cmp r0, 0
- bne _08081892
- movs r0, 0x8
- strh r0, [r7, 0x8]
- ldrh r0, [r7, 0xA]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r7, 0xA]
- ldrh r0, [r7, 0xA]
- bl sub_8081658
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08081892
- movs r0, 0x5
- strh r0, [r7]
- b _08081892
-_08081852:
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _0808189C @ =gWindowConfig_81E6CE4
- bl LoadFontDefaultPalette
- ldr r1, _080818A0 @ =REG_WIN0H
- movs r0, 0xFF
- strh r0, [r1]
- subs r1, 0x40
- ldrh r0, [r7, 0xC]
- strh r0, [r1]
- adds r1, 0x50
- ldrh r0, [r7, 0xE]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r7, 0x10]
- strh r0, [r1]
- subs r1, 0xA
- ldrh r0, [r7, 0x12]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r7, 0x14]
- strh r0, [r1]
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_08081892:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808189C: .4byte gWindowConfig_81E6CE4
-_080818A0: .4byte REG_WIN0H
- thumb_func_end sub_80816A8
-
- thumb_func_start sub_80818A4
-sub_80818A4: @ 80818A4
- push {lr}
- ldr r0, _080818CC @ =sub_80816A8
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080818D0 @ =gTasks + 0x8
- adds r1, r0
- ldr r0, _080818D4 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080818D8
- strh r0, [r1, 0x2]
- movs r0, 0x68
- b _080818F0
- .align 2, 0
-_080818CC: .4byte sub_80816A8
-_080818D0: .4byte gTasks + 0x8
-_080818D4: .4byte gScriptResult
-_080818D8:
- cmp r0, 0x1
- bne _080818E2
- strh r0, [r1, 0x2]
- movs r0, 0x68
- b _080818F0
-_080818E2:
- cmp r0, 0x2
- bne _080818EA
- movs r0, 0
- b _080818EC
-_080818EA:
- movs r0, 0x1
-_080818EC:
- strh r0, [r1, 0x2]
- movs r0, 0x78
-_080818F0:
- strh r0, [r1, 0x4]
- movs r0, 0x50
- strh r0, [r1, 0x6]
- pop {r0}
- bx r0
- thumb_func_end sub_80818A4
-
- thumb_func_start sub_80818FC
-sub_80818FC: @ 80818FC
- push {lr}
- ldr r0, _0808191C @ =sub_80816A8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08081920 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x6
- strh r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0808191C: .4byte sub_80816A8
-_08081920: .4byte gTasks
- thumb_func_end sub_80818FC
-
- thumb_func_start sub_8081924
-sub_8081924: @ 8081924
- push {lr}
- bl sub_8054044
- ldr r0, _08081938 @ =task50_0807F0C8
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08081938: .4byte task50_0807F0C8
- thumb_func_end sub_8081924
-
- thumb_func_start task50_0807F0C8
-task50_0807F0C8: @ 808193C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8054034
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08081958
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_08081958:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task50_0807F0C8
-
+
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s
index c853d8c50..47c4b4c60 100644
--- a/asm/field_ground_effect.s
+++ b/asm/field_ground_effect.s
@@ -6,594 +6,6 @@
.text
- thumb_func_start GetAllGroundEffectFlags_OnSpawn
-GetAllGroundEffectFlags_OnSpawn: @ 80635F0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectUpdateMetatileBehaviors
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Reflection
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_TallGrassOnSpawn
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_LongGrassOnSpawn
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_SandHeap
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShallowFlowingWater
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShortGrass
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_HotSprings
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetAllGroundEffectFlags_OnSpawn
-
- thumb_func_start GetAllGroundEffectFlags_OnBeginStep
-GetAllGroundEffectFlags_OnBeginStep: @ 8063638
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectUpdateMetatileBehaviors
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Reflection
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_TallGrassOnBeginStep
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_LongGrassOnBeginStep
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Tracks
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_SandHeap
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShallowFlowingWater
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Puddle
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShortGrass
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_HotSprings
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetAllGroundEffectFlags_OnBeginStep
-
- thumb_func_start GetAllGroundEffectFlags_OnFinishStep
-GetAllGroundEffectFlags_OnFinishStep: @ 8063690
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectUpdateMetatileBehaviors
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShallowFlowingWater
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_SandHeap
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Puddle
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Ripple
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_ShortGrass
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_HotSprings
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_Seaweed
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetGroundEffectFlags_JumpLanding
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetAllGroundEffectFlags_OnFinishStep
-
- thumb_func_start FieldObjectUpdateMetatileBehaviors
-FieldObjectUpdateMetatileBehaviors: @ 80636E0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- strb r0, [r4, 0x1F]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- strb r0, [r4, 0x1E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectUpdateMetatileBehaviors
-
- thumb_func_start GetGroundEffectFlags_Reflection
-GetGroundEffectFlags_Reflection: @ 8063708
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, _0806374C @ =gUnknown_08376008
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- adds r0, r4, 0
- bl FieldObjectCheckForReflectiveSurface
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08063750
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 30
- cmp r0, 0
- blt _0806375A
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x2]
- subs r0, r2, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r5]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r5]
- b _0806375A
- .align 2, 0
-_0806374C: .4byte gUnknown_08376008
-_08063750:
- ldrb r1, [r4, 0x2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_0806375A:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Reflection
-
- thumb_func_start GetGroundEffectFlags_TallGrassOnSpawn
-GetGroundEffectFlags_TallGrassOnSpawn: @ 8063764
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _0806377C
- ldr r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- str r0, [r4]
-_0806377C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_TallGrassOnSpawn
-
- thumb_func_start GetGroundEffectFlags_TallGrassOnBeginStep
-GetGroundEffectFlags_TallGrassOnBeginStep: @ 8063784
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _0806379C
- ldr r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- str r0, [r4]
-_0806379C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_TallGrassOnBeginStep
-
- thumb_func_start GetGroundEffectFlags_LongGrassOnSpawn
-GetGroundEffectFlags_LongGrassOnSpawn: @ 80637A4
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _080637BC
- ldr r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- str r0, [r4]
-_080637BC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_LongGrassOnSpawn
-
- thumb_func_start GetGroundEffectFlags_LongGrassOnBeginStep
-GetGroundEffectFlags_LongGrassOnBeginStep: @ 80637C4
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _080637DC
- ldr r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- str r0, [r4]
-_080637DC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_LongGrassOnBeginStep
-
- thumb_func_start GetGroundEffectFlags_Tracks
-GetGroundEffectFlags_Tracks: @ 80637E4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsDeepSand
- lsls r0, 24
- cmp r0, 0
- beq _080637FE
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 1
- b _0806381A
-_080637FE:
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsSandOrDeepSand
- lsls r0, 24
- cmp r0, 0
- bne _08063816
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsUnusedFootprintMetatile
- lsls r0, 24
- cmp r0, 0
- beq _0806381E
-_08063816:
- ldr r0, [r5]
- movs r1, 0x80
-_0806381A:
- orrs r0, r1
- str r0, [r5]
-_0806381E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Tracks
-
- thumb_func_start GetGroundEffectFlags_SandHeap
-GetGroundEffectFlags_SandHeap: @ 8063824
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsDeepSand
- lsls r0, 24
- cmp r0, 0
- beq _08063862
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsDeepSand
- lsls r0, 24
- cmp r0, 0
- beq _08063862
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 27
- cmp r0, 0
- blt _0806386C
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4, 0x2]
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 4
- orrs r0, r1
- str r0, [r5]
- b _0806386C
-_08063862:
- ldrb r1, [r4, 0x2]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_0806386C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_SandHeap
-
- thumb_func_start GetGroundEffectFlags_ShallowFlowingWater
-GetGroundEffectFlags_ShallowFlowingWater: @ 8063874
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsShallowFlowingWater
- lsls r0, 24
- cmp r0, 0
- beq _08063892
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsShallowFlowingWater
- lsls r0, 24
- cmp r0, 0
- bne _080638AA
-_08063892:
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080638C8
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080638C8
-_080638AA:
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 28
- cmp r0, 0
- blt _080638D2
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x2]
- ldr r0, [r5]
- movs r1, 0x40
- orrs r0, r1
- str r0, [r5]
- b _080638D2
-_080638C8:
- ldrb r1, [r4, 0x2]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_080638D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_ShallowFlowingWater
-
- thumb_func_start GetGroundEffectFlags_Puddle
-GetGroundEffectFlags_Puddle: @ 80638D8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsPuddle
- lsls r0, 24
- cmp r0, 0
- beq _08063900
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsPuddle
- lsls r0, 24
- cmp r0, 0
- beq _08063900
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 3
- orrs r0, r1
- str r0, [r5]
-_08063900:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Puddle
-
- thumb_func_start GetGroundEffectFlags_Ripple
-GetGroundEffectFlags_Ripple: @ 8063908
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_HasRipples
- lsls r0, 24
- cmp r0, 0
- beq _08063922
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- str r0, [r4]
-_08063922:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Ripple
-
- thumb_func_start GetGroundEffectFlags_ShortGrass
-GetGroundEffectFlags_ShortGrass: @ 8063928
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsShortGrass
- lsls r0, 24
- cmp r0, 0
- beq _08063966
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsShortGrass
- lsls r0, 24
- cmp r0, 0
- beq _08063966
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 29
- cmp r0, 0
- blt _08063970
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x2]
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 10
- orrs r0, r1
- str r0, [r5]
- b _08063970
-_08063966:
- ldrb r1, [r4, 0x2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_08063970:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_ShortGrass
-
- thumb_func_start GetGroundEffectFlags_HotSprings
-GetGroundEffectFlags_HotSprings: @ 8063978
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsHotSprings
- lsls r0, 24
- cmp r0, 0
- beq _080639B6
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsHotSprings
- lsls r0, 24
- cmp r0, 0
- beq _080639B6
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 26
- cmp r0, 0
- blt _080639C0
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x2]
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 11
- orrs r0, r1
- str r0, [r5]
- b _080639C0
-_080639B6:
- ldrb r1, [r4, 0x2]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
-_080639C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_HotSprings
-
- thumb_func_start GetGroundEffectFlags_Seaweed
-GetGroundEffectFlags_Seaweed: @ 80639C8
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsSeaweed
- lsls r0, 24
- cmp r0, 0
- beq _080639E2
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r4]
-_080639E2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_Seaweed
-
- thumb_func_start GetGroundEffectFlags_JumpLanding
-GetGroundEffectFlags_JumpLanding: @ 80639E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r6, r1, 0
- ldr r0, [r7]
- ldr r1, _08063A24 @ =0x02000020
- ands r0, r1
- cmp r0, 0x20
- bne _08063A3A @ Is player landing after jumping?
- movs r5, 0
- ldr r0, _08063A28 @ =gJumpLanding_MetatileFunctionPointers
- mov r8, r0
-_08063A02:
- lsls r4, r5, 2
- mov r0, r8
- adds r1, r4, r0
- ldrb r0, [r7, 0x1E] @ Load metatile behavior
- ldr r1, [r1]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _08063A30
- ldr r0, _08063A2C @ =gJumpLanding_Bitmasks
- adds r0, r4, r0
- ldr r1, [r6]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r6]
- b _08063A3A
- .align 2, 0
-_08063A24: .4byte 0x02000020
-_08063A28: .4byte gJumpLanding_MetatileFunctionPointers
-_08063A2C: .4byte gJumpLanding_Bitmasks
-_08063A30:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08063A02
-_08063A3A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end GetGroundEffectFlags_JumpLanding
-
thumb_func_start FieldObjectCheckForReflectiveSurface
FieldObjectCheckForReflectiveSurface: @ 8063A44
push {r4-r7,lr}
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index b884252be..c8c402217 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -6,10218 +6,7 @@
.text
- thumb_func_start npc_clear_ids_and_state
-npc_clear_ids_and_state: @ 805AA50
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- movs r2, 0x24
- bl memset
- movs r0, 0xFF
- strb r0, [r4, 0x8]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4, 0x9]
- strb r0, [r4, 0xA]
- strb r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end npc_clear_ids_and_state
-
- thumb_func_start npcs_clear_ids_and_state
-npcs_clear_ids_and_state: @ 805AA70
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0805AA94 @ =gMapObjects
-_0805AA76:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- bl npc_clear_ids_and_state
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _0805AA76
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805AA94: .4byte gMapObjects
- thumb_func_end npcs_clear_ids_and_state
-
- thumb_func_start sub_805AA98
-sub_805AA98: @ 805AA98
- push {lr}
- bl strange_npc_table_clear
- bl npcs_clear_ids_and_state
- bl ClearPlayerAvatarInfo
- bl sub_805AAB0
- pop {r0}
- bx r0
- thumb_func_end sub_805AA98
-
- thumb_func_start sub_805AAB0
-sub_805AAB0: @ 805AAB0
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- ldr r0, _0805AB4C @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x54]
- mov r9, r0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805AB50 @ =gSprites
- mov r10, r1
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r10
- ldrb r1, [r4, 0x1]
- movs r5, 0x4
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- movs r1, 0x1
- mov r8, r1
- mov r1, r8
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r6, 0x4
- orrs r0, r6
- strb r0, [r4]
- mov r0, r9
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r10
- ldrb r0, [r4, 0x1]
- ands r5, r0
- mov r0, r8
- orrs r5, r0
- strb r5, [r4, 0x1]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- adds r4, 0x3E
- ldrb r0, [r4]
- orrs r0, r6
- strb r0, [r4]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805AB4C: .4byte gFieldEffectObjectTemplatePointers
-_0805AB50: .4byte gSprites
- thumb_func_end sub_805AAB0
-
- thumb_func_start sub_805AB54
-sub_805AB54: @ 805AB54
- push {lr}
- movs r1, 0
- ldr r2, _0805AB60 @ =gMapObjects
- ldrb r0, [r2]
- b _0805AB78
- .align 2, 0
-_0805AB60: .4byte gMapObjects
-_0805AB64:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bhi _0805AB7E
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
-_0805AB78:
- lsls r0, 31
- cmp r0, 0
- bne _0805AB64
-_0805AB7E:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_805AB54
-
- thumb_func_start GetFieldObjectIdByLocalIdAndMap
-GetFieldObjectIdByLocalIdAndMap: @ 805AB84
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r0, 0xFE
- bls _0805AB9C
- bl GetFieldObjectIdByLocalId
- b _0805ABA0
-_0805AB9C:
- bl GetFieldObjectIdByLocalIdAndMapInternal
-_0805ABA0:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectIdByLocalIdAndMap
-
- thumb_func_start TryGetFieldObjectIdByLocalIdAndMap
-TryGetFieldObjectIdByLocalIdAndMap: @ 805ABA8
- push {r4,lr}
- adds r4, r3, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- bl GetFieldObjectIdByLocalIdAndMap
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _0805ABCA
- movs r0, 0
- b _0805ABCC
-_0805ABCA:
- movs r0, 0x1
-_0805ABCC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end TryGetFieldObjectIdByLocalIdAndMap
-
- thumb_func_start GetFieldObjectIdByXY
-GetFieldObjectIdByXY: @ 805ABD4
- push {r4-r6,lr}
- movs r3, 0
- ldr r5, _0805AC14 @ =gMapObjects
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 16
- asrs r1, 16
-_0805ABE2:
- lsls r0, r3, 3
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r5
- ldrb r0, [r2]
- lsls r0, 31
- cmp r0, 0
- beq _0805AC02
- movs r6, 0x10
- ldrsh r0, [r2, r6]
- cmp r0, r4
- bne _0805AC02
- movs r6, 0x12
- ldrsh r0, [r2, r6]
- cmp r0, r1
- beq _0805AC0C
-_0805AC02:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _0805ABE2
-_0805AC0C:
- adds r0, r3, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805AC14: .4byte gMapObjects
- thumb_func_end GetFieldObjectIdByXY
-
- thumb_func_start GetFieldObjectIdByLocalIdAndMapInternal
-GetFieldObjectIdByLocalIdAndMapInternal: @ 805AC18
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- ldr r6, _0805AC50 @ =gMapObjects
-_0805AC2A:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r6
- ldrb r0, [r3]
- lsls r0, 31
- cmp r0, 0
- beq _0805AC54
- ldrb r0, [r3, 0x8]
- cmp r0, r5
- bne _0805AC54
- ldrb r0, [r3, 0x9]
- cmp r0, r4
- bne _0805AC54
- ldrb r0, [r3, 0xA]
- cmp r0, r2
- bne _0805AC54
- adds r0, r1, 0
- b _0805AC60
- .align 2, 0
-_0805AC50: .4byte gMapObjects
-_0805AC54:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _0805AC2A
- movs r0, 0x10
-_0805AC60:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectIdByLocalIdAndMapInternal
-
- thumb_func_start GetFieldObjectIdByLocalId
-GetFieldObjectIdByLocalId: @ 805AC68
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r4, _0805AC8C @ =gMapObjects
-_0805AC72:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _0805AC90
- ldrb r0, [r1, 0x8]
- cmp r0, r3
- bne _0805AC90
- adds r0, r2, 0
- b _0805AC9C
- .align 2, 0
-_0805AC8C: .4byte gMapObjects
-_0805AC90:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _0805AC72
- movs r0, 0x10
-_0805AC9C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectIdByLocalId
-
- thumb_func_start InitFieldObjectStateFromTemplate
-InitFieldObjectStateFromTemplate: @ 805ACA4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- ldrb r0, [r5]
- adds r1, r6, 0
- adds r2, r7, 0
- mov r3, sp
- bl GetAvailableFieldObjectSlot
- lsls r0, 24
- cmp r0, 0
- beq _0805ACCE
- movs r0, 0x10
- b _0805ADC2
-_0805ACCE:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805ADD0 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl npc_clear_ids_and_state
- ldrh r3, [r5, 0x4]
- adds r3, 0x7
- lsls r3, 16
- lsrs r3, 16
- ldrh r2, [r5, 0x6]
- adds r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- ldrb r0, [r5, 0x1]
- strb r0, [r4, 0x5]
- ldrb r0, [r5, 0x9]
- strb r0, [r4, 0x6]
- ldrb r0, [r5]
- strb r0, [r4, 0x8]
- strb r6, [r4, 0x9]
- strb r7, [r4, 0xA]
- strh r3, [r4, 0xC]
- strh r2, [r4, 0xE]
- strh r3, [r4, 0x10]
- strh r2, [r4, 0x12]
- strh r3, [r4, 0x14]
- strh r2, [r4, 0x16]
- ldrb r0, [r5, 0x8]
- movs r7, 0xF
- adds r1, r7, 0
- ands r1, r0
- ldrb r2, [r4, 0xB]
- movs r0, 0x10
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0xB]
- ldrb r1, [r5, 0x8]
- lsls r1, 4
- ands r0, r7
- orrs r0, r1
- strb r0, [r4, 0xB]
- ldrb r1, [r5, 0xA]
- lsls r1, 28
- movs r0, 0xF
- mov r9, r0
- lsrs r1, 28
- ldrb r2, [r4, 0x19]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x19]
- ldrb r1, [r5, 0xA]
- lsrs r1, 4
- lsls r1, 4
- ands r0, r7
- orrs r0, r1
- strb r0, [r4, 0x19]
- ldrh r0, [r5, 0xC]
- strb r0, [r4, 0x7]
- ldrh r0, [r5, 0xE]
- strb r0, [r4, 0x1D]
- ldr r1, _0805ADD4 @ =gUnknown_0836DC09
- ldrb r0, [r5, 0x9]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- strb r1, [r0]
- ldrb r1, [r0]
- adds r0, r4, 0
- bl FieldObjectSetDirection
- adds r0, r4, 0
- bl FieldObjectHandleDynamicGraphicsId
- ldr r1, _0805ADD8 @ =gUnknown_0836DBBC
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0805ADBE
- ldrb r2, [r4, 0x19]
- adds r0, r7, 0
- ands r0, r2
- cmp r0, 0
- bne _0805ADA6
- lsls r0, r2, 28
- lsrs r0, 28
- adds r0, 0x1
- mov r1, r9
- ands r0, r1
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x19]
-_0805ADA6:
- ldrb r2, [r4, 0x19]
- movs r0, 0xF0
- ands r0, r2
- cmp r0, 0
- bne _0805ADBE
- lsrs r1, r2, 4
- adds r1, 0x1
- lsls r1, 4
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x19]
-_0805ADBE:
- mov r0, sp
- ldrb r0, [r0]
-_0805ADC2:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805ADD0: .4byte gMapObjects
-_0805ADD4: .4byte gUnknown_0836DC09
-_0805ADD8: .4byte gUnknown_0836DBBC
- thumb_func_end InitFieldObjectStateFromTemplate
-
- thumb_func_start sub_805ADDC
-sub_805ADDC: @ 805ADDC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0805ADF4 @ =gMapHeader
- ldr r0, [r0, 0x4]
- cmp r0, 0
- bne _0805AE10
- b _0805AE3E
- .align 2, 0
-_0805ADF4: .4byte gMapHeader
-_0805ADF8:
- ldr r1, _0805AE0C @ =0xfffff3e0
- adds r0, r7, r1
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- adds r0, r4, 0
- bl InitFieldObjectStateFromTemplate
- lsls r0, 24
- lsrs r0, 24
- b _0805AE40
- .align 2, 0
-_0805AE0C: .4byte 0xfffff3e0
-_0805AE10:
- ldrb r6, [r0]
- movs r5, 0
- cmp r5, r6
- bcs _0805AE3E
- ldr r7, _0805AE4C @ =gSaveBlock1 + 0xC20
-_0805AE1A:
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r7
- ldrb r0, [r4]
- cmp r0, r8
- bne _0805AE34
- ldrh r0, [r4, 0x14]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0805ADF8
-_0805AE34:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _0805AE1A
-_0805AE3E:
- movs r0, 0x10
-_0805AE40:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805AE4C: .4byte gSaveBlock1 + 0xC20
- thumb_func_end sub_805ADDC
-
- thumb_func_start GetAvailableFieldObjectSlot
-GetAvailableFieldObjectSlot: @ 805AE50
- push {r4-r7,lr}
- mov r12, r3
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r2, 0
- ldr r1, _0805AEAC @ =gMapObjects
- ldrb r0, [r1]
- lsls r0, 31
- adds r7, r1, 0
- cmp r0, 0
- beq _0805AEA4
- adds r3, r1, 0
-_0805AE70:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r3
- ldrb r0, [r1, 0x8]
- cmp r0, r6
- bne _0805AE8A
- ldrb r0, [r1, 0x9]
- cmp r0, r5
- bne _0805AE8A
- ldrb r0, [r1, 0xA]
- cmp r0, r4
- beq _0805AEA8
-_0805AE8A:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bhi _0805AEA8
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0805AE70
-_0805AEA4:
- cmp r2, 0xF
- bls _0805AEB0
-_0805AEA8:
- movs r0, 0x1
- b _0805AEE4
- .align 2, 0
-_0805AEAC: .4byte gMapObjects
-_0805AEB0:
- mov r0, r12
- strb r2, [r0]
- ldr r1, _0805AEEC @ =gMapObjects
-_0805AEB6:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3]
- lsls r0, 31
- cmp r0, 0
- beq _0805AED8
- ldrb r0, [r3, 0x8]
- cmp r0, r6
- bne _0805AED8
- ldrb r0, [r3, 0x9]
- cmp r0, r5
- bne _0805AED8
- ldrb r0, [r3, 0xA]
- cmp r0, r4
- beq _0805AEA8
-_0805AED8:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _0805AEB6
- movs r0, 0
-_0805AEE4:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805AEEC: .4byte gMapObjects
- thumb_func_end GetAvailableFieldObjectSlot
-
- thumb_func_start RemoveFieldObject
-RemoveFieldObject: @ 805AEF0
- push {lr}
- ldrb r2, [r0]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bl RemoveFieldObjectInternal
- pop {r0}
- bx r0
- thumb_func_end RemoveFieldObject
-
- thumb_func_start RemoveFieldObjectByLocalIdAndMap
-RemoveFieldObjectByLocalIdAndMap: @ 805AF04
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0805AF42
- mov r0, sp
- ldrb r0, [r0]
- bl GetFieldObjectFlagIdByFieldObjectId
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805AF48 @ =gMapObjects
- adds r0, r1
- bl RemoveFieldObject
-_0805AF42:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0805AF48: .4byte gMapObjects
- thumb_func_end RemoveFieldObjectByLocalIdAndMap
-
- thumb_func_start RemoveFieldObjectInternal
-RemoveFieldObjectInternal: @ 805AF4C
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldrb r0, [r4, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrh r2, [r0, 0x6]
- ldr r1, _0805AF90 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- ldr r2, _0805AF94 @ =gSprites
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0xC
- adds r0, r1
- mov r1, sp
- str r1, [r0]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- bl DestroySprite
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805AF90: .4byte 0xffff0000
-_0805AF94: .4byte gSprites
- thumb_func_end RemoveFieldObjectInternal
-
- thumb_func_start npc_hide_all_but_player
-npc_hide_all_but_player: @ 805AF98
- push {r4,lr}
- movs r4, 0
-_0805AF9C:
- ldr r0, _0805AFC4 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- beq _0805AFB2
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- ldr r1, _0805AFC8 @ =gMapObjects
- adds r0, r1
- bl RemoveFieldObject
-_0805AFB2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _0805AF9C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805AFC4: .4byte gPlayerAvatar
-_0805AFC8: .4byte gMapObjects
- thumb_func_end npc_hide_all_but_player
-
- thumb_func_start sub_805AFCC
-sub_805AFCC: @ 805AFCC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x24]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- lsls r4, 16
- lsrs r4, 16
- mov r10, r4
- bl InitFieldObjectStateFromTemplate
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x10
- bne _0805B006
- movs r0, 0x10
- b _0805B154
-_0805B006:
- mov r0, r8
- lsls r4, r0, 3
- adds r0, r4, r0
- lsls r0, 2
- ldr r1, _0805B030 @ =gMapObjects
- adds r5, r0, r1
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r6, r0, 0
- ldrb r1, [r6, 0xC]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _0805B034
- ldrh r0, [r6, 0x2]
- lsls r1, 28
- lsrs r1, 28
- bl npc_load_two_palettes__no_record
- b _0805B042
- .align 2, 0
-_0805B030: .4byte gMapObjects
-_0805B034:
- cmp r0, 0xA
- bne _0805B042
- ldrh r0, [r6, 0x2]
- lsls r1, 28
- lsrs r1, 28
- bl npc_load_two_palettes__and_record
-_0805B042:
- ldrb r0, [r5, 0x6]
- cmp r0, 0x4C
- bne _0805B050
- ldrb r0, [r5, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r5, 0x1]
-_0805B050:
- ldr r1, _0805B084 @ =0x0000ffff
- adds r0, r1, 0
- strh r0, [r7, 0x2]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x40
- bne _0805B08C
- ldr r0, _0805B088 @ =gMapObjects
- mov r2, r8
- adds r1, r4, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- movs r0, 0x10
- b _0805B154
- .align 2, 0
-_0805B084: .4byte 0x0000ffff
-_0805B088: .4byte gMapObjects
-_0805B08C:
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _0805B164 @ =gSprites
- adds r4, r0, r1
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- ldrh r2, [r5, 0x10]
- adds r0, r2
- lsls r0, 16
- asrs r0, 16
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- ldrh r2, [r5, 0x12]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl sub_8060388
- ldrh r0, [r6, 0x8]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r1, r4, 0
- adds r1, 0x28
- strb r0, [r1]
- ldrh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r2, r4, 0
- adds r2, 0x29
- strb r0, [r2]
- ldrh r0, [r4, 0x20]
- adds r0, 0x8
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r1, 0x10
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrb r1, [r6, 0xC]
- lsls r1, 28
- lsrs r1, 24
- ldrb r2, [r4, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- mov r0, r8
- strh r0, [r4, 0x2E]
- strb r7, [r5, 0x4]
- ldrb r1, [r6, 0xC]
- lsls r1, 25
- lsrs r1, 31
- lsls r1, 4
- ldrb r2, [r5, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x1]
- lsls r0, 27
- cmp r0, 0
- blt _0805B13E
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_0805B13E:
- ldrb r0, [r5, 0xB]
- lsrs r0, 4
- adds r1, r4, 0
- movs r2, 0x1
- bl SetObjectSubpriorityByZCoord
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80634D0
- mov r0, r8
-_0805B154:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805B164: .4byte gSprites
- thumb_func_end sub_805AFCC
-
- thumb_func_start SpawnFieldObject
-SpawnFieldObject: @ 805B168
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x2C
- mov r9, r0
- adds r6, r1, 0
- mov r8, r2
- adds r4, r3, 0
- ldr r5, [sp, 0x48]
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- movs r0, 0
- str r0, [sp, 0x20]
- mov r1, r9
- ldrb r0, [r1, 0x1]
- bl GetFieldObjectGraphicsInfo
- adds r7, r0, 0
- add r2, sp, 0x20
- mov r0, r9
- add r1, sp, 0x8
- bl MakeObjectTemplateFromFieldObjectTemplate
- ldrh r3, [r7, 0x6]
- ldr r2, _0805B1E0 @ =0xffff0000
- add r1, sp, 0x24
- ldr r0, [r1, 0x4]
- ands r0, r2
- orrs r0, r3
- str r0, [r1, 0x4]
- str r1, [sp, 0x14]
- lsls r4, 16
- asrs r4, 16
- str r4, [sp]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x4]
- mov r0, r9
- add r1, sp, 0x8
- adds r2, r6, 0
- mov r3, r8
- bl sub_805AFCC
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- cmp r2, 0x10
- bne _0805B1E4
- movs r0, 0x10
- b _0805B21A
- .align 2, 0
-_0805B1E0: .4byte 0xffff0000
-_0805B1E4:
- ldr r4, _0805B228 @ =gSprites
- ldr r1, _0805B22C @ =gMapObjects
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r1, [r3, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r1
- ldr r1, [r7, 0x1C]
- str r1, [r0]
- ldr r2, [sp, 0x20]
- cmp r2, 0
- beq _0805B218
- ldrb r1, [r3, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r1, r2, 0
- bl SetSubspriteTables
-_0805B218:
- adds r0, r5, 0
-_0805B21A:
- add sp, 0x2C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805B228: .4byte gSprites
-_0805B22C: .4byte gMapObjects
- thumb_func_end SpawnFieldObject
-
- thumb_func_start SpawnSpecialFieldObject
-SpawnSpecialFieldObject: @ 805B230
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- mov r4, sp
- adds r4, 0x6
- add r0, sp, 0x4
- adds r1, r4, 0
- bl GetFieldObjectMovingCameraOffset
- ldr r0, _0805B268 @ =gSaveBlock1
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- add r0, sp, 0x4
- movs r6, 0
- ldrsh r3, [r0, r6]
- movs r6, 0
- ldrsh r0, [r4, r6]
- str r0, [sp]
- adds r0, r5, 0
- bl SpawnFieldObject
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805B268: .4byte gSaveBlock1
- thumb_func_end SpawnSpecialFieldObject
-
- thumb_func_start SpawnSpecialFieldObjectParametrized
-SpawnSpecialFieldObjectParametrized: @ 805B26C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- ldr r4, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- mov r8, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 16
- ldr r5, _0805B2D0 @ =0xfff90000
- adds r3, r5
- lsrs r3, 16
- lsls r4, 16
- adds r4, r5
- lsrs r4, 16
- mov r5, sp
- movs r6, 0
- strb r2, [r5]
- mov r2, sp
- strb r0, [r2, 0x1]
- mov r0, sp
- strb r6, [r0, 0x2]
- movs r5, 0
- strh r3, [r0, 0x4]
- strh r4, [r0, 0x6]
- mov r2, r8
- strb r2, [r0, 0x8]
- strb r1, [r0, 0x9]
- mov r2, sp
- ldrb r1, [r2, 0xA]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0xA]
- mov r0, sp
- strb r5, [r0, 0xA]
- strh r6, [r0, 0xC]
- strh r6, [r0, 0xE]
- bl SpawnSpecialFieldObject
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805B2D0: .4byte 0xfff90000
- thumb_func_end SpawnSpecialFieldObjectParametrized
-
- thumb_func_start show_sprite
-show_sprite: @ 805B2D4
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- adds r1, r7, 0
- adds r2, r6, 0
- bl GetFieldObjectTemplateByLocalIdAndMap
- adds r5, r0, 0
- cmp r5, 0
- beq _0805B31A
- mov r4, sp
- adds r4, 0x6
- add r0, sp, 0x4
- adds r1, r4, 0
- bl GetFieldObjectMovingCameraOffset
- add r0, sp, 0x4
- movs r1, 0
- ldrsh r3, [r0, r1]
- movs r1, 0
- ldrsh r0, [r4, r1]
- str r0, [sp]
- adds r0, r5, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl SpawnFieldObject
- lsls r0, 24
- lsrs r0, 24
- b _0805B31C
-_0805B31A:
- movs r0, 0x10
-_0805B31C:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end show_sprite
-
- thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfo
-MakeObjectTemplateFromFieldObjectGraphicsInfo: @ 805B324
- push {r4-r6,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- adds r6, r3, 0
- lsls r0, 24
- lsrs r0, 24
- bl GetFieldObjectGraphicsInfo
- ldrh r1, [r0]
- strh r1, [r4]
- ldrh r1, [r0, 0x2]
- strh r1, [r4, 0x2]
- ldr r1, [r0, 0x10]
- str r1, [r4, 0x4]
- ldr r1, [r0, 0x18]
- str r1, [r4, 0x8]
- ldr r1, [r0, 0x1C]
- str r1, [r4, 0xC]
- ldr r1, [r0, 0x20]
- str r1, [r4, 0x10]
- str r5, [r4, 0x14]
- ldr r0, [r0, 0x14]
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfo
-
- thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
-MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex: @ 805B358
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- ldr r4, _0805B374 @ =gUnknown_0836DA88
- lsrs r1, 14
- adds r1, r4
- ldr r1, [r1]
- bl MakeObjectTemplateFromFieldObjectGraphicsInfo
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805B374: .4byte gUnknown_0836DA88
- thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
-
- thumb_func_start MakeObjectTemplateFromFieldObjectTemplate
-MakeObjectTemplateFromFieldObjectTemplate: @ 805B378
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4, 0x9]
- adds r2, r5, 0
- bl MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end MakeObjectTemplateFromFieldObjectTemplate
-
- thumb_func_start AddPseudoFieldObject
-AddPseudoFieldObject: @ 805B390
- push {r4-r6,lr}
- sub sp, 0x1C
- ldr r4, [sp, 0x2C]
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r3, 16
- lsrs r5, r3, 16
- lsls r4, 24
- lsrs r4, 24
- add r3, sp, 0x18
- mov r2, sp
- bl MakeObjectTemplateFromFieldObjectGraphicsInfo
- mov r0, sp
- ldrh r1, [r0, 0x2]
- ldr r0, _0805B408 @ =0x0000ffff
- cmp r1, r0
- beq _0805B3C0
- mov r0, sp
- ldrh r0, [r0, 0x2]
- bl sub_805BDF8
-_0805B3C0:
- lsls r1, r6, 16
- asrs r1, 16
- lsls r2, r5, 16
- asrs r2, 16
- mov r0, sp
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _0805B3FC
- ldr r1, [sp, 0x18]
- cmp r1, 0
- beq _0805B3FC
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r0, _0805B40C @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- bl SetSubspriteTables
- adds r4, 0x42
- ldrb r1, [r4]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4]
-_0805B3FC:
- adds r0, r5, 0
- add sp, 0x1C
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805B408: .4byte 0x0000ffff
-_0805B40C: .4byte gSprites
- thumb_func_end AddPseudoFieldObject
-
- thumb_func_start sub_805B410
-sub_805B410: @ 805B410
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- adds r5, r0, 0
- ldr r0, [sp, 0x44]
- ldr r4, [sp, 0x48]
- lsls r5, 24
- lsrs r5, 24
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- add r1, sp, 0x18
- mov r8, r1
- strh r2, [r1]
- mov r6, sp
- adds r6, 0x1A
- strh r3, [r6]
- lsls r0, 24
- lsrs r7, r0, 24
- mov r9, r7
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x20]
- adds r0, r5, 0
- bl GetFieldObjectGraphicsInfo
- adds r4, r0, 0
- ldr r1, _0805B550 @ =sub_8064970
- add r3, sp, 0x1C
- adds r0, r5, 0
- mov r2, sp
- bl MakeObjectTemplateFromFieldObjectGraphicsInfo
- mov r1, sp
- ldr r2, _0805B554 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1, 0x2]
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- adds r0, 0x7
- strh r0, [r1]
- movs r1, 0
- ldrsh r0, [r6, r1]
- adds r0, 0x7
- strh r0, [r6]
- mov r0, r8
- adds r1, r6, 0
- movs r2, 0x8
- movs r3, 0x10
- bl sub_8060470
- mov r2, r8
- movs r0, 0
- ldrsh r1, [r2, r0]
- movs r0, 0
- ldrsh r2, [r6, r0]
- mov r0, sp
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _0805B53C
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, _0805B558 @ =gSprites
- adds r5, r0, r1
- ldrh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r1, r5, 0
- adds r1, 0x28
- strb r0, [r1]
- ldrh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r1, 0x1
- strb r0, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrb r1, [r4, 0xC]
- lsls r1, 28
- lsrs r1, 24
- ldrb r3, [r5, 0x5]
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r3
- orrs r0, r1
- strb r0, [r5, 0x5]
- adds r3, r5, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- mov r0, r10
- strh r0, [r5, 0x2E]
- strh r7, [r5, 0x30]
- ldrb r1, [r4, 0xC]
- ands r2, r1
- cmp r2, 0xA
- bne _0805B4FC
- ldrh r0, [r4, 0x2]
- lsls r1, 28
- lsrs r1, 28
- bl npc_load_two_palettes__and_record
-_0805B4FC:
- ldr r1, [sp, 0x1C]
- cmp r1, 0
- beq _0805B518
- adds r0, r5, 0
- bl SetSubspriteTables
- adds r2, r5, 0
- adds r2, 0x42
- ldrb r0, [r2]
- movs r1, 0x3F
- ands r1, r0
- movs r0, 0x80
- orrs r1, r0
- strb r1, [r2]
-_0805B518:
- adds r0, r5, 0
- mov r1, r9
- bl InitObjectPriorityByZCoord
- mov r0, r9
- adds r1, r5, 0
- movs r2, 0x1
- bl SetObjectSubpriorityByZCoord
- ldr r0, [sp, 0x20]
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
-_0805B53C:
- adds r0, r6, 0
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805B550: .4byte sub_8064970
-_0805B554: .4byte 0x0000ffff
-_0805B558: .4byte gSprites
- thumb_func_end sub_805B410
-
- thumb_func_start sub_805B55C
-sub_805B55C: @ 805B55C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x4]
- ldr r0, _0805B628 @ =gMapHeader
- ldr r5, [r0, 0x4]
- cmp r5, 0
- beq _0805B618
- ldr r4, _0805B62C @ =gSaveBlock1
- ldrh r0, [r4]
- subs r1, r0, 0x2
- lsls r1, 16
- lsrs r1, 16
- adds r0, 0x11
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- ldrh r2, [r4, 0x2]
- adds r0, r2, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- ldrb r6, [r5]
- movs r5, 0
- cmp r5, r6
- bcs _0805B618
- lsls r0, r2, 16
- asrs r0, 16
- mov r10, r0
- adds r7, r4, 0
- lsls r0, r1, 16
- asrs r0, 16
- mov r9, r0
- lsls r3, 16
- mov r8, r3
-_0805B5B2:
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- ldr r1, _0805B630 @ =gSaveBlock1 + 0xC20
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r4, 0x6]
- adds r0, 0x7
- lsls r0, 16
- asrs r1, r0, 16
- cmp r10, r1
- bgt _0805B60E
- ldr r3, [sp, 0xC]
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r1
- blt _0805B60E
- lsls r0, r2, 16
- asrs r1, r0, 16
- cmp r9, r1
- bgt _0805B60E
- ldr r2, [sp, 0x8]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, r1
- blt _0805B60E
- ldrh r0, [r4, 0x14]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0805B60E
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- ldr r3, [sp, 0x4]
- lsls r0, r3, 16
- asrs r0, 16
- str r0, [sp]
- adds r0, r4, 0
- mov r4, r8
- asrs r3, r4, 16
- bl SpawnFieldObject
-_0805B60E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _0805B5B2
-_0805B618:
- 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
-_0805B628: .4byte gMapHeader
-_0805B62C: .4byte gSaveBlock1
-_0805B630: .4byte gSaveBlock1 + 0xC20
- thumb_func_end sub_805B55C
-
- thumb_func_start RemoveFieldObjectsOutsideView
-RemoveFieldObjectsOutsideView: @ 805B634
- push {r4-r6,lr}
- movs r3, 0
- ldr r6, _0805B688 @ =gLinkPlayerMapObjects
-_0805B63A:
- movs r2, 0
- movs r4, 0
- adds r5, r3, 0x1
-_0805B640:
- lsls r0, r2, 2
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _0805B652
- ldrb r1, [r1, 0x2]
- cmp r3, r1
- bne _0805B652
- movs r4, 0x1
-_0805B652:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _0805B640
- cmp r4, 0
- bne _0805B67A
- lsls r0, r3, 3
- adds r0, r3
- lsls r0, 2
- ldr r1, _0805B68C @ =gMapObjects
- adds r2, r0, r1
- ldr r0, [r2]
- ldr r1, _0805B690 @ =0x00010001
- ands r0, r1
- cmp r0, 0x1
- bne _0805B67A
- adds r0, r2, 0
- bl RemoveFieldObjectIfOutsideView
-_0805B67A:
- lsls r0, r5, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _0805B63A
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805B688: .4byte gLinkPlayerMapObjects
-_0805B68C: .4byte gMapObjects
-_0805B690: .4byte 0x00010001
- thumb_func_end RemoveFieldObjectsOutsideView
-
- thumb_func_start RemoveFieldObjectIfOutsideView
-RemoveFieldObjectIfOutsideView: @ 805B694
- push {r4-r7,lr}
- adds r3, r0, 0
- ldr r2, _0805B70C @ =gSaveBlock1
- ldrh r0, [r2]
- subs r1, r0, 0x2
- lsls r1, 16
- adds r0, 0x11
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r4, [r2, 0x2]
- adds r0, r4, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- movs r0, 0x10
- ldrsh r2, [r3, r0]
- lsrs r7, r1, 16
- asrs r1, 16
- cmp r2, r1
- blt _0805B6D8
- lsls r0, r5, 16
- asrs r0, 16
- cmp r2, r0
- bgt _0805B6D8
- movs r0, 0x12
- ldrsh r1, [r3, r0]
- lsls r0, r4, 16
- asrs r0, 16
- cmp r1, r0
- blt _0805B6D8
- lsls r0, r6, 16
- asrs r0, 16
- cmp r1, r0
- ble _0805B706
-_0805B6D8:
- movs r0, 0xC
- ldrsh r1, [r3, r0]
- lsls r0, r7, 16
- asrs r0, 16
- cmp r1, r0
- blt _0805B700
- lsls r0, r5, 16
- asrs r0, 16
- cmp r1, r0
- bgt _0805B700
- movs r0, 0xE
- ldrsh r1, [r3, r0]
- lsls r0, r4, 16
- asrs r0, 16
- cmp r1, r0
- blt _0805B700
- lsls r0, r6, 16
- asrs r0, 16
- cmp r1, r0
- ble _0805B706
-_0805B700:
- adds r0, r3, 0
- bl RemoveFieldObject
-_0805B706:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805B70C: .4byte gSaveBlock1
- thumb_func_end RemoveFieldObjectIfOutsideView
-
- thumb_func_start sub_805B710
-sub_805B710: @ 805B710
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- bl ClearPlayerAvatarInfo
- movs r6, 0
- ldr r7, _0805B758 @ =gMapObjects
- lsls r4, 16
- lsls r5, 16
-_0805B72A:
- lsls r0, r6, 3
- adds r0, r6
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0805B744
- adds r0, r6, 0
- asrs r1, r4, 16
- asrs r2, r5, 16
- bl sub_805B75C
-_0805B744:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xF
- bls _0805B72A
- bl sub_805AAB0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805B758: .4byte gMapObjects
- thumb_func_end sub_805B710
-
- thumb_func_start sub_805B75C
-sub_805B75C: @ 805B75C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- movs r7, 0
- ldr r2, _0805B900 @ =gLinkPlayerMapObjects
-_0805B77E:
- lsls r0, r7, 2
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _0805B790
- ldrb r1, [r1, 0x2]
- cmp r8, r1
- bne _0805B790
- b _0805B8EE
-_0805B790:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _0805B77E
- mov r1, r8
- lsls r0, r1, 3
- add r0, r8
- lsls r0, 2
- ldr r1, _0805B904 @ =gMapObjects
- adds r6, r0, r1
- movs r0, 0
- str r0, [sp, 0x20]
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r5, r0, 0
- ldrh r2, [r5, 0x6]
- ldr r1, _0805B908 @ =0xffff0000
- add r4, sp, 0x18
- ldr r0, [r4, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [r4, 0x4]
- ldrb r0, [r6, 0x5]
- ldrb r1, [r6, 0x6]
- add r3, sp, 0x20
- mov r2, sp
- bl MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex
- str r4, [sp, 0xC]
- mov r0, sp
- ldr r2, _0805B90C @ =0x0000ffff
- adds r4, r2, 0
- strh r4, [r0, 0x2]
- ldrb r1, [r5, 0xC]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _0805B7EA
- ldrh r0, [r5, 0x2]
- lsls r1, 28
- lsrs r1, 28
- bl npc_load_two_palettes__no_record
-_0805B7EA:
- ldrb r0, [r5, 0xC]
- lsls r1, r0, 28
- lsrs r0, r1, 28
- cmp r0, 0x9
- bls _0805B7FC
- ldrh r0, [r5, 0x2]
- lsrs r1, 28
- bl npc_load_two_palettes__and_record
-_0805B7FC:
- mov r0, sp
- strh r4, [r0, 0x2]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x40
- beq _0805B8EE
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _0805B910 @ =gSprites
- adds r4, r0, r1
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- ldrh r2, [r6, 0x10]
- adds r0, r2
- lsls r0, 16
- asrs r0, 16
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- ldrh r2, [r6, 0x12]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl sub_8060388
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r1, r4, 0
- adds r1, 0x28
- strb r0, [r1]
- ldrh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r2, r4, 0
- adds r2, 0x29
- strb r0, [r2]
- ldrh r0, [r4, 0x20]
- adds r0, 0x8
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r1, 0x10
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, [r5, 0x1C]
- str r0, [r4, 0xC]
- ldrb r0, [r6, 0x6]
- cmp r0, 0xB
- bne _0805B88A
- mov r0, r8
- adds r1, r7, 0
- bl SetPlayerAvatarFieldObjectIdAndObjectId
- bl sub_8126B54
- strb r0, [r6, 0x1B]
-_0805B88A:
- ldr r1, [sp, 0x20]
- cmp r1, 0
- beq _0805B896
- adds r0, r4, 0
- bl SetSubspriteTables
-_0805B896:
- ldrb r1, [r5, 0xC]
- lsls r1, 28
- lsrs r1, 24
- ldrb r2, [r4, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- mov r0, r8
- strh r0, [r4, 0x2E]
- strb r7, [r6, 0x4]
- ldrb r0, [r6, 0x1]
- lsls r0, 27
- cmp r0, 0
- blt _0805B8DC
- ldrb r0, [r6, 0x6]
- cmp r0, 0xB
- beq _0805B8DC
- ldrb r0, [r6, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_0805B8DC:
- adds r0, r6, 0
- bl sub_805B914
- ldrb r0, [r6, 0xB]
- lsrs r0, 4
- adds r1, r4, 0
- movs r2, 0x1
- bl SetObjectSubpriorityByZCoord
-_0805B8EE:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805B900: .4byte gLinkPlayerMapObjects
-_0805B904: .4byte gMapObjects
-_0805B908: .4byte 0xffff0000
-_0805B90C: .4byte 0x0000ffff
-_0805B910: .4byte gSprites
- thumb_func_end sub_805B75C
-
- thumb_func_start sub_805B914
-sub_805B914: @ 805B914
- push {lr}
- ldrb r2, [r0]
- movs r3, 0x3
- negs r3, r3
- adds r1, r3, 0
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r2, [r0, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- ands r1, r3
- movs r2, 0x5
- negs r2, r2
- ands r1, r2
- subs r2, 0x4
- ands r1, r2
- subs r2, 0x8
- ands r1, r2
- subs r2, 0x10
- ands r1, r2
- strb r1, [r0, 0x2]
- bl FieldObjectClearAnim
- pop {r0}
- bx r0
- thumb_func_end sub_805B914
-
- thumb_func_start SetPlayerAvatarFieldObjectIdAndObjectId
-SetPlayerAvatarFieldObjectIdAndObjectId: @ 805B94C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0805B978 @ =gPlayerAvatar
- strb r0, [r5, 0x5]
- strb r1, [r5, 0x4]
- ldr r1, _0805B97C @ =gMapObjects
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r1
- ldrb r0, [r4, 0x5]
- bl GetPlayerAvatarGenderByGraphicsId
- strb r0, [r5, 0x7]
- ldrb r0, [r4, 0x5]
- movs r1, 0x20
- bl SetPlayerAvatarExtraStateTransition
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805B978: .4byte gPlayerAvatar
-_0805B97C: .4byte gMapObjects
- thumb_func_end SetPlayerAvatarFieldObjectIdAndObjectId
-
- thumb_func_start sub_805B980
-sub_805B980: @ 805B980
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r0, r8
- bl GetFieldObjectGraphicsInfo
- adds r5, r0, 0
- ldrb r1, [r6, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805BA7C @ =gSprites
- adds r4, r0, r1
- ldrb r1, [r5, 0xC]
- movs r7, 0xF
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _0805B9B8
- ldrh r0, [r5, 0x2]
- lsls r1, 28
- lsrs r1, 28
- bl pal_patch_for_npc
-_0805B9B8:
- ldrb r1, [r5, 0xC]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0xA
- bne _0805B9CC
- ldrh r0, [r5, 0x2]
- lsls r1, 28
- lsrs r1, 28
- bl npc_load_two_palettes__and_record
-_0805B9CC:
- ldr r0, [r5, 0x10]
- ldrb r2, [r0, 0x1]
- lsrs r2, 6
- lsls r2, 6
- ldrb r3, [r4, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, 0x1]
- ldr r0, [r5, 0x10]
- ldrb r0, [r0, 0x3]
- lsrs r0, 6
- lsls r0, 6
- ldrb r2, [r4, 0x3]
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldr r0, [r5, 0x1C]
- str r0, [r4, 0xC]
- ldr r0, [r5, 0x18]
- str r0, [r4, 0x8]
- ldr r0, [r5, 0x14]
- str r0, [r4, 0x18]
- ldrb r1, [r5, 0xC]
- lsls r1, 28
- lsrs r1, 24
- ldrb r2, [r4, 0x5]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldrb r1, [r5, 0xC]
- lsls r1, 25
- lsrs r1, 31
- lsls r1, 4
- ldrb r2, [r6, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
- mov r0, r8
- strb r0, [r6, 0x5]
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl sub_80603CC
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r1, r4, 0
- adds r1, 0x28
- strb r0, [r1]
- ldrh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r2, r4, 0
- adds r2, 0x29
- strb r0, [r2]
- ldrh r0, [r4, 0x20]
- adds r0, 0x8
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r1, 0x10
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrb r0, [r6, 0x1]
- lsrs r0, 7
- cmp r0, 0
- beq _0805BA72
- bl CameraObjectReset1
-_0805BA72:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805BA7C: .4byte gSprites
- thumb_func_end sub_805B980
-
- thumb_func_start unref_sub_805BA80
-unref_sub_805BA80: @ 805BA80
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0805BAB4
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805BABC @ =gMapObjects
- adds r0, r1
- adds r1, r4, 0
- bl sub_805B980
-_0805BAB4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805BABC: .4byte gMapObjects
- thumb_func_end unref_sub_805BA80
-
- thumb_func_start FieldObjectTurn
-FieldObjectTurn: @ 805BAC0
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- bl FieldObjectSetDirection
- ldrb r0, [r6, 0x1]
- lsls r0, 27
- cmp r0, 0
- blt _0805BB06
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, _0805BB0C @ =gSprites
- adds r4, r5
- ldrb r0, [r6, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrb r1, [r6, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- bl SeekSpriteAnim
-_0805BB06:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805BB0C: .4byte gSprites
- thumb_func_end FieldObjectTurn
-
- thumb_func_start FieldObjectTurnByLocalIdAndMap
-FieldObjectTurnByLocalIdAndMap: @ 805BB10
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0805BB44
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805BB4C @ =gMapObjects
- adds r0, r1
- adds r1, r4, 0
- bl FieldObjectTurn
-_0805BB44:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805BB4C: .4byte gMapObjects
- thumb_func_end FieldObjectTurnByLocalIdAndMap
-
- thumb_func_start unref_sub_805BB50
-unref_sub_805BB50: @ 805BB50
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805BB6C @ =gMapObjects
- adds r0, r2
- bl FieldObjectTurn
- pop {r0}
- bx r0
- .align 2, 0
-_0805BB6C: .4byte gMapObjects
- thumb_func_end unref_sub_805BB50
-
- thumb_func_start get_berry_tree_graphics
-get_berry_tree_graphics: @ 805BB70
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- ldrb r0, [r5, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r5, 0x1]
- adds r4, r7, 0
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- ldrb r0, [r5, 0x1D]
- bl GetStageByBerryTreeId
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _0805BBFC
- ldrb r1, [r5, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x1]
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r5, 0x1D]
- bl GetBerryTypeByBerryTreeId
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r4, 0x2B
- bls _0805BBC4
- movs r4, 0
-_0805BBC4:
- ldr r0, _0805BC04 @ =gBerryTreeGraphicsIdTablePointers
- lsls r4, 2
- adds r0, r4, r0
- ldr r0, [r0]
- adds r0, r6
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_805B980
- ldr r0, _0805BC08 @ =gBerryTreePicTablePointers
- adds r0, r4, r0
- ldr r0, [r0]
- str r0, [r7, 0xC]
- ldr r0, _0805BC0C @ =gBerryTreePaletteSlotTablePointers
- adds r4, r0
- ldr r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r1, 4
- ldrb r2, [r7, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
- adds r0, r7, 0
- adds r1, r6, 0
- bl StartSpriteAnim
-_0805BBFC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805BC04: .4byte gBerryTreeGraphicsIdTablePointers
-_0805BC08: .4byte gBerryTreePicTablePointers
-_0805BC0C: .4byte gBerryTreePaletteSlotTablePointers
- thumb_func_end get_berry_tree_graphics
-
- thumb_func_start GetFieldObjectGraphicsInfo
-GetFieldObjectGraphicsInfo: @ 805BC10
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xEF
- bls _0805BC28
- adds r0, r1, 0
- adds r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- bl VarGetFieldObjectGraphicsId
- adds r1, r0, 0
-_0805BC28:
- cmp r1, 0xD9
- bls _0805BC2E
- movs r1, 0x5
-_0805BC2E:
- ldr r0, _0805BC3C @ =gMapObjectGraphicsInfoPointers
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- pop {r1}
- bx r1
- .align 2, 0
-_0805BC3C: .4byte gMapObjectGraphicsInfoPointers
- thumb_func_end GetFieldObjectGraphicsInfo
-
- thumb_func_start FieldObjectHandleDynamicGraphicsId
-FieldObjectHandleDynamicGraphicsId: @ 805BC40
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x5]
- cmp r0, 0xEF
- bls _0805BC56
- adds r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- bl VarGetFieldObjectGraphicsId
- strb r0, [r4, 0x5]
-_0805BC56:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectHandleDynamicGraphicsId
-
- thumb_func_start npc_by_local_id_and_map_set_field_1_bit_x20
-npc_by_local_id_and_map_set_field_1_bit_x20: @ 805BC5C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0805BC9E
- ldr r2, _0805BCA8 @ =gMapObjects
- mov r0, sp
- ldrb r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x1
- adds r2, r4, 0
- ands r2, r0
- lsls r2, 5
- ldrb r3, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x1]
-_0805BC9E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805BCA8: .4byte gMapObjects
- thumb_func_end npc_by_local_id_and_map_set_field_1_bit_x20
-
- thumb_func_start FieldObjectGetLocalIdAndMap
-FieldObjectGetLocalIdAndMap: @ 805BCAC
- push {r4,lr}
- ldrb r4, [r0, 0x8]
- strb r4, [r1]
- ldrb r1, [r0, 0x9]
- strb r1, [r2]
- ldrb r0, [r0, 0xA]
- strb r0, [r3]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectGetLocalIdAndMap
-
- thumb_func_start sub_805BCC0
-sub_805BCC0: @ 805BCC0
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl GetFieldObjectIdByXY
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x10
- beq _0805BCE8
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805BCEC @ =gMapObjects
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0805BCE8:
- pop {r0}
- bx r0
- .align 2, 0
-_0805BCEC: .4byte gMapObjects
- thumb_func_end sub_805BCC0
-
- thumb_func_start sub_805BCF0
-sub_805BCF0: @ 805BCF0
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0805BD36
- mov r0, sp
- ldrb r0, [r0]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- ldr r0, _0805BD40 @ =gMapObjects
- adds r2, r0
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805BD44 @ =gSprites
- adds r0, r1
- ldrb r1, [r2, 0x3]
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x3]
- adds r0, 0x43
- strb r4, [r0]
-_0805BD36:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805BD40: .4byte gMapObjects
-_0805BD44: .4byte gSprites
- thumb_func_end sub_805BCF0
-
- thumb_func_start sub_805BD48
-sub_805BD48: @ 805BD48
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0805BD84
- mov r0, sp
- ldrb r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0805BD8C @ =gMapObjects
- adds r1, r0
- ldrb r2, [r1, 0x3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x3]
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
-_0805BD84:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0805BD8C: .4byte gMapObjects
- thumb_func_end sub_805BD48
-
- thumb_func_start sub_805BD90
-sub_805BD90: @ 805BD90
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 16
- lsrs r5, r3, 16
- lsls r4, 16
- lsrs r4, 16
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0805BDD4
- ldr r2, _0805BDDC @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805BDE0 @ =gSprites
- adds r0, r1
- strh r5, [r0, 0x24]
- strh r4, [r0, 0x26]
-_0805BDD4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805BDDC: .4byte gMapObjects
-_0805BDE0: .4byte gSprites
- thumb_func_end sub_805BD90
-
- thumb_func_start gpu_pal_allocator_reset__manage_upper_four
-gpu_pal_allocator_reset__manage_upper_four: @ 805BDE4
- push {lr}
- bl FreeAllSpritePalettes
- ldr r1, _0805BDF4 @ =gReservedSpritePaletteCount
- movs r0, 0xC
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0805BDF4: .4byte gReservedSpritePaletteCount
- thumb_func_end gpu_pal_allocator_reset__manage_upper_four
-
- thumb_func_start sub_805BDF8
-sub_805BDF8: @ 805BDF8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl FindFieldObjectPaletteIndexByTag
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0805BE1C @ =0x000011ff
- cmp r1, r0
- beq _0805BE16
- lsls r0, r1, 3
- ldr r1, _0805BE20 @ =gUnknown_0837377C
- adds r0, r1
- bl sub_805BE58
-_0805BE16:
- pop {r0}
- bx r0
- .align 2, 0
-_0805BE1C: .4byte 0x000011ff
-_0805BE20: .4byte gUnknown_0837377C
- thumb_func_end sub_805BDF8
-
- thumb_func_start unref_sub_805BE24
-unref_sub_805BE24: @ 805BE24
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r4, 0
- ldrh r0, [r5]
- ldr r1, _0805BE54 @ =0x000011ff
- cmp r0, r1
- beq _0805BE4E
- adds r6, r1, 0
-_0805BE34:
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- bl sub_805BDF8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, r6
- bne _0805BE34
-_0805BE4E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805BE54: .4byte 0x000011ff
- thumb_func_end unref_sub_805BE24
-
- thumb_func_start sub_805BE58
-sub_805BE58: @ 805BE58
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0805BE76
- adds r0, r4, 0
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r0, 24
- b _0805BE78
-_0805BE76:
- movs r0, 0xFF
-_0805BE78:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805BE58
-
- thumb_func_start pal_patch_for_npc
-pal_patch_for_npc: @ 805BE80
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 24
- lsrs r4, 24
- bl FindFieldObjectPaletteIndexByTag
- lsls r0, 24
- ldr r1, _0805BEB4 @ =gUnknown_0837377C
- lsrs r0, 21
- adds r0, r1
- ldr r0, [r0]
- lsls r4, 20
- movs r1, 0x80
- lsls r1, 17
- adds r4, r1
- lsrs r4, 16
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805BEB4: .4byte gUnknown_0837377C
- thumb_func_end pal_patch_for_npc
-
- thumb_func_start pal_patch_for_npc_range
-pal_patch_for_npc_range: @ 805BEB8
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- cmp r4, r6
- bcs _0805BEDC
-_0805BEC8:
- ldrh r0, [r5]
- adds r1, r4, 0
- bl pal_patch_for_npc
- adds r5, 0x2
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _0805BEC8
-_0805BEDC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pal_patch_for_npc_range
-
- thumb_func_start FindFieldObjectPaletteIndexByTag
-FindFieldObjectPaletteIndexByTag: @ 805BEE4
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- movs r2, 0
- ldr r0, _0805BF0C @ =gUnknown_0837377C
- ldrh r1, [r0, 0x4]
- ldr r3, _0805BF10 @ =0x000011ff
- adds r4, r0, 0
- cmp r1, r3
- beq _0805BF24
- adds r6, r4, 0
- adds r1, r3, 0
-_0805BEFC:
- lsls r0, r2, 3
- adds r0, r6
- ldrh r0, [r0, 0x4]
- cmp r0, r5
- bne _0805BF14
- adds r0, r2, 0
- b _0805BF26
- .align 2, 0
-_0805BF0C: .4byte gUnknown_0837377C
-_0805BF10: .4byte 0x000011ff
-_0805BF14:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 3
- adds r0, r4
- ldrh r0, [r0, 0x4]
- cmp r0, r1
- bne _0805BEFC
-_0805BF24:
- movs r0, 0xFF
-_0805BF26:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end FindFieldObjectPaletteIndexByTag
-
- thumb_func_start npc_load_two_palettes__no_record
-npc_load_two_palettes__no_record: @ 805BF2C
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl pal_patch_for_npc
- movs r3, 0
- ldr r1, _0805BF74 @ =gUnknown_08373874
- ldrh r0, [r1]
- ldr r2, _0805BF78 @ =0x000011ff
- cmp r0, r2
- beq _0805BF94
- ldr r0, _0805BF7C @ =gUnknown_0830FD14
- adds r5, r0
- adds r6, r2, 0
-_0805BF50:
- lsls r2, r3, 3
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, r4
- bne _0805BF84
- adds r1, 0x4
- adds r1, r2, r1
- ldr r0, _0805BF80 @ =gUnknown_030005A4
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- ldrb r1, [r5]
- bl pal_patch_for_npc
- b _0805BF94
- .align 2, 0
-_0805BF74: .4byte gUnknown_08373874
-_0805BF78: .4byte 0x000011ff
-_0805BF7C: .4byte gUnknown_0830FD14
-_0805BF80: .4byte gUnknown_030005A4
-_0805BF84:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r6
- bne _0805BF50
-_0805BF94:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end npc_load_two_palettes__no_record
-
- thumb_func_start npc_load_two_palettes__and_record
-npc_load_two_palettes__and_record: @ 805BF9C
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _0805BFE8 @ =gUnknown_030005A6
- strh r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl pal_patch_for_npc
- movs r3, 0
- ldr r1, _0805BFEC @ =gUnknown_083738E4
- ldrh r0, [r1]
- ldr r2, _0805BFF0 @ =0x000011ff
- cmp r0, r2
- beq _0805C00C
- ldr r0, _0805BFF4 @ =gUnknown_0830FD14
- adds r5, r0
- adds r6, r2, 0
-_0805BFC4:
- lsls r2, r3, 3
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, r4
- bne _0805BFFC
- adds r1, 0x4
- adds r1, r2, r1
- ldr r0, _0805BFF8 @ =gUnknown_030005A4
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- ldrb r1, [r5]
- bl pal_patch_for_npc
- b _0805C00C
- .align 2, 0
-_0805BFE8: .4byte gUnknown_030005A6
-_0805BFEC: .4byte gUnknown_083738E4
-_0805BFF0: .4byte 0x000011ff
-_0805BFF4: .4byte gUnknown_0830FD14
-_0805BFF8: .4byte gUnknown_030005A4
-_0805BFFC:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r6
- bne _0805BFC4
-_0805C00C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end npc_load_two_palettes__and_record
-
- thumb_func_start unref_sub_805C014
-unref_sub_805C014: @ 805C014
- push {r4,lr}
- ldrh r3, [r0, 0x10]
- strh r3, [r0, 0x14]
- ldrh r4, [r0, 0x12]
- strh r4, [r0, 0x16]
- lsls r1, 16
- asrs r1, 16
- adds r1, r3
- strh r1, [r0, 0x10]
- lsls r2, 16
- asrs r2, 16
- adds r2, r4
- strh r2, [r0, 0x12]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_805C014
-
- thumb_func_start npc_coords_shift
-npc_coords_shift: @ 805C034
- ldrh r3, [r0, 0x10]
- strh r3, [r0, 0x14]
- ldrh r3, [r0, 0x12]
- strh r3, [r0, 0x16]
- strh r1, [r0, 0x10]
- strh r2, [r0, 0x12]
- bx lr
- thumb_func_end npc_coords_shift
-
- thumb_func_start npc_coords_set
-npc_coords_set: @ 805C044
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- strh r1, [r0, 0x14]
- strh r2, [r0, 0x16]
- strh r1, [r0, 0x10]
- strh r2, [r0, 0x12]
- bx lr
- thumb_func_end npc_coords_set
-
- thumb_func_start sub_805C058
-sub_805C058: @ 805C058
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldrb r1, [r6, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805C0F4 @ =gSprites
- adds r7, r0, r1
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- mov r8, r0
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl npc_coords_set
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- adds r2, r7, 0
- adds r2, 0x20
- adds r3, r7, 0
- adds r3, 0x22
- bl sub_80603CC
- mov r1, r8
- ldrh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r1, r7, 0
- adds r1, 0x28
- strb r0, [r1]
- mov r2, r8
- ldrh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 17
- negs r0, r0
- adds r2, r7, 0
- adds r2, 0x29
- strb r0, [r2]
- ldrh r0, [r7, 0x20]
- adds r0, 0x8
- strh r0, [r7, 0x20]
- ldrh r1, [r7, 0x22]
- adds r1, 0x10
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r0, r1
- strh r0, [r7, 0x22]
- adds r0, r6, 0
- bl sub_805B914
- ldrb r0, [r6, 0x1]
- lsrs r0, 7
- cmp r0, 0
- beq _0805C0EA
- bl CameraObjectReset1
-_0805C0EA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805C0F4: .4byte gSprites
- thumb_func_end sub_805C058
-
- thumb_func_start sub_805C0F8
-sub_805C0F8: @ 805C0F8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 16
- lsrs r5, r3, 16
- lsls r4, 16
- lsrs r4, 16
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0805C140
- lsls r1, r5, 16
- lsls r2, r4, 16
- mov r0, sp
- ldrb r3, [r0]
- lsls r0, r3, 3
- adds r0, r3
- lsls r0, 2
- ldr r3, _0805C148 @ =gMapObjects
- adds r0, r3
- movs r3, 0xE0
- lsls r3, 11
- adds r1, r3
- asrs r1, 16
- adds r2, r3
- asrs r2, 16
- bl sub_805C058
-_0805C140:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805C148: .4byte gMapObjects
- thumb_func_end sub_805C0F8
-
- thumb_func_start npc_coords_shift_still
-npc_coords_shift_still: @ 805C14C
- push {lr}
- movs r2, 0x10
- ldrsh r1, [r0, r2]
- movs r3, 0x12
- ldrsh r2, [r0, r3]
- bl npc_coords_shift
- pop {r0}
- bx r0
- thumb_func_end npc_coords_shift_still
-
- thumb_func_start UpdateFieldObjectCoordsForCameraUpdate
-UpdateFieldObjectCoordsForCameraUpdate: @ 805C160
- push {r4,r5,lr}
- ldr r2, _0805C1C0 @ =gUnknown_0202E844
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805C1B8
- movs r3, 0
- ldr r5, _0805C1C4 @ =gMapObjects
- movs r0, 0x4
- ldrsh r4, [r2, r0]
- movs r0, 0x8
- ldrsh r1, [r2, r0]
-_0805C17A:
- lsls r0, r3, 3
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r5
- ldrb r0, [r2]
- lsls r0, 31
- cmp r0, 0
- beq _0805C1AE
- ldrh r0, [r2, 0xC]
- subs r0, r4
- strh r0, [r2, 0xC]
- ldrh r0, [r2, 0xE]
- subs r0, r1
- strh r0, [r2, 0xE]
- ldrh r0, [r2, 0x10]
- subs r0, r4
- strh r0, [r2, 0x10]
- ldrh r0, [r2, 0x12]
- subs r0, r1
- strh r0, [r2, 0x12]
- ldrh r0, [r2, 0x14]
- subs r0, r4
- strh r0, [r2, 0x14]
- ldrh r0, [r2, 0x16]
- subs r0, r1
- strh r0, [r2, 0x16]
-_0805C1AE:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _0805C17A
-_0805C1B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805C1C0: .4byte gUnknown_0202E844
-_0805C1C4: .4byte gMapObjects
- thumb_func_end UpdateFieldObjectCoordsForCameraUpdate
-
- thumb_func_start GetFieldObjectIdByXYZ
-GetFieldObjectIdByXYZ: @ 805C1C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r5, r2, 24
- movs r4, 0
- ldr r0, _0805C214 @ =gMapObjects
- mov r8, r0
-_0805C1E0:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- mov r2, r8
- adds r1, r0, r2
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _0805C218
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, r7
- bne _0805C218
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- cmp r0, r6
- bne _0805C218
- adds r0, r1, 0
- adds r1, r5, 0
- bl FieldObjectDoesZCoordMatch
- lsls r0, 24
- cmp r0, 0
- beq _0805C218
- adds r0, r4, 0
- b _0805C224
- .align 2, 0
-_0805C214: .4byte gMapObjects
-_0805C218:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _0805C1E0
- movs r0, 0x10
-_0805C224:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectIdByXYZ
-
- thumb_func_start FieldObjectDoesZCoordMatch
-FieldObjectDoesZCoordMatch: @ 805C230
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xB]
- movs r0, 0xF
- ands r0, r2
- cmp r0, 0
- beq _0805C250
- cmp r1, 0
- beq _0805C250
- lsls r0, r2, 28
- lsrs r0, 28
- cmp r0, r1
- beq _0805C250
- movs r0, 0
- b _0805C252
-_0805C250:
- movs r0, 0x1
-_0805C252:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectDoesZCoordMatch
-
- thumb_func_start UpdateFieldObjectsForCameraUpdate
-UpdateFieldObjectsForCameraUpdate: @ 805C258
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- bl UpdateFieldObjectCoordsForCameraUpdate
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805B55C
- bl RemoveFieldObjectsOutsideView
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end UpdateFieldObjectsForCameraUpdate
-
- thumb_func_start AddCameraObject
-AddCameraObject: @ 805C284
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0805C2C0 @ =gSpriteTemplate_830FD24
- movs r1, 0
- movs r2, 0
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0805C2C4 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x3E
- adds r2, r1
- mov r12, r2
- ldrb r2, [r2]
- movs r3, 0x4
- orrs r2, r3
- mov r3, r12
- strb r2, [r3]
- strh r4, [r1, 0x2E]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805C2C0: .4byte gSpriteTemplate_830FD24
-_0805C2C4: .4byte gSprites
- thumb_func_end AddCameraObject
-
- thumb_func_start ObjectCB_CameraObject
-ObjectCB_CameraObject: @ 805C2C8
- push {r4,r5,lr}
- sub sp, 0xC
- mov r2, sp
- ldr r1, _0805C2EC @ =gUnknown_0830FD3C
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- movs r2, 0x30
- ldrsh r1, [r0, r2]
- lsls r1, 2
- add r1, sp
- ldr r1, [r1]
- bl _call_via_r1
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805C2EC: .4byte gUnknown_0830FD3C
- thumb_func_end ObjectCB_CameraObject
-
- thumb_func_start CameraObject_0
-CameraObject_0: @ 805C2F0
- push {lr}
- ldr r3, _0805C328 @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x20]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x1
- strh r1, [r0, 0x30]
- bl CameraObject_1
- pop {r0}
- bx r0
- .align 2, 0
-_0805C328: .4byte gSprites
- thumb_func_end CameraObject_0
-
- thumb_func_start CameraObject_1
-CameraObject_1: @ 805C32C
- push {r4,r5,lr}
- ldr r3, _0805C360 @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r3, [r1, 0x22]
- ldrh r2, [r0, 0x20]
- ldrh r4, [r1, 0x20]
- movs r5, 0x20
- ldrsh r1, [r1, r5]
- subs r1, r2
- strh r1, [r0, 0x32]
- ldrh r2, [r0, 0x22]
- lsls r1, r3, 16
- asrs r1, 16
- subs r1, r2
- strh r1, [r0, 0x34]
- strh r4, [r0, 0x20]
- strh r3, [r0, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805C360: .4byte gSprites
- thumb_func_end CameraObject_1
-
- thumb_func_start CameraObject_2
-CameraObject_2: @ 805C364
- push {r4,lr}
- ldr r4, _0805C390 @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- movs r3, 0
- strh r1, [r0, 0x20]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- strh r3, [r0, 0x32]
- strh r3, [r0, 0x34]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805C390: .4byte gSprites
- thumb_func_end CameraObject_2
-
- thumb_func_start FindCameraObject
-FindCameraObject: @ 805C394
- push {r4,r5,lr}
- movs r3, 0
- ldr r4, _0805C3C0 @ =gSprites
- adds r5, r4, 0
- adds r5, 0x1C
-_0805C39E:
- lsls r0, r3, 4
- adds r0, r3
- lsls r1, r0, 2
- adds r2, r1, r4
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0805C3C8
- adds r0, r1, r5
- ldr r1, [r0]
- ldr r0, _0805C3C4 @ =ObjectCB_CameraObject
- cmp r1, r0
- bne _0805C3C8
- adds r0, r2, 0
- b _0805C3D4
- .align 2, 0
-_0805C3C0: .4byte gSprites
-_0805C3C4: .4byte ObjectCB_CameraObject
-_0805C3C8:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3F
- bls _0805C39E
- movs r0, 0
-_0805C3D4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FindCameraObject
-
- thumb_func_start CameraObjectReset1
-CameraObjectReset1: @ 805C3DC
- push {lr}
- bl FindCameraObject
- adds r2, r0, 0
- cmp r2, 0
- beq _0805C3F4
- movs r0, 0
- strh r0, [r2, 0x30]
- ldr r1, [r2, 0x1C]
- adds r0, r2, 0
- bl _call_via_r1
-_0805C3F4:
- pop {r0}
- bx r0
- thumb_func_end CameraObjectReset1
-
- thumb_func_start CameraObjectSetFollowedObjectId
-CameraObjectSetFollowedObjectId: @ 805C3F8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl FindCameraObject
- cmp r0, 0
- beq _0805C40C
- strh r4, [r0, 0x2E]
- bl CameraObjectReset1
-_0805C40C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end CameraObjectSetFollowedObjectId
-
- thumb_func_start CameraObjectGetFollowedObjectId
-CameraObjectGetFollowedObjectId: @ 805C414
- push {lr}
- bl FindCameraObject
- cmp r0, 0
- beq _0805C426
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- b _0805C428
-_0805C426:
- movs r0, 0x40
-_0805C428:
- pop {r1}
- bx r1
- thumb_func_end CameraObjectGetFollowedObjectId
-
- thumb_func_start CameraObjectReset2
-CameraObjectReset2: @ 805C42C
- push {lr}
- bl FindCameraObject
- movs r1, 0x2
- strh r1, [r0, 0x30]
- pop {r0}
- bx r0
- thumb_func_end CameraObjectReset2
-
- thumb_func_start unref_sub_805C43C
-unref_sub_805C43C: @ 805C43C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r12, r0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- movs r5, 0
- ldr r1, _0805C484 @ =gSprites
-_0805C456:
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r4, r0, r1
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0805C488
- adds r0, r4, 0
- mov r1, r12
- movs r2, 0x44
- bl memcpy
- mov r0, r8
- strh r0, [r4, 0x20]
- strh r6, [r4, 0x22]
- adds r0, r4, 0
- adds r0, 0x43
- strb r7, [r0]
- b _0805C492
- .align 2, 0
-_0805C484: .4byte gSprites
-_0805C488:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3F
- bls _0805C456
-_0805C492:
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_805C43C
-
- thumb_func_start obj_unfreeze
-obj_unfreeze: @ 805C4A0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r12, r0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- movs r5, 0x3F
- ldr r3, _0805C4F4 @ =gSprites
- movs r2, 0x1
- negs r2, r2
-_0805C4BE:
- lsls r0, r5, 16
- asrs r1, r0, 16
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r3
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0805C4F8
- adds r0, r4, 0
- mov r1, r12
- movs r2, 0x44
- bl memcpy
- mov r0, r8
- strh r0, [r4, 0x20]
- strh r6, [r4, 0x22]
- adds r0, r4, 0
- adds r0, 0x43
- strb r7, [r0]
- lsls r0, r5, 24
- lsrs r0, 24
- b _0805C506
- .align 2, 0
-_0805C4F4: .4byte gSprites
-_0805C4F8:
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, r2
- bgt _0805C4BE
- movs r0, 0x40
-_0805C506:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end obj_unfreeze
-
- thumb_func_start FieldObjectSetDirection
-FieldObjectSetDirection: @ 805C510
- push {r4,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r2, r1, 24
- adds r4, r2, 0
- ldrb r0, [r3, 0x18]
- lsls r0, 28
- lsrs r0, 28
- adds r1, r3, 0
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r3, 0x1]
- lsls r0, 30
- cmp r0, 0
- blt _0805C540
- movs r0, 0xF
- adds r1, r2, 0
- ands r1, r0
- ldrb r2, [r3, 0x18]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x18]
-_0805C540:
- lsls r2, r4, 4
- ldrb r1, [r3, 0x18]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x18]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectSetDirection
-
- thumb_func_start GetFieldObjectScriptPointerByLocalIdAndMap
-GetFieldObjectScriptPointerByLocalIdAndMap: @ 805C554
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- bl GetFieldObjectTemplateByLocalIdAndMap
- ldr r0, [r0, 0x10]
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectScriptPointerByLocalIdAndMap
-
- thumb_func_start GetFieldObjectScriptPointerByFieldObjectId
-GetFieldObjectScriptPointerByFieldObjectId: @ 805C56C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805C58C @ =gMapObjects
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r0, [r2, 0x8]
- ldrb r1, [r2, 0x9]
- ldrb r2, [r2, 0xA]
- bl GetFieldObjectScriptPointerByLocalIdAndMap
- pop {r1}
- bx r1
- .align 2, 0
-_0805C58C: .4byte gMapObjects
- thumb_func_end GetFieldObjectScriptPointerByFieldObjectId
-
- thumb_func_start GetFieldObjectFlagIdByLocalIdAndMap
-GetFieldObjectFlagIdByLocalIdAndMap: @ 805C590
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- bl GetFieldObjectTemplateByLocalIdAndMap
- ldrh r0, [r0, 0x14]
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectFlagIdByLocalIdAndMap
-
- thumb_func_start GetFieldObjectFlagIdByFieldObjectId
-GetFieldObjectFlagIdByFieldObjectId: @ 805C5A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805C5CC @ =gMapObjects
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r0, [r2, 0x8]
- ldrb r1, [r2, 0x9]
- ldrb r2, [r2, 0xA]
- bl GetFieldObjectFlagIdByLocalIdAndMap
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0805C5CC: .4byte gMapObjects
- thumb_func_end GetFieldObjectFlagIdByFieldObjectId
-
- thumb_func_start unref_sub_805C5D0
-unref_sub_805C5D0: @ 805C5D0
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0805C604
- ldr r2, _0805C600 @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- b _0805C606
- .align 2, 0
-_0805C600: .4byte gMapObjects
-_0805C604:
- movs r0, 0xFF
-_0805C606:
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end unref_sub_805C5D0
-
- thumb_func_start unref_sub_805C60C
-unref_sub_805C60C: @ 805C60C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0805C620 @ =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x7]
- bx lr
- .align 2, 0
-_0805C620: .4byte gMapObjects
- thumb_func_end unref_sub_805C60C
-
- thumb_func_start unref_sub_805C624
-unref_sub_805C624: @ 805C624
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0805C658
- ldr r2, _0805C654 @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1D]
- b _0805C65A
- .align 2, 0
-_0805C654: .4byte gMapObjects
-_0805C658:
- movs r0, 0xFF
-_0805C65A:
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end unref_sub_805C624
-
- thumb_func_start FieldObjectGetBerryTreeId
-FieldObjectGetBerryTreeId: @ 805C660
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0805C674 @ =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x1D]
- bx lr
- .align 2, 0
-_0805C674: .4byte gMapObjects
- thumb_func_end FieldObjectGetBerryTreeId
-
- thumb_func_start GetFieldObjectTemplateByLocalIdAndMap
-GetFieldObjectTemplateByLocalIdAndMap: @ 805C678
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r1, _0805C6A4 @ =gSaveBlock1
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, r3
- bne _0805C6AC
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, r2
- bne _0805C6AC
- movs r0, 0xC2
- lsls r0, 4
- adds r1, r0
- ldr r0, _0805C6A8 @ =gMapHeader
- ldr r0, [r0, 0x4]
- b _0805C6B8
- .align 2, 0
-_0805C6A4: .4byte gSaveBlock1
-_0805C6A8: .4byte gMapHeader
-_0805C6AC:
- adds r0, r2, 0
- adds r1, r3, 0
- bl get_mapheader_by_bank_and_number
- ldr r0, [r0, 0x4]
- ldr r1, [r0, 0x4]
-_0805C6B8:
- ldrb r2, [r0]
- adds r0, r4, 0
- bl FindFieldObjectTemplateInArrayByLocalId
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectTemplateByLocalIdAndMap
-
- thumb_func_start FindFieldObjectTemplateInArrayByLocalId
-FindFieldObjectTemplateInArrayByLocalId: @ 805C6C8
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- cmp r1, r2
- bcs _0805C6F6
-_0805C6DA:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r3, r0, r5
- ldrb r0, [r3]
- cmp r0, r4
- bne _0805C6EC
- adds r0, r3, 0
- b _0805C6F8
-_0805C6EC:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r2
- bcc _0805C6DA
-_0805C6F6:
- movs r0, 0
-_0805C6F8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FindFieldObjectTemplateInArrayByLocalId
-
- thumb_func_start sub_805C700
-sub_805C700: @ 805C700
- push {r4,r5,lr}
- adds r2, r0, 0
- ldrb r1, [r2, 0x9]
- ldr r4, _0805C720 @ =gSaveBlock1
- movs r0, 0x5
- ldrsb r0, [r4, r0]
- adds r5, r4, 0
- cmp r1, r0
- bne _0805C74A
- ldrb r1, [r2, 0xA]
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- cmp r1, r0
- beq _0805C72E
- b _0805C74A
- .align 2, 0
-_0805C720: .4byte gSaveBlock1
-_0805C724:
- movs r1, 0xC2
- lsls r1, 4
- adds r0, r5, r1
- adds r0, r2, r0
- b _0805C74C
-_0805C72E:
- movs r3, 0
- ldrb r0, [r2, 0x8]
- movs r2, 0xC2
- lsls r2, 4
- adds r1, r4, r2
- movs r2, 0
-_0805C73A:
- ldrb r4, [r1]
- cmp r0, r4
- beq _0805C724
- adds r1, 0x18
- adds r2, 0x18
- adds r3, 0x1
- cmp r3, 0x3F
- ble _0805C73A
-_0805C74A:
- movs r0, 0
-_0805C74C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805C700
-
- thumb_func_start sub_805C754
-sub_805C754: @ 805C754
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805C700
- adds r1, r0, 0
- cmp r1, 0
- beq _0805C76E
- ldrh r0, [r4, 0x10]
- subs r0, 0x7
- strh r0, [r1, 0x4]
- ldrh r0, [r4, 0x12]
- subs r0, 0x7
- strh r0, [r1, 0x6]
-_0805C76E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_805C754
-
- thumb_func_start sub_805C774
-sub_805C774: @ 805C774
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_805C700
- cmp r0, 0
- beq _0805C784
- strb r4, [r0, 0x9]
-_0805C784:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_805C774
-
- thumb_func_start sub_805C78C
-sub_805C78C: @ 805C78C
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0805C7BA
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805C7C0 @ =gMapObjects
- adds r0, r1
- bl sub_805C754
-_0805C7BA:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0805C7C0: .4byte gMapObjects
- thumb_func_end sub_805C78C
-
- thumb_func_start sub_805C7C4
-sub_805C7C4: @ 805C7C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl gpu_pal_allocator_reset__manage_upper_four
- ldr r1, _0805C7F4 @ =gUnknown_030005A6
- ldr r2, _0805C7F8 @ =0x000011ff
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0805C7FC @ =gUnknown_030005A4
- strb r4, [r0]
- ldr r1, _0805C800 @ =gUnknown_0837399C
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0xA
- bl pal_patch_for_npc_range
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805C7F4: .4byte gUnknown_030005A6
-_0805C7F8: .4byte 0x000011ff
-_0805C7FC: .4byte gUnknown_030005A4
-_0805C800: .4byte gUnknown_0837399C
- thumb_func_end sub_805C7C4
-
- thumb_func_start npc_paltag_by_palslot
-npc_paltag_by_palslot: @ 805C804
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x9
- bhi _0805C840
- ldr r1, _0805C820 @ =gUnknown_0837399C
- ldr r0, _0805C824 @ =gUnknown_030005A4
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r2, 1
- b _0805C834
- .align 2, 0
-_0805C820: .4byte gUnknown_0837399C
-_0805C824: .4byte gUnknown_030005A4
-_0805C828:
- adds r1, r4, 0x4
- adds r1, r2, r1
- ldr r0, _0805C83C @ =gUnknown_030005A4
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 1
-_0805C834:
- adds r0, r1
- ldrh r0, [r0]
- b _0805C872
- .align 2, 0
-_0805C83C: .4byte gUnknown_030005A4
-_0805C840:
- movs r3, 0
- ldr r0, _0805C878 @ =gUnknown_083738E4
- ldrh r1, [r0]
- ldr r2, _0805C87C @ =0x000011ff
- adds r4, r0, 0
- cmp r1, r2
- beq _0805C870
- adds r6, r4, 0
- ldr r0, _0805C880 @ =gUnknown_030005A6
- ldrh r1, [r0]
- adds r5, r2, 0
-_0805C856:
- lsls r2, r3, 3
- adds r0, r2, r6
- ldrh r0, [r0]
- cmp r0, r1
- beq _0805C828
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r5
- bne _0805C856
-_0805C870:
- ldr r0, _0805C87C @ =0x000011ff
-_0805C872:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805C878: .4byte gUnknown_083738E4
-_0805C87C: .4byte 0x000011ff
-_0805C880: .4byte gUnknown_030005A6
- thumb_func_end npc_paltag_by_palslot
-
- thumb_func_start sub_805C884
-sub_805C884: @ 805C884
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805C8A0 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805C8A4 @ =sub_805C8A8
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805C8A0: .4byte gMapObjects
-_0805C8A4: .4byte sub_805C8A8
- thumb_func_end sub_805C884
-
- thumb_func_start sub_805C8A8
-sub_805C8A8: @ 805C8A8
- movs r0, 0
- bx lr
- thumb_func_end sub_805C8A8
-
- thumb_func_start sub_805C8AC
-sub_805C8AC: @ 805C8AC
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805C8C8 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805C8CC @ =sub_805C8D0
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805C8C8: .4byte gMapObjects
-_0805C8CC: .4byte sub_805C8D0
- thumb_func_end sub_805C8AC
-
- thumb_func_start sub_805C8D0
-sub_805C8D0: @ 805C8D0
- push {r4,lr}
- ldr r3, _0805C8EC @ =gUnknown_08375224
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805C8EC: .4byte gUnknown_08375224
- thumb_func_end sub_805C8D0
-
- thumb_func_start sub_805C8F0
-sub_805C8F0: @ 805C8F0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805C8F0
-
- thumb_func_start sub_805C904
-sub_805C904: @ 805C904
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805C904
-
- thumb_func_start sub_805C930
-sub_805C930: @ 805C930
- push {r4-r6,lr}
- adds r6, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805C964
- ldr r5, _0805C960 @ =gUnknown_0837520C
- bl Random
- movs r4, 0x3
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r5
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r6, 0
- bl sub_8064820
- strh r4, [r6, 0x30]
- movs r0, 0x1
- b _0805C966
- .align 2, 0
-_0805C960: .4byte gUnknown_0837520C
-_0805C964:
- movs r0, 0
-_0805C966:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_805C930
-
- thumb_func_start sub_805C96C
-sub_805C96C: @ 805C96C
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805C980
- movs r0, 0
- b _0805C986
-_0805C980:
- movs r0, 0x4
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0805C986:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805C96C
-
- thumb_func_start sub_805C98C
-sub_805C98C: @ 805C98C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r1, _0805C9D4 @ =gUnknown_08375240
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- bl Random
- movs r1, 0x3
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r4, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x5
- strh r0, [r6, 0x30]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_805FF20
- lsls r0, 24
- cmp r0, 0
- beq _0805C9CA
- movs r0, 0x1
- strh r0, [r6, 0x30]
-_0805C9CA:
- movs r0, 0x1
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805C9D4: .4byte gUnknown_08375240
- thumb_func_end sub_805C98C
-
- thumb_func_start sub_805C9D8
-sub_805C9D8: @ 805C9D8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x6
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805C9D8
-
- thumb_func_start sub_805CA08
-sub_805CA08: @ 805CA08
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805CA26
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_0805CA26:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805CA08
-
- thumb_func_start FieldObjectIsTrainerAndCloseToPlayer
-FieldObjectIsTrainerAndCloseToPlayer: @ 805CA30
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r0, 0x80
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0805CA9C
- ldrb r0, [r5, 0x7]
- cmp r0, 0x1
- beq _0805CA4C
- cmp r0, 0x3
- bne _0805CA9C
-_0805CA4C:
- mov r7, sp
- adds r7, 0x2
- mov r0, sp
- adds r1, r7, 0
- bl PlayerGetDestCoords
- ldrh r2, [r5, 0x10]
- ldrh r4, [r5, 0x12]
- ldrb r1, [r5, 0x1D]
- subs r3, r2, r1
- subs r0, r4, r1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r2, r1, r2
- lsls r2, 16
- lsrs r2, 16
- adds r1, r4
- lsls r1, 16
- lsrs r6, r1, 16
- mov r0, sp
- lsls r3, 16
- asrs r3, 16
- movs r1, 0
- ldrsh r4, [r0, r1]
- cmp r3, r4
- bgt _0805CA9C
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, r4
- blt _0805CA9C
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0
- ldrsh r1, [r7, r2]
- cmp r0, r1
- bgt _0805CA9C
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, r1
- bge _0805CAA0
-_0805CA9C:
- movs r0, 0
- b _0805CAA2
-_0805CAA0:
- movs r0, 0x1
-_0805CAA2:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end FieldObjectIsTrainerAndCloseToPlayer
-
- thumb_func_start sub_805CAAC
-sub_805CAAC: @ 805CAAC
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r0, r1, 16
- lsls r2, 16
- lsls r3, 16
- cmp r2, r3
- ble _0805CACA
- movs r2, 0x4
- lsls r0, r4, 16
- cmp r0, 0
- bge _0805CAD4
- movs r2, 0x3
- b _0805CAD4
-_0805CACA:
- movs r2, 0x1
- lsls r0, 16
- cmp r0, 0
- bge _0805CAD4
- movs r2, 0x2
-_0805CAD4:
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805CAAC
-
- thumb_func_start sub_805CADC
-sub_805CADC: @ 805CADC
- push {lr}
- movs r0, 0x1
- lsls r1, 16
- cmp r1, 0
- bge _0805CAE8
- movs r0, 0x2
-_0805CAE8:
- pop {r1}
- bx r1
- thumb_func_end sub_805CADC
-
- thumb_func_start sub_805CAEC
-sub_805CAEC: @ 805CAEC
- push {lr}
- movs r1, 0x4
- lsls r0, 16
- cmp r0, 0
- bge _0805CAF8
- movs r1, 0x3
-_0805CAF8:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_805CAEC
-
- thumb_func_start sub_805CB00
-sub_805CB00: @ 805CB00
- push {r4-r7,lr}
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r7, r3, 16
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_805CAAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805CB3C
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_805CAEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0805CB56
- b _0805CB54
-_0805CB3C:
- cmp r0, 0x4
- bne _0805CB56
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_805CADC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805CB56
-_0805CB54:
- movs r0, 0x2
-_0805CB56:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805CB00
-
- thumb_func_start sub_805CB5C
-sub_805CB5C: @ 805CB5C
- push {r4-r7,lr}
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r7, r3, 16
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_805CAAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805CB98
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_805CAEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0805CBB2
- b _0805CBB0
-_0805CB98:
- cmp r0, 0x3
- bne _0805CBB2
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_805CADC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805CBB2
-_0805CBB0:
- movs r0, 0x2
-_0805CBB2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805CB5C
-
- thumb_func_start sub_805CBB8
-sub_805CBB8: @ 805CBB8
- push {r4-r7,lr}
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r7, r3, 16
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_805CAAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0805CBF4
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_805CAEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0805CC0E
- b _0805CC0C
-_0805CBF4:
- cmp r0, 0x4
- bne _0805CC0E
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_805CADC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0805CC0E
-_0805CC0C:
- movs r0, 0x1
-_0805CC0E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805CBB8
-
- thumb_func_start sub_805CC14
-sub_805CC14: @ 805CC14
- push {r4-r7,lr}
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r7, r3, 16
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_805CAAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0805CC50
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_805CAEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0805CC6A
- b _0805CC68
-_0805CC50:
- cmp r0, 0x3
- bne _0805CC6A
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_805CADC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0805CC6A
-_0805CC68:
- movs r0, 0x1
-_0805CC6A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805CC14
-
- thumb_func_start sub_805CC70
-sub_805CC70: @ 805CC70
- push {r4-r7,lr}
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r5, r2, 16
- lsls r3, 16
- asrs r4, r3, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_805CAAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0805CCA6
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_805CADC
- lsls r0, 24
- lsrs r0, 24
-_0805CCA6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805CC70
-
- thumb_func_start sub_805CCAC
-sub_805CCAC: @ 805CCAC
- push {r4-r7,lr}
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r5, r2, 16
- lsls r3, 16
- asrs r4, r3, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_805CAAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0805CCE2
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_805CADC
- lsls r0, 24
- lsrs r0, 24
-_0805CCE2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805CCAC
-
- thumb_func_start sub_805CCE8
-sub_805CCE8: @ 805CCE8
- push {r4-r7,lr}
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r5, r2, 16
- lsls r3, 16
- asrs r4, r3, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_805CAAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805CD1E
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_805CAEC
- lsls r0, 24
- lsrs r0, 24
-_0805CD1E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805CCE8
-
- thumb_func_start sub_805CD24
-sub_805CD24: @ 805CD24
- push {r4-r7,lr}
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r5, r2, 16
- lsls r3, 16
- asrs r4, r3, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_805CAAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0805CD5A
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_805CAEC
- lsls r0, 24
- lsrs r0, 24
-_0805CD5A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805CD24
-
- thumb_func_start sub_805CD60
-sub_805CD60: @ 805CD60
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- bne _0805CD78
- movs r0, 0
- b _0805CDDC
-_0805CD78:
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- mov r2, sp
- mov r0, sp
- ldrh r0, [r0]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r2]
- ldrh r0, [r5]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r5]
- mov r0, sp
- ldrh r3, [r5]
- ldrh r2, [r0]
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0805CDAC
- negs r0, r0
- lsls r0, 16
- lsrs r2, r0, 16
-_0805CDAC:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0
- bge _0805CDBA
- negs r0, r0
- lsls r0, 16
- lsrs r3, r0, 16
-_0805CDBA:
- ldr r0, _0805CDE4 @ =gUnknown_08375244
- lsls r4, r6, 2
- adds r4, r0
- mov r0, sp
- movs r6, 0
- ldrsh r0, [r0, r6]
- movs r6, 0
- ldrsh r1, [r5, r6]
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- ldr r4, [r4]
- bl _call_via_r4
- lsls r0, 24
- lsrs r0, 24
-_0805CDDC:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805CDE4: .4byte gUnknown_08375244
- thumb_func_end sub_805CD60
-
- thumb_func_start sub_805CDE8
-sub_805CDE8: @ 805CDE8
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805CE04 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805CE08 @ =sub_805CE0C
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805CE04: .4byte gMapObjects
-_0805CE08: .4byte sub_805CE0C
- thumb_func_end sub_805CDE8
-
- thumb_func_start sub_805CE0C
-sub_805CE0C: @ 805CE0C
- push {r4,lr}
- ldr r3, _0805CE28 @ =gUnknown_08375270
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805CE28: .4byte gUnknown_08375270
- thumb_func_end sub_805CE0C
-
- thumb_func_start sub_805CE2C
-sub_805CE2C: @ 805CE2C
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805CE2C
-
- thumb_func_start sub_805CE40
-sub_805CE40: @ 805CE40
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805CE40
-
- thumb_func_start sub_805CE6C
-sub_805CE6C: @ 805CE6C
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805CEA2
- ldr r4, _0805CEAC @ =gUnknown_0837520C
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8064820
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0805CEA2:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805CEAC: .4byte gUnknown_0837520C
- thumb_func_end sub_805CE6C
-
- thumb_func_start sub_805CEB0
-sub_805CEB0: @ 805CEB0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805CECE
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805CED6
-_0805CECE:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _0805CED8
-_0805CED6:
- movs r0, 0
-_0805CED8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805CEB0
-
- thumb_func_start sub_805CEE0
-sub_805CEE0: @ 805CEE0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805CF24 @ =gUnknown_08375240
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- movs r1, 0
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805CF10
- bl Random
- movs r1, 0x3
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_0805CF10:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805CF24: .4byte gUnknown_08375240
- thumb_func_end sub_805CEE0
-
- thumb_func_start sub_805CF28
-sub_805CF28: @ 805CF28
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805CF44 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805CF48 @ =sub_805CF4C
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805CF44: .4byte gMapObjects
-_0805CF48: .4byte sub_805CF4C
- thumb_func_end sub_805CF28
-
- thumb_func_start sub_805CF4C
-sub_805CF4C: @ 805CF4C
- push {r4,lr}
- ldr r3, _0805CF68 @ =gUnknown_08375284
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805CF68: .4byte gUnknown_08375284
- thumb_func_end sub_805CF4C
-
- thumb_func_start sub_805CF6C
-sub_805CF6C: @ 805CF6C
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805CF6C
-
- thumb_func_start sub_805CF80
-sub_805CF80: @ 805CF80
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805CF80
-
- thumb_func_start sub_805CFAC
-sub_805CFAC: @ 805CFAC
- push {r4-r6,lr}
- adds r6, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805CFE0
- ldr r5, _0805CFDC @ =gUnknown_0837520C
- bl Random
- movs r4, 0x3
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r5
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r6, 0
- bl sub_8064820
- strh r4, [r6, 0x30]
- movs r0, 0x1
- b _0805CFE2
- .align 2, 0
-_0805CFDC: .4byte gUnknown_0837520C
-_0805CFE0:
- movs r0, 0
-_0805CFE2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_805CFAC
-
- thumb_func_start sub_805CFE8
-sub_805CFE8: @ 805CFE8
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805CFFC
- movs r0, 0
- b _0805D002
-_0805CFFC:
- movs r0, 0x4
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0805D002:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805CFE8
-
- thumb_func_start sub_805D008
-sub_805D008: @ 805D008
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r1, _0805D050 @ =gUnknown_083752A0
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- bl Random
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r4, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x5
- strh r0, [r6, 0x30]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_805FF20
- lsls r0, 24
- cmp r0, 0
- beq _0805D046
- strh r7, [r6, 0x30]
-_0805D046:
- movs r0, 0x1
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D050: .4byte gUnknown_083752A0
- thumb_func_end sub_805D008
-
- thumb_func_start sub_805D054
-sub_805D054: @ 805D054
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x6
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D054
-
- thumb_func_start sub_805D084
-sub_805D084: @ 805D084
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805D0A2
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_0805D0A2:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D084
-
- thumb_func_start sub_805D0AC
-sub_805D0AC: @ 805D0AC
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805D0C8 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805D0CC @ =sub_805D0D0
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805D0C8: .4byte gMapObjects
-_0805D0CC: .4byte sub_805D0D0
- thumb_func_end sub_805D0AC
-
- thumb_func_start sub_805D0D0
-sub_805D0D0: @ 805D0D0
- push {r4,lr}
- ldr r3, _0805D0EC @ =gUnknown_083752A4
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D0EC: .4byte gUnknown_083752A4
- thumb_func_end sub_805D0D0
-
- thumb_func_start sub_805D0F0
-sub_805D0F0: @ 805D0F0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805D0F0
-
- thumb_func_start sub_805D104
-sub_805D104: @ 805D104
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D104
-
- thumb_func_start sub_805D130
-sub_805D130: @ 805D130
- push {r4-r6,lr}
- adds r6, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805D164
- ldr r5, _0805D160 @ =gUnknown_0837520C
- bl Random
- movs r4, 0x3
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r5
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r6, 0
- bl sub_8064820
- strh r4, [r6, 0x30]
- movs r0, 0x1
- b _0805D166
- .align 2, 0
-_0805D160: .4byte gUnknown_0837520C
-_0805D164:
- movs r0, 0
-_0805D166:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_805D130
-
- thumb_func_start sub_805D16C
-sub_805D16C: @ 805D16C
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805D180
- movs r0, 0
- b _0805D186
-_0805D180:
- movs r0, 0x4
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0805D186:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805D16C
-
- thumb_func_start sub_805D18C
-sub_805D18C: @ 805D18C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r1, _0805D1D4 @ =gUnknown_083752C0
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- bl Random
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r4, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x5
- strh r0, [r6, 0x30]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_805FF20
- lsls r0, 24
- cmp r0, 0
- beq _0805D1CA
- strh r7, [r6, 0x30]
-_0805D1CA:
- movs r0, 0x1
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D1D4: .4byte gUnknown_083752C0
- thumb_func_end sub_805D18C
-
- thumb_func_start sub_805D1D8
-sub_805D1D8: @ 805D1D8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x6
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D1D8
-
- thumb_func_start sub_805D208
-sub_805D208: @ 805D208
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805D226
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_0805D226:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D208
-
- thumb_func_start sub_805D230
-sub_805D230: @ 805D230
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805D24C @ =gMapObjects
- adds r0, r2
- ldr r2, _0805D250 @ =sub_805D254
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805D24C: .4byte gMapObjects
-_0805D250: .4byte sub_805D254
- thumb_func_end sub_805D230
-
- thumb_func_start sub_805D254
-sub_805D254: @ 805D254
- push {r4,lr}
- ldr r3, _0805D270 @ =gUnknown_083752C4
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D270: .4byte gUnknown_083752C4
- thumb_func_end sub_805D254
-
- thumb_func_start sub_805D274
-sub_805D274: @ 805D274
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D274
-
- thumb_func_start sub_805D2A0
-sub_805D2A0: @ 805D2A0
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- bne _0805D2B2
- movs r0, 0
- b _0805D2B8
-_0805D2B2:
- movs r0, 0x2
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0805D2B8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805D2A0
-
- thumb_func_start sub_805D2C0
-sub_805D2C0: @ 805D2C0
- ldrb r2, [r0]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0
- bx lr
- thumb_func_end sub_805D2C0
-
- thumb_func_start FieldObjectCB_BerryTree
-FieldObjectCB_BerryTree: @ 805D2D0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805D30C @ =gMapObjects
- adds r5, r0, r1
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0805D2FC
- adds r0, r5, 0
- adds r1, r4, 0
- bl get_berry_tree_graphics
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r4, 0x3C]
-_0805D2FC:
- ldr r2, _0805D310 @ =sub_805D314
- adds r0, r5, 0
- adds r1, r4, 0
- bl meta_step
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805D30C: .4byte gMapObjects
-_0805D310: .4byte sub_805D314
- thumb_func_end FieldObjectCB_BerryTree
-
- thumb_func_start sub_805D314
-sub_805D314: @ 805D314
- push {r4,lr}
- ldr r3, _0805D330 @ =gUnknown_083752D0
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D330: .4byte gUnknown_083752D0
- thumb_func_end sub_805D314
-
- thumb_func_start do_berry_tree_growth_sparkle_1
-do_berry_tree_growth_sparkle_1: @ 805D334
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r6, r5, 0
- adds r6, 0x3E
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r6]
- ldrb r0, [r4, 0x1D]
- bl GetStageByBerryTreeId
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _0805D3A4
- ldrh r1, [r5, 0x3C]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0805D39A
- subs r6, 0x14
- ldrb r0, [r6]
- cmp r0, 0x4
- bne _0805D39A
- ldr r1, _0805D3A0 @ =gUnknown_0202FF84
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- str r0, [r1, 0x4]
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r1, 0x8]
- ldrb r0, [r5, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r1, 0xC]
- movs r0, 0x17
- bl FieldEffectStart
- strb r7, [r6]
-_0805D39A:
- movs r0, 0
- b _0805D3E6
- .align 2, 0
-_0805D3A0: .4byte gUnknown_0202FF84
-_0805D3A4:
- ldrb r1, [r4, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r6]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- subs r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, r7
- bne _0805D3E0
- adds r0, r4, 0
- adds r1, r5, 0
- bl get_berry_tree_graphics
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x39
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- b _0805D3E6
-_0805D3E0:
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
-_0805D3E6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end do_berry_tree_growth_sparkle_1
-
- thumb_func_start sub_805D3EC
-sub_805D3EC: @ 805D3EC
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- bne _0805D3FE
- movs r0, 0
- b _0805D404
-_0805D3FE:
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0805D404:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805D3EC
-
- thumb_func_start do_berry_tree_growth_sparkle_2
-do_berry_tree_growth_sparkle_2: @ 805D40C
- push {r4,lr}
- ldrb r2, [r0]
- movs r3, 0x2
- orrs r2, r3
- strb r2, [r0]
- movs r3, 0
- movs r2, 0x3
- strh r2, [r1, 0x30]
- strh r3, [r1, 0x32]
- ldrh r3, [r1, 0x3C]
- movs r2, 0x2
- orrs r2, r3
- strh r2, [r1, 0x3C]
- ldr r3, _0805D454 @ =gUnknown_0202FF84
- movs r4, 0x10
- ldrsh r2, [r0, r4]
- str r2, [r3]
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- str r0, [r3, 0x4]
- adds r0, r1, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r3, 0x8]
- ldrb r0, [r1, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r3, 0xC]
- movs r0, 0x17
- bl FieldEffectStart
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D454: .4byte gUnknown_0202FF84
- thumb_func_end do_berry_tree_growth_sparkle_2
-
- thumb_func_start sub_805D458
-sub_805D458: @ 805D458
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- ldrh r1, [r4, 0x32]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- movs r0, 0x2
- ands r1, r0
- lsls r1, 16
- lsrs r1, 17
- lsls r1, 5
- ldrb r2, [r3, 0x1]
- subs r0, 0x23
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bgt _0805D490
- movs r0, 0
- b _0805D4A2
-_0805D490:
- adds r0, r3, 0
- adds r1, r4, 0
- bl get_berry_tree_graphics
- movs r0, 0x4
- strh r0, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_0805D4A2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805D458
-
- thumb_func_start sub_805D4A8
-sub_805D4A8: @ 805D4A8
- push {r4,lr}
- adds r4, r1, 0
- ldrh r2, [r4, 0x32]
- adds r2, 0x1
- strh r2, [r4, 0x32]
- movs r1, 0x2
- ands r2, r1
- lsls r2, 16
- lsrs r2, 17
- lsls r2, 5
- ldrb r3, [r0, 0x1]
- subs r1, 0x23
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bgt _0805D4DE
- movs r0, 0
- b _0805D4EC
-_0805D4DE:
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x3C]
- subs r0, 0x3
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r0, 0x1
-_0805D4EC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805D4A8
-
- thumb_func_start sub_805D4F4
-sub_805D4F4: @ 805D4F4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805D510 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805D514 @ =sub_805D518
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805D510: .4byte gMapObjects
-_0805D514: .4byte sub_805D518
- thumb_func_end sub_805D4F4
-
- thumb_func_start sub_805D518
-sub_805D518: @ 805D518
- push {r4,lr}
- ldr r3, _0805D534 @ =gUnknown_083752E4
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D534: .4byte gUnknown_083752E4
- thumb_func_end sub_805D518
-
- thumb_func_start sub_805D538
-sub_805D538: @ 805D538
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805D538
-
- thumb_func_start sub_805D54C
-sub_805D54C: @ 805D54C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D54C
-
- thumb_func_start sub_805D578
-sub_805D578: @ 805D578
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805D5AE
- ldr r4, _0805D5B8 @ =gUnknown_0837520C
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8064820
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0805D5AE:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D5B8: .4byte gUnknown_0837520C
- thumb_func_end sub_805D578
-
- thumb_func_start sub_805D5BC
-sub_805D5BC: @ 805D5BC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805D5DA
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805D5E2
-_0805D5DA:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _0805D5E4
-_0805D5E2:
- movs r0, 0
-_0805D5E4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D5BC
-
- thumb_func_start sub_805D5EC
-sub_805D5EC: @ 805D5EC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805D630 @ =gUnknown_083752A0
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805D61C
- bl Random
- movs r1, 0x1
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_0805D61C:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D630: .4byte gUnknown_083752A0
- thumb_func_end sub_805D5EC
-
- thumb_func_start sub_805D634
-sub_805D634: @ 805D634
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805D650 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805D654 @ =sub_805D658
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805D650: .4byte gMapObjects
-_0805D654: .4byte sub_805D658
- thumb_func_end sub_805D634
-
- thumb_func_start sub_805D658
-sub_805D658: @ 805D658
- push {r4,lr}
- ldr r3, _0805D674 @ =gUnknown_083752F8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D674: .4byte gUnknown_083752F8
- thumb_func_end sub_805D658
-
- thumb_func_start sub_805D678
-sub_805D678: @ 805D678
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805D678
-
- thumb_func_start sub_805D68C
-sub_805D68C: @ 805D68C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D68C
-
- thumb_func_start sub_805D6B8
-sub_805D6B8: @ 805D6B8
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805D6EE
- ldr r4, _0805D6F8 @ =gUnknown_0837520C
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8064820
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0805D6EE:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D6F8: .4byte gUnknown_0837520C
- thumb_func_end sub_805D6B8
-
- thumb_func_start sub_805D6FC
-sub_805D6FC: @ 805D6FC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805D71A
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805D722
-_0805D71A:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _0805D724
-_0805D722:
- movs r0, 0
-_0805D724:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D6FC
-
- thumb_func_start sub_805D72C
-sub_805D72C: @ 805D72C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805D770 @ =gUnknown_083752C0
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805D75C
- bl Random
- movs r1, 0x1
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_0805D75C:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D770: .4byte gUnknown_083752C0
- thumb_func_end sub_805D72C
-
- thumb_func_start sub_805D774
-sub_805D774: @ 805D774
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805D790 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805D794 @ =sub_805D798
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805D790: .4byte gMapObjects
-_0805D794: .4byte sub_805D798
- thumb_func_end sub_805D774
-
- thumb_func_start sub_805D798
-sub_805D798: @ 805D798
- push {r4,lr}
- ldr r3, _0805D7B4 @ =gUnknown_0837530C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D7B4: .4byte gUnknown_0837530C
- thumb_func_end sub_805D798
-
- thumb_func_start sub_805D7B8
-sub_805D7B8: @ 805D7B8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805D7B8
-
- thumb_func_start sub_805D7CC
-sub_805D7CC: @ 805D7CC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D7CC
-
- thumb_func_start sub_805D7F8
-sub_805D7F8: @ 805D7F8
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805D82E
- ldr r4, _0805D838 @ =gUnknown_0837521C
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8064820
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0805D82E:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D838: .4byte gUnknown_0837521C
- thumb_func_end sub_805D7F8
-
- thumb_func_start sub_805D83C
-sub_805D83C: @ 805D83C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805D85A
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805D862
-_0805D85A:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _0805D864
-_0805D862:
- movs r0, 0
-_0805D864:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D83C
-
- thumb_func_start sub_805D86C
-sub_805D86C: @ 805D86C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805D8B0 @ =gUnknown_08375320
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805D89C
- bl Random
- movs r1, 0x1
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_0805D89C:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D8B0: .4byte gUnknown_08375320
- thumb_func_end sub_805D86C
-
- thumb_func_start sub_805D8B4
-sub_805D8B4: @ 805D8B4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805D8D0 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805D8D4 @ =sub_805D8D8
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805D8D0: .4byte gMapObjects
-_0805D8D4: .4byte sub_805D8D8
- thumb_func_end sub_805D8B4
-
- thumb_func_start sub_805D8D8
-sub_805D8D8: @ 805D8D8
- push {r4,lr}
- ldr r3, _0805D8F4 @ =gUnknown_08375324
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D8F4: .4byte gUnknown_08375324
- thumb_func_end sub_805D8D8
-
- thumb_func_start sub_805D8F8
-sub_805D8F8: @ 805D8F8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805D8F8
-
- thumb_func_start sub_805D90C
-sub_805D90C: @ 805D90C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D90C
-
- thumb_func_start sub_805D938
-sub_805D938: @ 805D938
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805D96E
- ldr r4, _0805D978 @ =gUnknown_0837521C
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8064820
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0805D96E:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D978: .4byte gUnknown_0837521C
- thumb_func_end sub_805D938
-
- thumb_func_start sub_805D97C
-sub_805D97C: @ 805D97C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805D99A
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805D9A2
-_0805D99A:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _0805D9A4
-_0805D9A2:
- movs r0, 0
-_0805D9A4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805D97C
-
- thumb_func_start sub_805D9AC
-sub_805D9AC: @ 805D9AC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805D9F0 @ =gUnknown_08375338
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x4
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805D9DC
- bl Random
- movs r1, 0x1
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_0805D9DC:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805D9F0: .4byte gUnknown_08375338
- thumb_func_end sub_805D9AC
-
- thumb_func_start sub_805D9F4
-sub_805D9F4: @ 805D9F4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805DA10 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805DA14 @ =sub_805DA18
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805DA10: .4byte gMapObjects
-_0805DA14: .4byte sub_805DA18
- thumb_func_end sub_805D9F4
-
- thumb_func_start sub_805DA18
-sub_805DA18: @ 805DA18
- push {r4,lr}
- ldr r3, _0805DA34 @ =gUnknown_0837533C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DA34: .4byte gUnknown_0837533C
- thumb_func_end sub_805DA18
-
- thumb_func_start sub_805DA38
-sub_805DA38: @ 805DA38
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805DA38
-
- thumb_func_start sub_805DA4C
-sub_805DA4C: @ 805DA4C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805DA4C
-
- thumb_func_start sub_805DA78
-sub_805DA78: @ 805DA78
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805DAAE
- ldr r4, _0805DAB8 @ =gUnknown_0837521C
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8064820
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0805DAAE:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DAB8: .4byte gUnknown_0837521C
- thumb_func_end sub_805DA78
-
- thumb_func_start sub_805DABC
-sub_805DABC: @ 805DABC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805DADA
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805DAE2
-_0805DADA:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _0805DAE4
-_0805DAE2:
- movs r0, 0
-_0805DAE4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805DABC
-
- thumb_func_start sub_805DAEC
-sub_805DAEC: @ 805DAEC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805DB30 @ =gUnknown_08375350
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x5
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805DB1C
- bl Random
- movs r1, 0x1
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_0805DB1C:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DB30: .4byte gUnknown_08375350
- thumb_func_end sub_805DAEC
-
- thumb_func_start sub_805DB34
-sub_805DB34: @ 805DB34
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805DB50 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805DB54 @ =sub_805DB58
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805DB50: .4byte gMapObjects
-_0805DB54: .4byte sub_805DB58
- thumb_func_end sub_805DB34
-
- thumb_func_start sub_805DB58
-sub_805DB58: @ 805DB58
- push {r4,lr}
- ldr r3, _0805DB74 @ =gUnknown_08375354
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DB74: .4byte gUnknown_08375354
- thumb_func_end sub_805DB58
-
- thumb_func_start sub_805DB78
-sub_805DB78: @ 805DB78
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805DB78
-
- thumb_func_start sub_805DB8C
-sub_805DB8C: @ 805DB8C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805DB8C
-
- thumb_func_start sub_805DBB8
-sub_805DBB8: @ 805DBB8
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805DBEE
- ldr r4, _0805DBF8 @ =gUnknown_0837521C
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8064820
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0805DBEE:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DBF8: .4byte gUnknown_0837521C
- thumb_func_end sub_805DBB8
-
- thumb_func_start sub_805DBFC
-sub_805DBFC: @ 805DBFC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805DC1A
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805DC22
-_0805DC1A:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _0805DC24
-_0805DC22:
- movs r0, 0
-_0805DC24:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805DBFC
-
- thumb_func_start sub_805DC2C
-sub_805DC2C: @ 805DC2C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805DC70 @ =gUnknown_08375368
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x6
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805DC5C
- bl Random
- movs r1, 0x1
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_0805DC5C:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DC70: .4byte gUnknown_08375368
- thumb_func_end sub_805DC2C
-
- thumb_func_start sub_805DC74
-sub_805DC74: @ 805DC74
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805DC90 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805DC94 @ =sub_805DC98
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805DC90: .4byte gMapObjects
-_0805DC94: .4byte sub_805DC98
- thumb_func_end sub_805DC74
-
- thumb_func_start sub_805DC98
-sub_805DC98: @ 805DC98
- push {r4,lr}
- ldr r3, _0805DCB4 @ =gUnknown_0837536C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DCB4: .4byte gUnknown_0837536C
- thumb_func_end sub_805DC98
-
- thumb_func_start sub_805DCB8
-sub_805DCB8: @ 805DCB8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805DCB8
-
- thumb_func_start sub_805DCCC
-sub_805DCCC: @ 805DCCC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805DCCC
-
- thumb_func_start sub_805DCF8
-sub_805DCF8: @ 805DCF8
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805DD2E
- ldr r4, _0805DD38 @ =gUnknown_0837521C
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8064820
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0805DD2E:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DD38: .4byte gUnknown_0837521C
- thumb_func_end sub_805DCF8
-
- thumb_func_start sub_805DD3C
-sub_805DD3C: @ 805DD3C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805DD5A
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805DD62
-_0805DD5A:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _0805DD64
-_0805DD62:
- movs r0, 0
-_0805DD64:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805DD3C
-
- thumb_func_start sub_805DD6C
-sub_805DD6C: @ 805DD6C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805DDB0 @ =gUnknown_08375380
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x7
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805DD9C
- bl Random
- movs r1, 0x3
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_0805DD9C:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DDB0: .4byte gUnknown_08375380
- thumb_func_end sub_805DD6C
-
- thumb_func_start sub_805DDB4
-sub_805DDB4: @ 805DDB4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805DDD0 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805DDD4 @ =sub_805DDD8
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805DDD0: .4byte gMapObjects
-_0805DDD4: .4byte sub_805DDD8
- thumb_func_end sub_805DDB4
-
- thumb_func_start sub_805DDD8
-sub_805DDD8: @ 805DDD8
- push {r4,lr}
- ldr r3, _0805DDF4 @ =gUnknown_08375384
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DDF4: .4byte gUnknown_08375384
- thumb_func_end sub_805DDD8
-
- thumb_func_start sub_805DDF8
-sub_805DDF8: @ 805DDF8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805DDF8
-
- thumb_func_start sub_805DE0C
-sub_805DE0C: @ 805DE0C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805DE0C
-
- thumb_func_start sub_805DE38
-sub_805DE38: @ 805DE38
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805DE6E
- ldr r4, _0805DE78 @ =gUnknown_0837521C
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8064820
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0805DE6E:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DE78: .4byte gUnknown_0837521C
- thumb_func_end sub_805DE38
-
- thumb_func_start sub_805DE7C
-sub_805DE7C: @ 805DE7C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805DE9A
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805DEA2
-_0805DE9A:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _0805DEA4
-_0805DEA2:
- movs r0, 0
-_0805DEA4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805DE7C
-
- thumb_func_start sub_805DEAC
-sub_805DEAC: @ 805DEAC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805DEF0 @ =gUnknown_08375398
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x8
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805DEDC
- bl Random
- movs r1, 0x3
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_0805DEDC:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DEF0: .4byte gUnknown_08375398
- thumb_func_end sub_805DEAC
-
- thumb_func_start sub_805DEF4
-sub_805DEF4: @ 805DEF4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805DF10 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805DF14 @ =sub_805DF18
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805DF10: .4byte gMapObjects
-_0805DF14: .4byte sub_805DF18
- thumb_func_end sub_805DEF4
-
- thumb_func_start sub_805DF18
-sub_805DF18: @ 805DF18
- push {r4,lr}
- ldr r3, _0805DF34 @ =gUnknown_0837539C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DF34: .4byte gUnknown_0837539C
- thumb_func_end sub_805DF18
-
- thumb_func_start sub_805DF38
-sub_805DF38: @ 805DF38
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805DF38
-
- thumb_func_start sub_805DF4C
-sub_805DF4C: @ 805DF4C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805DF4C
-
- thumb_func_start sub_805DF78
-sub_805DF78: @ 805DF78
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805DFAE
- ldr r4, _0805DFB8 @ =gUnknown_0837521C
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8064820
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0805DFAE:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805DFB8: .4byte gUnknown_0837521C
- thumb_func_end sub_805DF78
-
- thumb_func_start sub_805DFBC
-sub_805DFBC: @ 805DFBC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805DFDA
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805DFE2
-_0805DFDA:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _0805DFE4
-_0805DFE2:
- movs r0, 0
-_0805DFE4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805DFBC
-
- thumb_func_start sub_805DFEC
-sub_805DFEC: @ 805DFEC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805E030 @ =gUnknown_083753B0
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x9
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805E01C
- bl Random
- movs r1, 0x3
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_0805E01C:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E030: .4byte gUnknown_083753B0
- thumb_func_end sub_805DFEC
-
- thumb_func_start sub_805E034
-sub_805E034: @ 805E034
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805E050 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805E054 @ =sub_805E058
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805E050: .4byte gMapObjects
-_0805E054: .4byte sub_805E058
- thumb_func_end sub_805E034
-
- thumb_func_start sub_805E058
-sub_805E058: @ 805E058
- push {r4,lr}
- ldr r3, _0805E074 @ =gUnknown_083753B4
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E074: .4byte gUnknown_083753B4
- thumb_func_end sub_805E058
-
- thumb_func_start sub_805E078
-sub_805E078: @ 805E078
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805E078
-
- thumb_func_start sub_805E08C
-sub_805E08C: @ 805E08C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805E08C
-
- thumb_func_start sub_805E0B8
-sub_805E0B8: @ 805E0B8
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805E0EE
- ldr r4, _0805E0F8 @ =gUnknown_0837521C
- bl Random
- movs r5, 0x3
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r7, 0
- bl sub_8064820
- ldrb r1, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- strh r5, [r7, 0x30]
-_0805E0EE:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E0F8: .4byte gUnknown_0837521C
- thumb_func_end sub_805E0B8
-
- thumb_func_start sub_805E0FC
-sub_805E0FC: @ 805E0FC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805E11A
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805E122
-_0805E11A:
- movs r0, 0x4
- strh r0, [r5, 0x30]
- movs r0, 0x1
- b _0805E124
-_0805E122:
- movs r0, 0
-_0805E124:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805E0FC
-
- thumb_func_start sub_805E12C
-sub_805E12C: @ 805E12C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805E170 @ =gUnknown_083753C8
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- movs r1, 0xA
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805E15C
- bl Random
- movs r1, 0x3
- ands r1, r0
- mov r2, sp
- adds r0, r2, r1
- ldrb r1, [r0]
-_0805E15C:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x30]
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E170: .4byte gUnknown_083753C8
- thumb_func_end sub_805E12C
-
- thumb_func_start sub_805E174
-sub_805E174: @ 805E174
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805E190 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805E194 @ =sub_805E198
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805E190: .4byte gMapObjects
-_0805E194: .4byte sub_805E198
- thumb_func_end sub_805E174
-
- thumb_func_start sub_805E198
-sub_805E198: @ 805E198
- push {r4,lr}
- ldr r3, _0805E1B4 @ =gUnknown_083753CC
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E1B4: .4byte gUnknown_083753CC
- thumb_func_end sub_805E198
-
- thumb_func_start sub_805E1B8
-sub_805E1B8: @ 805E1B8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805E1B8
-
- thumb_func_start sub_805E1E4
-sub_805E1E4: @ 805E1E4
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805E1FE
- adds r0, r4, 0
- movs r1, 0x30
- bl sub_8064820
- movs r0, 0x2
- strh r0, [r4, 0x30]
-_0805E1FE:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805E1E4
-
- thumb_func_start sub_805E208
-sub_805E208: @ 805E208
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805E226
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805E22A
-_0805E226:
- movs r0, 0x3
- strh r0, [r5, 0x30]
-_0805E22A:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805E208
-
- thumb_func_start sub_805E234
-sub_805E234: @ 805E234
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805E274 @ =gUnknown_083753DC
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- movs r1, 0
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805E260
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
-_0805E260:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0
- strh r0, [r5, 0x30]
- movs r0, 0x1
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E274: .4byte gUnknown_083753DC
- thumb_func_end sub_805E234
-
- thumb_func_start sub_805E278
-sub_805E278: @ 805E278
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805E294 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805E298 @ =sub_805E29C
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805E294: .4byte gMapObjects
-_0805E298: .4byte sub_805E29C
- thumb_func_end sub_805E278
-
- thumb_func_start sub_805E29C
-sub_805E29C: @ 805E29C
- push {r4,lr}
- ldr r3, _0805E2B8 @ =gUnknown_083753E4
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E2B8: .4byte gUnknown_083753E4
- thumb_func_end sub_805E29C
-
- thumb_func_start sub_805E2BC
-sub_805E2BC: @ 805E2BC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805E2BC
-
- thumb_func_start sub_805E2E8
-sub_805E2E8: @ 805E2E8
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805E302
- adds r0, r4, 0
- movs r1, 0x30
- bl sub_8064820
- movs r0, 0x2
- strh r0, [r4, 0x30]
-_0805E302:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805E2E8
-
- thumb_func_start sub_805E30C
-sub_805E30C: @ 805E30C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- bne _0805E32A
- adds r0, r4, 0
- bl FieldObjectIsTrainerAndCloseToPlayer
- lsls r0, 24
- cmp r0, 0
- beq _0805E32E
-_0805E32A:
- movs r0, 0x3
- strh r0, [r5, 0x30]
-_0805E32E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805E30C
-
- thumb_func_start sub_805E338
-sub_805E338: @ 805E338
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805E378 @ =gUnknown_083753F4
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- movs r1, 0
- bl sub_805CD60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805E364
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
-_0805E364:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0
- strh r0, [r5, 0x30]
- movs r0, 0x1
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E378: .4byte gUnknown_083753F4
- thumb_func_end sub_805E338
-
- thumb_func_start sub_805E37C
-sub_805E37C: @ 805E37C
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805E398 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805E39C @ =sub_805E3A0
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805E398: .4byte gMapObjects
-_0805E39C: .4byte sub_805E3A0
- thumb_func_end sub_805E37C
-
- thumb_func_start sub_805E3A0
-sub_805E3A0: @ 805E3A0
- push {r4,lr}
- ldr r3, _0805E3BC @ =gUnknown_083753FC
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E3BC: .4byte gUnknown_083753FC
- thumb_func_end sub_805E3A0
-
- thumb_func_start sub_805E3C0
-sub_805E3C0: @ 805E3C0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805E3C0
-
- thumb_func_start sub_805E3D4
-sub_805E3D4: @ 805E3D4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, _0805E408 @ =gUnknown_0836DC09
- ldrb r1, [r4, 0x6]
- adds r1, r0
- ldrb r1, [r1]
- adds r0, r4, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0
- beq _0805E3F6
- adds r0, r1, 0
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r1, r0, 24
-_0805E3F6:
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E408: .4byte gUnknown_0836DC09
- thumb_func_end sub_805E3D4
-
- thumb_func_start sub_805E40C
-sub_805E40C: @ 805E40C
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r7, r1, 0
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0
- beq _0805E43C
- ldr r1, [r4, 0xC]
- ldr r0, [r4, 0x10]
- cmp r1, r0
- bne _0805E43C
- movs r0, 0
- strb r0, [r2]
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetOppositeDirection
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetDirection
-_0805E43C:
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl sub_805FF20
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r5, 0x1
- bne _0805E492
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetOppositeDirection
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetDirection
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl sub_805FF20
- lsls r0, 24
- lsrs r5, r0, 24
-_0805E492:
- cmp r5, 0
- beq _0805E4A4
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay16AnimId
- lsls r0, 24
- lsrs r6, r0, 24
-_0805E4A4:
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x3
- strh r0, [r7, 0x30]
- movs r0, 0x1
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805E40C
-
- thumb_func_start sub_805E4C4
-sub_805E4C4: @ 805E4C4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805E4E2
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_0805E4E2:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805E4C4
-
- thumb_func_start sub_805E4EC
-sub_805E4EC: @ 805E4EC
- push {r4,lr}
- adds r4, r1, 0
- bl npc_reset
- movs r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805E4EC
-
- thumb_func_start MoveFieldObjectInNextDirectionInSequence
-MoveFieldObjectInNextDirectionInSequence: @ 805E500
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- mov r8, r1
- adds r7, r2, 0
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _0805E522
- ldr r1, [r4, 0xC]
- ldr r0, [r4, 0x10]
- cmp r1, r0
- bne _0805E522
- movs r0, 0
- strb r0, [r2]
-_0805E522:
- adds r5, r4, 0
- adds r5, 0x21
- ldrb r0, [r5]
- adds r0, r7, r0
- ldrb r1, [r0]
- adds r0, r4, 0
- bl FieldObjectSetDirection
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl sub_805FF20
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805E57C
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldrb r0, [r5]
- adds r0, r7, r0
- ldrb r1, [r0]
- adds r0, r4, 0
- bl FieldObjectSetDirection
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetGoSpeed0AnimId
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl sub_805FF20
- lsls r0, 24
- lsrs r0, 24
-_0805E57C:
- cmp r0, 0
- beq _0805E58E
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay16AnimId
- lsls r0, 24
- lsrs r6, r0, 24
-_0805E58E:
- adds r0, r4, 0
- mov r1, r8
- adds r2, r6, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- mov r1, r8
- strh r0, [r1, 0x30]
- movs r0, 0x1
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end MoveFieldObjectInNextDirectionInSequence
-
- thumb_func_start sub_805E5B4
-sub_805E5B4: @ 805E5B4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805E5D2
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_0805E5D2:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805E5B4
-
- thumb_func_start sub_805E5DC
-sub_805E5DC: @ 805E5DC
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805E5F8 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805E5FC @ =sub_805E600
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805E5F8: .4byte gMapObjects
-_0805E5FC: .4byte sub_805E600
- thumb_func_end sub_805E5DC
-
- thumb_func_start sub_805E600
-sub_805E600: @ 805E600
- push {r4,lr}
- ldr r3, _0805E61C @ =gUnknown_0837540C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E61C: .4byte gUnknown_0837540C
- thumb_func_end sub_805E600
-
- thumb_func_start sub_805E620
-sub_805E620: @ 805E620
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805E664 @ =gUnknown_08375418
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805E64C
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805E64C
- movs r0, 0x3
- strb r0, [r2]
-_0805E64C:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E664: .4byte gUnknown_08375418
- thumb_func_end sub_805E620
-
- thumb_func_start sub_805E668
-sub_805E668: @ 805E668
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805E684 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805E688 @ =sub_805E68C
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805E684: .4byte gMapObjects
-_0805E688: .4byte sub_805E68C
- thumb_func_end sub_805E668
-
- thumb_func_start sub_805E68C
-sub_805E68C: @ 805E68C
- push {r4,lr}
- ldr r3, _0805E6A8 @ =gUnknown_0837541C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E6A8: .4byte gUnknown_0837541C
- thumb_func_end sub_805E68C
-
- thumb_func_start sub_805E6AC
-sub_805E6AC: @ 805E6AC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805E6F0 @ =gUnknown_08375428
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _0805E6D8
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805E6D8
- movs r0, 0x2
- strb r0, [r2]
-_0805E6D8:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E6F0: .4byte gUnknown_08375428
- thumb_func_end sub_805E6AC
-
- thumb_func_start sub_805E6F4
-sub_805E6F4: @ 805E6F4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805E710 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805E714 @ =sub_805E718
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805E710: .4byte gMapObjects
-_0805E714: .4byte sub_805E718
- thumb_func_end sub_805E6F4
-
- thumb_func_start sub_805E718
-sub_805E718: @ 805E718
- push {r4,lr}
- ldr r3, _0805E734 @ =gUnknown_0837542C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E734: .4byte gUnknown_0837542C
- thumb_func_end sub_805E718
-
- thumb_func_start sub_805E738
-sub_805E738: @ 805E738
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805E77C @ =gUnknown_08375438
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _0805E764
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805E764
- movs r0, 0x2
- strb r0, [r2]
-_0805E764:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E77C: .4byte gUnknown_08375438
- thumb_func_end sub_805E738
-
- thumb_func_start sub_805E780
-sub_805E780: @ 805E780
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805E79C @ =gMapObjects
- adds r0, r2
- ldr r2, _0805E7A0 @ =sub_805E7A4
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805E79C: .4byte gMapObjects
-_0805E7A0: .4byte sub_805E7A4
- thumb_func_end sub_805E780
-
- thumb_func_start sub_805E7A4
-sub_805E7A4: @ 805E7A4
- push {r4,lr}
- ldr r3, _0805E7C0 @ =gUnknown_0837543C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E7C0: .4byte gUnknown_0837543C
- thumb_func_end sub_805E7A4
-
- thumb_func_start sub_805E7C4
-sub_805E7C4: @ 805E7C4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805E808 @ =gUnknown_08375448
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805E7F0
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805E7F0
- movs r0, 0x3
- strb r0, [r2]
-_0805E7F0:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E808: .4byte gUnknown_08375448
- thumb_func_end sub_805E7C4
-
- thumb_func_start sub_805E80C
-sub_805E80C: @ 805E80C
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805E828 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805E82C @ =sub_805E830
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805E828: .4byte gMapObjects
-_0805E82C: .4byte sub_805E830
- thumb_func_end sub_805E80C
-
- thumb_func_start sub_805E830
-sub_805E830: @ 805E830
- push {r4,lr}
- ldr r3, _0805E84C @ =gUnknown_0837544C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E84C: .4byte gUnknown_0837544C
- thumb_func_end sub_805E830
-
- thumb_func_start sub_805E850
-sub_805E850: @ 805E850
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805E894 @ =gUnknown_08375458
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805E87C
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805E87C
- movs r0, 0x3
- strb r0, [r2]
-_0805E87C:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E894: .4byte gUnknown_08375458
- thumb_func_end sub_805E850
-
- thumb_func_start sub_805E898
-sub_805E898: @ 805E898
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805E8B4 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805E8B8 @ =sub_805E8BC
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805E8B4: .4byte gMapObjects
-_0805E8B8: .4byte sub_805E8BC
- thumb_func_end sub_805E898
-
- thumb_func_start sub_805E8BC
-sub_805E8BC: @ 805E8BC
- push {r4,lr}
- ldr r3, _0805E8D8 @ =gUnknown_0837545C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E8D8: .4byte gUnknown_0837545C
- thumb_func_end sub_805E8BC
-
- thumb_func_start sub_805E8DC
-sub_805E8DC: @ 805E8DC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805E920 @ =gUnknown_08375468
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _0805E908
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805E908
- movs r0, 0x2
- strb r0, [r2]
-_0805E908:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E920: .4byte gUnknown_08375468
- thumb_func_end sub_805E8DC
-
- thumb_func_start sub_805E924
-sub_805E924: @ 805E924
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805E940 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805E944 @ =sub_805E948
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805E940: .4byte gMapObjects
-_0805E944: .4byte sub_805E948
- thumb_func_end sub_805E924
-
- thumb_func_start sub_805E948
-sub_805E948: @ 805E948
- push {r4,lr}
- ldr r3, _0805E964 @ =gUnknown_0837546C
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E964: .4byte gUnknown_0837546C
- thumb_func_end sub_805E948
-
- thumb_func_start sub_805E968
-sub_805E968: @ 805E968
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805E9AC @ =gUnknown_08375240
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _0805E994
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805E994
- movs r0, 0x2
- strb r0, [r2]
-_0805E994:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E9AC: .4byte gUnknown_08375240
- thumb_func_end sub_805E968
-
- thumb_func_start sub_805E9B0
-sub_805E9B0: @ 805E9B0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805E9CC @ =gMapObjects
- adds r0, r2
- ldr r2, _0805E9D0 @ =sub_805E9D4
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805E9CC: .4byte gMapObjects
-_0805E9D0: .4byte sub_805E9D4
- thumb_func_end sub_805E9B0
-
- thumb_func_start sub_805E9D4
-sub_805E9D4: @ 805E9D4
- push {r4,lr}
- ldr r3, _0805E9F0 @ =gUnknown_08375478
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805E9F0: .4byte gUnknown_08375478
- thumb_func_end sub_805E9D4
-
- thumb_func_start sub_805E9F4
-sub_805E9F4: @ 805E9F4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805EA38 @ =gUnknown_08375484
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805EA20
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805EA20
- movs r0, 0x3
- strb r0, [r2]
-_0805EA20:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EA38: .4byte gUnknown_08375484
- thumb_func_end sub_805E9F4
-
- thumb_func_start sub_805EA3C
-sub_805EA3C: @ 805EA3C
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805EA58 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805EA5C @ =sub_805EA60
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805EA58: .4byte gMapObjects
-_0805EA5C: .4byte sub_805EA60
- thumb_func_end sub_805EA3C
-
- thumb_func_start sub_805EA60
-sub_805EA60: @ 805EA60
- push {r4,lr}
- ldr r3, _0805EA7C @ =gUnknown_08375488
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EA7C: .4byte gUnknown_08375488
- thumb_func_end sub_805EA60
-
- thumb_func_start sub_805EA80
-sub_805EA80: @ 805EA80
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805EAC4 @ =gUnknown_08375494
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805EAAC
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805EAAC
- movs r0, 0x3
- strb r0, [r2]
-_0805EAAC:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EAC4: .4byte gUnknown_08375494
- thumb_func_end sub_805EA80
-
- thumb_func_start sub_805EAC8
-sub_805EAC8: @ 805EAC8
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805EAE4 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805EAE8 @ =sub_805EAEC
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805EAE4: .4byte gMapObjects
-_0805EAE8: .4byte sub_805EAEC
- thumb_func_end sub_805EAC8
-
- thumb_func_start sub_805EAEC
-sub_805EAEC: @ 805EAEC
- push {r4,lr}
- ldr r3, _0805EB08 @ =gUnknown_08375498
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EB08: .4byte gUnknown_08375498
- thumb_func_end sub_805EAEC
-
- thumb_func_start sub_805EB0C
-sub_805EB0C: @ 805EB0C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805EB50 @ =gUnknown_083754A4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _0805EB38
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805EB38
- movs r0, 0x2
- strb r0, [r2]
-_0805EB38:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EB50: .4byte gUnknown_083754A4
- thumb_func_end sub_805EB0C
-
- thumb_func_start sub_805EB54
-sub_805EB54: @ 805EB54
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805EB70 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805EB74 @ =sub_805EB78
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805EB70: .4byte gMapObjects
-_0805EB74: .4byte sub_805EB78
- thumb_func_end sub_805EB54
-
- thumb_func_start sub_805EB78
-sub_805EB78: @ 805EB78
- push {r4,lr}
- ldr r3, _0805EB94 @ =gUnknown_083754A8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EB94: .4byte gUnknown_083754A8
- thumb_func_end sub_805EB78
-
- thumb_func_start sub_805EB98
-sub_805EB98: @ 805EB98
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805EBDC @ =gUnknown_083754B4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _0805EBC4
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805EBC4
- movs r0, 0x2
- strb r0, [r2]
-_0805EBC4:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EBDC: .4byte gUnknown_083754B4
- thumb_func_end sub_805EB98
-
- thumb_func_start sub_805EBE0
-sub_805EBE0: @ 805EBE0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805EBFC @ =gMapObjects
- adds r0, r2
- ldr r2, _0805EC00 @ =sub_805EC04
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805EBFC: .4byte gMapObjects
-_0805EC00: .4byte sub_805EC04
- thumb_func_end sub_805EBE0
-
- thumb_func_start sub_805EC04
-sub_805EC04: @ 805EC04
- push {r4,lr}
- ldr r3, _0805EC20 @ =gUnknown_083754B8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EC20: .4byte gUnknown_083754B8
- thumb_func_end sub_805EC04
-
- thumb_func_start sub_805EC24
-sub_805EC24: @ 805EC24
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805EC68 @ =gUnknown_083754C4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805EC50
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805EC50
- movs r0, 0x3
- strb r0, [r2]
-_0805EC50:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EC68: .4byte gUnknown_083754C4
- thumb_func_end sub_805EC24
-
- thumb_func_start sub_805EC6C
-sub_805EC6C: @ 805EC6C
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805EC88 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805EC8C @ =sub_805EC90
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805EC88: .4byte gMapObjects
-_0805EC8C: .4byte sub_805EC90
- thumb_func_end sub_805EC6C
-
- thumb_func_start sub_805EC90
-sub_805EC90: @ 805EC90
- push {r4,lr}
- ldr r3, _0805ECAC @ =gUnknown_083754C8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805ECAC: .4byte gUnknown_083754C8
- thumb_func_end sub_805EC90
-
- thumb_func_start sub_805ECB0
-sub_805ECB0: @ 805ECB0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805ECF4 @ =gUnknown_083754D4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805ECDC
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805ECDC
- movs r0, 0x3
- strb r0, [r2]
-_0805ECDC:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805ECF4: .4byte gUnknown_083754D4
- thumb_func_end sub_805ECB0
-
- thumb_func_start sub_805ECF8
-sub_805ECF8: @ 805ECF8
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805ED14 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805ED18 @ =sub_805ED1C
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805ED14: .4byte gMapObjects
-_0805ED18: .4byte sub_805ED1C
- thumb_func_end sub_805ECF8
-
- thumb_func_start sub_805ED1C
-sub_805ED1C: @ 805ED1C
- push {r4,lr}
- ldr r3, _0805ED38 @ =gUnknown_083754D8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805ED38: .4byte gUnknown_083754D8
- thumb_func_end sub_805ED1C
-
- thumb_func_start sub_805ED3C
-sub_805ED3C: @ 805ED3C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805ED80 @ =gUnknown_083754E4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _0805ED68
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805ED68
- movs r0, 0x2
- strb r0, [r2]
-_0805ED68:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805ED80: .4byte gUnknown_083754E4
- thumb_func_end sub_805ED3C
-
- thumb_func_start sub_805ED84
-sub_805ED84: @ 805ED84
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805EDA0 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805EDA4 @ =sub_805EDA8
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805EDA0: .4byte gMapObjects
-_0805EDA4: .4byte sub_805EDA8
- thumb_func_end sub_805ED84
-
- thumb_func_start sub_805EDA8
-sub_805EDA8: @ 805EDA8
- push {r4,lr}
- ldr r3, _0805EDC4 @ =gUnknown_083754E8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EDC4: .4byte gUnknown_083754E8
- thumb_func_end sub_805EDA8
-
- thumb_func_start sub_805EDC8
-sub_805EDC8: @ 805EDC8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805EE0C @ =gUnknown_083754F4
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _0805EDF4
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805EDF4
- movs r0, 0x2
- strb r0, [r2]
-_0805EDF4:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EE0C: .4byte gUnknown_083754F4
- thumb_func_end sub_805EDC8
-
- thumb_func_start sub_805EE10
-sub_805EE10: @ 805EE10
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805EE2C @ =gMapObjects
- adds r0, r2
- ldr r2, _0805EE30 @ =sub_805EE34
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805EE2C: .4byte gMapObjects
-_0805EE30: .4byte sub_805EE34
- thumb_func_end sub_805EE10
-
- thumb_func_start sub_805EE34
-sub_805EE34: @ 805EE34
- push {r4,lr}
- ldr r3, _0805EE50 @ =gUnknown_083754F8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EE50: .4byte gUnknown_083754F8
- thumb_func_end sub_805EE34
-
- thumb_func_start sub_805EE54
-sub_805EE54: @ 805EE54
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805EE98 @ =gUnknown_08375504
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805EE80
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805EE80
- movs r0, 0x3
- strb r0, [r2]
-_0805EE80:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EE98: .4byte gUnknown_08375504
- thumb_func_end sub_805EE54
-
- thumb_func_start sub_805EE9C
-sub_805EE9C: @ 805EE9C
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805EEB8 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805EEBC @ =sub_805EEC0
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805EEB8: .4byte gMapObjects
-_0805EEBC: .4byte sub_805EEC0
- thumb_func_end sub_805EE9C
-
- thumb_func_start sub_805EEC0
-sub_805EEC0: @ 805EEC0
- push {r4,lr}
- ldr r3, _0805EEDC @ =gUnknown_08375508
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EEDC: .4byte gUnknown_08375508
- thumb_func_end sub_805EEC0
-
- thumb_func_start sub_805EEE0
-sub_805EEE0: @ 805EEE0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805EF24 @ =gUnknown_08375514
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805EF0C
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805EF0C
- movs r0, 0x3
- strb r0, [r2]
-_0805EF0C:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EF24: .4byte gUnknown_08375514
- thumb_func_end sub_805EEE0
-
- thumb_func_start sub_805EF28
-sub_805EF28: @ 805EF28
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805EF44 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805EF48 @ =sub_805EF4C
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805EF44: .4byte gMapObjects
-_0805EF48: .4byte sub_805EF4C
- thumb_func_end sub_805EF28
-
- thumb_func_start sub_805EF4C
-sub_805EF4C: @ 805EF4C
- push {r4,lr}
- ldr r3, _0805EF68 @ =gUnknown_08375518
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EF68: .4byte gUnknown_08375518
- thumb_func_end sub_805EF4C
-
- thumb_func_start sub_805EF6C
-sub_805EF6C: @ 805EF6C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805EFB0 @ =gUnknown_08375524
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805EF98
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805EF98
- movs r0, 0x3
- strb r0, [r2]
-_0805EF98:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EFB0: .4byte gUnknown_08375524
- thumb_func_end sub_805EF6C
-
- thumb_func_start sub_805EFB4
-sub_805EFB4: @ 805EFB4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805EFD0 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805EFD4 @ =sub_805EFD8
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805EFD0: .4byte gMapObjects
-_0805EFD4: .4byte sub_805EFD8
- thumb_func_end sub_805EFB4
-
- thumb_func_start sub_805EFD8
-sub_805EFD8: @ 805EFD8
- push {r4,lr}
- ldr r3, _0805EFF4 @ =gUnknown_08375528
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805EFF4: .4byte gUnknown_08375528
- thumb_func_end sub_805EFD8
-
- thumb_func_start sub_805EFF8
-sub_805EFF8: @ 805EFF8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805F03C @ =gUnknown_08375534
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805F024
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805F024
- movs r0, 0x3
- strb r0, [r2]
-_0805F024:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F03C: .4byte gUnknown_08375534
- thumb_func_end sub_805EFF8
-
- thumb_func_start sub_805F040
-sub_805F040: @ 805F040
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805F05C @ =gMapObjects
- adds r0, r2
- ldr r2, _0805F060 @ =sub_805F064
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805F05C: .4byte gMapObjects
-_0805F060: .4byte sub_805F064
- thumb_func_end sub_805F040
-
- thumb_func_start sub_805F064
-sub_805F064: @ 805F064
- push {r4,lr}
- ldr r3, _0805F080 @ =gUnknown_08375538
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F080: .4byte gUnknown_08375538
- thumb_func_end sub_805F064
-
- thumb_func_start sub_805F084
-sub_805F084: @ 805F084
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805F0C8 @ =gUnknown_08375544
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805F0B0
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805F0B0
- movs r0, 0x3
- strb r0, [r2]
-_0805F0B0:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F0C8: .4byte gUnknown_08375544
- thumb_func_end sub_805F084
-
- thumb_func_start sub_805F0CC
-sub_805F0CC: @ 805F0CC
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805F0E8 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805F0EC @ =sub_805F0F0
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805F0E8: .4byte gMapObjects
-_0805F0EC: .4byte sub_805F0F0
- thumb_func_end sub_805F0CC
-
- thumb_func_start sub_805F0F0
-sub_805F0F0: @ 805F0F0
- push {r4,lr}
- ldr r3, _0805F10C @ =gUnknown_08375548
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F10C: .4byte gUnknown_08375548
- thumb_func_end sub_805F0F0
-
- thumb_func_start sub_805F110
-sub_805F110: @ 805F110
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805F154 @ =gUnknown_08375554
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805F13C
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805F13C
- movs r0, 0x3
- strb r0, [r2]
-_0805F13C:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F154: .4byte gUnknown_08375554
- thumb_func_end sub_805F110
-
- thumb_func_start sub_805F158
-sub_805F158: @ 805F158
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805F174 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805F178 @ =sub_805F17C
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805F174: .4byte gMapObjects
-_0805F178: .4byte sub_805F17C
- thumb_func_end sub_805F158
-
- thumb_func_start sub_805F17C
-sub_805F17C: @ 805F17C
- push {r4,lr}
- ldr r3, _0805F198 @ =gUnknown_08375558
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F198: .4byte gUnknown_08375558
- thumb_func_end sub_805F17C
-
- thumb_func_start sub_805F19C
-sub_805F19C: @ 805F19C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805F1E0 @ =gUnknown_08375564
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805F1C8
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805F1C8
- movs r0, 0x3
- strb r0, [r2]
-_0805F1C8:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F1E0: .4byte gUnknown_08375564
- thumb_func_end sub_805F19C
-
- thumb_func_start sub_805F1E4
-sub_805F1E4: @ 805F1E4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805F200 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805F204 @ =sub_805F208
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805F200: .4byte gMapObjects
-_0805F204: .4byte sub_805F208
- thumb_func_end sub_805F1E4
-
- thumb_func_start sub_805F208
-sub_805F208: @ 805F208
- push {r4,lr}
- ldr r3, _0805F224 @ =gUnknown_08375568
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F224: .4byte gUnknown_08375568
- thumb_func_end sub_805F208
-
- thumb_func_start sub_805F228
-sub_805F228: @ 805F228
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805F26C @ =gUnknown_08375574
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805F254
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805F254
- movs r0, 0x3
- strb r0, [r2]
-_0805F254:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F26C: .4byte gUnknown_08375574
- thumb_func_end sub_805F228
-
- thumb_func_start sub_805F270
-sub_805F270: @ 805F270
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805F28C @ =gMapObjects
- adds r0, r2
- ldr r2, _0805F290 @ =sub_805F294
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805F28C: .4byte gMapObjects
-_0805F290: .4byte sub_805F294
- thumb_func_end sub_805F270
-
- thumb_func_start sub_805F294
-sub_805F294: @ 805F294
- push {r4,lr}
- ldr r3, _0805F2B0 @ =gUnknown_08375578
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F2B0: .4byte gUnknown_08375578
- thumb_func_end sub_805F294
-
- thumb_func_start sub_805F2B4
-sub_805F2B4: @ 805F2B4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805F2F8 @ =gUnknown_08375584
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _0805F2E0
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0805F2E0
- movs r0, 0x3
- strb r0, [r2]
-_0805F2E0:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl MoveFieldObjectInNextDirectionInSequence
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F2F8: .4byte gUnknown_08375584
- thumb_func_end sub_805F2B4
-
- thumb_func_start sub_805F2FC
-sub_805F2FC: @ 805F2FC
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805F318 @ =gMapObjects
- adds r0, r2
- ldr r2, _0805F31C @ =sub_805F320
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805F318: .4byte gMapObjects
-_0805F31C: .4byte sub_805F320
- thumb_func_end sub_805F2FC
-
- thumb_func_start sub_805F320
-sub_805F320: @ 805F320
- push {r4,lr}
- ldr r3, _0805F33C @ =gUnknown_08375588
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F33C: .4byte gUnknown_08375588
- thumb_func_end sub_805F320
-
- thumb_func_start mss_npc_reset_oampriv3_1_unk2_unk3
-mss_npc_reset_oampriv3_1_unk2_unk3: @ 805F340
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- adds r4, 0x21
- ldrb r0, [r4]
- cmp r0, 0
- bne _0805F358
- bl player_get_direction_lower_nybble
- strb r0, [r4]
-_0805F358:
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end mss_npc_reset_oampriv3_1_unk2_unk3
-
- thumb_func_start sub_805F364
-sub_805F364: @ 805F364
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- ldr r2, _0805F388 @ =gMapObjects
- ldr r3, _0805F38C @ =gPlayerAvatar
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1C]
- cmp r0, 0xFF
- beq _0805F384
- ldrb r0, [r3, 0x3]
- cmp r0, 0x2
- bne _0805F390
-_0805F384:
- movs r0, 0
- b _0805F3B8
- .align 2, 0
-_0805F388: .4byte gMapObjects
-_0805F38C: .4byte gPlayerAvatar
-_0805F390:
- ldr r5, _0805F3C0 @ =gUnknown_08375594
- bl player_get_x22
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 22
- adds r4, r5
- bl player_get_direction_upper_nybble
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r4, [r4]
- adds r0, r6, 0
- adds r1, r7, 0
- movs r3, 0
- bl _call_via_r4
- lsls r0, 24
- lsrs r0, 24
-_0805F3B8:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F3C0: .4byte gUnknown_08375594
- thumb_func_end sub_805F364
-
- thumb_func_start sub_805F3C4
-sub_805F3C4: @ 805F3C4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805F3E2
- ldrb r0, [r4]
- movs r1, 0x3
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- movs r0, 0x1
- strh r0, [r5, 0x30]
-_0805F3E2:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805F3C4
-
+.ifndef NONMATCHING
thumb_func_start sub_805F3EC
sub_805F3EC: @ 805F3EC
movs r0, 0
@@ -10348,6 +137,7 @@ _0805F4D2:
.align 2, 0
_0805F4EC: .4byte gUnknown_0836DC09
thumb_func_end sub_805F438
+.endif
thumb_func_start sub_805F4F0
sub_805F4F0: @ 805F4F0
@@ -10836,8770 +626,3 @@ _0805F8C0:
.align 2, 0
_0805F8DC: .4byte gUnknown_0836DC09
thumb_func_end oac_hopping
-
- thumb_func_start sub_805F8E0
-sub_805F8E0: @ 805F8E0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805F8FC @ =gMapObjects
- adds r0, r2
- ldr r2, _0805F900 @ =sub_805F904
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805F8FC: .4byte gMapObjects
-_0805F900: .4byte sub_805F904
- thumb_func_end sub_805F8E0
-
- thumb_func_start sub_805F904
-sub_805F904: @ 805F904
- push {r4,lr}
- ldr r3, _0805F920 @ =gUnknown_083755C0
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F920: .4byte gUnknown_083755C0
- thumb_func_end sub_805F904
-
- thumb_func_start mss_08062EA4
-mss_08062EA4: @ 805F924
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- ldr r2, _0805F948 @ =gMapObjects
- ldr r3, _0805F94C @ =gPlayerAvatar
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1C]
- cmp r0, 0xFF
- beq _0805F944
- ldrb r0, [r3, 0x3]
- cmp r0, 0x2
- bne _0805F950
-_0805F944:
- movs r0, 0
- b _0805F978
- .align 2, 0
-_0805F948: .4byte gMapObjects
-_0805F94C: .4byte gPlayerAvatar
-_0805F950:
- ldr r5, _0805F980 @ =gUnknown_08375594
- bl player_get_x22
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 22
- adds r4, r5
- bl player_get_direction_upper_nybble
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0805F984 @ =sub_8056E14
- ldr r4, [r4]
- adds r0, r6, 0
- adds r1, r7, 0
- bl _call_via_r4
- lsls r0, 24
- lsrs r0, 24
-_0805F978:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F980: .4byte gUnknown_08375594
-_0805F984: .4byte sub_8056E14
- thumb_func_end mss_08062EA4
-
- thumb_func_start FieldObjectCB_TreeDisguise
-FieldObjectCB_TreeDisguise: @ 805F988
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0805F9EC @ =gMapObjects
- adds r4, r1, r0
- adds r6, r4, 0
- adds r6, 0x21
- ldrb r0, [r6]
- cmp r0, 0
- beq _0805F9B0
- cmp r0, 0x1
- bne _0805F9D0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0805F9D0
-_0805F9B0:
- ldr r1, _0805F9F0 @ =gUnknown_0202FF84
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- adds r0, r4, 0
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x1C
- bl FieldEffectStart
- strb r0, [r4, 0x1A]
- movs r0, 0x1
- strb r0, [r6]
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
-_0805F9D0:
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805F9EC @ =gMapObjects
- adds r0, r1
- ldr r2, _0805F9F4 @ =sub_805F9F8
- adds r1, r5, 0
- bl meta_step
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805F9EC: .4byte gMapObjects
-_0805F9F0: .4byte gUnknown_0202FF84
-_0805F9F4: .4byte sub_805F9F8
- thumb_func_end FieldObjectCB_TreeDisguise
-
- thumb_func_start sub_805F9F8
-sub_805F9F8: @ 805F9F8
- push {lr}
- bl npc_reset
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_805F9F8
-
- thumb_func_start FieldObjectCB_MountainDisguise
-FieldObjectCB_MountainDisguise: @ 805FA04
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0805FA68 @ =gMapObjects
- adds r4, r1, r0
- adds r6, r4, 0
- adds r6, 0x21
- ldrb r0, [r6]
- cmp r0, 0
- beq _0805FA2C
- cmp r0, 0x1
- bne _0805FA4C
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0805FA4C
-_0805FA2C:
- ldr r1, _0805FA6C @ =gUnknown_0202FF84
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- adds r0, r4, 0
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x1D
- bl FieldEffectStart
- strb r0, [r4, 0x1A]
- movs r0, 0x1
- strb r0, [r6]
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
-_0805FA4C:
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805FA68 @ =gMapObjects
- adds r0, r1
- ldr r2, _0805FA70 @ =sub_805F9F8
- adds r1, r5, 0
- bl meta_step
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805FA68: .4byte gMapObjects
-_0805FA6C: .4byte gUnknown_0202FF84
-_0805FA70: .4byte sub_805F9F8
- thumb_func_end FieldObjectCB_MountainDisguise
-
- thumb_func_start FieldObjectCB_Hidden1
-FieldObjectCB_Hidden1: @ 805FA74
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- ldr r4, _0805FAD0 @ =gMapObjects
- cmp r0, 0
- bne _0805FAB4
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x3]
- adds r2, r3, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r3, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
-_0805FAB4:
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r2, _0805FAD4 @ =sub_805FAD8
- adds r1, r3, 0
- bl meta_step
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805FAD0: .4byte gMapObjects
-_0805FAD4: .4byte sub_805FAD8
- thumb_func_end FieldObjectCB_Hidden1
-
- thumb_func_start sub_805FAD8
-sub_805FAD8: @ 805FAD8
- push {r4,lr}
- ldr r3, _0805FAF4 @ =gUnknown_083755CC
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805FAF4: .4byte gUnknown_083755CC
- thumb_func_end sub_805FAD8
-
- thumb_func_start sub_805FAF8
-sub_805FAF8: @ 805FAF8
- push {lr}
- bl npc_reset
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_805FAF8
-
- thumb_func_start sub_805FB04
-sub_805FB04: @ 805FB04
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- beq _0805FB16
- movs r0, 0
- strh r0, [r4, 0x30]
-_0805FB16:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805FB04
-
- thumb_func_start sub_805FB20
-sub_805FB20: @ 805FB20
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805FB3C @ =gMapObjects
- adds r0, r2
- ldr r2, _0805FB40 @ =sub_805FB44
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805FB3C: .4byte gMapObjects
-_0805FB40: .4byte sub_805FB44
- thumb_func_end sub_805FB20
-
- thumb_func_start sub_805FB44
-sub_805FB44: @ 805FB44
- push {r4,lr}
- ldr r3, _0805FB60 @ =gUnknown_083755D0
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805FB60: .4byte gUnknown_083755D0
- thumb_func_end sub_805FB44
-
- thumb_func_start sub_805FB64
-sub_805FB64: @ 805FB64
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay16AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805FB64
-
- thumb_func_start sub_805FB90
-sub_805FB90: @ 805FB90
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805FBAC @ =gMapObjects
- adds r0, r2
- ldr r2, _0805FBB0 @ =sub_805FBB4
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805FBAC: .4byte gMapObjects
-_0805FBB0: .4byte sub_805FBB4
- thumb_func_end sub_805FB90
-
- thumb_func_start sub_805FBB4
-sub_805FBB4: @ 805FBB4
- push {r4,lr}
- ldr r3, _0805FBD0 @ =gUnknown_083755D8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805FBD0: .4byte gUnknown_083755D8
- thumb_func_end sub_805FBB4
-
- thumb_func_start sub_805FBD4
-sub_805FBD4: @ 805FBD4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay8AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805FBD4
-
- thumb_func_start sub_805FC00
-sub_805FC00: @ 805FC00
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805FC1C @ =gMapObjects
- adds r0, r2
- ldr r2, _0805FC20 @ =sub_805FC24
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805FC1C: .4byte gMapObjects
-_0805FC20: .4byte sub_805FC24
- thumb_func_end sub_805FC00
-
- thumb_func_start sub_805FC24
-sub_805FC24: @ 805FC24
- push {r4,lr}
- ldr r3, _0805FC40 @ =gUnknown_083755E0
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805FC40: .4byte gUnknown_083755E0
- thumb_func_end sub_805FC24
-
- thumb_func_start sub_805FC44
-sub_805FC44: @ 805FC44
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay4AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805FC44
-
- thumb_func_start sub_805FC70
-sub_805FC70: @ 805FC70
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805FC8C @ =gMapObjects
- adds r0, r2
- ldr r2, _0805FC90 @ =sub_805FC94
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_0805FC8C: .4byte gMapObjects
-_0805FC90: .4byte sub_805FC94
- thumb_func_end sub_805FC70
-
- thumb_func_start sub_805FC94
-sub_805FC94: @ 805FC94
- push {r4,lr}
- ldr r3, _0805FCB0 @ =gUnknown_083755E8
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805FCB0: .4byte gUnknown_083755E8
- thumb_func_end sub_805FC94
-
- thumb_func_start sub_805FCB4
-sub_805FCB4: @ 805FCB4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1
- strh r0, [r5, 0x30]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805FCB4
-
- thumb_func_start sub_805FCE8
-sub_805FCE8: @ 805FCE8
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- bne _0805FCFA
- movs r0, 0
- b _0805FD00
-_0805FCFA:
- movs r0, 0x2
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0805FD00:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_805FCE8
-
- thumb_func_start sub_805FD08
-sub_805FD08: @ 805FD08
- ldrb r2, [r0]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0
- bx lr
- thumb_func_end sub_805FD08
-
- thumb_func_start npc_reset
-npc_reset: @ 805FD18
- ldrb r3, [r0]
- movs r2, 0x3
- negs r2, r2
- ands r2, r3
- movs r3, 0x41
- negs r3, r3
- ands r2, r3
- movs r3, 0x7F
- ands r2, r3
- strb r2, [r0]
- movs r2, 0xFF
- strb r2, [r0, 0x1C]
- movs r0, 0
- strh r0, [r1, 0x30]
- bx lr
- thumb_func_end npc_reset
-
- thumb_func_start FieldObjectDirectionToImageAnimId
-FieldObjectDirectionToImageAnimId: @ 805FD38
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FD44 @ =gUnknown_083755F4
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FD44: .4byte gUnknown_083755F4
- thumb_func_end FieldObjectDirectionToImageAnimId
-
- thumb_func_start get_go_image_anim_num
-get_go_image_anim_num: @ 805FD48
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FD54 @ =gUnknown_083755FD
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FD54: .4byte gUnknown_083755FD
- thumb_func_end get_go_image_anim_num
-
- thumb_func_start get_go_fast_image_anim_num
-get_go_fast_image_anim_num: @ 805FD58
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FD64 @ =gUnknown_08375606
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FD64: .4byte gUnknown_08375606
- thumb_func_end get_go_fast_image_anim_num
-
- thumb_func_start get_go_faster_image_anim_num
-get_go_faster_image_anim_num: @ 805FD68
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FD74 @ =gUnknown_0837560F
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FD74: .4byte gUnknown_0837560F
- thumb_func_end get_go_faster_image_anim_num
-
- thumb_func_start sub_805FD78
-sub_805FD78: @ 805FD78
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FD84 @ =gUnknown_08375618
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FD84: .4byte gUnknown_08375618
- thumb_func_end sub_805FD78
-
- thumb_func_start sub_805FD88
-sub_805FD88: @ 805FD88
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FD94 @ =gUnknown_08375621
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FD94: .4byte gUnknown_08375621
- thumb_func_end sub_805FD88
-
- thumb_func_start sub_805FD98
-sub_805FD98: @ 805FD98
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FDA4 @ =gUnknown_0837562A
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FDA4: .4byte gUnknown_0837562A
- thumb_func_end sub_805FD98
-
- thumb_func_start unref_sub_805FDA8
-unref_sub_805FDA8: @ 805FDA8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FDB4 @ =gUnknown_08375633
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FDB4: .4byte gUnknown_08375633
- thumb_func_end unref_sub_805FDA8
-
- thumb_func_start sub_805FDB8
-sub_805FDB8: @ 805FDB8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FDC4 @ =gUnknown_0837563C
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FDC4: .4byte gUnknown_0837563C
- thumb_func_end sub_805FDB8
-
- thumb_func_start sub_805FDC8
-sub_805FDC8: @ 805FDC8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FDD4 @ =gUnknown_08375645
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FDD4: .4byte gUnknown_08375645
- thumb_func_end sub_805FDC8
-
- thumb_func_start sub_805FDD8
-sub_805FDD8: @ 805FDD8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FDE4 @ =gUnknown_0837564E
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FDE4: .4byte gUnknown_0837564E
- thumb_func_end sub_805FDD8
-
- thumb_func_start sub_805FDE8
-sub_805FDE8: @ 805FDE8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FDF4 @ =gUnknown_08375657
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FDF4: .4byte gUnknown_08375657
- thumb_func_end sub_805FDE8
-
- thumb_func_start sub_805FDF8
-sub_805FDF8: @ 805FDF8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FE04 @ =gUnknown_08375660
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FE04: .4byte gUnknown_08375660
- thumb_func_end sub_805FDF8
-
- thumb_func_start sub_805FE08
-sub_805FE08: @ 805FE08
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FE14 @ =gUnknown_08375669
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FE14: .4byte gUnknown_08375669
- thumb_func_end sub_805FE08
-
- thumb_func_start get_run_image_anim_num
-get_run_image_anim_num: @ 805FE18
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FE24 @ =gUnknown_08375672
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FE24: .4byte gUnknown_08375672
- thumb_func_end get_run_image_anim_num
-
- thumb_func_start sub_805FE28
-sub_805FE28: @ 805FE28
- push {r4,lr}
- adds r3, r1, 0
- lsls r2, 24
- lsrs r2, 24
- ldrb r0, [r0, 0x1]
- lsls r0, 27
- lsrs r4, r0, 31
- cmp r4, 0
- bne _0805FE5E
- adds r0, r3, 0
- adds r0, 0x2A
- strb r2, [r0]
- adds r0, 0x1
- ldrb r2, [r0]
- adds r1, r0, 0
- cmp r2, 0x1
- bne _0805FE50
- movs r0, 0x2
- strb r0, [r1]
- b _0805FE56
-_0805FE50:
- cmp r2, 0x3
- bne _0805FE56
- strb r4, [r1]
-_0805FE56:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl SeekSpriteAnim
-_0805FE5E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_805FE28
-
- thumb_func_start sub_805FE64
-sub_805FE64: @ 805FE64
- push {lr}
- lsls r2, 24
- lsrs r2, 24
- ldrb r0, [r0, 0x1]
- lsls r0, 27
- cmp r0, 0
- blt _0805FE8C
- adds r0, r1, 0
- adds r0, 0x2A
- strb r2, [r0]
- movs r2, 0x3
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _0805FE84
- movs r2, 0x1
-_0805FE84:
- adds r0, r1, 0
- adds r1, r2, 0
- bl SeekSpriteAnim
-_0805FE8C:
- pop {r0}
- bx r0
- thumb_func_end sub_805FE64
-
- thumb_func_start sub_805FE90
-sub_805FE90: @ 805FE90
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- asrs r0, 16
- lsls r2, 16
- asrs r2, 16
- cmp r0, r2
- ble _0805FEAA
- movs r0, 0x3
- b _0805FEC0
-_0805FEAA:
- cmp r0, r2
- bge _0805FEB2
- movs r0, 0x4
- b _0805FEC0
-_0805FEB2:
- lsls r1, 16
- lsls r0, r3, 16
- cmp r1, r0
- bgt _0805FEBE
- movs r0, 0x1
- b _0805FEC0
-_0805FEBE:
- movs r0, 0x2
-_0805FEC0:
- pop {r1}
- bx r1
- thumb_func_end sub_805FE90
-
- thumb_func_start npc_set_running_behaviour_etc
-npc_set_running_behaviour_etc: @ 805FEC4
- push {r4,lr}
- mov r12, r0
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0
- strb r1, [r0, 0x6]
- adds r0, 0x21
- strb r3, [r0]
- adds r0, 0x1
- strb r3, [r0]
- ldr r4, _0805FF08 @ =gSprites
- mov r0, r12
- ldrb r2, [r0, 0x4]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r2, r4, 0
- adds r2, 0x1C
- adds r0, r2
- ldr r2, _0805FF0C @ =gUnknown_0836DA88
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- mov r0, r12
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805FF08: .4byte gSprites
-_0805FF0C: .4byte gUnknown_0836DA88
- thumb_func_end npc_set_running_behaviour_etc
-
- thumb_func_start npc_running_behaviour_by_direction
-npc_running_behaviour_by_direction: @ 805FF10
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0805FF1C @ =gUnknown_0837567B
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0805FF1C: .4byte gUnknown_0837567B
- thumb_func_end npc_running_behaviour_by_direction
-
- thumb_func_start sub_805FF20
-sub_805FF20: @ 805FF20
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- lsls r5, r1, 24
- lsrs r5, 24
- ldrh r1, [r6, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r6, 0x12]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- adds r0, r5, 0
- mov r1, sp
- adds r2, r4, 0
- bl MoveCoords
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r4, r0]
- adds r0, r6, 0
- adds r3, r5, 0
- bl npc_block_way
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_805FF20
-
- thumb_func_start npc_block_way
-npc_block_way: @ 805FF60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- lsls r1, 16
- lsls r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- mov r8, r7
- lsrs r0, r1, 16
- mov r9, r0
- asrs r5, r1, 16
- lsrs r0, r2, 16
- mov r10, r0
- asrs r4, r2, 16
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl IsCoordOutsideFieldObjectMovementRect
- lsls r0, 24
- cmp r0, 0
- beq _0805FF96
- movs r0, 0x1
- b _08060016
-_0805FF96:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridIsImpassableAt
- lsls r0, 24
- cmp r0, 0
- bne _0805FFD8
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetMapBorderIdAt
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _0805FFD8
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r7, 0
- bl IsMetatileDirectionallyImpassable
- lsls r0, 24
- cmp r0, 0
- bne _0805FFD8
- ldrb r0, [r6, 0x1]
- lsrs r0, 7
- cmp r0, 0
- beq _0805FFDC
- mov r0, r8
- bl CanCameraMoveInDirection
- cmp r0, 0
- bne _0805FFDC
-_0805FFD8:
- movs r0, 0x2
- b _08060016
-_0805FFDC:
- ldrb r0, [r6, 0xB]
- lsls r0, 28
- lsrs r0, 28
- mov r2, r9
- lsls r1, r2, 16
- asrs r5, r1, 16
- mov r2, r10
- lsls r1, r2, 16
- asrs r4, r1, 16
- adds r1, r5, 0
- adds r2, r4, 0
- bl IsZCoordMismatchAt
- lsls r0, 24
- cmp r0, 0
- beq _08060000
- movs r0, 0x3
- b _08060016
-_08060000:
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CheckForCollisionBetweenFieldObjects
- lsls r0, 24
- cmp r0, 0
- bne _08060014
- movs r0, 0
- b _08060016
-_08060014:
- movs r0, 0x4
-_08060016:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end npc_block_way
-
- thumb_func_start sub_8060024
-sub_8060024: @ 8060024
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- lsls r1, 16
- lsls r2, 16
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsrs r0, r1, 16
- mov r9, r0
- asrs r6, r1, 16
- lsrs r0, r2, 16
- mov r10, r0
- asrs r5, r2, 16
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl IsCoordOutsideFieldObjectMovementRect
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r4, r1, 31
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridIsImpassableAt
- lsls r0, 24
- cmp r0, 0
- bne _0806009C
- adds r0, r6, 0
- adds r1, r5, 0
- bl GetMapBorderIdAt
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _0806009C
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- mov r3, r8
- bl IsMetatileDirectionallyImpassable
- lsls r0, 24
- cmp r0, 0
- bne _0806009C
- ldrb r0, [r7, 0x1]
- lsrs r0, 7
- cmp r0, 0
- beq _080600A0
- mov r0, r8
- bl CanCameraMoveInDirection
- cmp r0, 0
- bne _080600A0
-_0806009C:
- movs r0, 0x2
- orrs r4, r0
-_080600A0:
- ldrb r0, [r7, 0xB]
- lsls r0, 28
- lsrs r0, 28
- mov r2, r9
- lsls r1, r2, 16
- asrs r6, r1, 16
- mov r2, r10
- lsls r1, r2, 16
- asrs r5, r1, 16
- adds r1, r6, 0
- adds r2, r5, 0
- bl IsZCoordMismatchAt
- lsls r0, 24
- cmp r0, 0
- beq _080600C8
- movs r0, 0x4
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080600C8:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl CheckForCollisionBetweenFieldObjects
- lsls r0, 24
- cmp r0, 0
- beq _080600E0
- movs r0, 0x8
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080600E0:
- adds r0, r4, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8060024
-
- thumb_func_start IsCoordOutsideFieldObjectMovementRect
-IsCoordOutsideFieldObjectMovementRect: @ 80600F0
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- ldrb r1, [r4, 0x19]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _08060128
- lsls r1, 28
- lsrs r2, r1, 28
- ldrh r0, [r4, 0xC]
- subs r2, r0, r2
- lsrs r1, 28
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- lsls r2, 16
- lsls r0, r3, 16
- asrs r3, r0, 16
- cmp r2, r0
- bgt _08060154
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r3
- blt _08060154
-_08060128:
- ldrb r1, [r4, 0x19]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _08060158
- lsls r1, 24
- lsrs r2, r1, 28
- ldrh r0, [r4, 0xE]
- subs r2, r0, r2
- lsrs r1, 28
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- lsls r2, 16
- lsls r0, r5, 16
- asrs r3, r0, 16
- cmp r2, r0
- bgt _08060154
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r3
- bge _08060158
-_08060154:
- movs r0, 0x1
- b _0806015A
-_08060158:
- movs r0, 0
-_0806015A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsCoordOutsideFieldObjectMovementRect
-
- thumb_func_start IsMetatileDirectionallyImpassable
-IsMetatileDirectionallyImpassable: @ 8060160
- push {r4-r7,lr}
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 24
- ldr r1, _080601A8 @ =gUnknown_08375684
- lsrs r3, 22
- subs r5, r3, 0x4
- adds r1, r5, r1
- ldrb r0, [r0, 0x1E]
- ldr r1, [r1]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080601A2
- ldr r4, _080601AC @ =gUnknown_08375694
- adds r4, r5, r4
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _080601B0
-_080601A2:
- movs r0, 0x1
- b _080601B2
- .align 2, 0
-_080601A8: .4byte gUnknown_08375684
-_080601AC: .4byte gUnknown_08375694
-_080601B0:
- movs r0, 0
-_080601B2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end IsMetatileDirectionallyImpassable
-
- thumb_func_start CheckForCollisionBetweenFieldObjects
-CheckForCollisionBetweenFieldObjects: @ 80601B8
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- movs r4, 0
- lsls r2, 16
- asrs r5, r2, 16
-_080601C6:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- ldr r1, _0806021C @ =gMapObjects
- adds r2, r0, r1
- ldrb r0, [r2]
- lsls r0, 31
- cmp r0, 0
- beq _08060220
- cmp r2, r6
- beq _08060220
- movs r0, 0x10
- ldrsh r1, [r2, r0]
- lsls r0, r7, 16
- asrs r3, r0, 16
- cmp r1, r3
- bne _080601F0
- movs r1, 0x12
- ldrsh r0, [r2, r1]
- cmp r0, r5
- beq _08060200
-_080601F0:
- movs r1, 0x14
- ldrsh r0, [r2, r1]
- cmp r0, r3
- bne _08060220
- movs r1, 0x16
- ldrsh r0, [r2, r1]
- cmp r0, r5
- bne _08060220
-_08060200:
- ldrb r0, [r6, 0xB]
- lsls r0, 28
- lsrs r0, 28
- ldrb r1, [r2, 0xB]
- lsls r1, 28
- lsrs r1, 28
- bl AreZCoordsCompatible
- lsls r0, 24
- cmp r0, 0
- beq _08060220
- movs r0, 0x1
- b _0806022C
- .align 2, 0
-_0806021C: .4byte gMapObjects
-_08060220:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080601C6
- movs r0, 0
-_0806022C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckForCollisionBetweenFieldObjects
-
- thumb_func_start sub_8060234
-sub_8060234: @ 8060234
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08060280
- ldr r3, _08060278 @ =gSprites
- ldr r2, _0806027C @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x3C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08060280
- movs r0, 0x1
- b _08060282
- .align 2, 0
-_08060278: .4byte gSprites
-_0806027C: .4byte gMapObjects
-_08060280:
- movs r0, 0
-_08060282:
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8060234
-
- thumb_func_start sub_8060288
-sub_8060288: @ 8060288
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080602C6
- ldr r3, _080602CC @ =gSprites
- ldr r2, _080602D0 @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x3C]
- movs r0, 0x4
- orrs r0, r2
- strh r0, [r1, 0x3C]
-_080602C6:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080602CC: .4byte gSprites
-_080602D0: .4byte gMapObjects
- thumb_func_end sub_8060288
-
- thumb_func_start MoveCoords
-MoveCoords: @ 80602D4
- push {r4,lr}
- lsls r0, 24
- ldr r3, _080602F4 @ =gDirectionToVector
- lsrs r0, 22
- adds r0, r3
- ldrh r3, [r0]
- ldrh r4, [r1]
- adds r3, r4
- strh r3, [r1]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080602F4: .4byte gDirectionToVector
- thumb_func_end MoveCoords
-
- thumb_func_start unref_sub_80602F8
-unref_sub_80602F8: @ 80602F8
- push {r4,lr}
- lsls r0, 24
- ldr r3, _0806031C @ =gDirectionToVector
- lsrs r0, 22
- adds r0, r3
- ldrh r3, [r0]
- lsls r3, 4
- ldrh r4, [r1]
- adds r3, r4
- strh r3, [r1]
- ldrh r0, [r0, 0x2]
- lsls r0, 4
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806031C: .4byte gDirectionToVector
- thumb_func_end unref_sub_80602F8
-
- thumb_func_start sub_8060320
-sub_8060320: @ 8060320
- push {r4-r7,lr}
- adds r4, r1, 0
- ldr r1, [sp, 0x14]
- lsls r0, 24
- lsls r3, 16
- lsrs r3, 16
- adds r7, r3, 0
- lsls r1, 16
- lsrs r6, r1, 16
- mov r12, r6
- ldr r1, _08060384 @ =gDirectionToVector
- lsrs r0, 22
- adds r5, r0, r1
- movs r0, 0
- ldrsh r1, [r5, r0]
- cmp r1, 0
- ble _0806034C
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r4]
- adds r0, r3
- strh r0, [r4]
-_0806034C:
- cmp r1, 0
- bge _0806035A
- ldrh r1, [r4]
- lsls r0, r7, 16
- asrs r0, 16
- subs r1, r0
- strh r1, [r4]
-_0806035A:
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- cmp r1, 0
- ble _0806036C
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r3, [r2]
- adds r0, r3
- strh r0, [r2]
-_0806036C:
- cmp r1, 0
- bge _0806037C
- ldrh r1, [r2]
- mov r3, r12
- lsls r0, r3, 16
- asrs r0, 16
- subs r1, r0
- strh r1, [r2]
-_0806037C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08060384: .4byte gDirectionToVector
- thumb_func_end sub_8060320
-
- thumb_func_start sub_8060388
-sub_8060388: @ 8060388
- push {r4,r5,lr}
- ldr r5, _080603C0 @ =gSaveBlock1
- ldrh r4, [r5]
- lsls r0, 16
- asrs r0, 16
- subs r0, r4
- lsls r0, 4
- strh r0, [r2]
- ldrh r0, [r5, 0x2]
- lsls r1, 16
- asrs r1, 16
- subs r1, r0
- lsls r1, 4
- strh r1, [r3]
- ldr r1, _080603C4 @ =gUnknown_0300489C
- ldrh r0, [r2]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r2]
- ldr r1, _080603C8 @ =gUnknown_03004898
- ldrh r0, [r3]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080603C0: .4byte gSaveBlock1
-_080603C4: .4byte gUnknown_0300489C
-_080603C8: .4byte gUnknown_03004898
- thumb_func_end sub_8060388
-
- thumb_func_start sub_80603CC
-sub_80603CC: @ 80603CC
- push {r4-r7,lr}
- adds r7, r2, 0
- mov r12, r3
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r0, _0806045C @ =gUnknown_0300489C
- ldrh r0, [r0]
- negs r0, r0
- ldr r1, _08060460 @ =gUnknown_03004880
- ldr r2, [r1, 0x10]
- subs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _08060464 @ =gUnknown_03004898
- ldrh r0, [r0]
- negs r0, r0
- ldr r1, [r1, 0x14]
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r2, 0
- ble _08060406
- lsls r0, r3, 16
- movs r3, 0x80
- lsls r3, 13
- adds r0, r3
- lsrs r3, r0, 16
-_08060406:
- cmp r2, 0
- bge _08060412
- lsls r0, r3, 16
- ldr r2, _08060468 @ =0xfff00000
- adds r0, r2
- lsrs r3, r0, 16
-_08060412:
- cmp r1, 0
- ble _08060420
- lsls r0, r4, 16
- movs r2, 0x80
- lsls r2, 13
- adds r0, r2
- lsrs r4, r0, 16
-_08060420:
- cmp r1, 0
- bge _0806042C
- lsls r0, r4, 16
- ldr r1, _08060468 @ =0xfff00000
- adds r0, r1
- lsrs r4, r0, 16
-_0806042C:
- ldr r2, _0806046C @ =gSaveBlock1
- ldrh r1, [r2]
- lsls r0, r5, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 4
- lsls r1, r3, 16
- asrs r1, 16
- adds r1, r0
- strh r1, [r7]
- ldrh r1, [r2, 0x2]
- lsls r0, r6, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 4
- lsls r1, r4, 16
- asrs r1, 16
- adds r1, r0
- mov r2, r12
- strh r1, [r2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806045C: .4byte gUnknown_0300489C
-_08060460: .4byte gUnknown_03004880
-_08060464: .4byte gUnknown_03004898
-_08060468: .4byte 0xfff00000
-_0806046C: .4byte gSaveBlock1
- thumb_func_end sub_80603CC
-
- thumb_func_start sub_8060470
-sub_8060470: @ 8060470
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r6, r0, 0
- mov r8, r1
- adds r4, r2, 0
- adds r5, r3, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- movs r1, 0
- ldrsh r0, [r6, r1]
- mov r2, r8
- movs r3, 0
- ldrsh r1, [r2, r3]
- adds r2, r6, 0
- mov r3, r8
- bl sub_80603CC
- lsls r4, 16
- asrs r4, 16
- ldrh r0, [r6]
- adds r4, r0
- strh r4, [r6]
- lsls r5, 16
- asrs r5, 16
- mov r1, r8
- ldrh r1, [r1]
- adds r5, r1
- mov r2, r8
- strh r5, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8060470
-
- thumb_func_start GetFieldObjectMovingCameraOffset
-GetFieldObjectMovingCameraOffset: @ 80604BC
- push {lr}
- adds r2, r0, 0
- movs r0, 0
- strh r0, [r2]
- strh r0, [r1]
- ldr r3, _080604F8 @ =gUnknown_03004880
- ldr r0, [r3, 0x10]
- cmp r0, 0
- ble _080604D2
- movs r0, 0x1
- strh r0, [r2]
-_080604D2:
- ldr r0, [r3, 0x10]
- cmp r0, 0
- bge _080604DE
- ldrh r0, [r2]
- subs r0, 0x1
- strh r0, [r2]
-_080604DE:
- ldr r2, [r3, 0x14]
- cmp r2, 0
- ble _080604EA
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080604EA:
- cmp r2, 0
- bge _080604F4
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
-_080604F4:
- pop {r0}
- bx r0
- .align 2, 0
-_080604F8: .4byte gUnknown_03004880
- thumb_func_end GetFieldObjectMovingCameraOffset
-
- thumb_func_start FieldObjectMoveDestCoords
-FieldObjectMoveDestCoords: @ 80604FC
- push {r4,lr}
- lsls r1, 24
- lsrs r1, 24
- ldrh r4, [r0, 0x10]
- strh r4, [r2]
- ldrh r0, [r0, 0x12]
- strh r0, [r3]
- adds r0, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- bl MoveCoords
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectMoveDestCoords
-
- thumb_func_start FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
-FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive: @ 806051C
- push {lr}
- ldrb r1, [r0]
- movs r0, 0x42
- ands r0, r1
- cmp r0, 0
- bne _0806052C
- movs r0, 0
- b _0806052E
-_0806052C:
- movs r0, 0x1
-_0806052E:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
-
- thumb_func_start FieldObjectIsSpecialAnimActive
-FieldObjectIsSpecialAnimActive: @ 8060534
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- bge _0806054A
- ldrb r0, [r1, 0x1C]
- cmp r0, 0xFF
- beq _0806054A
- movs r0, 0x1
- b _0806054C
-_0806054A:
- movs r0, 0
-_0806054C:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectIsSpecialAnimActive
-
- thumb_func_start FieldObjectSetSpecialAnim
-FieldObjectSetSpecialAnim: @ 8060550
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _08060590
- adds r0, r4, 0
- bl npc_sync_anim_pause_bits
- strb r5, [r4, 0x1C]
- ldrb r0, [r4]
- movs r1, 0x40
- orrs r0, r1
- movs r1, 0x7F
- ands r0, r1
- strb r0, [r4]
- ldr r2, _0806058C @ =gSprites
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x32]
- movs r0, 0
- b _08060592
- .align 2, 0
-_0806058C: .4byte gSprites
-_08060590:
- movs r0, 0x1
-_08060592:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end FieldObjectSetSpecialAnim
-
- thumb_func_start FieldObjectForceSetSpecialAnim
-FieldObjectForceSetSpecialAnim: @ 8060598
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- bl FieldObjectClearAnimIfSpecialAnimActive
- adds r0, r5, 0
- adds r1, r4, 0
- bl FieldObjectSetSpecialAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldObjectForceSetSpecialAnim
-
- thumb_func_start FieldObjectClearAnimIfSpecialAnimActive
-FieldObjectClearAnimIfSpecialAnimActive: @ 80605B4
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- bge _080605C6
- adds r0, r1, 0
- bl FieldObjectClearAnim
-_080605C6:
- pop {r0}
- bx r0
- thumb_func_end FieldObjectClearAnimIfSpecialAnimActive
-
- thumb_func_start FieldObjectClearAnim
-FieldObjectClearAnim: @ 80605CC
- movs r1, 0xFF
- strb r1, [r0, 0x1C]
- ldrb r2, [r0]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- movs r2, 0x7F
- ands r1, r2
- strb r1, [r0]
- ldr r3, _080605FC @ =gSprites
- ldrb r2, [r0, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- movs r2, 0
- strh r2, [r1, 0x30]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x32]
- bx lr
- .align 2, 0
-_080605FC: .4byte gSprites
- thumb_func_end FieldObjectClearAnim
-
- thumb_func_start FieldObjectCheckIfSpecialAnimFinishedOrInactive
-FieldObjectCheckIfSpecialAnimFinishedOrInactive: @ 8060600
- push {lr}
- ldrb r1, [r0]
- lsls r0, r1, 25
- cmp r0, 0
- blt _0806060E
- movs r0, 0x10
- b _08060610
-_0806060E:
- lsrs r0, r1, 7
-_08060610:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectCheckIfSpecialAnimFinishedOrInactive
-
- thumb_func_start FieldObjectClearAnimIfSpecialAnimFinished
-FieldObjectClearAnimIfSpecialAnimFinished: @ 8060614
- push {r4,r5,lr}
- adds r5, r0, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0806062E
- cmp r4, 0x10
- beq _0806062E
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimActive
-_0806062E:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldObjectClearAnimIfSpecialAnimFinished
-
- thumb_func_start FieldObjectGetSpecialAnim
-FieldObjectGetSpecialAnim: @ 8060638
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08060648
- movs r0, 0xFF
- b _0806064A
-_08060648:
- ldrb r0, [r1, 0x1C]
-_0806064A:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectGetSpecialAnim
-
- thumb_func_start meta_step
-meta_step: @ 8060650
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl DoGroundEffects_OnSpawn
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80634A0
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _0806067A
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectExecSpecialAnim
- b _08060690
-_0806067A:
- ldrb r0, [r4, 0x1]
- lsls r0, 31
- cmp r0, 0
- bne _08060690
-_08060682:
- adds r0, r4, 0
- adds r1, r5, 0
- bl _call_via_r6
- lsls r0, 24
- cmp r0, 0
- bne _08060682
-_08060690:
- adds r0, r4, 0
- adds r1, r5, 0
- bl DoGroundEffects_OnBeginStep
- adds r0, r4, 0
- adds r1, r5, 0
- bl DoGroundEffects_OnFinishStep
- adds r0, r4, 0
- adds r1, r5, 0
- bl npc_obj_transfer_image_anim_pause_flag
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80634D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectUpdateSubpriority
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end meta_step
-
- thumb_func_start GetFaceDirectionAnimId
-GetFaceDirectionAnimId: @ 80606C0
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080606E8 @ =gUnknown_083756C8
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080606D8
- movs r4, 0
-_080606D8:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080606E8: .4byte gUnknown_083756C8
- thumb_func_end GetFaceDirectionAnimId
-
- thumb_func_start GetSimpleGoAnimId
-GetSimpleGoAnimId: @ 80606EC
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060714 @ =gUnknown_083756CD
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060704
- movs r4, 0
-_08060704:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060714: .4byte gUnknown_083756CD
- thumb_func_end GetSimpleGoAnimId
-
- thumb_func_start GetGoSpeed0AnimId
-GetGoSpeed0AnimId: @ 8060718
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060740 @ =gUnknown_083756D2
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060730
- movs r4, 0
-_08060730:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060740: .4byte gUnknown_083756D2
- thumb_func_end GetGoSpeed0AnimId
-
- thumb_func_start sub_8060744
-sub_8060744: @ 8060744
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0806076C @ =gUnknown_083756D7
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _0806075C
- movs r4, 0
-_0806075C:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806076C: .4byte gUnknown_083756D7
- thumb_func_end sub_8060744
-
- thumb_func_start d2s_08064034
-d2s_08064034: @ 8060770
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060798 @ =gUnknown_083756DC
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060788
- movs r4, 0
-_08060788:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060798: .4byte gUnknown_083756DC
- thumb_func_end d2s_08064034
-
- thumb_func_start sub_806079C
-sub_806079C: @ 806079C
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080607C4 @ =gUnknown_083756E1
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080607B4
- movs r4, 0
-_080607B4:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080607C4: .4byte gUnknown_083756E1
- thumb_func_end sub_806079C
-
- thumb_func_start sub_80607C8
-sub_80607C8: @ 80607C8
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080607F0 @ =gUnknown_083756E6
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080607E0
- movs r4, 0
-_080607E0:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080607F0: .4byte gUnknown_083756E6
- thumb_func_end sub_80607C8
-
- thumb_func_start sub_80607F4
-sub_80607F4: @ 80607F4
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0806081C @ =gUnknown_083756EB
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _0806080C
- movs r4, 0
-_0806080C:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806081C: .4byte gUnknown_083756EB
- thumb_func_end sub_80607F4
-
- thumb_func_start GetJumpLedgeAnimId
-GetJumpLedgeAnimId: @ 8060820
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060848 @ =gUnknown_083756F0
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060838
- movs r4, 0
-_08060838:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060848: .4byte gUnknown_083756F0
- thumb_func_end GetJumpLedgeAnimId
-
- thumb_func_start sub_806084C
-sub_806084C: @ 806084C
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060874 @ =gUnknown_083756F5
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060864
- movs r4, 0
-_08060864:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060874: .4byte gUnknown_083756F5
- thumb_func_end sub_806084C
-
- thumb_func_start sub_8060878
-sub_8060878: @ 8060878
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080608A0 @ =gUnknown_083756FA
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060890
- movs r4, 0
-_08060890:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080608A0: .4byte gUnknown_083756FA
- thumb_func_end sub_8060878
-
- thumb_func_start sub_80608A4
-sub_80608A4: @ 80608A4
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080608CC @ =gUnknown_083756FF
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080608BC
- movs r4, 0
-_080608BC:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080608CC: .4byte gUnknown_083756FF
- thumb_func_end sub_80608A4
-
- thumb_func_start sub_80608D0
-sub_80608D0: @ 80608D0
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080608F8 @ =gUnknown_08375704
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080608E8
- movs r4, 0
-_080608E8:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080608F8: .4byte gUnknown_08375704
- thumb_func_end sub_80608D0
-
- thumb_func_start GetStepInPlaceDelay32AnimId
-GetStepInPlaceDelay32AnimId: @ 80608FC
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060924 @ =gUnknown_08375709
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060914
- movs r4, 0
-_08060914:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060924: .4byte gUnknown_08375709
- thumb_func_end GetStepInPlaceDelay32AnimId
-
- thumb_func_start GetStepInPlaceDelay16AnimId
-GetStepInPlaceDelay16AnimId: @ 8060928
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060950 @ =gUnknown_0837570E
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060940
- movs r4, 0
-_08060940:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060950: .4byte gUnknown_0837570E
- thumb_func_end GetStepInPlaceDelay16AnimId
-
- thumb_func_start GetStepInPlaceDelay8AnimId
-GetStepInPlaceDelay8AnimId: @ 8060954
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0806097C @ =gUnknown_08375713
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _0806096C
- movs r4, 0
-_0806096C:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806097C: .4byte gUnknown_08375713
- thumb_func_end GetStepInPlaceDelay8AnimId
-
- thumb_func_start GetStepInPlaceDelay4AnimId
-GetStepInPlaceDelay4AnimId: @ 8060980
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080609A8 @ =gUnknown_08375718
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060998
- movs r4, 0
-_08060998:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080609A8: .4byte gUnknown_08375718
- thumb_func_end GetStepInPlaceDelay4AnimId
-
- thumb_func_start FieldObjectFaceOppositeDirection
-FieldObjectFaceOppositeDirection: @ 80609AC
- push {r4,lr}
- adds r4, r0, 0
- lsls r0, r1, 24
- lsrs r0, 24
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end FieldObjectFaceOppositeDirection
-
- thumb_func_start sub_80609D8
-sub_80609D8: @ 80609D8
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060A00 @ =gUnknown_0837571D
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _080609F0
- movs r4, 0
-_080609F0:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060A00: .4byte gUnknown_0837571D
- thumb_func_end sub_80609D8
-
- thumb_func_start sub_8060A04
-sub_8060A04: @ 8060A04
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060A2C @ =gUnknown_08375722
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060A1C
- movs r4, 0
-_08060A1C:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060A2C: .4byte gUnknown_08375722
- thumb_func_end sub_8060A04
-
- thumb_func_start sub_8060A30
-sub_8060A30: @ 8060A30
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060A58 @ =gUnknown_08375727
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060A48
- movs r4, 0
-_08060A48:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060A58: .4byte gUnknown_08375727
- thumb_func_end sub_8060A30
-
- thumb_func_start sub_8060A5C
-sub_8060A5C: @ 8060A5C
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060A84 @ =gUnknown_0837572C
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060A74
- movs r4, 0
-_08060A74:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060A84: .4byte gUnknown_0837572C
- thumb_func_end sub_8060A5C
-
- thumb_func_start sub_8060A88
-sub_8060A88: @ 8060A88
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060AB0 @ =gUnknown_08375731
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060AA0
- movs r4, 0
-_08060AA0:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060AB0: .4byte gUnknown_08375731
- thumb_func_end sub_8060A88
-
- thumb_func_start sub_8060AB4
-sub_8060AB4: @ 8060AB4
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060ADC @ =gUnknown_08375736
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060ACC
- movs r4, 0
-_08060ACC:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060ADC: .4byte gUnknown_08375736
- thumb_func_end sub_8060AB4
-
- thumb_func_start sub_8060AE0
-sub_8060AE0: @ 8060AE0
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060B08 @ =gUnknown_0837573B
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060AF8
- movs r4, 0
-_08060AF8:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060B08: .4byte gUnknown_0837573B
- thumb_func_end sub_8060AE0
-
- thumb_func_start sub_8060B0C
-sub_8060B0C: @ 8060B0C
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060B34 @ =gUnknown_08375740
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060B24
- movs r4, 0
-_08060B24:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060B34: .4byte gUnknown_08375740
- thumb_func_end sub_8060B0C
-
- thumb_func_start sub_8060B38
-sub_8060B38: @ 8060B38
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060B60 @ =gUnknown_08375745
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060B50
- movs r4, 0
-_08060B50:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060B60: .4byte gUnknown_08375745
- thumb_func_end sub_8060B38
-
- thumb_func_start sub_8060B64
-sub_8060B64: @ 8060B64
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060B8C @ =gUnknown_0837574A
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x4
- bls _08060B7C
- movs r4, 0
-_08060B7C:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060B8C: .4byte gUnknown_0837574A
- thumb_func_end sub_8060B64
-
- thumb_func_start GetOppositeDirection
-GetOppositeDirection: @ 8060B90
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08060BB4 @ =gUnknown_0837574F
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- subs r1, r4, 0x1
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0x7
- bhi _08060BB8
- mov r2, sp
- adds r0, r2, r1
- ldrb r0, [r0]
- b _08060BBA
- .align 2, 0
-_08060BB4: .4byte gUnknown_0837574F
-_08060BB8:
- adds r0, r4, 0
-_08060BBA:
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetOppositeDirection
-
- thumb_func_start zffu_offset_calc
-zffu_offset_calc: @ 8060BC4
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08060BD8 @ =gUnknown_08375757
- lsrs r0, 22
- subs r0, 0x5
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_08060BD8: .4byte gUnknown_08375757
- thumb_func_end zffu_offset_calc
-
- thumb_func_start state_to_direction
-state_to_direction: @ 8060BDC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r1, 0
- beq _08060BFC
- cmp r2, 0
- beq _08060BFC
- cmp r1, 0x4
- bhi _08060BFC
- cmp r2, 0x4
- bls _08060C00
-_08060BFC:
- movs r0, 0
- b _08060C12
-_08060C00:
- adds r1, r2, 0
- bl zffu_offset_calc
- ldr r2, _08060C18 @ =gUnknown_08375767
- lsls r1, r4, 2
- subs r1, 0x5
- adds r0, r1
- adds r0, r2
- ldrb r0, [r0]
-_08060C12:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08060C18: .4byte gUnknown_08375767
- thumb_func_end state_to_direction
-
- thumb_func_start FieldObjectExecSpecialAnim
-FieldObjectExecSpecialAnim: @ 8060C1C
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _08060C50 @ =gUnknown_08375778
- ldrb r0, [r4, 0x1C]
- lsls r0, 2
- adds r0, r2
- movs r3, 0x32
- ldrsh r2, [r1, r3]
- ldr r0, [r0]
- lsls r2, 2
- adds r2, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- beq _08060C48
- ldrb r0, [r4]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4]
-_08060C48:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08060C50: .4byte gUnknown_08375778
- thumb_func_end FieldObjectExecSpecialAnim
-
- thumb_func_start FieldObjectExecRegularAnim
-FieldObjectExecRegularAnim: @ 8060C54
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _08060C80 @ =gUnknown_08375778
- ldrb r0, [r4, 0x1C]
- lsls r0, 2
- adds r0, r1
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- adds r0, r4, 0
- adds r1, r5, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _08060C84
- movs r0, 0
- b _08060C8E
- .align 2, 0
-_08060C80: .4byte gUnknown_08375778
-_08060C84:
- movs r0, 0xFF
- strb r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08060C8E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldObjectExecRegularAnim
-
- thumb_func_start FieldObjectSetRegularAnim
-FieldObjectSetRegularAnim: @ 8060C94
- movs r3, 0
- strb r2, [r0, 0x1C]
- strh r3, [r1, 0x32]
- bx lr
- thumb_func_end FieldObjectSetRegularAnim
-
- thumb_func_start an_look_any
-an_look_any: @ 8060C9C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r1, r2, 24
- lsrs r1, 24
- bl FieldObjectSetDirection
- adds r0, r4, 0
- bl npc_coords_shift_still
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl get_go_image_anim_num
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805FE64
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r5, 0x32]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end an_look_any
-
- thumb_func_start sub_8060CE0
-sub_8060CE0: @ 8060CE0
- push {lr}
- movs r2, 0x1
- bl an_look_any
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8060CE0
-
- thumb_func_start sub_8060CF0
-sub_8060CF0: @ 8060CF0
- push {lr}
- movs r2, 0x2
- bl an_look_any
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8060CF0
-
- thumb_func_start sub_8060D00
-sub_8060D00: @ 8060D00
- push {lr}
- movs r2, 0x3
- bl an_look_any
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8060D00
-
- thumb_func_start sub_8060D10
-sub_8060D10: @ 8060D10
- push {lr}
- movs r2, 0x4
- bl an_look_any
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8060D10
-
- thumb_func_start sub_8060D20
-sub_8060D20: @ 8060D20
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- mov r9, r1
- adds r4, r2, 0
- adds r6, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- ldrh r1, [r0, 0x10]
- mov r0, sp
- strh r1, [r0]
- mov r1, r8
- ldrh r0, [r1, 0x12]
- mov r5, sp
- adds r5, 0x2
- strh r0, [r5]
- mov r0, r8
- adds r1, r4, 0
- bl FieldObjectSetDirection
- adds r0, r4, 0
- mov r1, sp
- adds r2, r5, 0
- bl MoveCoords
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- mov r0, r8
- bl npc_coords_shift
- mov r0, r9
- adds r1, r4, 0
- adds r2, r6, 0
- bl oamt_npc_ministep_reset
- mov r2, r9
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x4
- orrs r0, r1
- mov r2, r8
- strb r0, [r2]
- movs r0, 0x1
- mov r1, r9
- strh r0, [r1, 0x32]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8060D20
-
- thumb_func_start do_go_anim
-do_go_anim: @ 8060DA4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r5, r0, 0
- mov r8, r1
- adds r4, r3, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r4, 24
- lsrs r4, 24
- mov r1, sp
- ldr r0, _08060DFC @ =gUnknown_083759C0
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6}
- stm r1!, {r3,r6}
- adds r0, r5, 0
- mov r1, r8
- adds r3, r4, 0
- bl sub_8060D20
- lsls r4, 2
- mov r7, sp
- adds r1, r7, r4
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- ldr r1, [r1]
- bl _call_via_r1
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- mov r1, r8
- bl sub_805FE28
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08060DFC: .4byte gUnknown_083759C0
- thumb_func_end do_go_anim
-
- thumb_func_start do_run_anim
-do_run_anim: @ 8060E00
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0x1
- bl sub_8060D20
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl get_run_image_anim_num
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805FE28
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end do_run_anim
-
- thumb_func_start npc_obj_ministep_stop_on_arrival
-npc_obj_ministep_stop_on_arrival: @ 8060E30
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl obj_npc_ministep
- lsls r0, 24
- cmp r0, 0
- bne _08060E46
- movs r0, 0
- b _08060E62
-_08060E46:
- adds r0, r4, 0
- bl npc_coords_shift_still
- ldrb r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
-_08060E62:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end npc_obj_ministep_stop_on_arrival
-
- thumb_func_start sub_8060E68
-sub_8060E68: @ 8060E68
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r6, r0, 0
- mov r8, r1
- lsls r5, r2, 24
- lsrs r5, 24
- ldrh r1, [r6, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r6, 0x12]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- adds r0, r6, 0
- adds r1, r5, 0
- bl FieldObjectSetDirection
- adds r0, r5, 0
- mov r1, sp
- adds r2, r4, 0
- bl MoveCoords
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r4, r0]
- adds r0, r6, 0
- bl npc_coords_shift
- mov r0, r8
- adds r1, r5, 0
- bl sub_806467C
- mov r2, r8
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r6]
- movs r0, 0x1
- mov r1, r8
- strh r0, [r1, 0x32]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8060E68
-
- thumb_func_start sub_8060ED8
-sub_8060ED8: @ 8060ED8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- bl sub_8060E68
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl get_go_image_anim_num
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805FE28
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8060ED8
-
- thumb_func_start an_walk_any_2
-an_walk_any_2: @ 8060F04
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl sub_806468C
- lsls r0, 24
- cmp r0, 0
- bne _08060F1A
- movs r0, 0
- b _08060F36
-_08060F1A:
- adds r0, r4, 0
- bl npc_coords_shift_still
- ldrb r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
-_08060F36:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end an_walk_any_2
-
- thumb_func_start sub_8060F3C
-sub_8060F3C: @ 8060F3C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8060ED8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8060F5C
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8060F3C
-
- thumb_func_start sub_8060F5C
-sub_8060F5C: @ 8060F5C
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08060F6E
- movs r0, 0
- b _08060F74
-_08060F6E:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08060F74:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8060F5C
-
- thumb_func_start sub_8060F7C
-sub_8060F7C: @ 8060F7C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- bl sub_8060ED8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8060F9C
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8060F7C
-
- thumb_func_start sub_8060F9C
-sub_8060F9C: @ 8060F9C
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08060FAE
- movs r0, 0
- b _08060FB4
-_08060FAE:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08060FB4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8060F9C
-
- thumb_func_start sub_8060FBC
-sub_8060FBC: @ 8060FBC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- bl sub_8060ED8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8060FDC
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8060FBC
-
- thumb_func_start sub_8060FDC
-sub_8060FDC: @ 8060FDC
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08060FEE
- movs r0, 0
- b _08060FF4
-_08060FEE:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08060FF4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8060FDC
-
- thumb_func_start sub_8060FFC
-sub_8060FFC: @ 8060FFC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_8060ED8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806101C
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8060FFC
-
- thumb_func_start sub_806101C
-sub_806101C: @ 806101C
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _0806102E
- movs r0, 0
- b _08061034
-_0806102E:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061034:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806101C
-
- thumb_func_start sub_806103C
-sub_806103C: @ 806103C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806105C
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806103C
-
- thumb_func_start sub_806105C
-sub_806105C: @ 806105C
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806106E
- movs r0, 0
- b _08061074
-_0806106E:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061074:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806105C
-
- thumb_func_start sub_806107C
-sub_806107C: @ 806107C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806109C
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806107C
-
- thumb_func_start sub_806109C
-sub_806109C: @ 806109C
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080610AE
- movs r0, 0
- b _080610B4
-_080610AE:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080610B4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806109C
-
- thumb_func_start sub_80610BC
-sub_80610BC: @ 80610BC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80610DC
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80610BC
-
- thumb_func_start sub_80610DC
-sub_80610DC: @ 80610DC
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080610EE
- movs r0, 0
- b _080610F4
-_080610EE:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080610F4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80610DC
-
- thumb_func_start sub_80610FC
-sub_80610FC: @ 80610FC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806111C
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80610FC
-
- thumb_func_start sub_806111C
-sub_806111C: @ 806111C
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806112E
- movs r0, 0
- b _08061134
-_0806112E:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061134:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806111C
-
- thumb_func_start sub_806113C
-sub_806113C: @ 806113C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r7, r0, 0
- mov r10, r1
- adds r4, r2, 0
- mov r8, r3
- ldr r0, [sp, 0x30]
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080611F4 @ =gUnknown_08375A34
- add r0, sp, 0x4
- movs r2, 0x6
- bl memcpy
- add r5, sp, 0xC
- movs r0, 0
- strh r0, [r5]
- mov r6, sp
- adds r6, 0xE
- strh r0, [r6]
- adds r0, r7, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- mov r1, r8
- lsls r0, r1, 1
- add r0, sp
- adds r0, 0x4
- movs r1, 0
- ldrsh r3, [r0, r1]
- str r3, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8060320
- ldrh r1, [r5]
- ldrh r0, [r7, 0x10]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r6]
- ldrh r0, [r7, 0x12]
- adds r2, r0
- lsls r2, 16
- asrs r2, 16
- adds r0, r7, 0
- bl npc_coords_shift
- mov r0, r10
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_80646E4
- movs r0, 0x1
- mov r1, r10
- strh r0, [r1, 0x32]
- movs r0, 0x2C
- add r10, r0
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- mov r1, r10
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r7]
- 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
-_080611F4: .4byte gUnknown_08375A34
- thumb_func_end sub_806113C
-
- thumb_func_start maybe_shadow_1
-maybe_shadow_1: @ 80611F8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [sp, 0x10]
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r4, 0
- bl sub_806113C
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl get_go_image_anim_num
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805FE28
- adds r0, r4, 0
- bl DoShadowFieldEffect
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end maybe_shadow_1
-
- thumb_func_start sub_806123C
-sub_806123C: @ 806123C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r6, r0, 0
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r1, _080612C8 @ =gUnknown_08375A3A
- add r0, sp, 0x4
- movs r2, 0x6
- bl memcpy
- adds r0, r7, 0
- bl _call_via_r4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bne _080612CC
- movs r1, 0x36
- ldrsh r0, [r7, r1]
- lsls r0, 1
- add r0, sp
- adds r0, 0x4
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _080612CC
- add r4, sp, 0xC
- movs r0, 0
- strh r0, [r4]
- mov r5, sp
- adds r5, 0xE
- strh r0, [r5]
- ldrb r0, [r6, 0x18]
- lsrs r0, 4
- movs r2, 0x36
- ldrsh r1, [r7, r2]
- lsls r1, 1
- add r1, sp
- adds r1, 0x4
- movs r2, 0
- ldrsh r3, [r1, r2]
- str r3, [sp]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8060320
- ldrh r1, [r4]
- ldrh r0, [r6, 0x10]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r5]
- ldrh r0, [r6, 0x12]
- adds r2, r0
- lsls r2, 16
- asrs r2, 16
- adds r0, r6, 0
- bl npc_coords_shift
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r6]
- b _080612F0
- .align 2, 0
-_080612C8: .4byte gUnknown_08375A3A
-_080612CC:
- mov r1, r8
- cmp r1, 0xFF
- bne _080612F0
- adds r0, r6, 0
- bl npc_coords_shift_still
- ldrb r0, [r6]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r6]
- adds r2, r7, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
-_080612F0:
- mov r0, r8
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806123C
-
- thumb_func_start sub_8061300
-sub_8061300: @ 8061300
- push {lr}
- ldr r2, _08061310 @ =sub_8064704
- bl sub_806123C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08061310: .4byte sub_8064704
- thumb_func_end sub_8061300
-
- thumb_func_start sub_8061314
-sub_8061314: @ 8061314
- push {lr}
- ldr r2, _08061324 @ =sub_806478C
- bl sub_806123C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08061324: .4byte sub_806478C
- thumb_func_end sub_8061314
-
- thumb_func_start sub_8061328
-sub_8061328: @ 8061328
- push {lr}
- bl sub_8061300
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0806133A
- movs r0, 0
- b _0806133C
-_0806133A:
- movs r0, 0x1
-_0806133C:
- pop {r1}
- bx r1
- thumb_func_end sub_8061328
-
- thumb_func_start sub_8061340
-sub_8061340: @ 8061340
- push {lr}
- bl sub_8061314
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08061352
- movs r0, 0
- b _08061354
-_08061352:
- movs r0, 0x1
-_08061354:
- pop {r1}
- bx r1
- thumb_func_end sub_8061340
-
- thumb_func_start sub_8061358
-sub_8061358: @ 8061358
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061300
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08061372
- cmp r0, 0xFF
- bne _0806139E
- movs r0, 0x1
- b _080613A0
-_08061372:
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetOppositeDirection
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetDirection
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl get_go_image_anim_num
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805FE64
-_0806139E:
- movs r0, 0
-_080613A0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061358
-
- thumb_func_start sub_80613A8
-sub_80613A8: @ 80613A8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80613D4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80613A8
-
- thumb_func_start sub_80613D4
-sub_80613D4: @ 80613D4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _080613E8
- movs r0, 0
- b _080613F8
-_080613E8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080613F8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80613D4
-
- thumb_func_start sub_8061400
-sub_8061400: @ 8061400
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806142C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061400
-
- thumb_func_start sub_806142C
-sub_806142C: @ 806142C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08061440
- movs r0, 0
- b _08061450
-_08061440:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08061450:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806142C
-
- thumb_func_start sub_8061458
-sub_8061458: @ 8061458
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061484
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061458
-
- thumb_func_start sub_8061484
-sub_8061484: @ 8061484
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08061498
- movs r0, 0
- b _080614A8
-_08061498:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080614A8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061484
-
- thumb_func_start sub_80614B0
-sub_80614B0: @ 80614B0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x2
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80614DC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80614B0
-
- thumb_func_start sub_80614DC
-sub_80614DC: @ 80614DC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _080614F0
- movs r0, 0
- b _08061500
-_080614F0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08061500:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80614DC
-
- thumb_func_start sub_8061508
-sub_8061508: @ 8061508
- movs r2, 0x1
- strh r2, [r0, 0x32]
- strh r1, [r0, 0x34]
- bx lr
- thumb_func_end sub_8061508
-
- thumb_func_start sub_8061510
-sub_8061510: @ 8061510
- push {lr}
- ldrh r0, [r1, 0x34]
- subs r0, 0x1
- strh r0, [r1, 0x34]
- lsls r0, 16
- cmp r0, 0
- beq _08061522
- movs r0, 0
- b _08061528
-_08061522:
- movs r0, 0x2
- strh r0, [r1, 0x32]
- movs r0, 0x1
-_08061528:
- pop {r1}
- bx r1
- thumb_func_end sub_8061510
-
- thumb_func_start sub_806152C
-sub_806152C: @ 806152C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806152C
-
- thumb_func_start sub_806154C
-sub_806154C: @ 806154C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806154C
-
- thumb_func_start sub_806156C
-sub_806156C: @ 806156C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x4
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806156C
-
- thumb_func_start sub_806158C
-sub_806158C: @ 806158C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x8
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806158C
-
- thumb_func_start sub_80615AC
-sub_80615AC: @ 80615AC
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x10
- bl sub_8061508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061510
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80615AC
-
- thumb_func_start sub_80615CC
-sub_80615CC: @ 80615CC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80615EC
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80615CC
-
- thumb_func_start sub_80615EC
-sub_80615EC: @ 80615EC
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080615FE
- movs r0, 0
- b _08061604
-_080615FE:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061604:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80615EC
-
- thumb_func_start sub_806160C
-sub_806160C: @ 806160C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806162C
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806160C
-
- thumb_func_start sub_806162C
-sub_806162C: @ 806162C
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806163E
- movs r0, 0
- b _08061644
-_0806163E:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061644:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806162C
-
- thumb_func_start sub_806164C
-sub_806164C: @ 806164C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806166C
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806164C
-
- thumb_func_start sub_806166C
-sub_806166C: @ 806166C
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806167E
- movs r0, 0
- b _08061684
-_0806167E:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061684:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806166C
-
- thumb_func_start sub_806168C
-sub_806168C: @ 806168C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80616AC
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806168C
-
- thumb_func_start sub_80616AC
-sub_80616AC: @ 80616AC
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080616BE
- movs r0, 0
- b _080616C4
-_080616BE:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080616C4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80616AC
-
- thumb_func_start sub_80616CC
-sub_80616CC: @ 80616CC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r6, r1, 0
- adds r1, r2, 0
- adds r4, r3, 0
- ldr r5, [sp, 0x14]
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- bl FieldObjectSetDirection
- mov r0, r8
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_805FE28
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r6, 0x32]
- strh r5, [r6, 0x34]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80616CC
-
- thumb_func_start sub_8061714
-sub_8061714: @ 8061714
- push {lr}
- ldrh r0, [r1, 0x34]
- subs r0, 0x1
- strh r0, [r1, 0x34]
- lsls r0, 16
- cmp r0, 0
- beq _08061726
- movs r0, 0
- b _08061738
-_08061726:
- movs r0, 0x2
- strh r0, [r1, 0x32]
- adds r2, r1, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
-_08061738:
- pop {r1}
- bx r1
- thumb_func_end sub_8061714
-
- thumb_func_start sub_806173C
-sub_806173C: @ 806173C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrh r1, [r4, 0x34]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08061766
- adds r3, r4, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- lsls r1, r2, 26
- lsrs r1, 26
- adds r1, 0x1
- movs r0, 0x3F
- ands r1, r0
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08061766:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806173C
-
- thumb_func_start sub_8061778
-sub_8061778: @ 8061778
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x20
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806173C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061778
-
- thumb_func_start sub_80617B0
-sub_80617B0: @ 80617B0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x20
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806173C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80617B0
-
- thumb_func_start sub_80617E8
-sub_80617E8: @ 80617E8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x20
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806173C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80617E8
-
- thumb_func_start sub_8061820
-sub_8061820: @ 8061820
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x20
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806173C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061820
-
- thumb_func_start sub_8061858
-sub_8061858: @ 8061858
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061858
-
- thumb_func_start sub_8061890
-sub_8061890: @ 8061890
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061890
-
- thumb_func_start sub_80618C8
-sub_80618C8: @ 80618C8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80618C8
-
- thumb_func_start sub_8061900
-sub_8061900: @ 8061900
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl get_go_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061900
-
- thumb_func_start sub_8061938
-sub_8061938: @ 8061938
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl get_go_fast_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061938
-
- thumb_func_start sub_8061970
-sub_8061970: @ 8061970
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl get_go_fast_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061970
-
- thumb_func_start sub_80619A8
-sub_80619A8: @ 80619A8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl get_go_fast_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80619A8
-
- thumb_func_start sub_80619E0
-sub_80619E0: @ 80619E0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl get_go_fast_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80619E0
-
- thumb_func_start sub_8061A18
-sub_8061A18: @ 8061A18
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl get_go_faster_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x4
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061A18
-
- thumb_func_start sub_8061A50
-sub_8061A50: @ 8061A50
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl get_go_faster_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x4
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061A50
-
- thumb_func_start sub_8061A88
-sub_8061A88: @ 8061A88
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl get_go_faster_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x4
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061A88
-
- thumb_func_start sub_8061AC0
-sub_8061AC0: @ 8061AC0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl get_go_faster_image_anim_num
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x4
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061AC0
-
- thumb_func_start sub_8061AF8
-sub_8061AF8: @ 8061AF8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x2
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061B18
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061AF8
-
- thumb_func_start sub_8061B18
-sub_8061B18: @ 8061B18
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061B2A
- movs r0, 0
- b _08061B30
-_08061B2A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061B30:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061B18
-
- thumb_func_start sub_8061B38
-sub_8061B38: @ 8061B38
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061B58
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061B38
-
- thumb_func_start sub_8061B58
-sub_8061B58: @ 8061B58
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061B6A
- movs r0, 0
- b _08061B70
-_08061B6A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061B70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061B58
-
- thumb_func_start sub_8061B78
-sub_8061B78: @ 8061B78
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061B98
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061B78
-
- thumb_func_start sub_8061B98
-sub_8061B98: @ 8061B98
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061BAA
- movs r0, 0
- b _08061BB0
-_08061BAA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061BB0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061B98
-
- thumb_func_start sub_8061BB8
-sub_8061BB8: @ 8061BB8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x2
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061BD8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061BB8
-
- thumb_func_start sub_8061BD8
-sub_8061BD8: @ 8061BD8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061BEA
- movs r0, 0
- b _08061BF0
-_08061BEA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061BF0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061BD8
-
- thumb_func_start sub_8061BF8
-sub_8061BF8: @ 8061BF8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x3
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061C18
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061BF8
-
- thumb_func_start sub_8061C18
-sub_8061C18: @ 8061C18
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061C2A
- movs r0, 0
- b _08061C30
-_08061C2A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061C30:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061C18
-
- thumb_func_start sub_8061C38
-sub_8061C38: @ 8061C38
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x3
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061C58
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061C38
-
- thumb_func_start sub_8061C58
-sub_8061C58: @ 8061C58
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061C6A
- movs r0, 0
- b _08061C70
-_08061C6A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061C70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061C58
-
- thumb_func_start sub_8061C78
-sub_8061C78: @ 8061C78
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061C98
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061C78
-
- thumb_func_start sub_8061C98
-sub_8061C98: @ 8061C98
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061CAA
- movs r0, 0
- b _08061CB0
-_08061CAA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061CB0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061C98
-
- thumb_func_start sub_8061CB8
-sub_8061CB8: @ 8061CB8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x3
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061CD8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061CB8
-
- thumb_func_start sub_8061CD8
-sub_8061CD8: @ 8061CD8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061CEA
- movs r0, 0
- b _08061CF0
-_08061CEA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061CF0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061CD8
-
- thumb_func_start sub_8061CF8
-sub_8061CF8: @ 8061CF8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x4
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061D18
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061CF8
-
- thumb_func_start sub_8061D18
-sub_8061D18: @ 8061D18
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061D2A
- movs r0, 0
- b _08061D30
-_08061D2A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061D30:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061D18
-
- thumb_func_start sub_8061D38
-sub_8061D38: @ 8061D38
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x4
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061D58
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061D38
-
- thumb_func_start sub_8061D58
-sub_8061D58: @ 8061D58
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061D6A
- movs r0, 0
- b _08061D70
-_08061D6A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061D70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061D58
-
- thumb_func_start sub_8061D78
-sub_8061D78: @ 8061D78
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x4
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061D98
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061D78
-
- thumb_func_start sub_8061D98
-sub_8061D98: @ 8061D98
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061DAA
- movs r0, 0
- b _08061DB0
-_08061DAA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061DB0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061D98
-
- thumb_func_start sub_8061DB8
-sub_8061DB8: @ 8061DB8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x4
- bl do_go_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061DD8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061DB8
-
- thumb_func_start sub_8061DD8
-sub_8061DD8: @ 8061DD8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061DEA
- movs r0, 0
- b _08061DF0
-_08061DEA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061DF0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061DD8
-
- thumb_func_start do_run_south_anim
-do_run_south_anim: @ 8061DF8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl do_run_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061E18
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end do_run_south_anim
-
- thumb_func_start sub_8061E18
-sub_8061E18: @ 8061E18
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061E2A
- movs r0, 0
- b _08061E30
-_08061E2A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061E30:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061E18
-
- thumb_func_start do_run_north_anim
-do_run_north_anim: @ 8061E38
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- bl do_run_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061E58
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end do_run_north_anim
-
- thumb_func_start sub_8061E58
-sub_8061E58: @ 8061E58
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061E6A
- movs r0, 0
- b _08061E70
-_08061E6A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061E70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061E58
-
- thumb_func_start do_run_west_anim
-do_run_west_anim: @ 8061E78
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- bl do_run_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061E98
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end do_run_west_anim
-
- thumb_func_start sub_8061E98
-sub_8061E98: @ 8061E98
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061EAA
- movs r0, 0
- b _08061EB0
-_08061EAA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061EB0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061E98
-
- thumb_func_start do_run_east_anim
-do_run_east_anim: @ 8061EB8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl do_run_anim
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061ED8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end do_run_east_anim
-
- thumb_func_start sub_8061ED8
-sub_8061ED8: @ 8061ED8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08061EEA
- movs r0, 0
- b _08061EF0
-_08061EEA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061EF0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061ED8
-
- thumb_func_start npc_set_direction_and_anim__an_proceed
-npc_set_direction_and_anim__an_proceed: @ 8061EF8
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- adds r1, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl obj_anim_image_set_and_seek
- adds r0, r6, 0
- adds r1, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x1
- strh r0, [r5, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end npc_set_direction_and_anim__an_proceed
-
- thumb_func_start sub_8061F24
-sub_8061F24: @ 8061F24
- push {lr}
- ldrb r2, [r0, 0x18]
- lsrs r2, 4
- adds r3, r1, 0
- adds r3, 0x2A
- ldrb r3, [r3]
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8061F24
-
- thumb_func_start sub_8061F3C
-sub_8061F3C: @ 8061F3C
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_8064864
- lsls r0, 24
- cmp r0, 0
- bne _08061F50
- movs r0, 0
- b _08061F56
-_08061F50:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08061F56:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8061F3C
-
- thumb_func_start sub_8061F5C
-sub_8061F5C: @ 8061F5C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- movs r1, 0
- str r1, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_806113C
- adds r0, r4, 0
- bl sub_805FD88
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8061F5C
-
- thumb_func_start sub_8061F90
-sub_8061F90: @ 8061F90
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- bl sub_8061F5C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061FB0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061F90
-
- thumb_func_start sub_8061FB0
-sub_8061FB0: @ 8061FB0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061340
- lsls r0, 24
- cmp r0, 0
- bne _08061FC4
- movs r0, 0
- b _08061FD2
-_08061FC4:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_08061FD2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061FB0
-
- thumb_func_start sub_8061FD8
-sub_8061FD8: @ 8061FD8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- bl sub_8061F5C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061FF8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061FD8
-
- thumb_func_start sub_8061FF8
-sub_8061FF8: @ 8061FF8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061340
- lsls r0, 24
- cmp r0, 0
- bne _0806200C
- movs r0, 0
- b _0806201A
-_0806200C:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_0806201A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8061FF8
-
- thumb_func_start sub_8062020
-sub_8062020: @ 8062020
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- bl sub_8061F5C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062040
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062020
-
- thumb_func_start sub_8062040
-sub_8062040: @ 8062040
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061340
- lsls r0, 24
- cmp r0, 0
- bne _08062054
- movs r0, 0
- b _08062062
-_08062054:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_08062062:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062040
-
- thumb_func_start sub_8062068
-sub_8062068: @ 8062068
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_8061F5C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062088
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062068
-
- thumb_func_start sub_8062088
-sub_8062088: @ 8062088
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061340
- lsls r0, 24
- cmp r0, 0
- bne _0806209C
- movs r0, 0
- b _080620AA
-_0806209C:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- ldrb r1, [r4]
- subs r0, 0x23
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
-_080620AA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062088
-
- thumb_func_start sub_80620B0
-sub_80620B0: @ 80620B0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080620FA
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- ldr r4, _08062108 @ =gMapObjects
- mov r2, sp
- ldrb r2, [r2]
- lsls r3, r2, 3
- adds r3, r2
- lsls r3, 2
- adds r3, r4
- movs r4, 0x10
- ldrsh r2, [r3, r4]
- movs r4, 0x12
- ldrsh r3, [r3, r4]
- bl sub_805FE90
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl an_look_any
-_080620FA:
- movs r0, 0x1
- strh r0, [r6, 0x32]
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08062108: .4byte gMapObjects
- thumb_func_end sub_80620B0
-
- thumb_func_start sub_806210C
-sub_806210C: @ 806210C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0806215E
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- ldr r4, _0806216C @ =gMapObjects
- mov r2, sp
- ldrb r2, [r2]
- lsls r3, r2, 3
- adds r3, r2
- lsls r3, 2
- adds r3, r4
- movs r4, 0x10
- ldrsh r2, [r3, r4]
- movs r4, 0x12
- ldrsh r3, [r3, r4]
- bl sub_805FE90
- lsls r0, 24
- lsrs r0, 24
- bl GetOppositeDirection
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl an_look_any
-_0806215E:
- movs r0, 0x1
- strh r0, [r6, 0x32]
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806216C: .4byte gMapObjects
- thumb_func_end sub_806210C
-
- thumb_func_start sub_8062170
-sub_8062170: @ 8062170
- ldrb r2, [r0, 0x1]
- movs r3, 0x2
- orrs r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8062170
-
- thumb_func_start sub_8062180
-sub_8062180: @ 8062180
- ldrb r3, [r0, 0x1]
- movs r2, 0x3
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8062180
-
- thumb_func_start sub_8062190
-sub_8062190: @ 8062190
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x1
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80621BC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062190
-
- thumb_func_start sub_80621BC
-sub_80621BC: @ 80621BC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _080621D0
- movs r0, 0
- b _080621E0
-_080621D0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080621E0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80621BC
-
- thumb_func_start sub_80621E8
-sub_80621E8: @ 80621E8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062214
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80621E8
-
- thumb_func_start sub_8062214
-sub_8062214: @ 8062214
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062228
- movs r0, 0
- b _08062238
-_08062228:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062238:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062214
-
- thumb_func_start sub_8062240
-sub_8062240: @ 8062240
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x1
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806226C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062240
-
- thumb_func_start sub_806226C
-sub_806226C: @ 806226C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062280
- movs r0, 0
- b _08062290
-_08062280:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062290:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806226C
-
- thumb_func_start sub_8062298
-sub_8062298: @ 8062298
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x1
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80622C4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062298
-
- thumb_func_start sub_80622C4
-sub_80622C4: @ 80622C4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _080622D8
- movs r0, 0
- b _080622E8
-_080622D8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080622E8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80622C4
-
- thumb_func_start sub_80622F0
-sub_80622F0: @ 80622F0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806231C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80622F0
-
- thumb_func_start sub_806231C
-sub_806231C: @ 806231C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062330
- movs r0, 0
- b _08062340
-_08062330:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062340:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806231C
-
- thumb_func_start sub_8062348
-sub_8062348: @ 8062348
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062374
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062348
-
- thumb_func_start sub_8062374
-sub_8062374: @ 8062374
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062388
- movs r0, 0
- b _08062398
-_08062388:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062398:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062374
-
- thumb_func_start sub_80623A0
-sub_80623A0: @ 80623A0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80623CC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80623A0
-
- thumb_func_start sub_80623CC
-sub_80623CC: @ 80623CC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _080623E0
- movs r0, 0
- b _080623F0
-_080623E0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080623F0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80623CC
-
- thumb_func_start sub_80623F8
-sub_80623F8: @ 80623F8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062424
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80623F8
-
- thumb_func_start sub_8062424
-sub_8062424: @ 8062424
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062438
- movs r0, 0
- b _08062448
-_08062438:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062448:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062424
-
- thumb_func_start sub_8062450
-sub_8062450: @ 8062450
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806247C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062450
-
- thumb_func_start sub_806247C
-sub_806247C: @ 806247C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061358
- lsls r0, 24
- cmp r0, 0
- bne _08062490
- movs r0, 0
- b _080624A0
-_08062490:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080624A0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806247C
-
- thumb_func_start sub_80624A8
-sub_80624A8: @ 80624A8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80624D4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80624A8
-
- thumb_func_start sub_80624D4
-sub_80624D4: @ 80624D4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061358
- lsls r0, 24
- cmp r0, 0
- bne _080624E8
- movs r0, 0
- b _080624F8
-_080624E8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080624F8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80624D4
-
- thumb_func_start sub_8062500
-sub_8062500: @ 8062500
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806252C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062500
-
- thumb_func_start sub_806252C
-sub_806252C: @ 806252C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061358
- lsls r0, 24
- cmp r0, 0
- bne _08062540
- movs r0, 0
- b _08062550
-_08062540:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062550:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806252C
-
- thumb_func_start sub_8062558
-sub_8062558: @ 8062558
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0
- bl maybe_shadow_1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062584
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062558
-
- thumb_func_start sub_8062584
-sub_8062584: @ 8062584
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061358
- lsls r0, 24
- cmp r0, 0
- bne _08062598
- movs r0, 0
- b _080625A8
-_08062598:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080625A8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062584
-
- thumb_func_start sub_80625B0
-sub_80625B0: @ 80625B0
- push {lr}
- ldr r3, _080625C4 @ =gUnknown_0836DC09
- ldrb r2, [r0, 0x6]
- adds r2, r3
- ldrb r2, [r2]
- bl an_look_any
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_080625C4: .4byte gUnknown_0836DC09
- thumb_func_end sub_80625B0
-
- thumb_func_start sub_80625C8
-sub_80625C8: @ 80625C8
- push {lr}
- movs r2, 0x1
- movs r3, 0x14
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80625C8
-
- thumb_func_start sub_80625D8
-sub_80625D8: @ 80625D8
- ldrb r3, [r0, 0x3]
- movs r2, 0x3
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x3]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_80625D8
-
- thumb_func_start sub_80625E8
-sub_80625E8: @ 80625E8
- ldrb r2, [r0, 0x3]
- movs r3, 0x2
- orrs r2, r3
- strb r2, [r0, 0x3]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_80625E8
-
- thumb_func_start sub_80625F8
-sub_80625F8: @ 80625F8
- ldrb r2, [r0, 0x1]
- movs r3, 0x10
- orrs r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_80625F8
-
- thumb_func_start sub_8062608
-sub_8062608: @ 8062608
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r0, 0xC]
- lsls r1, 25
- lsrs r1, 31
- lsls r1, 4
- ldrb r2, [r4, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1
- strh r0, [r5, 0x32]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062608
-
- thumb_func_start sub_8062634
-sub_8062634: @ 8062634
- ldrb r2, [r0, 0x1]
- movs r3, 0x20
- orrs r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8062634
-
- thumb_func_start sub_8062644
-sub_8062644: @ 8062644
- ldrb r3, [r0, 0x1]
- movs r2, 0x21
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x1]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_8062644
-
- thumb_func_start do_exclamation_mark_bubble_1
-do_exclamation_mark_bubble_1: @ 8062654
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, _08062674 @ =gUnknown_0202FF84
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0
- bl FieldEffectStart
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08062674: .4byte gUnknown_0202FF84
- thumb_func_end do_exclamation_mark_bubble_1
-
- thumb_func_start do_exclamation_mark_bubble_2
-do_exclamation_mark_bubble_2: @ 8062678
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, _08062698 @ =gUnknown_0202FF84
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x21
- bl FieldEffectStart
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08062698: .4byte gUnknown_0202FF84
- thumb_func_end do_exclamation_mark_bubble_2
-
- thumb_func_start do_heart_bubble
-do_heart_bubble: @ 806269C
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, _080626BC @ =gUnknown_0202FF84
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0x2E
- bl FieldEffectStart
- movs r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080626BC: .4byte gUnknown_0202FF84
- thumb_func_end do_heart_bubble
-
- thumb_func_start sub_80626C0
-sub_80626C0: @ 80626C0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4, 0x6]
- cmp r0, 0x3F
- bne _080626D6
- adds r0, r4, 0
- bl sub_8084794
- movs r0, 0
- b _080626FE
-_080626D6:
- subs r0, 0x39
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080626F8
- adds r0, r4, 0
- bl sub_812869C
- movs r0, 0x1
- strh r0, [r5, 0x32]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062704
- lsls r0, 24
- lsrs r0, 24
- b _080626FE
-_080626F8:
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_080626FE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80626C0
-
- thumb_func_start sub_8062704
-sub_8062704: @ 8062704
- push {r4,lr}
- adds r4, r1, 0
- bl sub_81286C4
- lsls r0, 24
- cmp r0, 0
- bne _08062716
- movs r0, 0
- b _0806271C
-_08062716:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_0806271C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8062704
-
- thumb_func_start sub_8062724
-sub_8062724: @ 8062724
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl obj_anim_image_set_and_seek
- movs r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8062724
-
- thumb_func_start sub_8062740
-sub_8062740: @ 8062740
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_8064864
- lsls r0, 24
- cmp r0, 0
- beq _0806275C
- adds r0, r4, 0
- movs r1, 0x20
- bl sub_8064820
- movs r0, 0x2
- strh r0, [r4, 0x32]
-_0806275C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8062740
-
- thumb_func_start sub_8062764
-sub_8062764: @ 8062764
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r2, [r4, 0x1]
- lsls r1, r2, 26
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 5
- subs r0, 0x22
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- beq _08062796
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x3
- strh r0, [r5, 0x32]
-_08062796:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062764
-
- thumb_func_start sub_80627A0
-sub_80627A0: @ 80627A0
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl obj_anim_image_set_and_seek
- movs r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80627A0
-
- thumb_func_start sub_80627BC
-sub_80627BC: @ 80627BC
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r4, 0
- bl sub_8064864
- lsls r0, 24
- cmp r0, 0
- beq _080627D8
- adds r0, r4, 0
- movs r1, 0x20
- bl sub_8064820
- movs r0, 0x2
- strh r0, [r4, 0x32]
-_080627D8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80627BC
-
- thumb_func_start sub_80627E0
-sub_80627E0: @ 80627E0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r2, [r4, 0x1]
- lsls r1, r2, 26
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 5
- subs r0, 0x22
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- bl sub_8064824
- lsls r0, 24
- cmp r0, 0
- beq _08062812
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x3
- strh r0, [r5, 0x32]
-_08062812:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80627E0
-
- thumb_func_start sub_806281C
-sub_806281C: @ 806281C
- ldrb r2, [r0, 0x3]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r0, 0x3]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_806281C
-
- thumb_func_start sub_806282C
-sub_806282C: @ 806282C
- ldrb r3, [r0, 0x3]
- movs r2, 0x5
- negs r2, r2
- ands r2, r3
- strb r2, [r0, 0x3]
- movs r0, 0x1
- strh r0, [r1, 0x32]
- bx lr
- thumb_func_end sub_806282C
-
- thumb_func_start sub_806283C
-sub_806283C: @ 806283C
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r4, 0x42
- ldrb r1, [r4]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806283C
-
- thumb_func_start sub_806286C
-sub_806286C: @ 806286C
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x1]
- lsrs r1, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- movs r3, 0
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806286C
-
- thumb_func_start sub_806289C
-sub_806289C: @ 806289C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8060ED8
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnimIfDifferent
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80628D0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806289C
-
- thumb_func_start sub_80628D0
-sub_80628D0: @ 80628D0
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _080628E2
- movs r0, 0
- b _080628F4
-_080628E2:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080628F4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80628D0
-
- thumb_func_start sub_80628FC
-sub_80628FC: @ 80628FC
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x1
- bl sub_8060ED8
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnimIfDifferent
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8062930
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80628FC
-
- thumb_func_start sub_8062930
-sub_8062930: @ 8062930
- push {r4,lr}
- adds r4, r1, 0
- bl an_walk_any_2
- lsls r0, 24
- cmp r0, 0
- bne _08062942
- movs r0, 0
- b _08062954
-_08062942:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08062954:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8062930
-
- thumb_func_start sub_806295C
-sub_806295C: @ 806295C
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl FieldObjectSetDirection
- adds r0, r5, 0
- bl npc_coords_shift_still
- adds r0, r4, 0
- bl sub_805FDD8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_805FE64
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r6, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806295C
-
- thumb_func_start sub_806299C
-sub_806299C: @ 806299C
- push {lr}
- movs r2, 0x1
- bl sub_806295C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_806299C
-
- thumb_func_start sub_80629AC
-sub_80629AC: @ 80629AC
- push {lr}
- movs r2, 0x2
- bl sub_806295C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80629AC
-
- thumb_func_start sub_80629BC
-sub_80629BC: @ 80629BC
- push {lr}
- movs r2, 0x3
- bl sub_806295C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80629BC
-
- thumb_func_start sub_80629CC
-sub_80629CC: @ 80629CC
- push {lr}
- movs r2, 0x4
- bl sub_806295C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80629CC
-
- thumb_func_start sub_80629DC
-sub_80629DC: @ 80629DC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_805FD98
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80629DC
-
- thumb_func_start sub_8062A00
-sub_8062A00: @ 8062A00
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_805FD98
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A00
-
- thumb_func_start sub_8062A24
-sub_8062A24: @ 8062A24
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_805FD98
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A24
-
- thumb_func_start sub_8062A48
-sub_8062A48: @ 8062A48
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_805FD98
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A48
-
- thumb_func_start sub_8062A6C
-sub_8062A6C: @ 8062A6C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_805FDB8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A6C
-
- thumb_func_start sub_8062A90
-sub_8062A90: @ 8062A90
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_805FDB8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062A90
-
- thumb_func_start sub_8062AB4
-sub_8062AB4: @ 8062AB4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_805FDB8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062AB4
-
- thumb_func_start sub_8062AD8
-sub_8062AD8: @ 8062AD8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_805FDB8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062AD8
-
- thumb_func_start sub_8062AFC
-sub_8062AFC: @ 8062AFC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_805FDC8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062AFC
-
- thumb_func_start sub_8062B20
-sub_8062B20: @ 8062B20
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_805FDC8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062B20
-
- thumb_func_start sub_8062B44
-sub_8062B44: @ 8062B44
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_805FDC8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062B44
-
- thumb_func_start sub_8062B68
-sub_8062B68: @ 8062B68
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_805FDC8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl npc_set_direction_and_anim__an_proceed
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062B68
-
- thumb_func_start sub_8062B8C
-sub_8062B8C: @ 8062B8C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x14]
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806113C
- adds r0, r4, 0
- bl sub_805FD98
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnimIfDifferent
- adds r0, r6, 0
- bl DoShadowFieldEffect
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8062B8C
-
- thumb_func_start sub_8062BD0
-sub_8062BD0: @ 8062BD0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062BFC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062BD0
-
- thumb_func_start sub_8062BFC
-sub_8062BFC: @ 8062BFC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062C10
- movs r0, 0
- b _08062C20
-_08062C10:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062C20:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062BFC
-
- thumb_func_start sub_8062C28
-sub_8062C28: @ 8062C28
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062C54
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062C28
-
- thumb_func_start sub_8062C54
-sub_8062C54: @ 8062C54
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062C68
- movs r0, 0
- b _08062C78
-_08062C68:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062C78:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062C54
-
- thumb_func_start sub_8062C80
-sub_8062C80: @ 8062C80
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062CAC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062C80
-
- thumb_func_start sub_8062CAC
-sub_8062CAC: @ 8062CAC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062CC0
- movs r0, 0
- b _08062CD0
-_08062CC0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062CD0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062CAC
-
- thumb_func_start sub_8062CD8
-sub_8062CD8: @ 8062CD8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062D04
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062CD8
-
- thumb_func_start sub_8062D04
-sub_8062D04: @ 8062D04
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062D18
- movs r0, 0
- b _08062D28
-_08062D18:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062D28:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062D04
-
- thumb_func_start sub_8062D30
-sub_8062D30: @ 8062D30
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062D5C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062D30
-
- thumb_func_start sub_8062D5C
-sub_8062D5C: @ 8062D5C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062D70
- movs r0, 0
- b _08062D80
-_08062D70:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062D80:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062D5C
-
- thumb_func_start sub_8062D88
-sub_8062D88: @ 8062D88
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062DB4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062D88
-
- thumb_func_start sub_8062DB4
-sub_8062DB4: @ 8062DB4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062DC8
- movs r0, 0
- b _08062DD8
-_08062DC8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062DD8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062DB4
-
- thumb_func_start sub_8062DE0
-sub_8062DE0: @ 8062DE0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062E0C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062DE0
-
- thumb_func_start sub_8062E0C
-sub_8062E0C: @ 8062E0C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062E20
- movs r0, 0
- b _08062E30
-_08062E20:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062E30:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062E0C
-
- thumb_func_start sub_8062E38
-sub_8062E38: @ 8062E38
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062E64
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062E38
-
- thumb_func_start sub_8062E64
-sub_8062E64: @ 8062E64
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062E78
- movs r0, 0
- b _08062E88
-_08062E78:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062E88:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062E64
-
- thumb_func_start sub_8062E90
-sub_8062E90: @ 8062E90
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062EBC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062E90
-
- thumb_func_start sub_8062EBC
-sub_8062EBC: @ 8062EBC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062ED0
- movs r0, 0
- b _08062EE0
-_08062ED0:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062EE0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062EBC
-
- thumb_func_start sub_8062EE8
-sub_8062EE8: @ 8062EE8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062F14
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062EE8
-
- thumb_func_start sub_8062F14
-sub_8062F14: @ 8062F14
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062F28
- movs r0, 0
- b _08062F38
-_08062F28:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062F38:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062F14
-
- thumb_func_start sub_8062F40
-sub_8062F40: @ 8062F40
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062F6C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062F40
-
- thumb_func_start sub_8062F6C
-sub_8062F6C: @ 8062F6C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062F80
- movs r0, 0
- b _08062F90
-_08062F80:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062F90:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062F6C
-
- thumb_func_start sub_8062F98
-sub_8062F98: @ 8062F98
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x4
- movs r3, 0x2
- bl sub_8062B8C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8062FC4
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062F98
-
- thumb_func_start sub_8062FC4
-sub_8062FC4: @ 8062FC4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_8061328
- lsls r0, 24
- cmp r0, 0
- bne _08062FD8
- movs r0, 0
- b _08062FE8
-_08062FD8:
- ldrb r0, [r4, 0x2]
- movs r1, 0x41
- negs r1, r1
- ands r1, r0
- strb r1, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r5, 0x32]
- movs r0, 0x1
-_08062FE8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062FC4
-
- thumb_func_start sub_8062FF0
-sub_8062FF0: @ 8062FF0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- bl sub_805FDD8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8062FF0
-
- thumb_func_start sub_8063028
-sub_8063028: @ 8063028
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x2
- bl sub_805FDD8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063028
-
- thumb_func_start sub_8063060
-sub_8063060: @ 8063060
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x3
- bl sub_805FDD8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063060
-
- thumb_func_start sub_8063098
-sub_8063098: @ 8063098
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x4
- bl sub_805FDD8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x8
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80616CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8061714
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063098
-
- thumb_func_start sub_80630D0
-sub_80630D0: @ 80630D0
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_8060D20
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_805FD98
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80630D0
-
- thumb_func_start sub_8063108
-sub_8063108: @ 8063108
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80630D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063128
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063108
-
- thumb_func_start sub_8063128
-sub_8063128: @ 8063128
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806313A
- movs r0, 0
- b _08063140
-_0806313A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063140:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063128
-
- thumb_func_start sub_8063148
-sub_8063148: @ 8063148
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80630D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063168
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063148
-
- thumb_func_start sub_8063168
-sub_8063168: @ 8063168
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806317A
- movs r0, 0
- b _08063180
-_0806317A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063180:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063168
-
- thumb_func_start sub_8063188
-sub_8063188: @ 8063188
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_80630D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80631A8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063188
-
- thumb_func_start sub_80631A8
-sub_80631A8: @ 80631A8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080631BA
- movs r0, 0
- b _080631C0
-_080631BA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080631C0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80631A8
-
- thumb_func_start sub_80631C8
-sub_80631C8: @ 80631C8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_80630D0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80631E8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80631C8
-
- thumb_func_start sub_80631E8
-sub_80631E8: @ 80631E8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080631FA
- movs r0, 0
- b _08063200
-_080631FA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063200:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80631E8
-
- thumb_func_start sub_8063208
-sub_8063208: @ 8063208
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_8060D20
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_805FDD8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805FE28
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8063208
-
- thumb_func_start sub_8063238
-sub_8063238: @ 8063238
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8063208
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063258
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063238
-
- thumb_func_start sub_8063258
-sub_8063258: @ 8063258
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806326A
- movs r0, 0
- b _08063270
-_0806326A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063270:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063258
-
- thumb_func_start sub_8063278
-sub_8063278: @ 8063278
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8063208
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063298
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063278
-
- thumb_func_start sub_8063298
-sub_8063298: @ 8063298
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080632AA
- movs r0, 0
- b _080632B0
-_080632AA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080632B0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063298
-
- thumb_func_start sub_80632B8
-sub_80632B8: @ 80632B8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8063208
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80632D8
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80632B8
-
- thumb_func_start sub_80632D8
-sub_80632D8: @ 80632D8
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080632EA
- movs r0, 0
- b _080632F0
-_080632EA:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080632F0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80632D8
-
- thumb_func_start sub_80632F8
-sub_80632F8: @ 80632F8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8063208
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063318
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80632F8
-
- thumb_func_start sub_8063318
-sub_8063318: @ 8063318
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _0806332A
- movs r0, 0
- b _08063330
-_0806332A:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063330:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063318
-
- thumb_func_start sub_8063338
-sub_8063338: @ 8063338
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_8060D20
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_805FDB8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8063338
-
- thumb_func_start sub_8063370
-sub_8063370: @ 8063370
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8063338
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063390
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063370
-
- thumb_func_start sub_8063390
-sub_8063390: @ 8063390
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080633A2
- movs r0, 0
- b _080633A8
-_080633A2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080633A8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063390
-
- thumb_func_start sub_80633B0
-sub_80633B0: @ 80633B0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_8063338
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80633D0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80633B0
-
- thumb_func_start sub_80633D0
-sub_80633D0: @ 80633D0
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _080633E2
- movs r0, 0
- b _080633E8
-_080633E2:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_080633E8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80633D0
-
- thumb_func_start sub_80633F0
-sub_80633F0: @ 80633F0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_8063338
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063410
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80633F0
-
- thumb_func_start sub_8063410
-sub_8063410: @ 8063410
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08063422
- movs r0, 0
- b _08063428
-_08063422:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063428:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063410
-
- thumb_func_start sub_8063430
-sub_8063430: @ 8063430
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- movs r3, 0x1
- bl sub_8063338
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8063450
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8063430
-
- thumb_func_start sub_8063450
-sub_8063450: @ 8063450
- push {r4,lr}
- adds r4, r1, 0
- bl npc_obj_ministep_stop_on_arrival
- lsls r0, 24
- cmp r0, 0
- bne _08063462
- movs r0, 0
- b _08063468
-_08063462:
- movs r0, 0x2
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_08063468:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8063450
-
- thumb_func_start sub_8063470
-sub_8063470: @ 8063470
- movs r0, 0x1
- bx lr
- thumb_func_end sub_8063470
-
- thumb_func_start sub_8063474
-sub_8063474: @ 8063474
- adds r1, 0x2C
- ldrb r0, [r1]
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r1]
- movs r0, 0x1
- bx lr
- thumb_func_end sub_8063474
-
- thumb_func_start npc_obj_transfer_image_anim_pause_flag
-npc_obj_transfer_image_anim_pause_flag: @ 8063484
- push {lr}
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r0, 0
- bge _0806349A
- adds r0, r1, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_0806349A:
- pop {r0}
- bx r0
- thumb_func_end npc_obj_transfer_image_anim_pause_flag
-
- thumb_func_start sub_80634A0
-sub_80634A0: @ 80634A0
- push {r4,lr}
- adds r4, r0, 0
- ldrb r3, [r4, 0x1]
- lsls r0, r3, 28
- cmp r0, 0
- bge _080634C8
- adds r2, r1, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- movs r1, 0x9
- negs r1, r1
- ands r0, r1
- strb r0, [r4, 0x1]
-_080634C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80634A0
-
- thumb_func_start sub_80634D0
-sub_80634D0: @ 80634D0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl sub_80634E8
- adds r0, r4, 0
- adds r1, r5, 0
- bl npc_update_obj_anim_flag
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80634D0
-
- thumb_func_start sub_80634E8
-sub_80634E8: @ 80634E8
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrb r1, [r5, 0x1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x1]
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r6, r0, 0
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0806354C
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r2, _08063544 @ =gSpriteCoordOffsetX
- adds r0, r1
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r2, _08063548 @ =gSpriteCoordOffsetY
- adds r0, r1
- ldrh r2, [r2]
- adds r0, r2
- b _08063574
- .align 2, 0
-_08063544: .4byte gSpriteCoordOffsetX
-_08063548: .4byte gSpriteCoordOffsetY
-_0806354C:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
-_08063574:
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r6, 0x8]
- adds r0, r3
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r0, [r6, 0xA]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0xFF
- bgt _0806359C
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080635A4
-_0806359C:
- ldrb r0, [r5, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x1]
-_080635A4:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xAF
- bgt _080635B8
- lsls r0, r4, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080635C0
-_080635B8:
- ldrb r0, [r5, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r5, 0x1]
-_080635C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80634E8
-
- thumb_func_start npc_update_obj_anim_flag
-npc_update_obj_anim_flag: @ 80635C8
- push {lr}
- adds r2, r1, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x5
- negs r3, r3
- ands r3, r1
- strb r3, [r2]
- ldrb r1, [r0, 0x1]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _080635EA
- movs r1, 0x4
- adds r0, r3, 0
- orrs r0, r1
- strb r0, [r2]
-_080635EA:
- pop {r0}
- bx r0
- thumb_func_end npc_update_obj_anim_flag
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_screen_effect.s b/asm/field_screen_effect.s
new file mode 100644
index 000000000..4fbfae1a2
--- /dev/null
+++ b/asm/field_screen_effect.s
@@ -0,0 +1,789 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_808136C
+sub_808136C: @ 808136C
+ push {lr}
+ cmp r1, 0xA0
+ bhi _08081394
+ cmp r2, 0
+ bge _08081378
+ movs r2, 0
+_08081378:
+ cmp r2, 0xFF
+ ble _0808137E
+ movs r2, 0xFF
+_0808137E:
+ cmp r3, 0
+ bge _08081384
+ movs r3, 0
+_08081384:
+ cmp r3, 0xFF
+ ble _0808138A
+ movs r3, 0xFF
+_0808138A:
+ lsls r1, 1
+ adds r1, r0
+ lsls r0, r2, 8
+ orrs r0, r3
+ strh r0, [r1]
+_08081394:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808136C
+
+ thumb_func_start sub_8081398
+sub_8081398: @ 8081398
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ str r0, [sp]
+ mov r10, r1
+ mov r9, r2
+ adds r6, r3, 0
+ mov r8, r6
+ movs r7, 0
+ cmp r6, 0
+ blt _08081414
+_080813B4:
+ mov r0, r9
+ subs r1, r0, r7
+ mov r0, r10
+ subs r4, r0, r6
+ adds r5, r0, r6
+ ldr r0, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_808136C
+ mov r0, r9
+ adds r1, r0, r7
+ ldr r0, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_808136C
+ mov r0, r9
+ subs r1, r0, r6
+ mov r0, r10
+ subs r4, r0, r7
+ adds r5, r0, r7
+ ldr r0, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_808136C
+ mov r0, r9
+ adds r1, r0, r6
+ ldr r0, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_808136C
+ mov r1, r8
+ adds r1, 0x1
+ lsls r0, r7, 1
+ subs r1, r0
+ mov r8, r1
+ adds r7, 0x1
+ cmp r1, 0
+ bge _08081410
+ subs r1, r6, 0x1
+ lsls r0, r1, 1
+ add r8, r0
+ adds r6, r1, 0
+_08081410:
+ cmp r6, r7
+ bge _080813B4
+_08081414:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081398
+
+ thumb_func_start sub_8081424
+sub_8081424: @ 8081424
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08081448 @ =gTasks + 0x8
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08081480
+ cmp r0, 0x1
+ bgt _0808144C
+ cmp r0, 0
+ beq _08081452
+ b _080814E2
+ .align 2, 0
+_08081448: .4byte gTasks + 0x8
+_0808144C:
+ cmp r0, 0x2
+ beq _080814D8
+ b _080814E2
+_08081452:
+ ldr r0, _08081478 @ =gUnknown_03004DC0
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _0808147C @ =gUnknown_03004DE0
+ adds r0, r1
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r5, 0x6
+ ldrsh r3, [r4, r5]
+ bl sub_8081398
+ movs r0, 0x1
+ strh r0, [r4]
+ b _080814E2
+ .align 2, 0
+_08081478: .4byte gUnknown_03004DC0
+_0808147C: .4byte gUnknown_03004DE0
+_08081480:
+ ldr r0, _080814C8 @ =gUnknown_03004DC0
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _080814CC @ =gUnknown_03004DE0
+ adds r0, r1
+ movs r6, 0x2
+ ldrsh r1, [r4, r6]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r6, 0x6
+ ldrsh r3, [r4, r6]
+ bl sub_8081398
+ movs r0, 0
+ strh r0, [r4]
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ ble _080814E2
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080814D0
+ bl remove_some_task
+ movs r0, 0x2
+ strh r0, [r4]
+ b _080814E2
+ .align 2, 0
+_080814C8: .4byte gUnknown_03004DC0
+_080814CC: .4byte gUnknown_03004DE0
+_080814D0:
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080814E2
+_080814D8:
+ bl dp12_8087EA4
+ adds r0, r5, 0
+ bl DestroyTask
+_080814E2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8081424
+
+ thumb_func_start sub_80814E8
+sub_80814E8: @ 80814E8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808150C @ =sub_8081424
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _08081504
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_08081504:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808150C: .4byte sub_8081424
+ thumb_func_end sub_80814E8
+
+ thumb_func_start sub_8081510
+sub_8081510: @ 8081510
+ push {r4,lr}
+ ldr r4, _08081530 @ =sub_80814E8
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _08081528
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+_08081528:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081530: .4byte sub_80814E8
+ thumb_func_end sub_8081510
+
+ thumb_func_start sub_8081534
+sub_8081534: @ 8081534
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ mov r9, r1
+ adds r5, r2, 0
+ adds r4, r3, 0
+ ldr r6, [sp, 0x1C]
+ ldr r0, [sp, 0x20]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08081578 @ =sub_8081424
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _0808157C @ =gTasks + 0x8
+ adds r1, r0, r1
+ strh r5, [r1, 0x6]
+ strh r4, [r1, 0x8]
+ mov r0, r8
+ strh r0, [r1, 0x2]
+ mov r0, r9
+ strh r0, [r1, 0x4]
+ strh r6, [r1, 0xC]
+ cmp r5, r4
+ bge _08081580
+ strh r7, [r1, 0xA]
+ b _08081584
+ .align 2, 0
+_08081578: .4byte sub_8081424
+_0808157C: .4byte gTasks + 0x8
+_08081580:
+ negs r0, r7
+ strh r0, [r1, 0xA]
+_08081584:
+ adds r0, r2, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8081534
+
+ thumb_func_start sub_8081594
+sub_8081594: @ 8081594
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ bl sav1_get_flash_used_on_map
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ cmp r4, 0
+ bne _080815AE
+ movs r5, 0x1
+_080815AE:
+ ldr r1, _080815DC @ =gUnknown_0839ACDC
+ lsls r0, 1
+ adds r0, r1
+ ldrh r2, [r0]
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r3, [r0]
+ str r5, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0x78
+ movs r1, 0x50
+ bl sub_8081534
+ bl sub_8081510
+ bl ScriptContext2_Enable
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080815DC: .4byte gUnknown_0839ACDC
+ thumb_func_end sub_8081594
+
+ thumb_func_start sub_80815E0
+sub_80815E0: @ 80815E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0808160E
+ ldr r4, _08081614 @ =gUnknown_03004DE0
+ ldr r1, _08081618 @ =gUnknown_0839ACDC
+ lsls r0, 1
+ adds r0, r1
+ ldrh r3, [r0]
+ adds r0, r4, 0
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_8081398
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r1, r4, r0
+ movs r2, 0xF0
+ lsls r2, 1
+ adds r0, r4, 0
+ bl CpuFastSet
+_0808160E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081614: .4byte gUnknown_03004DE0
+_08081618: .4byte gUnknown_0839ACDC
+ thumb_func_end sub_80815E0
+
+ thumb_func_start sub_808161C
+sub_808161C: @ 808161C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808162A
+ movs r1, 0x1F
+ b _08081630
+_0808162A:
+ movs r0, 0xF8
+ lsls r0, 7
+ adds r1, r0, 0
+_08081630:
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0
+ movs r4, 0xF0
+ lsls r4, 16
+_0808163A:
+ lsrs r1, r4, 16
+ mov r0, sp
+ movs r2, 0x2
+ bl LoadPalette
+ movs r0, 0x80
+ lsls r0, 9
+ adds r4, r0
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _0808163A
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808161C
+
+ thumb_func_start sub_8081658
+sub_8081658: @ 8081658
+ push {lr}
+ lsls r0, 16
+ ldr r2, _08081678 @ =REG_BLDALPHA
+ ldrh r1, [r2]
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldrh r1, [r2]
+ lsrs r2, r1, 8
+ cmp r0, 0
+ beq _0808167C
+ cmp r3, 0
+ beq _08081686
+ subs r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ b _08081686
+ .align 2, 0
+_08081678: .4byte REG_BLDALPHA
+_0808167C:
+ cmp r2, 0xF
+ bhi _08081686
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_08081686:
+ ldr r1, _0808169C @ =REG_BLDALPHA
+ lsls r0, r2, 8
+ orrs r0, r3
+ strh r0, [r1]
+ cmp r3, 0
+ bne _080816A0
+ cmp r2, 0x10
+ bne _080816A0
+ movs r0, 0x1
+ b _080816A2
+ .align 2, 0
+_0808169C: .4byte REG_BLDALPHA
+_080816A0:
+ movs r0, 0
+_080816A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8081658
+
+ thumb_func_start sub_80816A8
+sub_80816A8: @ 80816A8
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080816D0 @ =gTasks + 0x8
+ adds r7, r0, r1
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x7
+ bls _080816C4
+ b _08081892
+_080816C4:
+ lsls r0, 2
+ ldr r1, _080816D4 @ =_080816D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080816D0: .4byte gTasks + 0x8
+_080816D4: .4byte _080816D8
+ .align 2, 0
+_080816D8:
+ .4byte _080816F8
+ .4byte _08081790
+ .4byte _080817BC
+ .4byte _080817D8
+ .4byte _080817EE
+ .4byte _08081852
+ .4byte _08081818
+ .4byte _08081826
+_080816F8:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ strh r0, [r7, 0xC]
+ ldr r3, _0808176C @ =REG_BLDCNT
+ ldrh r0, [r3]
+ strh r0, [r7, 0xE]
+ ldr r6, _08081770 @ =REG_BLDALPHA
+ ldrh r0, [r6]
+ strh r0, [r7, 0x10]
+ ldr r5, _08081774 @ =REG_WININ
+ ldrh r0, [r5]
+ strh r0, [r7, 0x12]
+ ldr r4, _08081778 @ =REG_WINOUT
+ ldrh r0, [r4]
+ strh r0, [r7, 0x14]
+ ldrh r1, [r2]
+ ldr r0, _0808177C @ =0x0000bfff
+ ands r0, r1
+ strh r0, [r2]
+ ldr r1, _08081780 @ =gUnknown_081E29E8
+ ldrh r0, [r3]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r3]
+ ldr r2, _08081784 @ =0x0000070c
+ adds r0, r2, 0
+ strh r0, [r6]
+ movs r0, 0x3F
+ strh r0, [r5]
+ movs r0, 0x1E
+ strh r0, [r4]
+ ldr r4, _08081788 @ =gUnknown_03004DE0
+ movs r0, 0x4
+ ldrsh r1, [r7, r0]
+ movs r0, 0x6
+ ldrsh r2, [r7, r0]
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl sub_8081398
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r4, r2
+ movs r2, 0xF0
+ lsls r2, 1
+ adds r0, r4, 0
+ bl CpuFastSet
+ ldr r2, _0808178C @ =gUnknown_0839ACEC
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ ldr r2, [r2, 0x8]
+ bl sub_80895F8
+ movs r0, 0x1
+ strh r0, [r7]
+ b _08081892
+ .align 2, 0
+_0808176C: .4byte REG_BLDCNT
+_08081770: .4byte REG_BLDALPHA
+_08081774: .4byte REG_WININ
+_08081778: .4byte REG_WINOUT
+_0808177C: .4byte 0x0000bfff
+_08081780: .4byte gUnknown_081E29E8
+_08081784: .4byte 0x0000070c
+_08081788: .4byte gUnknown_03004DE0
+_0808178C: .4byte gUnknown_0839ACEC
+_08081790:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuFillWindowRectWithBlankTile
+ ldrb r0, [r7, 0x2]
+ bl sub_808161C
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ movs r2, 0x6
+ ldrsh r1, [r7, r2]
+ movs r2, 0x1
+ str r2, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r3, 0xA0
+ bl sub_8081534
+ strh r4, [r7]
+ b _08081892
+_080817BC:
+ ldr r0, _080817D4 @ =sub_8081424
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _08081892
+ bl EnableBothScriptContexts
+ movs r0, 0x3
+ strh r0, [r7]
+ b _08081892
+ .align 2, 0
+_080817D4: .4byte sub_8081424
+_080817D8:
+ bl InstallCameraPanAheadCallback
+ movs r0, 0
+ bl SetCameraPanningCallback
+ movs r0, 0
+ strh r0, [r7, 0xA]
+ movs r0, 0x4
+ strh r0, [r7, 0x8]
+ strh r0, [r7]
+ b _08081892
+_080817EE:
+ ldrh r0, [r7, 0x8]
+ subs r0, 0x1
+ strh r0, [r7, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08081892
+ movs r0, 0x4
+ strh r0, [r7, 0x8]
+ ldrh r0, [r7, 0xA]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r7, 0xA]
+ movs r1, 0x4
+ negs r1, r1
+ cmp r0, 0
+ beq _08081810
+ movs r1, 0x4
+_08081810:
+ movs r0, 0
+ bl SetCameraPanning
+ b _08081892
+_08081818:
+ bl InstallCameraPanAheadCallback
+ movs r0, 0x8
+ strh r0, [r7, 0x8]
+ movs r0, 0x7
+ strh r0, [r7]
+ b _08081892
+_08081826:
+ ldrh r0, [r7, 0x8]
+ subs r0, 0x1
+ strh r0, [r7, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08081892
+ movs r0, 0x8
+ strh r0, [r7, 0x8]
+ ldrh r0, [r7, 0xA]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r7, 0xA]
+ ldrh r0, [r7, 0xA]
+ bl sub_8081658
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08081892
+ movs r0, 0x5
+ strh r0, [r7]
+ b _08081892
+_08081852:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r0, _0808189C @ =gWindowConfig_81E6CE4
+ bl LoadFontDefaultPalette
+ ldr r1, _080818A0 @ =REG_WIN0H
+ movs r0, 0xFF
+ strh r0, [r1]
+ subs r1, 0x40
+ ldrh r0, [r7, 0xC]
+ strh r0, [r1]
+ adds r1, 0x50
+ ldrh r0, [r7, 0xE]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r7, 0x10]
+ strh r0, [r1]
+ subs r1, 0xA
+ ldrh r0, [r7, 0x12]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r7, 0x14]
+ strh r0, [r1]
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_08081892:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808189C: .4byte gWindowConfig_81E6CE4
+_080818A0: .4byte REG_WIN0H
+ thumb_func_end sub_80816A8
+
+ thumb_func_start sub_80818A4
+sub_80818A4: @ 80818A4
+ push {lr}
+ ldr r0, _080818CC @ =sub_80816A8
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080818D0 @ =gTasks + 0x8
+ adds r1, r0
+ ldr r0, _080818D4 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080818D8
+ strh r0, [r1, 0x2]
+ movs r0, 0x68
+ b _080818F0
+ .align 2, 0
+_080818CC: .4byte sub_80816A8
+_080818D0: .4byte gTasks + 0x8
+_080818D4: .4byte gScriptResult
+_080818D8:
+ cmp r0, 0x1
+ bne _080818E2
+ strh r0, [r1, 0x2]
+ movs r0, 0x68
+ b _080818F0
+_080818E2:
+ cmp r0, 0x2
+ bne _080818EA
+ movs r0, 0
+ b _080818EC
+_080818EA:
+ movs r0, 0x1
+_080818EC:
+ strh r0, [r1, 0x2]
+ movs r0, 0x78
+_080818F0:
+ strh r0, [r1, 0x4]
+ movs r0, 0x50
+ strh r0, [r1, 0x6]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80818A4
+
+ thumb_func_start sub_80818FC
+sub_80818FC: @ 80818FC
+ push {lr}
+ ldr r0, _0808191C @ =sub_80816A8
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08081920 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x6
+ strh r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808191C: .4byte sub_80816A8
+_08081920: .4byte gTasks
+ thumb_func_end sub_80818FC
+
+ thumb_func_start sub_8081924
+sub_8081924: @ 8081924
+ push {lr}
+ bl sub_8054044
+ ldr r0, _08081938 @ =task50_0807F0C8
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08081938: .4byte task50_0807F0C8
+ thumb_func_end sub_8081924
+
+ thumb_func_start task50_0807F0C8
+task50_0807F0C8: @ 808193C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8054034
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08081958
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_08081958:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end task50_0807F0C8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_806936C.s b/asm/field_tasks.s
index 47a91f0a4..5f3e3a03f 100644
--- a/asm/rom_806936C.s
+++ b/asm/field_tasks.s
@@ -6,157 +6,8 @@
.text
- thumb_func_start sub_806936C
-sub_806936C: @ 806936C
- push {lr}
- movs r0, 0x1
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_806936C
-
- thumb_func_start sub_8069378
-sub_8069378: @ 8069378
- push {lr}
- movs r0, 0x2
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_8069378
-
- thumb_func_start sub_8069384
-sub_8069384: @ 8069384
- push {lr}
- movs r0, 0x3
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_8069384
-
- thumb_func_start sub_8069390
-sub_8069390: @ 8069390
- push {lr}
- movs r0, 0x4
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_8069390
-
- thumb_func_start sub_806939C
-sub_806939C: @ 806939C
- push {lr}
- movs r0, 0x5
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_806939C
-
- thumb_func_start sub_80693A8
-sub_80693A8: @ 80693A8
- push {lr}
- movs r0, 0x6
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693A8
-
- thumb_func_start sub_80693B4
-sub_80693B4: @ 80693B4
- push {lr}
- movs r0, 0x9
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693B4
-
- thumb_func_start sub_80693C0
-sub_80693C0: @ 80693C0
- push {lr}
- movs r0, 0x7
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693C0
-
- thumb_func_start sub_80693CC
-sub_80693CC: @ 80693CC
- push {lr}
- movs r0, 0x8
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693CC
-
- thumb_func_start sub_80693D8
-sub_80693D8: @ 80693D8
- push {lr}
- movs r0, 0xB
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693D8
-
- thumb_func_start sub_80693E4
-sub_80693E4: @ 80693E4
- push {lr}
- movs r0, 0xC
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693E4
-
- thumb_func_start sub_80693F0
-sub_80693F0: @ 80693F0
- push {lr}
- movs r0, 0x14
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693F0
-
- thumb_func_start sub_80693FC
-sub_80693FC: @ 80693FC
- push {lr}
- movs r0, 0x15
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693FC
-
- thumb_func_start sub_8069408
-sub_8069408: @ 8069408
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r2, 0
- ldr r3, _08069428 @ =gUnknown_083762FC
-_08069412:
- lsls r1, r2, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r4
- bne _0806942C
- adds r0, r3, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- bl _call_via_r0
- b _08069436
- .align 2, 0
-_08069428: .4byte gUnknown_083762FC
-_0806942C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xC
- bls _08069412
-_08069436:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8069408
-
- thumb_func_start task_per_step_callback_manager
-task_per_step_callback_manager: @ 806943C
+ thumb_func_start Task_RunPerStepCallback
+Task_RunPerStepCallback: @ 806943C
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -177,10 +28,10 @@ task_per_step_callback_manager: @ 806943C
.align 2, 0
_08069460: .4byte gTasks
_08069464: .4byte gUnknown_08376364
- thumb_func_end task_per_step_callback_manager
+ thumb_func_end Task_RunPerStepCallback
- thumb_func_start sub_8069468
-sub_8069468: @ 8069468
+ thumb_func_start RunTimeBasedEvents
+RunTimeBasedEvents: @ 8069468
push {r4,lr}
adds r4, r0, 0
movs r1, 0
@@ -222,10 +73,10 @@ _080694AC:
bx r0
.align 2, 0
_080694B4: .4byte gMain
- thumb_func_end sub_8069468
+ thumb_func_end RunTimeBasedEvents
- thumb_func_start sub_80694B8
-sub_80694B8: @ 80694B8
+ thumb_func_start Task_RunTimeBasedEvents
+Task_RunTimeBasedEvents: @ 80694B8
push {r4,lr}
lsls r0, 24
lsrs r0, 24
@@ -239,7 +90,7 @@ sub_80694B8: @ 80694B8
cmp r0, 0
bne _080694E0
adds r0, r4, 0
- bl sub_8069468
+ bl RunTimeBasedEvents
adds r0, r4, 0x2
adds r1, r4, 0x4
bl sub_80540D0
@@ -249,12 +100,12 @@ _080694E0:
bx r0
.align 2, 0
_080694E8: .4byte gTasks + 0x8
- thumb_func_end sub_80694B8
+ thumb_func_end Task_RunTimeBasedEvents
- thumb_func_start overworld_ensure_per_step_coros_running
-overworld_ensure_per_step_coros_running: @ 80694EC
+ thumb_func_start SetUpFieldTasks
+SetUpFieldTasks: @ 80694EC
push {r4,r5,lr}
- ldr r5, _08069548 @ =task_per_step_callback_manager
+ ldr r5, _08069548 @ =Task_RunPerStepCallback
adds r0, r5, 0
bl FuncIsActiveTask
lsls r0, 24
@@ -273,7 +124,7 @@ overworld_ensure_per_step_coros_running: @ 80694EC
adds r1, r2
strh r4, [r1, 0x8]
_08069516:
- ldr r4, _08069550 @ =sub_806A1E8
+ ldr r4, _08069550 @ =Task_MuddySlope
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
@@ -283,7 +134,7 @@ _08069516:
movs r1, 0x50
bl CreateTask
_0806952C:
- ldr r4, _08069554 @ =sub_80694B8
+ ldr r4, _08069554 @ =Task_RunTimeBasedEvents
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
@@ -297,18 +148,18 @@ _08069542:
pop {r0}
bx r0
.align 2, 0
-_08069548: .4byte task_per_step_callback_manager
+_08069548: .4byte Task_RunPerStepCallback
_0806954C: .4byte gTasks
-_08069550: .4byte sub_806A1E8
-_08069554: .4byte sub_80694B8
- thumb_func_end overworld_ensure_per_step_coros_running
+_08069550: .4byte Task_MuddySlope
+_08069554: .4byte Task_RunTimeBasedEvents
+ thumb_func_end SetUpFieldTasks
- thumb_func_start activate_per_step_callback
-activate_per_step_callback: @ 8069558
+ thumb_func_start ActivatePerStepCallback
+ActivatePerStepCallback: @ 8069558
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _08069590 @ =task_per_step_callback_manager
+ ldr r0, _08069590 @ =Task_RunPerStepCallback
bl FindTaskIdByFunc
lsls r0, 24
lsrs r1, r0, 24
@@ -333,7 +184,7 @@ _0806957C:
strh r0, [r1]
b _0806959A
.align 2, 0
-_08069590: .4byte task_per_step_callback_manager
+_08069590: .4byte Task_RunPerStepCallback
_08069594: .4byte gTasks + 0x8
_08069598:
strh r4, [r1]
@@ -341,16 +192,16 @@ _0806959A:
pop {r4}
pop {r0}
bx r0
- thumb_func_end activate_per_step_callback
+ thumb_func_end ActivatePerStepCallback
- thumb_func_start wild_encounter_reset_coro_args
-wild_encounter_reset_coro_args: @ 80695A0
+ thumb_func_start ResetFieldTasksArgs
+ResetFieldTasksArgs: @ 80695A0
push {lr}
- ldr r0, _080695D0 @ =task_per_step_callback_manager
+ ldr r0, _080695D0 @ =Task_RunPerStepCallback
bl FindTaskIdByFunc
lsls r0, 24
lsrs r1, r0, 24
- ldr r0, _080695D4 @ =sub_80694B8
+ ldr r0, _080695D4 @ =Task_RunTimeBasedEvents
bl FindTaskIdByFunc
lsls r0, 24
lsrs r1, r0, 24
@@ -368,15 +219,15 @@ _080695CA:
pop {r0}
bx r0
.align 2, 0
-_080695D0: .4byte task_per_step_callback_manager
-_080695D4: .4byte sub_80694B8
+_080695D0: .4byte Task_RunPerStepCallback
+_080695D4: .4byte Task_RunTimeBasedEvents
_080695D8: .4byte gTasks + 0x8
- thumb_func_end wild_encounter_reset_coro_args
+ thumb_func_end ResetFieldTasksArgs
- thumb_func_start nullsub_51
-nullsub_51: @ 80695DC
+ thumb_func_start DummyPerStepCallback
+DummyPerStepCallback: @ 80695DC
bx lr
- thumb_func_end nullsub_51
+ thumb_func_end DummyPerStepCallback
thumb_func_start sub_80695E0
sub_80695E0: @ 80695E0
@@ -721,8 +572,8 @@ _08069854:
bx r1
thumb_func_end sub_80697C8
- thumb_func_start sub_8069864
-sub_8069864: @ 8069864
+ thumb_func_start PerStepCallback_8069864
+PerStepCallback_8069864: @ 8069864
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
@@ -905,7 +756,7 @@ _080699CE:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8069864
+ thumb_func_end PerStepCallback_8069864
thumb_func_start sub_80699D8
sub_80699D8: @ 80699D8
@@ -1011,8 +862,8 @@ _08069A96:
_08069A9C: .4byte 0x00000256
thumb_func_end sub_8069A3C
- thumb_func_start sub_8069AA0
-sub_8069AA0: @ 8069AA0
+ thumb_func_start PerStepCallback_8069AA0
+PerStepCallback_8069AA0: @ 8069AA0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -1268,7 +1119,7 @@ _08069CA6:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8069AA0
+ thumb_func_end PerStepCallback_8069AA0
thumb_func_start sub_8069CB8
sub_8069CB8: @ 8069CB8
@@ -1428,8 +1279,8 @@ _08069DCC: .4byte gMapHeader
_08069DD0: .4byte 0x0000020e
thumb_func_end sub_8069D78
- thumb_func_start sub_8069DD4
-sub_8069DD4: @ 8069DD4
+ thumb_func_start PerStepCallback_8069DD4
+PerStepCallback_8069DD4: @ 8069DD4
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
@@ -1510,7 +1361,7 @@ _08069E4A:
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
- bl sub_8057540
+ bl MetatileBehavior_IsThinIce
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1526,7 +1377,7 @@ _08069E4A:
_08069E8C: .4byte 0x00004022
_08069E90:
adds r0, r4, 0
- bl sub_8057554
+ bl MetatileBehavior_IsCrackedIce
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1628,10 +1479,10 @@ _08069F56:
bx r0
.align 2, 0
_08069F60: .4byte 0x00000206
- thumb_func_end sub_8069DD4
+ thumb_func_end PerStepCallback_8069DD4
- thumb_func_start sub_8069F64
-sub_8069F64: @ 8069F64
+ thumb_func_start PerStepCallback_8069F64
+PerStepCallback_8069F64: @ 8069F64
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
@@ -1672,7 +1523,7 @@ _08069F9E:
bl MapGridGetMetatileBehaviorAt
lsls r0, 24
lsrs r0, 24
- bl MetatileBehavior_IsAsh
+ bl MetatileBehavior_IsAshGrass
lsls r0, 24
cmp r0, 0
beq _0806A02A
@@ -1733,7 +1584,7 @@ _0806A02A:
_0806A034: .4byte 0x00000206
_0806A038: .4byte 0x00004048
_0806A03C: .4byte 0x0000270e
- thumb_func_end sub_8069F64
+ thumb_func_end PerStepCallback_8069F64
thumb_func_start sub_806A040
sub_806A040: @ 806A040
@@ -1765,8 +1616,8 @@ _0806A074: .4byte 0x0000022f
_0806A078: .4byte 0x00000237
thumb_func_end sub_806A040
- thumb_func_start sub_806A07C
-sub_806A07C: @ 806A07C
+ thumb_func_start PerStepCallback_806A07C
+PerStepCallback_806A07C: @ 806A07C
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
@@ -1825,7 +1676,7 @@ _0806A0EE:
lsls r0, r6, 24
lsrs r6, r0, 24
adds r0, r6, 0
- bl sub_8057818
+ bl MetatileBehavior_IsCrackedFloorHole
lsls r0, 24
cmp r0, 0
beq _0806A106
@@ -1853,11 +1704,11 @@ _0806A122:
ldrh r0, [r4]
strh r0, [r5, 0x6]
adds r0, r6, 0
- bl sub_805782C
+ bl MetatileBehavior_IsCrackedFloor
lsls r0, 24
cmp r0, 0
beq _0806A182
- bl sub_80E6034
+ bl GetPlayerSpeed
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
@@ -1898,7 +1749,7 @@ _0806A182:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_806A07C
+ thumb_func_end PerStepCallback_806A07C
thumb_func_start sub_806A18C
sub_806A18C: @ 806A18C
@@ -1950,8 +1801,8 @@ _0806A1BC:
_0806A1E4: .4byte gUnknown_08376418
thumb_func_end sub_806A18C
- thumb_func_start sub_806A1E8
-sub_806A1E8: @ 806A1E8
+ thumb_func_start Task_MuddySlope
+Task_MuddySlope: @ 806A1E8
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -2116,173 +1967,6 @@ _0806A312:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_806A1E8
-
- thumb_func_start sub_806A328
-sub_806A328: @ 806A328
- push {lr}
- ldr r0, _0806A350 @ =0x00000835
- bl FlagSet
- bl RtcCalcLocalTime
- ldr r2, _0806A354 @ =gSaveBlock2
- adds r2, 0xA0
- ldr r3, _0806A358 @ =gLocalTime
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0806A35C @ =0x00004040
- ldrh r1, [r3]
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_0806A350: .4byte 0x00000835
-_0806A354: .4byte gSaveBlock2
-_0806A358: .4byte gLocalTime
-_0806A35C: .4byte 0x00004040
- thumb_func_end sub_806A328
-
- thumb_func_start DoTimeBasedEvents
-DoTimeBasedEvents: @ 806A360
- push {r4,lr}
- ldr r0, _0806A388 @ =0x00000835
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0806A380
- bl RtcCalcLocalTime
- ldr r4, _0806A38C @ =gLocalTime
- adds r0, r4, 0
- bl sub_806A390
- adds r0, r4, 0
- bl sub_806A3F4
-_0806A380:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A388: .4byte 0x00000835
-_0806A38C: .4byte gLocalTime
- thumb_func_end DoTimeBasedEvents
-
- thumb_func_start sub_806A390
-sub_806A390: @ 806A390
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _0806A3F0 @ =0x00004040
- bl GetVarPointer
- adds r6, r0, 0
- ldrh r0, [r6]
- movs r2, 0
- ldrsh r1, [r5, r2]
- cmp r0, r1
- beq _0806A3EA
- cmp r0, r1
- bgt _0806A3EA
- ldrh r4, [r5]
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- bl sub_80690B4
- adds r0, r4, 0
- bl sub_80FA220
- adds r0, r4, 0
- bl sub_80BE8C4
- adds r0, r4, 0
- bl sub_8080834
- adds r0, r4, 0
- bl UpdatePartyPokerusTime
- adds r0, r4, 0
- bl sub_810D2F4
- adds r0, r4, 0
- bl UpdateBirchState
- adds r0, r4, 0
- bl sub_810F618
- adds r0, r4, 0
- bl sub_8145AA4
- ldrh r0, [r5]
- strh r0, [r6]
-_0806A3EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A3F0: .4byte 0x00004040
- thumb_func_end sub_806A390
-
- thumb_func_start sub_806A3F4
-sub_806A3F4: @ 806A3F4
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- mov r4, sp
- ldr r6, _0806A448 @ =gSaveBlock2 + 0xA0
- mov r0, sp
- adds r1, r6, 0
- adds r2, r5, 0
- bl CalcTimeDifference
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 5
- movs r2, 0x2
- ldrsb r2, [r4, r2]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 2
- adds r1, r0
- movs r0, 0x3
- ldrsb r0, [r4, r0]
- adds r0, r1, r0
- cmp r0, 0
- beq _0806A43E
- cmp r0, 0
- blt _0806A43E
- bl BerryTreeTimeUpdate
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r6]
- str r1, [r6, 0x4]
-_0806A43E:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A448: .4byte gSaveBlock2 + 0xA0
- thumb_func_end sub_806A3F4
-
- thumb_func_start sub_806A44C
-sub_806A44C: @ 806A44C
- push {lr}
- bl sub_806A328
- ldr r0, _0806A45C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0806A45C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_806A44C
-
- thumb_func_start sub_806A460
-sub_806A460: @ 806A460
- push {lr}
- ldr r0, _0806A474 @ =Cb2_StartWallClock
- bl SetMainCallback2
- ldr r1, _0806A478 @ =gMain
- ldr r0, _0806A47C @ =sub_806A44C
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0806A474: .4byte Cb2_StartWallClock
-_0806A478: .4byte gMain
-_0806A47C: .4byte sub_806A44C
- thumb_func_end sub_806A460
+ thumb_func_end Task_MuddySlope
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/weather.s b/asm/field_weather.s
index cd0a646a7..92d2ffab2 100644
--- a/asm/weather.s
+++ b/asm/field_weather.s
@@ -1880,43 +1880,43 @@ _0807DCD0:
.4byte _0807DD40
_0807DCF8:
movs r0, 0x1
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD00:
movs r0, 0x2
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD08:
movs r0, 0x3
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD10:
movs r0, 0x4
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD18:
movs r0, 0x5
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD20:
movs r0, 0x6
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD28:
movs r0, 0x9
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD30:
movs r0, 0x7
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD38:
movs r0, 0x8
- bl sub_808070C
+ bl SetWeather
b _0807DD46
_0807DD40:
movs r0, 0xB
- bl sub_808070C
+ bl SetWeather
_0807DD46:
pop {r0}
bx r0
@@ -7387,8 +7387,8 @@ _08080704: .4byte gSaveBlock1
_08080708: .4byte gMapHeader
thumb_func_end sub_80806E4
- thumb_func_start sub_808070C
-sub_808070C: @ 808070C
+ thumb_func_start SetWeather
+SetWeather: @ 808070C
push {lr}
bl SetSav1Weather
bl GetSav1Weather
@@ -7397,10 +7397,10 @@ sub_808070C: @ 808070C
bl DoWeatherEffect
pop {r0}
bx r0
- thumb_func_end sub_808070C
+ thumb_func_end SetWeather
- thumb_func_start sub_8080724
-sub_8080724: @ 8080724
+ thumb_func_start SetWeather_Unused
+SetWeather_Unused: @ 8080724
push {lr}
bl SetSav1Weather
bl GetSav1Weather
@@ -7409,10 +7409,10 @@ sub_8080724: @ 8080724
bl sub_807C988
pop {r0}
bx r0
- thumb_func_end sub_8080724
+ thumb_func_end SetWeather_Unused
- thumb_func_start sub_808073C
-sub_808073C: @ 808073C
+ thumb_func_start DoCurrentWeather
+DoCurrentWeather: @ 808073C
push {lr}
bl GetSav1Weather
lsls r0, 24
@@ -7420,7 +7420,7 @@ sub_808073C: @ 808073C
bl DoWeatherEffect
pop {r0}
bx r0
- thumb_func_end sub_808073C
+ thumb_func_end DoCurrentWeather
thumb_func_start sub_8080750
sub_8080750: @ 8080750
@@ -7537,8 +7537,8 @@ _0808082E:
bx r1
thumb_func_end TranslateWeatherNum
- thumb_func_start sub_8080834
-sub_8080834: @ 8080834
+ thumb_func_start UpdateWeatherPerDay
+UpdateWeatherPerDay: @ 8080834
lsls r0, 16
ldr r2, _08080850 @ =gSaveBlock1
adds r2, 0x2F
@@ -7554,7 +7554,7 @@ sub_8080834: @ 8080834
bx lr
.align 2, 0
_08080850: .4byte gSaveBlock1
- thumb_func_end sub_8080834
+ thumb_func_end UpdateWeatherPerDay
thumb_func_start UpdateRainCounter
UpdateRainCounter: @ 8080854
@@ -7570,7 +7570,7 @@ UpdateRainCounter: @ 8080854
bne _0808086E
_08080868:
movs r0, 0x28
- bl sav12_xor_increment
+ bl IncrementGameStat
_0808086E:
pop {r0}
bx r0
diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s
index cab7524b2..33182fc6a 100644
--- a/asm/fldeff_80C5CD4.s
+++ b/asm/fldeff_80C5CD4.s
@@ -808,13 +808,13 @@ SetUpFieldMove_SecretPower: @ 80C62C4
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl sub_80571EC
+ bl MetatileBehavior_IsSecretBaseCave
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080C6330
bl sub_80C6264
- ldr r1, _080C6320 @ =gUnknown_0300485C
+ ldr r1, _080C6320 @ =gFieldCallback
ldr r0, _080C6324 @ =sub_808AB90
str r0, [r1]
ldr r1, _080C6328 @ =gUnknown_03005CE4
@@ -823,32 +823,32 @@ SetUpFieldMove_SecretPower: @ 80C62C4
.align 2, 0
_080C6318: .4byte gScriptResult
_080C631C: .4byte gUnknown_0203923C
-_080C6320: .4byte gUnknown_0300485C
+_080C6320: .4byte gFieldCallback
_080C6324: .4byte sub_808AB90
_080C6328: .4byte gUnknown_03005CE4
_080C632C: .4byte sub_80C639C
_080C6330:
adds r0, r4, 0
- bl sub_805720C
+ bl MetatileBehavior_IsSecretBaseTree
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080C6360
bl sub_80C6264
- ldr r1, _080C6350 @ =gUnknown_0300485C
+ ldr r1, _080C6350 @ =gFieldCallback
ldr r0, _080C6354 @ =sub_808AB90
str r0, [r1]
ldr r1, _080C6358 @ =gUnknown_03005CE4
ldr r0, _080C635C @ =sub_80C64A8
b _080C6380
.align 2, 0
-_080C6350: .4byte gUnknown_0300485C
+_080C6350: .4byte gFieldCallback
_080C6354: .4byte sub_808AB90
_080C6358: .4byte gUnknown_03005CE4
_080C635C: .4byte sub_80C64A8
_080C6360:
adds r0, r4, 0
- bl is_tile_x98
+ bl MetatileBehavior_IsSecretBaseShrub
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -858,7 +858,7 @@ _080C636E:
b _080C6384
_080C6372:
bl sub_80C6264
- ldr r1, _080C638C @ =gUnknown_0300485C
+ ldr r1, _080C638C @ =gFieldCallback
ldr r0, _080C6390 @ =sub_808AB90
str r0, [r1]
ldr r1, _080C6394 @ =gUnknown_03005CE4
@@ -871,7 +871,7 @@ _080C6384:
pop {r1}
bx r1
.align 2, 0
-_080C638C: .4byte gUnknown_0300485C
+_080C638C: .4byte gFieldCallback
_080C6390: .4byte sub_808AB90
_080C6394: .4byte gUnknown_03005CE4
_080C6398: .4byte sub_80C660C
@@ -881,7 +881,7 @@ _080C6398: .4byte sub_80C660C
sub_80C639C: @ 80C639C
push {lr}
ldr r1, _080C63B0 @ =gUnknown_0202FF84
- ldr r0, _080C63B4 @ =gUnknown_03005CE0
+ ldr r0, _080C63B4 @ =gLastFieldPokeMenuOpened
ldrb r0, [r0]
str r0, [r1]
ldr r0, _080C63B8 @ =gUnknown_081A2CE6
@@ -890,7 +890,7 @@ sub_80C639C: @ 80C639C
bx r0
.align 2, 0
_080C63B0: .4byte gUnknown_0202FF84
-_080C63B4: .4byte gUnknown_03005CE0
+_080C63B4: .4byte gLastFieldPokeMenuOpened
_080C63B8: .4byte gUnknown_081A2CE6
thumb_func_end sub_80C639C
@@ -1026,7 +1026,7 @@ sub_80C6498: @ 80C6498
sub_80C64A8: @ 80C64A8
push {lr}
ldr r1, _080C64BC @ =gUnknown_0202FF84
- ldr r0, _080C64C0 @ =gUnknown_03005CE0
+ ldr r0, _080C64C0 @ =gLastFieldPokeMenuOpened
ldrb r0, [r0]
str r0, [r1]
ldr r0, _080C64C4 @ =gUnknown_081A2D3E
@@ -1035,7 +1035,7 @@ sub_80C64A8: @ 80C64A8
bx r0
.align 2, 0
_080C64BC: .4byte gUnknown_0202FF84
-_080C64C0: .4byte gUnknown_03005CE0
+_080C64C0: .4byte gLastFieldPokeMenuOpened
_080C64C4: .4byte gUnknown_081A2D3E
thumb_func_end sub_80C64A8
@@ -1213,7 +1213,7 @@ sub_80C65FC: @ 80C65FC
sub_80C660C: @ 80C660C
push {lr}
ldr r1, _080C6620 @ =gUnknown_0202FF84
- ldr r0, _080C6624 @ =gUnknown_03005CE0
+ ldr r0, _080C6624 @ =gLastFieldPokeMenuOpened
ldrb r0, [r0]
str r0, [r1]
ldr r0, _080C6628 @ =gUnknown_081A2D96
@@ -1222,7 +1222,7 @@ sub_80C660C: @ 80C660C
bx r0
.align 2, 0
_080C6620: .4byte gUnknown_0202FF84
-_080C6624: .4byte gUnknown_03005CE0
+_080C6624: .4byte gLastFieldPokeMenuOpened
_080C6628: .4byte gUnknown_081A2D96
thumb_func_end sub_80C660C
diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s
new file mode 100644
index 000000000..dcd485d9f
--- /dev/null
+++ b/asm/fldeff_flash.s
@@ -0,0 +1,753 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetUpFieldMove_Flash
+SetUpFieldMove_Flash: @ 810CBB4
+ push {lr}
+ ldr r0, _0810CBDC @ =gMapHeader
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0x1
+ bne _0810CBF4
+ ldr r0, _0810CBE0 @ =0x00000828
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810CBF4
+ ldr r1, _0810CBE4 @ =gFieldCallback
+ ldr r0, _0810CBE8 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0810CBEC @ =gUnknown_03005CE4
+ ldr r0, _0810CBF0 @ =sub_810CBFC
+ str r0, [r1]
+ movs r0, 0x1
+ b _0810CBF6
+ .align 2, 0
+_0810CBDC: .4byte gMapHeader
+_0810CBE0: .4byte 0x00000828
+_0810CBE4: .4byte gFieldCallback
+_0810CBE8: .4byte sub_808AB90
+_0810CBEC: .4byte gUnknown_03005CE4
+_0810CBF0: .4byte sub_810CBFC
+_0810CBF4:
+ movs r0, 0
+_0810CBF6:
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpFieldMove_Flash
+
+ thumb_func_start sub_810CBFC
+sub_810CBFC: @ 810CBFC
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CC24 @ =gUnknown_0202FF84
+ ldr r1, _0810CC28 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r1]
+ str r1, [r2]
+ ldr r2, _0810CC2C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0810CC30 @ =sub_810CC34
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CC24: .4byte gUnknown_0202FF84
+_0810CC28: .4byte gLastFieldPokeMenuOpened
+_0810CC2C: .4byte gTasks
+_0810CC30: .4byte sub_810CC34
+ thumb_func_end sub_810CBFC
+
+ thumb_func_start sub_810CC34
+sub_810CC34: @ 810CC34
+ push {lr}
+ movs r0, 0xCF
+ bl PlaySE
+ ldr r0, _0810CC4C @ =0x00000828
+ bl FlagSet
+ ldr r0, _0810CC50 @ =gUnknown_081B694A
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CC4C: .4byte 0x00000828
+_0810CC50: .4byte gUnknown_081B694A
+ thumb_func_end sub_810CC34
+
+ thumb_func_start sub_810CC54
+sub_810CC54: @ 810CC54
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810CC54
+
+ thumb_func_start sub_810CC6C
+sub_810CC6C: @ 810CC6C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810CC6C
+
+ thumb_func_start sub_810CC80
+sub_810CC80: @ 810CC80
+ push {r4,lr}
+ sub sp, 0x8
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ strh r1, [r0]
+ ldr r1, _0810CD34 @ =0x040000d4
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _0810CD38 @ =0x8100c000
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _0810CD3C @ =0x85000100
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ strh r4, [r0]
+ str r0, [r1]
+ ldr r0, _0810CD40 @ =0x05000002
+ str r0, [r1, 0x4]
+ ldr r0, _0810CD44 @ =0x810001ff
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r3, _0810CD48 @ =0x04000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _0810CD4C @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r0, _0810CD50 @ =sub_810CC6C
+ bl SetVBlankCallback
+ ldr r0, _0810CD54 @ =sub_810CC54
+ bl SetMainCallback2
+ bl sub_810CD5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810CD2A
+ ldr r0, _0810CD58 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_0810CD2A:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CD34: .4byte 0x040000d4
+_0810CD38: .4byte 0x8100c000
+_0810CD3C: .4byte 0x85000100
+_0810CD40: .4byte 0x05000002
+_0810CD44: .4byte 0x810001ff
+_0810CD48: .4byte 0x04000208
+_0810CD4C: .4byte 0x04000200
+_0810CD50: .4byte sub_810CC6C
+_0810CD54: .4byte sub_810CC54
+_0810CD58: .4byte gMain
+ thumb_func_end sub_810CC80
+
+ thumb_func_start sub_810CD5C
+sub_810CD5C: @ 810CD5C
+ push {r4-r7,lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sav1_map_get_light_level
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r4, _0810CD9C @ =gUnknown_083F7FC4
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0810CDB0
+ adds r7, r4, 0
+ adds r0, r4, 0x4
+ mov r12, r0
+_0810CD7E:
+ lsls r2, r3, 3
+ adds r1, r2, r7
+ ldrb r0, [r1]
+ cmp r0, r6
+ bne _0810CDA0
+ ldrb r0, [r1, 0x1]
+ cmp r0, r5
+ bne _0810CDA0
+ mov r1, r12
+ adds r0, r2, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ movs r0, 0x1
+ b _0810CDB2
+ .align 2, 0
+_0810CD9C: .4byte gUnknown_083F7FC4
+_0810CDA0:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CD7E
+_0810CDB0:
+ movs r0, 0
+_0810CDB2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CD5C
+
+ thumb_func_start sub_810CDB8
+sub_810CDB8: @ 810CDB8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r0, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ ldr r1, _0810CDE4 @ =gUnknown_083F7FC4
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810CDF8
+ adds r6, r1, 0
+_0810CDCE:
+ lsls r0, r3, 3
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, r5
+ bne _0810CDE8
+ ldrb r0, [r2, 0x1]
+ cmp r0, r4
+ bne _0810CDE8
+ ldrb r0, [r2, 0x2]
+ b _0810CDFA
+ .align 2, 0
+_0810CDE4: .4byte gUnknown_083F7FC4
+_0810CDE8:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CDCE
+_0810CDF8:
+ movs r0, 0
+_0810CDFA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CDB8
+
+ thumb_func_start fade_type_for_given_maplight_pair
+fade_type_for_given_maplight_pair: @ 810CE00
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r0, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ ldr r1, _0810CE2C @ =gUnknown_083F7FC4
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810CE40
+ adds r6, r1, 0
+_0810CE16:
+ lsls r0, r3, 3
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, r5
+ bne _0810CE30
+ ldrb r0, [r2, 0x1]
+ cmp r0, r4
+ bne _0810CE30
+ ldrb r0, [r2, 0x3]
+ b _0810CE42
+ .align 2, 0
+_0810CE2C: .4byte gUnknown_083F7FC4
+_0810CE30:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CE16
+_0810CE40:
+ movs r0, 0
+_0810CE42:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end fade_type_for_given_maplight_pair
+
+ thumb_func_start sub_810CE48
+sub_810CE48: @ 810CE48
+ push {lr}
+ ldr r0, _0810CE58 @ =sub_810CE5C
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CE58: .4byte sub_810CE5C
+ thumb_func_end sub_810CE48
+
+ thumb_func_start sub_810CE5C
+sub_810CE5C: @ 810CE5C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CE70 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0810CE74 @ =sub_810CE78
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810CE70: .4byte gTasks
+_0810CE74: .4byte sub_810CE78
+ thumb_func_end sub_810CE5C
+
+ thumb_func_start sub_810CE78
+sub_810CE78: @ 810CE78
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r6, 0x80
+ lsls r6, 19
+ movs r5, 0
+ strh r5, [r6]
+ ldr r0, _0810CEE8 @ =gCaveTransitionTiles
+ ldr r1, _0810CEEC @ =0x0600c000
+ bl LZ77UnCompVram
+ ldr r0, _0810CEF0 @ =gCaveTransitionTilemap
+ ldr r1, _0810CEF4 @ =0x0600f800
+ bl LZ77UnCompVram
+ ldr r0, _0810CEF8 @ =gCaveTransitionPalette_White
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810CEFC @ =gUnknown_083F809C
+ movs r1, 0xE0
+ movs r2, 0x10
+ bl LoadPalette
+ ldr r1, _0810CF00 @ =REG_BLDCNT
+ ldr r2, _0810CF04 @ =0x00003e41
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0810CF08 @ =REG_BLDALPHA
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r1, 0x48
+ ldr r2, _0810CF0C @ =0x00001f0c
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r1, 0x8A
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r1, _0810CF10 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810CF14 @ =sub_810CF18
+ str r1, [r0]
+ movs r2, 0
+ movs r1, 0x10
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CEE8: .4byte gCaveTransitionTiles
+_0810CEEC: .4byte 0x0600c000
+_0810CEF0: .4byte gCaveTransitionTilemap
+_0810CEF4: .4byte 0x0600f800
+_0810CEF8: .4byte gCaveTransitionPalette_White
+_0810CEFC: .4byte gUnknown_083F809C
+_0810CF00: .4byte REG_BLDCNT
+_0810CF04: .4byte 0x00003e41
+_0810CF08: .4byte REG_BLDALPHA
+_0810CF0C: .4byte 0x00001f0c
+_0810CF10: .4byte gTasks
+_0810CF14: .4byte sub_810CF18
+ thumb_func_end sub_810CE78
+
+ thumb_func_start sub_810CF18
+sub_810CF18: @ 810CF18
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CF44 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r2, [r3, 0xA]
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r2, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0810CF48 @ =REG_BLDALPHA
+ strh r0, [r1]
+ cmp r2, 0x10
+ bhi _0810CF4C
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ b _0810CF54
+ .align 2, 0
+_0810CF44: .4byte gTasks
+_0810CF48: .4byte REG_BLDALPHA
+_0810CF4C:
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldr r0, _0810CF58 @ =sub_810CF5C
+ str r0, [r3]
+_0810CF54:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CF58: .4byte sub_810CF5C
+ thumb_func_end sub_810CF18
+
+ thumb_func_start sub_810CF5C
+sub_810CF5C: @ 810CF5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CF94 @ =REG_BLDALPHA
+ ldr r3, _0810CF98 @ =0x00001010
+ adds r1, r3, 0
+ strh r1, [r2]
+ ldr r2, _0810CF9C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0xC]
+ cmp r1, 0x7
+ bhi _0810CFA4
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 1
+ ldr r0, _0810CFA0 @ =gUnknown_083F809C
+ adds r0, r1, r0
+ movs r2, 0x10
+ subs r2, r1
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0xE0
+ bl LoadPalette
+ b _0810CFB6
+ .align 2, 0
+_0810CF94: .4byte REG_BLDALPHA
+_0810CF98: .4byte 0x00001010
+_0810CF9C: .4byte gTasks
+_0810CFA0: .4byte gUnknown_083F809C
+_0810CFA4:
+ ldr r0, _0810CFBC @ =gCaveTransitionPalette_White
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810CFC0 @ =sub_810CFC4
+ str r0, [r4]
+ movs r0, 0x8
+ strh r0, [r4, 0xC]
+_0810CFB6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CFBC: .4byte gCaveTransitionPalette_White
+_0810CFC0: .4byte sub_810CFC4
+ thumb_func_end sub_810CF5C
+
+ thumb_func_start sub_810CFC4
+sub_810CFC4: @ 810CFC4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CFE4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0810CFE8
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _0810CFF0
+ .align 2, 0
+_0810CFE4: .4byte gTasks
+_0810CFE8:
+ ldr r0, _0810CFF4 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_0810CFF0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CFF4: .4byte gMain
+ thumb_func_end sub_810CFC4
+
+ thumb_func_start sub_810CFF8
+sub_810CFF8: @ 810CFF8
+ push {lr}
+ ldr r0, _0810D008 @ =sub_810D00C
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D008: .4byte sub_810D00C
+ thumb_func_end sub_810CFF8
+
+ thumb_func_start sub_810D00C
+sub_810D00C: @ 810D00C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810D020 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0810D024 @ =sub_810D028
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810D020: .4byte gTasks
+_0810D024: .4byte sub_810D028
+ thumb_func_end sub_810D00C
+
+ thumb_func_start sub_810D028
+sub_810D028: @ 810D028
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r6, 0x80
+ lsls r6, 19
+ movs r4, 0
+ strh r4, [r6]
+ ldr r0, _0810D098 @ =gCaveTransitionTiles
+ ldr r1, _0810D09C @ =0x0600c000
+ bl LZ77UnCompVram
+ ldr r0, _0810D0A0 @ =gCaveTransitionTilemap
+ ldr r1, _0810D0A4 @ =0x0600f800
+ bl LZ77UnCompVram
+ ldr r0, _0810D0A8 @ =REG_BLDCNT
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r1, _0810D0AC @ =REG_BG0CNT
+ ldr r2, _0810D0B0 @ =0x00001f0c
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r1, 0x8A
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r0, _0810D0B4 @ =gCaveTransitionPalette_White
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810D0B8 @ =gCaveTransitionPalette_Black
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _0810D0BC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810D0C0 @ =sub_810D0C4
+ str r1, [r0]
+ movs r2, 0
+ movs r1, 0x10
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D098: .4byte gCaveTransitionTiles
+_0810D09C: .4byte 0x0600c000
+_0810D0A0: .4byte gCaveTransitionTilemap
+_0810D0A4: .4byte 0x0600f800
+_0810D0A8: .4byte REG_BLDCNT
+_0810D0AC: .4byte REG_BG0CNT
+_0810D0B0: .4byte 0x00001f0c
+_0810D0B4: .4byte gCaveTransitionPalette_White
+_0810D0B8: .4byte gCaveTransitionPalette_Black
+_0810D0BC: .4byte gTasks
+_0810D0C0: .4byte sub_810D0C4
+ thumb_func_end sub_810D028
+
+ thumb_func_start sub_810D0C4
+sub_810D0C4: @ 810D0C4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810D0F8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r1, [r3, 0xC]
+ cmp r1, 0xF
+ bhi _0810D100
+ adds r2, r1, 0x1
+ adds r0, r2, 0x1
+ strh r0, [r3, 0xC]
+ movs r0, 0xF
+ subs r0, r1
+ lsls r0, 1
+ ldr r1, _0810D0FC @ =gUnknown_083F808C
+ adds r0, r1
+ lsls r2, 17
+ lsrs r2, 16
+ movs r1, 0xE0
+ bl LoadPalette
+ b _0810D114
+ .align 2, 0
+_0810D0F8: .4byte gTasks
+_0810D0FC: .4byte gUnknown_083F808C
+_0810D100:
+ ldr r1, _0810D118 @ =REG_BLDALPHA
+ ldr r2, _0810D11C @ =0x00001010
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _0810D120 @ =0x00003e41
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0810D124 @ =sub_810D128
+ str r0, [r3]
+_0810D114:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D118: .4byte REG_BLDALPHA
+_0810D11C: .4byte 0x00001010
+_0810D120: .4byte 0x00003e41
+_0810D124: .4byte sub_810D128
+ thumb_func_end sub_810D0C4
+
+ thumb_func_start sub_810D128
+sub_810D128: @ 810D128
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810D158 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0xA]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 16
+ movs r2, 0x80
+ lsls r2, 21
+ adds r0, r1, r2
+ lsrs r0, 16
+ ldr r2, _0810D15C @ =REG_BLDALPHA
+ strh r0, [r2]
+ cmp r1, 0
+ beq _0810D160
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ b _0810D172
+ .align 2, 0
+_0810D158: .4byte gTasks
+_0810D15C: .4byte REG_BLDALPHA
+_0810D160:
+ ldr r0, _0810D178 @ =gCaveTransitionPalette_Black
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810D17C @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_0810D172:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D178: .4byte gCaveTransitionPalette_Black
+_0810D17C: .4byte gMain
+ thumb_func_end sub_810D128
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
new file mode 100644
index 000000000..3ad85d7cf
--- /dev/null
+++ b/asm/hall_of_fame.s
@@ -0,0 +1,3402 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8141E38
+sub_8141E38: @ 8141E38
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141E38
+
+ thumb_func_start sub_8141E4C
+sub_8141E4C: @ 8141E4C
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141E4C
+
+ thumb_func_start sub_8141E64
+sub_8141E64: @ 8141E64
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08141E80 @ =gMain
+ ldr r1, _08141E84 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _08141EA0
+ lsls r0, 2
+ ldr r1, _08141E88 @ =_08141E8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08141E80: .4byte gMain
+_08141E84: .4byte 0x0000043c
+_08141E88: .4byte _08141E8C
+ .align 2, 0
+_08141E8C:
+ .4byte _08141EA0
+ .4byte _08141EC0
+ .4byte _08141EC6
+ .4byte _08141F1C
+ .4byte _08141F58
+_08141EA0:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_81433E0
+ ldr r0, _08141EB8 @ =gMain
+ ldr r2, _08141EBC @ =0x0000043c
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08141F84
+ .align 2, 0
+_08141EB8: .4byte gMain
+_08141EBC: .4byte 0x0000043c
+_08141EC0:
+ bl sub_8143570
+ b _08141F38
+_08141EC6:
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _08141F04 @ =sub_8141E38
+ bl SetVBlankCallback
+ ldr r3, _08141F08 @ =0x04000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _08141F0C @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08141F10 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08141F14 @ =gMain
+ ldr r2, _08141F18 @ =0x0000043c
+ adds r1, r2
+ b _08141F3E
+ .align 2, 0
+_08141F04: .4byte sub_8141E38
+_08141F08: .4byte 0x04000208
+_08141F0C: .4byte 0x04000200
+_08141F10: .4byte REG_DISPSTAT
+_08141F14: .4byte gMain
+_08141F18: .4byte 0x0000043c
+_08141F1C:
+ ldr r1, _08141F48 @ =REG_BLDCNT
+ ldr r2, _08141F4C @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0xE2
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0
+ strh r0, [r1]
+ bl sub_81435B8
+_08141F38:
+ ldr r1, _08141F50 @ =gMain
+ ldr r0, _08141F54 @ =0x0000043c
+ adds r1, r0
+_08141F3E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08141F84
+ .align 2, 0
+_08141F48: .4byte REG_BLDCNT
+_08141F4C: .4byte 0x00003f42
+_08141F50: .4byte gMain
+_08141F54: .4byte 0x0000043c
+_08141F58:
+ bl UpdatePaletteFade
+ ldr r0, _08141F7C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08141F84
+ ldr r0, _08141F80 @ =sub_8141E4C
+ bl SetMainCallback2
+ movs r0, 0xDA
+ lsls r0, 1
+ bl PlayBGM
+ movs r0, 0
+ b _08141F86
+ .align 2, 0
+_08141F7C: .4byte gPaletteFade
+_08141F80: .4byte sub_8141E4C
+_08141F84:
+ movs r0, 0x1
+_08141F86:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8141E64
+
+ thumb_func_start sub_8141F90
+sub_8141F90: @ 8141F90
+ push {r4,lr}
+ bl sub_8141E64
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08141FB6
+ ldr r0, _08141FBC @ =sub_8141FF8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141FC0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+_08141FB6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141FBC: .4byte sub_8141FF8
+_08141FC0: .4byte gTasks
+ thumb_func_end sub_8141F90
+
+ thumb_func_start sub_8141FC4
+sub_8141FC4: @ 8141FC4
+ push {lr}
+ bl sub_8141E64
+ lsls r0, 24
+ cmp r0, 0
+ bne _08141FEA
+ ldr r0, _08141FF0 @ =sub_8141FF8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141FF4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+_08141FEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141FF0: .4byte sub_8141FF8
+_08141FF4: .4byte gTasks
+ thumb_func_end sub_8141FC4
+
+ thumb_func_start sub_8141FF8
+sub_8141FF8: @ 8141FF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _081420C8 @ =0x0201c000
+ mov r9, r0
+ ldr r1, _081420CC @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ movs r7, 0
+ ldr r4, _081420D0 @ =0xfffffe00
+ mov r10, r4
+_08142024:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _081420D4 @ =gPlayerParty
+ adds r6, r1, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r3, r0, 0
+ cmp r3, 0
+ beq _081420DC
+ adds r0, r6, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 2
+ mov r1, r9
+ adds r5, r1, r4
+ ldr r2, _081420D8 @ =0x000001ff
+ adds r1, r2, 0
+ ands r0, r1
+ ldrh r1, [r5, 0x8]
+ mov r2, r10
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r5, 0x8]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [r5]
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetMonData
+ mov r1, r9
+ adds r1, 0x4
+ adds r1, r4
+ str r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 1
+ ldrb r2, [r5, 0x9]
+ movs r1, 0x1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x9]
+ adds r0, r6, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ movs r2, 0
+ mov r6, r8
+ lsls r5, r6, 2
+ mov r3, r9
+ adds r3, 0xA
+_081420A0:
+ adds r1, r2, r4
+ adds r1, r3, r1
+ mov r6, sp
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x9
+ bls _081420A0
+ ldr r0, _081420CC @ =gTasks
+ mov r2, r8
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ adds r0, 0x1
+ strh r0, [r1, 0xC]
+ b _08142108
+ .align 2, 0
+_081420C8: .4byte 0x0201c000
+_081420CC: .4byte gTasks
+_081420D0: .4byte 0xfffffe00
+_081420D4: .4byte gPlayerParty
+_081420D8: .4byte 0x000001ff
+_081420DC:
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 2
+ mov r4, r9
+ adds r2, r4, r1
+ ldrh r0, [r2, 0x8]
+ mov r6, r10
+ ands r0, r6
+ strh r0, [r2, 0x8]
+ str r3, [r2]
+ mov r0, r9
+ adds r0, 0x4
+ adds r0, r1
+ str r3, [r0]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ movs r0, 0xFF
+ strb r0, [r2, 0xA]
+ mov r0, r8
+ lsls r5, r0, 2
+_08142108:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x5
+ bls _08142024
+ ldr r0, _08142158 @ =gUnknown_0203931C
+ movs r3, 0
+ str r3, [r0]
+ ldr r4, _0814215C @ =gTasks
+ mov r2, r8
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r2, r1, r4
+ strh r3, [r2, 0xA]
+ movs r0, 0xFF
+ strh r0, [r2, 0x10]
+ movs r7, 0
+ adds r3, r4, 0
+ adds r3, 0x8
+ movs r2, 0xFF
+_08142130:
+ adds r0, r7, 0x5
+ lsls r0, 1
+ adds r0, r1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x5
+ bls _08142130
+ mov r6, r8
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r1, r0, r4
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08142164
+ ldr r0, _08142160 @ =sub_81422E8
+ b _08142166
+ .align 2, 0
+_08142158: .4byte gUnknown_0203931C
+_0814215C: .4byte gTasks
+_08142160: .4byte sub_81422E8
+_08142164:
+ ldr r0, _08142178 @ =sub_814217C
+_08142166:
+ str r0, [r1]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142178: .4byte sub_814217C
+ thumb_func_end sub_8141FF8
+
+ thumb_func_start sub_814217C
+sub_814217C: @ 814217C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _081421C4 @ =0x0201c000
+ mov r9, r0
+ movs r7, 0x80
+ lsls r7, 6
+ add r7, r9
+ ldr r0, _081421C8 @ =gUnknown_02039324
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081421D4
+ movs r4, 0
+ mov r0, r8
+ lsls r0, 2
+ mov r10, r0
+ ldr r5, _081421CC @ =0xfffe4000
+ add r5, r9
+ movs r3, 0xF0
+ lsls r3, 9
+ movs r2, 0
+ ldr r1, _081421D0 @ =0x00001fff
+_081421B2:
+ adds r0, r4, r3
+ adds r0, r5
+ strb r2, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r1
+ bls _081421B2
+ b _081421E0
+ .align 2, 0
+_081421C4: .4byte 0x0201c000
+_081421C8: .4byte gUnknown_02039324
+_081421CC: .4byte 0xfffe4000
+_081421D0: .4byte 0x00001fff
+_081421D4:
+ movs r0, 0x3
+ bl sub_8125EC8
+ mov r0, r8
+ lsls r0, 2
+ mov r10, r0
+_081421E0:
+ movs r4, 0
+ ldrh r1, [r7, 0x8]
+ ldr r2, _081421E8 @ =0x000001ff
+ b _081421FA
+ .align 2, 0
+_081421E8: .4byte 0x000001ff
+_081421EC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r7, 0x78
+ cmp r4, 0x31
+ bhi _08142206
+ ldrh r1, [r7, 0x8]
+_081421FA:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _081421EC
+ cmp r4, 0x31
+ bls _08142228
+_08142206:
+ ldr r5, _08142264 @ =0x0201e000
+ adds r6, r5, 0
+ adds r5, 0x78
+ movs r4, 0
+ subs r7, 0x78
+_08142210:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x78
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, 0x78
+ adds r5, 0x78
+ cmp r4, 0x30
+ bls _08142210
+_08142228:
+ adds r0, r7, 0
+ mov r1, r9
+ movs r2, 0x78
+ bl memcpy
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08142268 @ =gMenuText_HOFSaving
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _0814226C @ =gTasks
+ mov r0, r10
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08142270 @ =sub_8142274
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142264: .4byte 0x0201e000
+_08142268: .4byte gMenuText_HOFSaving
+_0814226C: .4byte gTasks
+_08142270: .4byte sub_8142274
+ thumb_func_end sub_814217C
+
+ thumb_func_start sub_8142274
+sub_8142274: @ 8142274
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _081422A8 @ =gGameContinueCallback
+ ldr r0, _081422AC @ =sub_8141FC4
+ str r0, [r1]
+ movs r0, 0x3
+ bl TrySavingData
+ movs r0, 0x37
+ bl PlaySE
+ ldr r1, _081422B0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081422B4 @ =sub_81422B8
+ str r1, [r0]
+ movs r1, 0x20
+ strh r1, [r0, 0xE]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081422A8: .4byte gGameContinueCallback
+_081422AC: .4byte sub_8141FC4
+_081422B0: .4byte gTasks
+_081422B4: .4byte sub_81422B8
+ thumb_func_end sub_8142274
+
+ thumb_func_start sub_81422B8
+sub_81422B8: @ 81422B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081422D8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _081422DC
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xE]
+ b _081422E0
+ .align 2, 0
+_081422D8: .4byte gTasks
+_081422DC:
+ ldr r0, _081422E4 @ =sub_81422E8
+ str r0, [r1]
+_081422E0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081422E4: .4byte sub_81422E8
+ thumb_func_end sub_81422B8
+
+ thumb_func_start sub_81422E8
+sub_81422E8: @ 81422E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08142314 @ =gWindowConfig_81E7198
+ adds r0, r5, 0
+ bl SetUpWindowConfig
+ adds r0, r5, 0
+ bl InitMenuWindow
+ ldr r1, _08142318 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0814231C @ =sub_8142320
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142314: .4byte gWindowConfig_81E7198
+_08142318: .4byte gTasks
+_0814231C: .4byte sub_8142320
+ thumb_func_end sub_81422E8
+
+ thumb_func_start sub_8142320
+sub_8142320: @ 8142320
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _08142350 @ =0x0201c000
+ ldr r0, _08142354 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r6, [r1, 0xA]
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r2, 0xC
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x3
+ ble _0814235C
+ ldr r1, _08142358 @ =gUnknown_0840B534
+ b _0814235E
+ .align 2, 0
+_08142350: .4byte 0x0201c000
+_08142354: .4byte gTasks
+_08142358: .4byte gUnknown_0840B534
+_0814235C:
+ ldr r1, _081423F0 @ =gUnknown_0840B564
+_0814235E:
+ lsls r2, r6, 3
+ adds r0, r2, r1
+ ldrh r5, [r0]
+ adds r0, r1, 0x2
+ adds r0, r2, r0
+ ldrh r3, [r0]
+ adds r0, r1, 0x4
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ mov r9, r0
+ adds r1, 0x6
+ adds r2, r1
+ ldrh r2, [r2]
+ mov r8, r2
+ ldrh r0, [r4, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ lsls r1, r5, 16
+ asrs r1, 16
+ lsls r2, r3, 16
+ asrs r2, 16
+ ldr r3, [r4]
+ str r3, [sp]
+ ldr r3, [r4, 0x4]
+ str r3, [sp, 0x4]
+ adds r3, r6, 0
+ bl sub_81436BC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081423F4 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1, r3
+ movs r4, 0
+ mov r5, r9
+ strh r5, [r2, 0x30]
+ mov r5, r8
+ strh r5, [r2, 0x32]
+ strh r4, [r2, 0x2E]
+ adds r3, 0x1C
+ adds r1, r3
+ ldr r2, _081423F8 @ =sub_81435DC
+ str r2, [r1]
+ ldr r5, _081423FC @ =gTasks
+ adds r1, r6, 0x5
+ lsls r1, 1
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r1, r4
+ adds r2, r5, 0
+ adds r2, 0x8
+ adds r1, r2
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r4, r5
+ ldr r0, _08142400 @ =sub_8142404
+ str r0, [r4]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081423F0: .4byte gUnknown_0840B564
+_081423F4: .4byte gSprites
+_081423F8: .4byte sub_81435DC
+_081423FC: .4byte gTasks
+_08142400: .4byte sub_8142404
+ thumb_func_end sub_8142320
+
+ thumb_func_start sub_8142404
+sub_8142404: @ 8142404
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08142470 @ =0x0201c000
+ ldr r3, _08142474 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r5, r2, r3
+ ldrh r1, [r5, 0xA]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r0, r4
+ ldr r4, _08142478 @ =gSprites
+ adds r1, 0x5
+ lsls r1, 1
+ adds r1, r2
+ adds r3, 0x8
+ adds r1, r3
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0814246A
+ ldrh r2, [r6, 0x8]
+ ldr r0, _0814247C @ =0x000001ff
+ ands r0, r2
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08142458
+ lsls r0, r2, 23
+ lsrs r0, 23
+ movs r1, 0
+ bl PlayCry1
+_08142458:
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0xE
+ bl sub_8143088
+ movs r0, 0x78
+ strh r0, [r5, 0xE]
+ ldr r0, _08142480 @ =sub_8142484
+ str r0, [r5]
+_0814246A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142470: .4byte 0x0201c000
+_08142474: .4byte gTasks
+_08142478: .4byte gSprites
+_0814247C: .4byte 0x000001ff
+_08142480: .4byte sub_8142484
+ thumb_func_end sub_8142404
+
+ thumb_func_start sub_8142484
+sub_8142484: @ 8142484
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _081424BC @ =0x0201c000
+ ldr r1, _081424C0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ adds r4, r6, r1
+ ldrh r3, [r4, 0xA]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r2
+ mov r9, r0
+ ldrh r2, [r4, 0xE]
+ movs r7, 0xE
+ ldrsh r0, [r4, r7]
+ mov r12, r1
+ cmp r0, 0
+ beq _081424C4
+ subs r0, r2, 0x1
+ strh r0, [r4, 0xE]
+ b _0814255C
+ .align 2, 0
+_081424BC: .4byte 0x0201c000
+_081424C0: .4byte gTasks
+_081424C4:
+ ldr r2, _0814253C @ =gUnknown_0203931C
+ ldr r0, _08142540 @ =gSprites
+ mov r8, r0
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r6
+ mov r1, r12
+ adds r1, 0x8
+ adds r6, r0, r1
+ movs r7, 0
+ ldrsh r1, [r6, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ ldr r3, [r2]
+ orrs r3, r1
+ str r3, [r2]
+ ldrh r2, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bgt _08142550
+ mov r7, r9
+ ldrh r1, [r7, 0x1C]
+ ldr r0, _08142544 @ =0x000001ff
+ ands r0, r1
+ cmp r0, 0
+ beq _08142550
+ adds r0, r2, 0x1
+ strh r0, [r4, 0xA]
+ ldr r0, _08142548 @ =0x0000735f
+ str r0, [sp]
+ adds r0, r3, 0
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0xC
+ bl BeginNormalPaletteFade
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r0, _0814254C @ =sub_8142320
+ str r0, [r4]
+ b _0814255C
+ .align 2, 0
+_0814253C: .4byte gUnknown_0203931C
+_08142540: .4byte gSprites
+_08142544: .4byte 0x000001ff
+_08142548: .4byte 0x0000735f
+_0814254C: .4byte sub_8142320
+_08142550:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ add r0, r12
+ ldr r1, _0814256C @ =sub_8142570
+ str r1, [r0]
+_0814255C:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814256C: .4byte sub_8142570
+ thumb_func_end sub_8142484
+
+ thumb_func_start sub_8142570
+sub_8142570: @ 8142570
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08142604 @ =0xffff0000
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r3, 0
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r5, r0, 3
+ ldr r0, _08142608 @ =gTasks + 0x8
+ mov r12, r0
+ mov r8, r1
+ ldr r6, _0814260C @ =gSprites
+ movs r7, 0xD
+ negs r7, r7
+_0814259E:
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r5
+ mov r2, r12
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xFF
+ beq _081425C0
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+_081425C0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _0814259E
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xF
+ bl sub_8143068
+ movs r0, 0x69
+ bl PlaySE
+ ldr r1, _08142610 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC8
+ lsls r1, 1
+ strh r1, [r0, 0xE]
+ ldr r1, _08142614 @ =sub_8142618
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142604: .4byte 0xffff0000
+_08142608: .4byte gTasks + 0x8
+_0814260C: .4byte gSprites
+_08142610: .4byte gTasks
+_08142614: .4byte sub_8142618
+ thumb_func_end sub_8142570
+
+ thumb_func_start sub_8142618
+sub_8142618: @ 8142618
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _08142658 @ =gTasks
+ lsls r4, r6, 2
+ adds r0, r4, r6
+ lsls r5, r0, 3
+ adds r1, r5, r7
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0814265C
+ subs r2, 0x1
+ strh r2, [r1, 0xE]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _081426D2
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x6E
+ ble _081426D2
+ bl sub_81438C4
+ b _081426D2
+ .align 2, 0
+_08142658: .4byte gTasks
+_0814265C:
+ movs r3, 0
+ mov r9, r4
+ ldr r0, _081426E4 @ =gUnknown_0203931C
+ mov r10, r0
+ adds r4, r5, 0
+ adds r7, 0x8
+ mov r8, r7
+ ldr r7, _081426E8 @ =gSprites
+ movs r1, 0xD
+ negs r1, r1
+ mov r12, r1
+ movs r5, 0x4
+_08142674:
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r4
+ mov r2, r8
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xFF
+ beq _08142698
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r1, 0x5]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+_08142698:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _08142674
+ mov r3, r10
+ ldr r0, [r3]
+ ldr r1, _081426EC @ =0x0000735f
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0xC
+ bl BeginNormalPaletteFade
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _081426F0 @ =gTasks
+ mov r2, r9
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x7
+ strh r1, [r0, 0xE]
+ ldr r1, _081426F4 @ =sub_81426F8
+ str r1, [r0]
+_081426D2:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081426E4: .4byte gUnknown_0203931C
+_081426E8: .4byte gSprites
+_081426EC: .4byte 0x0000735f
+_081426F0: .4byte gTasks
+_081426F4: .4byte sub_81426F8
+ thumb_func_end sub_8142618
+
+ thumb_func_start sub_81426F8
+sub_81426F8: @ 81426F8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08142718 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r1, [r2, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0xF
+ ble _08142720
+ ldr r0, _0814271C @ =sub_8142738
+ str r0, [r2]
+ b _0814272E
+ .align 2, 0
+_08142718: .4byte gTasks
+_0814271C: .4byte sub_8142738
+_08142720:
+ adds r0, r1, 0x1
+ strh r0, [r2, 0xE]
+ ldr r1, _08142734 @ =REG_BLDALPHA
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ lsls r0, 8
+ strh r0, [r1]
+_0814272E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142734: .4byte REG_BLDALPHA
+ thumb_func_end sub_81426F8
+
+ thumb_func_start sub_8142738
+sub_8142738: @ 8142738
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xCA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _08142784 @ =gWindowConfig_81E71B4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r0, _08142788 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x78
+ movs r2, 0x48
+ movs r3, 0x6
+ bl sub_81437A4
+ ldr r2, _0814278C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0x10]
+ movs r0, 0x78
+ strh r0, [r1, 0xE]
+ ldr r0, _08142790 @ =sub_8142794
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142784: .4byte gWindowConfig_81E71B4
+_08142788: .4byte gSaveBlock2
+_0814278C: .4byte gTasks
+_08142790: .4byte sub_8142794
+ thumb_func_end sub_8142738
+
+ thumb_func_start sub_8142794
+sub_8142794: @ 8142794
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081427B4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081427B8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _0814280A
+ .align 2, 0
+_081427B4: .4byte gTasks
+_081427B8:
+ ldr r2, _081427D8 @ =gSprites
+ movs r3, 0x10
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ cmp r0, 0xA0
+ beq _081427DC
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x20]
+ b _0814280A
+ .align 2, 0
+_081427D8: .4byte gSprites
+_081427DC:
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0xF
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8143300
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08142810 @ =gMenuText_HOFCongratulations
+ movs r1, 0x4
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r0, _08142814 @ =sub_8142818
+ str r0, [r4]
+_0814280A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142810: .4byte gMenuText_HOFCongratulations
+_08142814: .4byte sub_8142818
+ thumb_func_end sub_8142794
+
+ thumb_func_start sub_8142818
+sub_8142818: @ 8142818
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08142844 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0814283E
+ movs r0, 0x4
+ bl FadeOutBGM
+ ldr r0, _08142848 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0814284C @ =sub_8142850
+ str r0, [r1]
+_0814283E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142844: .4byte gMain
+_08142848: .4byte gTasks
+_0814284C: .4byte sub_8142850
+ thumb_func_end sub_8142818
+
+ thumb_func_start sub_8142850
+sub_8142850: @ 8142850
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08142890 @ =gPlttBufferFaded
+ ldr r1, _08142894 @ =gPlttBufferUnfaded
+ movs r2, 0x80
+ lsls r2, 2
+ bl CpuSet
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x8
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08142898 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0814289C @ =sub_81428A0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142890: .4byte gPlttBufferFaded
+_08142894: .4byte gPlttBufferUnfaded
+_08142898: .4byte gTasks
+_0814289C: .4byte sub_81428A0
+ thumb_func_end sub_8142850
+
+ thumb_func_start sub_81428A0
+sub_81428A0: @ 81428A0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081428C4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081428BE
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _081428C8 @ =sub_81439D0
+ bl SetMainCallback2
+_081428BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081428C4: .4byte gPaletteFade
+_081428C8: .4byte sub_81439D0
+ thumb_func_end sub_81428A0
+
+ thumb_func_start sub_81428CC
+sub_81428CC: @ 81428CC
+ push {r4,r5,lr}
+ ldr r0, _081428E4 @ =gMain
+ ldr r1, _081428E8 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _08142908
+ lsls r0, 2
+ ldr r1, _081428EC @ =_081428F0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081428E4: .4byte gMain
+_081428E8: .4byte 0x0000043c
+_081428EC: .4byte _081428F0
+ .align 2, 0
+_081428F0:
+ .4byte _08142908
+ .4byte _08142928
+ .4byte _0814293C
+ .4byte _08142980
+ .4byte _081429C0
+ .4byte _081429EC
+_08142908:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_81433E0
+ ldr r0, _08142920 @ =gMain
+ ldr r2, _08142924 @ =0x0000043c
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08142A12
+ .align 2, 0
+_08142920: .4byte gMain
+_08142924: .4byte 0x0000043c
+_08142928:
+ bl sub_8143570
+ ldr r1, _08142934 @ =gMain
+ ldr r3, _08142938 @ =0x0000043c
+ adds r1, r3
+ b _081429DC
+ .align 2, 0
+_08142934: .4byte gMain
+_08142938: .4byte 0x0000043c
+_0814293C:
+ ldr r0, _08142968 @ =sub_8141E38
+ bl SetVBlankCallback
+ ldr r3, _0814296C @ =0x04000208
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _08142970 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08142974 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08142978 @ =gMain
+ ldr r4, _0814297C @ =0x0000043c
+ adds r1, r4
+ b _081429DC
+ .align 2, 0
+_08142968: .4byte sub_8141E38
+_0814296C: .4byte 0x04000208
+_08142970: .4byte 0x04000200
+_08142974: .4byte REG_DISPSTAT
+_08142978: .4byte gMain
+_0814297C: .4byte 0x0000043c
+_08142980:
+ ldr r0, _081429AC @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_81435B8
+ ldr r0, _081429B0 @ =0x0201c000
+ adds r2, r0, 0
+ ldr r1, _081429B4 @ =gUnknown_0840B57C
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3,r5}
+ stm r2!, {r3,r5}
+ bl sub_80C5CD4
+ ldr r1, _081429B8 @ =gMain
+ ldr r4, _081429BC @ =0x0000043c
+ adds r1, r4
+ b _081429DC
+ .align 2, 0
+_081429AC: .4byte REG_BLDCNT
+_081429B0: .4byte 0x0201c000
+_081429B4: .4byte gUnknown_0840B57C
+_081429B8: .4byte gMain
+_081429BC: .4byte 0x0000043c
+_081429C0:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ bl sub_80C5DCC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142A12
+ ldr r1, _081429E4 @ =gMain
+ ldr r5, _081429E8 @ =0x0000043c
+ adds r1, r5
+_081429DC:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08142A12
+ .align 2, 0
+_081429E4: .4byte gMain
+_081429E8: .4byte 0x0000043c
+_081429EC:
+ ldr r1, _08142A18 @ =REG_BLDCNT
+ ldr r2, _08142A1C @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xE2
+ lsls r3, 3
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08142A20 @ =sub_8142A28
+ movs r1, 0
+ bl CreateTask
+ ldr r0, _08142A24 @ =sub_8141E4C
+ bl SetMainCallback2
+_08142A12:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142A18: .4byte REG_BLDCNT
+_08142A1C: .4byte 0x00003f42
+_08142A20: .4byte sub_8142A28
+_08142A24: .4byte sub_8141E4C
+ thumb_func_end sub_81428CC
+
+ thumb_func_start sub_8142A28
+sub_8142A28: @ 8142A28
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x3
+ bl sub_8125EC8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08142A54
+ ldr r0, _08142A4C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08142A50 @ =sub_8142FEC
+ str r0, [r1]
+ b _08142AEA
+ .align 2, 0
+_08142A4C: .4byte gTasks
+_08142A50: .4byte sub_8142FEC
+_08142A54:
+ ldr r2, _08142A8C @ =0x0201e000
+ movs r3, 0
+ ldrh r1, [r2, 0x8]
+ ldr r4, _08142A90 @ =0x000001ff
+ adds r0, r4, 0
+ ands r0, r1
+ ldr r7, _08142A94 @ =gTasks
+ lsls r6, r5, 2
+ cmp r0, 0
+ beq _08142A7E
+_08142A68:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r2, 0x78
+ cmp r3, 0x31
+ bhi _08142A98
+ ldrh r1, [r2, 0x8]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08142A68
+_08142A7E:
+ cmp r3, 0x31
+ bhi _08142A98
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r7
+ subs r1, r3, 0x1
+ b _08142AA0
+ .align 2, 0
+_08142A8C: .4byte 0x0201e000
+_08142A90: .4byte 0x000001ff
+_08142A94: .4byte gTasks
+_08142A98:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x31
+_08142AA0:
+ strh r1, [r0, 0x8]
+ movs r0, 0xA
+ bl GetGameStat
+ ldr r2, _08142AF0 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0xA]
+ movs r3, 0
+ ldr r7, _08142AF4 @ =0x0600381a
+ ldr r4, _08142AF8 @ =0x0600385a
+_08142AB8:
+ lsls r1, r3, 1
+ adds r2, r1, r7
+ adds r0, r3, 0x3
+ strh r0, [r2]
+ adds r1, r4
+ adds r0, 0x11
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x10
+ bls _08142AB8
+ ldr r4, _08142AFC @ =gWindowConfig_81E7198
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r1, _08142AF0 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08142B00 @ =sub_8142B04
+ str r1, [r0]
+_08142AEA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142AF0: .4byte gTasks
+_08142AF4: .4byte 0x0600381a
+_08142AF8: .4byte 0x0600385a
+_08142AFC: .4byte gWindowConfig_81E7198
+_08142B00: .4byte sub_8142B04
+ thumb_func_end sub_8142A28
+
+ thumb_func_start sub_8142B04
+sub_8142B04: @ 8142B04
+ 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 r8, r0
+ ldr r3, _08142BB8 @ =0x0201e000
+ movs r5, 0
+ ldr r1, _08142BBC @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ ldr r2, _08142BC0 @ =gUnknown_0203931C
+ cmp r5, r0
+ bge _08142B3E
+ adds r1, r0, 0
+_08142B32:
+ adds r3, 0x78
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r1
+ blt _08142B32
+_08142B3E:
+ adds r4, r3, 0
+ movs r0, 0
+ str r0, [r2]
+ mov r5, r8
+ lsls r2, r5, 2
+ adds r1, r2, r5
+ lsls r1, 3
+ adds r1, r6
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0x10]
+ movs r5, 0
+ str r2, [sp, 0xC]
+ ldr r6, _08142BC4 @ =0x000001ff
+ adds r2, r1, 0
+_08142B5A:
+ ldrh r1, [r4, 0x8]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08142B6A
+ ldrh r0, [r2, 0x10]
+ adds r0, 0x1
+ strh r0, [r2, 0x10]
+_08142B6A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x14
+ cmp r5, 0x5
+ bls _08142B5A
+ adds r4, r3, 0
+ movs r5, 0
+ ldr r1, _08142BBC @ =gTasks
+ ldr r0, [sp, 0xC]
+ add r0, r8
+ lsls r7, r0, 3
+ adds r6, r7, r1
+ str r6, [sp, 0x8]
+ adds r1, 0x8
+ mov r9, r1
+ ldr r0, _08142BC8 @ =gUnknown_0840B564
+ mov r10, r0
+_08142B8E:
+ ldrh r1, [r4, 0x8]
+ ldr r2, _08142BC4 @ =0x000001ff
+ adds r0, r2, 0
+ ands r0, r1
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _08142C30
+ ldr r1, [sp, 0x8]
+ movs r2, 0x10
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x3
+ ble _08142BD4
+ lsls r1, r5, 3
+ ldr r0, _08142BCC @ =gUnknown_0840B534
+ adds r0, 0x4
+ adds r0, r1, r0
+ ldrh r3, [r0]
+ ldr r0, _08142BD0 @ =gUnknown_0840B534 + 0x6
+ adds r1, r0
+ b _08142BE2
+ .align 2, 0
+_08142BB8: .4byte 0x0201e000
+_08142BBC: .4byte gTasks
+_08142BC0: .4byte gUnknown_0203931C
+_08142BC4: .4byte 0x000001ff
+_08142BC8: .4byte gUnknown_0840B564
+_08142BCC: .4byte gUnknown_0840B534
+_08142BD0: .4byte gUnknown_0840B534 + 0x6
+_08142BD4:
+ lsls r1, r5, 3
+ mov r0, r10
+ adds r0, 0x4
+ adds r0, r1, r0
+ ldrh r3, [r0]
+ ldr r2, _08142C28 @ =gUnknown_0840B564 + 0x6
+ adds r1, r2
+_08142BE2:
+ ldrh r2, [r1]
+ lsls r0, r6, 23
+ lsrs r0, 23
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldr r3, [r4]
+ str r3, [sp]
+ ldr r3, [r4, 0x4]
+ str r3, [sp, 0x4]
+ adds r3, r5, 0
+ bl sub_81436BC
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08142C2C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r3, [r1, 0x5]
+ movs r6, 0xD
+ negs r6, r6
+ adds r2, r6, 0
+ ands r3, r2
+ movs r2, 0x4
+ orrs r3, r2
+ strb r3, [r1, 0x5]
+ adds r1, r5, 0x5
+ lsls r1, 1
+ adds r1, r7
+ add r1, r9
+ strh r0, [r1]
+ b _08142C3C
+ .align 2, 0
+_08142C28: .4byte gUnknown_0840B564 + 0x6
+_08142C2C: .4byte gSprites
+_08142C30:
+ adds r0, r5, 0x5
+ lsls r0, 1
+ adds r0, r7
+ add r0, r9
+ movs r1, 0xFF
+ strh r1, [r0]
+_08142C3C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x14
+ cmp r5, 0x5
+ bls _08142B8E
+ ldr r0, _08142CB0 @ =0xffff0000
+ ldr r2, _08142CB4 @ =0x0000735f
+ movs r1, 0xC
+ bl BlendPalettes
+ ldr r3, _08142CB8 @ =gStringVar1
+ ldr r1, _08142CBC @ =gMenuText_HOFNumber
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+ movs r5, 0xFC
+ strb r5, [r3]
+ movs r0, 0x14
+ strb r0, [r3, 0x1]
+ movs r0, 0x6
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ ldr r0, _08142CC0 @ =gTasks
+ ldr r4, [sp, 0xC]
+ add r4, r8
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ adds r0, r3, 0
+ bl ConvertIntToDecimalString
+ adds r3, r0, 0
+ strb r5, [r3]
+ movs r0, 0x13
+ strb r0, [r3, 0x1]
+ movs r0, 0xF0
+ strb r0, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ ldr r0, _08142CB8 @ =gStringVar1
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ ldr r0, _08142CC4 @ =sub_8142CC8
+ str r0, [r4]
+ 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
+_08142CB0: .4byte 0xffff0000
+_08142CB4: .4byte 0x0000735f
+_08142CB8: .4byte gStringVar1
+_08142CBC: .4byte gMenuText_HOFNumber
+_08142CC0: .4byte gTasks
+_08142CC4: .4byte sub_8142CC8
+ thumb_func_end sub_8142B04
+
+ thumb_func_start sub_8142CC8
+sub_8142CC8: @ 8142CC8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08142DD0 @ =0x0201e000
+ mov r8, r0
+ movs r3, 0
+ ldr r1, _08142DD4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ cmp r3, r0
+ bge _08142CFE
+ adds r1, r0, 0
+_08142CF0:
+ movs r0, 0x78
+ add r8, r0
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ blt _08142CF0
+_08142CFE:
+ movs r3, 0
+ lsls r6, r4, 2
+ adds r0, r6, r4
+ lsls r5, r0, 3
+ ldr r1, _08142DD8 @ =gTasks + 0x8
+ mov r10, r1
+ ldr r2, _08142DDC @ =gSprites
+ mov r12, r2
+ movs r0, 0xD
+ negs r0, r0
+ mov r9, r0
+ movs r7, 0x4
+_08142D16:
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r5
+ add r0, r10
+ ldrh r1, [r0]
+ cmp r1, 0xFF
+ beq _08142D36
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r2, [r0, 0x5]
+ mov r1, r9
+ ands r1, r2
+ orrs r1, r7
+ strb r1, [r0, 0x5]
+_08142D36:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _08142D16
+ adds r1, r6, r4
+ lsls r1, 3
+ ldr r2, _08142DD4 @ =gTasks
+ adds r5, r1, r2
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ adds r0, 0x5
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _08142DD4 @ =gTasks
+ adds r1, 0x8
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08142DDC @ =gSprites
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ lsrs r1, 4
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r1
+ ldr r1, _08142DE0 @ =0xffff0000
+ eors r0, r1
+ ldr r2, _08142DE4 @ =gUnknown_0203931C
+ str r0, [r2]
+ ldr r2, _08142DE8 @ =0x0000735f
+ movs r1, 0xC
+ bl BlendPalettesUnfaded
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ mov r1, r8
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x8]
+ ldr r0, _08142DEC @ =0x000001ff
+ ands r0, r1
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08142DB2
+ bl StopCryAndClearCrySongs
+ ldrh r0, [r4, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ movs r1, 0
+ bl PlayCry1
+_08142DB2:
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xE
+ bl sub_8143088
+ ldr r0, _08142DF0 @ =sub_8142DF4
+ str r0, [r5]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142DD0: .4byte 0x0201e000
+_08142DD4: .4byte gTasks
+_08142DD8: .4byte gTasks + 0x8
+_08142DDC: .4byte gSprites
+_08142DE0: .4byte 0xffff0000
+_08142DE4: .4byte gUnknown_0203931C
+_08142DE8: .4byte 0x0000735f
+_08142DEC: .4byte 0x000001ff
+_08142DF0: .4byte sub_8142DF4
+ thumb_func_end sub_8142CC8
+
+ thumb_func_start sub_8142DF4
+sub_8142DF4: @ 8142DF4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08142E88 @ =gMain
+ ldrh r2, [r1, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _08142EC4
+ ldr r7, _08142E8C @ =gTasks
+ lsls r0, r6, 2
+ adds r1, r0, r6
+ lsls r3, r1, 3
+ adds r4, r3, r7
+ ldrh r2, [r4, 0x8]
+ movs r5, 0x8
+ ldrsh r1, [r4, r5]
+ mov r8, r0
+ cmp r1, 0
+ beq _08142E98
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x8]
+ movs r5, 0
+ adds r7, 0x8
+ mov r9, r7
+ adds r7, r3, 0
+_08142E30:
+ adds r0, r5, 0x5
+ lsls r0, 1
+ adds r0, r7
+ add r0, r9
+ ldrb r1, [r0]
+ cmp r1, 0xFF
+ beq _08142E5E
+ ldr r0, _08142E90 @ =gSprites
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl DestroySprite
+_08142E5E:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08142E30
+ ldr r0, _08142E8C @ =gTasks
+ mov r2, r8
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08142E80
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xA]
+_08142E80:
+ ldr r0, _08142E94 @ =sub_8142B04
+ str r0, [r1]
+ b _08142F64
+ .align 2, 0
+_08142E88: .4byte gMain
+_08142E8C: .4byte gTasks
+_08142E90: .4byte gSprites
+_08142E94: .4byte sub_8142B04
+_08142E98:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142EB2
+ bl StopCryAndClearCrySongs
+ ldr r0, _08142EB8 @ =gMPlay_BGM
+ ldr r1, _08142EBC @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08142EB2:
+ ldr r0, _08142EC0 @ =sub_8142F78
+ str r0, [r4]
+ b _08142F64
+ .align 2, 0
+_08142EB8: .4byte gMPlay_BGM
+_08142EBC: .4byte 0x0000ffff
+_08142EC0: .4byte sub_8142F78
+_08142EC4:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _08142F08
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142EE6
+ bl StopCryAndClearCrySongs
+ ldr r0, _08142EF8 @ =gMPlay_BGM
+ ldr r1, _08142EFC @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08142EE6:
+ ldr r0, _08142F00 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08142F04 @ =sub_8142F78
+ str r0, [r1]
+ b _08142F64
+ .align 2, 0
+_08142EF8: .4byte gMPlay_BGM
+_08142EFC: .4byte 0x0000ffff
+_08142F00: .4byte gTasks
+_08142F04: .4byte sub_8142F78
+_08142F08:
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _08142F38
+ ldr r0, _08142F30 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ movs r4, 0xC
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _08142F38
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ ldr r0, _08142F34 @ =sub_8142CC8
+ str r0, [r1]
+ b _08142F64
+ .align 2, 0
+_08142F30: .4byte gTasks
+_08142F34: .4byte sub_8142CC8
+_08142F38:
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08142F64
+ ldr r1, _08142F70 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r5, 0xC
+ ldrsh r1, [r2, r5]
+ movs r3, 0x10
+ ldrsh r0, [r2, r3]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _08142F64
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ ldr r0, _08142F74 @ =sub_8142CC8
+ str r0, [r2]
+_08142F64:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142F70: .4byte gTasks
+_08142F74: .4byte sub_8142CC8
+ thumb_func_end sub_8142DF4
+
+ thumb_func_start sub_8142F78
+sub_8142F78: @ 8142F78
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08142FB4 @ =gPlttBufferFaded
+ ldr r1, _08142FB8 @ =gPlttBufferUnfaded
+ movs r2, 0x80
+ lsls r2, 2
+ bl CpuSet
+ ldr r0, _08142FBC @ =0x0201c000
+ adds r2, r0, 0
+ ldr r1, _08142FC0 @ =gUnknown_0840B57C
+ ldm r1!, {r3,r5,r6}
+ stm r2!, {r3,r5,r6}
+ ldm r1!, {r3,r5}
+ stm r2!, {r3,r5}
+ bl sub_80C5E38
+ ldr r1, _08142FC4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08142FC8 @ =sub_8142FCC
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142FB4: .4byte gPlttBufferFaded
+_08142FB8: .4byte gPlttBufferUnfaded
+_08142FBC: .4byte 0x0201c000
+_08142FC0: .4byte gUnknown_0840B57C
+_08142FC4: .4byte gTasks
+_08142FC8: .4byte sub_8142FCC
+ thumb_func_end sub_8142F78
+
+ thumb_func_start sub_8142FCC
+sub_8142FCC: @ 8142FCC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80C5F98
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142FE6
+ adds r0, r4, 0
+ bl DestroyTask
+ bl ReturnFromHallOfFamePC
+_08142FE6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8142FCC
+
+ thumb_func_start sub_8142FEC
+sub_8142FEC: @ 8142FEC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08143020 @ =gMenuText_HOFCorrupt
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ ldr r1, _08143024 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08143028 @ =sub_814302C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143020: .4byte gMenuText_HOFCorrupt
+_08143024: .4byte gTasks
+_08143028: .4byte sub_814302C
+ thumb_func_end sub_8142FEC
+
+ thumb_func_start sub_814302C
+sub_814302C: @ 814302C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08143056
+ ldr r0, _0814305C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08143056
+ ldr r0, _08143060 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08143064 @ =sub_8142F78
+ str r0, [r1]
+_08143056:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814305C: .4byte gMain
+_08143060: .4byte gTasks
+_08143064: .4byte sub_8142F78
+ thumb_func_end sub_814302C
+
+ thumb_func_start sub_8143068
+sub_8143068: @ 8143068
+ push {lr}
+ lsls r2, r1, 24
+ ldr r0, _08143084 @ =gMenuText_WelcomeToHOFAndDexRating
+ movs r1, 0x80
+ lsls r1, 17
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0
+ movs r3, 0xF0
+ bl sub_8072BD8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating
+ thumb_func_end sub_8143068
+
+ thumb_func_start sub_8143088
+sub_8143088: @ 8143088
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ ldr r7, _08143188 @ =gStringVar1
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x13
+ strb r0, [r7, 0x1]
+ movs r0, 0x28
+ strb r0, [r7, 0x2]
+ movs r0, 0xFF
+ strb r0, [r7, 0x3]
+ mov r0, r9
+ ldrh r2, [r0, 0x8]
+ ldr r0, _0814318C @ =0x000001ff
+ ands r0, r2
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _081430EA
+ lsls r0, r2, 23
+ lsrs r0, 23
+ bl SpeciesToPokedexNum
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _08143190 @ =0x0000ffff
+ cmp r6, r0
+ beq _081430EA
+ ldr r1, _08143194 @ =gOtherText_Number2
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+_081430EA:
+ ldr r5, _08143188 @ =gStringVar1
+ mov r1, r8
+ adds r1, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ mov r4, r10
+ adds r4, 0x1
+ lsls r2, r4, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ bl MenuPrint
+ adds r7, r5, 0
+ movs r3, 0
+ mov r1, r9
+ ldrb r0, [r1, 0xA]
+ str r4, [sp]
+ mov r2, r8
+ adds r2, 0x9
+ str r2, [sp, 0xC]
+ mov r6, r10
+ adds r6, 0x3
+ str r6, [sp, 0x8]
+ cmp r0, 0xFF
+ beq _0814313A
+ mov r2, r9
+ adds r2, 0xA
+_08143120:
+ adds r1, r7, r3
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9
+ bhi _0814313A
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08143120
+_0814313A:
+ adds r7, r3
+ movs r2, 0xFF
+ strb r2, [r7]
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ ldr r1, _0814318C @ =0x000001ff
+ ands r1, r0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bne _08143198
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x13
+ strb r0, [r7, 0x1]
+ movs r0, 0xA0
+ strb r0, [r7, 0x2]
+ strb r2, [r7, 0x3]
+ ldr r0, _08143188 @ =gStringVar1
+ ldr r2, [sp, 0xC]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ ldr r3, [sp]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ bl MenuPrint
+ ldr r6, [sp, 0x8]
+ lsls r1, r6, 24
+ lsrs r1, 24
+ mov r3, r10
+ adds r3, 0x4
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ movs r2, 0x1D
+ bl MenuZeroFillWindowRect
+ b _081432E4
+ .align 2, 0
+_08143188: .4byte gStringVar1
+_0814318C: .4byte 0x000001ff
+_08143190: .4byte 0x0000ffff
+_08143194: .4byte gOtherText_Number2
+_08143198:
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x13
+ strb r0, [r7, 0x1]
+ movs r0, 0x3E
+ strb r0, [r7, 0x2]
+ adds r7, 0x3
+ movs r0, 0xBA
+ strb r0, [r7]
+ adds r7, 0x1
+ movs r3, 0
+ ldr r2, _08143238 @ =gSpeciesNames
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ movs r1, 0xB
+ muls r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ mov r6, r8
+ adds r6, 0x7
+ str r6, [sp, 0x4]
+ mov r1, r8
+ adds r1, 0xD
+ str r1, [sp, 0x10]
+ cmp r0, 0xFF
+ beq _08143204
+ adds r5, r2, 0
+ movs r4, 0xB
+_081431D4:
+ adds r1, r7, r3
+ mov r6, r9
+ ldrh r0, [r6, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ muls r0, r4
+ adds r0, r3, r0
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9
+ bhi _08143204
+ ldrh r0, [r6, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ muls r0, r4
+ adds r0, r3, r0
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _081431D4
+_08143204:
+ adds r7, r3
+ movs r0, 0
+ strb r0, [r7]
+ adds r7, 0x1
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ ldr r1, _0814323C @ =0x000001ff
+ ands r1, r0
+ cmp r1, 0x20
+ beq _0814324A
+ cmp r1, 0x1D
+ beq _0814324A
+ lsls r0, 23
+ lsrs r0, 23
+ mov r2, r9
+ ldr r1, [r2, 0x4]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08143240
+ cmp r0, 0xFE
+ beq _08143244
+ b _0814324A
+ .align 2, 0
+_08143238: .4byte gSpeciesNames
+_0814323C: .4byte 0x000001ff
+_08143240:
+ movs r0, 0xB5
+ b _08143246
+_08143244:
+ movs r0, 0xB6
+_08143246:
+ strb r0, [r7]
+ adds r7, 0x1
+_0814324A:
+ movs r4, 0xFC
+ strb r4, [r7]
+ movs r3, 0x13
+ mov r8, r3
+ strb r3, [r7, 0x1]
+ movs r0, 0xA0
+ strb r0, [r7, 0x2]
+ movs r6, 0xFF
+ mov r10, r6
+ strb r6, [r7, 0x3]
+ ldr r5, _081432F4 @ =gStringVar1
+ ldr r0, [sp, 0xC]
+ lsls r1, r0, 24
+ lsrs r1, 24
+ ldr r3, [sp]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ bl MenuPrint
+ mov r6, r9
+ ldrb r0, [r6, 0x9]
+ lsrs r6, r0, 1
+ ldr r1, _081432F8 @ =gOtherText_Level3
+ adds r0, r5, 0
+ bl StringCopy
+ adds r7, r0, 0
+ strb r4, [r7]
+ movs r0, 0x14
+ strb r0, [r7, 0x1]
+ movs r0, 0x6
+ strb r0, [r7, 0x2]
+ adds r7, 0x3
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r7, r0, 0
+ strb r4, [r7]
+ mov r0, r8
+ strb r0, [r7, 0x1]
+ movs r0, 0x30
+ strb r0, [r7, 0x2]
+ mov r1, r10
+ strb r1, [r7, 0x3]
+ ldr r2, [sp, 0x4]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ ldr r3, [sp, 0x8]
+ lsls r4, r3, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ mov r0, r9
+ ldrh r6, [r0]
+ ldr r1, _081432FC @ =gOtherText_IDNumber
+ adds r0, r5, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ ldr r2, [sp, 0x10]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+_081432E4:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081432F4: .4byte gStringVar1
+_081432F8: .4byte gOtherText_Level3
+_081432FC: .4byte gOtherText_IDNumber
+ thumb_func_end sub_8143088
+
+ thumb_func_start sub_8143300
+sub_8143300: @ 8143300
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r5, 24
+ lsls r4, 24
+ ldr r0, _081433CC @ =gOtherText_Name
+ lsrs r1, r5, 24
+ mov r8, r1
+ movs r2, 0x80
+ lsls r2, 17
+ adds r5, r2
+ lsrs r5, 24
+ lsrs r6, r4, 24
+ adds r4, r2
+ lsrs r4, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ ldr r0, _081433D0 @ =gSaveBlock2
+ mov r10, r0
+ movs r1, 0xE
+ add r8, r1
+ mov r2, r8
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ mov r1, r8
+ adds r2, r4, 0
+ bl MenuPrint_RightAligned
+ ldr r0, _081433D4 @ =gOtherText_IDNumber2
+ adds r4, r6, 0x3
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ mov r0, r10
+ ldrb r1, [r0, 0xA]
+ ldrb r0, [r0, 0xB]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r2, _081433D8 @ =gStringVar1
+ mov r9, r2
+ mov r0, r9
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, r9
+ mov r1, r8
+ adds r2, r4, 0
+ bl MenuPrint_RightAligned
+ ldr r0, _081433DC @ =gMainMenuString_Time
+ adds r6, 0x5
+ lsls r6, 24
+ lsrs r6, 24
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ mov r0, r10
+ ldrh r1, [r0, 0xE]
+ mov r0, r9
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ movs r1, 0
+ strb r1, [r2]
+ movs r0, 0xF0
+ strb r0, [r2, 0x1]
+ strb r1, [r2, 0x2]
+ adds r2, 0x3
+ mov r0, r10
+ ldrb r1, [r0, 0x10]
+ adds r0, r2, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ movs r0, 0xFF
+ strb r0, [r2]
+ mov r0, r9
+ mov r1, r8
+ adds r2, r6, 0
+ bl MenuPrint_RightAligned
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081433CC: .4byte gOtherText_Name
+_081433D0: .4byte gSaveBlock2
+_081433D4: .4byte gOtherText_IDNumber2
+_081433D8: .4byte gStringVar1
+_081433DC: .4byte gMainMenuString_Time
+ thumb_func_end sub_8143300
+
+ thumb_func_start sub_81433E0
+sub_81433E0: @ 81433E0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x8
+ strh r1, [r0]
+ adds r0, 0xA
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0xA
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0xC
+ strh r1, [r0]
+ adds r0, 0xE
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ add r0, sp, 0x4
+ mov r8, r0
+ ldr r1, _0814354C @ =gHallOfFame_Gfx
+ mov r9, r1
+ mov r2, sp
+ movs r6, 0
+ ldr r1, _08143550 @ =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _08143554 @ =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_08143444:
+ strh r6, [r2]
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r5
+ subs r4, r5
+ cmp r4, r5
+ bhi _08143444
+ strh r6, [r2]
+ mov r2, sp
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0xE0
+ lsls r0, 19
+ movs r3, 0x80
+ lsls r3, 3
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r2, _08143550 @ =0x040000d4
+ mov r1, r8
+ str r1, [r2]
+ str r0, [r2, 0x4]
+ lsrs r0, r3, 2
+ movs r1, 0x85
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xA0
+ lsls r1, 19
+ mov r0, sp
+ strh r4, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsrs r3, 1
+ movs r0, 0x81
+ lsls r0, 24
+ orrs r3, r0
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xC0
+ lsls r1, 19
+ mov r0, r9
+ bl LZ77UnCompVram
+ movs r1, 0
+ ldr r3, _08143558 @ =0x06003800
+ movs r2, 0x1
+_081434B2:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3F
+ bls _081434B2
+ movs r1, 0
+ ldr r5, _0814355C @ =0x02000000
+ ldr r3, _08143560 @ =0x06003b80
+ movs r2, 0x1
+_081434CA:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xBF
+ bls _081434CA
+ movs r1, 0
+ ldr r4, _08143564 @ =0x06003000
+ movs r3, 0x2
+ ldr r2, _08143568 @ =0x000003ff
+_081434E2:
+ lsls r0, r1, 1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _081434E2
+ adds r2, r5, 0
+ movs r3, 0x80
+ lsls r3, 7
+ mov r4, sp
+ movs r6, 0
+ ldr r1, _08143550 @ =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _08143554 @ =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_0814350A:
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r5
+ subs r3, r5
+ cmp r3, r5
+ bhi _0814350A
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ ldr r0, _0814356C @ =gHallOfFame_Pal
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814354C: .4byte gHallOfFame_Gfx
+_08143550: .4byte 0x040000d4
+_08143554: .4byte 0x81000800
+_08143558: .4byte 0x06003800
+_0814355C: .4byte 0x02000000
+_08143560: .4byte 0x06003b80
+_08143564: .4byte 0x06003000
+_08143568: .4byte 0x000003ff
+_0814356C: .4byte gHallOfFame_Pal
+ thumb_func_end sub_81433E0
+
+ thumb_func_start sub_8143570
+sub_8143570: @ 8143570
+ push {r4,lr}
+ bl remove_some_task
+ bl ResetTasks
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _081435A8 @ =gReservedSpritePaletteCount
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, _081435AC @ =gUnknown_0840B514
+ bl LoadCompressedObjectPic
+ ldr r0, _081435B0 @ =gUnknown_0840B524
+ bl LoadCompressedObjectPalette
+ ldr r4, _081435B4 @ =gWindowConfig_81E71B4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081435A8: .4byte gReservedSpritePaletteCount
+_081435AC: .4byte gUnknown_0840B514
+_081435B0: .4byte gUnknown_0840B524
+_081435B4: .4byte gWindowConfig_81E71B4
+ thumb_func_end sub_8143570
+
+ thumb_func_start sub_81435B8
+sub_81435B8: @ 81435B8
+ ldr r1, _081435D8 @ =REG_BG1CNT
+ movs r2, 0xE0
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ subs r2, 0xFD
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ movs r2, 0xDA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_081435D8: .4byte REG_BG1CNT
+ thumb_func_end sub_81435B8
+
+ thumb_func_start sub_81435DC
+sub_81435DC: @ 81435DC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r1, [r2, 0x20]
+ ldr r0, [r2, 0x30]
+ cmp r1, r0
+ beq _08143632
+ ldrh r3, [r2, 0x20]
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ movs r4, 0x30
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bge _081435FC
+ adds r0, r3, 0
+ adds r0, 0xF
+ strh r0, [r2, 0x20]
+_081435FC:
+ ldrh r3, [r2, 0x20]
+ movs r4, 0x20
+ ldrsh r0, [r2, r4]
+ cmp r0, r1
+ ble _0814360C
+ adds r0, r3, 0
+ subs r0, 0xF
+ strh r0, [r2, 0x20]
+_0814360C:
+ ldrh r3, [r2, 0x22]
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r4, 0x32
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bge _08143620
+ adds r0, r3, 0
+ adds r0, 0xA
+ strh r0, [r2, 0x22]
+_08143620:
+ ldrh r3, [r2, 0x22]
+ movs r4, 0x22
+ ldrsh r0, [r2, r4]
+ cmp r0, r1
+ ble _0814363A
+ adds r0, r3, 0
+ subs r0, 0xA
+ strh r0, [r2, 0x22]
+ b _0814363A
+_08143632:
+ movs r0, 0x1
+ strh r0, [r2, 0x2E]
+ ldr r0, _08143640 @ =nullsub_81
+ str r0, [r2, 0x1C]
+_0814363A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143640: .4byte nullsub_81
+ thumb_func_end sub_81435DC
+
+ thumb_func_start nullsub_81
+nullsub_81: @ 8143644
+ bx lr
+ thumb_func_end nullsub_81
+
+ thumb_func_start sub_8143648
+sub_8143648: @ 8143648
+ push {r4-r7,lr}
+ lsls r1, 24
+ ldr r4, _08143670 @ =gUnknown_02024E8C
+ adds r3, r4, 0
+ ldr r2, _08143674 @ =gUnknown_0840B6B8
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ strh r0, [r4, 0x2]
+ ldr r0, _08143678 @ =gUnknown_0840B69C
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r4, 0xC]
+ ldr r0, _0814367C @ =gSpriteAnimTable_81E7C64
+ str r0, [r4, 0x8]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143670: .4byte gUnknown_02024E8C
+_08143674: .4byte gUnknown_0840B6B8
+_08143678: .4byte gUnknown_0840B69C
+_0814367C: .4byte gSpriteAnimTable_81E7C64
+ thumb_func_end sub_8143648
+
+ thumb_func_start sub_8143680
+sub_8143680: @ 8143680
+ push {r4-r7,lr}
+ lsls r1, 24
+ ldr r4, _081436AC @ =gUnknown_02024E8C
+ adds r3, r4, 0
+ ldr r2, _081436B0 @ =gUnknown_0840B6B8
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ strh r0, [r4, 0x2]
+ ldr r0, _081436B4 @ =gUnknown_0840B69C
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r4, 0xC]
+ ldr r0, _081436B8 @ =gUnknown_081EC2A4
+ ldr r0, [r0]
+ str r0, [r4, 0x8]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081436AC: .4byte gUnknown_02024E8C
+_081436B0: .4byte gUnknown_0840B6B8
+_081436B4: .4byte gUnknown_0840B69C
+_081436B8: .4byte gUnknown_081EC2A4
+ thumb_func_end sub_8143680
+
+ thumb_func_start sub_81436BC
+sub_81436BC: @ 81436BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r6, r0, 0
+ mov r9, r1
+ mov r10, r2
+ mov r8, r3
+ ldr r7, [sp, 0x34]
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r9
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r1, r10
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ mov r2, r8
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ lsls r0, r6, 3
+ ldr r1, _08143790 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _08143794 @ =gMonFrontPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08143798 @ =gUnknown_0840B5A0
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ bl LoadSpecialPokePic
+ adds r0, r6, 0
+ ldr r1, [sp, 0x30]
+ adds r2, r7, 0
+ bl species_and_otid_get_pal
+ lsls r4, r5, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ lsls r1, r5, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_8143648
+ ldr r0, _0814379C @ =gUnknown_02024E8C
+ mov r5, r9
+ lsls r5, 16
+ asrs r5, 16
+ mov r9, r5
+ mov r1, r10
+ lsls r1, 16
+ asrs r1, 16
+ mov r10, r1
+ movs r3, 0xA
+ mov r2, r8
+ subs r3, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r1, r9
+ mov r2, r10
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _081437A0 @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r4
+ strb r1, [r2, 0x5]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08143790: .4byte gMonFrontPicTable
+_08143794: .4byte gMonFrontPicCoords
+_08143798: .4byte gUnknown_0840B5A0
+_0814379C: .4byte gUnknown_02024E8C
+_081437A0: .4byte gSprites
+ thumb_func_end sub_81436BC
+
+ thumb_func_start sub_81437A4
+sub_81437A4: @ 81437A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r9, r1
+ mov r10, r2
+ adds r6, r3, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r10, r2
+ lsls r6, 16
+ lsrs r6, 16
+ lsls r7, r0, 3
+ ldr r1, _08143854 @ =gTrainerFrontPicTable
+ mov r8, r1
+ add r8, r7
+ ldr r1, _08143858 @ =gTrainerFrontPicCoords
+ lsls r2, r0, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r5, _0814385C @ =gUnknown_0840B5A0
+ lsls r4, r6, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r8
+ bl DecompressPicFromTable_2
+ ldr r0, _08143860 @ =gTrainerFrontPicPaletteTable
+ adds r0, r7, r0
+ ldr r0, [r0]
+ lsls r4, r6, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ lsls r1, r6, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8143680
+ ldr r0, _08143864 @ =gUnknown_02024E8C
+ mov r1, r9
+ lsls r1, 16
+ asrs r1, 16
+ mov r9, r1
+ mov r2, r10
+ lsls r2, 16
+ asrs r2, 16
+ mov r10, r2
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08143868 @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r4
+ strb r1, [r2, 0x5]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08143854: .4byte gTrainerFrontPicTable
+_08143858: .4byte gTrainerFrontPicCoords
+_0814385C: .4byte gUnknown_0840B5A0
+_08143860: .4byte gTrainerFrontPicPaletteTable
+_08143864: .4byte gUnknown_02024E8C
+_08143868: .4byte gSprites
+ thumb_func_end sub_81437A4
+
+ thumb_func_start sub_814386C
+sub_814386C: @ 814386C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x26]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x78
+ ble _08143882
+ adds r0, r5, 0
+ bl DestroySprite
+ b _081438BA
+_08143882:
+ adds r0, r1, 0x1
+ ldrh r1, [r5, 0x30]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ ldrh r4, [r5, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r0, 0x8
+ ldr r1, _081438C0 @ =gSineTable
+ lsls r4, 1
+ adds r4, r1
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ cmp r0, 0
+ bge _081438B0
+ adds r0, 0xFF
+_081438B0:
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x4
+ strh r0, [r5, 0x2E]
+_081438BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081438C0: .4byte gSineTable
+ thumb_func_end sub_814386C
+
+ thumb_func_start sub_81438C4
+sub_81438C4: @ 81438C4
+ push {r4,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl Random
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x7
+ ands r2, r0
+ negs r2, r2
+ ldr r0, _08143934 @ =gSpriteTemplate_840B7A4
+ lsls r4, 16
+ asrs r4, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r1, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08143938 @ =gSprites
+ adds r4, r1, r0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x11
+ bl __umodsi3
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0
+ beq _0814393C
+ movs r0, 0
+ b _0814393E
+ .align 2, 0
+_08143934: .4byte gSpriteTemplate_840B7A4
+_08143938: .4byte gSprites
+_0814393C:
+ movs r0, 0x1
+_0814393E:
+ strh r0, [r4, 0x30]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81438C4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/intro_credits_graphics.s b/asm/intro_credits_graphics.s
new file mode 100644
index 000000000..8d73f6cf6
--- /dev/null
+++ b/asm/intro_credits_graphics.s
@@ -0,0 +1,1166 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start load_intro_part2_graphics
+load_intro_part2_graphics: @ 8148B8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08148BE8 @ =gUnknown_0841225C
+ ldr r1, _08148BEC @ =0x06004000
+ bl LZ77UnCompVram
+ ldr r0, _08148BF0 @ =gUnknown_084126DC
+ ldr r1, _08148BF4 @ =0x06007800
+ bl LZ77UnCompVram
+ ldr r0, _08148BF8 @ =gUnknown_084121FC
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ cmp r4, 0
+ beq _08148BB4
+ cmp r4, 0x1
+ beq _08148C14
+_08148BB4:
+ ldr r0, _08148BFC @ =gUnknown_084128D8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148C00 @ =gUnknown_08412EB4
+ ldr r1, _08148C04 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148C08 @ =gUnknown_08412818
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148C0C @ =gUnknown_08416B54
+ bl LoadCompressedObjectPic
+ ldr r0, _08148C10 @ =gUnknown_08413184
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149248
+ b _08148C46
+ .align 2, 0
+_08148BE8: .4byte gUnknown_0841225C
+_08148BEC: .4byte 0x06004000
+_08148BF0: .4byte gUnknown_084126DC
+_08148BF4: .4byte 0x06007800
+_08148BF8: .4byte gUnknown_084121FC
+_08148BFC: .4byte gUnknown_084128D8
+_08148C00: .4byte gUnknown_08412EB4
+_08148C04: .4byte 0x06003000
+_08148C08: .4byte gUnknown_08412818
+_08148C0C: .4byte gUnknown_08416B54
+_08148C10: .4byte gUnknown_08413184
+_08148C14:
+ ldr r0, _08148C58 @ =gUnknown_08413340
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148C5C @ =gUnknown_084139C8
+ ldr r1, _08148C60 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148C64 @ =gUnknown_08413300
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148C68 @ =gUnknown_08416BDC
+ bl LoadCompressedObjectPic
+ ldr r0, _08148C6C @ =gUnknown_08413CCC
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149264
+_08148C46:
+ ldr r1, _08148C70 @ =gUnknown_0203935C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08148C74 @ =gReservedSpritePaletteCount
+ movs r0, 0x8
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148C58: .4byte gUnknown_08413340
+_08148C5C: .4byte gUnknown_084139C8
+_08148C60: .4byte 0x06003000
+_08148C64: .4byte gUnknown_08413300
+_08148C68: .4byte gUnknown_08416BDC
+_08148C6C: .4byte gUnknown_08413CCC
+_08148C70: .4byte gUnknown_0203935C
+_08148C74: .4byte gReservedSpritePaletteCount
+ thumb_func_end load_intro_part2_graphics
+
+ thumb_func_start sub_8148C78
+sub_8148C78: @ 8148C78
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08148CA4 @ =REG_BG3CNT
+ ldr r2, _08148CA8 @ =0x00000603
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ adds r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _08148CAC @ =0x00000f05
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0xF2
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148CA4: .4byte REG_BG3CNT
+_08148CA8: .4byte 0x00000603
+_08148CAC: .4byte 0x00000f05
+ thumb_func_end sub_8148C78
+
+ thumb_func_start sub_8148CB0
+sub_8148CB0: @ 8148CB0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08148CD4 @ =gUnknown_0841225C
+ ldr r1, _08148CD8 @ =0x06004000
+ bl LZ77UnCompVram
+ ldr r0, _08148CDC @ =gUnknown_084126DC
+ ldr r1, _08148CE0 @ =0x06007800
+ bl LZ77UnCompVram
+ cmp r4, 0x4
+ bhi _08148CFC
+ lsls r0, r4, 2
+ ldr r1, _08148CE4 @ =_08148CE8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08148CD4: .4byte gUnknown_0841225C
+_08148CD8: .4byte 0x06004000
+_08148CDC: .4byte gUnknown_084126DC
+_08148CE0: .4byte 0x06007800
+_08148CE4: .4byte _08148CE8
+ .align 2, 0
+_08148CE8:
+ .4byte _08148CFC
+ .4byte _08148D58
+ .4byte _08148DC4
+ .4byte _08148DC4
+ .4byte _08148E1C
+_08148CFC:
+ ldr r0, _08148D34 @ =gUnknown_084121FC
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148D38 @ =gUnknown_084128D8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148D3C @ =gUnknown_08412EB4
+ ldr r1, _08148D40 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148D44 @ =gUnknown_08412818
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148D48 @ =gUnknown_08416B54
+ bl LoadCompressedObjectPic
+ ldr r0, _08148D4C @ =gUnknown_084131C4
+ ldr r1, _08148D50 @ =0x06010000
+ bl LZ77UnCompVram
+ ldr r0, _08148D54 @ =gUnknown_08413184
+ b _08148D8E
+ .align 2, 0
+_08148D34: .4byte gUnknown_084121FC
+_08148D38: .4byte gUnknown_084128D8
+_08148D3C: .4byte gUnknown_08412EB4
+_08148D40: .4byte 0x06003000
+_08148D44: .4byte gUnknown_08412818
+_08148D48: .4byte gUnknown_08416B54
+_08148D4C: .4byte gUnknown_084131C4
+_08148D50: .4byte 0x06010000
+_08148D54: .4byte gUnknown_08413184
+_08148D58:
+ ldr r0, _08148DA0 @ =gUnknown_0841221C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148DA4 @ =gUnknown_084128D8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148DA8 @ =gUnknown_08412EB4
+ ldr r1, _08148DAC @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148DB0 @ =gUnknown_08412878
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148DB4 @ =gUnknown_08416B54
+ bl LoadCompressedObjectPic
+ ldr r0, _08148DB8 @ =gUnknown_084131C4
+ ldr r1, _08148DBC @ =0x06010000
+ bl LZ77UnCompVram
+ ldr r0, _08148DC0 @ =gUnknown_084131A4
+_08148D8E:
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149248
+ b _08148E58
+ .align 2, 0
+_08148DA0: .4byte gUnknown_0841221C
+_08148DA4: .4byte gUnknown_084128D8
+_08148DA8: .4byte gUnknown_08412EB4
+_08148DAC: .4byte 0x06003000
+_08148DB0: .4byte gUnknown_08412878
+_08148DB4: .4byte gUnknown_08416B54
+_08148DB8: .4byte gUnknown_084131C4
+_08148DBC: .4byte 0x06010000
+_08148DC0: .4byte gUnknown_084131A4
+_08148DC4:
+ ldr r0, _08148E04 @ =gUnknown_0841221C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E08 @ =gUnknown_08413340
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148E0C @ =gUnknown_084139C8
+ ldr r1, _08148E10 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r4, _08148E14 @ =gUnknown_08413320
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E18 @ =gUnknown_08416BDC
+ bl LoadCompressedObjectPic
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149264
+ b _08148E58
+ .align 2, 0
+_08148E04: .4byte gUnknown_0841221C
+_08148E08: .4byte gUnknown_08413340
+_08148E0C: .4byte gUnknown_084139C8
+_08148E10: .4byte 0x06003000
+_08148E14: .4byte gUnknown_08413320
+_08148E18: .4byte gUnknown_08416BDC
+_08148E1C:
+ ldr r0, _08148E6C @ =gUnknown_0841223C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E70 @ =gUnknown_08413E78
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148E74 @ =gUnknown_08414084
+ ldr r1, _08148E78 @ =0x06003000
+ bl LZ77UnCompVram
+ ldr r0, _08148E7C @ =gUnknown_08413E38
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r0, _08148E80 @ =gUnknown_08416C70
+ bl LoadCompressedObjectPic
+ ldr r0, _08148E84 @ =gUnknown_08414064
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149280
+_08148E58:
+ ldr r1, _08148E88 @ =gReservedSpritePaletteCount
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r1, _08148E8C @ =gUnknown_0203935C
+ movs r0, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148E6C: .4byte gUnknown_0841223C
+_08148E70: .4byte gUnknown_08413E78
+_08148E74: .4byte gUnknown_08414084
+_08148E78: .4byte 0x06003000
+_08148E7C: .4byte gUnknown_08413E38
+_08148E80: .4byte gUnknown_08416C70
+_08148E84: .4byte gUnknown_08414064
+_08148E88: .4byte gReservedSpritePaletteCount
+_08148E8C: .4byte gUnknown_0203935C
+ thumb_func_end sub_8148CB0
+
+ thumb_func_start sub_8148E90
+sub_8148E90: @ 8148E90
+ ldr r1, _08148EB4 @ =REG_BG3CNT
+ ldr r2, _08148EB8 @ =0x00000603
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ adds r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _08148EBC @ =0x00000f05
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08148EB4: .4byte REG_BG3CNT
+_08148EB8: .4byte 0x00000603
+_08148EBC: .4byte 0x00000f05
+ thumb_func_end sub_8148E90
+
+ thumb_func_start sub_8148EC0
+sub_8148EC0: @ 8148EC0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r1, _08148F34 @ =sub_8148F3C
+ mov r9, r1
+ mov r0, r9
+ movs r1, 0
+ str r3, [sp]
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _08148F38 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ strh r5, [r0, 0x8]
+ strh r6, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ strh r2, [r0, 0xE]
+ mov r1, r8
+ strh r1, [r0, 0x10]
+ strh r2, [r0, 0x12]
+ strh r2, [r0, 0x14]
+ ldr r3, [sp]
+ strh r3, [r0, 0x16]
+ movs r1, 0x8
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ adds r0, r4, 0
+ bl _call_via_r9
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08148F34: .4byte sub_8148F3C
+_08148F38: .4byte gTasks
+ thumb_func_end sub_8148EC0
+
+ thumb_func_start sub_8148F3C
+sub_8148F3C: @ 8148F3C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08148FB4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0xA]
+ lsls r4, r0, 16
+ adds r6, r1, 0
+ cmp r4, 0
+ beq _08148F7C
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0xE]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0xC]
+ strh r2, [r3, 0xE]
+ ldr r0, _08148FB8 @ =REG_BG1HOFS
+ strh r1, [r0]
+ ldr r2, _08148FBC @ =REG_BG1VOFS
+ ldr r1, _08148FC0 @ =gUnknown_02039358
+ ldr r0, _08148FC4 @ =gUnknown_0203935A
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+_08148F7C:
+ ldrh r0, [r3, 0x10]
+ lsls r4, r0, 16
+ cmp r4, 0
+ beq _08148FD8
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0x14]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0x12]
+ strh r2, [r3, 0x14]
+ ldr r0, _08148FC8 @ =REG_BG2HOFS
+ strh r1, [r0]
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08148FD0
+ ldr r2, _08148FCC @ =REG_BG2VOFS
+ ldr r1, _08148FC0 @ =gUnknown_02039358
+ ldr r0, _08148FC4 @ =gUnknown_0203935A
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+ b _08148FD8
+ .align 2, 0
+_08148FB4: .4byte gTasks
+_08148FB8: .4byte REG_BG1HOFS
+_08148FBC: .4byte REG_BG1VOFS
+_08148FC0: .4byte gUnknown_02039358
+_08148FC4: .4byte gUnknown_0203935A
+_08148FC8: .4byte REG_BG2HOFS
+_08148FCC: .4byte REG_BG2VOFS
+_08148FD0:
+ ldr r0, _08149010 @ =REG_BG2VOFS
+ ldr r1, _08149014 @ =gUnknown_02039358
+ ldrh r1, [r1]
+ strh r1, [r0]
+_08148FD8:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r6
+ ldrh r0, [r3, 0x16]
+ lsls r4, r0, 16
+ cmp r4, 0
+ beq _08149008
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0x1A]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0x18]
+ strh r2, [r3, 0x1A]
+ ldr r0, _08149018 @ =REG_BG3HOFS
+ strh r1, [r0]
+ ldr r1, _0814901C @ =REG_BG3VOFS
+ ldr r0, _08149014 @ =gUnknown_02039358
+ ldrh r0, [r0]
+ strh r0, [r1]
+_08149008:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149010: .4byte REG_BG2VOFS
+_08149014: .4byte gUnknown_02039358
+_08149018: .4byte REG_BG3HOFS
+_0814901C: .4byte REG_BG3VOFS
+ thumb_func_end sub_8148F3C
+
+ thumb_func_start sub_8149020
+sub_8149020: @ 8149020
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08149100
+ cmp r0, 0x1
+ ble _08149034
+ cmp r0, 0x2
+ beq _08149098
+_08149034:
+ ldr r0, _08149060 @ =gMain
+ ldr r2, [r0, 0x20]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _08149100
+ ldr r0, _08149064 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08149100
+ movs r0, 0x4
+ ands r2, r0
+ cmp r2, 0
+ beq _0814906C
+ ldr r2, _08149068 @ =gPlttBufferUnfaded
+ ldrh r1, [r2, 0x12]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r1, [r2, 0x14]
+ b _08149076
+ .align 2, 0
+_08149060: .4byte gMain
+_08149064: .4byte gPaletteFade
+_08149068: .4byte gPlttBufferUnfaded
+_0814906C:
+ ldr r2, _08149094 @ =gPlttBufferUnfaded
+ ldrh r1, [r2, 0x14]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r1, [r2, 0x12]
+_08149076:
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r4, r0, 0
+ mov r0, sp
+ movs r1, 0x9
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ bl LoadPalette
+ b _08149100
+ .align 2, 0
+_08149094: .4byte gPlttBufferUnfaded
+_08149098:
+ ldr r0, _081490C8 @ =gMain
+ ldr r2, [r0, 0x20]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _08149100
+ ldr r0, _081490CC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08149100
+ movs r0, 0x4
+ ands r2, r0
+ cmp r2, 0
+ beq _081490D8
+ mov r1, sp
+ ldr r2, _081490D0 @ =0x00003d27
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _081490D4 @ =0x00000295
+ b _081490E6
+ .align 2, 0
+_081490C8: .4byte gMain
+_081490CC: .4byte gPaletteFade
+_081490D0: .4byte 0x00003d27
+_081490D4: .4byte 0x00000295
+_081490D8:
+ mov r1, sp
+ movs r2, 0xC7
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08149108 @ =0x00003d27
+_081490E6:
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r4, r1, 0
+ mov r0, sp
+ movs r1, 0xC
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0x2
+ bl LoadPalette
+_08149100:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149108: .4byte 0x00003d27
+ thumb_func_end sub_8149020
+
+ thumb_func_start sub_814910C
+sub_814910C: @ 814910C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08149124 @ =gUnknown_0203935C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08149128
+ adds r0, r2, 0
+ bl DestroySprite
+ b _0814916C
+ .align 2, 0
+_08149124: .4byte gUnknown_0203935C
+_08149128:
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ lsls r0, 16
+ ldrh r1, [r2, 0x32]
+ orrs r0, r1
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ asrs r1, r0, 16
+ strh r1, [r2, 0x20]
+ strh r0, [r2, 0x32]
+ cmp r1, 0xFF
+ ble _08149144
+ ldr r0, _08149158 @ =0x0000ffe0
+ strh r0, [r2, 0x20]
+_08149144:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _08149164
+ ldr r1, _0814915C @ =gUnknown_02039358
+ ldr r0, _08149160 @ =gUnknown_0203935A
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ b _08149168
+ .align 2, 0
+_08149158: .4byte 0x0000ffe0
+_0814915C: .4byte gUnknown_02039358
+_08149160: .4byte gUnknown_0203935A
+_08149164:
+ ldr r0, _08149170 @ =gUnknown_02039358
+ ldrh r0, [r0]
+_08149168:
+ negs r0, r0
+ strh r0, [r2, 0x26]
+_0814916C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149170: .4byte gUnknown_02039358
+ thumb_func_end sub_814910C
+
+ thumb_func_start sub_8149174
+sub_8149174: @ 8149174
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ movs r7, 0
+ cmp r7, r8
+ bcs _0814922A
+ ldr r0, _0814923C @ =gSprites
+ mov r10, r0
+ movs r2, 0x3F
+ mov r9, r2
+_0814919E:
+ lsls r6, r7, 3
+ ldr r0, [sp, 0x4]
+ adds r6, r0
+ ldrb r1, [r6, 0x1]
+ ldrb r2, [r6, 0x2]
+ ldrb r3, [r6, 0x3]
+ ldr r0, _08149240 @ =gSpriteTemplate_8416B3C
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ mov r2, r10
+ adds r4, r5, r2
+ ldrb r2, [r6]
+ lsls r1, r2, 26
+ lsrs r1, 30
+ lsrs r2, 6
+ adds r0, r4, 0
+ movs r3, 0
+ bl CalcCenterToCornerVec
+ ldrb r3, [r4, 0x5]
+ movs r0, 0xC
+ orrs r3, r0
+ strb r3, [r4, 0x5]
+ ldrb r1, [r6]
+ lsls r1, 26
+ lsrs r1, 30
+ lsls r1, 6
+ ldrb r2, [r4, 0x1]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r6]
+ lsrs r1, 6
+ lsls r1, 6
+ ldrb r2, [r4, 0x3]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ movs r0, 0xF
+ ands r3, r0
+ strb r3, [r4, 0x5]
+ ldr r0, _08149244 @ =gSprites + 0x8
+ adds r5, r0
+ ldr r2, [sp, 0x8]
+ str r2, [r5]
+ ldrb r1, [r6]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r1, 0
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, r8
+ bcc _0814919E
+_0814922A:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814923C: .4byte gSprites
+_08149240: .4byte gSpriteTemplate_8416B3C
+_08149244: .4byte gSprites + 0x8
+ thumb_func_end sub_8149174
+
+ thumb_func_start sub_8149248
+sub_8149248: @ 8149248
+ push {lr}
+ ldr r1, _0814925C @ =gUnknown_08416B94
+ ldr r2, _08149260 @ =gSpriteAnimTable_8416B84
+ movs r0, 0
+ movs r3, 0x9
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814925C: .4byte gUnknown_08416B94
+_08149260: .4byte gSpriteAnimTable_8416B84
+ thumb_func_end sub_8149248
+
+ thumb_func_start sub_8149264
+sub_8149264: @ 8149264
+ push {lr}
+ ldr r1, _08149278 @ =gUnknown_08416C10
+ ldr r2, _0814927C @ =gSpriteAnimTable_8416C04
+ movs r0, 0x1
+ movs r3, 0xC
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149278: .4byte gUnknown_08416C10
+_0814927C: .4byte gSpriteAnimTable_8416C04
+ thumb_func_end sub_8149264
+
+ thumb_func_start sub_8149280
+sub_8149280: @ 8149280
+ push {lr}
+ ldr r1, _08149294 @ =gUnknown_08416C8C
+ ldr r2, _08149298 @ =gSpriteAnimTable_8416C88
+ movs r0, 0x1
+ movs r3, 0x6
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149294: .4byte gUnknown_08416C8C
+_08149298: .4byte gSpriteAnimTable_8416C88
+ thumb_func_end sub_8149280
+
+ thumb_func_start nullsub_82
+nullsub_82: @ 814929C
+ bx lr
+ thumb_func_end nullsub_82
+
+ thumb_func_start sub_81492A0
+sub_81492A0: @ 81492A0
+ push {r4,lr}
+ ldr r4, _0814930C @ =gSprites
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ movs r2, 0x3E
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0x4
+ ands r2, r1
+ mov r1, r12
+ ldrb r3, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x20]
+ strh r1, [r0, 0x20]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x24]
+ strh r1, [r0, 0x24]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814930C: .4byte gSprites
+ thumb_func_end sub_81492A0
+
+ thumb_func_start intro_create_brendan_sprite
+intro_create_brendan_sprite: @ 8149310
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, _0814935C @ =gSpriteTemplate_8416CDC
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _08149360 @ =gSpriteTemplate_8416D2C
+ adds r4, 0x8
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08149364 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strh r6, [r1, 0x2E]
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814935C: .4byte gSpriteTemplate_8416CDC
+_08149360: .4byte gSpriteTemplate_8416D2C
+_08149364: .4byte gSprites
+ thumb_func_end intro_create_brendan_sprite
+
+ thumb_func_start intro_create_may_sprite
+intro_create_may_sprite: @ 8149368
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, _081493B4 @ =gSpriteTemplate_8416CF4
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _081493B8 @ =gSpriteTemplate_8416D44
+ adds r4, 0x8
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081493BC @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strh r6, [r1, 0x2E]
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081493B4: .4byte gSpriteTemplate_8416CF4
+_081493B8: .4byte gSpriteTemplate_8416D44
+_081493BC: .4byte gSprites
+ thumb_func_end intro_create_may_sprite
+
+ thumb_func_start nullsub_83
+nullsub_83: @ 81493C0
+ bx lr
+ thumb_func_end nullsub_83
+
+ thumb_func_start sub_81493C4
+sub_81493C4: @ 81493C4
+ push {r4,lr}
+ ldr r4, _08149420 @ =gSprites
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ movs r2, 0x3E
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0x4
+ ands r2, r1
+ mov r1, r12
+ ldrb r3, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x22]
+ strh r1, [r0, 0x22]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x24]
+ strh r1, [r0, 0x24]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149420: .4byte gSprites
+ thumb_func_end sub_81493C4
+
+ thumb_func_start intro_create_latios_sprite
+intro_create_latios_sprite: @ 8149424
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r2, r0, 0
+ adds r5, r1, 0
+ ldr r0, _08149490 @ =gSpriteTemplate_8416D7C
+ mov r8, r0
+ lsls r2, 16
+ asrs r4, r2, 16
+ ldr r0, _08149494 @ =0xffe00000
+ adds r2, r0
+ asrs r2, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, r8
+ adds r1, r2, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r4, 0x20
+ lsls r4, 16
+ asrs r4, 16
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08149498 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ strh r6, [r0, 0x2E]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _0814949C @ =sub_81493C4
+ str r0, [r4]
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149490: .4byte gSpriteTemplate_8416D7C
+_08149494: .4byte 0xffe00000
+_08149498: .4byte gSprites
+_0814949C: .4byte sub_81493C4
+ thumb_func_end intro_create_latios_sprite
+
+ thumb_func_start intro_create_latias_sprite
+intro_create_latias_sprite: @ 81494A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r2, r0, 0
+ adds r5, r1, 0
+ ldr r0, _0814950C @ =gSpriteTemplate_8416D94
+ mov r8, r0
+ lsls r2, 16
+ asrs r4, r2, 16
+ ldr r0, _08149510 @ =0xffe00000
+ adds r2, r0
+ asrs r2, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, r8
+ adds r1, r2, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r4, 0x20
+ lsls r4, 16
+ asrs r4, 16
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08149514 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ strh r6, [r0, 0x2E]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _08149518 @ =sub_81493C4
+ str r0, [r4]
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814950C: .4byte gSpriteTemplate_8416D94
+_08149510: .4byte 0xffe00000
+_08149514: .4byte gSprites
+_08149518: .4byte sub_81493C4
+ thumb_func_end intro_create_latias_sprite
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 85375a87a..17e399160 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -709,8 +709,8 @@ _080A370A:
bx r0
thumb_func_end sub_80A36B8
- thumb_func_start sub_80A3714
-sub_80A3714: @ 80A3714
+ thumb_func_start ClearBag
+ClearBag: @ 80A3714
push {r4,r5,lr}
movs r4, 0
ldr r5, _080A373C @ =gBagPockets
@@ -731,7 +731,7 @@ _080A371A:
bx r0
.align 2, 0
_080A373C: .4byte gBagPockets
- thumb_func_end sub_80A3714
+ thumb_func_end ClearBag
thumb_func_start sub_80A3740
sub_80A3740: @ 80A3740
@@ -812,13 +812,13 @@ sub_80A37C0: @ 80A37C0
ldr r0, _080A37F4 @ =sub_80A50C8
str r0, [r1]
movs r0, 0
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
movs r0, 0x1
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
movs r0, 0x2
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
movs r0, 0x3
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
pop {r0}
bx r0
.align 2, 0
@@ -2516,7 +2516,11 @@ _080A4470:
bl ItemId_GetItem
adds r1, r0, 0
adds r0, r7, 0
+.ifdef ENGLISH
movs r2, 0x60
+.else
+ movs r2, 0x63
+.endif
movs r3, 0
bl sub_8072C74
ldr r0, _080A44F0 @ =gStringVar1
@@ -3413,7 +3417,7 @@ _080A4BB4: .4byte 0x00000103
_080A4BB8: .4byte gOtherText_Walk
_080A4BBC:
adds r0, r4, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3784,13 +3788,13 @@ sub_80A4E8C: @ 80A4E8C
movs r1, 0x1
bl sub_80F979C
movs r0, 0
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x1
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x2
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x3
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
ldr r5, _080A4F04 @ =gBGTilemapBuffers + 0x1000
lsls r4, 24
asrs r4, 24
@@ -5128,7 +5132,7 @@ sub_80A599C: @ 80A599C
movs r4, 0
strh r2, [r1, 0x18]
strh r3, [r1, 0x1A]
- ldr r1, _080A59CC @ =gUnknown_03005CE0
+ ldr r1, _080A59CC @ =gLastFieldPokeMenuOpened
strb r4, [r1]
bl sub_80A5AE4
pop {r4}
@@ -5137,7 +5141,7 @@ sub_80A599C: @ 80A599C
.align 2, 0
_080A59C4: .4byte gTasks
_080A59C8: .4byte sub_805469C
-_080A59CC: .4byte gUnknown_03005CE0
+_080A59CC: .4byte gLastFieldPokeMenuOpened
thumb_func_end sub_80A599C
thumb_func_start sub_80A59D0
@@ -5261,7 +5265,7 @@ sub_80A5AAC: @ 80A5AAC
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r1, _080A5AE0 @ =sub_80A5B00
+ ldr r1, _080A5AE0 @ =HandleItemMenuPaletteFade
str r1, [r0]
add sp, 0x4
pop {r4}
@@ -5269,7 +5273,7 @@ sub_80A5AAC: @ 80A5AAC
bx r0
.align 2, 0
_080A5ADC: .4byte gTasks
-_080A5AE0: .4byte sub_80A5B00
+_080A5AE0: .4byte HandleItemMenuPaletteFade
thumb_func_end sub_80A5AAC
thumb_func_start sub_80A5AE4
@@ -5287,8 +5291,8 @@ sub_80A5AE4: @ 80A5AE4
bx r0
thumb_func_end sub_80A5AE4
- thumb_func_start sub_80A5B00
-sub_80A5B00: @ 80A5B00
+ thumb_func_start HandleItemMenuPaletteFade
+HandleItemMenuPaletteFade: @ 80A5B00
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -5318,7 +5322,7 @@ _080A5B32:
.align 2, 0
_080A5B38: .4byte gTasks + 0x8
_080A5B3C: .4byte gPaletteFade
- thumb_func_end sub_80A5B00
+ thumb_func_end HandleItemMenuPaletteFade
thumb_func_start sub_80A5B40
sub_80A5B40: @ 80A5B40
@@ -5420,7 +5424,7 @@ sub_80A5BF8: @ 80A5BF8
bl sub_80A73FC
bl sub_80A7590
ldr r1, _080A5C1C @ =gOtherText_NoPokemon
- ldr r2, _080A5C20 @ =sub_80A5C48
+ ldr r2, _080A5C20 @ =CleanUpItemMenuMessage
adds r0, r4, 0
movs r3, 0x1
bl DisplayCannotUseItemMessage
@@ -5429,7 +5433,7 @@ sub_80A5BF8: @ 80A5BF8
bx r0
.align 2, 0
_080A5C1C: .4byte gOtherText_NoPokemon
-_080A5C20: .4byte sub_80A5C48
+_080A5C20: .4byte CleanUpItemMenuMessage
thumb_func_end sub_80A5BF8
thumb_func_start sub_80A5C24
@@ -5450,8 +5454,8 @@ sub_80A5C24: @ 80A5C24
bx r0
thumb_func_end sub_80A5C24
- thumb_func_start sub_80A5C48
-sub_80A5C48: @ 80A5C48
+ thumb_func_start CleanUpItemMenuMessage
+CleanUpItemMenuMessage: @ 80A5C48
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
@@ -5489,10 +5493,10 @@ sub_80A5C48: @ 80A5C48
_080A5C90: .4byte gBGTilemapBuffers + 0x800
_080A5C94: .4byte gTasks
_080A5C98: .4byte sub_80A5C24
- thumb_func_end sub_80A5C48
+ thumb_func_end CleanUpItemMenuMessage
- thumb_func_start sub_80A5C9C
-sub_80A5C9C: @ 80A5C9C
+ thumb_func_start CleanUpOverworldMessage
+CleanUpOverworldMessage: @ 80A5C9C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
@@ -5509,10 +5513,10 @@ sub_80A5C9C: @ 80A5C9C
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_80A5C9C
+ thumb_func_end CleanUpOverworldMessage
- thumb_func_start sub_80A5CC4
-sub_80A5CC4: @ 80A5CC4
+ thumb_func_start ExecuteItemUseFromBlackPalette
+ExecuteItemUseFromBlackPalette: @ 80A5CC4
push {lr}
bl pal_fill_black
ldr r0, _080A5CD8 @ =Task_CallItemUseOnFieldCallback
@@ -5522,7 +5526,7 @@ sub_80A5CC4: @ 80A5CC4
bx r0
.align 2, 0
_080A5CD8: .4byte Task_CallItemUseOnFieldCallback
- thumb_func_end sub_80A5CC4
+ thumb_func_end ExecuteItemUseFromBlackPalette
thumb_func_start Task_CallItemUseOnFieldCallback
Task_CallItemUseOnFieldCallback: @ 80A5CDC
@@ -5786,7 +5790,7 @@ sub_80A5EA0: @ 80A5EA0
bl sub_80A5DA0
ldr r1, _080A5EF4 @ =gUnknown_083C16F4
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
b _080A5F0C
.align 2, 0
_080A5EE8: .4byte gMain
@@ -6064,7 +6068,7 @@ _080A6128:
lsrs r1, r2, 16
strh r1, [r0, 0x18]
strh r2, [r0, 0x1A]
- ldr r1, _080A6160 @ =sub_80A5B00
+ ldr r1, _080A6160 @ =HandleItemMenuPaletteFade
str r1, [r0]
ldr r1, _080A6164 @ =gUnknown_02038561
movs r0, 0x1
@@ -6080,7 +6084,7 @@ _080A6128:
.align 2, 0
_080A6158: .4byte gTasks
_080A615C: .4byte sub_808B020
-_080A6160: .4byte sub_80A5B00
+_080A6160: .4byte HandleItemMenuPaletteFade
_080A6164: .4byte gUnknown_02038561
_080A6168:
adds r0, r6, 0
@@ -6302,7 +6306,7 @@ sub_80A631C: @ 80A631C
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080A6344 @ =gUnknown_0300485C
+ ldr r2, _080A6344 @ =gFieldCallback
ldr r1, _080A6348 @ =sub_80B3050
str r1, [r2]
ldr r2, _080A634C @ =gTasks
@@ -6318,7 +6322,7 @@ sub_80A631C: @ 80A631C
pop {r0}
bx r0
.align 2, 0
-_080A6344: .4byte gUnknown_0300485C
+_080A6344: .4byte gFieldCallback
_080A6348: .4byte sub_80B3050
_080A634C: .4byte gTasks
_080A6350: .4byte c2_exit_to_overworld_2_switch
@@ -6695,7 +6699,7 @@ sub_80A6650: @ 80A6650
bl sub_80A5D78
ldr r1, _080A666C @ =gUnknown_083C16FC
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
pop {r4}
pop {r0}
bx r0
@@ -7202,8 +7206,8 @@ sub_80A6A4C: @ 80A6A4C
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080A6A74 @ =gUnknown_0300485C
- ldr r1, _080A6A78 @ =sub_813A0F8
+ ldr r2, _080A6A74 @ =gFieldCallback
+ ldr r1, _080A6A78 @ =ItemStorage_ReturnToMenuAfterDeposit
str r1, [r2]
ldr r2, _080A6A7C @ =gTasks
lsls r1, r0, 2
@@ -7218,8 +7222,8 @@ sub_80A6A4C: @ 80A6A4C
pop {r0}
bx r0
.align 2, 0
-_080A6A74: .4byte gUnknown_0300485C
-_080A6A78: .4byte sub_813A0F8
+_080A6A74: .4byte gFieldCallback
+_080A6A78: .4byte ItemStorage_ReturnToMenuAfterDeposit
_080A6A7C: .4byte gTasks
_080A6A80: .4byte c2_exit_to_overworld_2_switch
thumb_func_end sub_80A6A4C
@@ -7539,7 +7543,7 @@ _080A6D14:
thumb_func_start sub_80A6D1C
sub_80A6D1C: @ 80A6D1C
push {r4,r5,lr}
- bl HideMapNamePopUpWindow
+ bl HideMapNamePopup
ldr r0, _080A6D70 @ =gSaveBlock1
ldr r1, _080A6D74 @ =0x00000496
adds r4, r0, r1
@@ -7553,7 +7557,7 @@ sub_80A6D1C: @ 80A6D1C
cmp r5, 0x1
bne _080A6D80
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeMapObjects
bl sub_80594C0
bl sub_80597F4
ldr r1, _080A6D78 @ =gScriptItemId
@@ -7968,7 +7972,7 @@ sub_80A7094: @ 80A7094
movs r3, 0
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
- ldr r0, _080A70D4 @ =sub_80A5B00
+ ldr r0, _080A70D4 @ =HandleItemMenuPaletteFade
str r0, [r1]
movs r0, 0x1
negs r0, r0
@@ -7983,7 +7987,7 @@ sub_80A7094: @ 80A7094
.align 2, 0
_080A70CC: .4byte gTasks
_080A70D0: .4byte sub_802E424
-_080A70D4: .4byte sub_80A5B00
+_080A70D4: .4byte HandleItemMenuPaletteFade
thumb_func_end sub_80A7094
thumb_func_start sub_80A70D8
@@ -8264,7 +8268,7 @@ _080A72F4:
mov r0, r8
subs r0, 0x8
adds r0, r6, r0
- ldr r1, _080A7354 @ =sub_80A5B00
+ ldr r1, _080A7354 @ =HandleItemMenuPaletteFade
str r1, [r0]
movs r0, 0x1
negs r0, r0
@@ -8279,7 +8283,7 @@ _080A7344: .4byte gBGTilemapBuffers + 0x800
_080A7348: .4byte gSaveBlock1 + 0x560
_080A734C: .4byte 0x0201e000
_080A7350: .4byte sub_802E424
-_080A7354: .4byte sub_80A5B00
+_080A7354: .4byte HandleItemMenuPaletteFade
_080A7358:
ldrh r0, [r7, 0x1E]
adds r0, 0x1
@@ -8369,7 +8373,7 @@ sub_80A73F0: @ 80A73F0
thumb_func_start sub_80A73FC
sub_80A73FC: @ 80A73FC
push {lr}
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
bl sub_814AD44
pop {r0}
bx r0
@@ -9682,7 +9686,7 @@ sub_80A7CF8: @ 80A7CF8
lsrs r4, r0, 24
cmp r4, 0x2A
bne _080A7D44
- bl sub_80B4940
+ bl IsEnigmaBerryValid
cmp r0, 0x1
bne _080A7D44
ldr r4, _080A7D34 @ =gSaveBlock1 + 0x317C
diff --git a/asm/item_use.s b/asm/item_use.s
deleted file mode 100644
index 65953583e..000000000
--- a/asm/item_use.s
+++ /dev/null
@@ -1,3017 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80C8FAC
-sub_80C8FAC: @ 80C8FAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8FD0 @ =gScriptItemId
- ldrh r0, [r1]
- cmp r0, 0xAF
- bne _080C8FD8
- ldr r1, _080C8FD4 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x26]
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _080C8FE6
- .align 2, 0
-_080C8FD0: .4byte gScriptItemId
-_080C8FD4: .4byte gTasks
-_080C8FD8:
- ldrh r0, [r1]
- bl ItemId_GetType
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r2, r4, 2
-_080C8FE6:
- ldr r0, _080C9008 @ =gTasks
- adds r1, r2, r4
- lsls r1, 3
- adds r1, r0
- ldr r2, _080C900C @ =gUnknown_083D61E4
- lsls r0, r3, 2
- adds r0, r2
- ldr r2, [r0]
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080C9010 @ =sub_80A5B00
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9008: .4byte gTasks
-_080C900C: .4byte gUnknown_083D61E4
-_080C9010: .4byte sub_80A5B00
- thumb_func_end sub_80C8FAC
-
- thumb_func_start unknown_ItemMenu_Confirm
-unknown_ItemMenu_Confirm: @ 80C9014
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C8FAC
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end unknown_ItemMenu_Confirm
-
- thumb_func_start sub_80C9038
-sub_80C9038: @ 80C9038
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C8FAC
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- thumb_func_end sub_80C9038
-
- thumb_func_start SetUpItemUseOnFieldCallback
-SetUpItemUseOnFieldCallback: @ 80C9050
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C9078 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080C9084
- ldr r1, _080C907C @ =gUnknown_0300485C
- ldr r0, _080C9080 @ =sub_80A5CC4
- str r0, [r1]
- adds r0, r2, 0
- bl unknown_ItemMenu_Confirm
- b _080C908E
- .align 2, 0
-_080C9078: .4byte gTasks
-_080C907C: .4byte gUnknown_0300485C
-_080C9080: .4byte sub_80A5CC4
-_080C9084:
- ldr r0, _080C9094 @ =gUnknown_03005D00
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
-_080C908E:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9094: .4byte gUnknown_03005D00
- thumb_func_end SetUpItemUseOnFieldCallback
-
- thumb_func_start sub_80C9098
-sub_80C9098: @ 80C9098
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r1, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080C90CC @ =gStringVar4
- adds r0, r5, 0
- bl StringExpandPlaceholders
- cmp r4, 0
- bne _080C90D4
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r2, _080C90D0 @ =sub_80A5C48
- adds r0, r6, 0
- adds r1, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C90E0
- .align 2, 0
-_080C90CC: .4byte gStringVar4
-_080C90D0: .4byte sub_80A5C48
-_080C90D4:
- ldr r2, _080C90E8 @ =sub_80A5C9C
- adds r0, r6, 0
- adds r1, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C90E0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C90E8: .4byte sub_80A5C9C
- thumb_func_end sub_80C9098
-
- thumb_func_start DisplayDadsAdviceCannotUseItemMessage
-DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080C9100 @ =gOtherText_DadsAdvice
- bl sub_80C9098
- pop {r0}
- bx r0
- .align 2, 0
-_080C9100: .4byte gOtherText_DadsAdvice
- thumb_func_end DisplayDadsAdviceCannotUseItemMessage
-
- thumb_func_start sub_80C9104
-sub_80C9104: @ 80C9104
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080C9118 @ =gOtherText_CantGetOffBike
- bl sub_80C9098
- pop {r0}
- bx r0
- .align 2, 0
-_080C9118: .4byte gOtherText_CantGetOffBike
- thumb_func_end sub_80C9104
-
- thumb_func_start CheckIfItemIsTMHMOrEvolutionStone
-CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl ItemId_GetFieldFunc
- ldr r1, _080C9134 @ =ItemUseOutOfBattle_TMHM
- cmp r0, r1
- bne _080C9138
- movs r0, 0x1
- b _080C914E
- .align 2, 0
-_080C9134: .4byte ItemUseOutOfBattle_TMHM
-_080C9138:
- adds r0, r4, 0
- bl ItemId_GetFieldFunc
- ldr r1, _080C9148 @ =ItemUseOutOfBattle_EvolutionStone
- cmp r0, r1
- beq _080C914C
- movs r0, 0
- b _080C914E
- .align 2, 0
-_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone
-_080C914C:
- movs r0, 0x2
-_080C914E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckIfItemIsTMHMOrEvolutionStone
-
- thumb_func_start sub_80C9154
-sub_80C9154: @ 80C9154
- push {r4,lr}
- sub sp, 0x24
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C9188 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C9180
- mov r1, sp
- ldr r0, _080C918C @ =gScriptItemId
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
- ldr r1, _080C9190 @ =sub_80A5D04
- mov r0, sp
- movs r2, 0
- bl sub_80F890C
- adds r0, r4, 0
- bl DestroyTask
-_080C9180:
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9188: .4byte gPaletteFade
-_080C918C: .4byte gScriptItemId
-_080C9190: .4byte sub_80A5D04
- thumb_func_end sub_80C9154
-
- thumb_func_start ItemUseOutOfBattle_Mail
-ItemUseOutOfBattle_Mail: @ 80C9194
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080C91C4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C91C8 @ =sub_80C9154
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C91C4: .4byte gTasks
-_080C91C8: .4byte sub_80C9154
- thumb_func_end ItemUseOutOfBattle_Mail
-
- thumb_func_start ItemUseOutOfBattle_Bike
-ItemUseOutOfBattle_Bike: @ 80C91CC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C924C @ =0x0000082b
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsVerticalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsHorizontalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedVerticalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedHorizontalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9254
-_080C9238:
- ldr r0, _080C9250 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r5, 0
- bl sub_80C9104
- b _080C928E
- .align 2, 0
-_080C924C: .4byte 0x0000082b
-_080C9250: .4byte gTasks
-_080C9254:
- bl sub_8053C44
- cmp r0, 0x1
- bne _080C927C
- bl sub_80E5EF4
- lsls r0, 24
- cmp r0, 0
- bne _080C927C
- ldr r1, _080C9274 @ =gUnknown_03005D00
- ldr r0, _080C9278 @ =ItemUseOnFieldCB_Bike
- str r0, [r1]
- adds r0, r5, 0
- bl SetUpItemUseOnFieldCallback
- b _080C928E
- .align 2, 0
-_080C9274: .4byte gUnknown_03005D00
-_080C9278: .4byte ItemUseOnFieldCB_Bike
-_080C927C:
- ldr r0, _080C9298 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r5, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C928E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9298: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_Bike
-
- thumb_func_start ItemUseOnFieldCB_Bike
-ItemUseOnFieldCB_Bike: @ 80C929C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080C92E0 @ =gScriptItemId
- ldrh r0, [r4]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- cmp r0, 0
- bne _080C92B6
- movs r0, 0x2
- bl GetOnOffBike
-_080C92B6:
- ldrh r0, [r4]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C92CA
- movs r0, 0x4
- bl GetOnOffBike
-_080C92CA:
- bl sub_8064E2C
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C92E0: .4byte gScriptItemId
- thumb_func_end ItemUseOnFieldCB_Bike
-
- thumb_func_start CanFish
-CanFish: @ 80C92E4
- push {r4-r6,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- cmp r0, 0
- bne _080C936C
- movs r0, 0x10
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080C936C
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080C933C
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- cmp r0, 0
- beq _080C936C
-_080C9338:
- movs r0, 0x1
- b _080C936E
-_080C933C:
- adds r0, r5, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- beq _080C935C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridIsImpassableAt
- lsls r0, 24
- cmp r0, 0
- beq _080C9338
-_080C935C:
- lsls r0, r6, 24
- lsrs r0, 24
- bl MetatileBehavior_IsBridge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9338
-_080C936C:
- movs r0, 0
-_080C936E:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CanFish
-
- thumb_func_start ItemUseOutOfBattle_Rod
-ItemUseOutOfBattle_Rod: @ 80C9378
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl CanFish
- cmp r0, 0x1
- bne _080C939C
- ldr r1, _080C9394 @ =gUnknown_03005D00
- ldr r0, _080C9398 @ =ItemUseOnFieldCB_Rod
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080C93AE
- .align 2, 0
-_080C9394: .4byte gUnknown_03005D00
-_080C9398: .4byte ItemUseOnFieldCB_Rod
-_080C939C:
- ldr r0, _080C93B4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C93AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C93B4: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_Rod
-
- thumb_func_start ItemUseOnFieldCB_Rod
-ItemUseOnFieldCB_Rod: @ 80C93B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080C93DC @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- lsrs r0, 24
- bl StartFishing
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C93DC: .4byte gScriptItemId
- thumb_func_end ItemUseOnFieldCB_Rod
-
- thumb_func_start ItemUseOutOfBattle_Itemfinder
-ItemUseOutOfBattle_Itemfinder: @ 80C93E0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x27
- bl sav12_xor_increment
- ldr r1, _080C9400 @ =gUnknown_03005D00
- ldr r0, _080C9404 @ =ItemUseOnFieldCB_Itemfinder
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9400: .4byte gUnknown_03005D00
-_080C9404: .4byte ItemUseOnFieldCB_Itemfinder
- thumb_func_end ItemUseOutOfBattle_Itemfinder
-
- thumb_func_start ItemUseOnFieldCB_Itemfinder
-ItemUseOnFieldCB_Itemfinder: @ 80C9408
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C9430 @ =gMapHeader
- ldr r0, [r0, 0x4]
- adds r1, r4, 0
- bl ItemfinderCheckForHiddenItems
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C943C
- ldr r0, _080C9434 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C9438 @ =sub_80C9458
- str r0, [r1]
- b _080C9448
- .align 2, 0
-_080C9430: .4byte gMapHeader
-_080C9434: .4byte gTasks
-_080C9438: .4byte sub_80C9458
-_080C943C:
- ldr r1, _080C9450 @ =gOtherText_NoResponse
- ldr r2, _080C9454 @ =sub_80C9520
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9448:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9450: .4byte gOtherText_NoResponse
-_080C9454: .4byte sub_80C9520
- thumb_func_end ItemUseOnFieldCB_Itemfinder
-
- thumb_func_start sub_80C9458
-sub_80C9458: @ 80C9458
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r7, r0, 3
- ldr r0, _080C94AC @ =gTasks + 0x8
- mov r8, r0
- adds r4, r7, r0
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C950C
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- bne _080C9500
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_80C9908
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080C94B8
- ldr r1, _080C94B0 @ =gUnknown_083D61F0
- subs r0, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80C997C
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _080C94B4 @ =sub_80C99EC
- str r1, [r0]
- b _080C9516
- .align 2, 0
-_080C94AC: .4byte gTasks + 0x8
-_080C94B0: .4byte gUnknown_083D61F0
-_080C94B4: .4byte sub_80C99EC
-_080C94B8:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- adds r3, r6, 0
- ldr r7, _080C94F4 @ =gUnknown_083D61F0
- movs r6, 0x3
-_080C94C8:
- adds r0, r1, r7
- adds r1, 0x1
- ldrb r0, [r0]
- cmp r2, r0
- bne _080C94D8
- adds r0, r1, 0
- ands r0, r6
- strh r0, [r4, 0xA]
-_080C94D8:
- lsls r0, r1, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080C94C8
- ldr r1, _080C94F8 @ =gTasks
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C94FC @ =sub_80C9A38
- str r1, [r0]
- movs r0, 0
- strh r0, [r4, 0x6]
- strh r0, [r4, 0x4]
- b _080C9516
- .align 2, 0
-_080C94F4: .4byte gUnknown_083D61F0
-_080C94F8: .4byte gTasks
-_080C94FC: .4byte sub_80C9A38
-_080C9500:
- movs r0, 0x48
- bl PlaySE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C950C:
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r4, 0x6]
-_080C9516:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9458
-
- thumb_func_start sub_80C9520
-sub_80C9520: @ 80C9520
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8064E2C
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9520
-
- thumb_func_start ItemfinderCheckForHiddenItems
-ItemfinderCheckForHiddenItems: @ 80C9548
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- ldr r1, _080C9618 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- movs r3, 0
- mov r9, r4
- ldrb r0, [r5, 0x3]
- cmp r3, r0
- bge _080C95FC
- subs r1, 0x5
- mov r8, r1
-_080C9580:
- lsls r3, 16
- asrs r1, r3, 16
- ldr r2, [r5, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r4, r0, 2
- adds r1, r4, r2
- ldrb r0, [r1, 0x5]
- adds r7, r3, 0
- cmp r0, 0x7
- bne _080C95EC
- movs r2, 0x96
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1, 0xA]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080C95EC
- ldr r1, [r5, 0x10]
- adds r1, r4, r1
- ldrh r2, [r1]
- adds r2, 0x7
- mov r0, sp
- ldrh r0, [r0]
- subs r2, r0
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- mov r3, r9
- ldrh r1, [r3]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- asrs r1, r2, 16
- movs r3, 0xE0
- lsls r3, 11
- adds r2, r3
- lsrs r2, 16
- cmp r2, 0xE
- bhi _080C95EC
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, r8
- blt _080C95EC
- cmp r2, 0x5
- bgt _080C95EC
- adds r0, r6, 0
- bl sub_80C9838
-_080C95EC:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r3, r0, 16
- asrs r0, 16
- ldrb r2, [r5, 0x3]
- cmp r0, r2
- blt _080C9580
-_080C95FC:
- adds r0, r6, 0
- bl sub_80C9720
- ldr r0, _080C9618 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080C961C
- movs r0, 0
- b _080C961E
- .align 2, 0
-_080C9618: .4byte gTasks
-_080C961C:
- movs r0, 0x1
-_080C961E:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ItemfinderCheckForHiddenItems
-
- thumb_func_start sub_80C962C
-sub_80C962C: @ 80C962C
- push {r4-r6,lr}
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- ldrb r2, [r0, 0x3]
- ldr r5, [r0, 0x10]
- movs r1, 0
- cmp r1, r2
- bge _080C9680
- lsls r0, r3, 16
- asrs r6, r0, 16
- lsls r0, r4, 16
- asrs r4, r0, 16
- adds r3, r5, 0
-_080C964A:
- ldrb r0, [r3, 0x5]
- cmp r0, 0x7
- bne _080C9678
- ldrh r0, [r3]
- cmp r6, r0
- bne _080C9678
- ldrh r0, [r3, 0x2]
- cmp r4, r0
- bne _080C9678
- movs r1, 0x96
- lsls r1, 2
- adds r0, r1, 0
- ldrh r3, [r3, 0xA]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080C9680
- movs r0, 0x1
- b _080C9682
-_080C9678:
- adds r3, 0xC
- adds r1, 0x1
- cmp r1, r2
- blt _080C964A
-_080C9680:
- movs r0, 0
-_080C9682:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C962C
-
- thumb_func_start sub_80C9688
-sub_80C9688: @ 80C9688
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl mapconnection_get_mapheader
- adds r3, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _080C96B0
- cmp r0, 0x2
- bgt _080C96A6
- cmp r0, 0x1
- beq _080C96C4
- b _080C9704
-_080C96A6:
- cmp r0, 0x3
- beq _080C96DC
- cmp r0, 0x4
- beq _080C96E6
- b _080C9704
-_080C96B0:
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- subs r0, r5, r0
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- subs r0, 0x7
- adds r0, r6
- b _080C96FA
-_080C96C4:
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- subs r0, r5, r0
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080C96D8 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- b _080C96F6
- .align 2, 0
-_080C96D8: .4byte gMapHeader
-_080C96DC:
- ldr r0, [r3]
- ldr r0, [r0]
- subs r0, 0x7
- adds r0, r5
- b _080C96F0
-_080C96E6:
- ldr r0, _080C9700 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0]
- adds r0, 0x7
- subs r0, r5, r0
-_080C96F0:
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r4, 0x4]
-_080C96F6:
- adds r0, 0x7
- subs r0, r6, r0
-_080C96FA:
- lsls r0, 16
- lsrs r2, r0, 16
- b _080C9708
- .align 2, 0
-_080C9700: .4byte gMapHeader
-_080C9704:
- movs r0, 0
- b _080C971A
-_080C9708:
- ldr r0, [r3, 0x4]
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- bl sub_80C962C
- lsls r0, 24
- lsrs r0, 24
-_080C971A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C9688
-
- thumb_func_start sub_80C9720
-sub_80C9720: @ 80C9720
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, _080C9834 @ =gMapHeader
- ldr r1, [r0]
- ldr r0, [r1]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- ldr r0, [r1, 0x4]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- adds r1, 0x7
- cmp r0, r1
- bgt _080C9824
-_080C976E:
- mov r5, sp
- ldrh r0, [r5, 0x2]
- subs r0, 0x5
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r2, r4, 16
- asrs r1, r2, 16
- movs r6, 0x2
- ldrsh r0, [r5, r6]
- adds r0, 0x5
- lsls r3, 16
- mov r8, r3
- cmp r1, r0
- bgt _080C980E
- movs r0, 0x7
- str r0, [sp, 0x10]
- mov r1, r8
- asrs r1, 16
- mov r9, r1
- mov r10, r0
-_080C9796:
- ldr r3, [sp, 0x10]
- cmp r3, r9
- bgt _080C97B8
- ldr r5, [sp, 0x8]
- lsls r0, r5, 16
- asrs r0, 16
- cmp r9, r0
- bge _080C97B8
- asrs r1, r2, 16
- cmp r10, r1
- bgt _080C97B8
- ldr r6, [sp, 0xC]
- lsls r0, r6, 16
- asrs r0, 16
- lsls r7, r4, 16
- cmp r1, r0
- blt _080C97F6
-_080C97B8:
- mov r0, r8
- asrs r5, r0, 16
- lsls r4, 16
- asrs r6, r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8056BA0
- adds r7, r4, 0
- cmp r0, 0
- beq _080C97F6
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_80C9688
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C97F6
- mov r0, sp
- ldrh r1, [r0]
- subs r1, r5, r1
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, r6, r2
- lsls r2, 16
- asrs r2, 16
- ldr r0, [sp, 0x4]
- bl sub_80C9838
-_080C97F6:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r4, r0, 16
- lsls r2, r4, 16
- asrs r1, r2, 16
- mov r3, sp
- movs r5, 0x2
- ldrsh r0, [r3, r5]
- adds r0, 0x5
- cmp r1, r0
- ble _080C9796
-_080C980E:
- movs r1, 0x80
- lsls r1, 9
- add r1, r8
- lsrs r3, r1, 16
- asrs r1, 16
- mov r0, sp
- movs r6, 0
- ldrsh r0, [r0, r6]
- adds r0, 0x7
- cmp r1, r0
- ble _080C976E
-_080C9824:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9834: .4byte gMapHeader
- thumb_func_end sub_80C9720
-
- thumb_func_start sub_80C9838
-sub_80C9838: @ 80C9838
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r12, r2
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080C986C @ =gTasks + 0x8
- adds r3, r1, r0
- movs r1, 0x4
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080C9870
- strh r7, [r3]
- mov r0, r12
- strh r0, [r3, 0x2]
- movs r0, 0x1
- strh r0, [r3, 0x4]
- b _080C98FA
- .align 2, 0
-_080C986C: .4byte gTasks + 0x8
-_080C9870:
- movs r1, 0
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bge _080C9880
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
- b _080C9882
-_080C9880:
- ldrh r4, [r3]
-_080C9882:
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- ldrh r1, [r3, 0x2]
- mov r9, r1
- cmp r0, 0
- bge _080C9896
- negs r0, r0
- lsls r0, 16
- lsrs r2, r0, 16
- b _080C9898
-_080C9896:
- ldrh r2, [r3, 0x2]
-_080C9898:
- lsls r1, r7, 16
- asrs r0, r1, 16
- cmp r0, 0
- bge _080C98A8
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- b _080C98AA
-_080C98A8:
- lsrs r6, r1, 16
-_080C98AA:
- mov r1, r12
- lsls r0, r1, 16
- asrs r1, r0, 16
- mov r8, r0
- cmp r1, 0
- bge _080C98BC
- negs r0, r1
- lsls r0, 16
- b _080C98BE
-_080C98BC:
- mov r0, r8
-_080C98BE:
- lsrs r5, r0, 16
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r2, 16
- asrs r2, r1, 16
- adds r4, r0, r2
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r5, 16
- asrs r1, 16
- adds r0, r1
- cmp r4, r0
- ble _080C98E0
- strh r7, [r3]
- mov r1, r12
- strh r1, [r3, 0x2]
- b _080C98FA
-_080C98E0:
- cmp r4, r0
- bne _080C98FA
- cmp r2, r1
- bgt _080C98F4
- cmp r2, r1
- bne _080C98FA
- mov r1, r9
- lsls r0, r1, 16
- cmp r0, r8
- bge _080C98FA
-_080C98F4:
- strh r7, [r3]
- mov r0, r12
- strh r0, [r3, 0x2]
-_080C98FA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9838
-
- thumb_func_start sub_80C9908
-sub_80C9908: @ 80C9908
- push {r4,r5,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bne _080C991A
- cmp r1, 0
- beq _080C9974
-_080C991A:
- lsls r0, r2, 16
- asrs r2, r0, 16
- adds r5, r0, 0
- cmp r2, 0
- bge _080C992C
- negs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- b _080C992E
-_080C992C:
- lsrs r4, r5, 16
-_080C992E:
- lsls r0, r1, 16
- asrs r2, r0, 16
- adds r1, r0, 0
- cmp r2, 0
- bge _080C9940
- negs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- b _080C9942
-_080C9940:
- lsrs r3, r1, 16
-_080C9942:
- lsls r0, r4, 16
- asrs r2, r0, 16
- lsls r0, r3, 16
- asrs r0, 16
- cmp r2, r0
- ble _080C995A
- cmp r5, 0
- bge _080C9956
- movs r0, 0x4
- b _080C9976
-_080C9956:
- movs r0, 0x2
- b _080C9976
-_080C995A:
- cmp r2, r0
- bge _080C9964
- cmp r1, 0
- blt _080C996C
- b _080C9970
-_080C9964:
- cmp r2, r0
- bne _080C9974
- cmp r1, 0
- bge _080C9970
-_080C996C:
- movs r0, 0x1
- b _080C9976
-_080C9970:
- movs r0, 0x3
- b _080C9976
-_080C9974:
- movs r0, 0
-_080C9976:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80C9908
-
- thumb_func_start sub_80C997C
-sub_80C997C: @ 80C997C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r4, _080C99E8 @ =gMapObjects
- adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimFinished
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FieldObjectClearAnim
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl npc_sync_anim_pause_bits
- adds r0, r5, 0
- bl PlayerTurnInPlace
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C99E8: .4byte gMapObjects
- thumb_func_end sub_80C997C
-
- thumb_func_start sub_80C99EC
-sub_80C99EC: @ 80C99EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C9A2C @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9A24
- ldr r1, _080C9A30 @ =gOtherText_ItemfinderResponding
- ldr r2, _080C9A34 @ =sub_80C9520
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9A24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9A2C: .4byte gMapObjects
-_080C9A30: .4byte gOtherText_ItemfinderResponding
-_080C9A34: .4byte sub_80C9520
- thumb_func_end sub_80C99EC
-
- thumb_func_start sub_80C9A38
-sub_80C9A38: @ 80C9A38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C9AB4 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C9AB8 @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9A78
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C9AAE
-_080C9A78:
- ldr r1, _080C9ABC @ =gUnknown_083D61F0
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80C997C
- movs r0, 0x1
- strh r0, [r4, 0x4]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080C9AAE
- ldr r1, _080C9AC0 @ =gOtherText_ItemfinderFoundItem
- ldr r2, _080C9AC4 @ =sub_80C9520
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9AAE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9AB4: .4byte gTasks + 0x8
-_080C9AB8: .4byte gMapObjects
-_080C9ABC: .4byte gUnknown_083D61F0
-_080C9AC0: .4byte gOtherText_ItemfinderFoundItem
-_080C9AC4: .4byte sub_80C9520
- thumb_func_end sub_80C9A38
-
- thumb_func_start ItemUseOutOfBattle_PokeblockCase
-ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9AF4
- ldr r0, _080C9AF0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
- b _080C9B2A
- .align 2, 0
-_080C9AF0: .4byte gTasks
-_080C9AF4:
- ldr r0, _080C9B14 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080C9B18
- movs r0, 0
- bl sub_810BA7C
- adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
- b _080C9B2A
- .align 2, 0
-_080C9B14: .4byte gTasks
-_080C9B18:
- ldr r1, _080C9B30 @ =gUnknown_0300485C
- ldr r0, _080C9B34 @ =sub_8080E28
- str r0, [r1]
- movs r0, 0x1
- bl sub_810BA7C
- adds r0, r5, 0
- bl sub_80C9038
-_080C9B2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9B30: .4byte gUnknown_0300485C
-_080C9B34: .4byte sub_8080E28
- thumb_func_end ItemUseOutOfBattle_PokeblockCase
-
- thumb_func_start ItemUseOutOfBattle_CoinCase
-ItemUseOutOfBattle_CoinCase: @ 80C9B38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080C9B8C @ =gStringVar1
- bl GetCoins
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, _080C9B90 @ =gStringVar4
- ldr r1, _080C9B94 @ =gOtherText_Coins3
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, _080C9B98 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080C9BA0
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r2, _080C9B9C @ =sub_80A5C48
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C9BAC
- .align 2, 0
-_080C9B8C: .4byte gStringVar1
-_080C9B90: .4byte gStringVar4
-_080C9B94: .4byte gOtherText_Coins3
-_080C9B98: .4byte gTasks
-_080C9B9C: .4byte sub_80A5C48
-_080C9BA0:
- ldr r2, _080C9BB4 @ =sub_80A5C9C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9BAC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9BB4: .4byte sub_80A5C9C
- thumb_func_end ItemUseOutOfBattle_CoinCase
-
- thumb_func_start sub_80C9BB8
-sub_80C9BB8: @ 80C9BB8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C9BD4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C9BD0
- adds r0, r2, 0
- bl sub_80A5C48
-_080C9BD0:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9BD4: .4byte gMain
- thumb_func_end sub_80C9BB8
-
- thumb_func_start sub_80C9BD8
-sub_80C9BD8: @ 80C9BD8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C9BF4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C9BF0
- adds r0, r2, 0
- bl sub_80A5C9C
-_080C9BF0:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9BF4: .4byte gMain
- thumb_func_end sub_80C9BD8
-
- thumb_func_start unref_sub_80C9BF8
-unref_sub_80C9BF8: @ 80C9BF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C9C3C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080C9C4C
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r4, _080C9C40 @ =gUnknown_083D61DC
- ldr r0, _080C9C44 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r1, [r0]
- ldr r2, _080C9C48 @ =sub_80C9BB8
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C9C68
- .align 2, 0
-_080C9C3C: .4byte gTasks
-_080C9C40: .4byte gUnknown_083D61DC
-_080C9C44: .4byte gScriptItemId
-_080C9C48: .4byte sub_80C9BB8
-_080C9C4C:
- ldr r4, _080C9C70 @ =gUnknown_083D61DC
- ldr r0, _080C9C74 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r1, [r0]
- ldr r2, _080C9C78 @ =sub_80C9BD8
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9C68:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9C70: .4byte gUnknown_083D61DC
-_080C9C74: .4byte gScriptItemId
-_080C9C78: .4byte sub_80C9BD8
- thumb_func_end unref_sub_80C9BF8
-
- thumb_func_start sub_80C9C7C
-sub_80C9C7C: @ 80C9C7C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsPlayerFacingPlantedBerryTree
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9CE4
- ldr r1, _080C9CC8 @ =gUnknown_03005D00
- ldr r0, _080C9CCC @ =sub_80C9D00
- str r0, [r1]
- ldr r1, _080C9CD0 @ =gUnknown_0300485C
- ldr r0, _080C9CD4 @ =sub_80A5CC4
- str r0, [r1]
- ldr r1, _080C9CD8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080C9CDC @ =c2_exit_to_overworld_2_switch
- lsrs r1, r2, 16
- movs r3, 0
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- ldr r1, _080C9CE0 @ =sub_80A5B00
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r3, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080C9CF4
- .align 2, 0
-_080C9CC8: .4byte gUnknown_03005D00
-_080C9CCC: .4byte sub_80C9D00
-_080C9CD0: .4byte gUnknown_0300485C
-_080C9CD4: .4byte sub_80A5CC4
-_080C9CD8: .4byte gTasks
-_080C9CDC: .4byte c2_exit_to_overworld_2_switch
-_080C9CE0: .4byte sub_80A5B00
-_080C9CE4:
- ldr r0, _080C9CFC @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetFieldFunc
- adds r1, r0, 0
- adds r0, r4, 0
- bl _call_via_r1
-_080C9CF4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9CFC: .4byte gScriptItemId
- thumb_func_end sub_80C9C7C
-
- thumb_func_start sub_80C9D00
-sub_80C9D00: @ 80C9D00
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080C9D28 @ =gScriptItemId
- ldrh r0, [r0]
- movs r1, 0x1
- bl RemoveBagItem
- bl ScriptContext2_Enable
- ldr r0, _080C9D2C @ =gUnknown_081A1654
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9D28: .4byte gScriptItemId
-_080C9D2C: .4byte gUnknown_081A1654
- thumb_func_end sub_80C9D00
-
- thumb_func_start ItemUseOutOfBattle_WailmerPail
-ItemUseOutOfBattle_WailmerPail: @ 80C9D30
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl WaterBerryTree
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9D58
- ldr r1, _080C9D50 @ =gUnknown_03005D00
- ldr r0, _080C9D54 @ =sub_80C9D74
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080C9D6A
- .align 2, 0
-_080C9D50: .4byte gUnknown_03005D00
-_080C9D54: .4byte sub_80C9D74
-_080C9D58:
- ldr r0, _080C9D70 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C9D6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9D70: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_WailmerPail
-
- thumb_func_start sub_80C9D74
-sub_80C9D74: @ 80C9D74
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- ldr r0, _080C9D94 @ =gUnknown_081A168F
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9D94: .4byte gUnknown_081A168F
- thumb_func_end sub_80C9D74
-
- thumb_func_start sub_80C9D98
-sub_80C9D98: @ 80C9D98
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9DAC @ =gUnknown_02038561
- movs r1, 0
- strb r1, [r2]
- bl unknown_ItemMenu_Confirm
- pop {r0}
- bx r0
- .align 2, 0
-_080C9DAC: .4byte gUnknown_02038561
- thumb_func_end sub_80C9D98
-
- thumb_func_start ItemUseOutOfBattle_Medicine
-ItemUseOutOfBattle_Medicine: @ 80C9DB0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9DC4 @ =gUnknown_03004AE4
- ldr r1, _080C9DC8 @ =sub_806FE2C
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9DC4: .4byte gUnknown_03004AE4
-_080C9DC8: .4byte sub_806FE2C
- thumb_func_end ItemUseOutOfBattle_Medicine
-
- thumb_func_start ItemUseOutOfBattle_SacredAsh
-ItemUseOutOfBattle_SacredAsh: @ 80C9DCC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080C9DDC @ =gUnknown_03005CE0
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- b _080C9DE6
- .align 2, 0
-_080C9DDC: .4byte gUnknown_03005CE0
-_080C9DE0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080C9DE6:
- cmp r5, 0x5
- bhi _080C9E10
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080C9E28 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080C9DE0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080C9DE0
- ldr r0, _080C9E2C @ =gUnknown_03005CE0
- strb r5, [r0]
-_080C9E10:
- ldr r1, _080C9E30 @ =gUnknown_03004AE4
- ldr r0, _080C9E34 @ =sub_8070048
- str r0, [r1]
- ldr r1, _080C9E38 @ =gUnknown_02038561
- movs r0, 0x4
- strb r0, [r1]
- adds r0, r6, 0
- bl unknown_ItemMenu_Confirm
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E28: .4byte gPlayerParty
-_080C9E2C: .4byte gUnknown_03005CE0
-_080C9E30: .4byte gUnknown_03004AE4
-_080C9E34: .4byte sub_8070048
-_080C9E38: .4byte gUnknown_02038561
- thumb_func_end ItemUseOutOfBattle_SacredAsh
-
- thumb_func_start ItemUseOutOfBattle_PPRecovery
-ItemUseOutOfBattle_PPRecovery: @ 80C9E3C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9E50 @ =gUnknown_03004AE4
- ldr r1, _080C9E54 @ =dp05_ether
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E50: .4byte gUnknown_03004AE4
-_080C9E54: .4byte dp05_ether
- thumb_func_end ItemUseOutOfBattle_PPRecovery
-
- thumb_func_start ItemUseOutOfBattle_PPUp
-ItemUseOutOfBattle_PPUp: @ 80C9E58
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9E6C @ =gUnknown_03004AE4
- ldr r1, _080C9E70 @ =dp05_pp_up
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E6C: .4byte gUnknown_03004AE4
-_080C9E70: .4byte dp05_pp_up
- thumb_func_end ItemUseOutOfBattle_PPUp
-
- thumb_func_start ItemUseOutOfBattle_RareCandy
-ItemUseOutOfBattle_RareCandy: @ 80C9E74
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9E88 @ =gUnknown_03004AE4
- ldr r1, _080C9E8C @ =sub_8070680
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E88: .4byte gUnknown_03004AE4
-_080C9E8C: .4byte sub_8070680
- thumb_func_end ItemUseOutOfBattle_RareCandy
-
- thumb_func_start ItemUseOutOfBattle_TMHM
-ItemUseOutOfBattle_TMHM: @ 80C9E90
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r0, _080C9EBC @ =gScriptItemId
- ldrh r1, [r0]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bls _080C9EC8
- ldr r1, _080C9EC0 @ =gOtherText_BootedHM
- ldr r2, _080C9EC4 @ =sub_80C9EE4
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C9ED4
- .align 2, 0
-_080C9EBC: .4byte gScriptItemId
-_080C9EC0: .4byte gOtherText_BootedHM
-_080C9EC4: .4byte sub_80C9EE4
-_080C9EC8:
- ldr r1, _080C9EDC @ =gOtherText_BootedTM
- ldr r2, _080C9EE0 @ =sub_80C9EE4
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080C9ED4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9EDC: .4byte gOtherText_BootedTM
-_080C9EE0: .4byte sub_80C9EE4
- thumb_func_end ItemUseOutOfBattle_TMHM
-
- thumb_func_start sub_80C9EE4
-sub_80C9EE4: @ 80C9EE4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- bl PlaySE
- ldr r1, _080C9F08 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C9F0C @ =sub_80C9F10
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9F08: .4byte gTasks
-_080C9F0C: .4byte sub_80C9F10
- thumb_func_end sub_80C9EE4
-
- thumb_func_start sub_80C9F10
-sub_80C9F10: @ 80C9F10
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C9F64 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080C9F2A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080C9F5C
-_080C9F2A:
- ldr r4, _080C9F68 @ =gStringVar1
- ldr r0, _080C9F6C @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _080C9F70 @ =gMoveNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _080C9F74 @ =gStringVar4
- ldr r1, _080C9F78 @ =gOtherText_ContainsMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080C9F7C @ =sub_80C9F80
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080C9F5C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9F64: .4byte gMain
-_080C9F68: .4byte gStringVar1
-_080C9F6C: .4byte gScriptItemId
-_080C9F70: .4byte gMoveNames
-_080C9F74: .4byte gStringVar4
-_080C9F78: .4byte gOtherText_ContainsMove
-_080C9F7C: .4byte sub_80C9F80
- thumb_func_end sub_80C9F10
-
- thumb_func_start sub_80C9F80
-sub_80C9F80: @ 80C9F80
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _080C9FB8 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x4
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x8
- movs r2, 0x8
- movs r3, 0x5
- bl sub_80A3FA0
- ldr r1, _080C9FBC @ =gUnknown_083D61F4
- adds r0, r4, 0
- bl sub_80F914C
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9FB8: .4byte gBGTilemapBuffers + 0x800
-_080C9FBC: .4byte gUnknown_083D61F4
- thumb_func_end sub_80C9F80
-
- thumb_func_start sub_80C9FC0
-sub_80C9FC0: @ 80C9FC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9FD4 @ =gUnknown_03004AE4
- ldr r1, _080C9FD8 @ =sub_806F06C
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9FD4: .4byte gUnknown_03004AE4
-_080C9FD8: .4byte sub_806F06C
- thumb_func_end sub_80C9FC0
-
- thumb_func_start sub_80C9FDC
-sub_80C9FDC: @ 80C9FDC
- push {r4,lr}
- ldr r4, _080CA004 @ =gScriptItemId
- ldrh r0, [r4]
- movs r1, 0x1
- bl RemoveBagItem
- bl sub_80A3E0C
- ldrh r0, [r4]
- ldr r1, _080CA008 @ =gStringVar2
- bl CopyItemName
- ldr r0, _080CA00C @ =gStringVar4
- ldr r1, _080CA010 @ =gOtherText_UsedItem
- bl StringExpandPlaceholders
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA004: .4byte gScriptItemId
-_080CA008: .4byte gStringVar2
-_080CA00C: .4byte gStringVar4
-_080CA010: .4byte gOtherText_UsedItem
- thumb_func_end sub_80C9FDC
-
- thumb_func_start ItemUseOutOfBattle_Repel
-ItemUseOutOfBattle_Repel: @ 80CA014
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _080CA050 @ =0x00004021
- adds r0, r5, 0
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080CA060
- ldr r0, _080CA054 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetHoldEffectParam
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl VarSet
- bl sub_80C9FDC
- ldr r1, _080CA058 @ =gStringVar4
- ldr r2, _080CA05C @ =sub_80A5C48
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA06C
- .align 2, 0
-_080CA050: .4byte 0x00004021
-_080CA054: .4byte gScriptItemId
-_080CA058: .4byte gStringVar4
-_080CA05C: .4byte sub_80A5C48
-_080CA060:
- ldr r1, _080CA074 @ =gOtherText_RepelLingers
- ldr r2, _080CA078 @ =sub_80A5C48
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA06C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA074: .4byte gOtherText_RepelLingers
-_080CA078: .4byte sub_80A5C48
- thumb_func_end ItemUseOutOfBattle_Repel
-
- thumb_func_start sub_80CA07C
-sub_80CA07C: @ 80CA07C
- push {lr}
- bl sub_80A3E0C
- ldr r0, _080CA090 @ =gScriptItemId
- ldrh r0, [r0]
- ldr r1, _080CA094 @ =gStringVar2
- bl CopyItemName
- pop {r0}
- bx r0
- .align 2, 0
-_080CA090: .4byte gScriptItemId
-_080CA094: .4byte gStringVar2
- thumb_func_end sub_80CA07C
-
- thumb_func_start sub_80CA098
-sub_80CA098: @ 80CA098
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA0D0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080CA0C8
- movs r0, 0x75
- bl PlaySE
- ldr r1, _080CA0D4 @ =gStringVar4
- ldr r2, _080CA0D8 @ =sub_80A5C48
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA0C8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA0D0: .4byte gTasks
-_080CA0D4: .4byte gStringVar4
-_080CA0D8: .4byte sub_80A5C48
- thumb_func_end sub_80CA098
-
- thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute
-ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _080CA10C @ =gScriptItemId
- ldrh r0, [r0]
- cmp r0, 0x2B
- bne _080CA124
- ldr r0, _080CA110 @ =0x0000084d
- bl FlagSet
- ldr r0, _080CA114 @ =0x0000084e
- bl FlagReset
- bl sub_80CA07C
- ldr r0, _080CA118 @ =gStringVar4
- ldr r1, _080CA11C @ =gOtherText_UsedFlute
- bl StringExpandPlaceholders
- ldr r1, _080CA120 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- b _080CA146
- .align 2, 0
-_080CA10C: .4byte gScriptItemId
-_080CA110: .4byte 0x0000084d
-_080CA114: .4byte 0x0000084e
-_080CA118: .4byte gStringVar4
-_080CA11C: .4byte gOtherText_UsedFlute
-_080CA120: .4byte gTasks
-_080CA124:
- cmp r0, 0x2A
- bne _080CA152
- ldr r0, _080CA158 @ =0x0000084e
- bl FlagSet
- ldr r0, _080CA15C @ =0x0000084d
- bl FlagReset
- bl sub_80CA07C
- ldr r0, _080CA160 @ =gStringVar4
- ldr r1, _080CA164 @ =gOtherText_UsedRepel
- bl StringExpandPlaceholders
- ldr r1, _080CA168 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
-_080CA146:
- lsls r0, 3
- adds r0, r1
- ldr r1, _080CA16C @ =sub_80CA098
- str r1, [r0]
- movs r1, 0
- strh r1, [r0, 0x26]
-_080CA152:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA158: .4byte 0x0000084e
-_080CA15C: .4byte 0x0000084d
-_080CA160: .4byte gStringVar4
-_080CA164: .4byte gOtherText_UsedRepel
-_080CA168: .4byte gTasks
-_080CA16C: .4byte sub_80CA098
- thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute
-
- thumb_func_start task08_080A1C44
-task08_080A1C44: @ 80CA170
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl player_avatar_init_params_reset
- bl sub_80878A8
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task08_080A1C44
-
- thumb_func_start sub_80CA18C
-sub_80CA18C: @ 80CA18C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8053014
- bl sub_80C9FDC
- ldr r1, _080CA1BC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080CA1C0 @ =gStringVar4
- ldr r2, _080CA1C4 @ =task08_080A1C44
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA1BC: .4byte gTasks
-_080CA1C0: .4byte gStringVar4
-_080CA1C4: .4byte task08_080A1C44
- thumb_func_end sub_80CA18C
-
- thumb_func_start sub_80CA1C8
-sub_80CA1C8: @ 80CA1C8
- push {lr}
- ldr r0, _080CA1D8 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x4
- beq _080CA1DC
- movs r0, 0
- b _080CA1DE
- .align 2, 0
-_080CA1D8: .4byte gMapHeader
-_080CA1DC:
- movs r0, 0x1
-_080CA1DE:
- pop {r1}
- bx r1
- thumb_func_end sub_80CA1C8
-
- thumb_func_start ItemUseOutOfBattle_EscapeRope
-ItemUseOutOfBattle_EscapeRope: @ 80CA1E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80CA1C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CA20C
- ldr r1, _080CA204 @ =gUnknown_03005D00
- ldr r0, _080CA208 @ =sub_80CA18C
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080CA21E
- .align 2, 0
-_080CA204: .4byte gUnknown_03005D00
-_080CA208: .4byte sub_80CA18C
-_080CA20C:
- ldr r0, _080CA224 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080CA21E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA224: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_EscapeRope
-
- thumb_func_start ItemUseOutOfBattle_EvolutionStone
-ItemUseOutOfBattle_EvolutionStone: @ 80CA228
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA23C @ =gUnknown_03004AE4
- ldr r1, _080CA240 @ =sub_8070DBC
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080CA23C: .4byte gUnknown_03004AE4
-_080CA240: .4byte sub_8070DBC
- thumb_func_end ItemUseOutOfBattle_EvolutionStone
-
- thumb_func_start ItemUseInBattle_PokeBall
-ItemUseInBattle_PokeBall: @ 80CA244
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl PlayerPartyAndPokemonStorageFull
- lsls r0, 24
- cmp r0, 0
- bne _080CA26C
- ldr r0, _080CA268 @ =gScriptItemId
- ldrh r0, [r0]
- movs r1, 0x1
- bl RemoveBagItem
- adds r0, r4, 0
- bl sub_80A7094
- b _080CA284
- .align 2, 0
-_080CA268: .4byte gScriptItemId
-_080CA26C:
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r1, _080CA28C @ =gOtherText_BoxIsFull
- ldr r2, _080CA290 @ =sub_80A5C48
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA284:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA28C: .4byte gOtherText_BoxIsFull
-_080CA290: .4byte sub_80A5C48
- thumb_func_end ItemUseInBattle_PokeBall
-
- thumb_func_start sub_80CA294
-sub_80CA294: @ 80CA294
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CA2B8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CA2AE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080CA2B4
-_080CA2AE:
- adds r0, r2, 0
- bl sub_80A7094
-_080CA2B4:
- pop {r0}
- bx r0
- .align 2, 0
-_080CA2B8: .4byte gMain
- thumb_func_end sub_80CA294
-
- thumb_func_start sub_80CA2BC
-sub_80CA2BC: @ 80CA2BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080CA304 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080CA2FC
- movs r0, 0x1
- bl PlaySE
- ldr r4, _080CA308 @ =gScriptItemId
- ldrh r0, [r4]
- movs r1, 0x1
- bl RemoveBagItem
- ldrh r0, [r4]
- bl sub_803F378
- adds r1, r0, 0
- ldr r2, _080CA30C @ =sub_80CA294
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA2FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA304: .4byte gTasks
-_080CA308: .4byte gScriptItemId
-_080CA30C: .4byte sub_80CA294
- thumb_func_end sub_80CA2BC
-
- thumb_func_start ItemUseInBattle_StatIncrease
-ItemUseInBattle_StatIncrease: @ 80CA310
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080CA35C @ =gUnknown_02024A6A
- ldr r0, _080CA360 @ =gUnknown_02024E6C
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r4, [r0]
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080CA364 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080CA368 @ =gScriptItemId
- ldrh r1, [r1]
- lsls r4, 24
- lsrs r4, 24
- adds r2, r4, 0
- movs r3, 0
- bl ExecuteTableBasedItemEffect_
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080CA374
- ldr r1, _080CA36C @ =gOtherText_WontHaveAnyEffect
- ldr r2, _080CA370 @ =sub_80A5C48
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA384
- .align 2, 0
-_080CA35C: .4byte gUnknown_02024A6A
-_080CA360: .4byte gUnknown_02024E6C
-_080CA364: .4byte gPlayerParty
-_080CA368: .4byte gScriptItemId
-_080CA36C: .4byte gOtherText_WontHaveAnyEffect
-_080CA370: .4byte sub_80A5C48
-_080CA374:
- ldr r0, _080CA38C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080CA390 @ =sub_80CA2BC
- str r0, [r1]
- strh r2, [r1, 0x26]
-_080CA384:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA38C: .4byte gTasks
-_080CA390: .4byte sub_80CA2BC
- thumb_func_end ItemUseInBattle_StatIncrease
-
- thumb_func_start sub_80CA394
-sub_80CA394: @ 80CA394
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA3BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CA3B4
- bl sub_8094E4C
- bl gpu_pal_allocator_reset__manage_upper_four
- adds r0, r4, 0
- bl DestroyTask
-_080CA3B4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA3BC: .4byte gPaletteFade
- thumb_func_end sub_80CA394
-
- thumb_func_start sub_80CA3C0
-sub_80CA3C0: @ 80CA3C0
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA3EC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080CA3F0 @ =sub_80CA394
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080CA3EC: .4byte gTasks
-_080CA3F0: .4byte sub_80CA394
- thumb_func_end sub_80CA3C0
-
- thumb_func_start ItemUseInBattle_Medicine
-ItemUseInBattle_Medicine: @ 80CA3F4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA408 @ =gUnknown_03004AE4
- ldr r1, _080CA40C @ =sub_806FE2C
- str r1, [r2]
- bl sub_80CA3C0
- pop {r0}
- bx r0
- .align 2, 0
-_080CA408: .4byte gUnknown_03004AE4
-_080CA40C: .4byte sub_806FE2C
- thumb_func_end ItemUseInBattle_Medicine
-
- thumb_func_start unref_sub_80CA410
-unref_sub_80CA410: @ 80CA410
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA424 @ =gUnknown_03004AE4
- ldr r1, _080CA428 @ =sub_8070048
- str r1, [r2]
- bl sub_80CA3C0
- pop {r0}
- bx r0
- .align 2, 0
-_080CA424: .4byte gUnknown_03004AE4
-_080CA428: .4byte sub_8070048
- thumb_func_end unref_sub_80CA410
-
- thumb_func_start ItemUseInBattle_PPRecovery
-ItemUseInBattle_PPRecovery: @ 80CA42C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA440 @ =gUnknown_03004AE4
- ldr r1, _080CA444 @ =dp05_ether
- str r1, [r2]
- bl sub_80CA3C0
- pop {r0}
- bx r0
- .align 2, 0
-_080CA440: .4byte gUnknown_03004AE4
-_080CA444: .4byte dp05_ether
- thumb_func_end ItemUseInBattle_PPRecovery
-
- thumb_func_start unref_sub_80CA448
-unref_sub_80CA448: @ 80CA448
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r4, _080CA494 @ =gScriptItemId
- ldrh r1, [r4]
- movs r0, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- bne _080CA4AC
- ldrh r0, [r4]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r0, _080CA498 @ =gPlayerParty
- ldr r1, _080CA49C @ =gStringVar1
- bl GetMonNickname
- ldr r4, _080CA4A0 @ =gStringVar4
- ldr r1, _080CA4A4 @ =gOtherText_SnapConfusion
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080CA4A8 @ =sub_80A7094
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA4B8
- .align 2, 0
-_080CA494: .4byte gScriptItemId
-_080CA498: .4byte gPlayerParty
-_080CA49C: .4byte gStringVar1
-_080CA4A0: .4byte gStringVar4
-_080CA4A4: .4byte gOtherText_SnapConfusion
-_080CA4A8: .4byte sub_80A7094
-_080CA4AC:
- ldr r1, _080CA4C0 @ =gOtherText_WontHaveAnyEffect
- ldr r2, _080CA4C4 @ =sub_80A5C48
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA4B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA4C0: .4byte gOtherText_WontHaveAnyEffect
-_080CA4C4: .4byte sub_80A5C48
- thumb_func_end unref_sub_80CA448
-
- thumb_func_start ItemUseInBattle_Escape
-ItemUseInBattle_Escape: @ 80CA4C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r0, _080CA4F8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080CA504
- bl sub_80C9FDC
- ldr r1, _080CA4FC @ =gStringVar4
- ldr r2, _080CA500 @ =sub_80A7094
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA516
- .align 2, 0
-_080CA4F8: .4byte gUnknown_020239F8
-_080CA4FC: .4byte gStringVar4
-_080CA500: .4byte sub_80A7094
-_080CA504:
- ldr r0, _080CA51C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080CA516:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA51C: .4byte gTasks
- thumb_func_end ItemUseInBattle_Escape
-
- thumb_func_start ItemUseOutOfBattle_EnigmaBerry
-ItemUseOutOfBattle_EnigmaBerry: @ 80CA520
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA544 @ =gScriptItemId
- ldrh r0, [r0]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x14
- bls _080CA53A
- b _080CA62C
-_080CA53A:
- lsls r0, 2
- ldr r1, _080CA548 @ =_080CA54C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CA544: .4byte gScriptItemId
-_080CA548: .4byte _080CA54C
- .align 2, 0
-_080CA54C:
- .4byte _080CA5D8
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA62C
- .4byte _080CA62C
- .4byte _080CA5BC
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA62C
- .4byte _080CA5F4
- .4byte _080CA5F4
- .4byte _080CA610
-_080CA5A0:
- ldr r0, _080CA5B8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_Medicine
- b _080CA640
- .align 2, 0
-_080CA5B8: .4byte gTasks
-_080CA5BC:
- ldr r0, _080CA5D4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_SacredAsh
- b _080CA640
- .align 2, 0
-_080CA5D4: .4byte gTasks
-_080CA5D8:
- ldr r0, _080CA5F0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_RareCandy
- b _080CA640
- .align 2, 0
-_080CA5F0: .4byte gTasks
-_080CA5F4:
- ldr r0, _080CA60C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_PPUp
- b _080CA640
- .align 2, 0
-_080CA60C: .4byte gTasks
-_080CA610:
- ldr r0, _080CA628 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_PPRecovery
- b _080CA640
- .align 2, 0
-_080CA628: .4byte gTasks
-_080CA62C:
- ldr r0, _080CA648 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x4
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_CannotUse
-_080CA640:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA648: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_EnigmaBerry
-
- thumb_func_start ItemUseInBattle_EnigmaBerry
-ItemUseInBattle_EnigmaBerry: @ 80CA64C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA66C @ =gScriptItemId
- ldrh r0, [r0]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x15
- bhi _080CA6E4
- lsls r0, 2
- ldr r1, _080CA670 @ =_080CA674
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CA66C: .4byte gScriptItemId
-_080CA670: .4byte _080CA674
- .align 2, 0
-_080CA674:
- .4byte _080CA6CC
- .4byte _080CA6E4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6E4
- .4byte _080CA6D4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6DC
-_080CA6CC:
- adds r0, r4, 0
- bl ItemUseInBattle_StatIncrease
- b _080CA6EA
-_080CA6D4:
- adds r0, r4, 0
- bl ItemUseInBattle_Medicine
- b _080CA6EA
-_080CA6DC:
- adds r0, r4, 0
- bl ItemUseInBattle_PPRecovery
- b _080CA6EA
-_080CA6E4:
- adds r0, r4, 0
- bl ItemUseOutOfBattle_CannotUse
-_080CA6EA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemUseInBattle_EnigmaBerry
-
- thumb_func_start ItemUseOutOfBattle_CannotUse
-ItemUseOutOfBattle_CannotUse: @ 80CA6F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA70C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0xC]
- bl DisplayDadsAdviceCannotUseItemMessage
- pop {r0}
- bx r0
- .align 2, 0
-_080CA70C: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_CannotUse
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/learn_move.s b/asm/learn_move.s
new file mode 100644
index 000000000..89cd2efb8
--- /dev/null
+++ b/asm/learn_move.s
@@ -0,0 +1,2739 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_813265C
+sub_813265C: @ 813265C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813265C
+
+ thumb_func_start sub_8132670
+sub_8132670: @ 8132670
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _08132698 @ =sub_813269C
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132698: .4byte sub_813269C
+ thumb_func_end sub_8132670
+
+ thumb_func_start sub_813269C
+sub_813269C: @ 813269C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _081326C8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081326C0
+ ldr r0, _081326CC @ =sub_81326D8
+ bl SetMainCallback2
+ ldr r1, _081326D0 @ =gFieldCallback
+ ldr r0, _081326D4 @ =sub_8080990
+ str r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_081326C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081326C8: .4byte gPaletteFade
+_081326CC: .4byte sub_81326D8
+_081326D0: .4byte gFieldCallback
+_081326D4: .4byte sub_8080990
+ thumb_func_end sub_813269C
+
+ thumb_func_start sub_81326D8
+sub_81326D8: @ 81326D8
+ push {r4,r5,lr}
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r4, _08132778 @ =gUnknown_030007B0
+ ldr r0, _0813277C @ =0x02017000
+ str r0, [r4]
+ bl sub_81332A0
+ ldr r1, [r4]
+ ldr r0, _08132780 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ ldr r2, _08132784 @ =0x000002c5
+ adds r1, r2
+ movs r5, 0
+ strb r0, [r1]
+ bl sub_8133558
+ ldr r0, _08132788 @ =sub_813265C
+ bl SetVBlankCallback
+ ldr r4, _0813278C @ =gWindowConfig_81E7240
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ ldr r4, _08132790 @ =gWindowConfig_81E6CE4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ ldr r0, _08132794 @ =REG_BG0VOFS
+ strh r5, [r0]
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ strh r5, [r0]
+ ldr r0, _08132798 @ =gUnknown_08402D80
+ bl LoadSpriteSheet
+ ldr r0, _0813279C @ =gUnknown_08402D88
+ bl LoadSpritePalette
+ bl sub_8133358
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl FillPalette
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r0, _081327A0 @ =sub_8132870
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132778: .4byte gUnknown_030007B0
+_0813277C: .4byte 0x02017000
+_08132780: .4byte gSpecialVar_0x8004
+_08132784: .4byte 0x000002c5
+_08132788: .4byte sub_813265C
+_0813278C: .4byte gWindowConfig_81E7240
+_08132790: .4byte gWindowConfig_81E6CE4
+_08132794: .4byte REG_BG0VOFS
+_08132798: .4byte gUnknown_08402D80
+_0813279C: .4byte gUnknown_08402D88
+_081327A0: .4byte sub_8132870
+ thumb_func_end sub_81326D8
+
+ thumb_func_start sub_81327A4
+sub_81327A4: @ 81327A4
+ push {r4,r5,lr}
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r4, _08132844 @ =gUnknown_030007B0
+ ldr r0, _08132848 @ =0x02017000
+ str r0, [r4]
+ bl sub_8133558
+ ldr r1, [r4]
+ ldr r0, _0813284C @ =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ ldr r2, _08132850 @ =0x000002c6
+ adds r1, r2
+ movs r5, 0
+ strb r0, [r1]
+ ldr r0, _08132854 @ =sub_813265C
+ bl SetVBlankCallback
+ ldr r4, _08132858 @ =gWindowConfig_81E7240
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ ldr r4, _0813285C @ =gWindowConfig_81E6CE4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08132860 @ =REG_BG0VOFS
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ strh r5, [r0]
+ ldr r0, _08132864 @ =gUnknown_08402D80
+ bl LoadSpriteSheet
+ ldr r0, _08132868 @ =gUnknown_08402D88
+ bl LoadSpritePalette
+ bl sub_8133358
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl FillPalette
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r0, _0813286C @ =sub_8132870
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132844: .4byte gUnknown_030007B0
+_08132848: .4byte 0x02017000
+_0813284C: .4byte gSpecialVar_0x8005
+_08132850: .4byte 0x000002c6
+_08132854: .4byte sub_813265C
+_08132858: .4byte gWindowConfig_81E7240
+_0813285C: .4byte gWindowConfig_81E6CE4
+_08132860: .4byte REG_BG0VOFS
+_08132864: .4byte gUnknown_08402D80
+_08132868: .4byte gUnknown_08402D88
+_0813286C: .4byte sub_8132870
+ thumb_func_end sub_81327A4
+
+ thumb_func_start sub_8132870
+sub_8132870: @ 8132870
+ push {r4,lr}
+ bl sub_8132908
+ ldr r4, _081328E0 @ =gUnknown_030007B0
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1D]
+ cmp r0, 0
+ beq _08132896
+ movs r0, 0
+ strb r0, [r1, 0x1D]
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x18]
+ lsls r1, 1
+ adds r1, 0x1
+ lsls r1, 27
+ lsrs r1, 24
+ movs r0, 0x58
+ bl sub_814AD7C
+_08132896:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1E]
+ cmp r0, 0
+ beq _081328A6
+ movs r0, 0
+ strb r0, [r1, 0x1E]
+ bl sub_8133800
+_081328A6:
+ ldr r1, [r4]
+ ldr r2, _081328E4 @ =0x000002c3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081328C8
+ adds r2, 0x1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8133AEC
+ ldr r0, [r4]
+ ldr r1, _081328E4 @ =0x000002c3
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_081328C8:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081328E0: .4byte gUnknown_030007B0
+_081328E4: .4byte 0x000002c3
+ thumb_func_end sub_8132870
+
+ thumb_func_start sub_81328E8
+sub_81328E8: @ 81328E8
+ push {r4,lr}
+ adds r1, r0, 0
+ ldr r4, _08132904 @ =gStringVar4
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132904: .4byte gStringVar4
+ thumb_func_end sub_81328E8
+
+ thumb_func_start sub_8132908
+sub_8132908: @ 8132908
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r1, _0813292C @ =gUnknown_030007B0
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0x21
+ bls _08132920
+ b _08132FD6
+_08132920:
+ lsls r0, 2
+ ldr r1, _08132930 @ =_08132934
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813292C: .4byte gUnknown_030007B0
+_08132930: .4byte _08132934
+ .align 2, 0
+_08132934:
+ .4byte _081329BC
+ .4byte _08132A0C
+ .4byte _08132A24
+ .4byte _08132A2C
+ .4byte _08132A60
+ .4byte _08132A66
+ .4byte _08132A98
+ .4byte _08132FD6
+ .4byte _08132AAA
+ .4byte _08132AD0
+ .4byte _08132FD6
+ .4byte _08132FD6
+ .4byte _08132B74
+ .4byte _08132B98
+ .4byte _08132DD8
+ .4byte _08132DF8
+ .4byte _08132BF0
+ .4byte _08132C08
+ .4byte _08132C2C
+ .4byte _08132D40
+ .4byte _08132D68
+ .4byte _08132DB8
+ .4byte _08132DC6
+ .4byte _08132FD6
+ .4byte _08132C74
+ .4byte _08132C8C
+ .4byte _08132CB0
+ .4byte _08132D0C
+ .4byte _08132E18
+ .4byte _08132E7C
+ .4byte _08132F58
+ .4byte _08132F84
+ .4byte _08132FA4
+ .4byte _08132FBC
+_081329BC:
+ ldr r1, [r7]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r4, 0
+ strb r0, [r1]
+ bl sub_8132FEC
+ movs r0, 0
+ bl sub_8133030
+ bl sub_8133800
+ ldr r0, _08132A04 @ =gSprites
+ adds r0, 0x64
+ movs r1, 0x48
+ strh r1, [r0]
+ ldr r0, [r7]
+ ldr r1, _08132A08 @ =0x000002c3
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _08132FD6
+ .align 2, 0
+_08132A04: .4byte gSprites
+_08132A08: .4byte 0x000002c3
+_08132A0C:
+ ldr r0, _08132A20 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132A1A
+ b _08132FD6
+_08132A1A:
+ ldr r1, [r7]
+ movs r0, 0x4
+ b _08132FD4
+ .align 2, 0
+_08132A20: .4byte gPaletteFade
+_08132A24:
+ ldr r1, [r7]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+_08132A2C:
+ movs r0, 0
+ bl sub_8133030
+ bl sub_8133800
+ ldr r2, _08132A54 @ =gUnknown_030007B0
+ ldr r0, [r2]
+ ldr r1, _08132A58 @ =0x000002c3
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _08132A5C @ =gSprites
+ adds r0, 0x64
+ movs r1, 0x48
+ strh r1, [r0]
+ b _08132FD6
+ .align 2, 0
+_08132A54: .4byte gUnknown_030007B0
+_08132A58: .4byte 0x000002c3
+_08132A5C: .4byte gSprites
+_08132A60:
+ bl sub_81330E8
+ b _08132A9C
+_08132A66:
+ movs r0, 0
+ bl sub_8133140
+ bl sub_8133800
+ ldr r2, _08132A8C @ =gUnknown_030007B0
+ ldr r0, [r2]
+ ldr r1, _08132A90 @ =0x000002c3
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08132A94 @ =gSprites
+ adds r0, 0x64
+ movs r1, 0x48
+ strh r1, [r0]
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132A8C: .4byte gUnknown_030007B0
+_08132A90: .4byte 0x000002c3
+_08132A94: .4byte gSprites
+_08132A98:
+ bl sub_8133248
+_08132A9C:
+ lsls r0, 24
+ cmp r0, 0
+ beq _08132AA4
+ b _08132FD6
+_08132AA4:
+ bl sub_813362C
+ b _08132FD6
+_08132AAA:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132AB6
+ b _08132FD6
+_08132AB6:
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _08132ACC @ =gUnknown_030007B0
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132ACC: .4byte gUnknown_030007B0
+_08132AD0:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08132B3A
+ bl sub_8133CA4
+ ldr r4, _08132B1C @ =gUnknown_030007B0
+ ldr r2, [r4]
+ ldr r1, _08132B20 @ =0x000002c5
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08132B24 @ =gPlayerParty
+ adds r0, r1
+ ldrb r1, [r2, 0x1B]
+ lsls r1, 1
+ adds r2, 0x20
+ adds r2, r1
+ ldrh r1, [r2]
+ bl GiveMoveToMon
+ lsls r0, 16
+ ldr r1, _08132B28 @ =0xffff0000
+ cmp r0, r1
+ beq _08132B34
+ ldr r0, _08132B2C @ =gOtherText_PokeLearnedMove
+ bl sub_81328E8
+ ldr r1, _08132B30 @ =gSpecialVar_0x8004
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, [r4]
+ movs r0, 0x1F
+ b _08132FD4
+ .align 2, 0
+_08132B1C: .4byte gUnknown_030007B0
+_08132B20: .4byte 0x000002c5
+_08132B24: .4byte gPlayerParty
+_08132B28: .4byte 0xffff0000
+_08132B2C: .4byte gOtherText_PokeLearnedMove
+_08132B30: .4byte gSpecialVar_0x8004
+_08132B34:
+ ldr r1, [r4]
+ movs r0, 0x10
+ b _08132FD4
+_08132B3A:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08132B48
+ cmp r1, 0x1
+ beq _08132B48
+ b _08132FD6
+_08132B48:
+ bl sub_8133CA4
+ ldr r3, _08132B70 @ =gUnknown_030007B0
+ ldr r1, [r3]
+ movs r2, 0xB1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132B60
+ movs r0, 0x3
+ strb r0, [r1]
+_08132B60:
+ ldr r1, [r3]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08132B6C
+ b _08132FD6
+_08132B6C:
+ movs r0, 0x5
+ b _08132FD4
+ .align 2, 0
+_08132B70: .4byte gUnknown_030007B0
+_08132B74:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132B80
+ b _08132FD6
+_08132B80:
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _08132B94 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132B94: .4byte gUnknown_030007B0
+_08132B98:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r4, r0, 24
+ cmp r4, 0
+ bne _08132BB4
+ bl sub_8133CA4
+ ldr r0, _08132BB0 @ =gSpecialVar_0x8004
+ strh r4, [r0]
+ b _08132FCE
+ .align 2, 0
+_08132BB0: .4byte gSpecialVar_0x8004
+_08132BB4:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08132BC2
+ cmp r4, 0x1
+ beq _08132BC2
+ b _08132FD6
+_08132BC2:
+ bl sub_8133CA4
+ ldr r3, _08132BEC @ =gUnknown_030007B0
+ ldr r1, [r3]
+ movs r2, 0xB1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132BDA
+ movs r0, 0x3
+ strb r0, [r1]
+_08132BDA:
+ ldr r1, [r3]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08132BE6
+ b _08132FD6
+_08132BE6:
+ movs r0, 0x5
+ b _08132FD4
+ .align 2, 0
+_08132BEC: .4byte gUnknown_030007B0
+_08132BF0:
+ ldr r0, _08132C00 @ =gOtherText_DeleteOlderMove
+ bl sub_81328E8
+ ldr r0, _08132C04 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132C00: .4byte gOtherText_DeleteOlderMove
+_08132C04: .4byte gUnknown_030007B0
+_08132C08:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132C14
+ b _08132FD6
+_08132C14:
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _08132C28 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ movs r0, 0x12
+ b _08132FD4
+ .align 2, 0
+_08132C28: .4byte gUnknown_030007B0
+_08132C2C:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08132C54
+ bl sub_8133CA4
+ ldr r0, _08132C4C @ =gOtherText_WhichMoveToForget
+ bl sub_81328E8
+ ldr r0, _08132C50 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ movs r0, 0x13
+ b _08132FD4
+ .align 2, 0
+_08132C4C: .4byte gOtherText_WhichMoveToForget
+_08132C50: .4byte gUnknown_030007B0
+_08132C54:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08132C62
+ cmp r1, 0x1
+ beq _08132C62
+ b _08132FD6
+_08132C62:
+ bl sub_8133CA4
+ ldr r0, _08132C70 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ movs r0, 0x18
+ b _08132FD4
+ .align 2, 0
+_08132C70: .4byte gUnknown_030007B0
+_08132C74:
+ ldr r0, _08132C84 @ =gOtherText_StopLearningMove
+ bl sub_81328E8
+ ldr r0, _08132C88 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132C84: .4byte gOtherText_StopLearningMove
+_08132C88: .4byte gUnknown_030007B0
+_08132C8C:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132C98
+ b _08132FD6
+_08132C98:
+ ldr r0, _08132CAC @ =gUnknown_030007B0
+ ldr r1, [r0]
+ movs r0, 0x1A
+ strb r0, [r1]
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ b _08132FD6
+ .align 2, 0
+_08132CAC: .4byte gUnknown_030007B0
+_08132CB0:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08132CCC
+ bl sub_8133CA4
+ ldr r0, _08132CC8 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ movs r0, 0x1B
+ b _08132FD4
+ .align 2, 0
+_08132CC8: .4byte gUnknown_030007B0
+_08132CCC:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08132CDA
+ cmp r1, 0x1
+ beq _08132CDA
+ b _08132FD6
+_08132CDA:
+ bl sub_8133CA4
+ ldr r1, _08132D08 @ =gUnknown_030007B0
+ ldr r2, [r1]
+ movs r3, 0xB1
+ lsls r3, 2
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132CF2
+ movs r0, 0x3
+ strb r0, [r2]
+_08132CF2:
+ ldr r2, [r1]
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08132D00
+ movs r0, 0x5
+ strb r0, [r2]
+_08132D00:
+ ldr r1, [r1]
+ movs r0, 0x10
+ b _08132FD4
+ .align 2, 0
+_08132D08: .4byte gUnknown_030007B0
+_08132D0C:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132D18
+ b _08132FD6
+_08132D18:
+ ldr r3, _08132D3C @ =gUnknown_030007B0
+ ldr r1, [r3]
+ movs r2, 0xB1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132D2C
+ movs r0, 0x3
+ strb r0, [r1]
+_08132D2C:
+ ldr r1, [r3]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08132D38
+ b _08132FD6
+_08132D38:
+ movs r0, 0x5
+ b _08132FD4
+ .align 2, 0
+_08132D3C: .4byte gUnknown_030007B0
+_08132D40:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132D4C
+ b _08132FD6
+_08132D4C:
+ ldr r0, _08132D64 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ movs r2, 0
+ movs r0, 0x14
+ strb r0, [r1]
+ subs r0, 0x15
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08132FD6
+ .align 2, 0
+_08132D64: .4byte gUnknown_030007B0
+_08132D68:
+ ldr r0, _08132DA4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132D76
+ b _08132FD6
+_08132D76:
+ ldr r0, _08132DA8 @ =gPlayerParty
+ ldr r5, [r7]
+ ldr r2, _08132DAC @ =0x000002c5
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ ldr r2, _08132DB0 @ =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08132DB4 @ =sub_81327A4
+ ldrb r4, [r5, 0x1B]
+ lsls r4, 1
+ adds r5, 0x20
+ adds r5, r4
+ ldrh r4, [r5]
+ str r4, [sp]
+ bl sub_809D9F0
+ ldr r1, [r7]
+ movs r0, 0x1C
+ b _08132FD4
+ .align 2, 0
+_08132DA4: .4byte gPaletteFade
+_08132DA8: .4byte gPlayerParty
+_08132DAC: .4byte 0x000002c5
+_08132DB0: .4byte gPlayerPartyCount
+_08132DB4: .4byte sub_81327A4
+_08132DB8:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132DC4
+ b _08132FD6
+_08132DC4:
+ b _08132FCE
+_08132DC6:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08132FD6
+_08132DD8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08132DF4 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132DF4: .4byte gUnknown_030007B0
+_08132DF8:
+ ldr r0, _08132E10 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132E06
+ b _08132FD6
+_08132E06:
+ ldr r0, _08132E14 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ b _08132FD6
+ .align 2, 0
+_08132E10: .4byte gPaletteFade
+_08132E14: .4byte c2_exit_to_overworld_2_switch
+_08132E18:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r5, _08132E74 @ =gUnknown_030007B0
+ ldr r1, [r5]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_8132FEC
+ bl sub_8133800
+ ldr r0, [r5]
+ movs r4, 0xB1
+ lsls r4, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132E4E
+ movs r0, 0x1
+ bl sub_8133030
+_08132E4E:
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08132E66
+ ldr r0, _08132E78 @ =gSprites
+ adds r0, 0x64
+ movs r1, 0x48
+ strh r1, [r0]
+ movs r0, 0x1
+ bl sub_8133140
+_08132E66:
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8133AEC
+ b _08132FD6
+ .align 2, 0
+_08132E74: .4byte gUnknown_030007B0
+_08132E78: .4byte gSprites
+_08132E7C:
+ ldr r0, _08132E9C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132E8A
+ b _08132FD6
+_08132E8A:
+ ldr r1, [r7]
+ ldr r0, _08132EA0 @ =0x000002c6
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0x4
+ bne _08132EA4
+ movs r0, 0x18
+ b _08132FD4
+ .align 2, 0
+_08132E9C: .4byte gPaletteFade
+_08132EA0: .4byte 0x000002c6
+_08132EA4:
+ ldr r4, _08132F38 @ =0x000002c5
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08132F3C @ =gPlayerParty
+ adds r0, r5
+ ldrb r1, [r2]
+ adds r1, 0xD
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08132F40 @ =gStringVar3
+ movs r1, 0xD
+ mov r9, r1
+ mov r1, r9
+ muls r1, r0
+ ldr r0, _08132F44 @ =gMoveNames
+ mov r8, r0
+ add r1, r8
+ adds r0, r2, 0
+ bl StringCopy
+ ldr r1, [r7]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ ldr r2, _08132F48 @ =0x000002c6
+ adds r1, r2
+ ldrb r1, [r1]
+ bl RemoveMonPPBonus
+ ldr r3, [r7]
+ adds r4, r3, r4
+ ldrb r0, [r4]
+ muls r0, r6
+ adds r0, r5
+ ldrb r2, [r3, 0x1B]
+ lsls r2, 1
+ adds r1, r3, 0
+ adds r1, 0x20
+ adds r1, r2
+ ldrh r1, [r1]
+ ldr r2, _08132F48 @ =0x000002c6
+ adds r3, r2
+ ldrb r2, [r3]
+ bl SetMonMoveSlot
+ ldr r0, _08132F4C @ =gStringVar2
+ ldr r1, [r7]
+ ldrb r2, [r1, 0x1B]
+ lsls r2, 1
+ adds r1, 0x20
+ adds r1, r2
+ ldrh r1, [r1]
+ mov r2, r9
+ muls r2, r1
+ adds r1, r2, 0
+ add r1, r8
+ bl StringCopy
+ ldr r0, _08132F50 @ =gOtherText_ForgotMove123
+ bl sub_81328E8
+ ldr r1, [r7]
+ movs r0, 0x1E
+ strb r0, [r1]
+ ldr r1, _08132F54 @ =gSpecialVar_0x8004
+ movs r0, 0x1
+ strh r0, [r1]
+ b _08132FD6
+ .align 2, 0
+_08132F38: .4byte 0x000002c5
+_08132F3C: .4byte gPlayerParty
+_08132F40: .4byte gStringVar3
+_08132F44: .4byte gMoveNames
+_08132F48: .4byte 0x000002c6
+_08132F4C: .4byte gStringVar2
+_08132F50: .4byte gOtherText_ForgotMove123
+_08132F54: .4byte gSpecialVar_0x8004
+_08132F58:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08132FD6
+ ldr r0, _08132F78 @ =gOtherText_ForgotOrDidNotLearnMove / deuOtherText_ForgotAndLearned
+ bl sub_81328E8
+ ldr r0, _08132F7C @ =gUnknown_030007B0
+ ldr r1, [r0]
+ movs r0, 0x1F
+ strb r0, [r1]
+ ldr r0, _08132F80 @ =0x0000016f
+ bl PlayFanfare
+ b _08132FD6
+ .align 2, 0
+.ifdef ENGLISH
+_08132F78: .4byte gOtherText_ForgotOrDidNotLearnMove
+.else
+_08132F78: .4byte deuOtherText_ForgotAndLearned
+.endif
+_08132F7C: .4byte gUnknown_030007B0
+_08132F80: .4byte 0x0000016f
+_08132F84:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08132FD6
+ ldr r0, _08132F9C @ =0x0000016f
+ bl PlayFanfare
+ ldr r0, _08132FA0 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ movs r0, 0x20
+ b _08132FD4
+ .align 2, 0
+_08132F9C: .4byte 0x0000016f
+_08132FA0: .4byte gUnknown_030007B0
+_08132FA4:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08132FD6
+ ldr r0, _08132FB8 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ movs r0, 0x21
+ b _08132FD4
+ .align 2, 0
+_08132FB8: .4byte gUnknown_030007B0
+_08132FBC:
+ ldr r0, _08132FE4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08132FD6
+ movs r0, 0x5
+ bl PlaySE
+_08132FCE:
+ ldr r0, _08132FE8 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ movs r0, 0xE
+_08132FD4:
+ strb r0, [r1]
+_08132FD6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132FE4: .4byte gMain
+_08132FE8: .4byte gUnknown_030007B0
+ thumb_func_end sub_8132908
+
+ thumb_func_start sub_8132FEC
+sub_8132FEC: @ 8132FEC
+ push {r4-r6,lr}
+ ldr r0, _08133024 @ =gWindowConfig_81E7240
+ bl BasicInitMenuWindow
+ movs r5, 0
+ ldr r4, _08133028 @ =gUnknown_08402CF8
+ adds r6, r4, 0
+_08132FFA:
+ lsls r3, r5, 2
+ ldrb r0, [r4]
+ adds r1, r6, 0x1
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r6, 0x2
+ adds r3, r2
+ ldrb r2, [r3]
+ ldrb r3, [r4, 0x3]
+ bl MenuDrawTextWindow
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0x3
+ bls _08132FFA
+ ldr r0, _0813302C @ =gWindowConfig_81E6CE4
+ bl BasicInitMenuWindow
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133024: .4byte gWindowConfig_81E7240
+_08133028: .4byte gUnknown_08402CF8
+_0813302C: .4byte gWindowConfig_81E6CE4
+ thumb_func_end sub_8132FEC
+
+ thumb_func_start sub_8133030
+sub_8133030: @ 8133030
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, _081330D4 @ =gSprites
+ ldr r5, _081330D8 @ =gUnknown_030007B0
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x3]
+ 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 r0, [r5]
+ ldrb r1, [r0, 0x4]
+ 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]
+ movs r2, 0
+ ldr r6, _081330DC @ =gUnknown_08402D08
+ movs r3, 0x4
+_08133070:
+ ldr r0, [r5]
+ adds r0, r2
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0xF
+ ble _08133070
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _081330B4
+ ldr r5, _081330E0 @ =gTileBuffer
+ adds r4, r6, 0
+_08133096:
+ ldr r1, [r4]
+ adds r0, r5, 0
+ movs r2, 0x40
+ movs r3, 0x2
+ bl sub_8072C74
+ ldrb r1, [r4, 0x4]
+ ldrb r2, [r4, 0x5]
+ adds r0, r5, 0
+ bl MenuPrint
+ adds r4, 0x8
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _08133096
+_081330B4:
+ cmp r7, 0
+ bne _081330CC
+ ldr r0, _081330E4 @ =gOtherText_TeachWhichMove
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0x78
+ movs r3, 0xC0
+ bl sub_8072AB0
+_081330CC:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081330D4: .4byte gSprites
+_081330D8: .4byte gUnknown_030007B0
+_081330DC: .4byte gUnknown_08402D08
+_081330E0: .4byte gTileBuffer
+_081330E4: .4byte gOtherText_TeachWhichMove
+ thumb_func_end sub_8133030
+
+ thumb_func_start sub_81330E8
+sub_81330E8: @ 81330E8
+ push {r4,lr}
+ ldr r0, _08133134 @ =gMain
+ ldrh r2, [r0, 0x2E]
+ movs r1, 0x30
+ ands r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r4, r0, 31
+ ldr r0, _08133138 @ =gSaveBlock2
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0813310C
+ movs r0, 0xC0
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _0813310C
+ adds r4, 0x1
+_0813310C:
+ cmp r4, 0
+ beq _0813312A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0813313C @ =gUnknown_030007B0
+ ldr r1, [r2]
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0xB1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0813312A:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08133134: .4byte gMain
+_08133138: .4byte gSaveBlock2
+_0813313C: .4byte gUnknown_030007B0
+ thumb_func_end sub_81330E8
+
+ thumb_func_start sub_8133140
+sub_8133140: @ 8133140
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldr r4, _08133234 @ =gSprites
+ ldr r5, _08133238 @ =gUnknown_030007B0
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r3, 0x5
+ negs r3, r3
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r3, 0
+ ands r1, r2
+ strb r1, [r0]
+ movs r6, 0
+ ldr r7, _0813323C @ =gUnknown_08402D08
+_0813318A:
+ ldr r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0, 0x7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _0813318A
+ movs r6, 0
+ ldr r0, [r7]
+ cmp r0, 0
+ beq _08133208
+ mov r9, r7
+ mov r10, r6
+ movs r0, 0x24
+ add r0, r9
+ mov r8, r0
+_081331BA:
+ mov r0, r9
+ adds r0, 0x20
+ add r0, r10
+ ldr r1, [r0]
+ ldr r0, _08133240 @ =gTileBuffer
+ movs r2, 0x40
+ movs r3, 0x2
+ bl sub_8072C74
+ mov r0, r8
+ ldrb r5, [r0]
+ ldrb r4, [r0, 0x1]
+ ldr r0, _08133240 @ =gTileBuffer
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ cmp r6, 0
+ beq _081331F8
+ adds r1, r4, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r5, 0x7
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r4, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ bl MenuZeroFillWindowRect
+_081331F8:
+ movs r0, 0x8
+ add r10, r0
+ add r8, r0
+ adds r7, 0x8
+ adds r6, 0x1
+ ldr r0, [r7]
+ cmp r0, 0
+ bne _081331BA
+_08133208:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bne _08133222
+ ldr r0, _08133244 @ =gOtherText_TeachWhichMove
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0x78
+ movs r3, 0xC0
+ bl sub_8072AB0
+_08133222:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133234: .4byte gSprites
+_08133238: .4byte gUnknown_030007B0
+_0813323C: .4byte gUnknown_08402D08
+_08133240: .4byte gTileBuffer
+_08133244: .4byte gOtherText_TeachWhichMove
+ thumb_func_end sub_8133140
+
+ thumb_func_start sub_8133248
+sub_8133248: @ 8133248
+ push {r4,lr}
+ ldr r0, _08133294 @ =gMain
+ ldrh r2, [r0, 0x2E]
+ movs r1, 0x30
+ ands r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r4, r0, 31
+ ldr r0, _08133298 @ =gSaveBlock2
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0813326C
+ movs r0, 0xC0
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _0813326C
+ adds r4, 0x1
+_0813326C:
+ cmp r4, 0
+ beq _0813328A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0813329C @ =gUnknown_030007B0
+ ldr r1, [r2]
+ movs r3, 0
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0xB1
+ lsls r1, 2
+ adds r0, r1
+ strb r3, [r0]
+_0813328A:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08133294: .4byte gMain
+_08133298: .4byte gSaveBlock2
+_0813329C: .4byte gUnknown_030007B0
+ thumb_func_end sub_8133248
+
+ thumb_func_start sub_81332A0
+sub_81332A0: @ 81332A0
+ push {r4,lr}
+ ldr r2, _081332F8 @ =gUnknown_030007B0
+ ldr r0, [r2]
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ strb r1, [r0, 0x2]
+ ldr r0, [r2]
+ strb r1, [r0, 0x19]
+ ldr r0, [r2]
+ strb r1, [r0, 0x18]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1C]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1A]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1B]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1D]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1E]
+ ldr r0, [r2]
+ ldr r3, _081332FC @ =0x000002c3
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r3, 0x1
+ adds r0, r3
+ strb r1, [r0]
+ movs r3, 0
+ adds r4, r2, 0
+ movs r2, 0
+_081332E0:
+ ldr r0, [r4]
+ lsls r1, r3, 1
+ adds r0, 0x20
+ adds r0, r1
+ strh r2, [r0]
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _081332E0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081332F8: .4byte gUnknown_030007B0
+_081332FC: .4byte 0x000002c3
+ thumb_func_end sub_81332A0
+
+ thumb_func_start sub_8133300
+sub_8133300: @ 8133300
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ movs r0, 0xFF
+ ands r1, r0
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ beq _08133324
+ cmp r0, 0x1
+ ble _0813334A
+ cmp r0, 0x2
+ beq _08133338
+ b _0813334A
+_08133324:
+ adds r0, r1, 0
+ movs r1, 0x3
+ bl Sin
+ ldrh r1, [r4, 0x32]
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r2, 0
+ strh r0, [r4, 0x24]
+ b _0813334A
+_08133338:
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl Sin
+ ldrh r1, [r4, 0x32]
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r2, 0
+ strh r0, [r4, 0x26]
+_0813334A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8133300
+
+ thumb_func_start sub_8133358
+sub_8133358: @ 8133358
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r6, _0813353C @ =gSpriteTemplate_8402D90
+ adds r0, r6, 0
+ movs r1, 0x8
+ movs r2, 0x10
+ movs r3, 0
+ bl CreateSprite
+ ldr r4, _08133540 @ =gUnknown_030007B0
+ ldr r1, [r4]
+ strb r0, [r1, 0x3]
+ ldr r5, _08133544 @ =gSprites
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ mov r8, r1
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08133548 @ =0x0000ffff
+ strh r1, [r0, 0x32]
+ adds r0, r6, 0
+ movs r1, 0x48
+ movs r2, 0x10
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ strb r0, [r1, 0x4]
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ ldr r0, _0813354C @ =gSpriteTemplate_8402DC0
+ mov r9, r0
+ movs r1, 0xA0
+ movs r2, 0x4
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ strb r0, [r1, 0x5]
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r6, 0x2
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x32]
+ mov r0, r9
+ movs r1, 0xA0
+ movs r2, 0x3C
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ strb r0, [r1, 0x6]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r2, 0x6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ movs r5, 0
+ ldr r6, _08133550 @ =gSpriteTemplate_8402E08
+_0813344E:
+ adds r2, r5, 0
+ cmp r5, 0
+ bge _08133456
+ adds r2, r5, 0x3
+_08133456:
+ asrs r2, 2
+ lsls r1, r2, 2
+ subs r1, r5, r1
+ lsls r1, 19
+ movs r0, 0xE0
+ lsls r0, 13
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, 19
+ movs r0, 0xD0
+ lsls r0, 14
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r6, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ adds r2, r5, 0x4
+ adds r1, 0x3
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x3
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08133544 @ =gSprites
+ adds r0, r1
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0813344E
+ movs r5, 0
+ ldr r7, _08133550 @ =gSpriteTemplate_8402E08
+ ldr r6, _08133540 @ =gUnknown_030007B0
+_081334A6:
+ adds r2, r5, 0
+ cmp r5, 0
+ bge _081334AE
+ adds r2, r5, 0x3
+_081334AE:
+ asrs r2, 2
+ lsls r1, r2, 2
+ subs r1, r5, r1
+ lsls r1, 19
+ movs r0, 0xE0
+ lsls r0, 13
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, 19
+ movs r0, 0xB8
+ lsls r0, 15
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r2, r5, 0
+ adds r2, 0xC
+ adds r1, 0x3
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x3
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08133544 @ =gSprites
+ adds r0, r4
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _081334A6
+ movs r5, 0
+ ldr r3, _08133540 @ =gUnknown_030007B0
+ movs r2, 0x4
+_08133500:
+ ldr r0, [r3]
+ adds r0, 0x3
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08133500
+ ldr r1, _08133548 @ =0x0000ffff
+ ldr r3, _08133554 @ =0x00002d9f
+ movs r0, 0x12
+ str r0, [sp]
+ movs r0, 0x10
+ movs r2, 0xC
+ bl CreateBlendedOutlineCursor
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813353C: .4byte gSpriteTemplate_8402D90
+_08133540: .4byte gUnknown_030007B0
+_08133544: .4byte gSprites
+_08133548: .4byte 0x0000ffff
+_0813354C: .4byte gSpriteTemplate_8402DC0
+_08133550: .4byte gSpriteTemplate_8402E08
+_08133554: .4byte 0x00002d9f
+ thumb_func_end sub_8133358
+
+ thumb_func_start sub_8133558
+sub_8133558: @ 8133558
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r5, _081335F4 @ =gUnknown_030007B0
+ ldr r1, [r5]
+ ldr r2, _081335F8 @ =0x000002c5
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _081335FC @ =gPlayerParty
+ adds r0, r2
+ adds r1, 0x20
+ bl GetMoveRelearnerMoves
+ ldr r1, [r5]
+ strb r0, [r1, 0x1A]
+ movs r4, 0
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1A]
+ cmp r4, r0
+ bge _081335AA
+ adds r6, r5, 0
+ movs r5, 0x52
+_08133586:
+ lsls r2, r4, 1
+ ldr r1, [r6]
+ adds r0, r1, r5
+ adds r1, 0x20
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08133600 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ adds r5, 0x19
+ adds r4, 0x1
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1A]
+ cmp r4, r0
+ blt _08133586
+_081335AA:
+ ldr r4, _081335F4 @ =gUnknown_030007B0
+ ldr r0, [r4]
+ ldr r1, _081335F8 @ =0x000002c5
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081335FC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ ldr r0, _08133604 @ =gStringVar1
+ mov r1, sp
+ bl StringCopy10
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x1A]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r2
+ adds r1, 0x52
+ adds r0, r1
+ ldr r1, _08133608 @ =gUnknownText_Exit
+ bl StringCopy
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1A]
+ adds r0, 0x1
+ strb r0, [r1, 0x1A]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081335F4: .4byte gUnknown_030007B0
+_081335F8: .4byte 0x000002c5
+_081335FC: .4byte gPlayerParty
+_08133600: .4byte gMoveNames
+_08133604: .4byte gStringVar1
+_08133608: .4byte gUnknownText_Exit
+ thumb_func_end sub_8133558
+
+ thumb_func_start sub_813360C
+sub_813360C: @ 813360C
+ lsls r0, 24
+ ldr r3, _08133628 @ =gUnknown_030007B0
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x18]
+ strb r1, [r2, 0x1C]
+ ldr r1, [r3]
+ lsrs r0, 24
+ ldrb r2, [r1, 0x18]
+ adds r0, r2
+ strb r0, [r1, 0x18]
+ ldr r1, [r3]
+ movs r0, 0x1
+ strb r0, [r1, 0x1D]
+ bx lr
+ .align 2, 0
+_08133628: .4byte gUnknown_030007B0
+ thumb_func_end sub_813360C
+
+ thumb_func_start sub_813362C
+sub_813362C: @ 813362C
+ push {r4,r5,lr}
+ ldr r2, _08133670 @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08133688
+ ldr r4, _08133674 @ =gUnknown_030007B0
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1B]
+ cmp r0, 0
+ bne _08133646
+ b _08133796
+_08133646:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1B]
+ subs r0, 0x1
+ strb r0, [r1, 0x1B]
+ ldr r0, [r4]
+ ldr r1, _08133678 @ =0x000002c3
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0
+ beq _0813367C
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_813360C
+ b _08133796
+ .align 2, 0
+_08133670: .4byte gMain
+_08133674: .4byte gUnknown_030007B0
+_08133678: .4byte 0x000002c3
+_0813367C:
+ ldrb r0, [r1, 0x19]
+ cmp r0, 0
+ bne _08133684
+ b _08133796
+_08133684:
+ subs r0, 0x1
+ b _081336DC
+_08133688:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081336E8
+ ldr r4, _081336C8 @ =gUnknown_030007B0
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1B]
+ ldrb r0, [r0, 0x1A]
+ subs r0, 0x1
+ cmp r1, r0
+ blt _081336A0
+ b _08133796
+_081336A0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1B]
+ adds r0, 0x1
+ strb r0, [r1, 0x1B]
+ ldr r0, [r4]
+ ldr r3, _081336CC @ =0x000002c3
+ adds r0, r3
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0x2
+ beq _081336D0
+ movs r0, 0x1
+ bl sub_813360C
+ b _08133796
+ .align 2, 0
+_081336C8: .4byte gUnknown_030007B0
+_081336CC: .4byte 0x000002c3
+_081336D0:
+ ldrb r2, [r1, 0x19]
+ ldrb r0, [r1, 0x1A]
+ subs r0, 0x3
+ cmp r2, r0
+ beq _08133796
+ adds r0, r2, 0x1
+_081336DC:
+ strb r0, [r1, 0x19]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1E]
+ adds r0, 0x1
+ strb r0, [r1, 0x1E]
+ b _08133796
+_081336E8:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813376C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _08133738 @ =gUnknown_030007B0
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1B]
+ ldrb r0, [r2, 0x1A]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08133748
+ movs r0, 0x8
+ strb r0, [r2]
+ ldr r0, _0813373C @ =gStringVar2
+ ldr r1, [r5]
+ ldrb r3, [r1, 0x1B]
+ lsls r2, r3, 1
+ adds r2, r3
+ lsls r2, 3
+ adds r2, r3
+ adds r2, 0x52
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08133740 @ =gStringVar4
+ ldr r1, _08133744 @ =gOtherText_TeachSpecificMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ b _08133796
+ .align 2, 0
+_08133738: .4byte gUnknown_030007B0
+_0813373C: .4byte gStringVar2
+_08133740: .4byte gStringVar4
+_08133744: .4byte gOtherText_TeachSpecificMove
+_08133748:
+ ldr r4, _08133764 @ =gStringVar4
+ ldr r1, _08133768 @ =gOtherText_GiveUpTeachingMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ ldr r1, [r5]
+ movs r0, 0xC
+ strb r0, [r1]
+ b _08133796
+ .align 2, 0
+_08133764: .4byte gStringVar4
+_08133768: .4byte gOtherText_GiveUpTeachingMove
+_0813376C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08133796
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _081337D4 @ =gUnknown_030007B0
+ ldr r1, [r0]
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r4, _081337D8 @ =gStringVar4
+ ldr r1, _081337DC @ =gOtherText_GiveUpTeachingMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+_08133796:
+ ldr r0, _081337D4 @ =gUnknown_030007B0
+ ldr r4, [r0]
+ ldrb r0, [r4, 0x1A]
+ cmp r0, 0x3
+ bls _081337F8
+ ldr r3, _081337E0 @ =gSprites
+ adds r5, r3, 0
+ adds r5, 0xC6
+ ldrb r0, [r5]
+ movs r1, 0x5
+ negs r1, r1
+ adds r2, r1, 0
+ ands r2, r0
+ strb r2, [r5]
+ movs r0, 0x85
+ lsls r0, 1
+ adds r0, r3
+ mov r12, r0
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ ands r3, r0
+ mov r1, r12
+ strb r3, [r1]
+ ldrb r0, [r4, 0x19]
+ cmp r0, 0
+ bne _081337E4
+ movs r1, 0x4
+ adds r0, r2, 0
+ orrs r0, r1
+ strb r0, [r5]
+ b _081337F8
+ .align 2, 0
+_081337D4: .4byte gUnknown_030007B0
+_081337D8: .4byte gStringVar4
+_081337DC: .4byte gOtherText_GiveUpTeachingMove
+_081337E0: .4byte gSprites
+_081337E4:
+ ldrb r1, [r4, 0x19]
+ ldrb r0, [r4, 0x1A]
+ subs r0, 0x3
+ cmp r1, r0
+ bne _081337F8
+ movs r1, 0x4
+ adds r0, r3, 0
+ orrs r0, r1
+ mov r3, r12
+ strb r0, [r3]
+_081337F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813362C
+
+ thumb_func_start sub_8133800
+sub_8133800: @ 8133800
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, _08133834 @ =gUnknown_030007B0
+ ldr r0, [r1]
+ ldrb r6, [r0, 0x19]
+ ldr r3, _08133838 @ =gTileBuffer
+ mov r10, r1
+ ldr r0, _0813383C @ =gBattleMoves
+ mov r9, r0
+ movs r1, 0x2
+ mov r8, r1
+_0813381C:
+ mov r4, r10
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x1A]
+ cmp r6, r0
+ bcc _08133844
+ adds r0, r3, 0
+ ldr r1, _08133840 @ =gEmptyString_81E72B0
+ movs r2, 0x90
+ movs r3, 0
+ bl sub_8072C74
+ b _081338FA
+ .align 2, 0
+_08133834: .4byte gUnknown_030007B0
+_08133838: .4byte gTileBuffer
+_0813383C: .4byte gBattleMoves
+_08133840: .4byte gEmptyString_81E72B0
+_08133844:
+ ldrb r0, [r2, 0x1A]
+ subs r0, 0x1
+ cmp r6, r0
+ bne _08133860
+ adds r0, r3, 0
+ ldr r1, _0813385C @ =gUnknownText_Exit
+ movs r2, 0x90
+ movs r3, 0
+ bl sub_8072C74
+ b _081338FA
+ .align 2, 0
+_0813385C: .4byte gUnknownText_Exit
+_08133860:
+ lsls r1, r6, 1
+ adds r0, r2, 0
+ adds r0, 0x20
+ adds r0, r1
+ ldrh r5, [r0]
+ movs r4, 0xB1
+ lsls r4, 2
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _081338A4
+ ldr r1, _0813389C @ =gContestMoves
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 27
+ ldr r1, _081338A0 @ =gUnknown_083CAF70
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r3, 0
+ movs r2, 0x27
+ movs r3, 0
+ bl sub_8072C74
+ adds r3, r0, 0
+ lsls r4, r5, 1
+ b _081338C2
+ .align 2, 0
+_0813389C: .4byte gContestMoves
+_081338A0: .4byte gUnknown_083CAF70
+_081338A4:
+ lsls r4, r5, 1
+ adds r0, r4, r5
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x2]
+ lsls r1, r0, 3
+ subs r1, r0
+ ldr r0, _08133938 @ =gTypeNames
+ adds r1, r0
+ adds r0, r3, 0
+ movs r2, 0x27
+ movs r3, 0
+ bl sub_8072C74
+ adds r3, r0, 0
+_081338C2:
+ adds r0, r7, r6
+ lsls r0, 3
+ adds r0, r6
+ adds r0, 0x52
+ mov r2, r10
+ ldr r1, [r2]
+ adds r1, r0
+ adds r0, r3, 0
+ movs r2, 0x72
+ movs r3, 0
+ bl sub_8072C74
+ adds r3, r0, 0
+ movs r0, 0xCA
+ strb r0, [r3]
+ strb r0, [r3, 0x1]
+ movs r0, 0xBA
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ adds r0, r4, r5
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x4]
+ adds r0, r3, 0
+ movs r2, 0x90
+ movs r3, 0
+ bl sub_8072C14
+_081338FA:
+ adds r3, r0, 0
+ movs r0, 0xFE
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0x1
+ negs r4, r4
+ add r8, r4
+ mov r0, r8
+ cmp r0, 0
+ blt _08133916
+ b _0813381C
+_08133916:
+ movs r0, 0xFF
+ strb r0, [r3]
+ ldr r0, _0813393C @ =gTileBuffer
+ movs r1, 0xB
+ movs r2, 0x1
+ bl MenuPrint
+ movs r0, 0
+ bl sub_813360C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133938: .4byte gTypeNames
+_0813393C: .4byte gTileBuffer
+ thumb_func_end sub_8133800
+
+ thumb_func_start sub_8133940
+sub_8133940: @ 8133940
+ push {r4-r7,lr}
+ sub sp, 0x34
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _08133968 @ =gExpandedPlaceholder_Empty
+ mov r0, sp
+ bl StringCopy
+ ldrb r0, [r4, 0x2]
+ subs r0, 0x1
+ cmp r0, 0x6
+ bls _0813395C
+ b _08133AE2
+_0813395C:
+ lsls r0, 2
+ ldr r1, _0813396C @ =_08133970
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08133968: .4byte gExpandedPlaceholder_Empty
+_0813396C: .4byte _08133970
+ .align 2, 0
+_08133970:
+ .4byte _08133AE2
+ .4byte _0813398C
+ .4byte _08133AE2
+ .4byte _081339A4
+ .4byte _08133AE2
+ .4byte _081339E4
+ .4byte _08133A64
+_0813398C:
+ ldr r0, _081339A0 @ =gBattleMoves
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ bls _081339B4
+ ldrb r1, [r1, 0x1]
+ b _081339CE
+ .align 2, 0
+_081339A0: .4byte gBattleMoves
+_081339A4:
+ ldr r0, _081339C4 @ =gBattleMoves
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ bne _081339CC
+_081339B4:
+ ldr r1, _081339C8 @ =gOtherText_ThreeDashes2
+ mov r0, sp
+ movs r2, 0x20
+ movs r3, 0x2
+ bl sub_8072C74
+ b _081339D8
+ .align 2, 0
+_081339C4: .4byte gBattleMoves
+_081339C8: .4byte gOtherText_ThreeDashes2
+_081339CC:
+ ldrb r1, [r1, 0x3]
+_081339CE:
+ mov r0, sp
+ movs r2, 0x20
+ movs r3, 0x2
+ bl sub_8072C14
+_081339D8:
+ ldrb r1, [r4]
+ ldrb r2, [r4, 0x1]
+ mov r0, sp
+ bl MenuPrint
+ b _08133AE2
+_081339E4:
+ ldrb r2, [r4]
+ ldrb r1, [r4, 0x1]
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r2, 0
+ bl MenuZeroFillWindowRect
+ ldr r2, _08133A34 @ =gContestEffects
+ ldr r1, _08133A38 @ =gContestMoves
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xFF
+ bne _08133A14
+ movs r5, 0
+_08133A14:
+ movs r4, 0
+ ldr r7, _08133A3C @ =gUnknown_030007B0
+ ldr r6, _08133A40 @ =gSprites
+_08133A1A:
+ cmp r4, r5
+ bcs _08133A44
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _08133A58
+ .align 2, 0
+_08133A34: .4byte gContestEffects
+_08133A38: .4byte gContestMoves
+_08133A3C: .4byte gUnknown_030007B0
+_08133A40: .4byte gSprites
+_08133A44:
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0
+ bl StartSpriteAnim
+_08133A58:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08133A1A
+ b _08133AE2
+_08133A64:
+ ldrb r2, [r4]
+ ldrb r1, [r4, 0x1]
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r2, 0
+ bl MenuZeroFillWindowRect
+ ldr r2, _08133AB4 @ =gContestEffects
+ ldr r1, _08133AB8 @ =gContestMoves
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xFF
+ bne _08133A94
+ movs r5, 0
+_08133A94:
+ movs r4, 0
+ ldr r7, _08133ABC @ =gUnknown_030007B0
+ ldr r6, _08133AC0 @ =gSprites
+_08133A9A:
+ cmp r4, r5
+ bcs _08133AC4
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _08133AD8
+ .align 2, 0
+_08133AB4: .4byte gContestEffects
+_08133AB8: .4byte gContestMoves
+_08133ABC: .4byte gUnknown_030007B0
+_08133AC0: .4byte gSprites
+_08133AC4:
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x2
+ bl StartSpriteAnim
+_08133AD8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08133A9A
+_08133AE2:
+ add sp, 0x34
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8133940
+
+ thumb_func_start sub_8133AEC
+sub_8133AEC: @ 8133AEC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r6, _08133B88 @ =gUnknown_030007B0
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x1B]
+ ldrb r0, [r2, 0x1A]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _08133B08
+ b _08133C04
+_08133B08:
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x20
+ adds r0, r1
+ ldrh r5, [r0]
+ cmp r3, 0
+ beq _08133BA0
+ movs r4, 0
+ lsls r0, r5, 3
+ mov r8, r0
+ ldr r7, _08133B8C @ =gSprites
+ adds r3, r6, 0
+ movs r6, 0x5
+ negs r6, r6
+_08133B24:
+ ldr r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0, 0x7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _08133B24
+ movs r4, 0
+_08133B48:
+ ldr r0, _08133B90 @ =gUnknown_08402E3D
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, _08133B94 @ =gUnknown_08402E24
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_8133940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _08133B48
+ ldr r1, _08133B98 @ =gUnknown_083CADD4
+ ldr r0, _08133B9C @ =gContestMoves
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x58
+ movs r2, 0x48
+ movs r3, 0x90
+ bl sub_8072AB0
+ b _08133C92
+ .align 2, 0
+_08133B88: .4byte gUnknown_030007B0
+_08133B8C: .4byte gSprites
+_08133B90: .4byte gUnknown_08402E3D
+_08133B94: .4byte gUnknown_08402E24
+_08133B98: .4byte gUnknown_083CADD4
+_08133B9C: .4byte gContestMoves
+_08133BA0:
+ movs r4, 0
+ subs r6, r5, 0x1
+_08133BA4:
+ ldr r0, _08133BF8 @ =gUnknown_08402E39
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, _08133BFC @ =gUnknown_08402E24
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_8133940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _08133BA4
+ ldr r1, _08133C00 @ =gMoveDescriptions
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x58
+ movs r2, 0x48
+ movs r3, 0x90
+ bl sub_8072A18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08133C92
+ lsls r1, r0, 25
+ movs r0, 0x90
+ lsls r0, 20
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0xB
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuFillWindowRectWithBlankTile
+ b _08133C92
+ .align 2, 0
+_08133BF8: .4byte gUnknown_08402E39
+_08133BFC: .4byte gUnknown_08402E24
+_08133C00: .4byte gMoveDescriptions
+_08133C04:
+ cmp r3, 0
+ beq _08133C5C
+ ldr r4, _08133C54 @ =gUnknown_08402E24
+ ldrb r2, [r4, 0xF]
+ ldrb r1, [r4, 0x10]
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r2, 0
+ bl MenuZeroFillWindowRect
+ ldrb r2, [r4, 0x12]
+ ldrb r1, [r4, 0x13]
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r2, 0
+ bl MenuZeroFillWindowRect
+ movs r4, 0
+ ldr r5, _08133C58 @ =gSprites
+ adds r3, r6, 0
+ movs r2, 0x4
+_08133C32:
+ ldr r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _08133C32
+ b _08133C86
+ .align 2, 0
+_08133C54: .4byte gUnknown_08402E24
+_08133C58: .4byte gSprites
+_08133C5C:
+ ldr r4, _08133CA0 @ =gUnknown_08402E24
+ ldrb r0, [r4, 0x3]
+ ldrb r1, [r4, 0x4]
+ adds r2, r0, 0x3
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ ldrb r0, [r4, 0x9]
+ ldrb r1, [r4, 0xA]
+ adds r2, r0, 0x3
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+_08133C86:
+ movs r0, 0xB
+ movs r1, 0x9
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+_08133C92:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133CA0: .4byte gUnknown_08402E24
+ thumb_func_end sub_8133AEC
+
+ thumb_func_start sub_8133CA4
+sub_8133CA4: @ 8133CA4
+ push {lr}
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1B
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ ldr r0, _08133CC8 @ =gUnknown_030007B0
+ ldr r0, [r0]
+ movs r1, 0xB1
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8133AEC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133CC8: .4byte gUnknown_030007B0
+ thumb_func_end sub_8133CA4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/libgcnmultiboot.s b/asm/libgcnmultiboot.s
index 87003abbc..91bc1890c 100644
--- a/asm/libgcnmultiboot.s
+++ b/asm/libgcnmultiboot.s
@@ -4,11 +4,36 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
+ .equiv GCMB_STRUCT_COUNTER1, 0x00
+ .equiv GCMB_STRUCT_COUNTER2, 0x01
+ .equiv GCMB_STRUCT_MBPROGRESS, 0x02
+ .equiv GCMB_STRUCT_SAVEDVCOUNT, 0x03
+ .equiv GCMB_STRUCT_KEYA, 0x04
+ .equiv GCMB_STRUCT_KEYB, 0x08
+ .equiv GCMB_STRUCT_KEYC, 0x0C
+ .equiv GCMB_STRUCT_BOOT_KEY, 0x10
+ .equiv GCMB_STRUCT_IMAGE_SIZE, 0x12
+ .equiv GCMB_STRUCT_SESSION_KEY, 0x14
+ .equiv GCMB_STRUCT_HASH_VAL, 0x18
+ .equiv GCMB_STRUCT_KEYC_DERIVATION, 0x1C
.equiv GCMB_STRUCT_BASE_DEST_PTR, 0x20
.equiv GCMB_STRUCT_CUR_DEST_PTR, 0x24
.equiv GCMB_STRUCT_SERIAL_INTR_HANDLER, 0x28
- .equiv ROM_HEADER_NINTENDO_LOGO_OFFSET, 0x4
+ .equiv ROM_HEADER_NINTENDO_LOGO_OFFSET, 0x04
+ .equiv ROM_HEADER_NINTENDO_LOGO_LENGTH, 0x98
+ .equiv ROM_HEADER_NINTENDO_LOGO_END, 0xA0
+
+ .equiv MBPROGRESS_NONE, 0x00
+ .equiv MBPROGRESS_LOGO_CORRECT, 0x01
+ .equiv MBPROGRESS_READY_TO_BOOT, 0x02
+
+ .equiv GCMB_MAGIC_BOOTKEY_HASHVAL, 0xBB
+ .equiv GCMB_MAGIC_BOOTKEY, 0xBB
+ .equiv GCMB_MAGIC_COUNTER2, 0xCC
+ .equiv GCMB_MAGIC_KEYA, 0xDD
+ .equiv GCMB_MAGIC_KEYB, 0xEE
+ .equiv GCMB_MAGIC_KEYCDERIVATION, 0xFF
.syntax unified
@@ -37,137 +62,177 @@ GameCubeMultiBoot_Hash_SkipEor:
thumb_func_start GameCubeMultiBoot_Main
@ void GameCubeMultiBoot_Main(struct GameCubeMultiBoot *mb)@
GameCubeMultiBoot_Main: @ 81DCB4C
+ @ If there is no interrupt handler, skip counter manipulation
ldr r1, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER]
cmp r1, 0
- beq _081DCB72
- ldrb r1, [r0, 0x1]
+ beq GameCubeMultiBoot_Main_SkipCounters
+ @ Increment the second counter
+ ldrb r1, [r0, GCMB_STRUCT_COUNTER2]
adds r1, 0x1
- strb r1, [r0, 0x1]
- ldrb r1, [r0, 0x2]
- cmp r1, 0x2
- beq _081DCBBC
+ strb r1, [r0, GCMB_STRUCT_COUNTER2]
+ @ If there is nothing more to do, bail out
+ ldrb r1, [r0, GCMB_STRUCT_MBPROGRESS]
+ cmp r1, MBPROGRESS_READY_TO_BOOT
+ beq GameCubeMultiBoot_Main_Return
+ @ Save current interrupt master register value
ldr r3, pool_InterruptRegs
ldrh r2, [r3, OFFSET_REG_IME - 0x200]
+ @ Disable all interrupts
movs r1, 0
strh r1, [r3, OFFSET_REG_IME - 0x200]
- ldrb r1, [r0]
+ @ Increment the first counter, if it's less than or equal to 10.
+ ldrb r1, [r0, GCMB_STRUCT_COUNTER1]
cmp r1, 0xA
- bgt _081DCB70
+ bgt GameCubeMultiBoot_Main_SkipCounter1Inc
adds r1, 0x1
- strb r1, [r0]
-_081DCB70:
+ strb r1, [r0, GCMB_STRUCT_COUNTER1]
+GameCubeMultiBoot_Main_SkipCounter1Inc:
+ @ Load the saved interrupt master register value (re-enables interrupts if they were enabled before)
strh r2, [r3, OFFSET_REG_IME - 0x200]
-_081DCB72:
+GameCubeMultiBoot_Main_SkipCounters:
+ @ Initialise multiboot structures if required
bcs GameCubeMultiBoot_Init
- ldrb r1, [r0, 0x2]
- cmp r1, 0
- bne _081DCBBE
+ @ Skip this section (check Nintendo logo) if the check has already passed
+ ldrb r1, [r0, GCMB_STRUCT_MBPROGRESS]
+ cmp r1, MBPROGRESS_NONE
+ bne GameCubeMultiBoot_Main_SkipLogoCheck
+ @ Bail out if no multiboot image data has been transferred yet
ldr r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
ldr r2, [r0, GCMB_STRUCT_BASE_DEST_PTR]
subs r1, r2
- beq _081DCC3E
- cmp r1, 0xA0
- bcc _081DCC3E
+ beq GameCubeMultiBoot_Main_Return2
+ @ Also bail out if not enough data has been transferred
+ cmp r1, ROM_HEADER_NINTENDO_LOGO_END
+ bcc GameCubeMultiBoot_Main_Return2
+ @ Compare the Nintendo logo of the transferred multiboot image header, with the one in the ROM image of the inserted cart
push {r4-r6}
- movs r1, 0x98
+ movs r1, ROM_HEADER_NINTENDO_LOGO_LENGTH
adds r2, ROM_HEADER_NINTENDO_LOGO_OFFSET
ldr r4, pool_NintendoLogo
-_081DCB8E:
+GameCubeMultiBoot_Main_LogoCmpLoop:
ldm r2!, {r5}
ldm r4!, {r6}
cmp r5, r6
- bne _081DCBA4
+ bne GameCubeMultiBoot_Main_LogoCmpEnd
subs r1, 0x4
- bne _081DCB8E
+ bne GameCubeMultiBoot_Main_LogoCmpLoop
ldm r2!, {r5}
ldm r4!, {r6}
eors r5, r6
lsrs r5, 8
str r2, [r0, GCMB_STRUCT_BASE_DEST_PTR]
-_081DCBA4:
+GameCubeMultiBoot_Main_LogoCmpEnd:
pop {r4-r6}
+ @ Throw everything away if the logo data didn't match
bne GameCubeMultiBoot_Init
- movs r1, 0x1
- strb r1, [r0, 0x2]
- ldr r1, [r0, 0x4]
- ldr r2, [r0, 0x8]
+ @ Logo matched, set the relevent multiboot progress bit
+ movs r1, MBPROGRESS_LOGO_CORRECT
+ strb r1, [r0, GCMB_STRUCT_MBPROGRESS]
+ @ XOR together KeyA and KeyB to get the initial multiboot image checksum value
+ ldr r1, [r0, GCMB_STRUCT_KEYA]
+ ldr r2, [r0, GCMB_STRUCT_KEYB]
eors r1, r2
- str r1, [r0, 0x18]
+ str r1, [r0, GCMB_STRUCT_HASH_VAL]
+ @ ...also use it as the initial value for the image encryption session key. Algorithm is the same as the GBA BIOS multiboot: sessionkey = (initialvalue * 0x6177614b) + 1
ldr r2, pool_Kawa
muls r1, r2
adds r1, 0x1
- str r1, [r0, 0x14]
-_081DCBBC:
+ str r1, [r0, GCMB_STRUCT_SESSION_KEY]
+GameCubeMultiBoot_Main_Return:
bx lr
-_081DCBBE:
+GameCubeMultiBoot_Main_SkipLogoCheck:
+ @ If this code is executed, then the logo check has passed, and the data being transferred in is encrypted.
+ @ Set up registers.
ldr r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
mov r12, r1
- ldr r3, [r0, 0x18]
+ ldr r3, [r0, GCMB_STRUCT_HASH_VAL]
push {r4-r7}
ldr r4, [r0, GCMB_STRUCT_BASE_DEST_PTR]
ldr r5, pool_Kawa
- ldr r6, [r0, 0x14]
+ ldr r6, [r0, GCMB_STRUCT_SESSION_KEY]
ldr r7, pool_HashVal
-_081DCBCE:
+GameCubeMultiBoot_Main_ImageDecryptHashLoop:
+ @ If there's no more data, break out of the loop
cmp r4, r12
- bcs _081DCBEE
+ bcs GameCubeMultiBoot_Main_ImageDecryptHashEnd
+ @ Get the next uint32
ldr r1, [r4]
+ @ Decrypt the ciphertext: plaintext = (ciphertext ^ sessionkey) + hashval
eors r1, r6
adds r1, r3
+ @ Save the current uint32 of plaintext and advance the pointer
stm r4!, {r1}
+ @ Advance the hashval with this uint32 of plaintext -- this is the same code as GameCubeMultiBoot_Hash.
eors r3, r1
movs r2, 0x20
-_081DCBDE:
+GameCubeMultiBoot_Main_HashLoop:
lsrs r3, 1
- bcc _081DCBE4
+ bcc GameCubeMultiBoot_Main_HashSkipEor
eors r3, r7
-_081DCBE4:
+GameCubeMultiBoot_Main_HashSkipEor:
subs r2, 0x1
- bne _081DCBDE
+ bne GameCubeMultiBoot_Main_HashLoop
+ @ Advance the sessionkey with the usual algorithm: sessionkey = (sessionkey * 0x6177614b) + 1
muls r6, r5
adds r6, 0x1
- b _081DCBCE
-_081DCBEE:
+ b GameCubeMultiBoot_Main_ImageDecryptHashLoop
+GameCubeMultiBoot_Main_ImageDecryptHashEnd:
+ @ Save the new pointer, sessionkey, hashval
str r4, [r0, GCMB_STRUCT_BASE_DEST_PTR]
- str r6, [r0, 0x14]
+ str r6, [r0, GCMB_STRUCT_SESSION_KEY]
pop {r4-r7}
- str r3, [r0, 0x18]
- ldrh r1, [r0, 0x12]
+ str r3, [r0, GCMB_STRUCT_HASH_VAL]
+ @ Bail out if the image size is unknown
+ ldrh r1, [r0, GCMB_STRUCT_IMAGE_SIZE]
cmp r1, 0
- bne _081DCC3E
+ bne GameCubeMultiBoot_Main_Return2
+ @ Bail out if no image data has been transferred
ldr r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
ldr r2, [r0, GCMB_STRUCT_BASE_DEST_PTR]
cmp r1, r2
- bne _081DCC3E
- ldr r1, [r0, 0xC]
+ bne GameCubeMultiBoot_Main_Return2
+ @ If KeyC hasn't been generated yet, go generate it
+ ldr r1, [r0, GCMB_STRUCT_KEYC]
cmp r1, 0
- beq _081DCC28
- ldrh r1, [r0, 0x10]
+ beq GameCubeMultiBoot_Main_GenerateKeyC
+ @ If the other side hasn't sent its boot key yet, bail out
+ ldrh r1, [r0, GCMB_STRUCT_BOOT_KEY]
cmp r1, 0
- beq _081DCBBC
+ beq GameCubeMultiBoot_Main_Return
+ @ Save off LR so it doesn't get clobbered by the upcoming function call
mov r12, lr
- movs r1, 0xBB
- ldr r3, [r0, 0xC]
+ @ Generate the real boot key, which is the checksum of a hardcoded value and KeyC
+ movs r1, GCMB_MAGIC_BOOTKEY_HASHVAL
+ ldr r3, [r0, GCMB_STRUCT_KEYC]
bl GameCubeMultiBoot_Hash
- ldrh r1, [r0, 0x10]
+ ldrh r1, [r0, GCMB_STRUCT_BOOT_KEY]
+ @ Restore the saved LR value
mov lr, r12
+ @ Compare the two boot keys (real and passed in), if they don't match then throw everything away
subs r1, r3
bne GameCubeMultiBoot_Init
- movs r1, 0x2
- strb r1, [r0, 0x2]
+ @ The two boot keys matched, tell the caller that the image is ready to boot
+ movs r1, MBPROGRESS_READY_TO_BOOT
+ strb r1, [r0, GCMB_STRUCT_MBPROGRESS]
+ @ Nothing more to do, return.
bx lr
-_081DCC28:
+GameCubeMultiBoot_Main_GenerateKeyC:
+ @ Save off LR so it doesn't get clobbered by the upcoming function call
mov r12, lr
- ldrb r1, [r0, 0x3]
+ @ KeyC = (SavedVCount << 24) - 1
+ ldrb r1, [r0, GCMB_STRUCT_SAVEDVCOUNT]
lsls r1, 24
subs r1, 0x1
- str r1, [r0, 0xC]
+ str r1, [r0, GCMB_STRUCT_KEYC]
+ @ Hash the KeyC with the multiboot image checksum to generate the KeyC derivation material to be sent to the other side of the link
bl GameCubeMultiBoot_Hash
+ @ Make sure the sent KeyC derivation material contains a magic value so that the other side can detect it
lsls r3, 8
- adds r3, 0xFF
- str r3, [r0, 0x1C]
+ adds r3, GCMB_MAGIC_KEYCDERIVATION
+ @ Save off the KeyC derivation material and return to caller
+ str r3, [r0, GCMB_STRUCT_KEYC_DERIVATION]
bx r12
-_081DCC3E:
+GameCubeMultiBoot_Main_Return2:
bx lr
thumb_func_end GameCubeMultiBoot_Main
@@ -182,12 +247,15 @@ pool_NintendoLogo: .4byte RomHeaderNintendoLogo
thumb_func_start GameCubeMultiBoot_ExecuteProgram
@ void GameCubeMultiBoot_ExecuteProgram(struct GameCubeMultiBoot *mb)@
GameCubeMultiBoot_ExecuteProgram: @ 81DCC4C
- ldrb r1, [r0, 0x2]
- cmp r1, 0x2
+ @ If there's no multiboot image ready, just return to caller
+ ldrb r1, [r0, GCMB_STRUCT_MBPROGRESS]
+ cmp r1, MBPROGRESS_READY_TO_BOOT
bne GameCubeMultiBoot_ExecuteProgram_Fail
+ @ Disable interrupts
ldr r3, pool_InterruptRegs
movs r1, 0
strh r1, [r3, OFFSET_REG_IME - 0x200]
+ @ Jump to the real entry point of the multiboot image (past the image header), in ARM mode
ldr r1, pool_MultiBootLoadAddr
adds r1, 0xC0
bx r1
@@ -308,19 +376,25 @@ GameCubeMultiBoot_HandleSerialInterruptDone:
bx lr
GameCubeMultiBoot_BeginHandshake:
+ @ Throw away anything that got sent
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
+ @ Send the game code, the other side of the link must send back the same game code
ldr r1, pool_RubyUSAGameCode
str r1, [r3, OFFSET_REG_JOY_TRANS - 0x120]
movs r1, 0x10
strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120]
- ldrb r1, [r0, 0x3]
- strb r1, [r0, 0x9]
- ldrb r1, [r0, 0x2]
+ @ Use the saved VCount value to provide 8 bits of entropy for KeyB
+ ldrb r1, [r0, GCMB_STRUCT_SAVEDVCOUNT]
+ strb r1, [r0, GCMB_STRUCT_KEYB + 1]
+ @ If a multiboot image has been transferred at least enough such that the Nintendo logo check has passed, stop everything.
+ ldrb r1, [r0, GCMB_STRUCT_MBPROGRESS]
cmp r1, 0
bne GcMbIntrHandler_Stop
+ @ Set the image destination pointers.
ldr r1, pool_MultiBootLoadAddr
str r1, [r0, GCMB_STRUCT_BASE_DEST_PTR]
str r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
+ @ Set the new interrupt handler.
adr r2, GcMbIntrHandler_CheckGameCodeSent
b GameCubeMultiBoot_SetInterruptHandler
@@ -347,84 +421,91 @@ GameCubeMultiBoot_CheckHandshakeResponse:
ldr r2, pool_RubyUSAGameCode
cmp r1, r2
bne GcMbIntrHandler_Stop @ stop if the GameCube didn't reply with the same game code
- ldrb r1, [r0, 0x3]
- strb r1, [r0, 0xB]
- adr r2, GcMbIntrHandler_81DCD0C
+ @ Use the saved VCount value to provide another 8 bits of entropy for KeyB.
+ ldrb r1, [r0, GCMB_STRUCT_SAVEDVCOUNT]
+ strb r1, [r0, GCMB_STRUCT_KEYB + 3]
+ adr r2, GcMbIntrHandler_ReceiveKeyA
b GameCubeMultiBoot_SetInterruptHandler
.align 2, 0
-GcMbIntrHandler_81DCD0C: @ 81DCD0C
+GcMbIntrHandler_ReceiveKeyA: @ 81DCD0C
lsrs r1, 1 @ is receive complete?
bcc GcMbIntrHandler_Stop @ branch if not
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
+ @ make sure top 8 bits of the received value is the KeyA magic number, stop if KeyA is invalid
lsrs r2, r1, 24
- cmp r2, 0xDD
+ cmp r2, GCMB_MAGIC_KEYA
bne GcMbIntrHandler_Stop
- str r1, [r0, 0x4]
- ldrb r1, [r0, 0x1]
- strb r1, [r0, 0xA]
+ @ save received KeyA
+ str r1, [r0, GCMB_STRUCT_KEYA]
+ @ use the second GameCubeMultiBoot_Main() counter as another 8 bits of entropy for KeyB
+ ldrb r1, [r0, GCMB_STRUCT_COUNTER2]
+ strb r1, [r0, GCMB_STRUCT_KEYB + 2]
movs r2, 0
movs r3, 0
- ldr r1, [r0, 0x8]
+ ldr r1, [r0, GCMB_STRUCT_KEYB]
lsrs r1, 8
-_081DCD26:
+ @ make sure KeyB is valid (other side of the link is supposed to check KeyB too), if it's not then change the byte that was just set so it is
+GameCubeMultiBoot_KeyBCheckLoop:
lsrs r1, 1
adcs r2, r3
cmp r1, 0
- bne _081DCD26
+ bne GameCubeMultiBoot_KeyBCheckLoop
cmp r2, 0xE
- bgt _081DCD38
+ bgt GameCubeMultiBoot_KeyBSaveNewByte
cmp r2, 0x7
- bge _081DCD3A
+ bge GameCubeMultiBoot_KeyBCheckEnd
movs r1, 0xFF
-_081DCD38:
- strb r1, [r0, 0xA]
-_081DCD3A:
- ldr r1, [r0, 0x8]
- adds r1, 0xEE
+GameCubeMultiBoot_KeyBSaveNewByte:
+ strb r1, [r0, GCMB_STRUCT_KEYB + 2]
+GameCubeMultiBoot_KeyBCheckEnd:
+ @ add in the KeyB magic number and send off KeyB
+ ldr r1, [r0, GCMB_STRUCT_KEYB]
+ adds r1, GCMB_MAGIC_KEYB
ldr r3, pool_SerialRegs
str r1, [r3, OFFSET_REG_JOY_TRANS - 0x120]
movs r1, 0x30
strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120]
- adr r2, GcMbIntrHandler_81DCD4C
+ @ set new interrupt handler
+ adr r2, GcMbIntrHandler_CheckKeyBSent
b GameCubeMultiBoot_SetInterruptHandler
.align 2, 0
-GcMbIntrHandler_81DCD4C: @ 81DCD4C
+GcMbIntrHandler_CheckKeyBSent: @ 81DCD4C
lsls r1, 31
bcc GcMbIntrHandler_Stop @ stop if send failed
- bmi _081DCD5C @ branch if receive is complete
- adr r2, GcMbIntrHandler_81DCD58
+ bmi GameCubeMultiBoot_CheckImageSizeResponse @ branch if receive is complete
+ adr r2, GcMbIntrHandler_CheckImageSizeResponse
b GameCubeMultiBoot_SetInterruptHandler
.align 2, 0
-GcMbIntrHandler_81DCD58: @ 81DCD58
+GcMbIntrHandler_CheckImageSizeResponse: @ 81DCD58
lsrs r1, 1 @ is receive complete?
bcc GcMbIntrHandler_Stop @ branch if not
-_081DCD5C:
+GameCubeMultiBoot_CheckImageSizeResponse:
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
- ldr r2, _081DCDFC
+ ldr r2, GameCubeMultiBoot_MaximumImageSizeUInt32s
cmp r1, r2
bhs GcMbIntrHandler_Stop
adds r1, 0x1
adds r1, r1
- strh r1, [r0, 0x12]
- ldrb r1, [r0, 0x2]
+ strh r1, [r0, GCMB_STRUCT_IMAGE_SIZE]
+ ldrb r1, [r0, GCMB_STRUCT_MBPROGRESS]
cmp r1, 0
-_081DCD6E:
+GcMbIntrHandler_StopIfNotEqual:
bne GcMbIntrHandler_Stop
ldr r1, pool_MultiBootLoadAddr
str r1, [r0, GCMB_STRUCT_BASE_DEST_PTR]
str r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
- adr r2, GcMbIntrHandler_81DCD7C
+ adr r2, GcMbIntrHandler_CheckImageResponse
b GameCubeMultiBoot_SetInterruptHandler
.align 2, 0
-GcMbIntrHandler_81DCD7C: @ 81DCD7C
+GcMbIntrHandler_CheckImageResponse: @ 81DCD7C
lsrs r1, 1 @ is receive complete?
bcc GcMbIntrHandler_Stop @ branch if not
ldr r2, [r0, GCMB_STRUCT_CUR_DEST_PTR]
@@ -433,63 +514,73 @@ GcMbIntrHandler_81DCD7C: @ 81DCD7C
adds r1, 0x8
lsls r1, 2
strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120]
+ @ get the recieved uint32
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
+ @ put it in the current destination pointer and advance that pointer
stm r2!, {r1}
+ @ save off the advanced pointer
str r2, [r0, GCMB_STRUCT_CUR_DEST_PTR]
- ldrh r1, [r0, 0x12]
+ @ decrease the image size (in uint32s)
+ ldrh r1, [r0, GCMB_STRUCT_IMAGE_SIZE]
subs r1, 0x1
- strh r1, [r0, 0x12]
+ strh r1, [r0, GCMB_STRUCT_IMAGE_SIZE]
+ @ branch away if the transfer is not yet complete
bne GameCubeMultiBoot_ReadVCount
-_081DCD9A:
- ldrb r1, [r0, 0x1]
+GcMbIntrHandler_SendCounter2:
+ @ send counter2 with magic number
+ ldrb r1, [r0, GCMB_STRUCT_COUNTER2]
lsls r1, 8
- adds r1, 0xCC
+ adds r1, GCMB_MAGIC_COUNTER2
str r1, [r3, OFFSET_REG_JOY_TRANS - 0x120]
- adr r2, _081DCDA8
+ adr r2, GcMbIntrHandler_CheckCounter2Sent
b GameCubeMultiBoot_SetInterruptHandler
.align 2, 0
-_081DCDA8:
+GcMbIntrHandler_CheckCounter2Sent:
lsls r1, 31
-_081DCDAA:
- bcc GcMbIntrHandler_Stop
- ldr r1, [r0, 0x1C]
+GcMbIntrHandler_StopIfSendFailed:
+ bcc GcMbIntrHandler_Stop @ stop if send failed
+ @ if KeyC derivation value has not yet been generated, send Counter2 again, otherwise, send KeyC derivation
+ ldr r1, [r0, GCMB_STRUCT_KEYC_DERIVATION]
cmp r1, 0
- beq _081DCD9A
+ beq GcMbIntrHandler_SendCounter2
str r1, [r3, OFFSET_REG_JOY_TRANS - 0x120]
- adr r2, GcMbIntrHandler_81DCDB8
+ adr r2, GcMbIntrHandler_CheckKeyCDerivationSent
b GameCubeMultiBoot_SetInterruptHandler
.align 2, 0
-GcMbIntrHandler_81DCDB8: @ 81DCDB8
+GcMbIntrHandler_CheckKeyCDerivationSent: @ 81DCDB8
lsls r1, 31
- bcc _081DCDAA @ branch if send failed
- bmi _081DCDC8 @ branch if receive is complete
- adr r2, GcMbIntrHandler_81DCDC4
+ bcc GcMbIntrHandler_StopIfSendFailed @ branch if send failed
+ bmi GameCubeMultiBoot_CheckBootKeyResponse @ branch if receive is complete
+ adr r2, GcMbIntrHandler_CheckBootKeyResponse
b GameCubeMultiBoot_SetInterruptHandler
.align 2, 0
-GcMbIntrHandler_81DCDC4: @ 81DCDC4
+GcMbIntrHandler_CheckBootKeyResponse: @ 81DCDC4
lsrs r1, 1 @ is receive complete?
- bcc _081DCDAA @ branch if not
+ bcc GcMbIntrHandler_StopIfSendFailed @ branch if not
-_081DCDC8:
+GameCubeMultiBoot_CheckBootKeyResponse:
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
+ @ make sure received boot key contains expected magic number, stop if not
lsrs r2, r1, 24
- cmp r2, 0xBB
- bne _081DCD6E
- strh r1, [r0, 0x10]
- adr r2, GcMbIntrHandler_81DCDD8
+ cmp r2, GCMB_MAGIC_BOOTKEY
+ bne GcMbIntrHandler_StopIfNotEqual
+ @ save received bootkey to be checked in GameCubeMultiBoot_Main()
+ strh r1, [r0, GCMB_STRUCT_BOOT_KEY]
+ @ stop if anything more gets sent
+ adr r2, GcMbIntrHandler_StopUnconditionally
b GameCubeMultiBoot_SetInterruptHandler
.align 2, 0
-GcMbIntrHandler_81DCDD8: @ 81DCDD8
+GcMbIntrHandler_StopUnconditionally: @ 81DCDD8
b GcMbIntrHandler_Stop
thumb_func_end GameCubeMultiBoot_HandleSerialInterrupt
@@ -535,7 +626,7 @@ GameCubeMultiBoot_Quit: @ 81DCDDA
.align 2, 0
-_081DCDFC: .4byte 0x00004000
+GameCubeMultiBoot_MaximumImageSizeUInt32s: .4byte 0x00004000
pool_InterruptRegs: .4byte REG_BASE + 0x200
diff --git a/asm/macros/asm.inc b/asm/macros/asm.inc
index 4ac003fab..26b2707ca 100644
--- a/asm/macros/asm.inc
+++ b/asm/macros/asm.inc
@@ -1,3 +1,6 @@
+ .ifndef GUARD_ASM_MACROS_ASM_INC
+ .set GUARD_ASM_MACROS_ASM_INC, 1
+
.macro inc x
.set \x, \x + 1
.endm
@@ -10,3 +13,5 @@
.equiv \constant, __enum__
inc __enum__
.endm
+
+ .endif @ GUARD_ASM_MACROS_ASM_INC
diff --git a/asm/macros/battle_ai_script.inc b/asm/macros/battle_ai_script.inc
index 38a44ddfb..679e30340 100644
--- a/asm/macros/battle_ai_script.inc
+++ b/asm/macros/battle_ai_script.inc
@@ -1,21 +1,24 @@
- .macro if_random percent, address
+ .macro if_random_less_than percent, address
.byte 0x00
.byte \percent
.4byte \address
.endm
- .macro if_not_random percent, address
+ @ unused
+ .macro if_random_greater_than percent, address
.byte 0x01
.byte \percent
.4byte \address
.endm
- .macro if_random_1 address
+ @ unused
+ .macro if_random_equal address
.byte 0x02
.4byte \address
.endm
- .macro if_not_random_1 address
+ @ unused
+ .macro if_random_not_equal address
.byte 0x03
.4byte \address
.endm
@@ -212,7 +215,8 @@
.byte \byte
.endm
- .macro ai_23
+ @ unused
+ .macro get_move_power
.byte 0x23
.endm
@@ -225,14 +229,17 @@
.byte \target
.endm
- .macro if_type type, address
+ .macro if_arg_equal type, address
.byte 0x26
.byte \type
.4byte \address
.endm
- .macro ai_27
+ @ unused
+ .macro if_arg_not_equal type, address
.byte 0x27
+ .byte \type
+ .4byte \address
.endm
.macro if_would_go_first target, address
@@ -247,10 +254,12 @@
.4byte \address
.endm
+ @ nullsub
.macro ai_2a
.byte 0x2a
.endm
+ @ nullsub
.macro ai_2b
.byte 0x2b
.endm
@@ -260,7 +269,8 @@
.byte \target
.endm
- .macro ai_2d
+ @ unused
+ .macro get_considered_move
.byte 0x2d
.endm
@@ -273,7 +283,8 @@
.byte \target
.endm
- .macro ai_30
+ @ unused
+ .macro get_highest_possible_damage
.byte 0x30
.endm
@@ -283,10 +294,12 @@
.4byte \address
.endm
+ @ nullsub
.macro ai_32
.byte 0x32
.endm
+ @ nullsub
.macro ai_33
.byte 0x33
.endm
@@ -364,12 +377,20 @@
.4byte \address
.endm
- .macro if_has_move
+ @ unused
+ .macro if_has_move, target, move, address
.byte 0x3f
+ .byte \target
+ .2byte \move
+ .4byte \address
.endm
- .macro if_dont_have_move
+ @ unused
+ .macro if_dont_have_move, target, move, address
.byte 0x40
+ .byte \target
+ .2byte \move
+ .4byte \address
.endm
.macro if_move_effect target, effect, address
@@ -393,8 +414,9 @@
.4byte \address
.endm
- .macro if_encored address
+ .macro if_encored target, address
.byte 0x44
+ .byte \target
.4byte \address
.endm
@@ -402,7 +424,7 @@
.byte 0x45
.endm
- .macro if_random_2 address
+ .macro if_random_100 address
.byte 0x46
.4byte \address
.endm
@@ -440,15 +462,15 @@
.byte \target
.endm
- .macro get_move_type
+ .macro get_move_type_from_result
.byte 0x4e
.endm
- .macro get_move_power
+ .macro get_move_power_from_result
.byte 0x4f
.endm
- .macro get_move_effect
+ .macro get_move_effect_from_result
.byte 0x50
.endm
@@ -457,30 +479,37 @@
.byte \target
.endm
+ @ nullsub
.macro ai_52
.byte 0x52
.endm
+ @ nullsub
.macro ai_53
.byte 0x53
.endm
+ @ nullsub
.macro ai_54
.byte 0x54
.endm
+ @ nullsub
.macro ai_55
.byte 0x55
.endm
+ @ nullsub
.macro ai_56
.byte 0x56
.endm
+ @ nullsub
.macro ai_57
.byte 0x57
.endm
+ @ unused
.macro call address
.byte 0x58
.4byte \address
@@ -513,6 +542,7 @@
if_level_cond 2, \address
.endm
+ @ unused
.macro if_taunted address
.byte 0x5c
.4byte \address
diff --git a/asm/macros/battle_anim.inc b/asm/macros/battle_anim.inc
index fc2777326..4ff845032 100644
--- a/asm/macros/battle_anim.inc
+++ b/asm/macros/battle_anim.inc
@@ -8,24 +8,24 @@
.2byte \id
.endm
- .macro sprite template, priority, argc=0, argv:vararg
+ .macro sprite template, priority, argv:vararg
.byte 0x02
.4byte \template
.byte \priority
- .byte \argc
- .if \argc > 0
+ .byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2
+.Lsprite_\@_1:
.2byte \argv
- .endif
+.Lsprite_\@_2:
.endm
- .macro createtask addr, priority, argc=0, argv:vararg
+ .macro createtask addr, priority, argv:vararg
.byte 0x03
.4byte \addr
.byte \priority
- .byte \argc
- .if \argc > 0
+ .byte (.Lcreatetask_\@_2 - .Lcreatetask_\@_1) / 2
+.Lcreatetask_\@_1:
.2byte \argv
- .endif
+.Lcreatetask_\@_2:
.endm
.macro pause delay
@@ -167,13 +167,13 @@
.2byte \bldcnt
.endm
- .macro createtask_1F addr, argc=0, argv:vararg
+ .macro createtask_1F addr, argv:vararg
.byte 0x1F
.4byte \addr
- .byte \argc
- .if \argc > 0
+ .byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2
+.Lcreatetask_1F_\@_1:
.2byte \argv
- .endif
+.Lcreatetask_1F_\@_2:
.endm
.macro waitsound
diff --git a/asm/matsuda_debug_menu.s b/asm/matsuda_debug_menu.s
deleted file mode 100644
index e9577b8b8..000000000
--- a/asm/matsuda_debug_menu.s
+++ /dev/null
@@ -1,685 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80AAC5C
-sub_80AAC5C: @ 80AAC5C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- cmp r1, 0
- ble _080AAC78
- ldr r1, _080AAC74 @ =gScriptContestRank
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- adds r4, r1, 0
- b _080AAC86
- .align 2, 0
-_080AAC74: .4byte gScriptContestRank
-_080AAC78:
- ldr r0, _080AACBC @ =gScriptContestRank
- ldrh r2, [r0]
- adds r4, r0, 0
- cmp r2, 0
- beq _080AAC86
- subs r0, r2, 0x1
- strh r0, [r4]
-_080AAC86:
- adds r1, r4, 0
- ldrh r0, [r1]
- cmp r0, 0x3
- bls _080AAC92
- movs r0, 0x3
- strh r0, [r1]
-_080AAC92:
- ldrb r0, [r4]
- bl sub_80AA5E8
- ldr r0, _080AACC0 @ =gScriptContestCategory
- ldrb r0, [r0]
- ldrb r1, [r4]
- bl sub_80AE398
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA280
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AA658
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AACBC: .4byte gScriptContestRank
-_080AACC0: .4byte gScriptContestCategory
- thumb_func_end sub_80AAC5C
-
- thumb_func_start sub_80AACC4
-sub_80AACC4: @ 80AACC4
- push {lr}
- bl UpdatePaletteFade
- ldr r0, _080AACF8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080AACF4
- bl SetDebugMonForContest
- ldr r0, _080AACFC @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080AACEE
- ldr r0, _080AAD00 @ =0x02000000
- ldrb r0, [r0]
- bl sub_80AE82C
-_080AACEE:
- ldr r0, _080AAD04 @ =sub_80AB47C
- bl SetMainCallback2
-_080AACF4:
- pop {r0}
- bx r0
- .align 2, 0
-_080AACF8: .4byte gPaletteFade
-_080AACFC: .4byte gUnknown_0203869A
-_080AAD00: .4byte 0x02000000
-_080AAD04: .4byte sub_80AB47C
- thumb_func_end sub_80AACC4
-
- thumb_func_start sub_80AAD08
-sub_80AAD08: @ 80AAD08
- push {r4,lr}
- sub sp, 0x4
- lsls r1, 24
- asrs r1, 24
- cmp r1, 0x1
- bne _080AAD32
- ldr r1, _080AAD3C @ =0x02000000
- ldrh r0, [r0, 0x34]
- movs r4, 0
- strb r0, [r1]
- ldr r0, _080AAD40 @ =sub_80AACC4
- bl SetMainCallback2
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080AAD32:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAD3C: .4byte 0x02000000
-_080AAD40: .4byte sub_80AACC4
- thumb_func_end sub_80AAD08
-
- thumb_func_start sub_80AAD44
-sub_80AAD44: @ 80AAD44
- push {r4,r5,lr}
- lsls r1, 24
- asrs r1, 24
- cmp r1, 0x1
- bne _080AAD72
- bl SetDebugMonForContest
- movs r4, 0
- ldr r5, _080AAD78 @ =gUnknown_02038670
-_080AAD56:
- lsls r0, r4, 24
- lsrs r0, 24
- ldr r1, _080AAD7C @ =gScriptContestCategory
- ldrb r1, [r1]
- bl sub_80AE770
- strh r0, [r5]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _080AAD56
- ldr r0, _080AAD80 @ =sub_805469C
- bl SetMainCallback2
-_080AAD72:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAD78: .4byte gUnknown_02038670
-_080AAD7C: .4byte gScriptContestCategory
-_080AAD80: .4byte sub_805469C
- thumb_func_end sub_80AAD44
-
- thumb_func_start sub_80AAD84
-sub_80AAD84: @ 80AAD84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x64
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x48]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4C]
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- mov r5, r10
- adds r5, 0x1
- lsls r1, r5, 8
- ldr r0, _080AAEC4 @ =0x06018000
- subs r1, r0, r1
- movs r0, 0
- str r0, [sp, 0x44]
- ldr r4, _080AAEC8 @ =0x040000d4
- add r0, sp, 0x44
- str r0, [r4]
- str r1, [r4, 0x4]
- ldr r0, _080AAECC @ =0x85000040
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- mov r0, r9
- bl StringLength
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x8
- bls _080AADD0
- movs r7, 0x8
-_080AADD0:
- movs r6, 0
- mov r8, r5
- mov r1, r10
- lsls r1, 1
- str r1, [sp, 0x58]
- ldr r2, [sp, 0x48]
- adds r2, 0x20
- str r2, [sp, 0x5C]
- cmp r6, r7
- bge _080AAE1E
- add r5, sp, 0x40
- add r0, sp, 0x20
- mov r10, r0
- ldr r2, _080AAEC4 @ =0x06018000
-_080AADEC:
- mov r1, r9
- adds r0, r1, r6
- ldrb r0, [r0]
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- mov r0, sp
- adds r1, r5, 0
- str r2, [sp, 0x60]
- bl sub_80034D4
- mov r1, r8
- lsls r0, r1, 8
- ldr r2, [sp, 0x60]
- subs r0, r2, r0
- mov r1, r10
- str r1, [r4]
- str r0, [r4, 0x4]
- ldr r0, _080AAED0 @ =0x84000008
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r2, 0x20
- adds r6, 0x1
- cmp r6, r7
- blt _080AADEC
-_080AAE1E:
- movs r1, 0x7C
- ldr r2, [sp, 0x58]
- subs r1, r2
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080AAED4 @ =gMain
- mov r9, r0
- lsls r3, r7, 3
- add r3, r9
- ldr r0, _080AAED8 @ =gUnknown_083C9400
- ldr r1, [r0]
- ldr r2, [r0, 0x4]
- str r1, [sp, 0x50]
- str r2, [sp, 0x54]
- str r1, [r3, 0x3C]
- str r2, [r3, 0x40]
- mov r2, r8
- lsls r0, r2, 3
- movs r1, 0x80
- lsls r1, 3
- adds r2, r1, 0
- subs r2, r0
- adds r6, r3, 0
- adds r6, 0x40
- ldr r0, _080AAEDC @ =0x000003ff
- mov r8, r0
- mov r1, r8
- ands r2, r1
- ldrh r5, [r6]
- ldr r4, _080AAEE0 @ =0xfffffc00
- adds r0, r4, 0
- ands r0, r5
- orrs r0, r2
- strh r0, [r6]
- ldrh r5, [r3, 0x3E]
- ldr r2, _080AAEE4 @ =0xfffffe00
- adds r0, r2, 0
- ands r0, r5
- ldr r1, [sp, 0x48]
- orrs r0, r1
- strh r0, [r3, 0x3E]
- adds r3, 0x3C
- add r0, sp, 0x4C
- ldrb r0, [r0]
- strb r0, [r3]
- adds r1, r7, 0x1
- lsls r1, 3
- mov r0, r9
- adds r7, r1, r0
- ldr r0, [sp, 0x50]
- ldr r1, [sp, 0x54]
- str r0, [r7, 0x3C]
- str r1, [r7, 0x40]
- ldrh r0, [r6]
- lsls r0, 22
- lsrs r0, 22
- adds r0, 0x4
- adds r5, r7, 0
- adds r5, 0x40
- mov r1, r8
- ands r0, r1
- ldrh r3, [r5]
- ands r4, r3
- orrs r4, r0
- strh r4, [r5]
- ldrh r0, [r7, 0x3E]
- ands r2, r0
- ldr r0, [sp, 0x5C]
- orrs r2, r0
- strh r2, [r7, 0x3E]
- adds r1, r7, 0
- adds r1, 0x3C
- add r2, sp, 0x4C
- ldrb r2, [r2]
- strb r2, [r1]
- add sp, 0x64
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAEC4: .4byte 0x06018000
-_080AAEC8: .4byte 0x040000d4
-_080AAECC: .4byte 0x85000040
-_080AAED0: .4byte 0x84000008
-_080AAED4: .4byte gMain
-_080AAED8: .4byte gUnknown_083C9400
-_080AAEDC: .4byte 0x000003ff
-_080AAEE0: .4byte 0xfffffc00
-_080AAEE4: .4byte 0xfffffe00
- thumb_func_end sub_80AAD84
-
- thumb_func_start unref_sub_80AAEE8
-unref_sub_80AAEE8: @ 80AAEE8
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- movs r0, 0
- cmp r4, 0
- bge _080AAF08
- mov r1, sp
- movs r0, 0xAE
- strb r0, [r1]
- movs r0, 0x1
-_080AAF08:
- add r0, sp
- adds r1, r4, 0
- cmp r1, 0
- bge _080AAF12
- negs r1, r1
-_080AAF12:
- movs r2, 0
- movs r3, 0x8
- bl ConvertIntToDecimalStringN
- mov r0, sp
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_80AAD84
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80AAEE8
-
- thumb_func_start sub_80AAF30
-sub_80AAF30: @ 80AAF30
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _080AAFC0 @ =gUnknown_0203856C
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080AAFC4 @ =gContestPlayerMonIndex
- movs r0, 0x3
- strb r0, [r1]
- movs r0, 0
- bl sub_80AE098
- movs r4, 0x3
- movs r5, 0x1
- negs r5, r5
- ldr r3, _080AAFC8 @ =gUnknown_02038690
- movs r2, 0x3
-_080AAF56:
- adds r1, r4, r3
- subs r0, r2, r4
- strb r0, [r1]
- subs r4, 0x1
- cmp r4, r5
- bgt _080AAF56
- movs r4, 0
- movs r6, 0
- ldr r7, _080AAFCC @ =gUnknown_02038670
- ldr r5, _080AAFD0 @ =gContestMons
- mov r9, r5
-_080AAF6C:
- lsls r1, r4, 1
- strh r6, [r7]
- ldr r0, _080AAFD4 @ =gUnknown_02038680
- mov r8, r0
- adds r0, r1, r0
- strh r6, [r0]
- ldr r3, _080AAFD8 @ =gUnknown_02038678
- adds r1, r3
- strh r6, [r1]
- adds r0, r5, 0
- mov r1, r9
- adds r1, 0xC0
- movs r2, 0x40
- str r3, [sp]
- bl memcpy
- adds r7, 0x2
- adds r5, 0x40
- adds r4, 0x1
- ldr r3, [sp]
- cmp r4, 0x2
- ble _080AAF6C
- ldr r0, _080AAFCC @ =gUnknown_02038670
- movs r1, 0x96
- lsls r1, 1
- strh r1, [r0, 0x6]
- movs r0, 0xC8
- lsls r0, 1
- mov r1, r8
- strh r0, [r1, 0x6]
- strh r0, [r3, 0x6]
- movs r0, 0xFE
- bl sub_80B2A7C
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAFC0: .4byte gUnknown_0203856C
-_080AAFC4: .4byte gContestPlayerMonIndex
-_080AAFC8: .4byte gUnknown_02038690
-_080AAFCC: .4byte gUnknown_02038670
-_080AAFD0: .4byte gContestMons
-_080AAFD4: .4byte gUnknown_02038680
-_080AAFD8: .4byte gUnknown_02038678
- thumb_func_end sub_80AAF30
-
- thumb_func_start MatsudaDebugMenu_SetHighScore
-MatsudaDebugMenu_SetHighScore: @ 80AAFDC
- push {lr}
- bl sub_80AAF30
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end MatsudaDebugMenu_SetHighScore
-
- thumb_func_start MatsudaDebugMenu_ResetHighScore
-MatsudaDebugMenu_ResetHighScore: @ 80AAFEC
- push {r4,lr}
- ldr r1, _080AB01C @ =gUnknown_0203856C
- movs r0, 0
- strb r0, [r1]
- movs r4, 0
- ldr r3, _080AB020 @ =gUnknown_02038678
- ldr r2, _080AB024 @ =gUnknown_02038680
- ldr r1, _080AB028 @ =gUnknown_02038670
- movs r0, 0x3
-_080AAFFE:
- strh r4, [r1]
- strh r4, [r2]
- strh r4, [r3]
- adds r3, 0x2
- adds r2, 0x2
- adds r1, 0x2
- subs r0, 0x1
- cmp r0, 0
- bge _080AAFFE
- bl sub_8071C20
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080AB01C: .4byte gUnknown_0203856C
-_080AB020: .4byte gUnknown_02038678
-_080AB024: .4byte gUnknown_02038680
-_080AB028: .4byte gUnknown_02038670
- thumb_func_end MatsudaDebugMenu_ResetHighScore
-
- thumb_func_start MatsudaDebugMenu_SetArtMuseumItems
-MatsudaDebugMenu_SetArtMuseumItems: @ 80AB02C
- push {r4,r5,lr}
- ldr r1, _080AB078 @ =gContestPlayerMonIndex
- movs r0, 0x3
- strb r0, [r1]
- movs r0, 0
- bl sub_80AE098
- movs r2, 0x3
- movs r5, 0x1
- negs r5, r5
- ldr r4, _080AB07C @ =gUnknown_02038690
- movs r3, 0x3
-_080AB044:
- adds r1, r2, r4
- subs r0, r3, r2
- strb r0, [r1]
- subs r2, 0x1
- cmp r2, r5
- bgt _080AB044
- ldr r1, _080AB080 @ =gScriptContestCategory
- movs r0, 0
- strh r0, [r1]
- adds r4, r1, 0
-_080AB058:
- movs r0, 0xFF
- bl sub_80B2A7C
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _080AB058
- bl sub_8071C20
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080AB078: .4byte gContestPlayerMonIndex
-_080AB07C: .4byte gUnknown_02038690
-_080AB080: .4byte gScriptContestCategory
- thumb_func_end MatsudaDebugMenu_SetArtMuseumItems
-
- thumb_func_start unref_sub_80AB084
-unref_sub_80AB084: @ 80AB084
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- ldr r0, _080AB160 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x22
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- movs r2, 0x80
- lsls r2, 19
- movs r3, 0xFA
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r2]
- ldr r3, _080AB164 @ =0x04000208
- ldrh r2, [r3]
- strh r1, [r3]
- ldr r4, _080AB168 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r1, _080AB16C @ =REG_DISPSTAT
- movs r0, 0x8
- strh r0, [r1]
- bl ResetTasks
- bl ResetSpriteData
- ldr r0, _080AB170 @ =sub_80AB184
- bl SetMainCallback2
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- movs r5, 0
- ldr r1, _080AB174 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _080AB178 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_080AB108:
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080AB108
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r4, _080AB17C @ =gWindowConfig_81E6FD8
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r5, _080AB180 @ =gUnknown_03004210
- adds r0, r5, 0
- adds r1, r4, 0
- bl InitWindowFromConfig
- adds r0, r4, 0
- bl LoadFontDefaultPalette
- movs r0, 0x7
- str r0, [sp]
- adds r0, r5, 0
- mov r1, r8
- movs r2, 0x1
- movs r3, 0x9
- bl sub_8003460
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AB160: .4byte REG_BG0HOFS
-_080AB164: .4byte 0x04000208
-_080AB168: .4byte 0x04000200
-_080AB16C: .4byte REG_DISPSTAT
-_080AB170: .4byte sub_80AB184
-_080AB174: .4byte 0x040000d4
-_080AB178: .4byte 0x85000400
-_080AB17C: .4byte gWindowConfig_81E6FD8
-_080AB180: .4byte gUnknown_03004210
- thumb_func_end unref_sub_80AB084
-
- thumb_func_start sub_80AB184
-sub_80AB184: @ 80AB184
- ldr r0, _080AB1A8 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080AB1A8: .4byte REG_BG0HOFS
- thumb_func_end sub_80AB184
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s
index 7dfaa890e..726de6fc1 100644
--- a/asm/mauville_old_man.s
+++ b/asm/mauville_old_man.s
@@ -6,502 +6,6 @@
.text
- thumb_func_start sub_80F7A34
-sub_80F7A34: @ 80F7A34
- push {r4,lr}
- ldr r0, _080F7A64 @ =gSaveBlock1 + 0x2D94
- movs r1, 0
- strb r1, [r0]
- adds r2, r0, 0
- adds r2, 0x29
- strb r1, [r2]
- movs r2, 0
- adds r4, r0, 0x2
- ldr r3, _080F7A68 @ =gUnknown_083E537C
-_080F7A48:
- lsls r0, r2, 1
- adds r1, r4, r0
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080F7A48
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7A64: .4byte gSaveBlock1 + 0x2D94
-_080F7A68: .4byte gUnknown_083E537C
- thumb_func_end sub_80F7A34
-
- thumb_func_start sub_80F7A6C
-sub_80F7A6C: @ 80F7A6C
- ldr r0, _080F7A78 @ =gSaveBlock1 + 0x2D94
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bx lr
- .align 2, 0
-_080F7A78: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7A6C
-
- thumb_func_start sub_80F7A7C
-sub_80F7A7C: @ 80F7A7C
- push {lr}
- bl sub_80F83F8
- pop {r0}
- bx r0
- thumb_func_end sub_80F7A7C
-
- thumb_func_start sub_80F7A88
-sub_80F7A88: @ 80F7A88
- ldr r0, _080F7A94 @ =gSaveBlock1 + 0x2D94
- movs r2, 0
- movs r1, 0x4
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bx lr
- .align 2, 0
-_080F7A94: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7A88
-
- thumb_func_start sub_80F7A98
-sub_80F7A98: @ 80F7A98
- push {lr}
- bl sub_81099CC
- pop {r0}
- bx r0
- thumb_func_end sub_80F7A98
-
- thumb_func_start sub_80F7AA4
-sub_80F7AA4: @ 80F7AA4
- push {lr}
- ldr r0, _080F7AC8 @ =gSaveBlock2
- ldrb r1, [r0, 0xB]
- lsls r1, 8
- ldrb r0, [r0, 0xA]
- orrs r0, r1
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 17
- cmp r0, 0x4
- bhi _080F7B00
- lsls r0, 2
- ldr r1, _080F7ACC @ =_080F7AD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F7AC8: .4byte gSaveBlock2
-_080F7ACC: .4byte _080F7AD0
- .align 2, 0
-_080F7AD0:
- .4byte _080F7AE4
- .4byte _080F7AEA
- .4byte _080F7AF0
- .4byte _080F7AF6
- .4byte _080F7AFC
-_080F7AE4:
- bl sub_80F7A34
- b _080F7B00
-_080F7AEA:
- bl sub_80F7A6C
- b _080F7B00
-_080F7AF0:
- bl sub_80F7A98
- b _080F7B00
-_080F7AF6:
- bl sub_80F7A7C
- b _080F7B00
-_080F7AFC:
- bl sub_80F7A88
-_080F7B00:
- bl sub_80F83D0
- pop {r0}
- bx r0
- thumb_func_end sub_80F7AA4
-
- thumb_func_start GetCurrentMauvilleOldMan
-GetCurrentMauvilleOldMan: @ 80F7B08
- ldr r0, _080F7B10 @ =gSaveBlock1 + 0x2D94
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080F7B10: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end GetCurrentMauvilleOldMan
-
- thumb_func_start sub_80F7B14
-sub_80F7B14: @ 80F7B14
- push {r4,lr}
- ldr r4, _080F7B28 @ =gScriptResult
- bl GetCurrentMauvilleOldMan
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7B28: .4byte gScriptResult
- thumb_func_end sub_80F7B14
-
- thumb_func_start sub_80F7B2C
-sub_80F7B2C: @ 80F7B2C
- ldr r0, _080F7B38 @ =gScriptResult
- ldr r1, _080F7B3C @ =gSaveBlock1 + 0x2D94
- adds r1, 0x29
- ldrb r1, [r1]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F7B38: .4byte gScriptResult
-_080F7B3C: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7B2C
-
- thumb_func_start sub_80F7B40
-sub_80F7B40: @ 80F7B40
- push {r4,r5,lr}
- ldr r5, _080F7B98 @ =gSaveBlock1 + 0x2D94
- adds r0, r5, 0
- adds r0, 0x1A
- ldr r4, _080F7B9C @ =gSaveBlock2
- adds r1, r4, 0
- bl StringCopy
- movs r2, 0
- adds r3, r5, 0
- adds r3, 0x25
- adds r4, 0xA
-_080F7B58:
- adds r1, r3, r2
- adds r0, r2, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x3
- bls _080F7B58
- movs r2, 0
- movs r0, 0x29
- adds r0, r5
- mov r12, r0
- adds r4, r5, 0x2
- adds r3, r5, 0
- adds r3, 0xE
-_080F7B78:
- lsls r0, r2, 1
- adds r1, r4, r0
- adds r0, r3, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080F7B78
- movs r0, 0x1
- mov r1, r12
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7B98: .4byte gSaveBlock1 + 0x2D94
-_080F7B9C: .4byte gSaveBlock2
- thumb_func_end sub_80F7B40
-
- thumb_func_start sub_80F7BA0
-sub_80F7BA0: @ 80F7BA0
- push {r4-r7,lr}
- ldr r1, _080F7C48 @ =gSaveBlock1 + 0x2D94
- ldr r0, _080F7C4C @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r5, r1, 0
- adds r5, 0xE
- cmp r0, 0
- bne _080F7BB2
- adds r5, r1, 0x2
-_080F7BB2:
- ldr r2, _080F7C50 @ =gStringVar4
- adds r4, r2, 0
- movs r6, 0
-_080F7BB8:
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r2, 0
- bl sub_80EB3FC
- adds r2, r0, 0
- adds r7, r6, 0x1
- cmp r2, r4
- beq _080F7BDA
- movs r1, 0x37
-_080F7BCC:
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F7BD4
- strb r1, [r4]
-_080F7BD4:
- adds r4, 0x1
- cmp r2, r4
- bne _080F7BCC
-_080F7BDA:
- adds r4, 0x1
- movs r0, 0
- strb r0, [r2]
- adds r2, 0x1
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r2, 0
- bl sub_80EB3FC
- adds r2, r0, 0
- cmp r2, r4
- beq _080F7C02
- movs r1, 0x37
-_080F7BF4:
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F7BFC
- strb r1, [r4]
-_080F7BFC:
- adds r4, 0x1
- cmp r2, r4
- bne _080F7BF4
-_080F7C02:
- adds r4, 0x1
- movs r0, 0xFE
- strb r0, [r2]
- adds r2, 0x1
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r2, 0
- bl sub_80EB3FC
- adds r2, r0, 0
- cmp r2, r4
- beq _080F7C2A
- movs r1, 0x37
-_080F7C1C:
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F7C24
- strb r1, [r4]
-_080F7C24:
- adds r4, 0x1
- cmp r2, r4
- bne _080F7C1C
-_080F7C2A:
- cmp r6, 0
- bne _080F7C3A
- movs r0, 0xFC
- strb r0, [r2]
- adds r2, 0x1
- movs r0, 0xF
- strb r0, [r2]
- adds r2, 0x1
-_080F7C3A:
- lsls r0, r7, 16
- lsrs r6, r0, 16
- cmp r6, 0x1
- bls _080F7BB8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7C48: .4byte gSaveBlock1 + 0x2D94
-_080F7C4C: .4byte gSpecialVar_0x8004
-_080F7C50: .4byte gStringVar4
- thumb_func_end sub_80F7BA0
-
- thumb_func_start sub_80F7C54
-sub_80F7C54: @ 80F7C54
- push {lr}
- ldr r0, _080F7C6C @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl sub_80F7F80
- bl MenuDisplayMessageBox
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_080F7C6C: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80F7C54
-
- thumb_func_start sub_80F7C70
-sub_80F7C70: @ 80F7C70
- ldr r0, _080F7C7C @ =gScriptResult
- ldr r1, _080F7C80 @ =gSaveBlock1 + 0x2D94
- ldrb r1, [r1, 0x1]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F7C7C: .4byte gScriptResult
-_080F7C80: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7C70
-
- thumb_func_start sub_80F7C84
-sub_80F7C84: @ 80F7C84
- ldr r1, _080F7C8C @ =gSaveBlock1 + 0x2D94
- movs r0, 0x1
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_080F7C8C: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7C84
-
- thumb_func_start sub_80F7C90
-sub_80F7C90: @ 80F7C90
- push {lr}
- bl sub_80EB8EC
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080F7CA8 @ =0x0000ffff
- cmp r1, r0
- bne _080F7CB0
- ldr r1, _080F7CAC @ =gScriptResult
- movs r0, 0
- b _080F7CBA
- .align 2, 0
-_080F7CA8: .4byte 0x0000ffff
-_080F7CAC: .4byte gScriptResult
-_080F7CB0:
- ldr r0, _080F7CC0 @ =gStringVar1
- bl sub_80EB3FC
- ldr r1, _080F7CC4 @ =gScriptResult
- movs r0, 0x1
-_080F7CBA:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080F7CC0: .4byte gStringVar1
-_080F7CC4: .4byte gScriptResult
- thumb_func_end sub_80F7C90
-
- thumb_func_start sub_80F7CC8
-sub_80F7CC8: @ 80F7CC8
- push {lr}
- ldr r2, _080F7CDC @ =gSaveBlock1 + 0x2D94
- ldrb r0, [r2, 0x1]
- cmp r0, 0xA
- bne _080F7CE4
- ldr r1, _080F7CE0 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- strb r0, [r2, 0x1]
- b _080F7CEA
- .align 2, 0
-_080F7CDC: .4byte gSaveBlock1 + 0x2D94
-_080F7CE0: .4byte gScriptResult
-_080F7CE4:
- ldr r1, _080F7CF0 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
-_080F7CEA:
- pop {r0}
- bx r0
- .align 2, 0
-_080F7CF0: .4byte gScriptResult
- thumb_func_end sub_80F7CC8
-
- thumb_func_start sub_80F7CF4
-sub_80F7CF4: @ 80F7CF4
- push {r4-r6,lr}
- ldr r5, _080F7D50 @ =gSaveBlock1 + 0x2D94
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- bne _080F7D02
- bl sub_80F7DC0
-_080F7D02:
- ldrb r0, [r5, 0x1]
- lsls r0, 1
- adds r6, r5, 0x4
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _080F7D54 @ =0x0000ffff
- cmp r1, r0
- beq _080F7D68
- bl Random
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x7
- ands r4, r0
- ldr r0, _080F7D58 @ =gStringVar4
- ldrb r1, [r5, 0x1]
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- bl sub_80EB3FC
- adds r2, r0, 0
- ldr r1, _080F7D5C @ =gOtherText_Is
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _080F7D60 @ =gUnknown_083E5388
- lsls r4, 2
- adds r4, r0
- ldr r1, [r4]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _080F7D64 @ =gOtherText_DontYouAgree
- bl StringCopy
- b _080F7D88
- .align 2, 0
-_080F7D50: .4byte gSaveBlock1 + 0x2D94
-_080F7D54: .4byte 0x0000ffff
-_080F7D58: .4byte gStringVar4
-_080F7D5C: .4byte gOtherText_Is
-_080F7D60: .4byte gUnknown_083E5388
-_080F7D64: .4byte gOtherText_DontYouAgree
-_080F7D68:
- ldr r0, _080F7DA0 @ =gStringVar4
- ldr r3, _080F7DA4 @ =gUnknown_083E53A8
- ldrb r1, [r5, 0x2]
- adds r2, r1, 0x1
- strb r2, [r5, 0x2]
- lsls r1, 24
- lsrs r1, 24
- adds r2, r5, 0
- adds r2, 0x18
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl StringCopy
-_080F7D88:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080F7DA8
- movs r0, 0xA
- b _080F7DAC
- .align 2, 0
-_080F7DA0: .4byte gStringVar4
-_080F7DA4: .4byte gUnknown_083E53A8
-_080F7DA8:
- ldrb r0, [r5, 0x1]
- adds r0, 0x1
-_080F7DAC:
- strb r0, [r5, 0x1]
- ldr r1, _080F7DBC @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7DBC: .4byte gScriptResult
- thumb_func_end sub_80F7CF4
-
thumb_func_start sub_80F7DC0
sub_80F7DC0: @ 80F7DC0
push {r4-r7,lr}
@@ -1369,7 +873,7 @@ sub_80F8438: @ 80F8438
bne _080F8444
movs r0, 0
_080F8444:
- bl sub_8053108
+ bl GetGameStat
pop {r1}
bx r1
thumb_func_end sub_80F8438
@@ -1906,7 +1410,7 @@ _080F8840:
ldr r0, _080F8870 @ =gUnknown_03000748
strb r4, [r0]
_080F8848:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x19
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
index 0b95b553e..0f5caf3da 100644
--- a/asm/menu_helpers.s
+++ b/asm/menu_helpers.s
@@ -161,8 +161,8 @@ _080F9140:
_080F9148: .4byte gUnknown_020388C4
thumb_func_end Task_CallYesOrNoCallback
- thumb_func_start sub_80F914C
-sub_80F914C: @ 80F914C
+ thumb_func_start DoYesNoFuncWithChoice
+DoYesNoFuncWithChoice: @ 80F914C
lsls r0, 24
lsrs r0, 24
ldr r3, _080F916C @ =gUnknown_020388C4
@@ -182,7 +182,7 @@ sub_80F914C: @ 80F914C
_080F916C: .4byte gUnknown_020388C4
_080F9170: .4byte gTasks
_080F9174: .4byte Task_CallYesOrNoCallback
- thumb_func_end sub_80F914C
+ thumb_func_end DoYesNoFuncWithChoice
thumb_func_start brm_trade_1
brm_trade_1: @ 80F9178
@@ -420,7 +420,7 @@ sub_80F931C: @ 80F931C
cmp r0, 0x1
bne _080F933C
adds r0, r4, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1207,8 +1207,8 @@ _080F98D4: .4byte gSprites
_080F98D8: .4byte SpriteCallbackDummy
thumb_func_end sub_80F98A4
- thumb_func_start sub_80F98DC
-sub_80F98DC: @ 80F98DC
+ thumb_func_start StartVerticalScrollIndicators
+StartVerticalScrollIndicators: @ 80F98DC
push {lr}
lsls r0, 24
lsrs r1, r0, 24
@@ -1235,7 +1235,7 @@ _080F9902:
_080F9908: .4byte gUnknown_020388C0
_080F990C: .4byte gSprites
_080F9910: .4byte sub_80F9834
- thumb_func_end sub_80F98DC
+ thumb_func_end StartVerticalScrollIndicators
thumb_func_start sub_80F9914
sub_80F9914: @ 80F9914
@@ -1284,8 +1284,8 @@ _080F9964: .4byte gUnknown_020388C0
_080F9968: .4byte gSprites
thumb_func_end sub_80F9914
- thumb_func_start sub_80F996C
-sub_80F996C: @ 80F996C
+ thumb_func_start PauseVerticalScrollIndicator
+PauseVerticalScrollIndicator: @ 80F996C
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
@@ -1297,7 +1297,7 @@ sub_80F996C: @ 80F996C
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_80F996C
+ thumb_func_end PauseVerticalScrollIndicator
thumb_func_start sub_80F9988
sub_80F9988: @ 80F9988
diff --git a/asm/mon_markings.s b/asm/mon_markings.s
index 6d5322b91..d227b17c1 100644
--- a/asm/mon_markings.s
+++ b/asm/mon_markings.s
@@ -246,7 +246,7 @@ _080F7434:
lsrs r3, r0, 16
cmp r3, 0x3
bls _080F7434
- bl sub_814A7FC
+ bl DestroyMenuCursor
lsls r0, r5, 16
asrs r0, 16
lsls r1, r6, 16
@@ -322,7 +322,7 @@ _080F74C8:
lsrs r4, r0, 16
cmp r4, 0x3
bls _080F74C8
- bl sub_814A7FC
+ bl DestroyMenuCursor
ldr r0, [r5]
ldr r0, [r0, 0x24]
cmp r0, 0
@@ -560,7 +560,7 @@ sub_80F761C: @ 80F761C
add r2, sp, 0x54
ldrh r2, [r2]
strh r2, [r4, 0x2]
- ldr r0, _080F782C @ =gUnknown_083E5214
+ ldr r0, _080F782C @ =gOamData_83E5214
str r0, [r4, 0x4]
ldr r0, _080F7830 @ =gSpriteAnimTable_83E52AC
str r0, [r4, 0x8]
@@ -640,7 +640,7 @@ _080F7718:
str r0, [r4, 0x8]
ldr r0, _080F7844 @ =sub_80F78CC
str r0, [r4, 0x14]
- ldr r0, _080F7848 @ =gUnknown_083E521C
+ ldr r0, _080F7848 @ =gOamData_83E521C
str r0, [r4, 0x4]
movs r5, 0
ldr r0, [sp, 0x58]
@@ -720,7 +720,11 @@ _080F7770:
ldr r2, [r1, 0x24]
ldr r3, [sp, 0x58]
asrs r0, r3, 16
+.ifdef ENGLISH
adds r0, 0x20
+.else
+ adds r0, 0x18
+.endif
strh r0, [r2, 0x20]
ldr r2, [r1, 0x24]
mov r0, r8
@@ -736,14 +740,14 @@ _080F7770:
_080F7820: .4byte gUnknown_020388B8
_080F7824: .4byte gPokenavConditionMenuMisc_Gfx
_080F7828: .4byte gUnknown_08E966B8
-_080F782C: .4byte gUnknown_083E5214
+_080F782C: .4byte gOamData_83E5214
_080F7830: .4byte gSpriteAnimTable_83E52AC
_080F7834: .4byte gDummySpriteAffineAnimTable
_080F7838: .4byte nullsub_65
_080F783C: .4byte gSprites
_080F7840: .4byte gSpriteAnimTable_83E5274
_080F7844: .4byte sub_80F78CC
-_080F7848: .4byte gUnknown_083E521C
+_080F7848: .4byte gOamData_83E521C
_080F784C: .4byte SpriteCallbackDummy
_080F7850:
ldr r0, _080F785C @ =gUnknown_020388B8
@@ -927,7 +931,7 @@ sub_80F7960: @ 80F7960
movs r2, 0
strh r6, [r0]
strh r1, [r0, 0x2]
- ldr r0, _080F79E4 @ =gUnknown_083E52B4
+ ldr r0, _080F79E4 @ =gOamData_83E52B4
str r0, [sp, 0x4]
ldr r0, _080F79E8 @ =gSpriteAnimTable_83E533C
str r0, [sp, 0x8]
@@ -961,7 +965,7 @@ sub_80F7960: @ 80F7960
.align 2, 0
_080F79DC: .4byte gUnknown_083E4A14
_080F79E0: .4byte 0xffff0000
-_080F79E4: .4byte gUnknown_083E52B4
+_080F79E4: .4byte gOamData_83E52B4
_080F79E8: .4byte gSpriteAnimTable_83E533C
_080F79EC: .4byte gDummySpriteAffineAnimTable
_080F79F0: .4byte nullsub_65
diff --git a/asm/mystery_event_menu.s b/asm/mystery_event_menu.s
deleted file mode 100644
index 6331199de..000000000
--- a/asm/mystery_event_menu.s
+++ /dev/null
@@ -1,581 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8146900
-sub_8146900: @ 8146900
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8146900
-
- thumb_func_start sub_8146914
-sub_8146914: @ 8146914
- push {lr}
- movs r2, 0
- ldr r1, _0814692C @ =gLinkPlayers
- ldrh r0, [r1, 0x1A]
- ldrh r1, [r1, 0x36]
- cmp r0, r1
- bne _08146924
- movs r2, 0x1
-_08146924:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0814692C: .4byte gLinkPlayers
- thumb_func_end sub_8146914
-
- thumb_func_start CB2_InitMysteryEventMenu
-CB2_InitMysteryEventMenu: @ 8146930
- push {r4,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, _0814699C @ =sub_8146900
- bl SetVBlankCallback
- ldr r4, _081469A0 @ =gWindowConfig_81E6CE4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x50
- movs r0, 0
- strh r0, [r1]
- ldr r0, _081469A4 @ =Task_DestroySelf
- movs r1, 0
- bl CreateTask
- bl StopMapMusic
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- ldr r0, _081469A8 @ =sub_81469E4
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814699C: .4byte sub_8146900
-_081469A0: .4byte gWindowConfig_81E6CE4
-_081469A4: .4byte Task_DestroySelf
-_081469A8: .4byte sub_81469E4
- thumb_func_end CB2_InitMysteryEventMenu
-
- thumb_func_start sub_81469AC
-sub_81469AC: @ 81469AC
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r5, 0x1
- cmp r4, 0
- bne _081469C0
- ldr r1, _081469DC @ =gSystemText_EventLoadSuccess
- bl StringCopy
- movs r5, 0
-_081469C0:
- cmp r4, 0x2
- bne _081469C6
- movs r5, 0
-_081469C6:
- cmp r4, 0x1
- bne _081469D2
- ldr r1, _081469E0 @ =gSystemText_LoadingError
- adds r0, r6, 0
- bl StringCopy
-_081469D2:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081469DC: .4byte gSystemText_EventLoadSuccess
-_081469E0: .4byte gSystemText_LoadingError
- thumb_func_end sub_81469AC
-
- thumb_func_start sub_81469E4
-sub_81469E4: @ 81469E4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, _08146A04 @ =gMain
- ldr r2, _08146A08 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x10
- bls _081469F8
- b _08146DA4
-_081469F8:
- lsls r0, 2
- ldr r1, _08146A0C @ =_08146A10
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08146A04: .4byte gMain
-_08146A08: .4byte 0x0000043c
-_08146A0C: .4byte _08146A10
- .align 2, 0
-_08146A10:
- .4byte _08146A54
- .4byte _08146A6E
- .4byte _08146A9C
- .4byte _08146AD4
- .4byte _08146B18
- .4byte _08146B26
- .4byte _08146B90
- .4byte _08146C64
- .4byte _08146C72
- .4byte _08146C94
- .4byte _08146CA0
- .4byte _08146CB4
- .4byte _08146CFC
- .4byte _08146D18
- .4byte _08146D50
- .4byte _08146D6C
- .4byte _08146D94
-_08146A54:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- b _08146D78
-_08146A6E:
- ldr r0, _08146A8C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08146A7C
- b _08146DA4
-_08146A7C:
- ldr r0, _08146A90 @ =gSystemText_LinkStandby
- bl sub_8072044
- ldr r1, _08146A94 @ =gMain
- ldr r2, _08146A98 @ =0x0000043c
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146A8C: .4byte gPaletteFade
-_08146A90: .4byte gSystemText_LinkStandby
-_08146A94: .4byte gMain
-_08146A98: .4byte 0x0000043c
-_08146A9C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08146AA8
- b _08146DA4
-_08146AA8:
- ldr r1, _08146AC4 @ =gMain
- ldr r0, _08146AC8 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08146ACC @ =gLinkType
- ldr r2, _08146AD0 @ =0x00005501
- adds r0, r2, 0
- strh r0, [r1]
- bl OpenLink
- b _08146DA4
- .align 2, 0
-_08146AC4: .4byte gMain
-_08146AC8: .4byte 0x0000043c
-_08146ACC: .4byte gLinkType
-_08146AD0: .4byte 0x00005501
-_08146AD4:
- ldr r0, _08146B08 @ =gLinkStatus
- ldr r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08146AE2
- b _08146C38
-_08146AE2:
- movs r0, 0x1C
- ands r1, r0
- cmp r1, 0x4
- bhi _08146AEC
- b _08146C38
-_08146AEC:
- movs r0, 0x15
- bl PlaySE
- ldr r0, _08146B0C @ =gSystemText_LoadEventPressA
- bl sub_8072044
- ldr r1, _08146B10 @ =gMain
- ldr r0, _08146B14 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146C38
- .align 2, 0
-_08146B08: .4byte gLinkStatus
-_08146B0C: .4byte gSystemText_LoadEventPressA
-_08146B10: .4byte gMain
-_08146B14: .4byte 0x0000043c
-_08146B18:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08146B24
- b _08146DA4
-_08146B24:
- b _08146D7C
-_08146B26:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bne _08146C10
- ldr r4, _08146B64 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08146B70
- movs r0, 0x5
- bl PlaySE
- bl sub_8007F4C
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuDrawTextWindow
- ldr r0, _08146B68 @ =gSystemText_LoadingEvent
- movs r1, 0x7
- movs r2, 0x6
- bl MenuPrint
- ldr r2, _08146B6C @ =0x0000043c
- adds r1, r4, r2
- b _08146D82
- .align 2, 0
-_08146B64: .4byte gMain
-_08146B68: .4byte gSystemText_LoadingEvent
-_08146B6C: .4byte 0x0000043c
-_08146B70:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08146B7A
- b _08146DA4
-_08146B7A:
- movs r0, 0x5
- bl PlaySE
- bl CloseLink
- ldr r0, _08146B8C @ =0x0000043c
- adds r1, r4, r0
- b _08146C54
- .align 2, 0
-_08146B8C: .4byte 0x0000043c
-_08146B90:
- bl IsLinkConnectionEstablished
- lsls r0, 24
- cmp r0, 0
- beq _08146C38
- ldr r0, _08146BD8 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08146BA4
- b _08146DA4
-_08146BA4:
- bl GetLinkPlayerDataExchangeStatusTimed
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _08146BE8
- bl sub_800832C
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- ldr r4, _08146BDC @ =gStringVar4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81469AC
- adds r0, r4, 0
- bl sub_8072044
- ldr r0, _08146BE0 @ =gMain
- ldr r2, _08146BE4 @ =0x0000043c
- adds r0, r2
- b _08146C26
- .align 2, 0
-_08146BD8: .4byte gReceivedRemoteLinkPlayers
-_08146BDC: .4byte gStringVar4
-_08146BE0: .4byte gMain
-_08146BE4: .4byte 0x0000043c
-_08146BE8:
- bl sub_8146914
- lsls r0, 24
- cmp r0, 0
- beq _08146C00
- ldr r0, _08146BFC @ =gSystemText_DontCutLink
- bl sub_8072044
- b _08146D7C
- .align 2, 0
-_08146BFC: .4byte gSystemText_DontCutLink
-_08146C00:
- bl CloseLink
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
-_08146C10:
- ldr r4, _08146C2C @ =gStringVar4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81469AC
- adds r0, r4, 0
- bl sub_8072044
- ldr r0, _08146C30 @ =gMain
- ldr r1, _08146C34 @ =0x0000043c
- adds r0, r1
-_08146C26:
- movs r1, 0xD
- strb r1, [r0]
- b _08146DA4
- .align 2, 0
-_08146C2C: .4byte gStringVar4
-_08146C30: .4byte gMain
-_08146C34: .4byte 0x0000043c
-_08146C38:
- ldr r4, _08146C5C @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08146C46
- b _08146DA4
-_08146C46:
- movs r0, 0x5
- bl PlaySE
- bl CloseLink
- ldr r2, _08146C60 @ =0x0000043c
- adds r1, r4, r2
-_08146C54:
- movs r0, 0xF
- strb r0, [r1]
- b _08146DA4
- .align 2, 0
-_08146C5C: .4byte gMain
-_08146C60: .4byte 0x0000043c
-_08146C64:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08146C70
- b _08146DA4
-_08146C70:
- b _08146D7C
-_08146C72:
- bl GetBlockReceivedStatus
- lsls r0, 24
- cmp r0, 0
- bne _08146C7E
- b _08146DA4
-_08146C7E:
- bl ResetBlockReceivedFlags
- ldr r1, _08146C8C @ =gMain
- ldr r2, _08146C90 @ =0x0000043c
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146C8C: .4byte gMain
-_08146C90: .4byte 0x0000043c
-_08146C94:
- ldr r0, _08146C9C @ =0x0000043c
- adds r1, r4, r0
- b _08146D82
- .align 2, 0
-_08146C9C: .4byte 0x0000043c
-_08146CA0:
- bl sub_800832C
- ldr r1, _08146CAC @ =gMain
- ldr r2, _08146CB0 @ =0x0000043c
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146CAC: .4byte gMain
-_08146CB0: .4byte 0x0000043c
-_08146CB4:
- ldr r0, _08146CEC @ =gReceivedRemoteLinkPlayers
- ldrb r6, [r0]
- cmp r6, 0
- bne _08146DA4
- ldr r5, _08146CF0 @ =0x02000000
- adds r0, r5, 0
- bl sub_812613C
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- str r6, [sp, 0x4]
- ldr r2, _08146CF4 @ =0x050001f5
- add r0, sp, 0x4
- adds r1, r5, 0
- bl CpuSet
- ldr r0, _08146CF8 @ =gStringVar4
- adds r1, r4, 0
- bl sub_81469AC
- lsls r0, 24
- cmp r0, 0
- bne _08146D7C
- movs r0, 0
- bl sub_8125D44
- b _08146D7C
- .align 2, 0
-_08146CEC: .4byte gReceivedRemoteLinkPlayers
-_08146CF0: .4byte 0x02000000
-_08146CF4: .4byte 0x050001f5
-_08146CF8: .4byte gStringVar4
-_08146CFC:
- ldr r0, _08146D0C @ =gStringVar4
- bl sub_8072044
- ldr r1, _08146D10 @ =gMain
- ldr r2, _08146D14 @ =0x0000043c
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146D0C: .4byte gStringVar4
-_08146D10: .4byte gMain
-_08146D14: .4byte 0x0000043c
-_08146D18:
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08146DA4
- ldr r1, _08146D44 @ =gMain
- ldr r0, _08146D48 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08146D4C @ =gUnknown_02039338
- strb r2, [r0]
- b _08146DA4
- .align 2, 0
-_08146D44: .4byte gMain
-_08146D48: .4byte 0x0000043c
-_08146D4C: .4byte gUnknown_02039338
-_08146D50:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08146DA4
- movs r0, 0x5
- bl PlaySE
- ldr r2, _08146D68 @ =0x0000043c
- adds r1, r4, r2
- b _08146D82
- .align 2, 0
-_08146D68: .4byte 0x0000043c
-_08146D6C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
-_08146D78:
- bl BeginNormalPaletteFade
-_08146D7C:
- ldr r1, _08146D8C @ =gMain
- ldr r0, _08146D90 @ =0x0000043c
- adds r1, r0
-_08146D82:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146DA4
- .align 2, 0
-_08146D8C: .4byte gMain
-_08146D90: .4byte 0x0000043c
-_08146D94:
- ldr r0, _08146DFC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08146DA4
- bl DoSoftReset
-_08146DA4:
- ldr r0, _08146E00 @ =gLinkStatus
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08146DE4
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- bne _08146DE4
- bl CloseLink
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- ldr r4, _08146E04 @ =gStringVar4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81469AC
- adds r0, r4, 0
- bl sub_8072044
- ldr r0, _08146E08 @ =gMain
- ldr r1, _08146E0C @ =0x0000043c
- adds r0, r1
- movs r1, 0xD
- strb r1, [r0]
-_08146DE4:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08146DFC: .4byte gPaletteFade
-_08146E00: .4byte gLinkStatus
-_08146E04: .4byte gStringVar4
-_08146E08: .4byte gMain
-_08146E0C: .4byte 0x0000043c
- thumb_func_end sub_81469E4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s
index 4b8717bac..02b6a0a48 100644
--- a/asm/mystery_event_script.s
+++ b/asm/mystery_event_script.s
@@ -6,181 +6,6 @@
.text
- thumb_func_start sub_8126098
-sub_8126098: @ 8126098
- push {r4,lr}
- adds r4, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- lsrs r2, 16
- movs r3, 0x2
- ands r0, r3
- cmp r0, 0
- beq _081260C6
- ands r1, r3
- cmp r1, 0
- beq _081260C6
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _081260C6
- movs r0, 0x80
- .ifdef SAPPHIRE
- lsls r0, 1 @ unknown difference
- .endif
- ands r0, r4
- cmp r0, 0
- beq _081260C6
- movs r0, 0x1
- b _081260C8
-_081260C6:
- movs r0, 0
-_081260C8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8126098
-
- thumb_func_start sub_81260D0
-sub_81260D0: @ 81260D0
- push {lr}
- ldr r0, _081260E4 @ =gStringVar4
- ldr r1, _081260E8 @ =gOtherText_DataCannotUseVersion
- bl StringExpandPlaceholders
- movs r0, 0x3
- bl sub_8126160
- pop {r0}
- bx r0
- .align 2, 0
-_081260E4: .4byte gStringVar4
-_081260E8: .4byte gOtherText_DataCannotUseVersion
- thumb_func_end sub_81260D0
-
- thumb_func_start sub_81260EC
-sub_81260EC: @ 81260EC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _08126114 @ =gScriptFuncs
- ldr r2, _08126118 @ =gScriptFuncs_End
- bl InitScriptContext
- adds r0, r4, 0
- adds r1, r5, 0
- bl SetupBytecodeScript
- str r5, [r4, 0x64]
- movs r0, 0
- str r0, [r4, 0x68]
- str r0, [r4, 0x6C]
- str r0, [r4, 0x70]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08126114: .4byte gScriptFuncs
-_08126118: .4byte gScriptFuncs_End
- thumb_func_end sub_81260EC
-
- thumb_func_start sub_812611C
-sub_812611C: @ 812611C
- push {r4,lr}
- adds r4, r0, 0
- bl RunScript
- lsls r0, 24
- cmp r0, 0
- beq _08126134
- ldr r0, [r4, 0x70]
- cmp r0, 0
- beq _08126134
- movs r0, 0x1
- b _08126136
-_08126134:
- movs r0, 0
-_08126136:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812611C
-
- thumb_func_start sub_812613C
-sub_812613C: @ 812613C
- push {r4,lr}
- adds r1, r0, 0
- ldr r4, _0812615C @ =gUnknown_02039288
- adds r0, r4, 0
- bl sub_81260EC
-_08126148:
- adds r0, r4, 0
- bl sub_812611C
- cmp r0, 0
- bne _08126148
- ldr r0, [r4, 0x6C]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812615C: .4byte gUnknown_02039288
- thumb_func_end sub_812613C
-
- thumb_func_start sub_8126160
-sub_8126160: @ 8126160
- ldr r1, _08126168 @ =gUnknown_02039288
- str r0, [r1, 0x6C]
- bx lr
- .align 2, 0
-_08126168: .4byte gUnknown_02039288
- thumb_func_end sub_8126160
-
- thumb_func_start sub_812616C
-sub_812616C: @ 812616C
- push {r4,lr}
- adds r4, r0, 0
- movs r3, 0
- movs r2, 0
- cmp r3, r1
- bcs _08126184
-_08126178:
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r3, r0
- adds r2, 0x1
- cmp r2, r1
- bcc _08126178
-_08126184:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812616C
-
- thumb_func_start sub_812618C
-sub_812618C: @ 812618C
- adds r2, r0, 0
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- orrs r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- orrs r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- orrs r0, r1
- bx lr
- thumb_func_end sub_812618C
-
- thumb_func_start sub_81261A4
-sub_81261A4: @ 81261A4
- strb r1, [r0]
- lsrs r2, r1, 8
- strb r2, [r0, 0x1]
- lsrs r2, r1, 16
- strb r2, [r0, 0x2]
- lsrs r1, 24
- strb r1, [r0, 0x3]
- bx lr
- thumb_func_end sub_81261A4
-
thumb_func_start unref_sub_81261B4
unref_sub_81261B4: @ 81261B4
push {r4-r7,lr}
@@ -257,7 +82,7 @@ unref_sub_812620C: @ 812620C
adds r1, r5
subs r1, r4
adds r0, r4, 0
- bl sub_8041174
+ bl CalcCRC16
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
@@ -544,7 +369,7 @@ sub_8126438: @ 8126438
mov r7, r8
push {r7}
adds r7, r0, 0
- bl sub_80B4940
+ bl IsEnigmaBerryValid
mov r8, r0
adds r0, r7, 0
bl ScriptReadWord
@@ -560,7 +385,7 @@ sub_8126438: @ 8126438
movs r2, 0x7
bl StringCopyN
adds r0, r4, 0
- bl sub_80B48A8
+ bl SetEnigmaBerry
ldr r4, _0812648C @ =gStringVar2
adds r0, r4, 0
adds r1, r5, 0
@@ -597,7 +422,7 @@ _081264B8:
bl StringExpandPlaceholders
movs r0, 0x2
str r0, [r7, 0x6C]
- bl sub_80B4940
+ bl IsEnigmaBerryValid
cmp r0, 0x1
bne _081264E0
ldr r0, _081264DC @ =0x0000402d
@@ -702,7 +527,7 @@ sub_8126524: @ 8126524
sub_812658C: @ 812658C
push {r4,lr}
adds r4, r0, 0
- bl sub_80690F0
+ bl EnableNationalPokedex
ldr r0, _081265A8 @ =gStringVar4
ldr r1, _081265AC @ =gOtherText_DexUpgraded
bl StringExpandPlaceholders
@@ -842,23 +667,23 @@ _0812668C:
lsrs r4, 16
adds r0, r4, 0
movs r1, 0x2
- bl sub_8090D90
+ bl GetNationalPokedexFlag
adds r0, r4, 0
movs r1, 0x3
- bl sub_8090D90
+ bl GetNationalPokedexFlag
_081266C6:
adds r0, r7, 0
movs r1, 0xC
bl GetMonData
lsls r0, 16
lsrs r0, 16
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _081266E4
adds r0, r7, 0
mov r1, sp
- bl sub_80A2D88
+ bl GiveMailToMon2
_081266E4:
bl party_compaction
bl CalculatePlayerPartyCount
@@ -914,7 +739,7 @@ _08126750: .4byte gOtherText_NewTrainerInHoenn
sub_8126754: @ 8126754
push {r4,lr}
adds r4, r0, 0
- bl sub_80691BC
+ bl EnableResetRTC
ldr r0, _08126770 @ =gStringVar4
ldr r1, _08126774 @ =gSystemText_ClockAdjustmentUsable
bl StringExpandPlaceholders
@@ -987,7 +812,7 @@ sub_81267C0: @ 81267C0
adds r1, r0
subs r1, r4
adds r0, r4, 0
- bl sub_8041174
+ bl CalcCRC16
lsls r0, 16
lsrs r0, 16
cmp r5, r0
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
deleted file mode 100644
index 121b44790..000000000
--- a/asm/naming_screen.s
+++ /dev/null
@@ -1,4331 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start DoNamingScreen
-DoNamingScreen: @ 80B59CC
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, [sp, 0x14]
- ldr r5, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- str r4, [sp]
- str r5, [sp, 0x4]
- bl AddNamingScreenTask
- ldr r0, _080B59F8 @ =C2_NamingScreen
- bl SetMainCallback2
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B59F8: .4byte C2_NamingScreen
- thumb_func_end DoNamingScreen
-
- thumb_func_start C2_NamingScreen
-C2_NamingScreen: @ 80B59FC
- push {lr}
- ldr r0, _080B5A14 @ =gMain
- ldr r1, _080B5A18 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x7
- bhi _080B5A96
- lsls r0, 2
- ldr r1, _080B5A1C @ =_080B5A20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B5A14: .4byte gMain
-_080B5A18: .4byte 0x0000043c
-_080B5A1C: .4byte _080B5A20
- .align 2, 0
-_080B5A20:
- .4byte _080B5A40
- .4byte _080B5A4A
- .4byte _080B5A50
- .4byte _080B5A56
- .4byte _080B5A5C
- .4byte _080B5A62
- .4byte _080B5A68
- .4byte _080B5A84
-_080B5A40:
- bl NamingScreen_TurnOffScreen
- bl NamingScreen_Init
- b _080B5A6C
-_080B5A4A:
- bl NamingScreen_ClearVram
- b _080B5A6C
-_080B5A50:
- bl NamingScreen_ClearOam
- b _080B5A6C
-_080B5A56:
- bl NamingScreen_SetUpVideoRegs
- b _080B5A6C
-_080B5A5C:
- bl sub_80B5DC8
- b _080B5A6C
-_080B5A62:
- bl NamingScreen_ResetObjects
- b _080B5A6C
-_080B5A68:
- bl sub_80B5DFC
-_080B5A6C:
- ldr r1, _080B5A7C @ =gMain
- ldr r0, _080B5A80 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080B5A96
- .align 2, 0
-_080B5A7C: .4byte gMain
-_080B5A80: .4byte 0x0000043c
-_080B5A84:
- bl sub_80B5E20
- bl sub_80B5E3C
- bl sub_80B5C04
- ldr r0, _080B5A9C @ =sub_80B5AA0
- bl SetMainCallback2
-_080B5A96:
- pop {r0}
- bx r0
- .align 2, 0
-_080B5A9C: .4byte sub_80B5AA0
- thumb_func_end C2_NamingScreen
-
- thumb_func_start sub_80B5AA0
-sub_80B5AA0: @ 80B5AA0
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80B5AA0
-
- thumb_func_start sub_80B5AB8
-sub_80B5AB8: @ 80B5AB8
- push {r4,lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r1, _080B5B00 @ =REG_BG1VOFS
- ldr r4, _080B5B04 @ =0x02000000
- ldrh r0, [r4, 0x4]
- strh r0, [r1]
- adds r1, 0x4
- ldrh r0, [r4, 0x6]
- strh r0, [r1]
- ldr r2, _080B5B08 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r3, _080B5B0C @ =0x0000fffc
- adds r0, r3, 0
- ands r0, r1
- strh r0, [r2]
- ldrh r0, [r2]
- ldrh r1, [r4, 0x8]
- orrs r0, r1
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r2]
- ands r3, r0
- strh r3, [r2]
- ldrh r0, [r2]
- ldrh r1, [r4, 0xA]
- orrs r0, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5B00: .4byte REG_BG1VOFS
-_080B5B04: .4byte 0x02000000
-_080B5B08: .4byte REG_BG1CNT
-_080B5B0C: .4byte 0x0000fffc
- thumb_func_end sub_80B5AB8
-
- thumb_func_start AddNamingScreenTask
-AddNamingScreenTask: @ 80B5B10
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- mov r9, r1
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r7, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080B5B74 @ =NamingScreenDummyTask
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080B5B78 @ =gTasks
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x8]
- strh r5, [r4, 0xA]
- strh r6, [r4, 0xC]
- lsrs r0, r7, 16
- strh r0, [r4, 0xE]
- strh r7, [r4, 0x10]
- adds r0, r4, 0
- adds r0, 0x12
- mov r1, r9
- bl StoreWordInTwoHalfwords
- adds r4, 0x16
- adds r0, r4, 0
- ldr r1, [sp, 0x20]
- bl StoreWordInTwoHalfwords
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5B74: .4byte NamingScreenDummyTask
-_080B5B78: .4byte gTasks
- thumb_func_end AddNamingScreenTask
-
- thumb_func_start GetNamingScreenParameters
-GetNamingScreenParameters: @ 80B5B7C
- push {r4-r6,lr}
- ldr r0, _080B5BD8 @ =NamingScreenDummyTask
- bl FindTaskIdByFunc
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080B5BDC @ =gTasks
- adds r4, r0
- ldr r6, _080B5BE0 @ =0x02000000
- ldrh r0, [r4, 0x8]
- strb r0, [r6, 0x1]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x3E]
- ldrh r1, [r4, 0xC]
- adds r0, r6, 0
- adds r0, 0x40
- strh r1, [r0]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r0, 16
- ldrh r1, [r4, 0x10]
- orrs r0, r1
- str r0, [r6, 0x44]
- adds r0, r4, 0
- adds r0, 0x12
- adds r1, r6, 0
- adds r1, 0x38
- bl LoadWordFromTwoHalfwords
- adds r4, 0x16
- adds r1, r6, 0
- adds r1, 0x48
- adds r0, r4, 0
- bl LoadWordFromTwoHalfwords
- adds r0, r5, 0
- bl DestroyTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5BD8: .4byte NamingScreenDummyTask
-_080B5BDC: .4byte gTasks
-_080B5BE0: .4byte 0x02000000
- thumb_func_end GetNamingScreenParameters
-
- thumb_func_start NamingScreenDummyTask
-NamingScreenDummyTask: @ 80B5BE4
- bx lr
- thumb_func_end NamingScreenDummyTask
-
- thumb_func_start NamingScreen_TurnOffScreen
-NamingScreen_TurnOffScreen: @ 80B5BE8
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- thumb_func_end NamingScreen_TurnOffScreen
-
- thumb_func_start sub_80B5C04
-sub_80B5C04: @ 80B5C04
- push {r4,lr}
- ldr r0, _080B5C3C @ =sub_80B5AB8
- bl SetVBlankCallback
- ldr r3, _080B5C40 @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _080B5C44 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _080B5C48 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5C3C: .4byte sub_80B5AB8
-_080B5C40: .4byte 0x04000208
-_080B5C44: .4byte 0x04000200
-_080B5C48: .4byte REG_DISPSTAT
- thumb_func_end sub_80B5C04
-
- thumb_func_start NamingScreen_ClearVram
-NamingScreen_ClearVram: @ 80B5C4C
- push {r4-r7,lr}
- sub sp, 0x4
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- ldr r1, _080B5C98 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _080B5C9C @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_080B5C6A:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _080B5C6A
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5C98: .4byte 0x040000d4
-_080B5C9C: .4byte 0x81000800
- thumb_func_end NamingScreen_ClearVram
-
- thumb_func_start NamingScreen_ClearOam
-NamingScreen_ClearOam: @ 80B5CA0
- sub sp, 0x4
- movs r2, 0xE0
- lsls r2, 19
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080B5CBC @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080B5CC0 @ =0x81000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- add sp, 0x4
- bx lr
- .align 2, 0
-_080B5CBC: .4byte 0x040000d4
-_080B5CC0: .4byte 0x81000200
- thumb_func_end NamingScreen_ClearOam
-
- thumb_func_start NamingScreen_SetUpVideoRegs
-NamingScreen_SetUpVideoRegs: @ 80B5CC4
- push {r4,r5,lr}
- ldr r5, _080B5D2C @ =REG_BG0CNT
- movs r1, 0
- strh r1, [r5]
- ldr r2, _080B5D30 @ =REG_BG1CNT
- strh r1, [r2]
- ldr r3, _080B5D34 @ =REG_BG2CNT
- strh r1, [r3]
- ldr r4, _080B5D38 @ =REG_BG3CNT
- strh r1, [r4]
- ldr r0, _080B5D3C @ =REG_BG0HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- movs r1, 0xF8
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r5]
- ldr r1, _080B5D40 @ =0x00001c01
- adds r0, r1, 0
- strh r0, [r2]
- ldr r2, _080B5D44 @ =0x00001d0a
- adds r0, r2, 0
- strh r0, [r3]
- ldr r1, _080B5D48 @ =0x00001e03
- adds r0, r1, 0
- strh r0, [r4]
- ldr r1, _080B5D4C @ =REG_BLDCNT
- movs r2, 0xC8
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080B5D50 @ =0x0000080c
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5D2C: .4byte REG_BG0CNT
-_080B5D30: .4byte REG_BG1CNT
-_080B5D34: .4byte REG_BG2CNT
-_080B5D38: .4byte REG_BG3CNT
-_080B5D3C: .4byte REG_BG0HOFS
-_080B5D40: .4byte 0x00001c01
-_080B5D44: .4byte 0x00001d0a
-_080B5D48: .4byte 0x00001e03
-_080B5D4C: .4byte REG_BLDCNT
-_080B5D50: .4byte 0x0000080c
- thumb_func_end NamingScreen_SetUpVideoRegs
-
- thumb_func_start NamingScreen_Init
-NamingScreen_Init: @ 80B5D54
- push {r4-r6,lr}
- bl GetNamingScreenParameters
- ldr r4, _080B5DBC @ =0x02000000
- movs r0, 0
- strb r0, [r4]
- movs r2, 0
- strh r0, [r4, 0x4]
- strh r0, [r4, 0x6]
- movs r1, 0x1
- movs r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x2
- strh r0, [r4, 0xA]
- strb r2, [r4, 0xC]
- strb r1, [r4, 0xD]
- ldr r1, _080B5DC0 @ =gUnknown_083CE398
- ldrb r0, [r4, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r4, 0x34]
- ldrb r1, [r0, 0x4]
- strb r1, [r4, 0xE]
- ldrb r1, [r0, 0x1]
- lsrs r1, 1
- movs r0, 0xE
- subs r0, r1
- strh r0, [r4, 0x2]
- ldr r6, _080B5DC4 @ =gKeyRepeatStartDelay
- ldrh r0, [r6]
- strh r0, [r4, 0x3C]
- adds r5, r4, 0
- adds r5, 0x11
- adds r0, r5, 0
- movs r1, 0xFF
- movs r2, 0x10
- bl memset
- ldr r0, [r4, 0x34]
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B5DB2
- ldr r1, [r4, 0x38]
- adds r0, r5, 0
- bl StringCopy
-_080B5DB2:
- movs r0, 0x10
- strh r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5DBC: .4byte 0x02000000
-_080B5DC0: .4byte gUnknown_083CE398
-_080B5DC4: .4byte gKeyRepeatStartDelay
- thumb_func_end NamingScreen_Init
-
- thumb_func_start sub_80B5DC8
-sub_80B5DC8: @ 80B5DC8
- push {r4,lr}
- ldr r4, _080B5DE0 @ =gWindowConfig_81E6E88
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5DE0: .4byte gWindowConfig_81E6E88
- thumb_func_end sub_80B5DC8
-
- thumb_func_start NamingScreen_ResetObjects
-NamingScreen_ResetObjects: @ 80B5DE4
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- pop {r0}
- bx r0
- thumb_func_end NamingScreen_ResetObjects
-
- thumb_func_start sub_80B5DFC
-sub_80B5DFC: @ 80B5DFC
- push {lr}
- bl sub_80B7558
- bl sub_80B753C
- bl sub_80B7680
- bl sub_80B75C4
- bl sub_80B7794
- bl sub_80B78A8
- bl sub_80B7960
- pop {r0}
- bx r0
- thumb_func_end sub_80B5DFC
-
- thumb_func_start sub_80B5E20
-sub_80B5E20: @ 80B5E20
- push {lr}
- bl sub_80B6774
- bl sub_80B6A80
- bl sub_80B6CA8
- bl sub_80B6D04
- bl sub_80B6E44
- pop {r0}
- bx r0
- thumb_func_end sub_80B5E20
-
- thumb_func_start sub_80B5E3C
-sub_80B5E3C: @ 80B5E3C
- push {lr}
- bl sub_80B61D8
- bl sub_80B6438
- bl sub_80B5E50
- pop {r0}
- bx r0
- thumb_func_end sub_80B5E3C
-
- thumb_func_start sub_80B5E50
-sub_80B5E50: @ 80B5E50
- push {r4,lr}
- ldr r4, _080B5E6C @ =sub_80B5E70
- adds r0, r4, 0
- movs r1, 0x2
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5E6C: .4byte sub_80B5E70
- thumb_func_end sub_80B5E50
-
- thumb_func_start sub_80B5E70
-sub_80B5E70: @ 80B5E70
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _080B5E9C @ =gUnknown_083CE218
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r6, _080B5EA0 @ =0x02000000
- ldr r5, _080B5EA4 @ =gTasks
-_080B5E82:
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r4, r5
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080B5E82
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5E9C: .4byte gUnknown_083CE218
-_080B5EA0: .4byte 0x02000000
-_080B5EA4: .4byte gTasks
- thumb_func_end sub_80B5E70
-
- thumb_func_start sub_80B5EA8
-sub_80B5EA8: @ 80B5EA8
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _080B5ECC @ =0x02000000
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_080B5ECC: .4byte 0x02000000
- thumb_func_end sub_80B5EA8
-
- thumb_func_start sub_80B5ED0
-sub_80B5ED0: @ 80B5ED0
- push {lr}
- ldr r0, _080B5EF8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B5EF2
- movs r0, 0x1
- bl sub_80B6210
- movs r0, 0x1
- bl sub_80B68D8
- ldr r1, _080B5EFC @ =0x02000000
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080B5EF2:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B5EF8: .4byte gPaletteFade
-_080B5EFC: .4byte 0x02000000
- thumb_func_end sub_80B5ED0
-
- thumb_func_start sub_80B5F00
-sub_80B5F00: @ 80B5F00
- push {lr}
- bl sub_80B60B8
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80B5F00
-
- thumb_func_start sub_80B5F10
-sub_80B5F10: @ 80B5F10
- push {lr}
- bl sub_80B6938
- lsls r0, 24
- cmp r0, 0
- beq _080B5F2C
- movs r0, 0x1
- bl sub_80B6210
- bl sub_80B6878
- ldr r1, _080B5F34 @ =0x02000000
- movs r0, 0x2
- strb r0, [r1]
-_080B5F2C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B5F34: .4byte 0x02000000
- thumb_func_end sub_80B5F10
-
- thumb_func_start sub_80B5F38
-sub_80B5F38: @ 80B5F38
- push {lr}
- movs r0, 0
- bl sub_80B6210
- bl sub_80B6B14
- bl sub_80B65F0
- movs r0, 0x1
- bl sub_80B6888
- movs r0, 0
- movs r1, 0
- movs r2, 0x1
- bl sub_80B6460
- movs r0, 0x6
- bl PlaySE
- ldr r1, _080B5F6C @ =0x02000000
- movs r0, 0x5
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B5F6C: .4byte 0x02000000
- thumb_func_end sub_80B5F38
-
- thumb_func_start sub_80B5F70
-sub_80B5F70: @ 80B5F70
- push {r4,r5,lr}
- sub sp, 0x4
- bl sub_80B6610
- lsls r0, 24
- cmp r0, 0
- beq _080B5FDC
- ldr r4, _080B5FE8 @ =0x02000000
- movs r0, 0x2
- strb r0, [r4]
- ldrb r0, [r4, 0xE]
- adds r0, 0x1
- strb r0, [r4, 0xE]
- ldrb r0, [r4, 0xE]
- movs r1, 0x3
- bl __umodsi3
- strb r0, [r4, 0xE]
- bl sub_80B7614
- bl sub_80B77F8
- movs r0, 0x1
- bl sub_80B6210
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl sub_80B6858
- ldrb r0, [r4, 0xE]
- cmp r0, 0x2
- bne _080B5FC8
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x6
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080B5FC8
- mov r1, sp
- movs r0, 0x5
- strh r0, [r1]
-_080B5FC8:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl sub_80B680C
- movs r0, 0
- bl sub_80B6888
-_080B5FDC:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080B5FE8: .4byte 0x02000000
- thumb_func_end sub_80B5F70
-
- thumb_func_start pokemon_store
-pokemon_store: @ 80B5FEC
- push {r4,lr}
- bl sub_80B74B0
- movs r0, 0
- bl sub_80B6210
- movs r0, 0
- bl sub_80B68D8
- movs r0, 0x3
- movs r1, 0
- movs r2, 0x1
- bl sub_80B6460
- ldr r0, _080B6030 @ =gKeyRepeatStartDelay
- ldr r4, _080B6034 @ =0x02000000
- ldrh r1, [r4, 0x3C]
- strh r1, [r0]
- ldrb r0, [r4, 0x1]
- cmp r0, 0x2
- bne _080B6038
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _080B6038
- bl sub_80B74FC
- movs r0, 0x7
- strb r0, [r4]
- movs r0, 0
- b _080B6040
- .align 2, 0
-_080B6030: .4byte gKeyRepeatStartDelay
-_080B6034: .4byte 0x02000000
-_080B6038:
- ldr r1, _080B6048 @ =0x02000000
- movs r0, 0x8
- strb r0, [r1]
- movs r0, 0x1
-_080B6040:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B6048: .4byte 0x02000000
- thumb_func_end pokemon_store
-
- thumb_func_start sub_80B604C
-sub_80B604C: @ 80B604C
- push {lr}
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _080B6060
- ldr r1, _080B6068 @ =0x02000000
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080B6060:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B6068: .4byte 0x02000000
- thumb_func_end sub_80B604C
-
- thumb_func_start sub_80B606C
-sub_80B606C: @ 80B606C
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080B6090 @ =0x02000000
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
- add sp, 0x4
- pop {r1}
- bx r1
- .align 2, 0
-_080B6090: .4byte 0x02000000
- thumb_func_end sub_80B606C
-
- thumb_func_start sub_80B6094
-sub_80B6094: @ 80B6094
- push {lr}
- ldr r0, _080B60B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B60AA
- ldr r0, _080B60B4 @ =0x02000000
- ldr r0, [r0, 0x48]
- bl SetMainCallback2
-_080B60AA:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B60B0: .4byte gPaletteFade
-_080B60B4: .4byte 0x02000000
- thumb_func_end sub_80B6094
-
- thumb_func_start sub_80B60B8
-sub_80B60B8: @ 80B60B8
- push {r4,r5,lr}
- bl sub_80B61EC
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_80B6958
- lsls r0, 24
- lsrs r0, 24
- cmp r4, 0x8
- bne _080B60D6
- bl sub_80B61C8
- b _080B60F2
-_080B60D6:
- cmp r4, 0x6
- bne _080B60E0
- bl sub_80B6FBC
- b _080B6100
-_080B60E0:
- cmp r5, 0x7
- beq _080B60FC
- ldr r1, _080B60F8 @ =gUnknown_083CE240
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
-_080B60F2:
- lsls r0, 24
- lsrs r0, 24
- b _080B6102
- .align 2, 0
-_080B60F8: .4byte gUnknown_083CE240
-_080B60FC:
- bl sub_80B7090
-_080B6100:
- movs r0, 0
-_080B6102:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B60B8
-
- thumb_func_start sub_80B6108
-sub_80B6108: @ 80B6108
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl sub_80B6460
- cmp r4, 0x5
- bne _080B613C
- bl sub_80B7004
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80B6914
- cmp r4, 0
- beq _080B613C
- movs r0, 0
- bl sub_80B6210
- ldr r1, _080B6144 @ =0x02000000
- movs r0, 0x3
- strb r0, [r1]
-_080B613C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B6144: .4byte 0x02000000
- thumb_func_end sub_80B6108
-
- thumb_func_start sub_80B6148
-sub_80B6148: @ 80B6148
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_80B6460
- cmp r4, 0x5
- beq _080B6162
- movs r0, 0
- b _080B616A
-_080B6162:
- bl sub_80B61C8
- lsls r0, 24
- lsrs r0, 24
-_080B616A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6148
-
- thumb_func_start sub_80B6170
-sub_80B6170: @ 80B6170
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl sub_80B6460
- cmp r4, 0x5
- bne _080B618A
- bl sub_80B6FBC
-_080B618A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6170
-
- thumb_func_start sub_80B6194
-sub_80B6194: @ 80B6194
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl sub_80B6460
- cmp r4, 0x5
- beq _080B61AE
- movs r0, 0
- b _080B61BC
-_080B61AE:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B61C4 @ =0x02000000
- movs r0, 0x6
- strb r0, [r1]
- movs r0, 0x1
-_080B61BC:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B61C4: .4byte 0x02000000
- thumb_func_end sub_80B6194
-
- thumb_func_start sub_80B61C8
-sub_80B61C8: @ 80B61C8
- ldr r1, _080B61D4 @ =0x02000000
- movs r0, 0x4
- strb r0, [r1]
- movs r0, 0x1
- bx lr
- .align 2, 0
-_080B61D4: .4byte 0x02000000
- thumb_func_end sub_80B61C8
-
- thumb_func_start sub_80B61D8
-sub_80B61D8: @ 80B61D8
- push {lr}
- ldr r0, _080B61E8 @ =sub_80B623C
- movs r1, 0x1
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080B61E8: .4byte sub_80B623C
- thumb_func_end sub_80B61D8
-
- thumb_func_start sub_80B61EC
-sub_80B61EC: @ 80B61EC
- push {lr}
- ldr r0, _080B6208 @ =sub_80B623C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B620C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0xA]
- pop {r1}
- bx r1
- .align 2, 0
-_080B6208: .4byte sub_80B623C
-_080B620C: .4byte gTasks
- thumb_func_end sub_80B61EC
-
- thumb_func_start sub_80B6210
-sub_80B6210: @ 80B6210
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B6234 @ =sub_80B623C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B6238 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6234: .4byte sub_80B623C
-_080B6238: .4byte gTasks
- thumb_func_end sub_80B6210
-
- thumb_func_start sub_80B623C
-sub_80B623C: @ 80B623C
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080B6264 @ =gUnknown_083CE250
- ldr r2, _080B6268 @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080B6264: .4byte gUnknown_083CE250
-_080B6268: .4byte gTasks
- thumb_func_end sub_80B623C
-
- thumb_func_start sub_80B626C
-sub_80B626C: @ 80B626C
- movs r1, 0
- strh r1, [r0, 0xA]
- bx lr
- thumb_func_end sub_80B626C
-
- thumb_func_start sub_80B6274
-sub_80B6274: @ 80B6274
- push {lr}
- adds r2, r0, 0
- movs r0, 0
- strh r0, [r2, 0xA]
- ldr r0, _080B6290 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B6294
- movs r0, 0x5
- strh r0, [r2, 0xA]
- b _080B62C8
- .align 2, 0
-_080B6290: .4byte gMain
-_080B6294:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B62A2
- movs r0, 0x6
- strh r0, [r2, 0xA]
- b _080B62C8
-_080B62A2:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080B62B0
- movs r0, 0x8
- strh r0, [r2, 0xA]
- b _080B62C8
-_080B62B0:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080B62C2
- movs r0, 0x9
- strh r0, [r2, 0xA]
- bl sub_80B6878
- b _080B62C8
-_080B62C2:
- adds r0, r2, 0
- bl sub_80B62CC
-_080B62C8:
- pop {r0}
- bx r0
- thumb_func_end sub_80B6274
-
- thumb_func_start sub_80B62CC
-sub_80B62CC: @ 80B62CC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl sub_80B6858
- ldr r0, _080B6374 @ =gMain
- ldrh r2, [r0, 0x30]
- movs r0, 0x40
- ands r0, r2
- lsls r0, 16
- lsrs r0, 16
- negs r0, r0
- lsrs r1, r0, 31
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080B62F8
- movs r1, 0x2
-_080B62F8:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _080B6302
- movs r1, 0x3
-_080B6302:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _080B630C
- movs r1, 0x4
-_080B630C:
- mov r0, sp
- ldrh r6, [r0]
- mov r2, sp
- ldr r0, _080B6378 @ =gUnknown_083CE258
- lsls r1, 1
- adds r0, r1, r0
- ldrh r3, [r0]
- adds r0, r6, r3
- strh r0, [r2]
- ldr r0, _080B637C @ =gUnknown_083CE262
- adds r1, r0
- ldrh r0, [r1]
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r4]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _080B633A
- mov r1, sp
- movs r0, 0x8
- strh r0, [r1]
-_080B633A:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x8
- ble _080B634A
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
-_080B634A:
- lsls r0, r3, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _080B63CA
- ldr r0, _080B6380 @ =0x02000000
- ldrb r0, [r0, 0xE]
- cmp r0, 0x2
- bne _080B638A
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x6
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080B638A
- cmp r1, 0
- ble _080B6384
- mov r1, sp
- movs r0, 0x8
- b _080B6388
- .align 2, 0
-_080B6374: .4byte gMain
-_080B6378: .4byte gUnknown_083CE258
-_080B637C: .4byte gUnknown_083CE262
-_080B6380: .4byte 0x02000000
-_080B6384:
- mov r1, sp
- movs r0, 0x5
-_080B6388:
- strh r0, [r1]
-_080B638A:
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0x8
- bne _080B63AC
- ldrh r0, [r4]
- strh r0, [r5, 0xC]
- ldr r1, _080B63A8 @ =gUnknown_083CE26C
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- b _080B63C8
- .align 2, 0
-_080B63A8: .4byte gUnknown_083CE26C
-_080B63AC:
- cmp r6, 0x8
- bne _080B63CA
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080B63BC
- ldrh r0, [r5, 0xC]
- b _080B63C8
-_080B63BC:
- ldr r0, _080B63FC @ =gUnknown_083CE274
- movs r2, 0
- ldrsh r1, [r4, r2]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
-_080B63C8:
- strh r0, [r4]
-_080B63CA:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x8
- bne _080B6408
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _080B63E0
- movs r0, 0x2
- strh r0, [r4]
-_080B63E0:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- ble _080B63EC
- movs r0, 0
- strh r0, [r4]
-_080B63EC:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080B6400
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _080B6420
- .align 2, 0
-_080B63FC: .4byte gUnknown_083CE274
-_080B6400:
- cmp r0, 0x2
- bne _080B6420
- strh r0, [r5, 0xC]
- b _080B6420
-_080B6408:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080B6414
- movs r0, 0x3
- strh r0, [r4]
-_080B6414:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- ble _080B6420
- movs r0, 0
- strh r0, [r4]
-_080B6420:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl sub_80B680C
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B62CC
-
- thumb_func_start sub_80B6438
-sub_80B6438: @ 80B6438
- push {lr}
- ldr r0, _080B6458 @ =sub_80B64D4
- movs r1, 0x3
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B645C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x3
- strh r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_080B6458: .4byte sub_80B64D4
-_080B645C: .4byte gTasks
- thumb_func_end sub_80B6438
-
- thumb_func_start sub_80B6460
-sub_80B6460: @ 80B6460
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _080B6498 @ =sub_80B64D4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B649C @ =gTasks
- adds r4, r1, r0
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r5, r0
- bne _080B64A0
- cmp r6, 0
- bne _080B64A0
- strh r7, [r4, 0xA]
- movs r0, 0x1
- strh r0, [r4, 0xC]
- b _080B64CC
- .align 2, 0
-_080B6498: .4byte sub_80B64D4
-_080B649C: .4byte gTasks
-_080B64A0:
- cmp r5, 0x3
- bne _080B64B0
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080B64B0
- cmp r6, 0
- beq _080B64CC
-_080B64B0:
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- beq _080B64C2
- lsls r0, r1, 24
- lsrs r0, 24
- bl sub_80B65AC
-_080B64C2:
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r7, 0
- bl sub_80B65D4
-_080B64CC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B6460
-
- thumb_func_start sub_80B64D4
-sub_80B64D4: @ 80B64D4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B6548 @ =gTasks
- adds r4, r1, r0
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- beq _080B6540
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B6540
- lsls r0, r1, 24
- lsrs r0, 24
- bl sub_80B654C
- lsls r0, 16
- lsrs r0, 16
- ldrb r3, [r4, 0xE]
- adds r1, r3, 0
- adds r2, r3, 0
- bl MultiplyInvertedPaletteRGBComponents
- ldrh r1, [r4, 0x12]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B6520
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- cmp r0, 0
- bne _080B6540
-_080B6520:
- movs r0, 0x2
- strh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- ldrh r2, [r4, 0xE]
- adds r0, r1, r2
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- beq _080B653C
- cmp r0, 0
- bne _080B6540
- ldrh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
-_080B653C:
- negs r0, r1
- strh r0, [r4, 0x10]
-_080B6540:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6548: .4byte gTasks
- thumb_func_end sub_80B64D4
-
- thumb_func_start sub_80B654C
-sub_80B654C: @ 80B654C
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x4
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x87
- lsls r1, 1
- adds r5, r1, 0
- adds r0, r5
- add r6, sp, 0x8
- strh r0, [r6]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x86
- lsls r1, 1
- adds r0, r1
- mov r1, sp
- adds r1, 0xA
- strh r0, [r1]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- adds r0, r5
- add r1, sp, 0xC
- strh r0, [r1]
- mov r0, sp
- adds r1, r6, 0
- movs r2, 0x6
- bl memcpy
- lsls r4, 1
- mov r1, sp
- adds r0, r1, r4
- ldrh r0, [r0]
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80B654C
-
- thumb_func_start sub_80B65AC
-sub_80B65AC: @ 80B65AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80B654C
- lsls r0, 16
- ldr r2, _080B65CC @ =gPlttBufferFaded
- lsrs r0, 15
- adds r2, r0, r2
- ldr r1, _080B65D0 @ =gPlttBufferUnfaded
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_080B65CC: .4byte gPlttBufferFaded
-_080B65D0: .4byte gPlttBufferUnfaded
- thumb_func_end sub_80B65AC
-
- thumb_func_start sub_80B65D4
-sub_80B65D4: @ 80B65D4
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- movs r2, 0x1
- strh r2, [r0, 0xC]
- movs r1, 0xF
- strh r1, [r0, 0xE]
- strh r2, [r0, 0x10]
- strh r3, [r0, 0x12]
- bx lr
- thumb_func_end sub_80B65D4
-
- thumb_func_start sub_80B65F0
-sub_80B65F0: @ 80B65F0
- push {r4,lr}
- ldr r4, _080B660C @ =sub_80B6630
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B660C: .4byte sub_80B6630
- thumb_func_end sub_80B65F0
-
- thumb_func_start sub_80B6610
-sub_80B6610: @ 80B6610
- push {lr}
- ldr r0, _080B6624 @ =sub_80B6630
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080B6628
- movs r0, 0
- b _080B662A
- .align 2, 0
-_080B6624: .4byte sub_80B6630
-_080B6628:
- movs r0, 0x1
-_080B662A:
- pop {r1}
- bx r1
- thumb_func_end sub_80B6610
-
- thumb_func_start sub_80B6630
-sub_80B6630: @ 80B6630
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080B6660 @ =gUnknown_083CE27C
- ldr r2, _080B6664 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_080B6642:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080B6642
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6660: .4byte gUnknown_083CE27C
-_080B6664: .4byte gTasks
- thumb_func_end sub_80B6630
-
- thumb_func_start sub_80B6668
-sub_80B6668: @ 80B6668
- ldr r2, _080B667C @ =0x02000000
- movs r1, 0
- strh r1, [r2, 0x4]
- strh r1, [r2, 0x6]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- movs r0, 0
- bx lr
- .align 2, 0
-_080B667C: .4byte 0x02000000
- thumb_func_end sub_80B6668
-
- thumb_func_start sub_80B6680
-sub_80B6680: @ 80B6680
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, _080B66E4 @ =gUnknown_083CE28C
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldrh r0, [r4, 0xA]
- adds r0, 0x4
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl Sin
- ldr r5, _080B66E8 @ =0x02000000
- ldrb r1, [r5, 0xC]
- lsls r1, 2
- add r1, sp
- ldr r1, [r1]
- strh r0, [r1]
- ldrh r0, [r4, 0xA]
- adds r0, 0x80
- movs r1, 0xFF
- ands r0, r1
- movs r1, 0x28
- bl Sin
- ldrb r1, [r5, 0xD]
- lsls r1, 2
- add r1, sp
- ldr r1, [r1]
- strh r0, [r1]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- ble _080B66DA
- ldrb r1, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B66DA:
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080B66E4: .4byte gUnknown_083CE28C
-_080B66E8: .4byte 0x02000000
- thumb_func_end sub_80B6680
-
- thumb_func_start sub_80B66EC
-sub_80B66EC: @ 80B66EC
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, _080B6750 @ =gUnknown_083CE28C
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldrh r0, [r4, 0xA]
- adds r0, 0x4
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl Sin
- ldr r5, _080B6754 @ =0x02000000
- ldrb r1, [r5, 0xC]
- lsls r1, 2
- add r1, sp
- ldr r1, [r1]
- strh r0, [r1]
- ldrh r0, [r4, 0xA]
- adds r0, 0x80
- movs r1, 0xFF
- ands r0, r1
- movs r1, 0x28
- bl Sin
- ldrb r1, [r5, 0xD]
- lsls r1, 2
- add r1, sp
- ldr r1, [r1]
- strh r0, [r1]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _080B6746
- ldrb r1, [r5, 0xC]
- ldrb r0, [r5, 0xD]
- strb r0, [r5, 0xC]
- strb r1, [r5, 0xD]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080B6746:
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080B6750: .4byte gUnknown_083CE28C
-_080B6754: .4byte 0x02000000
- thumb_func_end sub_80B66EC
-
- thumb_func_start sub_80B6758
-sub_80B6758: @ 80B6758
- push {lr}
- ldr r0, _080B6770 @ =sub_80B6630
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080B6770: .4byte sub_80B6630
- thumb_func_end sub_80B6758
-
- thumb_func_start sub_80B6774
-sub_80B6774: @ 80B6774
- push {r4,r5,lr}
- ldr r0, _080B67E0 @ =gSpriteTemplate_83CE640
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- ldr r4, _080B67E4 @ =0x02000000
- strb r0, [r4, 0xF]
- ldr r5, _080B67E8 @ =gSprites
- ldrb r0, [r4, 0xF]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r2, r1
- orrs r2, r3
- strb r2, [r0, 0x1]
- ldrb r1, [r4, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- strh r1, [r0, 0x3A]
- ldrb r1, [r4, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x3A]
- movs r0, 0
- movs r1, 0
- bl sub_80B680C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B67E0: .4byte gSpriteTemplate_83CE640
-_080B67E4: .4byte 0x02000000
-_080B67E8: .4byte gSprites
- thumb_func_end sub_80B6774
-
- thumb_func_start sub_80B67EC
-sub_80B67EC: @ 80B67EC
- ldr r3, _080B6804 @ =gUnknown_083CE294
- lsls r0, 16
- asrs r0, 16
- ldr r1, _080B6808 @ =0x02000000
- ldrb r2, [r1, 0xE]
- lsls r1, r2, 3
- adds r1, r2
- adds r0, r1
- adds r0, r3
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080B6804: .4byte gUnknown_083CE294
-_080B6808: .4byte 0x02000000
- thumb_func_end sub_80B67EC
-
- thumb_func_start sub_80B680C
-sub_80B680C: @ 80B680C
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r1, _080B6850 @ =0x02000000
- ldrb r1, [r1, 0xF]
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- ldr r1, _080B6854 @ =gSprites
- adds r4, r1
- lsrs r6, r0, 16
- asrs r0, 16
- bl sub_80B67EC
- lsls r0, 24
- lsrs r0, 21
- adds r0, 0x1B
- strh r0, [r4, 0x20]
- lsls r0, r5, 16
- asrs r0, 12
- adds r0, 0x50
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- strh r0, [r4, 0x34]
- strh r6, [r4, 0x2E]
- strh r5, [r4, 0x30]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6850: .4byte 0x02000000
-_080B6854: .4byte gSprites
- thumb_func_end sub_80B680C
-
- thumb_func_start sub_80B6858
-sub_80B6858: @ 80B6858
- ldr r2, _080B6870 @ =0x02000000
- ldrb r3, [r2, 0xF]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- ldr r3, _080B6874 @ =gSprites
- adds r2, r3
- ldrh r3, [r2, 0x2E]
- strh r3, [r0]
- ldrh r0, [r2, 0x30]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080B6870: .4byte 0x02000000
-_080B6874: .4byte gSprites
- thumb_func_end sub_80B6858
-
- thumb_func_start sub_80B6878
-sub_80B6878: @ 80B6878
- push {lr}
- movs r0, 0x8
- movs r1, 0x2
- bl sub_80B680C
- pop {r0}
- bx r0
- thumb_func_end sub_80B6878
-
- thumb_func_start sub_80B6888
-sub_80B6888: @ 80B6888
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080B68CC @ =gSprites
- ldr r4, _080B68D0 @ =0x02000000
- ldrb r1, [r4, 0xF]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r5
- ldrh r3, [r2, 0x36]
- ldr r1, _080B68D4 @ =0xffffff00
- ands r1, r3
- strh r1, [r2, 0x36]
- ldrb r2, [r4, 0xF]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrh r2, [r1, 0x36]
- orrs r0, r2
- strh r0, [r1, 0x36]
- ldrb r1, [r4, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- bl StartSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B68CC: .4byte gSprites
-_080B68D0: .4byte 0x02000000
-_080B68D4: .4byte 0xffffff00
- thumb_func_end sub_80B6888
-
- thumb_func_start sub_80B68D8
-sub_80B68D8: @ 80B68D8
- push {r4,r5,lr}
- lsls r0, 24
- ldr r5, _080B690C @ =gSprites
- ldr r4, _080B6910 @ =0x02000000
- ldrb r1, [r4, 0xF]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r5
- ldrh r3, [r2, 0x36]
- movs r1, 0xFF
- ands r1, r3
- strh r1, [r2, 0x36]
- ldrb r2, [r4, 0xF]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsrs r0, 16
- ldrh r2, [r1, 0x36]
- orrs r0, r2
- strh r0, [r1, 0x36]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B690C: .4byte gSprites
-_080B6910: .4byte 0x02000000
- thumb_func_end sub_80B68D8
-
- thumb_func_start sub_80B6914
-sub_80B6914: @ 80B6914
- push {lr}
- ldr r0, _080B6930 @ =0x02000000
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B6934 @ =gSprites
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- pop {r0}
- bx r0
- .align 2, 0
-_080B6930: .4byte 0x02000000
-_080B6934: .4byte gSprites
- thumb_func_end sub_80B6914
-
- thumb_func_start sub_80B6938
-sub_80B6938: @ 80B6938
- ldr r2, _080B6950 @ =gSprites
- ldr r0, _080B6954 @ =0x02000000
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 31
- bx lr
- .align 2, 0
-_080B6950: .4byte gSprites
-_080B6954: .4byte 0x02000000
- thumb_func_end sub_80B6938
-
- thumb_func_start sub_80B6958
-sub_80B6958: @ 80B6958
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r1, _080B6988 @ =gUnknown_083CE2AF
- mov r0, sp
- movs r2, 0x3
- bl memcpy
- add r4, sp, 0x4
- mov r5, sp
- adds r5, 0x6
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80B6858
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- ble _080B698C
- movs r1, 0
- ldrsh r0, [r5, r1]
- add r0, sp
- ldrb r0, [r0]
- b _080B698E
- .align 2, 0
-_080B6988: .4byte gUnknown_083CE2AF
-_080B698C:
- movs r0, 0
-_080B698E:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6958
-
- thumb_func_start sub_80B6998
-sub_80B6998: @ 80B6998
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B69B0
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_080B69B0:
- ldrh r1, [r4, 0x36]
- movs r0, 0xFF
- ands r0, r1
- adds r3, r4, 0
- adds r3, 0x3E
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- ldrb r1, [r3]
- movs r2, 0x5
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r3]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _080B69DA
- movs r0, 0x4
- orrs r2, r0
- strb r2, [r3]
-_080B69DA:
- ldrb r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080B6A0A
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080B6A0A
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080B6A0A
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _080B6A16
-_080B6A0A:
- movs r0, 0
- strh r0, [r4, 0x38]
- movs r0, 0x1
- strh r0, [r4, 0x3A]
- movs r0, 0x2
- strh r0, [r4, 0x3C]
-_080B6A16:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- cmp r0, 0
- bne _080B6A3E
- ldrh r1, [r4, 0x3A]
- ldrh r2, [r4, 0x38]
- adds r0, r1, r2
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- beq _080B6A36
- cmp r0, 0
- bne _080B6A3A
-_080B6A36:
- negs r0, r1
- strh r0, [r4, 0x3A]
-_080B6A3A:
- movs r0, 0x2
- strh r0, [r4, 0x3C]
-_080B6A3E:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080B6A74
- ldrh r4, [r4, 0x38]
- lsls r5, r4, 24
- lsrs r5, 24
- lsls r4, 16
- asrs r4, 17
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r2, _080B6A7C @ =0x01010000
- adds r0, r2
- lsrs r0, 16
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r5, 0
- bl MultiplyInvertedPaletteRGBComponents
-_080B6A74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6A7C: .4byte 0x01010000
- thumb_func_end sub_80B6998
-
- thumb_func_start sub_80B6A80
-sub_80B6A80: @ 80B6A80
- push {r4,r5,lr}
- ldr r0, _080B6AF8 @ =gSpriteTemplate_83CE5C8
- movs r1, 0xCC
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B6AFC @ =0x02000000
- strb r0, [r1, 0x10]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, _080B6B00 @ =gSprites
- adds r4, r5
- ldr r1, _080B6B04 @ =gUnknown_083CE558
- adds r0, r4, 0
- bl SetSubspriteTables
- ldr r0, _080B6B08 @ =gSpriteTemplate_83CE5F8
- movs r1, 0xCC
- movs r2, 0x4C
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x3A]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldr r1, _080B6B0C @ =gUnknown_083CE560
- adds r0, r2, 0
- bl SetSubspriteTables
- ldr r0, _080B6B10 @ =gSpriteTemplate_83CE5E0
- movs r1, 0xCC
- movs r2, 0x4B
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- ands r2, r3
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r1, 0x5]
- strh r0, [r4, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6AF8: .4byte gSpriteTemplate_83CE5C8
-_080B6AFC: .4byte 0x02000000
-_080B6B00: .4byte gSprites
-_080B6B04: .4byte gUnknown_083CE558
-_080B6B08: .4byte gSpriteTemplate_83CE5F8
-_080B6B0C: .4byte gUnknown_083CE560
-_080B6B10: .4byte gSpriteTemplate_83CE5E0
- thumb_func_end sub_80B6A80
-
- thumb_func_start sub_80B6B14
-sub_80B6B14: @ 80B6B14
- ldr r2, _080B6B2C @ =0x02000000
- ldrb r1, [r2, 0x10]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B6B30 @ =gSprites
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrb r1, [r2, 0xE]
- strh r1, [r0, 0x30]
- bx lr
- .align 2, 0
-_080B6B2C: .4byte 0x02000000
-_080B6B30: .4byte gSprites
- thumb_func_end sub_80B6B14
-
- thumb_func_start sub_80B6B34
-sub_80B6B34: @ 80B6B34
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080B6B58 @ =gUnknown_083CE2B4
-_080B6B3A:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080B6B3A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6B58: .4byte gUnknown_083CE2B4
- thumb_func_end sub_80B6B34
-
- thumb_func_start sub_80B6B5C
-sub_80B6B5C: @ 80B6B5C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r3, _080B6B90 @ =gSprites
- adds r1, r3
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _080B6B94 @ =0x02000000
- ldrb r0, [r0, 0xE]
- bl sub_80B6C48
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B6B90: .4byte gSprites
-_080B6B94: .4byte 0x02000000
- thumb_func_end sub_80B6B5C
-
- thumb_func_start sub_80B6B98
-sub_80B6B98: @ 80B6B98
- movs r0, 0
- bx lr
- thumb_func_end sub_80B6B98
-
- thumb_func_start sub_80B6B9C
-sub_80B6B9C: @ 80B6B9C
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r0, 0x3A
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r2, _080B6C00 @ =gSprites
- adds r4, r0, r2
- movs r0, 0x3C
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r2
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080B6BF8
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- ldr r0, _080B6C04 @ =0x0000fffc
- strh r0, [r4, 0x26]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x30]
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- bl __modsi3
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80B6C48
-_080B6BF8:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080B6C00: .4byte gSprites
-_080B6C04: .4byte 0x0000fffc
- thumb_func_end sub_80B6B9C
-
- thumb_func_start sub_80B6C08
-sub_80B6C08: @ 80B6C08
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B6C44 @ =gSprites
- adds r2, r0, r1
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x26]
- adds r0, 0x1
- strh r0, [r2, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _080B6C3C
- movs r0, 0
- strh r0, [r2, 0x26]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_080B6C3C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B6C44: .4byte gSprites
- thumb_func_end sub_80B6C08
-
- thumb_func_start sub_80B6C48
-sub_80B6C48: @ 80B6C48
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080B6CA0 @ =gUnknown_083CE2C4
- lsls r4, r5, 1
- adds r0, r4, r0
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- mov r1, r8
- ldrb r2, [r1, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- mov r0, r8
- strb r1, [r0, 0x5]
- ldr r0, _080B6CA4 @ =gUnknown_083CE2CA
- adds r4, r0
- ldrh r0, [r4]
- bl GetSpriteTileStartByTag
- adds r1, r6, 0
- adds r1, 0x40
- strh r0, [r1]
- adds r6, 0x42
- movs r1, 0x3F
- ands r1, r5
- ldrb r2, [r6]
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6CA0: .4byte gUnknown_083CE2C4
-_080B6CA4: .4byte gUnknown_083CE2CA
- thumb_func_end sub_80B6C48
-
- thumb_func_start sub_80B6CA8
-sub_80B6CA8: @ 80B6CA8
- push {r4,r5,lr}
- ldr r0, _080B6CF4 @ =gSpriteTemplate_83CE610
- movs r1, 0xCC
- movs r2, 0x6C
- movs r3, 0
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080B6CF8 @ =gSprites
- adds r0, r4
- ldr r5, _080B6CFC @ =gUnknown_083CE578
- adds r1, r5, 0
- bl SetSubspriteTables
- ldr r0, _080B6D00 @ =gSpriteTemplate_83CE628
- movs r1, 0xCC
- movs r2, 0x84
- movs r3, 0
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r1, r5, 0
- bl SetSubspriteTables
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6CF4: .4byte gSpriteTemplate_83CE610
-_080B6CF8: .4byte gSprites
-_080B6CFC: .4byte gUnknown_083CE578
-_080B6D00: .4byte gSpriteTemplate_83CE628
- thumb_func_end sub_80B6CA8
-
- thumb_func_start sub_80B6D04
-sub_80B6D04: @ 80B6D04
- push {r4-r6,lr}
- ldr r4, _080B6D8C @ =0x02000000
- ldrh r1, [r4, 0x2]
- subs r1, 0x1
- lsls r1, 3
- adds r1, 0x4
- ldr r0, _080B6D90 @ =gSpriteTemplate_83CE658
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x28
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, _080B6D94 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldrh r0, [r4, 0x2]
- lsls r0, 3
- adds r0, 0x4
- lsls r0, 16
- lsrs r1, r0, 16
- movs r5, 0
- ldr r0, [r4, 0x34]
- ldrb r0, [r0, 0x1]
- cmp r5, r0
- bcs _080B6D86
- adds r6, r3, 0
-_080B6D4A:
- lsls r4, r1, 16
- asrs r4, 16
- ldr r0, _080B6D98 @ =gSpriteTemplate_83CE670
- adds r1, r4, 0
- movs r2, 0x2C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- strh r5, [r0, 0x2E]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x8
- lsls r4, 16
- lsrs r1, r4, 16
- ldr r0, _080B6D8C @ =0x02000000
- ldr r0, [r0, 0x34]
- ldrb r0, [r0, 0x1]
- cmp r5, r0
- bcc _080B6D4A
-_080B6D86:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6D8C: .4byte 0x02000000
-_080B6D90: .4byte gSpriteTemplate_83CE658
-_080B6D94: .4byte gSprites
-_080B6D98: .4byte gSpriteTemplate_83CE670
- thumb_func_end sub_80B6D04
-
- thumb_func_start sub_80B6D9C
-sub_80B6D9C: @ 80B6D9C
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _080B6DE4 @ =gUnknown_083CE2D0
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080B6DC0
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080B6DCE
-_080B6DC0:
- movs r0, 0x8
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r4, 0x30]
-_080B6DCE:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x24]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6DE4: .4byte gUnknown_083CE2D0
- thumb_func_end sub_80B6D9C
-
- thumb_func_start sub_80B6DE8
-sub_80B6DE8: @ 80B6DE8
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _080B6E10 @ =gUnknown_083CE2D8
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- bl sub_80B6F44
- lsls r0, 24
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- cmp r0, r1
- beq _080B6E14
- movs r0, 0
- strh r0, [r4, 0x26]
- strh r0, [r4, 0x30]
- b _080B6E3A
- .align 2, 0
-_080B6E10: .4byte gUnknown_083CE2D8
-_080B6E14:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080B6E3C
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r0, 0
-_080B6E3A:
- strh r0, [r4, 0x32]
-_080B6E3C:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B6DE8
-
- thumb_func_start sub_80B6E44
-sub_80B6E44: @ 80B6E44
- push {lr}
- ldr r1, _080B6E5C @ =gUnknown_083CE2E0
- ldr r0, _080B6E60 @ =0x02000000
- ldr r0, [r0, 0x34]
- ldrb r0, [r0, 0x2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_080B6E5C: .4byte gUnknown_083CE2E0
-_080B6E60: .4byte 0x02000000
- thumb_func_end sub_80B6E44
-
- thumb_func_start nullsub_40
-nullsub_40: @ 80B6E64
- bx lr
- thumb_func_end nullsub_40
-
- thumb_func_start sub_80B6E68
-sub_80B6E68: @ 80B6E68
- push {lr}
- sub sp, 0x4
- ldr r0, _080B6EB0 @ =0x02000000
- ldrh r1, [r0, 0x3E]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_805983C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B6EB4 @ =SpriteCallbackDummy
- movs r2, 0
- str r2, [sp]
- movs r2, 0x38
- movs r3, 0x18
- bl AddPseudoFieldObject
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080B6EB8 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x4
- bl StartSpriteAnim
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080B6EB0: .4byte 0x02000000
-_080B6EB4: .4byte SpriteCallbackDummy
-_080B6EB8: .4byte gSprites
- thumb_func_end sub_80B6E68
-
- thumb_func_start sub_80B6EBC
-sub_80B6EBC: @ 80B6EBC
- push {r4,lr}
- ldr r0, _080B6EF0 @ =gSpriteTemplate_83CE688
- movs r1, 0x34
- movs r2, 0x18
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080B6EF4 @ =gSprites
- adds r4, r0
- ldr r1, _080B6EF8 @ =gUnknown_083CE580
- adds r0, r4, 0
- bl SetSubspriteTables
- ldrb r0, [r4, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r4, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B6EF0: .4byte gSpriteTemplate_83CE688
-_080B6EF4: .4byte gSprites
-_080B6EF8: .4byte gUnknown_083CE580
- thumb_func_end sub_80B6EBC
-
- thumb_func_start sub_80B6EFC
-sub_80B6EFC: @ 80B6EFC
- push {lr}
- sub sp, 0x8
- bl sub_809D51C
- ldr r3, _080B6F38 @ =0x02000000
- ldrh r0, [r3, 0x3E]
- ldr r1, _080B6F3C @ =SpriteCallbackDummy
- movs r2, 0
- str r2, [sp]
- ldr r2, [r3, 0x44]
- str r2, [sp, 0x4]
- movs r2, 0x34
- movs r3, 0x18
- bl sub_809D2FC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B6F40 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- movs r2, 0xC
- orrs r0, r2
- strb r0, [r1, 0x5]
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080B6F38: .4byte 0x02000000
-_080B6F3C: .4byte SpriteCallbackDummy
-_080B6F40: .4byte gSprites
- thumb_func_end sub_80B6EFC
-
- thumb_func_start sub_80B6F44
-sub_80B6F44: @ 80B6F44
- push {r4,lr}
- movs r2, 0
- ldr r1, _080B6F64 @ =0x02000000
- ldr r0, [r1, 0x34]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r2, r0
- bcs _080B6F72
- adds r1, 0x11
- adds r3, r0, 0
-_080B6F58:
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080B6F68
- adds r0, r2, 0
- b _080B6F7C
- .align 2, 0
-_080B6F64: .4byte 0x02000000
-_080B6F68:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r3
- bcc _080B6F58
-_080B6F72:
- ldr r0, [r4, 0x34]
- ldrb r0, [r0, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
-_080B6F7C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B6F44
-
- thumb_func_start sub_80B6F84
-sub_80B6F84: @ 80B6F84
- push {lr}
- ldr r2, _080B6FA8 @ =0x02000000
- ldr r0, [r2, 0x34]
- ldrb r0, [r0, 0x1]
- subs r0, 0x1
- lsls r1, r0, 24
- cmp r1, 0
- ble _080B6FB4
- adds r3, r2, 0
- adds r3, 0x11
-_080B6F98:
- asrs r2, r1, 24
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080B6FAC
- lsrs r0, r1, 24
- b _080B6FB6
- .align 2, 0
-_080B6FA8: .4byte 0x02000000
-_080B6FAC:
- subs r0, r2, 0x1
- lsls r1, r0, 24
- cmp r1, 0
- bgt _080B6F98
-_080B6FB4:
- movs r0, 0
-_080B6FB6:
- pop {r1}
- bx r1
- thumb_func_end sub_80B6F84
-
- thumb_func_start sub_80B6FBC
-sub_80B6FBC: @ 80B6FBC
- push {r4,lr}
- bl sub_80B6F84
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B7000 @ =0x02000000
- adds r0, 0x11
- adds r4, r0
- movs r0, 0
- strb r0, [r4]
- bl sub_80B7960
- movs r0, 0xFF
- strb r0, [r4]
- bl sub_80B6958
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080B6FEA
- cmp r0, 0x2
- bne _080B6FF4
-_080B6FEA:
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl sub_80B6460
-_080B6FF4:
- movs r0, 0x17
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7000: .4byte 0x02000000
- thumb_func_end sub_80B6FBC
-
- thumb_func_start sub_80B7004
-sub_80B7004: @ 80B7004
- push {r4,r5,lr}
- sub sp, 0x4
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl sub_80B6858
- mov r4, sp
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_80B67EC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl sub_80B7768
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- movs r4, 0x1
- cmp r0, 0xFF
- bne _080B7046
- bl sub_80B7104
- b _080B704E
-_080B7046:
- cmp r0, 0xFE
- bne _080B7054
- bl sub_80B713C
-_080B704E:
- lsls r0, 24
- lsrs r4, r0, 24
- b _080B705A
-_080B7054:
- adds r0, r1, 0
- bl sub_80B7174
-_080B705A:
- bl sub_80B7960
- movs r0, 0x5
- bl PlaySE
- cmp r4, 0
- beq _080B7084
- bl sub_80B6F84
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B7080 @ =0x02000000
- ldr r1, [r1, 0x34]
- ldrb r1, [r1, 0x1]
- subs r1, 0x1
- cmp r0, r1
- bne _080B7084
- movs r0, 0x1
- b _080B7086
- .align 2, 0
-_080B7080: .4byte 0x02000000
-_080B7084:
- movs r0, 0
-_080B7086:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B7004
-
- thumb_func_start sub_80B7090
-sub_80B7090: @ 80B7090
- push {r4-r7,lr}
- bl sub_80B6F84
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- ldr r0, _080B70C8 @ =0x02000000
- adds r0, 0x11
- adds r0, r5, r0
- ldrb r4, [r0]
- adds r6, r4, 0
- adds r0, r4, 0
- bl sub_80B7198
- lsls r0, 24
- cmp r0, 0
- beq _080B70D6
- adds r0, r4, 0
- bl sub_80B7264
- lsls r0, 24
- cmp r0, 0
- beq _080B70CC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80B7370
- b _080B70F4
- .align 2, 0
-_080B70C8: .4byte 0x02000000
-_080B70CC:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80B73CC
- b _080B70F4
-_080B70D6:
- adds r0, r4, 0
- bl sub_80B71E4
- lsls r0, 24
- cmp r0, 0
- beq _080B70EC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80B7474
- b _080B70F4
-_080B70EC:
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_80B72A4
-_080B70F4:
- bl sub_80B7960
- movs r0, 0x5
- bl PlaySE
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B7090
-
- thumb_func_start sub_80B7104
-sub_80B7104: @ 80B7104
- push {r4,r5,lr}
- bl sub_80B6F84
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080B7128 @ =0x02000000
- adds r0, 0x11
- adds r0, r5, r0
- ldrb r4, [r0]
- adds r0, r4, 0
- bl sub_80B720C
- lsls r0, 24
- cmp r0, 0
- bne _080B712C
- movs r0, 0
- b _080B7136
- .align 2, 0
-_080B7128: .4byte 0x02000000
-_080B712C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80B72A4
- movs r0, 0x1
-_080B7136:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B7104
-
- thumb_func_start sub_80B713C
-sub_80B713C: @ 80B713C
- push {r4,r5,lr}
- bl sub_80B6F84
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080B7160 @ =0x02000000
- adds r0, 0x11
- adds r0, r5, r0
- ldrb r4, [r0]
- adds r0, r4, 0
- bl sub_80B7264
- lsls r0, 24
- cmp r0, 0
- bne _080B7164
- movs r0, 0
- b _080B716E
- .align 2, 0
-_080B7160: .4byte 0x02000000
-_080B7164:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80B7370
- movs r0, 0x1
-_080B716E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B713C
-
- thumb_func_start sub_80B7174
-sub_80B7174: @ 80B7174
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80B6F44
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B7194 @ =0x02000000
- adds r1, 0x11
- adds r0, r1
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7194: .4byte 0x02000000
- thumb_func_end sub_80B7174
-
- thumb_func_start sub_80B7198
-sub_80B7198: @ 80B7198
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC9
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x13
- bls _080B71DA
- adds r0, r1, 0
- adds r0, 0x79
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B71DA
- adds r0, r1, 0
- adds r0, 0x74
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B71DA
- adds r0, r1, 0
- adds r0, 0x6F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B71DA
- adds r0, r1, 0
- adds r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B71DE
-_080B71DA:
- movs r0, 0x1
- b _080B71E0
-_080B71DE:
- movs r0, 0
-_080B71E0:
- pop {r1}
- bx r1
- thumb_func_end sub_80B7198
-
- thumb_func_start sub_80B71E4
-sub_80B71E4: @ 80B71E4
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xB5
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B7202
- adds r0, r1, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B7206
-_080B7202:
- movs r0, 0x1
- b _080B7208
-_080B7206:
- movs r0, 0
-_080B7208:
- pop {r1}
- bx r1
- thumb_func_end sub_80B71E4
-
- thumb_func_start sub_80B720C
-sub_80B720C: @ 80B720C
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFA
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xE
- bls _080B725A
- adds r0, r1, 0
- subs r0, 0x1A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B725A
- adds r0, r1, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B725A
- adds r0, r1, 0
- subs r0, 0x56
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xE
- bls _080B725A
- adds r0, r1, 0
- subs r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B725A
- adds r0, r1, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B725E
-_080B725A:
- movs r0, 0x1
- b _080B7260
-_080B725E:
- movs r0, 0
-_080B7260:
- pop {r1}
- bx r1
- thumb_func_end sub_80B720C
-
- thumb_func_start sub_80B7264
-sub_80B7264: @ 80B7264
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xE6
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B729A
- adds r0, r1, 0
- subs r0, 0x46
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B729A
- adds r0, r1, 0
- subs r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B729A
- adds r0, r1, 0
- adds r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B729E
-_080B729A:
- movs r0, 0x1
- b _080B72A0
-_080B729E:
- movs r0, 0
-_080B72A0:
- pop {r1}
- bx r1
- thumb_func_end sub_80B7264
-
- thumb_func_start sub_80B72A4
-sub_80B72A4: @ 80B72A4
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsrs r2, r0, 24
- movs r3, 0xFA
- lsls r3, 24
- adds r0, r3
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B72C0
- adds r0, r2, 0
- adds r0, 0x31
- b _080B735A
-_080B72C0:
- adds r0, r2, 0
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B72D2
- adds r0, r2, 0
- adds r0, 0x31
- b _080B735A
-_080B72D2:
- adds r0, r2, 0
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B72E4
- adds r0, r2, 0
- adds r0, 0x31
- b _080B735A
-_080B72E4:
- adds r0, r2, 0
- subs r0, 0x1A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B72F6
- adds r0, r2, 0
- adds r0, 0x2C
- b _080B735A
-_080B72F6:
- adds r0, r2, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B7356
- adds r0, r2, 0
- subs r0, 0x56
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B7314
- adds r0, r2, 0
- adds r0, 0x31
- b _080B735A
-_080B7314:
- adds r0, r2, 0
- subs r0, 0x5B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B7326
- adds r0, r2, 0
- adds r0, 0x31
- b _080B735A
-_080B7326:
- adds r0, r2, 0
- subs r0, 0x60
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B7338
- adds r0, r2, 0
- adds r0, 0x31
- b _080B735A
-_080B7338:
- adds r0, r2, 0
- subs r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B734A
- adds r0, r2, 0
- adds r0, 0x2C
- b _080B735A
-_080B734A:
- adds r0, r2, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B735E
-_080B7356:
- adds r0, r2, 0
- adds r0, 0xFB
-_080B735A:
- lsls r0, 24
- lsrs r2, r0, 24
-_080B735E:
- ldr r0, _080B736C @ =0x02000000
- adds r0, 0x11
- adds r0, r1, r0
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080B736C: .4byte 0x02000000
- thumb_func_end sub_80B72A4
-
- thumb_func_start sub_80B7370
-sub_80B7370: @ 80B7370
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsrs r2, r0, 24
- movs r3, 0xE6
- lsls r3, 24
- adds r0, r3
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B738C
- adds r0, r2, 0
- adds r0, 0x31
- b _080B73B8
-_080B738C:
- adds r0, r2, 0
- subs r0, 0x46
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B73B6
- adds r0, r2, 0
- subs r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B73AA
- adds r0, r2, 0
- adds r0, 0x31
- b _080B73B8
-_080B73AA:
- adds r0, r2, 0
- adds r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B73BC
-_080B73B6:
- adds r0, r2, 0x5
-_080B73B8:
- lsls r0, 24
- lsrs r2, r0, 24
-_080B73BC:
- ldr r0, _080B73C8 @ =0x02000000
- adds r0, 0x11
- adds r0, r1, r0
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080B73C8: .4byte 0x02000000
- thumb_func_end sub_80B7370
-
- thumb_func_start sub_80B73CC
-sub_80B73CC: @ 80B73CC
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsrs r2, r0, 24
- movs r3, 0xC9
- lsls r3, 24
- adds r0, r3
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B73E8
- adds r0, r2, 0
- adds r0, 0xCF
- b _080B745E
-_080B73E8:
- adds r0, r2, 0
- subs r0, 0x3C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B73FA
- adds r0, r2, 0
- adds r0, 0xCF
- b _080B745E
-_080B73FA:
- adds r0, r2, 0
- subs r0, 0x41
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B740C
- adds r0, r2, 0
- adds r0, 0xCF
- b _080B745E
-_080B740C:
- adds r0, r2, 0
- subs r0, 0x46
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B745A
- adds r0, r2, 0
- adds r0, 0x79
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B742A
- adds r0, r2, 0
- adds r0, 0xCF
- b _080B745E
-_080B742A:
- adds r0, r2, 0
- adds r0, 0x74
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B743C
- adds r0, r2, 0
- adds r0, 0xCF
- b _080B745E
-_080B743C:
- adds r0, r2, 0
- adds r0, 0x6F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B744E
- adds r0, r2, 0
- adds r0, 0xCF
- b _080B745E
-_080B744E:
- adds r0, r2, 0
- adds r0, 0x6A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B7462
-_080B745A:
- adds r0, r2, 0
- adds r0, 0xD4
-_080B745E:
- lsls r0, 24
- lsrs r2, r0, 24
-_080B7462:
- ldr r0, _080B7470 @ =0x02000000
- adds r0, 0x11
- adds r0, r1, r0
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080B7470: .4byte 0x02000000
- thumb_func_end sub_80B73CC
-
- thumb_func_start sub_80B7474
-sub_80B7474: @ 80B7474
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsrs r2, r0, 24
- movs r3, 0xB5
- lsls r3, 24
- adds r0, r3
- lsrs r0, 24
- cmp r0, 0x4
- bls _080B7496
- adds r0, r2, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080B749E
-_080B7496:
- adds r0, r2, 0
- adds r0, 0xCF
- lsls r0, 24
- lsrs r2, r0, 24
-_080B749E:
- ldr r0, _080B74AC @ =0x02000000
- adds r0, 0x11
- adds r0, r1, r0
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080B74AC: .4byte 0x02000000
- thumb_func_end sub_80B7474
-
- thumb_func_start sub_80B74B0
-sub_80B74B0: @ 80B74B0
- push {r4,lr}
- movs r1, 0
- ldr r3, _080B74E4 @ =0x02000000
- ldr r0, [r3, 0x34]
- ldrb r0, [r0, 0x1]
- cmp r1, r0
- bcs _080B74F6
- adds r2, r3, 0
- adds r4, r3, 0
- adds r4, 0x11
-_080B74C4:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B74E8
- cmp r0, 0xFF
- beq _080B74E8
- ldr r0, [r2, 0x38]
- ldr r1, [r2, 0x34]
- ldrb r2, [r1, 0x1]
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r1, r4, 0
- bl StringCopyN
- b _080B74F6
- .align 2, 0
-_080B74E4: .4byte 0x02000000
-_080B74E8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, [r3, 0x34]
- ldrb r0, [r0, 0x1]
- cmp r1, r0
- bcc _080B74C4
-_080B74F6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B74B0
-
- thumb_func_start sub_80B74FC
-sub_80B74FC: @ 80B74FC
- push {r4,lr}
- ldr r0, _080B7528 @ =gStringVar1
- ldr r1, _080B752C @ =0x02000000
- ldr r1, [r1, 0x38]
- bl StringCopy
- ldr r4, _080B7530 @ =gStringVar4
- ldr r1, _080B7534 @ =gOtherText_SentToPC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _080B7538 @ =gWindowConfig_81E6E88
- bl BasicInitMenuWindow
- bl MenuDisplayMessageBox
- adds r0, r4, 0
- bl sub_8072044
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7528: .4byte gStringVar1
-_080B752C: .4byte 0x02000000
-_080B7530: .4byte gStringVar4
-_080B7534: .4byte gOtherText_SentToPC
-_080B7538: .4byte gWindowConfig_81E6E88
- thumb_func_end sub_80B74FC
-
- thumb_func_start sub_80B753C
-sub_80B753C: @ 80B753C
- push {lr}
- ldr r0, _080B7550 @ =gUnknown_083CE6A0
- bl LoadSpriteSheets
- ldr r0, _080B7554 @ =gUnknown_083CE708
- bl LoadSpritePalettes
- pop {r0}
- bx r0
- .align 2, 0
-_080B7550: .4byte gUnknown_083CE6A0
-_080B7554: .4byte gUnknown_083CE708
- thumb_func_end sub_80B753C
-
- thumb_func_start sub_80B7558
-sub_80B7558: @ 80B7558
- push {lr}
- bl sub_80B7568
- bl sub_80B75B0
- pop {r0}
- bx r0
- thumb_func_end sub_80B7558
-
- thumb_func_start sub_80B7568
-sub_80B7568: @ 80B7568
- push {r4,lr}
- ldr r4, _080B759C @ =gNamingScreenMenu_Gfx
- ldr r3, _080B75A0 @ =gMenuMessageBoxContentTileOffset
- ldrh r0, [r3]
- lsls r0, 5
- movs r1, 0xC0
- lsls r1, 19
- adds r0, r1
- ldr r1, _080B75A4 @ =0x040000d4
- str r4, [r1]
- str r0, [r1, 0x4]
- ldr r2, _080B75A8 @ =0x80000400
- str r2, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldrh r0, [r3]
- lsls r0, 5
- ldr r3, _080B75AC @ =0x06008000
- adds r0, r3
- str r4, [r1]
- str r0, [r1, 0x4]
- str r2, [r1, 0x8]
- ldr r0, [r1, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B759C: .4byte gNamingScreenMenu_Gfx
-_080B75A0: .4byte gMenuMessageBoxContentTileOffset
-_080B75A4: .4byte 0x040000d4
-_080B75A8: .4byte 0x80000400
-_080B75AC: .4byte 0x06008000
- thumb_func_end sub_80B7568
-
- thumb_func_start sub_80B75B0
-sub_80B75B0: @ 80B75B0
- push {lr}
- ldr r0, _080B75C0 @ =gNamingScreenPalettes
- movs r1, 0
- movs r2, 0x80
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_080B75C0: .4byte gNamingScreenPalettes
- thumb_func_end sub_80B75B0
-
- thumb_func_start sub_80B75C4
-sub_80B75C4: @ 80B75C4
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _080B7608 @ =gUnknown_083CE308
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r4, _080B760C @ =gUnknown_083CE2F0
- ldr r5, _080B7610 @ =0x02000000
- ldrb r1, [r5, 0xE]
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r5, 0xC]
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r1]
- bl _call_via_r1
- ldrb r1, [r5, 0xE]
- lsls r1, 3
- adds r4, 0x4
- adds r1, r4
- ldrb r0, [r5, 0xD]
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r1]
- bl _call_via_r1
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7608: .4byte gUnknown_083CE308
-_080B760C: .4byte gUnknown_083CE2F0
-_080B7610: .4byte 0x02000000
- thumb_func_end sub_80B75C4
-
- thumb_func_start sub_80B7614
-sub_80B7614: @ 80B7614
- push {lr}
- sub sp, 0x8
- ldr r0, _080B7644 @ =gUnknown_083CE308
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, _080B7648 @ =gUnknown_083CE2F0
- ldr r2, _080B764C @ =0x02000000
- ldrb r1, [r2, 0xE]
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldrb r0, [r2, 0xD]
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r1]
- bl _call_via_r1
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080B7644: .4byte gUnknown_083CE308
-_080B7648: .4byte gUnknown_083CE2F0
-_080B764C: .4byte 0x02000000
- thumb_func_end sub_80B7614
-
- thumb_func_start sub_80B7650
-sub_80B7650: @ 80B7650
- push {lr}
- ldr r1, _080B765C @ =gUnknown_083CE748
- bl sub_80B7698
- pop {r0}
- bx r0
- .align 2, 0
-_080B765C: .4byte gUnknown_083CE748
- thumb_func_end sub_80B7650
-
- thumb_func_start sub_80B7660
-sub_80B7660: @ 80B7660
- push {lr}
- ldr r1, _080B766C @ =gUnknown_083CEBF8
- bl sub_80B7698
- pop {r0}
- bx r0
- .align 2, 0
-_080B766C: .4byte gUnknown_083CEBF8
- thumb_func_end sub_80B7660
-
- thumb_func_start sub_80B7670
-sub_80B7670: @ 80B7670
- push {lr}
- ldr r1, _080B767C @ =gUnknown_083CF0A8
- bl sub_80B7698
- pop {r0}
- bx r0
- .align 2, 0
-_080B767C: .4byte gUnknown_083CF0A8
- thumb_func_end sub_80B7670
-
- thumb_func_start sub_80B7680
-sub_80B7680: @ 80B7680
- push {lr}
- ldr r0, _080B7690 @ =0x0600f000
- ldr r1, _080B7694 @ =gUnknown_08E86258
- bl sub_80B76E0
- pop {r0}
- bx r0
- .align 2, 0
-_080B7690: .4byte 0x0600f000
-_080B7694: .4byte gUnknown_08E86258
- thumb_func_end sub_80B7680
-
- thumb_func_start sub_80B7698
-sub_80B7698: @ 80B7698
- push {r4-r7,lr}
- mov r12, r0
- adds r3, r1, 0
- movs r4, 0
- ldr r0, _080B76DC @ =gMenuMessageBoxContentTileOffset
- ldrh r6, [r0]
-_080B76A4:
- movs r1, 0
- lsls r4, 16
- asrs r5, r4, 11
-_080B76AA:
- lsls r0, r1, 16
- asrs r0, 16
- adds r1, r5, r0
- lsls r1, 1
- add r1, r12
- ldrh r7, [r3]
- adds r2, r6, r7
- strh r2, [r1]
- adds r0, 0x1
- lsls r0, 16
- adds r3, 0x2
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080B76AA
- movs r1, 0x80
- lsls r1, 9
- adds r0, r4, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080B76A4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B76DC: .4byte gMenuMessageBoxContentTileOffset
- thumb_func_end sub_80B7698
-
- thumb_func_start sub_80B76E0
-sub_80B76E0: @ 80B76E0
- push {r4-r7,lr}
- mov r12, r0
- adds r3, r1, 0
- movs r4, 0
- ldr r0, _080B7728 @ =gMenuMessageBoxContentTileOffset
- ldrh r6, [r0]
-_080B76EC:
- movs r1, 0
- lsls r5, r4, 16
- asrs r4, r5, 11
-_080B76F2:
- lsls r0, r1, 16
- asrs r0, 16
- adds r1, r4, r0
- lsls r1, 1
- add r1, r12
- ldrh r7, [r3]
- adds r2, r6, r7
- strh r2, [r1]
- adds r0, 0x1
- lsls r0, 16
- adds r3, 0x2
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080B76F2
- adds r3, 0x4
- movs r1, 0x80
- lsls r1, 9
- adds r0, r5, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080B76EC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7728: .4byte gMenuMessageBoxContentTileOffset
- thumb_func_end sub_80B76E0
-
- thumb_func_start sub_80B772C
-sub_80B772C: @ 80B772C
- push {lr}
- ldr r1, _080B773C @ =0x02000000
- ldrb r0, [r1, 0xE]
- ldrb r1, [r1, 0xC]
- bl nullsub_20
- pop {r0}
- bx r0
- .align 2, 0
-_080B773C: .4byte 0x02000000
- thumb_func_end sub_80B772C
-
- thumb_func_start sub_80B7740
-sub_80B7740: @ 80B7740
- push {r4,lr}
- ldr r4, _080B7760 @ =0x02000000
- ldrb r0, [r4, 0xE]
- adds r0, 0x1
- movs r1, 0x3
- bl __modsi3
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4, 0xD]
- bl nullsub_20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7760: .4byte 0x02000000
- thumb_func_end sub_80B7740
-
- thumb_func_start nullsub_20
-nullsub_20: @ 80B7764
- bx lr
- thumb_func_end nullsub_20
-
- thumb_func_start sub_80B7768
-sub_80B7768: @ 80B7768
- ldr r3, _080B778C @ =gUnknown_083CE3A8
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 2
- adds r0, r2
- ldr r1, _080B7790 @ =0x02000000
- ldrb r2, [r1, 0xE]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r0, r1
- adds r0, r3
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080B778C: .4byte gUnknown_083CE3A8
-_080B7790: .4byte 0x02000000
- thumb_func_end sub_80B7768
-
- thumb_func_start sub_80B7794
-sub_80B7794: @ 80B7794
- push {r4-r6,lr}
- ldr r6, _080B77EC @ =gUnknown_083CE328
- ldr r4, _080B77F0 @ =0x02000000
- ldrb r0, [r4, 0xC]
- lsls r0, 2
- ldrb r1, [r4, 0xE]
- lsls r1, 4
- adds r0, r1
- adds r0, r6
- ldr r0, [r0]
- bl BasicInitMenuWindow
- ldr r5, _080B77F4 @ =gUnknown_083CE310
- ldrb r0, [r4, 0xE]
- lsls r0, 3
- adds r0, r5
- ldr r0, [r0]
- bl _call_via_r0
- ldrb r1, [r4, 0xD]
- lsls r1, 2
- ldrb r0, [r4, 0xE]
- lsls r0, 4
- adds r1, r0
- adds r6, 0x8
- adds r1, r6
- ldr r0, [r1]
- bl BasicInitMenuWindow
- ldrb r0, [r4, 0xE]
- lsls r0, 3
- adds r5, 0x4
- adds r0, r5
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_80B772C
- bl sub_80B7740
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B77EC: .4byte gUnknown_083CE328
-_080B77F0: .4byte 0x02000000
-_080B77F4: .4byte gUnknown_083CE310
- thumb_func_end sub_80B7794
-
- thumb_func_start sub_80B77F8
-sub_80B77F8: @ 80B77F8
- push {r4,lr}
- ldr r2, _080B782C @ =gUnknown_083CE328
- ldr r4, _080B7830 @ =0x02000000
- ldrb r1, [r4, 0xD]
- lsls r1, 2
- ldrb r0, [r4, 0xE]
- lsls r0, 4
- adds r1, r0
- adds r2, 0x8
- adds r1, r2
- ldr r0, [r1]
- bl BasicInitMenuWindow
- ldr r1, _080B7834 @ =gUnknown_083CE310
- ldrb r0, [r4, 0xE]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_80B7740
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B782C: .4byte gUnknown_083CE328
-_080B7830: .4byte 0x02000000
-_080B7834: .4byte gUnknown_083CE310
- thumb_func_end sub_80B77F8
-
- thumb_func_start sub_80B7838
-sub_80B7838: @ 80B7838
- push {lr}
- movs r0, 0x1
- bl sub_80B785C
- pop {r0}
- bx r0
- thumb_func_end sub_80B7838
-
- thumb_func_start sub_80B7844
-sub_80B7844: @ 80B7844
- push {lr}
- movs r0, 0
- bl sub_80B785C
- pop {r0}
- bx r0
- thumb_func_end sub_80B7844
-
- thumb_func_start sub_80B7850
-sub_80B7850: @ 80B7850
- push {lr}
- movs r0, 0x2
- bl sub_80B785C
- pop {r0}
- bx r0
- thumb_func_end sub_80B7850
-
- thumb_func_start sub_80B785C
-sub_80B785C: @ 80B785C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- movs r5, 0x9
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 4
-_080B786C:
- lsls r4, r2, 16
- asrs r4, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 2
- ldr r1, _080B78A4 @ =gUnknown_083CE3A8
- adds r0, r1
- adds r0, r6, r0
- lsls r2, r5, 24
- lsrs r2, 24
- movs r1, 0x3
- bl MenuPrint
- adds r4, 0x1
- lsls r4, 16
- lsls r0, r5, 16
- movs r1, 0x80
- lsls r1, 10
- adds r0, r1
- lsrs r5, r0, 16
- lsrs r2, r4, 16
- asrs r4, 16
- cmp r4, 0x3
- ble _080B786C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B78A4: .4byte gUnknown_083CE3A8
- thumb_func_end sub_80B785C
-
- thumb_func_start sub_80B78A8
-sub_80B78A8: @ 80B78A8
- push {r4,lr}
- ldr r0, _080B78E4 @ =gWindowConfig_81E6F4C
- bl BasicInitMenuWindow
- ldr r1, _080B78E8 @ =gUnknown_083CE358
- ldr r4, _080B78EC @ =0x02000000
- ldrb r0, [r4, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _080B78F0 @ =gUnknown_083CE368
- ldr r0, [r4, 0x34]
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, [r4, 0x34]
- ldr r0, [r0, 0x8]
- movs r1, 0x9
- movs r2, 0x2
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B78E4: .4byte gWindowConfig_81E6F4C
-_080B78E8: .4byte gUnknown_083CE358
-_080B78EC: .4byte 0x02000000
-_080B78F0: .4byte gUnknown_083CE368
- thumb_func_end sub_80B78A8
-
- thumb_func_start nullsub_61
-nullsub_61: @ 80B78F4
- bx lr
- thumb_func_end nullsub_61
-
- thumb_func_start sub_80B78F8
-sub_80B78F8: @ 80B78F8
- push {lr}
- ldr r0, _080B7914 @ =gStringVar1
- ldr r1, _080B7918 @ =0x02000000
- movs r3, 0x3E
- ldrsh r2, [r1, r3]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080B791C @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_080B7914: .4byte gStringVar1
-_080B7918: .4byte 0x02000000
-_080B791C: .4byte gSpeciesNames
- thumb_func_end sub_80B78F8
-
- thumb_func_start nullsub_62
-nullsub_62: @ 80B7920
- bx lr
- thumb_func_end nullsub_62
-
- thumb_func_start sub_80B7924
-sub_80B7924: @ 80B7924
- push {lr}
- sub sp, 0x4
- ldr r1, _080B7958 @ =gUnknown_083CE370
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- ldr r0, _080B795C @ =0x02000000
- adds r0, 0x40
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- beq _080B7952
- cmp r0, 0xFE
- bne _080B7948
- mov r1, sp
- movs r0, 0xB6
- strb r0, [r1]
-_080B7948:
- mov r0, sp
- movs r1, 0x14
- movs r2, 0x4
- bl MenuPrint
-_080B7952:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080B7958: .4byte gUnknown_083CE370
-_080B795C: .4byte 0x02000000
- thumb_func_end sub_80B7924
-
- thumb_func_start sub_80B7960
-sub_80B7960: @ 80B7960
- push {r4,lr}
- ldr r0, _080B799C @ =gStringVar1
- movs r2, 0xFC
- strb r2, [r0]
- movs r1, 0x14
- strb r1, [r0, 0x1]
- movs r1, 0x8
- strb r1, [r0, 0x2]
- strb r2, [r0, 0x3]
- movs r1, 0x11
- strb r1, [r0, 0x4]
- movs r1, 0x1
- strb r1, [r0, 0x5]
- adds r0, 0x6
- ldr r4, _080B79A0 @ =0x02000011
- adds r1, r4, 0
- bl StringCopy
- ldr r0, _080B79A4 @ =gWindowConfig_81E6F4C
- bl BasicInitMenuWindow
- ldr r0, _080B799C @ =gStringVar1
- subs r4, 0x11
- ldrb r1, [r4, 0x2]
- movs r2, 0x4
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B799C: .4byte gStringVar1
-_080B79A0: .4byte 0x02000011
-_080B79A4: .4byte gWindowConfig_81E6F4C
- thumb_func_end sub_80B7960
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 8f1d9d5b7..8a7c153b9 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -71,7 +71,7 @@ sub_806AF4C: @ 806AF4C
lsrs r3, 24
cmp r1, 0xFF
beq _0806AF64
- ldr r0, _0806AF84 @ =gUnknown_020239F8
+ ldr r0, _0806AF84 @ =gBattleTypeFlags
strh r1, [r0]
_0806AF64:
ldr r0, _0806AF88 @ =0x0201b000
@@ -90,7 +90,7 @@ _0806AF64:
pop {r0}
bx r0
.align 2, 0
-_0806AF84: .4byte gUnknown_020239F8
+_0806AF84: .4byte gBattleTypeFlags
_0806AF88: .4byte 0x0201b000
thumb_func_end sub_806AF4C
@@ -185,7 +185,7 @@ _0806B020:
muls r2, r3
ldr r3, _0806B050 @ =gPlayerParty
adds r2, r3
- bl sub_806D90C
+ bl TryCreatePartyMenuMonIcon
b _0806B114
.align 2, 0
_0806B048: .4byte 0x00000266
@@ -199,14 +199,14 @@ _0806B054:
adds r1, r4, r0
b _0806B0E0
_0806B060:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
b _0806B0D8
_0806B066:
movs r1, 0x98
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
- bl sub_806DC34
+ bl CreateHeldItemIcons_806DC34
movs r2, 0x99
lsls r2, 2
adds r1, r4, r2
@@ -233,10 +233,10 @@ _0806B07A:
.align 2, 0
_0806B0A0: .4byte 0x00000266
_0806B0A4:
- bl sub_806E334
+ bl PartyMenuPrintMonsLevelOrStatus
b _0806B0D8
_0806B0AA:
- bl sub_806E0C4
+ bl PrintPartyMenuMonNicknames
ldr r1, _0806B0B8 @ =0x0201b000
movs r0, 0x99
lsls r0, 2
@@ -245,7 +245,7 @@ _0806B0AA:
.align 2, 0
_0806B0B8: .4byte 0x0201b000
_0806B0BC:
- bl sub_806E53C
+ bl PartyMenuTryPrintMonsHP
b _0806B0D8
_0806B0C2:
bl nullsub_13
@@ -257,7 +257,7 @@ _0806B0C2:
.align 2, 0
_0806B0D0: .4byte 0x0201b000
_0806B0D4:
- bl sub_806E6C8
+ bl PartyMenuDrawHPBars
_0806B0D8:
ldr r1, _0806B0E8 @ =0x0201b000
movs r2, 0x99
@@ -774,10 +774,10 @@ _0806B520: .4byte REG_BG3VOFS
_0806B524: .4byte 0x0000ffff
thumb_func_end sub_806B4A8
- thumb_func_start sub_806B528
-sub_806B528: @ 806B528
+ thumb_func_start IsLinkDoubleBattle
+IsLinkDoubleBattle: @ 806B528
push {lr}
- ldr r0, _0806B53C @ =gUnknown_020239F8
+ ldr r0, _0806B53C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x4B
ands r0, r1
@@ -786,13 +786,13 @@ sub_806B528: @ 806B528
movs r0, 0
b _0806B542
.align 2, 0
-_0806B53C: .4byte gUnknown_020239F8
+_0806B53C: .4byte gBattleTypeFlags
_0806B540:
movs r0, 0x1
_0806B542:
pop {r1}
bx r1
- thumb_func_end sub_806B528
+ thumb_func_end IsLinkDoubleBattle
thumb_func_start sub_806B548
sub_806B548: @ 806B548
@@ -833,7 +833,7 @@ sub_806B58C: @ 806B58C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
@@ -844,7 +844,7 @@ sub_806B58C: @ 806B58C
.align 2, 0
_0806B5A4: .4byte gUnknown_0202E8FA
_0806B5A8:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -909,7 +909,7 @@ _0806B628:
movs r1, 0
b _0806B8A8
_0806B638:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B666
@@ -932,7 +932,7 @@ _0806B660:
ldrb r1, [r4, 0x3]
b _0806B8BC
_0806B666:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -954,7 +954,7 @@ _0806B684:
movs r1, 0x1
b _0806B8A8
_0806B694:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B6C2
@@ -977,7 +977,7 @@ _0806B6BC:
ldrb r1, [r4, 0x5]
b _0806B8BC
_0806B6C2:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1021,7 +1021,7 @@ _0806B714:
ldrb r1, [r4, 0x5]
b _0806B8BC
_0806B71A:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B74A
@@ -1044,7 +1044,7 @@ _0806B744:
ldrb r1, [r4, 0x7]
b _0806B8BC
_0806B74A:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1088,7 +1088,7 @@ _0806B79C:
ldrb r1, [r4, 0x7]
b _0806B8BC
_0806B7A2:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B7D2
@@ -1112,7 +1112,7 @@ _0806B7CC:
ldrb r1, [r4, 0x9]
b _0806B8BC
_0806B7D2:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1159,7 +1159,7 @@ _0806B82C:
ldrb r1, [r4, 0x9]
b _0806B8BC
_0806B832:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806B84C
@@ -1171,7 +1171,7 @@ _0806B832:
.align 2, 0
_0806B848: .4byte gPlayerPartyCount
_0806B84C:
- bl sub_806B528
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1714,7 +1714,7 @@ sub_806BC3C: @ 806BC3C
lsls r5, 24
lsrs r5, 24
ldr r6, _0806BCB0 @ =gUnknown_08376918
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r4, 2
lsls r0, 24
lsrs r0, 24
@@ -1861,7 +1861,7 @@ sub_806BD58: @ 806BD58
lsls r4, 24
lsrs r4, 24
ldr r0, _0806BD7C @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2176,8 +2176,8 @@ sub_806BF74: @ 806BF74
mov r0, r9
adds r1, r5, 0
movs r2, 0
- bl sub_806DA44
- bl sub_806B528
+ bl UpdateMonIconFrame_806DA44
+ bl IsLinkDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2328,7 +2328,7 @@ _0806C0CC: .4byte 0x0201b000
_0806C0D0: .4byte 0x00000261
_0806C0D4: .4byte gUnknown_083768B8
_0806C0D8:
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r7, r0, 24
cmp r5, 0x5
@@ -2436,7 +2436,7 @@ _0806C1A4:
lsrs r1, 24
mov r0, r9
movs r2, 0x1
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r5, r0
@@ -3082,7 +3082,7 @@ sub_806C658: @ 806C658
mov r0, r8
adds r1, r6, 0
movs r2, 0
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
cmp r6, 0x5
bhi _0806C6A8
lsls r0, r6, 1
@@ -3321,7 +3321,7 @@ _0806C84A:
lsrs r1, 24
mov r0, r8
movs r2, 0x1
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
movs r3, 0x2E
ldrsh r0, [r4, r3]
cmp r6, r0
@@ -3362,7 +3362,7 @@ sub_806C890: @ 806C890
adds r0, r6, 0
adds r1, r4, 0
movs r2, 0
- bl sub_806DA44
+ bl UpdateMonIconFrame_806DA44
cmp r4, 0x5
bhi _0806C8DC
lsls r0, r4, 1
@@ -3430,7 +3430,7 @@ sub_806C92C: @ 806C92C
ldrh r0, [r1, 0x30]
lsls r0, 24
lsrs r4, r0, 24
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0806C96A
@@ -3606,7 +3606,7 @@ sub_806CA60: @ 806CA60
movs r1, 0
bl CreateTask
ldr r0, _0806CAE8 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
+ bl CreateInvisibleSpriteWithCallback
strb r0, [r5, 0x1]
ldrb r1, [r5, 0x1]
adds r0, r4, 0
@@ -4020,11 +4020,11 @@ _0806CDCC:
ldr r4, _0806CE1C @ =0x02001000
ldrb r0, [r4]
ldrb r1, [r4, 0x5]
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
strb r0, [r4, 0x3]
ldrb r0, [r4]
ldrb r1, [r4, 0x6]
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
strb r0, [r4, 0x4]
ldrb r3, [r4, 0x5]
cmp r3, 0
@@ -4515,12 +4515,12 @@ sub_806D198: @ 806D198
ldrb r0, [r4]
ldrb r1, [r4, 0x5]
ldrb r2, [r4, 0x4]
- bl sub_806DE50
+ bl SetMonIconSpriteId_maybe
ldrb r0, [r4]
ldrb r1, [r4, 0x6]
ldrb r2, [r4, 0x3]
- bl sub_806DE50
- bl battle_type_is_double
+ bl SetMonIconSpriteId_maybe
+ bl IsDoubleBattle
ldr r5, _0806D368 @ =gSprites
ldrb r1, [r4, 0x3]
lsls r3, r1, 4
@@ -4541,7 +4541,7 @@ sub_806D198: @ 806D198
movs r1, 0
mov r8, r1
strh r0, [r3, 0x20]
- bl battle_type_is_double
+ bl IsDoubleBattle
ldrb r1, [r4, 0x3]
lsls r3, r1, 4
adds r3, r1
@@ -4580,9 +4580,9 @@ sub_806D198: @ 806D198
adds r1, r5
mov r9, r1
add r0, r9
- ldr r7, _0806D370 @ =sub_806DA38
+ ldr r7, _0806D370 @ =UpdateMonIconFrame_806DA38
str r7, [r0]
- bl battle_type_is_double
+ bl IsDoubleBattle
ldrb r1, [r4, 0x4]
lsls r3, r1, 4
adds r3, r1
@@ -4599,7 +4599,7 @@ sub_806D198: @ 806D198
adds r2, r6
ldrb r0, [r2]
strh r0, [r3, 0x20]
- bl battle_type_is_double
+ bl IsDoubleBattle
ldrb r1, [r4, 0x4]
lsls r3, r1, 4
adds r3, r1
@@ -4645,14 +4645,14 @@ sub_806D198: @ 806D198
ldrh r1, [r1, 0x2E]
lsls r1, 24
lsrs r1, 24
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r9
- ldr r0, _0806D374 @ =sub_806DA0C
+ ldr r0, _0806D374 @ =UpdateMonIconFrame_806DA0C
str r0, [r1]
ldrb r0, [r4, 0x5]
movs r6, 0x64
@@ -4667,17 +4667,17 @@ sub_806D198: @ 806D198
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E2C0
+ bl PartyMenuPrintMonLevelOrStatus
ldrb r0, [r4, 0x5]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E07C
+ bl TryPrintPartyMenuMonNickname
ldrb r0, [r4, 0x5]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E4E8
+ bl PartyMenuTryPrintHP
ldrb r0, [r4, 0x5]
adds r1, r0, 0
muls r1, r6
@@ -4687,23 +4687,23 @@ sub_806D198: @ 806D198
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E2C0
+ bl PartyMenuPrintMonLevelOrStatus
ldrb r0, [r4, 0x6]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E07C
+ bl TryPrintPartyMenuMonNickname
ldrb r0, [r4, 0x6]
adds r1, r0, 0
muls r1, r6
adds r1, r5
- bl sub_806E4E8
+ bl PartyMenuTryPrintHP
ldrb r0, [r4, 0x6]
adds r1, r0, 0
muls r1, r6
adds r1, r5
bl nullsub_12
- bl sub_806E6C8
+ bl PartyMenuDrawHPBars
mov r0, r10
bl sub_806CC74
pop {r3-r5}
@@ -4717,8 +4717,8 @@ sub_806D198: @ 806D198
_0806D364: .4byte 0x02001000
_0806D368: .4byte gSprites
_0806D36C: .4byte gUnknown_08376678
-_0806D370: .4byte sub_806DA38
-_0806D374: .4byte sub_806DA0C
+_0806D370: .4byte UpdateMonIconFrame_806DA38
+_0806D374: .4byte UpdateMonIconFrame_806DA0C
_0806D378: .4byte gPlayerParty
thumb_func_end sub_806D198
@@ -4726,7 +4726,7 @@ _0806D378: .4byte gPlayerParty
sub_806D37C: @ 806D37C
push {r4,lr}
adds r4, r0, 0
- bl sub_809D638
+ bl UpdateMonIconFrame
ldrh r2, [r4, 0x24]
movs r0, 0x24
ldrsh r1, [r4, r0]
@@ -4740,11 +4740,11 @@ sub_806D37C: @ 806D37C
movs r1, 0
strh r0, [r4, 0x2E]
strh r1, [r4, 0x32]
- ldr r0, _0806D3A4 @ =sub_806DA38
+ ldr r0, _0806D3A4 @ =UpdateMonIconFrame_806DA38
str r0, [r4, 0x1C]
b _0806D3AE
.align 2, 0
-_0806D3A4: .4byte sub_806DA38
+_0806D3A4: .4byte UpdateMonIconFrame_806DA38
_0806D3A8:
ldrh r0, [r4, 0x2E]
adds r0, r2, r0
@@ -4890,7 +4890,7 @@ sub_806D4AC: @ 806D4AC
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
lsls r0, 24
lsrs r0, 24
ldr r2, _0806D4FC @ =gSprites
@@ -4932,7 +4932,7 @@ sub_806D50C: @ 806D50C
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
- bl sub_806DDA0
+ bl GetMonIconSpriteId_maybe
ldr r2, _0806D534 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -5036,7 +5036,7 @@ sub_806D5B8: @ 806D5B8
lsls r5, 24
lsrs r5, 24
ldr r6, _0806D658 @ =gUnknown_08376948
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r4, r5, 2
lsls r0, 24
lsrs r0, 24
@@ -5047,7 +5047,7 @@ sub_806D5B8: @ 806D5B8
adds r1, r6
ldrb r1, [r1]
mov r10, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5057,7 +5057,7 @@ sub_806D5B8: @ 806D5B8
adds r1, r6
ldrb r1, [r1, 0x1]
mov r9, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5067,7 +5067,7 @@ sub_806D5B8: @ 806D5B8
adds r1, r6
ldrb r1, [r1, 0x2]
mov r8, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5118,7 +5118,7 @@ sub_806D668: @ 806D668
lsls r5, 24
lsrs r5, 24
ldr r6, _0806D708 @ =gUnknown_08376978
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r4, r5, 2
lsls r0, 24
lsrs r0, 24
@@ -5129,7 +5129,7 @@ sub_806D668: @ 806D668
adds r1, r6
ldrb r1, [r1]
mov r10, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5139,7 +5139,7 @@ sub_806D668: @ 806D668
adds r1, r6
ldrb r1, [r1, 0x1]
mov r9, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5149,7 +5149,7 @@ sub_806D668: @ 806D668
adds r1, r6
ldrb r1, [r1, 0x2]
mov r8, r1
- bl battle_type_is_double
+ bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -5298,4 +5298,2928 @@ _0806D7F0: .4byte 0x06007180
_0806D7F4: .4byte gStatusPal_Icons
thumb_func_end sub_806D718
+ thumb_func_start SetMonIconAnimByHP
+SetMonIconAnimByHP: @ 806D7F8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsls r2, 16
+ lsrs r5, r1, 16
+ asrs r1, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl GetHPBarLevel
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ cmp r5, r4
+ beq _0806D830
+ movs r2, 0x1
+ cmp r0, 0x3
+ beq _0806D830
+ movs r2, 0x2
+ cmp r0, 0x2
+ beq _0806D830
+ movs r2, 0x4
+ cmp r0, 0x1
+ bne _0806D830
+ movs r2, 0x3
+_0806D830:
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _0806D848 @ =gSprites
+ adds r0, r1
+ adds r1, r2, 0
+ bl sub_809D824
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D848: .4byte gSprites
+ thumb_func_end SetMonIconAnimByHP
+
+ thumb_func_start SetMonIconAnim
+SetMonIconAnim: @ 806D84C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl SetMonIconAnimByHP
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end SetMonIconAnim
+
+ thumb_func_start CreatePartyMenuMonIcon
+CreatePartyMenuMonIcon: @ 806D880
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r5, r1, 0
+ mov r8, r3
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806D904 @ =gUnknown_08376678
+ lsls r1, r5, 2
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1]
+ mov r9, r0
+ ldrb r1, [r1, 0x1]
+ mov r10, r1
+ mov r0, r8
+ movs r1, 0x41
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0
+ bl GetMonData
+ ldr r1, _0806D908 @ =sub_809D62C
+ movs r2, 0x5
+ str r2, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ mov r2, r9
+ mov r3, r10
+ bl CreateMonIcon
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl SetMonIconSpriteId_maybe
+ adds r0, r4, 0
+ mov r1, r8
+ bl SetMonIconAnim
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D904: .4byte gUnknown_08376678
+_0806D908: .4byte sub_809D62C
+ thumb_func_end CreatePartyMenuMonIcon
+
+ thumb_func_start TryCreatePartyMenuMonIcon
+TryCreatePartyMenuMonIcon: @ 806D90C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r8, r6
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r7, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806D95A
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D946
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ adds r3, r4, 0
+ bl CreatePartyMenuMonIcon
+ b _0806D95A
+_0806D946:
+ bl IsDoubleBattle
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ adds r1, r7, 0
+ adds r3, r4, 0
+ bl CreatePartyMenuMonIcon
+_0806D95A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end TryCreatePartyMenuMonIcon
+
+ thumb_func_start unref_sub_806D964
+unref_sub_806D964: @ 806D964
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ b _0806D986
+_0806D96E:
+ movs r0, 0x64
+ adds r2, r4, 0
+ muls r2, r0
+ ldr r0, _0806D994 @ =gPlayerParty
+ adds r2, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl TryCreatePartyMenuMonIcon
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0806D986:
+ ldr r0, _0806D998 @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _0806D96E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D994: .4byte gPlayerParty
+_0806D998: .4byte gPlayerPartyCount
+ thumb_func_end unref_sub_806D964
+
+ thumb_func_start CreateMonIcon_806D99C
+CreateMonIcon_806D99C: @ 806D99C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r5, r1, 0
+ mov r8, r3
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806DA04 @ =gUnknown_08376678
+ lsls r1, r5, 2
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldrb r2, [r1]
+ ldrb r3, [r1, 0x1]
+ mov r1, r8
+ ldrh r0, [r1]
+ ldr r1, _0806DA08 @ =sub_809D62C
+ movs r4, 0x5
+ str r4, [sp]
+ mov r7, r8
+ ldr r4, [r7, 0x18]
+ str r4, [sp, 0x4]
+ bl CreateMonIcon
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl SetMonIconSpriteId_maybe
+ ldrh r1, [r7, 0x10]
+ ldrh r2, [r7, 0x12]
+ adds r0, r4, 0
+ bl SetMonIconAnimByHP
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DA04: .4byte gUnknown_08376678
+_0806DA08: .4byte sub_809D62C
+ thumb_func_end CreateMonIcon_806D99C
+
+ thumb_func_start UpdateMonIconFrame_806DA0C
+UpdateMonIconFrame_806DA0C: @ 806DA0C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl UpdateMonIconFrame
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0806DA32
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806DA30
+ ldr r0, _0806DA2C @ =0x0000fffd
+ strh r0, [r4, 0x26]
+ b _0806DA32
+ .align 2, 0
+_0806DA2C: .4byte 0x0000fffd
+_0806DA30:
+ strh r1, [r4, 0x26]
+_0806DA32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end UpdateMonIconFrame_806DA0C
+
+ thumb_func_start UpdateMonIconFrame_806DA38
+UpdateMonIconFrame_806DA38: @ 806DA38
+ push {lr}
+ bl UpdateMonIconFrame
+ pop {r0}
+ bx r0
+ thumb_func_end UpdateMonIconFrame_806DA38
+
+ thumb_func_start UpdateMonIconFrame_806DA44
+UpdateMonIconFrame_806DA44: @ 806DA44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r1, 0x5
+ bhi _0806DA8E
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806DA7C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r2, r1, 2
+ adds r1, r2, r3
+ movs r0, 0
+ strh r0, [r1, 0x26]
+ strh r0, [r1, 0x2E]
+ cmp r4, 0
+ bne _0806DA84
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, _0806DA80 @ =UpdateMonIconFrame_806DA38
+ b _0806DA8C
+ .align 2, 0
+_0806DA7C: .4byte gSprites
+_0806DA80: .4byte UpdateMonIconFrame_806DA38
+_0806DA84:
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, _0806DA94 @ =UpdateMonIconFrame_806DA0C
+_0806DA8C:
+ str r1, [r0]
+_0806DA8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DA94: .4byte UpdateMonIconFrame_806DA0C
+ thumb_func_end UpdateMonIconFrame_806DA44
+
+ thumb_func_start LoadHeldItemIconGraphics
+LoadHeldItemIconGraphics: @ 806DA98
+ push {lr}
+ ldr r0, _0806DAAC @ =gUnknown_083765DC
+ bl LoadSpriteSheet
+ ldr r0, _0806DAB0 @ =gUnknown_083765E4
+ bl LoadSpritePalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DAAC: .4byte gUnknown_083765DC
+_0806DAB0: .4byte gUnknown_083765E4
+ thumb_func_end LoadHeldItemIconGraphics
+
+ thumb_func_start SpriteCB_HeldItemIcon
+SpriteCB_HeldItemIcon: @ 806DAB4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0806DAE4 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r2
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _0806DAE8
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DB06
+ .align 2, 0
+_0806DAE4: .4byte gSprites
+_0806DAE8:
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x26]
+ ldrh r2, [r2, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+_0806DB06:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end SpriteCB_HeldItemIcon
+
+ thumb_func_start CreateHeldItemIcon
+CreateHeldItemIcon: @ 806DB0C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r6, r0, 0
+ mov r9, r1
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _0806DB84 @ =gSprites
+ mov r8, r0
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x43
+ ldrb r3, [r0]
+ ldr r0, _0806DB88 @ =gSpriteTemplate_837660C
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0xFA
+ movs r2, 0xAA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ mov r0, r8
+ adds r5, r4, r0
+ movs r0, 0x4
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ strh r0, [r5, 0x26]
+ movs r0, 0x1C
+ add r8, r0
+ add r4, r8
+ ldr r0, _0806DB8C @ =SpriteCB_HeldItemIcon
+ str r0, [r4]
+ strh r6, [r5, 0x3C]
+ adds r0, r5, 0
+ mov r1, r9
+ bl StartSpriteAnim
+ ldr r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DB84: .4byte gSprites
+_0806DB88: .4byte gSpriteTemplate_837660C
+_0806DB8C: .4byte SpriteCB_HeldItemIcon
+ thumb_func_end CreateHeldItemIcon
+
+ thumb_func_start CreateHeldItemIcons
+CreateHeldItemIcons: @ 806DB90
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0
+ beq _0806DBA4
+ cmp r2, 0x1
+ beq _0806DBEC
+ b _0806DC28
+_0806DBA4:
+ movs r5, 0
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcs _0806DC28
+_0806DBAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0806DBE8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0806DBD8
+ adds r0, r7, r5
+ ldrb r4, [r0]
+ adds r0, r1, 0
+ bl ItemIsMail
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl CreateHeldItemIcon
+_0806DBD8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcc _0806DBAC
+ b _0806DC28
+ .align 2, 0
+_0806DBE8: .4byte gPlayerParty
+_0806DBEC:
+ movs r5, 0
+ b _0806DC22
+_0806DBF0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0806DC30 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0806DC1C
+ adds r0, r5, r7
+ ldrb r4, [r0, 0x6]
+ adds r0, r1, 0
+ bl ItemIsMail
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl CreateHeldItemIcon
+_0806DC1C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0806DC22:
+ ldrb r0, [r6, 0x1]
+ cmp r5, r0
+ bcc _0806DBF0
+_0806DC28:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DC30: .4byte gEnemyParty
+ thumb_func_end CreateHeldItemIcons
+
+ thumb_func_start CreateHeldItemIcons_806DC34
+CreateHeldItemIcons_806DC34: @ 806DC34
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ ldr r0, _0806DCC8 @ =gSprites
+ mov r9, r0
+ movs r1, 0x1C
+ add r1, r9
+ mov r10, r1
+_0806DC50:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, _0806DCCC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806DCB0
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetMonIconSpriteId_maybe
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0806DCD0 @ =gSpriteTemplate_837660C
+ movs r1, 0xFA
+ movs r2, 0xAA
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ mov r1, r9
+ adds r6, r4, r1
+ movs r1, 0x4
+ strh r1, [r6, 0x24]
+ movs r1, 0xA
+ strh r1, [r6, 0x26]
+ strh r5, [r6, 0x3C]
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ add r1, r9
+ strh r0, [r1, 0x3C]
+ mov r0, r8
+ adds r1, r7, 0
+ bl SetHeldItemIconVisibility
+ add r4, r10
+ ldr r1, [r4]
+ adds r0, r6, 0
+ bl _call_via_r1
+_0806DCB0:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _0806DC50
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DCC8: .4byte gSprites
+_0806DCCC: .4byte gPlayerParty
+_0806DCD0: .4byte gSpriteTemplate_837660C
+ thumb_func_end CreateHeldItemIcons_806DC34
+
+ thumb_func_start CreateHeldItemIcon_806DCD4
+CreateHeldItemIcon_806DCD4: @ 806DCD4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 16
+ lsrs r7, r2, 16
+ bl GetMonIconSpriteId_maybe
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0806DD2C @ =gSpriteTemplate_837660C
+ movs r1, 0xFA
+ movs r2, 0xAA
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0806DD30 @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r1
+ movs r0, 0x4
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ strh r0, [r5, 0x26]
+ strh r4, [r5, 0x3C]
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ strh r6, [r0, 0x3C]
+ cmp r7, 0
+ bne _0806DD34
+ adds r0, r5, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DD5C
+ .align 2, 0
+_0806DD2C: .4byte gSpriteTemplate_837660C
+_0806DD30: .4byte gSprites
+_0806DD34:
+ adds r0, r7, 0
+ bl ItemIsMail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806DD46
+ adds r0, r5, 0
+ movs r1, 0x1
+ b _0806DD4A
+_0806DD46:
+ adds r0, r5, 0
+ movs r1, 0
+_0806DD4A:
+ bl StartSpriteAnim
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0806DD5C:
+ ldr r2, _0806DD78 @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ adds r0, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DD78: .4byte gSprites
+ thumb_func_end CreateHeldItemIcon_806DCD4
+
+ thumb_func_start SpriteCB_HeldItemIcon_806DD7C
+SpriteCB_HeldItemIcon_806DD7C: @ 806DD7C
+ ldrh r2, [r0, 0x3C]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806DD9C @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x24]
+ ldrh r3, [r1, 0x20]
+ adds r2, r3
+ strh r2, [r0, 0x20]
+ ldrh r1, [r1, 0x22]
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_0806DD9C: .4byte gSprites
+ thumb_func_end SpriteCB_HeldItemIcon_806DD7C
+
+ thumb_func_start GetMonIconSpriteId_maybe
+GetMonIconSpriteId_maybe: @ 806DDA0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x5
+ bhi _0806DE38
+ lsls r0, 2
+ ldr r1, _0806DDB8 @ =_0806DDBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806DDB8: .4byte _0806DDBC
+ .align 2, 0
+_0806DDBC:
+ .4byte _0806DE38
+ .4byte _0806DDD4
+ .4byte _0806DDE8
+ .4byte _0806DDFC
+ .4byte _0806DE10
+ .4byte _0806DE24
+_0806DDD4:
+ ldr r0, _0806DDE4 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ b _0806DE46
+ .align 2, 0
+_0806DDE4: .4byte gTasks
+_0806DDE8:
+ ldr r0, _0806DDF8 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ b _0806DE44
+ .align 2, 0
+_0806DDF8: .4byte gTasks
+_0806DDFC:
+ ldr r0, _0806DE0C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ b _0806DE46
+ .align 2, 0
+_0806DE0C: .4byte gTasks
+_0806DE10:
+ ldr r0, _0806DE20 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ b _0806DE44
+ .align 2, 0
+_0806DE20: .4byte gTasks
+_0806DE24:
+ ldr r0, _0806DE34 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0xC]
+ b _0806DE46
+ .align 2, 0
+_0806DE34: .4byte gTasks
+_0806DE38:
+ ldr r0, _0806DE4C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+_0806DE44:
+ lsrs r0, 8
+_0806DE46:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806DE4C: .4byte gTasks
+ thumb_func_end GetMonIconSpriteId_maybe
+
+ thumb_func_start SetMonIconSpriteId_maybe
+SetMonIconSpriteId_maybe: @ 806DE50
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r0, 0x5
+ bhi _0806DF24
+ lsls r0, 2
+ ldr r1, _0806DE6C @ =_0806DE70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806DE6C: .4byte _0806DE70
+ .align 2, 0
+_0806DE70:
+ .4byte _0806DE88
+ .4byte _0806DEA0
+ .4byte _0806DEC0
+ .4byte _0806DED8
+ .4byte _0806DEF8
+ .4byte _0806DF10
+_0806DE88:
+ ldr r1, _0806DE9C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0x8]
+ b _0806DF24
+ .align 2, 0
+_0806DE9C: .4byte gTasks
+_0806DEA0:
+ ldr r0, _0806DEB8 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0x8]
+ ldr r0, _0806DEBC @ =0xffffff00
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0x8]
+ b _0806DF24
+ .align 2, 0
+_0806DEB8: .4byte gTasks
+_0806DEBC: .4byte 0xffffff00
+_0806DEC0:
+ ldr r1, _0806DED4 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xA]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0xA]
+ b _0806DF24
+ .align 2, 0
+_0806DED4: .4byte gTasks
+_0806DED8:
+ ldr r0, _0806DEF0 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0806DEF4 @ =0xffffff00
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0xA]
+ b _0806DF24
+ .align 2, 0
+_0806DEF0: .4byte gTasks
+_0806DEF4: .4byte 0xffffff00
+_0806DEF8:
+ ldr r1, _0806DF0C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xC]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0xC]
+ b _0806DF24
+ .align 2, 0
+_0806DF0C: .4byte gTasks
+_0806DF10:
+ ldr r0, _0806DF2C @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ ldr r0, _0806DF30 @ =0xffffff00
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0xC]
+_0806DF24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DF2C: .4byte gTasks
+_0806DF30: .4byte 0xffffff00
+ thumb_func_end SetMonIconSpriteId_maybe
+
+ thumb_func_start GetHeldItemIconSpriteIdByMon_maybe
+GetHeldItemIconSpriteIdByMon_maybe: @ 806DF34
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806DF5C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806DF5C: .4byte gSprites
+ thumb_func_end GetHeldItemIconSpriteIdByMon_maybe
+
+ thumb_func_start SetHeldItemIconVisibility
+SetHeldItemIconVisibility: @ 806DF60
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl GetHeldItemIconSpriteIdByMon_maybe
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ movs r0, 0x64
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _0806DFA4 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, 0
+ bne _0806DFAC
+ ldr r1, _0806DFA8 @ =gSprites
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DFF6
+ .align 2, 0
+_0806DFA4: .4byte gPlayerParty
+_0806DFA8: .4byte gSprites
+_0806DFAC:
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl ItemIsMail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806DFD8
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _0806DFD4 @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _0806DFE6
+ .align 2, 0
+_0806DFD4: .4byte gSprites
+_0806DFD8:
+ lsls r4, r6, 4
+ adds r4, r6
+ lsls r4, 2
+ ldr r0, _0806DFFC @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+_0806DFE6:
+ bl StartSpriteAnim
+ adds r4, 0x3E
+ ldrb r1, [r4]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+_0806DFF6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DFFC: .4byte gSprites
+ thumb_func_end SetHeldItemIconVisibility
+
+ thumb_func_start box_print
+box_print: @ 806E000
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E040 @ =gTileBuffer
+ ldr r2, _0806E044 @ =0x01000100
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E048 @ =gWindowConfig_81E6CAC
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E04C @ =0x06014000
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x80
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E040: .4byte gTileBuffer
+_0806E044: .4byte 0x01000100
+_0806E048: .4byte gWindowConfig_81E6CAC
+_0806E04C: .4byte 0x06014000
+ thumb_func_end box_print
+
+ thumb_func_start PrintPartyMenuMonNickname
+PrintPartyMenuMonNickname: @ 806E050
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r0, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, sp
+ bl GetMonNickname
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, sp
+ bl box_print
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PrintPartyMenuMonNickname
+
+ thumb_func_start TryPrintPartyMenuMonNickname
+TryPrintPartyMenuMonNickname: @ 806E07C
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E0BC
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E0AA
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PrintPartyMenuMonNickname
+ b _0806E0BC
+_0806E0AA:
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl PrintPartyMenuMonNickname
+_0806E0BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end TryPrintPartyMenuMonNickname
+
+ thumb_func_start PrintPartyMenuMonNicknames
+PrintPartyMenuMonNicknames: @ 806E0C4
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E0E8 @ =gPlayerParty
+_0806E0CC:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl TryPrintPartyMenuMonNickname
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E0CC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E0E8: .4byte gPlayerParty
+ thumb_func_end PrintPartyMenuMonNicknames
+
+ thumb_func_start GetMonNickname
+GetMonNickname: @ 806E0EC
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMonNickname
+
+ thumb_func_start PartyMenuPutStatusTilemap
+PartyMenuPutStatusTilemap: @ 806E104
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, _0806E15C @ =gUnknown_08376738
+ lsrs r0, 22
+ lsls r3, r1, 1
+ adds r3, r1
+ lsls r3, 3
+ adds r0, r3
+ adds r0, r4
+ ldrb r1, [r0]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r0, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 19
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0806E160 @ =0x0600f000
+ adds r4, r1, r0
+ lsls r2, 26
+ lsrs r2, 24
+ movs r3, 0
+ movs r0, 0xC6
+ lsls r0, 1
+ adds r2, r0
+ ldr r0, _0806E164 @ =0xffffb000
+ adds r5, r0, 0
+_0806E142:
+ lsls r0, r3, 1
+ adds r0, r4
+ adds r1, r2, r3
+ orrs r1, r5
+ strh r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0806E142
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E15C: .4byte gUnknown_08376738
+_0806E160: .4byte 0x0600f000
+_0806E164: .4byte 0xffffb000
+ thumb_func_end PartyMenuPutStatusTilemap
+
+ thumb_func_start PartyMenuClearLevelStatusTilemap
+PartyMenuClearLevelStatusTilemap: @ 806E168
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E17E
+ movs r3, 0x2
+ b _0806E186
+_0806E17E:
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r3, r0, 24
+_0806E186:
+ ldr r1, _0806E1C8 @ =gUnknown_08376738
+ lsls r2, r4, 2
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r1
+ ldrb r1, [r2]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r2, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 19
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0806E1CC @ =0x0600f000
+ adds r1, r0
+ movs r3, 0
+ movs r2, 0
+_0806E1B0:
+ lsls r0, r3, 1
+ adds r0, r1
+ strh r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0806E1B0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E1C8: .4byte gUnknown_08376738
+_0806E1CC: .4byte 0x0600f000
+ thumb_func_end PartyMenuClearLevelStatusTilemap
+
+ thumb_func_start PartyMenuWriteTilemap
+PartyMenuWriteTilemap: @ 806E1D0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 19
+ adds r1, r2
+ lsls r1, 1
+ ldr r2, _0806E1F0 @ =0x0600f000
+ adds r1, r2
+ movs r2, 0x86
+ lsls r2, 1
+ adds r0, r2
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0806E1F0: .4byte 0x0600f000
+ thumb_func_end PartyMenuWriteTilemap
+
+ thumb_func_start PartyMenuDoPrintLevel
+PartyMenuDoPrintLevel: @ 806E1F4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r3, _0806E278 @ =gUnknown_08376738
+ lsls r2, r4, 2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r3
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x40
+ bl PartyMenuWriteTilemap
+ ldr r6, _0806E27C @ =gStringVar1
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r0, 0x12
+ strb r0, [r6, 0x1]
+ movs r0, 0x8
+ strb r0, [r6, 0x2]
+ adds r0, r6, 0x3
+ adds r1, r5, 0
+ bl ConvertIntToDecimalString
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E280 @ =gUnknown_02039460
+ ldr r2, _0806E284 @ =0x01000020
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E288 @ =gWindowConfig_81E6CAC
+ ldr r2, _0806E28C @ =0xffffff00
+ adds r1, r5, r2
+ adds r2, r6, 0
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E290 @ =0x06014200
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E278: .4byte gUnknown_08376738
+_0806E27C: .4byte gStringVar1
+_0806E280: .4byte gUnknown_02039460
+_0806E284: .4byte 0x01000020
+_0806E288: .4byte gWindowConfig_81E6CAC
+_0806E28C: .4byte 0xffffff00
+_0806E290: .4byte 0x06014200
+ thumb_func_end PartyMenuDoPrintLevel
+
+ thumb_func_start PartyMenuPrintLevel
+PartyMenuPrintLevel: @ 806E294
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r0, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x38
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl PartyMenuDoPrintLevel
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuPrintLevel
+
+ thumb_func_start PartyMenuPrintMonLevelOrStatus
+PartyMenuPrintMonLevelOrStatus: @ 806E2C0
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E32E
+ adds r0, r5, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806E32E
+ adds r0, r5, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E2FA
+ movs r6, 0x2
+ b _0806E302
+_0806E2FA:
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0806E302:
+ cmp r4, 0
+ beq _0806E31A
+ cmp r4, 0x6
+ beq _0806E31A
+ subs r2, r4, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl PartyMenuPutStatusTilemap
+ b _0806E324
+_0806E31A:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl PartyMenuPrintLevel
+_0806E324:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl PartyMenuPutNicknameTilemap
+_0806E32E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuPrintMonLevelOrStatus
+
+ thumb_func_start PartyMenuPrintMonsLevelOrStatus
+PartyMenuPrintMonsLevelOrStatus: @ 806E334
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E358 @ =gPlayerParty
+_0806E33C:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl PartyMenuPrintMonLevelOrStatus
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E33C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E358: .4byte gPlayerParty
+ thumb_func_end PartyMenuPrintMonsLevelOrStatus
+
+ thumb_func_start PartyMenuDoPutNicknameTilemap
+PartyMenuDoPutNicknameTilemap: @ 806E35C
+ push {r4-r7,lr}
+ ldr r4, [sp, 0x14]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ adds r1, r4, 0
+ bl sub_8040D8C
+ cmp r0, 0
+ bne _0806E3BA
+ ldr r2, _0806E3A4 @ =gUnknown_08376738
+ lsls r1, r6, 2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r7, 0
+ beq _0806E3A8
+ cmp r7, 0xFE
+ beq _0806E3B2
+ b _0806E3BA
+ .align 2, 0
+_0806E3A4: .4byte gUnknown_08376738
+_0806E3A8:
+ movs r0, 0x42
+ adds r1, r3, 0
+ bl PartyMenuWriteTilemap
+ b _0806E3BA
+_0806E3B2:
+ movs r0, 0x44
+ adds r1, r3, 0
+ bl PartyMenuWriteTilemap
+_0806E3BA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuDoPutNicknameTilemap
+
+ thumb_func_start PartyMenuPutNicknameTilemap
+PartyMenuPutNicknameTilemap: @ 806E3C0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0806E41C @ =gStringVar1
+ mov r9, r0
+ adds r0, r5, 0
+ mov r1, r9
+ bl GetMonNickname
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl GetMonGender
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r2, r6, 0
+ mov r3, r8
+ bl PartyMenuDoPutNicknameTilemap
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E41C: .4byte gStringVar1
+ thumb_func_end PartyMenuPutNicknameTilemap
+
+ thumb_func_start PartyMenuDoPrintHP
+PartyMenuDoPrintHP: @ 806E420
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r1, r2, 0
+ adds r5, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r2, _0806E48C @ =gStringVar1
+ adds r0, r2, 0
+ movs r2, 0xF
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r5, 0
+ movs r2, 0x23
+ movs r3, 0x1
+ bl sub_8072C14
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E490 @ =gUnknown_02039460
+ ldr r2, _0806E494 @ =0x01000040
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E498 @ =gWindowConfig_81E6CAC
+ ldr r2, _0806E49C @ =0xffffff00
+ adds r1, r5, r2
+ ldr r2, _0806E48C @ =gStringVar1
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E4A0 @ =0x06014300
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x40
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E48C: .4byte gStringVar1
+_0806E490: .4byte gUnknown_02039460
+_0806E494: .4byte 0x01000040
+_0806E498: .4byte gWindowConfig_81E6CAC
+_0806E49C: .4byte 0xffffff00
+_0806E4A0: .4byte 0x06014300
+ thumb_func_end PartyMenuDoPrintHP
+
+ thumb_func_start PartyMenuPrintHP
+PartyMenuPrintHP: @ 806E4A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x3A
+ bl GetMonData
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuDoPrintHP
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuPrintHP
+
+ thumb_func_start PartyMenuTryPrintHP
+PartyMenuTryPrintHP: @ 806E4E8
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E534
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806E534
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E522
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PartyMenuPrintHP
+ b _0806E534
+_0806E522:
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuPrintHP
+_0806E534:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuTryPrintHP
+
+ thumb_func_start PartyMenuTryPrintMonsHP
+PartyMenuTryPrintMonsHP: @ 806E53C
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E560 @ =gPlayerParty
+_0806E544:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl PartyMenuTryPrintHP
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E544
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E560: .4byte gPlayerParty
+ thumb_func_end PartyMenuTryPrintMonsHP
+
+ thumb_func_start unref_sub_806E564
+unref_sub_806E564: @ 806E564
+ bx lr
+ thumb_func_end unref_sub_806E564
+
+ thumb_func_start unref_sub_806E568
+unref_sub_806E568: @ 806E568
+ bx lr
+ thumb_func_end unref_sub_806E568
+
+ thumb_func_start nullsub_12
+nullsub_12: @ 806E56C
+ bx lr
+ thumb_func_end nullsub_12
+
+ thumb_func_start nullsub_13
+nullsub_13: @ 806E570
+ bx lr
+ thumb_func_end nullsub_13
+
+ thumb_func_start PartyMenuDoDrawHPBar
+PartyMenuDoDrawHPBar: @ 806E574
+ push {r4-r6,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _0806E624 @ =0xffff8000
+ str r0, [sp, 0x14]
+ str r3, [sp]
+ str r2, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r3, 16
+ asrs r3, 16
+ adds r0, r2, 0
+ adds r1, r3, 0
+ bl GetHPBarLevel
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ cmp r3, 0x2
+ bls _0806E5BE
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5BE:
+ cmp r3, 0x2
+ bne _0806E5D2
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x5
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5D2:
+ cmp r4, 0x1
+ bhi _0806E5E6
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x6
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5E6:
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp, 0x10]
+ ldr r2, _0806E628 @ =gUnknown_08376858
+ lsls r1, r6, 2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldr r4, [r1]
+ add r1, sp, 0x14
+ mov r0, sp
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_80460C8
+ subs r4, 0x4
+ ldr r1, _0806E62C @ =0x00003109
+ adds r0, r1, 0
+ strh r0, [r4]
+ adds r1, 0x1
+ adds r0, r1, 0
+ strh r0, [r4, 0x2]
+ adds r1, 0x1
+ adds r0, r1, 0
+ strh r0, [r4, 0x10]
+ add sp, 0x18
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E624: .4byte 0xffff8000
+_0806E628: .4byte gUnknown_08376858
+_0806E62C: .4byte 0x00003109
+ thumb_func_end PartyMenuDoDrawHPBar
+
+ thumb_func_start PartyMenuDrawHPBar
+PartyMenuDrawHPBar: @ 806E630
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x3A
+ bl GetMonData
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuDoDrawHPBar
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuDrawHPBar
+
+ thumb_func_start PartyMenuTryDrawHPBar
+PartyMenuTryDrawHPBar: @ 806E674
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0806E6C0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0806E6C0
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E6AE
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PartyMenuDrawHPBar
+ b _0806E6C0
+_0806E6AE:
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl PartyMenuDrawHPBar
+_0806E6C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end PartyMenuTryDrawHPBar
+
+ thumb_func_start PartyMenuDrawHPBars
+PartyMenuDrawHPBars: @ 806E6C8
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E6EC @ =gPlayerParty
+_0806E6D0:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl PartyMenuTryDrawHPBar
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E6D0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E6EC: .4byte gPlayerParty
+ thumb_func_end PartyMenuDrawHPBars
+
+ thumb_func_start sub_806E6F0
+sub_806E6F0: @ 806E6F0
+ push {r4,r5,lr}
+ sub sp, 0x64
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r5, 0
+ mov r1, sp
+ movs r2, 0x64
+ bl memcpy
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E6F0
+
+ thumb_func_start sub_806E720
+sub_806E720: @ 806E720
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 21
+ adds r0, r3
+ ldrb r4, [r0]
+ lsls r4, 25
+ movs r3, 0x80
+ lsls r3, 18
+ adds r4, r3
+ lsrs r4, 24
+ ldrb r0, [r0, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1E
+ subs r3, r0
+ strb r3, [r1]
+ movs r0, 0x14
+ subs r0, r4
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E720
+
+ thumb_func_start sub_806E750
+sub_806E750: @ 806E750
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ adds r5, r0, 0
+ adds r4, r1, 0
+ mov r9, r2
+ adds r6, r3, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0x9
+ add r0, sp
+ mov r8, r0
+ adds r0, r5, 0
+ add r1, sp, 0x8
+ mov r2, r8
+ adds r3, r4, 0
+ bl sub_806E720
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r5, 3
+ adds r5, r4
+ ldrb r2, [r5, 0x1]
+ ldrb r3, [r5]
+ mov r4, r9
+ str r4, [sp]
+ ldr r4, [r5, 0x4]
+ str r4, [sp, 0x4]
+ bl sub_8089C50
+ add r0, sp, 0x8
+ ldrb r1, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ ldrb r2, [r0]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r5]
+ str r6, [sp]
+ ldrb r0, [r5, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ bl InitMenu
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E750
+
+ thumb_func_start sub_806E7D0
+sub_806E7D0: @ 806E7D0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r5, sp
+ adds r5, 0x1
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_806E720
+ mov r0, sp
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ lsls r4, 3
+ adds r4, r6
+ ldrb r2, [r4, 0x1]
+ adds r2, r0, r2
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4]
+ lsls r3, 1
+ adds r3, r1, r3
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ bl HandleDestroyMenuCursors
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E7D0
+
+ thumb_func_start PartyMenuGetPopupMenuFunc
+PartyMenuGetPopupMenuFunc: @ 806E81C
+ lsls r0, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsrs r0, 21
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r2
+ ldr r0, [r0, 0x4]
+ bx lr
+ thumb_func_end PartyMenuGetPopupMenuFunc
+
+ .section .text_8070968
+
+ thumb_func_start sub_8070968
+sub_8070968: @ 8070968
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r7, 0
+ ldr r0, _08070A10 @ =0x0201c000
+ mov r9, r0
+ ldr r1, _08070A14 @ =0xfffff264
+ add r1, r9
+ mov r10, r1
+ ldr r0, _08070A18 @ =gStringVar1
+ mov r8, r0
+_08070982:
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r1, _08070A1C @ =gUnknown_08376D1C
+ adds r1, r7, r1
+ ldrb r1, [r1]
+ bl GetMonData
+ adds r6, r7, 0x6
+ lsls r6, 1
+ add r6, r10
+ strh r0, [r6]
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ adds r4, 0xB
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __umodsi3
+ adds r5, r0, 0
+ lsls r5, 1
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0xFC
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x14
+ strb r0, [r1, 0x1]
+ movs r0, 0x6
+ strb r0, [r1, 0x2]
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ mov r0, r8
+ adds r0, 0x3
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r4, 0x6
+ lsls r4, 3
+ adds r4, 0x6
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 3
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl MenuPrint_PixelCoords
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _08070982
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070A10: .4byte 0x0201c000
+_08070A14: .4byte 0xfffff264
+_08070A18: .4byte gStringVar1
+_08070A1C: .4byte gUnknown_08376D1C
+ thumb_func_end sub_8070968
+
+ thumb_func_start sub_8070A20
+sub_8070A20: @ 8070A20
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08070A3A
+ cmp r0, 0x6
+ bne _08070A42
+_08070A3A:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl PartyMenuUpdateLevelOrStatus
+_08070A42:
+ bl IsDoubleBattle
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r7, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl PartyMenuDoPrintHP
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl PartyMenuTryDrawHPBar
+ ldr r4, _08070ABC @ =0x0201c000
+ ldrb r0, [r4, 0x4]
+ adds r1, r7, 0
+ bl GetMonIconSpriteId_maybe
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ bl SetMonIconAnim
+ bl IsDoubleBattle
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ lsls r1, r7, 1
+ adds r0, r1
+ ldr r1, _08070AC0 @ =gUnknown_083769A8
+ adds r0, r1
+ movs r1, 0x7
+ bl task_pc_turn_off
+ ldr r0, _08070AC4 @ =0xfffff261
+ adds r4, r0
+ movs r0, 0x2
+ strb r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070ABC: .4byte 0x0201c000
+_08070AC0: .4byte gUnknown_083769A8
+_08070AC4: .4byte 0xfffff261
+ thumb_func_end sub_8070A20
+
+ thumb_func_start Task_RareCandy3
+Task_RareCandy3: @ 8070AC8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl WaitFanfare
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070ADC
+ b _08070C2C
+_08070ADC:
+ ldr r0, _08070B24 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08070AF4
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08070AF4
+ b _08070C2C
+_08070AF4:
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl MenuZeroFillWindowRect
+ ldr r7, _08070B28 @ =0x0201c000
+ ldr r0, [r7]
+ movs r1, 0x1
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _08070B2C @ =0xfffff282
+ adds r0, r7, r1
+ strh r5, [r0]
+ ldr r0, _08070B30 @ =0x0000fffe
+ cmp r4, r0
+ beq _08070BDC
+ cmp r4, r0
+ bgt _08070B34
+ cmp r4, 0
+ beq _08070B40
+ b _08070BF4
+ .align 2, 0
+_08070B24: .4byte gMain
+_08070B28: .4byte 0x0201c000
+_08070B2C: .4byte 0xfffff282
+_08070B30: .4byte 0x0000fffe
+_08070B34:
+ ldr r0, _08070B3C @ =0x0000ffff
+ cmp r4, r0
+ beq _08070B7C
+ b _08070BF4
+ .align 2, 0
+_08070B3C: .4byte 0x0000ffff
+_08070B40:
+ ldr r0, [r7]
+ movs r1, 0
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08070B74
+ ldr r1, _08070B6C @ =gUnknown_03005E94
+ ldr r0, _08070B70 @ =sub_80A53F8
+ str r0, [r1]
+ ldr r0, [r7]
+ ldrb r3, [r7, 0x5]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl BeginEvolutionScene
+ adds r0, r6, 0
+ bl DestroyTask
+ b _08070C2C
+ .align 2, 0
+_08070B6C: .4byte gUnknown_03005E94
+_08070B70: .4byte sub_80A53F8
+_08070B74:
+ adds r0, r6, 0
+ bl sub_8070D90
+ b _08070C2C
+_08070B7C:
+ ldr r0, [r7]
+ ldr r1, _08070BBC @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070BC0 @ =gStringVar2
+ ldr r5, _08070BC4 @ =word_2024E82
+ ldrh r2, [r5]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08070BC8 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070BCC @ =gStringVar4
+ ldr r1, _08070BD0 @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldrh r0, [r5]
+ strh r0, [r7, 0x8]
+ ldr r1, _08070BD4 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070BD8 @ =sub_806F358
+ b _08070C2A
+ .align 2, 0
+_08070BBC: .4byte gStringVar1
+_08070BC0: .4byte gStringVar2
+_08070BC4: .4byte word_2024E82
+_08070BC8: .4byte gMoveNames
+_08070BCC: .4byte gStringVar4
+_08070BD0: .4byte gOtherText_WantsToLearn
+_08070BD4: .4byte gTasks
+_08070BD8: .4byte sub_806F358
+_08070BDC:
+ ldr r0, _08070BEC @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070BF0 @ =sub_8070C54
+ str r0, [r1]
+ b _08070C2C
+ .align 2, 0
+_08070BEC: .4byte gTasks
+_08070BF0: .4byte sub_8070C54
+_08070BF4:
+ ldr r0, _08070C34 @ =0x0201c000
+ ldr r0, [r0]
+ ldr r1, _08070C38 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070C3C @ =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _08070C40 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070C44 @ =gStringVar4
+ ldr r1, _08070C48 @ =gOtherText_LearnedMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070C4C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070C50 @ =Task_TeamMonTMMove3
+_08070C2A:
+ str r1, [r0]
+_08070C2C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070C34: .4byte 0x0201c000
+_08070C38: .4byte gStringVar1
+_08070C3C: .4byte gStringVar2
+_08070C40: .4byte gMoveNames
+_08070C44: .4byte gStringVar4
+_08070C48: .4byte gOtherText_LearnedMove
+_08070C4C: .4byte gTasks
+_08070C50: .4byte Task_TeamMonTMMove3
+ thumb_func_end Task_RareCandy3
+
+ thumb_func_start sub_8070C54
+sub_8070C54: @ 8070C54
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _08070C78 @ =0x0201c000
+ ldr r0, [r7]
+ movs r1, 0
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _08070C7C @ =0x0000fffe
+ cmp r4, r0
+ beq _08070D28
+ cmp r4, r0
+ bgt _08070C80
+ cmp r4, 0
+ beq _08070C8C
+ b _08070D30
+ .align 2, 0
+_08070C78: .4byte 0x0201c000
+_08070C7C: .4byte 0x0000fffe
+_08070C80:
+ ldr r0, _08070C88 @ =0x0000ffff
+ cmp r4, r0
+ beq _08070CC8
+ b _08070D30
+ .align 2, 0
+_08070C88: .4byte 0x0000ffff
+_08070C8C:
+ ldr r0, [r7]
+ movs r1, 0
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08070CC0
+ ldr r1, _08070CB8 @ =gUnknown_03005E94
+ ldr r0, _08070CBC @ =sub_80A53F8
+ str r0, [r1]
+ ldr r0, [r7]
+ ldrb r3, [r7, 0x5]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl BeginEvolutionScene
+ adds r0, r6, 0
+ bl DestroyTask
+ b _08070D68
+ .align 2, 0
+_08070CB8: .4byte gUnknown_03005E94
+_08070CBC: .4byte sub_80A53F8
+_08070CC0:
+ adds r0, r6, 0
+ bl sub_8070D90
+ b _08070D68
+_08070CC8:
+ ldr r0, [r7]
+ ldr r1, _08070D08 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070D0C @ =gStringVar2
+ ldr r5, _08070D10 @ =word_2024E82
+ ldrh r2, [r5]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08070D14 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070D18 @ =gStringVar4
+ ldr r1, _08070D1C @ =gOtherText_WantsToLearn
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldrh r0, [r5]
+ strh r0, [r7, 0x8]
+ ldr r1, _08070D20 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070D24 @ =sub_806F358
+ b _08070D66
+ .align 2, 0
+_08070D08: .4byte gStringVar1
+_08070D0C: .4byte gStringVar2
+_08070D10: .4byte word_2024E82
+_08070D14: .4byte gMoveNames
+_08070D18: .4byte gStringVar4
+_08070D1C: .4byte gOtherText_WantsToLearn
+_08070D20: .4byte gTasks
+_08070D24: .4byte sub_806F358
+_08070D28:
+ adds r0, r6, 0
+ bl sub_8070C54
+ b _08070D68
+_08070D30:
+ ldr r0, _08070D70 @ =0x0201c000
+ ldr r0, [r0]
+ ldr r1, _08070D74 @ =gStringVar1
+ bl GetMonNickname
+ ldr r0, _08070D78 @ =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _08070D7C @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070D80 @ =gStringVar4
+ ldr r1, _08070D84 @ =gOtherText_LearnedMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070D88 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070D8C @ =Task_TeamMonTMMove3
+_08070D66:
+ str r1, [r0]
+_08070D68:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070D70: .4byte 0x0201c000
+_08070D74: .4byte gStringVar1
+_08070D78: .4byte gStringVar2
+_08070D7C: .4byte gMoveNames
+_08070D80: .4byte gStringVar4
+_08070D84: .4byte gOtherText_LearnedMove
+_08070D88: .4byte gTasks
+_08070D8C: .4byte Task_TeamMonTMMove3
+ thumb_func_end sub_8070C54
+
+ thumb_func_start sub_8070D90
+sub_8070D90: @ 8070D90
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08070DB4 @ =gTasks
+ ldr r3, _08070DB8 @ =0x0201c000
+ ldrb r2, [r3, 0x4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r4
+ ldr r2, [r3, 0x10]
+ str r2, [r1]
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070DB4: .4byte gTasks
+_08070DB8: .4byte 0x0201c000
+ thumb_func_end sub_8070D90
+
+ thumb_func_start DoEvolutionStoneItemEffect
+DoEvolutionStoneItemEffect: @ 8070DBC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08070E18 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070E1C @ =TaskDummy
+ str r1, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E8D0
+ ldr r1, _08070E20 @ =gUnknown_03005E94
+ ldr r0, _08070E24 @ =sub_80A53F8
+ str r0, [r1]
+ ldr r0, _08070E28 @ =0x0201c000
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070E38
+ ldr r1, _08070E2C @ =gUnknown_0202E8F4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08070E30 @ =gOtherText_WontHaveAnyEffect
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _08070E34 @ =sub_806FB0C
+ movs r1, 0x5
+ bl CreateTask
+ b _08070E40
+ .align 2, 0
+_08070E18: .4byte gTasks
+_08070E1C: .4byte TaskDummy
+_08070E20: .4byte gUnknown_03005E94
+_08070E24: .4byte sub_80A53F8
+_08070E28: .4byte 0x0201c000
+_08070E2C: .4byte gUnknown_0202E8F4
+_08070E30: .4byte gOtherText_WontHaveAnyEffect
+_08070E34: .4byte sub_806FB0C
+_08070E38:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+_08070E40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end DoEvolutionStoneItemEffect
+
+ thumb_func_start GetItemEffectType
+GetItemEffectType: @ 8070E48
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _08070E5C
+ ldr r4, _08070E58 @ =gSaveBlock1 + 0x3676
+ b _08070E66
+ .align 2, 0
+_08070E58: .4byte gSaveBlock1 + 0x3676
+_08070E5C:
+ ldr r1, _08070E8C @ =gItemEffectTable
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+_08070E66:
+ ldrb r1, [r4]
+ movs r5, 0x3F
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08070E88
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08070E88
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ bne _08070E88
+ ldrb r3, [r4, 0x3]
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _08070E90
+_08070E88:
+ movs r0, 0
+ b _08070F8A
+ .align 2, 0
+_08070E8C: .4byte gItemEffectTable
+_08070E90:
+ movs r2, 0x40
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070E9E
+ movs r0, 0xA
+ b _08070F8A
+_08070E9E:
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08070EAA
+ movs r0, 0x1
+ b _08070F8A
+_08070EAA:
+ adds r2, r5, 0
+ ands r2, r3
+ cmp r2, 0
+ bne _08070EB8
+ lsrs r0, r1, 7
+ cmp r0, 0
+ beq _08070EFA
+_08070EB8:
+ cmp r2, 0x20
+ bne _08070EC0
+ movs r0, 0x4
+ b _08070F8A
+_08070EC0:
+ cmp r2, 0x10
+ bne _08070EC8
+ movs r0, 0x3
+ b _08070F8A
+_08070EC8:
+ cmp r2, 0x8
+ bne _08070ED0
+ movs r0, 0x5
+ b _08070F8A
+_08070ED0:
+ cmp r2, 0x4
+ bne _08070ED8
+ movs r0, 0x6
+ b _08070F8A
+_08070ED8:
+ cmp r2, 0x2
+ bne _08070EE0
+ movs r0, 0x7
+ b _08070F8A
+_08070EE0:
+ cmp r2, 0x1
+ bne _08070EE8
+ movs r0, 0x8
+ b _08070F8A
+_08070EE8:
+ lsrs r0, r1, 7
+ cmp r0, 0
+ beq _08070EF6
+ cmp r2, 0
+ bne _08070EF6
+ movs r0, 0x9
+ b _08070F8A
+_08070EF6:
+ movs r0, 0xB
+ b _08070F8A
+_08070EFA:
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x44
+ ands r0, r1
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _08070F0A
+ movs r0, 0x2
+ b _08070F8A
+_08070F0A:
+ movs r5, 0x2
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F18
+ movs r0, 0xC
+ b _08070F8A
+_08070F18:
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F26
+ movs r0, 0xD
+ b _08070F8A
+_08070F26:
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F34
+ movs r0, 0xE
+ b _08070F8A
+_08070F34:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F40
+ movs r0, 0xF
+ b _08070F8A
+_08070F40:
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F4C
+ movs r0, 0x10
+ b _08070F8A
+_08070F4C:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F58
+ movs r0, 0x11
+ b _08070F8A
+_08070F58:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F64
+ movs r0, 0x12
+ b _08070F8A
+_08070F64:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F70
+ movs r0, 0x13
+ b _08070F8A
+_08070F70:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F7C
+ movs r0, 0x14
+ b _08070F8A
+_08070F7C:
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ bne _08070F88
+ movs r0, 0x16
+ b _08070F8A
+_08070F88:
+ movs r0, 0x15
+_08070F8A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetItemEffectType
+
+ thumb_func_start unref_sub_8070F90
+unref_sub_8070F90: @ 8070F90
+ push {lr}
+ ldr r0, _08070FAC @ =0x00000801
+ bl FlagSet
+ movs r0, 0x80
+ lsls r0, 4
+ bl FlagSet
+ ldr r0, _08070FB0 @ =0x00000802
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070FAC: .4byte 0x00000801
+_08070FB0: .4byte 0x00000802
+ thumb_func_end unref_sub_8070F90
+
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/player_pc.s b/asm/player_pc.s
deleted file mode 100644
index da2792564..000000000
--- a/asm/player_pc.s
+++ /dev/null
@@ -1,3467 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start NewGameInitPCItems
-NewGameInitPCItems: @ 8139C18
- push {r4-r6,lr}
- movs r4, 0
- ldr r0, _08139C6C @ =gSaveBlock1 + 0x498
- movs r1, 0x32
- bl ClearItemSlots
- ldr r1, _08139C70 @ =gNewGamePCItems
- ldrh r0, [r1]
- cmp r0, 0
- beq _08139C64
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _08139C64
- adds r5, r1, 0
- adds r6, r5, 0x2
-_08139C36:
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- adds r1, r6
- ldrh r1, [r1]
- bl AddPCItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08139C64
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _08139C64
- adds r0, r1, r6
- ldrh r0, [r0]
- cmp r0, 0
- bne _08139C36
-_08139C64:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139C6C: .4byte gSaveBlock1 + 0x498
-_08139C70: .4byte gNewGamePCItems
- thumb_func_end NewGameInitPCItems
-
- thumb_func_start BedroomPC
-BedroomPC: @ 8139C74
- push {lr}
- ldr r1, _08139C9C @ =gUnknown_02039314
- ldr r0, _08139CA0 @ =gUnknown_084062B8
- str r0, [r1]
- ldr r1, _08139CA4 @ =gUnknown_030007B4
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _08139CA8 @ =TaskDummy
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139CAC @ =gOtherText_WhatWillYouDo
- ldr r2, _08139CB0 @ =InitPlayerPCMenu
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139C9C: .4byte gUnknown_02039314
-_08139CA0: .4byte gUnknown_084062B8
-_08139CA4: .4byte gUnknown_030007B4
-_08139CA8: .4byte TaskDummy
-_08139CAC: .4byte gOtherText_WhatWillYouDo
-_08139CB0: .4byte InitPlayerPCMenu
- thumb_func_end BedroomPC
-
- thumb_func_start PlayerPC
-PlayerPC: @ 8139CB4
- push {lr}
- ldr r1, _08139CDC @ =gUnknown_02039314
- ldr r0, _08139CE0 @ =gUnknown_084062BC
- str r0, [r1]
- ldr r1, _08139CE4 @ =gUnknown_030007B4
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, _08139CE8 @ =TaskDummy
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139CEC @ =gOtherText_WhatWillYouDo
- ldr r2, _08139CF0 @ =InitPlayerPCMenu
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139CDC: .4byte gUnknown_02039314
-_08139CE0: .4byte gUnknown_084062BC
-_08139CE4: .4byte gUnknown_030007B4
-_08139CE8: .4byte TaskDummy
-_08139CEC: .4byte gOtherText_WhatWillYouDo
-_08139CF0: .4byte InitPlayerPCMenu
- thumb_func_end PlayerPC
-
- thumb_func_start InitPlayerPCMenu
-InitPlayerPCMenu: @ 8139CF4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08139D50 @ =gUnknown_030007B4
- ldrb r3, [r5]
- lsls r3, 1
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- bl MenuDrawTextWindow
- ldrb r2, [r5]
- ldr r3, _08139D54 @ =gUnknown_08406298
- ldr r0, _08139D58 @ =gUnknown_02039314
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- bl PrintMenuItemsReordered
- ldrb r3, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl InitMenu
- ldr r1, _08139D5C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08139D60 @ =PlayerPCProcessMenuInput
- str r1, [r0]
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139D50: .4byte gUnknown_030007B4
-_08139D54: .4byte gUnknown_08406298
-_08139D58: .4byte gUnknown_02039314
-_08139D5C: .4byte gTasks
-_08139D60: .4byte PlayerPCProcessMenuInput
- thumb_func_end InitPlayerPCMenu
-
- thumb_func_start PlayerPCProcessMenuInput
-PlayerPCProcessMenuInput: @ 8139D64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _08139D88 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08139D8C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _08139E10
- .align 2, 0
-_08139D88: .4byte gMain
-_08139D8C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08139DA2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _08139E10
-_08139DA2:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08139DE0
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08139DD8 @ =gUnknown_08406298
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139DDC @ =gUnknown_02039314
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _08139E10
- .align 2, 0
-_08139DD8: .4byte gUnknown_08406298
-_08139DDC: .4byte gUnknown_02039314
-_08139DE0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08139E10
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r2, _08139E18 @ =gUnknown_08406298
- ldr r0, _08139E1C @ =gUnknown_030007B4
- ldrb r0, [r0]
- ldr r1, _08139E20 @ =gUnknown_02039314
- ldr r1, [r1]
- adds r0, r1
- subs r0, 0x1
- ldrb r0, [r0]
- lsls r0, 3
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_08139E10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139E18: .4byte gUnknown_08406298
-_08139E1C: .4byte gUnknown_030007B4
-_08139E20: .4byte gUnknown_02039314
- thumb_func_end PlayerPCProcessMenuInput
-
- thumb_func_start ReshowPlayerPC
-ReshowPlayerPC: @ 8139E24
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139E38 @ =gOtherText_WhatWillYouDo
- ldr r2, _08139E3C @ =InitPlayerPCMenu
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139E38: .4byte gOtherText_WhatWillYouDo
-_08139E3C: .4byte InitPlayerPCMenu
- thumb_func_end ReshowPlayerPC
-
- thumb_func_start PlayerPC_ItemStorage
-PlayerPC_ItemStorage: @ 8139E40
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl InitItemStorageMenu
- ldr r1, _08139E64 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08139E68 @ =ItemStorageMenuProcessInput
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139E64: .4byte gTasks
-_08139E68: .4byte ItemStorageMenuProcessInput
- thumb_func_end PlayerPC_ItemStorage
-
- thumb_func_start PlayerPC_Mailbox
-PlayerPC_Mailbox: @ 8139E6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl sub_813AF3C
- ldr r1, _08139E9C @ =0x0201fe00
- movs r2, 0
- strb r0, [r1, 0x3]
- lsls r0, 24
- cmp r0, 0
- bne _08139EA8
- ldr r1, _08139EA0 @ =gOtherText_NoMailHere
- ldr r2, _08139EA4 @ =ReshowPlayerPC
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08139ECA
- .align 2, 0
-_08139E9C: .4byte 0x0201fe00
-_08139EA0: .4byte gOtherText_NoMailHere
-_08139EA4: .4byte ReshowPlayerPC
-_08139EA8:
- strb r2, [r1]
- strb r2, [r1, 0x2]
- bl sub_813AF78
- adds r0, r4, 0
- bl sub_813A240
- adds r0, r4, 0
- bl sub_813B108
- ldr r0, _08139ED0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08139ED4 @ =sub_813B174
- str r0, [r1]
-_08139ECA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139ED0: .4byte gTasks
-_08139ED4: .4byte sub_813B174
- thumb_func_end PlayerPC_Mailbox
-
- thumb_func_start PlayerPC_Decoration
-PlayerPC_Decoration: @ 8139ED8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DoPlayerPCDecoration
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerPC_Decoration
-
- thumb_func_start PlayerPC_TurnOff
-PlayerPC_TurnOff: @ 8139EF8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08139F24 @ =gUnknown_030007B4
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08139F3C
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08139F28 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08139F30
- ldr r0, _08139F2C @ =gUnknown_08152850
- bl ScriptContext1_SetupScript
- b _08139F4C
- .align 2, 0
-_08139F24: .4byte gUnknown_030007B4
-_08139F28: .4byte gSaveBlock2
-_08139F2C: .4byte gUnknown_08152850
-_08139F30:
- ldr r0, _08139F38 @ =gUnknown_08152C75
- bl ScriptContext1_SetupScript
- b _08139F4C
- .align 2, 0
-_08139F38: .4byte gUnknown_08152C75
-_08139F3C:
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl EnableBothScriptContexts
-_08139F4C:
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerPC_TurnOff
-
- thumb_func_start InitItemStorageMenu
-InitItemStorageMenu: @ 8139F58
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _08139FAC @ =gUnknown_084062C0
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- str r4, [sp]
- movs r0, 0xA
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- ldr r0, _08139FB0 @ =gUnknown_08406288
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl ItemStorageMenuPrint
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139FAC: .4byte gUnknown_084062C0
-_08139FB0: .4byte gUnknown_08406288
- thumb_func_end InitItemStorageMenu
-
- thumb_func_start ItemStorageMenuPrint
-ItemStorageMenuPrint: @ 8139FB4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemStorageMenuPrint
-
- thumb_func_start ItemStorageMenuProcessInput
-ItemStorageMenuProcessInput: @ 8139FD4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _08139FF4 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08139FF8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0813A008
- .align 2, 0
-_08139FF4: .4byte gMain
-_08139FF8:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A024
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0813A008:
- bl MoveMenuCursor
- ldr r4, _0813A020 @ =gUnknown_08406288
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- bl ItemStorageMenuPrint
- b _0813A06C
- .align 2, 0
-_0813A020: .4byte gUnknown_08406288
-_0813A024:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A050
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0813A04C @ =gUnknown_084062C0
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 21
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _0813A06C
- .align 2, 0
-_0813A04C: .4byte gUnknown_084062C0
-_0813A050:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A06C
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0813A074 @ =gUnknown_084062C0
- ldr r1, [r0, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
-_0813A06C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A074: .4byte gUnknown_084062C0
- thumb_func_end ItemStorageMenuProcessInput
-
- thumb_func_start Task_ItemStorage_Deposit
-Task_ItemStorage_Deposit: @ 813A078
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813A09C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813A094
- bl sub_80A6A30
- adds r0, r4, 0
- bl DestroyTask
-_0813A094:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A09C: .4byte gPaletteFade
- thumb_func_end Task_ItemStorage_Deposit
-
- thumb_func_start ItemStorage_Deposit
-ItemStorage_Deposit: @ 813A0A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813A0C0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0813A0C4 @ =Task_ItemStorage_Deposit
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_0813A0C0: .4byte gTasks
-_0813A0C4: .4byte Task_ItemStorage_Deposit
- thumb_func_end ItemStorage_Deposit
-
- thumb_func_start sub_813A0C8
-sub_813A0C8: @ 813A0C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813A0E8
- ldr r0, _0813A0F0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813A0F4 @ =ItemStorageMenuProcessInput
- str r0, [r1]
-_0813A0E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A0F0: .4byte gTasks
-_0813A0F4: .4byte ItemStorageMenuProcessInput
- thumb_func_end sub_813A0C8
-
- thumb_func_start sub_813A0F8
-sub_813A0F8: @ 813A0F8
- push {lr}
- bl MenuDisplayMessageBox
- movs r0, 0x1
- bl InitItemStorageMenu
- ldr r0, _0813A114 @ =sub_813A0C8
- movs r1, 0
- bl CreateTask
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0813A114: .4byte sub_813A0C8
- thumb_func_end sub_813A0F8
-
- thumb_func_start ItemStorage_Withdraw
-ItemStorage_Withdraw: @ 813A118
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0813A174 @ =gTasks + 0x8
- adds r4, r6, r7
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl CountUsedPCItemSlots
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- cmp r0, 0
- beq _0813A17C
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- strh r0, [r4, 0xC]
- strh r0, [r4]
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813A240
- adds r0, r5, 0
- movs r1, 0
- bl sub_813AE6C
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A178 @ =sub_813A280
- str r1, [r0]
- b _0813A188
- .align 2, 0
-_0813A174: .4byte gTasks + 0x8
-_0813A178: .4byte sub_813A280
-_0813A17C:
- ldr r1, _0813A190 @ =gOtherText_NoItems
- ldr r2, _0813A194 @ =PlayerPC_ItemStorage
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_0813A188:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A190: .4byte gOtherText_NoItems
-_0813A194: .4byte PlayerPC_ItemStorage
- thumb_func_end ItemStorage_Withdraw
-
- thumb_func_start ItemStorage_Toss
-ItemStorage_Toss: @ 813A198
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0813A1F8 @ =gTasks + 0x8
- adds r4, r6, r7
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl CountUsedPCItemSlots
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- cmp r0, 0
- beq _0813A200
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- strh r0, [r4, 0xC]
- movs r0, 0
- strh r0, [r4]
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813A240
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_813AE6C
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A1FC @ =sub_813A280
- str r1, [r0]
- b _0813A20C
- .align 2, 0
-_0813A1F8: .4byte gTasks + 0x8
-_0813A1FC: .4byte sub_813A280
-_0813A200:
- ldr r1, _0813A214 @ =gOtherText_NoItems
- ldr r2, _0813A218 @ =PlayerPC_ItemStorage
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_0813A20C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A214: .4byte gOtherText_NoItems
-_0813A218: .4byte PlayerPC_ItemStorage
- thumb_func_end ItemStorage_Toss
-
- thumb_func_start ItemStorage_Exit
-ItemStorage_Exit: @ 813A21C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl ReshowPlayerPC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemStorage_Exit
-
- thumb_func_start sub_813A240
-sub_813A240: @ 813A240
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0813A260 @ =gTasks + 0x8
- adds r1, r0
- ldrh r2, [r1, 0x4]
- movs r3, 0x4
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- ble _0813A264
- movs r0, 0x8
- b _0813A266
- .align 2, 0
-_0813A260: .4byte gTasks + 0x8
-_0813A264:
- adds r0, r2, 0x1
-_0813A266:
- strh r0, [r1, 0x8]
- ldr r1, _0813A274 @ =0x0201fe00
- ldrb r0, [r1, 0x3]
- cmp r0, 0x7
- bls _0813A278
- movs r0, 0x8
- b _0813A27A
- .align 2, 0
-_0813A274: .4byte 0x0201fe00
-_0813A278:
- adds r0, 0x1
-_0813A27A:
- strb r0, [r1, 0x1]
- pop {r0}
- bx r0
- thumb_func_end sub_813A240
-
- thumb_func_start sub_813A280
-sub_813A280: @ 813A280
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0813A2DC @ =gTasks + 0x8
- adds r4, r0, r1
- ldr r2, _0813A2E0 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813A306
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813A2E4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813A2CC
- b _0813A460
-_0813A2CC:
- lsls r0, r1, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _0813A34C
- b _0813A358
- .align 2, 0
-_0813A2DC: .4byte gTasks + 0x8
-_0813A2E0: .4byte gMain
-_0813A2E4:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A2EE
- b _0813A460
-_0813A2EE:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813AE0C
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- b _0813A394
-_0813A306:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A3A0
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- subs r0, 0x1
- cmp r1, r0
- beq _0813A370
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813A340
- b _0813A460
-_0813A340:
- lsls r0, r1, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0813A358
-_0813A34C:
- ldr r0, _0813A354 @ =0x0000ffff
- bl sub_813AD58
- b _0813A460
- .align 2, 0
-_0813A354: .4byte 0x0000ffff
-_0813A358:
- ldr r0, _0813A36C @ =gSaveBlock1
- lsls r1, 2
- adds r1, r0
- movs r0, 0x93
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- bl sub_813AD58
- b _0813A460
- .align 2, 0
-_0813A36C: .4byte gSaveBlock1
-_0813A370:
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A460
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813AE0C
- movs r1, 0x12
- ldrsh r0, [r4, r1]
-_0813A394:
- cmp r0, 0
- beq _0813A460
- movs r0, 0
- bl MoveMenuCursor
- b _0813A460
-_0813A3A0:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0813A3F0
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A3E8
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A3DC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- strh r0, [r4, 0x12]
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldr r0, _0813A3E4 @ =0x0000fff7
- bl sub_813AD58
-_0813A3DC:
- adds r0, r5, 0
- bl sub_813ABE8
- b _0813A460
- .align 2, 0
-_0813A3E4: .4byte 0x0000fff7
-_0813A3E8:
- movs r0, 0x5
- bl PlaySE
- b _0813A420
-_0813A3F0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A430
- movs r0, 0x5
- bl PlaySE
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A420
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A44A
- adds r0, r5, 0
- bl sub_813A4B4
- b _0813A460
-_0813A420:
- adds r0, r5, 0
- movs r1, 0
- bl sub_813AA30
- adds r0, r5, 0
- bl sub_813AE0C
- b _0813A460
-_0813A430:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A460
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A452
- bl sub_8072DEC
-_0813A44A:
- adds r0, r5, 0
- bl sub_813A468
- b _0813A460
-_0813A452:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_813AA30
- adds r0, r6, 0
- bl sub_813AE0C
-_0813A460:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813A280
-
- thumb_func_start sub_813A468
-sub_813A468: @ 813A468
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl BuyMenuFreeMemory
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl MenuDisplayMessageBox
- ldr r0, _0813A4AC @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x14]
- bl InitItemStorageMenu
- ldr r0, _0813A4B0 @ =ItemStorageMenuProcessInput
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A4AC: .4byte gTasks
-_0813A4B0: .4byte ItemStorageMenuProcessInput
- thumb_func_end sub_813A468
-
- thumb_func_start sub_813A4B4
-sub_813A4B4: @ 813A4B4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0813A500 @ =gTasks + 0x8
- adds r4, r0, r1
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl sub_80F996C
- movs r0, 0x1
- bl sub_80F996C
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A518
- ldr r1, _0813A504 @ =gSaveBlock1
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, _0813A508 @ =0x0000049a
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0813A50C
- strh r0, [r4, 0x6]
- adds r0, r6, 0
- bl sub_813A6FC
- b _0813A570
- .align 2, 0
-_0813A500: .4byte gTasks + 0x8
-_0813A504: .4byte gSaveBlock1
-_0813A508: .4byte 0x0000049a
-_0813A50C:
- ldr r0, _0813A514 @ =0x0000fffe
- bl sub_813AD58
- b _0813A542
- .align 2, 0
-_0813A514: .4byte 0x0000fffe
-_0813A518:
- ldr r1, _0813A534 @ =gSaveBlock1
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, _0813A538 @ =0x0000049a
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0813A53C
- strh r0, [r4, 0x6]
- adds r0, r6, 0
- bl sub_813A794
- b _0813A570
- .align 2, 0
-_0813A534: .4byte gSaveBlock1
-_0813A538: .4byte 0x0000049a
-_0813A53C:
- ldr r0, _0813A578 @ =0x0000fffc
- bl sub_813AD58
-_0813A542:
- movs r0, 0x1
- strh r0, [r4, 0x6]
- movs r0, 0x6
- movs r1, 0x8
- movs r2, 0xD
- movs r3, 0xB
- bl MenuDrawTextWindow
- ldrh r0, [r4, 0x6]
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x9
- bl sub_80A418C
- ldr r1, _0813A57C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813A580 @ =sub_813A584
- str r1, [r0]
-_0813A570:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A578: .4byte 0x0000fffc
-_0813A57C: .4byte gTasks
-_0813A580: .4byte sub_813A584
- thumb_func_end sub_813A4B4
-
- thumb_func_start sub_813A584
-sub_813A584: @ 813A584
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r7, r0, 3
- ldr r0, _0813A5D0 @ =gTasks + 0x8
- mov r8, r0
- adds r4, r7, r0
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r6, r3, 0
- ldr r2, _0813A5D4 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813A5E4
- movs r0, 0x6
- ldrsh r2, [r4, r0]
- ldr r1, _0813A5D8 @ =gSaveBlock1
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, _0813A5DC @ =0x0000049a
- adds r0, r1
- ldrh r0, [r0]
- cmp r2, r0
- beq _0813A5E0
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- b _0813A64A
- .align 2, 0
-_0813A5D0: .4byte gTasks + 0x8
-_0813A5D4: .4byte gMain
-_0813A5D8: .4byte gSaveBlock1
-_0813A5DC: .4byte 0x0000049a
-_0813A5E0:
- movs r0, 0x1
- b _0813A64A
-_0813A5E4:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A610
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- beq _0813A5FA
- subs r0, r1, 0x1
- b _0813A64A
-_0813A5FA:
- ldr r0, _0813A608 @ =gSaveBlock1
- lsls r1, r3, 2
- adds r1, r0
- ldr r3, _0813A60C @ =0x0000049a
- adds r1, r3
- ldrh r0, [r1]
- b _0813A64A
- .align 2, 0
-_0813A608: .4byte gSaveBlock1
-_0813A60C: .4byte 0x0000049a
-_0813A610:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0813A628
- ldrh r0, [r4, 0x6]
- subs r0, 0xA
- strh r0, [r4, 0x6]
- lsls r0, 16
- cmp r0, 0
- bgt _0813A64C
- movs r0, 0x1
- b _0813A64A
-_0813A628:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0813A668
- ldrh r0, [r4, 0x6]
- adds r0, 0xA
- strh r0, [r4, 0x6]
- movs r0, 0x6
- ldrsh r2, [r4, r0]
- ldr r1, _0813A660 @ =gSaveBlock1
- lsls r0, r6, 2
- adds r0, r1
- ldr r1, _0813A664 @ =0x0000049a
- adds r0, r1
- ldrh r0, [r0]
- cmp r2, r0
- ble _0813A64C
-_0813A64A:
- strh r0, [r4, 0x6]
-_0813A64C:
- ldrh r0, [r4, 0x6]
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x9
- bl sub_80A418C
- b _0813A6E8
- .align 2, 0
-_0813A660: .4byte gSaveBlock1
-_0813A664: .4byte 0x0000049a
-_0813A668:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A69C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A694
- adds r0, r5, 0
- bl sub_813A6FC
- b _0813A6E8
-_0813A694:
- adds r0, r5, 0
- bl sub_813A794
- b _0813A6E8
-_0813A69C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A6E8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- ldr r2, _0813A6F4 @ =gSaveBlock1
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- movs r3, 0
- ldrsh r1, [r4, r3]
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813AD58
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0813A6F8 @ =sub_813A280
- str r1, [r0]
-_0813A6E8:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A6F4: .4byte gSaveBlock1
-_0813A6F8: .4byte sub_813A280
- thumb_func_end sub_813A584
-
- thumb_func_start sub_813A6FC
-sub_813A6FC: @ 813A6FC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _0813A758 @ =gTasks + 0x8
- adds r4, r6, r7
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- ldr r1, _0813A75C @ =gSaveBlock1
- lsrs r0, 22
- adds r0, r1
- movs r2, 0x93
- lsls r2, 3
- adds r5, r0, r2
- ldrh r0, [r5]
- ldrh r1, [r4, 0x6]
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813A770
- ldrh r0, [r5]
- ldr r1, _0813A760 @ =gStringVar1
- bl CopyItemName
- ldr r0, _0813A764 @ =gStringVar2
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _0813A768 @ =0x0000fffd
- bl sub_813AD58
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A76C @ =sub_813A8F0
- b _0813A782
- .align 2, 0
-_0813A758: .4byte gTasks + 0x8
-_0813A75C: .4byte gSaveBlock1
-_0813A760: .4byte gStringVar1
-_0813A764: .4byte gStringVar2
-_0813A768: .4byte 0x0000fffd
-_0813A76C: .4byte sub_813A8F0
-_0813A770:
- movs r0, 0
- strh r0, [r4, 0x6]
- ldr r0, _0813A78C @ =0x0000fffa
- bl sub_813AD58
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A790 @ =sub_813A984
-_0813A782:
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A78C: .4byte 0x0000fffa
-_0813A790: .4byte sub_813A984
- thumb_func_end sub_813A6FC
-
- thumb_func_start sub_813A794
-sub_813A794: @ 813A794
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r7, r0, 3
- ldr r0, _0813A7FC @ =gTasks + 0x8
- mov r8, r0
- adds r4, r7, r0
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- ldr r1, _0813A800 @ =gSaveBlock1
- lsrs r0, 22
- adds r0, r1
- movs r2, 0x93
- lsls r2, 3
- adds r5, r0, r2
- ldrh r0, [r5]
- bl ItemId_GetImportance
- lsls r0, 24
- cmp r0, 0
- bne _0813A814
- ldrh r0, [r5]
- ldr r1, _0813A804 @ =gStringVar1
- bl CopyItemName
- ldr r0, _0813A808 @ =gStringVar2
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _0813A80C @ =0x0000fff8
- bl sub_813AD58
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0813A810 @ =gUnknown_084062E0
- adds r0, r6, 0
- bl sub_80F914C
- b _0813A828
- .align 2, 0
-_0813A7FC: .4byte gTasks + 0x8
-_0813A800: .4byte gSaveBlock1
-_0813A804: .4byte gStringVar1
-_0813A808: .4byte gStringVar2
-_0813A80C: .4byte 0x0000fff8
-_0813A810: .4byte gUnknown_084062E0
-_0813A814:
- movs r0, 0
- strh r0, [r4, 0x6]
- ldr r0, _0813A834 @ =0x0000fff9
- bl sub_813AD58
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0813A838 @ =sub_813A8F0
- str r1, [r0]
-_0813A828:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A834: .4byte 0x0000fff9
-_0813A838: .4byte sub_813A8F0
- thumb_func_end sub_813A794
-
- thumb_func_start sub_813A83C
-sub_813A83C: @ 813A83C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r0, _0813A86C @ =0x0000fffb
- bl sub_813AD58
- ldr r1, _0813A870 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813A874 @ =sub_813A8F0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A86C: .4byte 0x0000fffb
-_0813A870: .4byte gTasks
-_0813A874: .4byte sub_813A8F0
- thumb_func_end sub_813A83C
-
- thumb_func_start sub_813A878
-sub_813A878: @ 813A878
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _0813A8E4 @ =gTasks + 0x8
- adds r5, r4, r6
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldrb r3, [r5, 0x8]
- ldrb r0, [r5]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x2
- bl InitMenu
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- ldr r2, _0813A8E8 @ =gSaveBlock1
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- movs r3, 0
- ldrsh r1, [r5, r3]
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813AD58
- subs r6, 0x8
- adds r4, r6
- ldr r0, _0813A8EC @ =sub_813A280
- str r0, [r4]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A8E4: .4byte gTasks + 0x8
-_0813A8E8: .4byte gSaveBlock1
-_0813A8EC: .4byte sub_813A280
- thumb_func_end sub_813A878
-
- thumb_func_start sub_813A8F0
-sub_813A8F0: @ 813A8F0
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0813A97C @ =gTasks + 0x8
- adds r5, r0, r1
- ldr r0, _0813A980 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813A912
- cmp r1, 0x2
- bne _0813A972
-_0813A912:
- ldrb r0, [r5, 0x2]
- ldrb r1, [r5]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x6]
- bl RemovePCItem
- ldrh r4, [r5, 0x4]
- bl CountUsedPCItemSlots
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x4]
- lsls r4, 16
- asrs r4, 16
- cmp r4, r0
- beq _0813A952
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- adds r0, r1
- cmp r4, r0
- bge _0813A952
- ldrh r1, [r5, 0x2]
- movs r2, 0x2
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _0813A952
- subs r0, r1, 0x1
- strh r0, [r5, 0x2]
-_0813A952:
- adds r0, r6, 0
- bl sub_813A240
- adds r0, r6, 0
- bl sub_813A9EC
- ldrb r3, [r5, 0x8]
- ldrb r0, [r5]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x2
- bl InitMenu
-_0813A972:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A97C: .4byte gTasks + 0x8
-_0813A980: .4byte gMain
- thumb_func_end sub_813A8F0
-
- thumb_func_start sub_813A984
-sub_813A984: @ 813A984
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r5, _0813A9DC @ =gTasks + 0x8
- adds r3, r4, r5
- ldr r0, _0813A9E0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813A9A4
- cmp r1, 0x2
- bne _0813A9D6
-_0813A9A4:
- ldr r2, _0813A9E4 @ =gSaveBlock1
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- movs r6, 0
- ldrsh r1, [r3, r6]
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813AD58
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- adds r0, r5, 0
- subs r0, 0x8
- adds r0, r4, r0
- ldr r1, _0813A9E8 @ =sub_813A280
- str r1, [r0]
-_0813A9D6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A9DC: .4byte gTasks + 0x8
-_0813A9E0: .4byte gMain
-_0813A9E4: .4byte gSaveBlock1
-_0813A9E8: .4byte sub_813A280
- thumb_func_end sub_813A984
-
- thumb_func_start sub_813A9EC
-sub_813A9EC: @ 813A9EC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- adds r0, r4, 0
- bl sub_813AE0C
- ldr r1, _0813AA28 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813AA2C @ =sub_813A280
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AA28: .4byte gTasks
-_0813AA2C: .4byte sub_813A280
- thumb_func_end sub_813A9EC
-
- thumb_func_start sub_813AA30
-sub_813AA30: @ 813AA30
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0813AA80 @ =gTasks + 0x8
- adds r4, r1, r0
- ldrb r0, [r4]
- ldrb r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- strh r0, [r4, 0x12]
- ldrb r0, [r4, 0x4]
- cmp r0, r5
- bls _0813AA88
- ldrb r0, [r4, 0x10]
- cmp r0, r5
- beq _0813AA88
- cmp r2, 0
- bne _0813AA88
- ldr r1, _0813AA84 @ =gSaveBlock1
- movs r0, 0x10
- ldrsh r2, [r4, r0]
- lsls r2, 2
- movs r0, 0x93
- lsls r0, 3
- adds r1, r0
- adds r2, r1
- ldr r3, [r2]
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- str r3, [r0]
- b _0813AAB8
- .align 2, 0
-_0813AA80: .4byte gTasks + 0x8
-_0813AA84: .4byte gSaveBlock1
-_0813AA88:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r5, r0
- bne _0813AA9C
- ldr r0, _0813AA98 @ =0x0000ffff
- bl sub_813AD58
- b _0813AAAE
- .align 2, 0
-_0813AA98: .4byte 0x0000ffff
-_0813AA9C:
- ldr r0, _0813AAC0 @ =gSaveBlock1
- lsls r1, r5, 2
- adds r1, r0
- movs r2, 0x93
- lsls r2, 3
- adds r1, r2
- ldrh r0, [r1]
- bl sub_813AD58
-_0813AAAE:
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- subs r0, r1, r0
-_0813AAB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AAC0: .4byte gSaveBlock1
- thumb_func_end sub_813AA30
-
- thumb_func_start sub_813AAC4
-sub_813AAC4: @ 813AAC4
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r6, [sp, 0x14]
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0813AAF4 @ =gStringVar1
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A4164
- cmp r6, 0
- beq _0813AAFC
- ldr r0, _0813AAF8 @ =gUnknown_0840632A
- movs r1, 0x1A
- adds r2, r7, 0
- bl MenuPrint
- b _0813AB06
- .align 2, 0
-_0813AAF4: .4byte gStringVar1
-_0813AAF8: .4byte gUnknown_0840632A
-_0813AAFC:
- ldr r0, _0813AB0C @ =gUnknown_08406327
- movs r1, 0x1A
- adds r2, r7, 0
- bl MenuPrint
-_0813AB06:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AB0C: .4byte gUnknown_08406327
- thumb_func_end sub_813AAC4
-
- thumb_func_start sub_813AB10
-sub_813AB10: @ 813AB10
- push {lr}
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _0813AB24 @ =gUnknown_08406330
- movs r1, 0x19
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_0813AB24: .4byte gUnknown_08406330
- thumb_func_end sub_813AB10
-
- thumb_func_start sub_813AB28
-sub_813AB28: @ 813AB28
- push {r4,r5,lr}
- adds r4, r2, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldrh r0, [r0]
- ldr r1, _0813AB48 @ =gStringVar1
- bl CopyItemName
- cmp r4, 0
- beq _0813AB50
- ldr r0, _0813AB4C @ =gUnknown_0840631E
- movs r1, 0x10
- adds r2, r5, 0
- bl MenuPrint
- b _0813AB5A
- .align 2, 0
-_0813AB48: .4byte gStringVar1
-_0813AB4C: .4byte gUnknown_0840631E
-_0813AB50:
- ldr r0, _0813AB60 @ =gUnknown_08406318
- movs r1, 0x10
- adds r2, r5, 0
- bl MenuPrint
-_0813AB5A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AB60: .4byte gUnknown_08406318
- thumb_func_end sub_813AB28
-
- thumb_func_start sub_813AB64
-sub_813AB64: @ 813AB64
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_813AB28
- ldrh r0, [r6, 0x2]
- str r5, [sp]
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x3
- bl sub_813AAC4
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813AB64
-
- thumb_func_start sub_813AB90
-sub_813AB90: @ 813AB90
- push {r4,lr}
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_813AB28
- adds r0, r4, 0
- bl sub_813AB10
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813AB90
-
- thumb_func_start sub_813ABAC
-sub_813ABAC: @ 813ABAC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r2, 0
- lsls r1, 24
- lsrs r5, r1, 24
- adds r1, r5, 0
- bl sub_813AB28
- ldrh r1, [r4]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bhi _0813ABD8
- ldrh r0, [r4, 0x2]
- str r6, [sp]
- movs r1, 0x1
- adds r2, r5, 0
- movs r3, 0x3
- bl sub_813AAC4
- b _0813ABDE
-_0813ABD8:
- adds r0, r5, 0
- bl sub_813AB10
-_0813ABDE:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813ABAC
-
- thumb_func_start sub_813ABE8
-sub_813ABE8: @ 813ABE8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0813AC0C @ =gTasks + 0x8
- adds r6, r1, r0
- movs r0, 0
- mov r8, r0
- ldrh r5, [r6, 0x2]
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- b _0813ACC4
- .align 2, 0
-_0813AC0C: .4byte gTasks + 0x8
-_0813AC10:
- subs r0, r5, r1
- lsls r0, 17
- lsrs r0, 16
- mov r8, r0
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r5, r0
- beq _0813AD04
- movs r7, 0
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r0, 0
- beq _0813AC34
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- cmp r5, r0
- bne _0813AC34
- movs r7, 0x1
-_0813AC34:
- ldr r0, _0813AC5C @ =gSaveBlock1
- lsls r4, r5, 2
- adds r0, r4, r0
- movs r2, 0x93
- lsls r2, 3
- adds r0, r2
- ldrh r0, [r0]
- bl GetPocketByItemId
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x4
- bhi _0813ACBA
- lsls r0, 2
- ldr r1, _0813AC60 @ =_0813AC64
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813AC5C: .4byte gSaveBlock1
-_0813AC60: .4byte _0813AC64
- .align 2, 0
-_0813AC64:
- .4byte _0813AC78
- .4byte _0813AC78
- .4byte _0813ACA8
- .4byte _0813AC78
- .4byte _0813AC90
-_0813AC78:
- ldr r0, _0813AC8C @ =gSaveBlock1 + 0x498
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r7, 0
- bl sub_813AB64
- b _0813ACBA
- .align 2, 0
-_0813AC8C: .4byte gSaveBlock1 + 0x498
-_0813AC90:
- ldr r0, _0813ACA4 @ =gSaveBlock1 + 0x498
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r7, 0
- bl sub_813AB90
- b _0813ACBA
- .align 2, 0
-_0813ACA4: .4byte gSaveBlock1 + 0x498
-_0813ACA8:
- ldr r0, _0813AD00 @ =gSaveBlock1 + 0x498
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r7, 0
- bl sub_813ABAC
-_0813ACBA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x2
- ldrsh r1, [r6, r0]
-_0813ACC4:
- movs r2, 0x8
- ldrsh r0, [r6, r2]
- adds r0, r1, r0
- cmp r5, r0
- blt _0813AC10
-_0813ACCE:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- subs r0, r5, r0
- cmp r0, 0x7
- bgt _0813ACEA
- mov r1, r8
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x10
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
-_0813ACEA:
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- cmp r0, 0
- beq _0813AD20
- movs r0, 0
- movs r1, 0xB8
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
- b _0813AD26
- .align 2, 0
-_0813AD00: .4byte gSaveBlock1 + 0x498
-_0813AD04:
- ldr r0, _0813AD1C @ =gOtherText_CancelNoTerminator
- mov r2, r8
- adds r2, 0x2
- lsls r2, 19
- lsrs r2, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x80
- movs r3, 0x68
- bl sub_8072A18
- b _0813ACCE
- .align 2, 0
-_0813AD1C: .4byte gOtherText_CancelNoTerminator
-_0813AD20:
- movs r0, 0
- bl DestroyVerticalScrollIndicator
-_0813AD26:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- movs r2, 0x8
- ldrsh r1, [r6, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r6, r2]
- cmp r0, r1
- bgt _0813AD44
- movs r0, 0x1
- movs r1, 0xB8
- movs r2, 0x98
- bl CreateVerticalScrollIndicators
- b _0813AD4A
-_0813AD44:
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0813AD4A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813ABE8
-
- thumb_func_start sub_813AD58
-sub_813AD58: @ 813AD58
- push {lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _0813AD74 @ =0xffff0009
- adds r0, r1, r2
- cmp r0, 0x8
- bhi _0813ADE8
- lsls r0, 2
- ldr r1, _0813AD78 @ =_0813AD7C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813AD74: .4byte 0xffff0009
-_0813AD78: .4byte _0813AD7C
- .align 2, 0
-_0813AD7C:
- .4byte _0813ADE0
- .4byte _0813ADD8
- .4byte _0813ADD0
- .4byte _0813ADC8
- .4byte _0813ADC0
- .4byte _0813ADB8
- .4byte _0813ADB0
- .4byte _0813ADA8
- .4byte _0813ADA0
-_0813ADA0:
- ldr r1, _0813ADA4 @ =gMenuText_GoBackToPrev
- b _0813ADF0
- .align 2, 0
-_0813ADA4: .4byte gMenuText_GoBackToPrev
-_0813ADA8:
- ldr r1, _0813ADAC @ =gOtherText_HowManyToWithdraw
- b _0813ADF0
- .align 2, 0
-_0813ADAC: .4byte gOtherText_HowManyToWithdraw
-_0813ADB0:
- ldr r1, _0813ADB4 @ =gOtherText_WithdrewThing
- b _0813ADF0
- .align 2, 0
-_0813ADB4: .4byte gOtherText_WithdrewThing
-_0813ADB8:
- ldr r1, _0813ADBC @ =gOtherText_HowManyToToss
- b _0813ADF0
- .align 2, 0
-_0813ADBC: .4byte gOtherText_HowManyToToss
-_0813ADC0:
- ldr r1, _0813ADC4 @ =gOtherText_ThrewAwayItem
- b _0813ADF0
- .align 2, 0
-_0813ADC4: .4byte gOtherText_ThrewAwayItem
-_0813ADC8:
- ldr r1, _0813ADCC @ =gOtherText_NoMoreRoom
- b _0813ADF0
- .align 2, 0
-_0813ADCC: .4byte gOtherText_NoMoreRoom
-_0813ADD0:
- ldr r1, _0813ADD4 @ =gOtherText_TooImportant
- b _0813ADF0
- .align 2, 0
-_0813ADD4: .4byte gOtherText_TooImportant
-_0813ADD8:
- ldr r1, _0813ADDC @ =gOtherText_OkayToThrowAwayPrompt
- b _0813ADF0
- .align 2, 0
-_0813ADDC: .4byte gOtherText_OkayToThrowAwayPrompt
-_0813ADE0:
- ldr r1, _0813ADE4 @ =gOtherText_SwitchWhichItem
- b _0813ADF0
- .align 2, 0
-_0813ADE4: .4byte gOtherText_SwitchWhichItem
-_0813ADE8:
- adds r0, r1, 0
- bl ItemId_GetDescription
- adds r1, r0, 0
-_0813ADF0:
- movs r0, 0x30
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- adds r0, r1, 0
- movs r1, 0x8
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_813AD58
-
- thumb_func_start sub_813AE0C
-sub_813AE0C: @ 813AE0C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _0813AE48 @ =gTasks + 0x8
- adds r4, r1, r2
- ldrh r1, [r4]
- ldrh r2, [r4, 0x2]
- adds r1, r2
- lsls r1, 16
- lsrs r5, r1, 16
- bl sub_813ABE8
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813AE62
- lsls r0, r5, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0813AE50
- ldr r0, _0813AE4C @ =0x0000ffff
- bl sub_813AD58
- b _0813AE62
- .align 2, 0
-_0813AE48: .4byte gTasks + 0x8
-_0813AE4C: .4byte 0x0000ffff
-_0813AE50:
- ldr r0, _0813AE68 @ =gSaveBlock1
- lsls r1, 2
- adds r1, r0
- movs r0, 0x93
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- bl sub_813AD58
-_0813AE62:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AE68: .4byte gSaveBlock1
- thumb_func_end sub_813AE0C
-
- thumb_func_start sub_813AE6C
-sub_813AE6C: @ 813AE6C
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- ldr r0, _0813AEF8 @ =gTasks + 0x8
- adds r5, r0
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- bl sub_813AF04
- movs r0, 0xF
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r0, 0
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x3
- bl MenuDrawTextWindow
- ldr r0, _0813AEFC @ =gSaveBlock1
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813AD58
- ldr r0, _0813AF00 @ =gUnknown_084062C0
- lsls r4, 3
- adds r4, r0
- ldr r0, [r4]
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
- adds r0, r6, 0
- bl sub_813ABE8
- ldrb r3, [r5, 0x8]
- ldrb r0, [r5]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x2
- bl InitMenu
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AEF8: .4byte gTasks + 0x8
-_0813AEFC: .4byte gSaveBlock1
-_0813AF00: .4byte gUnknown_084062C0
- thumb_func_end sub_813AE6C
-
- thumb_func_start sub_813AF04
-sub_813AF04: @ 813AF04
- push {lr}
- sub sp, 0x8
- ldr r1, _0813AF38 @ =gUnknown_08406334
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- add r0, sp, 0x4
- movs r1, 0xDF
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- adds r0, 0x2
- movs r1, 0xD1
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- movs r1, 0xD8
- movs r2, 0x2
- bl LoadPalette
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0813AF38: .4byte gUnknown_08406334
- thumb_func_end sub_813AF04
-
- thumb_func_start sub_813AF3C
-sub_813AF3C: @ 813AF3C
- push {r4,lr}
- movs r2, 0
- movs r1, 0x6
- ldr r4, _0813AF70 @ =gSaveBlock1
- ldr r3, _0813AF74 @ =0x00002b6c
-_0813AF46:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813AF5C
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_0813AF5C:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _0813AF46
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0813AF70: .4byte gSaveBlock1
-_0813AF74: .4byte 0x00002b6c
- thumb_func_end sub_813AF3C
-
- thumb_func_start sub_813AF78
-sub_813AF78: @ 813AF78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- movs r2, 0x6
-_0813AF86:
- adds r1, r2, 0x1
- lsls r0, r1, 24
- lsrs r3, r0, 24
- mov r10, r1
- cmp r3, 0xF
- bhi _0813AFF4
- ldr r0, _0813B010 @ =gSaveBlock1
- mov r12, r0
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- add r0, r12
- ldr r1, _0813B014 @ =0x00002b6c
- adds r1, r0
- mov r8, r1
- ldr r2, _0813B018 @ =0x00002b4c
- mov r9, r2
- adds r4, r0, r2
-_0813AFAA:
- mov r5, r8
- ldrh r0, [r5]
- cmp r0, 0
- bne _0813AFEA
- mov r1, sp
- adds r0, r4, 0
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- add r2, r12
- add r2, r9
- adds r1, r4, 0
- adds r0, r2, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- mov r0, sp
- ldm r0!, {r1,r5,r7}
- stm r2!, {r1,r5,r7}
- ldm r0!, {r1,r6,r7}
- stm r2!, {r1,r6,r7}
- ldm r0!, {r5-r7}
- stm r2!, {r5-r7}
-_0813AFEA:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _0813AFAA
-_0813AFF4:
- mov r1, r10
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0xE
- bls _0813AF86
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B010: .4byte gSaveBlock1
-_0813B014: .4byte 0x00002b6c
-_0813B018: .4byte 0x00002b4c
- thumb_func_end sub_813AF78
-
- thumb_func_start sub_813B01C
-sub_813B01C: @ 813B01C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- ldr r1, _0813B0B8 @ =0x0201fe00
- ldrb r4, [r1, 0x2]
- ldrb r0, [r1, 0x1]
- adds r0, r4, r0
- cmp r4, r0
- bge _0813B08A
- adds r6, r1, 0
- ldr r0, _0813B0BC @ =gStringVar1
- mov r8, r0
-_0813B036:
- ldrb r0, [r6, 0x2]
- subs r0, r4, r0
- lsls r0, 17
- lsrs r7, r0, 16
- adds r0, r7, 0x2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r3, r7, 0x3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x15
- adds r1, r5, 0
- movs r2, 0x1C
- bl MenuFillWindowRectWithBlankTile
- ldrb r0, [r6, 0x3]
- cmp r4, r0
- beq _0813B0C4
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0813B0C0 @ =gSaveBlock1 + 0x2C36
- adds r1, r0
- mov r0, r8
- bl StringCopy
- mov r0, r8
- bl sub_814A568
- mov r0, r8
- movs r1, 0x15
- adds r2, r5, 0
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r6, 0x2]
- ldrb r1, [r6, 0x1]
- adds r0, r1
- cmp r4, r0
- blt _0813B036
-_0813B08A:
- ldr r5, _0813B0B8 @ =0x0201fe00
- ldrb r0, [r5, 0x2]
- subs r0, r4, r0
- cmp r0, 0x8
- beq _0813B0A4
- adds r1, r7, 0x4
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x15
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
-_0813B0A4:
- ldrb r0, [r5, 0x2]
- cmp r0, 0
- beq _0813B0D4
- movs r0, 0
- movs r1, 0xC8
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
- b _0813B0DA
- .align 2, 0
-_0813B0B8: .4byte 0x0201fe00
-_0813B0BC: .4byte gStringVar1
-_0813B0C0: .4byte gSaveBlock1 + 0x2C36
-_0813B0C4:
- ldr r0, _0813B0D0 @ =gOtherText_CancelNoTerminator
- movs r1, 0x15
- adds r2, r5, 0
- bl MenuPrint
- b _0813B08A
- .align 2, 0
-_0813B0D0: .4byte gOtherText_CancelNoTerminator
-_0813B0D4:
- movs r0, 0
- bl DestroyVerticalScrollIndicator
-_0813B0DA:
- ldr r0, _0813B0F4 @ =0x0201fe00
- ldrb r1, [r0, 0x2]
- ldrb r2, [r0, 0x1]
- adds r1, r2
- ldrb r0, [r0, 0x3]
- cmp r1, r0
- bgt _0813B0F8
- movs r0, 0x1
- movs r1, 0xC8
- movs r2, 0x98
- bl CreateVerticalScrollIndicators
- b _0813B0FE
- .align 2, 0
-_0813B0F4: .4byte 0x0201fe00
-_0813B0F8:
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0813B0FE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813B01C
-
- thumb_func_start sub_813B108
-sub_813B108: @ 813B108
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0x3
- bl MenuDrawTextWindow
- ldr r0, _0813B16C @ =gPCText_Mailbox
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
- movs r0, 0x14
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- bl sub_813B01C
- ldr r0, _0813B170 @ =0x0201fe00
- ldrb r3, [r0, 0x1]
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x15
- movs r2, 0x2
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B16C: .4byte gPCText_Mailbox
-_0813B170: .4byte 0x0201fe00
- thumb_func_end sub_813B108
-
- thumb_func_start sub_813B174
-sub_813B174: @ 813B174
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r0, _0813B1AC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0813B274
- ldr r2, _0813B1B0 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813B1CA
- ldr r4, _0813B1B4 @ =0x0201fe00
- ldrb r0, [r4]
- cmp r0, 0
- beq _0813B1B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0813B1E6
- .align 2, 0
-_0813B1AC: .4byte gPaletteFade
-_0813B1B0: .4byte gMain
-_0813B1B4: .4byte 0x0201fe00
-_0813B1B8:
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- beq _0813B274
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0x2]
- subs r0, 0x1
- b _0813B208
-_0813B1CA:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0813B212
- ldr r4, _0813B1F0 @ =0x0201fe00
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- cmp r1, r0
- beq _0813B1F4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0813B1E6:
- bl MoveMenuCursor
- strb r0, [r4]
- b _0813B274
- .align 2, 0
-_0813B1F0: .4byte 0x0201fe00
-_0813B1F4:
- ldrb r0, [r4, 0x2]
- adds r0, r1
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0813B274
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0x2]
- adds r0, 0x1
-_0813B208:
- strb r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813B01C
- b _0813B274
-_0813B212:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813B25C
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0813B23C @ =0x0201fe00
- ldrb r1, [r0, 0x2]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x3]
- cmp r1, r0
- bne _0813B240
- adds r0, r5, 0
- bl sub_813B320
- b _0813B274
- .align 2, 0
-_0813B23C: .4byte 0x0201fe00
-_0813B240:
- bl sub_813B27C
- ldr r0, _0813B254 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813B258 @ =sub_813B294
- str r0, [r1]
- b _0813B274
- .align 2, 0
-_0813B254: .4byte gTasks
-_0813B258: .4byte sub_813B294
-_0813B25C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813B274
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_813B320
-_0813B274:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813B174
-
- thumb_func_start sub_813B27C
-sub_813B27C: @ 813B27C
- push {lr}
- bl BuyMenuFreeMemory
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- pop {r0}
- bx r0
- thumb_func_end sub_813B27C
-
- thumb_func_start sub_813B294
-sub_813B294: @ 813B294
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r4, _0813B2E8 @ =gStringVar1
- ldr r1, _0813B2EC @ =0x0201fe00
- ldrb r0, [r1]
- adds r0, 0x6
- ldrb r1, [r1, 0x2]
- adds r0, r1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0813B2F0 @ =gSaveBlock1 + 0x2B5E
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- bl sub_814A568
- ldr r4, _0813B2F4 @ =gStringVar4
- ldr r1, _0813B2F8 @ =gOtherText_WhatWillYouDoMail
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _0813B2FC @ =sub_813B348
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B2E8: .4byte gStringVar1
-_0813B2EC: .4byte 0x0201fe00
-_0813B2F0: .4byte gSaveBlock1 + 0x2B5E
-_0813B2F4: .4byte gStringVar4
-_0813B2F8: .4byte gOtherText_WhatWillYouDoMail
-_0813B2FC: .4byte sub_813B348
- thumb_func_end sub_813B294
-
- thumb_func_start sub_813B300
-sub_813B300: @ 813B300
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl ReshowPlayerPC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813B300
-
- thumb_func_start sub_813B320
-sub_813B320: @ 813B320
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_813B27C
- ldr r1, _0813B340 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813B344 @ =sub_813B300
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B340: .4byte gTasks
-_0813B344: .4byte sub_813B300
- thumb_func_end sub_813B320
-
- thumb_func_start sub_813B348
-sub_813B348: @ 813B348
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _0813B394 @ =gUnknown_084062F8
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- ldr r1, _0813B398 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813B39C @ =sub_813B3A0
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B394: .4byte gUnknown_084062F8
-_0813B398: .4byte gTasks
-_0813B39C: .4byte sub_813B3A0
- thumb_func_end sub_813B348
-
- thumb_func_start sub_813B3A0
-sub_813B3A0: @ 813B3A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _0813B3C4 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813B3C8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0813B420
- .align 2, 0
-_0813B3C4: .4byte gMain
-_0813B3C8:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813B3DE
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0813B420
-_0813B3DE:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813B40C
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0813B408 @ =gUnknown_084062F8
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 21
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _0813B420
- .align 2, 0
-_0813B408: .4byte gUnknown_084062F8
-_0813B40C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813B420
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl Mailbox_Cancel
-_0813B420:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813B3A0
-
- thumb_func_start Mailbox_Read
-Mailbox_Read: @ 813B428
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _0813B44C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813B450 @ =sub_813B454
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B44C: .4byte gTasks
-_0813B450: .4byte sub_813B454
- thumb_func_end Mailbox_Read
-
- thumb_func_start sub_813B454
-sub_813B454: @ 813B454
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813B490 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813B488
- ldr r0, _0813B494 @ =0x0201fe00
- ldrb r1, [r0]
- adds r1, 0x6
- ldrb r0, [r0, 0x2]
- adds r1, r0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813B498 @ =gSaveBlock1 + 0x2B4C
- adds r0, r1
- ldr r1, _0813B49C @ =sub_813B4F0
- movs r2, 0x1
- bl sub_80F890C
- adds r0, r4, 0
- bl DestroyTask
-_0813B488:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B490: .4byte gPaletteFade
-_0813B494: .4byte 0x0201fe00
-_0813B498: .4byte gSaveBlock1 + 0x2B4C
-_0813B49C: .4byte sub_813B4F0
- thumb_func_end sub_813B454
-
- thumb_func_start sub_813B4A0
-sub_813B4A0: @ 813B4A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813B4C0
- ldr r0, _0813B4C8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813B4CC @ =sub_813B174
- str r0, [r1]
-_0813B4C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B4C8: .4byte gTasks
-_0813B4CC: .4byte sub_813B174
- thumb_func_end sub_813B4A0
-
- thumb_func_start sub_813B4D0
-sub_813B4D0: @ 813B4D0
- push {lr}
- ldr r0, _0813B4EC @ =sub_813B4A0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl sub_813B108
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0813B4EC: .4byte sub_813B4A0
- thumb_func_end sub_813B4D0
-
- thumb_func_start sub_813B4F0
-sub_813B4F0: @ 813B4F0
- push {lr}
- ldr r0, _0813B504 @ =gUnknown_0300485C
- ldr r1, _0813B508 @ =sub_813B4D0
- str r1, [r0]
- ldr r0, _0813B50C @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0813B504: .4byte gUnknown_0300485C
-_0813B508: .4byte sub_813B4D0
-_0813B50C: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_813B4F0
-
- thumb_func_start Mailbox_MoveToBag
-Mailbox_MoveToBag: @ 813B510
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r0, _0813B540 @ =gStringVar1
- ldr r1, _0813B544 @ =gOtherText_MoveToBag
- bl StringCopy
- ldr r0, _0813B548 @ =gUnknown_0840633A
- movs r1, 0x1
- movs r2, 0x3
- bl MenuPrint
- ldr r1, _0813B54C @ =gOtherText_MessageWillBeLost
- ldr r2, _0813B550 @ =sub_813B554
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B540: .4byte gStringVar1
-_0813B544: .4byte gOtherText_MoveToBag
-_0813B548: .4byte gUnknown_0840633A
-_0813B54C: .4byte gOtherText_MessageWillBeLost
-_0813B550: .4byte sub_813B554
- thumb_func_end Mailbox_MoveToBag
-
- thumb_func_start sub_813B554
-sub_813B554: @ 813B554
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0813B574 @ =gUnknown_084062E8
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B574: .4byte gUnknown_084062E8
- thumb_func_end sub_813B554
-
- thumb_func_start sub_813B578
-sub_813B578: @ 813B578
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0813B5BC @ =0x0201fe00
- ldrb r0, [r4]
- adds r0, 0x6
- ldrb r1, [r4, 0x2]
- adds r0, r1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0813B5C0 @ =gSaveBlock1 + 0x2B4C
- adds r6, r1, r0
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldrh r0, [r6, 0x20]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- cmp r0, 0
- bne _0813B5CC
- ldr r1, _0813B5C4 @ =gOtherText_BagIsFull
- ldr r2, _0813B5C8 @ =sub_813B758
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _0813B602
- .align 2, 0
-_0813B5BC: .4byte 0x0201fe00
-_0813B5C0: .4byte gSaveBlock1 + 0x2B4C
-_0813B5C4: .4byte gOtherText_BagIsFull
-_0813B5C8: .4byte sub_813B758
-_0813B5CC:
- ldr r1, _0813B608 @ =gOtherText_MailWasReturned
- ldr r2, _0813B60C @ =sub_813B758
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- adds r0, r6, 0
- bl sub_80A2B40
- bl sub_813AF78
- ldrb r0, [r4, 0x3]
- subs r0, 0x1
- strb r0, [r4, 0x3]
- ldrb r1, [r4, 0x3]
- ldrb r0, [r4, 0x1]
- ldrb r2, [r4, 0x2]
- adds r0, r2
- cmp r1, r0
- bge _0813B5FC
- cmp r2, 0
- beq _0813B5FC
- subs r0, r2, 0x1
- strb r0, [r4, 0x2]
-_0813B5FC:
- adds r0, r5, 0
- bl sub_813A240
-_0813B602:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B608: .4byte gOtherText_MailWasReturned
-_0813B60C: .4byte sub_813B758
- thumb_func_end sub_813B578
-
- thumb_func_start sub_813B610
-sub_813B610: @ 813B610
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_813B758
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813B610
-
- thumb_func_start Mailbox_Give
-Mailbox_Give: @ 813B630
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _0813B648
- adds r0, r4, 0
- bl sub_813B718
- b _0813B65E
-_0813B648:
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, _0813B664 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813B668 @ =sub_813B66C
- str r0, [r1]
-_0813B65E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B664: .4byte gTasks
-_0813B668: .4byte sub_813B66C
- thumb_func_end Mailbox_Give
-
- thumb_func_start sub_813B66C
-sub_813B66C: @ 813B66C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813B698 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813B690
- ldr r0, _0813B69C @ =sub_808B020
- bl SetMainCallback2
- ldr r1, _0813B6A0 @ =gUnknown_02038561
- movs r0, 0x3
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0813B690:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B698: .4byte gPaletteFade
-_0813B69C: .4byte sub_808B020
-_0813B6A0: .4byte gUnknown_02038561
- thumb_func_end sub_813B66C
-
- thumb_func_start sub_813B6A4
-sub_813B6A4: @ 813B6A4
- push {r4-r6,lr}
- ldr r0, _0813B6F0 @ =sub_813B4A0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _0813B6F4 @ =0x0201fe00
- ldrb r4, [r5, 0x3]
- bl sub_813AF3C
- strb r0, [r5, 0x3]
- bl sub_813AF78
- ldrb r0, [r5, 0x3]
- cmp r4, r0
- beq _0813B6DA
- ldrb r1, [r5, 0x3]
- ldrb r0, [r5, 0x1]
- ldrb r2, [r5, 0x2]
- adds r0, r2
- cmp r1, r0
- bge _0813B6DA
- cmp r2, 0
- beq _0813B6DA
- subs r0, r2, 0x1
- strb r0, [r5, 0x2]
-_0813B6DA:
- adds r0, r6, 0
- bl sub_813A240
- adds r0, r6, 0
- bl sub_813B108
- bl pal_fill_black
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B6F0: .4byte sub_813B4A0
-_0813B6F4: .4byte 0x0201fe00
- thumb_func_end sub_813B6A4
-
- thumb_func_start sub_813B6F8
-sub_813B6F8: @ 813B6F8
- push {lr}
- ldr r0, _0813B70C @ =gUnknown_0300485C
- ldr r1, _0813B710 @ =sub_813B6A4
- str r1, [r0]
- ldr r0, _0813B714 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0813B70C: .4byte gUnknown_0300485C
-_0813B710: .4byte sub_813B6A4
-_0813B714: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_813B6F8
-
- thumb_func_start sub_813B718
-sub_813B718: @ 813B718
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813B72C @ =gOtherText_NoPokemon
- ldr r2, _0813B730 @ =sub_813B758
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_0813B72C: .4byte gOtherText_NoPokemon
-_0813B730: .4byte sub_813B758
- thumb_func_end sub_813B718
-
- thumb_func_start Mailbox_Cancel
-Mailbox_Cancel: @ 813B734
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_813B758
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end Mailbox_Cancel
-
- thumb_func_start sub_813B758
-sub_813B758: @ 813B758
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_813B108
- ldr r1, _0813B77C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813B780 @ =sub_813B174
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B77C: .4byte gTasks
-_0813B780: .4byte sub_813B174
- thumb_func_end sub_813B758
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokeblock.s b/asm/pokeblock.s
new file mode 100644
index 000000000..5b6522144
--- /dev/null
+++ b/asm/pokeblock.s
@@ -0,0 +1,2675 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_810B674
+sub_810B674: @ 810B674
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810B674
+
+ thumb_func_start sub_810B68C
+sub_810B68C: @ 810B68C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r1, _0810B6B0 @ =gBGTilemapBuffers + 0x1000
+ ldr r2, _0810B6B4 @ =0x06007800
+ ldr r0, _0810B6B8 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0810B6BC @ =0x80000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810B6B0: .4byte gBGTilemapBuffers + 0x1000
+_0810B6B4: .4byte 0x06007800
+_0810B6B8: .4byte 0x040000d4
+_0810B6BC: .4byte 0x80000400
+ thumb_func_end sub_810B68C
+
+ thumb_func_start sub_810B6C0
+sub_810B6C0: @ 810B6C0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0810B6DC @ =gMain
+ ldr r1, _0810B6E0 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x12
+ bls _0810B6D2
+ b _0810B960
+_0810B6D2:
+ lsls r0, 2
+ ldr r1, _0810B6E4 @ =_0810B6E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810B6DC: .4byte gMain
+_0810B6E0: .4byte 0x0000043c
+_0810B6E4: .4byte _0810B6E8
+ .align 2, 0
+_0810B6E8:
+ .4byte _0810B734
+ .4byte _0810B764
+ .4byte _0810B76A
+ .4byte _0810B78C
+ .4byte _0810B792
+ .4byte _0810B7B4
+ .4byte _0810B7C0
+ .4byte _0810B7DC
+ .4byte _0810B7E8
+ .4byte _0810B804
+ .4byte _0810B810
+ .4byte _0810B830
+ .4byte _0810B84C
+ .4byte _0810B86A
+ .4byte _0810B894
+ .4byte _0810B89E
+ .4byte _0810B8C4
+ .4byte _0810B914
+ .4byte _0810B934
+_0810B734:
+ bl sub_80F9438
+ bl sub_80F9368
+ ldr r1, _0810B754 @ =REG_BG2CNT
+ ldr r2, _0810B758 @ =0x00000f0a
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x44
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0810B75C @ =gMain
+ ldr r0, _0810B760 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B754: .4byte REG_BG2CNT
+_0810B758: .4byte 0x00000f0a
+_0810B75C: .4byte gMain
+_0810B760: .4byte 0x0000043c
+_0810B764:
+ bl remove_some_task
+ b _0810B91C
+_0810B76A:
+ bl ResetPaletteFade
+ ldr r2, _0810B780 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _0810B784 @ =gMain
+ ldr r0, _0810B788 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B780: .4byte gPaletteFade
+_0810B784: .4byte gMain
+_0810B788: .4byte 0x0000043c
+_0810B78C:
+ bl ResetSpriteData
+ b _0810B91C
+_0810B792:
+ ldr r0, _0810B7A8 @ =gUnknown_02039244
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _0810B79E
+ bl ResetTasks
+_0810B79E:
+ ldr r1, _0810B7AC @ =gMain
+ ldr r0, _0810B7B0 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B7A8: .4byte gUnknown_02039244
+_0810B7AC: .4byte gMain
+_0810B7B0: .4byte 0x0000043c
+_0810B7B4:
+ ldr r0, _0810B7BC @ =gWindowConfig_81E6E34
+ bl SetUpWindowConfig
+ b _0810B91C
+ .align 2, 0
+_0810B7BC: .4byte gWindowConfig_81E6E34
+_0810B7C0:
+ ldr r0, _0810B7D0 @ =gWindowConfig_81E6E50
+ bl SetUpWindowConfig
+ ldr r1, _0810B7D4 @ =gMain
+ ldr r0, _0810B7D8 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B7D0: .4byte gWindowConfig_81E6E50
+_0810B7D4: .4byte gMain
+_0810B7D8: .4byte 0x0000043c
+_0810B7DC:
+ ldr r0, _0810B7E4 @ =gWindowConfig_81E6E34
+ bl MultistepInitMenuWindowBegin
+ b _0810B91C
+ .align 2, 0
+_0810B7E4: .4byte gWindowConfig_81E6E34
+_0810B7E8:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0810B7F2
+ b _0810B960
+_0810B7F2:
+ ldr r1, _0810B7FC @ =gMain
+ ldr r0, _0810B800 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B7FC: .4byte gMain
+_0810B800: .4byte 0x0000043c
+_0810B804:
+ ldr r0, _0810B80C @ =gWindowConfig_81E6E50
+ bl MultistepInitMenuWindowBegin
+ b _0810B91C
+ .align 2, 0
+_0810B80C: .4byte gWindowConfig_81E6E50
+_0810B810:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0810B81A
+ b _0810B960
+_0810B81A:
+ ldr r0, _0810B828 @ =0x02000000
+ ldr r1, _0810B82C @ =0x0001ffff
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ b _0810B91C
+ .align 2, 0
+_0810B828: .4byte 0x02000000
+_0810B82C: .4byte 0x0001ffff
+_0810B830:
+ bl sub_810B998
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810B83C
+ b _0810B960
+_0810B83C:
+ ldr r1, _0810B844 @ =gMain
+ ldr r0, _0810B848 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B844: .4byte gMain
+_0810B848: .4byte 0x0000043c
+_0810B84C:
+ bl sub_80F944C
+ bl LoadScrollIndicatorPalette
+ movs r0, 0
+ movs r1, 0xB0
+ movs r2, 0x8
+ bl CreateVerticalScrollIndicators
+ movs r0, 0x1
+ movs r1, 0xB0
+ movs r2, 0x98
+ bl CreateVerticalScrollIndicators
+ b _0810B91C
+_0810B86A:
+ movs r0, 0x38
+ movs r1, 0x40
+ movs r2, 0
+ bl sub_810BA50
+ ldr r1, _0810B884 @ =0x02000000
+ ldr r2, _0810B888 @ =0x0001fffe
+ adds r1, r2
+ strb r0, [r1]
+ ldr r1, _0810B88C @ =gMain
+ ldr r0, _0810B890 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B884: .4byte 0x02000000
+_0810B888: .4byte 0x0001fffe
+_0810B88C: .4byte gMain
+_0810B890: .4byte 0x0000043c
+_0810B894:
+ bl sub_810BC98
+ bl sub_810BD08
+ b _0810B91C
+_0810B89E:
+ bl sub_810BB0C
+ bl sub_810BB30
+ ldr r0, _0810B8B8 @ =gUnknown_02039248
+ ldrb r0, [r0, 0x1]
+ bl sub_810BC84
+ ldr r1, _0810B8BC @ =gMain
+ ldr r0, _0810B8C0 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B8B8: .4byte gUnknown_02039248
+_0810B8BC: .4byte gMain
+_0810B8C0: .4byte 0x0000043c
+_0810B8C4:
+ ldr r3, _0810B8FC @ =0x04000208
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _0810B900 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _0810B904 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0810B908 @ =sub_810B68C
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xBA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0810B90C @ =gMain
+ ldr r0, _0810B910 @ =0x0000043c
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B8FC: .4byte 0x04000208
+_0810B900: .4byte 0x04000200
+_0810B904: .4byte REG_DISPSTAT
+_0810B908: .4byte sub_810B68C
+_0810B90C: .4byte gMain
+_0810B910: .4byte 0x0000043c
+_0810B914:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0810B960
+_0810B91C:
+ ldr r1, _0810B92C @ =gMain
+ ldr r2, _0810B930 @ =0x0000043c
+ adds r1, r2
+_0810B922:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0810B960
+ .align 2, 0
+_0810B92C: .4byte gMain
+_0810B930: .4byte 0x0000043c
+_0810B934:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _0810B958 @ =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0810B95C @ =sub_810B674
+ bl SetMainCallback2
+ movs r0, 0x1
+ b _0810B962
+ .align 2, 0
+_0810B958: .4byte gPaletteFade
+_0810B95C: .4byte sub_810B674
+_0810B960:
+ movs r0, 0
+_0810B962:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810B6C0
+
+ thumb_func_start sub_810B96C
+sub_810B96C: @ 810B96C
+ push {lr}
+_0810B96E:
+ bl sub_810B6C0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0810B988
+ ldr r0, _0810B984 @ =sub_810BF7C
+ movs r1, 0
+ bl CreateTask
+ b _0810B994
+ .align 2, 0
+_0810B984: .4byte sub_810BF7C
+_0810B988:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0810B96E
+_0810B994:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810B96C
+
+ thumb_func_start sub_810B998
+sub_810B998: @ 810B998
+ push {lr}
+ ldr r0, _0810B9B0 @ =0x02000000
+ ldr r1, _0810B9B4 @ =0x0001ffff
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _0810BA48
+ lsls r0, 2
+ ldr r1, _0810B9B8 @ =_0810B9BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810B9B0: .4byte 0x02000000
+_0810B9B4: .4byte 0x0001ffff
+_0810B9B8: .4byte _0810B9BC
+ .align 2, 0
+_0810B9BC:
+ .4byte _0810B9D0
+ .4byte _0810B9E4
+ .4byte _0810B9F8
+ .4byte _0810BA08
+ .4byte _0810BA28
+_0810B9D0:
+ ldr r0, _0810B9DC @ =gMenuPokeblock_Gfx
+ ldr r1, _0810B9E0 @ =0x06008000
+ bl LZDecompressVram
+ b _0810BA0E
+ .align 2, 0
+_0810B9DC: .4byte gMenuPokeblock_Gfx
+_0810B9E0: .4byte 0x06008000
+_0810B9E4:
+ ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap
+ ldr r1, _0810B9F4 @ =gBGTilemapBuffers + 0x1000
+ bl sub_800D238
+ b _0810BA0E
+ .align 2, 0
+_0810B9F0: .4byte gMenuPokeblock_Tilemap
+_0810B9F4: .4byte gBGTilemapBuffers + 0x1000
+_0810B9F8:
+ ldr r0, _0810BA04 @ =gMenuPokeblock_Pal
+ movs r1, 0
+ movs r2, 0xC0
+ bl LoadCompressedPalette
+ b _0810BA0E
+ .align 2, 0
+_0810BA04: .4byte gMenuPokeblock_Pal
+_0810BA08:
+ ldr r0, _0810BA1C @ =gUnknown_083F7F74
+ bl LoadCompressedObjectPic
+_0810BA0E:
+ ldr r1, _0810BA20 @ =0x02000000
+ ldr r0, _0810BA24 @ =0x0001ffff
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0810BA48
+ .align 2, 0
+_0810BA1C: .4byte gUnknown_083F7F74
+_0810BA20: .4byte 0x02000000
+_0810BA24: .4byte 0x0001ffff
+_0810BA28:
+ ldr r0, _0810BA3C @ =gUnknown_083F7F7C
+ bl LoadCompressedObjectPalette
+ ldr r0, _0810BA40 @ =0x02000000
+ ldr r1, _0810BA44 @ =0x0001ffff
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0810BA4A
+ .align 2, 0
+_0810BA3C: .4byte gUnknown_083F7F7C
+_0810BA40: .4byte 0x02000000
+_0810BA44: .4byte 0x0001ffff
+_0810BA48:
+ movs r0, 0
+_0810BA4A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810B998
+
+ thumb_func_start sub_810BA50
+sub_810BA50: @ 810BA50
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _0810BA78 @ =gSpriteTemplate_83F7F84
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810BA78: .4byte gSpriteTemplate_83F7F84
+ thumb_func_end sub_810BA50
+
+ thumb_func_start sub_810BA7C
+sub_810BA7C: @ 810BA7C
+ push {lr}
+ ldr r1, _0810BA98 @ =gUnknown_02039244
+ strb r0, [r1]
+ ldrb r2, [r1]
+ cmp r2, 0x2
+ beq _0810BAA8
+ cmp r2, 0x3
+ beq _0810BAC0
+ ldr r1, _0810BA9C @ =gUnknown_03000758
+ ldr r0, _0810BAA0 @ =gUnknown_083F7F1C
+ str r0, [r1]
+ ldr r1, _0810BAA4 @ =gUnknown_0203924C
+ movs r0, 0x3
+ b _0810BACA
+ .align 2, 0
+_0810BA98: .4byte gUnknown_02039244
+_0810BA9C: .4byte gUnknown_03000758
+_0810BAA0: .4byte gUnknown_083F7F1C
+_0810BAA4: .4byte gUnknown_0203924C
+_0810BAA8:
+ ldr r0, _0810BAB4 @ =gUnknown_03000758
+ ldr r1, _0810BAB8 @ =gUnknown_083F7F1F
+ str r1, [r0]
+ ldr r0, _0810BABC @ =gUnknown_0203924C
+ strb r2, [r0]
+ b _0810BACC
+ .align 2, 0
+_0810BAB4: .4byte gUnknown_03000758
+_0810BAB8: .4byte gUnknown_083F7F1F
+_0810BABC: .4byte gUnknown_0203924C
+_0810BAC0:
+ ldr r1, _0810BAD0 @ =gUnknown_03000758
+ ldr r0, _0810BAD4 @ =gUnknown_083F7F21
+ str r0, [r1]
+ ldr r1, _0810BAD8 @ =gUnknown_0203924C
+ movs r0, 0x2
+_0810BACA:
+ strb r0, [r1]
+_0810BACC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BAD0: .4byte gUnknown_03000758
+_0810BAD4: .4byte gUnknown_083F7F21
+_0810BAD8: .4byte gUnknown_0203924C
+ thumb_func_end sub_810BA7C
+
+ thumb_func_start sub_810BADC
+sub_810BADC: @ 810BADC
+ push {lr}
+ movs r0, 0x2
+ bl sub_810BA7C
+ ldr r0, _0810BAF0 @ =sub_810B96C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BAF0: .4byte sub_810B96C
+ thumb_func_end sub_810BADC
+
+ thumb_func_start sub_810BAF4
+sub_810BAF4: @ 810BAF4
+ push {lr}
+ movs r0, 0x3
+ bl sub_810BA7C
+ ldr r0, _0810BB08 @ =sub_810B96C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BB08: .4byte sub_810B96C
+ thumb_func_end sub_810BAF4
+
+ thumb_func_start sub_810BB0C
+sub_810BB0C: @ 810BB0C
+ push {lr}
+ ldr r0, _0810BB28 @ =gWindowConfig_81E6E34
+ bl BasicInitMenuWindow
+ ldr r0, _0810BB2C @ =0x00000111
+ bl ItemId_GetItem
+ movs r1, 0x2
+ movs r2, 0x1
+ movs r3, 0x48
+ bl sub_8072BD8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BB28: .4byte gWindowConfig_81E6E34
+_0810BB2C: .4byte 0x00000111
+ thumb_func_end sub_810BB0C
+
+ thumb_func_start sub_810BB30
+sub_810BB30: @ 810BB30
+ push {lr}
+ ldr r0, _0810BB70 @ =gWindowConfig_81E6E34
+ bl BasicInitMenuWindow
+ ldr r0, _0810BB74 @ =gContestStatsText_Spicy
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ ldr r0, _0810BB78 @ =gContestStatsText_Dry
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r0, _0810BB7C @ =gContestStatsText_Sweet
+ movs r1, 0x2
+ movs r2, 0x11
+ bl MenuPrint
+ ldr r0, _0810BB80 @ =gContestStatsText_Bitter
+ movs r1, 0x8
+ movs r2, 0xD
+ bl MenuPrint
+ ldr r0, _0810BB84 @ =gContestStatsText_Sour
+ movs r1, 0x8
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BB70: .4byte gWindowConfig_81E6E34
+_0810BB74: .4byte gContestStatsText_Spicy
+_0810BB78: .4byte gContestStatsText_Dry
+_0810BB7C: .4byte gContestStatsText_Sweet
+_0810BB80: .4byte gContestStatsText_Bitter
+_0810BB84: .4byte gContestStatsText_Sour
+ thumb_func_end sub_810BB30
+
+ thumb_func_start sub_810BB88
+sub_810BB88: @ 810BB88
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0810BBF4 @ =gWindowConfig_81E6E34
+ bl BasicInitMenuWindow
+ mov r6, r8
+ adds r0, r6, 0
+ adds r0, 0x8
+ cmp r6, r0
+ bgt _0810BC6C
+ ldr r0, _0810BBF8 @ =gStringVar1
+ mov r9, r0
+ ldr r1, _0810BBFC @ =gSaveBlock1
+ mov r10, r1
+_0810BBB0:
+ mov r1, r8
+ subs r0, r6, r1
+ lsls r0, 25
+ lsrs r7, r0, 24
+ ldr r0, _0810BC00 @ =gUnknown_02039248
+ ldrb r0, [r0, 0x2]
+ cmp r6, r0
+ bne _0810BC08
+ mov r0, r9
+ ldr r1, _0810BC04 @ =gContestStatsText_StowCase
+ movs r2, 0x78
+ movs r3, 0
+ bl sub_8072C74
+ movs r2, 0x1
+ orrs r2, r7
+ mov r0, r9
+ movs r1, 0xF
+ bl MenuPrint
+ mov r0, r8
+ adds r0, 0x8
+ cmp r6, r0
+ beq _0810BC6C
+ adds r1, r7, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0xF
+ movs r2, 0x1D
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ b _0810BC6C
+ .align 2, 0
+_0810BBF4: .4byte gWindowConfig_81E6E34
+_0810BBF8: .4byte gStringVar1
+_0810BBFC: .4byte gSaveBlock1
+_0810BC00: .4byte gUnknown_02039248
+_0810BC04: .4byte gContestStatsText_StowCase
+_0810BC08:
+ lsls r5, r6, 3
+ mov r1, r10
+ adds r0, r5, r1
+ movs r1, 0xFF
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _0810BC7C @ =gPokeblockNames
+ adds r0, r1
+ ldr r1, [r0]
+ mov r0, r9
+ movs r2, 0x5E
+ movs r3, 0
+ bl sub_8072C74
+ adds r4, r0, 0
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x14
+ strb r0, [r4, 0x1]
+ movs r0, 0x6
+ strb r0, [r4, 0x2]
+ adds r4, 0x3
+ ldr r0, _0810BC80 @ =gSaveBlock1 + 0x7F8
+ adds r5, r0
+ adds r0, r5, 0
+ bl sub_810C9B0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r2, 0x1
+ orrs r2, r7
+ mov r0, r9
+ movs r1, 0xF
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r8
+ adds r0, 0x8
+ cmp r6, r0
+ ble _0810BBB0
+_0810BC6C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BC7C: .4byte gPokeblockNames
+_0810BC80: .4byte gSaveBlock1 + 0x7F8
+ thumb_func_end sub_810BB88
+
+ thumb_func_start sub_810BC84
+sub_810BC84: @ 810BC84
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_810BB88
+ movs r0, 0
+ bl sub_810BDAC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810BC84
+
+ thumb_func_start sub_810BC98
+sub_810BC98: @ 810BC98
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r2, 0
+ ldr r0, _0810BD00 @ =gSaveBlock1
+ mov r9, r0
+_0810BCA6:
+ adds r1, r2, 0x1
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ mov r8, r1
+ cmp r5, 0x27
+ bhi _0810BCE8
+ lsls r1, r2, 3
+ mov r2, r9
+ adds r0, r1, r2
+ movs r2, 0xFF
+ lsls r2, 3
+ adds r7, r0, r2
+ ldr r0, _0810BD04 @ =gSaveBlock1 + 0x7F8
+ mov r12, r0
+ adds r6, r1, r0
+_0810BCC4:
+ ldrb r0, [r7]
+ cmp r0, 0
+ bne _0810BCDE
+ ldr r3, [r6]
+ ldr r4, [r6, 0x4]
+ lsls r2, r5, 3
+ add r2, r12
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ str r0, [r6]
+ str r1, [r6, 0x4]
+ str r3, [r2]
+ str r4, [r2, 0x4]
+_0810BCDE:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x27
+ bls _0810BCC4
+_0810BCE8:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x26
+ bls _0810BCA6
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BD00: .4byte gSaveBlock1
+_0810BD04: .4byte gSaveBlock1 + 0x7F8
+ thumb_func_end sub_810BC98
+
+ thumb_func_start sub_810BD08
+sub_810BD08: @ 810BD08
+ push {r4,r5,lr}
+ ldr r1, _0810BD5C @ =gUnknown_02039248
+ movs r0, 0
+ strb r0, [r1, 0x2]
+ movs r2, 0
+ ldr r5, _0810BD60 @ =gSaveBlock1
+ movs r4, 0xFF
+ lsls r4, 3
+ adds r3, r1, 0
+_0810BD1A:
+ lsls r0, r2, 3
+ adds r0, r5
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810BD2C
+ ldrb r0, [r3, 0x2]
+ adds r0, 0x1
+ strb r0, [r3, 0x2]
+_0810BD2C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x27
+ bls _0810BD1A
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x7
+ bls _0810BD3E
+ movs r0, 0x8
+_0810BD3E:
+ strb r0, [r1, 0x3]
+ ldrb r2, [r1, 0x1]
+ adds r0, r2, 0
+ adds r0, 0x8
+ ldrb r3, [r1, 0x2]
+ cmp r0, r3
+ ble _0810BD54
+ cmp r2, 0
+ beq _0810BD54
+ subs r0, r2, 0x1
+ strb r0, [r1, 0x1]
+_0810BD54:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BD5C: .4byte gUnknown_02039248
+_0810BD60: .4byte gSaveBlock1
+ thumb_func_end sub_810BD08
+
+ thumb_func_start sub_810BD64
+sub_810BD64: @ 810BD64
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r5, _0810BDA4 @ =gUnknown_02039248
+ ldr r4, _0810BDA8 @ =gBGTilemapBuffers + 0x1000
+_0810BD70:
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, 0x1
+ lsls r0, 5
+ adds r1, r2, 0
+ adds r1, 0xF
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r4
+ strh r3, [r0]
+ ldrb r0, [r5]
+ lsls r0, 6
+ adds r0, 0x40
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xD
+ bls _0810BD70
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BDA4: .4byte gUnknown_02039248
+_0810BDA8: .4byte gBGTilemapBuffers + 0x1000
+ thumb_func_end sub_810BD64
+
+ thumb_func_start sub_810BDAC
+sub_810BDAC: @ 810BDAC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810BDCC
+ ldr r0, _0810BDC4 @ =0x00001005
+ ldr r1, _0810BDC8 @ =0x00001014
+ bl sub_810BD64
+ b _0810BDD4
+ .align 2, 0
+_0810BDC4: .4byte 0x00001005
+_0810BDC8: .4byte 0x00001014
+_0810BDCC:
+ ldr r0, _0810BDE8 @ =0x00002005
+ ldr r1, _0810BDEC @ =0x00002014
+ bl sub_810BD64
+_0810BDD4:
+ ldr r0, _0810BDF0 @ =gUnknown_02039248
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0810BDF4
+ movs r0, 0
+ movs r1, 0
+ bl sub_80F979C
+ b _0810BDFC
+ .align 2, 0
+_0810BDE8: .4byte 0x00002005
+_0810BDEC: .4byte 0x00002014
+_0810BDF0: .4byte gUnknown_02039248
+_0810BDF4:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80F979C
+_0810BDFC:
+ ldr r2, _0810BE1C @ =gUnknown_02039248
+ ldrb r0, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bls _0810BE20
+ ldrb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x3]
+ adds r0, r1
+ ldrb r2, [r2, 0x2]
+ cmp r0, r2
+ beq _0810BE20
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_80F979C
+ b _0810BE28
+ .align 2, 0
+_0810BE1C: .4byte gUnknown_02039248
+_0810BE20:
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+_0810BE28:
+ movs r6, 0
+ ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000
+ movs r0, 0xF
+ mov r8, r0
+_0810BE30:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 18
+ ldr r1, _0810BE98 @ =0x000001a1
+ adds r4, r1
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r5, r4, r1
+ ldr r1, _0810BE9C @ =gUnknown_02039248
+ ldrb r2, [r1]
+ ldrb r0, [r1, 0x1]
+ adds r0, r2, r0
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _0810BEB8
+ lsls r0, 3
+ ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8
+ adds r0, r1
+ adds r4, r6, 0x1
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl sub_810CA9C
+ lsls r0, 16
+ cmp r0, 0
+ ble _0810BEA4
+ lsls r1, r5, 1
+ adds r1, r7
+ lsls r2, r6, 12
+ adds r0, r2, 0
+ adds r0, 0x17
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r7
+ adds r2, 0x18
+ strh r2, [r0]
+ b _0810BECC
+ .align 2, 0
+_0810BE94: .4byte gBGTilemapBuffers + 0x1000
+_0810BE98: .4byte 0x000001a1
+_0810BE9C: .4byte gUnknown_02039248
+_0810BEA0: .4byte gSaveBlock1 + 0x7F8
+_0810BEA4:
+ lsls r0, r5, 1
+ adds r0, r7
+ mov r1, r8
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r7
+ strh r1, [r0]
+ b _0810BECC
+_0810BEB8:
+ lsls r0, r5, 1
+ adds r0, r7
+ mov r1, r8
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r7
+ strh r1, [r0]
+ adds r4, r6, 0x1
+_0810BECC:
+ lsls r0, r4, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x4
+ bls _0810BE30
+ ldr r0, _0810BF10 @ =gWindowConfig_81E6E34
+ bl BasicInitMenuWindow
+ ldr r0, _0810BF14 @ =gUnknown_02039248
+ ldrb r2, [r0]
+ ldrb r1, [r0, 0x1]
+ adds r2, r1
+ ldrb r0, [r0, 0x2]
+ cmp r2, r0
+ beq _0810BF20
+ ldr r4, _0810BF18 @ =gStringVar1
+ lsls r0, r2, 3
+ ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8
+ adds r0, r1
+ bl sub_810C9E8
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x10
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0x11
+ bl MenuPrint
+ b _0810BF2C
+ .align 2, 0
+_0810BF10: .4byte gWindowConfig_81E6E34
+_0810BF14: .4byte gUnknown_02039248
+_0810BF18: .4byte gStringVar1
+_0810BF1C: .4byte gSaveBlock1 + 0x7F8
+_0810BF20:
+ movs r0, 0xB
+ movs r1, 0x11
+ movs r2, 0xC
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0810BF2C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810BDAC
+
+ thumb_func_start sub_810BF38
+sub_810BF38: @ 810BF38
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0810BF6C @ =gSprites
+ ldr r0, _0810BF70 @ =0x02000000
+ ldr r1, _0810BF74 @ =0x0001fffe
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0810BF78 @ =sub_810C8D4
+ str r1, [r0]
+ adds r0, r4, 0
+ bl sub_810BDAC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BF6C: .4byte gSprites
+_0810BF70: .4byte 0x02000000
+_0810BF74: .4byte 0x0001fffe
+_0810BF78: .4byte sub_810C8D4
+ thumb_func_end sub_810BF38
+
+ thumb_func_start sub_810BF7C
+sub_810BF7C: @ 810BF7C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r0, _0810BFB8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810BF94
+ b _0810C0B8
+_0810BF94:
+ ldr r2, _0810BFBC @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810BFCE
+ ldr r4, _0810BFC0 @ =gUnknown_02039248
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0810BFC4
+ movs r0, 0x5
+ movs r1, 0x14
+ bl sub_810BD64
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ b _0810C00A
+ .align 2, 0
+_0810BFB8: .4byte gPaletteFade
+_0810BFBC: .4byte gMain
+_0810BFC0: .4byte gUnknown_02039248
+_0810BFC4:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _0810C0B8
+ subs r0, 0x1
+ b _0810C002
+_0810BFCE:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C012
+ ldr r4, _0810BFF0 @ =gUnknown_02039248
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x3]
+ cmp r0, r1
+ beq _0810BFF4
+ movs r0, 0x5
+ movs r1, 0x14
+ bl sub_810BD64
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0810C00A
+ .align 2, 0
+_0810BFF0: .4byte gUnknown_02039248
+_0810BFF4:
+ ldrb r1, [r4, 0x1]
+ ldrb r0, [r4]
+ adds r0, r1, r0
+ ldrb r2, [r4, 0x2]
+ cmp r0, r2
+ beq _0810C0B8
+ adds r0, r1, 0x1
+_0810C002:
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ bl sub_810BB88
+_0810C00A:
+ movs r0, 0
+ bl sub_810BF38
+ b _0810C0B8
+_0810C012:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C05C
+ ldr r4, _0810C050 @ =gUnknown_02039248
+ ldrb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ adds r0, r1
+ ldrb r1, [r4, 0x2]
+ cmp r0, r1
+ beq _0810C0B8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_810BDAC
+ ldr r1, _0810C054 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r4, 0x1]
+ ldrb r2, [r4]
+ adds r1, r2
+ strh r1, [r0, 0x8]
+ ldr r1, _0810C058 @ =sub_810C0C8
+ str r1, [r0]
+ b _0810C0B8
+ .align 2, 0
+_0810C050: .4byte gUnknown_02039248
+_0810C054: .4byte gTasks
+_0810C058: .4byte sub_810C0C8
+_0810C05C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C09C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0810C088 @ =gUnknown_02039248
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bne _0810C094
+ ldr r1, _0810C08C @ =gScriptResult
+ ldr r2, _0810C090 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_810C31C
+ b _0810C0B8
+ .align 2, 0
+_0810C088: .4byte gUnknown_02039248
+_0810C08C: .4byte gScriptResult
+_0810C090: .4byte 0x0000ffff
+_0810C094:
+ adds r0, r5, 0
+ bl sub_810C368
+ b _0810C0B8
+_0810C09C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C0B8
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0810C0C0 @ =gScriptResult
+ ldr r2, _0810C0C4 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_810C31C
+_0810C0B8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C0C0: .4byte gScriptResult
+_0810C0C4: .4byte 0x0000ffff
+ thumb_func_end sub_810BF7C
+
+ thumb_func_start sub_810C0C8
+sub_810C0C8: @ 810C0C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _0810C0F4 @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C110
+ ldr r4, _0810C0F8 @ =gUnknown_02039248
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0810C0FC
+ movs r0, 0x5
+ movs r1, 0x14
+ bl sub_810BD64
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ b _0810C158
+ .align 2, 0
+_0810C0F4: .4byte gMain
+_0810C0F8: .4byte gUnknown_02039248
+_0810C0FC:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _0810C1BA
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_810C1C8
+ ldrb r0, [r4, 0x1]
+ subs r0, 0x1
+ b _0810C150
+_0810C110:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C168
+ ldr r4, _0810C134 @ =gUnknown_02039248
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x3]
+ cmp r0, r1
+ beq _0810C138
+ movs r0, 0x5
+ movs r1, 0x14
+ bl sub_810BD64
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0810C158
+ .align 2, 0
+_0810C134: .4byte gUnknown_02039248
+_0810C138:
+ ldrb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ adds r0, r1
+ ldrb r1, [r4, 0x2]
+ cmp r0, r1
+ beq _0810C1BA
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_810C1C8
+ ldrb r0, [r4, 0x1]
+ adds r0, 0x1
+_0810C150:
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ bl sub_810BB88
+_0810C158:
+ movs r0, 0x1
+ bl sub_810BF38
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_810C1C8
+ b _0810C1BA
+_0810C168:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C17A
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C190
+_0810C17A:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_810C1C8
+ adds r0, r5, 0
+ bl sub_810C23C
+ b _0810C1AC
+_0810C190:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C1BA
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_810C1C8
+ movs r0, 0
+ bl sub_810BDAC
+_0810C1AC:
+ ldr r0, _0810C1C0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0810C1C4 @ =sub_810BF7C
+ str r0, [r1]
+_0810C1BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C1C0: .4byte gTasks
+_0810C1C4: .4byte sub_810BF7C
+ thumb_func_end sub_810C0C8
+
+ thumb_func_start sub_810C1C8
+sub_810C1C8: @ 810C1C8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ ldr r6, _0810C22C @ =0x00001005
+ cmp r1, 0
+ bne _0810C1D8
+ movs r6, 0x5
+_0810C1D8:
+ ldr r1, _0810C230 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _0810C234 @ =gUnknown_02039248
+ ldrb r1, [r2, 0x1]
+ ldrh r0, [r0, 0x8]
+ subs r0, r1
+ lsls r1, r0, 16
+ lsrs r0, r1, 16
+ cmp r0, 0x8
+ bhi _0810C226
+ asrs r0, r1, 16
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0810C226
+ movs r2, 0
+ lsls r0, 1
+ adds r1, r0, 0x1
+ lsls r5, r1, 5
+ ldr r3, _0810C238 @ =gBGTilemapBuffers + 0x1000
+ adds r0, 0x2
+ lsls r4, r0, 5
+_0810C208:
+ adds r0, r2, 0
+ adds r0, 0xF
+ adds r1, r5, r0
+ lsls r1, 1
+ adds r1, r3
+ strh r6, [r1]
+ adds r0, r4, r0
+ lsls r0, 1
+ adds r0, r3
+ strh r6, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xD
+ bls _0810C208
+_0810C226:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C22C: .4byte 0x00001005
+_0810C230: .4byte gTasks
+_0810C234: .4byte gUnknown_02039248
+_0810C238: .4byte gBGTilemapBuffers + 0x1000
+ thumb_func_end sub_810C1C8
+
+ thumb_func_start sub_810C23C
+sub_810C23C: @ 810C23C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r7, _0810C25C @ =gUnknown_02039248
+ ldrb r0, [r7]
+ ldrb r2, [r7, 0x1]
+ adds r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r7, 0x2]
+ cmp r0, r2
+ bne _0810C260
+ movs r0, 0
+ bl sub_810BDAC
+ b _0810C2A2
+ .align 2, 0
+_0810C25C: .4byte gUnknown_02039248
+_0810C260:
+ ldr r4, _0810C2A8 @ =gSaveBlock1
+ lsls r3, r0, 3
+ movs r0, 0xFF
+ lsls r0, 3
+ adds r4, r0
+ adds r3, r4
+ ldr r5, [r3]
+ ldr r6, [r3, 0x4]
+ ldr r0, _0810C2AC @ =gTasks
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 3
+ adds r2, r0
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r3]
+ str r1, [r3, 0x4]
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ lsls r0, 3
+ adds r0, r4
+ str r5, [r0]
+ str r6, [r0, 0x4]
+ ldrb r0, [r7, 0x1]
+ bl sub_810BB88
+ movs r0, 0
+ bl sub_810BDAC
+_0810C2A2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C2A8: .4byte gSaveBlock1
+_0810C2AC: .4byte gTasks
+ thumb_func_end sub_810C23C
+
+ thumb_func_start sub_810C2B0
+sub_810C2B0: @ 810C2B0
+ push {lr}
+ movs r0, 0
+ bl DestroyVerticalScrollIndicator
+ movs r0, 0x1
+ bl DestroyVerticalScrollIndicator
+ bl BuyMenuFreeMemory
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810C2B0
+
+ thumb_func_start sub_810C2C8
+sub_810C2C8: @ 810C2C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0810C308 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C300
+ ldr r4, _0810C30C @ =gUnknown_02039244
+ ldrb r0, [r4]
+ cmp r0, 0x3
+ bne _0810C2E8
+ ldr r1, _0810C310 @ =gFieldCallback
+ ldr r0, _0810C314 @ =sub_8080990
+ str r0, [r1]
+_0810C2E8:
+ bl sub_810C2B0
+ ldr r0, _0810C318 @ =gUnknown_083F7EA8
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_0810C300:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C308: .4byte gPaletteFade
+_0810C30C: .4byte gUnknown_02039244
+_0810C310: .4byte gFieldCallback
+_0810C314: .4byte sub_8080990
+_0810C318: .4byte gUnknown_083F7EA8
+ thumb_func_end sub_810C2C8
+
+ thumb_func_start sub_810C31C
+sub_810C31C: @ 810C31C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r5, 0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0810C358 @ =gUnknown_02039244
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0810C342
+ ldr r0, _0810C35C @ =gScriptItemId
+ strh r5, [r0]
+_0810C342:
+ ldr r0, _0810C360 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0810C364 @ =sub_810C2C8
+ str r0, [r1]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C358: .4byte gUnknown_02039244
+_0810C35C: .4byte gScriptItemId
+_0810C360: .4byte gTasks
+_0810C364: .4byte sub_810C2C8
+ thumb_func_end sub_810C31C
+
+ thumb_func_start sub_810C368
+sub_810C368: @ 810C368
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r0, _0810C3E8 @ =gUnknown_02039244
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0810C37C
+ movs r4, 0x2
+_0810C37C:
+ movs r0, 0
+ bl sub_80F98A4
+ movs r0, 0x1
+ bl sub_80F98A4
+ ldr r0, _0810C3EC @ =gWindowConfig_81E6E50
+ bl BasicInitMenuWindow
+ adds r1, r4, 0x4
+ movs r0, 0x7
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuDrawTextWindow
+ adds r4, 0x5
+ ldr r5, _0810C3F0 @ =gUnknown_0203924C
+ ldrb r2, [r5]
+ ldr r3, _0810C3F4 @ =gUnknown_083F7EF4
+ ldr r0, _0810C3F8 @ =gUnknown_03000758
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0x8
+ adds r1, r4, 0
+ bl PrintMenuItemsReordered
+ ldrb r3, [r5]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl InitMenu
+ ldr r2, _0810C3FC @ =gScriptItemId
+ ldr r1, _0810C400 @ =gUnknown_02039248
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ adds r0, r1
+ strh r0, [r2]
+ ldr r1, _0810C404 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C408 @ =sub_810C40C
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C3E8: .4byte gUnknown_02039244
+_0810C3EC: .4byte gWindowConfig_81E6E50
+_0810C3F0: .4byte gUnknown_0203924C
+_0810C3F4: .4byte gUnknown_083F7EF4
+_0810C3F8: .4byte gUnknown_03000758
+_0810C3FC: .4byte gScriptItemId
+_0810C400: .4byte gUnknown_02039248
+_0810C404: .4byte gTasks
+_0810C408: .4byte sub_810C40C
+ thumb_func_end sub_810C368
+
+ thumb_func_start sub_810C40C
+sub_810C40C: @ 810C40C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r2, _0810C43C @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C440
+ bl GetMenuCursorPos
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810C4BC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _0810C4BC
+ .align 2, 0
+_0810C43C: .4byte gMain
+_0810C440:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C46C
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0810C468 @ =gUnknown_0203924C
+ ldrb r1, [r1]
+ subs r1, 0x1
+ cmp r0, r1
+ beq _0810C4BC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _0810C4BC
+ .align 2, 0
+_0810C468: .4byte gUnknown_0203924C
+_0810C46C:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C4A8
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0810C4A0 @ =gUnknown_083F7EF4
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0810C4A4 @ =gUnknown_03000758
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0810C4BC
+ .align 2, 0
+_0810C4A0: .4byte gUnknown_083F7EF4
+_0810C4A4: .4byte gUnknown_03000758
+_0810C4A8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C4BC
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_810C748
+_0810C4BC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810C40C
+
+ thumb_func_start sub_810C4C4
+sub_810C4C4: @ 810C4C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0810C4F8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C4F0
+ bl sub_810C2B0
+ ldr r0, _0810C4FC @ =gScriptItemId
+ ldrh r0, [r0]
+ lsls r0, 3
+ ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8
+ adds r0, r1
+ ldr r1, _0810C504 @ =sub_810B96C
+ bl sub_8136130
+ adds r0, r4, 0
+ bl DestroyTask
+_0810C4F0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C4F8: .4byte gPaletteFade
+_0810C4FC: .4byte gScriptItemId
+_0810C500: .4byte gSaveBlock1 + 0x7F8
+_0810C504: .4byte sub_810B96C
+ thumb_func_end sub_810C4C4
+
+ thumb_func_start sub_810C508
+sub_810C508: @ 810C508
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0810C538 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C53C @ =sub_810C4C4
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C538: .4byte gTasks
+_0810C53C: .4byte sub_810C4C4
+ thumb_func_end sub_810C508
+
+ thumb_func_start sub_810C540
+sub_810C540: @ 810C540
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50
+ bl BasicInitMenuWindow
+ bl HandleDestroyMenuCursors
+ movs r0, 0x7
+ movs r1, 0x4
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r0, _0810C5A4 @ =gStringVar1
+ ldr r4, _0810C5A8 @ =gPokeblockNames
+ ldr r3, _0810C5AC @ =gSaveBlock1
+ ldr r2, _0810C5B0 @ =gUnknown_02039248
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r3
+ movs r2, 0xFF
+ lsls r2, 3
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r4
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r4, _0810C5B4 @ =gStringVar4
+ ldr r1, _0810C5B8 @ =gContestStatsText_ThrowAwayPrompt
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _0810C5BC @ =sub_810C5EC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C5A0: .4byte gWindowConfig_81E6E50
+_0810C5A4: .4byte gStringVar1
+_0810C5A8: .4byte gPokeblockNames
+_0810C5AC: .4byte gSaveBlock1
+_0810C5B0: .4byte gUnknown_02039248
+_0810C5B4: .4byte gStringVar4
+_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt
+_0810C5BC: .4byte sub_810C5EC
+ thumb_func_end sub_810C540
+
+ thumb_func_start sub_810C5C0
+sub_810C5C0: @ 810C5C0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+ ldr r1, _0810C5E4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C5E8 @ =sub_810C540
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C5E4: .4byte gTasks
+_0810C5E8: .4byte sub_810C540
+ thumb_func_end sub_810C5C0
+
+ thumb_func_start sub_810C5EC
+sub_810C5EC: @ 810C5EC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _0810C60C @ =gUnknown_083F7F24
+ adds r0, r4, 0
+ bl DoYesNoFuncWithChoice
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C60C: .4byte gUnknown_083F7F24
+ thumb_func_end sub_810C5EC
+
+ thumb_func_start sub_810C610
+sub_810C610: @ 810C610
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r1, _0810C658 @ =gUnknown_02039248
+ ldrb r0, [r1, 0x1]
+ ldrb r1, [r1]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_810CA6C
+ ldr r5, _0810C65C @ =gStringVar4
+ ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ ldr r2, _0810C664 @ =sub_810C704
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ bl sub_810BC98
+ bl sub_810BD08
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C658: .4byte gUnknown_02039248
+_0810C65C: .4byte gStringVar4
+_0810C660: .4byte gContestStatsText_WasThrownAway
+_0810C664: .4byte sub_810C704
+ thumb_func_end sub_810C610
+
+ thumb_func_start sub_810C668
+sub_810C668: @ 810C668
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl StartVerticalScrollIndicators
+ movs r0, 0x1
+ bl StartVerticalScrollIndicators
+ ldr r2, _0810C6CC @ =gUnknown_02039248
+ ldrb r0, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bls _0810C698
+ ldrb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x3]
+ adds r0, r1
+ ldrb r2, [r2, 0x2]
+ cmp r0, r2
+ beq _0810C698
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_80F979C
+_0810C698:
+ ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50
+ bl BasicInitMenuWindow
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _0810C6D4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C6D8 @ =sub_810BF7C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C6CC: .4byte gUnknown_02039248
+_0810C6D0: .4byte gWindowConfig_81E6E50
+_0810C6D4: .4byte gTasks
+_0810C6D8: .4byte sub_810BF7C
+ thumb_func_end sub_810C668
+
+ thumb_func_start sub_810C6DC
+sub_810C6DC: @ 810C6DC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0810C700 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C6F6
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C6FC
+_0810C6F6:
+ adds r0, r2, 0
+ bl sub_810C668
+_0810C6FC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C700: .4byte gMain
+ thumb_func_end sub_810C6DC
+
+ thumb_func_start sub_810C704
+sub_810C704: @ 810C704
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0810C738 @ =gWindowConfig_81E6E34
+ bl BasicInitMenuWindow
+ ldr r0, _0810C73C @ =gUnknown_02039248
+ ldrb r0, [r0, 0x1]
+ bl sub_810BC84
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+ ldr r1, _0810C740 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C744 @ =sub_810C6DC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C738: .4byte gWindowConfig_81E6E34
+_0810C73C: .4byte gUnknown_02039248
+_0810C740: .4byte gTasks
+_0810C744: .4byte sub_810C6DC
+ thumb_func_end sub_810C704
+
+ thumb_func_start sub_810C748
+sub_810C748: @ 810C748
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl StartVerticalScrollIndicators
+ movs r0, 0x1
+ bl StartVerticalScrollIndicators
+ bl HandleDestroyMenuCursors
+ movs r0, 0x7
+ movs r1, 0x4
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r1, _0810C780 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C784 @ =sub_810BF7C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C780: .4byte gTasks
+_0810C784: .4byte sub_810BF7C
+ thumb_func_end sub_810C748
+
+ thumb_func_start sub_810C788
+sub_810C788: @ 810C788
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0810C834 @ =gEnemyParty
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r7, _0810C838 @ =gScriptItemId
+ ldrh r1, [r7]
+ lsls r1, 3
+ ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8
+ adds r1, r5
+ bl sub_810CAE4
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _0810C840 @ =gBattleTextBuff1
+ ldr r2, _0810C844 @ =gPokeblockNames
+ ldr r1, _0810C848 @ =0xfffff808
+ adds r5, r1
+ ldrh r1, [r7]
+ lsls r1, 3
+ adds r1, r5
+ movs r6, 0xFF
+ lsls r6, 3
+ adds r1, r6
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ ldrb r0, [r7]
+ bl sub_810CA6C
+ ldrh r0, [r7]
+ lsls r0, 3
+ adds r0, r5
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ strh r0, [r7]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, 0
+ bne _0810C7F4
+ adds r0, 0x1
+ strh r0, [r7]
+_0810C7F4:
+ cmp r4, 0
+ ble _0810C7FE
+ ldrh r0, [r7]
+ adds r0, 0x2
+ strh r0, [r7]
+_0810C7FE:
+ cmp r4, 0
+ bge _0810C808
+ ldrh r0, [r7]
+ adds r0, 0x3
+ strh r0, [r7]
+_0810C808:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0810C84C @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C850 @ =sub_810C2C8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C834: .4byte gEnemyParty
+_0810C838: .4byte gScriptItemId
+_0810C83C: .4byte gSaveBlock1 + 0x7F8
+_0810C840: .4byte gBattleTextBuff1
+_0810C844: .4byte gPokeblockNames
+_0810C848: .4byte 0xfffff808
+_0810C84C: .4byte gTasks
+_0810C850: .4byte sub_810C2C8
+ thumb_func_end sub_810C788
+
+ thumb_func_start sub_810C854
+sub_810C854: @ 810C854
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _0810C8B8 @ =gScriptItemId
+ ldrb r0, [r4]
+ bl SafariZoneActivatePokeblockFeeder
+ ldr r0, _0810C8BC @ =gStringVar1
+ ldr r3, _0810C8C0 @ =gPokeblockNames
+ ldr r2, _0810C8C4 @ =gSaveBlock1
+ ldrh r1, [r4]
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0xFF
+ lsls r2, 3
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r1, _0810C8C8 @ =gScriptResult
+ ldrh r0, [r4]
+ strh r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_810CA6C
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0810C8CC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C8D0 @ =sub_810C2C8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C8B8: .4byte gScriptItemId
+_0810C8BC: .4byte gStringVar1
+_0810C8C0: .4byte gPokeblockNames
+_0810C8C4: .4byte gSaveBlock1
+_0810C8C8: .4byte gScriptResult
+_0810C8CC: .4byte gTasks
+_0810C8D0: .4byte sub_810C2C8
+ thumb_func_end sub_810C854
+
+ thumb_func_start sub_810C8D4
+sub_810C8D4: @ 810C8D4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ ble _0810C8E4
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_0810C8E4:
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _0810C8F2
+ cmp r5, 0x1
+ beq _0810C918
+ b _0810C944
+_0810C8F2:
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _0810C914 @ =gSpriteAffineAnimTable_83F7F70
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ b _0810C944
+ .align 2, 0
+_0810C914: .4byte gSpriteAffineAnimTable_83F7F70
+_0810C918:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ ble _0810C944
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ strh r2, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, _0810C94C @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_0810C944:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C94C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_810C8D4
+
+ thumb_func_start ClearPokeblock
+ClearPokeblock: @ 810C950
+ lsls r0, 24
+ ldr r1, _0810C988 @ =gSaveBlock1
+ lsrs r0, 21
+ adds r0, r1
+ movs r2, 0xFF
+ lsls r2, 3
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r3, _0810C98C @ =0x000007f9
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _0810C990 @ =0x000007fe
+ adds r0, r1
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_0810C988: .4byte gSaveBlock1
+_0810C98C: .4byte 0x000007f9
+_0810C990: .4byte 0x000007fe
+ thumb_func_end ClearPokeblock
+
+ thumb_func_start ClearPokeblocks
+ClearPokeblocks: @ 810C994
+ push {r4,lr}
+ movs r4, 0
+_0810C998:
+ adds r0, r4, 0
+ bl ClearPokeblock
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x27
+ bls _0810C998
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ClearPokeblocks
+
+ thumb_func_start sub_810C9B0
+sub_810C9B0: @ 810C9B0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_810CA9C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x1
+_0810C9C0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_810CA9C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bcs _0810C9D8
+ adds r5, r0, 0
+_0810C9D8:
+ adds r1, r4, 0
+ cmp r1, 0x4
+ bls _0810C9C0
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810C9B0
+
+ thumb_func_start sub_810C9E8
+sub_810C9E8: @ 810C9E8
+ push {lr}
+ movs r1, 0x6
+ bl sub_810CA9C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x63
+ bls _0810C9FA
+ movs r0, 0x63
+_0810C9FA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810C9E8
+
+ thumb_func_start sub_810CA00
+sub_810CA00: @ 810CA00
+ push {lr}
+ movs r1, 0
+ ldr r3, _0810CA1C @ =gSaveBlock1
+ movs r2, 0xFF
+ lsls r2, 3
+_0810CA0A:
+ lsls r0, r1, 3
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CA20
+ lsls r0, r1, 24
+ asrs r0, 24
+ b _0810CA2E
+ .align 2, 0
+_0810CA1C: .4byte gSaveBlock1
+_0810CA20:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x27
+ bls _0810CA0A
+ movs r0, 0x1
+ negs r0, r0
+_0810CA2E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CA00
+
+ thumb_func_start sub_810CA34
+sub_810CA34: @ 810CA34
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_810CA00
+ lsls r0, 24
+ asrs r2, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _0810CA64
+ ldr r0, _0810CA60 @ =gSaveBlock1
+ lsls r2, 3
+ movs r1, 0xFF
+ lsls r1, 3
+ adds r0, r1
+ adds r2, r0
+ ldr r0, [r4]
+ ldr r1, [r4, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0x1
+ b _0810CA66
+ .align 2, 0
+_0810CA60: .4byte gSaveBlock1
+_0810CA64:
+ movs r0, 0
+_0810CA66:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CA34
+
+ thumb_func_start sub_810CA6C
+sub_810CA6C: @ 810CA6C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0810CA90 @ =gSaveBlock1
+ lsls r0, r2, 3
+ adds r0, r1
+ movs r1, 0xFF
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810CA94
+ adds r0, r2, 0
+ bl ClearPokeblock
+ movs r0, 0x1
+ b _0810CA96
+ .align 2, 0
+_0810CA90: .4byte gSaveBlock1
+_0810CA94:
+ movs r0, 0
+_0810CA96:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CA6C
+
+ thumb_func_start sub_810CA9C
+sub_810CA9C: @ 810CA9C
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0
+ bne _0810CAAC
+ ldrb r0, [r0]
+ b _0810CADE
+_0810CAAC:
+ cmp r1, 0x1
+ bne _0810CAB4
+ ldrb r0, [r0, 0x1]
+ b _0810CADE
+_0810CAB4:
+ cmp r1, 0x2
+ bne _0810CABC
+ ldrb r0, [r0, 0x2]
+ b _0810CADE
+_0810CABC:
+ cmp r1, 0x3
+ bne _0810CAC4
+ ldrb r0, [r0, 0x3]
+ b _0810CADE
+_0810CAC4:
+ cmp r1, 0x4
+ bne _0810CACC
+ ldrb r0, [r0, 0x4]
+ b _0810CADE
+_0810CACC:
+ cmp r1, 0x5
+ bne _0810CAD4
+ ldrb r0, [r0, 0x5]
+ b _0810CADE
+_0810CAD4:
+ cmp r2, 0x6
+ beq _0810CADC
+ movs r0, 0
+ b _0810CADE
+_0810CADC:
+ ldrb r0, [r0, 0x6]
+_0810CADE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CA9C
+
+ thumb_func_start sub_810CAE4
+sub_810CAE4: @ 810CAE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ movs r4, 0
+ ldr r1, _0810CB40 @ =gUnknown_083F7E28
+ mov r9, r1
+ lsls r1, r0, 2
+ adds r7, r1, r0
+_0810CAFE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_810CA9C
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ ble _0810CB2A
+ adds r0, r7, r4
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ muls r1, r0
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_0810CB2A:
+ adds r4, r5, 0
+ cmp r4, 0x4
+ bls _0810CAFE
+ lsls r0, r6, 16
+ asrs r0, 16
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810CB40: .4byte gUnknown_083F7E28
+ thumb_func_end sub_810CAE4
+
+ thumb_func_start sub_810CB44
+sub_810CB44: @ 810CB44
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r1, 0
+ bl sub_810CA9C
+ lsls r0, 24
+ ldr r1, _0810CB64 @ =gPokeblockNames
+ lsrs r0, 22
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CB64: .4byte gPokeblockNames
+ thumb_func_end sub_810CB44
+
+ thumb_func_start sub_810CB68
+sub_810CB68: @ 810CB68
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r7, _0810CB98 @ =gPokeblockNames
+_0810CB74:
+ lsls r1, r4, 3
+ ldr r0, _0810CB9C @ =gUnknown_083F7F9C
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_810CAE4
+ lsls r0, 16
+ cmp r0, 0
+ ble _0810CBA0
+ adds r0, r4, 0x1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl StringCopy
+ movs r0, 0x1
+ b _0810CBAC
+ .align 2, 0
+_0810CB98: .4byte gPokeblockNames
+_0810CB9C: .4byte gUnknown_083F7F9C
+_0810CBA0:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0810CB74
+ movs r0, 0
+_0810CBAC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CB68
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_81473B8.s b/asm/pokeblock_feed.s
index 6c26c034a..7df634399 100644
--- a/asm/rom_81473B8.s
+++ b/asm/pokeblock_feed.s
@@ -6,603 +6,6 @@
.text
- thumb_func_start sub_81473B8
-sub_81473B8: @ 81473B8
- push {lr}
- ldr r0, _081473E8 @ =0x0000084f
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08147400
- ldr r2, _081473EC @ =gSaveBlock1
- ldrh r1, [r2, 0x4]
- ldr r0, _081473F0 @ =0x00004718
- cmp r1, r0
- bne _08147400
- ldr r1, [r2]
- ldr r0, _081473F4 @ =0x0003000a
- cmp r1, r0
- beq _081473E4
- ldr r0, _081473F8 @ =0x00030009
- cmp r1, r0
- beq _081473E4
- ldr r0, _081473FC @ =0x0003000b
- cmp r1, r0
- bne _08147400
-_081473E4:
- movs r0, 0x1
- b _08147402
- .align 2, 0
-_081473E8: .4byte 0x0000084f
-_081473EC: .4byte gSaveBlock1
-_081473F0: .4byte 0x00004718
-_081473F4: .4byte 0x0003000a
-_081473F8: .4byte 0x00030009
-_081473FC: .4byte 0x0003000b
-_08147400:
- movs r0, 0
-_08147402:
- pop {r1}
- bx r1
- thumb_func_end sub_81473B8
-
- thumb_func_start sub_8147408
-sub_8147408: @ 8147408
- push {lr}
- ldr r2, _08147460 @ =0x0000022a
- movs r0, 0x10
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _08147464 @ =0x0000022b
- movs r0, 0x11
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _08147468 @ =0x00000e32
- movs r0, 0x10
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _0814746C @ =0x00000233
- movs r0, 0x11
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _08147470 @ =0x00000e34
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- ldr r0, _08147474 @ =0x0000084f
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147460: .4byte 0x0000022a
-_08147464: .4byte 0x0000022b
-_08147468: .4byte 0x00000e32
-_0814746C: .4byte 0x00000233
-_08147470: .4byte 0x00000e34
-_08147474: .4byte 0x0000084f
- thumb_func_end sub_8147408
-
- thumb_func_start sub_8147478
-sub_8147478: @ 8147478
- push {r4,lr}
- ldr r4, _081474B4 @ =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- ldr r1, _081474B8 @ =0x0000017d
- cmp r0, r1
- bne _081474C0
- bl CalculatePlayerPartyCount
- ldr r0, _081474BC @ =gPlayerPartyCount
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- adds r1, r4, 0
- subs r1, 0x64
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0x9D
- lsls r1, 1
- cmp r0, r1
- bne _081474C0
- movs r0, 0x1
- b _081474C2
- .align 2, 0
-_081474B4: .4byte gPlayerParty
-_081474B8: .4byte 0x0000017d
-_081474BC: .4byte gPlayerPartyCount
-_081474C0:
- movs r0, 0
-_081474C2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8147478
-
- thumb_func_start sub_81474C8
-sub_81474C8: @ 81474C8
- push {lr}
- movs r0, 0x85
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0814750C
- ldr r2, _081474FC @ =gSaveBlock1
- ldrh r1, [r2, 0x4]
- movs r0, 0xC3
- lsls r0, 3
- cmp r1, r0
- bne _0814750C
- ldr r1, [r2]
- ldr r0, _08147500 @ =0x0017000a
- cmp r1, r0
- beq _081474F8
- ldr r0, _08147504 @ =0x00170009
- cmp r1, r0
- beq _081474F8
- ldr r0, _08147508 @ =0x0017000b
- cmp r1, r0
- bne _0814750C
-_081474F8:
- movs r0, 0x1
- b _0814750E
- .align 2, 0
-_081474FC: .4byte gSaveBlock1
-_08147500: .4byte 0x0017000a
-_08147504: .4byte 0x00170009
-_08147508: .4byte 0x0017000b
-_0814750C:
- movs r0, 0
-_0814750E:
- pop {r1}
- bx r1
- thumb_func_end sub_81474C8
-
- thumb_func_start sub_8147514
-sub_8147514: @ 8147514
- push {lr}
- movs r0, 0x28
- bl FieldEffectActiveListRemove
- ldr r2, _08147574 @ =0x0000022a
- movs r0, 0xE
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _08147578 @ =0x0000022b
- movs r0, 0xF
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x10
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _0814757C @ =0x00000e32
- movs r0, 0xE
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147580 @ =0x00000233
- movs r0, 0xF
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147584 @ =0x00000e34
- movs r0, 0x10
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- movs r0, 0x85
- lsls r0, 4
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147574: .4byte 0x0000022a
-_08147578: .4byte 0x0000022b
-_0814757C: .4byte 0x00000e32
-_08147580: .4byte 0x00000233
-_08147584: .4byte 0x00000e34
- thumb_func_end sub_8147514
-
- thumb_func_start sub_8147588
-sub_8147588: @ 8147588
- push {lr}
- ldr r0, _081475AC @ =0x00000852
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _081475BC
- ldr r2, _081475B0 @ =gSaveBlock1
- ldrh r1, [r2, 0x4]
- ldr r0, _081475B4 @ =0x00004418
- cmp r1, r0
- bne _081475BC
- ldr r1, [r2]
- ldr r0, _081475B8 @ =0x00190008
- cmp r1, r0
- bne _081475BC
- movs r0, 0x1
- b _081475BE
- .align 2, 0
-_081475AC: .4byte 0x00000852
-_081475B0: .4byte gSaveBlock1
-_081475B4: .4byte 0x00004418
-_081475B8: .4byte 0x00190008
-_081475BC:
- movs r0, 0
-_081475BE:
- pop {r1}
- bx r1
- thumb_func_end sub_8147588
-
- thumb_func_start sub_81475C4
-sub_81475C4: @ 81475C4
- push {lr}
- ldr r0, _081475D8 @ =gUnknown_0202FF84
- ldr r1, _081475DC @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x3C
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_081475D8: .4byte gUnknown_0202FF84
-_081475DC: .4byte gUnknown_03005CE0
- thumb_func_end sub_81475C4
-
- thumb_func_start FldEff_UseFlyAncientTomb
-FldEff_UseFlyAncientTomb: @ 81475E0
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147604 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _08147608 @ =sub_814760C
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08147604: .4byte gTasks
-_08147608: .4byte sub_814760C
- thumb_func_end FldEff_UseFlyAncientTomb
-
- thumb_func_start sub_814760C
-sub_814760C: @ 814760C
- push {lr}
- movs r0, 0x3C
- bl FieldEffectActiveListRemove
- bl sub_814761C
- pop {r0}
- bx r0
- thumb_func_end sub_814760C
-
- thumb_func_start sub_814761C
-sub_814761C: @ 814761C
- push {lr}
- ldr r2, _08147674 @ =0x0000022a
- movs r0, 0xE
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _08147678 @ =0x0000022b
- movs r0, 0xF
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x10
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _0814767C @ =0x00000e32
- movs r0, 0xE
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147680 @ =0x00000233
- movs r0, 0xF
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147684 @ =0x00000e34
- movs r0, 0x10
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- ldr r0, _08147688 @ =0x00000852
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147674: .4byte 0x0000022a
-_08147678: .4byte 0x0000022b
-_0814767C: .4byte 0x00000e32
-_08147680: .4byte 0x00000233
-_08147684: .4byte 0x00000e34
-_08147688: .4byte 0x00000852
- thumb_func_end sub_814761C
-
- thumb_func_start sub_814768C
-sub_814768C: @ 814768C
- push {lr}
- ldr r0, _081476A8 @ =0x00000851
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _081476A2
- ldr r0, _081476AC @ =sub_81476B0
- movs r1, 0x50
- bl CreateTask
-_081476A2:
- pop {r0}
- bx r0
- .align 2, 0
-_081476A8: .4byte 0x00000851
-_081476AC: .4byte sub_81476B0
- thumb_func_end sub_814768C
-
- thumb_func_start sub_81476B0
-sub_81476B0: @ 81476B0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081476D4 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0814776A
- lsls r0, 2
- ldr r1, _081476D8 @ =_081476DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081476D4: .4byte gTasks + 0x8
-_081476D8: .4byte _081476DC
- .align 2, 0
-_081476DC:
- .4byte _081476F0
- .4byte _081476FE
- .4byte _08147730
- .4byte _08147748
- .4byte _0814775A
-_081476F0:
- movs r1, 0xE1
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r4]
- b _0814776A
-_081476FE:
- bl sub_8147774
- cmp r0, 0
- beq _08147716
- bl MenuZeroFillScreen
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- strh r0, [r4]
- b _0814776A
-_08147716:
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _0814776A
- bl MenuZeroFillScreen
- movs r0, 0x3
- strh r0, [r4]
- movs r0, 0x1E
- strh r0, [r4, 0x2]
- b _0814776A
-_08147730:
- bl sub_8147774
- cmp r0, 0
- beq _08147748
- bl sub_8064E2C
- adds r0, r5, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- b _0814776A
-_08147748:
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _0814776A
- movs r0, 0x4
- strh r0, [r4]
- b _0814776A
-_0814775A:
- bl sub_8064E2C
- ldr r0, _08147770 @ =gUnknown_0815EF19
- bl ScriptContext1_SetupScript
- adds r0, r5, 0
- bl DestroyTask
-_0814776A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08147770: .4byte gUnknown_0815EF19
- thumb_func_end sub_81476B0
-
- thumb_func_start sub_8147774
-sub_8147774: @ 8147774
- push {lr}
- movs r1, 0xFF
- ldr r0, _081477A4 @ =gSaveBlock2
- ldrb r2, [r0, 0x13]
- cmp r2, 0x1
- bne _08147788
- movs r3, 0xC0
- lsls r3, 2
- adds r0, r3, 0
- orrs r1, r0
-_08147788:
- cmp r2, 0x2
- bne _08147794
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- orrs r1, r0
-_08147794:
- ldr r0, _081477A8 @ =gMain
- ldrh r0, [r0, 0x2E]
- ands r1, r0
- cmp r1, 0
- bne _081477AC
- movs r0, 0
- b _081477AE
- .align 2, 0
-_081477A4: .4byte gSaveBlock2
-_081477A8: .4byte gMain
-_081477AC:
- movs r0, 0x1
-_081477AE:
- pop {r1}
- bx r1
- thumb_func_end sub_8147774
-
- thumb_func_start sub_81477B4
-sub_81477B4: @ 81477B4
- push {lr}
- ldr r0, _081477E8 @ =sub_814782C
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081477EC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- movs r0, 0x2
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0x32
- strh r0, [r1, 0x14]
- movs r0, 0
- bl SetCameraPanningCallback
- pop {r0}
- bx r0
- .align 2, 0
-_081477E8: .4byte sub_814782C
-_081477EC: .4byte gTasks
- thumb_func_end sub_81477B4
-
- thumb_func_start sub_81477F0
-sub_81477F0: @ 81477F0
- push {lr}
- ldr r0, _08147824 @ =sub_814782C
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147828 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- movs r0, 0x3
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0x2
- strh r0, [r1, 0x14]
- movs r0, 0
- bl SetCameraPanningCallback
- pop {r0}
- bx r0
- .align 2, 0
-_08147824: .4byte sub_814782C
-_08147828: .4byte gTasks
- thumb_func_end sub_81477F0
-
- thumb_func_start sub_814782C
-sub_814782C: @ 814782C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0814788C @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _08147884
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08147884
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- bl InstallCameraPanAheadCallback
-_08147884:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814788C: .4byte gTasks
- thumb_func_end sub_814782C
-
thumb_func_start sub_8147890
sub_8147890: @ 8147890
push {lr}
@@ -962,7 +365,7 @@ _08147B70:
str r4, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
b _08147C40
.align 2, 0
_08147BAC: .4byte gMonFrontPicTable
diff --git a/asm/pokedex.s b/asm/pokedex.s
deleted file mode 100644
index fe069bcf8..000000000
--- a/asm/pokedex.s
+++ /dev/null
@@ -1,5294 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8090750
-sub_8090750: @ 8090750
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08090778 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r6, [r0, 0xA]
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x6
- bhi _0809079C
- lsls r0, 2
- ldr r1, _0809077C @ =_08090780
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08090778: .4byte gTasks
-_0809077C: .4byte _08090780
- .align 2, 0
-_08090780:
- .4byte _0809079C
- .4byte _080907E0
- .4byte _0809085C
- .4byte _080908A0
- .4byte _08090960
- .4byte _080909B8
- .4byte _080909F4
-_0809079C:
- ldr r0, _080907D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080907AA
- b _08090A26
-_080907AA:
- ldr r1, _080907D4 @ =gUnknown_03005CEC
- ldr r0, _080907D8 @ =gMain
- ldr r0, [r0, 0xC]
- str r0, [r1]
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 1
- bl sub_8091060
- ldr r1, _080907DC @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- b _08090A26
- .align 2, 0
-_080907D0: .4byte gPaletteFade
-_080907D4: .4byte gUnknown_03005CEC
-_080907D8: .4byte gMain
-_080907DC: .4byte gTasks
-_080907E0:
- ldr r0, _08090840 @ =gPokedexMenu_Gfx
- ldr r1, _08090844 @ =0x06004000
- bl LZ77UnCompVram
- ldr r0, _08090848 @ =gUnknown_08E96BD4
- ldr r4, _0809084C @ =0x06007800
- adds r1, r4, 0
- bl LZ77UnCompVram
- movs r2, 0
- lsls r5, r7, 2
- mov r12, r5
- movs r0, 0x80
- lsls r0, 6
- adds r6, r0, 0
- ldr r3, _08090850 @ =0x0000027f
-_08090800:
- lsls r0, r2, 1
- adds r0, r4
- ldrh r5, [r0]
- adds r1, r6, r5
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bls _08090800
- ldr r0, _08090854 @ =gTasks
- mov r1, r12
- adds r4, r1, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0xA]
- movs r2, 0xFF
- lsls r2, 2
- movs r1, 0x2
- bl sub_8091738
- bl ResetPaletteFade
- ldr r0, _08090858 @ =gPokedexMenu_Pal + 0x2
- movs r1, 0x21
- movs r2, 0x9E
- bl LoadPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08090A26
- .align 2, 0
-_08090840: .4byte gPokedexMenu_Gfx
-_08090844: .4byte 0x06004000
-_08090848: .4byte gUnknown_08E96BD4
-_0809084C: .4byte 0x06007800
-_08090850: .4byte 0x0000027f
-_08090854: .4byte gTasks
-_08090858: .4byte gPokedexMenu_Pal + 0x2
-_0809085C:
- ldr r4, _0809088C @ =gWindowConfig_81E7064
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r2, _08090890 @ =0x0600c000
- add r1, sp, 0x4
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08090894 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08090898 @ =0x81000100
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r1, _0809089C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _080909E0
- .align 2, 0
-_0809088C: .4byte gWindowConfig_81E7064
-_08090890: .4byte 0x0600c000
-_08090894: .4byte 0x040000d4
-_08090898: .4byte 0x81000100
-_0809089C: .4byte gTasks
-_080908A0:
- ldr r0, _080908C8 @ =gDexText_RegisterComplete
- movs r1, 0x2
- movs r2, 0
- movs r3, 0xD0
- bl sub_8072BD8
- bl IsNationalPokedex
- cmp r0, 0
- bne _080908CC
- adds r0, r6, 0
- bl NationalToHoennOrder
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- movs r2, 0x3
- bl sub_8091154
- b _080908D6
- .align 2, 0
-_080908C8: .4byte gDexText_RegisterComplete
-_080908CC:
- adds r0, r6, 0
- movs r1, 0xD
- movs r2, 0x3
- bl sub_8091154
-_080908D6:
- adds r0, r6, 0
- movs r1, 0x10
- movs r2, 0x3
- bl sub_80911C8
- ldr r0, _0809094C @ =gDexText_UnknownPoke
- movs r1, 0xB
- movs r2, 0x5
- bl MenuPrint
- ldr r0, _08090950 @ =gDexText_UnknownHeight
- movs r1, 0x10
- movs r2, 0x7
- bl MenuPrint
- ldr r0, _08090954 @ =gDexText_UnknownWeight
- movs r1, 0x10
- movs r2, 0x9
- bl MenuPrint
- lsls r4, r6, 3
- adds r4, r6
- lsls r4, 2
- ldr r6, _08090958 @ =gPokedexEntries
- adds r5, r4, r6
- adds r0, r5, 0
- movs r1, 0xB
- movs r2, 0x5
- bl sub_8091304
- ldrh r0, [r5, 0xC]
- movs r1, 0x10
- movs r2, 0x7
- bl sub_8091458
- ldrh r0, [r5, 0xE]
- movs r1, 0x10
- movs r2, 0x9
- bl sub_8091564
- adds r6, 0x10
- adds r4, r6
- ldr r0, [r4]
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- movs r1, 0xFF
- lsls r1, 2
- movs r0, 0xE
- bl sub_80917CC
- ldr r1, _0809095C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _080909E0
- .align 2, 0
-_0809094C: .4byte gDexText_UnknownPoke
-_08090950: .4byte gDexText_UnknownHeight
-_08090954: .4byte gDexText_UnknownWeight
-_08090958: .4byte gPokedexEntries
-_0809095C: .4byte gTasks
-_08090960:
- adds r0, r6, 0
- movs r1, 0x30
- movs r2, 0x38
- movs r3, 0
- bl sub_80918EC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080909AC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080909B0 @ =gUnknown_03005CEC
- ldr r0, [r0]
- bl SetVBlankCallback
- ldr r1, _080909B4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0xE]
- b _080909E0
- .align 2, 0
-_080909AC: .4byte gSprites
-_080909B0: .4byte gUnknown_03005CEC
-_080909B4: .4byte gTasks
-_080909B8:
- ldr r0, _080909E8 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _080909EC @ =REG_BG3CNT
- ldr r2, _080909F0 @ =0x00000f07
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r5, 0xE2
- lsls r5, 5
- adds r0, r5, 0
- strh r0, [r1]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r4
-_080909E0:
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _08090A26
- .align 2, 0
-_080909E8: .4byte REG_BLDCNT
-_080909EC: .4byte REG_BG3CNT
-_080909F0: .4byte 0x00000f07
-_080909F4:
- ldr r0, _08090A30 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08090A26
- adds r0, r6, 0
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl PlayCry1
- ldr r1, _08090A34 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0xC]
- strh r5, [r0, 0x10]
- ldr r1, _08090A38 @ =sub_8090A3C
- str r1, [r0]
-_08090A26:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08090A30: .4byte gPaletteFade
-_08090A34: .4byte gTasks
-_08090A38: .4byte sub_8090A3C
- thumb_func_end sub_8090750
-
- thumb_func_start sub_8090A3C
-sub_8090A3C: @ 8090A3C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08090A8C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08090AA4
- ldr r0, _08090A90 @ =0x0000fffc
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r3, _08090A94 @ =gSprites
- ldr r0, _08090A98 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r0, 0xE
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r2, _08090A9C @ =sub_8090C28
- str r2, [r0]
- ldr r0, _08090AA0 @ =sub_8090B8C
- str r0, [r1]
- b _08090B7A
- .align 2, 0
-_08090A8C: .4byte gMain
-_08090A90: .4byte 0x0000fffc
-_08090A94: .4byte gSprites
-_08090A98: .4byte gTasks
-_08090A9C: .4byte sub_8090C28
-_08090AA0: .4byte sub_8090B8C
-_08090AA4:
- movs r0, 0x1
- mov r8, r0
- ands r0, r1
- lsls r7, r6, 2
- cmp r0, 0
- beq _08090B44
- ldr r0, _08090B00 @ =gTasks
- adds r1, r7, r6
- lsls r1, 3
- adds r5, r1, r0
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08090B0C
- ldrh r4, [r5, 0xA]
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _08090B04 @ =gPokedexEntries
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, 0x14
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- ldr r1, _08090B08 @ =0x06007aca
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- adds r1, 0x40
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- mov r0, r8
- strh r0, [r5, 0x10]
- movs r0, 0x15
- bl PlaySE
- b _08090B44
- .align 2, 0
-_08090B00: .4byte gTasks
-_08090B04: .4byte gPokedexEntries
-_08090B08: .4byte 0x06007aca
-_08090B0C:
- ldr r0, _08090B34 @ =0x0000fffc
- str r2, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, _08090B38 @ =gSprites
- movs r0, 0xE
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08090B3C @ =sub_8090C28
- str r1, [r0]
- ldr r0, _08090B40 @ =sub_8090B8C
- str r0, [r5]
- b _08090B7A
- .align 2, 0
-_08090B34: .4byte 0x0000fffc
-_08090B38: .4byte gSprites
-_08090B3C: .4byte sub_8090C28
-_08090B40: .4byte sub_8090B8C
-_08090B44:
- ldr r1, _08090B68 @ =gTasks
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xC]
- adds r1, 0x1
- strh r1, [r0, 0xC]
- movs r0, 0x10
- ands r1, r0
- cmp r1, 0
- beq _08090B70
- ldr r0, _08090B6C @ =gPokedexMenu_Pal + 0x2
- movs r1, 0x51
- movs r2, 0xE
- bl LoadPalette
- b _08090B7A
- .align 2, 0
-_08090B68: .4byte gTasks
-_08090B6C: .4byte gPokedexMenu_Pal + 0x2
-_08090B70:
- ldr r0, _08090B88 @ =gPokedexMenu2_Pal + 0x2
- movs r1, 0x51
- movs r2, 0xE
- bl LoadPalette
-_08090B7A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08090B88: .4byte gPokedexMenu2_Pal + 0x2
- thumb_func_end sub_8090A3C
-
- thumb_func_start sub_8090B8C
-sub_8090B8C: @ 8090B8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08090C14 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08090C0C
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08090C18 @ =gUnknown_08D00524
- ldr r1, _08090C1C @ =0x0600c000
- movs r2, 0x80
- lsls r2, 4
- bl CpuSet
- bl sub_800D74C
- ldr r0, _08090C20 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0xA]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4, 0x22]
- lsls r1, 16
- ldrh r2, [r4, 0x20]
- orrs r1, r2
- ldrh r2, [r4, 0x26]
- lsls r2, 16
- ldrh r3, [r4, 0x24]
- orrs r2, r3
- ldr r5, _08090C24 @ =gSprites
- movs r3, 0xE
- ldrsh r4, [r4, r3]
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- adds r3, r5
- ldrb r4, [r3, 0x5]
- lsrs r4, 4
- bl species_and_otid_get_pal
- lsls r4, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- orrs r4, r1
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r6, 0
- bl DestroyTask
-_08090C0C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08090C14: .4byte gPaletteFade
-_08090C18: .4byte gUnknown_08D00524
-_08090C1C: .4byte 0x0600c000
-_08090C20: .4byte gTasks
-_08090C24: .4byte gSprites
- thumb_func_end sub_8090B8C
-
- thumb_func_start sub_8090C28
-sub_8090C28: @ 8090C28
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- cmp r0, 0x77
- bgt _08090C3A
- adds r0, r2, 0x2
- strh r0, [r1, 0x20]
-_08090C3A:
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- cmp r0, 0x78
- ble _08090C48
- subs r0, r2, 0x2
- strh r0, [r1, 0x20]
-_08090C48:
- ldrh r2, [r1, 0x22]
- movs r3, 0x22
- ldrsh r0, [r1, r3]
- cmp r0, 0x4F
- bgt _08090C56
- adds r0, r2, 0x1
- strh r0, [r1, 0x22]
-_08090C56:
- ldrh r2, [r1, 0x22]
- movs r3, 0x22
- ldrsh r0, [r1, r3]
- cmp r0, 0x50
- ble _08090C64
- subs r0, r2, 0x1
- strh r0, [r1, 0x22]
-_08090C64:
- pop {r0}
- bx r0
- thumb_func_end sub_8090C28
-
- thumb_func_start sub_8090C68
-sub_8090C68: @ 8090C68
- push {r4,r5,lr}
- ldr r4, _08090CD0 @ =gUnknown_0202FFBC
- ldr r0, [r4]
- ldrb r1, [r0, 0x2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08090D2A
- ldr r5, _08090CD4 @ =gPokedexView
- ldr r0, [r5]
- ldr r1, _08090CD8 @ =0x0000064e
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08090CE4
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r2, _08090CDC @ =gPokedexEntries
- ldr r0, [r4]
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r2, 0x14
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- ldr r0, [r5]
- ldr r1, _08090CD8 @ =0x0000064e
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, _08090CE0 @ =0x06007aca
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- adds r1, 0x40
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x15
- bl PlaySE
- b _08090D2A
- .align 2, 0
-_08090CD0: .4byte gUnknown_0202FFBC
-_08090CD4: .4byte gPokedexView
-_08090CD8: .4byte 0x0000064e
-_08090CDC: .4byte gPokedexEntries
-_08090CE0: .4byte 0x06007aca
-_08090CE4:
- movs r0, 0x2
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r2, _08090D30 @ =gPokedexEntries
- ldr r0, [r4]
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r2, 0x10
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- ldr r0, [r5]
- ldr r1, _08090D34 @ =0x0000064e
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r1, _08090D38 @ =0x06007aca
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r1, 0x40
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- movs r0, 0x15
- bl PlaySE
-_08090D2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08090D30: .4byte gPokedexEntries
-_08090D34: .4byte 0x0000064e
-_08090D38: .4byte 0x06007aca
- thumb_func_end sub_8090C68
-
- thumb_func_start GetPokemonCategory
-GetPokemonCategory: @ 8090D3C
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08090D50 @ =gPokedexEntries
- adds r0, r1
- bx lr
- .align 2, 0
-_08090D50: .4byte gPokedexEntries
- thumb_func_end GetPokemonCategory
-
- thumb_func_start sub_8090D54
-sub_8090D54: @ 8090D54
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- beq _08090D6A
- cmp r1, 0x1
- beq _08090D7C
- movs r0, 0x1
- b _08090D88
-_08090D6A:
- ldr r0, _08090D78 @ =gPokedexEntries
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0xC]
- b _08090D88
- .align 2, 0
-_08090D78: .4byte gPokedexEntries
-_08090D7C:
- ldr r0, _08090D8C @ =gPokedexEntries
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0xE]
-_08090D88:
- pop {r1}
- bx r1
- .align 2, 0
-_08090D8C: .4byte gPokedexEntries
- thumb_func_end sub_8090D54
-
- thumb_func_start sub_8090D90
-sub_8090D90: @ 8090D90
- push {r4-r7,lr}
- lsls r0, 16
- lsls r1, 24
- lsrs r2, r1, 24
- adds r3, r2, 0
- ldr r1, _08090DC4 @ =0xffff0000
- adds r0, r1
- lsrs r1, r0, 16
- lsrs r0, 19
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x7
- ands r1, r0
- movs r0, 0x80
- lsls r0, 17
- lsls r0, r1
- lsrs r5, r0, 24
- movs r6, 0
- cmp r2, 0x1
- beq _08090E24
- cmp r2, 0x1
- bgt _08090DC8
- cmp r2, 0
- beq _08090DD4
- b _08090F0A
- .align 2, 0
-_08090DC4: .4byte 0xffff0000
-_08090DC8:
- cmp r3, 0x2
- beq _08090EBC
- cmp r3, 0x3
- bne _08090DD2
- b _08090EFC
-_08090DD2:
- b _08090F0A
-_08090DD4:
- ldr r1, _08090E14 @ =gSaveBlock2
- adds r0, r1, 0
- adds r0, 0x5C
- adds r0, r4, r0
- ldrb r2, [r0]
- ands r2, r5
- adds r7, r1, 0
- cmp r2, 0
- bne _08090DE8
- b _08090F0A
-_08090DE8:
- ldr r0, _08090E18 @ =gSaveBlock1
- ldr r3, _08090E1C @ =0x00000938
- adds r1, r0, r3
- adds r1, r4, r1
- ldrb r1, [r1]
- ands r1, r5
- adds r6, r0, 0
- cmp r2, r1
- bne _08090E08
- ldr r1, _08090E20 @ =0x00003a8c
- adds r0, r6, r1
- adds r0, r4, r0
- ldrb r0, [r0]
- ands r0, r5
- cmp r2, r0
- beq _08090E62
-_08090E08:
- adds r1, r7, 0
- adds r1, 0x5C
- adds r1, r4, r1
- mvns r3, r5
- b _08090E8E
- .align 2, 0
-_08090E14: .4byte gSaveBlock2
-_08090E18: .4byte gSaveBlock1
-_08090E1C: .4byte 0x00000938
-_08090E20: .4byte 0x00003a8c
-_08090E24:
- ldr r1, _08090E68 @ =gSaveBlock2
- adds r0, r1, 0
- adds r0, 0x28
- adds r0, r4, r0
- ldrb r2, [r0]
- ands r2, r5
- adds r7, r1, 0
- cmp r2, 0
- beq _08090F0A
- adds r0, r7, 0
- adds r0, 0x5C
- adds r0, r4, r0
- ldrb r0, [r0]
- ands r0, r5
- ldr r6, _08090E6C @ =gSaveBlock1
- cmp r2, r0
- bne _08090E78
- ldr r3, _08090E70 @ =0x00000938
- adds r0, r6, r3
- adds r0, r4, r0
- ldrb r0, [r0]
- ands r0, r5
- cmp r2, r0
- bne _08090E78
- ldr r1, _08090E74 @ =0x00003a8c
- adds r0, r6, r1
- adds r0, r4, r0
- ldrb r0, [r0]
- ands r0, r5
- cmp r2, r0
- bne _08090E78
-_08090E62:
- movs r6, 0x1
- b _08090F0A
- .align 2, 0
-_08090E68: .4byte gSaveBlock2
-_08090E6C: .4byte gSaveBlock1
-_08090E70: .4byte 0x00000938
-_08090E74: .4byte 0x00003a8c
-_08090E78:
- adds r1, r7, 0
- adds r1, 0x28
- adds r1, r4, r1
- mvns r3, r5
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- adds r1, r7, 0
- adds r1, 0x5C
- adds r1, r4, r1
-_08090E8E:
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldr r0, _08090EB4 @ =0x00000938
- adds r1, r6, r0
- adds r1, r4, r1
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _08090EB8 @ =0x00003a8c
- adds r0, r6, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- movs r6, 0
- b _08090F0A
- .align 2, 0
-_08090EB4: .4byte 0x00000938
-_08090EB8: .4byte 0x00003a8c
-_08090EBC:
- ldr r1, _08090EEC @ =gSaveBlock2
- adds r1, 0x5C
- adds r1, r4, r1
- ldrb r2, [r1]
- adds r0, r5, 0
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08090EF0 @ =gSaveBlock1
- ldr r3, _08090EF4 @ =0x00000938
- adds r2, r1, r3
- adds r2, r4, r2
- ldrb r3, [r2]
- adds r0, r5, 0
- orrs r0, r3
- strb r0, [r2]
- ldr r0, _08090EF8 @ =0x00003a8c
- adds r1, r0
- adds r1, r4, r1
- ldrb r2, [r1]
- adds r0, r5, 0
- orrs r0, r2
- strb r0, [r1]
- b _08090F0A
- .align 2, 0
-_08090EEC: .4byte gSaveBlock2
-_08090EF0: .4byte gSaveBlock1
-_08090EF4: .4byte 0x00000938
-_08090EF8: .4byte 0x00003a8c
-_08090EFC:
- ldr r0, _08090F14 @ =gSaveBlock2
- adds r0, 0x28
- adds r0, r4, r0
- ldrb r2, [r0]
- adds r1, r5, 0
- orrs r1, r2
- strb r1, [r0]
-_08090F0A:
- adds r0, r6, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08090F14: .4byte gSaveBlock2
- thumb_func_end sub_8090D90
-
- thumb_func_start GetNationalPokedexCount
-GetNationalPokedexCount: @ 8090F18
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r0, 0
- ldr r7, _08090F30 @ =0x00000181
-_08090F24:
- cmp r6, 0
- beq _08090F34
- cmp r6, 0x1
- beq _08090F3E
- adds r4, r0, 0x1
- b _08090F56
- .align 2, 0
-_08090F30: .4byte 0x00000181
-_08090F34:
- adds r4, r0, 0x1
- lsls r0, r4, 16
- lsrs r0, 16
- movs r1, 0
- b _08090F46
-_08090F3E:
- adds r4, r0, 0x1
- lsls r0, r4, 16
- lsrs r0, 16
- movs r1, 0x1
-_08090F46:
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _08090F56
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08090F56:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, r7
- bls _08090F24
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetNationalPokedexCount
-
- thumb_func_start GetHoennPokedexCount
-GetHoennPokedexCount: @ 8090F68
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r0, 0
-_08090F72:
- cmp r6, 0
- beq _08090F7E
- cmp r6, 0x1
- beq _08090F90
- adds r4, r0, 0x1
- b _08090FB0
-_08090F7E:
- adds r4, r0, 0x1
- lsls r0, r4, 16
- lsrs r0, 16
- bl HoennToNationalOrder
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- b _08090FA0
-_08090F90:
- adds r4, r0, 0x1
- lsls r0, r4, 16
- lsrs r0, 16
- bl HoennToNationalOrder
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
-_08090FA0:
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _08090FB0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08090FB0:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, 0xC9
- bls _08090F72
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetHoennPokedexCount
-
- thumb_func_start sub_8090FC0
-sub_8090FC0: @ 8090FC0
- push {r4,lr}
- movs r0, 0
-_08090FC4:
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl HoennToNationalOrder
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- bne _08090FE4
- movs r0, 0
- b _08090FEC
-_08090FE4:
- adds r0, r4, 0
- cmp r0, 0xC7
- bls _08090FC4
- movs r0, 0x1
-_08090FEC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090FC0
-
- thumb_func_start sub_8090FF4
-sub_8090FF4: @ 8090FF4
- push {r4,r5,lr}
- movs r0, 0
-_08090FF8:
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _08091046
- adds r0, r4, 0
- cmp r0, 0x95
- bls _08090FF8
- movs r0, 0x98
-_08091014:
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _08091046
- adds r0, r4, 0
- cmp r0, 0xF9
- bls _08091014
- movs r0, 0xFC
- ldr r5, _0809104C @ =0x0000017f
-_08091032:
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- bne _08091050
-_08091046:
- movs r0, 0
- b _08091058
- .align 2, 0
-_0809104C: .4byte 0x0000017f
-_08091050:
- adds r0, r4, 0
- cmp r0, r5
- bls _08091032
- movs r0, 0x1
-_08091058:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8090FF4
-
- thumb_func_start sub_8091060
-sub_8091060: @ 8091060
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- movs r0, 0x80
- lsls r0, 1
- ands r0, r4
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _0809108E
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _0809112C @ =0x0000feff
- ands r0, r1
- strh r0, [r2]
- ldr r0, _08091130 @ =REG_BG0CNT
- strh r3, [r0]
- adds r0, 0x8
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
-_0809108E:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r4
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _080910B4
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _08091134 @ =0x0000fdff
- ands r0, r1
- strh r0, [r2]
- ldr r0, _08091138 @ =REG_BG1CNT
- strh r3, [r0]
- adds r0, 0xA
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
-_080910B4:
- movs r0, 0x80
- lsls r0, 3
- ands r0, r4
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _080910DA
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _0809113C @ =0x0000fbff
- ands r0, r1
- strh r0, [r2]
- ldr r0, _08091140 @ =REG_BG2CNT
- strh r3, [r0]
- adds r0, 0xC
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
-_080910DA:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r4
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _08091100
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _08091144 @ =0x0000f7ff
- ands r0, r1
- strh r0, [r2]
- ldr r0, _08091148 @ =REG_BG3CNT
- strh r3, [r0]
- adds r0, 0xE
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
-_08091100:
- movs r0, 0x80
- lsls r0, 5
- ands r5, r0
- cmp r5, 0
- bne _08091124
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _0809114C @ =0x0000efff
- ands r0, r1
- strh r0, [r2]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _08091150 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
-_08091124:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809112C: .4byte 0x0000feff
-_08091130: .4byte REG_BG0CNT
-_08091134: .4byte 0x0000fdff
-_08091138: .4byte REG_BG1CNT
-_0809113C: .4byte 0x0000fbff
-_08091140: .4byte REG_BG2CNT
-_08091144: .4byte 0x0000f7ff
-_08091148: .4byte REG_BG3CNT
-_0809114C: .4byte 0x0000efff
-_08091150: .4byte gReservedSpritePaletteCount
- thumb_func_end sub_8091060
-
- thumb_func_start sub_8091154
-sub_8091154: @ 8091154
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r5, sp
- adds r0, r4, 0
- movs r1, 0x64
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r5]
- mov r5, sp
- adds r0, r4, 0
- movs r1, 0x64
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r5, 0x1]
- mov r5, sp
- adds r0, r4, 0
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r5, 0x2]
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- mov r0, sp
- adds r1, r6, 0
- mov r2, r8
- bl MenuPrint
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8091154
-
- thumb_func_start sub_80911C8
-sub_80911C8: @ 80911C8
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r4, 0
- movs r2, 0xFF
-_080911DC:
- mov r1, sp
- adds r0, r1, r4
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xA
- bls _080911DC
- adds r0, r3, 0
- bl NationalPokedexNumToSpecies
- adds r3, r0, 0
- cmp r3, 0
- beq _08091238
- movs r4, 0
- ldr r2, _08091234 @ =gSpeciesNames
- movs r0, 0xB
- adds r1, r3, 0
- muls r1, r0
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0809124C
- adds r3, r2, 0
- adds r2, r1, 0
-_08091212:
- mov r0, sp
- adds r1, r0, r4
- adds r0, r4, r2
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, r2
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0809124C
- cmp r4, 0x9
- bls _08091212
- b _0809124C
- .align 2, 0
-_08091234: .4byte gSpeciesNames
-_08091238:
- movs r4, 0
- movs r1, 0xAE
-_0809123C:
- mov r2, sp
- adds r0, r2, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _0809123C
-_0809124C:
- mov r0, sp
- adds r1, r6, 0
- adds r2, r5, 0
- bl MenuPrint
- adds r0, r4, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80911C8
-
- thumb_func_start sub_8091260
-sub_8091260: @ 8091260
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x28
- adds r4, r3, 0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080912CC @ =gUnknown_083B5558
- mov r0, sp
- bl StringCopy
- adds r6, r0, 0
- mov r0, sp
- strb r4, [r0, 0x2]
- adds r0, r5, 0
- bl NationalPokedexNumToSpecies
- adds r5, r0, 0
- cmp r5, 0
- beq _080912D4
- movs r4, 0
- ldr r2, _080912D0 @ =gSpeciesNames
- movs r0, 0xB
- adds r1, r5, 0
- muls r1, r0
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080912E6
- adds r3, r2, 0
- adds r2, r1, 0
-_080912AC:
- adds r1, r6, r4
- adds r0, r4, r2
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, r2
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080912E6
- cmp r4, 0x9
- bls _080912AC
- b _080912E6
- .align 2, 0
-_080912CC: .4byte gUnknown_083B5558
-_080912D0: .4byte gSpeciesNames
-_080912D4:
- movs r4, 0
- movs r1, 0xAE
-_080912D8:
- adds r0, r6, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080912D8
-_080912E6:
- adds r1, r6, r4
- movs r0, 0xFF
- strb r0, [r1]
- mov r0, sp
- mov r1, r8
- adds r2, r7, 0
- bl MenuPrint
- adds r0, r4, 0
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8091260
-
- thumb_func_start sub_8091304
-sub_8091304: @ 8091304
- push {r4-r7,lr}
- sub sp, 0x20
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- lsls r2, 24
- lsrs r7, r2, 24
- movs r4, 0
- ldrb r0, [r3]
- ldr r6, _08091340 @ =gDexText_UnknownPoke
- cmp r0, 0xFF
- beq _0809133A
-_0809131E:
- mov r0, sp
- adds r1, r0, r4
- adds r0, r3, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r3, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0809133A
- cmp r4, 0xA
- bls _0809131E
-_0809133A:
- movs r3, 0
- ldrb r0, [r6]
- b _0809134E
- .align 2, 0
-_08091340: .4byte gDexText_UnknownPoke
-_08091344:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r3, r6
- ldrb r0, [r0]
-_0809134E:
- cmp r0, 0xAC
- beq _08091344
- cmp r0, 0
- beq _08091344
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r3, r6
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08091388
- adds r5, r6, 0
-_08091366:
- adds r1, r4, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- adds r2, r0, r1
- adds r1, r3, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r1, r5
- ldrb r0, [r1]
- strb r0, [r2]
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08091366
-_08091388:
- mov r0, sp
- adds r1, r0, r4
- movs r0, 0xFF
- strb r0, [r1]
- mov r0, sp
- mov r1, r12
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_8072B80
- add sp, 0x20
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8091304
-
- thumb_func_start unref_sub_80913A4
-unref_sub_80913A4: @ 80913A4
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r5, 0
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r4, 0
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080913CE
- mov r0, sp
- strb r5, [r0]
- b _080913D6
-_080913CE:
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1]
- movs r5, 0x1
-_080913D6:
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r4, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080913FC
- cmp r5, 0
- bne _080913FC
- mov r0, sp
- strb r5, [r0, 0x1]
- b _08091402
-_080913FC:
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1, 0x1]
-_08091402:
- mov r5, sp
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r4, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r5, 0x2]
- mov r1, sp
- movs r0, 0xAD
- strb r0, [r1, 0x3]
- mov r5, sp
- adds r0, r4, 0
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r5, 0x4]
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x5]
- mov r0, sp
- adds r1, r7, 0
- adds r2, r6, 0
- bl MenuPrint
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80913A4
-
- thumb_func_start sub_8091458
-sub_8091458: @ 8091458
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r1, _080914D4 @ =0x00002710
- muls r0, r1
- movs r1, 0xFE
- bl __divsi3
- adds r7, r0, 0
- movs r1, 0xA
- bl __umodsi3
- cmp r0, 0x4
- bls _0809148A
- adds r7, 0xA
-_0809148A:
- adds r0, r7, 0
- movs r1, 0x78
- bl __udivsi3
- adds r6, r0, 0
- lsls r0, r6, 4
- subs r0, r6
- lsls r0, 3
- subs r0, r7, r0
- movs r1, 0xA
- bl __udivsi3
- adds r7, r0, 0
- mov r1, sp
- movs r0, 0xFC
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x13
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0xA
- bl __udivsi3
- adds r2, r0, 0
- cmp r2, 0
- bne _080914D8
- mov r1, sp
- adds r1, 0x2
- movs r0, 0x12
- strb r0, [r1]
- movs r5, 0x4
- adds r1, 0x1
- adds r0, r6, 0
- adds r0, 0xA1
- strb r0, [r1]
- b _080914F8
- .align 2, 0
-_080914D4: .4byte 0x00002710
-_080914D8:
- mov r1, sp
- adds r1, 0x2
- movs r0, 0xC
- strb r0, [r1]
- adds r1, 0x1
- adds r0, r2, 0
- adds r0, 0xA1
- strb r0, [r1]
- movs r5, 0x5
- add r4, sp, 0x4
- adds r0, r6, 0
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r4]
-_080914F8:
- adds r1, r5, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- add r1, sp
- movs r0, 0xB4
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- mov r0, sp
- adds r4, r0, r2
- adds r0, r7, 0
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, sp
- adds r4, r1, r6
- adds r0, r7, 0
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- adds r2, r1, r5
- movs r1, 0xB2
- strb r1, [r2]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- mov r0, sp
- mov r1, r9
- mov r2, r8
- bl MenuPrint
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8091458
-
- thumb_func_start sub_8091564
-sub_8091564: @ 8091564
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- ldr r7, _080915BC @ =0x000186a0
- muls r0, r7
- ldr r1, _080915C0 @ =0x000011b8
- bl __divsi3
- adds r6, r0, 0
- movs r1, 0xA
- bl __umodsi3
- cmp r0, 0x4
- bls _08091598
- adds r6, 0xA
-_08091598:
- movs r5, 0
- mov r4, sp
- adds r0, r6, 0
- adds r1, r7, 0
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA1
- bne _080915C4
- mov r0, sp
- strb r5, [r0]
- movs r7, 0x2
- adds r0, 0x1
- strb r5, [r0]
- b _080915C8
- .align 2, 0
-_080915BC: .4byte 0x000186a0
-_080915C0: .4byte 0x000011b8
-_080915C4:
- movs r5, 0x1
- movs r7, 0x1
-_080915C8:
- ldr r1, _0809160C @ =0x000186a0
- adds r0, r6, 0
- bl __umodsi3
- adds r6, r0, 0
- mov r0, sp
- adds r4, r0, r7
- ldr r1, _08091610 @ =0x00002710
- adds r0, r6, 0
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA1
- bne _08091614
- cmp r5, 0
- bne _08091614
- adds r1, r7, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r2, r7, 0
- mov r3, sp
- adds r0, r3, r1
- strb r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r3, r2
- strb r5, [r0]
- b _0809161C
- .align 2, 0
-_0809160C: .4byte 0x000186a0
-_08091610: .4byte 0x00002710
-_08091614:
- movs r5, 0x1
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0809161C:
- ldr r1, _08091660 @ =0x00002710
- adds r0, r6, 0
- bl __umodsi3
- adds r6, r0, 0
- mov r0, sp
- adds r4, r0, r7
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r6, 0
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA1
- bne _08091664
- cmp r5, 0
- bne _08091664
- adds r1, r7, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r2, r7, 0
- mov r3, sp
- adds r0, r3, r1
- strb r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r3, r2
- strb r5, [r0]
- b _0809166A
- .align 2, 0
-_08091660: .4byte 0x00002710
-_08091664:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0809166A:
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r6, 0
- bl __umodsi3
- adds r6, r0, 0
- adds r1, r7, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r5, r7, 0
- mov r0, sp
- adds r4, r0, r1
- adds r0, r6, 0
- movs r1, 0x64
- bl __udivsi3
- adds r0, 0xA1
- movs r1, 0
- mov r9, r1
- strb r0, [r4]
- adds r0, r6, 0
- movs r1, 0x64
- bl __umodsi3
- adds r6, r0, 0
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r1, r7, 0
- mov r2, sp
- adds r0, r2, r5
- movs r3, 0xAD
- mov r8, r3
- mov r2, r8
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r5, r7, 0
- mov r3, sp
- adds r4, r3, r1
- adds r0, r6, 0
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0xA1
- strb r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r1, r7, 0
- mov r2, sp
- adds r0, r2, r5
- mov r3, r9
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r2, r7, 0
- add r1, sp
- movs r0, 0xE0
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r3, r7, 0
- mov r0, sp
- adds r1, r0, r2
- movs r0, 0xD6
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r2, r7, 0
- mov r0, sp
- adds r1, r0, r3
- movs r0, 0xE7
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r3, sp
- adds r1, r3, r2
- mov r2, r8
- strb r2, [r1]
- adds r1, r3, r0
- movs r0, 0xFF
- strb r0, [r1]
- mov r0, sp
- mov r1, r10
- ldr r2, [sp, 0x10]
- bl MenuPrint
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8091564
-
- thumb_func_start sub_8091738
-sub_8091738: @ 8091738
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x80
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r6, _080917C8 @ =gMonFootprintTable
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r0, 14
- adds r0, r6
- ldr r0, [r0]
- mov r12, r0
- movs r7, 0
- movs r1, 0
- lsls r4, 14
- mov r8, r4
- lsls r5, 5
-_0809176A:
- mov r2, r12
- adds r0, r2, r1
- ldrb r3, [r0]
- movs r6, 0
- adds r4, r1, 0x1
-_08091774:
- lsls r1, r6, 1
- adds r2, r3, 0
- asrs r2, r1
- movs r0, 0x1
- ands r2, r0
- movs r0, 0x2
- lsls r0, r1
- ands r0, r3
- cmp r0, 0
- beq _0809178C
- movs r0, 0x10
- orrs r2, r0
-_0809178C:
- mov r1, sp
- adds r0, r1, r7
- strb r2, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08091774
- lsls r0, r4, 16
- lsrs r1, r0, 16
- cmp r1, 0x1F
- bls _0809176A
- movs r1, 0xC0
- lsls r1, 19
- adds r1, r5, r1
- add r1, r8
- mov r0, sp
- movs r2, 0x40
- bl CpuSet
- add sp, 0x80
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080917C8: .4byte gMonFootprintTable
- thumb_func_end sub_8091738
-
- thumb_func_start sub_80917CC
-sub_80917CC: @ 80917CC
- push {r4,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsrs r0, 5
- ldr r2, _08091808 @ =0x06000232
- adds r3, r0, r2
- movs r4, 0xF0
- lsls r4, 8
- adds r2, r1, r4
- strh r2, [r3]
- ldr r2, _0809180C @ =0x06000234
- adds r3, r0, r2
- adds r4, 0x1
- adds r2, r1, r4
- strh r2, [r3]
- ldr r2, _08091810 @ =0x06000272
- adds r3, r0, r2
- adds r4, 0x1
- adds r2, r1, r4
- strh r2, [r3]
- ldr r2, _08091814 @ =0x06000274
- adds r0, r2
- adds r4, 0x1
- adds r1, r4
- strh r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08091808: .4byte 0x06000232
-_0809180C: .4byte 0x06000234
-_08091810: .4byte 0x06000272
-_08091814: .4byte 0x06000274
- thumb_func_end sub_80917CC
-
- thumb_func_start sub_8091818
-sub_8091818: @ 8091818
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- lsls r1, 16
- lsrs r0, r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- cmp r4, 0x1
- beq _08091844
- cmp r4, 0x1
- bgt _0809183A
- cmp r4, 0
- beq _0809184C
- b _0809186C
-_0809183A:
- cmp r5, 0x2
- beq _0809185E
- cmp r5, 0x3
- beq _08091852
- b _0809186C
-_08091844:
- cmp r0, r2
- bls _0809186C
- subs r0, 0x1
- b _08091864
-_0809184C:
- cmp r0, r3
- bcs _0809186C
- b _08091862
-_08091852:
- cmp r0, r2
- bls _0809185A
- subs r0, 0x1
- b _08091864
-_0809185A:
- adds r0, r3, 0
- b _0809186C
-_0809185E:
- cmp r0, r3
- bcs _0809186A
-_08091862:
- adds r0, 0x1
-_08091864:
- lsls r0, 16
- lsrs r0, 16
- b _0809186C
-_0809186A:
- adds r0, r2, 0
-_0809186C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8091818
-
- thumb_func_start nullsub_59
-nullsub_59: @ 8091874
- bx lr
- thumb_func_end nullsub_59
-
- thumb_func_start sub_8091878
-sub_8091878: @ 8091878
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _080918A0 @ =gUnknown_02024E8C
- adds r3, r4, 0
- ldr r2, _080918A4 @ =gUnknown_083B57A4
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _080918A8 @ =gUnknown_083B5794
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _080918AC @ =gSpriteAnimTable_81E7C64
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080918A0: .4byte gUnknown_02024E8C
-_080918A4: .4byte gUnknown_083B57A4
-_080918A8: .4byte gUnknown_083B5794
-_080918AC: .4byte gSpriteAnimTable_81E7C64
- thumb_func_end sub_8091878
-
- thumb_func_start sub_80918B0
-sub_80918B0: @ 80918B0
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _080918DC @ =gUnknown_02024E8C
- adds r3, r4, 0
- ldr r2, _080918E0 @ =gUnknown_083B57A4
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _080918E4 @ =gUnknown_083B5794
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _080918E8 @ =gUnknown_081EC2A4
- ldr r0, [r0]
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080918DC: .4byte gUnknown_02024E8C
-_080918E0: .4byte gUnknown_083B57A4
-_080918E4: .4byte gUnknown_083B5794
-_080918E8: .4byte gUnknown_081EC2A4
- thumb_func_end sub_80918B0
-
- thumb_func_start sub_80918EC
-sub_80918EC: @ 80918EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r3, 16
- lsrs r3, 16
- mov r8, r3
- adds r0, r7, 0
- bl NationalPokedexNumToSpecies
- adds r7, r0, 0
- cmp r7, SPECIES_UNOWN
- beq _0809199C
- movs r0, 0x9A
- lsls r0, 1
- cmp r7, r0
- beq _08091958
- lsls r6, r7, 3
- ldr r0, _0809194C @ =gMonFrontPicTable
- adds r0, r6, r0
- ldr r1, _08091950 @ =gMonFrontPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08091954 @ =gUnknown_083B5584
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- bl DecompressPicFromTable_2
- b _080919CE
- .align 2, 0
-_0809194C: .4byte gMonFrontPicTable
-_08091950: .4byte gMonFrontPicCoords
-_08091954: .4byte gUnknown_083B5584
-_08091958:
- lsls r6, r7, 3
- ldr r0, _0809198C @ =gMonFrontPicTable
- adds r0, r6
- ldr r2, _08091990 @ =gMonFrontPicCoords
- lsls r1, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08091994 @ =gUnknown_083B5584
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, _08091998 @ =gSaveBlock2
- ldr r4, [r4, 0x20]
- str r4, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- b _080919CE
- .align 2, 0
-_0809198C: .4byte gMonFrontPicTable
-_08091990: .4byte gMonFrontPicCoords
-_08091994: .4byte gUnknown_083B5584
-_08091998: .4byte gSaveBlock2
-_0809199C:
- lsls r6, r7, 3
- ldr r0, _08091A30 @ =gMonFrontPicTable
- adds r0, r6
- ldr r2, _08091A34 @ =gMonFrontPicCoords
- lsls r1, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08091A38 @ =gUnknown_083B5584
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, _08091A3C @ =gSaveBlock2
- ldr r4, [r4, 0x1C]
- str r4, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
-_080919CE:
- ldr r0, _08091A40 @ =gMonPaletteTable
- adds r0, r6, r0
- ldr r0, [r0]
- mov r1, r8
- lsls r4, r1, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- mov r3, r8
- lsls r1, r3, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8091878
- ldr r0, _08091A44 @ =gUnknown_02024E8C
- mov r5, r9
- lsls r1, r5, 16
- asrs r1, 16
- mov r3, r10
- lsls r2, r3, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08091A48 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- strb r1, [r2, 0x5]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08091A30: .4byte gMonFrontPicTable
-_08091A34: .4byte gMonFrontPicCoords
-_08091A38: .4byte gUnknown_083B5584
-_08091A3C: .4byte gSaveBlock2
-_08091A40: .4byte gMonPaletteTable
-_08091A44: .4byte gUnknown_02024E8C
-_08091A48: .4byte gSprites
- thumb_func_end sub_80918EC
-
- thumb_func_start sub_8091A4C
-sub_8091A4C: @ 8091A4C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- mov r9, r3
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r1, r9
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r0, r5, 3
- ldr r1, _08091AE4 @ =gTrainerFrontPicTable
- adds r0, r1
- ldr r1, _08091AE8 @ =gTrainerFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08091AEC @ =gUnknown_083B5584
- ldr r4, [r4]
- str r4, [sp]
- str r5, [sp, 0x4]
- bl DecompressPicFromTable_2
- adds r0, r5, 0
- movs r1, 0
- bl sub_80918B0
- ldr r0, _08091AF0 @ =gUnknown_02024E8C
- lsls r6, 16
- asrs r6, 16
- mov r3, r8
- lsls r3, 16
- asrs r3, 16
- mov r8, r3
- adds r1, r6, 0
- mov r2, r8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08091AF4 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- mov r1, r9
- lsls r1, 4
- mov r9, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- mov r3, r9
- orrs r1, r3
- strb r1, [r2, 0x5]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08091AE4: .4byte gTrainerFrontPicTable
-_08091AE8: .4byte gTrainerFrontPicCoords
-_08091AEC: .4byte gUnknown_083B5584
-_08091AF0: .4byte gUnknown_02024E8C
-_08091AF4: .4byte gSprites
- thumb_func_end sub_8091A4C
-
- thumb_func_start sub_8091AF8
-sub_8091AF8: @ 8091AF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r4, [sp, 0x34]
- ldr r5, [sp, 0x38]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x4]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x8]
- lsls r5, 24
- lsrs r5, 24
- mov r10, r5
- bl SortPokedex
- movs r5, 0
- movs r6, 0
- ldr r4, _08091D08 @ =0x00000181
- ldr r3, _08091D0C @ =gPokedexView
-_08091B32:
- ldr r2, [r3]
- lsls r0, r5, 2
- adds r1, r2, r0
- ldrb r0, [r1, 0x2]
- lsls r0, 31
- cmp r0, 0
- beq _08091B4E
- lsls r0, r6, 2
- adds r0, r2, r0
- ldr r1, [r1]
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08091B4E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r4
- bls _08091B32
- ldr r1, _08091D0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- adds r1, r6, 0
- strh r6, [r0]
- cmp r7, 0xFF
- beq _08091C04
- movs r5, 0
- lsls r0, r1, 16
- movs r6, 0
- cmp r0, 0
- beq _08091BFA
- lsls r7, 2
- ldr r0, _08091D14 @ =gUnknown_083B57BC
- adds r0, 0x3
- adds r0, r7, r0
- str r0, [sp, 0xC]
- ldr r0, _08091D14 @ =gUnknown_083B57BC
- adds r0, r7
- mov r9, r0
-_08091B82:
- ldr r1, _08091D0C @ =gPokedexView
- ldr r0, [r1]
- lsls r4, r5, 2
- adds r0, r4
- ldrh r0, [r0]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _08091D18 @ =gSpeciesNames
- movs r0, 0xB
- muls r0, r2
- adds r0, r1
- ldrb r2, [r0]
- adds r3, r2, 0
- mov r0, r9
- ldrb r0, [r0]
- cmp r2, r0
- bcc _08091BBA
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08091D14 @ =gUnknown_083B57BC
- adds r1, 0x1
- adds r1, r7, r1
- ldrb r1, [r1]
- adds r0, r1
- cmp r2, r0
- blt _08091BD2
-_08091BBA:
- ldr r0, _08091D14 @ =gUnknown_083B57BC
- adds r0, 0x2
- adds r0, r7, r0
- ldrb r2, [r0]
- cmp r3, r2
- bcc _08091BE6
- ldrb r1, [r0]
- ldr r2, [sp, 0xC]
- ldrb r0, [r2]
- adds r1, r0
- cmp r3, r1
- bge _08091BE6
-_08091BD2:
- ldr r2, _08091D0C @ =gPokedexView
- ldr r0, [r2]
- lsls r1, r6, 2
- adds r1, r0, r1
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08091BE6:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _08091D0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- ldrh r0, [r0]
- cmp r5, r0
- bcc _08091B82
-_08091BFA:
- ldr r1, _08091D0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- strh r6, [r0]
-_08091C04:
- ldr r0, [sp, 0x4]
- cmp r0, 0xFF
- beq _08091C74
- movs r5, 0
- movs r6, 0
- ldr r1, _08091D0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- ldrh r0, [r0]
- cmp r6, r0
- bcs _08091C6A
- adds r7, r1, 0
- ldr r0, _08091D1C @ =gBaseStats
- mov r8, r0
-_08091C22:
- ldr r0, [r7]
- lsls r4, r5, 2
- adds r0, r4
- ldrh r0, [r0]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x19]
- lsls r0, 25
- lsrs r0, 25
- ldr r1, [sp, 0x4]
- cmp r1, r0
- bne _08091C58
- ldr r0, [r7]
- lsls r1, r6, 2
- adds r1, r0, r1
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08091C58:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [r7]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- ldrh r0, [r0]
- cmp r5, r0
- bcc _08091C22
-_08091C6A:
- ldr r1, _08091D0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- strh r6, [r0]
-_08091C74:
- ldr r0, [sp, 0x8]
- cmp r0, 0xFF
- bne _08091C8A
- mov r1, r10
- cmp r1, 0xFF
- bne _08091C82
- b _08091DA6
-_08091C82:
- mov r2, r10
- str r2, [sp, 0x8]
- movs r0, 0xFF
- mov r10, r0
-_08091C8A:
- mov r1, r10
- cmp r1, 0xFF
- bne _08091D20
- movs r5, 0
- movs r6, 0
- ldr r2, _08091D0C @ =gPokedexView
- ldr r0, [r2]
- ldr r1, _08091D10 @ =0x0000060c
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- bcs _08091D9C
- adds r3, r2, 0
- mov r7, sp
- mov r8, r2
-_08091CA8:
- ldr r0, [r3]
- lsls r4, r5, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x2]
- lsls r0, 30
- cmp r0, 0
- bge _08091CF2
- ldrh r0, [r1]
- str r3, [sp, 0x10]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _08091D1C @ =gBaseStats
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x6]
- strb r1, [r7]
- ldrb r0, [r0, 0x7]
- strb r0, [r7, 0x1]
- ldr r3, [sp, 0x10]
- ldr r2, [sp, 0x8]
- cmp r1, r2
- beq _08091CE0
- cmp r0, r2
- bne _08091CF2
-_08091CE0:
- ldr r0, [r3]
- lsls r1, r6, 2
- adds r1, r0, r1
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08091CF2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- mov r1, r8
- ldr r0, [r1]
- ldr r2, _08091D10 @ =0x0000060c
- adds r0, r2
- ldrh r0, [r0]
- cmp r5, r0
- bcc _08091CA8
- b _08091D9C
- .align 2, 0
-_08091D08: .4byte 0x00000181
-_08091D0C: .4byte gPokedexView
-_08091D10: .4byte 0x0000060c
-_08091D14: .4byte gUnknown_083B57BC
-_08091D18: .4byte gSpeciesNames
-_08091D1C: .4byte gBaseStats
-_08091D20:
- movs r5, 0
- movs r6, 0
- ldr r1, _08091E0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091E10 @ =0x0000060c
- adds r0, r2
- ldrh r0, [r0]
- cmp r6, r0
- bcs _08091D9C
- mov r7, sp
-_08091D34:
- ldr r0, [r1]
- lsls r1, r5, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x2]
- lsls r0, 30
- adds r4, r1, 0
- cmp r0, 0
- bge _08091D88
- ldrh r0, [r2]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _08091E14 @ =gBaseStats
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x6]
- strb r1, [r7]
- ldrb r0, [r0, 0x7]
- strb r0, [r7, 0x1]
- ldr r2, [sp, 0x8]
- cmp r1, r2
- bne _08091D6A
- cmp r0, r10
- beq _08091D74
-_08091D6A:
- cmp r1, r10
- bne _08091D88
- ldr r1, [sp, 0x8]
- cmp r0, r1
- bne _08091D88
-_08091D74:
- ldr r2, _08091E0C @ =gPokedexView
- ldr r0, [r2]
- lsls r1, r6, 2
- adds r1, r0, r1
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08091D88:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _08091E0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091E10 @ =0x0000060c
- adds r0, r2
- ldrh r0, [r0]
- cmp r5, r0
- bcc _08091D34
-_08091D9C:
- ldr r1, _08091E0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091E10 @ =0x0000060c
- adds r0, r2
- strh r6, [r0]
-_08091DA6:
- ldr r1, _08091E0C @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08091E10 @ =0x0000060c
- adds r1, r0, r2
- ldrh r0, [r1]
- cmp r0, 0
- beq _08091DFA
- adds r5, r0, 0
- ldr r0, _08091E18 @ =0x00000181
- cmp r5, r0
- bhi _08091DFA
- ldr r4, _08091E0C @ =gPokedexView
- movs r1, 0x2
- negs r1, r1
- mov r10, r1
- movs r2, 0x3
- negs r2, r2
- mov r9, r2
- mov r8, r0
- ldr r0, _08091E1C @ =0x0000ffff
- adds r7, r0, 0
-_08091DD0:
- ldr r1, [r4]
- lsls r3, r5, 2
- adds r1, r3
- ldrh r0, [r1]
- orrs r0, r7
- strh r0, [r1]
- ldrb r2, [r1, 0x2]
- mov r0, r10
- ands r0, r2
- strb r0, [r1, 0x2]
- ldr r1, [r4]
- adds r1, r3
- ldrb r2, [r1, 0x2]
- mov r0, r9
- ands r0, r2
- strb r0, [r1, 0x2]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bls _08091DD0
-_08091DFA:
- adds r0, r6, 0
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08091E0C: .4byte gPokedexView
-_08091E10: .4byte 0x0000060c
-_08091E14: .4byte gBaseStats
-_08091E18: .4byte 0x00000181
-_08091E1C: .4byte 0x0000ffff
- thumb_func_end sub_8091AF8
-
- thumb_func_start sub_8091E20
-sub_8091E20: @ 8091E20
- push {lr}
- sub sp, 0x8
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x9
- movs r2, 0x78
- movs r3, 0xD0
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_8091E20
-
- thumb_func_start sub_8091E3C
-sub_8091E3C: @ 8091E3C
- push {lr}
- ldr r0, _08091E50 @ =sub_8091E54
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08091E50: .4byte sub_8091E54
- thumb_func_end sub_8091E3C
-
- thumb_func_start sub_8091E54
-sub_8091E54: @ 8091E54
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08091E78 @ =gMain
- ldr r2, _08091E7C @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x4
- bhi _08091E98
- lsls r0, 2
- ldr r1, _08091E80 @ =_08091E84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08091E78: .4byte gMain
-_08091E7C: .4byte 0x0000043c
-_08091E80: .4byte _08091E84
- .align 2, 0
-_08091E84:
- .4byte _08091E98
- .4byte _08091F50
- .4byte _08091FC0
- .4byte _08091FE0
- .4byte _0809200C
-_08091E98:
- ldr r0, _08091F1C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08091EA6
- b _08092030
-_08091EA6:
- ldr r0, _08091F20 @ =gPokedexView
- ldr r0, [r0]
- ldr r1, _08091F24 @ =0x0000064a
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- movs r0, 0
- bl sub_8091060
- ldr r0, _08091F28 @ =gPokedexMenuSearch_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08091F2C @ =gUnknown_08E96D2C
- ldr r1, _08091F30 @ =0x06007800
- bl LZ77UnCompVram
- ldr r0, _08091F34 @ =gPokedexMenuSearch_Pal + 0x2
- movs r1, 0x1
- movs r2, 0x7E
- bl LoadPalette
- bl IsNationalPokedex
- cmp r0, 0
- bne _08091F10
- movs r4, 0
- ldr r2, _08091F38 @ =0x06007a80
- mov r8, r2
- ldr r0, _08091F3C @ =0x06007b00
- mov r12, r0
- movs r5, 0x1
- ldr r7, _08091F40 @ =0x06007ac0
- ldr r6, _08091F44 @ =0x06007b40
-_08091EEC:
- lsls r1, r4, 1
- mov r0, r8
- adds r2, r1, r0
- mov r0, r12
- adds r3, r1, r0
- ldrh r0, [r3]
- strh r0, [r2]
- adds r2, r1, r7
- adds r1, r6
- ldrh r0, [r1]
- strh r0, [r2]
- strh r5, [r3]
- strh r5, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x10
- bls _08091EEC
-_08091F10:
- ldr r0, _08091F48 @ =gMain
- ldr r1, _08091F4C @ =0x0000043c
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _08092030
- .align 2, 0
-_08091F1C: .4byte gPaletteFade
-_08091F20: .4byte gPokedexView
-_08091F24: .4byte 0x0000064a
-_08091F28: .4byte gPokedexMenuSearch_Gfx
-_08091F2C: .4byte gUnknown_08E96D2C
-_08091F30: .4byte 0x06007800
-_08091F34: .4byte gPokedexMenuSearch_Pal + 0x2
-_08091F38: .4byte 0x06007a80
-_08091F3C: .4byte 0x06007b00
-_08091F40: .4byte 0x06007ac0
-_08091F44: .4byte 0x06007b40
-_08091F48: .4byte gMain
-_08091F4C: .4byte 0x0000043c
-_08091F50:
- ldr r4, _08091FA8 @ =gWindowConfig_81E7064
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _08091FAC @ =gUnknown_083A05CC
- bl LoadCompressedObjectPic
- ldr r0, _08091FB0 @ =gUnknown_083A05DC
- bl LoadSpritePalettes
- adds r0, r5, 0
- bl sub_809308C
- movs r4, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r1, r0, 3
- ldr r3, _08091FB4 @ =gTasks + 0x8
- movs r2, 0
-_08091F7C:
- lsls r0, r4, 1
- adds r0, r1
- adds r0, r3
- strh r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08091F7C
- adds r0, r5, 0
- bl sub_8092EB0
- movs r0, 0
- bl sub_8092AB0
- adds r0, r5, 0
- bl sub_8092B68
- ldr r1, _08091FB8 @ =gMain
- ldr r2, _08091FBC @ =0x0000043c
- adds r1, r2
- b _08091FF6
- .align 2, 0
-_08091FA8: .4byte gWindowConfig_81E7064
-_08091FAC: .4byte gUnknown_083A05CC
-_08091FB0: .4byte gUnknown_083A05DC
-_08091FB4: .4byte gTasks + 0x8
-_08091FB8: .4byte gMain
-_08091FBC: .4byte 0x0000043c
-_08091FC0:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08091FD8 @ =gMain
- ldr r0, _08091FDC @ =0x0000043c
- adds r1, r0
- b _08091FF6
- .align 2, 0
-_08091FD8: .4byte gMain
-_08091FDC: .4byte 0x0000043c
-_08091FE0:
- ldr r1, _08092000 @ =REG_BG3CNT
- ldr r2, _08092004 @ =0x00000f03
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0xE2
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08092008 @ =0x0000043c
- adds r1, r3, r0
-_08091FF6:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08092030
- .align 2, 0
-_08092000: .4byte REG_BG3CNT
-_08092004: .4byte 0x00000f03
-_08092008: .4byte 0x0000043c
-_0809200C:
- ldr r0, _0809203C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _08092030
- ldr r1, _08092040 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08092044 @ =sub_809204C
- str r1, [r0]
- ldr r1, _08092048 @ =0x0000043c
- adds r0, r3, r1
- strb r2, [r0]
-_08092030:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809203C: .4byte gPaletteFade
-_08092040: .4byte gTasks
-_08092044: .4byte sub_809204C
-_08092048: .4byte 0x0000043c
- thumb_func_end sub_8091E54
-
- thumb_func_start sub_809204C
-sub_809204C: @ 809204C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08092074 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x8]
- bl sub_8092AB0
- adds r0, r5, 0
- bl sub_8092B68
- ldr r0, _08092078 @ =sub_809207C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08092074: .4byte gTasks
-_08092078: .4byte sub_809207C
- thumb_func_end sub_809204C
-
- thumb_func_start sub_809207C
-sub_809207C: @ 809207C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080920A4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080920B0
- movs r0, 0x3
- bl PlaySE
- ldr r0, _080920A8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080920AC @ =sub_80927B8
- str r0, [r1]
- b _0809216C
- .align 2, 0
-_080920A4: .4byte gMain
-_080920A8: .4byte gTasks
-_080920AC: .4byte sub_80927B8
-_080920B0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809210C
- ldr r1, _080920D4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r4, [r5, r0]
- cmp r4, 0x1
- beq _080920E8
- cmp r4, 0x1
- bgt _080920D8
- cmp r4, 0
- beq _080920DE
- b _0809216C
- .align 2, 0
-_080920D4: .4byte gTasks
-_080920D8:
- cmp r4, 0x2
- beq _080920FC
- b _0809216C
-_080920DE:
- movs r0, 0x15
- bl PlaySE
- strh r4, [r5, 0xA]
- b _080920F2
-_080920E8:
- movs r0, 0x15
- bl PlaySE
- movs r0, 0x4
- strh r0, [r5, 0xA]
-_080920F2:
- ldr r0, _080920F8 @ =sub_809217C
- str r0, [r5]
- b _0809216C
- .align 2, 0
-_080920F8: .4byte sub_809217C
-_080920FC:
- movs r0, 0x3
- bl PlaySE
- ldr r0, _08092108 @ =sub_80927B8
- str r0, [r5]
- b _0809216C
- .align 2, 0
-_08092108: .4byte sub_80927B8
-_0809210C:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0809213A
- ldr r0, _08092174 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r4, r1, r0
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _0809213A
- movs r0, 0x6D
- bl PlaySE
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092AB0
-_0809213A:
- ldr r0, _08092178 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809216C
- ldr r0, _08092174 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r4, r1, r0
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bgt _0809216C
- movs r0, 0x6D
- bl PlaySE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092AB0
-_0809216C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08092174: .4byte gTasks
-_08092178: .4byte gMain
- thumb_func_end sub_809207C
-
- thumb_func_start sub_809217C
-sub_809217C: @ 809217C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080921A8 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0xA]
- bl sub_8092AD4
- adds r0, r5, 0
- bl sub_8092B68
- ldr r0, _080921AC @ =sub_80921B0
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080921A8: .4byte gTasks
-_080921AC: .4byte sub_80921B0
- thumb_func_end sub_809217C
-
- thumb_func_start sub_80921B0
-sub_80921B0: @ 80921B0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080921D8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080921E4
- bl IsNationalPokedex
- ldr r6, _080921DC @ =gUnknown_083B586C
- cmp r0, 0
- bne _080921F0
- ldr r6, _080921E0 @ =gUnknown_083B58A4
- b _080921F0
- .align 2, 0
-_080921D8: .4byte gTasks
-_080921DC: .4byte gUnknown_083B586C
-_080921E0: .4byte gUnknown_083B58A4
-_080921E4:
- bl IsNationalPokedex
- ldr r6, _0809221C @ =gUnknown_083B5850
- cmp r0, 0
- bne _080921F0
- ldr r6, _08092220 @ =gUnknown_083B5888
-_080921F0:
- ldr r0, _08092224 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _08092230
- movs r0, 0x17
- bl PlaySE
- adds r0, r5, 0
- bl sub_8092EB0
- ldr r0, _08092228 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809222C @ =sub_809204C
- str r0, [r1]
- b _080923EC
- .align 2, 0
-_0809221C: .4byte gUnknown_083B5850
-_08092220: .4byte gUnknown_083B5888
-_08092224: .4byte gMain
-_08092228: .4byte gTasks
-_0809222C: .4byte sub_809204C
-_08092230:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08092300
- ldr r0, _080922B4 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r6, r1, r0
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- cmp r0, 0x6
- bne _080922F0
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080922D4
- ldr r1, _080922B8 @ =gUnknown_0202FFBA
- movs r0, 0x40
- strb r0, [r1]
- ldr r7, _080922BC @ =gPokedexView
- ldr r1, [r7]
- ldr r0, _080922C0 @ =0x0000062a
- adds r2, r1, r0
- movs r0, 0x40
- strh r0, [r2]
- ldr r0, _080922C4 @ =gUnknown_0202FFB8
- strh r3, [r0]
- movs r2, 0xC2
- lsls r2, 3
- adds r1, r2
- strh r3, [r1]
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_8092E10
- ldr r4, _080922C8 @ =gSaveBlock2
- strb r0, [r4, 0x19]
- bl IsNationalPokedex
- cmp r0, 0
- bne _08092288
- movs r0, 0
- strb r0, [r4, 0x19]
-_08092288:
- ldr r0, [r7]
- ldrb r1, [r4, 0x19]
- ldr r2, _080922CC @ =0x00000614
- adds r0, r2
- strh r1, [r0]
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_8092E10
- strb r0, [r4, 0x18]
- ldr r0, [r7]
- ldrb r1, [r4, 0x18]
- movs r2, 0xC3
- lsls r2, 3
- adds r0, r2
- strh r1, [r0]
- movs r0, 0x3
- bl PlaySE
- ldr r0, _080922D0 @ =sub_80927B8
- str r0, [r6]
- b _080923EC
- .align 2, 0
-_080922B4: .4byte gTasks
-_080922B8: .4byte gUnknown_0202FFBA
-_080922BC: .4byte gPokedexView
-_080922C0: .4byte 0x0000062a
-_080922C4: .4byte gUnknown_0202FFB8
-_080922C8: .4byte gSaveBlock2
-_080922CC: .4byte 0x00000614
-_080922D0: .4byte sub_80927B8
-_080922D4:
- ldr r0, _080922E8 @ =gDexText_Searching
- bl sub_8091E20
- ldr r0, _080922EC @ =sub_80923FC
- str r0, [r6]
- movs r0, 0x70
- bl PlaySE
- b _080923EC
- .align 2, 0
-_080922E8: .4byte gDexText_Searching
-_080922EC: .4byte sub_80923FC
-_080922F0:
- movs r0, 0x15
- bl PlaySE
- ldr r0, _080922FC @ =sub_80925CC
- str r0, [r6]
- b _080923EC
- .align 2, 0
-_080922FC: .4byte sub_80925CC
-_08092300:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08092338
- ldr r1, _080923F4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08092338
- movs r0, 0x5
- bl PlaySE
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- strh r1, [r4, 0xA]
- ldrb r0, [r4, 0x8]
- bl sub_8092AD4
-_08092338:
- ldr r0, _080923F8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08092374
- ldr r1, _080923F4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x1]
- cmp r0, 0xFF
- beq _08092374
- movs r0, 0x5
- bl PlaySE
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x1]
- strh r1, [r4, 0xA]
- ldrb r0, [r4, 0x8]
- bl sub_8092AD4
-_08092374:
- ldr r0, _080923F8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080923B0
- ldr r1, _080923F4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x2]
- cmp r0, 0xFF
- beq _080923B0
- movs r0, 0x5
- bl PlaySE
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x2]
- strh r1, [r4, 0xA]
- ldrb r0, [r4, 0x8]
- bl sub_8092AD4
-_080923B0:
- ldr r0, _080923F8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080923EC
- ldr r1, _080923F4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- cmp r0, 0xFF
- beq _080923EC
- movs r0, 0x5
- bl PlaySE
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x3]
- strh r1, [r4, 0xA]
- ldrb r0, [r4, 0x8]
- bl sub_8092AD4
-_080923EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080923F4: .4byte gTasks
-_080923F8: .4byte gMain
- thumb_func_end sub_80921B0
-
- thumb_func_start sub_80923FC
-sub_80923FC: @ 80923FC
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_8092E10
- mov r10, r0
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_8092E10
- mov r9, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- adds r0, r5, 0
- movs r1, 0
- bl sub_8092E10
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8092E10
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8092E10
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8092E10
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r10
- mov r1, r9
- mov r2, r8
- adds r3, r6, 0
- bl sub_8091AF8
- ldr r1, _0809249C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080924A0 @ =sub_80924A4
- str r1, [r0]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809249C: .4byte gTasks
-_080924A0: .4byte sub_80924A4
- thumb_func_end sub_80923FC
-
- thumb_func_start sub_80924A4
-sub_80924A4: @ 80924A4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _080924F6
- ldr r0, _080924D0 @ =gPokedexView
- ldr r0, [r0]
- ldr r1, _080924D4 @ =0x0000060c
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _080924DC
- movs r0, 0x1F
- bl PlaySE
- ldr r0, _080924D8 @ =gDexText_SearchComplete
- bl sub_8091E20
- b _080924E8
- .align 2, 0
-_080924D0: .4byte gPokedexView
-_080924D4: .4byte 0x0000060c
-_080924D8: .4byte gDexText_SearchComplete
-_080924DC:
- movs r0, 0x20
- bl PlaySE
- ldr r0, _080924FC @ =gDexText_NoMatching
- bl sub_8091E20
-_080924E8:
- ldr r0, _08092500 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08092504 @ =sub_8092508
- str r0, [r1]
-_080924F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080924FC: .4byte gDexText_NoMatching
-_08092500: .4byte gTasks
-_08092504: .4byte sub_8092508
- thumb_func_end sub_80924A4
-
- thumb_func_start sub_8092508
-sub_8092508: @ 8092508
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r2, r4, 0
- ldr r0, _08092570 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080925A4
- ldr r5, _08092574 @ =gPokedexView
- ldr r1, [r5]
- ldr r3, _08092578 @ =0x0000060c
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _08092590
- ldr r0, _0809257C @ =0x0000064f
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x5
- bl sub_8092E10
- ldr r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08092580 @ =0x00000612
- adds r1, r2
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0x4
- bl sub_8092E10
- ldr r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08092584 @ =0x00000616
- adds r1, r3
- strh r0, [r1]
- ldr r1, _08092588 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809258C @ =sub_80927B8
- str r1, [r0]
- movs r0, 0x3
- bl PlaySE
- b _080925A4
- .align 2, 0
-_08092570: .4byte gMain
-_08092574: .4byte gPokedexView
-_08092578: .4byte 0x0000060c
-_0809257C: .4byte 0x0000064f
-_08092580: .4byte 0x00000612
-_08092584: .4byte 0x00000616
-_08092588: .4byte gTasks
-_0809258C: .4byte sub_80927B8
-_08092590:
- ldr r0, _080925AC @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080925B0 @ =sub_809217C
- str r0, [r1]
- movs r0, 0x17
- bl PlaySE
-_080925A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080925AC: .4byte gTasks
-_080925B0: .4byte sub_809217C
- thumb_func_end sub_8092508
-
- thumb_func_start sub_80925B4
-sub_80925B4: @ 80925B4
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 15
- adds r1, 0x1
- lsls r1, 27
- lsrs r1, 24
- movs r0, 0x90
- bl sub_814AD7C
- pop {r0}
- bx r0
- thumb_func_end sub_80925B4
-
- thumb_func_start sub_80925CC
-sub_80925CC: @ 80925CC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_8092C8C
- ldr r2, _08092630 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r6, r1, r2
- ldrb r0, [r6, 0xA]
- adds r2, 0x8
- adds r1, r2
- ldr r2, _08092634 @ =gUnknown_083B5A7C
- lsls r0, 3
- adds r0, r2
- ldrb r5, [r0, 0x4]
- lsls r5, 1
- adds r5, r1, r5
- ldrb r0, [r0, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r5]
- strh r0, [r6, 0x24]
- ldrh r0, [r1]
- strh r0, [r6, 0x26]
- adds r0, r4, 0
- bl sub_8092D78
- ldr r1, _08092638 @ =0x0000ffff
- ldr r3, _0809263C @ =0x00002d9f
- movs r0, 0xB
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0xC
- bl CreateBlendedOutlineCursor
- ldrh r0, [r5]
- movs r1, 0x1
- bl sub_80925B4
- ldr r0, _08092640 @ =sub_8092644
- str r0, [r6]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08092630: .4byte gTasks
-_08092634: .4byte gUnknown_083B5A7C
-_08092638: .4byte 0x0000ffff
-_0809263C: .4byte 0x00002d9f
-_08092640: .4byte sub_8092644
- thumb_func_end sub_80925CC
-
- thumb_func_start sub_8092644
-sub_8092644: @ 8092644
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, _080926A8 @ =gTasks
- lsls r2, r7, 2
- adds r2, r7
- lsls r2, 3
- adds r6, r2, r3
- ldrb r1, [r6, 0xA]
- ldr r0, _080926AC @ =gUnknown_083B5A7C
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- mov r8, r0
- adds r3, 0x8
- adds r2, r3
- ldrb r0, [r1, 0x4]
- lsls r0, 1
- adds r4, r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 1
- adds r5, r2, r0
- ldrh r0, [r1, 0x6]
- subs r0, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080926B0 @ =gMain
- mov r12, r0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080926B4
- bl sub_814ADC8
- movs r0, 0x15
- bl PlaySE
- movs r0, 0x12
- movs r1, 0x1
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x1
- bl sub_8092C8C
- b _080926E0
- .align 2, 0
-_080926A8: .4byte gTasks
-_080926AC: .4byte gUnknown_083B5A7C
-_080926B0: .4byte gMain
-_080926B4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080926EC
- bl sub_814ADC8
- movs r0, 0x17
- bl PlaySE
- movs r0, 0x12
- movs r1, 0x1
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x1
- bl sub_8092C8C
- ldrh r0, [r6, 0x24]
- strh r0, [r4]
- ldrh r0, [r6, 0x26]
- strh r0, [r5]
-_080926E0:
- ldr r0, _080926E8 @ =sub_809217C
- str r0, [r6]
- b _080927AE
- .align 2, 0
-_080926E8: .4byte sub_809217C
-_080926EC:
- movs r3, 0
- mov r0, r12
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809274C
- ldrh r0, [r4]
- cmp r0, 0
- beq _08092716
- movs r1, 0
- bl sub_80925B4
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80925B4
- b _08092734
-_08092716:
- ldrh r0, [r5]
- cmp r0, 0
- beq _08092730
- subs r0, 0x1
- strh r0, [r5]
- adds r0, r7, 0
- bl sub_8092D78
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80925B4
- movs r3, 0x1
-_08092730:
- cmp r3, 0
- beq _080927AE
-_08092734:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- ldrh r1, [r5]
- adds r0, r1
- lsls r0, 3
- add r0, r8
- ldr r0, [r0]
- bl sub_8091E20
- b _080927AE
-_0809274C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080927AE
- ldrh r0, [r4]
- cmp r0, 0x4
- bhi _08092774
- cmp r0, r2
- bcs _08092774
- movs r1, 0
- bl sub_80925B4
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80925B4
- b _08092798
-_08092774:
- cmp r2, 0x5
- bls _08092794
- ldrh r1, [r5]
- subs r0, r2, 0x5
- cmp r1, r0
- bge _08092794
- adds r0, r1, 0x1
- strh r0, [r5]
- adds r0, r7, 0
- bl sub_8092D78
- movs r0, 0x5
- movs r1, 0x1
- bl sub_80925B4
- movs r3, 0x1
-_08092794:
- cmp r3, 0
- beq _080927AE
-_08092798:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- ldrh r1, [r5]
- adds r0, r1
- lsls r0, 3
- add r0, r8
- ldr r0, [r0]
- bl sub_8091E20
-_080927AE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8092644
-
- thumb_func_start sub_80927B8
-sub_80927B8: @ 80927B8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080927E8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080927EC @ =sub_80927F0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080927E8: .4byte gTasks
-_080927EC: .4byte sub_80927F0
- thumb_func_end sub_80927B8
-
- thumb_func_start sub_80927F0
-sub_80927F0: @ 80927F0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0809280C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08092808
- adds r0, r2, 0
- bl DestroyTask
-_08092808:
- pop {r0}
- bx r0
- .align 2, 0
-_0809280C: .4byte gPaletteFade
- thumb_func_end sub_80927F0
-
- thumb_func_start sub_8092810
-sub_8092810: @ 8092810
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- lsls r2, 24
- lsrs r1, r2, 24
- lsls r3, 24
- lsrs r5, r3, 8
- movs r3, 0
- cmp r5, 0
- beq _0809285A
- lsls r7, r1, 6
- ldr r6, _08092860 @ =0x00000fff
- lsls r4, r0, 12
-_08092830:
- mov r0, r12
- adds r1, r0, r3
- lsls r1, 1
- adds r1, r7, r1
- ldr r0, _08092864 @ =0x06007800
- adds r2, r1, r0
- ldrh r0, [r2]
- ands r0, r6
- orrs r0, r4
- strh r0, [r2]
- ldr r0, _08092868 @ =0x06007840
- adds r1, r0
- ldrh r0, [r1]
- ands r0, r6
- orrs r0, r4
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r0, r5
- bcc _08092830
-_0809285A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08092860: .4byte 0x00000fff
-_08092864: .4byte 0x06007800
-_08092868: .4byte 0x06007840
- thumb_func_end sub_8092810
-
- thumb_func_start sub_809286C
-sub_809286C: @ 809286C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x1
- ands r5, r0
- ands r2, r0
- lsls r2, 1
- orrs r5, r2
- cmp r4, 0xA
- bhi _08092958
- lsls r0, r4, 2
- ldr r1, _08092894 @ =_08092898
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08092894: .4byte _08092898
- .align 2, 0
-_08092898:
- .4byte _080928C4
- .4byte _080928C4
- .4byte _080928C4
- .4byte _080928D4
- .4byte _080928D4
- .4byte _080928EC
- .4byte _080928EC
- .4byte _080928D4
- .4byte _080928D4
- .4byte _08092914
- .4byte _08092904
-_080928C4:
- ldr r1, _080928D0 @ =gUnknown_083B57E4
- lsls r0, r4, 3
- adds r0, r1
- ldrb r1, [r0, 0x4]
- ldrb r2, [r0, 0x5]
- b _08092932
- .align 2, 0
-_080928D0: .4byte gUnknown_083B57E4
-_080928D4:
- ldr r2, _08092900 @ =gUnknown_083B57FC
- subs r1, r4, 0x3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- ldrb r2, [r0, 0x5]
- ldrb r3, [r0, 0x6]
- adds r0, r5, 0
- bl sub_8092810
-_080928EC:
- ldr r2, _08092900 @ =gUnknown_083B57FC
- subs r1, r4, 0x3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x7]
- ldrb r2, [r0, 0x8]
- ldrb r3, [r0, 0x9]
- b _08092934
- .align 2, 0
-_08092900: .4byte gUnknown_083B57FC
-_08092904:
- ldr r0, _08092910 @ =gUnknown_083B57FC
- ldrb r1, [r0, 0x1C]
- ldrb r2, [r0, 0x1D]
- ldrb r3, [r0, 0x1E]
- b _08092934
- .align 2, 0
-_08092910: .4byte gUnknown_083B57FC
-_08092914:
- bl IsNationalPokedex
- cmp r0, 0
- bne _08092940
- ldr r2, _0809293C @ =gUnknown_083B57FC
- subs r1, r4, 0x3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- ldrb r2, [r0, 0x5]
- subs r2, 0x2
- lsls r2, 24
- lsrs r2, 24
-_08092932:
- ldrb r3, [r0, 0x6]
-_08092934:
- adds r0, r5, 0
- bl sub_8092810
- b _08092958
- .align 2, 0
-_0809293C: .4byte gUnknown_083B57FC
-_08092940:
- ldr r2, _08092960 @ =gUnknown_083B57FC
- subs r1, r4, 0x3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- ldrb r2, [r0, 0x5]
- ldrb r3, [r0, 0x6]
- adds r0, r5, 0
- bl sub_8092810
-_08092958:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08092960: .4byte gUnknown_083B57FC
- thumb_func_end sub_809286C
-
- thumb_func_start sub_8092964
-sub_8092964: @ 8092964
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _080929CE
- cmp r0, 0x1
- bgt _0809297A
- cmp r0, 0
- beq _08092980
- b _08092AAC
-_0809297A:
- cmp r1, 0x2
- beq _08092A3E
- b _08092AAC
-_08092980:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_809286C
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0xA
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x5
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x6
- movs r1, 0x1
- movs r2, 0
- b _08092A1A
-_080929CE:
- movs r0, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl sub_809286C
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0xA
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x5
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x6
- movs r1, 0x1
- movs r2, 0x1
-_08092A1A:
- bl sub_809286C
- movs r0, 0x7
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x8
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x9
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- b _08092AAC
-_08092A3E:
- movs r0, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl sub_809286C
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl sub_809286C
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0xA
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x5
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x6
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x7
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x8
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
- movs r0, 0x9
- movs r1, 0x1
- movs r2, 0x1
- bl sub_809286C
-_08092AAC:
- pop {r0}
- bx r0
- thumb_func_end sub_8092964
-
- thumb_func_start sub_8092AB0
-sub_8092AB0: @ 8092AB0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8092964
- ldr r0, _08092AD0 @ =gUnknown_083B57E4
- lsls r4, 3
- adds r4, r0
- ldr r0, [r4]
- bl sub_8091E20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08092AD0: .4byte gUnknown_083B57E4
- thumb_func_end sub_8092AB0
-
- thumb_func_start sub_8092AD4
-sub_8092AD4: @ 8092AD4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_8092964
- cmp r4, 0x6
- bhi _08092B4E
- lsls r0, r4, 2
- ldr r1, _08092AF0 @ =_08092AF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08092AF0: .4byte _08092AF4
- .align 2, 0
-_08092AF4:
- .4byte _08092B10
- .4byte _08092B14
- .4byte _08092B18
- .4byte _08092B26
- .4byte _08092B34
- .4byte _08092B38
- .4byte _08092B44
-_08092B10:
- movs r0, 0x3
- b _08092B3A
-_08092B14:
- movs r0, 0x4
- b _08092B3A
-_08092B18:
- movs r0, 0xA
- movs r1, 0
- movs r2, 0
- bl sub_809286C
- movs r0, 0x5
- b _08092B3A
-_08092B26:
- movs r0, 0xA
- movs r1, 0
- movs r2, 0
- bl sub_809286C
- movs r0, 0x6
- b _08092B3A
-_08092B34:
- movs r0, 0x7
- b _08092B3A
-_08092B38:
- movs r0, 0x8
-_08092B3A:
- movs r1, 0
- movs r2, 0
- bl sub_809286C
- b _08092B4E
-_08092B44:
- movs r0, 0x9
- movs r1, 0
- movs r2, 0
- bl sub_809286C
-_08092B4E:
- ldr r0, _08092B64 @ =gUnknown_083B57FC
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl sub_8091E20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08092B64: .4byte gUnknown_083B57FC
- thumb_func_end sub_8092AD4
-
- thumb_func_start sub_8092B68
-sub_8092B68: @ 8092B68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08092C68 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r2
- ldrh r0, [r6, 0x16]
- ldrh r1, [r6, 0x14]
- adds r0, r1
- lsls r0, 16
- ldr r7, _08092C6C @ =gStringVar1
- ldr r1, _08092C70 @ =gUnknown_083B5910
- lsrs r0, 13
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- ldr r0, _08092C74 @ =gUnknown_083B5AB2
- mov r8, r0
- movs r1, 0x2D
- movs r2, 0x10
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- ldrh r0, [r6, 0x1A]
- ldrh r1, [r6, 0x18]
- adds r0, r1
- lsls r0, 16
- ldr r1, _08092C78 @ =gUnknown_083B5968
- lsrs r0, 13
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- mov r0, r8
- movs r1, 0x2D
- movs r2, 0x20
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- ldrh r0, [r6, 0x1E]
- ldrh r1, [r6, 0x1C]
- adds r0, r1
- lsls r0, 16
- ldr r4, _08092C7C @ =gUnknown_083B59C8
- lsrs r0, 13
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- ldr r5, _08092C80 @ =gUnknown_083B5AAC
- adds r0, r5, 0
- movs r1, 0x2D
- movs r2, 0x30
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- ldrh r0, [r6, 0x22]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 13
- adds r0, r4
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- adds r0, r5, 0
- movs r1, 0x5D
- movs r2, 0x30
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- ldrh r0, [r6, 0x12]
- ldrh r1, [r6, 0x10]
- adds r0, r1
- lsls r0, 16
- ldr r1, _08092C84 @ =gUnknown_083B58D8
- lsrs r0, 13
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- mov r0, r8
- movs r1, 0x2D
- movs r2, 0x40
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- bl IsNationalPokedex
- cmp r0, 0
- beq _08092C5E
- ldrh r0, [r6, 0xE]
- ldrh r6, [r6, 0xC]
- adds r0, r6
- lsls r0, 16
- ldr r1, _08092C88 @ =gUnknown_083B58C0
- lsrs r0, 13
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- mov r0, r8
- movs r1, 0x2D
- movs r2, 0x50
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_08092C5E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08092C68: .4byte gTasks
-_08092C6C: .4byte gStringVar1
-_08092C70: .4byte gUnknown_083B5910
-_08092C74: .4byte gUnknown_083B5AB2
-_08092C78: .4byte gUnknown_083B5968
-_08092C7C: .4byte gUnknown_083B59C8
-_08092C80: .4byte gUnknown_083B5AAC
-_08092C84: .4byte gUnknown_083B58D8
-_08092C88: .4byte gUnknown_083B58C0
- thumb_func_end sub_8092B68
-
- thumb_func_start sub_8092C8C
-sub_8092C8C: @ 8092C8C
- push {r4-r6,lr}
- lsls r0, 24
- cmp r0, 0
- bne _08092D48
- ldr r1, _08092D1C @ =0x06007822
- ldr r2, _08092D20 @ =0x00000c0b
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0x12
- ldr r3, _08092D24 @ =0x06007800
- ldr r4, _08092D28 @ =0x0000080d
- adds r2, r4, 0
-_08092CA4:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1C
- bls _08092CA4
- ldr r1, _08092D2C @ =0x0600783a
- ldr r2, _08092D30 @ =0x0000080b
- adds r0, r2, 0
- strh r0, [r1]
- movs r3, 0x1
- ldr r6, _08092D24 @ =0x06007800
- movs r5, 0x2
-_08092CC2:
- lsls r2, r3, 6
- ldr r4, _08092D1C @ =0x06007822
- adds r1, r2, r4
- ldr r4, _08092D34 @ =0x0000040a
- adds r0, r4, 0
- strh r0, [r1]
- movs r1, 0x12
- adds r4, r3, 0x1
- adds r3, r2, 0
-_08092CD4:
- lsls r0, r1, 1
- adds r0, r3, r0
- adds r0, r6
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1C
- bls _08092CD4
- ldr r1, _08092D2C @ =0x0600783a
- adds r0, r2, r1
- movs r1, 0xA
- strh r1, [r0]
- lsls r0, r4, 16
- lsrs r3, r0, 16
- cmp r3, 0xC
- bls _08092CC2
- ldr r1, _08092D38 @ =0x06007b62
- ldr r2, _08092D3C @ =0x0000040b
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0x12
- ldr r3, _08092D40 @ =0x06007b40
- movs r2, 0xD
-_08092D04:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1C
- bls _08092D04
- ldr r1, _08092D44 @ =0x06007b7a
- movs r0, 0xB
- strh r0, [r1]
- b _08092D6E
- .align 2, 0
-_08092D1C: .4byte 0x06007822
-_08092D20: .4byte 0x00000c0b
-_08092D24: .4byte 0x06007800
-_08092D28: .4byte 0x0000080d
-_08092D2C: .4byte 0x0600783a
-_08092D30: .4byte 0x0000080b
-_08092D34: .4byte 0x0000040a
-_08092D38: .4byte 0x06007b62
-_08092D3C: .4byte 0x0000040b
-_08092D40: .4byte 0x06007b40
-_08092D44: .4byte 0x06007b7a
-_08092D48:
- movs r3, 0
- ldr r6, _08092D74 @ =0x06007800
- movs r5, 0x4F
-_08092D4E:
- movs r1, 0x11
- adds r4, r3, 0x1
- lsls r2, r3, 6
-_08092D54:
- lsls r0, r1, 1
- adds r0, r2, r0
- adds r0, r6
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1D
- bls _08092D54
- lsls r0, r4, 16
- lsrs r3, r0, 16
- cmp r3, 0xD
- bls _08092D4E
-_08092D6E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08092D74: .4byte 0x06007800
- thumb_func_end sub_8092C8C
-
- thumb_func_start sub_8092D78
-sub_8092D78: @ 8092D78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08092DBC @ =gUnknown_083B5A7C
- ldr r3, _08092DC0 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r0, r2, r3
- movs r5, 0xA
- ldrsh r1, [r0, r5]
- lsls r1, 3
- adds r1, r4
- ldr r6, [r1]
- adds r3, 0x8
- adds r2, r3
- ldrb r0, [r1, 0x4]
- lsls r0, 1
- adds r0, r2
- mov r8, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 1
- adds r7, r2, r0
- movs r0, 0x12
- movs r1, 0x1
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r5, 0
- ldrh r4, [r7]
- b _08092DE8
- .align 2, 0
-_08092DBC: .4byte gUnknown_083B5A7C
-_08092DC0: .4byte gTasks
-_08092DC4:
- lsls r0, r4, 3
- adds r0, r6
- ldr r0, [r0, 0x4]
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x12
- bl MenuPrint
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x5
- bhi _08092DF2
-_08092DE8:
- lsls r0, r4, 3
- adds r0, r6
- ldr r0, [r0, 0x4]
- cmp r0, 0
- bne _08092DC4
-_08092DF2:
- mov r1, r8
- ldrh r0, [r1]
- ldrh r1, [r7]
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldr r0, [r0]
- bl sub_8091E20
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8092D78
-
- thumb_func_start sub_8092E10
-sub_8092E10: @ 8092E10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08092E50 @ =gTasks + 0x8
- adds r1, r0
- ldr r2, _08092E54 @ =gUnknown_083B5A7C
- lsls r0, r3, 3
- adds r0, r2
- ldrb r2, [r0, 0x4]
- lsls r2, 1
- adds r2, r1, r2
- ldrb r0, [r0, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r3, 0x5
- bhi _08092E74
- lsls r0, r3, 2
- ldr r1, _08092E58 @ =_08092E5C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08092E50: .4byte gTasks + 0x8
-_08092E54: .4byte gUnknown_083B5A7C
-_08092E58: .4byte _08092E5C
- .align 2, 0
-_08092E5C:
- .4byte _08092E88
- .4byte _08092E92
- .4byte _08092EA2
- .4byte _08092EA2
- .4byte _08092E80
- .4byte _08092E78
-_08092E74:
- movs r0, 0
- b _08092EA8
-_08092E78:
- ldr r0, _08092E7C @ =gUnknown_083B5A60
- b _08092EA4
- .align 2, 0
-_08092E7C: .4byte gUnknown_083B5A60
-_08092E80:
- ldr r0, _08092E84 @ =gUnknown_083B5A62
- b _08092EA4
- .align 2, 0
-_08092E84: .4byte gUnknown_083B5A62
-_08092E88:
- cmp r2, 0
- beq _08092E96
- lsls r0, r2, 24
- lsrs r0, 24
- b _08092EA8
-_08092E92:
- cmp r2, 0
- bne _08092E9A
-_08092E96:
- movs r0, 0xFF
- b _08092EA8
-_08092E9A:
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _08092EA8
-_08092EA2:
- ldr r0, _08092EAC @ =gUnknown_083B5A68
-_08092EA4:
- adds r0, r2, r0
- ldrb r0, [r0]
-_08092EA8:
- pop {r1}
- bx r1
- .align 2, 0
-_08092EAC: .4byte gUnknown_083B5A68
- thumb_func_end sub_8092E10
-
- thumb_func_start sub_8092EB0
-sub_8092EB0: @ 8092EB0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08092ED0 @ =gPokedexView
- ldr r0, [r1]
- ldr r2, _08092ED4 @ =0x00000614
- adds r0, r2
- ldrh r0, [r0]
- adds r5, r1, 0
- cmp r0, 0
- beq _08092ECA
- cmp r0, 0x1
- beq _08092ED8
-_08092ECA:
- movs r3, 0
- b _08092EDA
- .align 2, 0
-_08092ED0: .4byte gPokedexView
-_08092ED4: .4byte 0x00000614
-_08092ED8:
- movs r3, 0x1
-_08092EDA:
- ldr r1, _08092F00 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0xC]
- ldr r0, [r5]
- movs r3, 0xC3
- lsls r3, 3
- adds r0, r3
- ldrh r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bhi _08092F20
- lsls r0, 2
- ldr r1, _08092F04 @ =_08092F08
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08092F00: .4byte gTasks
-_08092F04: .4byte _08092F08
- .align 2, 0
-_08092F08:
- .4byte _08092F20
- .4byte _08092F24
- .4byte _08092F28
- .4byte _08092F2C
- .4byte _08092F30
- .4byte _08092F34
-_08092F20:
- movs r3, 0
- b _08092F36
-_08092F24:
- movs r3, 0x1
- b _08092F36
-_08092F28:
- movs r3, 0x2
- b _08092F36
-_08092F2C:
- movs r3, 0x3
- b _08092F36
-_08092F30:
- movs r3, 0x4
- b _08092F36
-_08092F34:
- movs r3, 0x5
-_08092F36:
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r5
- strh r3, [r0, 0x10]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8092EB0
-
- thumb_func_start sub_8092F44
-sub_8092F44: @ 8092F44
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08092F7C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r0, r1, r3
- ldrb r2, [r0, 0xA]
- adds r3, 0x8
- adds r1, r3
- ldr r0, _08092F80 @ =gUnknown_083B5A7C
- lsls r2, 3
- adds r2, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r2, 0x6]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bls _08092F84
- ldrh r0, [r1]
- cmp r0, 0
- beq _08092F84
- movs r0, 0
- b _08092F86
- .align 2, 0
-_08092F7C: .4byte gTasks
-_08092F80: .4byte gUnknown_083B5A7C
-_08092F84:
- movs r0, 0x1
-_08092F86:
- pop {r1}
- bx r1
- thumb_func_end sub_8092F44
-
- thumb_func_start sub_8092F8C
-sub_8092F8C: @ 8092F8C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08092FC8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r0, r1, r3
- ldrb r2, [r0, 0xA]
- adds r3, 0x8
- adds r1, r3
- ldr r0, _08092FCC @ =gUnknown_083B5A7C
- lsls r2, 3
- adds r2, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r2, 0x6]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bls _08092FD0
- ldrh r1, [r1]
- subs r0, 0x5
- cmp r1, r0
- bge _08092FD0
- movs r0, 0
- b _08092FD2
- .align 2, 0
-_08092FC8: .4byte gTasks
-_08092FCC: .4byte gUnknown_083B5A7C
-_08092FD0:
- movs r0, 0x1
-_08092FD2:
- pop {r1}
- bx r1
- thumb_func_end sub_8092F8C
-
- thumb_func_start sub_8092FD8
-sub_8092FD8: @ 8092FD8
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _08093018 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0809301C @ =sub_8092644
- cmp r1, r0
- bne _08093078
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08093020
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092F8C
- lsls r0, 24
- cmp r0, 0
- beq _0809303C
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _08093048
- .align 2, 0
-_08093018: .4byte gTasks
-_0809301C: .4byte sub_8092644
-_08093020:
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8092F44
- lsls r0, 24
- cmp r0, 0
- beq _0809303C
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _08093048
-_0809303C:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
-_08093048:
- strb r0, [r2]
- ldrh r2, [r4, 0x32]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r0, 7
- adds r0, r2, r0
- lsls r0, 24
- ldr r1, _08093074 @ =gSineTable
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _08093066
- adds r0, 0x7F
-_08093066:
- asrs r0, 7
- strh r0, [r4, 0x26]
- adds r0, r2, 0
- adds r0, 0x8
- strh r0, [r4, 0x32]
- b _08093084
- .align 2, 0
-_08093074: .4byte gSineTable
-_08093078:
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08093084:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8092FD8
-
- thumb_func_start sub_809308C
-sub_809308C: @ 809308C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08093104 @ =gSpriteTemplate_83A053C
- adds r0, r6, 0
- movs r1, 0xB8
- movs r2, 0x4
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08093108 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r0, r1, r4
- movs r2, 0
- strh r5, [r0, 0x2E]
- strh r2, [r0, 0x30]
- movs r0, 0x1C
- adds r0, r4
- mov r9, r0
- add r1, r9
- ldr r0, _0809310C @ =sub_8092FD8
- mov r8, r0
- str r0, [r1]
- adds r0, r6, 0
- movs r1, 0xB8
- movs r2, 0x6C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r4
- strh r5, [r4, 0x2E]
- movs r0, 0x1
- strh r0, [r4, 0x30]
- adds r4, 0x3F
- ldrb r0, [r4]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r4]
- add r1, r9
- mov r0, r8
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08093104: .4byte gSpriteTemplate_83A053C
-_08093108: .4byte gSprites
-_0809310C: .4byte sub_8092FD8
- thumb_func_end sub_809308C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokedex_cry_screen.s b/asm/pokedex_cry_screen.s
index bded77228..da52c84d4 100644
--- a/asm/pokedex_cry_screen.s
+++ b/asm/pokedex_cry_screen.s
@@ -737,154 +737,7 @@ _0811A3C4:
_0811A3C8: .4byte REG_BG3HOFS
thumb_func_end sub_811A350
- thumb_func_start ShowPokedexCryScreen
-ShowPokedexCryScreen: @ 811A3CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- movs r0, 0
- str r0, [sp]
- ldr r0, _0811A3F4 @ =gUnknown_03005E98
- ldrb r1, [r0]
- mov r10, r0
- cmp r1, 0x1
- beq _0811A42C
- cmp r1, 0x1
- bgt _0811A3F8
- cmp r1, 0
- beq _0811A3FE
- b _0811A4D6
- .align 2, 0
-_0811A3F4: .4byte gUnknown_03005E98
-_0811A3F8:
- cmp r1, 0x2
- beq _0811A494
- b _0811A4D6
-_0811A3FE:
- ldr r0, _0811A424 @ =gUnknown_083FAF3C
- ldrh r1, [r4]
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- bl LZ77UnCompVram
- ldr r0, _0811A428 @ =gUnknown_083FAF1C
- ldrb r1, [r4, 0x3]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- mov r1, r10
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0811A4D6
- .align 2, 0
-_0811A424: .4byte gUnknown_083FAF3C
-_0811A428: .4byte gUnknown_083FAF1C
-_0811A42C:
- ldrb r0, [r4, 0x2]
- lsls r0, 11
- movs r1, 0xC0
- lsls r1, 19
- adds r0, r1
- mov r8, r0
- ldrh r0, [r4]
- lsls r0, 18
- lsrs r0, 23
- mov r12, r0
- movs r5, 0
- ldr r2, _0811A490 @ =gUnknown_083FAE7C
- mov r9, r2
-_0811A446:
- movs r3, 0
- lsls r0, r5, 2
- adds r7, r5, 0x1
- adds r0, r5
- lsls r6, r0, 1
-_0811A450:
- ldrb r0, [r4, 0x5]
- adds r0, r5, r0
- ldrb r2, [r4, 0x4]
- adds r2, r3, r2
- lsls r2, 1
- lsls r0, 6
- adds r2, r0
- add r2, r8
- adds r1, r6, r3
- lsls r1, 1
- add r1, r9
- ldrb r0, [r4, 0x3]
- lsls r0, 12
- ldrh r1, [r1]
- orrs r0, r1
- add r0, r12
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x9
- bls _0811A450
- lsls r0, r7, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0811A446
- mov r3, r10
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- b _0811A4D6
- .align 2, 0
-_0811A490: .4byte gUnknown_083FAE7C
-_0811A494:
- ldr r0, _0811A4E8 @ =gCryMeterNeedleSpriteSheets
- bl LoadSpriteSheets
- ldr r0, _0811A4EC @ =gCryMeterNeedleSpritePalettes
- bl LoadSpritePalettes
- ldr r0, _0811A4F0 @ =gSpriteTemplate_83FB774
- ldrb r1, [r4, 0x4]
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 14
- adds r1, r2
- asrs r1, 16
- ldrb r2, [r4, 0x5]
- lsls r2, 19
- movs r3, 0xE0
- lsls r3, 14
- adds r2, r3
- asrs r2, 16
- movs r3, 0x1
- bl CreateSprite
- ldr r1, _0811A4F4 @ =0x0201c800
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x4]
- movs r0, 0x20
- strb r0, [r1]
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0x1
- str r0, [sp]
-_0811A4D6:
- ldr r0, [sp]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A4E8: .4byte gCryMeterNeedleSpriteSheets
-_0811A4EC: .4byte gCryMeterNeedleSpritePalettes
-_0811A4F0: .4byte gSpriteTemplate_83FB774
-_0811A4F4: .4byte 0x0201c800
- thumb_func_end ShowPokedexCryScreen
+.section .text_811A4F8
thumb_func_start DestroyCryMeterNeedleSprite
DestroyCryMeterNeedleSprite: @ 811A4F8
diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s
new file mode 100644
index 000000000..5aa8b5901
--- /dev/null
+++ b/asm/pokemon_icon.s
@@ -0,0 +1,788 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_809D26C
+unref_sub_809D26C: @ 809D26C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ adds r6, r3, 0
+ ldr r3, [sp, 0x2C]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, sp
+ ldr r4, _0809D2E0 @ =gOamData_83BC5E8
+ str r4, [sp]
+ ldr r5, _0809D2E4 @ =gMonIconTable
+ lsls r4, r0, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp, 0x4]
+ ldr r4, _0809D2E8 @ =gSpriteAnimTable_83BC62C
+ str r4, [sp, 0x8]
+ ldr r4, _0809D2EC @ =gSpriteAffineAnimTable_83BC660
+ str r4, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r1, _0809D2F0 @ =gMonIconPaletteIndices
+ adds r0, r1
+ ldr r4, _0809D2F4 @ =0x0000dac0
+ adds r1, r4, 0
+ ldrb r0, [r0]
+ adds r1, r0
+ mov r0, r8
+ strh r1, [r0, 0x14]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r6, 16
+ asrs r6, 16
+ mov r0, sp
+ adds r1, r2, 0
+ adds r2, r6, 0
+ bl CreateMonIconSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0809D2F8 @ =gSprites
+ adds r0, r1
+ bl UpdateMonIconFrame
+ adds r0, r4, 0
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D2E0: .4byte gOamData_83BC5E8
+_0809D2E4: .4byte gMonIconTable
+_0809D2E8: .4byte gSpriteAnimTable_83BC62C
+_0809D2EC: .4byte gSpriteAffineAnimTable_83BC660
+_0809D2F0: .4byte gMonIconPaletteIndices
+_0809D2F4: .4byte 0x0000dac0
+_0809D2F8: .4byte gSprites
+ thumb_func_end unref_sub_809D26C
+
+ thumb_func_start CreateMonIcon
+CreateMonIcon: @ 809D2FC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x30
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, [sp, 0x48]
+ ldr r1, [sp, 0x4C]
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r2, 16
+ lsrs r7, r2, 16
+ lsls r3, 16
+ lsrs r6, r3, 16
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0809D38C @ =gOamData_83BC5E8
+ str r0, [sp, 0x18]
+ adds r0, r4, 0
+ bl GetMonIconPtr
+ str r0, [sp, 0x1C]
+ ldr r0, _0809D390 @ =gSpriteAnimTable_83BC62C
+ str r0, [sp, 0x20]
+ ldr r0, _0809D394 @ =gSpriteAffineAnimTable_83BC660
+ str r0, [sp, 0x24]
+ str r5, [sp, 0x28]
+ ldr r0, _0809D398 @ =gMonIconPaletteIndices
+ adds r0, r4, r0
+ ldr r1, _0809D39C @ =0x0000dac0
+ adds r5, r1, 0
+ ldrb r0, [r0]
+ adds r1, r5, r0
+ add r0, sp, 0x2C
+ strh r1, [r0]
+ add r1, sp, 0x18
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bls _0809D35A
+ mov r0, sp
+ strh r5, [r0, 0x14]
+_0809D35A:
+ lsls r1, r7, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ mov r0, sp
+ mov r3, r8
+ bl CreateMonIconSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0809D3A0 @ =gSprites
+ adds r0, r1
+ bl UpdateMonIconFrame
+ adds r0, r4, 0
+ add sp, 0x30
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D38C: .4byte gOamData_83BC5E8
+_0809D390: .4byte gSpriteAnimTable_83BC62C
+_0809D394: .4byte gSpriteAffineAnimTable_83BC660
+_0809D398: .4byte gMonIconPaletteIndices
+_0809D39C: .4byte 0x0000dac0
+_0809D3A0: .4byte gSprites
+ thumb_func_end CreateMonIcon
+
+ thumb_func_start sub_809D3A4
+sub_809D3A4: @ 809D3A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ adds r6, r3, 0
+ ldr r3, [sp, 0x2C]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, sp
+ ldr r4, _0809D418 @ =gOamData_83BC5E8
+ str r4, [sp]
+ ldr r5, _0809D41C @ =gMonIconTable
+ lsls r4, r0, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp, 0x4]
+ ldr r4, _0809D420 @ =gSpriteAnimTable_83BC62C
+ str r4, [sp, 0x8]
+ ldr r4, _0809D424 @ =gSpriteAffineAnimTable_83BC660
+ str r4, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r1, _0809D428 @ =gMonIconPaletteIndices
+ adds r0, r1
+ ldr r4, _0809D42C @ =0x0000dac0
+ adds r1, r4, 0
+ ldrb r0, [r0]
+ adds r1, r0
+ mov r0, r8
+ strh r1, [r0, 0x14]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r6, 16
+ asrs r6, 16
+ mov r0, sp
+ adds r1, r2, 0
+ adds r2, r6, 0
+ bl CreateMonIconSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0809D430 @ =gSprites
+ adds r0, r1
+ bl UpdateMonIconFrame
+ adds r0, r4, 0
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D418: .4byte gOamData_83BC5E8
+_0809D41C: .4byte gMonIconTable
+_0809D420: .4byte gSpriteAnimTable_83BC62C
+_0809D424: .4byte gSpriteAffineAnimTable_83BC660
+_0809D428: .4byte gMonIconPaletteIndices
+_0809D42C: .4byte 0x0000dac0
+_0809D430: .4byte gSprites
+ thumb_func_end sub_809D3A4
+
+ thumb_func_start mon_icon_convert_unown_species_id
+mon_icon_convert_unown_species_id: @ 809D434
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, SPECIES_UNOWN
+ bne _0809D45E
+ adds r0, r1, 0
+ bl GetUnownLetterByPersonality
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _0809D450
+ movs r0, SPECIES_UNOWN
+ b _0809D45A
+_0809D450:
+ movs r1, 0xCE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+_0809D45A:
+ adds r1, r0, 0
+ b _0809D46C
+_0809D45E:
+ movs r0, 0xCE
+ lsls r0, 1
+ adds r1, r2, 0
+ cmp r1, r0
+ bls _0809D46C
+ movs r1, 0x82
+ lsls r1, 1
+_0809D46C:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end mon_icon_convert_unown_species_id
+
+ thumb_func_start GetUnownLetterByPersonality
+GetUnownLetterByPersonality: @ 809D474
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r2
+ lsrs r0, 18
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r2
+ lsrs r1, 12
+ orrs r0, r1
+ movs r1, 0xC0
+ lsls r1, 2
+ ands r1, r2
+ lsrs r1, 6
+ orrs r0, r1
+ movs r1, 0x3
+ ands r1, r2
+ orrs r0, r1
+ movs r1, 0x1C
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end GetUnownLetterByPersonality
+
+ thumb_func_start sub_809D4A8
+sub_809D4A8: @ 809D4A8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ mov r1, sp
+ bl MailSpeciesToSpecies
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, SPECIES_UNOWN
+ bne _0809D4DE
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809D4CE
+ mov r1, sp
+ adds r0, SPECIES_UNOWN
+ b _0809D4D6
+_0809D4CE:
+ mov r1, sp
+ movs r2, 0xCE
+ lsls r2, 1
+ adds r0, r2
+_0809D4D6:
+ strh r0, [r1]
+ mov r0, sp
+ ldrh r0, [r0]
+ b _0809D4EA
+_0809D4DE:
+ adds r0, r4, 0
+ movs r1, 0
+ bl mon_icon_convert_unown_species_id
+ lsls r0, 16
+ lsrs r0, 16
+_0809D4EA:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809D4A8
+
+ thumb_func_start GetMonIconPtr
+GetMonIconPtr: @ 809D4F4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl mon_icon_convert_unown_species_id
+ lsls r0, 16
+ ldr r1, _0809D50C @ =gMonIconTable
+ lsrs r0, 14
+ adds r0, r1
+ ldr r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D50C: .4byte gMonIconTable
+ thumb_func_end GetMonIconPtr
+
+ thumb_func_start sub_809D510
+sub_809D510: @ 809D510
+ push {lr}
+ bl sub_809D7E8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D510
+
+ thumb_func_start sub_809D51C
+sub_809D51C: @ 809D51C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0809D53C @ =gMonIconPaletteTable
+_0809D522:
+ lsls r0, r4, 3
+ adds r0, r5
+ bl LoadSpritePalette
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0809D522
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D53C: .4byte gMonIconPaletteTable
+ thumb_func_end sub_809D51C
+
+ thumb_func_start unref_sub_809D540
+unref_sub_809D540: @ 809D540
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bls _0809D552
+ movs r1, 0x82
+ lsls r1, 1
+_0809D552:
+ ldr r0, _0809D578 @ =gMonIconPaletteIndices
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r1, _0809D57C @ =gMonIconPaletteTable
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809D572
+ adds r0, r4, 0
+ bl LoadSpritePalette
+_0809D572:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D578: .4byte gMonIconPaletteIndices
+_0809D57C: .4byte gMonIconPaletteTable
+ thumb_func_end unref_sub_809D540
+
+ thumb_func_start sub_809D580
+sub_809D580: @ 809D580
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0809D5AC @ =gMonIconPaletteIndices
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0809D5B0 @ =gMonIconPaletteTable
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809D5A6
+ adds r0, r4, 0
+ bl LoadSpritePalette
+_0809D5A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D5AC: .4byte gMonIconPaletteIndices
+_0809D5B0: .4byte gMonIconPaletteTable
+ thumb_func_end sub_809D580
+
+ thumb_func_start unref_sub_809D5B4
+unref_sub_809D5B4: @ 809D5B4
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0809D5D4 @ =gMonIconPaletteTable
+_0809D5BA:
+ lsls r0, r4, 3
+ adds r0, r5
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0809D5BA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D5D4: .4byte gMonIconPaletteTable
+ thumb_func_end unref_sub_809D5B4
+
+ thumb_func_start unref_sub_809D5D8
+unref_sub_809D5D8: @ 809D5D8
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bls _0809D5EA
+ movs r1, 0x82
+ lsls r1, 1
+_0809D5EA:
+ ldr r0, _0809D600 @ =gMonIconPaletteIndices
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r1, _0809D604 @ =gMonIconPaletteTable
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D600: .4byte gMonIconPaletteIndices
+_0809D604: .4byte gMonIconPaletteTable
+ thumb_func_end unref_sub_809D5D8
+
+ thumb_func_start sub_809D608
+sub_809D608: @ 809D608
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0809D624 @ =gMonIconPaletteIndices
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0809D628 @ =gMonIconPaletteTable
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D624: .4byte gMonIconPaletteIndices
+_0809D628: .4byte gMonIconPaletteTable
+ thumb_func_end sub_809D608
+
+ thumb_func_start sub_809D62C
+sub_809D62C: @ 809D62C
+ push {lr}
+ bl UpdateMonIconFrame
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D62C
+
+ thumb_func_start UpdateMonIconFrame
+UpdateMonIconFrame: @ 809D638
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ movs r7, 0
+ adds r6, r4, 0
+ adds r6, 0x2C
+ ldrb r2, [r6]
+ movs r0, 0x3F
+ mov r9, r0
+ ands r0, r2
+ cmp r0, 0
+ bne _0809D6EC
+ movs r1, 0x2A
+ adds r1, r4
+ mov r8, r1
+ ldrb r1, [r1]
+ ldr r0, [r4, 0x8]
+ lsls r1, 2
+ adds r1, r0
+ adds r5, r4, 0
+ adds r5, 0x2B
+ ldrb r0, [r5]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ movs r0, 0x2
+ negs r0, r0
+ cmp r3, r0
+ beq _0809D682
+ adds r0, 0x1
+ cmp r3, r0
+ bne _0809D686
+ b _0809D700
+_0809D682:
+ strb r7, [r5]
+ b _0809D700
+_0809D686:
+ ldr r2, _0809D6E4 @ =gSpriteImageSizes
+ ldrb r1, [r4, 0x3]
+ lsrs r1, 6
+ lsls r1, 1
+ ldrb r0, [r4, 0x1]
+ lsrs r0, 6
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrh r2, [r1]
+ adds r1, r2, 0
+ muls r1, r3
+ ldr r0, [r4, 0xC]
+ adds r0, r1
+ ldrh r1, [r4, 0x4]
+ lsls r1, 22
+ lsrs r1, 17
+ ldr r3, _0809D6E8 @ =0x06010000
+ adds r1, r3
+ bl RequestSpriteCopy
+ mov r0, r8
+ ldrb r1, [r0]
+ ldr r0, [r4, 0x8]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r5]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r0, 10
+ lsrs r0, 26
+ mov r1, r9
+ ands r1, r0
+ ldrb r2, [r6]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldrb r7, [r5]
+ b _0809D700
+ .align 2, 0
+_0809D6E4: .4byte gSpriteImageSizes
+_0809D6E8: .4byte 0x06010000
+_0809D6EC:
+ lsls r0, r2, 26
+ lsrs r0, 26
+ subs r0, 0x1
+ movs r1, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r6]
+_0809D700:
+ adds r0, r7, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end UpdateMonIconFrame
+
+ thumb_func_start CreateMonIconSprite
+CreateMonIconSprite: @ 809D710
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x38
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ mov r8, r3
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0
+ str r0, [sp, 0x30]
+ ldr r2, _0809D7D8 @ =gSpriteImageSizes
+ mov r0, r9
+ ldr r6, [r0]
+ ldrb r1, [r6, 0x3]
+ lsrs r1, 6
+ lsls r1, 1
+ ldrb r0, [r6, 0x1]
+ lsrs r0, 6
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrh r2, [r1]
+ ldr r1, _0809D7DC @ =0xffff0000
+ add r3, sp, 0x30
+ ldr r0, [r3, 0x4]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [r3, 0x4]
+ add r1, sp, 0x18
+ ldr r0, _0809D7E0 @ =0x0000ffff
+ strh r0, [r1]
+ mov r0, r9
+ ldrh r2, [r0, 0x14]
+ mov r0, sp
+ adds r0, 0x1A
+ strh r2, [r0]
+ str r6, [sp, 0x1C]
+ mov r2, r9
+ ldr r0, [r2, 0x8]
+ str r0, [sp, 0x20]
+ str r3, [sp, 0x24]
+ ldr r0, [r2, 0xC]
+ str r0, [sp, 0x28]
+ ldr r0, [r2, 0x10]
+ str r0, [sp, 0x2C]
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _0809D7E4 @ =gSprites
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r4, r3, r6
+ adds r5, r4, 0
+ adds r5, 0x2C
+ ldrb r1, [r5]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r5]
+ adds r4, 0x3F
+ ldrb r2, [r4]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r4]
+ adds r6, 0xC
+ adds r3, r6
+ mov r2, r9
+ ldr r1, [r2, 0x4]
+ str r1, [r3]
+ add sp, 0x38
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809D7D8: .4byte gSpriteImageSizes
+_0809D7DC: .4byte 0xffff0000
+_0809D7E0: .4byte 0x0000ffff
+_0809D7E4: .4byte gSprites
+ thumb_func_end CreateMonIconSprite
+
+ thumb_func_start sub_809D7E8
+sub_809D7E8: @ 809D7E8
+ push {lr}
+ sub sp, 0x8
+ movs r1, 0
+ str r1, [sp]
+ ldr r3, _0809D81C @ =gSpriteImageSizes
+ ldrb r2, [r0, 0x3]
+ lsrs r2, 6
+ lsls r2, 1
+ ldrb r1, [r0, 0x1]
+ lsrs r1, 6
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r3
+ ldrh r3, [r2]
+ ldr r2, _0809D820 @ =0xffff0000
+ ldr r1, [sp, 0x4]
+ ands r1, r2
+ orrs r1, r3
+ str r1, [sp, 0x4]
+ mov r1, sp
+ str r1, [r0, 0xC]
+ bl DestroySprite
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D81C: .4byte gSpriteImageSizes
+_0809D820: .4byte 0xffff0000
+ thumb_func_end sub_809D7E8
+
+ thumb_func_start sub_809D824
+sub_809D824: @ 809D824
+ mov r12, r0
+ adds r0, 0x2A
+ movs r3, 0
+ strb r1, [r0]
+ mov r2, r12
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ mov r0, r12
+ adds r0, 0x2B
+ strb r3, [r0]
+ bx lr
+ thumb_func_end sub_809D824
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s
new file mode 100644
index 000000000..dc74831d5
--- /dev/null
+++ b/asm/pokemon_item_effect.s
@@ -0,0 +1,1970 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start ExecuteTableBasedItemEffect_
+ExecuteTableBasedItemEffect_: @ 803E18C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r4, 0
+ str r4, [sp]
+ bl sub_803E1B0
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end ExecuteTableBasedItemEffect_
+
+ thumb_func_start sub_803E1B0
+sub_803E1B0: @ 803E1B0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ mov r8, r0
+ ldr r0, [sp, 0x5C]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x8]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0xC]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x10]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ movs r0, 0x1
+ str r0, [sp, 0x1C]
+ movs r1, 0x6
+ str r1, [sp, 0x24]
+ movs r2, 0
+ str r2, [sp, 0x2C]
+ movs r3, 0x4
+ str r3, [sp, 0x34]
+ mov r0, r8
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0803E240
+ ldr r0, _0803E21C @ =gMain
+ ldr r4, _0803E220 @ =0x0000043d
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E22C
+ ldr r2, _0803E224 @ =gEnigmaBerries
+ ldr r0, _0803E228 @ =gBankInMenu
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x7]
+ b _0803E248
+ .align 2, 0
+_0803E21C: .4byte gMain
+_0803E220: .4byte 0x0000043d
+_0803E224: .4byte gEnigmaBerries
+_0803E228: .4byte gBankInMenu
+_0803E22C:
+ ldr r0, _0803E238 @ =gSaveBlock1
+ ldr r5, _0803E23C @ =0x00003688
+ adds r0, r5
+ ldrb r0, [r0]
+ b _0803E248
+ .align 2, 0
+_0803E238: .4byte gSaveBlock1
+_0803E23C: .4byte 0x00003688
+_0803E240:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+_0803E248:
+ str r0, [sp, 0x30]
+ ldr r1, _0803E2A4 @ =gStringBank
+ ldr r0, _0803E2A8 @ =gBankInMenu
+ ldrb r2, [r0]
+ strb r2, [r1]
+ ldr r0, _0803E2AC @ =gMain
+ ldr r1, _0803E2B0 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0803E2E8
+ ldr r0, _0803E2B4 @ =gActiveBank
+ strb r2, [r0]
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x18]
+ ldr r0, _0803E2B8 @ =gNoOfAllBanks
+ ldr r4, [sp, 0x8]
+ subs r4, 0xD
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0803E2F4
+ ldr r2, _0803E2BC @ =gBattlePartyID
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r3, [r0]
+ ldr r5, [sp, 0xC]
+ lsls r0, r5, 16
+ lsrs r1, r0, 16
+ adds r5, r0, 0
+ cmp r3, r1
+ bne _0803E2C0
+ ldr r0, [sp, 0x18]
+ str r0, [sp, 0x34]
+ b _0803E2F4
+ .align 2, 0
+_0803E2A4: .4byte gStringBank
+_0803E2A8: .4byte gBankInMenu
+_0803E2AC: .4byte gMain
+_0803E2B0: .4byte 0x0000043d
+_0803E2B4: .4byte gActiveBank
+_0803E2B8: .4byte gNoOfAllBanks
+_0803E2BC: .4byte gBattlePartyID
+_0803E2C0:
+ ldr r1, [sp, 0x18]
+ adds r1, 0x2
+ str r1, [sp, 0x18]
+ ldr r0, _0803E2E4 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0803E2F4
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ lsrs r0, r5, 16
+ cmp r1, r0
+ bne _0803E2C0
+ ldr r2, [sp, 0x18]
+ lsls r0, r2, 24
+ lsrs r0, 24
+ str r0, [sp, 0x34]
+ b _0803E2F4
+ .align 2, 0
+_0803E2E4: .4byte gNoOfAllBanks
+_0803E2E8:
+ ldr r0, _0803E310 @ =gActiveBank
+ strb r1, [r0]
+ movs r3, 0x4
+ str r3, [sp, 0x34]
+ ldr r4, [sp, 0x8]
+ subs r4, 0xD
+_0803E2F4:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ cmp r0, 0xA5
+ bhi _0803E36C
+ ldr r1, _0803E314 @ =gItemEffectTable
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0803E318
+ ldr r4, [sp, 0x8]
+ cmp r4, 0xAF
+ beq _0803E31E
+ b _0803E36C
+ .align 2, 0
+_0803E310: .4byte gActiveBank
+_0803E314: .4byte gItemEffectTable
+_0803E318:
+ ldr r5, [sp, 0x8]
+ cmp r5, 0xAF
+ bne _0803E372
+_0803E31E:
+ ldr r0, _0803E340 @ =gMain
+ ldr r1, _0803E344 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E350
+ ldr r0, _0803E348 @ =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _0803E34C @ =gUnknown_02024DF8
+ adds r0, r1
+ b _0803E372
+ .align 2, 0
+_0803E340: .4byte gMain
+_0803E344: .4byte 0x0000043d
+_0803E348: .4byte gActiveBank
+_0803E34C: .4byte gUnknown_02024DF8
+_0803E350:
+ ldr r2, _0803E358 @ =gSaveBlock1 + 0x3676
+ str r2, [sp, 0x20]
+ b _0803E374
+ .align 2, 0
+_0803E358: .4byte gSaveBlock1 + 0x3676
+_0803E35C:
+ mov r0, r8
+ movs r2, 0
+ ldr r3, [sp, 0xC]
+ bl BeginEvolutionScene
+ movs r0, 0
+ bl _0803F15C
+_0803E36C:
+ movs r0, 0x1
+ bl _0803F15C
+_0803E372:
+ str r0, [sp, 0x20]
+_0803E374:
+ movs r3, 0
+ str r3, [sp, 0x18]
+_0803E378:
+ ldr r4, [sp, 0x18]
+ cmp r4, 0x5
+ bls _0803E382
+ bl _0803F14C
+_0803E382:
+ lsls r0, r4, 2
+ ldr r1, _0803E38C @ =_0803E390
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803E38C: .4byte _0803E390
+ .align 2, 0
+_0803E390:
+ .4byte _0803E3A8
+ .4byte _0803E474
+ .4byte _0803E508
+ .4byte _0803E59C
+ .4byte _0803E77C
+ .4byte _0803EE1E
+_0803E3A8:
+ ldr r5, [sp, 0x20]
+ ldr r0, [sp, 0x18]
+ adds r2, r5, r0
+ ldrb r1, [r2]
+ movs r0, 0x80
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _0803E3F0
+ ldr r0, _0803E460 @ =gMain
+ ldr r1, _0803E464 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E3F0
+ ldr r2, [sp, 0x34]
+ cmp r2, 0x4
+ beq _0803E3F0
+ ldr r1, _0803E468 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E3F0
+ ldr r0, _0803E46C @ =0xfff0ffff
+ ands r1, r0
+ str r1, [r2]
+ movs r3, 0
+ str r3, [sp, 0x1C]
+_0803E3F0:
+ ldrb r1, [r6]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E41E
+ ldr r1, _0803E468 @ =gBattleMons
+ ldr r0, _0803E470 @ =gActiveBank
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 13
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _0803E41E
+ orrs r1, r3
+ str r1, [r2]
+ movs r4, 0
+ str r4, [sp, 0x1C]
+_0803E41E:
+ ldrb r0, [r6]
+ movs r3, 0xF
+ ands r3, r0
+ cmp r3, 0
+ bne _0803E42C
+ bl _0803F14C
+_0803E42C:
+ ldr r6, _0803E468 @ =gBattleMons
+ ldr r5, _0803E470 @ =gActiveBank
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r6
+ ldrb r2, [r1, 0x19]
+ movs r0, 0x19
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ ble _0803E446
+ bl _0803F14C
+_0803E446:
+ adds r0, r2, r3
+ strb r0, [r1, 0x19]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r6
+ movs r0, 0x19
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ bgt _0803E45A
+ b _0803E74E
+_0803E45A:
+ movs r0, 0xC
+ strb r0, [r1, 0x19]
+ b _0803E74E
+ .align 2, 0
+_0803E460: .4byte gMain
+_0803E464: .4byte 0x0000043d
+_0803E468: .4byte gBattleMons
+_0803E46C: .4byte 0xfff0ffff
+_0803E470: .4byte gActiveBank
+_0803E474:
+ ldr r0, [sp, 0x20]
+ ldr r1, [sp, 0x18]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r0, 0xF0
+ ands r0, r1
+ lsls r3, r0, 24
+ adds r6, r2, 0
+ cmp r3, 0
+ beq _0803E4BA
+ ldr r7, _0803E500 @ =gBattleMons
+ ldr r5, _0803E504 @ =gActiveBank
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r7
+ ldrb r2, [r1, 0x1A]
+ movs r0, 0x1A
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _0803E4BA
+ lsrs r0, r3, 28
+ adds r0, r2, r0
+ strb r0, [r1, 0x1A]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r7
+ movs r0, 0x1A
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0803E4B6
+ movs r0, 0xC
+ strb r0, [r1, 0x1A]
+_0803E4B6:
+ movs r2, 0
+ str r2, [sp, 0x1C]
+_0803E4BA:
+ ldrb r0, [r6]
+ movs r3, 0xF
+ ands r3, r0
+ cmp r3, 0
+ bne _0803E4C8
+ bl _0803F14C
+_0803E4C8:
+ ldr r6, _0803E500 @ =gBattleMons
+ ldr r5, _0803E504 @ =gActiveBank
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r6
+ ldrb r2, [r1, 0x1B]
+ movs r0, 0x1B
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ ble _0803E4E2
+ bl _0803F14C
+_0803E4E2:
+ adds r0, r2, r3
+ strb r0, [r1, 0x1B]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r6
+ movs r0, 0x1B
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0803E4F8
+ movs r0, 0xC
+ strb r0, [r1, 0x1B]
+_0803E4F8:
+ movs r3, 0
+ str r3, [sp, 0x1C]
+ bl _0803F14C
+ .align 2, 0
+_0803E500: .4byte gBattleMons
+_0803E504: .4byte gActiveBank
+_0803E508:
+ ldr r4, [sp, 0x20]
+ ldr r5, [sp, 0x18]
+ adds r2, r4, r5
+ ldrb r1, [r2]
+ movs r0, 0xF0
+ ands r0, r1
+ lsls r3, r0, 24
+ adds r6, r2, 0
+ cmp r3, 0
+ beq _0803E54E
+ ldr r7, _0803E594 @ =gBattleMons
+ ldr r5, _0803E598 @ =gActiveBank
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r7
+ ldrb r2, [r1, 0x1E]
+ movs r0, 0x1E
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _0803E54E
+ lsrs r0, r3, 28
+ adds r0, r2, r0
+ strb r0, [r1, 0x1E]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r7
+ movs r0, 0x1E
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0803E54A
+ movs r0, 0xC
+ strb r0, [r1, 0x1E]
+_0803E54A:
+ movs r0, 0
+ str r0, [sp, 0x1C]
+_0803E54E:
+ ldrb r0, [r6]
+ movs r3, 0xF
+ ands r3, r0
+ cmp r3, 0
+ bne _0803E55C
+ bl _0803F14C
+_0803E55C:
+ ldr r6, _0803E594 @ =gBattleMons
+ ldr r5, _0803E598 @ =gActiveBank
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0, r6
+ ldrb r2, [r1, 0x1C]
+ movs r0, 0x1C
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ ble _0803E576
+ bl _0803F14C
+_0803E576:
+ adds r0, r2, r3
+ strb r0, [r1, 0x1C]
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r1, r0, r6
+ movs r0, 0x1C
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0803E58C
+ movs r0, 0xC
+ strb r0, [r1, 0x1C]
+_0803E58C:
+ movs r1, 0
+ str r1, [sp, 0x1C]
+ bl _0803F14C
+ .align 2, 0
+_0803E594: .4byte gBattleMons
+_0803E598: .4byte gActiveBank
+_0803E59C:
+ ldr r3, [sp, 0x20]
+ ldr r4, [sp, 0x18]
+ adds r2, r3, r4
+ ldrb r1, [r2]
+ movs r0, 0x80
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _0803E5E4
+ ldr r5, _0803E758 @ =gSideTimer
+ ldr r4, _0803E75C @ =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0803E5E4
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r0, 0x5
+ strb r0, [r1, 0x2]
+ movs r5, 0
+ str r5, [sp, 0x1C]
+_0803E5E4:
+ ldrb r1, [r6]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E646
+ mov r0, r8
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0x64
+ beq _0803E646
+ ldr r5, _0803E760 @ =gExperienceTables
+ mov r0, r8
+ movs r1, 0x38
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ mov r0, r8
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r4, 0x1
+ lsls r4, 2
+ ldr r2, _0803E764 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r1
+ adds r4, r0
+ adds r4, r5
+ ldr r0, [r4]
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x19
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ bl CalculateMonStats
+ movs r0, 0
+ str r0, [sp, 0x1C]
+_0803E646:
+ ldrb r1, [r6]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E682
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x7
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E682
+ ldr r1, [sp, 0x34]
+ cmp r1, 0x4
+ beq _0803E67E
+ ldr r1, _0803E768 @ =gBattleMons
+ movs r0, 0x58
+ ldr r3, [sp, 0x34]
+ adds r2, r3, 0
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _0803E76C @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+_0803E67E:
+ movs r4, 0
+ str r4, [sp, 0x1C]
+_0803E682:
+ ldrb r1, [r6]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E6A2
+ ldr r2, _0803E770 @ =0x00000f88
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E6A2
+ movs r5, 0
+ str r5, [sp, 0x1C]
+_0803E6A2:
+ ldrb r1, [r6]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E6C2
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x10
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E6C2
+ movs r0, 0
+ str r0, [sp, 0x1C]
+_0803E6C2:
+ ldrb r1, [r6]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E6E2
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x20
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E6E2
+ movs r1, 0
+ str r1, [sp, 0x1C]
+_0803E6E2:
+ ldrb r1, [r6]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803E702
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x40
+ ldr r3, [sp, 0x34]
+ bl HealStatusConditions
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803E702
+ movs r2, 0
+ str r2, [sp, 0x1C]
+_0803E702:
+ ldrb r1, [r6]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0803E710
+ bl _0803F14C
+_0803E710:
+ ldr r0, _0803E774 @ =gMain
+ ldr r3, _0803E778 @ =0x0000043d
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0803E724
+ bl _0803F14C
+_0803E724:
+ ldr r4, [sp, 0x34]
+ cmp r4, 0x4
+ bne _0803E72E
+ bl _0803F14C
+_0803E72E:
+ ldr r1, _0803E768 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0803E746
+ bl _0803F14C
+_0803E746:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+_0803E74E:
+ movs r5, 0
+ str r5, [sp, 0x1C]
+ bl _0803F14C
+ .align 2, 0
+_0803E758: .4byte gSideTimer
+_0803E75C: .4byte gActiveBank
+_0803E760: .4byte gExperienceTables
+_0803E764: .4byte gBaseStats
+_0803E768: .4byte gBattleMons
+_0803E76C: .4byte 0xf7ffffff
+_0803E770: .4byte 0x00000f88
+_0803E774: .4byte gMain
+_0803E778: .4byte 0x0000043d
+_0803E77C:
+ ldr r1, [sp, 0x20]
+ ldr r2, [sp, 0x18]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ mov r10, r0
+ movs r0, 0x20
+ mov r3, r10
+ ands r0, r3
+ cmp r0, 0
+ beq _0803E854
+ movs r0, 0xDF
+ ands r3, r0
+ mov r10, r3
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _0803E880 @ =gUnknown_08208238
+ ldr r4, [sp, 0x10]
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ ands r0, r1
+ lsls r1, r4, 1
+ lsrs r0, r1
+ str r0, [sp]
+ adds r5, r4, 0
+ adds r5, 0xD
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x28]
+ ldr r0, [sp]
+ cmp r0, 0x2
+ bhi _0803E854
+ ldr r0, [sp, 0x28]
+ cmp r0, 0x4
+ bls _0803E854
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _0803E884 @ =gUnknown_08208240
+ ldr r2, [sp, 0x10]
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r0, r1
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x15
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [sp, 0x28]
+ subs r0, r3
+ str r0, [sp]
+ ldr r4, [sp, 0x10]
+ adds r4, 0x11
+ mov r0, r8
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [sp]
+ adds r0, r1
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r4, 0
+ mov r2, sp
+ bl SetMonData
+ movs r4, 0
+ str r4, [sp, 0x1C]
+_0803E854:
+ movs r5, 0
+ str r5, [sp, 0x28]
+ mov r0, r10
+ cmp r0, 0
+ bne _0803E862
+ bl _0803F14C
+_0803E862:
+ movs r0, 0x1
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ bne _0803E86E
+ b _0803EE0A
+_0803E86E:
+ ldr r2, [sp, 0x28]
+ cmp r2, 0x7
+ bls _0803E876
+ b _0803EE0A
+_0803E876:
+ lsls r0, r2, 2
+ ldr r1, _0803E888 @ =_0803E88C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803E880: .4byte gUnknown_08208238
+_0803E884: .4byte gUnknown_08208240
+_0803E888: .4byte _0803E88C
+ .align 2, 0
+_0803E88C:
+ .4byte _0803E8AC
+ .4byte _0803E8AC
+ .4byte _0803E934
+ .4byte _0803EB5C
+ .4byte _0803EE0A
+ .4byte _0803EE0A
+ .4byte _0803EE0A
+ .4byte _0803EDF4
+_0803E8AC:
+ mov r0, r8
+ bl GetMonEVCount
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _0803E8EC @ =0x000001fd
+ cmp r5, r0
+ bls _0803E8BE
+ b _0803E36C
+_0803E8BE:
+ ldr r0, _0803E8F0 @ =gUnknown_082082F2
+ ldr r3, [sp, 0x28]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ str r1, [sp]
+ cmp r1, 0x63
+ bls _0803E8D8
+ b _0803EE0A
+_0803E8D8:
+ ldr r4, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ adds r1, r0
+ cmp r1, 0x64
+ bls _0803E8F4
+ adds r0, 0x64
+ subs r4, r0, r1
+ b _0803E8F6
+ .align 2, 0
+_0803E8EC: .4byte 0x000001fd
+_0803E8F0: .4byte gUnknown_082082F2
+_0803E8F4:
+ adds r4, r0, 0
+_0803E8F6:
+ adds r1, r5, r4
+ movs r0, 0xFF
+ lsls r0, 1
+ cmp r1, r0
+ bls _0803E904
+ adds r0, r4, r0
+ subs r4, r0, r1
+_0803E904:
+ ldr r0, [sp]
+ adds r0, r4
+ str r0, [sp]
+ ldr r0, _0803E930 @ =gUnknown_082082F2
+ ldr r3, [sp, 0x28]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ bl CalculateMonStats
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ movs r4, 0
+ str r4, [sp, 0x1C]
+ b _0803EE0A
+ .align 2, 0
+_0803E930: .4byte gUnknown_082082F2
+_0803E934:
+ movs r0, 0x10
+ mov r5, r10
+ ands r0, r5
+ cmp r0, 0
+ beq _0803E9F4
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0803E954
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ b _0803EC9E
+_0803E954:
+ ldr r0, _0803E99C @ =gMain
+ ldr r1, _0803E9A0 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r4, 0x2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803EA0A
+ ldr r2, [sp, 0x34]
+ cmp r2, 0x4
+ beq _0803E9B4
+ ldr r2, _0803E9A4 @ =gAbsentBankFlags
+ ldr r1, _0803E9A8 @ =gBitTable
+ ldr r3, [sp, 0x34]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldrb r0, [r2]
+ bics r0, r1
+ strb r0, [r2]
+ ldr r1, _0803E9AC @ =gBattlePartyID
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, [sp, 0x34]
+ bl CopyPlayerPartyMonToBattleData
+ ldr r0, _0803E9B0 @ =gActiveBank
+ ldrb r0, [r0]
+ b _0803E9CC
+ .align 2, 0
+_0803E99C: .4byte gMain
+_0803E9A0: .4byte 0x0000043d
+_0803E9A4: .4byte gAbsentBankFlags
+_0803E9A8: .4byte gBitTable
+_0803E9AC: .4byte gBattlePartyID
+_0803E9B0: .4byte gActiveBank
+_0803E9B4:
+ ldr r3, _0803E9E4 @ =gAbsentBankFlags
+ ldr r1, _0803E9E8 @ =gBitTable
+ ldr r2, _0803E9EC @ =gActiveBank
+ ldrb r0, [r2]
+ eors r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldrb r0, [r3]
+ bics r0, r1
+ strb r0, [r3]
+ ldrb r0, [r2]
+_0803E9CC:
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803EA0A
+ ldr r1, _0803E9F0 @ =gBattleResults
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0xFE
+ bhi _0803EA0A
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0803EA0A
+ .align 2, 0
+_0803E9E4: .4byte gAbsentBankFlags
+_0803E9E8: .4byte gBitTable
+_0803E9EC: .4byte gActiveBank
+_0803E9F0: .4byte gBattleResults
+_0803E9F4:
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _0803EA0A
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ b _0803EC9E
+_0803EA0A:
+ ldr r1, [sp, 0x24]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ ldr r4, [sp, 0x20]
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ str r1, [sp]
+ adds r0, r1, 0
+ cmp r0, 0xFE
+ beq _0803EA4C
+ cmp r0, 0xFE
+ bhi _0803EA2C
+ cmp r0, 0xFD
+ beq _0803EA62
+ b _0803EA6C
+_0803EA2C:
+ cmp r1, 0xFF
+ bne _0803EA6C
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ subs r4, r0
+ str r4, [sp]
+ b _0803EA6C
+_0803EA4C:
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ lsrs r0, 1
+ str r0, [sp]
+ cmp r0, 0
+ bne _0803EA6C
+ movs r0, 0x1
+ b _0803EA6A
+_0803EA62:
+ ldr r0, _0803EB24 @ =0x02000000
+ ldr r5, _0803EB28 @ =0x000160fa
+ adds r0, r5
+ ldrb r0, [r0]
+_0803EA6A:
+ str r0, [sp]
+_0803EA6C:
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ cmp r4, r0
+ beq _0803EB4C
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ bne _0803EB40
+ mov r0, r8
+ movs r1, 0x39
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [sp]
+ adds r0, r1
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [sp]
+ cmp r1, r0
+ bls _0803EAB8
+ mov r0, r8
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+_0803EAB8:
+ mov r0, r8
+ movs r1, 0x39
+ mov r2, sp
+ bl SetMonData
+ ldr r0, _0803EB2C @ =gMain
+ ldr r1, _0803EB30 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803EB48
+ ldr r2, [sp, 0x34]
+ cmp r2, 0x4
+ beq _0803EB48
+ ldr r1, _0803EB34 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldr r1, [sp]
+ strh r1, [r0, 0x28]
+ movs r0, 0x10
+ mov r3, r10
+ ands r0, r3
+ cmp r0, 0
+ bne _0803EB48
+ ldr r4, _0803EB38 @ =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803EB48
+ ldr r1, _0803EB3C @ =gBattleResults
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0xFE
+ bhi _0803EB08
+ adds r0, 0x1
+ strb r0, [r1, 0x3]
+_0803EB08:
+ ldrb r5, [r4]
+ add r0, sp, 0x34
+ ldrb r0, [r0]
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl EmitGetAttributes
+ ldrb r0, [r4]
+ bl MarkBufferBankForExecution
+ strb r5, [r4]
+ b _0803EB48
+ .align 2, 0
+_0803EB24: .4byte 0x02000000
+_0803EB28: .4byte 0x000160fa
+_0803EB2C: .4byte gMain
+_0803EB30: .4byte 0x0000043d
+_0803EB34: .4byte gBattleMons
+_0803EB38: .4byte gActiveBank
+_0803EB3C: .4byte gBattleResults
+_0803EB40:
+ ldr r1, _0803EB58 @ =gBattleMoveDamage
+ ldr r0, [sp]
+ negs r0, r0
+ str r0, [r1]
+_0803EB48:
+ movs r1, 0
+ str r1, [sp, 0x1C]
+_0803EB4C:
+ movs r0, 0xEF
+ mov r2, r10
+ ands r2, r0
+ mov r10, r2
+ b _0803EE0A
+ .align 2, 0
+_0803EB58: .4byte gBattleMoveDamage
+_0803EB5C:
+ movs r7, 0x2
+ mov r0, r10
+ ands r0, r7
+ cmp r0, 0
+ beq _0803EB68
+ b _0803ECB8
+_0803EB68:
+ movs r5, 0
+ ldr r3, [sp, 0x24]
+ adds r3, 0x1
+ str r3, [sp, 0x38]
+_0803EB70:
+ movs r4, 0x11
+ adds r4, r5
+ mov r9, r4
+ mov r0, r8
+ mov r1, r9
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ adds r7, r5, 0
+ adds r7, 0xD
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r5, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ adds r2, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ cmp r1, r0
+ beq _0803EC92
+ ldr r2, [sp, 0x20]
+ ldr r3, [sp, 0x24]
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ adds r0, r1, r0
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ adds r2, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ cmp r1, r0
+ bls _0803EC28
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ adds r2, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_0803EC28:
+ mov r0, r8
+ mov r1, r9
+ mov r2, sp
+ bl SetMonData
+ ldr r0, _0803ECA4 @ =gMain
+ ldr r4, _0803ECA8 @ =0x0000043d
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803EC8E
+ ldr r0, [sp, 0x34]
+ cmp r0, 0x4
+ beq _0803EC8E
+ ldr r4, _0803ECAC @ =gBattleMons
+ movs r0, 0x58
+ ldr r1, [sp, 0x34]
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 14
+ ands r1, r0
+ cmp r1, 0
+ bne _0803EC8E
+ ldr r1, _0803ECB0 @ =gDisableStructs
+ ldr r2, [sp, 0x34]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0803ECB4 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0803EC8E
+ adds r0, r5, r3
+ adds r1, r4, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldr r1, [sp]
+ strb r1, [r0]
+_0803EC8E:
+ movs r3, 0
+ str r3, [sp, 0x1C]
+_0803EC92:
+ adds r5, 0x1
+ cmp r5, 0x3
+ bgt _0803EC9A
+ b _0803EB70
+_0803EC9A:
+ ldr r4, [sp, 0x38]
+ lsls r0, r4, 24
+_0803EC9E:
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ b _0803EE0A
+ .align 2, 0
+_0803ECA4: .4byte gMain
+_0803ECA8: .4byte 0x0000043d
+_0803ECAC: .4byte gBattleMons
+_0803ECB0: .4byte gDisableStructs
+_0803ECB4: .4byte gBitTable
+_0803ECB8:
+ ldr r6, [sp, 0x10]
+ adds r6, 0x11
+ mov r0, r8
+ adds r1, r6, 0
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r5, [sp, 0x10]
+ adds r5, 0xD
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp]
+ cmp r2, r0
+ bne _0803ED00
+ b _0803EE0A
+_0803ED00:
+ ldr r1, [sp, 0x24]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ ldr r0, [sp, 0x20]
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ adds r0, r2, r0
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ cmp r1, r0
+ bls _0803ED74
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_0803ED74:
+ mov r0, r8
+ adds r1, r6, 0
+ mov r2, sp
+ bl SetMonData
+ ldr r0, _0803EDE0 @ =gMain
+ ldr r1, _0803EDE4 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803EDD8
+ ldr r2, [sp, 0x34]
+ cmp r2, 0x4
+ beq _0803EDD8
+ ldr r4, _0803EDE8 @ =gBattleMons
+ movs r0, 0x58
+ adds r3, r2, 0
+ muls r3, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _0803EDD8
+ ldr r1, _0803EDEC @ =gDisableStructs
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0803EDF0 @ =gBitTable
+ ldr r5, [sp, 0x10]
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0803EDD8
+ adds r0, r5, r3
+ adds r1, r4, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldr r1, [sp]
+ strb r1, [r0]
+_0803EDD8:
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ b _0803EE0A
+ .align 2, 0
+_0803EDE0: .4byte gMain
+_0803EDE4: .4byte 0x0000043d
+_0803EDE8: .4byte gBattleMons
+_0803EDEC: .4byte gDisableStructs
+_0803EDF0: .4byte gBitTable
+_0803EDF4:
+ mov r0, r8
+ movs r1, 0x2
+ ldr r2, [sp, 0x8]
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0803EE0A
+ bl _0803E35C
+_0803EE0A:
+ ldr r1, [sp, 0x28]
+ adds r1, 0x1
+ str r1, [sp, 0x28]
+ mov r2, r10
+ lsrs r2, 1
+ mov r10, r2
+ cmp r2, 0
+ beq _0803EE1C
+ b _0803E862
+_0803EE1C:
+ b _0803F14C
+_0803EE1E:
+ ldr r3, [sp, 0x20]
+ ldr r4, [sp, 0x18]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ mov r10, r0
+ movs r5, 0
+ str r5, [sp, 0x28]
+ cmp r0, 0
+ bne _0803EE32
+ b _0803F14C
+_0803EE32:
+ movs r0, 0x1
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ bne _0803EE3E
+ b _0803F13A
+_0803EE3E:
+ ldr r2, [sp, 0x28]
+ cmp r2, 0x7
+ bls _0803EE46
+ b _0803F13A
+_0803EE46:
+ lsls r0, r2, 2
+ ldr r1, _0803EE50 @ =_0803EE54
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803EE50: .4byte _0803EE54
+ .align 2, 0
+_0803EE54:
+ .4byte _0803EE74
+ .4byte _0803EE74
+ .4byte _0803EE74
+ .4byte _0803EE74
+ .4byte _0803EEF8
+ .4byte _0803EFCC
+ .4byte _0803F026
+ .4byte _0803F07C
+_0803EE74:
+ mov r0, r8
+ bl GetMonEVCount
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _0803EEBC @ =0x000001fd
+ cmp r5, r0
+ bls _0803EE88
+ bl _0803E36C
+_0803EE88:
+ ldr r0, _0803EEC0 @ =gUnknown_082082F2
+ ldr r4, [sp, 0x28]
+ adds r4, 0x2
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ str r1, [sp]
+ adds r2, r4, 0
+ cmp r1, 0x63
+ bls _0803EEA6
+ b _0803F13A
+_0803EEA6:
+ ldr r3, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ adds r1, r0
+ cmp r1, 0x64
+ bls _0803EEC4
+ adds r0, 0x64
+ subs r4, r0, r1
+ b _0803EEC6
+ .align 2, 0
+_0803EEBC: .4byte 0x000001fd
+_0803EEC0: .4byte gUnknown_082082F2
+_0803EEC4:
+ adds r4, r0, 0
+_0803EEC6:
+ adds r1, r5, r4
+ movs r0, 0xFF
+ lsls r0, 1
+ cmp r1, r0
+ bls _0803EED4
+ adds r0, r4, r0
+ subs r4, r0, r1
+_0803EED4:
+ ldr r0, [sp]
+ adds r0, r4
+ str r0, [sp]
+ ldr r0, _0803EEF4 @ =gUnknown_082082F2
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ bl CalculateMonStats
+ movs r5, 0
+ str r5, [sp, 0x1C]
+ b _0803F130
+ .align 2, 0
+_0803EEF4: .4byte gUnknown_082082F2
+_0803EEF8:
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _0803EFC0 @ =gUnknown_08208238
+ ldr r2, [sp, 0x10]
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ ands r0, r1
+ lsls r1, r2, 1
+ lsrs r0, r1
+ str r0, [sp]
+ cmp r0, 0x2
+ bls _0803EF18
+ b _0803F13A
+_0803EF18:
+ adds r5, r2, 0
+ adds r5, 0xD
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, r8
+ movs r1, 0x15
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r1, _0803EFC4 @ =gUnknown_0820823C
+ ldr r3, [sp, 0x10]
+ adds r1, r3, r1
+ ldrb r2, [r1]
+ ands r2, r0
+ str r2, [sp]
+ ldr r0, _0803EFC8 @ =gUnknown_08208240
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r2, r0
+ str r2, [sp]
+ mov r0, r8
+ movs r1, 0x15
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, [sp, 0x10]
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, r4
+ str r0, [sp]
+ ldr r4, [sp, 0x10]
+ adds r4, 0x11
+ mov r0, r8
+ adds r1, r4, 0
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [sp]
+ adds r0, r1
+ str r0, [sp]
+ mov r0, r8
+ adds r1, r4, 0
+ mov r2, sp
+ bl SetMonData
+ movs r4, 0
+ str r4, [sp, 0x1C]
+ b _0803F13A
+ .align 2, 0
+_0803EFC0: .4byte gUnknown_08208238
+_0803EFC4: .4byte gUnknown_0820823C
+_0803EFC8: .4byte gUnknown_08208240
+_0803EFCC:
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0x63
+ bls _0803EFDC
+ b _0803F130
+_0803EFDC:
+ ldr r5, [sp, 0x1C]
+ cmp r5, 0
+ beq _0803EFE4
+ b _0803F130
+_0803EFE4:
+ ldr r0, [sp, 0x2C]
+ cmp r0, 0
+ beq _0803EFEC
+ b _0803F130
+_0803EFEC:
+ ldr r1, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ str r0, [sp, 0x2C]
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ str r5, [sp, 0x4]
+ ldr r3, [sp, 0x2C]
+ lsls r4, r3, 24
+ asrs r1, r4, 24
+ cmp r1, 0
+ ble _0803F0D0
+ ldr r0, [sp, 0x30]
+ cmp r0, 0x1B
+ bne _0803F0D0
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ adds r0, r5, r0
+ str r0, [sp, 0x4]
+ adds r2, r4, 0
+ b _0803F0DC
+_0803F026:
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0x63
+ bls _0803F130
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0xC7
+ bhi _0803F130
+ ldr r2, [sp, 0x1C]
+ cmp r2, 0
+ bne _0803F130
+ ldr r3, [sp, 0x2C]
+ cmp r3, 0
+ bne _0803F130
+ ldr r4, [sp, 0x20]
+ ldr r5, [sp, 0x24]
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ str r0, [sp, 0x2C]
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ str r4, [sp, 0x4]
+ ldr r0, [sp, 0x2C]
+ lsls r5, r0, 24
+ asrs r1, r5, 24
+ cmp r1, 0
+ ble _0803F076
+ ldr r2, [sp, 0x30]
+ cmp r2, 0x1B
+ beq _0803F0BE
+_0803F076:
+ ldr r3, [sp, 0x2C]
+ lsls r2, r3, 24
+ b _0803F0D4
+_0803F07C:
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0803F130
+ ldr r4, [sp, 0x1C]
+ cmp r4, 0
+ bne _0803F130
+ ldr r5, [sp, 0x2C]
+ cmp r5, 0
+ bne _0803F130
+ ldr r1, [sp, 0x20]
+ ldr r2, [sp, 0x24]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ str r0, [sp, 0x2C]
+ mov r0, r8
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ str r4, [sp, 0x4]
+ ldr r3, [sp, 0x2C]
+ lsls r5, r3, 24
+ asrs r1, r5, 24
+ cmp r1, 0
+ ble _0803F0D0
+ ldr r0, [sp, 0x30]
+ cmp r0, 0x1B
+ bne _0803F0D0
+_0803F0BE:
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ adds r0, r4, r0
+ str r0, [sp, 0x4]
+ adds r2, r5, 0
+ b _0803F0DC
+_0803F0D0:
+ ldr r1, [sp, 0x2C]
+ lsls r2, r1, 24
+_0803F0D4:
+ asrs r1, r2, 24
+ ldr r0, [sp, 0x4]
+ adds r0, r1
+ str r0, [sp, 0x4]
+_0803F0DC:
+ cmp r2, 0
+ ble _0803F112
+ mov r0, r8
+ movs r1, 0x26
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0xB
+ bne _0803F0F4
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x4]
+_0803F0F4:
+ mov r0, r8
+ movs r1, 0x23
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ bl sav1_map_get_name
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0803F112
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x4]
+_0803F112:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bge _0803F11C
+ movs r0, 0
+ str r0, [sp, 0x4]
+_0803F11C:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0xFF
+ ble _0803F126
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+_0803F126:
+ add r2, sp, 0x4
+ mov r0, r8
+ movs r1, 0x20
+ bl SetMonData
+_0803F130:
+ ldr r0, [sp, 0x24]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+_0803F13A:
+ ldr r2, [sp, 0x28]
+ adds r2, 0x1
+ str r2, [sp, 0x28]
+ mov r3, r10
+ lsrs r3, 1
+ mov r10, r3
+ cmp r3, 0
+ beq _0803F14C
+ b _0803EE32
+_0803F14C:
+ ldr r4, [sp, 0x18]
+ adds r4, 0x1
+ str r4, [sp, 0x18]
+ cmp r4, 0x5
+ bgt _0803F15A
+ bl _0803E378
+_0803F15A:
+ ldr r0, [sp, 0x1C]
+_0803F15C:
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803E1B0
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_menu.s b/asm/pokemon_menu.s
new file mode 100644
index 000000000..3a1552f70
--- /dev/null
+++ b/asm/pokemon_menu.s
@@ -0,0 +1,3438 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8089A70
+sub_8089A70: @ 8089A70
+ push {lr}
+ ldr r0, _08089A88 @ =gPaletteFade
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x8]
+ movs r0, 0
+ movs r1, 0
+ bl OpenPartyMenu
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089A88: .4byte gPaletteFade
+ thumb_func_end sub_8089A70
+
+ thumb_func_start sub_8089A8C
+sub_8089A8C: @ 8089A8C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, _08089AD0 @ =gUnknown_0202FFA9
+ movs r0, 0
+ strb r0, [r5]
+ ldr r0, _08089AD4 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089AD8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _08089AE0
+ ldr r4, _08089ADC @ =gUnknown_0202FFAA
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl AppendToList
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl AppendToList
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl AppendToList
+ b _08089BC8
+ .align 2, 0
+_08089AD0: .4byte gUnknown_0202FFA9
+_08089AD4: .4byte gLastFieldPokeMenuOpened
+_08089AD8: .4byte gPlayerParty
+_08089ADC: .4byte gUnknown_0202FFAA
+_08089AE0:
+ movs r6, 0
+ ldr r0, _08089B24 @ =gUnknown_0839F554
+ ldrh r0, [r0]
+ mov r8, r0
+_08089AE8:
+ movs r4, 0
+ adds r7, r6, 0x1
+ mov r0, r8
+ cmp r0, 0xFF
+ beq _08089B48
+ ldr r5, _08089B24 @ =gUnknown_0839F554
+_08089AF4:
+ ldr r0, _08089B28 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089B2C @ =gPlayerParty
+ adds r0, r1
+ adds r1, r6, 0
+ adds r1, 0xD
+ bl GetMonData
+ lsls r1, r4, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08089B38
+ adds r2, r4, 0
+ adds r2, 0xA
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _08089B30 @ =gUnknown_0202FFAA
+ ldr r1, _08089B34 @ =gUnknown_0202FFA9
+ bl AppendToList
+ b _08089B48
+ .align 2, 0
+_08089B24: .4byte gUnknown_0839F554
+_08089B28: .4byte gLastFieldPokeMenuOpened
+_08089B2C: .4byte gPlayerParty
+_08089B30: .4byte gUnknown_0202FFAA
+_08089B34: .4byte gUnknown_0202FFA9
+_08089B38:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0xFF
+ bne _08089AF4
+_08089B48:
+ lsls r0, r7, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08089AE8
+ ldr r4, _08089BA4 @ =gUnknown_0202FFAA
+ ldr r5, _08089BA8 @ =gUnknown_0202FFA9
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl AppendToList
+ ldr r6, _08089BAC @ =gPlayerParty + 1 * 0x64
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08089B76
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl AppendToList
+_08089B76:
+ ldr r0, _08089BB0 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ adds r1, r6, 0
+ subs r1, 0x64
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl ItemIsMail
+ lsls r0, 24
+ cmp r0, 0
+ beq _08089BB4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl AppendToList
+ b _08089BBE
+ .align 2, 0
+_08089BA4: .4byte gUnknown_0202FFAA
+_08089BA8: .4byte gUnknown_0202FFA9
+_08089BAC: .4byte gPlayerParty + 1 * 0x64
+_08089BB0: .4byte gLastFieldPokeMenuOpened
+_08089BB4:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl AppendToList
+_08089BBE:
+ ldr r0, _08089BD4 @ =gUnknown_0202FFAA
+ ldr r1, _08089BD8 @ =gUnknown_0202FFA9
+ movs r2, 0x3
+ bl AppendToList
+_08089BC8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089BD4: .4byte gUnknown_0202FFAA
+_08089BD8: .4byte gUnknown_0202FFA9
+ thumb_func_end sub_8089A8C
+
+ thumb_func_start sub_8089BDC
+sub_8089BDC: @ 8089BDC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ mov r8, r3
+ ldr r7, [sp, 0x20]
+ ldr r1, [sp, 0x24]
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x5
+ bl sub_806D538
+ adds r4, r5, r4
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ lsls r3, r0, 1
+ adds r3, r6, r3
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl MenuDrawTextWindow
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ adds r6, 0x1
+ lsls r6, 24
+ lsrs r6, 24
+ str r7, [sp]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ mov r2, r8
+ ldr r3, [sp, 0x1C]
+ bl PrintMenuItemsReordered
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8089BDC
+
+ thumb_func_start sub_8089C50
+sub_8089C50: @ 8089C50
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r4, [sp, 0x18]
+ ldr r5, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r4, 0x1
+ str r4, [sp, 0x8]
+ bl sub_8089BDC
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8089C50
+
+ thumb_func_start sub_8089C7C
+sub_8089C7C: @ 8089C7C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _08089CC8 @ =gUnknown_0202FFA9
+ ldrb r0, [r6]
+ lsls r0, 1
+ movs r4, 0x12
+ subs r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r3, [r6]
+ ldr r0, _08089CCC @ =gPokemonMenuActions
+ str r0, [sp]
+ ldr r0, _08089CD0 @ =gUnknown_0202FFAA
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ str r0, [sp, 0x8]
+ movs r0, 0x13
+ adds r1, r4, 0
+ movs r2, 0xA
+ bl sub_8089BDC
+ movs r2, 0x1
+ orrs r2, r4
+ ldrb r3, [r6]
+ str r5, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x14
+ bl InitMenu
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089CC8: .4byte gUnknown_0202FFA9
+_08089CCC: .4byte gPokemonMenuActions
+_08089CD0: .4byte gUnknown_0202FFAA
+ thumb_func_end sub_8089C7C
+
+ thumb_func_start sub_8089CD4
+sub_8089CD4: @ 8089CD4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08089D00 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08089D84
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _08089D04
+ cmp r0, 0x2
+ beq _08089D60
+ b _08089D84
+ .align 2, 0
+_08089D00: .4byte gPaletteFade
+_08089D04:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _08089D48 @ =gLastFieldPokeMenuOpened
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089D4C @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08089D50 @ =gStringVar1
+ bl GetMonNickname
+ bl sub_8089A8C
+ ldr r0, _08089D54 @ =gUnknown_0202FFA8
+ strb r5, [r0]
+ movs r0, 0
+ bl sub_8089C7C
+ ldr r1, _08089D58 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08089D5C @ =sub_8089D94
+ str r1, [r0]
+ adds r0, r4, 0
+ bl sub_808B5B4
+ b _08089D84
+ .align 2, 0
+_08089D48: .4byte gLastFieldPokeMenuOpened
+_08089D4C: .4byte gPlayerParty
+_08089D50: .4byte gStringVar1
+_08089D54: .4byte gUnknown_0202FFA8
+_08089D58: .4byte gTasks
+_08089D5C: .4byte sub_8089D94
+_08089D60:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08089D8C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08089D90 @ =sub_8089E4C
+ str r1, [r0]
+_08089D84:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089D8C: .4byte gTasks
+_08089D90: .4byte sub_8089E4C
+ thumb_func_end sub_8089CD4
+
+ thumb_func_start sub_8089D94
+sub_8089D94: @ 8089D94
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _08089DC8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08089E44
+ ldr r2, _08089DCC @ =gMain
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _08089DD4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ ldr r1, _08089DD0 @ =gUnknown_0202FFA8
+ strb r0, [r1]
+ b _08089E1A
+ .align 2, 0
+_08089DC8: .4byte gPaletteFade
+_08089DCC: .4byte gMain
+_08089DD0: .4byte gUnknown_0202FFA8
+_08089DD4:
+ cmp r1, 0x80
+ bne _08089DF0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldr r1, _08089DEC @ =gUnknown_0202FFA8
+ strb r0, [r1]
+ b _08089E1A
+ .align 2, 0
+_08089DEC: .4byte gUnknown_0202FFA8
+_08089DF0:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08089E30
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08089E24 @ =gPokemonMenuActions
+ ldr r2, _08089E28 @ =gUnknown_0202FFAA
+ ldr r0, _08089E2C @ =gUnknown_0202FFA8
+ ldrb r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_08089E1A:
+ adds r0, r4, 0
+ bl sub_808B5B4
+ b _08089E44
+ .align 2, 0
+_08089E24: .4byte gPokemonMenuActions
+_08089E28: .4byte gUnknown_0202FFAA
+_08089E2C: .4byte gUnknown_0202FFA8
+_08089E30:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08089E44
+ adds r0, r5, 0
+ bl PokemonMenu_Cancel
+ adds r0, r5, 0
+ bl sub_808B5B4
+_08089E44:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8089D94
+
+ thumb_func_start sub_8089E4C
+sub_8089E4C: @ 8089E4C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08089E78 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08089E72
+ ldr r0, _08089E7C @ =gLastFieldPokeMenuOpened
+ strb r1, [r0]
+ ldr r0, _08089E80 @ =sub_805469C
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08089E72:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089E78: .4byte gPaletteFade
+_08089E7C: .4byte gLastFieldPokeMenuOpened
+_08089E80: .4byte sub_805469C
+ thumb_func_end sub_8089E4C
+
+ thumb_func_start sub_8089E84
+sub_8089E84: @ 8089E84
+ push {lr}
+ ldr r0, _08089EAC @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08089EB0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08089EB4 @ =gStringVar1
+ bl GetMonNickname
+ bl sub_8089A8C
+ ldr r1, _08089EB8 @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0
+ bl sub_8089C7C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089EAC: .4byte gLastFieldPokeMenuOpened
+_08089EB0: .4byte gPlayerParty
+_08089EB4: .4byte gStringVar1
+_08089EB8: .4byte gUnknown_0202FFA8
+ thumb_func_end sub_8089E84
+
+ thumb_func_start sub_8089EBC
+sub_8089EBC: @ 8089EBC
+ push {r4,r5,lr}
+ ldr r4, _08089EC4 @ =0x0201b260
+ ldr r5, _08089EC8 @ =gUnknown_020384F0
+ b _08089ED8
+ .align 2, 0
+_08089EC4: .4byte 0x0201b260
+_08089EC8: .4byte gUnknown_020384F0
+_08089ECC:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08089F04
+_08089ED8:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08089ECC
+ ldrb r0, [r4]
+ ldrb r1, [r5]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r1, _08089F0C @ =gLastFieldPokeMenuOpened
+ ldrb r0, [r5]
+ strb r0, [r1]
+ bl sub_8089E84
+ ldr r0, _08089F10 @ =sub_806AEDC
+ bl SetMainCallback2
+_08089F04:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089F0C: .4byte gLastFieldPokeMenuOpened
+_08089F10: .4byte sub_806AEDC
+ thumb_func_end sub_8089EBC
+
+ thumb_func_start sub_8089F14
+sub_8089F14: @ 8089F14
+ push {lr}
+ ldr r2, _08089F38 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _08089F3C @ =sub_8089D94
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _08089F40 @ =sub_8089EBC
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089F38: .4byte gPaletteFade
+_08089F3C: .4byte sub_8089D94
+_08089F40: .4byte sub_8089EBC
+ thumb_func_end sub_8089F14
+
+ thumb_func_start sub_8089F44
+sub_8089F44: @ 8089F44
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _08089FAC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08089FA2
+ ldr r2, _08089FB0 @ =gSprites
+ ldr r1, _08089FB4 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0xE]
+ lsls r1, 16
+ asrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r4, [r0, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r3, 0
+ bl DestroyTask
+ ldr r0, _08089FB8 @ =0x0201b000
+ ldr r1, _08089FBC @ =0x00000262
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08089FC0 @ =gPlayerParty
+ ldr r1, _08089FC4 @ =gPlayerPartyCount
+ ldrb r2, [r1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08089FC8 @ =sub_8089F14
+ str r5, [sp]
+ adds r1, r4, 0
+ bl ShowPokemonSummaryScreen
+_08089FA2:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089FAC: .4byte gPaletteFade
+_08089FB0: .4byte gSprites
+_08089FB4: .4byte gTasks
+_08089FB8: .4byte 0x0201b000
+_08089FBC: .4byte 0x00000262
+_08089FC0: .4byte gPlayerParty
+_08089FC4: .4byte gPlayerPartyCount
+_08089FC8: .4byte sub_8089F14
+ thumb_func_end sub_8089F44
+
+ thumb_func_start PokemonMenu_Summary
+PokemonMenu_Summary: @ 8089FCC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08089FFC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A000 @ =sub_8089F44
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089FFC: .4byte gTasks
+_0808A000: .4byte sub_8089F44
+ thumb_func_end PokemonMenu_Summary
+
+ thumb_func_start sub_808A004
+sub_808A004: @ 808A004
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0808A024 @ =sub_806CA60
+ ldr r2, _0808A028 @ =sub_8089CD4
+ bl SetTaskFuncWithFollowupFunc
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A024: .4byte sub_806CA60
+_0808A028: .4byte sub_8089CD4
+ thumb_func_end sub_808A004
+
+ thumb_func_start PokemonMenu_Switch
+PokemonMenu_Switch: @ 808A02C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl HandleDestroyMenuCursors
+ ldr r0, _0808A054 @ =0x02001000
+ ldr r1, _0808A058 @ =sub_806CD5C
+ str r1, [r0, 0xC]
+ ldr r1, _0808A05C @ =0x0001a272
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl sub_808A004
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A054: .4byte 0x02001000
+_0808A058: .4byte sub_806CD5C
+_0808A05C: .4byte 0x0001a272
+ thumb_func_end PokemonMenu_Switch
+
+ thumb_func_start sub_808A060
+sub_808A060: @ 808A060
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A0D0 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x40
+ bne _0808A086
+ ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0808A086
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+_0808A086:
+ ldr r0, _0808A0D0 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x80
+ bne _0808A0A4
+ ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ beq _0808A0A4
+ movs r0, 0x1
+ bl MoveMenuCursor
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+_0808A0A4:
+ ldr r0, _0808A0D0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A0E0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0808A0D8 @ =gUnknown_0839F578
+ ldr r2, _0808A0DC @ =gPokemonMenuActions
+ ldr r0, _0808A0D4 @ =gUnknown_0202FFA8
+ ldrb r3, [r0]
+ movs r0, 0
+ bl PartyMenuGetPopupMenuFunc
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0808A0F6
+ .align 2, 0
+_0808A0D0: .4byte gMain
+_0808A0D4: .4byte gUnknown_0202FFA8
+_0808A0D8: .4byte gUnknown_0839F578
+_0808A0DC: .4byte gPokemonMenuActions
+_0808A0E0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A0F6
+ ldr r1, _0808A0FC @ =gUnknown_0839F578
+ movs r0, 0
+ bl sub_806E7D0
+ adds r0, r5, 0
+ bl PokemonMenu_CancelSubmenu
+_0808A0F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A0FC: .4byte gUnknown_0839F578
+ thumb_func_end sub_808A060
+
+ thumb_func_start sub_808A100
+sub_808A100: @ 808A100
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0808A130 @ =gUnknown_0839F578
+ ldr r2, _0808A134 @ =gPokemonMenuActions
+ movs r0, 0
+ movs r3, 0
+ bl sub_806E750
+ movs r0, 0xD
+ movs r1, 0x2
+ bl sub_806D538
+ ldr r1, _0808A138 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A13C @ =sub_808A060
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A130: .4byte gUnknown_0839F578
+_0808A134: .4byte gPokemonMenuActions
+_0808A138: .4byte gTasks
+_0808A13C: .4byte sub_808A060
+ thumb_func_end sub_808A100
+
+ thumb_func_start PokemonMenu_Item
+PokemonMenu_Item: @ 808A140
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl HandleDestroyMenuCursors
+ ldr r1, _0808A174 @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _0808A178 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A17C @ =sub_808A100
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A174: .4byte gUnknown_0202FFA8
+_0808A178: .4byte gTasks
+_0808A17C: .4byte sub_808A100
+ thumb_func_end PokemonMenu_Item
+
+ thumb_func_start sub_808A180
+sub_808A180: @ 808A180
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A1D0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A1CA
+ adds r0, r5, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A1D4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0808A1D8 @ =gSaveBlock1 + 0x2B4C
+ adds r1, r0
+ ldr r2, _0808A1DC @ =sub_808A520
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_80E62A0
+_0808A1CA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A1D0: .4byte gPaletteFade
+_0808A1D4: .4byte gPlayerParty
+_0808A1D8: .4byte gSaveBlock1 + 0x2B4C
+_0808A1DC: .4byte sub_808A520
+ thumb_func_end sub_808A180
+
+ thumb_func_start sub_808A1E0
+sub_808A1E0: @ 808A1E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A21C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808A216
+ adds r0, r4, 0
+ bl sub_806CA38
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl SetHeldItemIconVisibility
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _0808A220 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A224 @ =sub_8089CD4
+ str r1, [r0]
+_0808A216:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A21C: .4byte gUnknown_0202E8F6
+_0808A220: .4byte gTasks
+_0808A224: .4byte sub_8089CD4
+ thumb_func_end sub_808A1E0
+
+ thumb_func_start sub_808A228
+sub_808A228: @ 808A228
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A268 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl ItemIsMail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808A278
+ ldr r0, _0808A26C @ =gUnknown_0202E8F4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0808A278
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808A270 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A274 @ =sub_808A180
+ str r1, [r0]
+ b _0808A29A
+ .align 2, 0
+_0808A268: .4byte gScriptItemId
+_0808A26C: .4byte gUnknown_0202E8F4
+_0808A270: .4byte gTasks
+_0808A274: .4byte sub_808A180
+_0808A278:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r0, _0808A2A4 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808A2A8 @ =sub_8089CD4
+ str r0, [r1]
+_0808A29A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A2A4: .4byte gTasks
+_0808A2A8: .4byte sub_8089CD4
+ thumb_func_end sub_808A228
+
+ thumb_func_start sub_808A2AC
+sub_808A2AC: @ 808A2AC
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0808A2D0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A2CA
+ ldr r0, _0808A2D4 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0808A2D8 @ =sub_808A228
+ adds r0, r3, 0
+ bl PartyMenuTryGiveMonHeldItem
+_0808A2CA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A2D0: .4byte gPaletteFade
+_0808A2D4: .4byte gScriptItemId
+_0808A2D8: .4byte sub_808A228
+ thumb_func_end sub_808A2AC
+
+ thumb_func_start sub_808A2DC
+sub_808A2DC: @ 808A2DC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A324 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0808A328 @ =gSaveBlock1 + 0x2B4C
+ adds r1, r0
+ ldr r2, _0808A32C @ =sub_808A520
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_80E62A0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A324: .4byte gPlayerParty
+_0808A328: .4byte gSaveBlock1 + 0x2B4C
+_0808A32C: .4byte sub_808A520
+ thumb_func_end sub_808A2DC
+
+ thumb_func_start sub_808A330
+sub_808A330: @ 808A330
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0808A344 @ =gScriptItemId
+ ldrh r1, [r1]
+ ldr r2, _0808A348 @ =sub_808A2DC
+ bl PartyMenuTryGiveMonHeldItem
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A344: .4byte gScriptItemId
+_0808A348: .4byte sub_808A2DC
+ thumb_func_end sub_808A330
+
+ thumb_func_start sub_808A34C
+sub_808A34C: @ 808A34C
+ push {lr}
+ bl RunTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A34C
+
+ thumb_func_start sub_808A358
+sub_808A358: @ 808A358
+ push {r4,lr}
+ ldr r4, _0808A360 @ =0x0201b260
+ b _0808A370
+ .align 2, 0
+_0808A360: .4byte 0x0201b260
+_0808A364:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808A394
+_0808A370:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A364
+ ldrb r0, [r4]
+ ldr r1, _0808A39C @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808A3A0 @ =sub_806AEDC
+ bl SetMainCallback2
+_0808A394:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A39C: .4byte gLastFieldPokeMenuOpened
+_0808A3A0: .4byte sub_806AEDC
+ thumb_func_end sub_808A358
+
+ thumb_func_start sub_808A3A4
+sub_808A3A4: @ 808A3A4
+ push {r4,r5,lr}
+ ldr r4, _0808A3D8 @ =0x0201b260
+ adds r5, r4, 0x2
+_0808A3AA:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A3E4
+ ldrb r0, [r4]
+ ldr r1, _0808A3DC @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ movs r0, 0x3
+ strb r0, [r5]
+ bl sub_8089E84
+ ldr r0, _0808A3E0 @ =sub_806AEDC
+ bl SetMainCallback2
+ b _0808A3F0
+ .align 2, 0
+_0808A3D8: .4byte 0x0201b260
+_0808A3DC: .4byte gLastFieldPokeMenuOpened
+_0808A3E0: .4byte sub_806AEDC
+_0808A3E4:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A3AA
+_0808A3F0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A3A4
+
+ thumb_func_start sub_808A3F8
+sub_808A3F8: @ 808A3F8
+ push {r4,lr}
+ ldr r0, _0808A460 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl ItemIsMail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808A47E
+ ldr r0, _0808A464 @ =sub_808A330
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _0808A468 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806BD58
+ ldr r0, _0808A46C @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_806C994
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806BF74
+ adds r0, r4, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A470 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 24
+ cmp r0, 0
+ bne _0808A478
+ ldr r0, _0808A474 @ =sub_808A34C
+ bl SetMainCallback2
+ b _0808A4C6
+ .align 2, 0
+_0808A460: .4byte gScriptItemId
+_0808A464: .4byte sub_808A330
+_0808A468: .4byte gPaletteFade
+_0808A46C: .4byte gLastFieldPokeMenuOpened
+_0808A470: .4byte gPlayerParty
+_0808A474: .4byte sub_808A34C
+_0808A478:
+ adds r0, r4, 0
+ bl DestroyTask
+_0808A47E:
+ ldr r2, _0808A4A4 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0808A4A8 @ =gScriptItemId
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0808A4B4
+ ldr r2, _0808A4AC @ =sub_808A2AC
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0xFF
+ bl sub_806AF4C
+ ldr r0, _0808A4B0 @ =sub_808A358
+ bl SetMainCallback2
+ b _0808A4C6
+ .align 2, 0
+_0808A4A4: .4byte gPaletteFade
+_0808A4A8: .4byte gScriptItemId
+_0808A4AC: .4byte sub_808A2AC
+_0808A4B0: .4byte sub_808A358
+_0808A4B4:
+ ldr r2, _0808A4CC @ =sub_8089D94
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _0808A4D0 @ =sub_808A3A4
+ bl SetMainCallback2
+_0808A4C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A4CC: .4byte sub_8089D94
+_0808A4D0: .4byte sub_808A3A4
+ thumb_func_end sub_808A3F8
+
+ thumb_func_start sub_808A4D4
+sub_808A4D4: @ 808A4D4
+ push {r4,lr}
+ ldr r4, _0808A4DC @ =0x0201b260
+ b _0808A4EC
+ .align 2, 0
+_0808A4DC: .4byte 0x0201b260
+_0808A4E0:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808A510
+_0808A4EC:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A4E0
+ ldrb r0, [r4]
+ ldr r1, _0808A518 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808A51C @ =sub_806AEDC
+ bl SetMainCallback2
+_0808A510:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A518: .4byte gLastFieldPokeMenuOpened
+_0808A51C: .4byte sub_806AEDC
+ thumb_func_end sub_808A4D4
+
+ thumb_func_start sub_808A520
+sub_808A520: @ 808A520
+ push {r4-r7,lr}
+ ldr r2, _0808A584 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0808A588 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0808A59C
+ ldr r7, _0808A58C @ =gUnknown_0202E8F8
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _0808A542
+ movs r1, 0x1
+ bl RemoveBagItem
+_0808A542:
+ ldr r6, _0808A590 @ =gLastFieldPokeMenuOpened
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _0808A594 @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl AddBagItem
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ bl TakeMailFromMon
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xC
+ adds r2, r7, 0
+ bl SetMonData
+ ldr r2, _0808A598 @ =sub_8089CD4
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0
+ bl sub_806AF4C
+ b _0808A5A8
+ .align 2, 0
+_0808A584: .4byte gPaletteFade
+_0808A588: .4byte gScriptResult
+_0808A58C: .4byte gUnknown_0202E8F8
+_0808A590: .4byte gLastFieldPokeMenuOpened
+_0808A594: .4byte gPlayerParty
+_0808A598: .4byte sub_8089CD4
+_0808A59C:
+ ldr r2, _0808A5B4 @ =sub_808A5BC
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0xFF
+ bl sub_806AF4C
+_0808A5A8:
+ ldr r0, _0808A5B8 @ =sub_808A4D4
+ bl SetMainCallback2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A5B4: .4byte sub_808A5BC
+_0808A5B8: .4byte sub_808A4D4
+ thumb_func_end sub_808A520
+
+ thumb_func_start sub_808A5BC
+sub_808A5BC: @ 808A5BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A5F0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A5EA
+ ldr r0, _0808A5F4 @ =gLastFieldPokeMenuOpened
+ ldrb r0, [r0]
+ ldr r1, _0808A5F8 @ =gScriptItemId
+ ldrh r1, [r1]
+ movs r2, 0
+ bl DisplayGiveHeldItemMessage
+ ldr r1, _0808A5FC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A600 @ =sub_808A1E0
+ str r1, [r0]
+_0808A5EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A5F0: .4byte gPaletteFade
+_0808A5F4: .4byte gLastFieldPokeMenuOpened
+_0808A5F8: .4byte gScriptItemId
+_0808A5FC: .4byte gTasks
+_0808A600: .4byte sub_808A1E0
+ thumb_func_end sub_808A5BC
+
+ thumb_func_start sub_808A604
+sub_808A604: @ 808A604
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808A628 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A622
+ ldr r0, _0808A62C @ =sub_80A61D0
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0808A622:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A628: .4byte gPaletteFade
+_0808A62C: .4byte sub_80A61D0
+ thumb_func_end sub_808A604
+
+ thumb_func_start PokemonMenu_GiveItem
+PokemonMenu_GiveItem: @ 808A630
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0808A66C @ =gUnknown_0202E8F5
+ strb r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808A670 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A674 @ =sub_808A604
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A66C: .4byte gUnknown_0202E8F5
+_0808A670: .4byte gTasks
+_0808A674: .4byte sub_808A604
+ thumb_func_end PokemonMenu_GiveItem
+
+ thumb_func_start sub_808A678
+sub_808A678: @ 808A678
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_808A8D4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808A678
+
+ thumb_func_start PokemonMenu_TakeItem
+PokemonMenu_TakeItem: @ 808A688
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl HandleDestroyMenuCursors
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r1, _0808A6B4 @ =sub_808A678
+ adds r0, r4, 0
+ bl PartyMenuTryGiveMonHeldItem_806ECE8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A6B4: .4byte sub_808A678
+ thumb_func_end PokemonMenu_TakeItem
+
+ thumb_func_start PokemonMenu_TakeMail
+PokemonMenu_TakeMail: @ 808A6B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl HandleDestroyMenuCursors
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r1, _0808A6E4 @ =sub_808A678
+ adds r0, r4, 0
+ bl DoTakeMail
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A6E4: .4byte sub_808A678
+ thumb_func_end PokemonMenu_TakeMail
+
+ thumb_func_start PokemonMenu_Mail
+PokemonMenu_Mail: @ 808A6E8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl HandleDestroyMenuCursors
+ ldr r1, _0808A728 @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _0808A72C @ =gUnknown_0839F584
+ ldr r2, _0808A730 @ =gPokemonMenuActions
+ movs r0, 0
+ movs r3, 0
+ bl sub_806E750
+ ldr r1, _0808A734 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A738 @ =sub_808A73C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A728: .4byte gUnknown_0202FFA8
+_0808A72C: .4byte gUnknown_0839F584
+_0808A730: .4byte gPokemonMenuActions
+_0808A734: .4byte gTasks
+_0808A738: .4byte sub_808A73C
+ thumb_func_end PokemonMenu_Mail
+
+ thumb_func_start sub_808A73C
+sub_808A73C: @ 808A73C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A764 @ =gMain
+ ldrh r0, [r0, 0x30]
+ cmp r0, 0x40
+ bne _0808A77A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0808A768 @ =gUnknown_0202FFA8
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0808A770
+ ldr r0, _0808A76C @ =gUnknown_0839F584
+ ldrb r0, [r0]
+ subs r0, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ b _0808A774
+ .align 2, 0
+_0808A764: .4byte gMain
+_0808A768: .4byte gUnknown_0202FFA8
+_0808A76C: .4byte gUnknown_0839F584
+_0808A770:
+ movs r0, 0x1
+ negs r0, r0
+_0808A774:
+ bl MoveMenuCursor
+ strb r0, [r4]
+_0808A77A:
+ ldr r0, _0808A7A0 @ =gMain
+ ldrh r0, [r0, 0x30]
+ cmp r0, 0x80
+ bne _0808A7B4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0808A7A4 @ =gUnknown_0202FFA8
+ ldrb r0, [r4]
+ ldr r1, _0808A7A8 @ =gUnknown_0839F584
+ ldrb r2, [r1]
+ subs r1, r2, 0x1
+ cmp r0, r1
+ bne _0808A7AC
+ movs r0, 0x1
+ subs r0, r2
+ lsls r0, 24
+ asrs r0, 24
+ b _0808A7AE
+ .align 2, 0
+_0808A7A0: .4byte gMain
+_0808A7A4: .4byte gUnknown_0202FFA8
+_0808A7A8: .4byte gUnknown_0839F584
+_0808A7AC:
+ movs r0, 0x1
+_0808A7AE:
+ bl MoveMenuCursor
+ strb r0, [r4]
+_0808A7B4:
+ ldr r0, _0808A7E0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A7F0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0808A7E4 @ =gUnknown_0839F584
+ ldr r2, _0808A7E8 @ =gPokemonMenuActions
+ ldr r0, _0808A7EC @ =gUnknown_0202FFA8
+ ldrb r3, [r0]
+ movs r0, 0
+ bl PartyMenuGetPopupMenuFunc
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0808A806
+ .align 2, 0
+_0808A7E0: .4byte gMain
+_0808A7E4: .4byte gUnknown_0839F584
+_0808A7E8: .4byte gPokemonMenuActions
+_0808A7EC: .4byte gUnknown_0202FFA8
+_0808A7F0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808A806
+ ldr r1, _0808A80C @ =gUnknown_0839F584
+ movs r0, 0
+ bl sub_806E7D0
+ adds r0, r5, 0
+ bl PokemonMenu_Cancel
+_0808A806:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A80C: .4byte gUnknown_0839F584
+ thumb_func_end sub_808A73C
+
+ thumb_func_start PokemonMenu_ReadMail
+PokemonMenu_ReadMail: @ 808A810
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808A840 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A844 @ =sub_808A848
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A840: .4byte gTasks
+_0808A844: .4byte sub_808A848
+ thumb_func_end PokemonMenu_ReadMail
+
+ thumb_func_start sub_808A848
+sub_808A848: @ 808A848
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808A898 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808A890
+ adds r0, r5, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0808A89C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0808A8A0 @ =gSaveBlock1 + 0x2B4C
+ adds r0, r1
+ ldr r1, _0808A8A4 @ =sub_808A8A8
+ movs r2, 0x1
+ bl HandleReadMail
+_0808A890:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A898: .4byte gPaletteFade
+_0808A89C: .4byte gPlayerParty
+_0808A8A0: .4byte gSaveBlock1 + 0x2B4C
+_0808A8A4: .4byte sub_808A8A8
+ thumb_func_end sub_808A848
+
+ thumb_func_start sub_808A8A8
+sub_808A8A8: @ 808A8A8
+ push {lr}
+ ldr r1, _0808A8C4 @ =gUnknown_020384F0
+ ldr r0, _0808A8C8 @ =gLastFieldPokeMenuOpened
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0808A8CC @ =0x0201b000
+ ldr r1, _0808A8D0 @ =0x00000262
+ adds r0, r1
+ movs r1, 0x4
+ strb r1, [r0]
+ bl sub_8089F14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A8C4: .4byte gUnknown_020384F0
+_0808A8C8: .4byte gLastFieldPokeMenuOpened
+_0808A8CC: .4byte 0x0201b000
+_0808A8D0: .4byte 0x00000262
+ thumb_func_end sub_808A8A8
+
+ thumb_func_start sub_808A8D4
+sub_808A8D4: @ 808A8D4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0808A90C @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _0808A910 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A914 @ =sub_8089CD4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A90C: .4byte gUnknown_0202FFA8
+_0808A910: .4byte gTasks
+_0808A914: .4byte sub_8089CD4
+ thumb_func_end sub_808A8D4
+
+ thumb_func_start PokemonMenu_Cancel
+PokemonMenu_Cancel: @ 808A918
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl HandleDestroyMenuCursors
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_808A8D4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end PokemonMenu_Cancel
+
+ thumb_func_start PokemonMenu_CancelSubmenu
+PokemonMenu_CancelSubmenu: @ 808A938
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl HandleDestroyMenuCursors
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r0, _0808A978 @ =gUnknown_0202FFA8
+ ldrb r0, [r0]
+ bl sub_8089C7C
+ ldr r1, _0808A97C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808A980 @ =sub_8089D94
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808A978: .4byte gUnknown_0202FFA8
+_0808A97C: .4byte gTasks
+_0808A980: .4byte sub_8089D94
+ thumb_func_end PokemonMenu_CancelSubmenu
+
+ thumb_func_start PokemonMenu_FieldMove
+PokemonMenu_FieldMove: @ 808A984
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r7, _0808A9D0 @ =gTasks + 0x8
+ adds r4, r6, r7
+ bl HandleDestroyMenuCursors
+ ldr r1, _0808A9D4 @ =gUnknown_0202FFAA
+ ldr r0, _0808A9D8 @ =gUnknown_0202FFA8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0xA
+ strh r0, [r4, 0x16]
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808A9DC
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldrh r0, [r4, 0x16]
+ subs r0, 0xB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0808AABA
+ movs r0, 0x9
+ b _0808AAB2
+ .align 2, 0
+_0808A9D0: .4byte gTasks + 0x8
+_0808A9D4: .4byte gUnknown_0202FFAA
+_0808A9D8: .4byte gUnknown_0202FFA8
+_0808A9DC:
+ ldrh r1, [r4, 0x16]
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7
+ bgt _0808AA2C
+ ldr r2, _0808AA20 @ =0x00000807
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808AA2C
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_806D5A4
+ ldr r0, _0808AA24 @ =gOtherText_CantBeUsedBadge
+ movs r1, 0x1
+ bl sub_806E834
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0808AA28 @ =sub_808AAF0
+ str r1, [r0]
+ b _0808AADA
+ .align 2, 0
+_0808AA20: .4byte 0x00000807
+_0808AA24: .4byte gOtherText_CantBeUsedBadge
+_0808AA28: .4byte sub_808AAF0
+_0808AA2C:
+ ldr r1, _0808AA78 @ =gFieldMoveFuncs
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AA90
+ ldr r1, _0808AA7C @ =gUnknown_0202FFA8
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r0, [r4, 0x16]
+ subs r0, 0xB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _0808AA88
+ ldr r1, _0808AA80 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808AA84 @ =sub_808AB34
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0808AADA
+ .align 2, 0
+_0808AA78: .4byte gFieldMoveFuncs
+_0808AA7C: .4byte gUnknown_0202FFA8
+_0808AA80: .4byte gTasks
+_0808AA84: .4byte sub_808AB34
+_0808AA88:
+ adds r0, r5, 0
+ bl sub_8133D28
+ b _0808AADA
+_0808AA90:
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bne _0808AABA
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808AABA
+ movs r0, 0x8
+_0808AAB2:
+ movs r1, 0
+ bl sub_806D538
+ b _0808AACC
+_0808AABA:
+ ldr r0, _0808AAE4 @ =gFieldMoveFuncs
+ movs r2, 0x16
+ ldrsh r1, [r4, r2]
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x4]
+ movs r1, 0
+ bl sub_806D538
+_0808AACC:
+ ldr r0, _0808AAE8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808AAEC @ =sub_808ABF4
+ str r0, [r1]
+_0808AADA:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AAE4: .4byte gFieldMoveFuncs
+_0808AAE8: .4byte gTasks
+_0808AAEC: .4byte sub_808ABF4
+ thumb_func_end PokemonMenu_FieldMove
+
+ thumb_func_start sub_808AAF0
+sub_808AAF0: @ 808AAF0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808AB2C @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808AB24
+ ldr r0, _0808AB30 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0808AB12
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808AB24
+_0808AB12:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl PokemonMenu_Cancel
+_0808AB24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AB2C: .4byte gUnknown_0202E8F6
+_0808AB30: .4byte gMain
+ thumb_func_end sub_808AAF0
+
+ thumb_func_start sub_808AB34
+sub_808AB34: @ 808AB34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808AB6C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808AB84
+ ldr r0, _0808AB70 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x1E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x5
+ bne _0808AB62
+ bl ShouldDoBrailleFlyEffect
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808AB78
+_0808AB62:
+ ldr r0, _0808AB74 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ b _0808AB7E
+ .align 2, 0
+_0808AB6C: .4byte gPaletteFade
+_0808AB70: .4byte gTasks
+_0808AB74: .4byte c2_exit_to_overworld_2_switch
+_0808AB78:
+ ldr r0, _0808AB8C @ =sub_80FC074
+ bl SetMainCallback2
+_0808AB7E:
+ adds r0, r4, 0
+ bl DestroyTask
+_0808AB84:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AB8C: .4byte sub_80FC074
+ thumb_func_end sub_808AB34
+
+ thumb_func_start sub_808AB90
+sub_808AB90: @ 808AB90
+ push {lr}
+ bl pal_fill_black
+ ldr r0, _0808ABA4 @ =sub_808ABA8
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ABA4: .4byte sub_808ABA8
+ thumb_func_end sub_808AB90
+
+ thumb_func_start sub_808ABA8
+sub_808ABA8: @ 808ABA8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808ABDE
+ ldr r0, _0808ABE4 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808ABE8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _0808ABEC @ =gUnknown_0202FF84
+ str r0, [r1]
+ ldr r0, _0808ABF0 @ =gUnknown_03005CE4
+ ldr r0, [r0]
+ bl _call_via_r0
+ adds r0, r4, 0
+ bl DestroyTask
+_0808ABDE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ABE4: .4byte gLastFieldPokeMenuOpened
+_0808ABE8: .4byte gPlayerParty
+_0808ABEC: .4byte gUnknown_0202FF84
+_0808ABF0: .4byte gUnknown_03005CE4
+ thumb_func_end sub_808ABA8
+
+ thumb_func_start sub_808ABF4
+sub_808ABF4: @ 808ABF4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808AC28 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0808AC0E
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0808AC20
+_0808AC0E:
+ movs r0, 0x1
+ movs r1, 0x11
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl PokemonMenu_Cancel
+_0808AC20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AC28: .4byte gMain
+ thumb_func_end sub_808ABF4
+
+ thumb_func_start sub_808AC2C
+sub_808AC2C: @ 808AC2C
+ push {lr}
+ ldr r0, _0808AC40 @ =gUnknown_0202FF84
+ ldr r1, _0808AC44 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x9
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AC40: .4byte gUnknown_0202FF84
+_0808AC44: .4byte gLastFieldPokeMenuOpened
+ thumb_func_end sub_808AC2C
+
+ thumb_func_start SetUpFieldMove_Surf
+SetUpFieldMove_Surf: @ 808AC48
+ push {lr}
+ bl PartyHasMonWithSurf
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AC84
+ bl IsPlayerFacingSurfableFishableWater
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AC84
+ ldr r1, _0808AC74 @ =gFieldCallback
+ ldr r0, _0808AC78 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808AC7C @ =gUnknown_03005CE4
+ ldr r0, _0808AC80 @ =sub_808AC2C
+ str r0, [r1]
+ movs r0, 0x1
+ b _0808AC86
+ .align 2, 0
+_0808AC74: .4byte gFieldCallback
+_0808AC78: .4byte sub_808AB90
+_0808AC7C: .4byte gUnknown_03005CE4
+_0808AC80: .4byte sub_808AC2C
+_0808AC84:
+ movs r0, 0
+_0808AC86:
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpFieldMove_Surf
+
+ thumb_func_start sub_808AC8C
+sub_808AC8C: @ 808AC8C
+ push {lr}
+ ldr r0, _0808ACA0 @ =gUnknown_0202FF84
+ ldr r1, _0808ACA4 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x1F
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ACA0: .4byte gUnknown_0202FF84
+_0808ACA4: .4byte gLastFieldPokeMenuOpened
+ thumb_func_end sub_808AC8C
+
+ thumb_func_start SetUpFieldMove_Fly
+SetUpFieldMove_Fly: @ 808ACA8
+ push {lr}
+ bl ShouldDoBrailleFlyEffect
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808ACD0
+ ldr r1, _0808ACC0 @ =gFieldCallback
+ ldr r0, _0808ACC4 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808ACC8 @ =gUnknown_03005CE4
+ ldr r0, _0808ACCC @ =DoBrailleFlyEffect
+ b _0808ACF2
+ .align 2, 0
+_0808ACC0: .4byte gFieldCallback
+_0808ACC4: .4byte sub_808AB90
+_0808ACC8: .4byte gUnknown_03005CE4
+_0808ACCC: .4byte DoBrailleFlyEffect
+_0808ACD0:
+ ldr r0, _0808ACE4 @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ bl is_light_level_1_2_3_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808ACE8
+ movs r0, 0
+ b _0808ACF6
+ .align 2, 0
+_0808ACE4: .4byte gMapHeader
+_0808ACE8:
+ ldr r1, _0808ACFC @ =gFieldCallback
+ ldr r0, _0808AD00 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808AD04 @ =gUnknown_03005CE4
+ ldr r0, _0808AD08 @ =sub_808AC8C
+_0808ACF2:
+ str r0, [r1]
+ movs r0, 0x1
+_0808ACF6:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808ACFC: .4byte gFieldCallback
+_0808AD00: .4byte sub_808AB90
+_0808AD04: .4byte gUnknown_03005CE4
+_0808AD08: .4byte sub_808AC8C
+ thumb_func_end SetUpFieldMove_Fly
+
+ thumb_func_start sub_808AD0C
+sub_808AD0C: @ 808AD0C
+ push {r4,lr}
+ ldr r4, _0808AD14 @ =0x0201b260
+ b _0808AD24
+ .align 2, 0
+_0808AD14: .4byte 0x0201b260
+_0808AD18:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808AD48
+_0808AD24:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AD18
+ ldrb r0, [r4]
+ ldr r1, _0808AD50 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808AD54 @ =sub_806AEDC
+ bl SetMainCallback2
+_0808AD48:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AD50: .4byte gLastFieldPokeMenuOpened
+_0808AD54: .4byte sub_806AEDC
+ thumb_func_end sub_808AD0C
+
+ thumb_func_start sub_808AD58
+sub_808AD58: @ 808AD58
+ push {lr}
+ ldr r2, _0808AD7C @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _0808AD80 @ =sub_8089CD4
+ movs r0, 0
+ movs r1, 0xFF
+ movs r3, 0
+ bl sub_806AF4C
+ ldr r0, _0808AD84 @ =sub_808AD0C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AD7C: .4byte gPaletteFade
+_0808AD80: .4byte sub_8089CD4
+_0808AD84: .4byte sub_808AD0C
+ thumb_func_end sub_808AD58
+
+ thumb_func_start unref_sub_808AD88
+unref_sub_808AD88: @ 808AD88
+ push {lr}
+ ldr r0, _0808ADA4 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808ADA8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808ADA4: .4byte gLastFieldPokeMenuOpened
+_0808ADA8: .4byte gPlayerParty
+ thumb_func_end unref_sub_808AD88
+
+ thumb_func_start sub_808ADAC
+sub_808ADAC: @ 808ADAC
+ push {lr}
+ ldr r0, _0808ADC0 @ =gUnknown_0202FF84
+ ldr r1, _0808ADC4 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x2C
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808ADC0: .4byte gUnknown_0202FF84
+_0808ADC4: .4byte gLastFieldPokeMenuOpened
+ thumb_func_end sub_808ADAC
+
+ thumb_func_start SetUpFieldMove_Dive
+SetUpFieldMove_Dive: @ 808ADC8
+ push {lr}
+ bl sub_8068F18
+ ldr r1, _0808ADE0 @ =gUnknown_0202FF84
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0808ADE4
+ movs r0, 0
+ b _0808ADF2
+ .align 2, 0
+_0808ADE0: .4byte gUnknown_0202FF84
+_0808ADE4:
+ ldr r1, _0808ADF8 @ =gFieldCallback
+ ldr r0, _0808ADFC @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808AE00 @ =gUnknown_03005CE4
+ ldr r0, _0808AE04 @ =sub_808ADAC
+ str r0, [r1]
+ movs r0, 0x1
+_0808ADF2:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808ADF8: .4byte gFieldCallback
+_0808ADFC: .4byte sub_808AB90
+_0808AE00: .4byte gUnknown_03005CE4
+_0808AE04: .4byte sub_808ADAC
+ thumb_func_end SetUpFieldMove_Dive
+
+ thumb_func_start sub_808AE08
+sub_808AE08: @ 808AE08
+ push {lr}
+ ldr r0, _0808AE1C @ =gUnknown_0202FF84
+ ldr r1, _0808AE20 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x2B
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AE1C: .4byte gUnknown_0202FF84
+_0808AE20: .4byte gLastFieldPokeMenuOpened
+ thumb_func_end sub_808AE08
+
+ thumb_func_start SetUpFieldMove_Waterfall
+SetUpFieldMove_Waterfall: @ 808AE24
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsWaterfall
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AE80
+ bl IsPlayerSurfingNorth
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AE80
+ ldr r1, _0808AE70 @ =gFieldCallback
+ ldr r0, _0808AE74 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _0808AE78 @ =gUnknown_03005CE4
+ ldr r0, _0808AE7C @ =sub_808AE08
+ str r0, [r1]
+ movs r0, 0x1
+ b _0808AE82
+ .align 2, 0
+_0808AE70: .4byte gFieldCallback
+_0808AE74: .4byte sub_808AB90
+_0808AE78: .4byte gUnknown_03005CE4
+_0808AE7C: .4byte sub_808AE08
+_0808AE80:
+ movs r0, 0
+_0808AE82:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpFieldMove_Waterfall
+
+ thumb_func_start sub_808AE8C
+sub_808AE8C: @ 808AE8C
+ push {r4-r6,lr}
+ ldr r0, _0808AED8 @ =gScriptItemId
+ ldrb r0, [r0]
+ subs r0, 0x21
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+_0808AE9A:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0808AEDC @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0808AF10
+ adds r0, r5, 0
+ bl sub_806D668
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0808AECE
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl CanMonLearnTMHM
+ cmp r0, 0
+ bne _0808AEE0
+_0808AECE:
+ adds r0, r5, 0
+ movs r1, 0x9A
+ bl sub_806BC3C
+ b _0808AF10
+ .align 2, 0
+_0808AED8: .4byte gScriptItemId
+_0808AEDC: .4byte gPlayerParty
+_0808AEE0:
+ ldr r0, _0808AF04 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl ItemIdToBattleMoveId
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl pokemon_has_move
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808AF08
+ adds r0, r5, 0
+ movs r1, 0xA8
+ bl sub_806BC3C
+ b _0808AF10
+ .align 2, 0
+_0808AF04: .4byte gScriptItemId
+_0808AF08:
+ adds r0, r5, 0
+ movs r1, 0x8C
+ bl sub_806BC3C
+_0808AF10:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0808AE9A
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808AE8C
+
+ thumb_func_start sub_808AF20
+sub_808AF20: @ 808AF20
+ push {r4,r5,lr}
+ movs r5, 0
+_0808AF24:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0808AF78 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0808AF66
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0808AF58
+ ldr r0, _0808AF7C @ =gScriptItemId
+ ldrh r2, [r0]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ cmp r0, 0
+ bne _0808AF66
+_0808AF58:
+ adds r0, r5, 0
+ bl sub_806D668
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_806BC3C
+_0808AF66:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0808AF24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808AF78: .4byte gPlayerParty
+_0808AF7C: .4byte gScriptItemId
+ thumb_func_end sub_808AF20
+
+ thumb_func_start sub_808AF80
+sub_808AF80: @ 808AF80
+ push {r4,r5,lr}
+ ldr r5, _0808AFB0 @ =0x0201b260
+_0808AF84:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B00C
+ ldr r0, _0808AFB4 @ =gUnknown_02038561
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0808AFC6
+ ldr r0, _0808AFB8 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl CheckIfItemIsTMHMOrEvolutionStone
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808AFBC
+ cmp r0, 0x2
+ beq _0808AFC2
+ b _0808AFC6
+ .align 2, 0
+_0808AFB0: .4byte 0x0201b260
+_0808AFB4: .4byte gUnknown_02038561
+_0808AFB8: .4byte gScriptItemId
+_0808AFBC:
+ bl sub_808AE8C
+ b _0808AFC6
+_0808AFC2:
+ bl sub_808AF20
+_0808AFC6:
+ ldr r4, _0808B000 @ =gLastFieldPokeMenuOpened
+ ldrb r0, [r4]
+ cmp r0, 0x5
+ bhi _0808AFE2
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808B004 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ bne _0808AFE6
+_0808AFE2:
+ movs r0, 0
+ strb r0, [r4]
+_0808AFE6:
+ ldrb r0, [r5]
+ ldr r1, _0808B000 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808B008 @ =sub_806AEDC
+ bl SetMainCallback2
+ b _0808B018
+ .align 2, 0
+_0808B000: .4byte gLastFieldPokeMenuOpened
+_0808B004: .4byte gPlayerParty
+_0808B008: .4byte sub_806AEDC
+_0808B00C:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808AF84
+_0808B018:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808AF80
+
+ thumb_func_start sub_808B020
+sub_808B020: @ 808B020
+ push {lr}
+ ldr r2, _0808B040 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0808B044 @ =gUnknown_02038561
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808B0A0
+ cmp r0, 0x1
+ bgt _0808B048
+ cmp r0, 0
+ beq _0808B052
+ b _0808B0AC
+ .align 2, 0
+_0808B040: .4byte gPaletteFade
+_0808B044: .4byte gUnknown_02038561
+_0808B048:
+ cmp r0, 0x3
+ beq _0808B0A0
+ cmp r0, 0x4
+ beq _0808B08C
+ b _0808B0AC
+_0808B052:
+ ldr r0, _0808B070 @ =gScriptItemId
+ ldrh r0, [r0]
+ bl CheckIfItemIsTMHMOrEvolutionStone
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B078
+ ldr r2, _0808B074 @ =sub_808B0C0
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x14
+ bl sub_806AF4C
+ b _0808B0AC
+ .align 2, 0
+_0808B070: .4byte gScriptItemId
+_0808B074: .4byte sub_808B0C0
+_0808B078:
+ ldr r2, _0808B088 @ =sub_808B0C0
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x3
+ bl sub_806AF4C
+ b _0808B0AC
+ .align 2, 0
+_0808B088: .4byte sub_808B0C0
+_0808B08C:
+ ldr r2, _0808B09C @ =sub_808B1EC
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+ b _0808B0AC
+ .align 2, 0
+_0808B09C: .4byte sub_808B1EC
+_0808B0A0:
+ ldr r2, _0808B0B8 @ =sub_808B0C0
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0x4
+ bl sub_806AF4C
+_0808B0AC:
+ ldr r0, _0808B0BC @ =sub_808AF80
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B0B8: .4byte sub_808B0C0
+_0808B0BC: .4byte sub_808AF80
+ thumb_func_end sub_808B020
+
+ thumb_func_start sub_808B0C0
+sub_808B0C0: @ 808B0C0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B0EC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0808B1CE
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _0808B0F0
+ cmp r0, 0x2
+ beq _0808B184
+ b _0808B1CE
+ .align 2, 0
+_0808B0EC: .4byte gPaletteFade
+_0808B0F0:
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0808B118 @ =gLastFieldPokeMenuOpened
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808B11C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0808B120
+ movs r0, 0x20
+ bl PlaySE
+ b _0808B1CE
+ .align 2, 0
+_0808B118: .4byte gLastFieldPokeMenuOpened
+_0808B11C: .4byte gPlayerParty
+_0808B120:
+ bl sub_806D5A4
+ ldr r5, _0808B16C @ =gUnknown_02038561
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _0808B13C
+ ldr r3, _0808B170 @ =gUnknown_03004AE4
+ ldr r0, _0808B174 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0808B178 @ =sub_808B224
+ ldr r3, [r3]
+ adds r0, r4, 0
+ bl _call_via_r3
+_0808B13C:
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _0808B154
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0808B174 @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0808B17C @ =sub_808B2EC
+ adds r0, r4, 0
+ bl PartyMenuTryGiveMonHeldItem
+_0808B154:
+ ldrb r0, [r5]
+ cmp r0, 0x3
+ bne _0808B1CE
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0808B180 @ =sub_808B2B4
+ adds r0, r4, 0
+ bl PartyMenuTryGiveMonMail
+ b _0808B1CE
+ .align 2, 0
+_0808B16C: .4byte gUnknown_02038561
+_0808B170: .4byte gUnknown_03004AE4
+_0808B174: .4byte gScriptItemId
+_0808B178: .4byte sub_808B224
+_0808B17C: .4byte sub_808B2EC
+_0808B180: .4byte sub_808B2B4
+_0808B184:
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _0808B1D8 @ =gLastFieldPokeMenuOpened
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r2, _0808B1DC @ =gUnknown_02038561
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bhi _0808B1BA
+ ldr r0, _0808B1E0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808B1E4 @ =sub_808B25C
+ str r0, [r1]
+_0808B1BA:
+ ldrb r0, [r2]
+ cmp r0, 0x3
+ bne _0808B1CE
+ ldr r0, _0808B1E0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0808B1E8 @ =sub_808B2B4
+ str r0, [r1]
+_0808B1CE:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B1D8: .4byte gLastFieldPokeMenuOpened
+_0808B1DC: .4byte gUnknown_02038561
+_0808B1E0: .4byte gTasks
+_0808B1E4: .4byte sub_808B25C
+_0808B1E8: .4byte sub_808B2B4
+ thumb_func_end sub_808B0C0
+
+ thumb_func_start sub_808B1EC
+sub_808B1EC: @ 808B1EC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B214 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B20E
+ ldr r3, _0808B218 @ =gUnknown_03004AE4
+ ldr r0, _0808B21C @ =gScriptItemId
+ ldrh r1, [r0]
+ ldr r2, _0808B220 @ =sub_808B224
+ ldr r3, [r3]
+ adds r0, r4, 0
+ bl _call_via_r3
+_0808B20E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B214: .4byte gPaletteFade
+_0808B218: .4byte gUnknown_03004AE4
+_0808B21C: .4byte gScriptItemId
+_0808B220: .4byte sub_808B224
+ thumb_func_end sub_808B1EC
+
+ thumb_func_start sub_808B224
+sub_808B224: @ 808B224
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808B254 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B258 @ =sub_808B25C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B254: .4byte gTasks
+_0808B258: .4byte sub_808B25C
+ thumb_func_end sub_808B224
+
+ thumb_func_start sub_808B25C
+sub_808B25C: @ 808B25C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B280 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B27A
+ ldr r0, _0808B284 @ =sub_80A5B40
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0808B27A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B280: .4byte gPaletteFade
+_0808B284: .4byte sub_80A5B40
+ thumb_func_end sub_808B25C
+
+ thumb_func_start sub_808B288
+sub_808B288: @ 808B288
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B2AC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B2A6
+ ldr r0, _0808B2B0 @ =Mailbox_ReturnToMailListAfterDeposit
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0808B2A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B2AC: .4byte gPaletteFade
+_0808B2B0: .4byte Mailbox_ReturnToMailListAfterDeposit
+ thumb_func_end sub_808B288
+
+ thumb_func_start sub_808B2B4
+sub_808B2B4: @ 808B2B4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808B2E4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B2E8 @ =sub_808B288
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B2E4: .4byte gTasks
+_0808B2E8: .4byte sub_808B288
+ thumb_func_end sub_808B2B4
+
+ thumb_func_start sub_808B2EC
+sub_808B2EC: @ 808B2EC
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B31C @ =gUnknown_0202E8F4
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0808B328
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0808B320 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B324 @ =sub_808B338
+ str r1, [r0]
+ b _0808B32E
+ .align 2, 0
+_0808B31C: .4byte gUnknown_0202E8F4
+_0808B320: .4byte gTasks
+_0808B324: .4byte sub_808B338
+_0808B328:
+ adds r0, r4, 0
+ bl sub_808B224
+_0808B32E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808B2EC
+
+ thumb_func_start sub_808B338
+sub_808B338: @ 808B338
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0808B38C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B384
+ adds r0, r5, 0
+ bl sub_806CA38
+ ldr r1, _0808B390 @ =gLastFieldPokeMenuOpened
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0808B394 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl DestroyTask
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0808B398 @ =gSaveBlock1 + 0x2B4C
+ adds r1, r0
+ ldr r2, _0808B39C @ =sub_808B3EC
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_80E62A0
+_0808B384:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B38C: .4byte gPaletteFade
+_0808B390: .4byte gLastFieldPokeMenuOpened
+_0808B394: .4byte gPlayerParty
+_0808B398: .4byte gSaveBlock1 + 0x2B4C
+_0808B39C: .4byte sub_808B3EC
+ thumb_func_end sub_808B338
+
+ thumb_func_start sub_808B3A0
+sub_808B3A0: @ 808B3A0
+ push {r4,lr}
+ ldr r4, _0808B3A8 @ =0x0201b260
+ b _0808B3B8
+ .align 2, 0
+_0808B3A8: .4byte 0x0201b260
+_0808B3AC:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808B3DC
+_0808B3B8:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B3AC
+ ldrb r0, [r4]
+ ldr r1, _0808B3E4 @ =gLastFieldPokeMenuOpened
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808B3E8 @ =sub_806AEDC
+ bl SetMainCallback2
+_0808B3DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B3E4: .4byte gLastFieldPokeMenuOpened
+_0808B3E8: .4byte sub_806AEDC
+ thumb_func_end sub_808B3A0
+
+ thumb_func_start sub_808B3EC
+sub_808B3EC: @ 808B3EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0808B464 @ =gPaletteFade
+ mov r8, r0
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1, 0x8]
+ ldr r0, _0808B468 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0808B480
+ ldr r7, _0808B46C @ =gUnknown_0202E8F8
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _0808B416
+ movs r1, 0x1
+ bl RemoveBagItem
+_0808B416:
+ ldr r6, _0808B470 @ =gLastFieldPokeMenuOpened
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _0808B474 @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl AddBagItem
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ bl TakeMailFromMon
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xC
+ adds r2, r7, 0
+ bl SetMonData
+ ldr r0, _0808B478 @ =sub_808B25C
+ movs r1, 0x5
+ bl CreateTask
+ mov r0, r8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ mov r1, r8
+ strb r0, [r1, 0x8]
+ ldr r0, _0808B47C @ =sub_806AEDC
+ b _0808B48E
+ .align 2, 0
+_0808B464: .4byte gPaletteFade
+_0808B468: .4byte gScriptResult
+_0808B46C: .4byte gUnknown_0202E8F8
+_0808B470: .4byte gLastFieldPokeMenuOpened
+_0808B474: .4byte gPlayerParty
+_0808B478: .4byte sub_808B25C
+_0808B47C: .4byte sub_806AEDC
+_0808B480:
+ ldr r2, _0808B49C @ =sub_808B4A4
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+ ldr r0, _0808B4A0 @ =sub_808B3A0
+_0808B48E:
+ bl SetMainCallback2
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B49C: .4byte sub_808B4A4
+_0808B4A0: .4byte sub_808B3A0
+ thumb_func_end sub_808B3EC
+
+ thumb_func_start sub_808B4A4
+sub_808B4A4: @ 808B4A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0808B4D8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0808B4D2
+ ldr r0, _0808B4DC @ =gLastFieldPokeMenuOpened
+ ldrb r0, [r0]
+ ldr r1, _0808B4E0 @ =gScriptItemId
+ ldrh r1, [r1]
+ movs r2, 0x1
+ bl DisplayGiveHeldItemMessage
+ ldr r1, _0808B4E4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B4E8 @ =sub_808B4EC
+ str r1, [r0]
+_0808B4D2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B4D8: .4byte gPaletteFade
+_0808B4DC: .4byte gLastFieldPokeMenuOpened
+_0808B4E0: .4byte gScriptItemId
+_0808B4E4: .4byte gTasks
+_0808B4E8: .4byte sub_808B4EC
+ thumb_func_end sub_808B4A4
+
+ thumb_func_start sub_808B4EC
+sub_808B4EC: @ 808B4EC
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _0808B504 @ =gUnknown_0202E8F6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0808B500
+ adds r0, r1, 0
+ bl sub_808B224
+_0808B500:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B504: .4byte gUnknown_0202E8F6
+ thumb_func_end sub_808B4EC
+
+ thumb_func_start sub_808B508
+sub_808B508: @ 808B508
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_808B224
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808B508
+
+ thumb_func_start sub_808B518
+sub_808B518: @ 808B518
+ push {r4,lr}
+ ldr r4, _0808B520 @ =0x0201b260
+ b _0808B530
+ .align 2, 0
+_0808B520: .4byte 0x0201b260
+_0808B524:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0808B554
+_0808B530:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0808B524
+ ldrb r0, [r4]
+ ldr r1, _0808B55C @ =gUnknown_020384F0
+ ldrb r1, [r1]
+ bl sub_806C994
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_806BF74
+ ldr r0, _0808B560 @ =sub_806AEDC
+ bl SetMainCallback2
+_0808B554:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B55C: .4byte gUnknown_020384F0
+_0808B560: .4byte sub_806AEDC
+ thumb_func_end sub_808B518
+
+ thumb_func_start sub_808B564
+sub_808B564: @ 808B564
+ push {lr}
+ ldr r2, _0808B58C @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ bl sub_809FA30
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _0808B594
+ ldr r2, _0808B590 @ =TaughtMove
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+ b _0808B5A0
+ .align 2, 0
+_0808B58C: .4byte gPaletteFade
+_0808B590: .4byte TaughtMove
+_0808B594:
+ ldr r2, _0808B5AC @ =StopTryingToTeachMove_806F588
+ movs r0, 0
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_806AF4C
+_0808B5A0:
+ ldr r0, _0808B5B0 @ =sub_808B518
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B5AC: .4byte StopTryingToTeachMove_806F588
+_0808B5B0: .4byte sub_808B518
+ thumb_func_end sub_808B564
+
+ thumb_func_start sub_808B5B4
+sub_808B5B4: @ 808B5B4
+ push {lr}
+ ldr r3, _0808B5D8 @ =gUnknown_03005CF0
+ ldr r2, _0808B5DC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, [r1]
+ str r2, [r3]
+ ldr r2, _0808B5E0 @ =sub_808B5E4
+ str r2, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B5D8: .4byte gUnknown_03005CF0
+_0808B5DC: .4byte gTasks
+_0808B5E0: .4byte sub_808B5E4
+ thumb_func_end sub_808B5B4
+
+ thumb_func_start sub_808B5E4
+sub_808B5E4: @ 808B5E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0808B602
+ ldr r1, _0808B608 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0808B60C @ =gUnknown_03005CF0
+ ldr r1, [r1]
+ str r1, [r0]
+_0808B602:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808B608: .4byte gTasks
+_0808B60C: .4byte gUnknown_03005CF0
+ thumb_func_end sub_808B5E4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8094928.s b/asm/pokemon_storage_system.s
index 231f13e9c..db16c2788 100644
--- a/asm/rom_8094928.s
+++ b/asm/pokemon_storage_system.s
@@ -6,1976 +6,6 @@
.text
- thumb_func_start unref_sub_8094928
-unref_sub_8094928: @ 8094928
- push {lr}
- ldr r1, _08094938 @ =gPokemonStorage
- ldr r2, _0809493C @ =0x000083d0
- bl memcpy
- pop {r0}
- bx r0
- .align 2, 0
-_08094938: .4byte gPokemonStorage
-_0809493C: .4byte 0x000083d0
- thumb_func_end unref_sub_8094928
-
- thumb_func_start unref_sub_8094940
-unref_sub_8094940: @ 8094940
- push {lr}
- adds r1, r0, 0
- ldr r0, _08094950 @ =gPokemonStorage
- ldr r2, _08094954 @ =0x000083d0
- bl memcpy
- pop {r0}
- bx r0
- .align 2, 0
-_08094950: .4byte gPokemonStorage
-_08094954: .4byte 0x000083d0
- thumb_func_end unref_sub_8094940
-
- thumb_func_start sub_8094958
-sub_8094958: @ 8094958
- push {r4,lr}
- ldr r4, _08094974 @ =gUnknown_02038470
- bl sub_803FBBC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8094998
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094974: .4byte gUnknown_02038470
- thumb_func_end sub_8094958
-
- thumb_func_start sub_8094978
-sub_8094978: @ 8094978
- push {lr}
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r2, 1
- adds r0, r2
- ldr r3, _08094994 @ =0x0201606c
- adds r0, r3
- bl sub_8094A74
- pop {r0}
- bx r0
- .align 2, 0
-_08094994: .4byte 0x0201606c
- thumb_func_end sub_8094978
-
- thumb_func_start sub_8094998
-sub_8094998: @ 8094998
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080949CE
- cmp r4, 0
- beq _080949C0
- movs r0, 0x30
- strb r0, [r6]
- movs r0, 0x45
- strb r0, [r6, 0x1]
- movs r0, 0x12
- strb r0, [r6, 0x2]
- b _08094A68
-_080949C0:
- movs r0, 0x3
- strb r0, [r6]
- movs r0, 0x12
- strb r0, [r6, 0x1]
- movs r0, 0x45
- strb r0, [r6, 0x2]
- b _08094A68
-_080949CE:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08094A0C
- movs r5, 0x1
- movs r0, 0
- bl battle_get_side_with_given_state
- mov r2, sp
- ldr r1, _08094A08 @ =gUnknown_02024A6A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r0, [r0]
- strb r0, [r2]
- movs r4, 0
- mov r1, sp
-_080949F2:
- ldrb r0, [r1]
- cmp r4, r0
- beq _08094A00
- mov r2, sp
- adds r0, r2, r5
- strb r4, [r0]
- adds r5, 0x1
-_08094A00:
- adds r4, 0x1
- cmp r4, 0x5
- ble _080949F2
- b _08094A50
- .align 2, 0
-_08094A08: .4byte gUnknown_02024A6A
-_08094A0C:
- movs r5, 0x2
- movs r0, 0
- bl battle_get_side_with_given_state
- mov r1, sp
- ldr r4, _08094A70 @ =gUnknown_02024A6A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r0, [r0]
- strb r0, [r1]
- movs r0, 0x2
- bl battle_get_side_with_given_state
- mov r1, sp
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r0, [r0]
- strb r0, [r1, 0x1]
- movs r4, 0
-_08094A36:
- ldrb r0, [r1]
- cmp r4, r0
- beq _08094A4A
- ldrb r0, [r1, 0x1]
- cmp r4, r0
- beq _08094A4A
- mov r2, sp
- adds r0, r2, r5
- strb r4, [r0]
- adds r5, 0x1
-_08094A4A:
- adds r4, 0x1
- cmp r4, 0x5
- ble _08094A36
-_08094A50:
- movs r4, 0
- mov r3, sp
-_08094A54:
- adds r0, r6, r4
- ldrb r1, [r3]
- lsls r1, 4
- ldrb r2, [r3, 0x1]
- orrs r1, r2
- strb r1, [r0]
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _08094A54
-_08094A68:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08094A70: .4byte gUnknown_02024A6A
- thumb_func_end sub_8094998
-
- thumb_func_start sub_8094A74
-sub_8094A74: @ 8094A74
- push {r4-r7,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r0, r2, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08094A9C
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- b _08094AA8
-_08094A9C:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x3
-_08094AA8:
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08094ADC
- cmp r7, 0
- beq _08094ACE
- movs r0, 0x30
- strb r0, [r5]
- movs r0, 0x45
- strb r0, [r5, 0x1]
- movs r0, 0x12
- strb r0, [r5, 0x2]
- b _08094B5E
-_08094ACE:
- movs r0, 0x3
- strb r0, [r5]
- movs r0, 0x12
- strb r0, [r5, 0x1]
- movs r0, 0x45
- strb r0, [r5, 0x2]
- b _08094B5E
-_08094ADC:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08094B14
- movs r3, 0x1
- mov r2, sp
- ldr r1, _08094B10 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- strb r0, [r2]
- movs r4, 0
- mov r1, sp
-_08094AF8:
- ldrb r0, [r1]
- cmp r4, r0
- beq _08094B06
- mov r2, sp
- adds r0, r2, r3
- strb r4, [r0]
- adds r3, 0x1
-_08094B06:
- adds r4, 0x1
- cmp r4, 0x5
- ble _08094AF8
- b _08094B46
- .align 2, 0
-_08094B10: .4byte gUnknown_02024A6A
-_08094B14:
- movs r3, 0x2
- mov r1, sp
- ldr r2, _08094B68 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- lsls r0, r6, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x1]
- movs r4, 0
-_08094B2C:
- ldrb r0, [r1]
- cmp r4, r0
- beq _08094B40
- ldrb r0, [r1, 0x1]
- cmp r4, r0
- beq _08094B40
- mov r2, sp
- adds r0, r2, r3
- strb r4, [r0]
- adds r3, 0x1
-_08094B40:
- adds r4, 0x1
- cmp r4, 0x5
- ble _08094B2C
-_08094B46:
- movs r4, 0
- mov r3, sp
-_08094B4A:
- adds r0, r5, r4
- ldrb r1, [r3]
- lsls r1, 4
- ldrb r2, [r3, 0x1]
- orrs r1, r2
- strb r1, [r0]
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _08094B4A
-_08094B5E:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08094B68: .4byte gUnknown_02024A6A
- thumb_func_end sub_8094A74
-
- thumb_func_start sub_8094B6C
-sub_8094B6C: @ 8094B6C
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r7, 0
- bl sub_806B528
- lsls r0, 24
- cmp r0, 0
- beq _08094C16
- lsls r0, r4, 1
- adds r0, r4
- ldr r1, _08094BCC @ =0x0201606c
- adds r4, r0, r1
- movs r2, 0
- add r6, sp
- mov r12, r6
- movs r6, 0xF
- mov r3, sp
-_08094B9A:
- adds r1, r4, r2
- ldrb r0, [r1]
- lsrs r0, 4
- strb r0, [r3]
- adds r3, 0x1
- ldrb r1, [r1]
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2
- ble _08094B9A
- mov r0, r12
- ldrb r3, [r0]
- movs r2, 0
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, r5
- bne _08094BD0
- mov r0, sp
- ldrb r7, [r0]
- strb r3, [r0]
- b _08094BE4
- .align 2, 0
-_08094BCC: .4byte 0x0201606c
-_08094BD0:
- adds r2, 0x1
- cmp r2, 0x5
- bgt _08094BE4
- mov r0, sp
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, r5
- bne _08094BD0
- adds r7, r0, 0
- strb r3, [r1]
-_08094BE4:
- cmp r2, 0x6
- beq _08094C16
- mov r0, r12
- strb r7, [r0]
- mov r0, sp
- ldrb r0, [r0]
- lsls r0, 4
- mov r1, sp
- ldrb r1, [r1, 0x1]
- orrs r0, r1
- strb r0, [r4]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- lsls r0, 4
- mov r1, sp
- ldrb r1, [r1, 0x3]
- orrs r0, r1
- strb r0, [r4, 0x1]
- mov r0, sp
- ldrb r0, [r0, 0x4]
- lsls r0, 4
- mov r1, sp
- ldrb r1, [r1, 0x5]
- orrs r0, r1
- strb r0, [r4, 0x2]
-_08094C16:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8094B6C
-
- thumb_func_start sub_8094C20
-sub_8094C20: @ 8094C20
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0x1
- ands r1, r2
- lsrs r2, r0, 25
- cmp r1, 0
- beq _08094C40
- ldr r0, _08094C3C @ =gUnknown_02038470
- adds r0, r2, r0
- ldrb r0, [r0]
- movs r1, 0xF
- ands r1, r0
- b _08094C48
- .align 2, 0
-_08094C3C: .4byte gUnknown_02038470
-_08094C40:
- ldr r0, _08094C50 @ =gUnknown_02038470
- adds r0, r2, r0
- ldrb r0, [r0]
- lsrs r1, r0, 4
-_08094C48:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08094C50: .4byte gUnknown_02038470
- thumb_func_end sub_8094C20
-
- thumb_func_start sub_8094C54
-sub_8094C54: @ 8094C54
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- movs r1, 0x1
- ands r1, r3
- lsrs r3, r0, 25
- cmp r1, 0
- beq _08094C7C
- ldr r0, _08094C78 @ =gUnknown_02038470
- adds r0, r3, r0
- ldrb r2, [r0]
- movs r1, 0xF0
- ands r1, r2
- orrs r1, r4
- strb r1, [r0]
- b _08094C8C
- .align 2, 0
-_08094C78: .4byte gUnknown_02038470
-_08094C7C:
- ldr r2, _08094C94 @ =gUnknown_02038470
- adds r2, r3, r2
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- lsls r1, r4, 4
- orrs r0, r1
- strb r0, [r2]
-_08094C8C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094C94: .4byte gUnknown_02038470
- thumb_func_end sub_8094C54
-
- thumb_func_start sub_8094C98
-sub_8094C98: @ 8094C98
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- adds r0, r5, 0
- bl sub_8094C20
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8094C20
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_8094C54
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8094C54
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8094C98
-
- thumb_func_start pokemon_order_func
-pokemon_order_func: @ 8094CD4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- movs r2, 0
- ldr r5, _08094CFC @ =gUnknown_02038470
-_08094CE0:
- adds r0, r3, r5
- ldrb r1, [r0]
- lsrs r0, r1, 4
- cmp r0, r4
- beq _08094CF8
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0xF
- ands r0, r1
- cmp r0, r4
- bne _08094D00
-_08094CF8:
- adds r0, r2, 0
- b _08094D12
- .align 2, 0
-_08094CFC: .4byte gUnknown_02038470
-_08094D00:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x2
- bls _08094CE0
- movs r0, 0
-_08094D12:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end pokemon_order_func
-
- thumb_func_start pokemon_change_order
-pokemon_change_order: @ 8094D18
- push {r4,r5,lr}
- ldr r0, _08094D58 @ =0x0201b000
- ldr r1, _08094D5C @ =gPlayerParty
- movs r2, 0x96
- lsls r2, 2
- bl memcpy
- movs r4, 0
- movs r5, 0x64
-_08094D2A:
- adds r0, r4, 0
- bl pokemon_order_func
- lsls r0, 24
- lsrs r0, 24
- muls r0, r5
- ldr r1, _08094D5C @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- muls r1, r5
- ldr r2, _08094D58 @ =0x0201b000
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08094D2A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094D58: .4byte 0x0201b000
-_08094D5C: .4byte gPlayerParty
- thumb_func_end pokemon_change_order
-
- thumb_func_start sub_8094D60
-sub_8094D60: @ 8094D60
- push {r4,r5,lr}
- ldr r4, _08094DA8 @ =0xfffffda8
- add sp, r4
- ldr r1, _08094DAC @ =gPlayerParty
- movs r2, 0x96
- lsls r2, 2
- mov r0, sp
- bl memcpy
- movs r4, 0
- movs r5, 0x64
-_08094D76:
- adds r0, r4, 0
- bl sub_8094C20
- lsls r0, 24
- lsrs r0, 24
- muls r0, r5
- ldr r1, _08094DAC @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- muls r1, r5
- add r1, sp
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08094D76
- movs r3, 0x96
- lsls r3, 2
- add sp, r3
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094DA8: .4byte 0xfffffda8
-_08094DAC: .4byte gPlayerParty
- thumb_func_end sub_8094D60
-
- thumb_func_start unref_sub_8094DB0
-unref_sub_8094DB0: @ 8094DB0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0x1
- movs r7, 0x64
- ldr r0, _08094E08 @ =gPlayerParty
- mov r8, r0
-_08094DBE:
- adds r0, r6, 0
- bl sub_8094C20
- lsls r0, 24
- lsrs r0, 24
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08094E0C
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08094E0C
- movs r0, 0
- bl sub_8094C20
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- adds r1, r6, 0
- bl sub_8094C98
- adds r0, r4, 0
- muls r0, r7
- add r0, r8
- adds r1, r5, 0
- bl sub_806E6F0
- b _08094E16
- .align 2, 0
-_08094E08: .4byte gPlayerParty
-_08094E0C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x5
- bls _08094DBE
-_08094E16:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8094DB0
-
- thumb_func_start sub_8094E20
-sub_8094E20: @ 8094E20
- push {lr}
- ldr r3, _08094E44 @ =gPaletteFade
- ldrb r1, [r3, 0x8]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r3, 0x8]
- ldr r1, _08094E48 @ =gUnknown_02038473
- strb r0, [r1]
- bl nullsub_14
- bl pokemon_change_order
- movs r0, 0x1
- movs r1, 0xFF
- bl OpenPartyMenu
- pop {r0}
- bx r0
- .align 2, 0
-_08094E44: .4byte gPaletteFade
-_08094E48: .4byte gUnknown_02038473
- thumb_func_end sub_8094E20
-
- thumb_func_start sub_8094E4C
-sub_8094E4C: @ 8094E4C
- push {lr}
- movs r0, 0x3
- bl sub_8094E20
- pop {r0}
- bx r0
- thumb_func_end sub_8094E4C
-
- thumb_func_start sub_8094E58
-sub_8094E58: @ 8094E58
- push {r4,r5,lr}
- ldr r1, _08094E78 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r4, r1, 0
- cmp r0, 0xA
- bls _08094E6E
- b _08095048
-_08094E6E:
- lsls r0, 2
- ldr r1, _08094E7C @ =_08094E80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08094E78: .4byte 0x0201b000
-_08094E7C: .4byte _08094E80
- .align 2, 0
-_08094E80:
- .4byte _08094EAC
- .4byte _08094F28
- .4byte _08094F3C
- .4byte _08094F4A
- .4byte _08094F6C
- .4byte _08094F80
- .4byte _08094F94
- .4byte _08094FA8
- .4byte _08094FBC
- .4byte _08094FD0
- .4byte _08095000
-_08094EAC:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08094EDC
- ldr r1, _08094ED4 @ =0x0201b000
- ldr r0, _08094ED8 @ =0x00000266
- adds r4, r1, r0
- ldrh r2, [r4]
- movs r3, 0
- ldrsh r0, [r4, r3]
- cmp r0, 0x6
- bne _08094EEC
- movs r0, 0
- strh r0, [r4]
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
- .align 2, 0
-_08094ED4: .4byte 0x0201b000
-_08094ED8: .4byte 0x00000266
-_08094EDC:
- ldr r1, _08094F10 @ =0x0201b000
- ldr r0, _08094F14 @ =0x00000266
- adds r4, r1, r0
- ldrh r2, [r4]
- movs r3, 0
- ldrsh r0, [r4, r3]
- cmp r0, 0x5
- bgt _08094F1C
-_08094EEC:
- movs r3, 0x98
- lsls r3, 2
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r1, r2, 24
- lsrs r1, 24
- movs r2, 0
- ldrsh r3, [r4, r2]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _08094F18 @ =gPlayerParty
- adds r2, r3
- bl sub_806D90C
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _08095048
- .align 2, 0
-_08094F10: .4byte 0x0201b000
-_08094F14: .4byte 0x00000266
-_08094F18: .4byte gPlayerParty
-_08094F1C:
- movs r0, 0
- strh r0, [r4]
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
-_08094F28:
- bl sub_806DA98
- ldr r1, _08094F38 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08094FEC
- .align 2, 0
-_08094F38: .4byte 0x0201b000
-_08094F3C:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- b _08094FE6
-_08094F4A:
- movs r3, 0x98
- lsls r3, 2
- adds r0, r4, r3
- ldrb r0, [r0]
- ldr r1, _08094F68 @ =0x00000266
- adds r5, r4, r1
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08094FE2
- b _08094FF8
- .align 2, 0
-_08094F68: .4byte 0x00000266
-_08094F6C:
- bl sub_806E334
- ldr r1, _08094F7C @ =0x0201b000
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
- .align 2, 0
-_08094F7C: .4byte 0x0201b000
-_08094F80:
- bl sub_806E0C4
- ldr r1, _08094F90 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08094FEC
- .align 2, 0
-_08094F90: .4byte 0x0201b000
-_08094F94:
- bl sub_806E53C
- ldr r1, _08094FA4 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
- b _08094FEC
- .align 2, 0
-_08094FA4: .4byte 0x0201b000
-_08094FA8:
- bl nullsub_13
- ldr r1, _08094FB8 @ =0x0201b000
- movs r3, 0x99
- lsls r3, 2
- adds r1, r3
- b _08094FEC
- .align 2, 0
-_08094FB8: .4byte 0x0201b000
-_08094FBC:
- bl sub_806E6C8
- ldr r1, _08094FCC @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08094FEC
- .align 2, 0
-_08094FCC: .4byte 0x0201b000
-_08094FD0:
- ldr r1, _08094FF4 @ =0x00000266
- adds r5, r4, r1
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08094FF8
-_08094FE2:
- movs r0, 0
- strh r0, [r5]
-_08094FE6:
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
-_08094FEC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _08095048
- .align 2, 0
-_08094FF4: .4byte 0x00000266
-_08094FF8:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _08095048
-_08095000:
- ldr r0, _08095024 @ =gUnknown_02038473
- ldrb r4, [r0]
- cmp r4, 0x3
- bne _0809503C
- ldr r0, _08095028 @ =gScriptItemId
- ldrh r0, [r0]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _08095034
- ldr r0, _0809502C @ =0x0201b000
- ldr r3, _08095030 @ =0x00000259
- adds r0, r3
- movs r1, 0xFF
- strb r1, [r0]
- b _0809503C
- .align 2, 0
-_08095024: .4byte gUnknown_02038473
-_08095028: .4byte gScriptItemId
-_0809502C: .4byte 0x0201b000
-_08095030: .4byte 0x00000259
-_08095034:
- ldr r0, _08095040 @ =0x0201b000
- ldr r1, _08095044 @ =0x00000259
- adds r0, r1
- strb r4, [r0]
-_0809503C:
- movs r0, 0x1
- b _0809504A
- .align 2, 0
-_08095040: .4byte 0x0201b000
-_08095044: .4byte 0x00000259
-_08095048:
- movs r0, 0
-_0809504A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8094E58
-
- thumb_func_start sub_8095050
-sub_8095050: @ 8095050
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809508C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- adds r5, r0, 0
- cmp r5, 0
- bne _080950C8
- ldr r0, _08095090 @ =gUnknown_02038473
- ldrb r4, [r0]
- cmp r4, 0x1
- bne _0809509C
- ldr r3, _08095094 @ =gTasks
- ldr r2, _08095098 @ =0x0201b000
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- b _080950DE
- .align 2, 0
-_0809508C: .4byte gPlayerParty
-_08095090: .4byte gUnknown_02038473
-_08095094: .4byte gTasks
-_08095098: .4byte 0x0201b000
-_0809509C:
- ldr r3, _080950C0 @ =gTasks
- ldr r2, _080950C4 @ =0x0201b000
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r5, [r0, 0x10]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r5, [r0, 0x12]
- b _080950EC
- .align 2, 0
-_080950C0: .4byte gTasks
-_080950C4: .4byte 0x0201b000
-_080950C8:
- ldr r3, _08095108 @ =gTasks
- ldr r2, _0809510C @ =0x0201b000
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r4, 0x2
-_080950DE:
- strh r4, [r0, 0x10]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r4, [r0, 0x12]
-_080950EC:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x10]
- ldr r1, _08095110 @ =gUnknown_083B5FF4
- ldr r2, _08095114 @ =gUnknown_083B5FCC
- movs r3, 0
- bl sub_806E750
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08095108: .4byte gTasks
-_0809510C: .4byte 0x0201b000
-_08095110: .4byte gUnknown_083B5FF4
-_08095114: .4byte gUnknown_083B5FCC
- thumb_func_end sub_8095050
-
- thumb_func_start sub_8095118
-sub_8095118: @ 8095118
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08095150 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809512C
- b _08095268
-_0809512C:
- ldr r0, _08095154 @ =gUnknown_02038473
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08095164
- ldr r5, _08095158 @ =gScriptItemId
- ldrh r0, [r5]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _08095164
- ldr r0, _0809515C @ =gUnknown_03004AE4
- ldrh r1, [r5]
- ldr r2, _08095160 @ =sub_80952E4
- ldr r3, [r0]
- b _080951AA
- .align 2, 0
-_08095150: .4byte gPaletteFade
-_08095154: .4byte gUnknown_02038473
-_08095158: .4byte gScriptItemId
-_0809515C: .4byte gUnknown_03004AE4
-_08095160: .4byte sub_80952E4
-_08095164:
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08095178
- cmp r0, 0x2
- beq _08095214
- b _08095268
-_08095178:
- ldr r0, _080951B4 @ =gUnknown_02038473
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _080951C8
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080951B8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809521C
- bl sub_806D5A4
- ldr r3, _080951BC @ =gUnknown_03004AE4
- ldr r0, _080951C0 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _080951C4 @ =sub_80952E4
- ldr r3, [r3]
-_080951AA:
- adds r0, r4, 0
- bl _call_via_r3
- b _08095268
- .align 2, 0
-_080951B4: .4byte gUnknown_02038473
-_080951B8: .4byte gPlayerParty
-_080951BC: .4byte gUnknown_03004AE4
-_080951C0: .4byte gScriptItemId
-_080951C4: .4byte sub_80952E4
-_080951C8:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08095204 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08095208 @ =gStringVar1
- bl GetMonNickname
- adds r0, r4, 0
- bl sub_806CA38
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8095050
- ldr r1, _0809520C @ =sub_8095408
- ldr r2, _08095210 @ =sub_8095118
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- b _08095268
- .align 2, 0
-_08095204: .4byte gPlayerParty
-_08095208: .4byte gStringVar1
-_0809520C: .4byte sub_8095408
-_08095210: .4byte sub_8095118
-_08095214:
- ldr r5, _08095224 @ =gUnknown_02038473
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _08095228
-_0809521C:
- movs r0, 0x20
- bl PlaySE
- b _08095268
- .align 2, 0
-_08095224: .4byte gUnknown_02038473
-_08095228:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r5]
- cmp r0, 0x3
- bne _08095254
- ldr r1, _08095248 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0809524C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095250 @ =sub_80952E4
- b _08095266
- .align 2, 0
-_08095248: .4byte gUnknown_0202E8F4
-_0809524C: .4byte gTasks
-_08095250: .4byte sub_80952E4
-_08095254:
- ldr r1, _08095270 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08095274 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095278 @ =sub_809527C
-_08095266:
- str r1, [r0]
-_08095268:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08095270: .4byte gUnknown_0202E8F4
-_08095274: .4byte gTasks
-_08095278: .4byte sub_809527C
- thumb_func_end sub_8095118
-
- thumb_func_start sub_809527C
-sub_809527C: @ 809527C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080952AC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080952B0 @ =sub_80952B4
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080952AC: .4byte gTasks
-_080952B0: .4byte sub_80952B4
- thumb_func_end sub_809527C
-
- thumb_func_start sub_80952B4
-sub_80952B4: @ 80952B4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080952DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080952D6
- bl sub_8094D60
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _080952E0 @ =sub_802E414
- bl SetMainCallback2
-_080952D6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080952DC: .4byte gPaletteFade
-_080952E0: .4byte sub_802E414
- thumb_func_end sub_80952B4
-
- thumb_func_start sub_80952E4
-sub_80952E4: @ 80952E4
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080952FC @ =gUnknown_0202E8F4
- ldrb r1, [r0]
- cmp r1, 0
- beq _08095300
- adds r0, r4, 0
- bl sub_809527C
- b _0809531E
- .align 2, 0
-_080952FC: .4byte gUnknown_0202E8F4
-_08095300:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08095328 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809532C @ =sub_8095330
- str r1, [r0]
-_0809531E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08095328: .4byte gTasks
-_0809532C: .4byte sub_8095330
- thumb_func_end sub_80952E4
-
- thumb_func_start sub_8095330
-sub_8095330: @ 8095330
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08095358 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08095350
- bl sub_8094D60
- adds r0, r4, 0
- bl DestroyTask
- bl sub_80A6DCC
-_08095350:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08095358: .4byte gPaletteFade
- thumb_func_end sub_8095330
-
- thumb_func_start sub_809535C
-sub_809535C: @ 809535C
- push {lr}
- ldr r2, _08095380 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _08095384 @ =sub_8095118
- movs r0, 0x1
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _08095388 @ =sub_809538C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08095380: .4byte gPaletteFade
-_08095384: .4byte sub_8095118
-_08095388: .4byte sub_809538C
- thumb_func_end sub_809535C
-
- thumb_func_start sub_809538C
-sub_809538C: @ 809538C
- push {r4,r5,lr}
- ldr r4, _080953D8 @ =0x0201b260
- ldr r5, _080953DC @ =gUnknown_020384F0
-_08095392:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080953F4
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080953E0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080953E4 @ =gStringVar1
- bl GetMonNickname
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_8095050
- ldrb r0, [r4]
- ldr r1, _080953E8 @ =sub_8095408
- ldr r2, _080953EC @ =sub_8095118
- bl SetTaskFuncWithFollowupFunc
- ldr r0, _080953F0 @ =sub_806AEDC
- bl SetMainCallback2
- b _08095400
- .align 2, 0
-_080953D8: .4byte 0x0201b260
-_080953DC: .4byte gUnknown_020384F0
-_080953E0: .4byte gPlayerParty
-_080953E4: .4byte gStringVar1
-_080953E8: .4byte sub_8095408
-_080953EC: .4byte sub_8095118
-_080953F0: .4byte sub_806AEDC
-_080953F4:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08095392
-_08095400:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809538C
-
- thumb_func_start sub_8095408
-sub_8095408: @ 8095408
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, r7, 0
- ldr r0, _0809543C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080954B8
- ldr r2, _08095440 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08095444
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080954B8
- .align 2, 0
-_0809543C: .4byte gPaletteFade
-_08095440: .4byte gMain
-_08095444:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0809545A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080954B8
-_0809545A:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080954A4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08095498 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0x10]
- ldr r5, _0809549C @ =gUnknown_083B5FF4
- ldr r6, _080954A0 @ =gUnknown_083B5FCC
- bl GetMenuCursorPos
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r7, 0
- bl _call_via_r1
- b _080954B8
- .align 2, 0
-_08095498: .4byte gTasks
-_0809549C: .4byte gUnknown_083B5FF4
-_080954A0: .4byte gUnknown_083B5FCC
-_080954A4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080954B8
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80958C4
-_080954B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8095408
-
- thumb_func_start sub_80954C0
-sub_80954C0: @ 80954C0
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080954D8 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _080954D4
- adds r0, r1, 0
- bl sub_80958C4
-_080954D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080954D8: .4byte gUnknown_0202E8F6
- thumb_func_end sub_80954C0
-
- thumb_func_start sub_80954DC
-sub_80954DC: @ 80954DC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0809552C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08095522
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _08095530 @ =0x0201b000
- ldr r1, _08095534 @ =0x00000262
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08095538 @ =gPlayerParty
- ldr r1, _0809553C @ =gPlayerPartyCount
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08095540 @ =sub_809535C
- movs r1, 0x4
- str r1, [sp]
- adds r1, r5, 0
- bl sub_809D8BC
-_08095522:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809552C: .4byte gPaletteFade
-_08095530: .4byte 0x0201b000
-_08095534: .4byte 0x00000262
-_08095538: .4byte gPlayerParty
-_0809553C: .4byte gPlayerPartyCount
-_08095540: .4byte sub_809535C
- thumb_func_end sub_80954DC
-
- thumb_func_start sub_8095544
-sub_8095544: @ 8095544
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0809557C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095580 @ =sub_80954DC
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809557C: .4byte gTasks
-_08095580: .4byte sub_80954DC
- thumb_func_end sub_8095544
-
- thumb_func_start sub_8095584
-sub_8095584: @ 8095584
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080955F8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x10]
- ldr r1, _080955FC @ =gUnknown_083B5FF4
- bl sub_806E7D0
- adds r0, r6, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08095610
- cmp r5, 0x1
- beq _080955C6
- cmp r5, 0x4
- beq _080955C6
- cmp r5, 0x5
- bne _08095610
-_080955C6:
- bl sub_806D5A4
- ldr r4, _08095600 @ =gStringVar1
- bl sub_8040D08
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _08095604 @ =gStringVar4
- ldr r1, _08095608 @ =gOtherText_CantSwitchPokeWithYours
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _080955F8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809560C @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_080955F8: .4byte gTasks
-_080955FC: .4byte gUnknown_083B5FF4
-_08095600: .4byte gStringVar1
-_08095604: .4byte gStringVar4
-_08095608: .4byte gOtherText_CantSwitchPokeWithYours
-_0809560C: .4byte sub_80954C0
-_08095610:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095654 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _0809566C
- bl sub_806D5A4
- ldr r1, _08095658 @ =gStringVar1
- adds r0, r4, 0
- bl GetMonNickname
- ldr r4, _0809565C @ =gStringVar4
- ldr r1, _08095660 @ =gOtherText_NoEnergyLeft
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095664 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095668 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_08095654: .4byte gPlayerParty
-_08095658: .4byte gStringVar1
-_0809565C: .4byte gStringVar4
-_08095660: .4byte gOtherText_NoEnergyLeft
-_08095664: .4byte gTasks
-_08095668: .4byte sub_80954C0
-_0809566C:
- movs r4, 0
- ldr r0, _08095678 @ =gUnknown_02024A68
- lsls r1, r6, 2
- mov r8, r1
- b _080956A8
- .align 2, 0
-_08095678: .4byte gUnknown_02024A68
-_0809567C:
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080956A0
- adds r0, r5, 0
- bl sub_8094C20
- lsls r0, 24
- ldr r2, _080956EC @ =gUnknown_02024A6A
- lsls r1, r4, 1
- adds r1, r2
- lsrs r0, 24
- ldrh r1, [r1]
- cmp r0, r1
- bne _080956A0
- b _08095808
-_080956A0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080956F0 @ =gUnknown_02024A68
-_080956A8:
- ldrb r0, [r0]
- cmp r4, r0
- bcc _0809567C
- movs r2, 0x64
- mov r9, r2
- mov r0, r9
- muls r0, r5
- ldr r1, _080956F4 @ =gPlayerParty
- mov r10, r1
- adds r7, r0, r1
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08095708
- bl sub_806D5A4
- ldr r4, _080956F8 @ =gStringVar4
- ldr r1, _080956FC @ =gOtherText_EGGCantBattle
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095700 @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095704 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_080956EC: .4byte gUnknown_02024A6A
-_080956F0: .4byte gUnknown_02024A68
-_080956F4: .4byte gPlayerParty
-_080956F8: .4byte gStringVar4
-_080956FC: .4byte gOtherText_EGGCantBattle
-_08095700: .4byte gTasks
-_08095704: .4byte sub_80954C0
-_08095708:
- adds r0, r5, 0
- bl sub_8094C20
- ldr r1, _0809574C @ =0x02000000
- ldr r2, _08095750 @ =0x0001609d
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08095768
- bl sub_806D5A4
- ldr r1, _08095754 @ =gStringVar1
- adds r0, r7, 0
- bl GetMonNickname
- ldr r4, _08095758 @ =gStringVar4
- ldr r1, _0809575C @ =gOtherText_AlreadySelected
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095760 @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095764 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_0809574C: .4byte 0x02000000
-_08095750: .4byte 0x0001609d
-_08095754: .4byte gStringVar1
-_08095758: .4byte gStringVar4
-_0809575C: .4byte gOtherText_AlreadySelected
-_08095760: .4byte gTasks
-_08095764: .4byte sub_80954C0
-_08095768:
- ldr r0, _08095790 @ =gUnknown_02038473
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _080957A0
- bl sub_806D5A4
- bl sub_8040B8C
- ldr r0, _08095794 @ =gStringVar4
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095798 @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809579C @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_08095790: .4byte gUnknown_02038473
-_08095794: .4byte gStringVar4
-_08095798: .4byte gTasks
-_0809579C: .4byte sub_80954C0
-_080957A0:
- cmp r0, 0x2
- bne _08095854
- ldr r0, _080957EC @ =gUnknown_02024E6C
- ldrb r4, [r0]
- bl sub_806D5A4
- ldr r0, _080957F0 @ =gUnknown_02024A6A
- lsls r4, 1
- adds r4, r0
- ldrb r0, [r4]
- bl pokemon_order_func
- lsls r0, 24
- lsrs r0, 24
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r10
- ldr r1, _080957F4 @ =gStringVar1
- bl GetMonNickname
- ldr r4, _080957F8 @ =gStringVar4
- ldr r1, _080957FC @ =gOtherText_CantBeSwitched
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _08095800 @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095804 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_080957EC: .4byte gUnknown_02024E6C
-_080957F0: .4byte gUnknown_02024A6A
-_080957F4: .4byte gStringVar1
-_080957F8: .4byte gStringVar4
-_080957FC: .4byte gOtherText_CantBeSwitched
-_08095800: .4byte gTasks
-_08095804: .4byte sub_80954C0
-_08095808:
- bl sub_806D5A4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0809583C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08095840 @ =gStringVar1
- bl GetMonNickname
- ldr r4, _08095844 @ =gStringVar4
- ldr r1, _08095848 @ =gOtherText_AlreadyBattle
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r1, _0809584C @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08095850 @ =sub_80954C0
- b _0809589A
- .align 2, 0
-_0809583C: .4byte gPlayerParty
-_08095840: .4byte gStringVar1
-_08095844: .4byte gStringVar4
-_08095848: .4byte gOtherText_AlreadyBattle
-_0809584C: .4byte gTasks
-_08095850: .4byte sub_80954C0
-_08095854:
- adds r0, r5, 0
- bl sub_8094C20
- ldr r1, _080958AC @ =gUnknown_0202E8F5
- strb r0, [r1]
- ldr r1, _080958B0 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080958B4 @ =gUnknown_02024A6A
- ldr r0, _080958B8 @ =gUnknown_02024E6C
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8094C98
- mov r0, r9
- muls r0, r4
- add r0, r10
- adds r1, r7, 0
- bl sub_806E6F0
- ldr r1, _080958BC @ =gTasks
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080958C0 @ =sub_809527C
-_0809589A:
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080958AC: .4byte gUnknown_0202E8F5
-_080958B0: .4byte gUnknown_0202E8F4
-_080958B4: .4byte gUnknown_02024A6A
-_080958B8: .4byte gUnknown_02024E6C
-_080958BC: .4byte gTasks
-_080958C0: .4byte sub_809527C
- thumb_func_end sub_8095584
-
- thumb_func_start sub_80958C4
-sub_80958C4: @ 80958C4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl sub_8072DEC
- ldr r0, _080958FC @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x10]
- ldr r1, _08095900 @ =gUnknown_083B5FF4
- bl sub_806E7D0
- ldrh r0, [r4, 0x12]
- strh r0, [r4, 0x10]
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080958FC: .4byte gTasks
-_08095900: .4byte gUnknown_083B5FF4
- thumb_func_end sub_80958C4
-
thumb_func_start sub_8095904
sub_8095904: @ 8095904
push {r4-r7,lr}
@@ -2240,7 +270,7 @@ _08095AF0:
lsls r0, r4, 2
adds r0, r4
lsls r0, 4
- ldr r1, _08095B20 @ =gUnknown_020300A4
+ ldr r1, _08095B20 @ =gPokemonStorage + 0x4
adds r0, r1
adds r0, r6, r0
movs r1, 0xB
@@ -2262,7 +292,7 @@ _08095B0C:
pop {r1}
bx r1
.align 2, 0
-_08095B20: .4byte gUnknown_020300A4
+_08095B20: .4byte gPokemonStorage + 0x4
thumb_func_end sub_8095ADC
thumb_func_start sub_8095B24
@@ -2280,7 +310,7 @@ _08095B36:
lsls r0, r4, 2
adds r0, r4
lsls r0, 4
- ldr r1, _08095B54 @ =gUnknown_020300A4
+ ldr r1, _08095B54 @ =gPokemonStorage + 0x4
adds r0, r1
adds r0, r5, r0
movs r1, 0xB
@@ -2291,7 +321,7 @@ _08095B36:
asrs r0, 16
b _08095B66
.align 2, 0
-_08095B54: .4byte gUnknown_020300A4
+_08095B54: .4byte gPokemonStorage + 0x4
_08095B58:
adds r0, r4, 0x1
lsls r0, 16
@@ -2345,8 +375,8 @@ _08095B9A:
_08095BB0: .4byte gPlayerParty
thumb_func_end sub_8095B6C
- thumb_func_start sub_8095BB4
-sub_8095BB4: @ 8095BB4
+ thumb_func_start CountAlivePartyMonsExceptOne
+CountAlivePartyMonsExceptOne: @ 8095BB4
push {r4-r7,lr}
lsls r0, 24
movs r5, 0
@@ -2391,14 +421,14 @@ _08095BF6:
bx r1
.align 2, 0
_08095C0C: .4byte gPlayerParty
- thumb_func_end sub_8095BB4
+ thumb_func_end CountAlivePartyMonsExceptOne
thumb_func_start sub_8095C10
sub_8095C10: @ 8095C10
push {lr}
ldr r0, _08095C24 @ =gSpecialVar_0x8004
ldrb r0, [r0]
- bl sub_8095BB4
+ bl CountAlivePartyMonsExceptOne
lsls r0, 24
lsrs r0, 24
pop {r1}
@@ -2407,8 +437,8 @@ sub_8095C10: @ 8095C10
_08095C24: .4byte gSpecialVar_0x8004
thumb_func_end sub_8095C10
- thumb_func_start sub_8095C28
-sub_8095C28: @ 8095C28
+ thumb_func_start StorageSystemGetPartySize
+StorageSystemGetPartySize: @ 8095C28
push {r4,r5,lr}
movs r4, 0
movs r5, 0
@@ -2437,7 +467,7 @@ _08095C46:
bx r1
.align 2, 0
_08095C5C: .4byte gPlayerParty
- thumb_func_end sub_8095C28
+ thumb_func_end StorageSystemGetPartySize
thumb_func_start unref_sub_8095C60
unref_sub_8095C60: @ 8095C60
@@ -2635,8 +665,8 @@ _08095DC4: .4byte 0x040000d4
_08095DC8: .4byte 0x81000800
thumb_func_end unref_sub_8095D08
- thumb_func_start sub_8095DCC
-sub_8095DCC: @ 8095DCC
+ thumb_func_start StorageSystemGetNextMonIndex
+StorageSystemGetNextMonIndex: @ 8095DCC
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -2749,10 +779,10 @@ _08095E94:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_8095DCC
+ thumb_func_end StorageSystemGetNextMonIndex
- thumb_func_start sub_8095EA0
-sub_8095EA0: @ 8095EA0
+ thumb_func_start StorageSystemClearMessageWindow
+StorageSystemClearMessageWindow: @ 8095EA0
push {lr}
movs r0, 0x2
movs r1, 0xF
@@ -2761,10 +791,10 @@ sub_8095EA0: @ 8095EA0
bl MenuFillWindowRectWithBlankTile
pop {r0}
bx r0
- thumb_func_end sub_8095EA0
+ thumb_func_end StorageSystemClearMessageWindow
- thumb_func_start sub_8095EB4
-sub_8095EB4: @ 8095EB4
+ thumb_func_start Task_PokemonStorageSystem
+Task_PokemonStorageSystem: @ 8095EB4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
@@ -2796,7 +826,7 @@ _08095EE0:
.4byte _080960DC
_08095EF4:
ldrb r0, [r4, 0xA]
- bl sub_8096168
+ bl StorageSystemCreatePrimaryMenu
bl MenuDisplayMessageBox
ldr r1, _08095F18 @ =gUnknown_083B600C
movs r2, 0xA
@@ -2885,7 +915,7 @@ _08095F92:
b _080960F4
_08095FA2:
strh r2, [r4, 0xA]
- bl sub_8095EA0
+ bl StorageSystemClearMessageWindow
ldr r0, _08095FC4 @ =gUnknown_083B600C
movs r2, 0xA
ldrsh r1, [r4, r2]
@@ -2901,7 +931,7 @@ _08095FA2:
_08095FC0: .4byte gMain
_08095FC4: .4byte gUnknown_083B600C
_08095FC8:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0xD
@@ -2917,12 +947,12 @@ _08095FE8:
ldrsh r0, [r4, r3]
cmp r0, 0
bne _08096008
- bl sub_8095C28
+ bl StorageSystemGetPartySize
lsls r0, 24
lsrs r0, 24
cmp r0, 0x6
bne _08096008
- bl sub_8095EA0
+ bl StorageSystemClearMessageWindow
ldr r0, _08096004 @ =gPCText_PartyFull2
b _08096022
.align 2, 0
@@ -2932,12 +962,12 @@ _08096008:
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _08096034
- bl sub_8095C28
+ bl StorageSystemGetPartySize
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08096034
- bl sub_8095EA0
+ bl StorageSystemClearMessageWindow
ldr r0, _08096030 @ =gPCText_OnlyOne
_08096022:
movs r1, 0x2
@@ -2984,7 +1014,7 @@ _0809606A:
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xA]
- bl sub_8095EA0
+ bl StorageSystemClearMessageWindow
ldr r1, _0809608C @ =gUnknown_083B600C
movs r3, 0xA
ldrsh r0, [r4, r3]
@@ -3013,7 +1043,7 @@ _080960A8:
lsrs r0, 24
strh r0, [r4, 0xA]
_080960B8:
- bl sub_8095EA0
+ bl StorageSystemClearMessageWindow
ldr r1, _080960D8 @ =gUnknown_083B600C
movs r2, 0xA
ldrsh r0, [r4, r2]
@@ -3047,12 +1077,12 @@ _080960F4:
bx r0
.align 2, 0
_080960FC: .4byte gPaletteFade
- thumb_func_end sub_8095EB4
+ thumb_func_end Task_PokemonStorageSystem
- thumb_func_start sub_8096100
-sub_8096100: @ 8096100
+ thumb_func_start ShowPokemonStorageSystem
+ShowPokemonStorageSystem: @ 8096100
push {lr}
- ldr r0, _08096128 @ =sub_8095EB4
+ ldr r0, _08096128 @ =Task_PokemonStorageSystem
movs r1, 0x50
bl CreateTask
lsls r0, 24
@@ -3069,14 +1099,14 @@ sub_8096100: @ 8096100
pop {r0}
bx r0
.align 2, 0
-_08096128: .4byte sub_8095EB4
+_08096128: .4byte Task_PokemonStorageSystem
_0809612C: .4byte gTasks
- thumb_func_end sub_8096100
+ thumb_func_end ShowPokemonStorageSystem
thumb_func_start sub_8096130
sub_8096130: @ 8096130
push {lr}
- ldr r0, _0809615C @ =sub_8095EB4
+ ldr r0, _0809615C @ =Task_PokemonStorageSystem
movs r1, 0x50
bl CreateTask
lsls r0, 24
@@ -3095,13 +1125,13 @@ sub_8096130: @ 8096130
pop {r0}
bx r0
.align 2, 0
-_0809615C: .4byte sub_8095EB4
+_0809615C: .4byte Task_PokemonStorageSystem
_08096160: .4byte gTasks
_08096164: .4byte gUnknown_02038474
thumb_func_end sub_8096130
- thumb_func_start sub_8096168
-sub_8096168: @ 8096168
+ thumb_func_start StorageSystemCreatePrimaryMenu
+StorageSystemCreatePrimaryMenu: @ 8096168
push {r4,lr}
sub sp, 0x8
adds r4, r0, 0
@@ -3131,7 +1161,7 @@ sub_8096168: @ 8096168
bx r0
.align 2, 0
_080961A4: .4byte gUnknown_083B600C
- thumb_func_end sub_8096168
+ thumb_func_end StorageSystemCreatePrimaryMenu
thumb_func_start sub_80961A8
sub_80961A8: @ 80961A8
@@ -3141,7 +1171,7 @@ sub_80961A8: @ 80961A8
ldr r0, [r0]
ldrb r0, [r0, 0x5]
strb r0, [r1]
- ldr r1, _080961CC @ =gUnknown_0300485C
+ ldr r1, _080961CC @ =gFieldCallback
ldr r0, _080961D0 @ =sub_8096130
str r0, [r1]
ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch
@@ -3151,13 +1181,13 @@ sub_80961A8: @ 80961A8
.align 2, 0
_080961C4: .4byte gUnknown_02038474
_080961C8: .4byte gUnknown_083B6DB4
-_080961CC: .4byte gUnknown_0300485C
+_080961CC: .4byte gFieldCallback
_080961D0: .4byte sub_8096130
_080961D4: .4byte c2_exit_to_overworld_2_switch
thumb_func_end sub_80961A8
- thumb_func_start sub_80961D8
-sub_80961D8: @ 80961D8
+ thumb_func_start ResetPokemonStorageSystem
+ResetPokemonStorageSystem: @ 80961D8
push {r4-r7,lr}
ldr r1, _08096258 @ =gPokemonStorage
movs r0, 0
@@ -3192,7 +1222,7 @@ _080961F0:
_08096214:
lsls r0, r5, 3
adds r0, r5
- ldr r6, _0809625C @ =gUnknown_020383E4
+ ldr r6, _0809625C @ =gPokemonStorage + 0x8344
adds r0, r6
ldr r1, _08096260 @ =gPCText_BOX
bl StringCopy
@@ -3224,9 +1254,9 @@ _0809623E:
bx r0
.align 2, 0
_08096258: .4byte gPokemonStorage
-_0809625C: .4byte gUnknown_020383E4
+_0809625C: .4byte gPokemonStorage + 0x8344
_08096260: .4byte gPCText_BOX
- thumb_func_end sub_80961D8
+ thumb_func_end ResetPokemonStorageSystem
thumb_func_start sub_8096264
sub_8096264: @ 8096264
@@ -3772,7 +1802,7 @@ sub_809665C: @ 809665C
ldrb r0, [r0]
lsls r1, r0, 3
adds r1, r0
- ldr r0, _080966BC @ =gUnknown_020383E4
+ ldr r0, _080966BC @ =gPokemonStorage + 0x8344
adds r1, r0
adds r0, r2, 0
bl StringCopy
@@ -3789,7 +1819,7 @@ sub_809665C: @ 809665C
.align 2, 0
_080966B4: .4byte gUnknown_02038478
_080966B8: .4byte gStringVar1
-_080966BC: .4byte gUnknown_020383E4
+_080966BC: .4byte gPokemonStorage + 0x8344
_080966C0:
movs r0, 0x22
_080966C2:
@@ -4363,7 +2393,7 @@ _08096B74:
adds r4, r5
ldrb r4, [r4]
str r4, [sp]
- bl sub_809D8BC
+ bl ShowPokemonSummaryScreen
b _08096BCC
.align 2, 0
_08096B98: .4byte 0x00002690
@@ -4590,7 +2620,7 @@ _08096D66:
ldr r1, _08096D8C @ =0x000011f2
adds r0, r4, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
bne _08096E4C
@@ -4682,7 +2712,7 @@ _08096E30:
ldr r1, _08096E58 @ =0x000011f2
adds r0, r4, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _08096E5C
@@ -5072,7 +3102,7 @@ _08097190:
ldr r1, _080971C4 @ =0x000011f2
adds r0, r4, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
bne _08097210
@@ -5115,7 +3145,7 @@ _08097200:
ldr r1, _08097218 @ =0x000011f2
adds r0, r4, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0809721C
@@ -7060,7 +5090,7 @@ sub_80981F0: @ 80981F0
str r4, [sp, 0x4]
str r7, [sp, 0x8]
movs r2, 0x1
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
ldr r1, _08098288 @ =0x000011e8
adds r0, r6, r1
ldr r0, [r0]
@@ -7861,196 +5891,7 @@ _08098892:
bx r1
thumb_func_end sub_8098830
- thumb_func_start sub_8098898
-sub_8098898: @ 8098898
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0xA
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r1, _080988C4 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x4]
- cmp r0, 0x6
- bls _080988B8
- b _080989F4
-_080988B8:
- lsls r0, 2
- ldr r1, _080988C8 @ =_080988CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080988C4: .4byte gUnknown_083B6DF4
-_080988C8: .4byte _080988CC
- .align 2, 0
-_080988CC:
- .4byte _080989F4
- .4byte _08098930
- .4byte _080988E8
- .4byte _08098974
- .4byte _08098954
- .4byte _08098910
- .4byte _080989B8
-_080988E8:
- ldr r4, _08098904 @ =0x02002694
- ldr r1, _08098908 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _0809890C @ =0xffffeb66
- adds r4, r0
- adds r0, r2, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_08098904: .4byte 0x02002694
-_08098908: .4byte gUnknown_083B6DF4
-_0809890C: .4byte 0xffffeb66
-_08098910:
- ldr r4, _08098928 @ =0x02002694
- ldr r1, _0809892C @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r2, r0, 0
- adds r4, 0x50
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_08098928: .4byte 0x02002694
-_0809892C: .4byte gUnknown_083B6DF4
-_08098930:
- ldr r0, _08098948 @ =0x02002694
- ldr r2, _0809894C @ =0xffffeb66
- adds r1, r0, r2
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08098950 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- b _080989FE
- .align 2, 0
-_08098948: .4byte 0x02002694
-_0809894C: .4byte 0xffffeb66
-_08098950: .4byte gUnknown_083B6DF4
-_08098954:
- ldr r0, _0809896C @ =0x02002694
- adds r1, r0, 0
- adds r1, 0x50
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08098970 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- b _080989FE
- .align 2, 0
-_0809896C: .4byte 0x02002694
-_08098970: .4byte gUnknown_083B6DF4
-_08098974:
- ldr r1, _080989AC @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r6, [r0]
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r4, r6, r4
- adds r4, 0x1
- ldr r5, _080989B0 @ =0x02002694
- adds r0, r5, 0
- adds r1, r6, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _080989B4 @ =0xffffeb66
- adds r5, r0
- adds r0, r2, 0
- adds r1, r5, 0
- bl StringCopy
- adds r2, r0, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_080989AC: .4byte gUnknown_083B6DF4
-_080989B0: .4byte 0x02002694
-_080989B4: .4byte 0xffffeb66
-_080989B8:
- ldr r1, _080989EC @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r6, [r0]
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r4, r6, r4
- subs r4, 0x1
- ldr r5, _080989F0 @ =0x02002694
- adds r0, r5, 0
- adds r1, r6, 0
- bl StringCopy
- adds r2, r0, 0
- subs r0, r2, 0x1
- adds r5, 0x50
- adds r1, r5, 0
- bl StringCopy
- adds r2, r0, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_080989EC: .4byte gUnknown_083B6DF4
-_080989F0: .4byte 0x02002694
-_080989F4:
- ldr r0, _08098A2C @ =0x02002694
- ldr r2, _08098A30 @ =gUnknown_083B6DF4
- lsls r1, r5, 3
- adds r1, r2
- ldr r1, [r1]
-_080989FE:
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _08098A34 @ =0x020026a6
- adds r3, r0, 0
- subs r3, 0x12
- cmp r2, r0
- bcs _08098A18
- movs r1, 0
-_08098A10:
- strb r1, [r2]
- adds r2, 0x1
- cmp r2, r0
- bcc _08098A10
-_08098A18:
- movs r0, 0xFF
- strb r0, [r2]
- adds r0, r3, 0
- movs r1, 0xB
- movs r2, 0x11
- bl MenuPrint
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098A2C: .4byte 0x02002694
-_08098A30: .4byte gUnknown_083B6DF4
-_08098A34: .4byte 0x020026a6
- thumb_func_end sub_8098898
+.section .text_8098A38
thumb_func_start sub_8098A38
sub_8098A38: @ 8098A38
@@ -8074,7 +5915,7 @@ sub_8098A38: @ 8098A38
thumb_func_start sub_8098A5C
sub_8098A5C: @ 8098A5C
push {lr}
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0xA
movs r1, 0x10
movs r2, 0x1D
@@ -8322,7 +6163,7 @@ sub_8098C48: @ 8098C48
lsls r0, r1, 4
subs r0, r1
lsls r0, 5
- ldr r1, _08098CCC @ =gUnknown_020300A4
+ ldr r1, _08098CCC @ =gPokemonStorage + 0x4
adds r6, r0, r1
movs r0, 0
mov r8, r0
@@ -8376,7 +6217,7 @@ _08098C70:
str r0, [r1]
b _08098CE8
.align 2, 0
-_08098CCC: .4byte gUnknown_020300A4
+_08098CCC: .4byte gPokemonStorage + 0x4
_08098CD0: .4byte gUnknown_083B6DB4
_08098CD4: .4byte 0x00001050
_08098CD8:
@@ -8438,7 +6279,7 @@ sub_8098D20: @ 8098D20
mov r9, r0
adds r0, r4
lsls r0, 4
- ldr r1, _08098DD4 @ =gUnknown_020300A4
+ ldr r1, _08098DD4 @ =gPokemonStorage + 0x4
adds r0, r1
adds r7, r2, r0
adds r0, r7, 0
@@ -8504,7 +6345,7 @@ _08098DC4:
pop {r0}
bx r0
.align 2, 0
-_08098DD4: .4byte gUnknown_020300A4
+_08098DD4: .4byte gPokemonStorage + 0x4
_08098DD8: .4byte gUnknown_083B6DB4
_08098DDC: .4byte 0x00001050
thumb_func_end sub_8098D20
@@ -8716,7 +6557,7 @@ _08098F42:
lsls r7, r6, 2
adds r1, r7, r6
lsls r1, 4
- ldr r2, _08099004 @ =gUnknown_020300A4
+ ldr r2, _08099004 @ =gPokemonStorage + 0x4
adds r4, r1, r2
adds r0, r4
movs r1, 0x41
@@ -8799,7 +6640,7 @@ _08098FC8:
_08098FF8: .4byte gUnknown_083B6DB4
_08098FFC: .4byte 0x0000117d
_08099000: .4byte 0x00001050
-_08099004: .4byte gUnknown_020300A4
+_08099004: .4byte gPokemonStorage + 0x4
_08099008: .4byte sub_8098E24
thumb_func_end sub_8098EE0
@@ -9942,7 +7783,7 @@ _0809988A:
strb r0, [r2, 0x1]
ldr r0, [r4]
ldr r1, [r0]
- ldr r0, _080998D4 @ =gUnknown_083B6F5C
+ ldr r0, _080998D4 @ =gSpriteAffineAnimTable_83B6F5C
str r0, [r1, 0x10]
ldr r0, [r4]
ldr r0, [r0]
@@ -9956,7 +7797,7 @@ _080998C0:
_080998C8: .4byte gUnknown_083B6DB4
_080998CC: .4byte 0x000010cc
_080998D0: .4byte 0x00001034
-_080998D4: .4byte gUnknown_083B6F5C
+_080998D4: .4byte gSpriteAffineAnimTable_83B6F5C
thumb_func_end sub_809981C
thumb_func_start sub_80998D8
@@ -11464,7 +9305,7 @@ _0809A478:
ldr r1, [sp, 0x28]
lsls r5, r1, 3
adds r5, r1
- ldr r4, _0809A57C @ =gUnknown_020383E4
+ ldr r4, _0809A57C @ =gPokemonStorage + 0x8344
adds r5, r4
adds r1, r5, 0
bl sub_809A1BC
@@ -11580,7 +9421,7 @@ _0809A4DE:
_0809A570: .4byte 0x00000cec
_0809A574: .4byte 0x0000dac9
_0809A578: .4byte 0x000008ca
-_0809A57C: .4byte gUnknown_020383E4
+_0809A57C: .4byte gPokemonStorage + 0x8344
_0809A580: .4byte gUnknown_083BB0A8
_0809A584: .4byte gUnknown_083B6DB4
_0809A588: .4byte 0x00000cf8
@@ -12422,7 +10263,7 @@ _0809ABC0:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _0809ABF4 @ =gUnknown_020300A4
+ ldr r2, _0809ABF4 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
movs r1, 0xB
@@ -12433,7 +10274,7 @@ _0809ABEA:
b _0809ABFA
.align 2, 0
_0809ABF0: .4byte gUnknown_020384E5
-_0809ABF4: .4byte gUnknown_020300A4
+_0809ABF4: .4byte gPokemonStorage + 0x4
_0809ABF8:
movs r0, 0
_0809ABFA:
@@ -13573,7 +11414,7 @@ _0809B488:
lsls r1, r5, 2
adds r1, r5
lsls r1, 4
- ldr r2, _0809B4C0 @ =gUnknown_020300A4
+ ldr r2, _0809B4C0 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
ldr r1, _0809B4C4 @ =gUnknown_083B6DB4
@@ -13593,7 +11434,7 @@ _0809B4AA:
pop {r0}
bx r0
.align 2, 0
-_0809B4C0: .4byte gUnknown_020300A4
+_0809B4C0: .4byte gPokemonStorage + 0x4
_0809B4C4: .4byte gUnknown_083B6DB4
_0809B4C8: .4byte 0x000025b4
_0809B4CC: .4byte gUnknown_020384E7
@@ -13630,7 +11471,7 @@ _0809B508:
ldr r0, _0809B540 @ =0x000025b4
adds r4, r0
adds r0, r4, 0
- bl pokemon_restore_pp
+ bl BoxMonRestorePP
ldr r3, _0809B544 @ =gPokemonStorage
lsls r0, r5, 2
adds r0, r5
@@ -13682,7 +11523,7 @@ _0809B568:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _0809B588 @ =gUnknown_020300A4
+ ldr r2, _0809B588 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
bl ZeroBoxMonData
@@ -13690,7 +11531,7 @@ _0809B582:
pop {r0}
bx r0
.align 2, 0
-_0809B588: .4byte gUnknown_020300A4
+_0809B588: .4byte gPokemonStorage + 0x4
thumb_func_end sub_809B548
thumb_func_start diegohint1
@@ -13726,7 +11567,7 @@ _0809B5C0:
lsls r1, r6, 2
adds r1, r6
lsls r1, 4
- ldr r2, _0809B614 @ =gUnknown_020300A4
+ ldr r2, _0809B614 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
ldr r1, _0809B618 @ =gUnknown_083B6DB4
@@ -13758,7 +11599,7 @@ _0809B5E2:
pop {r0}
bx r0
.align 2, 0
-_0809B614: .4byte gUnknown_020300A4
+_0809B614: .4byte gPokemonStorage + 0x4
_0809B618: .4byte gUnknown_083B6DB4
_0809B61C: .4byte 0x00002618
_0809B620: .4byte 0x000025b4
@@ -14332,7 +12173,7 @@ _0809BA9A:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _0809BB78 @ =gUnknown_020300A4
+ ldr r2, _0809BB78 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
movs r1, 0x50
@@ -14432,7 +12273,7 @@ _0809BB5C:
_0809BB6C: .4byte 0x0000267f
_0809BB70: .4byte 0x0000ffff
_0809BB74: .4byte 0x00002681
-_0809BB78: .4byte gUnknown_020300A4
+_0809BB78: .4byte gPokemonStorage + 0x4
_0809BB7C: .4byte 0x00002686
_0809BB80: .4byte 0x00002682
_0809BB84: .4byte 0x0000267e
@@ -14557,7 +12398,7 @@ _0809BC64:
ldr r3, _0809BCB0 @ =0x0000268d
adds r0, r4, r3
strb r1, [r0]
- bl sub_8095C28
+ bl StorageSystemGetPartySize
subs r0, 0x1
ldr r2, _0809BCB4 @ =0x0000268c
adds r1, r4, r2
@@ -14787,7 +12628,7 @@ _0809BE34:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _0809BE7C @ =gUnknown_020300A4
+ ldr r2, _0809BE7C @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
movs r1, 0x8
@@ -14802,7 +12643,7 @@ _0809BE68:
_0809BE70: .4byte gUnknown_020384E4
_0809BE74: .4byte gUnknown_020384E5
_0809BE78: .4byte gPlayerParty
-_0809BE7C: .4byte gUnknown_020300A4
+_0809BE7C: .4byte gPokemonStorage + 0x4
thumb_func_end sub_809BDD8
thumb_func_start sub_809BE80
@@ -14820,7 +12661,7 @@ sub_809BE80: @ 809BE80
bne _0809BEB4
ldr r0, _0809BEB0 @ =gUnknown_020384E5
ldrb r0, [r0]
- bl sub_8095BB4
+ bl CountAlivePartyMonsExceptOne
lsls r0, 24
cmp r0, 0
bne _0809BEB4
@@ -14852,7 +12693,7 @@ sub_809BEBC: @ 809BEBC
bne _0809BEFC
ldr r0, _0809BF08 @ =gUnknown_020384E5
ldrb r0, [r0]
- bl sub_8095BB4
+ bl CountAlivePartyMonsExceptOne
lsls r0, 24
cmp r0, 0
bne _0809BEFC
@@ -15015,7 +12856,7 @@ _0809BFEE:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _0809C024 @ =gUnknown_020300A4
+ ldr r2, _0809C024 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
movs r1, 0x1
@@ -15026,7 +12867,7 @@ _0809C018:
bx r0
.align 2, 0
_0809C020: .4byte gUnknown_020384E5
-_0809C024: .4byte gUnknown_020300A4
+_0809C024: .4byte gPokemonStorage + 0x4
thumb_func_end sub_809BF74
thumb_func_start sub_809C028
@@ -16990,7 +14831,7 @@ _0809CF8E:
negs r0, r0
cmp r5, r0
beq _0809CFB2
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
ldr r1, [r0]
ldr r2, _0809CFD4 @ =0x000011ba
@@ -17384,12076 +15225,4 @@ _0809D264: .4byte 0x040000d4
_0809D268: .4byte 0x81000800
thumb_func_end sub_809D1C4
- thumb_func_start unref_sub_809D26C
-unref_sub_809D26C: @ 809D26C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- adds r6, r3, 0
- ldr r3, [sp, 0x2C]
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- mov r8, sp
- ldr r4, _0809D2E0 @ =gOamData_83BC5E8
- str r4, [sp]
- ldr r5, _0809D2E4 @ =gMonIconTable
- lsls r4, r0, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp, 0x4]
- ldr r4, _0809D2E8 @ =gSpriteAnimTable_83BC62C
- str r4, [sp, 0x8]
- ldr r4, _0809D2EC @ =gSpriteAffineAnimTable_83BC660
- str r4, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r1, _0809D2F0 @ =gMonIconPaletteIndices
- adds r0, r1
- ldr r4, _0809D2F4 @ =0x0000dac0
- adds r1, r4, 0
- ldrb r0, [r0]
- adds r1, r0
- mov r0, r8
- strh r1, [r0, 0x14]
- lsls r2, 16
- asrs r2, 16
- lsls r6, 16
- asrs r6, 16
- mov r0, sp
- adds r1, r2, 0
- adds r2, r6, 0
- bl sub_809D710
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0809D2F8 @ =gSprites
- adds r0, r1
- bl sub_809D638
- adds r0, r4, 0
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D2E0: .4byte gOamData_83BC5E8
-_0809D2E4: .4byte gMonIconTable
-_0809D2E8: .4byte gSpriteAnimTable_83BC62C
-_0809D2EC: .4byte gSpriteAffineAnimTable_83BC660
-_0809D2F0: .4byte gMonIconPaletteIndices
-_0809D2F4: .4byte 0x0000dac0
-_0809D2F8: .4byte gSprites
- thumb_func_end unref_sub_809D26C
-
- thumb_func_start sub_809D2FC
-sub_809D2FC: @ 809D2FC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [sp, 0x48]
- ldr r1, [sp, 0x4C]
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0809D38C @ =gOamData_83BC5E8
- str r0, [sp, 0x18]
- adds r0, r4, 0
- bl sub_809D4F4
- str r0, [sp, 0x1C]
- ldr r0, _0809D390 @ =gSpriteAnimTable_83BC62C
- str r0, [sp, 0x20]
- ldr r0, _0809D394 @ =gSpriteAffineAnimTable_83BC660
- str r0, [sp, 0x24]
- str r5, [sp, 0x28]
- ldr r0, _0809D398 @ =gMonIconPaletteIndices
- adds r0, r4, r0
- ldr r1, _0809D39C @ =0x0000dac0
- adds r5, r1, 0
- ldrb r0, [r0]
- adds r1, r5, r0
- add r0, sp, 0x2C
- strh r1, [r0]
- add r1, sp, 0x18
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _0809D35A
- mov r0, sp
- strh r5, [r0, 0x14]
-_0809D35A:
- lsls r1, r7, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- mov r0, sp
- mov r3, r8
- bl sub_809D710
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0809D3A0 @ =gSprites
- adds r0, r1
- bl sub_809D638
- adds r0, r4, 0
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D38C: .4byte gOamData_83BC5E8
-_0809D390: .4byte gSpriteAnimTable_83BC62C
-_0809D394: .4byte gSpriteAffineAnimTable_83BC660
-_0809D398: .4byte gMonIconPaletteIndices
-_0809D39C: .4byte 0x0000dac0
-_0809D3A0: .4byte gSprites
- thumb_func_end sub_809D2FC
-
- thumb_func_start sub_809D3A4
-sub_809D3A4: @ 809D3A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- adds r6, r3, 0
- ldr r3, [sp, 0x2C]
- lsls r0, 16
- lsrs r0, 16
- lsls r3, 24
- lsrs r3, 24
- mov r8, sp
- ldr r4, _0809D418 @ =gOamData_83BC5E8
- str r4, [sp]
- ldr r5, _0809D41C @ =gMonIconTable
- lsls r4, r0, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp, 0x4]
- ldr r4, _0809D420 @ =gSpriteAnimTable_83BC62C
- str r4, [sp, 0x8]
- ldr r4, _0809D424 @ =gSpriteAffineAnimTable_83BC660
- str r4, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r1, _0809D428 @ =gMonIconPaletteIndices
- adds r0, r1
- ldr r4, _0809D42C @ =0x0000dac0
- adds r1, r4, 0
- ldrb r0, [r0]
- adds r1, r0
- mov r0, r8
- strh r1, [r0, 0x14]
- lsls r2, 16
- asrs r2, 16
- lsls r6, 16
- asrs r6, 16
- mov r0, sp
- adds r1, r2, 0
- adds r2, r6, 0
- bl sub_809D710
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0809D430 @ =gSprites
- adds r0, r1
- bl sub_809D638
- adds r0, r4, 0
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D418: .4byte gOamData_83BC5E8
-_0809D41C: .4byte gMonIconTable
-_0809D420: .4byte gSpriteAnimTable_83BC62C
-_0809D424: .4byte gSpriteAffineAnimTable_83BC660
-_0809D428: .4byte gMonIconPaletteIndices
-_0809D42C: .4byte 0x0000dac0
-_0809D430: .4byte gSprites
- thumb_func_end sub_809D3A4
-
- thumb_func_start mon_icon_convert_unown_species_id
-mon_icon_convert_unown_species_id: @ 809D434
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, SPECIES_UNOWN
- bne _0809D45E
- adds r0, r1, 0
- bl sub_809D474
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0809D450
- movs r0, SPECIES_UNOWN
- b _0809D45A
-_0809D450:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_0809D45A:
- adds r1, r0, 0
- b _0809D46C
-_0809D45E:
- movs r0, 0xCE
- lsls r0, 1
- adds r1, r2, 0
- cmp r1, r0
- bls _0809D46C
- movs r1, 0x82
- lsls r1, 1
-_0809D46C:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end mon_icon_convert_unown_species_id
-
- thumb_func_start sub_809D474
-sub_809D474: @ 809D474
- push {lr}
- adds r2, r0, 0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809D474
-
- thumb_func_start sub_809D4A8
-sub_809D4A8: @ 809D4A8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- mov r1, sp
- bl sub_80A2D64
- lsls r0, 16
- lsrs r0, 16
- cmp r0, SPECIES_UNOWN
- bne _0809D4DE
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809D4CE
- mov r1, sp
- adds r0, SPECIES_UNOWN
- b _0809D4D6
-_0809D4CE:
- mov r1, sp
- movs r2, 0xCE
- lsls r2, 1
- adds r0, r2
-_0809D4D6:
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0]
- b _0809D4EA
-_0809D4DE:
- adds r0, r4, 0
- movs r1, 0
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- lsrs r0, 16
-_0809D4EA:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809D4A8
-
- thumb_func_start sub_809D4F4
-sub_809D4F4: @ 809D4F4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- ldr r1, _0809D50C @ =gMonIconTable
- lsrs r0, 14
- adds r0, r1
- ldr r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_0809D50C: .4byte gMonIconTable
- thumb_func_end sub_809D4F4
-
- thumb_func_start sub_809D510
-sub_809D510: @ 809D510
- push {lr}
- bl sub_809D7E8
- pop {r0}
- bx r0
- thumb_func_end sub_809D510
-
- thumb_func_start sub_809D51C
-sub_809D51C: @ 809D51C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0809D53C @ =gMonIconPaletteTable
-_0809D522:
- lsls r0, r4, 3
- adds r0, r5
- bl LoadSpritePalette
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0809D522
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D53C: .4byte gMonIconPaletteTable
- thumb_func_end sub_809D51C
-
- thumb_func_start unref_sub_809D540
-unref_sub_809D540: @ 809D540
- push {r4,lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bls _0809D552
- movs r1, 0x82
- lsls r1, 1
-_0809D552:
- ldr r0, _0809D578 @ =gMonIconPaletteIndices
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r1, _0809D57C @ =gMonIconPaletteTable
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809D572
- adds r0, r4, 0
- bl LoadSpritePalette
-_0809D572:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D578: .4byte gMonIconPaletteIndices
-_0809D57C: .4byte gMonIconPaletteTable
- thumb_func_end unref_sub_809D540
-
- thumb_func_start sub_809D580
-sub_809D580: @ 809D580
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0809D5AC @ =gMonIconPaletteIndices
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0809D5B0 @ =gMonIconPaletteTable
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809D5A6
- adds r0, r4, 0
- bl LoadSpritePalette
-_0809D5A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D5AC: .4byte gMonIconPaletteIndices
-_0809D5B0: .4byte gMonIconPaletteTable
- thumb_func_end sub_809D580
-
- thumb_func_start unref_sub_809D5B4
-unref_sub_809D5B4: @ 809D5B4
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0809D5D4 @ =gMonIconPaletteTable
-_0809D5BA:
- lsls r0, r4, 3
- adds r0, r5
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0809D5BA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D5D4: .4byte gMonIconPaletteTable
- thumb_func_end unref_sub_809D5B4
-
- thumb_func_start unref_sub_809D5D8
-unref_sub_809D5D8: @ 809D5D8
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bls _0809D5EA
- movs r1, 0x82
- lsls r1, 1
-_0809D5EA:
- ldr r0, _0809D600 @ =gMonIconPaletteIndices
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r1, _0809D604 @ =gMonIconPaletteTable
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_0809D600: .4byte gMonIconPaletteIndices
-_0809D604: .4byte gMonIconPaletteTable
- thumb_func_end unref_sub_809D5D8
-
- thumb_func_start sub_809D608
-sub_809D608: @ 809D608
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0809D624 @ =gMonIconPaletteIndices
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0809D628 @ =gMonIconPaletteTable
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_0809D624: .4byte gMonIconPaletteIndices
-_0809D628: .4byte gMonIconPaletteTable
- thumb_func_end sub_809D608
-
- thumb_func_start sub_809D62C
-sub_809D62C: @ 809D62C
- push {lr}
- bl sub_809D638
- pop {r0}
- bx r0
- thumb_func_end sub_809D62C
-
- thumb_func_start sub_809D638
-sub_809D638: @ 809D638
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- movs r7, 0
- adds r6, r4, 0
- adds r6, 0x2C
- ldrb r2, [r6]
- movs r0, 0x3F
- mov r9, r0
- ands r0, r2
- cmp r0, 0
- bne _0809D6EC
- movs r1, 0x2A
- adds r1, r4
- mov r8, r1
- ldrb r1, [r1]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- adds r5, r4, 0
- adds r5, 0x2B
- ldrb r0, [r5]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- ldrsh r3, [r0, r1]
- movs r0, 0x2
- negs r0, r0
- cmp r3, r0
- beq _0809D682
- adds r0, 0x1
- cmp r3, r0
- bne _0809D686
- b _0809D700
-_0809D682:
- strb r7, [r5]
- b _0809D700
-_0809D686:
- ldr r2, _0809D6E4 @ =gSpriteImageSizes
- ldrb r1, [r4, 0x3]
- lsrs r1, 6
- lsls r1, 1
- ldrb r0, [r4, 0x1]
- lsrs r0, 6
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrh r2, [r1]
- adds r1, r2, 0
- muls r1, r3
- ldr r0, [r4, 0xC]
- adds r0, r1
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r3, _0809D6E8 @ =0x06010000
- adds r1, r3
- bl RequestSpriteCopy
- mov r0, r8
- ldrb r1, [r0]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r5]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 10
- lsrs r0, 26
- mov r1, r9
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldrb r7, [r5]
- b _0809D700
- .align 2, 0
-_0809D6E4: .4byte gSpriteImageSizes
-_0809D6E8: .4byte 0x06010000
-_0809D6EC:
- lsls r0, r2, 26
- lsrs r0, 26
- subs r0, 0x1
- movs r1, 0x3F
- ands r0, r1
- movs r1, 0x40
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6]
-_0809D700:
- adds r0, r7, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809D638
-
- thumb_func_start sub_809D710
-sub_809D710: @ 809D710
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x38
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- str r0, [sp, 0x30]
- ldr r2, _0809D7D8 @ =gSpriteImageSizes
- mov r0, r9
- ldr r6, [r0]
- ldrb r1, [r6, 0x3]
- lsrs r1, 6
- lsls r1, 1
- ldrb r0, [r6, 0x1]
- lsrs r0, 6
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrh r2, [r1]
- ldr r1, _0809D7DC @ =0xffff0000
- add r3, sp, 0x30
- ldr r0, [r3, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [r3, 0x4]
- add r1, sp, 0x18
- ldr r0, _0809D7E0 @ =0x0000ffff
- strh r0, [r1]
- mov r0, r9
- ldrh r2, [r0, 0x14]
- mov r0, sp
- adds r0, 0x1A
- strh r2, [r0]
- str r6, [sp, 0x1C]
- mov r2, r9
- ldr r0, [r2, 0x8]
- str r0, [sp, 0x20]
- str r3, [sp, 0x24]
- ldr r0, [r2, 0xC]
- str r0, [sp, 0x28]
- ldr r0, [r2, 0x10]
- str r0, [sp, 0x2C]
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r8
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _0809D7E4 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r4, r3, r6
- adds r5, r4, 0
- adds r5, 0x2C
- ldrb r1, [r5]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r5]
- adds r4, 0x3F
- ldrb r2, [r4]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r4]
- adds r6, 0xC
- adds r3, r6
- mov r2, r9
- ldr r1, [r2, 0x4]
- str r1, [r3]
- add sp, 0x38
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D7D8: .4byte gSpriteImageSizes
-_0809D7DC: .4byte 0xffff0000
-_0809D7E0: .4byte 0x0000ffff
-_0809D7E4: .4byte gSprites
- thumb_func_end sub_809D710
-
- thumb_func_start sub_809D7E8
-sub_809D7E8: @ 809D7E8
- push {lr}
- sub sp, 0x8
- movs r1, 0
- str r1, [sp]
- ldr r3, _0809D81C @ =gSpriteImageSizes
- ldrb r2, [r0, 0x3]
- lsrs r2, 6
- lsls r2, 1
- ldrb r1, [r0, 0x1]
- lsrs r1, 6
- lsls r1, 3
- adds r2, r1
- adds r2, r3
- ldrh r3, [r2]
- ldr r2, _0809D820 @ =0xffff0000
- ldr r1, [sp, 0x4]
- ands r1, r2
- orrs r1, r3
- str r1, [sp, 0x4]
- mov r1, sp
- str r1, [r0, 0xC]
- bl DestroySprite
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0809D81C: .4byte gSpriteImageSizes
-_0809D820: .4byte 0xffff0000
- thumb_func_end sub_809D7E8
-
- thumb_func_start sub_809D824
-sub_809D824: @ 809D824
- mov r12, r0
- adds r0, 0x2A
- movs r3, 0
- strb r1, [r0]
- mov r2, r12
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- mov r0, r12
- adds r0, 0x2B
- strb r3, [r0]
- bx lr
- thumb_func_end sub_809D824
-
- thumb_func_start sub_809D844
-sub_809D844: @ 809D844
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_809D844
-
- thumb_func_start sub_809D85C
-sub_809D85C: @ 809D85C
- push {lr}
- ldr r1, _0809D8A0 @ =REG_BG1HOFS
- ldr r0, _0809D8A4 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8A8 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8AC @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B0 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B4 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0809D8B8 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_0809D8A0: .4byte REG_BG1HOFS
-_0809D8A4: .4byte gUnknown_030042C0
-_0809D8A8: .4byte gUnknown_030041B4
-_0809D8AC: .4byte gUnknown_03004288
-_0809D8B0: .4byte gUnknown_03004280
-_0809D8B4: .4byte gUnknown_030041B0
-_0809D8B8: .4byte gUnknown_030041B8
- thumb_func_end sub_809D85C
-
- thumb_func_start sub_809D8BC
-sub_809D8BC: @ 809D8BC
- push {r4-r7,lr}
- ldr r4, [sp, 0x14]
- lsls r4, 24
- lsrs r7, r4, 24
- ldr r6, _0809D904 @ =gPaletteFade
- ldrb r4, [r6, 0x8]
- movs r5, 0x80
- orrs r4, r5
- strb r4, [r6, 0x8]
- ldr r5, _0809D908 @ =0x02018000
- str r0, [r5]
- movs r4, 0
- strb r7, [r5, 0x8]
- strb r1, [r5, 0x9]
- strb r2, [r5, 0xA]
- str r3, [r5, 0x4]
- adds r0, r5, 0
- adds r0, 0x74
- strb r4, [r0]
- adds r1, r5, 0
- adds r1, 0x79
- movs r0, 0x4
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x7C
- movs r1, 0
- strh r4, [r0]
- adds r0, 0x4
- strb r1, [r0]
- subs r0, 0x5
- strb r1, [r0]
- cmp r7, 0x4
- bls _0809D90C
- movs r0, 0x1
- strb r0, [r5, 0xE]
- b _0809D90E
- .align 2, 0
-_0809D904: .4byte gPaletteFade
-_0809D908: .4byte 0x02018000
-_0809D90C:
- strb r1, [r5, 0xE]
-_0809D90E:
- cmp r7, 0x6
- bhi _0809D9D6
- lsls r0, r7, 2
- ldr r1, _0809D91C @ =_0809D920
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809D91C: .4byte _0809D920
- .align 2, 0
-_0809D920:
- .4byte _0809D93C
- .4byte _0809D9BC
- .4byte _0809D992
- .4byte _0809D9D6
- .4byte _0809D966
- .4byte _0809D93C
- .4byte _0809D9BC
-_0809D93C:
- adds r0, r5, 0
- adds r0, 0x75
- movs r1, 0
- strb r1, [r0]
- adds r2, r5, 0
- adds r2, 0x76
- movs r0, 0x3
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x77
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r5, 0
- adds r1, 0x7E
- movs r0, 0x1
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x7
- strb r0, [r1]
- b _0809D9D6
-_0809D966:
- adds r0, r5, 0
- adds r0, 0x75
- movs r1, 0
- strb r1, [r0]
- adds r2, r5, 0
- adds r2, 0x76
- movs r0, 0x3
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x77
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r0, 0x6
- movs r1, 0x1
- strb r1, [r0]
- adds r2, 0x9
- movs r0, 0x7
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x7B
- b _0809D9D4
-_0809D992:
- adds r1, r5, 0
- adds r1, 0x75
- movs r3, 0
- movs r0, 0x2
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x76
- movs r2, 0x3
- strb r2, [r0]
- adds r0, 0x1
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r0, 0x6
- strb r2, [r0]
- adds r0, 0x1
- strb r3, [r0]
- subs r0, 0x6
- strb r3, [r0]
- b _0809D9D6
-_0809D9BC:
- adds r1, r5, 0
- adds r1, 0x75
- movs r0, 0x2
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x3
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x77
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
-_0809D9D4:
- strb r1, [r0]
-_0809D9D6:
- adds r0, r5, 0
- adds r0, 0x75
- ldrb r0, [r0]
- strb r0, [r5, 0xB]
- ldr r0, _0809D9EC @ =sub_809DE44
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D9EC: .4byte sub_809DE44
- thumb_func_end sub_809D8BC
-
- thumb_func_start sub_809D9F0
-sub_809D9F0: @ 809D9F0
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, [sp, 0x10]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 16
- lsrs r5, 16
- movs r4, 0x2
- str r4, [sp]
- bl sub_809D8BC
- ldr r0, _0809DA18 @ =0x02018000
- adds r0, 0x7C
- strh r5, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809DA18: .4byte 0x02018000
- thumb_func_end sub_809D9F0
-
- thumb_func_start sub_809DA1C
-sub_809DA1C: @ 809DA1C
- push {lr}
- ldr r0, _0809DA30 @ =0x02018000
- ldrb r0, [r0, 0x8]
- cmp r0, 0x6
- bhi _0809DA78
- lsls r0, 2
- ldr r1, _0809DA34 @ =_0809DA38
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DA30: .4byte 0x02018000
-_0809DA34: .4byte _0809DA38
- .align 2, 0
-_0809DA38:
- .4byte _0809DA54
- .4byte _0809DA6C
- .4byte _0809DA64
- .4byte _0809DA64
- .4byte _0809DA5C
- .4byte _0809DA54
- .4byte _0809DA6C
-_0809DA54:
- ldr r0, _0809DA58 @ =sub_809E19C
- b _0809DA6E
- .align 2, 0
-_0809DA58: .4byte sub_809E19C
-_0809DA5C:
- ldr r0, _0809DA60 @ =sub_809E19C
- b _0809DA6E
- .align 2, 0
-_0809DA60: .4byte sub_809E19C
-_0809DA64:
- ldr r0, _0809DA68 @ =sub_809EB40
- b _0809DA6E
- .align 2, 0
-_0809DA68: .4byte sub_809EB40
-_0809DA6C:
- ldr r0, _0809DA7C @ =sub_809E3FC
-_0809DA6E:
- movs r1, 0
- bl CreateTask
- ldr r1, _0809DA80 @ =0x02018000
- strb r0, [r1, 0xF]
-_0809DA78:
- pop {r0}
- bx r0
- .align 2, 0
-_0809DA7C: .4byte sub_809E3FC
-_0809DA80: .4byte 0x02018000
- thumb_func_end sub_809DA1C
-
- thumb_func_start sub_809DA84
-sub_809DA84: @ 809DA84
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r1, _0809DAA4 @ =gMain
- ldr r2, _0809DAA8 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0x16
- bls _0809DA98
- b _0809DE00
-_0809DA98:
- lsls r0, 2
- ldr r1, _0809DAAC @ =_0809DAB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DAA4: .4byte gMain
-_0809DAA8: .4byte 0x0000043c
-_0809DAAC: .4byte _0809DAB0
- .align 2, 0
-_0809DAB0:
- .4byte _0809DB0C
- .4byte _0809DB18
- .4byte _0809DB2C
- .4byte _0809DB32
- .4byte _0809DB80
- .4byte _0809DB94
- .4byte _0809DBA0
- .4byte _0809DBBC
- .4byte _0809DBC8
- .4byte _0809DBDC
- .4byte _0809DC2C
- .4byte _0809DC48
- .4byte _0809DC5C
- .4byte _0809DC90
- .4byte _0809DCB0
- .4byte _0809DCC4
- .4byte _0809DCF8
- .4byte _0809DD02
- .4byte _0809DD30
- .4byte _0809DD3C
- .4byte _0809DD68
- .4byte _0809DD98
- .4byte _0809DDE0
-_0809DB0C:
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- b _0809DDE8
-_0809DB18:
- bl remove_some_task
- ldr r1, _0809DB24 @ =gMain
- ldr r2, _0809DB28 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DB24: .4byte gMain
-_0809DB28: .4byte 0x0000043c
-_0809DB2C:
- bl FreeAllSpritePalettes
- b _0809DDE8
-_0809DB32:
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- movs r5, 0
- ldr r1, _0809DB74 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _0809DB78 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_0809DB48:
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _0809DB48
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _0809DB7C @ =0x0000043c
- add r1, r12
- b _0809DDEE
- .align 2, 0
-_0809DB74: .4byte 0x040000d4
-_0809DB78: .4byte 0x85000400
-_0809DB7C: .4byte 0x0000043c
-_0809DB80:
- bl sub_809DE64
- ldr r1, _0809DB8C @ =gMain
- ldr r2, _0809DB90 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DB8C: .4byte gMain
-_0809DB90: .4byte 0x0000043c
-_0809DB94:
- ldr r0, _0809DB9C @ =gWindowConfig_81E6E6C
- bl SetUpWindowConfig
- b _0809DDE8
- .align 2, 0
-_0809DB9C: .4byte gWindowConfig_81E6E6C
-_0809DBA0:
- ldr r0, _0809DBB0 @ =gWindowConfig_81E6E6C
- bl MultistepInitMenuWindowBegin
- ldr r1, _0809DBB4 @ =gMain
- ldr r2, _0809DBB8 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DBB0: .4byte gWindowConfig_81E6E6C
-_0809DBB4: .4byte gMain
-_0809DBB8: .4byte 0x0000043c
-_0809DBBC:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0809DBC6
- b _0809DE38
-_0809DBC6:
- b _0809DDE8
-_0809DBC8:
- bl sub_809DA1C
- ldr r1, _0809DBD4 @ =gMain
- ldr r2, _0809DBD8 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DBD4: .4byte gMain
-_0809DBD8: .4byte 0x0000043c
-_0809DBDC:
- ldr r1, _0809DC08 @ =gSummaryScreenTextTiles
- ldr r2, _0809DC0C @ =0x0600d000
- ldr r0, _0809DC10 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809DC14 @ =0x800000a0
- str r1, [r0, 0x8]
- ldr r1, [r0, 0x8]
- ldr r1, _0809DC18 @ =gSummaryScreenButtonTiles
- ldr r2, _0809DC1C @ =0x0600d140
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0809DC20 @ =0x80000080
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0809DC24 @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0809DC28 @ =0x0000043c
- add r1, r12
- b _0809DDEE
- .align 2, 0
-_0809DC08: .4byte gSummaryScreenTextTiles
-_0809DC0C: .4byte 0x0600d000
-_0809DC10: .4byte 0x040000d4
-_0809DC14: .4byte 0x800000a0
-_0809DC18: .4byte gSummaryScreenButtonTiles
-_0809DC1C: .4byte 0x0600d140
-_0809DC20: .4byte 0x80000080
-_0809DC24: .4byte 0x02018000
-_0809DC28: .4byte 0x0000043c
-_0809DC2C:
- bl sub_809DF00
- lsls r0, 24
- cmp r0, 0
- bne _0809DC38
- b _0809DE38
-_0809DC38:
- ldr r0, _0809DC44 @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- b _0809DDE8
- .align 2, 0
-_0809DC44: .4byte 0x02018000
-_0809DC48:
- bl sub_80A18C4
- ldr r1, _0809DC54 @ =gMain
- ldr r2, _0809DC58 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DC54: .4byte gMain
-_0809DC58: .4byte 0x0000043c
-_0809DC5C:
- ldr r4, _0809DC78 @ =0x02018010
- adds r0, r4, 0
- bl sub_809F678
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- bne _0809DC7C
- movs r0, 0
- bl sub_80A12D0
- b _0809DC82
- .align 2, 0
-_0809DC78: .4byte 0x02018010
-_0809DC7C:
- movs r0, 0xA
- bl sub_80A12D0
-_0809DC82:
- ldr r0, _0809DC8C @ =0x02018010
- bl sub_80A0EA4
- b _0809DDE8
- .align 2, 0
-_0809DC8C: .4byte 0x02018010
-_0809DC90:
- bl sub_80A1950
- ldr r0, _0809DCA4 @ =0x02018010
- bl sub_80A1D84
- ldr r1, _0809DCA8 @ =gMain
- ldr r2, _0809DCAC @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DCA4: .4byte 0x02018010
-_0809DCA8: .4byte gMain
-_0809DCAC: .4byte 0x0000043c
-_0809DCB0:
- ldr r4, _0809DCC0 @ =0x02018010
- adds r0, r4, 0
- bl sub_80A1DE8
- adds r4, 0x64
- movs r0, 0
- strb r0, [r4]
- b _0809DDE8
- .align 2, 0
-_0809DCC0: .4byte 0x02018010
-_0809DCC4:
- ldr r4, _0809DCEC @ =0x02018010
- adds r5, r4, 0
- adds r5, 0x64
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809F6B4
- subs r4, 0x10
- strb r0, [r4, 0xC]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809DCE0
- b _0809DE38
-_0809DCE0:
- movs r0, 0
- strb r0, [r5]
- ldr r1, _0809DCF0 @ =gMain
- ldr r2, _0809DCF4 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DCEC: .4byte 0x02018010
-_0809DCF0: .4byte gMain
-_0809DCF4: .4byte 0x0000043c
-_0809DCF8:
- bl sub_809E044
- bl sub_80A0EE8
- b _0809DDE8
-_0809DD02:
- ldr r1, _0809DD20 @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x1
- bhi _0809DD18
- ldr r0, _0809DD24 @ =gUnknown_083C1580
- ldrb r1, [r1, 0xB]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_0809DD18:
- ldr r1, _0809DD28 @ =gMain
- ldr r2, _0809DD2C @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DD20: .4byte 0x02018000
-_0809DD24: .4byte gUnknown_083C1580
-_0809DD28: .4byte gMain
-_0809DD2C: .4byte 0x0000043c
-_0809DD30:
- ldr r0, _0809DD38 @ =0x02018010
- bl sub_809FAC8
- b _0809DDE8
- .align 2, 0
-_0809DD38: .4byte 0x02018010
-_0809DD3C:
- ldr r2, _0809DD58 @ =gUnknown_083C1598
- ldr r0, _0809DD5C @ =0x02018000
- ldrb r1, [r0, 0xB]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- ldr r1, _0809DD60 @ =gMain
- ldr r2, _0809DD64 @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DD58: .4byte gUnknown_083C1598
-_0809DD5C: .4byte 0x02018000
-_0809DD60: .4byte gMain
-_0809DD64: .4byte 0x0000043c
-_0809DD68:
- ldr r0, _0809DD84 @ =0x02018010
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _0809DD8C
- ldr r1, _0809DD88 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- b _0809DDE8
- .align 2, 0
-_0809DD84: .4byte 0x02018010
-_0809DD88: .4byte gUnknown_030041B0
-_0809DD8C:
- ldr r0, _0809DD94 @ =gUnknown_030041B0
- strh r1, [r0]
- b _0809DDE8
- .align 2, 0
-_0809DD94: .4byte gUnknown_030041B0
-_0809DD98:
- bl sub_809EBC4
- ldr r0, _0809DDB8 @ =0x02018000
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809DDBC
- movs r0, 0
- movs r1, 0
- bl sub_80A1488
- movs r0, 0
- movs r1, 0
- bl sub_80A1654
- b _0809DDCC
- .align 2, 0
-_0809DDB8: .4byte 0x02018000
-_0809DDBC:
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1488
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1654
-_0809DDCC:
- bl sub_80A0DD0
- ldr r1, _0809DDD8 @ =gMain
- ldr r2, _0809DDDC @ =0x0000043c
- adds r1, r2
- b _0809DDEE
- .align 2, 0
-_0809DDD8: .4byte gMain
-_0809DDDC: .4byte 0x0000043c
-_0809DDE0:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809DE38
-_0809DDE8:
- ldr r1, _0809DDF8 @ =gMain
- ldr r0, _0809DDFC @ =0x0000043c
- adds r1, r0
-_0809DDEE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0809DE38
- .align 2, 0
-_0809DDF8: .4byte gMain
-_0809DDFC: .4byte 0x0000043c
-_0809DE00:
- ldr r0, _0809DE2C @ =sub_809D85C
- bl SetVBlankCallback
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r0, _0809DE30 @ =sub_809D844
- bl SetMainCallback2
- ldr r2, _0809DE34 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- movs r0, 0x1
- b _0809DE3A
- .align 2, 0
-_0809DE2C: .4byte sub_809D85C
-_0809DE30: .4byte sub_809D844
-_0809DE34: .4byte gPaletteFade
-_0809DE38:
- movs r0, 0
-_0809DE3A:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809DA84
-
- thumb_func_start sub_809DE44
-sub_809DE44: @ 809DE44
- push {lr}
-_0809DE46:
- bl sub_809DA84
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809DE5E
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809DE46
-_0809DE5E:
- pop {r0}
- bx r0
- thumb_func_end sub_809DE44
-
- thumb_func_start sub_809DE64
-sub_809DE64: @ 809DE64
- ldr r1, _0809DED0 @ =REG_BG0CNT
- ldr r2, _0809DED4 @ =0x00001e08
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DED8 @ =0x00004801
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DEDC @ =0x00004a02
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0809DEE0 @ =0x00005c03
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0809DEE4 @ =gUnknown_030042C0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0809DEE8 @ =gUnknown_030041B4
- strh r0, [r1]
- ldr r1, _0809DEEC @ =gUnknown_03004288
- strh r0, [r1]
- ldr r1, _0809DEF0 @ =gUnknown_03004280
- strh r0, [r1]
- ldr r1, _0809DEF4 @ =gUnknown_030041B0
- strh r0, [r1]
- ldr r1, _0809DEF8 @ =gUnknown_030041B8
- strh r0, [r1]
- ldr r1, _0809DEFC @ =REG_BG0HOFS
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x32
- strh r0, [r1]
- subs r1, 0x50
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0809DED0: .4byte REG_BG0CNT
-_0809DED4: .4byte 0x00001e08
-_0809DED8: .4byte 0x00004801
-_0809DEDC: .4byte 0x00004a02
-_0809DEE0: .4byte 0x00005c03
-_0809DEE4: .4byte gUnknown_030042C0
-_0809DEE8: .4byte gUnknown_030041B4
-_0809DEEC: .4byte gUnknown_03004288
-_0809DEF0: .4byte gUnknown_03004280
-_0809DEF4: .4byte gUnknown_030041B0
-_0809DEF8: .4byte gUnknown_030041B8
-_0809DEFC: .4byte REG_BG0HOFS
- thumb_func_end sub_809DE64
-
- thumb_func_start sub_809DF00
-sub_809DF00: @ 809DF00
- push {lr}
- ldr r0, _0809DF18 @ =0x02018000
- adds r0, 0x74
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _0809DF0E
- b _0809E030
-_0809DF0E:
- lsls r0, 2
- ldr r1, _0809DF1C @ =_0809DF20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809DF18: .4byte 0x02018000
-_0809DF1C: .4byte _0809DF20
- .align 2, 0
-_0809DF20:
- .4byte _0809DF54
- .4byte _0809DF64
- .4byte _0809DF74
- .4byte _0809DF88
- .4byte _0809DF9C
- .4byte _0809DFAC
- .4byte _0809DFC4
- .4byte _0809DFD4
- .4byte _0809DFE0
- .4byte _0809DFEC
- .4byte _0809DFF8
- .4byte _0809E004
- .4byte _0809E010
-_0809DF54:
- ldr r0, _0809DF60 @ =gStatusScreen_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF60: .4byte gStatusScreen_Gfx
-_0809DF64:
- ldr r0, _0809DF6C @ =gUnknown_08E73508
- ldr r1, _0809DF70 @ =0x0600e000
- b _0809DFB0
- .align 2, 0
-_0809DF6C: .4byte gUnknown_08E73508
-_0809DF70: .4byte 0x0600e000
-_0809DF74:
- ldr r0, _0809DF80 @ =gUnknown_08E74E88
- ldr r1, _0809DF84 @ =0x0600e800
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF80: .4byte gUnknown_08E74E88
-_0809DF84: .4byte 0x0600e800
-_0809DF88:
- ldr r0, _0809DF94 @ =gStatusScreen_Tilemap
- ldr r1, _0809DF98 @ =0x06004800
- bl LZDecompressVram
- b _0809E030
- .align 2, 0
-_0809DF94: .4byte gStatusScreen_Tilemap
-_0809DF98: .4byte 0x06004800
-_0809DF9C:
- ldr r0, _0809DFA4 @ =gUnknown_08E73E88
- ldr r1, _0809DFA8 @ =0x06005800
- b _0809DFB0
- .align 2, 0
-_0809DFA4: .4byte gUnknown_08E73E88
-_0809DFA8: .4byte 0x06005800
-_0809DFAC:
- ldr r0, _0809DFBC @ =gUnknown_08E74688
- ldr r1, _0809DFC0 @ =0x06006800
-_0809DFB0:
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- b _0809E030
- .align 2, 0
-_0809DFBC: .4byte gUnknown_08E74688
-_0809DFC0: .4byte 0x06006800
-_0809DFC4:
- ldr r0, _0809DFD0 @ =gStatusScreen_Pal
- movs r1, 0
- movs r2, 0xA0
- bl LoadCompressedPalette
- b _0809E030
- .align 2, 0
-_0809DFD0: .4byte gStatusScreen_Pal
-_0809DFD4:
- ldr r0, _0809DFDC @ =gUnknown_083C11B8
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFDC: .4byte gUnknown_083C11B8
-_0809DFE0:
- ldr r0, _0809DFE8 @ =gUnknown_083C1270
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFE8: .4byte gUnknown_083C1270
-_0809DFEC:
- ldr r0, _0809DFF4 @ =gUnknown_083C12F4
- bl LoadCompressedObjectPic
- b _0809E030
- .align 2, 0
-_0809DFF4: .4byte gUnknown_083C12F4
-_0809DFF8:
- ldr r0, _0809E000 @ =gUnknown_083C12FC
- bl LoadCompressedObjectPalette
- b _0809E030
- .align 2, 0
-_0809E000: .4byte gUnknown_083C12FC
-_0809E004:
- ldr r0, _0809E00C @ =gUnknown_083C1278
- bl LoadCompressedObjectPalette
- b _0809E030
- .align 2, 0
-_0809E00C: .4byte gUnknown_083C1278
-_0809E010:
- ldr r0, _0809E028 @ =gMoveTypes_Pal
- movs r1, 0xE8
- lsls r1, 1
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r0, _0809E02C @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _0809E03C
- .align 2, 0
-_0809E028: .4byte gMoveTypes_Pal
-_0809E02C: .4byte 0x02018000
-_0809E030:
- ldr r1, _0809E040 @ =0x02018000
- adds r1, 0x74
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_0809E03C:
- pop {r1}
- bx r1
- .align 2, 0
-_0809E040: .4byte 0x02018000
- thumb_func_end sub_809DF00
-
- thumb_func_start sub_809E044
-sub_809E044: @ 809E044
- push {r4,r5,lr}
- ldr r4, _0809E0F4 @ =gUnknownPalette_81E6692+0x1C
- adds r0, r4, 0
- movs r1, 0x81
- movs r2, 0x2
- bl LoadPalette
- adds r5, r4, 0x2
- adds r0, r5, 0
- movs r1, 0x88
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0x8F
- movs r2, 0x2
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0x89
- movs r2, 0x2
- bl LoadPalette
- subs r5, 0x12
- adds r0, r5, 0
- movs r1, 0xD1
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x8
- movs r1, 0xD3
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD5
- movs r2, 0x4
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xD7
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x14
- movs r1, 0xD9
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0xC
- movs r1, 0xDB
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- subs r0, 0x18
- movs r1, 0xDD
- movs r2, 0x2
- bl LoadPalette
- subs r5, 0x6
- adds r0, r5, 0
- movs r1, 0xDE
- movs r2, 0x2
- bl LoadPalette
- subs r4, 0x1A
- adds r0, r4, 0
- movs r1, 0xDF
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _0809E0F8 @ =gFontDefaultPalette
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xF9
- movs r2, 0x2
- bl LoadPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C
-_0809E0F8: .4byte gFontDefaultPalette
- thumb_func_end sub_809E044
-
- thumb_func_start sub_809E0FC
-sub_809E0FC: @ 809E0FC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0809E134 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E138 @ =sub_809E13C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E134: .4byte gTasks
-_0809E138: .4byte sub_809E13C
- thumb_func_end sub_809E0FC
-
- thumb_func_start sub_809E13C
-sub_809E13C: @ 809E13C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _0809E182
- ldr r0, _0809E188 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0809E182
- ldr r1, _0809E18C @ =gUnknown_020384F0
- ldr r4, _0809E190 @ =0x02018000
- ldrb r0, [r4, 0x9]
- strb r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl StopCryAndClearCrySongs
- ldr r0, _0809E194 @ =gMPlay_BGM
- ldr r1, _0809E198 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r0, [r4, 0x4]
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0809E182:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E188: .4byte gPaletteFade
-_0809E18C: .4byte gUnknown_020384F0
-_0809E190: .4byte 0x02018000
-_0809E194: .4byte gMPlay_BGM
-_0809E198: .4byte 0x0000ffff
- thumb_func_end sub_809E13C
-
- thumb_func_start sub_809E19C
-sub_809E19C: @ 809E19C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809E1C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0809E25A
- ldr r5, _0809E1CC @ =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E1D0
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_809F1B8
- b _0809E25A
- .align 2, 0
-_0809E1C8: .4byte gPaletteFade
-_0809E1CC: .4byte gMain
-_0809E1D0:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E1E2
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809F1B8
- b _0809E25A
-_0809E1E2:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809E1F6
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E202
-_0809E1F6:
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_809F134
- b _0809E25A
-_0809E202:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809E218
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809E222
-_0809E218:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809F134
- b _0809E25A
-_0809E222:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E24C
- ldr r5, _0809E248 @ =0x02018000
- ldrb r0, [r5, 0xB]
- cmp r0, 0x1
- bls _0809E23A
- adds r0, r4, 0
- bl sub_809EA50
-_0809E23A:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809E25A
- adds r0, r4, 0
- bl sub_809E0FC
- b _0809E25A
- .align 2, 0
-_0809E248: .4byte 0x02018000
-_0809E24C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E25A
- adds r0, r4, 0
- bl sub_809E0FC
-_0809E25A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809E19C
-
- thumb_func_start sub_809E260
-sub_809E260: @ 809E260
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809E29C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E276
- b _0809E3EE
-_0809E276:
- ldr r5, _0809E2A0 @ =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E2AC
- ldr r1, _0809E2A4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- subs r1, 0x5
- ldr r2, _0809E2A8 @ =0x02018079
- adds r0, r4, 0
- bl sub_809E8F0
- b _0809E3EE
- .align 2, 0
-_0809E29C: .4byte gPaletteFade
-_0809E2A0: .4byte gMain
-_0809E2A4: .4byte gTasks
-_0809E2A8: .4byte 0x02018079
-_0809E2AC:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E2D8
- ldr r1, _0809E2D0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- ldr r2, _0809E2D4 @ =0x02018079
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E3EE
- .align 2, 0
-_0809E2D0: .4byte gTasks
-_0809E2D4: .4byte 0x02018079
-_0809E2D8:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809E2EC
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809E324
-_0809E2EC:
- ldr r1, _0809E320 @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x3
- bne _0809E314
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809E308
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809E314
-_0809E308:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809E314:
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_809F134
- b _0809E3EE
- .align 2, 0
-_0809E320: .4byte 0x02018000
-_0809E324:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809E33A
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809E37C
-_0809E33A:
- ldr r1, _0809E378 @ =0x02018000
- adds r2, r1, 0
- adds r2, 0x76
- ldrb r0, [r1, 0xB]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809E3EE
- cmp r0, 0x2
- bne _0809E36C
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809E360
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809E36C
-_0809E360:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809E36C:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_809F134
- b _0809E3EE
- .align 2, 0
-_0809E378: .4byte 0x02018000
-_0809E37C:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E3D4
- adds r0, r4, 0
- bl sub_809F7D0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809E3A0
- ldr r0, _0809E3BC @ =0x02018000
- adds r5, r0, 0
- adds r5, 0x79
- ldrb r0, [r5]
- cmp r0, 0x4
- bne _0809E3C4
-_0809E3A0:
- ldr r0, _0809E3BC @ =0x02018000
- adds r1, r0, 0
- adds r1, 0x79
- ldrb r1, [r1]
- adds r0, 0x7A
- strb r1, [r0]
- ldr r1, _0809E3C0 @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_809E0FC
- b _0809E3EE
- .align 2, 0
-_0809E3BC: .4byte 0x02018000
-_0809E3C0: .4byte gSpecialVar_0x8005
-_0809E3C4:
- movs r0, 0x20
- bl PlaySE
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_809F9D0
- b _0809E3EE
-_0809E3D4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E3EE
- ldr r0, _0809E3F4 @ =0x02018000
- adds r0, 0x7A
- movs r1, 0x4
- strb r1, [r0]
- ldr r0, _0809E3F8 @ =gSpecialVar_0x8005
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_809E0FC
-_0809E3EE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E3F4: .4byte 0x02018000
-_0809E3F8: .4byte gSpecialVar_0x8005
- thumb_func_end sub_809E260
-
- thumb_func_start sub_809E3FC
-sub_809E3FC: @ 809E3FC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- ldr r0, _0809E438 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0809E502
- ldr r0, _0809E43C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E448
- ldr r1, _0809E440 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- subs r1, 0x5
- ldr r2, _0809E444 @ =0x02018079
- adds r0, r5, 0
- bl sub_809E8F0
- b _0809E502
- .align 2, 0
-_0809E438: .4byte gPaletteFade
-_0809E43C: .4byte gMain
-_0809E440: .4byte gTasks
-_0809E444: .4byte 0x02018079
-_0809E448:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0809E474
- ldr r1, _0809E46C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x8]
- ldr r2, _0809E470 @ =0x02018079
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E502
- .align 2, 0
-_0809E46C: .4byte gTasks
-_0809E470: .4byte 0x02018079
-_0809E474:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E4EE
- ldr r4, _0809E4A8 @ =0x02018000
- adds r6, r4, 0
- adds r6, 0x79
- ldrb r0, [r6]
- cmp r0, 0x4
- beq _0809E4E0
- adds r0, r4, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809E4E0
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_809E508
- lsls r0, 24
- cmp r0, 0
- bne _0809E4AC
- movs r0, 0x20
- bl PlaySE
- b _0809E502
- .align 2, 0
-_0809E4A8: .4byte 0x02018000
-_0809E4AC:
- movs r0, 0x5
- bl PlaySE
- ldrb r1, [r6]
- adds r0, r4, 0
- adds r0, 0x7A
- strb r1, [r0]
- movs r0, 0x1
- bl sub_80A1B40
- movs r0, 0x13
- bl sub_80A1A30
- ldr r1, _0809E4D8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E4DC @ =sub_809E534
- str r1, [r0]
- b _0809E502
- .align 2, 0
-_0809E4D8: .4byte gTasks
-_0809E4DC: .4byte sub_809E534
-_0809E4E0:
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_809EAC8
- b _0809E502
-_0809E4EE:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E502
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_809EAC8
-_0809E502:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809E3FC
-
- thumb_func_start sub_809E508
-sub_809E508: @ 809E508
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0x1
-_0809E50E:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809F760
- lsls r0, 16
- cmp r0, 0
- beq _0809E520
- movs r0, 0x1
- b _0809E52C
-_0809E520:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0809E50E
- movs r0, 0
-_0809E52C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809E508
-
- thumb_func_start sub_809E534
-sub_809E534: @ 809E534
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r3, 0
- ldr r0, _0809E564 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809E570
- ldr r1, _0809E568 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x8]
- subs r1, 0x4
- ldr r2, _0809E56C @ =0x0201807a
- adds r0, r3, 0
- bl sub_809E8F0
- b _0809E5C0
- .align 2, 0
-_0809E564: .4byte gMain
-_0809E568: .4byte gTasks
-_0809E56C: .4byte 0x0201807a
-_0809E570:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809E59C
- ldr r1, _0809E594 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x8]
- ldr r2, _0809E598 @ =0x0201807a
- adds r0, r3, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809E5C0
- .align 2, 0
-_0809E594: .4byte gTasks
-_0809E598: .4byte 0x0201807a
-_0809E59C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809E5AE
- adds r0, r3, 0
- movs r1, 0x1
- bl sub_809E83C
- b _0809E5C0
-_0809E5AE:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809E5C0
- movs r1, 0x1
- negs r1, r1
- adds r0, r2, 0
- bl sub_809E83C
-_0809E5C0:
- pop {r0}
- bx r0
- thumb_func_end sub_809E534
-
- thumb_func_start sub_809E5C4
-sub_809E5C4: @ 809E5C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r1, _0809E6D0 @ =0x02018000
- ldr r5, [r1]
- ldrb r2, [r1, 0x9]
- movs r0, 0x64
- muls r0, r2
- adds r5, r0
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- mov r8, r0
- adds r1, 0x7A
- ldrb r6, [r1]
- adds r0, 0xD
- str r0, [sp, 0x8]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- bl GetMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r2, r6, 0
- adds r2, 0xD
- str r2, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- mov r3, r8
- adds r3, 0x11
- str r3, [sp, 0x10]
- adds r0, r5, 0
- adds r1, r3, 0
- bl GetMonData
- mov r7, sp
- adds r7, 0x5
- str r7, [sp, 0x18]
- strb r0, [r7]
- adds r0, r6, 0
- adds r0, 0x11
- str r0, [sp, 0x1C]
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- bl GetMonData
- add r1, sp, 0x4
- mov r10, r1
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x15
- bl GetMonData
- mov r4, sp
- adds r4, 0x6
- strb r0, [r4]
- ldr r1, _0809E6D4 @ =gUnknown_08208238
- mov r2, r8
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r4]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- mov r7, r8
- lsls r7, 1
- mov r8, r7
- asrs r2, r7
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r6, 1
- asrs r1, r6
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r4]
- ldrb r0, [r4]
- bics r0, r3
- strb r0, [r4]
- lsls r2, r6
- mov r0, r8
- lsls r1, r0
- adds r2, r1
- ldrb r0, [r4]
- orrs r0, r2
- strb r0, [r4]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x15
- adds r2, r4, 0
- bl SetMonData
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E6D0: .4byte 0x02018000
-_0809E6D4: .4byte gUnknown_08208238
- thumb_func_end sub_809E5C4
-
- thumb_func_start sub_809E6D8
-sub_809E6D8: @ 809E6D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r2, _0809E7E8 @ =0x02018000
- ldr r5, [r2]
- ldrb r1, [r2, 0x9]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r5, r0
- adds r0, r2, 0
- adds r0, 0x79
- ldrb r0, [r0]
- mov r8, r0
- adds r2, 0x7A
- ldrb r6, [r2]
- adds r0, 0xD
- str r0, [sp, 0x8]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- bl GetBoxMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r2, r6, 0
- adds r2, 0xD
- str r2, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r2, 0
- bl GetBoxMonData
- mov r1, sp
- strh r0, [r1]
- mov r3, r8
- adds r3, 0x11
- str r3, [sp, 0x10]
- adds r0, r5, 0
- adds r1, r3, 0
- bl GetBoxMonData
- mov r7, sp
- adds r7, 0x5
- str r7, [sp, 0x18]
- strb r0, [r7]
- adds r0, r6, 0
- adds r0, 0x11
- str r0, [sp, 0x1C]
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- bl GetBoxMonData
- add r1, sp, 0x4
- mov r10, r1
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x15
- bl GetBoxMonData
- mov r4, sp
- adds r4, 0x6
- strb r0, [r4]
- ldr r1, _0809E7EC @ =gUnknown_08208238
- mov r2, r8
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r4]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- mov r7, r8
- lsls r7, 1
- mov r8, r7
- asrs r2, r7
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r6, 1
- asrs r1, r6
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r4]
- ldrb r0, [r4]
- bics r0, r3
- strb r0, [r4]
- lsls r2, r6
- mov r0, r8
- lsls r1, r0
- adds r2, r1
- ldrb r0, [r4]
- orrs r0, r2
- strb r0, [r4]
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetBoxMonData
- adds r0, r5, 0
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetBoxMonData
- adds r0, r5, 0
- movs r1, 0x15
- adds r2, r4, 0
- bl SetBoxMonData
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E7E8: .4byte 0x02018000
-_0809E7EC: .4byte gUnknown_08208238
- thumb_func_end sub_809E6D8
-
- thumb_func_start sub_809E7F0
-sub_809E7F0: @ 809E7F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_809F5F8
- lsls r0, 24
- cmp r0, 0
- beq _0809E828
- ldr r1, _0809E830 @ =0x02018000
- adds r2, r1, 0
- adds r2, 0x74
- movs r0, 0
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0x10
- adds r1, 0x79
- bl sub_80A0428
- ldr r1, _0809E834 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E838 @ =sub_809E3FC
- str r1, [r0]
- adds r0, r4, 0
- bl sub_80A2078
-_0809E828:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E830: .4byte 0x02018000
-_0809E834: .4byte gTasks
-_0809E838: .4byte sub_809E3FC
- thumb_func_end sub_809E7F0
-
- thumb_func_start sub_809E83C
-sub_809E83C: @ 809E83C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x13
- bl sub_80A1B1C
- movs r0, 0
- bl sub_80A1B40
- cmp r4, 0x1
- bne _0809E8C0
- ldr r1, _0809E87C @ =0x02018000
- adds r0, r1, 0
- adds r0, 0x79
- adds r2, r1, 0
- adds r2, 0x7A
- ldrb r0, [r0]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809E8CA
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- bne _0809E880
- bl sub_809E5C4
- b _0809E884
- .align 2, 0
-_0809E87C: .4byte 0x02018000
-_0809E880:
- bl sub_809E6D8
-_0809E884:
- ldr r4, _0809E8B4 @ =0x02018000
- adds r0, r4, 0
- adds r0, 0x7A
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x79
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_809F678
- adds r1, r4, 0
- adds r1, 0x74
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _0809E8B8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809E8BC @ =sub_809E7F0
- str r1, [r0]
- b _0809E8DE
- .align 2, 0
-_0809E8B4: .4byte 0x02018000
-_0809E8B8: .4byte gTasks
-_0809E8BC: .4byte sub_809E7F0
-_0809E8C0:
- ldr r0, _0809E8E4 @ =0x02018010
- adds r1, r0, 0
- adds r1, 0x69
- bl sub_80A0428
-_0809E8CA:
- ldr r0, _0809E8E8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809E8EC @ =sub_809E3FC
- str r0, [r1]
- adds r0, r5, 0
- bl sub_80A2078
-_0809E8DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809E8E4: .4byte 0x02018010
-_0809E8E8: .4byte gTasks
-_0809E8EC: .4byte sub_809E3FC
- thumb_func_end sub_809E83C
-
- thumb_func_start sub_809E8F0
-sub_809E8F0: @ 809E8F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r1, 0
- mov r9, r2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x5
- bl PlaySE
- mov r1, r9
- ldrb r6, [r1]
- ldr r1, _0809E944 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r2, 0
- lsls r4, 24
- asrs r4, 24
- mov r10, r4
- lsls r7, r0, 24
-_0809E930:
- lsls r0, r6, 24
- asrs r0, 24
- add r0, r10
- lsls r0, 24
- lsrs r6, r0, 24
- asrs r1, r0, 24
- cmp r0, r7
- ble _0809E948
- movs r6, 0
- b _0809E94E
- .align 2, 0
-_0809E944: .4byte gTasks
-_0809E948:
- cmp r1, 0
- bge _0809E94E
- lsrs r6, r7, 24
-_0809E94E:
- lsls r4, r6, 24
- lsrs r1, r4, 24
- ldr r0, _0809EA10 @ =0x02018010
- str r2, [sp, 0x4]
- bl sub_809F760
- lsls r0, 16
- adds r5, r4, 0
- ldr r2, [sp, 0x4]
- cmp r0, 0
- bne _0809E97A
- asrs r0, r5, 24
- cmp r0, 0x4
- beq _0809E97A
- lsls r0, r2, 24
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _0809E930
-_0809E97A:
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x4
- bne _0809E996
- asrs r0, r5, 24
- cmp r0, 0x4
- beq _0809E996
- ldr r0, _0809EA14 @ =0x02018000
- adds r0, 0x7C
- ldrh r0, [r0]
- mov r2, r8
- lsls r7, r2, 2
- cmp r0, 0
- beq _0809E9AC
-_0809E996:
- ldr r2, _0809EA18 @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0x1
- bne _0809E9D0
-_0809E9AC:
- lsrs r4, r5, 24
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_80A1488
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_80A1654
- ldr r1, _0809EA18 @ =gTasks
- mov r3, r8
- adds r0, r7, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x22]
- movs r0, 0
- str r0, [sp]
-_0809E9D0:
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x4
- beq _0809E9FE
- asrs r0, r5, 24
- cmp r0, 0x4
- bne _0809E9FE
- ldr r0, _0809EA14 @ =0x02018000
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809E9FE
- movs r4, 0x2
- negs r4, r4
- lsrs r5, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A1488
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A1654
-_0809E9FE:
- mov r2, r9
- strb r6, [r2]
- ldr r0, _0809EA1C @ =0x02018079
- cmp r9, r0
- bne _0809EA20
- movs r0, 0
- bl sub_80A1C30
- b _0809EA26
- .align 2, 0
-_0809EA10: .4byte 0x02018010
-_0809EA14: .4byte 0x02018000
-_0809EA18: .4byte gTasks
-_0809EA1C: .4byte 0x02018079
-_0809EA20:
- movs r0, 0x1
- bl sub_80A1C30
-_0809EA26:
- ldr r3, [sp]
- cmp r3, 0
- beq _0809EA34
- ldr r0, _0809EA4C @ =0x02018010
- mov r1, r9
- bl sub_80A0428
-_0809EA34:
- mov r0, r8
- bl sub_80A2078
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EA4C: .4byte 0x02018010
- thumb_func_end sub_809E8F0
-
- thumb_func_start sub_809EA50
-sub_809EA50: @ 809EA50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0809EABC @ =0x02018000
- adds r1, r4, 0
- adds r1, 0x79
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0
- bl sub_80A1488
- movs r0, 0x2
- movs r1, 0
- bl sub_80A1654
- adds r0, r4, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EA8C
- adds r1, r4, 0
- adds r1, 0x7F
- movs r0, 0x5
- strb r0, [r1]
- bl sub_80A0DD0
-_0809EA8C:
- movs r0, 0
- bl sub_80A16CC
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_80A029C
- movs r0, 0x9
- bl sub_80A1A30
- ldr r1, _0809EAC0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EAC4 @ =sub_809E3FC
- str r1, [r0]
- adds r0, r5, 0
- bl sub_80A2078
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EABC: .4byte 0x02018000
-_0809EAC0: .4byte gTasks
-_0809EAC4: .4byte sub_809E3FC
- thumb_func_end sub_809EA50
-
- thumb_func_start sub_809EAC8
-sub_809EAC8: @ 809EAC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0809EB34 @ =0x02018000
- adds r0, r6, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _0809EAEE
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A1488
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A1654
-_0809EAEE:
- movs r0, 0x9
- bl sub_80A1B1C
- movs r0, 0x1
- bl sub_80A16CC
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r1, r6, 0
- adds r1, 0x7F
- movs r0, 0x6
- strb r0, [r1]
- bl sub_80A0DD0
- ldr r1, _0809EB38 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EB3C @ =sub_809E19C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EB34: .4byte 0x02018000
-_0809EB38: .4byte gTasks
-_0809EB3C: .4byte sub_809E19C
- thumb_func_end sub_809EAC8
-
- thumb_func_start sub_809EB40
-sub_809EB40: @ 809EB40
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0809EB6C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0809EB74
- cmp r0, 0x5
- bne _0809EBA4
- movs r0, 0x9
- bl sub_80A1A30
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _0809EB70 @ =sub_809E260
- str r0, [r4]
- b _0809EBB4
- .align 2, 0
-_0809EB6C: .4byte gTasks
-_0809EB70: .4byte sub_809E260
-_0809EB74:
- ldr r4, _0809EBBC @ =0x02018000
- adds r6, r4, 0
- adds r6, 0x79
- strb r0, [r6]
- adds r0, r4, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809EB96
- movs r0, 0xA
- movs r1, 0
- bl sub_80A1488
- ldrb r1, [r6]
- movs r0, 0xA
- bl sub_80A1654
-_0809EB96:
- movs r0, 0
- bl sub_80A16CC
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_80A029C
-_0809EBA4:
- ldr r0, _0809EBC0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0809EBB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EBBC: .4byte 0x02018000
-_0809EBC0: .4byte gTasks
- thumb_func_end sub_809EB40
-
- thumb_func_start sub_809EBC4
-sub_809EBC4: @ 809EBC4
- push {r4,lr}
- ldr r4, _0809EC28 @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- beq _0809EC22
- bl sub_80A0EE8
- ldr r0, _0809EC2C @ =gUnknown_030042C0
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- strh r1, [r0]
- ldrb r0, [r4, 0xB]
- cmp r0, 0x1
- bne _0809EBF4
- ldr r2, _0809EC30 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EC34 @ =0x0000e0ff
- ands r0, r1
- movs r3, 0x80
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EBF4:
- ldrb r3, [r4, 0xB]
- cmp r3, 0x2
- bne _0809EC0C
- ldr r2, _0809EC30 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EC34 @ =0x0000e0ff
- ands r0, r1
- movs r4, 0xA0
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EC0C:
- cmp r3, 0x3
- bne _0809EC22
- ldr r2, _0809EC30 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EC34 @ =0x0000e0ff
- ands r0, r1
- movs r3, 0xC0
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EC22:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EC28: .4byte 0x02018000
-_0809EC2C: .4byte gUnknown_030042C0
-_0809EC30: .4byte REG_BG1CNT
-_0809EC34: .4byte 0x0000e0ff
- thumb_func_end sub_809EBC4
-
- thumb_func_start sub_809EC38
-sub_809EC38: @ 809EC38
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0809EC5C @ =gTasks + 0x8
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x5
- bls _0809EC52
- b _0809EE64
-_0809EC52:
- lsls r0, 2
- ldr r1, _0809EC60 @ =_0809EC64
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809EC5C: .4byte gTasks + 0x8
-_0809EC60: .4byte _0809EC64
- .align 2, 0
-_0809EC64:
- .4byte _0809EC7C
- .4byte _0809ED14
- .4byte _0809ED98
- .4byte _0809EE12
- .4byte _0809EE1C
- .4byte _0809EE4C
-_0809EC7C:
- ldr r1, _0809ECB8 @ =0x02018000
- adds r0, r1, 0
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809ECC8
- ldrb r3, [r1, 0xB]
- cmp r3, 0
- beq _0809EC98
- ldr r1, _0809ECBC @ =gUnknown_03004288
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
-_0809EC98:
- cmp r3, 0x1
- bne _0809ECAE
- ldr r2, _0809ECC0 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809ECC4 @ =0x0000e0ff
- ands r0, r1
- movs r4, 0x80
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809ECAE:
- cmp r3, 0x2
- beq _0809ECB4
- b _0809EE3A
-_0809ECB4:
- ldr r2, _0809ECC0 @ =REG_BG2CNT
- b _0809ECF6
- .align 2, 0
-_0809ECB8: .4byte 0x02018000
-_0809ECBC: .4byte gUnknown_03004288
-_0809ECC0: .4byte REG_BG2CNT
-_0809ECC4: .4byte 0x0000e0ff
-_0809ECC8:
- ldrb r3, [r1, 0xB]
- cmp r3, 0
- beq _0809ECD8
- ldr r1, _0809ED08 @ =gUnknown_030042C0
- movs r4, 0x80
- lsls r4, 1
- adds r0, r4, 0
- strh r0, [r1]
-_0809ECD8:
- cmp r3, 0x1
- bne _0809ECEE
- ldr r2, _0809ED0C @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809ED10 @ =0x0000e0ff
- ands r0, r1
- movs r4, 0x80
- lsls r4, 4
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809ECEE:
- cmp r3, 0x2
- beq _0809ECF4
- b _0809EE3A
-_0809ECF4:
- ldr r2, _0809ED0C @ =REG_BG1CNT
-_0809ECF6:
- ldrh r1, [r2]
- ldr r0, _0809ED10 @ =0x0000e0ff
- ands r0, r1
- movs r3, 0xA0
- lsls r3, 4
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED08: .4byte gUnknown_030042C0
-_0809ED0C: .4byte REG_BG1CNT
-_0809ED10: .4byte 0x0000e0ff
-_0809ED14:
- ldr r0, _0809ED48 @ =0x02018000
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809ED5C
- ldr r1, _0809ED4C @ =gUnknown_030042C0
- ldrh r0, [r1]
- subs r0, 0x20
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809ED2E
- b _0809EE64
-_0809ED2E:
- ldr r3, _0809ED50 @ =REG_BG1CNT
- ldrh r2, [r3]
- ldr r1, _0809ED54 @ =0x0000fffc
- adds r0, r1, 0
- ands r0, r2
- adds r0, 0x2
- strh r0, [r3]
- ldr r2, _0809ED58 @ =REG_BG2CNT
- ldrh r0, [r2]
- ands r1, r0
- adds r1, 0x1
- strh r1, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED48: .4byte 0x02018000
-_0809ED4C: .4byte gUnknown_030042C0
-_0809ED50: .4byte REG_BG1CNT
-_0809ED54: .4byte 0x0000fffc
-_0809ED58: .4byte REG_BG2CNT
-_0809ED5C:
- ldr r1, _0809ED88 @ =gUnknown_03004288
- ldrh r0, [r1]
- subs r0, 0x20
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809ED6C
- b _0809EE64
-_0809ED6C:
- ldr r3, _0809ED8C @ =REG_BG1CNT
- ldrh r2, [r3]
- ldr r1, _0809ED90 @ =0x0000fffc
- adds r0, r1, 0
- ands r0, r2
- adds r0, 0x1
- strh r0, [r3]
- ldr r2, _0809ED94 @ =REG_BG2CNT
- ldrh r0, [r2]
- ands r1, r0
- adds r1, 0x2
- strh r1, [r2]
- b _0809EE3A
- .align 2, 0
-_0809ED88: .4byte gUnknown_03004288
-_0809ED8C: .4byte REG_BG1CNT
-_0809ED90: .4byte 0x0000fffc
-_0809ED94: .4byte REG_BG2CNT
-_0809ED98:
- ldr r1, _0809EDD4 @ =0x02018000
- ldrb r3, [r1, 0xB]
- adds r0, r3, 0x1
- adds r2, r1, 0
- adds r2, 0x7E
- strb r0, [r2]
- ldrb r2, [r1, 0x8]
- subs r0, r2, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _0809EDD8
- adds r1, 0x7F
- movs r0, 0
- strb r0, [r1]
- adds r4, r5, 0
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A029C
- adds r5, 0x79
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A0428
- ldrb r0, [r5]
- bl sub_80A00F4
- b _0809EE3A
- .align 2, 0
-_0809EDD4: .4byte 0x02018000
-_0809EDD8:
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0809EDFA
- adds r0, r5, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809EDF2
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0809EDFA
-_0809EDF2:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x6
- b _0809EE0E
-_0809EDFA:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809EE08
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x7
- b _0809EE0E
-_0809EE08:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0
-_0809EE0E:
- strb r0, [r1]
- b _0809EE3A
-_0809EE12:
- bl sub_80A0EE8
- bl sub_80A0DD0
- b _0809EE3A
-_0809EE1C:
- ldr r0, _0809EE44 @ =gUnknown_083C1598
- ldr r4, _0809EE48 @ =0x02018000
- ldrb r1, [r4, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- adds r4, 0x80
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
-_0809EE3A:
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _0809EE64
- .align 2, 0
-_0809EE44: .4byte gUnknown_083C1598
-_0809EE48: .4byte 0x02018000
-_0809EE4C:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809EE64
- ldr r1, _0809EE6C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809EE70 @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_0809EE64:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809EE6C: .4byte gTasks
-_0809EE70: .4byte gUnknown_03005CF0
- thumb_func_end sub_809EC38
-
- thumb_func_start sub_809EE74
-sub_809EE74: @ 809EE74
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0809EE98 @ =gTasks + 0x8
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x6
- bls _0809EE8E
- b _0809F0C0
-_0809EE8E:
- lsls r0, 2
- ldr r1, _0809EE9C @ =_0809EEA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809EE98: .4byte gTasks + 0x8
-_0809EE9C: .4byte _0809EEA0
- .align 2, 0
-_0809EEA0:
- .4byte _0809EEBC
- .4byte _0809EEE0
- .4byte _0809EFB4
- .4byte _0809EFF4
- .4byte _0809F06E
- .4byte _0809F078
- .4byte _0809F0A8
-_0809EEBC:
- ldr r0, _0809EECC @ =0x02018000
- adds r0, 0x80
- ldrb r1, [r0]
- cmp r1, 0
- bne _0809EED4
- ldr r0, _0809EED0 @ =gUnknown_03004288
- strh r1, [r0]
- b _0809F096
- .align 2, 0
-_0809EECC: .4byte 0x02018000
-_0809EED0: .4byte gUnknown_03004288
-_0809EED4:
- ldr r1, _0809EEDC @ =gUnknown_030042C0
- movs r0, 0
- strh r0, [r1]
- b _0809F096
- .align 2, 0
-_0809EEDC: .4byte gUnknown_030042C0
-_0809EEE0:
- ldr r1, _0809EF30 @ =0x02018000
- adds r0, r1, 0
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EF4C
- ldrb r3, [r1, 0xB]
- cmp r3, 0x1
- bne _0809EF02
- ldr r2, _0809EF34 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809EF38 @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EF3C @ =0x00000801
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF02:
- cmp r3, 0x2
- bne _0809EF16
- ldr r2, _0809EF34 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809EF38 @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EF40 @ =0x00000a01
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF16:
- cmp r3, 0x3
- bne _0809EF2A
- ldr r2, _0809EF34 @ =REG_BG2CNT
- ldrh r1, [r2]
- ldr r0, _0809EF38 @ =0x0000e0fc
- ands r0, r1
- ldr r3, _0809EF44 @ =0x00000c01
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF2A:
- ldr r2, _0809EF48 @ =REG_BG1CNT
- b _0809EF8C
- .align 2, 0
-_0809EF30: .4byte 0x02018000
-_0809EF34: .4byte REG_BG2CNT
-_0809EF38: .4byte 0x0000e0fc
-_0809EF3C: .4byte 0x00000801
-_0809EF40: .4byte 0x00000a01
-_0809EF44: .4byte 0x00000c01
-_0809EF48: .4byte REG_BG1CNT
-_0809EF4C:
- ldrb r3, [r1, 0xB]
- cmp r3, 0x1
- bne _0809EF62
- ldr r2, _0809EF98 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EF9C @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EFA0 @ =0x00000801
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF62:
- cmp r3, 0x2
- bne _0809EF76
- ldr r2, _0809EF98 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EF9C @ =0x0000e0fc
- ands r0, r1
- ldr r4, _0809EFA4 @ =0x00000a01
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF76:
- cmp r3, 0x3
- bne _0809EF8A
- ldr r2, _0809EF98 @ =REG_BG1CNT
- ldrh r1, [r2]
- ldr r0, _0809EF9C @ =0x0000e0fc
- ands r0, r1
- ldr r3, _0809EFA8 @ =0x00000c01
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
-_0809EF8A:
- ldr r2, _0809EFAC @ =REG_BG2CNT
-_0809EF8C:
- ldrh r1, [r2]
- ldr r0, _0809EFB0 @ =0x0000fffc
- ands r0, r1
- adds r0, 0x2
- strh r0, [r2]
- b _0809F096
- .align 2, 0
-_0809EF98: .4byte REG_BG1CNT
-_0809EF9C: .4byte 0x0000e0fc
-_0809EFA0: .4byte 0x00000801
-_0809EFA4: .4byte 0x00000a01
-_0809EFA8: .4byte 0x00000c01
-_0809EFAC: .4byte REG_BG2CNT
-_0809EFB0: .4byte 0x0000fffc
-_0809EFB4:
- ldr r0, _0809EFD4 @ =0x02018000
- adds r0, 0x80
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809EFDC
- ldr r0, _0809EFD8 @ =gUnknown_03004288
- ldrh r1, [r0]
- adds r1, 0x20
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- cmp r1, r0
- bne _0809F0C0
- b _0809F096
- .align 2, 0
-_0809EFD4: .4byte 0x02018000
-_0809EFD8: .4byte gUnknown_03004288
-_0809EFDC:
- ldr r0, _0809EFF0 @ =gUnknown_030042C0
- ldrh r1, [r0]
- adds r1, 0x20
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- cmp r1, r0
- bne _0809F0C0
- b _0809F096
- .align 2, 0
-_0809EFF0: .4byte gUnknown_030042C0
-_0809EFF4:
- ldr r1, _0809F030 @ =0x02018000
- ldrb r3, [r1, 0xB]
- adds r0, r3, 0x1
- adds r2, r1, 0
- adds r2, 0x7E
- strb r0, [r2]
- ldrb r2, [r1, 0x8]
- subs r0, r2, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _0809F034
- adds r1, 0x7F
- movs r0, 0
- strb r0, [r1]
- adds r4, r5, 0
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A029C
- adds r5, 0x79
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A0428
- ldrb r0, [r5]
- bl sub_80A00F4
- b _0809F096
- .align 2, 0
-_0809F030: .4byte 0x02018000
-_0809F034:
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0809F056
- adds r0, r5, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809F04E
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0809F056
-_0809F04E:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x6
- b _0809F06A
-_0809F056:
- ldrb r0, [r5, 0xB]
- cmp r0, 0
- bne _0809F064
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0x7
- b _0809F06A
-_0809F064:
- adds r1, r5, 0
- adds r1, 0x7F
- movs r0, 0
-_0809F06A:
- strb r0, [r1]
- b _0809F096
-_0809F06E:
- bl sub_80A0EE8
- bl sub_80A0DD0
- b _0809F096
-_0809F078:
- ldr r0, _0809F0A0 @ =gUnknown_083C1598
- ldr r4, _0809F0A4 @ =0x02018000
- ldrb r1, [r4, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- adds r4, 0x80
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
-_0809F096:
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _0809F0C0
- .align 2, 0
-_0809F0A0: .4byte gUnknown_083C1598
-_0809F0A4: .4byte 0x02018000
-_0809F0A8:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809F0C0
- ldr r1, _0809F0C8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F0CC @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_0809F0C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F0C8: .4byte gTasks
-_0809F0CC: .4byte gUnknown_03005CF0
- thumb_func_end sub_809EE74
-
- thumb_func_start sub_809F0D0
-sub_809F0D0: @ 809F0D0
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0809F110 @ =0x02018000
- ldrb r0, [r1, 0xB]
- adds r0, r4
- movs r5, 0
- strb r0, [r1, 0xB]
- ldr r2, _0809F114 @ =gUnknown_03005CF0
- ldr r1, _0809F118 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r6, r0, r1
- ldr r0, [r6]
- str r0, [r2]
- bl sub_809FBE4
- strh r5, [r6, 0x8]
- lsls r4, 24
- asrs r4, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0809F120
- ldr r0, _0809F11C @ =sub_809EC38
- str r0, [r6]
- b _0809F12A
- .align 2, 0
-_0809F110: .4byte 0x02018000
-_0809F114: .4byte gUnknown_03005CF0
-_0809F118: .4byte gTasks
-_0809F11C: .4byte sub_809EC38
-_0809F120:
- ldr r1, _0809F130 @ =sub_809EE74
- str r1, [r6]
- adds r0, r7, 0
- bl _call_via_r1
-_0809F12A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F130: .4byte sub_809EE74
- thumb_func_end sub_809F0D0
-
- thumb_func_start sub_809F134
-sub_809F134: @ 809F134
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, _0809F1AC @ =0x02018010
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F1A6
- lsls r0, r5, 24
- asrs r5, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _0809F168
- adds r0, r4, 0
- subs r0, 0x10
- adds r1, r4, 0
- adds r1, 0x65
- ldrb r0, [r0, 0xB]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0809F1A6
-_0809F168:
- cmp r5, 0x1
- bne _0809F17C
- adds r0, r4, 0
- subs r0, 0x10
- adds r1, r4, 0
- adds r1, 0x66
- ldrb r0, [r0, 0xB]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0809F1A6
-_0809F17C:
- ldr r0, _0809F1B0 @ =sub_80A1334
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809F1A6
- ldr r0, _0809F1B4 @ =sub_80A1500
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809F1A6
- movs r0, 0x5
- bl PlaySE
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_809F0D0
-_0809F1A6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F1AC: .4byte 0x02018010
-_0809F1B0: .4byte sub_80A1334
-_0809F1B4: .4byte sub_80A1500
- thumb_func_end sub_809F134
-
- thumb_func_start sub_809F1B8
-sub_809F1B8: @ 809F1B8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, _0809F1E4 @ =0x02018000
- ldrb r1, [r0, 0xE]
- adds r2, r0, 0
- cmp r1, 0x1
- bne _0809F202
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _0809F1E8
- lsls r1, r4, 24
- asrs r1, 24
- movs r4, 0x1
- eors r1, r4
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- b _0809F1F4
- .align 2, 0
-_0809F1E4: .4byte 0x02018000
-_0809F1E8:
- lsls r0, r4, 24
- asrs r0, 24
- movs r4, 0x3
- cmp r0, 0x1
- bne _0809F1F4
- movs r4, 0x2
-_0809F1F4:
- ldr r0, [r2]
- ldrb r1, [r2, 0x9]
- ldrb r2, [r2, 0xA]
- adds r3, r4, 0
- bl sub_8095DCC
- b _0809F22C
-_0809F202:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F224
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F224
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_809F3CC
- b _0809F22C
-_0809F224:
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_809F284
-_0809F22C:
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _0809F270
- movs r0, 0x5
- bl PlaySE
- ldr r5, _0809F278 @ =0x02018010
- adds r0, r5, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _0809F258
- movs r0, 0x2
- negs r0, r0
- bl sub_80A12D0
-_0809F258:
- adds r0, r5, 0
- subs r0, 0x10
- strb r4, [r0, 0x9]
- ldr r1, _0809F27C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0]
- str r1, [r5, 0x74]
- ldr r1, _0809F280 @ =sub_809F43C
- str r1, [r0]
-_0809F270:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F278: .4byte 0x02018010
-_0809F27C: .4byte gTasks
-_0809F280: .4byte sub_809F43C
- thumb_func_end sub_809F1B8
-
- thumb_func_start sub_809F284
-sub_809F284: @ 809F284
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0809F2C0 @ =0x02018000
- ldr r7, [r0]
- movs r6, 0
- ldrb r1, [r0, 0xB]
- adds r4, r0, 0
- cmp r1, 0
- bne _0809F2C4
- lsls r0, r3, 24
- asrs r2, r0, 24
- movs r1, 0x1
- negs r1, r1
- adds r5, r0, 0
- cmp r2, r1
- bne _0809F2AC
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0809F2E4
-_0809F2AC:
- asrs r0, r5, 24
- cmp r0, 0x1
- bne _0809F2BA
- ldrb r0, [r4, 0x9]
- ldrb r1, [r4, 0xA]
- cmp r0, r1
- bcs _0809F2E4
-_0809F2BA:
- ldrb r0, [r4, 0x9]
- adds r0, r3
- b _0809F304
- .align 2, 0
-_0809F2C0: .4byte 0x02018000
-_0809F2C4:
- lsls r5, r3, 24
-_0809F2C6:
- lsls r0, r6, 24
- asrs r0, 24
- asrs r1, r5, 24
- adds r0, r1
- lsls r0, 24
- ldr r4, _0809F2EC @ =0x02018000
- lsrs r6, r0, 24
- asrs r0, 24
- ldrb r2, [r4, 0x9]
- adds r1, r0, r2
- cmp r1, 0
- blt _0809F2E4
- ldrb r0, [r4, 0xA]
- cmp r1, r0
- ble _0809F2F0
-_0809F2E4:
- movs r0, 0x1
- negs r0, r0
- b _0809F308
- .align 2, 0
-_0809F2EC: .4byte 0x02018000
-_0809F2F0:
- movs r0, 0x64
- muls r0, r1
- adds r0, r7, r0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F2C6
- ldrb r0, [r4, 0x9]
- adds r0, r6
-_0809F304:
- lsls r0, 24
- asrs r0, 24
-_0809F308:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809F284
-
- thumb_func_start sub_809F310
-sub_809F310: @ 809F310
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0809F33C
- ldr r0, _0809F338 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- bne _0809F332
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0809F33C
-_0809F332:
- movs r0, 0x1
- b _0809F33E
- .align 2, 0
-_0809F338: .4byte 0x02018000
-_0809F33C:
- movs r0, 0
-_0809F33E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F310
-
- thumb_func_start sub_809F344
-sub_809F344: @ 809F344
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
-_0809F34A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- beq _0809F37C
- ldr r0, _0809F374 @ =gUnknown_083C15A8
- adds r5, r4, r0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809F378 @ =gPlayerParty
- adds r0, r1
- bl sub_809F310
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F34A
- movs r0, 0
- ldrsb r0, [r5, r0]
- b _0809F380
- .align 2, 0
-_0809F374: .4byte gUnknown_083C15A8
-_0809F378: .4byte gPlayerParty
-_0809F37C:
- movs r0, 0x1
- negs r0, r0
-_0809F380:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809F344
-
- thumb_func_start sub_809F388
-sub_809F388: @ 809F388
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
-_0809F38E:
- cmp r4, 0
- beq _0809F3C0
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809F3B8 @ =gUnknown_083C15A8
- adds r5, r4, r0
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809F3BC @ =gPlayerParty
- adds r0, r1
- bl sub_809F310
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F38E
- movs r0, 0
- ldrsb r0, [r5, r0]
- b _0809F3C4
- .align 2, 0
-_0809F3B8: .4byte gUnknown_083C15A8
-_0809F3BC: .4byte gPlayerParty
-_0809F3C0:
- movs r0, 0x1
- negs r0, r0
-_0809F3C4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809F388
-
- thumb_func_start sub_809F3CC
-sub_809F3CC: @ 809F3CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0
- movs r1, 0
- ldr r3, _0809F41C @ =gUnknown_083C15A8
- ldr r4, _0809F420 @ =0x02018000
- ldrb r0, [r3]
- ldrb r5, [r4, 0x9]
- cmp r0, r5
- beq _0809F3FC
- adds r5, r3, 0
- adds r3, r4, 0
-_0809F3E6:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bhi _0809F3FC
- adds r0, r1, r5
- ldrb r0, [r0]
- ldrb r4, [r3, 0x9]
- cmp r0, r4
- bne _0809F3E6
- adds r2, r1, 0
-_0809F3FC:
- lsls r0, r6, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0809F40C
- cmp r2, 0
- beq _0809F414
-_0809F40C:
- cmp r1, 0x1
- bne _0809F424
- cmp r2, 0x5
- bne _0809F42C
-_0809F414:
- movs r0, 0x1
- negs r0, r0
- b _0809F436
- .align 2, 0
-_0809F41C: .4byte gUnknown_083C15A8
-_0809F420: .4byte 0x02018000
-_0809F424:
- adds r0, r2, 0
- bl sub_809F388
- b _0809F432
-_0809F42C:
- adds r0, r2, 0
- bl sub_809F344
-_0809F432:
- lsls r0, 24
- asrs r0, 24
-_0809F436:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809F3CC
-
- thumb_func_start sub_809F43C
-sub_809F43C: @ 809F43C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809F45C @ =gMain
- ldr r1, _0809F460 @ =0x0000043c
- adds r5, r0, r1
- ldrb r2, [r5]
- adds r3, r0, 0
- cmp r2, 0x8
- bls _0809F452
- b _0809F5CC
-_0809F452:
- lsls r0, r2, 2
- ldr r1, _0809F464 @ =_0809F468
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809F45C: .4byte gMain
-_0809F460: .4byte 0x0000043c
-_0809F464: .4byte _0809F468
- .align 2, 0
-_0809F468:
- .4byte _0809F48C
- .4byte _0809F492
- .4byte _0809F4BC
- .4byte _0809F4D8
- .4byte _0809F4F4
- .4byte _0809F51C
- .4byte _0809F578
- .4byte _0809F584
- .4byte _0809F5A0
-_0809F48C:
- bl StopCryAndClearCrySongs
- b _0809F5B2
-_0809F492:
- ldr r0, _0809F4AC @ =0x02018000
- ldrb r1, [r0, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809F4B0 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- ldr r1, _0809F4B4 @ =gMain
- ldr r0, _0809F4B8 @ =0x0000043c
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F4AC: .4byte 0x02018000
-_0809F4B0: .4byte gSprites
-_0809F4B4: .4byte gMain
-_0809F4B8: .4byte 0x0000043c
-_0809F4BC:
- ldr r0, _0809F4D0 @ =0x02018000
- ldrb r1, [r0, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809F4D4 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- b _0809F5B2
- .align 2, 0
-_0809F4D0: .4byte 0x02018000
-_0809F4D4: .4byte gSprites
-_0809F4D8:
- ldr r0, _0809F4EC @ =0x02018000
- adds r1, r0, 0
- adds r1, 0x74
- movs r2, 0
- strb r2, [r1]
- adds r0, 0x79
- strb r2, [r0]
- ldr r0, _0809F4F0 @ =0x0000043c
- adds r1, r3, r0
- b _0809F5B8
- .align 2, 0
-_0809F4EC: .4byte 0x02018000
-_0809F4F0: .4byte 0x0000043c
-_0809F4F4:
- ldr r4, _0809F518 @ =0x02018010
- adds r0, r4, 0
- bl sub_809F678
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _0809F50E
- movs r0, 0x2
- bl sub_80A12D0
-_0809F50E:
- adds r0, r4, 0
- bl sub_80A0EA4
- b _0809F5B2
- .align 2, 0
-_0809F518: .4byte 0x02018010
-_0809F51C:
- ldr r4, _0809F558 @ =0x02018010
- adds r5, r4, 0
- adds r5, 0x64
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809F6B4
- adds r1, r4, 0
- subs r1, 0x10
- strb r0, [r1, 0xC]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0809F5EA
- movs r0, 0
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _0809F560
- ldr r1, _0809F55C @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- b _0809F564
- .align 2, 0
-_0809F558: .4byte 0x02018010
-_0809F55C: .4byte gUnknown_030041B0
-_0809F560:
- ldr r0, _0809F56C @ =gUnknown_030041B0
- strh r1, [r0]
-_0809F564:
- ldr r1, _0809F570 @ =gMain
- ldr r0, _0809F574 @ =0x0000043c
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F56C: .4byte gUnknown_030041B0
-_0809F570: .4byte gMain
-_0809F574: .4byte 0x0000043c
-_0809F578:
- ldr r0, _0809F580 @ =0x02018010
- bl sub_80A1DCC
- b _0809F5B2
- .align 2, 0
-_0809F580: .4byte 0x02018010
-_0809F584:
- ldr r0, _0809F594 @ =0x02018010
- bl sub_80A1DE8
- ldr r1, _0809F598 @ =gMain
- ldr r0, _0809F59C @ =0x0000043c
- adds r1, r0
- b _0809F5B8
- .align 2, 0
-_0809F594: .4byte 0x02018010
-_0809F598: .4byte gMain
-_0809F59C: .4byte 0x0000043c
-_0809F5A0:
- bl sub_809F5F8
- lsls r0, 24
- cmp r0, 0
- beq _0809F5EA
- ldr r0, _0809F5C0 @ =0x02018000
- adds r0, 0x74
- movs r1, 0
- strb r1, [r0]
-_0809F5B2:
- ldr r1, _0809F5C4 @ =gMain
- ldr r2, _0809F5C8 @ =0x0000043c
- adds r1, r2
-_0809F5B8:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0809F5EA
- .align 2, 0
-_0809F5C0: .4byte 0x02018000
-_0809F5C4: .4byte gMain
-_0809F5C8: .4byte 0x0000043c
-_0809F5CC:
- bl sub_8055870
- cmp r0, 0x1
- beq _0809F5EA
- movs r0, 0
- strb r0, [r5]
- ldr r0, _0809F5F0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809F5F4 @ =0x02018000
- adds r0, 0x84
- ldr r0, [r0]
- str r0, [r1]
-_0809F5EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F5F0: .4byte gTasks
-_0809F5F4: .4byte 0x02018000
- thumb_func_end sub_809F43C
-
- thumb_func_start sub_809F5F8
-sub_809F5F8: @ 809F5F8
- push {r4,lr}
- ldr r2, _0809F61C @ =0x02018000
- adds r4, r2, 0
- adds r4, 0x74
- ldrb r0, [r4]
- cmp r0, 0
- beq _0809F624
- ldr r0, _0809F620 @ =gUnknown_083C1588
- ldrb r1, [r2, 0xB]
- lsls r1, 2
- adds r1, r0
- adds r0, r2, 0
- adds r0, 0x10
- ldr r1, [r1]
- bl _call_via_r1
- movs r0, 0x1
- b _0809F634
- .align 2, 0
-_0809F61C: .4byte 0x02018000
-_0809F620: .4byte gUnknown_083C1588
-_0809F624:
- adds r0, r2, 0
- adds r0, 0x10
- bl sub_809FAC8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
-_0809F634:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F5F8
-
- thumb_func_start sub_809F63C
-sub_809F63C: @ 809F63C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FE80
- adds r0, r4, 0
- bl sub_809FC34
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F63C
-
- thumb_func_start sub_809F650
-sub_809F650: @ 809F650
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A00A4
- adds r0, r4, 0
- bl sub_809FF64
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F650
-
- thumb_func_start sub_809F664
-sub_809F664: @ 809F664
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A0390
- adds r0, r4, 0
- bl sub_80A015C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F664
-
- thumb_func_start sub_809F678
-sub_809F678: @ 809F678
- push {lr}
- adds r3, r0, 0
- ldr r1, _0809F698 @ =0x02018000
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- bne _0809F69C
- ldr r2, [r1]
- ldrb r1, [r1, 0x9]
- movs r0, 0x64
- muls r1, r0
- adds r1, r2
- adds r0, r3, 0
- movs r2, 0x64
- bl memcpy
- b _0809F6AE
- .align 2, 0
-_0809F698: .4byte 0x02018000
-_0809F69C:
- ldr r0, [r1]
- ldrb r2, [r1, 0x9]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r0, r1
- adds r1, r3, 0
- bl sub_803B4B4
-_0809F6AE:
- pop {r0}
- bx r0
- thumb_func_end sub_809F678
-
- thumb_func_start sub_809F6B4
-sub_809F6B4: @ 809F6B4
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r7, r1, 0
- ldrb r0, [r7]
- cmp r0, 0
- beq _0809F6D2
- cmp r0, 0x1
- beq _0809F718
- adds r0, r4, 0
- bl sub_80A1808
- lsls r0, 24
- lsrs r0, 24
- b _0809F756
-_0809F6D2:
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- lsls r0, r5, 3
- ldr r1, _0809F70C @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _0809F710 @ =gMonFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0809F714 @ =gUnknown_081FAF4C
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- bl sub_800D334
- b _0809F74E
- .align 2, 0
-_0809F70C: .4byte gMonFrontPicTable
-_0809F710: .4byte gMonFrontPicCoords
-_0809F714: .4byte gUnknown_081FAF4C
-_0809F718:
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r1, r0, 0
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- ldrh r0, [r4, 0x4]
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
-_0809F74E:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- movs r0, 0xFF
-_0809F756:
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809F6B4
-
- thumb_func_start sub_809F760
-sub_809F760: @ 809F760
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _0809F780
- cmp r1, 0x1
- bgt _0809F776
- cmp r1, 0
- beq _0809F77C
- b _0809F788
-_0809F776:
- cmp r2, 0x2
- beq _0809F784
- b _0809F788
-_0809F77C:
- movs r1, 0xD
- b _0809F78A
-_0809F780:
- movs r1, 0xE
- b _0809F78A
-_0809F784:
- movs r1, 0xF
- b _0809F78A
-_0809F788:
- movs r1, 0x10
-_0809F78A:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809F760
-
- thumb_func_start sub_809F798
-sub_809F798: @ 809F798
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _0809F7B8
- cmp r1, 0x1
- bgt _0809F7AE
- cmp r1, 0
- beq _0809F7B4
- b _0809F7C0
-_0809F7AE:
- cmp r2, 0x2
- beq _0809F7BC
- b _0809F7C0
-_0809F7B4:
- movs r1, 0x11
- b _0809F7C2
-_0809F7B8:
- movs r1, 0x12
- b _0809F7C2
-_0809F7BC:
- movs r1, 0x13
- b _0809F7C2
-_0809F7C0:
- movs r1, 0x14
-_0809F7C2:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809F798
-
- thumb_func_start sub_809F7D0
-sub_809F7D0: @ 809F7D0
- push {r4,lr}
- sub sp, 0x64
- mov r0, sp
- bl sub_809F678
- ldr r4, _0809F804 @ =0x02018000
- adds r0, r4, 0
- adds r0, 0x79
- ldrb r1, [r0]
- mov r0, sp
- bl sub_809F760
- lsls r0, 16
- lsrs r0, 16
- bl sub_806F7B8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F808
- ldrb r0, [r4, 0x8]
- cmp r0, 0x3
- beq _0809F808
- movs r0, 0
- b _0809F80A
- .align 2, 0
-_0809F804: .4byte 0x02018000
-_0809F808:
- movs r0, 0x1
-_0809F80A:
- add sp, 0x64
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809F7D0
-
- thumb_func_start sub_809F814
-sub_809F814: @ 809F814
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r0, _0809F83C @ =gTasks + 0x8
- mov r8, r0
- adds r4, r6, r0
- ldrh r1, [r4, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bgt _0809F840
- adds r0, r1, 0x1
- strh r0, [r4, 0x1C]
- b _0809F9C0
- .align 2, 0
-_0809F83C: .4byte gTasks + 0x8
-_0809F840:
- ldr r7, _0809F874 @ =gMain
- ldrh r1, [r7, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809F880
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F878 @ =sub_809E260
- str r1, [r0]
- movs r0, 0x4
- strh r0, [r4]
- movs r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r2, _0809F87C @ =0x02018000
- ldrh r0, [r4, 0x1E]
- adds r2, 0x79
- strb r0, [r2]
- movs r1, 0x1
- negs r1, r1
- adds r0, r5, 0
- bl sub_809E8F0
- b _0809F9C0
- .align 2, 0
-_0809F874: .4byte gMain
-_0809F878: .4byte sub_809E260
-_0809F87C: .4byte 0x02018000
-_0809F880:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809F8B4
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F8AC @ =sub_809E260
- str r1, [r0]
- movs r0, 0x4
- strh r0, [r4]
- movs r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r2, _0809F8B0 @ =0x02018000
- ldrh r0, [r4, 0x1E]
- adds r2, 0x79
- strb r0, [r2]
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_809E8F0
- b _0809F9C0
- .align 2, 0
-_0809F8AC: .4byte sub_809E260
-_0809F8B0: .4byte 0x02018000
-_0809F8B4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809F8C8
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F918
-_0809F8C8:
- ldr r1, _0809F90C @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x2
- beq _0809F9C0
- cmp r0, 0x3
- bne _0809F8F4
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809F8E8
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809F8F4
-_0809F8E8:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809F8F4:
- ldr r1, _0809F910 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F914 @ =sub_809E260
- str r1, [r0]
- movs r1, 0x1
- negs r1, r1
- adds r0, r5, 0
- b _0809F972
- .align 2, 0
-_0809F90C: .4byte 0x02018000
-_0809F910: .4byte gTasks
-_0809F914: .4byte sub_809E260
-_0809F918:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0809F92E
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809F994
-_0809F92E:
- ldr r1, _0809F988 @ =0x02018000
- adds r2, r1, 0
- adds r2, 0x76
- ldrb r0, [r1, 0xB]
- ldrb r2, [r2]
- cmp r0, r2
- beq _0809F9C0
- cmp r0, 0x2
- bne _0809F960
- adds r0, r1, 0
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0809F954
- adds r0, r1, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809F960
-_0809F954:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0809F960:
- ldr r1, _0809F98C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809F990 @ =sub_809E260
- str r1, [r0]
- adds r0, r5, 0
- movs r1, 0x1
-_0809F972:
- bl sub_809F134
- ldrb r1, [r4, 0x1E]
- movs r0, 0x1
- bl sub_80A1488
- ldrb r1, [r4, 0x1E]
- movs r0, 0x1
- bl sub_80A1654
- b _0809F9C0
- .align 2, 0
-_0809F988: .4byte 0x02018000
-_0809F98C: .4byte gTasks
-_0809F990: .4byte sub_809E260
-_0809F994:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809F9A6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809F9C0
-_0809F9A6:
- ldrb r1, [r4, 0x1E]
- movs r0, 0x2
- bl sub_80A1488
- ldrb r1, [r4, 0x1E]
- movs r0, 0x2
- bl sub_80A1654
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0809F9CC @ =sub_809E260
- str r1, [r0]
-_0809F9C0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809F9CC: .4byte sub_809E260
- thumb_func_end sub_809F814
-
- thumb_func_start sub_809F9D0
-sub_809F9D0: @ 809F9D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _0809FA24 @ =gTasks + 0x8
- adds r2, r4, r6
- movs r0, 0
- strh r0, [r2, 0x1C]
- strh r1, [r2, 0x1E]
- movs r5, 0x2
- negs r5, r5
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A1488
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A1654
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- ldr r0, _0809FA28 @ =gOtherText_CantForgetHMs
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
- subs r6, 0x8
- adds r4, r6
- ldr r0, _0809FA2C @ =sub_809F814
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FA24: .4byte gTasks + 0x8
-_0809FA28: .4byte gOtherText_CantForgetHMs
-_0809FA2C: .4byte sub_809F814
- thumb_func_end sub_809F9D0
-
- thumb_func_start sub_809FA30
-sub_809FA30: @ 809FA30
- ldr r0, _0809FA38 @ =0x02018000
- adds r0, 0x7A
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809FA38: .4byte 0x02018000
- thumb_func_end sub_809FA30
-
- thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing
-GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C
- push {r4,lr}
- lsls r0, 24
- lsls r1, 24
- lsls r2, 24
- lsls r3, 24
- lsrs r2, 23
- lsrs r3, 18
- ldr r4, _0809FA70 @ =0x0600f000
- adds r3, r4
- adds r2, r3
- lsrs r1, 12
- lsrs r0, 23
- movs r4, 0x80
- lsls r4, 2
- adds r3, r4, 0
- adds r0, r3
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0x80
- strh r0, [r2]
- adds r2, 0x40
- adds r1, 0x81
- strh r1, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FA70: .4byte 0x0600f000
- thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing
-
- thumb_func_start GetStringCenterAlignXOffset
-GetStringCenterAlignXOffset: @ 809FA74
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0xF
- adds r2, r4, 0
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetStringCenterAlignXOffset
-
- thumb_func_start sub_809FA94
-sub_809FA94: @ 809FA94
- push {lr}
- bl sub_8040CB4
- lsls r0, 24
- cmp r0, 0
- beq _0809FAB4
- ldr r0, _0809FAB0 @ =gUnknown_083C157E
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0x1
- b _0809FAC0
- .align 2, 0
-_0809FAB0: .4byte gUnknown_083C157E
-_0809FAB4:
- ldr r0, _0809FAC4 @ =gUnknown_083C157C
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- movs r0, 0
-_0809FAC0:
- pop {r1}
- bx r1
- .align 2, 0
-_0809FAC4: .4byte gUnknown_083C157C
- thumb_func_end sub_809FA94
-
- thumb_func_start sub_809FAC8
-sub_809FAC8: @ 809FAC8
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0809FB28
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- movs r0, 0x3
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xC
- movs r2, 0xB
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- ldr r4, _0809FB20 @ =gStringVar1
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetMonNickname
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0x3
- movs r3, 0x10
- bl sub_80A1FF8
- ldr r0, _0809FB24 @ =gUnknown_083C157C
- movs r1, 0x4
- movs r2, 0x2
- bl LoadPalette
- b _0809FBD6
- .align 2, 0
-_0809FB20: .4byte gStringVar1
-_0809FB24: .4byte gUnknown_083C157C
-_0809FB28:
- adds r0, r5, 0
- bl sub_809FA94
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToPokedexNum
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0809FB6C @ =0x0000ffff
- cmp r4, r0
- beq _0809FB96
- cmp r6, 0
- bne _0809FB70
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x2
- bl GetStringCenterAlignXOffset
- movs r0, 0x11
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0xD
- b _0809FB8C
- .align 2, 0
-_0809FB6C: .4byte 0x0000ffff
-_0809FB70:
- movs r0, 0x2
- movs r1, 0x8
- movs r2, 0x1
- movs r3, 0x2
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- movs r0, 0x11
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x8
-_0809FB8C:
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80A1F98
- b _0809FBA2
-_0809FB96:
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0x3
- bl MenuZeroFillWindowRect
-_0809FBA2:
- ldr r1, _0809FBE0 @ =gStringVar1
- adds r0, r1, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r1, r0, 0
- adds r0, r5, 0
- bl GetMonNickname
- adds r1, r0, 0
- movs r0, 0xFC
- strb r0, [r1]
- movs r0, 0x13
- strb r0, [r1, 0x1]
- movs r0, 0x3C
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0809FBE0 @ =gStringVar1
- movs r1, 0x1
- movs r2, 0xC
- bl MenuPrint
- adds r0, r5, 0
- bl sub_80A0958
-_0809FBD6:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FBE0: .4byte gStringVar1
- thumb_func_end sub_809FAC8
-
- thumb_func_start sub_809FBE4
-sub_809FBE4: @ 809FBE4
- push {r4,lr}
- movs r4, 0
-_0809FBE8:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1B
- bls _0809FBE8
- movs r0, 0xB
- movs r1, 0x4
- movs r2, 0x1D
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809FBE4
-
- thumb_func_start sub_809FC0C
-sub_809FC0C: @ 809FC0C
- push {lr}
- ldr r0, _0809FC30 @ =gOtherText_Type2
- movs r1, 0xB
- movs r2, 0x6
- bl MenuPrint
- movs r0, 0
- movs r1, 0x16
- movs r2, 0x4
- bl GetStringCenterAlignXOffset
- movs r0, 0x2
- movs r1, 0x17
- movs r2, 0x4
- bl GetStringCenterAlignXOffset
- pop {r0}
- bx r0
- .align 2, 0
-_0809FC30: .4byte gOtherText_Type2
- thumb_func_end sub_809FC0C
-
- thumb_func_start sub_809FC34
-sub_809FC34: @ 809FC34
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- movs r4, 0
-_0809FC3C:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0809FC3C
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0809FD1C
- ldr r5, _0809FCD0 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FCD4 @ =gOtherText_OriginalTrainer
- bl StringCopy
- adds r5, r0, 0
- ldr r4, _0809FCD8 @ =gOtherText_FiveQuestionsAndSlash
- adds r1, r4, 0
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x4E
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x3]
- ldr r0, _0809FCD0 @ =gStringVar1
- movs r1, 0xB
- movs r2, 0x4
- bl MenuPrint
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0xC1
- movs r3, 0x20
- bl sub_80A1EF8
- movs r0, 0x9
- movs r1, 0x78
- movs r2, 0x30
- movs r3, 0
- bl sub_80A198C
- adds r0, r6, 0
- movs r1, 0x20
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0x5
- bhi _0809FCE0
- ldr r0, _0809FCDC @ =gOtherText_EggAbout
- b _0809FCF2
- .align 2, 0
-_0809FCD0: .4byte gStringVar1
-_0809FCD4: .4byte gOtherText_OriginalTrainer
-_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash
-_0809FCDC: .4byte gOtherText_EggAbout
-_0809FCE0:
- cmp r0, 0xA
- bhi _0809FCEC
- ldr r0, _0809FCE8 @ =gOtherText_EggSoon
- b _0809FCF2
- .align 2, 0
-_0809FCE8: .4byte gOtherText_EggSoon
-_0809FCEC:
- cmp r1, 0x28
- bhi _0809FD00
- ldr r0, _0809FCFC @ =gOtherText_EggSomeTime
-_0809FCF2:
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
- b _0809FD0A
- .align 2, 0
-_0809FCFC: .4byte gOtherText_EggSomeTime
-_0809FD00:
- ldr r0, _0809FD18 @ =gOtherText_EggLongTime
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
-_0809FD0A:
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0xE
- bl sub_80A0708
- b _0809FE4C
- .align 2, 0
-_0809FD18: .4byte gOtherText_EggLongTime
-_0809FD1C:
- ldr r4, _0809FD64 @ =gStringVar2
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- adds r0, r6, 0
- movs r1, 0x3
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r5, _0809FD68 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FD6C @ =gOtherText_OriginalTrainer
- bl StringCopy
- adds r5, r0, 0
- adds r0, r6, 0
- movs r1, 0x31
- bl GetMonData
- cmp r0, 0
- bne _0809FD70
- adds r0, r5, 0
- movs r1, 0x9
- b _0809FD74
- .align 2, 0
-_0809FD64: .4byte gStringVar2
-_0809FD68: .4byte gStringVar1
-_0809FD6C: .4byte gOtherText_OriginalTrainer
-_0809FD70:
- adds r0, r5, 0
- movs r1, 0xA
-_0809FD74:
- bl sub_80A1E58
- adds r5, r0, 0
- ldr r1, _0809FE54 @ =gStringVar2
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x4E
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x3]
- ldr r0, _0809FE58 @ =gStringVar1
- movs r1, 0xB
- movs r2, 0x4
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- ldr r1, _0809FE5C @ =0x0000ffff
- ands r1, r0
- movs r0, 0xC1
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0xD
- movs r2, 0x5
- movs r3, 0x2
- bl sub_80A1F98
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0809FE60 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r5, r1, r2
- ldrb r4, [r5, 0x6]
- adds r0, r4, 0
- movs r1, 0x78
- movs r2, 0x30
- movs r3, 0
- bl sub_80A198C
- ldrb r0, [r5, 0x7]
- cmp r4, r0
- beq _0809FDF8
- ldrb r0, [r5, 0x7]
- movs r1, 0xA0
- movs r2, 0x30
- movs r3, 0x1
- bl sub_80A198C
-_0809FDF8:
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x2E
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetAbilityBySpecies
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xD
- muls r0, r4
- ldr r1, _0809FE64 @ =gAbilityNames
- adds r0, r1
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x9
- bl sub_80A1FF8
- ldr r0, _0809FE68 @ =gAbilityDescriptions
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- movs r1, 0xB
- movs r2, 0xB
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0xE
- bl sub_80A0798
-_0809FE4C:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FE54: .4byte gStringVar2
-_0809FE58: .4byte gStringVar1
-_0809FE5C: .4byte 0x0000ffff
-_0809FE60: .4byte gBaseStats
-_0809FE64: .4byte gAbilityNames
-_0809FE68: .4byte gAbilityDescriptions
- thumb_func_end sub_809FC34
-
- thumb_func_start sub_809FE6C
-sub_809FE6C: @ 809FE6C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FC0C
- adds r0, r4, 0
- bl sub_809FC34
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809FE6C
-
- thumb_func_start sub_809FE80
-sub_809FE80: @ 809FE80
- push {lr}
- movs r0, 0xE
- movs r1, 0x4
- movs r2, 0x12
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0x19
- movs r1, 0x4
- movs r2, 0x1E
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0xB
- movs r1, 0xE
- movs r2, 0x1C
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_809FE80
-
- thumb_func_start sub_809FEB8
-sub_809FEB8: @ 809FEB8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0809FF40 @ =gOtherText_ExpPoints
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0xE
- bl sub_80A1FF8
- ldr r0, _0809FF44 @ =gOtherText_NextLv
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x10
- bl sub_80A1FF8
- ldr r0, _0809FF48 @ =gOtherText_Terminator18
- movs r1, 0x15
- movs r2, 0x10
- bl MenuPrint
- ldr r0, _0809FF4C @ =gOtherText_HP
- movs r4, 0x2A
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x7
- bl sub_80A1F48
- ldr r0, _0809FF50 @ =gOtherText_Attack
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0x9
- bl sub_80A1F48
- ldr r0, _0809FF54 @ =gOtherText_Defense
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0xB
- movs r3, 0xB
- bl sub_80A1F48
- ldr r0, _0809FF58 @ =gOtherText_SpAtk
- movs r4, 0x24
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0x7
- bl sub_80A1F48
- ldr r0, _0809FF5C @ =gOtherText_SpDef
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0x9
- bl sub_80A1F48
- ldr r0, _0809FF60 @ =gOtherText_Speed
- str r4, [sp]
- movs r1, 0xD
- movs r2, 0x16
- movs r3, 0xB
- bl sub_80A1F48
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809FF40: .4byte gOtherText_ExpPoints
-_0809FF44: .4byte gOtherText_NextLv
-_0809FF48: .4byte gOtherText_Terminator18
-_0809FF4C: .4byte gOtherText_HP
-_0809FF50: .4byte gOtherText_Attack
-_0809FF54: .4byte gOtherText_Defense
-_0809FF58: .4byte gOtherText_SpAtk
-_0809FF5C: .4byte gOtherText_SpDef
-_0809FF60: .4byte gOtherText_Speed
- thumb_func_end sub_809FEB8
-
- thumb_func_start sub_809FF64
-sub_809FF64: @ 809FF64
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_0809FF6A:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0809FF6A
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB
- movs r2, 0x4
- bl sub_80A0BF4
- adds r0, r5, 0
- bl sub_80A0B88
- ldr r4, _080A008C @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0x19
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1D
- movs r2, 0xE
- bl MenuPrint_RightAligned
- adds r0, r5, 0
- movs r1, 0x17
- movs r2, 0x10
- bl sub_80A0C80
- adds r0, r5, 0
- movs r1, 0x3B
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x32
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3C
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0xB
- movs r3, 0x32
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3E
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0x7
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3F
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0x9
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x3D
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- movs r1, 0x1B
- movs r2, 0xB
- movs r3, 0x12
- bl sub_8072BD8
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C14
- adds r4, r0, 0
- movs r0, 0xBA
- strb r0, [r4]
- adds r4, 0x1
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x30
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A008C @ =gStringVar1
- movs r1, 0x7E
- movs r2, 0x38
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A008C: .4byte gStringVar1
- thumb_func_end sub_809FF64
-
- thumb_func_start sub_80A0090
-sub_80A0090: @ 80A0090
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809FEB8
- adds r0, r4, 0
- bl sub_809FF64
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0090
-
- thumb_func_start sub_80A00A4
-sub_80A00A4: @ 80A00A4
- push {lr}
- movs r0, 0xB
- movs r1, 0x4
- movs r2, 0x13
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0x10
- movs r1, 0x7
- movs r2, 0x15
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- movs r0, 0x11
- movs r1, 0x9
- movs r2, 0x15
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x1B
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0x16
- movs r1, 0xE
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- movs r0, 0x17
- movs r1, 0x10
- movs r2, 0x1C
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80A00A4
-
- thumb_func_start sub_80A00F4
-sub_80A00F4: @ 80A00F4
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, _080A012C @ =0x02018000
- adds r0, r2, 0
- adds r0, 0x7C
- ldrh r0, [r0]
- cmp r0, 0
- bne _080A010A
- cmp r1, 0x4
- beq _080A0150
-_080A010A:
- ldrb r0, [r2, 0xB]
- cmp r0, 0x2
- bne _080A0138
- ldr r0, _080A0130 @ =gOtherText_Power2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0xF
- bl sub_80A1FF8
- ldr r0, _080A0134 @ =gOtherText_Accuracy2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x11
- bl sub_80A1FF8
- b _080A0150
- .align 2, 0
-_080A012C: .4byte 0x02018000
-_080A0130: .4byte gOtherText_Power2
-_080A0134: .4byte gOtherText_Accuracy2
-_080A0138:
- ldr r0, _080A0154 @ =gOtherText_Appeal2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0xF
- bl sub_80A1FF8
- ldr r0, _080A0158 @ =gOtherText_Jam2
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x11
- bl sub_80A1FF8
-_080A0150:
- pop {r0}
- bx r0
- .align 2, 0
-_080A0154: .4byte gOtherText_Appeal2
-_080A0158: .4byte gOtherText_Jam2
- thumb_func_end sub_80A00F4
-
- thumb_func_start sub_80A015C
-sub_80A015C: @ 80A015C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- movs r7, 0
-_080A0168:
- mov r0, r8
- adds r1, r7, 0
- bl sub_809F760
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r8
- adds r1, r7, 0
- bl sub_809F798
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r6, 0
- bne _080A01B8
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_80A1918
- lsls r4, r7, 25
- movs r0, 0x80
- lsls r0, 19
- adds r4, r0
- lsrs r4, 24
- ldr r0, _080A01B0 @ =gOtherText_OneDash
- movs r1, 0xD
- movs r2, 0xF
- adds r3, r4, 0
- bl sub_80A1FF8
- ldr r0, _080A01B4 @ =gOtherText_TwoDashes
- movs r1, 0x1A
- adds r2, r4, 0
- bl MenuPrint
- b _080A0276
- .align 2, 0
-_080A01B0: .4byte gOtherText_OneDash
-_080A01B4: .4byte gOtherText_TwoDashes
-_080A01B8:
- ldr r0, _080A01E0 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A01E8
- ldr r1, _080A01E4 @ =gBattleMoves
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r4, r7, 1
- adds r2, r4, 0x4
- lsls r2, 27
- lsrs r2, 24
- movs r1, 0x57
- adds r3, r7, 0
- bl sub_80A198C
- b _080A020C
- .align 2, 0
-_080A01E0: .4byte 0x02018000
-_080A01E4: .4byte gBattleMoves
-_080A01E8:
- ldr r1, _080A0290 @ =gContestMoves
- lsls r0, r6, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 5
- movs r1, 0x90
- lsls r1, 21
- adds r0, r1
- lsrs r0, 24
- lsls r4, r7, 1
- adds r2, r4, 0x4
- lsls r2, 27
- lsrs r2, 24
- movs r1, 0x57
- adds r3, r7, 0
- bl sub_80A198C
-_080A020C:
- movs r0, 0xD
- muls r0, r6
- ldr r1, _080A0294 @ =gMoveNames
- adds r0, r1
- adds r5, r4, 0x4
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0xD
- movs r2, 0xF
- adds r3, r5, 0
- bl sub_80A1FF8
- movs r0, 0x1
- movs r1, 0x18
- adds r2, r5, 0
- bl GetStringCenterAlignXOffset
- mov r0, r8
- movs r1, 0x15
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r7, 0
- bl CalculatePPWithBonus
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A0298 @ =gStringVar1
- adds r0, r1, 0
- mov r1, r9
- movs r2, 0xE
- movs r3, 0x1
- bl sub_8072C14
- adds r1, r0, 0
- movs r0, 0xBA
- strb r0, [r1]
- adds r1, 0x1
- adds r0, r1, 0
- adds r1, r4, 0
- movs r2, 0x20
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0298 @ =gStringVar1
- movs r1, 0x19
- adds r2, r5, 0
- bl MenuPrint
-_080A0276:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bhi _080A0282
- b _080A0168
-_080A0282:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0290: .4byte gContestMoves
-_080A0294: .4byte gMoveNames
-_080A0298: .4byte gStringVar1
- thumb_func_end sub_80A015C
-
- thumb_func_start sub_80A029C
-sub_80A029C: @ 80A029C
- push {r4,r5,lr}
- ldr r1, _080A02B8 @ =0x02018000
- adds r4, r1, 0
- adds r4, 0x7C
- ldrh r0, [r4]
- cmp r0, 0
- bne _080A02C0
- ldr r0, _080A02BC @ =gOtherText_CancelNoTerminator
- movs r1, 0xD
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
- b _080A037E
- .align 2, 0
-_080A02B8: .4byte 0x02018000
-_080A02BC: .4byte gOtherText_CancelNoTerminator
-_080A02C0:
- ldrh r5, [r4]
- ldrb r0, [r1, 0xB]
- cmp r0, 0x2
- bne _080A02E4
- ldr r1, _080A02E0 @ =gBattleMoves
- lsls r4, r5, 1
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- movs r1, 0x57
- movs r2, 0x60
- movs r3, 0x4
- bl sub_80A198C
- b _080A0304
- .align 2, 0
-_080A02E0: .4byte gBattleMoves
-_080A02E4:
- ldr r1, _080A0320 @ =gContestMoves
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 5
- movs r1, 0x90
- lsls r1, 21
- adds r0, r1
- lsrs r0, 24
- movs r1, 0x57
- movs r2, 0x60
- movs r3, 0x4
- bl sub_80A198C
- lsls r4, r5, 1
-_080A0304:
- ldr r0, _080A0324 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A032C
- movs r0, 0xD
- muls r0, r5
- ldr r1, _080A0328 @ =gMoveNames
- adds r0, r1
- movs r1, 0xA
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
- b _080A033E
- .align 2, 0
-_080A0320: .4byte gContestMoves
-_080A0324: .4byte 0x02018000
-_080A0328: .4byte gMoveNames
-_080A032C:
- movs r0, 0xD
- muls r0, r5
- ldr r1, _080A0384 @ =gMoveNames
- adds r0, r1
- movs r1, 0x9
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80A1FF8
-_080A033E:
- movs r0, 0x1
- movs r1, 0x18
- movs r2, 0xC
- bl GetStringCenterAlignXOffset
- ldr r2, _080A0388 @ =gStringVar1
- ldr r1, _080A038C @ =gBattleMoves
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x4]
- adds r0, r2, 0
- adds r1, r4, 0
- movs r2, 0xE
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r4, 0
- movs r2, 0x20
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0388 @ =gStringVar1
- movs r1, 0x19
- movs r2, 0xC
- bl MenuPrint
-_080A037E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0384: .4byte gMoveNames
-_080A0388: .4byte gStringVar1
-_080A038C: .4byte gBattleMoves
- thumb_func_end sub_80A029C
-
- thumb_func_start sub_80A0390
-sub_80A0390: @ 80A0390
- push {r4,lr}
- movs r4, 0
-_080A0394:
- lsls r3, r4, 1
- adds r1, r3, 0x4
- lsls r1, 24
- lsrs r1, 24
- adds r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0xF
- movs r2, 0x1C
- bl MenuZeroFillWindowRect
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080A0394
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0390
-
- thumb_func_start sub_80A03BC
-sub_80A03BC: @ 80A03BC
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x4
- beq _080A03D0
- bl sub_809F760
- lsls r0, 16
- lsrs r1, r0, 16
- b _080A03E0
-_080A03D0:
- ldr r0, _080A03E8 @ =0x02018000
- adds r2, r0, 0
- adds r2, 0x7C
- ldrh r0, [r2]
- ldr r1, _080A03EC @ =0x0000ffff
- cmp r0, 0
- beq _080A03E0
- adds r1, r0, 0
-_080A03E0:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A03E8: .4byte 0x02018000
-_080A03EC: .4byte 0x0000ffff
- thumb_func_end sub_80A03BC
-
- thumb_func_start sub_80A03F0
-sub_80A03F0: @ 80A03F0
- push {lr}
- ldrb r1, [r1]
- bl sub_80A03BC
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080A0414 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A041C
- adds r0, r1, 0
- bl sub_80A04CC
- ldr r0, _080A0418 @ =0x0000ffff
- bl sub_80A057C
- b _080A0422
- .align 2, 0
-_080A0414: .4byte 0x02018000
-_080A0418: .4byte 0x0000ffff
-_080A041C:
- adds r0, r1, 0
- bl sub_80A057C
-_080A0422:
- pop {r0}
- bx r0
- thumb_func_end sub_80A03F0
-
- thumb_func_start sub_80A0428
-sub_80A0428: @ 80A0428
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldrb r1, [r6]
- bl sub_80A03BC
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xB
- movs r1, 0xF
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- ldr r0, _080A0454 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A0458
- adds r0, r4, 0
- bl sub_80A046C
- b _080A045E
- .align 2, 0
-_080A0454: .4byte 0x02018000
-_080A0458:
- adds r0, r4, 0
- bl sub_80A0498
-_080A045E:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80A03F0
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0428
-
- thumb_func_start sub_80A046C
-sub_80A046C: @ 80A046C
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080A0490 @ =0x0000ffff
- cmp r1, r0
- beq _080A048A
- ldr r0, _080A0494 @ =gMoveDescriptions
- subs r1, 0x1
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
-_080A048A:
- pop {r0}
- bx r0
- .align 2, 0
-_080A0490: .4byte 0x0000ffff
-_080A0494: .4byte gMoveDescriptions
- thumb_func_end sub_80A046C
-
- thumb_func_start sub_80A0498
-sub_80A0498: @ 80A0498
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080A04C0 @ =0x0000ffff
- cmp r3, r0
- beq _080A04BC
- ldr r2, _080A04C4 @ =gUnknown_083CADD4
- ldr r1, _080A04C8 @ =gContestMoves
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0xF
- bl MenuPrint
-_080A04BC:
- pop {r0}
- bx r0
- .align 2, 0
-_080A04C0: .4byte 0x0000ffff
-_080A04C4: .4byte gUnknown_083CADD4
-_080A04C8: .4byte gContestMoves
- thumb_func_end sub_80A0498
-
- thumb_func_start sub_80A04CC
-sub_80A04CC: @ 80A04CC
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080A0504 @ =0x0000ffff
- cmp r4, r0
- beq _080A0572
- ldr r2, _080A0508 @ =gBattleMoves
- lsls r1, r4, 1
- adds r0, r1, r4
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x1]
- adds r5, r1, 0
- cmp r0, 0x1
- bhi _080A0514
- ldr r0, _080A050C @ =gStringVar1
- ldr r1, _080A0510 @ =gOtherText_ThreeDashes2
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C74
- ldr r0, _080A050C @ =gStringVar1
- movs r1, 0x7
- movs r2, 0xF
- bl MenuPrint
- b _080A052A
- .align 2, 0
-_080A0504: .4byte 0x0000ffff
-_080A0508: .4byte gBattleMoves
-_080A050C: .4byte gStringVar1
-_080A0510: .4byte gOtherText_ThreeDashes2
-_080A0514:
- ldr r0, _080A0550 @ =gStringVar1
- ldrb r1, [r2, 0x1]
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0550 @ =gStringVar1
- movs r1, 0x7
- movs r2, 0xF
- bl MenuPrint
-_080A052A:
- ldr r0, _080A0554 @ =gBattleMoves
- adds r1, r5, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _080A055C
- ldr r0, _080A0550 @ =gStringVar1
- ldr r1, _080A0558 @ =gOtherText_ThreeDashes2
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C74
- ldr r0, _080A0550 @ =gStringVar1
- movs r1, 0x7
- movs r2, 0x11
- bl MenuPrint
- b _080A0572
- .align 2, 0
-_080A0550: .4byte gStringVar1
-_080A0554: .4byte gBattleMoves
-_080A0558: .4byte gOtherText_ThreeDashes2
-_080A055C:
- ldr r0, _080A0578 @ =gStringVar1
- ldrb r1, [r1, 0x3]
- movs r2, 0x15
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A0578 @ =gStringVar1
- movs r1, 0x7
- movs r2, 0x11
- bl MenuPrint
-_080A0572:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0578: .4byte gStringVar1
- thumb_func_end sub_80A04CC
-
- thumb_func_start sub_80A057C
-sub_80A057C: @ 80A057C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080A0648 @ =0x06006800
- mov r8, r0
- ldr r0, _080A064C @ =0x0000ffff
- cmp r5, r0
- beq _080A063A
- ldr r1, _080A0650 @ =gContestEffects
- ldr r2, _080A0654 @ =gContestMoves
- lsls r3, r5, 3
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- mov r10, r2
- mov r9, r3
- cmp r4, 0xFF
- beq _080A05B8
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
-_080A05B8:
- movs r2, 0
- movs r7, 0x3
- movs r6, 0xF3
- lsls r6, 2
-_080A05C0:
- ldr r3, _080A0658 @ =0x00001039
- cmp r4, 0xFF
- beq _080A05CC
- cmp r2, r4
- bcs _080A05CC
- adds r3, 0x1
-_080A05CC:
- lsrs r0, r2, 2
- lsls r0, 5
- adds r1, r2, 0
- ands r1, r7
- adds r1, r0
- lsls r1, 1
- add r1, r8
- adds r1, r6
- strh r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080A05C0
- ldr r0, _080A064C @ =0x0000ffff
- cmp r5, r0
- beq _080A063A
- mov r0, r9
- add r0, r10
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _080A0650 @ =gContestEffects
- adds r0, r1
- ldrb r4, [r0, 0x2]
- cmp r4, 0xFF
- beq _080A060C
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
-_080A060C:
- movs r2, 0
- movs r6, 0x3
- ldr r5, _080A065C @ =0x0000044c
-_080A0612:
- ldr r3, _080A0660 @ =0x0000103d
- cmp r4, 0xFF
- beq _080A061E
- cmp r2, r4
- bcs _080A061E
- subs r3, 0x1
-_080A061E:
- lsrs r0, r2, 2
- lsls r0, 5
- adds r1, r2, 0
- ands r1, r6
- adds r1, r0
- lsls r1, 1
- add r1, r8
- adds r1, r5
- strh r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080A0612
-_080A063A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0648: .4byte 0x06006800
-_080A064C: .4byte 0x0000ffff
-_080A0650: .4byte gContestEffects
-_080A0654: .4byte gContestMoves
-_080A0658: .4byte 0x00001039
-_080A065C: .4byte 0x0000044c
-_080A0660: .4byte 0x0000103d
- thumb_func_end sub_80A057C
-
- thumb_func_start sub_80A0664
-sub_80A0664: @ 80A0664
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080A06A0 @ =0x02018000
- ldr r1, [r0]
- ldr r0, _080A06A4 @ =gEnemyParty
- cmp r1, r0
- bne _080A06B0
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A06A8 @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldrh r5, [r0]
- ldr r4, _080A06AC @ =gStringVar1
- adds r2, 0x8
- adds r1, r2
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- bl StripExtCtrlCodes
- b _080A06C2
- .align 2, 0
-_080A06A0: .4byte 0x02018000
-_080A06A4: .4byte gEnemyParty
-_080A06A8: .4byte gLinkPlayers
-_080A06AC: .4byte gStringVar1
-_080A06B0:
- bl sub_80BFB94
- adds r5, r0, 0
- ldr r0, _080A06F0 @ =0x0000ffff
- ands r5, r0
- ldr r0, _080A06F4 @ =gStringVar1
- ldr r1, _080A06F8 @ =gSaveBlock2
- bl StringCopy
-_080A06C2:
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- ldr r1, _080A06F0 @ =0x0000ffff
- ands r1, r0
- cmp r5, r1
- bne _080A06EA
- ldr r4, _080A06FC @ =gStringVar2
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _080A06F4 @ =gStringVar1
- adds r1, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _080A0700
-_080A06EA:
- movs r0, 0
- b _080A0702
- .align 2, 0
-_080A06F0: .4byte 0x0000ffff
-_080A06F4: .4byte gStringVar1
-_080A06F8: .4byte gSaveBlock2
-_080A06FC: .4byte gStringVar2
-_080A0700:
- movs r0, 0x1
-_080A0702:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A0664
-
- thumb_func_start sub_80A0708
-sub_80A0708: @ 80A0708
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r9, r5
- lsls r2, 24
- lsrs r6, r2, 24
- mov r8, r6
- movs r1, 0x25
- bl GetMonData
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bls _080A073C
- ldr r0, _080A0738 @ =gOtherText_EggObtainedInTrade
- b _080A076E
- .align 2, 0
-_080A0738: .4byte gOtherText_EggObtainedInTrade
-_080A073C:
- adds r0, r4, 0
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xFF
- bne _080A0754
- ldr r0, _080A0750 @ =gOtherText_EggNicePlace
- b _080A076E
- .align 2, 0
-_080A0750: .4byte gOtherText_EggNicePlace
-_080A0754:
- adds r0, r4, 0
- bl sub_80A0664
- lsls r0, 24
- cmp r0, 0
- bne _080A0768
- ldr r0, _080A0764 @ =gOtherText_EggObtainedInTrade
- b _080A076E
- .align 2, 0
-_080A0764: .4byte gOtherText_EggObtainedInTrade
-_080A0768:
- cmp r7, 0xFD
- bne _080A077C
- ldr r0, _080A0778 @ =gOtherText_EggHotSprings
-_080A076E:
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- b _080A0786
- .align 2, 0
-_080A0778: .4byte gOtherText_EggHotSprings
-_080A077C:
- ldr r0, _080A0794 @ =gOtherText_EggDayCare
- mov r1, r9
- mov r2, r8
- bl MenuPrint
-_080A0786:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0794: .4byte gOtherText_EggDayCare
- thumb_func_end sub_80A0708
-
- thumb_func_start sub_80A0798
-sub_80A0798: @ 80A0798
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r5, _080A0838 @ =gStringVar4
- bl GetNature
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A083C @ =gNatureNames
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- cmp r4, 0x5
- beq _080A07DA
- cmp r4, 0x15
- beq _080A07DA
- ldr r1, _080A0840 @ =gOtherText_Terminator4
- bl StringCopy
- adds r5, r0, 0
-_080A07DA:
- ldr r1, _080A0844 @ =gOtherText_Nature
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- adds r0, r7, 0
- bl sub_80A0664
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0898
- adds r0, r7, 0
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- cmp r0, 0
- bne _080A0850
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r4, _080A0848 @ =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80FC02C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- ldr r1, _080A084C @ =gOtherText_Egg2
- bl StringCopy
- b _080A0934
- .align 2, 0
-_080A0838: .4byte gStringVar4
-_080A083C: .4byte gNatureNames
-_080A0840: .4byte gOtherText_Terminator4
-_080A0844: .4byte gOtherText_Nature
-_080A0848: .4byte gStringVar1
-_080A084C: .4byte gOtherText_Egg2
-_080A0850:
- cmp r6, 0x57
- bhi _080A08E8
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r4, _080A0890 @ =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80FC02C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- ldr r1, _080A0894 @ =gOtherText_Met
- bl StringCopy
- b _080A0934
- .align 2, 0
-_080A0890: .4byte gStringVar1
-_080A0894: .4byte gOtherText_Met
-_080A0898:
- adds r0, r7, 0
- movs r1, 0x25
- bl GetMonData
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bhi _080A08E8
- adds r0, r7, 0
- movs r1, 0x23
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xFF
- bne _080A08E4
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r1, _080A08E0 @ =gOtherText_FatefulEncounter
- b _080A08F0
- .align 2, 0
-_080A08E0: .4byte gOtherText_FatefulEncounter
-_080A08E4:
- cmp r6, 0x57
- bls _080A08FC
-_080A08E8:
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r1, _080A08F8 @ =gOtherText_ObtainedInTrade
-_080A08F0:
- adds r0, r5, 0
- bl StringCopy
- b _080A0934
- .align 2, 0
-_080A08F8: .4byte gOtherText_ObtainedInTrade
-_080A08FC:
- adds r0, r7, 0
- movs r1, 0x24
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80A203C
- adds r5, r0, 0
- movs r0, 0xFE
- strb r0, [r5]
- adds r5, 0x1
- ldr r4, _080A094C @ =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80FC02C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE
- bl sub_80A1E9C
- adds r5, r0, 0
- ldr r1, _080A0950 @ =gOtherText_Met2
- bl StringCopy
-_080A0934:
- ldr r0, _080A0954 @ =gStringVar4
- mov r1, r9
- mov r2, r8
- bl MenuPrint
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A094C: .4byte gStringVar1
-_080A0950: .4byte gOtherText_Met2
-_080A0954: .4byte gStringVar4
- thumb_func_end sub_80A0798
-
- thumb_func_start sub_80A0958
-sub_80A0958: @ 80A0958
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r8, r0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r2, _080A0A24 @ =gStringVar1
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- movs r6, 0xFC
- strb r6, [r2]
- movs r0, 0x11
- strb r0, [r2, 0x1]
- movs r0, 0x7
- strb r0, [r2, 0x2]
- movs r0, 0xBA
- strb r0, [r2, 0x3]
- adds r2, 0x4
- movs r0, 0xB
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _080A0A28 @ =gSpeciesNames
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r6, [r2]
- movs r0, 0x13
- mov r10, r0
- strb r0, [r2, 0x1]
- movs r0, 0x50
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- mov r9, r0
- strb r0, [r2, 0x3]
- ldr r5, _080A0A24 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xE
- bl MenuPrint
- movs r0, 0x3
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- mov r0, r8
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- movs r0, 0x34
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r4, 0
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- strb r6, [r2]
- mov r0, r10
- strb r0, [r2, 0x1]
- movs r0, 0x20
- strb r0, [r2, 0x2]
- mov r0, r9
- strb r0, [r2, 0x3]
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x10
- bl MenuPrint
- mov r0, r8
- movs r1, 0x7
- movs r2, 0x10
- bl sub_80A0A2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0A24: .4byte gStringVar1
-_080A0A28: .4byte gSpeciesNames
- thumb_func_end sub_80A0958
-
- thumb_func_start sub_80A0A2C
-sub_80A0A2C: @ 80A0A2C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x20
- beq _080A0A84
- cmp r0, 0x1D
- beq _080A0A84
- adds r0, r6, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080A0A6E
- cmp r0, 0xFE
- beq _080A0A78
- adds r3, r4, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl MenuZeroFillWindowRect
- b _080A0A84
-_080A0A6E:
- ldr r0, _080A0A74 @ =gOtherText_MaleSymbol2
- movs r1, 0xB
- b _080A0A7C
- .align 2, 0
-_080A0A74: .4byte gOtherText_MaleSymbol2
-_080A0A78:
- ldr r0, _080A0A8C @ =gOtherText_FemaleSymbolAndLv
- movs r1, 0xC
-_080A0A7C:
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_80A1FF8
-_080A0A84:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv
- thumb_func_end sub_80A0A2C
-
- thumb_func_start sub_80A0A90
-sub_80A0A90: @ 80A0A90
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x32
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x33
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x34
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x35
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x36
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x43
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x44
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x45
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x46
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x47
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x48
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x49
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4A
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4B
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4C
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4D
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x4E
- bl GetMonData
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A0A90
-
- thumb_func_start sub_80A0B88
-sub_80A0B88: @ 80A0B88
- push {r4,r5,lr}
- bl sub_80A0A90
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A0BA8
- ldr r0, _080A0BA0 @ =gStringVar1
- ldr r1, _080A0BA4 @ =gOtherText_None
- bl StringCopy
- b _080A0BD8
- .align 2, 0
-_080A0BA0: .4byte gStringVar1
-_080A0BA4: .4byte gOtherText_None
-_080A0BA8:
- ldr r4, _080A0BE8 @ =gStringVar1
- ldr r1, _080A0BEC @ =gOtherText_Ribbons00
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- bl StringLength
- lsls r0, 24
- lsrs r0, 24
- subs r4, 0x2
- adds r0, r4
- movs r1, 0xFC
- strb r1, [r0]
- movs r1, 0x14
- strb r1, [r0, 0x1]
- movs r1, 0x6
- strb r1, [r0, 0x2]
- adds r0, 0x3
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
-_080A0BD8:
- ldr r0, _080A0BF0 @ =gUnknown_083C15AE
- movs r1, 0x15
- movs r2, 0x4
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0BE8: .4byte gStringVar1
-_080A0BEC: .4byte gOtherText_Ribbons00
-_080A0BF0: .4byte gUnknown_083C15AE
- thumb_func_end sub_80A0B88
-
- thumb_func_start sub_80A0BF4
-sub_80A0BF4: @ 80A0BF4
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- cmp r5, 0xAF
- bne _080A0C48
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0C48
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A0C48
- ldr r0, _080A0C40 @ =0x02018000
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- beq _080A0C2E
- cmp r0, 0x4
- beq _080A0C2E
- cmp r0, 0x5
- bne _080A0C48
-_080A0C2E:
- ldr r4, _080A0C44 @ =gStringVar1
- adds r0, r5, 0
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- b _080A0C68
- .align 2, 0
-_080A0C40: .4byte 0x02018000
-_080A0C44: .4byte gStringVar1
-_080A0C48:
- cmp r5, 0
- bne _080A0C60
- ldr r0, _080A0C58 @ =gStringVar1
- ldr r1, _080A0C5C @ =gOtherText_None
- bl StringCopy
- b _080A0C68
- .align 2, 0
-_080A0C58: .4byte gStringVar1
-_080A0C5C: .4byte gOtherText_None
-_080A0C60:
- ldr r1, _080A0C78 @ =gStringVar1
- adds r0, r5, 0
- bl CopyItemName
-_080A0C68:
- ldr r0, _080A0C7C @ =gUnknown_083C15B4
- adds r1, r7, 0
- adds r2, r6, 0
- bl MenuPrint
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0C78: .4byte gStringVar1
-_080A0C7C: .4byte gUnknown_083C15B4
- thumb_func_end sub_80A0BF4
-
- thumb_func_start sub_80A0C80
-sub_80A0C80: @ 80A0C80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- movs r0, 0
- mov r9, r0
- movs r6, 0
- movs r7, 0
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x63
- bhi _080A0D14
- ldr r3, _080A0D4C @ =gExperienceTables
- adds r1, r5, 0x1
- lsls r1, 2
- ldr r2, _080A0D50 @ =gBaseStats
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r2, r0
- adds r1, r2
- adds r1, r3
- ldr r1, [r1]
- mov r0, r8
- subs r0, r1, r0
- mov r9, r0
- lsls r0, r5, 2
- adds r0, r2
- adds r0, r3
- ldr r0, [r0]
- subs r1, r0
- mov r2, r8
- subs r4, r2, r0
- lsls r0, r4, 6
- bl __udivsi3
- adds r6, r0, 0
- movs r7, 0
- adds r0, r7, 0
- orrs r0, r6
- cmp r0, 0
- bne _080A0D14
- cmp r4, 0
- beq _080A0D14
- movs r6, 0x1
- movs r7, 0
-_080A0D14:
- ldr r4, _080A0D54 @ =gStringVar1
- adds r0, r4, 0
- mov r1, r9
- bl ConvertIntToDecimalString
- mov r1, r10
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp]
- bl MenuPrint_RightAligned
- ldr r0, _080A0D58 @ =0x06004caa
- mov r9, r0
- movs r2, 0
- mov r12, r2
- ldr r0, _080A0D5C @ =0x00002062
- mov r8, r0
-_080A0D3A:
- cmp r7, 0
- bgt _080A0D46
- cmp r7, 0
- bne _080A0D64
- cmp r6, 0x7
- bls _080A0D64
-_080A0D46:
- ldr r1, _080A0D60 @ =0x0000206a
- b _080A0D96
- .align 2, 0
-_080A0D4C: .4byte gExperienceTables
-_080A0D50: .4byte gBaseStats
-_080A0D54: .4byte gStringVar1
-_080A0D58: .4byte 0x06004caa
-_080A0D5C: .4byte 0x00002062
-_080A0D60: .4byte 0x0000206a
-_080A0D64:
- adds r5, r7, 0
- adds r4, r6, 0
- cmp r7, 0
- bge _080A0D74
- movs r4, 0x7
- movs r5, 0
- adds r4, r6
- adcs r5, r7
-_080A0D74:
- lsls r3, r5, 29
- lsrs r2, r4, 3
- adds r0, r3, 0
- orrs r0, r2
- asrs r1, r5, 3
- lsrs r5, r0, 29
- lsls r4, r1, 3
- adds r3, r5, 0
- orrs r3, r4
- lsls r2, r0, 3
- adds r1, r7, 0
- adds r0, r6, 0
- subs r0, r2
- sbcs r1, r3
- add r0, r8
- lsls r0, 16
- lsrs r1, r0, 16
-_080A0D96:
- mov r2, r12
- lsls r0, r2, 1
- add r0, r9
- strh r1, [r0]
- movs r0, 0x8
- negs r0, r0
- asrs r1, r0, 31
- adds r6, r0
- adcs r7, r1
- cmp r7, 0
- bge _080A0DB0
- movs r6, 0
- movs r7, 0
-_080A0DB0:
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x7
- bls _080A0D3A
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A0C80
-
- thumb_func_start sub_80A0DD0
-sub_80A0DD0: @ 80A0DD0
- push {r4,r5,lr}
- ldr r2, _080A0E3C @ =gStringVar1
- movs r5, 0xFC
- strb r5, [r2]
- movs r0, 0x12
- strb r0, [r2, 0x1]
- movs r0, 0x2
- strb r0, [r2, 0x2]
- adds r2, 0x3
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- ldr r1, _080A0E40 @ =gUnknown_083C1068
- ldr r4, _080A0E44 @ =0x02018000
- adds r0, r4, 0
- adds r0, 0x7E
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r5, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x58
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080A0E3C @ =gStringVar1
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- adds r4, 0x7F
- ldrb r0, [r4]
- cmp r0, 0
- beq _080A0E48
- movs r0, 0x5
- movs r1, 0x17
- movs r2, 0
- bl GetStringCenterAlignXOffset
- movs r0, 0x6
- movs r1, 0x18
- movs r2, 0
- bl GetStringCenterAlignXOffset
- b _080A0E54
- .align 2, 0
-_080A0E3C: .4byte gStringVar1
-_080A0E40: .4byte gUnknown_083C1068
-_080A0E44: .4byte 0x02018000
-_080A0E48:
- movs r0, 0x17
- movs r1, 0
- movs r2, 0x18
- movs r3, 0x1
- bl MenuZeroFillWindowRect
-_080A0E54:
- ldr r2, _080A0E98 @ =gStringVar1
- adds r0, r2, 0
- movs r1, 0xD
- bl sub_80A1E58
- adds r2, r0, 0
- ldr r1, _080A0E9C @ =gUnknown_083C1068
- ldr r0, _080A0EA0 @ =0x02018000
- adds r0, 0x7F
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x28
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080A0E98 @ =gStringVar1
- movs r1, 0x19
- movs r2, 0
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0E98: .4byte gStringVar1
-_080A0E9C: .4byte gUnknown_083C1068
-_080A0EA0: .4byte 0x02018000
- thumb_func_end sub_80A0DD0
-
- thumb_func_start sub_80A0EA4
-sub_80A0EA4: @ 80A0EA4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080A0ECC @ =0x0600e444
- ldr r6, _080A0ED0 @ =0x0600ec44
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _080A0ED4
- adds r0, r4, 0
- movs r1, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- cmp r0, 0
- beq _080A0ED4
- movs r0, 0x2C
- b _080A0ED8
- .align 2, 0
-_080A0ECC: .4byte 0x0600e444
-_080A0ED0: .4byte 0x0600ec44
-_080A0ED4:
- ldr r1, _080A0EE4 @ =0x0000081a
- adds r0, r1, 0
-_080A0ED8:
- strh r0, [r5]
- strh r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A0EE4: .4byte 0x0000081a
- thumb_func_end sub_80A0EA4
-
- thumb_func_start sub_80A0EE8
-sub_80A0EE8: @ 80A0EE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r3, 0
- ldr r6, _080A0F24 @ =0x02018000
- adds r5, r6, 0
- ldr r1, _080A0F28 @ =0x00004040
- mov r8, r1
- ldr r2, _080A0F2C @ =0x0000404a
- mov r10, r2
-_080A0F02:
- adds r0, r5, 0
- adds r0, 0x75
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080A0F30
- lsls r1, r3, 1
- lsls r0, r3, 2
- add r0, sp
- mov r4, r8
- strh r4, [r0]
- adds r1, 0x1
- lsls r1, 1
- mov r7, sp
- adds r0, r7, r1
- strh r4, [r0]
- b _080A0FE2
- .align 2, 0
-_080A0F24: .4byte 0x02018000
-_080A0F28: .4byte 0x00004040
-_080A0F2C: .4byte 0x0000404a
-_080A0F30:
- movs r0, 0x76
- adds r0, r6
- mov r12, r0
- ldrb r1, [r0]
- cmp r3, r1
- bls _080A0F52
- lsls r1, r3, 1
- lsls r0, r3, 2
- add r0, sp
- mov r2, r10
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 1
- mov r4, sp
- adds r0, r4, r1
- strh r2, [r0]
- b _080A0FE2
-_080A0F52:
- ldrb r4, [r5, 0xB]
- cmp r3, r4
- bcs _080A0F6E
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A0F88 @ =0x00004046
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0F6E:
- cmp r3, r4
- bne _080A0FA6
- mov r0, r12
- ldrb r0, [r0]
- cmp r3, r0
- beq _080A0F90
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r4, sp
- adds r2, r4, r0
- ldr r0, _080A0F8C @ =0x00004041
- b _080A0F9A
- .align 2, 0
-_080A0F88: .4byte 0x00004046
-_080A0F8C: .4byte 0x00004041
-_080A0F90:
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A0FC4 @ =0x0000404b
-_080A0F9A:
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0FA6:
- ldrb r0, [r5, 0xB]
- cmp r3, r0
- bls _080A0FE2
- adds r0, r6, 0
- adds r0, 0x76
- ldrb r0, [r0]
- cmp r3, r0
- beq _080A0FCC
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r4, sp
- adds r2, r4, r0
- ldr r0, _080A0FC8 @ =0x00004043
- b _080A0FD6
- .align 2, 0
-_080A0FC4: .4byte 0x0000404b
-_080A0FC8: .4byte 0x00004043
-_080A0FCC:
- lsls r1, r3, 1
- lsls r0, r3, 2
- mov r7, sp
- adds r2, r7, r0
- ldr r0, _080A1034 @ =0x00004048
-_080A0FD6:
- strh r0, [r2]
- adds r1, 0x1
- lsls r1, 1
- add r1, sp
- adds r0, 0x1
- strh r0, [r1]
-_080A0FE2:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080A0F02
- ldr r1, _080A1038 @ =0x0600e016
- ldr r0, _080A103C @ =0x040000d4
- mov r2, sp
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080A1040 @ =0x80000008
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r3, 0
-_080A0FFE:
- lsls r0, r3, 1
- mov r4, sp
- adds r1, r4, r0
- ldrh r0, [r1]
- adds r0, 0x10
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x7
- bls _080A0FFE
- ldr r1, _080A1044 @ =0x0600e056
- ldr r0, _080A103C @ =0x040000d4
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080A1040 @ =0x80000008
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- 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
-_080A1034: .4byte 0x00004048
-_080A1038: .4byte 0x0600e016
-_080A103C: .4byte 0x040000d4
-_080A1040: .4byte 0x80000008
-_080A1044: .4byte 0x0600e056
- thumb_func_end sub_80A0EE8
-
- thumb_func_start sub_80A1048
-sub_80A1048: @ 80A1048
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _080A10A0 @ =gTasks + 0x8
- adds r6, r0, r1
- ldrh r0, [r6]
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r6, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _080A106E
- b _080A1224
-_080A106E:
- movs r5, 0x2
- ldrsh r2, [r6, r5]
- ldr r0, _080A10A4 @ =0x0000024a
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A10A8 @ =gUnknown_08E73508
- adds r4, r0, r1
- ldr r5, _080A10AC @ =0x0600e480
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 5
- adds r7, r1, 0
- cmp r2, r0
- bhi _080A10B4
- ldr r0, _080A10B0 @ =0x040000d4
- str r4, [r0]
- str r5, [r0, 0x4]
- lsrs r1, r2, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A10E0
- .align 2, 0
-_080A10A0: .4byte gTasks + 0x8
-_080A10A4: .4byte 0x0000024a
-_080A10A8: .4byte gUnknown_08E73508
-_080A10AC: .4byte 0x0600e480
-_080A10B0: .4byte 0x040000d4
-_080A10B4:
- ldr r3, _080A110C @ =0x040000d4
- str r4, [r3]
- str r5, [r3, 0x4]
- ldr r0, _080A1110 @ =0x80000800
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r4, r0
- adds r5, r0
- ldr r1, _080A1114 @ =0xfffff000
- adds r2, r1
- cmp r2, r0
- bhi _080A10B4
- str r4, [r3]
- str r5, [r3, 0x4]
- lsrs r0, r2, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
-_080A10E0:
- movs r5, 0x2
- ldrsh r0, [r6, r5]
- ldr r1, _080A1118 @ =0x0000026a
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A111C @ =0x0600e4c0
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A1120
- ldr r0, _080A110C @ =0x040000d4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A114C
- .align 2, 0
-_080A110C: .4byte 0x040000d4
-_080A1110: .4byte 0x80000800
-_080A1114: .4byte 0xfffff000
-_080A1118: .4byte 0x0000026a
-_080A111C: .4byte 0x0600e4c0
-_080A1120:
- ldr r2, _080A1178 @ =0x040000d4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A117C @ =0x80000800
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A1180 @ =0xfffff000
- adds r1, r5
- cmp r1, r0
- bhi _080A1120
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A114C:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- ldr r1, _080A1184 @ =0x0000024a
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A1188 @ =0x0600ec80
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A118C
- ldr r0, _080A1178 @ =0x040000d4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A11B8
- .align 2, 0
-_080A1178: .4byte 0x040000d4
-_080A117C: .4byte 0x80000800
-_080A1180: .4byte 0xfffff000
-_080A1184: .4byte 0x0000024a
-_080A1188: .4byte 0x0600ec80
-_080A118C:
- ldr r2, _080A11E4 @ =0x040000d4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A11E8 @ =0x80000800
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A11EC @ =0xfffff000
- adds r1, r5
- cmp r1, r0
- bhi _080A118C
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A11B8:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- ldr r1, _080A11F0 @ =0x0000026a
- subs r1, r0
- lsls r1, 1
- adds r3, r1, r7
- ldr r4, _080A11F4 @ =0x0600ecc0
- lsls r1, r0, 1
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bhi _080A11F8
- ldr r0, _080A11E4 @ =0x040000d4
- str r3, [r0]
- str r4, [r0, 0x4]
- lsrs r1, 1
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080A1224
- .align 2, 0
-_080A11E4: .4byte 0x040000d4
-_080A11E8: .4byte 0x80000800
-_080A11EC: .4byte 0xfffff000
-_080A11F0: .4byte 0x0000026a
-_080A11F4: .4byte 0x0600ecc0
-_080A11F8:
- ldr r2, _080A12B0 @ =0x040000d4
- str r3, [r2]
- str r4, [r2, 0x4]
- ldr r0, _080A12B4 @ =0x80000800
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r3, r0
- adds r4, r0
- ldr r5, _080A12B8 @ =0xfffff000
- adds r1, r5
- cmp r1, r0
- bhi _080A11F8
- str r3, [r2]
- str r4, [r2, 0x4]
- lsrs r0, r1, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
-_080A1224:
- ldrb r4, [r6, 0x2]
- ldrh r7, [r6, 0x2]
- ldrh r0, [r6]
- mov r12, r0
- cmp r4, 0x9
- bhi _080A1272
- adds r3, r6, 0x4
- ldr r2, _080A12B0 @ =0x040000d4
- ldr r5, _080A12BC @ =0x80000001
-_080A1236:
- lsls r1, r4, 1
- ldr r6, _080A12C0 @ =0x0600e480
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r6, 0x40
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r6, _080A12C4 @ =0x0600ec80
- adds r0, r1, r6
- str r3, [r2]
- str r0, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080A12C8 @ =0x0600ecc0
- adds r1, r0
- str r3, [r2]
- str r1, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080A1236
-_080A1272:
- mov r1, r12
- lsls r0, r1, 16
- cmp r0, 0
- beq _080A1286
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0
- ble _080A1286
- cmp r0, 0x9
- ble _080A12A4
-_080A1286:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _080A129A
- ldr r0, _080A12CC @ =gOtherText_Status
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A129A:
- bl sub_80A1D18
- mov r0, r8
- bl DestroyTask
-_080A12A4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A12B0: .4byte 0x040000d4
-_080A12B4: .4byte 0x80000800
-_080A12B8: .4byte 0xfffff000
-_080A12BC: .4byte 0x80000001
-_080A12C0: .4byte 0x0600e480
-_080A12C4: .4byte 0x0600ec80
-_080A12C8: .4byte 0x0600ecc0
-_080A12CC: .4byte gOtherText_Status
- thumb_func_end sub_80A1048
-
- thumb_func_start sub_80A12D0
-sub_80A12D0: @ 80A12D0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x12
- movs r2, 0x5
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x1D
- bl sub_80A18E4
- ldr r0, _080A1310 @ =sub_80A1048
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A1314 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0x8]
- cmp r4, 0
- bge _080A1318
- movs r0, 0xA
- b _080A131A
- .align 2, 0
-_080A1310: .4byte sub_80A1048
-_080A1314: .4byte gTasks
-_080A1318:
- movs r0, 0
-_080A131A:
- strh r0, [r1, 0xA]
- ldr r0, _080A1330 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0xC]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1330: .4byte gTasks
- thumb_func_end sub_80A12D0
-
- thumb_func_start sub_80A1334
-sub_80A1334: @ 80A1334
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _080A13E4 @ =gTasks + 0x8
- adds r7, r0, r1
- ldrh r0, [r7]
- ldrh r1, [r7, 0x2]
- adds r0, r1
- strh r0, [r7, 0x2]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0
- cmp r1, 0
- blt _080A136A
- movs r0, 0xA
- cmp r1, 0xA
- bgt _080A136A
- ldrh r0, [r7, 0x2]
-_080A136A:
- lsls r0, 16
- asrs r2, r0, 16
- mov r9, r0
- cmp r2, 0
- ble _080A13A6
- movs r0, 0xA
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A13E8 @ =0x06005b40
- adds r4, r0, r1
- movs r5, 0
- adds r6, r2, 0
- ldr r0, _080A13EC @ =0x001fffff
- mov r8, r0
-_080A1386:
- adds r0, r5, 0
- adds r0, 0xD
- lsls r0, 6
- ldr r1, _080A13F0 @ =gUnknown_08E73E88
- adds r0, r1
- adds r1, r4, 0
- mov r2, r8
- ands r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A1386
-_080A13A6:
- mov r1, r9
- asrs r2, r1, 16
- cmp r2, 0x9
- bgt _080A13F4
- ldr r4, _080A13E8 @ =0x06005b40
- movs r5, 0
- mov r8, sp
- movs r0, 0xA
- subs r6, r0, r2
- ldr r0, _080A13EC @ =0x001fffff
- ands r6, r0
- movs r0, 0x80
- lsls r0, 17
- mov r9, r0
-_080A13C2:
- ldrh r0, [r7, 0x4]
- mov r1, r8
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- mov r2, r9
- orrs r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A13C2
- b _080A1400
- .align 2, 0
-_080A13E4: .4byte gTasks + 0x8
-_080A13E8: .4byte 0x06005b40
-_080A13EC: .4byte 0x001fffff
-_080A13F0: .4byte gUnknown_08E73E88
-_080A13F4:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A1400:
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080A1410
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bge _080A144A
-_080A1410:
- ldr r4, _080A1480 @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x2
- bne _080A1444
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A0958
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _080A1444
- ldr r0, _080A1484 @ =gOtherText_Status
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A1444:
- mov r0, r10
- bl DestroyTask
-_080A144A:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0x9
- ble _080A1470
- ldr r4, _080A1480 @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x2
- bne _080A1460
- ldrb r0, [r7, 0x6]
- bl sub_80A00F4
-_080A1460:
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r7, 0x6
- bl sub_80A0428
- mov r0, r10
- bl DestroyTask
-_080A1470:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1480: .4byte 0x02018000
-_080A1484: .4byte gOtherText_Status
- thumb_func_end sub_80A1334
-
- thumb_func_start sub_80A1488
-sub_80A1488: @ 80A1488
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080A14DC @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x2
- bne _080A14A6
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A14A6:
- ldr r5, _080A14E0 @ =sub_80A1334
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- bne _080A14C2
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
-_080A14C2:
- ldr r1, _080A14E4 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r1
- lsls r0, r6, 24
- asrs r0, 24
- strh r0, [r3, 0x8]
- cmp r0, 0
- bge _080A14E8
- movs r0, 0xA
- b _080A14EA
- .align 2, 0
-_080A14DC: .4byte 0x02018000
-_080A14E0: .4byte sub_80A1334
-_080A14E4: .4byte gTasks
-_080A14E8:
- movs r0, 0
-_080A14EA:
- strh r0, [r3, 0xA]
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- strh r7, [r0, 0xE]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1488
-
- thumb_func_start sub_80A1500
-sub_80A1500: @ 80A1500
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, _080A15B0 @ =gTasks + 0x8
- adds r7, r0, r1
- ldrh r0, [r7]
- ldrh r1, [r7, 0x2]
- adds r0, r1
- strh r0, [r7, 0x2]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0
- cmp r1, 0
- blt _080A1536
- movs r0, 0xA
- cmp r1, 0xA
- bgt _080A1536
- ldrh r0, [r7, 0x2]
-_080A1536:
- lsls r0, 16
- asrs r2, r0, 16
- mov r9, r0
- cmp r2, 0
- ble _080A1572
- movs r0, 0xA
- subs r0, r2
- lsls r0, 1
- ldr r1, _080A15B4 @ =0x06006b40
- adds r4, r0, r1
- movs r5, 0
- adds r6, r2, 0
- ldr r0, _080A15B8 @ =0x001fffff
- mov r8, r0
-_080A1552:
- adds r0, r5, 0
- adds r0, 0xD
- lsls r0, 6
- ldr r1, _080A15BC @ =gUnknown_08E74688
- adds r0, r1
- adds r1, r4, 0
- mov r2, r8
- ands r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A1552
-_080A1572:
- mov r1, r9
- asrs r2, r1, 16
- cmp r2, 0x9
- bgt _080A15C0
- ldr r4, _080A15B4 @ =0x06006b40
- movs r5, 0
- mov r8, sp
- movs r0, 0xA
- subs r6, r0, r2
- ldr r0, _080A15B8 @ =0x001fffff
- ands r6, r0
- movs r0, 0x80
- lsls r0, 17
- mov r9, r0
-_080A158E:
- ldrh r0, [r7, 0x4]
- mov r1, r8
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- mov r2, r9
- orrs r2, r6
- bl CpuSet
- adds r4, 0x40
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x6
- bls _080A158E
- b _080A15CC
- .align 2, 0
-_080A15B0: .4byte gTasks + 0x8
-_080A15B4: .4byte 0x06006b40
-_080A15B8: .4byte 0x001fffff
-_080A15BC: .4byte gUnknown_08E74688
-_080A15C0:
- movs r0, 0
- movs r1, 0x13
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A15CC:
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080A15DC
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bge _080A1616
-_080A15DC:
- ldr r4, _080A164C @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x3
- bne _080A1610
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r4, 0x10
- adds r0, r4, 0
- bl sub_80A0958
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- cmp r0, 0
- beq _080A1610
- ldr r0, _080A1650 @ =gOtherText_Status
- movs r1, 0xD
- movs r2, 0x1
- movs r3, 0x12
- bl sub_80A1FF8
-_080A1610:
- mov r0, r10
- bl DestroyTask
-_080A1616:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0x9
- ble _080A163C
- ldr r4, _080A164C @ =0x02018000
- ldrb r0, [r4, 0xB]
- cmp r0, 0x3
- bne _080A162C
- ldrb r0, [r7, 0x6]
- bl sub_80A00F4
-_080A162C:
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r7, 0x6
- bl sub_80A0428
- mov r0, r10
- bl DestroyTask
-_080A163C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A164C: .4byte 0x02018000
-_080A1650: .4byte gOtherText_Status
- thumb_func_end sub_80A1500
-
- thumb_func_start sub_80A1654
-sub_80A1654: @ 80A1654
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080A16A8 @ =0x02018000
- ldrb r0, [r0, 0xB]
- cmp r0, 0x3
- bne _080A1672
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x9
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080A1672:
- ldr r5, _080A16AC @ =sub_80A1500
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- bne _080A168E
- adds r0, r5, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
-_080A168E:
- ldr r1, _080A16B0 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r1
- lsls r0, r6, 24
- asrs r0, 24
- strh r0, [r3, 0x8]
- cmp r0, 0
- bge _080A16B4
- movs r0, 0xA
- b _080A16B6
- .align 2, 0
-_080A16A8: .4byte 0x02018000
-_080A16AC: .4byte sub_80A1500
-_080A16B0: .4byte gTasks
-_080A16B4:
- movs r0, 0
-_080A16B6:
- strh r0, [r3, 0xA]
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- strh r7, [r0, 0xE]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1654
-
- thumb_func_start sub_80A16CC
-sub_80A16CC: @ 80A16CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080A1724 @ =0x06006ad4
- mov r12, r0
- mov r1, r9
- cmp r1, 0
- bne _080A172C
- movs r5, 0
- ldr r7, _080A1728 @ =gUnknown_08E94510
- movs r0, 0x80
- lsls r0, 5
- adds r6, r0, 0
- movs r1, 0x40
- adds r1, r7
- mov r8, r1
-_080A16F4:
- lsls r2, r5, 1
- mov r0, r12
- adds r3, r2, r0
- adds r4, r2, r7
- ldrh r1, [r4]
- adds r0, r6, r1
- strh r0, [r3]
- adds r1, r3, 0
- adds r1, 0x40
- ldrh r4, [r4]
- adds r0, r6, r4
- strh r0, [r1]
- adds r3, 0x80
- add r2, r8
- ldrh r2, [r2]
- adds r0, r6, r2
- strh r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A16F4
- b _080A1768
- .align 2, 0
-_080A1724: .4byte 0x06006ad4
-_080A1728: .4byte gUnknown_08E94510
-_080A172C:
- movs r5, 0
- ldr r6, _080A17B0 @ =gUnknown_08E94550
- movs r7, 0x80
- lsls r7, 5
- adds r4, r7, 0
- movs r0, 0x40
- adds r0, r6
- mov r8, r0
-_080A173C:
- lsls r1, r5, 1
- mov r7, r12
- adds r2, r1, r7
- adds r0, r1, r6
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r2]
- adds r3, r2, 0
- adds r3, 0x40
- add r1, r8
- ldrh r7, [r1]
- adds r0, r4, r7
- strh r0, [r3]
- adds r2, 0x80
- ldrh r1, [r1]
- adds r0, r4, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A173C
-_080A1768:
- ldr r0, _080A17B4 @ =0x06005ad4
- mov r12, r0
- mov r1, r9
- cmp r1, 0
- bne _080A17BC
- movs r5, 0
- ldr r7, _080A17B8 @ =gUnknown_08E94510
- movs r0, 0xC0
- lsls r0, 6
- adds r6, r0, 0
- movs r1, 0x40
- adds r1, r7
- mov r8, r1
-_080A1782:
- lsls r2, r5, 1
- mov r0, r12
- adds r3, r2, r0
- adds r4, r2, r7
- ldrh r1, [r4]
- adds r0, r6, r1
- strh r0, [r3]
- adds r1, r3, 0
- adds r1, 0x40
- ldrh r4, [r4]
- adds r0, r6, r4
- strh r0, [r1]
- adds r3, 0x80
- add r2, r8
- ldrh r2, [r2]
- adds r0, r6, r2
- strh r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A1782
- b _080A17F8
- .align 2, 0
-_080A17B0: .4byte gUnknown_08E94550
-_080A17B4: .4byte 0x06005ad4
-_080A17B8: .4byte gUnknown_08E94510
-_080A17BC:
- movs r5, 0
- ldr r6, _080A1804 @ =gUnknown_08E94550
- movs r7, 0xC0
- lsls r7, 6
- adds r4, r7, 0
- movs r0, 0x40
- adds r0, r6
- mov r8, r0
-_080A17CC:
- lsls r1, r5, 1
- mov r7, r12
- adds r2, r1, r7
- adds r0, r1, r6
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r2]
- adds r3, r2, 0
- adds r3, 0x40
- add r1, r8
- ldrh r7, [r1]
- adds r0, r4, r7
- strh r0, [r3]
- adds r2, 0x80
- ldrh r1, [r1]
- adds r0, r4, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080A17CC
-_080A17F8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1804: .4byte gUnknown_08E94550
- thumb_func_end sub_80A16CC
-
- thumb_func_start sub_80A1808
-sub_80A1808: @ 80A1808
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r1, 0x41
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1860 @ =gUnknown_02024E8C
- movs r1, 0x28
- movs r2, 0x40
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, r0, 4
- add r4, r8
- lsls r4, 2
- ldr r5, _080A1864 @ =gSprites
- adds r7, r4, r5
- adds r0, r7, 0
- bl FreeSpriteOamMatrix
- strh r6, [r7, 0x2E]
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _080A1868 @ =sub_80A1888
- str r0, [r4]
- adds r0, r6, 0
- bl sub_8040A3C
- lsls r0, 24
- cmp r0, 0
- bne _080A186C
- adds r0, r7, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _080A187A
- .align 2, 0
-_080A1860: .4byte gUnknown_02024E8C
-_080A1864: .4byte gSprites
-_080A1868: .4byte sub_80A1888
-_080A186C:
- adds r2, r7, 0
- adds r2, 0x3F
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080A187A:
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1808
-
- thumb_func_start sub_80A1888
-sub_80A1888: @ 80A1888
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A18B8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A18B0
- ldr r0, _080A18BC @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- ldr r0, _080A18C0 @ =0x02018010
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080A18B0
- ldrh r0, [r4, 0x2E]
- movs r1, 0
- bl PlayCry1
-_080A18B0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A18B8: .4byte gPaletteFade
-_080A18BC: .4byte SpriteCallbackDummy
-_080A18C0: .4byte 0x02018010
- thumb_func_end sub_80A1888
-
- thumb_func_start sub_80A18C4
-sub_80A18C4: @ 80A18C4
- push {lr}
- movs r1, 0
- ldr r3, _080A18E0 @ =0x0201a000
- movs r2, 0xFF
-_080A18CC:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bls _080A18CC
- pop {r0}
- bx r0
- .align 2, 0
-_080A18E0: .4byte 0x0201a000
- thumb_func_end sub_80A18C4
-
- thumb_func_start sub_80A18E4
-sub_80A18E4: @ 80A18E4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A1910 @ =0x0201a000
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080A1908
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1914 @ =gSprites
- adds r0, r1
- bl DestroySprite
- movs r0, 0xFF
- strb r0, [r4]
-_080A1908:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1910: .4byte 0x0201a000
-_080A1914: .4byte gSprites
- thumb_func_end sub_80A18E4
-
- thumb_func_start sub_80A1918
-sub_80A1918: @ 80A1918
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080A1948 @ =gSprites
- ldr r2, _080A194C @ =0x0201a000
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- adds r2, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_080A1948: .4byte gSprites
-_080A194C: .4byte 0x0201a000
- thumb_func_end sub_80A1918
-
- thumb_func_start sub_80A1950
-sub_80A1950: @ 80A1950
- push {r4,r5,lr}
- movs r5, 0
-_080A1954:
- ldr r0, _080A1984 @ =0x0201a000
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080A196C
- ldr r0, _080A1988 @ =gSpriteTemplate_83C11C0
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl CreateSprite
- strb r0, [r4]
-_080A196C:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A1918
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _080A1954
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1984: .4byte 0x0201a000
-_080A1988: .4byte gSpriteTemplate_83C11C0
- thumb_func_end sub_80A1950
-
- thumb_func_start sub_80A198C
-sub_80A198C: @ 80A198C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r10, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, _080A1A24 @ =0x0201a000
- mov r8, r1
- add r8, r10
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1A28 @ =gSprites
- mov r9, r1
- add r0, r9
- adds r1, r4, 0
- bl StartSpriteAnim
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldr r0, _080A1A2C @ =gUnknown_083C11D8
- adds r4, r0
- ldrb r2, [r4]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r5, 0x10
- strh r5, [r0, 0x20]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r6, 0x8
- strh r6, [r0, 0x22]
- mov r0, r10
- movs r1, 0
- bl sub_80A1918
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1A24: .4byte 0x0201a000
-_080A1A28: .4byte gSprites
-_080A1A2C: .4byte gUnknown_083C11D8
- thumb_func_end sub_80A198C
-
- thumb_func_start sub_80A1A30
-sub_80A1A30: @ 80A1A30
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- mov r9, r0
- ldr r1, _080A1A98 @ =0x02018000
- ldrb r0, [r1, 0xB]
- cmp r0, 0x1
- bls _080A1B0A
- cmp r4, 0x9
- bne _080A1A52
- movs r3, 0x1
- mov r9, r3
-_080A1A52:
- movs r5, 0
- movs r0, 0x80
- lsls r0, 6
- adds r0, r1
- mov r8, r0
- ldr r6, _080A1A9C @ =gSprites
- mov r10, r5
-_080A1A60:
- lsls r1, r5, 20
- movs r3, 0xB0
- lsls r3, 15
- adds r1, r3
- asrs r1, 16
- ldr r0, _080A1AA0 @ =gSpriteTemplate_83C1280
- movs r2, 0x28
- mov r3, r9
- bl CreateSprite
- adds r1, r4, r5
- mov r3, r8
- adds r2, r1, r3
- strb r0, [r2]
- adds r7, r1, 0
- cmp r5, 0
- bne _080A1AA4
- adds r0, r4, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x4
- bl StartSpriteAnim
- b _080A1AD0
- .align 2, 0
-_080A1A98: .4byte 0x02018000
-_080A1A9C: .4byte gSprites
-_080A1AA0: .4byte gSpriteTemplate_83C1280
-_080A1AA4:
- cmp r5, 0x9
- bne _080A1AC0
- adds r0, r4, 0
- adds r0, 0x9
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- bl StartSpriteAnim
- b _080A1AD0
-_080A1AC0:
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x6
- bl StartSpriteAnim
-_080A1AD0:
- mov r0, r8
- adds r2, r7, r0
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080A1B18 @ =sub_80A1BC0
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r4, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r10
- strh r1, [r0, 0x30]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _080A1A60
-_080A1B0A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1B18: .4byte sub_80A1BC0
- thumb_func_end sub_80A1A30
-
- thumb_func_start sub_80A1B1C
-sub_80A1B1C: @ 80A1B1C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_080A1B24:
- adds r0, r5, r4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A18E4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080A1B24
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A1B1C
-
- thumb_func_start sub_80A1B40
-sub_80A1B40: @ 80A1B40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 24
- ldr r0, _080A1BB4 @ =0x0201a009
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- ldr r2, _080A1BB8 @ =gSprites
- adds r0, r2
- lsrs r7, r1, 24
- movs r2, 0x80
- lsls r2, 19
- adds r1, r2
- lsrs r1, 24
- bl StartSpriteAnim
- movs r4, 0
- adds r0, r7, 0x6
- lsls r0, 24
- mov r8, r0
-_080A1B74:
- ldr r6, _080A1BBC @ =0x0201a00a
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080A1BB8 @ =gSprites
- adds r0, r5
- mov r2, r8
- lsrs r1, r2, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080A1B74
- ldrb r1, [r6, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r1, r7, 0x5
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1BB4: .4byte 0x0201a009
-_080A1BB8: .4byte gSprites
-_080A1BBC: .4byte 0x0201a00a
- thumb_func_end sub_80A1B40
-
- thumb_func_start sub_80A1BC0
-sub_80A1BC0: @ 80A1BC0
- push {lr}
- adds r2, r0, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _080A1BF8
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x30]
- cmp r0, 0x18
- ble _080A1BEC
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- b _080A1C06
-_080A1BEC:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- b _080A1C04
-_080A1BF8:
- movs r0, 0
- strh r0, [r2, 0x30]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- subs r0, 0x5
-_080A1C04:
- ands r0, r1
-_080A1C06:
- strb r0, [r3]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x9
- bne _080A1C1C
- ldr r0, _080A1C18 @ =0x02018000
- adds r0, 0x79
- b _080A1C20
- .align 2, 0
-_080A1C18: .4byte 0x02018000
-_080A1C1C:
- ldr r0, _080A1C2C @ =0x02018000
- adds r0, 0x7A
-_080A1C20:
- ldrb r0, [r0]
- lsls r0, 4
- strh r0, [r2, 0x26]
- pop {r0}
- bx r0
- .align 2, 0
-_080A1C2C: .4byte 0x02018000
- thumb_func_end sub_80A1BC0
-
- thumb_func_start sub_80A1C30
-sub_80A1C30: @ 80A1C30
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 25
- lsrs r3, r0, 24
- adds r4, r3, 0
- adds r0, r3, 0
- adds r0, 0xA
- cmp r3, r0
- bge _080A1C82
- ldr r5, _080A1C88 @ =gSprites
- movs r7, 0x5
- negs r7, r7
- ldr r6, _080A1C8C @ =0x0201a009
-_080A1C50:
- adds r2, r3, r6
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, 0
- adds r0, 0xA
- cmp r3, r0
- blt _080A1C50
-_080A1C82:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1C88: .4byte gSprites
-_080A1C8C: .4byte 0x0201a009
- thumb_func_end sub_80A1C30
-
- thumb_func_start pokemon_ailments_get_primary
-pokemon_ailments_get_primary: @ 80A1C90
- push {lr}
- adds r1, r0, 0
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- beq _080A1CA0
- movs r0, 0x1
- b _080A1CD2
-_080A1CA0:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080A1CAC
- movs r0, 0x2
- b _080A1CD2
-_080A1CAC:
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080A1CB8
- movs r0, 0x3
- b _080A1CD2
-_080A1CB8:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A1CC4
- movs r0, 0x4
- b _080A1CD2
-_080A1CC4:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080A1CD0
- movs r0, 0
- b _080A1CD2
-_080A1CD0:
- movs r0, 0x5
-_080A1CD2:
- pop {r1}
- bx r1
- thumb_func_end pokemon_ailments_get_primary
-
- thumb_func_start sub_80A1CD8
-sub_80A1CD8: @ 80A1CD8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080A1CEA
- movs r0, 0x7
- b _080A1D12
-_080A1CEA:
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A1D12
- adds r0, r4, 0
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _080A1D10
- movs r0, 0
- b _080A1D12
-_080A1D10:
- movs r0, 0x6
-_080A1D12:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1CD8
-
- thumb_func_start sub_80A1D18
-sub_80A1D18: @ 80A1D18
- push {r4,r5,lr}
- sub sp, 0x64
- mov r0, sp
- bl sub_809F678
- mov r0, sp
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080A1D58
- subs r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A1D50 @ =0x0201a01d
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080A1D60
- ldr r0, _080A1D54 @ =gSpriteTemplate_83C1304
- movs r1, 0x40
- movs r2, 0x98
- movs r3, 0
- bl CreateSprite
- strb r0, [r4]
- b _080A1D60
- .align 2, 0
-_080A1D50: .4byte 0x0201a01d
-_080A1D54: .4byte gSpriteTemplate_83C1304
-_080A1D58:
- movs r0, 0x1D
- bl sub_80A18E4
- b _080A1D74
-_080A1D60:
- ldr r0, _080A1D7C @ =0x0201a01d
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A1D80 @ =gSprites
- adds r0, r1
- adds r1, r5, 0
- bl StartSpriteAnim
-_080A1D74:
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1D7C: .4byte 0x0201a01d
-_080A1D80: .4byte gSprites
- thumb_func_end sub_80A1D18
-
- thumb_func_start sub_80A1D84
-sub_80A1D84: @ 80A1D84
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r1, _080A1DC0 @ =0x00007533
- ldr r2, _080A1DC4 @ =gSummaryScreenMonMarkingsPalette
- adds r0, r1, 0
- bl sub_80F7920
- adds r4, r0, 0
- ldr r6, _080A1DC8 @ =gUnknown_020384F4
- str r4, [r6]
- cmp r4, 0
- beq _080A1DBA
- adds r0, r5, 0
- movs r1, 0x8
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, [r6]
- movs r0, 0x3C
- strh r0, [r1, 0x20]
- movs r0, 0x1A
- strh r0, [r1, 0x22]
-_080A1DBA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1DC0: .4byte 0x00007533
-_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette
-_080A1DC8: .4byte gUnknown_020384F4
- thumb_func_end sub_80A1D84
-
- thumb_func_start sub_80A1DCC
-sub_80A1DCC: @ 80A1DCC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A1DE4 @ =gUnknown_020384F4
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- bl sub_80A1D84
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1DE4: .4byte gUnknown_020384F4
- thumb_func_end sub_80A1DCC
-
- thumb_func_start sub_80A1DE8
-sub_80A1DE8: @ 80A1DE8
- push {r4,lr}
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80478DC
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A1E48 @ =gSpriteTemplate_820AAB4
- adds r0, r1
- movs r1, 0x6
- movs r2, 0x88
- movs r3, 0
- bl CreateSprite
- ldr r2, _080A1E4C @ =0x02018000
- strb r0, [r2, 0xD]
- ldr r3, _080A1E50 @ =gSprites
- ldrb r1, [r2, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080A1E54 @ =SpriteCallbackDummy
- str r1, [r0]
- ldrb r1, [r2, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1E48: .4byte gSpriteTemplate_820AAB4
-_080A1E4C: .4byte 0x02018000
-_080A1E50: .4byte gSprites
-_080A1E54: .4byte SpriteCallbackDummy
- thumb_func_end sub_80A1DE8
-
- thumb_func_start sub_80A1E58
-sub_80A1E58: @ 80A1E58
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0xFF
- beq _080A1E92
- ldr r3, _080A1E6C @ =gUnknown_083C15BC
- ldrb r0, [r3]
- adds r4, r2, 0x5
- b _080A1E74
- .align 2, 0
-_080A1E6C: .4byte gUnknown_083C15BC
-_080A1E70:
- adds r3, 0x4
- ldrb r0, [r3]
-_080A1E74:
- cmp r0, 0xFF
- beq _080A1E7C
- cmp r0, r1
- bne _080A1E70
-_080A1E7C:
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x4
- strb r0, [r2, 0x1]
- ldrb r0, [r3, 0x1]
- strb r0, [r2, 0x2]
- ldrb r0, [r3, 0x2]
- strb r0, [r2, 0x3]
- ldrb r0, [r3, 0x3]
- strb r0, [r2, 0x4]
- adds r2, r4, 0
-_080A1E92:
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1E58
-
- thumb_func_start sub_80A1E9C
-sub_80A1E9C: @ 80A1E9C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- mov r1, sp
- adds r1, 0x1
- mov r2, sp
- adds r2, 0x2
- mov r0, sp
- bl sub_8072CD4
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80A1E58
- adds r6, r0, 0
- adds r1, r5, 0
- bl StringCopy
- adds r6, r0, 0
- cmp r4, 0xFF
- beq _080A1EEC
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x4
- strb r0, [r6, 0x1]
- mov r0, sp
- ldrb r0, [r0]
- strb r0, [r6, 0x2]
- mov r0, sp
- ldrb r0, [r0, 0x1]
- strb r0, [r6, 0x3]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- strb r0, [r6, 0x4]
- movs r0, 0xFF
- strb r0, [r6, 0x5]
- adds r6, 0x5
-_080A1EEC:
- adds r0, r6, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80A1E9C
-
- thumb_func_start sub_80A1EF8
-sub_80A1EF8: @ 80A1EF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1F44 @ =gStringVar4
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- str r3, [sp]
- bl sub_80A1E9C
- ldr r3, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint_PixelCoords
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1F44: .4byte gStringVar4
- thumb_func_end sub_80A1EF8
-
- thumb_func_start sub_80A1F48
-sub_80A1F48: @ 80A1F48
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _080A1F94 @ =gStringVar4
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- str r3, [sp]
- bl sub_80A1E9C
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- ldr r3, [sp]
- bl sub_8072BD8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1F94: .4byte gStringVar4
- thumb_func_end sub_80A1F48
-
- thumb_func_start sub_80A1F98
-sub_80A1F98: @ 80A1F98
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- mov r8, r1
- adds r4, r2, 0
- adds r2, r3, 0
- ldr r5, [sp, 0x24]
- ldr r6, [sp, 0x28]
- ldr r7, [sp, 0x2C]
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _080A1FF4 @ =gStringVar1
- mov r9, r0
- mov r1, r10
- adds r3, r4, 0
- bl ConvertIntToDecimalStringN
- str r7, [sp]
- mov r0, r9
- mov r1, r8
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_80A1EF8
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A1FF4: .4byte gStringVar1
- thumb_func_end sub_80A1F98
-
- thumb_func_start sub_80A1FF8
-sub_80A1FF8: @ 80A1FF8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _080A2038 @ =gStringVar4
- mov r8, r0
- mov r1, r9
- adds r2, r4, 0
- bl sub_80A1E9C
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2038: .4byte gStringVar4
- thumb_func_end sub_80A1FF8
-
- thumb_func_start sub_80A203C
-sub_80A203C: @ 80A203C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x34
- strb r0, [r4]
- adds r4, 0x1
- cmp r1, 0
- bne _080A2052
- movs r1, 0x5
-_080A2052:
- mov r0, sp
- bl ConvertIntToDecimalString
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0xE
- bl sub_80A1E9C
- adds r4, r0, 0
- ldr r1, _080A2074 @ =gOtherText_Comma
- bl StringCopy
- adds r4, r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2074: .4byte gOtherText_Comma
- thumb_func_end sub_80A203C
-
- thumb_func_start sub_80A2078
-sub_80A2078: @ 80A2078
- push {lr}
- ldr r3, _080A209C @ =gUnknown_03005CF0
- ldr r2, _080A20A0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, [r1]
- str r2, [r3]
- ldr r2, _080A20A4 @ =sub_80A20A8
- str r2, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080A209C: .4byte gUnknown_03005CF0
-_080A20A0: .4byte gTasks
-_080A20A4: .4byte sub_80A20A8
- thumb_func_end sub_80A2078
-
- thumb_func_start sub_80A20A8
-sub_80A20A8: @ 80A20A8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _080A20C6
- ldr r1, _080A20CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A20D0 @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_080A20C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A20CC: .4byte gTasks
-_080A20D0: .4byte gUnknown_03005CF0
- thumb_func_end sub_80A20A8
-
- thumb_func_start exec_movement
-exec_movement: @ 80A20D4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r3, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _080A20F6
- movs r0, 0x1
- b _080A211E
-_080A20F6:
- ldr r0, _080A2128 @ =sub_80A244C
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _080A2108
- movs r0, 0x32
- bl sub_80A2198
-_080A2108:
- bl sub_80A21E0
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- ldrb r1, [r1]
- adds r2, r4, 0
- bl sub_80A21F4
- lsls r0, 24
- lsrs r0, 24
-_080A211E:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2128: .4byte sub_80A244C
- thumb_func_end exec_movement
-
- thumb_func_start sub_80A212C
-sub_80A212C: @ 80A212C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _080A216E
- bl sub_80A21E0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80A2260
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x10
- beq _080A216E
- adds r0, r4, 0
- bl sub_80A2370
- lsls r0, 24
- lsrs r0, 24
- b _080A2170
-_080A216E:
- movs r0, 0x1
-_080A2170:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A212C
-
- thumb_func_start sub_80A2178
-sub_80A2178: @ 80A2178
- push {r4,lr}
- bl sub_80A21E0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- beq _080A2192
- adds r0, r4, 0
- bl sub_80A2408
- adds r0, r4, 0
- bl DestroyTask
-_080A2192:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2178
-
- thumb_func_start sub_80A2198
-sub_80A2198: @ 80A2198
- push {r4,r5,lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080A21D4 @ =sub_80A244C
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1
- lsls r1, r0, 2
- adds r1, r0
- lsls r3, r1, 3
- ldr r5, _080A21D8 @ =gTasks + 0x8
- ldr r0, _080A21DC @ =0x0000ffff
- adds r4, r0, 0
-_080A21B8:
- lsls r0, r2, 1
- adds r0, r3
- adds r0, r5
- ldrh r1, [r0]
- orrs r1, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _080A21B8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A21D4: .4byte sub_80A244C
-_080A21D8: .4byte gTasks + 0x8
-_080A21DC: .4byte 0x0000ffff
- thumb_func_end sub_80A2198
-
- thumb_func_start sub_80A21E0
-sub_80A21E0: @ 80A21E0
- push {lr}
- ldr r0, _080A21F0 @ =sub_80A244C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080A21F0: .4byte sub_80A244C
- thumb_func_end sub_80A21E0
-
- thumb_func_start sub_80A21F4
-sub_80A21F4: @ 80A21F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r1, 24
- lsrs r6, r1, 24
- mov r8, r6
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80A2260
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _080A2230
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2370
- lsls r0, 24
- cmp r0, 0
- beq _080A2250
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- b _080A2246
-_080A2230:
- adds r0, r7, 0
- movs r1, 0xFF
- bl sub_80A2260
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _080A2250
- adds r0, r7, 0
- adds r1, r4, 0
- mov r2, r8
-_080A2246:
- mov r3, r9
- bl sub_80A23C8
- movs r0, 0
- b _080A2252
-_080A2250:
- movs r0, 0x1
-_080A2252:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A21F4
-
- thumb_func_start sub_80A2260
-sub_80A2260: @ 80A2260
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A2284 @ =gTasks + 0x8
- adds r1, r0
- adds r1, 0x2
- movs r2, 0
-_080A2278:
- ldrb r0, [r1]
- cmp r0, r3
- bne _080A2288
- adds r0, r2, 0
- b _080A2296
- .align 2, 0
-_080A2284: .4byte gTasks + 0x8
-_080A2288:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, 0x1
- cmp r2, 0xF
- bls _080A2278
- movs r0, 0x10
-_080A2296:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2260
-
- thumb_func_start sub_80A229C
-sub_80A229C: @ 80A229C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A22CC @ =gTasks + 0x8
- adds r1, r0
- adds r1, 0x2
- str r1, [r2]
- movs r0, 0
- cmp r0, r3
- bcs _080A22C8
-_080A22BA:
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r1, 0x1
- cmp r0, r3
- bcc _080A22BA
- str r1, [r2]
-_080A22C8:
- pop {r0}
- bx r0
- .align 2, 0
-_080A22CC: .4byte gTasks + 0x8
- thumb_func_end sub_80A229C
-
- thumb_func_start sub_80A22D0
-sub_80A22D0: @ 80A22D0
- push {r4,lr}
- sub sp, 0x4
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- mov r2, sp
- bl sub_80A229C
- ldr r0, [sp]
- strb r4, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A22D0
-
- thumb_func_start sub_80A22F4
-sub_80A22F4: @ 80A22F4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r2, sp
- bl sub_80A229C
- ldr r0, [sp]
- ldrb r0, [r0]
- strb r0, [r4]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A22F4
-
- thumb_func_start sub_80A2318
-sub_80A2318: @ 80A2318
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r2, _080A2340 @ =gBitTable
- lsrs r1, 22
- adds r1, r2
- ldr r2, [r1]
- mvns r2, r2
- lsls r2, 16
- lsrs r2, 16
- ldr r3, _080A2344 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldrh r0, [r1, 0x8]
- ands r2, r0
- strh r2, [r1, 0x8]
- bx lr
- .align 2, 0
-_080A2340: .4byte gBitTable
-_080A2344: .4byte gTasks
- thumb_func_end sub_80A2318
-
- thumb_func_start sub_80A2348
-sub_80A2348: @ 80A2348
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _080A2368 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldr r0, _080A236C @ =gBitTable
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldrh r1, [r2, 0x8]
- orrs r0, r1
- strh r0, [r2, 0x8]
- bx lr
- .align 2, 0
-_080A2368: .4byte gTasks
-_080A236C: .4byte gBitTable
- thumb_func_end sub_80A2348
-
- thumb_func_start sub_80A2370
-sub_80A2370: @ 80A2370
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _080A2398 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldr r0, _080A239C @ =gBitTable
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldrh r1, [r2, 0x8]
- ands r0, r1
- cmp r0, 0
- bne _080A23A0
- movs r0, 0
- b _080A23A2
- .align 2, 0
-_080A2398: .4byte gTasks
-_080A239C: .4byte gBitTable
-_080A23A0:
- movs r0, 0x1
-_080A23A2:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2370
-
- thumb_func_start npc_obj_offscreen_culling_and_flag_update
-npc_obj_offscreen_culling_and_flag_update: @ 80A23A8
- lsls r0, 24
- ldr r2, _080A23B4 @ =gUnknown_020384F8
- lsrs r0, 22
- adds r0, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_080A23B4: .4byte gUnknown_020384F8
- thumb_func_end npc_obj_offscreen_culling_and_flag_update
-
- thumb_func_start sub_80A23B8
-sub_80A23B8: @ 80A23B8
- lsls r0, 24
- ldr r1, _080A23C4 @ =gUnknown_020384F8
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080A23C4: .4byte gUnknown_020384F8
- thumb_func_end sub_80A23B8
-
- thumb_func_start sub_80A23C8
-sub_80A23C8: @ 80A23C8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2318
- adds r0, r4, 0
- mov r1, r8
- bl npc_obj_offscreen_culling_and_flag_update
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_80A22D0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A23C8
-
- thumb_func_start sub_80A2408
-sub_80A2408: @ 80A2408
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A2444 @ =gTasks + 0x8
- adds r1, r0
- adds r4, r1, 0x2
- movs r5, 0
-_080A241C:
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080A2432
- adds r1, r0, 0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A2448 @ =gMapObjects
- adds r0, r1
- bl npc_sync_anim_pause_bits
-_080A2432:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x1
- cmp r5, 0xF
- bls _080A241C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2444: .4byte gTasks + 0x8
-_080A2448: .4byte gMapObjects
- thumb_func_end sub_80A2408
-
- thumb_func_start sub_80A244C
-sub_80A244C: @ 80A244C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r5, 0
- mov r6, sp
-_080A2458:
- adds r0, r7, 0
- adds r1, r5, 0
- mov r2, sp
- bl sub_80A22F4
- ldrb r0, [r6]
- cmp r0, 0xFF
- beq _080A247C
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_80A23B8
- adds r3, r0, 0
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_80A2490
-_080A247C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080A2458
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A244C
-
- thumb_func_start sub_80A2490
-sub_80A2490: @ 80A2490
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r3, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- mov r8, r6
- lsls r2, 24
- lsrs r2, 24
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r1, _080A24E0 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080A24C8
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080A24FA
-_080A24C8:
- ldrb r1, [r5]
- cmp r1, 0xFE
- bne _080A24E4
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80A2348
- adds r0, r4, 0
- bl sub_80643A4
- b _080A24FA
- .align 2, 0
-_080A24E0: .4byte gMapObjects
-_080A24E4:
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- lsls r0, 24
- cmp r0, 0
- bne _080A24FA
- adds r5, 0x1
- mov r0, r8
- adds r1, r5, 0
- bl npc_obj_offscreen_culling_and_flag_update
-_080A24FA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2490
-
- thumb_func_start SetUpFieldMove_Cut
-SetUpFieldMove_Cut: @ 80A2504
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0x52
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A2534
- ldr r1, _080A2524 @ =gUnknown_0300485C
- ldr r0, _080A2528 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _080A252C @ =gUnknown_03005CE4
- ldr r0, _080A2530 @ =sub_80A2634
- b _080A25A8
- .align 2, 0
-_080A2524: .4byte gUnknown_0300485C
-_080A2528: .4byte sub_808AB90
-_080A252C: .4byte gUnknown_03005CE4
-_080A2530: .4byte sub_80A2634
-_080A2534:
- ldr r4, _080A25B0 @ =gUnknown_0203923C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl PlayerGetDestCoords
- movs r7, 0
- mov r8, r4
-_080A2542:
- ldr r1, _080A25B4 @ =0x0000ffff
- adds r0, r7, r1
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- movs r6, 0
- lsls r0, 16
- asrs r5, r0, 16
-_080A2552:
- ldr r1, _080A25B4 @ =0x0000ffff
- adds r0, r6, r1
- mov r2, r8
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _080A25C8
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8056E14
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A259E
- adds r0, r4, 0
- bl MetatileBehavior_IsAsh
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A25C8
-_080A259E:
- ldr r1, _080A25B8 @ =gUnknown_0300485C
- ldr r0, _080A25BC @ =sub_808AB90
- str r0, [r1]
- ldr r1, _080A25C0 @ =gUnknown_03005CE4
- ldr r0, _080A25C4 @ =sub_80A25E8
-_080A25A8:
- str r0, [r1]
- movs r0, 0x1
- b _080A25DE
- .align 2, 0
-_080A25B0: .4byte gUnknown_0203923C
-_080A25B4: .4byte 0x0000ffff
-_080A25B8: .4byte gUnknown_0300485C
-_080A25BC: .4byte sub_808AB90
-_080A25C0: .4byte gUnknown_03005CE4
-_080A25C4: .4byte sub_80A25E8
-_080A25C8:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _080A2552
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _080A2542
- movs r0, 0
-_080A25DE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Cut
-
- thumb_func_start sub_80A25E8
-sub_80A25E8: @ 80A25E8
- push {lr}
- movs r0, 0x1
- bl FieldEffectStart
- ldr r0, _080A25FC @ =gUnknown_0202FF84
- ldr r1, _080A2600 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080A25FC: .4byte gUnknown_0202FF84
-_080A2600: .4byte gUnknown_03005CE0
- thumb_func_end sub_80A25E8
-
- thumb_func_start FldEff_UseCutOnGrass
-FldEff_UseCutOnGrass: @ 80A2604
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A262C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080A2630 @ =sub_80A2684
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x12
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A262C: .4byte gTasks
-_080A2630: .4byte sub_80A2684
- thumb_func_end FldEff_UseCutOnGrass
-
- thumb_func_start sub_80A2634
-sub_80A2634: @ 80A2634
- push {lr}
- ldr r1, _080A2648 @ =gUnknown_0202FF84
- ldr r0, _080A264C @ =gUnknown_03005CE0
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080A2650 @ =UseCutScript
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080A2648: .4byte gUnknown_0202FF84
-_080A264C: .4byte gUnknown_03005CE0
-_080A2650: .4byte UseCutScript
- thumb_func_end sub_80A2634
-
- thumb_func_start FldEff_UseCutOnTree
-FldEff_UseCutOnTree: @ 80A2654
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A267C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080A2680 @ =sub_80A2B00
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x12
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A267C: .4byte gTasks
-_080A2680: .4byte sub_80A2B00
- thumb_func_end FldEff_UseCutOnTree
-
- thumb_func_start sub_80A2684
-sub_80A2684: @ 80A2684
- push {lr}
- movs r0, 0x1
- bl FieldEffectActiveListRemove
- movs r0, 0x3A
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80A2684
-
- thumb_func_start FldEff_CutGrass
-FldEff_CutGrass: @ 80A2698
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- movs r0, 0x80
- bl PlaySE
- ldr r4, _080A2790 @ =gUnknown_0203923C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl PlayerGetDestCoords
- mov r8, r4
-_080A26B2:
- ldr r1, _080A2794 @ =0x0000ffff
- adds r0, r7, r1
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- movs r6, 0
- lsls r0, 16
- asrs r5, r0, 16
-_080A26C2:
- ldr r1, _080A2794 @ =0x0000ffff
- adds r0, r6, r1
- mov r2, r8
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- cmp r0, r1
- bne _080A270E
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80578F8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A270E
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A27A8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_805BCC0
-_080A270E:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _080A26C2
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _080A26B2
- ldr r1, _080A2790 @ =gUnknown_0203923C
- ldrh r0, [r1]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r1, 0x2]
- subs r1, 0x2
- lsls r1, 16
- asrs r1, 16
- bl sub_80A28F4
- bl DrawWholeMapView
- movs r7, 0
- ldr r4, _080A2798 @ =gSprites
-_080A2740:
- ldr r0, _080A279C @ =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r2, 0x80
- lsls r2, 12
- adds r1, r2
- asrs r1, 16
- ldrb r2, [r0]
- adds r2, 0x14
- ldr r0, _080A27A0 @ =gSpriteTemplate_CutGrass
- movs r3, 0
- bl CreateSprite
- ldr r1, _080A27A4 @ =0x0201fff0
- adds r1, r7, r1
- strb r0, [r1]
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- lsls r1, r7, 5
- strh r1, [r0, 0x32]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _080A2740
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A2790: .4byte gUnknown_0203923C
-_080A2794: .4byte 0x0000ffff
-_080A2798: .4byte gSprites
-_080A279C: .4byte gPlayerAvatar
-_080A27A0: .4byte gSpriteTemplate_CutGrass
-_080A27A4: .4byte 0x0201fff0
- thumb_func_end FldEff_CutGrass
-
- thumb_func_start sub_80A27A8
-sub_80A27A8: @ 80A27A8
- push {r4-r7,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r6, r0, 16
- asrs r4, r0, 16
- lsrs r7, r1, 16
- asrs r5, r1, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _080A27E0 @ =0x00000207
- cmp r1, r0
- bgt _080A27F4
- subs r0, 0x1
- cmp r1, r0
- bge _080A286C
- cmp r1, 0x25
- beq _080A288E
- cmp r1, 0x25
- bgt _080A27E4
- cmp r1, 0xD
- beq _080A2834
- cmp r1, 0x15
- beq _080A2834
- b _080A2898
- .align 2, 0
-_080A27E0: .4byte 0x00000207
-_080A27E4:
- movs r0, 0xE3
- lsls r0, 1
- cmp r1, r0
- beq _080A2844
- adds r0, 0x1
- cmp r1, r0
- beq _080A284A
- b _080A2898
-_080A27F4:
- ldr r0, _080A280C @ =0x00000212
- cmp r1, r0
- beq _080A287C
- cmp r1, r0
- bgt _080A2810
- subs r0, 0xA
- cmp r1, r0
- beq _080A2834
- adds r0, 0x2
- cmp r1, r0
- beq _080A287C
- b _080A2898
- .align 2, 0
-_080A280C: .4byte 0x00000212
-_080A2810:
- ldr r0, _080A2824 @ =0x00000282
- cmp r1, r0
- beq _080A285C
- cmp r1, r0
- bgt _080A2828
- subs r0, 0x1
- cmp r1, r0
- beq _080A2854
- b _080A2898
- .align 2, 0
-_080A2824: .4byte 0x00000282
-_080A2828:
- ldr r0, _080A2830 @ =0x00000283
- cmp r1, r0
- beq _080A2864
- b _080A2898
- .align 2, 0
-_080A2830: .4byte 0x00000283
-_080A2834:
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- movs r2, 0x1
- bl MapGridSetMetatileIdAt
- b _080A2898
-_080A2844:
- movs r2, 0xE7
- lsls r2, 1
- b _080A286E
-_080A284A:
- ldr r2, _080A2850 @ =0x000001cf
- b _080A286E
- .align 2, 0
-_080A2850: .4byte 0x000001cf
-_080A2854:
- ldr r2, _080A2858 @ =0x00000279
- b _080A286E
- .align 2, 0
-_080A2858: .4byte 0x00000279
-_080A285C:
- ldr r2, _080A2860 @ =0x0000027a
- b _080A286E
- .align 2, 0
-_080A2860: .4byte 0x0000027a
-_080A2864:
- ldr r2, _080A2868 @ =0x0000027b
- b _080A286E
- .align 2, 0
-_080A2868: .4byte 0x0000027b
-_080A286C:
- ldr r2, _080A2878 @ =0x00000271
-_080A286E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _080A2898
- .align 2, 0
-_080A2878: .4byte 0x00000271
-_080A287C:
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r7, 16
- asrs r1, 16
- movs r2, 0x86
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- b _080A2898
-_080A288E:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xE
- bl MapGridSetMetatileIdAt
-_080A2898:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A27A8
-
- thumb_func_start sub_80A28A0
-sub_80A28A0: @ 80A28A0
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r1, 0
- cmp r1, 0x1
- bne _080A28BC
- movs r0, 0x1
- b _080A28EE
-_080A28BC:
- ldr r0, _080A28C8 @ =0x00000279
- cmp r1, r0
- bne _080A28CC
- movs r0, 0x2
- b _080A28EE
- .align 2, 0
-_080A28C8: .4byte 0x00000279
-_080A28CC:
- ldr r0, _080A28D8 @ =0x0000027a
- cmp r1, r0
- bne _080A28DC
- movs r0, 0x3
- b _080A28EE
- .align 2, 0
-_080A28D8: .4byte 0x0000027a
-_080A28DC:
- ldr r0, _080A28E8 @ =0x0000027b
- cmp r2, r0
- beq _080A28EC
- movs r0, 0
- b _080A28EE
- .align 2, 0
-_080A28E8: .4byte 0x0000027b
-_080A28EC:
- movs r0, 0x4
-_080A28EE:
- pop {r1}
- bx r1
- thumb_func_end sub_80A28A0
-
- thumb_func_start sub_80A28F4
-sub_80A28F4: @ 80A28F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 16
- movs r2, 0xC0
- lsls r2, 10
- adds r0, r1, r2
- lsrs r0, 16
- mov r9, r0
- movs r4, 0
- asrs r7, r1, 16
-_080A2914:
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- lsls r4, 16
- asrs r1, r4, 16
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r5, r0, 16
- adds r0, r5, 0
- adds r1, r7, 0
- bl MapGridGetMetatileIdAt
- mov r8, r4
- cmp r0, 0x15
- bne _080A2996
- adds r4, r7, 0x1
- lsls r1, r4, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_80A28A0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080A296A
- cmp r0, 0x2
- bgt _080A2952
- cmp r0, 0x1
- beq _080A295C
- b _080A2996
-_080A2952:
- cmp r0, 0x3
- beq _080A297C
- cmp r0, 0x4
- beq _080A298C
- b _080A2996
-_080A295C:
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x82
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- b _080A2996
-_080A296A:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2978 @ =0x00000281
- bl MapGridSetMetatileIdAt
- b _080A2996
- .align 2, 0
-_080A2978: .4byte 0x00000281
-_080A297C:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2988 @ =0x00000282
- bl MapGridSetMetatileIdAt
- b _080A2996
- .align 2, 0
-_080A2988: .4byte 0x00000282
-_080A298C:
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A30 @ =0x00000283
- bl MapGridSetMetatileIdAt
-_080A2996:
- lsls r0, r6, 16
- asrs r5, r0, 16
- mov r2, r9
- lsls r0, r2, 16
- asrs r4, r0, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- cmp r0, 0x1
- bne _080A2A10
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x82
- lsls r1, 2
- cmp r0, r1
- bne _080A29C8
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl MapGridSetMetatileIdAt
-_080A29C8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A34 @ =0x00000281
- cmp r0, r1
- bne _080A29E0
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A38 @ =0x00000279
- bl MapGridSetMetatileIdAt
-_080A29E0:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A3C @ =0x00000282
- cmp r0, r1
- bne _080A29F8
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A40 @ =0x0000027a
- bl MapGridSetMetatileIdAt
-_080A29F8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _080A2A30 @ =0x00000283
- cmp r0, r1
- bne _080A2A10
- adds r0, r5, 0
- adds r1, r4, 0
- ldr r2, _080A2A44 @ =0x0000027b
- bl MapGridSetMetatileIdAt
-_080A2A10:
- movs r0, 0x80
- lsls r0, 9
- add r0, r8
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bgt _080A2A20
- b _080A2914
-_080A2A20:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2A30: .4byte 0x00000283
-_080A2A34: .4byte 0x00000281
-_080A2A38: .4byte 0x00000279
-_080A2A3C: .4byte 0x00000282
-_080A2A40: .4byte 0x0000027a
-_080A2A44: .4byte 0x0000027b
- thumb_func_end sub_80A28F4
-
- thumb_func_start sub_80A2A48
-sub_80A2A48: @ 80A2A48
- movs r2, 0
- movs r1, 0x8
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- strh r2, [r0, 0x34]
- ldr r1, _080A2A58 @ =objc_8097BBC
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A2A58: .4byte objc_8097BBC
- thumb_func_end sub_80A2A48
-
- thumb_func_start objc_8097BBC
-objc_8097BBC: @ 80A2A5C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x2E]
- adds r1, 0x1
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 18
- adds r1, r0
- strh r1, [r4, 0x2E]
- adds r2, 0x1
- strh r2, [r4, 0x34]
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x1C
- beq _080A2AA8
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080A2AAC
-_080A2AA8:
- ldr r0, _080A2AB4 @ =sub_80A2AB8
- str r0, [r4, 0x1C]
-_080A2AAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AB4: .4byte sub_80A2AB8
- thumb_func_end objc_8097BBC
-
- thumb_func_start sub_80A2AB8
-sub_80A2AB8: @ 80A2AB8
- push {r4-r6,lr}
- movs r4, 0x1
-_080A2ABC:
- ldr r6, _080A2AF8 @ =0x0201fff0
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080A2AFC @ =gSprites
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080A2ABC
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x3A
- bl FieldEffectStop
- bl sub_8064E2C
- bl ScriptContext2_Disable
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AF8: .4byte 0x0201fff0
-_080A2AFC: .4byte gSprites
- thumb_func_end sub_80A2AB8
-
- thumb_func_start sub_80A2B00
-sub_80A2B00: @ 80A2B00
- push {lr}
- movs r0, 0x80
- bl PlaySE
- movs r0, 0x2
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80A2B00
-
- thumb_func_start sub_80A2B18
-sub_80A2B18: @ 80A2B18
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080A2B3C @ =gSaveBlock1 + 0x2B4C
-_080A2B1E:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- bl sub_80A2B40
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080A2B1E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2B3C: .4byte gSaveBlock1 + 0x2B4C
- thumb_func_end sub_80A2B18
-
- thumb_func_start sub_80A2B40
-sub_80A2B40: @ 80A2B40
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r0, _080A2B90 @ =0x0000ffff
- adds r4, r0, 0
- adds r1, r3, 0
- movs r2, 0x8
-_080A2B4C:
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080A2B4C
- movs r2, 0
- adds r6, r3, 0
- adds r6, 0x1A
- adds r4, r3, 0
- adds r4, 0x12
- movs r5, 0xFF
-_080A2B66:
- adds r1, r4, r2
- ldrb r0, [r1]
- orrs r0, r5
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080A2B66
- adds r1, r6, 0
- movs r2, 0
- adds r0, r1, 0x3
-_080A2B7A:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _080A2B7A
- movs r1, 0
- movs r0, 0x1
- strh r0, [r3, 0x1E]
- strh r1, [r3, 0x20]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2B90: .4byte 0x0000ffff
- thumb_func_end sub_80A2B40
-
- thumb_func_start sub_80A2B94
-sub_80A2B94: @ 80A2B94
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _080A2BBC
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- cmp r0, 0xFF
- beq _080A2BBC
- movs r0, 0x1
- b _080A2BBE
-_080A2BBC:
- movs r0, 0
-_080A2BBE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2B94
-
- thumb_func_start sub_80A2BC4
-sub_80A2BC4: @ 80A2BC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r7, r0, 0
- lsls r1, 16
- lsrs r0, r1, 16
- str r0, [sp, 0x8]
- mov r0, sp
- movs r2, 0
- ldrb r3, [r0, 0x8]
- strb r3, [r0]
- lsrs r1, 24
- strb r1, [r0, 0x1]
- add r3, sp, 0x4
- strb r2, [r3]
- mov r10, r3
- ldr r4, _080A2D00 @ =gSaveBlock1
- mov r9, r4
- mov r8, r3
- adds r2, r3, 0
-_080A2BF2:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldr r5, _080A2D04 @ =0x00002b6c
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _080A2C08
- b _080A2D24
-_080A2C08:
- movs r3, 0
- ldr r0, _080A2D08 @ =gSaveBlock2
- mov r12, r0
- mov r4, r10
- ldr r6, _080A2D0C @ =gSaveBlock1 + 0x2B4C
- ldr r1, _080A2D10 @ =0x0000ffff
- adds r5, r1, 0
-_080A2C16:
- lsls r2, r3, 1
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- adds r2, r6
- ldrh r0, [r2]
- orrs r0, r5
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bls _080A2C16
- movs r3, 0
- mov r2, r10
- ldr r4, _080A2D14 @ =gSaveBlock1 + 0x2B5E
-_080A2C3A:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r4
- mov r5, r12
- adds r1, r3, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x6
- bls _080A2C3A
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- ldr r1, _080A2D14 @ =gSaveBlock1 + 0x2B5E
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- mov r2, r8
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r3, _080A2D14 @ =gSaveBlock1 + 0x2B5E
- adds r0, r3
- movs r1, 0
- bl sub_814A518
- movs r3, 0
- mov r2, r10
- ldr r5, _080A2D18 @ =gSaveBlock1 + 0x2B66
- ldr r4, _080A2D1C @ =gSaveBlock2 + 0xA
-_080A2C88:
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r5
- adds r1, r3, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080A2C88
- adds r0, r7, 0
- movs r1, 0xB
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_80A2D44
- mov r4, r8
- ldrb r2, [r4]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- add r1, r9
- ldr r5, _080A2D20 @ =0x00002b6a
- adds r1, r5
- strh r0, [r1]
- ldrb r1, [r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldr r1, _080A2D04 @ =0x00002b6c
- adds r0, r1
- mov r2, sp
- ldrh r2, [r2, 0x8]
- strh r2, [r0]
- adds r0, r7, 0
- movs r1, 0x40
- mov r2, r8
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldrb r0, [r4]
- b _080A2D32
- .align 2, 0
-_080A2D00: .4byte gSaveBlock1
-_080A2D04: .4byte 0x00002b6c
-_080A2D08: .4byte gSaveBlock2
-_080A2D0C: .4byte gSaveBlock1 + 0x2B4C
-_080A2D10: .4byte 0x0000ffff
-_080A2D14: .4byte gSaveBlock1 + 0x2B5E
-_080A2D18: .4byte gSaveBlock1 + 0x2B66
-_080A2D1C: .4byte gSaveBlock2 + 0xA
-_080A2D20: .4byte 0x00002b6a
-_080A2D24:
- adds r0, r1, 0x1
- strb r0, [r3]
- ldrb r0, [r2]
- cmp r0, 0x5
- bhi _080A2D30
- b _080A2BF2
-_080A2D30:
- movs r0, 0xFF
-_080A2D32:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2BC4
-
- thumb_func_start sub_80A2D44
-sub_80A2D44: @ 80A2D44
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC9
- bne _080A2D5C
- adds r0, r1, 0
- bl sub_809D474
- lsls r0, 16
- ldr r1, _080A2D60 @ =0x75300000
- adds r0, r1
- lsrs r0, 16
-_080A2D5C:
- pop {r1}
- bx r1
- .align 2, 0
-_080A2D60: .4byte 0x75300000
- thumb_func_end sub_80A2D44
-
- thumb_func_start sub_80A2D64
-sub_80A2D64: @ 80A2D64
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080A2D7C @ =0xffff8ad0
- adds r2, r3, r0
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x1B
- bhi _080A2D80
- movs r0, 0xC9
- strh r2, [r1]
- b _080A2D82
- .align 2, 0
-_080A2D7C: .4byte 0xffff8ad0
-_080A2D80:
- adds r0, r3, 0
-_080A2D82:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2D64
-
- thumb_func_start sub_80A2D88
-sub_80A2D88: @ 80A2D88
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r7, r1, 0
- ldrh r5, [r7, 0x20]
- adds r1, r5, 0
- bl sub_80A2BC4
- add r4, sp, 0x4
- strb r0, [r4]
- ldrb r2, [r4]
- cmp r2, 0xFF
- beq _080A2DE8
- ldr r0, _080A2DE0 @ =gSaveBlock1
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, _080A2DE4 @ =0x00002b4c
- adds r1, r0
- adds r0, r7, 0
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r6, 0
- movs r1, 0x40
- adds r2, r4, 0
- bl SetMonData
- mov r0, sp
- strb r5, [r0]
- mov r1, sp
- lsrs r0, r5, 8
- strb r0, [r1, 0x1]
- adds r0, r6, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldrb r0, [r4]
- b _080A2DEA
- .align 2, 0
-_080A2DE0: .4byte gSaveBlock1
-_080A2DE4: .4byte 0x00002b4c
-_080A2DE8:
- movs r0, 0xFF
-_080A2DEA:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2D88
-
- thumb_func_start unref_sub_80A2DF4
-unref_sub_80A2DF4: @ 80A2DF4
- movs r0, 0
- bx lr
- thumb_func_end unref_sub_80A2DF4
-
- thumb_func_start sub_80A2DF8
-sub_80A2DF8: @ 80A2DF8
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- bl sub_80A2B94
- lsls r0, 24
- cmp r0, 0
- beq _080A2E46
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- add r2, sp, 0x4
- strb r0, [r2]
- ldr r3, _080A2E50 @ =gSaveBlock1
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _080A2E54 @ =0x00002b6c
- adds r0, r1
- movs r3, 0
- movs r1, 0
- strh r1, [r0]
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, sp
- strb r3, [r0]
- strb r3, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x40
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_080A2E46:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E50: .4byte gSaveBlock1
-_080A2E54: .4byte 0x00002b6c
- thumb_func_end sub_80A2DF8
-
- thumb_func_start unref_sub_80A2E58
-unref_sub_80A2E58: @ 80A2E58
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A2E70 @ =gSaveBlock1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080A2E74 @ =0x00002b6c
- adds r1, r0
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080A2E70: .4byte gSaveBlock1
-_080A2E74: .4byte 0x00002b6c
- thumb_func_end unref_sub_80A2E58
-
- thumb_func_start sub_80A2E78
-sub_80A2E78: @ 80A2E78
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- adds r5, r0, 0
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- add r1, sp, 0x4
- movs r0, 0xFF
- strb r0, [r1]
- movs r7, 0x6
- mov r9, r1
- ldr r0, _080A2F04 @ =gSaveBlock1
- mov r8, r0
- ldr r2, _080A2F08 @ =0x00002b4c
- add r2, r8
-_080A2E9E:
- lsls r0, r7, 3
- adds r0, r7
- lsls r4, r0, 2
- mov r1, r8
- adds r0, r4, r1
- ldr r3, _080A2F0C @ =0x00002b6c
- adds r0, r3
- ldrh r6, [r0]
- cmp r6, 0
- bne _080A2F10
- adds r4, r2
- adds r0, r5, 0
- movs r1, 0x40
- str r2, [sp, 0x8]
- bl GetMonData
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r2, [sp, 0x8]
- adds r1, r2
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- adds r0, r5, 0
- movs r1, 0x40
- bl GetMonData
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldr r0, _080A2F0C @ =0x00002b6c
- adds r1, r0
- strh r6, [r1]
- adds r0, r5, 0
- movs r1, 0x40
- mov r2, r9
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r0, r7, 0
- b _080A2F1C
- .align 2, 0
-_080A2F04: .4byte gSaveBlock1
-_080A2F08: .4byte 0x00002b4c
-_080A2F0C: .4byte 0x00002b6c
-_080A2F10:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _080A2E9E
- movs r0, 0xFF
-_080A2F1C:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2E78
-
- thumb_func_start itemid_is_mail
-itemid_is_mail: @ 80A2F2C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bgt _080A2F3E
- cmp r0, 0x79
- blt _080A2F3E
- movs r0, 0x1
- b _080A2F40
-_080A2F3E:
- movs r0, 0
-_080A2F40:
- pop {r1}
- bx r1
- thumb_func_end itemid_is_mail
-
- thumb_func_start unref_sub_80A2F44
-unref_sub_80A2F44: @ 80A2F44
- push {lr}
- bl sub_8071C20
- bl AddMapNamePopUpWindowTask
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80A2F44
-
- thumb_func_start AddMapNamePopUpWindowTask
-AddMapNamePopUpWindowTask: @ 80A2F54
- push {r4,r5,lr}
- movs r0, 0x80
- lsls r0, 7
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A2FE4
- ldr r4, _080A2FAC @ =sub_80A2FF4
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A2FBC
- adds r0, r4, 0
- movs r1, 0x5A
- bl CreateTask
- ldr r4, _080A2FB0 @ =gUnknown_02038538
- strb r0, [r4]
- ldr r1, _080A2FB4 @ =REG_BG0VOFS
- movs r0, 0x20
- strh r0, [r1]
- bl sub_80A30E0
- ldr r2, _080A2FB8 @ =gTasks
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r5, [r0, 0x8]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x20
- strh r1, [r0, 0xC]
- b _080A2FE4
- .align 2, 0
-_080A2FAC: .4byte sub_80A2FF4
-_080A2FB0: .4byte gUnknown_02038538
-_080A2FB4: .4byte REG_BG0VOFS
-_080A2FB8: .4byte gTasks
-_080A2FBC:
- ldr r3, _080A2FEC @ =gTasks
- ldr r2, _080A2FF0 @ =gUnknown_02038538
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r4, 0x8
- ldrsh r0, [r1, r4]
- cmp r0, 0x2
- beq _080A2FD6
- movs r0, 0x2
- strh r0, [r1, 0x8]
-_080A2FD6:
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080A2FE4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2FEC: .4byte gTasks
-_080A2FF0: .4byte gUnknown_02038538
- thumb_func_end AddMapNamePopUpWindowTask
-
- thumb_func_start sub_80A2FF4
-sub_80A2FF4: @ 80A2FF4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r3, _080A3018 @ =gTasks
- adds r4, r1, r3
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080A304C
- cmp r2, 0x1
- bgt _080A301C
- cmp r2, 0
- beq _080A3026
- b _080A3092
- .align 2, 0
-_080A3018: .4byte gTasks
-_080A301C:
- cmp r2, 0x2
- beq _080A3064
- cmp r2, 0x4
- beq _080A308C
- b _080A3092
-_080A3026:
- ldrh r0, [r4, 0xC]
- subs r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _080A3092
- movs r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080A3048 @ =gUnknown_02038538
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r2, [r0, 0xA]
- b _080A3092
- .align 2, 0
-_080A3048: .4byte gUnknown_02038538
-_080A304C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- ble _080A3092
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080A3092
-_080A3064:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- movs r5, 0
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- ble _080A3092
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A3086
- bl sub_80A30E0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xE]
- b _080A3092
-_080A3086:
- movs r0, 0x4
- strh r0, [r4, 0x8]
- b _080A3098
-_080A308C:
- bl HideMapNamePopUpWindow
- b _080A3098
-_080A3092:
- ldr r1, _080A30A0 @ =REG_BG0VOFS
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
-_080A3098:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A30A0: .4byte REG_BG0VOFS
- thumb_func_end sub_80A2FF4
-
- thumb_func_start HideMapNamePopUpWindow
-HideMapNamePopUpWindow: @ 80A30A4
- push {lr}
- ldr r0, _080A30D4 @ =sub_80A2FF4
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _080A30D0
- bl MenuLoadTextWindowGraphics
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- ldr r1, _080A30D8 @ =REG_BG0VOFS
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080A30DC @ =gUnknown_02038538
- ldrb r0, [r0]
- bl DestroyTask
-_080A30D0:
- pop {r0}
- bx r0
- .align 2, 0
-_080A30D4: .4byte sub_80A2FF4
-_080A30D8: .4byte REG_BG0VOFS
-_080A30DC: .4byte gUnknown_02038538
- thumb_func_end HideMapNamePopUpWindow
-
- thumb_func_start sub_80A30E0
-sub_80A30E0: @ 80A30E0
- push {lr}
- sub sp, 0x14
- movs r0, 0
- bl MenuLoadTextWindowGraphics_OverrideFrameType
- ldr r0, _080A3114 @ =gMapHeader
- ldrb r1, [r0, 0x14]
- mov r0, sp
- movs r2, 0
- bl sub_80FBFB4
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x3
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x60
- bl sub_8072BD8
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_080A3114: .4byte gMapHeader
- thumb_func_end sub_80A30E0
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
new file mode 100644
index 000000000..fea619ac8
--- /dev/null
+++ b/asm/pokemon_summary_screen.s
@@ -0,0 +1,8776 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_809D844
+sub_809D844: @ 809D844
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809D844
+
+ thumb_func_start sub_809D85C
+sub_809D85C: @ 809D85C
+ push {lr}
+ ldr r1, _0809D8A0 @ =REG_BG1HOFS
+ ldr r0, _0809D8A4 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8A8 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8AC @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8B0 @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8B4 @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0809D8B8 @ =gUnknown_030041B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D8A0: .4byte REG_BG1HOFS
+_0809D8A4: .4byte gUnknown_030042C0
+_0809D8A8: .4byte gUnknown_030041B4
+_0809D8AC: .4byte gUnknown_03004288
+_0809D8B0: .4byte gUnknown_03004280
+_0809D8B4: .4byte gUnknown_030041B0
+_0809D8B8: .4byte gUnknown_030041B8
+ thumb_func_end sub_809D85C
+
+ thumb_func_start ShowPokemonSummaryScreen
+ShowPokemonSummaryScreen: @ 809D8BC
+ push {r4-r7,lr}
+ ldr r4, [sp, 0x14]
+ lsls r4, 24
+ lsrs r7, r4, 24
+ ldr r6, _0809D904 @ =gPaletteFade
+ ldrb r4, [r6, 0x8]
+ movs r5, 0x80
+ orrs r4, r5
+ strb r4, [r6, 0x8]
+ ldr r5, _0809D908 @ =0x02018000
+ str r0, [r5]
+ movs r4, 0
+ strb r7, [r5, 0x8]
+ strb r1, [r5, 0x9]
+ strb r2, [r5, 0xA]
+ str r3, [r5, 0x4]
+ adds r0, r5, 0
+ adds r0, 0x74
+ strb r4, [r0]
+ adds r1, r5, 0
+ adds r1, 0x79
+ movs r0, 0x4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x7C
+ movs r1, 0
+ strh r4, [r0]
+ adds r0, 0x4
+ strb r1, [r0]
+ subs r0, 0x5
+ strb r1, [r0]
+ cmp r7, 0x4
+ bls _0809D90C
+ movs r0, 0x1
+ strb r0, [r5, 0xE]
+ b _0809D90E
+ .align 2, 0
+_0809D904: .4byte gPaletteFade
+_0809D908: .4byte 0x02018000
+_0809D90C:
+ strb r1, [r5, 0xE]
+_0809D90E:
+ cmp r7, 0x6
+ bhi _0809D9D6
+ lsls r0, r7, 2
+ ldr r1, _0809D91C @ =_0809D920
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809D91C: .4byte _0809D920
+ .align 2, 0
+_0809D920:
+ .4byte _0809D93C
+ .4byte _0809D9BC
+ .4byte _0809D992
+ .4byte _0809D9D6
+ .4byte _0809D966
+ .4byte _0809D93C
+ .4byte _0809D9BC
+_0809D93C:
+ adds r0, r5, 0
+ adds r0, 0x75
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, r5, 0
+ adds r2, 0x76
+ movs r0, 0x3
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x77
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r5, 0
+ adds r1, 0x7E
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x7
+ strb r0, [r1]
+ b _0809D9D6
+_0809D966:
+ adds r0, r5, 0
+ adds r0, 0x75
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, r5, 0
+ adds r2, 0x76
+ movs r0, 0x3
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x77
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r0, 0x6
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r2, 0x9
+ movs r0, 0x7
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x7B
+ b _0809D9D4
+_0809D992:
+ adds r1, r5, 0
+ adds r1, 0x75
+ movs r3, 0
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x76
+ movs r2, 0x3
+ strb r2, [r0]
+ adds r0, 0x1
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r0, 0x6
+ strb r2, [r0]
+ adds r0, 0x1
+ strb r3, [r0]
+ subs r0, 0x6
+ strb r3, [r0]
+ b _0809D9D6
+_0809D9BC:
+ adds r1, r5, 0
+ adds r1, 0x75
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x3
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x77
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, 0x1
+_0809D9D4:
+ strb r1, [r0]
+_0809D9D6:
+ adds r0, r5, 0
+ adds r0, 0x75
+ ldrb r0, [r0]
+ strb r0, [r5, 0xB]
+ ldr r0, _0809D9EC @ =sub_809DE44
+ bl SetMainCallback2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809D9EC: .4byte sub_809DE44
+ thumb_func_end ShowPokemonSummaryScreen
+
+ thumb_func_start sub_809D9F0
+sub_809D9F0: @ 809D9F0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, [sp, 0x10]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, 16
+ lsrs r5, 16
+ movs r4, 0x2
+ str r4, [sp]
+ bl ShowPokemonSummaryScreen
+ ldr r0, _0809DA18 @ =0x02018000
+ adds r0, 0x7C
+ strh r5, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809DA18: .4byte 0x02018000
+ thumb_func_end sub_809D9F0
+
+ thumb_func_start sub_809DA1C
+sub_809DA1C: @ 809DA1C
+ push {lr}
+ ldr r0, _0809DA30 @ =0x02018000
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x6
+ bhi _0809DA78
+ lsls r0, 2
+ ldr r1, _0809DA34 @ =_0809DA38
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DA30: .4byte 0x02018000
+_0809DA34: .4byte _0809DA38
+ .align 2, 0
+_0809DA38:
+ .4byte _0809DA54
+ .4byte _0809DA6C
+ .4byte _0809DA64
+ .4byte _0809DA64
+ .4byte _0809DA5C
+ .4byte _0809DA54
+ .4byte _0809DA6C
+_0809DA54:
+ ldr r0, _0809DA58 @ =SummaryScreenHandleKeyInput
+ b _0809DA6E
+ .align 2, 0
+_0809DA58: .4byte SummaryScreenHandleKeyInput
+_0809DA5C:
+ ldr r0, _0809DA60 @ =SummaryScreenHandleKeyInput
+ b _0809DA6E
+ .align 2, 0
+_0809DA60: .4byte SummaryScreenHandleKeyInput
+_0809DA64:
+ ldr r0, _0809DA68 @ =sub_809EB40
+ b _0809DA6E
+ .align 2, 0
+_0809DA68: .4byte sub_809EB40
+_0809DA6C:
+ ldr r0, _0809DA7C @ =sub_809E3FC
+_0809DA6E:
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _0809DA80 @ =0x02018000
+ strb r0, [r1, 0xF]
+_0809DA78:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809DA7C: .4byte sub_809E3FC
+_0809DA80: .4byte 0x02018000
+ thumb_func_end sub_809DA1C
+
+ thumb_func_start sub_809DA84
+sub_809DA84: @ 809DA84
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r1, _0809DAA4 @ =gMain
+ ldr r2, _0809DAA8 @ =0x0000043c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ mov r12, r1
+ cmp r0, 0x16
+ bls _0809DA98
+ b _0809DE00
+_0809DA98:
+ lsls r0, 2
+ ldr r1, _0809DAAC @ =_0809DAB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DAA4: .4byte gMain
+_0809DAA8: .4byte 0x0000043c
+_0809DAAC: .4byte _0809DAB0
+ .align 2, 0
+_0809DAB0:
+ .4byte _0809DB0C
+ .4byte _0809DB18
+ .4byte _0809DB2C
+ .4byte _0809DB32
+ .4byte _0809DB80
+ .4byte _0809DB94
+ .4byte _0809DBA0
+ .4byte _0809DBBC
+ .4byte _0809DBC8
+ .4byte _0809DBDC
+ .4byte _0809DC2C
+ .4byte _0809DC48
+ .4byte _0809DC5C
+ .4byte _0809DC90
+ .4byte _0809DCB0
+ .4byte _0809DCC4
+ .4byte _0809DCF8
+ .4byte _0809DD02
+ .4byte _0809DD30
+ .4byte _0809DD3C
+ .4byte _0809DD68
+ .4byte _0809DD98
+ .4byte _0809DDE0
+_0809DB0C:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetSpriteData
+ b _0809DDE8
+_0809DB18:
+ bl remove_some_task
+ ldr r1, _0809DB24 @ =gMain
+ ldr r2, _0809DB28 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DB24: .4byte gMain
+_0809DB28: .4byte 0x0000043c
+_0809DB2C:
+ bl FreeAllSpritePalettes
+ b _0809DDE8
+_0809DB32:
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0x80
+ lsls r3, 9
+ movs r5, 0
+ ldr r1, _0809DB74 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _0809DB78 @ =0x85000400
+ movs r7, 0x85
+ lsls r7, 24
+_0809DB48:
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _0809DB48
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _0809DB7C @ =0x0000043c
+ add r1, r12
+ b _0809DDEE
+ .align 2, 0
+_0809DB74: .4byte 0x040000d4
+_0809DB78: .4byte 0x85000400
+_0809DB7C: .4byte 0x0000043c
+_0809DB80:
+ bl sub_809DE64
+ ldr r1, _0809DB8C @ =gMain
+ ldr r2, _0809DB90 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DB8C: .4byte gMain
+_0809DB90: .4byte 0x0000043c
+_0809DB94:
+ ldr r0, _0809DB9C @ =gWindowConfig_81E6E6C
+ bl SetUpWindowConfig
+ b _0809DDE8
+ .align 2, 0
+_0809DB9C: .4byte gWindowConfig_81E6E6C
+_0809DBA0:
+ ldr r0, _0809DBB0 @ =gWindowConfig_81E6E6C
+ bl MultistepInitMenuWindowBegin
+ ldr r1, _0809DBB4 @ =gMain
+ ldr r2, _0809DBB8 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DBB0: .4byte gWindowConfig_81E6E6C
+_0809DBB4: .4byte gMain
+_0809DBB8: .4byte 0x0000043c
+_0809DBBC:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0809DBC6
+ b _0809DE38
+_0809DBC6:
+ b _0809DDE8
+_0809DBC8:
+ bl sub_809DA1C
+ ldr r1, _0809DBD4 @ =gMain
+ ldr r2, _0809DBD8 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DBD4: .4byte gMain
+_0809DBD8: .4byte 0x0000043c
+_0809DBDC:
+ ldr r1, _0809DC08 @ =gSummaryScreenTextTiles
+ ldr r2, _0809DC0C @ =0x0600d000
+ ldr r0, _0809DC10 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0809DC14 @ =0x800000a0
+ str r1, [r0, 0x8]
+ ldr r1, [r0, 0x8]
+ ldr r1, _0809DC18 @ =gSummaryScreenButtonTiles
+ ldr r2, _0809DC1C @ =0x0600d140
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0809DC20 @ =0x80000080
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _0809DC24 @ =0x02018000
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _0809DC28 @ =0x0000043c
+ add r1, r12
+ b _0809DDEE
+ .align 2, 0
+_0809DC08: .4byte gSummaryScreenTextTiles
+_0809DC0C: .4byte 0x0600d000
+_0809DC10: .4byte 0x040000d4
+_0809DC14: .4byte 0x800000a0
+_0809DC18: .4byte gSummaryScreenButtonTiles
+_0809DC1C: .4byte 0x0600d140
+_0809DC20: .4byte 0x80000080
+_0809DC24: .4byte 0x02018000
+_0809DC28: .4byte 0x0000043c
+_0809DC2C:
+ bl sub_809DF00
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809DC38
+ b _0809DE38
+_0809DC38:
+ ldr r0, _0809DC44 @ =0x02018000
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+ b _0809DDE8
+ .align 2, 0
+_0809DC44: .4byte 0x02018000
+_0809DC48:
+ bl sub_80A18C4
+ ldr r1, _0809DC54 @ =gMain
+ ldr r2, _0809DC58 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DC54: .4byte gMain
+_0809DC58: .4byte 0x0000043c
+_0809DC5C:
+ ldr r4, _0809DC78 @ =0x02018010
+ adds r0, r4, 0
+ bl sub_809F678
+ adds r0, r4, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809DC7C
+ movs r0, 0
+ bl sub_80A12D0
+ b _0809DC82
+ .align 2, 0
+_0809DC78: .4byte 0x02018010
+_0809DC7C:
+ movs r0, 0xA
+ bl sub_80A12D0
+_0809DC82:
+ ldr r0, _0809DC8C @ =0x02018010
+ bl sub_80A0EA4
+ b _0809DDE8
+ .align 2, 0
+_0809DC8C: .4byte 0x02018010
+_0809DC90:
+ bl sub_80A1950
+ ldr r0, _0809DCA4 @ =0x02018010
+ bl sub_80A1D84
+ ldr r1, _0809DCA8 @ =gMain
+ ldr r2, _0809DCAC @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DCA4: .4byte 0x02018010
+_0809DCA8: .4byte gMain
+_0809DCAC: .4byte 0x0000043c
+_0809DCB0:
+ ldr r4, _0809DCC0 @ =0x02018010
+ adds r0, r4, 0
+ bl sub_80A1DE8
+ adds r4, 0x64
+ movs r0, 0
+ strb r0, [r4]
+ b _0809DDE8
+ .align 2, 0
+_0809DCC0: .4byte 0x02018010
+_0809DCC4:
+ ldr r4, _0809DCEC @ =0x02018010
+ adds r5, r4, 0
+ adds r5, 0x64
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_809F6B4
+ subs r4, 0x10
+ strb r0, [r4, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809DCE0
+ b _0809DE38
+_0809DCE0:
+ movs r0, 0
+ strb r0, [r5]
+ ldr r1, _0809DCF0 @ =gMain
+ ldr r2, _0809DCF4 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DCEC: .4byte 0x02018010
+_0809DCF0: .4byte gMain
+_0809DCF4: .4byte 0x0000043c
+_0809DCF8:
+ bl sub_809E044
+ bl sub_80A0EE8
+ b _0809DDE8
+_0809DD02:
+ ldr r1, _0809DD20 @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x1
+ bhi _0809DD18
+ ldr r0, _0809DD24 @ =gUnknown_083C1580
+ ldrb r1, [r1, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+_0809DD18:
+ ldr r1, _0809DD28 @ =gMain
+ ldr r2, _0809DD2C @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DD20: .4byte 0x02018000
+_0809DD24: .4byte gUnknown_083C1580
+_0809DD28: .4byte gMain
+_0809DD2C: .4byte 0x0000043c
+_0809DD30:
+ ldr r0, _0809DD38 @ =0x02018010
+ bl sub_809FAC8
+ b _0809DDE8
+ .align 2, 0
+_0809DD38: .4byte 0x02018010
+_0809DD3C:
+ ldr r2, _0809DD58 @ =gUnknown_083C1598
+ ldr r0, _0809DD5C @ =0x02018000
+ ldrb r1, [r0, 0xB]
+ lsls r1, 2
+ adds r1, r2
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldr r1, _0809DD60 @ =gMain
+ ldr r2, _0809DD64 @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DD58: .4byte gUnknown_083C1598
+_0809DD5C: .4byte 0x02018000
+_0809DD60: .4byte gMain
+_0809DD64: .4byte 0x0000043c
+_0809DD68:
+ ldr r0, _0809DD84 @ =0x02018010
+ movs r1, 0x2D
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _0809DD8C
+ ldr r1, _0809DD88 @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _0809DDE8
+ .align 2, 0
+_0809DD84: .4byte 0x02018010
+_0809DD88: .4byte gUnknown_030041B0
+_0809DD8C:
+ ldr r0, _0809DD94 @ =gUnknown_030041B0
+ strh r1, [r0]
+ b _0809DDE8
+ .align 2, 0
+_0809DD94: .4byte gUnknown_030041B0
+_0809DD98:
+ bl sub_809EBC4
+ ldr r0, _0809DDB8 @ =0x02018000
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809DDBC
+ movs r0, 0
+ movs r1, 0
+ bl sub_80A1488
+ movs r0, 0
+ movs r1, 0
+ bl sub_80A1654
+ b _0809DDCC
+ .align 2, 0
+_0809DDB8: .4byte 0x02018000
+_0809DDBC:
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_80A1488
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_80A1654
+_0809DDCC:
+ bl sub_80A0DD0
+ ldr r1, _0809DDD8 @ =gMain
+ ldr r2, _0809DDDC @ =0x0000043c
+ adds r1, r2
+ b _0809DDEE
+ .align 2, 0
+_0809DDD8: .4byte gMain
+_0809DDDC: .4byte 0x0000043c
+_0809DDE0:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809DE38
+_0809DDE8:
+ ldr r1, _0809DDF8 @ =gMain
+ ldr r0, _0809DDFC @ =0x0000043c
+ adds r1, r0
+_0809DDEE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0809DE38
+ .align 2, 0
+_0809DDF8: .4byte gMain
+_0809DDFC: .4byte 0x0000043c
+_0809DE00:
+ ldr r0, _0809DE2C @ =sub_809D85C
+ bl SetVBlankCallback
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginHardwarePaletteFade
+ ldr r0, _0809DE30 @ =sub_809D844
+ bl SetMainCallback2
+ ldr r2, _0809DE34 @ =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ movs r0, 0x1
+ b _0809DE3A
+ .align 2, 0
+_0809DE2C: .4byte sub_809D85C
+_0809DE30: .4byte sub_809D844
+_0809DE34: .4byte gPaletteFade
+_0809DE38:
+ movs r0, 0
+_0809DE3A:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809DA84
+
+ thumb_func_start sub_809DE44
+sub_809DE44: @ 809DE44
+ push {lr}
+_0809DE46:
+ bl sub_809DA84
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0809DE5E
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809DE46
+_0809DE5E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809DE44
+
+ thumb_func_start sub_809DE64
+sub_809DE64: @ 809DE64
+ ldr r1, _0809DED0 @ =REG_BG0CNT
+ ldr r2, _0809DED4 @ =0x00001e08
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0809DED8 @ =0x00004801
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0809DEDC @ =0x00004a02
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0809DEE0 @ =0x00005c03
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0809DEE4 @ =gUnknown_030042C0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0809DEE8 @ =gUnknown_030041B4
+ strh r0, [r1]
+ ldr r1, _0809DEEC @ =gUnknown_03004288
+ strh r0, [r1]
+ ldr r1, _0809DEF0 @ =gUnknown_03004280
+ strh r0, [r1]
+ ldr r1, _0809DEF4 @ =gUnknown_030041B0
+ strh r0, [r1]
+ ldr r1, _0809DEF8 @ =gUnknown_030041B8
+ strh r0, [r1]
+ ldr r1, _0809DEFC @ =REG_BG0HOFS
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x32
+ strh r0, [r1]
+ subs r1, 0x50
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0809DED0: .4byte REG_BG0CNT
+_0809DED4: .4byte 0x00001e08
+_0809DED8: .4byte 0x00004801
+_0809DEDC: .4byte 0x00004a02
+_0809DEE0: .4byte 0x00005c03
+_0809DEE4: .4byte gUnknown_030042C0
+_0809DEE8: .4byte gUnknown_030041B4
+_0809DEEC: .4byte gUnknown_03004288
+_0809DEF0: .4byte gUnknown_03004280
+_0809DEF4: .4byte gUnknown_030041B0
+_0809DEF8: .4byte gUnknown_030041B8
+_0809DEFC: .4byte REG_BG0HOFS
+ thumb_func_end sub_809DE64
+
+ thumb_func_start sub_809DF00
+sub_809DF00: @ 809DF00
+ push {lr}
+ ldr r0, _0809DF18 @ =0x02018000
+ adds r0, 0x74
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bls _0809DF0E
+ b _0809E030
+_0809DF0E:
+ lsls r0, 2
+ ldr r1, _0809DF1C @ =_0809DF20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809DF18: .4byte 0x02018000
+_0809DF1C: .4byte _0809DF20
+ .align 2, 0
+_0809DF20:
+ .4byte _0809DF54
+ .4byte _0809DF64
+ .4byte _0809DF74
+ .4byte _0809DF88
+ .4byte _0809DF9C
+ .4byte _0809DFAC
+ .4byte _0809DFC4
+ .4byte _0809DFD4
+ .4byte _0809DFE0
+ .4byte _0809DFEC
+ .4byte _0809DFF8
+ .4byte _0809E004
+ .4byte _0809E010
+_0809DF54:
+ ldr r0, _0809DF60 @ =gStatusScreen_Gfx
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ b _0809E030
+ .align 2, 0
+_0809DF60: .4byte gStatusScreen_Gfx
+_0809DF64:
+ ldr r0, _0809DF6C @ =gUnknown_08E73508
+ ldr r1, _0809DF70 @ =0x0600e000
+ b _0809DFB0
+ .align 2, 0
+_0809DF6C: .4byte gUnknown_08E73508
+_0809DF70: .4byte 0x0600e000
+_0809DF74:
+ ldr r0, _0809DF80 @ =gUnknown_08E74E88
+ ldr r1, _0809DF84 @ =0x0600e800
+ bl LZDecompressVram
+ b _0809E030
+ .align 2, 0
+_0809DF80: .4byte gUnknown_08E74E88
+_0809DF84: .4byte 0x0600e800
+_0809DF88:
+ ldr r0, _0809DF94 @ =gStatusScreen_Tilemap
+ ldr r1, _0809DF98 @ =0x06004800
+ bl LZDecompressVram
+ b _0809E030
+ .align 2, 0
+_0809DF94: .4byte gStatusScreen_Tilemap
+_0809DF98: .4byte 0x06004800
+_0809DF9C:
+ ldr r0, _0809DFA4 @ =gUnknown_08E73E88
+ ldr r1, _0809DFA8 @ =0x06005800
+ b _0809DFB0
+ .align 2, 0
+_0809DFA4: .4byte gUnknown_08E73E88
+_0809DFA8: .4byte 0x06005800
+_0809DFAC:
+ ldr r0, _0809DFBC @ =gUnknown_08E74688
+ ldr r1, _0809DFC0 @ =0x06006800
+_0809DFB0:
+ movs r2, 0x80
+ lsls r2, 3
+ bl CpuSet
+ b _0809E030
+ .align 2, 0
+_0809DFBC: .4byte gUnknown_08E74688
+_0809DFC0: .4byte 0x06006800
+_0809DFC4:
+ ldr r0, _0809DFD0 @ =gStatusScreen_Pal
+ movs r1, 0
+ movs r2, 0xA0
+ bl LoadCompressedPalette
+ b _0809E030
+ .align 2, 0
+_0809DFD0: .4byte gStatusScreen_Pal
+_0809DFD4:
+ ldr r0, _0809DFDC @ =gUnknown_083C11B8
+ bl LoadCompressedObjectPic
+ b _0809E030
+ .align 2, 0
+_0809DFDC: .4byte gUnknown_083C11B8
+_0809DFE0:
+ ldr r0, _0809DFE8 @ =gUnknown_083C1270
+ bl LoadCompressedObjectPic
+ b _0809E030
+ .align 2, 0
+_0809DFE8: .4byte gUnknown_083C1270
+_0809DFEC:
+ ldr r0, _0809DFF4 @ =gUnknown_083C12F4
+ bl LoadCompressedObjectPic
+ b _0809E030
+ .align 2, 0
+_0809DFF4: .4byte gUnknown_083C12F4
+_0809DFF8:
+ ldr r0, _0809E000 @ =gUnknown_083C12FC
+ bl LoadCompressedObjectPalette
+ b _0809E030
+ .align 2, 0
+_0809E000: .4byte gUnknown_083C12FC
+_0809E004:
+ ldr r0, _0809E00C @ =gUnknown_083C1278
+ bl LoadCompressedObjectPalette
+ b _0809E030
+ .align 2, 0
+_0809E00C: .4byte gUnknown_083C1278
+_0809E010:
+ ldr r0, _0809E028 @ =gMoveTypes_Pal
+ movs r1, 0xE8
+ lsls r1, 1
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ ldr r0, _0809E02C @ =0x02018000
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0809E03C
+ .align 2, 0
+_0809E028: .4byte gMoveTypes_Pal
+_0809E02C: .4byte 0x02018000
+_0809E030:
+ ldr r1, _0809E040 @ =0x02018000
+ adds r1, 0x74
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+_0809E03C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809E040: .4byte 0x02018000
+ thumb_func_end sub_809DF00
+
+ thumb_func_start sub_809E044
+sub_809E044: @ 809E044
+ push {r4,r5,lr}
+ ldr r4, _0809E0F4 @ =gUnknownPalette_81E6692+0x1C
+ adds r0, r4, 0
+ movs r1, 0x81
+ movs r2, 0x2
+ bl LoadPalette
+ adds r5, r4, 0x2
+ adds r0, r5, 0
+ movs r1, 0x88
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0x8F
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0x89
+ movs r2, 0x2
+ bl LoadPalette
+ subs r5, 0x12
+ adds r0, r5, 0
+ movs r1, 0xD1
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0x8
+ movs r1, 0xD3
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xD5
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0xD7
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0x14
+ movs r1, 0xD9
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0xC
+ movs r1, 0xDB
+ movs r2, 0x4
+ bl LoadPalette
+ adds r0, r4, 0
+ subs r0, 0x18
+ movs r1, 0xDD
+ movs r2, 0x2
+ bl LoadPalette
+ subs r5, 0x6
+ adds r0, r5, 0
+ movs r1, 0xDE
+ movs r2, 0x2
+ bl LoadPalette
+ subs r4, 0x1A
+ adds r0, r4, 0
+ movs r1, 0xDF
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r0, _0809E0F8 @ =gFontDefaultPalette
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0xF9
+ movs r2, 0x2
+ bl LoadPalette
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E0F4: .4byte gUnknownPalette_81E6692+0x1C
+_0809E0F8: .4byte gFontDefaultPalette
+ thumb_func_end sub_809E044
+
+ thumb_func_start SummaryScreenExit
+SummaryScreenExit: @ 809E0FC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0809E134 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E138 @ =sub_809E13C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E134: .4byte gTasks
+_0809E138: .4byte sub_809E13C
+ thumb_func_end SummaryScreenExit
+
+ thumb_func_start sub_809E13C
+sub_809E13C: @ 809E13C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809E182
+ ldr r0, _0809E188 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E182
+ ldr r1, _0809E18C @ =gUnknown_020384F0
+ ldr r4, _0809E190 @ =0x02018000
+ ldrb r0, [r4, 0x9]
+ strb r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl StopCryAndClearCrySongs
+ ldr r0, _0809E194 @ =gMPlay_BGM
+ ldr r1, _0809E198 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ ldr r0, [r4, 0x4]
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_0809E182:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E188: .4byte gPaletteFade
+_0809E18C: .4byte gUnknown_020384F0
+_0809E190: .4byte 0x02018000
+_0809E194: .4byte gMPlay_BGM
+_0809E198: .4byte 0x0000ffff
+ thumb_func_end sub_809E13C
+
+ thumb_func_start SummaryScreenHandleKeyInput
+SummaryScreenHandleKeyInput: @ 809E19C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809E1C8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E25A
+ ldr r5, _0809E1CC @ =gMain
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E1D0
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl SummaryScreenHandleUpDownInput
+ b _0809E25A
+ .align 2, 0
+_0809E1C8: .4byte gPaletteFade
+_0809E1CC: .4byte gMain
+_0809E1D0:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E1E2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl SummaryScreenHandleUpDownInput
+ b _0809E25A
+_0809E1E2:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E1F6
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809E202
+_0809E1F6:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl SummaryScreenHandleLeftRightInput
+ b _0809E25A
+_0809E202:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E218
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0809E222
+_0809E218:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl SummaryScreenHandleLeftRightInput
+ b _0809E25A
+_0809E222:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E24C
+ ldr r5, _0809E248 @ =0x02018000
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0x1
+ bls _0809E23A
+ adds r0, r4, 0
+ bl SummaryScreenHandleAButton
+_0809E23A:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0
+ bne _0809E25A
+ adds r0, r4, 0
+ bl SummaryScreenExit
+ b _0809E25A
+ .align 2, 0
+_0809E248: .4byte 0x02018000
+_0809E24C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E25A
+ adds r0, r4, 0
+ bl SummaryScreenExit
+_0809E25A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end SummaryScreenHandleKeyInput
+
+ thumb_func_start sub_809E260
+sub_809E260: @ 809E260
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809E29C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E276
+ b _0809E3EE
+_0809E276:
+ ldr r5, _0809E2A0 @ =gMain
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E2AC
+ ldr r1, _0809E2A4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ subs r1, 0x5
+ ldr r2, _0809E2A8 @ =0x02018079
+ adds r0, r4, 0
+ bl sub_809E8F0
+ b _0809E3EE
+ .align 2, 0
+_0809E29C: .4byte gPaletteFade
+_0809E2A0: .4byte gMain
+_0809E2A4: .4byte gTasks
+_0809E2A8: .4byte 0x02018079
+_0809E2AC:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E2D8
+ ldr r1, _0809E2D0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ ldr r2, _0809E2D4 @ =0x02018079
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809E3EE
+ .align 2, 0
+_0809E2D0: .4byte gTasks
+_0809E2D4: .4byte 0x02018079
+_0809E2D8:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E2EC
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809E324
+_0809E2EC:
+ ldr r1, _0809E320 @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x3
+ bne _0809E314
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809E308
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809E314
+_0809E308:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809E314:
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl SummaryScreenHandleLeftRightInput
+ b _0809E3EE
+ .align 2, 0
+_0809E320: .4byte 0x02018000
+_0809E324:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E33A
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0809E37C
+_0809E33A:
+ ldr r1, _0809E378 @ =0x02018000
+ adds r2, r1, 0
+ adds r2, 0x76
+ ldrb r0, [r1, 0xB]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0809E3EE
+ cmp r0, 0x2
+ bne _0809E36C
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809E360
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809E36C
+_0809E360:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809E36C:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl SummaryScreenHandleLeftRightInput
+ b _0809E3EE
+ .align 2, 0
+_0809E378: .4byte 0x02018000
+_0809E37C:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E3D4
+ adds r0, r4, 0
+ bl sub_809F7D0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0809E3A0
+ ldr r0, _0809E3BC @ =0x02018000
+ adds r5, r0, 0
+ adds r5, 0x79
+ ldrb r0, [r5]
+ cmp r0, 0x4
+ bne _0809E3C4
+_0809E3A0:
+ ldr r0, _0809E3BC @ =0x02018000
+ adds r1, r0, 0
+ adds r1, 0x79
+ ldrb r1, [r1]
+ adds r0, 0x7A
+ strb r1, [r0]
+ ldr r1, _0809E3C0 @ =gSpecialVar_0x8005
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl SummaryScreenExit
+ b _0809E3EE
+ .align 2, 0
+_0809E3BC: .4byte 0x02018000
+_0809E3C0: .4byte gSpecialVar_0x8005
+_0809E3C4:
+ movs r0, 0x20
+ bl PlaySE
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_809F9D0
+ b _0809E3EE
+_0809E3D4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E3EE
+ ldr r0, _0809E3F4 @ =0x02018000
+ adds r0, 0x7A
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r0, _0809E3F8 @ =gSpecialVar_0x8005
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl SummaryScreenExit
+_0809E3EE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E3F4: .4byte 0x02018000
+_0809E3F8: .4byte gSpecialVar_0x8005
+ thumb_func_end sub_809E260
+
+ thumb_func_start sub_809E3FC
+sub_809E3FC: @ 809E3FC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ ldr r0, _0809E438 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0809E502
+ ldr r0, _0809E43C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E448
+ ldr r1, _0809E440 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ subs r1, 0x5
+ ldr r2, _0809E444 @ =0x02018079
+ adds r0, r5, 0
+ bl sub_809E8F0
+ b _0809E502
+ .align 2, 0
+_0809E438: .4byte gPaletteFade
+_0809E43C: .4byte gMain
+_0809E440: .4byte gTasks
+_0809E444: .4byte 0x02018079
+_0809E448:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E474
+ ldr r1, _0809E46C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ ldr r2, _0809E470 @ =0x02018079
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809E502
+ .align 2, 0
+_0809E46C: .4byte gTasks
+_0809E470: .4byte 0x02018079
+_0809E474:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E4EE
+ ldr r4, _0809E4A8 @ =0x02018000
+ adds r6, r4, 0
+ adds r6, 0x79
+ ldrb r0, [r6]
+ cmp r0, 0x4
+ beq _0809E4E0
+ adds r0, r4, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809E4E0
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_809E508
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809E4AC
+ movs r0, 0x20
+ bl PlaySE
+ b _0809E502
+ .align 2, 0
+_0809E4A8: .4byte 0x02018000
+_0809E4AC:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ adds r0, 0x7A
+ strb r1, [r0]
+ movs r0, 0x1
+ bl sub_80A1B40
+ movs r0, 0x13
+ bl sub_80A1A30
+ ldr r1, _0809E4D8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E4DC @ =sub_809E534
+ str r1, [r0]
+ b _0809E502
+ .align 2, 0
+_0809E4D8: .4byte gTasks
+_0809E4DC: .4byte sub_809E534
+_0809E4E0:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl sub_809EAC8
+ b _0809E502
+_0809E4EE:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E502
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl sub_809EAC8
+_0809E502:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E3FC
+
+ thumb_func_start sub_809E508
+sub_809E508: @ 809E508
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0x1
+_0809E50E:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_809F760
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809E520
+ movs r0, 0x1
+ b _0809E52C
+_0809E520:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _0809E50E
+ movs r0, 0
+_0809E52C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809E508
+
+ thumb_func_start sub_809E534
+sub_809E534: @ 809E534
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, r3, 0
+ ldr r0, _0809E564 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E570
+ ldr r1, _0809E568 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x8]
+ subs r1, 0x4
+ ldr r2, _0809E56C @ =0x0201807a
+ adds r0, r3, 0
+ bl sub_809E8F0
+ b _0809E5C0
+ .align 2, 0
+_0809E564: .4byte gMain
+_0809E568: .4byte gTasks
+_0809E56C: .4byte 0x0201807a
+_0809E570:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E59C
+ ldr r1, _0809E594 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x8]
+ ldr r2, _0809E598 @ =0x0201807a
+ adds r0, r3, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809E5C0
+ .align 2, 0
+_0809E594: .4byte gTasks
+_0809E598: .4byte 0x0201807a
+_0809E59C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E5AE
+ adds r0, r3, 0
+ movs r1, 0x1
+ bl sub_809E83C
+ b _0809E5C0
+_0809E5AE:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809E5C0
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r2, 0
+ bl sub_809E83C
+_0809E5C0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809E534
+
+ thumb_func_start sub_809E5C4
+sub_809E5C4: @ 809E5C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r1, _0809E6D0 @ =0x02018000
+ ldr r5, [r1]
+ ldrb r2, [r1, 0x9]
+ movs r0, 0x64
+ muls r0, r2
+ adds r5, r0
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r1, 0x7A
+ ldrb r6, [r1]
+ adds r0, 0xD
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ bl GetMonData
+ mov r1, sp
+ adds r1, 0x2
+ str r1, [sp, 0x14]
+ strh r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0xD
+ str r2, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ mov r3, r8
+ adds r3, 0x11
+ str r3, [sp, 0x10]
+ adds r0, r5, 0
+ adds r1, r3, 0
+ bl GetMonData
+ mov r7, sp
+ adds r7, 0x5
+ str r7, [sp, 0x18]
+ strb r0, [r7]
+ adds r0, r6, 0
+ adds r0, 0x11
+ str r0, [sp, 0x1C]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ bl GetMonData
+ add r1, sp, 0x4
+ mov r10, r1
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r4, sp
+ adds r4, 0x6
+ strb r0, [r4]
+ ldr r1, _0809E6D4 @ =gUnknown_08208238
+ mov r2, r8
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ mov r3, r9
+ ands r2, r3
+ mov r7, r8
+ lsls r7, 1
+ mov r8, r7
+ asrs r2, r7
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r6, r1
+ ldrb r3, [r1]
+ adds r1, r0, 0
+ ands r1, r3
+ lsls r6, 1
+ asrs r1, r6
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ bics r0, r7
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bics r0, r3
+ strb r0, [r4]
+ lsls r2, r6
+ mov r0, r8
+ lsls r1, r0
+ adds r2, r1
+ ldrb r0, [r4]
+ orrs r0, r2
+ strb r0, [r4]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x10]
+ mov r2, r10
+ bl SetMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x15
+ adds r2, r4, 0
+ bl SetMonData
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E6D0: .4byte 0x02018000
+_0809E6D4: .4byte gUnknown_08208238
+ thumb_func_end sub_809E5C4
+
+ thumb_func_start sub_809E6D8
+sub_809E6D8: @ 809E6D8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r2, _0809E7E8 @ =0x02018000
+ ldr r5, [r2]
+ ldrb r1, [r2, 0x9]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r5, r0
+ adds r0, r2, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r2, 0x7A
+ ldrb r6, [r2]
+ adds r0, 0xD
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ bl GetBoxMonData
+ mov r1, sp
+ adds r1, 0x2
+ str r1, [sp, 0x14]
+ strh r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0xD
+ str r2, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl GetBoxMonData
+ mov r1, sp
+ strh r0, [r1]
+ mov r3, r8
+ adds r3, 0x11
+ str r3, [sp, 0x10]
+ adds r0, r5, 0
+ adds r1, r3, 0
+ bl GetBoxMonData
+ mov r7, sp
+ adds r7, 0x5
+ str r7, [sp, 0x18]
+ strb r0, [r7]
+ adds r0, r6, 0
+ adds r0, 0x11
+ str r0, [sp, 0x1C]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ bl GetBoxMonData
+ add r1, sp, 0x4
+ mov r10, r1
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x15
+ bl GetBoxMonData
+ mov r4, sp
+ adds r4, 0x6
+ strb r0, [r4]
+ ldr r1, _0809E7EC @ =gUnknown_08208238
+ mov r2, r8
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ mov r3, r9
+ ands r2, r3
+ mov r7, r8
+ lsls r7, 1
+ mov r8, r7
+ asrs r2, r7
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r6, r1
+ ldrb r3, [r1]
+ adds r1, r0, 0
+ ands r1, r3
+ lsls r6, 1
+ asrs r1, r6
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ bics r0, r7
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bics r0, r3
+ strb r0, [r4]
+ lsls r2, r6
+ mov r0, r8
+ lsls r1, r0
+ adds r2, r1
+ ldrb r0, [r4]
+ orrs r0, r2
+ strb r0, [r4]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ mov r2, sp
+ bl SetBoxMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ bl SetBoxMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x10]
+ mov r2, r10
+ bl SetBoxMonData
+ adds r0, r5, 0
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x18]
+ bl SetBoxMonData
+ adds r0, r5, 0
+ movs r1, 0x15
+ adds r2, r4, 0
+ bl SetBoxMonData
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E7E8: .4byte 0x02018000
+_0809E7EC: .4byte gUnknown_08208238
+ thumb_func_end sub_809E6D8
+
+ thumb_func_start sub_809E7F0
+sub_809E7F0: @ 809E7F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_809F5F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809E828
+ ldr r1, _0809E830 @ =0x02018000
+ adds r2, r1, 0
+ adds r2, 0x74
+ movs r0, 0
+ strb r0, [r2]
+ adds r0, r1, 0
+ adds r0, 0x10
+ adds r1, 0x79
+ bl sub_80A0428
+ ldr r1, _0809E834 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E838 @ =sub_809E3FC
+ str r1, [r0]
+ adds r0, r4, 0
+ bl sub_80A2078
+_0809E828:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E830: .4byte 0x02018000
+_0809E834: .4byte gTasks
+_0809E838: .4byte sub_809E3FC
+ thumb_func_end sub_809E7F0
+
+ thumb_func_start sub_809E83C
+sub_809E83C: @ 809E83C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x13
+ bl sub_80A1B1C
+ movs r0, 0
+ bl sub_80A1B40
+ cmp r4, 0x1
+ bne _0809E8C0
+ ldr r1, _0809E87C @ =0x02018000
+ adds r0, r1, 0
+ adds r0, 0x79
+ adds r2, r1, 0
+ adds r2, 0x7A
+ ldrb r0, [r0]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0809E8CA
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ bne _0809E880
+ bl sub_809E5C4
+ b _0809E884
+ .align 2, 0
+_0809E87C: .4byte 0x02018000
+_0809E880:
+ bl sub_809E6D8
+_0809E884:
+ ldr r4, _0809E8B4 @ =0x02018000
+ adds r0, r4, 0
+ adds r0, 0x7A
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x79
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_809F678
+ adds r1, r4, 0
+ adds r1, 0x74
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0809E8B8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809E8BC @ =sub_809E7F0
+ str r1, [r0]
+ b _0809E8DE
+ .align 2, 0
+_0809E8B4: .4byte 0x02018000
+_0809E8B8: .4byte gTasks
+_0809E8BC: .4byte sub_809E7F0
+_0809E8C0:
+ ldr r0, _0809E8E4 @ =0x02018010
+ adds r1, r0, 0
+ adds r1, 0x69
+ bl sub_80A0428
+_0809E8CA:
+ ldr r0, _0809E8E8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0809E8EC @ =sub_809E3FC
+ str r0, [r1]
+ adds r0, r5, 0
+ bl sub_80A2078
+_0809E8DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809E8E4: .4byte 0x02018010
+_0809E8E8: .4byte gTasks
+_0809E8EC: .4byte sub_809E3FC
+ thumb_func_end sub_809E83C
+
+ thumb_func_start sub_809E8F0
+sub_809E8F0: @ 809E8F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r1, 0
+ mov r9, r2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x5
+ bl PlaySE
+ mov r1, r9
+ ldrb r6, [r1]
+ ldr r1, _0809E944 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r2, 0
+ lsls r4, 24
+ asrs r4, 24
+ mov r10, r4
+ lsls r7, r0, 24
+_0809E930:
+ lsls r0, r6, 24
+ asrs r0, 24
+ add r0, r10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ asrs r1, r0, 24
+ cmp r0, r7
+ ble _0809E948
+ movs r6, 0
+ b _0809E94E
+ .align 2, 0
+_0809E944: .4byte gTasks
+_0809E948:
+ cmp r1, 0
+ bge _0809E94E
+ lsrs r6, r7, 24
+_0809E94E:
+ lsls r4, r6, 24
+ lsrs r1, r4, 24
+ ldr r0, _0809EA10 @ =0x02018010
+ str r2, [sp, 0x4]
+ bl sub_809F760
+ lsls r0, 16
+ adds r5, r4, 0
+ ldr r2, [sp, 0x4]
+ cmp r0, 0
+ bne _0809E97A
+ asrs r0, r5, 24
+ cmp r0, 0x4
+ beq _0809E97A
+ lsls r0, r2, 24
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r3
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _0809E930
+_0809E97A:
+ mov r1, r9
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bne _0809E996
+ asrs r0, r5, 24
+ cmp r0, 0x4
+ beq _0809E996
+ ldr r0, _0809EA14 @ =0x02018000
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ mov r2, r8
+ lsls r7, r2, 2
+ cmp r0, 0
+ beq _0809E9AC
+_0809E996:
+ ldr r2, _0809EA18 @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x22
+ ldrsh r0, [r0, r2]
+ adds r7, r1, 0
+ cmp r0, 0x1
+ bne _0809E9D0
+_0809E9AC:
+ lsrs r4, r5, 24
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl sub_80A1488
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl sub_80A1654
+ ldr r1, _0809EA18 @ =gTasks
+ mov r3, r8
+ adds r0, r7, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x22]
+ movs r0, 0
+ str r0, [sp]
+_0809E9D0:
+ mov r1, r9
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ beq _0809E9FE
+ asrs r0, r5, 24
+ cmp r0, 0x4
+ bne _0809E9FE
+ ldr r0, _0809EA14 @ =0x02018000
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0809E9FE
+ movs r4, 0x2
+ negs r4, r4
+ lsrs r5, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A1488
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A1654
+_0809E9FE:
+ mov r2, r9
+ strb r6, [r2]
+ ldr r0, _0809EA1C @ =0x02018079
+ cmp r9, r0
+ bne _0809EA20
+ movs r0, 0
+ bl sub_80A1C30
+ b _0809EA26
+ .align 2, 0
+_0809EA10: .4byte 0x02018010
+_0809EA14: .4byte 0x02018000
+_0809EA18: .4byte gTasks
+_0809EA1C: .4byte 0x02018079
+_0809EA20:
+ movs r0, 0x1
+ bl sub_80A1C30
+_0809EA26:
+ ldr r3, [sp]
+ cmp r3, 0
+ beq _0809EA34
+ ldr r0, _0809EA4C @ =0x02018010
+ mov r1, r9
+ bl sub_80A0428
+_0809EA34:
+ mov r0, r8
+ bl sub_80A2078
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EA4C: .4byte 0x02018010
+ thumb_func_end sub_809E8F0
+
+ thumb_func_start SummaryScreenHandleAButton
+SummaryScreenHandleAButton: @ 809EA50
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0809EABC @ =0x02018000
+ adds r1, r4, 0
+ adds r1, 0x79
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80A1488
+ movs r0, 0x2
+ movs r1, 0
+ bl sub_80A1654
+ adds r0, r4, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809EA8C
+ adds r1, r4, 0
+ adds r1, 0x7F
+ movs r0, 0x5
+ strb r0, [r1]
+ bl sub_80A0DD0
+_0809EA8C:
+ movs r0, 0
+ bl sub_80A16CC
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_80A029C
+ movs r0, 0x9
+ bl sub_80A1A30
+ ldr r1, _0809EAC0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809EAC4 @ =sub_809E3FC
+ str r1, [r0]
+ adds r0, r5, 0
+ bl sub_80A2078
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EABC: .4byte 0x02018000
+_0809EAC0: .4byte gTasks
+_0809EAC4: .4byte sub_809E3FC
+ thumb_func_end SummaryScreenHandleAButton
+
+ thumb_func_start sub_809EAC8
+sub_809EAC8: @ 809EAC8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0809EB34 @ =0x02018000
+ adds r0, r6, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ beq _0809EAEE
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A1488
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A1654
+_0809EAEE:
+ movs r0, 0x9
+ bl sub_80A1B1C
+ movs r0, 0x1
+ bl sub_80A16CC
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ movs r0, 0xB
+ movs r1, 0xF
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r1, r6, 0
+ adds r1, 0x7F
+ movs r0, 0x6
+ strb r0, [r1]
+ bl sub_80A0DD0
+ ldr r1, _0809EB38 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809EB3C @ =SummaryScreenHandleKeyInput
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EB34: .4byte 0x02018000
+_0809EB38: .4byte gTasks
+_0809EB3C: .4byte SummaryScreenHandleKeyInput
+ thumb_func_end sub_809EAC8
+
+ thumb_func_start sub_809EB40
+sub_809EB40: @ 809EB40
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0809EB6C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0809EB74
+ cmp r0, 0x5
+ bne _0809EBA4
+ movs r0, 0x9
+ bl sub_80A1A30
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _0809EB70 @ =sub_809E260
+ str r0, [r4]
+ b _0809EBB4
+ .align 2, 0
+_0809EB6C: .4byte gTasks
+_0809EB70: .4byte sub_809E260
+_0809EB74:
+ ldr r4, _0809EBBC @ =0x02018000
+ adds r6, r4, 0
+ adds r6, 0x79
+ strb r0, [r6]
+ adds r0, r4, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809EB96
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_80A1488
+ ldrb r1, [r6]
+ movs r0, 0xA
+ bl sub_80A1654
+_0809EB96:
+ movs r0, 0
+ bl sub_80A16CC
+ adds r0, r4, 0
+ adds r0, 0x10
+ bl sub_80A029C
+_0809EBA4:
+ ldr r0, _0809EBC0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0809EBB4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EBBC: .4byte 0x02018000
+_0809EBC0: .4byte gTasks
+ thumb_func_end sub_809EB40
+
+ thumb_func_start sub_809EBC4
+sub_809EBC4: @ 809EBC4
+ push {r4,lr}
+ ldr r4, _0809EC28 @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ beq _0809EC22
+ bl sub_80A0EE8
+ ldr r0, _0809EC2C @ =gUnknown_030042C0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x1
+ bne _0809EBF4
+ ldr r2, _0809EC30 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EC34 @ =0x0000e0ff
+ ands r0, r1
+ movs r3, 0x80
+ lsls r3, 4
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EBF4:
+ ldrb r3, [r4, 0xB]
+ cmp r3, 0x2
+ bne _0809EC0C
+ ldr r2, _0809EC30 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EC34 @ =0x0000e0ff
+ ands r0, r1
+ movs r4, 0xA0
+ lsls r4, 4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EC0C:
+ cmp r3, 0x3
+ bne _0809EC22
+ ldr r2, _0809EC30 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EC34 @ =0x0000e0ff
+ ands r0, r1
+ movs r3, 0xC0
+ lsls r3, 4
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EC22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EC28: .4byte 0x02018000
+_0809EC2C: .4byte gUnknown_030042C0
+_0809EC30: .4byte REG_BG1CNT
+_0809EC34: .4byte 0x0000e0ff
+ thumb_func_end sub_809EBC4
+
+ thumb_func_start sub_809EC38
+sub_809EC38: @ 809EC38
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0809EC5C @ =gTasks + 0x8
+ adds r6, r0, r1
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x5
+ bls _0809EC52
+ b _0809EE64
+_0809EC52:
+ lsls r0, 2
+ ldr r1, _0809EC60 @ =_0809EC64
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809EC5C: .4byte gTasks + 0x8
+_0809EC60: .4byte _0809EC64
+ .align 2, 0
+_0809EC64:
+ .4byte _0809EC7C
+ .4byte _0809ED14
+ .4byte _0809ED98
+ .4byte _0809EE12
+ .4byte _0809EE1C
+ .4byte _0809EE4C
+_0809EC7C:
+ ldr r1, _0809ECB8 @ =0x02018000
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809ECC8
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0
+ beq _0809EC98
+ ldr r1, _0809ECBC @ =gUnknown_03004288
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+_0809EC98:
+ cmp r3, 0x1
+ bne _0809ECAE
+ ldr r2, _0809ECC0 @ =REG_BG2CNT
+ ldrh r1, [r2]
+ ldr r0, _0809ECC4 @ =0x0000e0ff
+ ands r0, r1
+ movs r4, 0x80
+ lsls r4, 4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809ECAE:
+ cmp r3, 0x2
+ beq _0809ECB4
+ b _0809EE3A
+_0809ECB4:
+ ldr r2, _0809ECC0 @ =REG_BG2CNT
+ b _0809ECF6
+ .align 2, 0
+_0809ECB8: .4byte 0x02018000
+_0809ECBC: .4byte gUnknown_03004288
+_0809ECC0: .4byte REG_BG2CNT
+_0809ECC4: .4byte 0x0000e0ff
+_0809ECC8:
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0
+ beq _0809ECD8
+ ldr r1, _0809ED08 @ =gUnknown_030042C0
+ movs r4, 0x80
+ lsls r4, 1
+ adds r0, r4, 0
+ strh r0, [r1]
+_0809ECD8:
+ cmp r3, 0x1
+ bne _0809ECEE
+ ldr r2, _0809ED0C @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809ED10 @ =0x0000e0ff
+ ands r0, r1
+ movs r4, 0x80
+ lsls r4, 4
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809ECEE:
+ cmp r3, 0x2
+ beq _0809ECF4
+ b _0809EE3A
+_0809ECF4:
+ ldr r2, _0809ED0C @ =REG_BG1CNT
+_0809ECF6:
+ ldrh r1, [r2]
+ ldr r0, _0809ED10 @ =0x0000e0ff
+ ands r0, r1
+ movs r3, 0xA0
+ lsls r3, 4
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+ b _0809EE3A
+ .align 2, 0
+_0809ED08: .4byte gUnknown_030042C0
+_0809ED0C: .4byte REG_BG1CNT
+_0809ED10: .4byte 0x0000e0ff
+_0809ED14:
+ ldr r0, _0809ED48 @ =0x02018000
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809ED5C
+ ldr r1, _0809ED4C @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ subs r0, 0x20
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809ED2E
+ b _0809EE64
+_0809ED2E:
+ ldr r3, _0809ED50 @ =REG_BG1CNT
+ ldrh r2, [r3]
+ ldr r1, _0809ED54 @ =0x0000fffc
+ adds r0, r1, 0
+ ands r0, r2
+ adds r0, 0x2
+ strh r0, [r3]
+ ldr r2, _0809ED58 @ =REG_BG2CNT
+ ldrh r0, [r2]
+ ands r1, r0
+ adds r1, 0x1
+ strh r1, [r2]
+ b _0809EE3A
+ .align 2, 0
+_0809ED48: .4byte 0x02018000
+_0809ED4C: .4byte gUnknown_030042C0
+_0809ED50: .4byte REG_BG1CNT
+_0809ED54: .4byte 0x0000fffc
+_0809ED58: .4byte REG_BG2CNT
+_0809ED5C:
+ ldr r1, _0809ED88 @ =gUnknown_03004288
+ ldrh r0, [r1]
+ subs r0, 0x20
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0809ED6C
+ b _0809EE64
+_0809ED6C:
+ ldr r3, _0809ED8C @ =REG_BG1CNT
+ ldrh r2, [r3]
+ ldr r1, _0809ED90 @ =0x0000fffc
+ adds r0, r1, 0
+ ands r0, r2
+ adds r0, 0x1
+ strh r0, [r3]
+ ldr r2, _0809ED94 @ =REG_BG2CNT
+ ldrh r0, [r2]
+ ands r1, r0
+ adds r1, 0x2
+ strh r1, [r2]
+ b _0809EE3A
+ .align 2, 0
+_0809ED88: .4byte gUnknown_03004288
+_0809ED8C: .4byte REG_BG1CNT
+_0809ED90: .4byte 0x0000fffc
+_0809ED94: .4byte REG_BG2CNT
+_0809ED98:
+ ldr r1, _0809EDD4 @ =0x02018000
+ ldrb r3, [r1, 0xB]
+ adds r0, r3, 0x1
+ adds r2, r1, 0
+ adds r2, 0x7E
+ strb r0, [r2]
+ ldrb r2, [r1, 0x8]
+ subs r0, r2, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bhi _0809EDD8
+ adds r1, 0x7F
+ movs r0, 0
+ strb r0, [r1]
+ adds r4, r5, 0
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A029C
+ adds r5, 0x79
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A0428
+ ldrb r0, [r5]
+ bl sub_80A00F4
+ b _0809EE3A
+ .align 2, 0
+_0809EDD4: .4byte 0x02018000
+_0809EDD8:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0809EDFA
+ adds r0, r5, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809EDF2
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0809EDFA
+_0809EDF2:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x6
+ b _0809EE0E
+_0809EDFA:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0
+ bne _0809EE08
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x7
+ b _0809EE0E
+_0809EE08:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0
+_0809EE0E:
+ strb r0, [r1]
+ b _0809EE3A
+_0809EE12:
+ bl sub_80A0EE8
+ bl sub_80A0DD0
+ b _0809EE3A
+_0809EE1C:
+ ldr r0, _0809EE44 @ =gUnknown_083C1598
+ ldr r4, _0809EE48 @ =0x02018000
+ ldrb r1, [r4, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ adds r4, 0x80
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+_0809EE3A:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _0809EE64
+ .align 2, 0
+_0809EE44: .4byte gUnknown_083C1598
+_0809EE48: .4byte 0x02018000
+_0809EE4C:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809EE64
+ ldr r1, _0809EE6C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809EE70 @ =gUnknown_03005CF0
+ ldr r1, [r1]
+ str r1, [r0]
+_0809EE64:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809EE6C: .4byte gTasks
+_0809EE70: .4byte gUnknown_03005CF0
+ thumb_func_end sub_809EC38
+
+ thumb_func_start sub_809EE74
+sub_809EE74: @ 809EE74
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0809EE98 @ =gTasks + 0x8
+ adds r6, r0, r1
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x6
+ bls _0809EE8E
+ b _0809F0C0
+_0809EE8E:
+ lsls r0, 2
+ ldr r1, _0809EE9C @ =_0809EEA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809EE98: .4byte gTasks + 0x8
+_0809EE9C: .4byte _0809EEA0
+ .align 2, 0
+_0809EEA0:
+ .4byte _0809EEBC
+ .4byte _0809EEE0
+ .4byte _0809EFB4
+ .4byte _0809EFF4
+ .4byte _0809F06E
+ .4byte _0809F078
+ .4byte _0809F0A8
+_0809EEBC:
+ ldr r0, _0809EECC @ =0x02018000
+ adds r0, 0x80
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _0809EED4
+ ldr r0, _0809EED0 @ =gUnknown_03004288
+ strh r1, [r0]
+ b _0809F096
+ .align 2, 0
+_0809EECC: .4byte 0x02018000
+_0809EED0: .4byte gUnknown_03004288
+_0809EED4:
+ ldr r1, _0809EEDC @ =gUnknown_030042C0
+ movs r0, 0
+ strh r0, [r1]
+ b _0809F096
+ .align 2, 0
+_0809EEDC: .4byte gUnknown_030042C0
+_0809EEE0:
+ ldr r1, _0809EF30 @ =0x02018000
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809EF4C
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0x1
+ bne _0809EF02
+ ldr r2, _0809EF34 @ =REG_BG2CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF38 @ =0x0000e0fc
+ ands r0, r1
+ ldr r4, _0809EF3C @ =0x00000801
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF02:
+ cmp r3, 0x2
+ bne _0809EF16
+ ldr r2, _0809EF34 @ =REG_BG2CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF38 @ =0x0000e0fc
+ ands r0, r1
+ ldr r4, _0809EF40 @ =0x00000a01
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF16:
+ cmp r3, 0x3
+ bne _0809EF2A
+ ldr r2, _0809EF34 @ =REG_BG2CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF38 @ =0x0000e0fc
+ ands r0, r1
+ ldr r3, _0809EF44 @ =0x00000c01
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF2A:
+ ldr r2, _0809EF48 @ =REG_BG1CNT
+ b _0809EF8C
+ .align 2, 0
+_0809EF30: .4byte 0x02018000
+_0809EF34: .4byte REG_BG2CNT
+_0809EF38: .4byte 0x0000e0fc
+_0809EF3C: .4byte 0x00000801
+_0809EF40: .4byte 0x00000a01
+_0809EF44: .4byte 0x00000c01
+_0809EF48: .4byte REG_BG1CNT
+_0809EF4C:
+ ldrb r3, [r1, 0xB]
+ cmp r3, 0x1
+ bne _0809EF62
+ ldr r2, _0809EF98 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF9C @ =0x0000e0fc
+ ands r0, r1
+ ldr r4, _0809EFA0 @ =0x00000801
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF62:
+ cmp r3, 0x2
+ bne _0809EF76
+ ldr r2, _0809EF98 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF9C @ =0x0000e0fc
+ ands r0, r1
+ ldr r4, _0809EFA4 @ =0x00000a01
+ adds r1, r4, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF76:
+ cmp r3, 0x3
+ bne _0809EF8A
+ ldr r2, _0809EF98 @ =REG_BG1CNT
+ ldrh r1, [r2]
+ ldr r0, _0809EF9C @ =0x0000e0fc
+ ands r0, r1
+ ldr r3, _0809EFA8 @ =0x00000c01
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+_0809EF8A:
+ ldr r2, _0809EFAC @ =REG_BG2CNT
+_0809EF8C:
+ ldrh r1, [r2]
+ ldr r0, _0809EFB0 @ =0x0000fffc
+ ands r0, r1
+ adds r0, 0x2
+ strh r0, [r2]
+ b _0809F096
+ .align 2, 0
+_0809EF98: .4byte REG_BG1CNT
+_0809EF9C: .4byte 0x0000e0fc
+_0809EFA0: .4byte 0x00000801
+_0809EFA4: .4byte 0x00000a01
+_0809EFA8: .4byte 0x00000c01
+_0809EFAC: .4byte REG_BG2CNT
+_0809EFB0: .4byte 0x0000fffc
+_0809EFB4:
+ ldr r0, _0809EFD4 @ =0x02018000
+ adds r0, 0x80
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809EFDC
+ ldr r0, _0809EFD8 @ =gUnknown_03004288
+ ldrh r1, [r0]
+ adds r1, 0x20
+ strh r1, [r0]
+ lsls r1, 16
+ movs r0, 0x80
+ lsls r0, 17
+ cmp r1, r0
+ bne _0809F0C0
+ b _0809F096
+ .align 2, 0
+_0809EFD4: .4byte 0x02018000
+_0809EFD8: .4byte gUnknown_03004288
+_0809EFDC:
+ ldr r0, _0809EFF0 @ =gUnknown_030042C0
+ ldrh r1, [r0]
+ adds r1, 0x20
+ strh r1, [r0]
+ lsls r1, 16
+ movs r0, 0x80
+ lsls r0, 17
+ cmp r1, r0
+ bne _0809F0C0
+ b _0809F096
+ .align 2, 0
+_0809EFF0: .4byte gUnknown_030042C0
+_0809EFF4:
+ ldr r1, _0809F030 @ =0x02018000
+ ldrb r3, [r1, 0xB]
+ adds r0, r3, 0x1
+ adds r2, r1, 0
+ adds r2, 0x7E
+ strb r0, [r2]
+ ldrb r2, [r1, 0x8]
+ subs r0, r2, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bhi _0809F034
+ adds r1, 0x7F
+ movs r0, 0
+ strb r0, [r1]
+ adds r4, r5, 0
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A029C
+ adds r5, 0x79
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80A0428
+ ldrb r0, [r5]
+ bl sub_80A00F4
+ b _0809F096
+ .align 2, 0
+_0809F030: .4byte 0x02018000
+_0809F034:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0809F056
+ adds r0, r5, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809F04E
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0809F056
+_0809F04E:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x6
+ b _0809F06A
+_0809F056:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0
+ bne _0809F064
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0x7
+ b _0809F06A
+_0809F064:
+ adds r1, r5, 0
+ adds r1, 0x7F
+ movs r0, 0
+_0809F06A:
+ strb r0, [r1]
+ b _0809F096
+_0809F06E:
+ bl sub_80A0EE8
+ bl sub_80A0DD0
+ b _0809F096
+_0809F078:
+ ldr r0, _0809F0A0 @ =gUnknown_083C1598
+ ldr r4, _0809F0A4 @ =0x02018000
+ ldrb r1, [r4, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ adds r4, 0x80
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+_0809F096:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _0809F0C0
+ .align 2, 0
+_0809F0A0: .4byte gUnknown_083C1598
+_0809F0A4: .4byte 0x02018000
+_0809F0A8:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809F0C0
+ ldr r1, _0809F0C8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809F0CC @ =gUnknown_03005CF0
+ ldr r1, [r1]
+ str r1, [r0]
+_0809F0C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F0C8: .4byte gTasks
+_0809F0CC: .4byte gUnknown_03005CF0
+ thumb_func_end sub_809EE74
+
+ thumb_func_start sub_809F0D0
+sub_809F0D0: @ 809F0D0
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0809F110 @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ adds r0, r4
+ movs r5, 0
+ strb r0, [r1, 0xB]
+ ldr r2, _0809F114 @ =gUnknown_03005CF0
+ ldr r1, _0809F118 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ ldr r0, [r6]
+ str r0, [r2]
+ bl sub_809FBE4
+ strh r5, [r6, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _0809F120
+ ldr r0, _0809F11C @ =sub_809EC38
+ str r0, [r6]
+ b _0809F12A
+ .align 2, 0
+_0809F110: .4byte 0x02018000
+_0809F114: .4byte gUnknown_03005CF0
+_0809F118: .4byte gTasks
+_0809F11C: .4byte sub_809EC38
+_0809F120:
+ ldr r1, _0809F130 @ =sub_809EE74
+ str r1, [r6]
+ adds r0, r7, 0
+ bl _call_via_r1
+_0809F12A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F130: .4byte sub_809EE74
+ thumb_func_end sub_809F0D0
+
+ thumb_func_start SummaryScreenHandleLeftRightInput
+SummaryScreenHandleLeftRightInput: @ 809F134
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r4, _0809F1AC @ =0x02018010
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809F1A6
+ lsls r0, r5, 24
+ asrs r5, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _0809F168
+ adds r0, r4, 0
+ subs r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x65
+ ldrb r0, [r0, 0xB]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0809F1A6
+_0809F168:
+ cmp r5, 0x1
+ bne _0809F17C
+ adds r0, r4, 0
+ subs r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x66
+ ldrb r0, [r0, 0xB]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0809F1A6
+_0809F17C:
+ ldr r0, _0809F1B0 @ =sub_80A1334
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809F1A6
+ ldr r0, _0809F1B4 @ =sub_80A1500
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0809F1A6
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_809F0D0
+_0809F1A6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F1AC: .4byte 0x02018010
+_0809F1B0: .4byte sub_80A1334
+_0809F1B4: .4byte sub_80A1500
+ thumb_func_end SummaryScreenHandleLeftRightInput
+
+ thumb_func_start SummaryScreenHandleUpDownInput
+SummaryScreenHandleUpDownInput: @ 809F1B8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, _0809F1E4 @ =0x02018000
+ ldrb r1, [r0, 0xE]
+ adds r2, r0, 0
+ cmp r1, 0x1
+ bne _0809F202
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ beq _0809F1E8
+ lsls r1, r4, 24
+ asrs r1, 24
+ movs r4, 0x1
+ eors r1, r4
+ negs r0, r1
+ orrs r0, r1
+ lsrs r4, r0, 31
+ b _0809F1F4
+ .align 2, 0
+_0809F1E4: .4byte 0x02018000
+_0809F1E8:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r4, 0x3
+ cmp r0, 0x1
+ bne _0809F1F4
+ movs r4, 0x2
+_0809F1F4:
+ ldr r0, [r2]
+ ldrb r1, [r2, 0x9]
+ ldrb r2, [r2, 0xA]
+ adds r3, r4, 0
+ bl StorageSystemGetNextMonIndex
+ b _0809F22C
+_0809F202:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F224
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F224
+ lsls r0, r4, 24
+ asrs r0, 24
+ bl sub_809F3CC
+ b _0809F22C
+_0809F224:
+ lsls r0, r4, 24
+ asrs r0, 24
+ bl sub_809F284
+_0809F22C:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _0809F270
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _0809F278 @ =0x02018010
+ adds r0, r5, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F258
+ movs r0, 0x2
+ negs r0, r0
+ bl sub_80A12D0
+_0809F258:
+ adds r0, r5, 0
+ subs r0, 0x10
+ strb r4, [r0, 0x9]
+ ldr r1, _0809F27C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r5, 0x74]
+ ldr r1, _0809F280 @ =sub_809F43C
+ str r1, [r0]
+_0809F270:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F278: .4byte 0x02018010
+_0809F27C: .4byte gTasks
+_0809F280: .4byte sub_809F43C
+ thumb_func_end SummaryScreenHandleUpDownInput
+
+ thumb_func_start sub_809F284
+sub_809F284: @ 809F284
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0809F2C0 @ =0x02018000
+ ldr r7, [r0]
+ movs r6, 0
+ ldrb r1, [r0, 0xB]
+ adds r4, r0, 0
+ cmp r1, 0
+ bne _0809F2C4
+ lsls r0, r3, 24
+ asrs r2, r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ adds r5, r0, 0
+ cmp r2, r1
+ bne _0809F2AC
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ beq _0809F2E4
+_0809F2AC:
+ asrs r0, r5, 24
+ cmp r0, 0x1
+ bne _0809F2BA
+ ldrb r0, [r4, 0x9]
+ ldrb r1, [r4, 0xA]
+ cmp r0, r1
+ bcs _0809F2E4
+_0809F2BA:
+ ldrb r0, [r4, 0x9]
+ adds r0, r3
+ b _0809F304
+ .align 2, 0
+_0809F2C0: .4byte 0x02018000
+_0809F2C4:
+ lsls r5, r3, 24
+_0809F2C6:
+ lsls r0, r6, 24
+ asrs r0, 24
+ asrs r1, r5, 24
+ adds r0, r1
+ lsls r0, 24
+ ldr r4, _0809F2EC @ =0x02018000
+ lsrs r6, r0, 24
+ asrs r0, 24
+ ldrb r2, [r4, 0x9]
+ adds r1, r0, r2
+ cmp r1, 0
+ blt _0809F2E4
+ ldrb r0, [r4, 0xA]
+ cmp r1, r0
+ ble _0809F2F0
+_0809F2E4:
+ movs r0, 0x1
+ negs r0, r0
+ b _0809F308
+ .align 2, 0
+_0809F2EC: .4byte 0x02018000
+_0809F2F0:
+ movs r0, 0x64
+ muls r0, r1
+ adds r0, r7, r0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809F2C6
+ ldrb r0, [r4, 0x9]
+ adds r0, r6
+_0809F304:
+ lsls r0, 24
+ asrs r0, 24
+_0809F308:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F284
+
+ thumb_func_start sub_809F310
+sub_809F310: @ 809F310
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0809F33C
+ ldr r0, _0809F338 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0
+ bne _0809F332
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0809F33C
+_0809F332:
+ movs r0, 0x1
+ b _0809F33E
+ .align 2, 0
+_0809F338: .4byte 0x02018000
+_0809F33C:
+ movs r0, 0
+_0809F33E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F310
+
+ thumb_func_start sub_809F344
+sub_809F344: @ 809F344
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0809F34A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ beq _0809F37C
+ ldr r0, _0809F374 @ =gUnknown_083C15A8
+ adds r5, r4, r0
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809F378 @ =gPlayerParty
+ adds r0, r1
+ bl sub_809F310
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F34A
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ b _0809F380
+ .align 2, 0
+_0809F374: .4byte gUnknown_083C15A8
+_0809F378: .4byte gPlayerParty
+_0809F37C:
+ movs r0, 0x1
+ negs r0, r0
+_0809F380:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F344
+
+ thumb_func_start sub_809F388
+sub_809F388: @ 809F388
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0809F38E:
+ cmp r4, 0
+ beq _0809F3C0
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809F3B8 @ =gUnknown_083C15A8
+ adds r5, r4, r0
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0809F3BC @ =gPlayerParty
+ adds r0, r1
+ bl sub_809F310
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F38E
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ b _0809F3C4
+ .align 2, 0
+_0809F3B8: .4byte gUnknown_083C15A8
+_0809F3BC: .4byte gPlayerParty
+_0809F3C0:
+ movs r0, 0x1
+ negs r0, r0
+_0809F3C4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F388
+
+ thumb_func_start sub_809F3CC
+sub_809F3CC: @ 809F3CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r2, 0
+ movs r1, 0
+ ldr r3, _0809F41C @ =gUnknown_083C15A8
+ ldr r4, _0809F420 @ =0x02018000
+ ldrb r0, [r3]
+ ldrb r5, [r4, 0x9]
+ cmp r0, r5
+ beq _0809F3FC
+ adds r5, r3, 0
+ adds r3, r4, 0
+_0809F3E6:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x5
+ bhi _0809F3FC
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldrb r4, [r3, 0x9]
+ cmp r0, r4
+ bne _0809F3E6
+ adds r2, r1, 0
+_0809F3FC:
+ lsls r0, r6, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0809F40C
+ cmp r2, 0
+ beq _0809F414
+_0809F40C:
+ cmp r1, 0x1
+ bne _0809F424
+ cmp r2, 0x5
+ bne _0809F42C
+_0809F414:
+ movs r0, 0x1
+ negs r0, r0
+ b _0809F436
+ .align 2, 0
+_0809F41C: .4byte gUnknown_083C15A8
+_0809F420: .4byte 0x02018000
+_0809F424:
+ adds r0, r2, 0
+ bl sub_809F388
+ b _0809F432
+_0809F42C:
+ adds r0, r2, 0
+ bl sub_809F344
+_0809F432:
+ lsls r0, 24
+ asrs r0, 24
+_0809F436:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F3CC
+
+ thumb_func_start sub_809F43C
+sub_809F43C: @ 809F43C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0809F45C @ =gMain
+ ldr r1, _0809F460 @ =0x0000043c
+ adds r5, r0, r1
+ ldrb r2, [r5]
+ adds r3, r0, 0
+ cmp r2, 0x8
+ bls _0809F452
+ b _0809F5CC
+_0809F452:
+ lsls r0, r2, 2
+ ldr r1, _0809F464 @ =_0809F468
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0809F45C: .4byte gMain
+_0809F460: .4byte 0x0000043c
+_0809F464: .4byte _0809F468
+ .align 2, 0
+_0809F468:
+ .4byte _0809F48C
+ .4byte _0809F492
+ .4byte _0809F4BC
+ .4byte _0809F4D8
+ .4byte _0809F4F4
+ .4byte _0809F51C
+ .4byte _0809F578
+ .4byte _0809F584
+ .4byte _0809F5A0
+_0809F48C:
+ bl StopCryAndClearCrySongs
+ b _0809F5B2
+_0809F492:
+ ldr r0, _0809F4AC @ =0x02018000
+ ldrb r1, [r0, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809F4B0 @ =gSprites
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ ldr r1, _0809F4B4 @ =gMain
+ ldr r0, _0809F4B8 @ =0x0000043c
+ adds r1, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F4AC: .4byte 0x02018000
+_0809F4B0: .4byte gSprites
+_0809F4B4: .4byte gMain
+_0809F4B8: .4byte 0x0000043c
+_0809F4BC:
+ ldr r0, _0809F4D0 @ =0x02018000
+ ldrb r1, [r0, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0809F4D4 @ =gSprites
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ b _0809F5B2
+ .align 2, 0
+_0809F4D0: .4byte 0x02018000
+_0809F4D4: .4byte gSprites
+_0809F4D8:
+ ldr r0, _0809F4EC @ =0x02018000
+ adds r1, r0, 0
+ adds r1, 0x74
+ movs r2, 0
+ strb r2, [r1]
+ adds r0, 0x79
+ strb r2, [r0]
+ ldr r0, _0809F4F0 @ =0x0000043c
+ adds r1, r3, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F4EC: .4byte 0x02018000
+_0809F4F0: .4byte 0x0000043c
+_0809F4F4:
+ ldr r4, _0809F518 @ =0x02018010
+ adds r0, r4, 0
+ bl sub_809F678
+ adds r0, r4, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F50E
+ movs r0, 0x2
+ bl sub_80A12D0
+_0809F50E:
+ adds r0, r4, 0
+ bl sub_80A0EA4
+ b _0809F5B2
+ .align 2, 0
+_0809F518: .4byte 0x02018010
+_0809F51C:
+ ldr r4, _0809F558 @ =0x02018010
+ adds r5, r4, 0
+ adds r5, 0x64
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_809F6B4
+ adds r1, r4, 0
+ subs r1, 0x10
+ strb r0, [r1, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0809F5EA
+ movs r0, 0
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _0809F560
+ ldr r1, _0809F55C @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _0809F564
+ .align 2, 0
+_0809F558: .4byte 0x02018010
+_0809F55C: .4byte gUnknown_030041B0
+_0809F560:
+ ldr r0, _0809F56C @ =gUnknown_030041B0
+ strh r1, [r0]
+_0809F564:
+ ldr r1, _0809F570 @ =gMain
+ ldr r0, _0809F574 @ =0x0000043c
+ adds r1, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F56C: .4byte gUnknown_030041B0
+_0809F570: .4byte gMain
+_0809F574: .4byte 0x0000043c
+_0809F578:
+ ldr r0, _0809F580 @ =0x02018010
+ bl sub_80A1DCC
+ b _0809F5B2
+ .align 2, 0
+_0809F580: .4byte 0x02018010
+_0809F584:
+ ldr r0, _0809F594 @ =0x02018010
+ bl sub_80A1DE8
+ ldr r1, _0809F598 @ =gMain
+ ldr r0, _0809F59C @ =0x0000043c
+ adds r1, r0
+ b _0809F5B8
+ .align 2, 0
+_0809F594: .4byte 0x02018010
+_0809F598: .4byte gMain
+_0809F59C: .4byte 0x0000043c
+_0809F5A0:
+ bl sub_809F5F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809F5EA
+ ldr r0, _0809F5C0 @ =0x02018000
+ adds r0, 0x74
+ movs r1, 0
+ strb r1, [r0]
+_0809F5B2:
+ ldr r1, _0809F5C4 @ =gMain
+ ldr r2, _0809F5C8 @ =0x0000043c
+ adds r1, r2
+_0809F5B8:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0809F5EA
+ .align 2, 0
+_0809F5C0: .4byte 0x02018000
+_0809F5C4: .4byte gMain
+_0809F5C8: .4byte 0x0000043c
+_0809F5CC:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0809F5EA
+ movs r0, 0
+ strb r0, [r5]
+ ldr r0, _0809F5F0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0809F5F4 @ =0x02018000
+ adds r0, 0x84
+ ldr r0, [r0]
+ str r0, [r1]
+_0809F5EA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F5F0: .4byte gTasks
+_0809F5F4: .4byte 0x02018000
+ thumb_func_end sub_809F43C
+
+ thumb_func_start sub_809F5F8
+sub_809F5F8: @ 809F5F8
+ push {r4,lr}
+ ldr r2, _0809F61C @ =0x02018000
+ adds r4, r2, 0
+ adds r4, 0x74
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0809F624
+ ldr r0, _0809F620 @ =gUnknown_083C1588
+ ldrb r1, [r2, 0xB]
+ lsls r1, 2
+ adds r1, r0
+ adds r0, r2, 0
+ adds r0, 0x10
+ ldr r1, [r1]
+ bl _call_via_r1
+ movs r0, 0x1
+ b _0809F634
+ .align 2, 0
+_0809F61C: .4byte 0x02018000
+_0809F620: .4byte gUnknown_083C1588
+_0809F624:
+ adds r0, r2, 0
+ adds r0, 0x10
+ bl sub_809FAC8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0
+_0809F634:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F5F8
+
+ thumb_func_start sub_809F63C
+sub_809F63C: @ 809F63C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809FE80
+ adds r0, r4, 0
+ bl sub_809FC34
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F63C
+
+ thumb_func_start sub_809F650
+sub_809F650: @ 809F650
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A00A4
+ adds r0, r4, 0
+ bl sub_809FF64
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F650
+
+ thumb_func_start sub_809F664
+sub_809F664: @ 809F664
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A0390
+ adds r0, r4, 0
+ bl sub_80A015C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F664
+
+ thumb_func_start sub_809F678
+sub_809F678: @ 809F678
+ push {lr}
+ adds r3, r0, 0
+ ldr r1, _0809F698 @ =0x02018000
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ bne _0809F69C
+ ldr r2, [r1]
+ ldrb r1, [r1, 0x9]
+ movs r0, 0x64
+ muls r1, r0
+ adds r1, r2
+ adds r0, r3, 0
+ movs r2, 0x64
+ bl memcpy
+ b _0809F6AE
+ .align 2, 0
+_0809F698: .4byte 0x02018000
+_0809F69C:
+ ldr r0, [r1]
+ ldrb r2, [r1, 0x9]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r3, 0
+ bl sub_803B4B4
+_0809F6AE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809F678
+
+ thumb_func_start sub_809F6B4
+sub_809F6B4: @ 809F6B4
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r7, r1, 0
+ ldrb r0, [r7]
+ cmp r0, 0
+ beq _0809F6D2
+ cmp r0, 0x1
+ beq _0809F718
+ adds r0, r4, 0
+ bl sub_80A1808
+ lsls r0, 24
+ lsrs r0, 24
+ b _0809F756
+_0809F6D2:
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r0, r5, 3
+ ldr r1, _0809F70C @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _0809F710 @ =gMonFrontPicCoords
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _0809F714 @ =gUnknown_081FAF4C
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ bl HandleLoadSpecialPokePic
+ b _0809F74E
+ .align 2, 0
+_0809F70C: .4byte gMonFrontPicTable
+_0809F710: .4byte gMonFrontPicCoords
+_0809F714: .4byte gUnknown_081FAF4C
+_0809F718:
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ ldrh r0, [r4, 0x4]
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+_0809F74E:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ movs r0, 0xFF
+_0809F756:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F6B4
+
+ thumb_func_start sub_809F760
+sub_809F760: @ 809F760
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x1
+ beq _0809F780
+ cmp r1, 0x1
+ bgt _0809F776
+ cmp r1, 0
+ beq _0809F77C
+ b _0809F788
+_0809F776:
+ cmp r2, 0x2
+ beq _0809F784
+ b _0809F788
+_0809F77C:
+ movs r1, 0xD
+ b _0809F78A
+_0809F780:
+ movs r1, 0xE
+ b _0809F78A
+_0809F784:
+ movs r1, 0xF
+ b _0809F78A
+_0809F788:
+ movs r1, 0x10
+_0809F78A:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F760
+
+ thumb_func_start sub_809F798
+sub_809F798: @ 809F798
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x1
+ beq _0809F7B8
+ cmp r1, 0x1
+ bgt _0809F7AE
+ cmp r1, 0
+ beq _0809F7B4
+ b _0809F7C0
+_0809F7AE:
+ cmp r2, 0x2
+ beq _0809F7BC
+ b _0809F7C0
+_0809F7B4:
+ movs r1, 0x11
+ b _0809F7C2
+_0809F7B8:
+ movs r1, 0x12
+ b _0809F7C2
+_0809F7BC:
+ movs r1, 0x13
+ b _0809F7C2
+_0809F7C0:
+ movs r1, 0x14
+_0809F7C2:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F798
+
+ thumb_func_start sub_809F7D0
+sub_809F7D0: @ 809F7D0
+ push {r4,lr}
+ sub sp, 0x64
+ mov r0, sp
+ bl sub_809F678
+ ldr r4, _0809F804 @ =0x02018000
+ adds r0, r4, 0
+ adds r0, 0x79
+ ldrb r1, [r0]
+ mov r0, sp
+ bl sub_809F760
+ lsls r0, 16
+ lsrs r0, 16
+ bl IsHMMove
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F808
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x3
+ beq _0809F808
+ movs r0, 0
+ b _0809F80A
+ .align 2, 0
+_0809F804: .4byte 0x02018000
+_0809F808:
+ movs r0, 0x1
+_0809F80A:
+ add sp, 0x64
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809F7D0
+
+ thumb_func_start sub_809F814
+sub_809F814: @ 809F814
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r0, _0809F83C @ =gTasks + 0x8
+ mov r8, r0
+ adds r4, r6, r0
+ ldrh r1, [r4, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ bgt _0809F840
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1C]
+ b _0809F9C0
+ .align 2, 0
+_0809F83C: .4byte gTasks + 0x8
+_0809F840:
+ ldr r7, _0809F874 @ =gMain
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F880
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0809F878 @ =sub_809E260
+ str r1, [r0]
+ movs r0, 0x4
+ strh r0, [r4]
+ movs r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r2, _0809F87C @ =0x02018000
+ ldrh r0, [r4, 0x1E]
+ adds r2, 0x79
+ strb r0, [r2]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r5, 0
+ bl sub_809E8F0
+ b _0809F9C0
+ .align 2, 0
+_0809F874: .4byte gMain
+_0809F878: .4byte sub_809E260
+_0809F87C: .4byte 0x02018000
+_0809F880:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F8B4
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0809F8AC @ =sub_809E260
+ str r1, [r0]
+ movs r0, 0x4
+ strh r0, [r4]
+ movs r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r2, _0809F8B0 @ =0x02018000
+ ldrh r0, [r4, 0x1E]
+ adds r2, 0x79
+ strb r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_809E8F0
+ b _0809F9C0
+ .align 2, 0
+_0809F8AC: .4byte sub_809E260
+_0809F8B0: .4byte 0x02018000
+_0809F8B4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0809F8C8
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0809F918
+_0809F8C8:
+ ldr r1, _0809F90C @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x2
+ beq _0809F9C0
+ cmp r0, 0x3
+ bne _0809F8F4
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809F8E8
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809F8F4
+_0809F8E8:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809F8F4:
+ ldr r1, _0809F910 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809F914 @ =sub_809E260
+ str r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r5, 0
+ b _0809F972
+ .align 2, 0
+_0809F90C: .4byte 0x02018000
+_0809F910: .4byte gTasks
+_0809F914: .4byte sub_809E260
+_0809F918:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0809F92E
+ bl sub_80F9284
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0809F994
+_0809F92E:
+ ldr r1, _0809F988 @ =0x02018000
+ adds r2, r1, 0
+ adds r2, 0x76
+ ldrb r0, [r1, 0xB]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0809F9C0
+ cmp r0, 0x2
+ bne _0809F960
+ adds r0, r1, 0
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0809F954
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0809F960
+_0809F954:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0809F960:
+ ldr r1, _0809F98C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0809F990 @ =sub_809E260
+ str r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x1
+_0809F972:
+ bl SummaryScreenHandleLeftRightInput
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x1
+ bl sub_80A1488
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x1
+ bl sub_80A1654
+ b _0809F9C0
+ .align 2, 0
+_0809F988: .4byte 0x02018000
+_0809F98C: .4byte gTasks
+_0809F990: .4byte sub_809E260
+_0809F994:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0809F9A6
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0809F9C0
+_0809F9A6:
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x2
+ bl sub_80A1488
+ ldrb r1, [r4, 0x1E]
+ movs r0, 0x2
+ bl sub_80A1654
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0809F9CC @ =sub_809E260
+ str r1, [r0]
+_0809F9C0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809F9CC: .4byte sub_809E260
+ thumb_func_end sub_809F814
+
+ thumb_func_start sub_809F9D0
+sub_809F9D0: @ 809F9D0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r6, _0809FA24 @ =gTasks + 0x8
+ adds r2, r4, r6
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ strh r1, [r2, 0x1E]
+ movs r5, 0x2
+ negs r5, r5
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_80A1488
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_80A1654
+ movs r0, 0xB
+ movs r1, 0xF
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ ldr r0, _0809FA28 @ =gOtherText_CantForgetHMs
+ movs r1, 0xB
+ movs r2, 0xF
+ bl MenuPrint
+ subs r6, 0x8
+ adds r4, r6
+ ldr r0, _0809FA2C @ =sub_809F814
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FA24: .4byte gTasks + 0x8
+_0809FA28: .4byte gOtherText_CantForgetHMs
+_0809FA2C: .4byte sub_809F814
+ thumb_func_end sub_809F9D0
+
+ thumb_func_start sub_809FA30
+sub_809FA30: @ 809FA30
+ ldr r0, _0809FA38 @ =0x02018000
+ adds r0, 0x7A
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0809FA38: .4byte 0x02018000
+ thumb_func_end sub_809FA30
+
+ thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing
+GetStringCenterAlignXOffsetWithLetterSpacing: @ 809FA3C
+ push {r4,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r2, 23
+ lsrs r3, 18
+ ldr r4, _0809FA70 @ =0x0600f000
+ adds r3, r4
+ adds r2, r3
+ lsrs r1, 12
+ lsrs r0, 23
+ movs r4, 0x80
+ lsls r4, 2
+ adds r3, r4, 0
+ adds r0, r3
+ adds r1, r0
+ adds r0, r1, 0
+ adds r0, 0x80
+ strh r0, [r2]
+ adds r2, 0x40
+ adds r1, 0x81
+ strh r1, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FA70: .4byte 0x0600f000
+ thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing
+
+ thumb_func_start GetStringCenterAlignXOffset
+GetStringCenterAlignXOffset: @ 809FA74
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0xF
+ adds r2, r4, 0
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end GetStringCenterAlignXOffset
+
+ thumb_func_start sub_809FA94
+sub_809FA94: @ 809FA94
+ push {lr}
+ bl IsShiny
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809FAB4
+ ldr r0, _0809FAB0 @ =gUnknown_083C157E
+ movs r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+ movs r0, 0x1
+ b _0809FAC0
+ .align 2, 0
+_0809FAB0: .4byte gUnknown_083C157E
+_0809FAB4:
+ ldr r0, _0809FAC4 @ =gUnknown_083C157C
+ movs r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+ movs r0, 0
+_0809FAC0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809FAC4: .4byte gUnknown_083C157C
+ thumb_func_end sub_809FA94
+
+ thumb_func_start sub_809FAC8
+sub_809FAC8: @ 809FAC8
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0809FB28
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0x4
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+ movs r0, 0x3
+ movs r1, 0x10
+ movs r2, 0x9
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xC
+ movs r2, 0xB
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ ldr r4, _0809FB20 @ =gStringVar1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetMonNickname
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0x3
+ movs r3, 0x10
+ bl sub_80A1FF8
+ ldr r0, _0809FB24 @ =gUnknown_083C157C
+ movs r1, 0x4
+ movs r2, 0x2
+ bl LoadPalette
+ b _0809FBD6
+ .align 2, 0
+_0809FB20: .4byte gStringVar1
+_0809FB24: .4byte gUnknown_083C157C
+_0809FB28:
+ adds r0, r5, 0
+ bl sub_809FA94
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl SpeciesToPokedexNum
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _0809FB6C @ =0x0000ffff
+ cmp r4, r0
+ beq _0809FB96
+ cmp r6, 0
+ bne _0809FB70
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x2
+ bl GetStringCenterAlignXOffset
+ movs r0, 0x11
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0xD
+ b _0809FB8C
+ .align 2, 0
+_0809FB6C: .4byte 0x0000ffff
+_0809FB70:
+ movs r0, 0x2
+ movs r1, 0x8
+ movs r2, 0x1
+ movs r3, 0x2
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ movs r0, 0x11
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x8
+_0809FB8C:
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80A1F98
+ b _0809FBA2
+_0809FB96:
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0x4
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+_0809FBA2:
+ ldr r1, _0809FBE0 @ =gStringVar1
+ adds r0, r1, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl GetMonNickname
+ adds r1, r0, 0
+ movs r0, 0xFC
+ strb r0, [r1]
+ movs r0, 0x13
+ strb r0, [r1, 0x1]
+ movs r0, 0x3C
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0809FBE0 @ =gStringVar1
+ movs r1, 0x1
+ movs r2, 0xC
+ bl MenuPrint
+ adds r0, r5, 0
+ bl sub_80A0958
+_0809FBD6:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FBE0: .4byte gStringVar1
+ thumb_func_end sub_809FAC8
+
+ thumb_func_start sub_809FBE4
+sub_809FBE4: @ 809FBE4
+ push {r4,lr}
+ movs r4, 0
+_0809FBE8:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1B
+ bls _0809FBE8
+ movs r0, 0xB
+ movs r1, 0x4
+ movs r2, 0x1D
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FBE4
+
+ thumb_func_start sub_809FC0C
+sub_809FC0C: @ 809FC0C
+ push {lr}
+ ldr r0, _0809FC30 @ =gOtherText_Type2
+ movs r1, 0xB
+ movs r2, 0x6
+ bl MenuPrint
+ movs r0, 0
+ movs r1, 0x16
+ movs r2, 0x4
+ bl GetStringCenterAlignXOffset
+ movs r0, 0x2
+ movs r1, 0x17
+ movs r2, 0x4
+ bl GetStringCenterAlignXOffset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FC30: .4byte gOtherText_Type2
+ thumb_func_end sub_809FC0C
+
+ thumb_func_start sub_809FC34
+sub_809FC34: @ 809FC34
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ movs r4, 0
+_0809FC3C:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0809FC3C
+ movs r0, 0xB
+ movs r1, 0x9
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0809FD1C
+ ldr r5, _0809FCD0 @ =gStringVar1
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r5, r0, 0
+ ldr r1, _0809FCD4 @ =gOtherText_OriginalTrainer
+ bl StringCopy
+ adds r5, r0, 0
+ ldr r4, _0809FCD8 @ =gOtherText_FiveQuestionsAndSlash
+ adds r1, r4, 0
+ bl StringCopy
+ adds r5, r0, 0
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r0, 0x4E
+ strb r0, [r5, 0x2]
+ movs r0, 0xFF
+ strb r0, [r5, 0x3]
+ ldr r0, _0809FCD0 @ =gStringVar1
+ movs r1, 0xB
+ movs r2, 0x4
+ bl MenuPrint
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0xC1
+ movs r3, 0x20
+ bl sub_80A1EF8
+ movs r0, 0x9
+ movs r1, 0x78
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80A198C
+ adds r0, r6, 0
+ movs r1, 0x20
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r0, 0
+ cmp r0, 0x5
+ bhi _0809FCE0
+ ldr r0, _0809FCDC @ =gOtherText_EggAbout
+ b _0809FCF2
+ .align 2, 0
+_0809FCD0: .4byte gStringVar1
+_0809FCD4: .4byte gOtherText_OriginalTrainer
+_0809FCD8: .4byte gOtherText_FiveQuestionsAndSlash
+_0809FCDC: .4byte gOtherText_EggAbout
+_0809FCE0:
+ cmp r0, 0xA
+ bhi _0809FCEC
+ ldr r0, _0809FCE8 @ =gOtherText_EggSoon
+ b _0809FCF2
+ .align 2, 0
+_0809FCE8: .4byte gOtherText_EggSoon
+_0809FCEC:
+ cmp r1, 0x28
+ bhi _0809FD00
+ ldr r0, _0809FCFC @ =gOtherText_EggSomeTime
+_0809FCF2:
+ movs r1, 0xB
+ movs r2, 0x9
+ bl MenuPrint
+ b _0809FD0A
+ .align 2, 0
+_0809FCFC: .4byte gOtherText_EggSomeTime
+_0809FD00:
+ ldr r0, _0809FD18 @ =gOtherText_EggLongTime
+ movs r1, 0xB
+ movs r2, 0x9
+ bl MenuPrint
+_0809FD0A:
+ adds r0, r6, 0
+ movs r1, 0xB
+ movs r2, 0xE
+ bl PokemonSummaryScreen_PrintEggTrainerMemo
+ b _0809FE4C
+ .align 2, 0
+_0809FD18: .4byte gOtherText_EggLongTime
+_0809FD1C:
+ ldr r4, _0809FD64 @ =gStringVar2
+ adds r0, r6, 0
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ ldr r5, _0809FD68 @ =gStringVar1
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r5, r0, 0
+ ldr r1, _0809FD6C @ =gOtherText_OriginalTrainer
+ bl StringCopy
+ adds r5, r0, 0
+ adds r0, r6, 0
+ movs r1, 0x31
+ bl GetMonData
+ cmp r0, 0
+ bne _0809FD70
+ adds r0, r5, 0
+ movs r1, 0x9
+ b _0809FD74
+ .align 2, 0
+_0809FD64: .4byte gStringVar2
+_0809FD68: .4byte gStringVar1
+_0809FD6C: .4byte gOtherText_OriginalTrainer
+_0809FD70:
+ adds r0, r5, 0
+ movs r1, 0xA
+_0809FD74:
+ bl sub_80A1E58
+ adds r5, r0, 0
+ ldr r1, _0809FE54 @ =gStringVar2
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r0, 0x4E
+ strb r0, [r5, 0x2]
+ movs r0, 0xFF
+ strb r0, [r5, 0x3]
+ ldr r0, _0809FE58 @ =gStringVar1
+ movs r1, 0xB
+ movs r2, 0x4
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonData
+ ldr r1, _0809FE5C @ =0x0000ffff
+ ands r1, r0
+ movs r0, 0xC1
+ str r0, [sp]
+ movs r0, 0x20
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ adds r0, r1, 0
+ movs r1, 0xD
+ movs r2, 0x5
+ movs r3, 0x2
+ bl sub_80A1F98
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _0809FE60 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r5, r1, r2
+ ldrb r4, [r5, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x78
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80A198C
+ ldrb r0, [r5, 0x7]
+ cmp r4, r0
+ beq _0809FDF8
+ ldrb r0, [r5, 0x7]
+ movs r1, 0xA0
+ movs r2, 0x30
+ movs r3, 0x1
+ bl sub_80A198C
+_0809FDF8:
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x2E
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetAbilityBySpecies
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xD
+ muls r0, r4
+ ldr r1, _0809FE64 @ =gAbilityNames
+ adds r0, r1
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x9
+ bl sub_80A1FF8
+ ldr r0, _0809FE68 @ =gAbilityDescriptions
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0xB
+ movs r2, 0xB
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0xB
+ movs r2, 0xE
+ bl PokemonSummaryScreen_PrintTrainerMemo
+_0809FE4C:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FE54: .4byte gStringVar2
+_0809FE58: .4byte gStringVar1
+_0809FE5C: .4byte 0x0000ffff
+_0809FE60: .4byte gBaseStats
+_0809FE64: .4byte gAbilityNames
+_0809FE68: .4byte gAbilityDescriptions
+ thumb_func_end sub_809FC34
+
+ thumb_func_start sub_809FE6C
+sub_809FE6C: @ 809FE6C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809FC0C
+ adds r0, r4, 0
+ bl sub_809FC34
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FE6C
+
+ thumb_func_start sub_809FE80
+sub_809FE80: @ 809FE80
+ push {lr}
+ movs r0, 0xE
+ movs r1, 0x4
+ movs r2, 0x12
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0x19
+ movs r1, 0x4
+ movs r2, 0x1E
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0xB
+ movs r1, 0x9
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0xB
+ movs r1, 0xE
+ movs r2, 0x1C
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809FE80
+
+ thumb_func_start sub_809FEB8
+sub_809FEB8: @ 809FEB8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0809FF40 @ =gOtherText_ExpPoints
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0xE
+ bl sub_80A1FF8
+ ldr r0, _0809FF44 @ =gOtherText_NextLv
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x10
+ bl sub_80A1FF8
+ ldr r0, _0809FF48 @ =gOtherText_Terminator18
+ movs r1, 0x15
+ movs r2, 0x10
+ bl MenuPrint
+ ldr r0, _0809FF4C @ =gOtherText_HP
+ movs r4, 0x2A
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x7
+ bl sub_80A1F48
+ ldr r0, _0809FF50 @ =gOtherText_Attack
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0x9
+ bl sub_80A1F48
+ ldr r0, _0809FF54 @ =gOtherText_Defense
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0xB
+ movs r3, 0xB
+ bl sub_80A1F48
+ ldr r0, _0809FF58 @ =gOtherText_SpAtk
+ movs r4, 0x24
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0x16
+ movs r3, 0x7
+ bl sub_80A1F48
+ ldr r0, _0809FF5C @ =gOtherText_SpDef
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0x16
+ movs r3, 0x9
+ bl sub_80A1F48
+ ldr r0, _0809FF60 @ =gOtherText_Speed
+ str r4, [sp]
+ movs r1, 0xD
+ movs r2, 0x16
+ movs r3, 0xB
+ bl sub_80A1F48
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809FF40: .4byte gOtherText_ExpPoints
+_0809FF44: .4byte gOtherText_NextLv
+_0809FF48: .4byte gOtherText_Terminator18
+_0809FF4C: .4byte gOtherText_HP
+_0809FF50: .4byte gOtherText_Attack
+_0809FF54: .4byte gOtherText_Defense
+_0809FF58: .4byte gOtherText_SpAtk
+_0809FF5C: .4byte gOtherText_SpDef
+_0809FF60: .4byte gOtherText_Speed
+ thumb_func_end sub_809FEB8
+
+ thumb_func_start sub_809FF64
+sub_809FF64: @ 809FF64
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_0809FF6A:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0809FF6A
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB
+ movs r2, 0x4
+ bl sub_80A0BF4
+ adds r0, r5, 0
+ bl sub_80A0B88
+ ldr r4, _080A008C @ =gStringVar1
+ adds r0, r5, 0
+ movs r1, 0x19
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1D
+ movs r2, 0xE
+ bl MenuPrint_RightAligned
+ adds r0, r5, 0
+ movs r1, 0x17
+ movs r2, 0x10
+ bl sub_80A0C80
+ adds r0, r5, 0
+ movs r1, 0x3B
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x9
+ movs r3, 0x32
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0xB
+ movs r3, 0x32
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3E
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1B
+ movs r2, 0x7
+ movs r3, 0x12
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3F
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1B
+ movs r2, 0x9
+ movs r3, 0x12
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x3D
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ movs r1, 0x1B
+ movs r2, 0xB
+ movs r3, 0x12
+ bl sub_8072BD8
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x18
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r4, r0, 0
+ movs r0, 0xBA
+ strb r0, [r4]
+ adds r4, 0x1
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x30
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A008C @ =gStringVar1
+ movs r1, 0x7E
+ movs r2, 0x38
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A008C: .4byte gStringVar1
+ thumb_func_end sub_809FF64
+
+ thumb_func_start sub_80A0090
+sub_80A0090: @ 80A0090
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809FEB8
+ adds r0, r4, 0
+ bl sub_809FF64
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0090
+
+ thumb_func_start sub_80A00A4
+sub_80A00A4: @ 80A00A4
+ push {lr}
+ movs r0, 0xB
+ movs r1, 0x4
+ movs r2, 0x13
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0x10
+ movs r1, 0x7
+ movs r2, 0x15
+ movs r3, 0x8
+ bl MenuZeroFillWindowRect
+ movs r0, 0x11
+ movs r1, 0x9
+ movs r2, 0x15
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0x1B
+ movs r1, 0x7
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ movs r0, 0x16
+ movs r1, 0xE
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ movs r0, 0x17
+ movs r1, 0x10
+ movs r2, 0x1C
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A00A4
+
+ thumb_func_start sub_80A00F4
+sub_80A00F4: @ 80A00F4
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, _080A012C @ =0x02018000
+ adds r0, r2, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080A010A
+ cmp r1, 0x4
+ beq _080A0150
+_080A010A:
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0x2
+ bne _080A0138
+ ldr r0, _080A0130 @ =gOtherText_Power2
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0xF
+ bl sub_80A1FF8
+ ldr r0, _080A0134 @ =gOtherText_Accuracy2
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x11
+ bl sub_80A1FF8
+ b _080A0150
+ .align 2, 0
+_080A012C: .4byte 0x02018000
+_080A0130: .4byte gOtherText_Power2
+_080A0134: .4byte gOtherText_Accuracy2
+_080A0138:
+ ldr r0, _080A0154 @ =gOtherText_Appeal2
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0xF
+ bl sub_80A1FF8
+ ldr r0, _080A0158 @ =gOtherText_Jam2
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x11
+ bl sub_80A1FF8
+_080A0150:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0154: .4byte gOtherText_Appeal2
+_080A0158: .4byte gOtherText_Jam2
+ thumb_func_end sub_80A00F4
+
+ thumb_func_start sub_80A015C
+sub_80A015C: @ 80A015C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ movs r7, 0
+_080A0168:
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_809F760
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_809F798
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r6, 0
+ bne _080A01B8
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ lsls r4, r7, 25
+ movs r0, 0x80
+ lsls r0, 19
+ adds r4, r0
+ lsrs r4, 24
+ ldr r0, _080A01B0 @ =gOtherText_OneDash
+ movs r1, 0xD
+ movs r2, 0xF
+ adds r3, r4, 0
+ bl sub_80A1FF8
+ ldr r0, _080A01B4 @ =gOtherText_TwoDashes
+ movs r1, 0x1A
+ adds r2, r4, 0
+ bl MenuPrint
+ b _080A0276
+ .align 2, 0
+_080A01B0: .4byte gOtherText_OneDash
+_080A01B4: .4byte gOtherText_TwoDashes
+_080A01B8:
+ ldr r0, _080A01E0 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A01E8
+ ldr r1, _080A01E4 @ =gBattleMoves
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r4, r7, 1
+ adds r2, r4, 0x4
+ lsls r2, 27
+ lsrs r2, 24
+ movs r1, 0x57
+ adds r3, r7, 0
+ bl sub_80A198C
+ b _080A020C
+ .align 2, 0
+_080A01E0: .4byte 0x02018000
+_080A01E4: .4byte gBattleMoves
+_080A01E8:
+ ldr r1, _080A0290 @ =gContestMoves
+ lsls r0, r6, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 5
+ movs r1, 0x90
+ lsls r1, 21
+ adds r0, r1
+ lsrs r0, 24
+ lsls r4, r7, 1
+ adds r2, r4, 0x4
+ lsls r2, 27
+ lsrs r2, 24
+ movs r1, 0x57
+ adds r3, r7, 0
+ bl sub_80A198C
+_080A020C:
+ movs r0, 0xD
+ muls r0, r6
+ ldr r1, _080A0294 @ =gMoveNames
+ adds r0, r1
+ adds r5, r4, 0x4
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0xD
+ movs r2, 0xF
+ adds r3, r5, 0
+ bl sub_80A1FF8
+ movs r0, 0x1
+ movs r1, 0x18
+ adds r2, r5, 0
+ bl GetStringCenterAlignXOffset
+ mov r0, r8
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r7, 0
+ bl CalculatePPWithBonus
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080A0298 @ =gStringVar1
+ adds r0, r1, 0
+ mov r1, r9
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r1, r0, 0
+ movs r0, 0xBA
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r0, r1, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0298 @ =gStringVar1
+ movs r1, 0x19
+ adds r2, r5, 0
+ bl MenuPrint
+_080A0276:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3
+ bhi _080A0282
+ b _080A0168
+_080A0282:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0290: .4byte gContestMoves
+_080A0294: .4byte gMoveNames
+_080A0298: .4byte gStringVar1
+ thumb_func_end sub_80A015C
+
+ thumb_func_start sub_80A029C
+sub_80A029C: @ 80A029C
+ push {r4,r5,lr}
+ ldr r1, _080A02B8 @ =0x02018000
+ adds r4, r1, 0
+ adds r4, 0x7C
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _080A02C0
+ ldr r0, _080A02BC @ =gOtherText_CancelNoTerminator
+ movs r1, 0xD
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80A1FF8
+ b _080A037E
+ .align 2, 0
+_080A02B8: .4byte 0x02018000
+_080A02BC: .4byte gOtherText_CancelNoTerminator
+_080A02C0:
+ ldrh r5, [r4]
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x2
+ bne _080A02E4
+ ldr r1, _080A02E0 @ =gBattleMoves
+ lsls r4, r5, 1
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ movs r1, 0x57
+ movs r2, 0x60
+ movs r3, 0x4
+ bl sub_80A198C
+ b _080A0304
+ .align 2, 0
+_080A02E0: .4byte gBattleMoves
+_080A02E4:
+ ldr r1, _080A0320 @ =gContestMoves
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 5
+ movs r1, 0x90
+ lsls r1, 21
+ adds r0, r1
+ lsrs r0, 24
+ movs r1, 0x57
+ movs r2, 0x60
+ movs r3, 0x4
+ bl sub_80A198C
+ lsls r4, r5, 1
+_080A0304:
+ ldr r0, _080A0324 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A032C
+ movs r0, 0xD
+ muls r0, r5
+ ldr r1, _080A0328 @ =gMoveNames
+ adds r0, r1
+ movs r1, 0xA
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80A1FF8
+ b _080A033E
+ .align 2, 0
+_080A0320: .4byte gContestMoves
+_080A0324: .4byte 0x02018000
+_080A0328: .4byte gMoveNames
+_080A032C:
+ movs r0, 0xD
+ muls r0, r5
+ ldr r1, _080A0384 @ =gMoveNames
+ adds r0, r1
+ movs r1, 0x9
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80A1FF8
+_080A033E:
+ movs r0, 0x1
+ movs r1, 0x18
+ movs r2, 0xC
+ bl GetStringCenterAlignXOffset
+ ldr r2, _080A0388 @ =gStringVar1
+ ldr r1, _080A038C @ =gBattleMoves
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x4]
+ adds r0, r2, 0
+ adds r1, r4, 0
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0388 @ =gStringVar1
+ movs r1, 0x19
+ movs r2, 0xC
+ bl MenuPrint
+_080A037E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0384: .4byte gMoveNames
+_080A0388: .4byte gStringVar1
+_080A038C: .4byte gBattleMoves
+ thumb_func_end sub_80A029C
+
+ thumb_func_start sub_80A0390
+sub_80A0390: @ 80A0390
+ push {r4,lr}
+ movs r4, 0
+_080A0394:
+ lsls r3, r4, 1
+ adds r1, r3, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0xF
+ movs r2, 0x1C
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080A0394
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0390
+
+ thumb_func_start sub_80A03BC
+sub_80A03BC: @ 80A03BC
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x4
+ beq _080A03D0
+ bl sub_809F760
+ lsls r0, 16
+ lsrs r1, r0, 16
+ b _080A03E0
+_080A03D0:
+ ldr r0, _080A03E8 @ =0x02018000
+ adds r2, r0, 0
+ adds r2, 0x7C
+ ldrh r0, [r2]
+ ldr r1, _080A03EC @ =0x0000ffff
+ cmp r0, 0
+ beq _080A03E0
+ adds r1, r0, 0
+_080A03E0:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A03E8: .4byte 0x02018000
+_080A03EC: .4byte 0x0000ffff
+ thumb_func_end sub_80A03BC
+
+ thumb_func_start sub_80A03F0
+sub_80A03F0: @ 80A03F0
+ push {lr}
+ ldrb r1, [r1]
+ bl sub_80A03BC
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080A0414 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A041C
+ adds r0, r1, 0
+ bl sub_80A04CC
+ ldr r0, _080A0418 @ =0x0000ffff
+ bl sub_80A057C
+ b _080A0422
+ .align 2, 0
+_080A0414: .4byte 0x02018000
+_080A0418: .4byte 0x0000ffff
+_080A041C:
+ adds r0, r1, 0
+ bl sub_80A057C
+_080A0422:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A03F0
+
+ thumb_func_start sub_80A0428
+sub_80A0428: @ 80A0428
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldrb r1, [r6]
+ bl sub_80A03BC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xB
+ movs r1, 0xF
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ ldr r0, _080A0454 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A0458
+ adds r0, r4, 0
+ bl sub_80A046C
+ b _080A045E
+ .align 2, 0
+_080A0454: .4byte 0x02018000
+_080A0458:
+ adds r0, r4, 0
+ bl sub_80A0498
+_080A045E:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80A03F0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0428
+
+ thumb_func_start sub_80A046C
+sub_80A046C: @ 80A046C
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080A0490 @ =0x0000ffff
+ cmp r1, r0
+ beq _080A048A
+ ldr r0, _080A0494 @ =gMoveDescriptions
+ subs r1, 0x1
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0xB
+ movs r2, 0xF
+ bl MenuPrint
+_080A048A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0490: .4byte 0x0000ffff
+_080A0494: .4byte gMoveDescriptions
+ thumb_func_end sub_80A046C
+
+ thumb_func_start sub_80A0498
+sub_80A0498: @ 80A0498
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080A04C0 @ =0x0000ffff
+ cmp r3, r0
+ beq _080A04BC
+ ldr r2, _080A04C4 @ =gUnknown_083CADD4
+ ldr r1, _080A04C8 @ =gContestMoves
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0xB
+ movs r2, 0xF
+ bl MenuPrint
+_080A04BC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A04C0: .4byte 0x0000ffff
+_080A04C4: .4byte gUnknown_083CADD4
+_080A04C8: .4byte gContestMoves
+ thumb_func_end sub_80A0498
+
+ thumb_func_start sub_80A04CC
+sub_80A04CC: @ 80A04CC
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080A0504 @ =0x0000ffff
+ cmp r4, r0
+ beq _080A0572
+ ldr r2, _080A0508 @ =gBattleMoves
+ lsls r1, r4, 1
+ adds r0, r1, r4
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x1]
+ adds r5, r1, 0
+ cmp r0, 0x1
+ bhi _080A0514
+ ldr r0, _080A050C @ =gStringVar1
+ ldr r1, _080A0510 @ =gOtherText_ThreeDashes2
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C74
+ ldr r0, _080A050C @ =gStringVar1
+ movs r1, 0x7
+ movs r2, 0xF
+ bl MenuPrint
+ b _080A052A
+ .align 2, 0
+_080A0504: .4byte 0x0000ffff
+_080A0508: .4byte gBattleMoves
+_080A050C: .4byte gStringVar1
+_080A0510: .4byte gOtherText_ThreeDashes2
+_080A0514:
+ ldr r0, _080A0550 @ =gStringVar1
+ ldrb r1, [r2, 0x1]
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0550 @ =gStringVar1
+ movs r1, 0x7
+ movs r2, 0xF
+ bl MenuPrint
+_080A052A:
+ ldr r0, _080A0554 @ =gBattleMoves
+ adds r1, r5, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ bne _080A055C
+ ldr r0, _080A0550 @ =gStringVar1
+ ldr r1, _080A0558 @ =gOtherText_ThreeDashes2
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C74
+ ldr r0, _080A0550 @ =gStringVar1
+ movs r1, 0x7
+ movs r2, 0x11
+ bl MenuPrint
+ b _080A0572
+ .align 2, 0
+_080A0550: .4byte gStringVar1
+_080A0554: .4byte gBattleMoves
+_080A0558: .4byte gOtherText_ThreeDashes2
+_080A055C:
+ ldr r0, _080A0578 @ =gStringVar1
+ ldrb r1, [r1, 0x3]
+ movs r2, 0x15
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _080A0578 @ =gStringVar1
+ movs r1, 0x7
+ movs r2, 0x11
+ bl MenuPrint
+_080A0572:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0578: .4byte gStringVar1
+ thumb_func_end sub_80A04CC
+
+ thumb_func_start sub_80A057C
+sub_80A057C: @ 80A057C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080A0648 @ =0x06006800
+ mov r8, r0
+ ldr r0, _080A064C @ =0x0000ffff
+ cmp r5, r0
+ beq _080A063A
+ ldr r1, _080A0650 @ =gContestEffects
+ ldr r2, _080A0654 @ =gContestMoves
+ lsls r3, r5, 3
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x1]
+ mov r10, r2
+ mov r9, r3
+ cmp r4, 0xFF
+ beq _080A05B8
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A05B8:
+ movs r2, 0
+ movs r7, 0x3
+ movs r6, 0xF3
+ lsls r6, 2
+_080A05C0:
+ ldr r3, _080A0658 @ =0x00001039
+ cmp r4, 0xFF
+ beq _080A05CC
+ cmp r2, r4
+ bcs _080A05CC
+ adds r3, 0x1
+_080A05CC:
+ lsrs r0, r2, 2
+ lsls r0, 5
+ adds r1, r2, 0
+ ands r1, r7
+ adds r1, r0
+ lsls r1, 1
+ add r1, r8
+ adds r1, r6
+ strh r3, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080A05C0
+ ldr r0, _080A064C @ =0x0000ffff
+ cmp r5, r0
+ beq _080A063A
+ mov r0, r9
+ add r0, r10
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _080A0650 @ =gContestEffects
+ adds r0, r1
+ ldrb r4, [r0, 0x2]
+ cmp r4, 0xFF
+ beq _080A060C
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A060C:
+ movs r2, 0
+ movs r6, 0x3
+ ldr r5, _080A065C @ =0x0000044c
+_080A0612:
+ ldr r3, _080A0660 @ =0x0000103d
+ cmp r4, 0xFF
+ beq _080A061E
+ cmp r2, r4
+ bcs _080A061E
+ subs r3, 0x1
+_080A061E:
+ lsrs r0, r2, 2
+ lsls r0, 5
+ adds r1, r2, 0
+ ands r1, r6
+ adds r1, r0
+ lsls r1, 1
+ add r1, r8
+ adds r1, r5
+ strh r3, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080A0612
+_080A063A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0648: .4byte 0x06006800
+_080A064C: .4byte 0x0000ffff
+_080A0650: .4byte gContestEffects
+_080A0654: .4byte gContestMoves
+_080A0658: .4byte 0x00001039
+_080A065C: .4byte 0x0000044c
+_080A0660: .4byte 0x0000103d
+ thumb_func_end sub_80A057C
+
+ .section .text_80A0958
+
+ thumb_func_start sub_80A0958
+sub_80A0958: @ 80A0958
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ mov r8, r0
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r2, _080A0A24 @ =gStringVar1
+ adds r0, r2, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ movs r6, 0xFC
+ strb r6, [r2]
+ movs r0, 0x11
+ strb r0, [r2, 0x1]
+ movs r0, 0x7
+ strb r0, [r2, 0x2]
+ movs r0, 0xBA
+ strb r0, [r2, 0x3]
+ adds r2, 0x4
+ movs r0, 0xB
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _080A0A28 @ =gSpeciesNames
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ strb r6, [r2]
+ movs r0, 0x13
+ mov r10, r0
+ strb r0, [r2, 0x1]
+ movs r0, 0x50
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ mov r9, r0
+ strb r0, [r2, 0x3]
+ ldr r5, _080A0A24 @ =gStringVar1
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0xE
+ bl MenuPrint
+ movs r0, 0x3
+ movs r1, 0x10
+ movs r2, 0x9
+ movs r3, 0x11
+ bl MenuZeroFillWindowRect
+ mov r0, r8
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ movs r0, 0x34
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r4, 0
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ strb r6, [r2]
+ mov r0, r10
+ strb r0, [r2, 0x1]
+ movs r0, 0x20
+ strb r0, [r2, 0x2]
+ mov r0, r9
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0x10
+ bl MenuPrint
+ mov r0, r8
+ movs r1, 0x7
+ movs r2, 0x10
+ bl sub_80A0A2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0A24: .4byte gStringVar1
+_080A0A28: .4byte gSpeciesNames
+ thumb_func_end sub_80A0958
+
+ thumb_func_start sub_80A0A2C
+sub_80A0A2C: @ 80A0A2C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x20
+ beq _080A0A84
+ cmp r0, 0x1D
+ beq _080A0A84
+ adds r0, r6, 0
+ bl GetMonGender
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080A0A6E
+ cmp r0, 0xFE
+ beq _080A0A78
+ adds r3, r4, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl MenuZeroFillWindowRect
+ b _080A0A84
+_080A0A6E:
+ ldr r0, _080A0A74 @ =gOtherText_MaleSymbol2
+ movs r1, 0xB
+ b _080A0A7C
+ .align 2, 0
+_080A0A74: .4byte gOtherText_MaleSymbol2
+_080A0A78:
+ ldr r0, _080A0A8C @ =gOtherText_FemaleSymbolAndLv
+ movs r1, 0xC
+_080A0A7C:
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_80A1FF8
+_080A0A84:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0A8C: .4byte gOtherText_FemaleSymbolAndLv
+ thumb_func_end sub_80A0A2C
+
+ thumb_func_start sub_80A0A90
+sub_80A0A90: @ 80A0A90
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x32
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x33
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x34
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x35
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x36
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x43
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x44
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x45
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x46
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x47
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x48
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x49
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4A
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4B
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4C
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4D
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x4E
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A0A90
+
+ thumb_func_start sub_80A0B88
+sub_80A0B88: @ 80A0B88
+ push {r4,r5,lr}
+ bl sub_80A0A90
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080A0BA8
+ ldr r0, _080A0BA0 @ =gStringVar1
+ ldr r1, _080A0BA4 @ =gOtherText_None
+ bl StringCopy
+ b _080A0BD8
+ .align 2, 0
+_080A0BA0: .4byte gStringVar1
+_080A0BA4: .4byte gOtherText_None
+_080A0BA8:
+ ldr r4, _080A0BE8 @ =gStringVar1
+ ldr r1, _080A0BEC @ =gOtherText_Ribbons00
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 24
+ lsrs r0, 24
+ subs r4, 0x2
+ adds r0, r4
+ movs r1, 0xFC
+ strb r1, [r0]
+ movs r1, 0x14
+ strb r1, [r0, 0x1]
+ movs r1, 0x6
+ strb r1, [r0, 0x2]
+ adds r0, 0x3
+ adds r1, r5, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+_080A0BD8:
+ ldr r0, _080A0BF0 @ =gUnknown_083C15AE
+ movs r1, 0x15
+ movs r2, 0x4
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0BE8: .4byte gStringVar1
+_080A0BEC: .4byte gOtherText_Ribbons00
+_080A0BF0: .4byte gUnknown_083C15AE
+ thumb_func_end sub_80A0B88
+
+ thumb_func_start sub_80A0BF4
+sub_80A0BF4: @ 80A0BF4
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ cmp r5, 0xAF
+ bne _080A0C48
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A0C48
+ bl IsLinkDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080A0C48
+ ldr r0, _080A0C40 @ =0x02018000
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x1
+ beq _080A0C2E
+ cmp r0, 0x4
+ beq _080A0C2E
+ cmp r0, 0x5
+ bne _080A0C48
+_080A0C2E:
+ ldr r4, _080A0C44 @ =gStringVar1
+ adds r0, r5, 0
+ bl ItemId_GetItem
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ b _080A0C68
+ .align 2, 0
+_080A0C40: .4byte 0x02018000
+_080A0C44: .4byte gStringVar1
+_080A0C48:
+ cmp r5, 0
+ bne _080A0C60
+ ldr r0, _080A0C58 @ =gStringVar1
+ ldr r1, _080A0C5C @ =gOtherText_None
+ bl StringCopy
+ b _080A0C68
+ .align 2, 0
+_080A0C58: .4byte gStringVar1
+_080A0C5C: .4byte gOtherText_None
+_080A0C60:
+ ldr r1, _080A0C78 @ =gStringVar1
+ adds r0, r5, 0
+ bl CopyItemName
+_080A0C68:
+ ldr r0, _080A0C7C @ =gUnknown_083C15B4
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0C78: .4byte gStringVar1
+_080A0C7C: .4byte gUnknown_083C15B4
+ thumb_func_end sub_80A0BF4
+
+ thumb_func_start sub_80A0C80
+sub_80A0C80: @ 80A0C80
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ movs r0, 0
+ mov r9, r0
+ movs r6, 0
+ movs r7, 0
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl GetMonData
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0x63
+ bhi _080A0D14
+ ldr r3, _080A0D4C @ =gExperienceTables
+ adds r1, r5, 0x1
+ lsls r1, 2
+ ldr r2, _080A0D50 @ =gBaseStats
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r2, r0
+ adds r1, r2
+ adds r1, r3
+ ldr r1, [r1]
+ mov r0, r8
+ subs r0, r1, r0
+ mov r9, r0
+ lsls r0, r5, 2
+ adds r0, r2
+ adds r0, r3
+ ldr r0, [r0]
+ subs r1, r0
+ mov r2, r8
+ subs r4, r2, r0
+ lsls r0, r4, 6
+ bl __udivsi3
+ adds r6, r0, 0
+ movs r7, 0
+ adds r0, r7, 0
+ orrs r0, r6
+ cmp r0, 0
+ bne _080A0D14
+ cmp r4, 0
+ beq _080A0D14
+ movs r6, 0x1
+ movs r7, 0
+_080A0D14:
+ ldr r4, _080A0D54 @ =gStringVar1
+ adds r0, r4, 0
+ mov r1, r9
+ bl ConvertIntToDecimalString
+ mov r1, r10
+ adds r1, 0x6
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ ldr r2, [sp]
+ bl MenuPrint_RightAligned
+ ldr r0, _080A0D58 @ =0x06004caa
+ mov r9, r0
+ movs r2, 0
+ mov r12, r2
+ ldr r0, _080A0D5C @ =0x00002062
+ mov r8, r0
+_080A0D3A:
+ cmp r7, 0
+ bgt _080A0D46
+ cmp r7, 0
+ bne _080A0D64
+ cmp r6, 0x7
+ bls _080A0D64
+_080A0D46:
+ ldr r1, _080A0D60 @ =0x0000206a
+ b _080A0D96
+ .align 2, 0
+_080A0D4C: .4byte gExperienceTables
+_080A0D50: .4byte gBaseStats
+_080A0D54: .4byte gStringVar1
+_080A0D58: .4byte 0x06004caa
+_080A0D5C: .4byte 0x00002062
+_080A0D60: .4byte 0x0000206a
+_080A0D64:
+ adds r5, r7, 0
+ adds r4, r6, 0
+ cmp r7, 0
+ bge _080A0D74
+ movs r4, 0x7
+ movs r5, 0
+ adds r4, r6
+ adcs r5, r7
+_080A0D74:
+ lsls r3, r5, 29
+ lsrs r2, r4, 3
+ adds r0, r3, 0
+ orrs r0, r2
+ asrs r1, r5, 3
+ lsrs r5, r0, 29
+ lsls r4, r1, 3
+ adds r3, r5, 0
+ orrs r3, r4
+ lsls r2, r0, 3
+ adds r1, r7, 0
+ adds r0, r6, 0
+ subs r0, r2
+ sbcs r1, r3
+ add r0, r8
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080A0D96:
+ mov r2, r12
+ lsls r0, r2, 1
+ add r0, r9
+ strh r1, [r0]
+ movs r0, 0x8
+ negs r0, r0
+ asrs r1, r0, 31
+ adds r6, r0
+ adcs r7, r1
+ cmp r7, 0
+ bge _080A0DB0
+ movs r6, 0
+ movs r7, 0
+_080A0DB0:
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ cmp r0, 0x7
+ bls _080A0D3A
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A0C80
+
+ thumb_func_start sub_80A0DD0
+sub_80A0DD0: @ 80A0DD0
+ push {r4,r5,lr}
+ ldr r2, _080A0E3C @ =gStringVar1
+ movs r5, 0xFC
+ strb r5, [r2]
+ movs r0, 0x12
+ strb r0, [r2, 0x1]
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ adds r0, r2, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ ldr r1, _080A0E40 @ =gUnknown_083C1068
+ ldr r4, _080A0E44 @ =0x02018000
+ adds r0, r4, 0
+ adds r0, 0x7E
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ strb r5, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x58
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080A0E3C @ =gStringVar1
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ adds r4, 0x7F
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080A0E48
+ movs r0, 0x5
+ movs r1, 0x17
+ movs r2, 0
+ bl GetStringCenterAlignXOffset
+ movs r0, 0x6
+ movs r1, 0x18
+ movs r2, 0
+ bl GetStringCenterAlignXOffset
+ b _080A0E54
+ .align 2, 0
+_080A0E3C: .4byte gStringVar1
+_080A0E40: .4byte gUnknown_083C1068
+_080A0E44: .4byte 0x02018000
+_080A0E48:
+ movs r0, 0x17
+ movs r1, 0
+ movs r2, 0x18
+ movs r3, 0x1
+ bl MenuZeroFillWindowRect
+_080A0E54:
+ ldr r2, _080A0E98 @ =gStringVar1
+ adds r0, r2, 0
+ movs r1, 0xD
+ bl sub_80A1E58
+ adds r2, r0, 0
+ ldr r1, _080A0E9C @ =gUnknown_083C1068
+ ldr r0, _080A0EA0 @ =0x02018000
+ adds r0, 0x7F
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x28
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080A0E98 @ =gStringVar1
+ movs r1, 0x19
+ movs r2, 0
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0E98: .4byte gStringVar1
+_080A0E9C: .4byte gUnknown_083C1068
+_080A0EA0: .4byte 0x02018000
+ thumb_func_end sub_80A0DD0
+
+ thumb_func_start sub_80A0EA4
+sub_80A0EA4: @ 80A0EA4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080A0ECC @ =0x0600e444
+ ldr r6, _080A0ED0 @ =0x0600ec44
+ movs r1, 0
+ bl CheckPartyPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A0ED4
+ adds r0, r4, 0
+ movs r1, 0
+ bl CheckPartyHasHadPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A0ED4
+ movs r0, 0x2C
+ b _080A0ED8
+ .align 2, 0
+_080A0ECC: .4byte 0x0600e444
+_080A0ED0: .4byte 0x0600ec44
+_080A0ED4:
+ ldr r1, _080A0EE4 @ =0x0000081a
+ adds r0, r1, 0
+_080A0ED8:
+ strh r0, [r5]
+ strh r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A0EE4: .4byte 0x0000081a
+ thumb_func_end sub_80A0EA4
+
+ thumb_func_start sub_80A0EE8
+sub_80A0EE8: @ 80A0EE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r3, 0
+ ldr r6, _080A0F24 @ =0x02018000
+ adds r5, r6, 0
+ ldr r1, _080A0F28 @ =0x00004040
+ mov r8, r1
+ ldr r2, _080A0F2C @ =0x0000404a
+ mov r10, r2
+_080A0F02:
+ adds r0, r5, 0
+ adds r0, 0x75
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080A0F30
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ add r0, sp
+ mov r4, r8
+ strh r4, [r0]
+ adds r1, 0x1
+ lsls r1, 1
+ mov r7, sp
+ adds r0, r7, r1
+ strh r4, [r0]
+ b _080A0FE2
+ .align 2, 0
+_080A0F24: .4byte 0x02018000
+_080A0F28: .4byte 0x00004040
+_080A0F2C: .4byte 0x0000404a
+_080A0F30:
+ movs r0, 0x76
+ adds r0, r6
+ mov r12, r0
+ ldrb r1, [r0]
+ cmp r3, r1
+ bls _080A0F52
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ add r0, sp
+ mov r2, r10
+ strh r2, [r0]
+ adds r1, 0x1
+ lsls r1, 1
+ mov r4, sp
+ adds r0, r4, r1
+ strh r2, [r0]
+ b _080A0FE2
+_080A0F52:
+ ldrb r4, [r5, 0xB]
+ cmp r3, r4
+ bcs _080A0F6E
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r7, sp
+ adds r2, r7, r0
+ ldr r0, _080A0F88 @ =0x00004046
+ strh r0, [r2]
+ adds r1, 0x1
+ lsls r1, 1
+ add r1, sp
+ adds r0, 0x1
+ strh r0, [r1]
+_080A0F6E:
+ cmp r3, r4
+ bne _080A0FA6
+ mov r0, r12
+ ldrb r0, [r0]
+ cmp r3, r0
+ beq _080A0F90
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r4, sp
+ adds r2, r4, r0
+ ldr r0, _080A0F8C @ =0x00004041
+ b _080A0F9A
+ .align 2, 0
+_080A0F88: .4byte 0x00004046
+_080A0F8C: .4byte 0x00004041
+_080A0F90:
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r7, sp
+ adds r2, r7, r0
+ ldr r0, _080A0FC4 @ =0x0000404b
+_080A0F9A:
+ strh r0, [r2]
+ adds r1, 0x1
+ lsls r1, 1
+ add r1, sp
+ adds r0, 0x1
+ strh r0, [r1]
+_080A0FA6:
+ ldrb r0, [r5, 0xB]
+ cmp r3, r0
+ bls _080A0FE2
+ adds r0, r6, 0
+ adds r0, 0x76
+ ldrb r0, [r0]
+ cmp r3, r0
+ beq _080A0FCC
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r4, sp
+ adds r2, r4, r0
+ ldr r0, _080A0FC8 @ =0x00004043
+ b _080A0FD6
+ .align 2, 0
+_080A0FC4: .4byte 0x0000404b
+_080A0FC8: .4byte 0x00004043
+_080A0FCC:
+ lsls r1, r3, 1
+ lsls r0, r3, 2
+ mov r7, sp
+ adds r2, r7, r0
+ ldr r0, _080A1034 @ =0x00004048
+_080A0FD6:
+ strh r0, [r2]
+ adds r1, 0x1
+ lsls r1, 1
+ add r1, sp
+ adds r0, 0x1
+ strh r0, [r1]
+_080A0FE2:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080A0F02
+ ldr r1, _080A1038 @ =0x0600e016
+ ldr r0, _080A103C @ =0x040000d4
+ mov r2, sp
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080A1040 @ =0x80000008
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ movs r3, 0
+_080A0FFE:
+ lsls r0, r3, 1
+ mov r4, sp
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ adds r0, 0x10
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x7
+ bls _080A0FFE
+ ldr r1, _080A1044 @ =0x0600e056
+ ldr r0, _080A103C @ =0x040000d4
+ str r4, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080A1040 @ =0x80000008
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ 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
+_080A1034: .4byte 0x00004048
+_080A1038: .4byte 0x0600e016
+_080A103C: .4byte 0x040000d4
+_080A1040: .4byte 0x80000008
+_080A1044: .4byte 0x0600e056
+ thumb_func_end sub_80A0EE8
+
+ thumb_func_start sub_80A1048
+sub_80A1048: @ 80A1048
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r1, _080A10A0 @ =gTasks + 0x8
+ adds r6, r0, r1
+ ldrh r0, [r6]
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080A106E
+ b _080A1224
+_080A106E:
+ movs r5, 0x2
+ ldrsh r2, [r6, r5]
+ ldr r0, _080A10A4 @ =0x0000024a
+ subs r0, r2
+ lsls r0, 1
+ ldr r1, _080A10A8 @ =gUnknown_08E73508
+ adds r4, r0, r1
+ ldr r5, _080A10AC @ =0x0600e480
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 5
+ adds r7, r1, 0
+ cmp r2, r0
+ bhi _080A10B4
+ ldr r0, _080A10B0 @ =0x040000d4
+ str r4, [r0]
+ str r5, [r0, 0x4]
+ lsrs r1, r2, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A10E0
+ .align 2, 0
+_080A10A0: .4byte gTasks + 0x8
+_080A10A4: .4byte 0x0000024a
+_080A10A8: .4byte gUnknown_08E73508
+_080A10AC: .4byte 0x0600e480
+_080A10B0: .4byte 0x040000d4
+_080A10B4:
+ ldr r3, _080A110C @ =0x040000d4
+ str r4, [r3]
+ str r5, [r3, 0x4]
+ ldr r0, _080A1110 @ =0x80000800
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r0
+ adds r5, r0
+ ldr r1, _080A1114 @ =0xfffff000
+ adds r2, r1
+ cmp r2, r0
+ bhi _080A10B4
+ str r4, [r3]
+ str r5, [r3, 0x4]
+ lsrs r0, r2, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+_080A10E0:
+ movs r5, 0x2
+ ldrsh r0, [r6, r5]
+ ldr r1, _080A1118 @ =0x0000026a
+ subs r1, r0
+ lsls r1, 1
+ adds r3, r1, r7
+ ldr r4, _080A111C @ =0x0600e4c0
+ lsls r1, r0, 1
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bhi _080A1120
+ ldr r0, _080A110C @ =0x040000d4
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ lsrs r1, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A114C
+ .align 2, 0
+_080A110C: .4byte 0x040000d4
+_080A1110: .4byte 0x80000800
+_080A1114: .4byte 0xfffff000
+_080A1118: .4byte 0x0000026a
+_080A111C: .4byte 0x0600e4c0
+_080A1120:
+ ldr r2, _080A1178 @ =0x040000d4
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ ldr r0, _080A117C @ =0x80000800
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r3, r0
+ adds r4, r0
+ ldr r5, _080A1180 @ =0xfffff000
+ adds r1, r5
+ cmp r1, r0
+ bhi _080A1120
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ lsrs r0, r1, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+_080A114C:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ ldr r1, _080A1184 @ =0x0000024a
+ subs r1, r0
+ lsls r1, 1
+ adds r3, r1, r7
+ ldr r4, _080A1188 @ =0x0600ec80
+ lsls r1, r0, 1
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bhi _080A118C
+ ldr r0, _080A1178 @ =0x040000d4
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ lsrs r1, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A11B8
+ .align 2, 0
+_080A1178: .4byte 0x040000d4
+_080A117C: .4byte 0x80000800
+_080A1180: .4byte 0xfffff000
+_080A1184: .4byte 0x0000024a
+_080A1188: .4byte 0x0600ec80
+_080A118C:
+ ldr r2, _080A11E4 @ =0x040000d4
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ ldr r0, _080A11E8 @ =0x80000800
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r3, r0
+ adds r4, r0
+ ldr r5, _080A11EC @ =0xfffff000
+ adds r1, r5
+ cmp r1, r0
+ bhi _080A118C
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ lsrs r0, r1, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+_080A11B8:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ ldr r1, _080A11F0 @ =0x0000026a
+ subs r1, r0
+ lsls r1, 1
+ adds r3, r1, r7
+ ldr r4, _080A11F4 @ =0x0600ecc0
+ lsls r1, r0, 1
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bhi _080A11F8
+ ldr r0, _080A11E4 @ =0x040000d4
+ str r3, [r0]
+ str r4, [r0, 0x4]
+ lsrs r1, 1
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080A1224
+ .align 2, 0
+_080A11E4: .4byte 0x040000d4
+_080A11E8: .4byte 0x80000800
+_080A11EC: .4byte 0xfffff000
+_080A11F0: .4byte 0x0000026a
+_080A11F4: .4byte 0x0600ecc0
+_080A11F8:
+ ldr r2, _080A12B0 @ =0x040000d4
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ ldr r0, _080A12B4 @ =0x80000800
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r3, r0
+ adds r4, r0
+ ldr r5, _080A12B8 @ =0xfffff000
+ adds r1, r5
+ cmp r1, r0
+ bhi _080A11F8
+ str r3, [r2]
+ str r4, [r2, 0x4]
+ lsrs r0, r1, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+_080A1224:
+ ldrb r4, [r6, 0x2]
+ ldrh r7, [r6, 0x2]
+ ldrh r0, [r6]
+ mov r12, r0
+ cmp r4, 0x9
+ bhi _080A1272
+ adds r3, r6, 0x4
+ ldr r2, _080A12B0 @ =0x040000d4
+ ldr r5, _080A12BC @ =0x80000001
+_080A1236:
+ lsls r1, r4, 1
+ ldr r6, _080A12C0 @ =0x0600e480
+ adds r0, r1, r6
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r6, 0x40
+ adds r0, r1, r6
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r6, _080A12C4 @ =0x0600ec80
+ adds r0, r1, r6
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080A12C8 @ =0x0600ecc0
+ adds r1, r0
+ str r3, [r2]
+ str r1, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080A1236
+_080A1272:
+ mov r1, r12
+ lsls r0, r1, 16
+ cmp r0, 0
+ beq _080A1286
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0
+ ble _080A1286
+ cmp r0, 0x9
+ ble _080A12A4
+_080A1286:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _080A129A
+ ldr r0, _080A12CC @ =gOtherText_Status
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x12
+ bl sub_80A1FF8
+_080A129A:
+ bl sub_80A1D18
+ mov r0, r8
+ bl DestroyTask
+_080A12A4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A12B0: .4byte 0x040000d4
+_080A12B4: .4byte 0x80000800
+_080A12B8: .4byte 0xfffff000
+_080A12BC: .4byte 0x80000001
+_080A12C0: .4byte 0x0600e480
+_080A12C4: .4byte 0x0600ec80
+_080A12C8: .4byte 0x0600ecc0
+_080A12CC: .4byte gOtherText_Status
+ thumb_func_end sub_80A1048
+
+ thumb_func_start sub_80A12D0
+sub_80A12D0: @ 80A12D0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0x12
+ movs r2, 0x5
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x1D
+ bl sub_80A18E4
+ ldr r0, _080A1310 @ =sub_80A1048
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080A1314 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ lsls r4, 24
+ asrs r4, 24
+ strh r4, [r1, 0x8]
+ cmp r4, 0
+ bge _080A1318
+ movs r0, 0xA
+ b _080A131A
+ .align 2, 0
+_080A1310: .4byte sub_80A1048
+_080A1314: .4byte gTasks
+_080A1318:
+ movs r0, 0
+_080A131A:
+ strh r0, [r1, 0xA]
+ ldr r0, _080A1330 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1330: .4byte gTasks
+ thumb_func_end sub_80A12D0
+
+ thumb_func_start sub_80A1334
+sub_80A1334: @ 80A1334
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r1, _080A13E4 @ =gTasks + 0x8
+ adds r7, r0, r1
+ ldrh r0, [r7]
+ ldrh r1, [r7, 0x2]
+ adds r0, r1
+ strh r0, [r7, 0x2]
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0
+ cmp r1, 0
+ blt _080A136A
+ movs r0, 0xA
+ cmp r1, 0xA
+ bgt _080A136A
+ ldrh r0, [r7, 0x2]
+_080A136A:
+ lsls r0, 16
+ asrs r2, r0, 16
+ mov r9, r0
+ cmp r2, 0
+ ble _080A13A6
+ movs r0, 0xA
+ subs r0, r2
+ lsls r0, 1
+ ldr r1, _080A13E8 @ =0x06005b40
+ adds r4, r0, r1
+ movs r5, 0
+ adds r6, r2, 0
+ ldr r0, _080A13EC @ =0x001fffff
+ mov r8, r0
+_080A1386:
+ adds r0, r5, 0
+ adds r0, 0xD
+ lsls r0, 6
+ ldr r1, _080A13F0 @ =gUnknown_08E73E88
+ adds r0, r1
+ adds r1, r4, 0
+ mov r2, r8
+ ands r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A1386
+_080A13A6:
+ mov r1, r9
+ asrs r2, r1, 16
+ cmp r2, 0x9
+ bgt _080A13F4
+ ldr r4, _080A13E8 @ =0x06005b40
+ movs r5, 0
+ mov r8, sp
+ movs r0, 0xA
+ subs r6, r0, r2
+ ldr r0, _080A13EC @ =0x001fffff
+ ands r6, r0
+ movs r0, 0x80
+ lsls r0, 17
+ mov r9, r0
+_080A13C2:
+ ldrh r0, [r7, 0x4]
+ mov r1, r8
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r4, 0
+ mov r2, r9
+ orrs r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A13C2
+ b _080A1400
+ .align 2, 0
+_080A13E4: .4byte gTasks + 0x8
+_080A13E8: .4byte 0x06005b40
+_080A13EC: .4byte 0x001fffff
+_080A13F0: .4byte gUnknown_08E73E88
+_080A13F4:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A1400:
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080A1410
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bge _080A144A
+_080A1410:
+ ldr r4, _080A1480 @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x2
+ bne _080A1444
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A0958
+ adds r0, r4, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A1444
+ ldr r0, _080A1484 @ =gOtherText_Status
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x12
+ bl sub_80A1FF8
+_080A1444:
+ mov r0, r10
+ bl DestroyTask
+_080A144A:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x9
+ ble _080A1470
+ ldr r4, _080A1480 @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x2
+ bne _080A1460
+ ldrb r0, [r7, 0x6]
+ bl sub_80A00F4
+_080A1460:
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r7, 0x6
+ bl sub_80A0428
+ mov r0, r10
+ bl DestroyTask
+_080A1470:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1480: .4byte 0x02018000
+_080A1484: .4byte gOtherText_Status
+ thumb_func_end sub_80A1334
+
+ thumb_func_start sub_80A1488
+sub_80A1488: @ 80A1488
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080A14DC @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x2
+ bne _080A14A6
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A14A6:
+ ldr r5, _080A14E0 @ =sub_80A1334
+ adds r0, r5, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ bne _080A14C2
+ adds r0, r5, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A14C2:
+ ldr r1, _080A14E4 @ =gTasks
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ lsls r0, r6, 24
+ asrs r0, 24
+ strh r0, [r3, 0x8]
+ cmp r0, 0
+ bge _080A14E8
+ movs r0, 0xA
+ b _080A14EA
+ .align 2, 0
+_080A14DC: .4byte 0x02018000
+_080A14E0: .4byte sub_80A1334
+_080A14E4: .4byte gTasks
+_080A14E8:
+ movs r0, 0
+_080A14EA:
+ strh r0, [r3, 0xA]
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ strh r7, [r0, 0xE]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A1488
+
+ thumb_func_start sub_80A1500
+sub_80A1500: @ 80A1500
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r1, _080A15B0 @ =gTasks + 0x8
+ adds r7, r0, r1
+ ldrh r0, [r7]
+ ldrh r1, [r7, 0x2]
+ adds r0, r1
+ strh r0, [r7, 0x2]
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0
+ cmp r1, 0
+ blt _080A1536
+ movs r0, 0xA
+ cmp r1, 0xA
+ bgt _080A1536
+ ldrh r0, [r7, 0x2]
+_080A1536:
+ lsls r0, 16
+ asrs r2, r0, 16
+ mov r9, r0
+ cmp r2, 0
+ ble _080A1572
+ movs r0, 0xA
+ subs r0, r2
+ lsls r0, 1
+ ldr r1, _080A15B4 @ =0x06006b40
+ adds r4, r0, r1
+ movs r5, 0
+ adds r6, r2, 0
+ ldr r0, _080A15B8 @ =0x001fffff
+ mov r8, r0
+_080A1552:
+ adds r0, r5, 0
+ adds r0, 0xD
+ lsls r0, 6
+ ldr r1, _080A15BC @ =gUnknown_08E74688
+ adds r0, r1
+ adds r1, r4, 0
+ mov r2, r8
+ ands r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A1552
+_080A1572:
+ mov r1, r9
+ asrs r2, r1, 16
+ cmp r2, 0x9
+ bgt _080A15C0
+ ldr r4, _080A15B4 @ =0x06006b40
+ movs r5, 0
+ mov r8, sp
+ movs r0, 0xA
+ subs r6, r0, r2
+ ldr r0, _080A15B8 @ =0x001fffff
+ ands r6, r0
+ movs r0, 0x80
+ lsls r0, 17
+ mov r9, r0
+_080A158E:
+ ldrh r0, [r7, 0x4]
+ mov r1, r8
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r4, 0
+ mov r2, r9
+ orrs r2, r6
+ bl CpuSet
+ adds r4, 0x40
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x6
+ bls _080A158E
+ b _080A15CC
+ .align 2, 0
+_080A15B0: .4byte gTasks + 0x8
+_080A15B4: .4byte 0x06006b40
+_080A15B8: .4byte 0x001fffff
+_080A15BC: .4byte gUnknown_08E74688
+_080A15C0:
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A15CC:
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080A15DC
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bge _080A1616
+_080A15DC:
+ ldr r4, _080A164C @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x3
+ bne _080A1610
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ adds r4, 0x10
+ adds r0, r4, 0
+ bl sub_80A0958
+ adds r0, r4, 0
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _080A1610
+ ldr r0, _080A1650 @ =gOtherText_Status
+ movs r1, 0xD
+ movs r2, 0x1
+ movs r3, 0x12
+ bl sub_80A1FF8
+_080A1610:
+ mov r0, r10
+ bl DestroyTask
+_080A1616:
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x9
+ ble _080A163C
+ ldr r4, _080A164C @ =0x02018000
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0x3
+ bne _080A162C
+ ldrb r0, [r7, 0x6]
+ bl sub_80A00F4
+_080A162C:
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r7, 0x6
+ bl sub_80A0428
+ mov r0, r10
+ bl DestroyTask
+_080A163C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A164C: .4byte 0x02018000
+_080A1650: .4byte gOtherText_Status
+ thumb_func_end sub_80A1500
+
+ thumb_func_start sub_80A1654
+sub_80A1654: @ 80A1654
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _080A16A8 @ =0x02018000
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x3
+ bne _080A1672
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x9
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080A1672:
+ ldr r5, _080A16AC @ =sub_80A1500
+ adds r0, r5, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ bne _080A168E
+ adds r0, r5, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080A168E:
+ ldr r1, _080A16B0 @ =gTasks
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ lsls r0, r6, 24
+ asrs r0, 24
+ strh r0, [r3, 0x8]
+ cmp r0, 0
+ bge _080A16B4
+ movs r0, 0xA
+ b _080A16B6
+ .align 2, 0
+_080A16A8: .4byte 0x02018000
+_080A16AC: .4byte sub_80A1500
+_080A16B0: .4byte gTasks
+_080A16B4:
+ movs r0, 0
+_080A16B6:
+ strh r0, [r3, 0xA]
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ strh r7, [r0, 0xE]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A1654
+
+ thumb_func_start sub_80A16CC
+sub_80A16CC: @ 80A16CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _080A1724 @ =0x06006ad4
+ mov r12, r0
+ mov r1, r9
+ cmp r1, 0
+ bne _080A172C
+ movs r5, 0
+ ldr r7, _080A1728 @ =gUnknown_08E94510
+ movs r0, 0x80
+ lsls r0, 5
+ adds r6, r0, 0
+ movs r1, 0x40
+ adds r1, r7
+ mov r8, r1
+_080A16F4:
+ lsls r2, r5, 1
+ mov r0, r12
+ adds r3, r2, r0
+ adds r4, r2, r7
+ ldrh r1, [r4]
+ adds r0, r6, r1
+ strh r0, [r3]
+ adds r1, r3, 0
+ adds r1, 0x40
+ ldrh r4, [r4]
+ adds r0, r6, r4
+ strh r0, [r1]
+ adds r3, 0x80
+ add r2, r8
+ ldrh r2, [r2]
+ adds r0, r6, r2
+ strh r0, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A16F4
+ b _080A1768
+ .align 2, 0
+_080A1724: .4byte 0x06006ad4
+_080A1728: .4byte gUnknown_08E94510
+_080A172C:
+ movs r5, 0
+ ldr r6, _080A17B0 @ =gUnknown_08E94550
+ movs r7, 0x80
+ lsls r7, 5
+ adds r4, r7, 0
+ movs r0, 0x40
+ adds r0, r6
+ mov r8, r0
+_080A173C:
+ lsls r1, r5, 1
+ mov r7, r12
+ adds r2, r1, r7
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ strh r0, [r2]
+ adds r3, r2, 0
+ adds r3, 0x40
+ add r1, r8
+ ldrh r7, [r1]
+ adds r0, r4, r7
+ strh r0, [r3]
+ adds r2, 0x80
+ ldrh r1, [r1]
+ adds r0, r4, r1
+ strh r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A173C
+_080A1768:
+ ldr r0, _080A17B4 @ =0x06005ad4
+ mov r12, r0
+ mov r1, r9
+ cmp r1, 0
+ bne _080A17BC
+ movs r5, 0
+ ldr r7, _080A17B8 @ =gUnknown_08E94510
+ movs r0, 0xC0
+ lsls r0, 6
+ adds r6, r0, 0
+ movs r1, 0x40
+ adds r1, r7
+ mov r8, r1
+_080A1782:
+ lsls r2, r5, 1
+ mov r0, r12
+ adds r3, r2, r0
+ adds r4, r2, r7
+ ldrh r1, [r4]
+ adds r0, r6, r1
+ strh r0, [r3]
+ adds r1, r3, 0
+ adds r1, 0x40
+ ldrh r4, [r4]
+ adds r0, r6, r4
+ strh r0, [r1]
+ adds r3, 0x80
+ add r2, r8
+ ldrh r2, [r2]
+ adds r0, r6, r2
+ strh r0, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A1782
+ b _080A17F8
+ .align 2, 0
+_080A17B0: .4byte gUnknown_08E94550
+_080A17B4: .4byte 0x06005ad4
+_080A17B8: .4byte gUnknown_08E94510
+_080A17BC:
+ movs r5, 0
+ ldr r6, _080A1804 @ =gUnknown_08E94550
+ movs r7, 0xC0
+ lsls r7, 6
+ adds r4, r7, 0
+ movs r0, 0x40
+ adds r0, r6
+ mov r8, r0
+_080A17CC:
+ lsls r1, r5, 1
+ mov r7, r12
+ adds r2, r1, r7
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ strh r0, [r2]
+ adds r3, r2, 0
+ adds r3, 0x40
+ add r1, r8
+ ldrh r7, [r1]
+ adds r0, r4, r7
+ strh r0, [r3]
+ adds r2, 0x80
+ ldrh r1, [r1]
+ adds r0, r4, r1
+ strh r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080A17CC
+_080A17F8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1804: .4byte gUnknown_08E94550
+ thumb_func_end sub_80A16CC
+
+ thumb_func_start sub_80A1808
+sub_80A1808: @ 80A1808
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r1, 0x41
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080A1860 @ =gUnknown_02024E8C
+ movs r1, 0x28
+ movs r2, 0x40
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, r0, 4
+ add r4, r8
+ lsls r4, 2
+ ldr r5, _080A1864 @ =gSprites
+ adds r7, r4, r5
+ adds r0, r7, 0
+ bl FreeSpriteOamMatrix
+ strh r6, [r7, 0x2E]
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _080A1868 @ =sub_80A1888
+ str r0, [r4]
+ adds r0, r6, 0
+ bl sub_8040A3C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A186C
+ adds r0, r7, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _080A187A
+ .align 2, 0
+_080A1860: .4byte gUnknown_02024E8C
+_080A1864: .4byte gSprites
+_080A1868: .4byte sub_80A1888
+_080A186C:
+ adds r2, r7, 0
+ adds r2, 0x3F
+ ldrb r1, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080A187A:
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1808
+
+ thumb_func_start sub_80A1888
+sub_80A1888: @ 80A1888
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A18B8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080A18B0
+ ldr r0, _080A18BC @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+ ldr r0, _080A18C0 @ =0x02018010
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080A18B0
+ ldrh r0, [r4, 0x2E]
+ movs r1, 0
+ bl PlayCry1
+_080A18B0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A18B8: .4byte gPaletteFade
+_080A18BC: .4byte SpriteCallbackDummy
+_080A18C0: .4byte 0x02018010
+ thumb_func_end sub_80A1888
+
+ thumb_func_start sub_80A18C4
+sub_80A18C4: @ 80A18C4
+ push {lr}
+ movs r1, 0
+ ldr r3, _080A18E0 @ =0x0201a000
+ movs r2, 0xFF
+_080A18CC:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1D
+ bls _080A18CC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A18E0: .4byte 0x0201a000
+ thumb_func_end sub_80A18C4
+
+ thumb_func_start sub_80A18E4
+sub_80A18E4: @ 80A18E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080A1910 @ =0x0201a000
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080A1908
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A1914 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0xFF
+ strb r0, [r4]
+_080A1908:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1910: .4byte 0x0201a000
+_080A1914: .4byte gSprites
+ thumb_func_end sub_80A18E4
+
+ thumb_func_start sub_80A1918
+sub_80A1918: @ 80A1918
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080A1948 @ =gSprites
+ ldr r2, _080A194C @ =0x0201a000
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ adds r2, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ bx lr
+ .align 2, 0
+_080A1948: .4byte gSprites
+_080A194C: .4byte 0x0201a000
+ thumb_func_end sub_80A1918
+
+ thumb_func_start sub_80A1950
+sub_80A1950: @ 80A1950
+ push {r4,r5,lr}
+ movs r5, 0
+_080A1954:
+ ldr r0, _080A1984 @ =0x0201a000
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080A196C
+ ldr r0, _080A1988 @ =gSpriteTemplate_83C11C0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl CreateSprite
+ strb r0, [r4]
+_080A196C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A1918
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _080A1954
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1984: .4byte 0x0201a000
+_080A1988: .4byte gSpriteTemplate_83C11C0
+ thumb_func_end sub_80A1950
+
+ thumb_func_start sub_80A198C
+sub_80A198C: @ 80A198C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ mov r10, r3
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, _080A1A24 @ =0x0201a000
+ mov r8, r1
+ add r8, r10
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A1A28 @ =gSprites
+ mov r9, r1
+ add r0, r9
+ adds r1, r4, 0
+ bl StartSpriteAnim
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldr r0, _080A1A2C @ =gUnknown_083C11D8
+ adds r4, r0
+ ldrb r2, [r4]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r5, 0x10
+ strh r5, [r0, 0x20]
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r6, 0x8
+ strh r6, [r0, 0x22]
+ mov r0, r10
+ movs r1, 0
+ bl sub_80A1918
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1A24: .4byte 0x0201a000
+_080A1A28: .4byte gSprites
+_080A1A2C: .4byte gUnknown_083C11D8
+ thumb_func_end sub_80A198C
+
+ thumb_func_start sub_80A1A30
+sub_80A1A30: @ 80A1A30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _080A1A98 @ =0x02018000
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0x1
+ bls _080A1B0A
+ cmp r4, 0x9
+ bne _080A1A52
+ movs r3, 0x1
+ mov r9, r3
+_080A1A52:
+ movs r5, 0
+ movs r0, 0x80
+ lsls r0, 6
+ adds r0, r1
+ mov r8, r0
+ ldr r6, _080A1A9C @ =gSprites
+ mov r10, r5
+_080A1A60:
+ lsls r1, r5, 20
+ movs r3, 0xB0
+ lsls r3, 15
+ adds r1, r3
+ asrs r1, 16
+ ldr r0, _080A1AA0 @ =gSpriteTemplate_83C1280
+ movs r2, 0x28
+ mov r3, r9
+ bl CreateSprite
+ adds r1, r4, r5
+ mov r3, r8
+ adds r2, r1, r3
+ strb r0, [r2]
+ adds r7, r1, 0
+ cmp r5, 0
+ bne _080A1AA4
+ adds r0, r4, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x4
+ bl StartSpriteAnim
+ b _080A1AD0
+ .align 2, 0
+_080A1A98: .4byte 0x02018000
+_080A1A9C: .4byte gSprites
+_080A1AA0: .4byte gSpriteTemplate_83C1280
+_080A1AA4:
+ cmp r5, 0x9
+ bne _080A1AC0
+ adds r0, r4, 0
+ adds r0, 0x9
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ bl StartSpriteAnim
+ b _080A1AD0
+_080A1AC0:
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x6
+ bl StartSpriteAnim
+_080A1AD0:
+ mov r0, r8
+ adds r2, r7, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080A1B18 @ =sub_80A1BC0
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r4, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r1, r10
+ strh r1, [r0, 0x30]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _080A1A60
+_080A1B0A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1B18: .4byte sub_80A1BC0
+ thumb_func_end sub_80A1A30
+
+ thumb_func_start sub_80A1B1C
+sub_80A1B1C: @ 80A1B1C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_080A1B24:
+ adds r0, r5, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A18E4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080A1B24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80A1B1C
+
+ thumb_func_start sub_80A1B40
+sub_80A1B40: @ 80A1B40
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, r7, 1
+ adds r1, r7
+ lsls r1, 24
+ ldr r0, _080A1BB4 @ =0x0201a009
+ ldrb r2, [r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r2, _080A1BB8 @ =gSprites
+ adds r0, r2
+ lsrs r7, r1, 24
+ movs r2, 0x80
+ lsls r2, 19
+ adds r1, r2
+ lsrs r1, 24
+ bl StartSpriteAnim
+ movs r4, 0
+ adds r0, r7, 0x6
+ lsls r0, 24
+ mov r8, r0
+_080A1B74:
+ ldr r6, _080A1BBC @ =0x0201a00a
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080A1BB8 @ =gSprites
+ adds r0, r5
+ mov r2, r8
+ lsrs r1, r2, 24
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _080A1B74
+ ldrb r1, [r6, 0x8]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r1, r7, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1BB4: .4byte 0x0201a009
+_080A1BB8: .4byte gSprites
+_080A1BBC: .4byte 0x0201a00a
+ thumb_func_end sub_80A1B40
+
+ thumb_func_start sub_80A1BC0
+sub_80A1BC0: @ 80A1BC0
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _080A1BF8
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r2, 0x30]
+ cmp r0, 0x18
+ ble _080A1BEC
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ b _080A1C06
+_080A1BEC:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ b _080A1C04
+_080A1BF8:
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ subs r0, 0x5
+_080A1C04:
+ ands r0, r1
+_080A1C06:
+ strb r0, [r3]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x9
+ bne _080A1C1C
+ ldr r0, _080A1C18 @ =0x02018000
+ adds r0, 0x79
+ b _080A1C20
+ .align 2, 0
+_080A1C18: .4byte 0x02018000
+_080A1C1C:
+ ldr r0, _080A1C2C @ =0x02018000
+ adds r0, 0x7A
+_080A1C20:
+ ldrb r0, [r0]
+ lsls r0, 4
+ strh r0, [r2, 0x26]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1C2C: .4byte 0x02018000
+ thumb_func_end sub_80A1BC0
+
+ thumb_func_start sub_80A1C30
+sub_80A1C30: @ 80A1C30
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 25
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ adds r0, r3, 0
+ adds r0, 0xA
+ cmp r3, r0
+ bge _080A1C82
+ ldr r5, _080A1C88 @ =gSprites
+ movs r7, 0x5
+ negs r7, r7
+ ldr r6, _080A1C8C @ =0x0201a009
+_080A1C50:
+ adds r2, r3, r6
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, 0
+ adds r0, 0xA
+ cmp r3, r0
+ blt _080A1C50
+_080A1C82:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1C88: .4byte gSprites
+_080A1C8C: .4byte 0x0201a009
+ thumb_func_end sub_80A1C30
+
+ thumb_func_start pokemon_ailments_get_primary
+pokemon_ailments_get_primary: @ 80A1C90
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CA0
+ movs r0, 0x1
+ b _080A1CD2
+_080A1CA0:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CAC
+ movs r0, 0x2
+ b _080A1CD2
+_080A1CAC:
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CB8
+ movs r0, 0x3
+ b _080A1CD2
+_080A1CB8:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080A1CC4
+ movs r0, 0x4
+ b _080A1CD2
+_080A1CC4:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080A1CD0
+ movs r0, 0
+ b _080A1CD2
+_080A1CD0:
+ movs r0, 0x5
+_080A1CD2:
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_ailments_get_primary
+
+ thumb_func_start GetMonStatusAndPokerus
+GetMonStatusAndPokerus: @ 80A1CD8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080A1CEA
+ movs r0, 0x7
+ b _080A1D12
+_080A1CEA:
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080A1D12
+ adds r0, r4, 0
+ movs r1, 0
+ bl CheckPartyPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _080A1D10
+ movs r0, 0
+ b _080A1D12
+_080A1D10:
+ movs r0, 0x6
+_080A1D12:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMonStatusAndPokerus
+
+ thumb_func_start sub_80A1D18
+sub_80A1D18: @ 80A1D18
+ push {r4,r5,lr}
+ sub sp, 0x64
+ mov r0, sp
+ bl sub_809F678
+ mov r0, sp
+ bl GetMonStatusAndPokerus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080A1D58
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080A1D50 @ =0x0201a01d
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080A1D60
+ ldr r0, _080A1D54 @ =gSpriteTemplate_83C1304
+ movs r1, 0x40
+ movs r2, 0x98
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r4]
+ b _080A1D60
+ .align 2, 0
+_080A1D50: .4byte 0x0201a01d
+_080A1D54: .4byte gSpriteTemplate_83C1304
+_080A1D58:
+ movs r0, 0x1D
+ bl sub_80A18E4
+ b _080A1D74
+_080A1D60:
+ ldr r0, _080A1D7C @ =0x0201a01d
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080A1D80 @ =gSprites
+ adds r0, r1
+ adds r1, r5, 0
+ bl StartSpriteAnim
+_080A1D74:
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1D7C: .4byte 0x0201a01d
+_080A1D80: .4byte gSprites
+ thumb_func_end sub_80A1D18
+
+ thumb_func_start sub_80A1D84
+sub_80A1D84: @ 80A1D84
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r1, _080A1DC0 @ =0x00007533
+ ldr r2, _080A1DC4 @ =gSummaryScreenMonMarkingsPalette
+ adds r0, r1, 0
+ bl sub_80F7920
+ adds r4, r0, 0
+ ldr r6, _080A1DC8 @ =gUnknown_020384F4
+ str r4, [r6]
+ cmp r4, 0
+ beq _080A1DBA
+ adds r0, r5, 0
+ movs r1, 0x8
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r1, [r6]
+ movs r0, 0x3C
+ strh r0, [r1, 0x20]
+ movs r0, 0x1A
+ strh r0, [r1, 0x22]
+_080A1DBA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1DC0: .4byte 0x00007533
+_080A1DC4: .4byte gSummaryScreenMonMarkingsPalette
+_080A1DC8: .4byte gUnknown_020384F4
+ thumb_func_end sub_80A1D84
+
+ thumb_func_start sub_80A1DCC
+sub_80A1DCC: @ 80A1DCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080A1DE4 @ =gUnknown_020384F4
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0
+ bl sub_80A1D84
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1DE4: .4byte gUnknown_020384F4
+ thumb_func_end sub_80A1DCC
+
+ thumb_func_start sub_80A1DE8
+sub_80A1DE8: @ 80A1DE8
+ push {r4,lr}
+ movs r1, 0x26
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80478DC
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080A1E48 @ =gBallSpriteTemplates
+ adds r0, r1
+ movs r1, 0x6
+ movs r2, 0x88
+ movs r3, 0
+ bl CreateSprite
+ ldr r2, _080A1E4C @ =0x02018000
+ strb r0, [r2, 0xD]
+ ldr r3, _080A1E50 @ =gSprites
+ ldrb r1, [r2, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080A1E54 @ =SpriteCallbackDummy
+ str r1, [r0]
+ ldrb r1, [r2, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1E48: .4byte gBallSpriteTemplates
+_080A1E4C: .4byte 0x02018000
+_080A1E50: .4byte gSprites
+_080A1E54: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80A1DE8
+
+ thumb_func_start sub_80A1E58
+sub_80A1E58: @ 80A1E58
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0xFF
+ beq _080A1E92
+ ldr r3, _080A1E6C @ =gUnknown_083C15BC
+ ldrb r0, [r3]
+ adds r4, r2, 0x5
+ b _080A1E74
+ .align 2, 0
+_080A1E6C: .4byte gUnknown_083C15BC
+_080A1E70:
+ adds r3, 0x4
+ ldrb r0, [r3]
+_080A1E74:
+ cmp r0, 0xFF
+ beq _080A1E7C
+ cmp r0, r1
+ bne _080A1E70
+_080A1E7C:
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x4
+ strb r0, [r2, 0x1]
+ ldrb r0, [r3, 0x1]
+ strb r0, [r2, 0x2]
+ ldrb r0, [r3, 0x2]
+ strb r0, [r2, 0x3]
+ ldrb r0, [r3, 0x3]
+ strb r0, [r2, 0x4]
+ adds r2, r4, 0
+_080A1E92:
+ adds r0, r2, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1E58
+
+ thumb_func_start sub_80A1E9C
+sub_80A1E9C: @ 80A1E9C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ lsls r4, r2, 24
+ lsrs r4, 24
+ mov r1, sp
+ adds r1, 0x1
+ mov r2, sp
+ adds r2, 0x2
+ mov r0, sp
+ bl sub_8072CD4
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80A1E58
+ adds r6, r0, 0
+ adds r1, r5, 0
+ bl StringCopy
+ adds r6, r0, 0
+ cmp r4, 0xFF
+ beq _080A1EEC
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r0, 0x4
+ strb r0, [r6, 0x1]
+ mov r0, sp
+ ldrb r0, [r0]
+ strb r0, [r6, 0x2]
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ strb r0, [r6, 0x3]
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ strb r0, [r6, 0x4]
+ movs r0, 0xFF
+ strb r0, [r6, 0x5]
+ adds r6, 0x5
+_080A1EEC:
+ adds r0, r6, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80A1E9C
+
+ thumb_func_start sub_80A1EF8
+sub_80A1EF8: @ 80A1EF8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x1C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080A1F44 @ =gStringVar4
+ mov r8, r0
+ mov r1, r9
+ adds r2, r4, 0
+ str r3, [sp]
+ bl sub_80A1E9C
+ ldr r3, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint_PixelCoords
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1F44: .4byte gStringVar4
+ thumb_func_end sub_80A1EF8
+
+ thumb_func_start sub_80A1F48
+sub_80A1F48: @ 80A1F48
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x1C]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _080A1F94 @ =gStringVar4
+ mov r8, r0
+ mov r1, r9
+ adds r2, r4, 0
+ str r3, [sp]
+ bl sub_80A1E9C
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ ldr r3, [sp]
+ bl sub_8072BD8
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1F94: .4byte gStringVar4
+ thumb_func_end sub_80A1F48
+
+ thumb_func_start sub_80A1F98
+sub_80A1F98: @ 80A1F98
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ mov r8, r1
+ adds r4, r2, 0
+ adds r2, r3, 0
+ ldr r5, [sp, 0x24]
+ ldr r6, [sp, 0x28]
+ ldr r7, [sp, 0x2C]
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, _080A1FF4 @ =gStringVar1
+ mov r9, r0
+ mov r1, r10
+ adds r3, r4, 0
+ bl ConvertIntToDecimalStringN
+ str r7, [sp]
+ mov r0, r9
+ mov r1, r8
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_80A1EF8
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A1FF4: .4byte gStringVar1
+ thumb_func_end sub_80A1F98
+
+ thumb_func_start sub_80A1FF8
+sub_80A1FF8: @ 80A1FF8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _080A2038 @ =gStringVar4
+ mov r8, r0
+ mov r1, r9
+ adds r2, r4, 0
+ bl sub_80A1E9C
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A2038: .4byte gStringVar4
+ thumb_func_end sub_80A1FF8
+
+ thumb_func_start PokemonSummaryScreen_CopyPokemonLevel
+PokemonSummaryScreen_CopyPokemonLevel: @ 80A203C
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x34
+ strb r0, [r4]
+ adds r4, 0x1
+ cmp r1, 0
+ bne _080A2052
+ movs r1, 0x5
+_080A2052:
+ mov r0, sp
+ bl ConvertIntToDecimalString
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0xE
+ bl sub_80A1E9C
+ adds r4, r0, 0
+ ldr r1, _080A2074 @ =gOtherText_Comma
+ bl StringCopy
+ adds r4, r0, 0
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080A2074: .4byte gOtherText_Comma
+ thumb_func_end PokemonSummaryScreen_CopyPokemonLevel
+
+ thumb_func_start sub_80A2078
+sub_80A2078: @ 80A2078
+ push {lr}
+ ldr r3, _080A209C @ =gUnknown_03005CF0
+ ldr r2, _080A20A0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, [r1]
+ str r2, [r3]
+ ldr r2, _080A20A4 @ =sub_80A20A8
+ str r2, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A209C: .4byte gUnknown_03005CF0
+_080A20A0: .4byte gTasks
+_080A20A4: .4byte sub_80A20A8
+ thumb_func_end sub_80A2078
+
+ thumb_func_start sub_80A20A8
+sub_80A20A8: @ 80A20A8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _080A20C6
+ ldr r1, _080A20CC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080A20D0 @ =gUnknown_03005CF0
+ ldr r1, [r1]
+ str r1, [r0]
+_080A20C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080A20CC: .4byte gTasks
+_080A20D0: .4byte gUnknown_03005CF0
+ thumb_func_end sub_80A20A8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 968386bd1..757a2a5a2 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -9571,7 +9571,7 @@ _080F088C:
bne _080F08C6
_080F089A:
movs r0, 0x9
- bl sub_8053108
+ bl GetGameStat
adds r1, r0, 0
ldr r0, _080F08E0 @ =0x0001869f
cmp r1, r0
@@ -12455,7 +12455,7 @@ _080F1F4A:
movs r1, 0x3
orrs r0, r1
strb r0, [r4, 0x1]
- ldr r0, _080F1FB0 @ =gUnknown_083E4450
+ ldr r0, _080F1FB0 @ =gSpriteAffineAnimTable_83E4450
str r0, [r4, 0x10]
adds r0, r4, 0
bl InitSpriteAffineAnim
@@ -12489,7 +12489,7 @@ _080F1F4A:
b _080F1FE4
.align 2, 0
_080F1FAC: .4byte 0x00006dad
-_080F1FB0: .4byte gUnknown_083E4450
+_080F1FB0: .4byte gSpriteAffineAnimTable_83E4450
_080F1FB4: .4byte sub_80F2240
_080F1FB8: .4byte gUnknown_083DFEC4
_080F1FBC: .4byte 0x0000030f
@@ -17339,7 +17339,7 @@ _080F44FC:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _080F451C @ =gUnknown_020300A4
+ ldr r2, _080F451C @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
adds r1, r4, 0
@@ -17347,7 +17347,7 @@ _080F44FC:
bl GetBoxMonData
b _080F453C
.align 2, 0
-_080F451C: .4byte gUnknown_020300A4
+_080F451C: .4byte gPokemonStorage + 0x4
_080F4520:
lsls r1, r0, 2
adds r1, r0
@@ -17357,7 +17357,7 @@ _080F4520:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _080F4544 @ =gUnknown_020300A4
+ ldr r2, _080F4544 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
adds r1, r4, 0
@@ -17367,7 +17367,7 @@ _080F453C:
pop {r1}
bx r1
.align 2, 0
-_080F4544: .4byte gUnknown_020300A4
+_080F4544: .4byte gPokemonStorage + 0x4
thumb_func_end sub_80F44B0
thumb_func_start sub_80F4548
@@ -17401,7 +17401,7 @@ _080F4574:
lsls r1, r4, 2
adds r1, r4
lsls r1, 4
- ldr r2, _080F459C @ =gUnknown_020300A4
+ ldr r2, _080F459C @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
movs r1, 0x8
@@ -17413,7 +17413,7 @@ _080F4592:
pop {r0}
bx r0
.align 2, 0
-_080F459C: .4byte gUnknown_020300A4
+_080F459C: .4byte gPokemonStorage + 0x4
thumb_func_end sub_80F4548
thumb_func_start sub_80F45A0
@@ -17472,7 +17472,7 @@ _080F4608:
adds r0, r5, r0
lsls r1, r2, 3
adds r1, r2
- ldr r2, _080F4638 @ =gUnknown_020383E4
+ ldr r2, _080F4638 @ =gPokemonStorage + 0x8344
adds r1, r2
movs r2, 0x40
movs r3, 0
@@ -17488,7 +17488,7 @@ _080F4624:
b _080F4676
.align 2, 0
_080F4634: .4byte 0x000088e9
-_080F4638: .4byte gUnknown_020383E4
+_080F4638: .4byte gPokemonStorage + 0x8344
_080F463C: .4byte gUnknown_083DFEC4
_080F4640: .4byte 0x00008937
_080F4644:
@@ -17783,7 +17783,7 @@ sub_80F4824: @ 80F4824
str r5, [sp, 0x4]
str r4, [sp, 0x8]
movs r2, 0x1
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
adds r0, r5, 0
mov r1, r8
adds r2, r4, 0
@@ -18432,7 +18432,7 @@ _080F4DAA:
ldr r0, _080F4EA4 @ =0x000087d8
adds r0, r4
mov r9, r0
- ldr r1, _080F4EA8 @ =gUnknown_020300A4
+ ldr r1, _080F4EA8 @ =gPokemonStorage + 0x4
mov r8, r1
_080F4DCA:
ldrb r0, [r6]
@@ -18541,7 +18541,7 @@ _080F4E98: .4byte gUnknown_083DFEC4
_080F4E9C: .4byte 0x00008fe6
_080F4EA0: .4byte 0x00008fe7
_080F4EA4: .4byte 0x000087d8
-_080F4EA8: .4byte gUnknown_020300A4
+_080F4EA8: .4byte gPokemonStorage + 0x4
_080F4EAC: .4byte 0xffff00ff
_080F4EB0: .4byte 0xffe0ffff
_080F4EB4: .4byte 0xffffff00
@@ -21141,7 +21141,7 @@ _080F6278:
adds r5, r7, r1
ldr r0, _080F6310 @ =0x00008fe7
adds r4, r7, r0
- ldr r1, _080F6314 @ =gUnknown_020300A4
+ ldr r1, _080F6314 @ =gPokemonStorage + 0x4
mov r8, r1
ldr r0, _080F6318 @ =0x000041a0
add r0, r8
@@ -21205,7 +21205,7 @@ _080F62FE:
.align 2, 0
_080F630C: .4byte 0x00008fe6
_080F6310: .4byte 0x00008fe7
-_080F6314: .4byte gUnknown_020300A4
+_080F6314: .4byte gPokemonStorage + 0x4
_080F6318: .4byte 0x000041a0
_080F631C:
movs r0, 0
@@ -21336,7 +21336,7 @@ _080F63FC:
lsls r1, r2, 2
adds r1, r2
lsls r1, 4
- ldr r2, _080F6488 @ =gUnknown_020300A4
+ ldr r2, _080F6488 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
movs r1, 0x51
@@ -21393,7 +21393,7 @@ _080F646E:
_080F647C: .4byte gUnknown_083DFEC4
_080F6480: .4byte 0x00008fe6
_080F6484: .4byte 0x00008fe7
-_080F6488: .4byte gUnknown_020300A4
+_080F6488: .4byte gPokemonStorage + 0x4
_080F648C: .4byte 0xffff00ff
_080F6490: .4byte 0xffe0ffff
_080F6494: .4byte 0xffffff00
@@ -21544,7 +21544,7 @@ _080F65B4:
lsls r1, r7, 2
adds r1, r7
lsls r1, 4
- ldr r2, _080F6620 @ =gUnknown_020300A4
+ ldr r2, _080F6620 @ =gPokemonStorage + 0x4
adds r1, r2
adds r0, r1
bl GetLevelFromBoxMonExp
@@ -21587,7 +21587,7 @@ _080F65FC:
beq _080F663C
b _080F6656
.align 2, 0
-_080F6620: .4byte gUnknown_020300A4
+_080F6620: .4byte gPokemonStorage + 0x4
_080F6624:
strb r1, [r5]
movs r0, 0x1
@@ -22849,67 +22849,7 @@ sub_80F6FFC: @ 80F6FFC
_080F7008: .4byte REG_BLDCNT
thumb_func_end sub_80F6FFC
- thumb_func_start sub_80F700C
-sub_80F700C: @ 80F700C
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _080F7078 @ =gUnknown_083DFEC4
- ldr r4, [r2]
- lsls r2, r1, 3
- adds r2, r4, r2
- ldr r3, _080F707C @ =0x0000cee8
- adds r2, r3
- ldrh r3, [r2]
- lsls r2, r3, 2
- adds r2, r3
- lsls r2, 3
- ldr r3, _080F7080 @ =gTrainers
- adds r5, r2, r3
- adds r3, r0, 0
- ldr r0, _080F7084 @ =0x0000d158
- adds r4, r0
- ldrh r4, [r4]
- cmp r1, r4
- bcs _080F7060
- ldrb r1, [r5, 0x1]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080F7088 @ =gTrainerClassNames
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0x4B
- strb r0, [r3, 0x2]
- adds r3, 0x3
- adds r1, r5, 0x4
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
-_080F7060:
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0x80
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7078: .4byte gUnknown_083DFEC4
-_080F707C: .4byte 0x0000cee8
-_080F7080: .4byte gTrainers
-_080F7084: .4byte 0x0000d158
-_080F7088: .4byte gTrainerClassNames
- thumb_func_end sub_80F700C
+.section .text_80F708C
thumb_func_start sub_80F708C
sub_80F708C: @ 80F708C
diff --git a/asm/porthole.s b/asm/porthole.s
deleted file mode 100644
index 5936433e6..000000000
--- a/asm/porthole.s
+++ /dev/null
@@ -1,297 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80C7754
-sub_80C7754: @ 80C7754
- push {r4-r6,lr}
- sub sp, 0xC
- mov r4, sp
- adds r4, 0x5
- mov r5, sp
- adds r5, 0x6
- add r6, sp, 0x8
- add r0, sp, 0x4
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_810D9EC
- lsls r0, 24
- cmp r0, 0
- bne _080C7796
- add r0, sp, 0x4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r4, r1]
- movs r2, 0x1
- negs r2, r2
- movs r3, 0
- ldrsb r3, [r5, r3]
- movs r4, 0
- ldrsb r4, [r6, r4]
- str r4, [sp]
- bl warp1_set
- movs r0, 0x1
- b _080C7798
-_080C7796:
- movs r0, 0
-_080C7798:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C7754
-
- thumb_func_start sub_80C77A0
-sub_80C77A0: @ 80C77A0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C77CC @ =gTasks + 0x8
- adds r4, r0, r1
- ldr r0, _080C77D0 @ =0x000040b4
- bl GetVarPointer
- adds r6, r0, 0
- ldr r7, _080C77D4 @ =gSaveBlock1 + 0x4
- movs r0, 0
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080C77FC
- cmp r2, 0x1
- bgt _080C77D8
- cmp r2, 0
- beq _080C77E2
- b _080C7896
- .align 2, 0
-_080C77CC: .4byte gTasks + 0x8
-_080C77D0: .4byte 0x000040b4
-_080C77D4: .4byte gSaveBlock1 + 0x4
-_080C77D8:
- cmp r2, 0x2
- beq _080C783E
- cmp r2, 0x3
- beq _080C7878
- b _080C7896
-_080C77E2:
- ldr r0, _080C77F8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C7896
- strh r2, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r4]
- b _080C7896
- .align 2, 0
-_080C77F8: .4byte gPaletteFade
-_080C77FC:
- ldr r0, _080C7830 @ =gMain
- ldrh r1, [r0, 0x2E]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080C780A
- strh r2, [r4, 0x2]
-_080C780A:
- ldrb r1, [r7, 0x1]
- ldrb r2, [r7]
- movs r0, 0xFF
- bl sub_80A212C
- lsls r0, 24
- cmp r0, 0
- beq _080C7896
- movs r0, 0x1
- bl sub_810D9B0
- cmp r0, 0x1
- bne _080C783A
- ldrh r0, [r6]
- cmp r0, 0x2
- bne _080C7834
- movs r0, 0x9
- b _080C7836
- .align 2, 0
-_080C7830: .4byte gMain
-_080C7834:
- movs r0, 0xA
-_080C7836:
- strh r0, [r6]
- b _080C7846
-_080C783A:
- movs r0, 0x2
- strh r0, [r4]
-_080C783E:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C784C
-_080C7846:
- movs r0, 0x3
- strh r0, [r4]
- b _080C7896
-_080C784C:
- ldrh r0, [r6]
- cmp r0, 0x2
- bne _080C7860
- ldrb r1, [r7, 0x1]
- ldrb r2, [r7]
- ldr r3, _080C785C @ =gUnknown_083D295F
- b _080C7866
- .align 2, 0
-_080C785C: .4byte gUnknown_083D295F
-_080C7860:
- ldrb r1, [r7, 0x1]
- ldrb r2, [r7]
- ldr r3, _080C7874 @ =gUnknown_083D2961
-_080C7866:
- movs r0, 0xFF
- bl exec_movement
- movs r0, 0x1
- strh r0, [r4]
- b _080C7896
- .align 2, 0
-_080C7874: .4byte gUnknown_083D2961
-_080C7878:
- ldr r0, _080C789C @ =0x00004001
- bl FlagReset
- movs r0, 0x80
- lsls r0, 7
- bl FlagReset
- movs r0, 0
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- bl sp13E_warp_to_last_warp
- adds r0, r5, 0
- bl DestroyTask
-_080C7896:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C789C: .4byte 0x00004001
- thumb_func_end sub_80C77A0
-
- thumb_func_start sub_80C78A0
-sub_80C78A0: @ 80C78A0
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080C78F4 @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8C
- movs r2, 0x70
- movs r3, 0x50
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C78F8 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r2
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _080C78FC @ =0x000040b4
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _080C7900
- movs r0, 0x4
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- b _080C7912
- .align 2, 0
-_080C78F4: .4byte SpriteCallbackDummy
-_080C78F8: .4byte gSprites
-_080C78FC: .4byte 0x000040b4
-_080C7900:
- movs r0, 0x3
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_080C7912:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C78A0
-
- thumb_func_start sub_80C791C
-sub_80C791C: @ 80C791C
- push {lr}
- bl sub_80C78A0
- ldr r2, _080C794C @ =gMapObjects
- ldr r0, _080C7950 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- bl pal_fill_black
- ldr r0, _080C7954 @ =sub_80C77A0
- movs r1, 0x50
- bl CreateTask
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_080C794C: .4byte gMapObjects
-_080C7950: .4byte gPlayerAvatar
-_080C7954: .4byte sub_80C77A0
- thumb_func_end sub_80C791C
-
- thumb_func_start sub_80C7958
-sub_80C7958: @ 80C7958
- push {lr}
- ldr r0, _080C7990 @ =0x0000082d
- bl FlagSet
- ldr r0, _080C7994 @ =0x00004001
- bl FlagSet
- movs r0, 0x80
- lsls r0, 7
- bl FlagSet
- ldr r0, _080C7998 @ =gSaveBlock1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- bl sub_80C7754
- bl sub_8080F9C
- pop {r0}
- bx r0
- .align 2, 0
-_080C7990: .4byte 0x0000082d
-_080C7994: .4byte 0x00004001
-_080C7998: .4byte gSaveBlock1
- thumb_func_end sub_80C7958
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/region_map.s b/asm/region_map.s
index 61449ba53..44d6a4e91 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -1759,7 +1759,7 @@ sub_80FB600: @ 80FB600
adds r1, r4, 0
adds r2, r5, 0
adds r3, r6, 0
- bl sub_810D9EC
+ bl GetSSTidalLocation
lsls r0, 24
lsrs r0, 24
mov r10, r5
@@ -2623,9 +2623,9 @@ sub_80FBCF0: @ 80FBCF0
movs r2, 0
strh r3, [r0]
strh r1, [r0, 0x2]
- ldr r0, _080FBDA4 @ =gUnknown_083E7708
+ ldr r0, _080FBDA4 @ =gOamData_083E7708
str r0, [sp, 0x4]
- ldr r0, _080FBDA8 @ =gUnknown_083E7718
+ ldr r0, _080FBDA8 @ =gSpriteAnimTable_083E7718
str r0, [sp, 0x8]
str r2, [sp, 0xC]
ldr r0, _080FBDAC @ =gDummySpriteAffineAnimTable
@@ -2685,8 +2685,8 @@ _080FBD42:
_080FBD98: .4byte gRegionMapBrendanIconTiles
_080FBD9C: .4byte gRegionMapBrendanIconPalette
_080FBDA0: .4byte 0xffff0000
-_080FBDA4: .4byte gUnknown_083E7708
-_080FBDA8: .4byte gUnknown_083E7718
+_080FBDA4: .4byte gOamData_083E7708
+_080FBDA8: .4byte gSpriteAnimTable_083E7718
_080FBDAC: .4byte gDummySpriteAffineAnimTable
_080FBDB0: .4byte SpriteCallbackDummy
_080FBDB4: .4byte gSaveBlock2
@@ -3034,8 +3034,8 @@ _080FC026:
bx r1
thumb_func_end CopyMapName
- thumb_func_start sub_80FC02C
-sub_80FC02C: @ 80FC02C
+ thumb_func_start CopyLocationName
+CopyLocationName: @ 80FC02C
push {lr}
lsls r1, 16
lsrs r1, 16
@@ -3051,7 +3051,7 @@ _080FC042:
bx r1
.align 2, 0
_080FC048: .4byte gOtherText_Hideout
- thumb_func_end sub_80FC02C
+ thumb_func_end CopyLocationName
thumb_func_start sub_80FC04C
sub_80FC04C: @ 80FC04C
diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s
index 082ebf465..2fbc559c8 100644
--- a/asm/reset_rtc_screen.s
+++ b/asm/reset_rtc_screen.s
@@ -655,7 +655,7 @@ Task_ResetRtc_1: @ 806A958
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
- ldr r1, _0806A9A0 @ =gUnknown_08376414
+ ldr r1, _0806A9A0 @ =gUnknown_08376420 - 0xC
adds r2, r0, r1
ldr r1, _0806A9A4 @ =gMain
ldrh r3, [r1, 0x2E]
@@ -675,7 +675,7 @@ Task_ResetRtc_1: @ 806A958
b _0806A9CC
.align 2, 0
_0806A99C: .4byte gTasks + 0x8
-_0806A9A0: .4byte gUnknown_08376414
+_0806A9A0: .4byte gUnknown_08376420 - 0xC
_0806A9A4: .4byte gMain
_0806A9A8: .4byte Task_ResetRtc_2
_0806A9AC:
@@ -1225,7 +1225,7 @@ _0806AE08:
ldr r0, _0806AE54 @ =0x00004040
ldrh r1, [r4]
bl VarSet
- bl sub_80691A0
+ bl DisableResetRTC
ldr r0, _0806AE58 @ =gSystemText_ClockResetDataSave
bl ResetRtcScreen_ShowMessage
movs r0, 0x4
@@ -1238,7 +1238,7 @@ _0806AE54: .4byte 0x00004040
_0806AE58: .4byte gSystemText_ClockResetDataSave
_0806AE5C:
movs r0, 0
- bl sub_8125D44
+ bl TrySavingData
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s
new file mode 100644
index 000000000..59b08dd01
--- /dev/null
+++ b/asm/reshow_battle_screen.s
@@ -0,0 +1,1097 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start nullsub_14
+nullsub_14: @ 807AD54
+ bx lr
+ thumb_func_end nullsub_14
+
+ thumb_func_start ReshowBattleScreenAfterMenu
+ReshowBattleScreenAfterMenu: @ 807AD58
+ push {lr}
+ ldr r2, _0807AD90 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r0, _0807AD94 @ =REG_MOSAIC
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _0807AD98 @ =0x02000000
+ ldr r3, _0807AD9C @ =0x0001ffff
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _0807ADA0 @ =0x0001fffe
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, _0807ADA4 @ =CB2_ReshowBattleScreenAfterMenu
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807AD90: .4byte gPaletteFade
+_0807AD94: .4byte REG_MOSAIC
+_0807AD98: .4byte 0x02000000
+_0807AD9C: .4byte 0x0001ffff
+_0807ADA0: .4byte 0x0001fffe
+_0807ADA4: .4byte CB2_ReshowBattleScreenAfterMenu
+ thumb_func_end ReshowBattleScreenAfterMenu
+
+ thumb_func_start CB2_ReshowBattleScreenAfterMenu
+CB2_ReshowBattleScreenAfterMenu: @ 807ADA8
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r0, _0807ADC4 @ =0x02000000
+ ldr r1, _0807ADC8 @ =0x0001ffff
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bls _0807ADBA
+ b _0807B010
+_0807ADBA:
+ lsls r0, 2
+ ldr r1, _0807ADCC @ =_0807ADD0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807ADC4: .4byte 0x02000000
+_0807ADC8: .4byte 0x0001ffff
+_0807ADCC: .4byte _0807ADD0
+ .align 2, 0
+_0807ADD0:
+ .4byte _0807AE20
+ .4byte _0807AE84
+ .4byte _0807AE9C
+ .4byte _0807AEC8
+ .4byte _0807AECE
+ .4byte _0807AEE0
+ .4byte _0807AEE6
+ .4byte _0807AF18
+ .4byte _0807AF1C
+ .4byte _0807AF20
+ .4byte _0807AF24
+ .4byte _0807AF48
+ .4byte _0807AF50
+ .4byte _0807AF58
+ .4byte _0807AF60
+ .4byte _0807AF68
+ .4byte _0807AF70
+ .4byte _0807AF78
+ .4byte _0807AF80
+ .4byte _0807AF88
+_0807AE20:
+ bl dp12_8087EA4
+ ldr r4, _0807AE5C @ =gWindowConfig_81E6C58
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ bl ResetPaletteFade
+ ldr r0, _0807AE60 @ =gUnknown_03004210
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r0, _0807AE64 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0807AE68 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r0, _0807AE6C @ =gUnknown_030042C0
+ strh r1, [r0]
+ ldr r0, _0807AE70 @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _0807AE74 @ =gUnknown_03004288
+ strh r1, [r0]
+ ldr r0, _0807AE78 @ =gUnknown_03004280
+ strh r1, [r0]
+ ldr r0, _0807AE7C @ =gUnknown_030041B0
+ strh r1, [r0]
+ ldr r0, _0807AE80 @ =gUnknown_030041B8
+ strh r1, [r0]
+ b _0807B040
+ .align 2, 0
+_0807AE5C: .4byte gWindowConfig_81E6C58
+_0807AE60: .4byte gUnknown_03004210
+_0807AE64: .4byte gUnknown_030042A4
+_0807AE68: .4byte gUnknown_030042A0
+_0807AE6C: .4byte gUnknown_030042C0
+_0807AE70: .4byte gUnknown_030041B4
+_0807AE74: .4byte gUnknown_03004288
+_0807AE78: .4byte gUnknown_03004280
+_0807AE7C: .4byte gUnknown_030041B0
+_0807AE80: .4byte gUnknown_030041B8
+_0807AE84:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, _0807AE98 @ =0x01006000
+ add r0, sp, 0x4
+ bl CpuFastSet
+ b _0807B040
+ .align 2, 0
+_0807AE98: .4byte 0x01006000
+_0807AE9C:
+ ldr r5, _0807AEBC @ =0x02000000
+ ldr r0, _0807AEC0 @ =0x0001fffe
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ bl sub_800E414
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807AEF8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r0, _0807AEC4 @ =0x0001ffff
+ adds r1, r5, r0
+ b _0807AF38
+ .align 2, 0
+_0807AEBC: .4byte 0x02000000
+_0807AEC0: .4byte 0x0001fffe
+_0807AEC4: .4byte 0x0001ffff
+_0807AEC8:
+ bl ResetSpriteData
+ b _0807B040
+_0807AECE:
+ bl FreeAllSpritePalettes
+ ldr r1, _0807AEDC @ =gReservedSpritePaletteCount
+ movs r0, 0x4
+ strb r0, [r1]
+ b _0807B040
+ .align 2, 0
+_0807AEDC: .4byte gReservedSpritePaletteCount
+_0807AEE0:
+ bl sub_8031EE8
+ b _0807B040
+_0807AEE6:
+ ldr r5, _0807AF00 @ =0x02000000
+ ldr r1, _0807AF04 @ =0x0001fffe
+ adds r4, r5, r1
+ ldrb r0, [r4]
+ bl sub_8031C30
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807AF08
+_0807AEF8:
+ movs r0, 0
+ strb r0, [r4]
+ b _0807B040
+ .align 2, 0
+_0807AF00: .4byte 0x02000000
+_0807AF04: .4byte 0x0001fffe
+_0807AF08:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r0, _0807AF14 @ =0x0001ffff
+ adds r1, r5, r0
+ b _0807AF38
+ .align 2, 0
+_0807AF14: .4byte 0x0001ffff
+_0807AF18:
+ movs r0, 0
+ b _0807AF26
+_0807AF1C:
+ movs r0, 0x1
+ b _0807AF26
+_0807AF20:
+ movs r0, 0x2
+ b _0807AF26
+_0807AF24:
+ movs r0, 0x3
+_0807AF26:
+ bl sub_807B094
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807AF32
+ b _0807B040
+_0807AF32:
+ ldr r1, _0807AF40 @ =0x02000000
+ ldr r0, _0807AF44 @ =0x0001ffff
+ adds r1, r0
+_0807AF38:
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ b _0807B040
+ .align 2, 0
+_0807AF40: .4byte 0x02000000
+_0807AF44: .4byte 0x0001ffff
+_0807AF48:
+ movs r0, 0
+ bl sub_807B184
+ b _0807B040
+_0807AF50:
+ movs r0, 0x1
+ bl sub_807B184
+ b _0807B040
+_0807AF58:
+ movs r0, 0x2
+ bl sub_807B184
+ b _0807B040
+_0807AF60:
+ movs r0, 0x3
+ bl sub_807B184
+ b _0807B040
+_0807AF68:
+ movs r0, 0
+ bl sub_807B508
+ b _0807B040
+_0807AF70:
+ movs r0, 0x1
+ bl sub_807B508
+ b _0807B040
+_0807AF78:
+ movs r0, 0x2
+ bl sub_807B508
+ b _0807B040
+_0807AF80:
+ movs r0, 0x3
+ bl sub_807B508
+ b _0807B040
+_0807AF88:
+ bl sub_80327CC
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r7, _0807B000 @ =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _0807B004 @ =gEnemyParty
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807AFEC
+ movs r0, 0x3
+ bl GetBankByPlayerAI
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+_0807AFEC:
+ ldr r1, _0807B008 @ =gActionSelectionCursor
+ ldr r0, _0807B00C @ =gBankInMenu
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+ b _0807B040
+ .align 2, 0
+_0807B000: .4byte gBattlePartyID
+_0807B004: .4byte gEnemyParty
+_0807B008: .4byte gActionSelectionCursor
+_0807B00C: .4byte gBankInMenu
+_0807B010:
+ ldr r0, _0807B054 @ =sub_800FCD4
+ bl SetHBlankCallback
+ ldr r0, _0807B058 @ =sub_800FCFC
+ bl SetVBlankCallback
+ bl sub_807B06C
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginHardwarePaletteFade
+ ldr r2, _0807B05C @ =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0807B060 @ =sub_800F808
+ bl SetMainCallback2
+_0807B040:
+ ldr r1, _0807B064 @ =0x02000000
+ ldr r0, _0807B068 @ =0x0001ffff
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B054: .4byte sub_800FCD4
+_0807B058: .4byte sub_800FCFC
+_0807B05C: .4byte gPaletteFade
+_0807B060: .4byte sub_800F808
+_0807B064: .4byte 0x02000000
+_0807B068: .4byte 0x0001ffff
+ thumb_func_end CB2_ReshowBattleScreenAfterMenu
+
+ thumb_func_start sub_807B06C
+sub_807B06C: @ 807B06C
+ push {lr}
+ bl sub_800D6D4
+ ldr r3, _0807B08C @ =REG_BG1CNT
+ ldrb r2, [r3]
+ movs r1, 0xD
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ ldr r2, _0807B090 @ =REG_BG2CNT
+ ldrb r0, [r2]
+ ands r1, r0
+ strb r1, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B08C: .4byte REG_BG1CNT
+_0807B090: .4byte REG_BG2CNT
+ thumb_func_end sub_807B06C
+
+ thumb_func_start sub_807B094
+sub_807B094: @ 807B094
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0807B0D8 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _0807B172
+ adds r0, r4, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807B0F2
+ lsls r0, r4, 2
+ ldr r1, _0807B0DC @ =0x02017800
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0807B0E8
+ ldr r1, _0807B0E0 @ =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0807B0E4 @ =gEnemyParty
+ adds r0, r1
+ adds r1, r4, 0
+ bl sub_8031794
+ b _0807B168
+ .align 2, 0
+_0807B0D8: .4byte gNoOfAllBanks
+_0807B0DC: .4byte 0x02017800
+_0807B0E0: .4byte gBattlePartyID
+_0807B0E4: .4byte gEnemyParty
+_0807B0E8:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8032350
+ b _0807B168
+_0807B0F2:
+ ldr r2, _0807B108 @ =gBattleTypeFlags
+ ldrh r1, [r2]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0807B110
+ cmp r4, 0
+ bne _0807B110
+ ldr r0, _0807B10C @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ b _0807B122
+ .align 2, 0
+_0807B108: .4byte gBattleTypeFlags
+_0807B10C: .4byte gSaveBlock2
+_0807B110:
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0807B12A
+ cmp r4, 0
+ bne _0807B12A
+ movs r0, 0x2
+_0807B122:
+ movs r1, 0
+ bl sub_8031AF4
+ b _0807B168
+_0807B12A:
+ lsls r0, r4, 2
+ ldr r1, _0807B154 @ =0x02017800
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0807B160
+ ldr r1, _0807B158 @ =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0807B15C @ =gPlayerParty
+ adds r0, r1
+ adds r1, r4, 0
+ bl sub_80318FC
+ b _0807B168
+ .align 2, 0
+_0807B154: .4byte 0x02017800
+_0807B158: .4byte gBattlePartyID
+_0807B15C: .4byte gPlayerParty
+_0807B160:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8032350
+_0807B168:
+ ldr r0, _0807B17C @ =0x02000000
+ ldr r1, _0807B180 @ =0x0001fffe
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0807B172:
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807B17C: .4byte 0x02000000
+_0807B180: .4byte 0x0001fffe
+ thumb_func_end sub_807B094
+
+ thumb_func_start sub_807B184
+sub_807B184: @ 807B184
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0807B1B8 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _0807B19E
+ b _0807B4D8
+_0807B19E:
+ lsls r2, r7, 2
+ ldr r0, _0807B1BC @ =0x02017800
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ str r2, [sp]
+ cmp r0, 0
+ beq _0807B1C0
+ adds r0, r7, 0
+ bl sub_8077F7C
+ b _0807B1C6
+ .align 2, 0
+_0807B1B8: .4byte gNoOfAllBanks
+_0807B1BC: .4byte 0x02017800
+_0807B1C0:
+ adds r0, r7, 0
+ bl sub_8077F68
+_0807B1C6:
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r7, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807B1DA
+ b _0807B2D8
+_0807B1DA:
+ ldr r1, _0807B2BC @ =gBattlePartyID
+ lsls r0, r7, 1
+ adds r6, r0, r1
+ ldrh r0, [r6]
+ movs r1, 0x64
+ mov r10, r1
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r1, _0807B2C0 @ =gEnemyParty
+ mov r9, r1
+ add r0, r9
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _0807B1FE
+ b _0807B4D8
+_0807B1FE:
+ ldrh r0, [r6]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r7, 0
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetMonSpriteTemplate_803C56C
+ ldr r5, _0807B2C4 @ =gUnknown_02024E8C
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, r8
+ bl CreateSprite
+ ldr r4, _0807B2C8 @ =gObjectBankIDs
+ adds r4, r7, r4
+ strb r0, [r4]
+ ldr r5, _0807B2CC @ =gSprites
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, r7, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0807B2D0 @ =SpriteCallbackDummy
+ str r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r7, [r0, 0x2E]
+ ldrh r0, [r6]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ movs r1, 0xB
+ bl GetMonData
+ ldrb r2, [r4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ strh r0, [r1, 0x32]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0807B2D4 @ =gBattleMonForms
+ adds r1, r7, r1
+ ldrb r1, [r1]
+ bl StartSpriteAnim
+ b _0807B4AC
+ .align 2, 0
+_0807B2BC: .4byte gBattlePartyID
+_0807B2C0: .4byte gEnemyParty
+_0807B2C4: .4byte gUnknown_02024E8C
+_0807B2C8: .4byte gObjectBankIDs
+_0807B2CC: .4byte gSprites
+_0807B2D0: .4byte SpriteCallbackDummy
+_0807B2D4: .4byte gBattleMonForms
+_0807B2D8:
+ ldr r2, _0807B328 @ =gBattleTypeFlags
+ ldrh r1, [r2]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0807B338
+ cmp r7, 0
+ bne _0807B338
+ ldr r5, _0807B32C @ =gSaveBlock2
+ ldrb r4, [r5, 0x8]
+ movs r0, 0
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r6, _0807B330 @ =gUnknown_02024E8C
+ ldr r1, _0807B334 @ =gTrainerBackPicCoords
+ ldrb r0, [r5, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0x8
+ subs r4, r0
+ lsls r4, 18
+ movs r0, 0xA0
+ lsls r0, 15
+ adds r4, r0
+ asrs r4, 16
+ movs r0, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r6, 0
+ b _0807B37C
+ .align 2, 0
+_0807B328: .4byte gBattleTypeFlags
+_0807B32C: .4byte gSaveBlock2
+_0807B330: .4byte gUnknown_02024E8C
+_0807B334: .4byte gTrainerBackPicCoords
+_0807B338:
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0807B3D0
+ cmp r7, 0
+ bne _0807B3D0
+ movs r0, 0
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x2
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r5, _0807B3BC @ =gUnknown_02024E8C
+ ldr r0, _0807B3C0 @ =gTrainerBackPicCoords
+ ldrb r0, [r0, 0x8]
+ movs r4, 0x8
+ subs r4, r0
+ lsls r4, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r4, r1
+ asrs r4, 16
+ movs r0, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+_0807B37C:
+ movs r1, 0x50
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r3, _0807B3C4 @ =gObjectBankIDs
+ strb r0, [r3]
+ ldr r4, _0807B3C8 @ =gSprites
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0807B3CC @ =SpriteCallbackDummy
+ str r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x2E]
+ b _0807B4AC
+ .align 2, 0
+_0807B3BC: .4byte gUnknown_02024E8C
+_0807B3C0: .4byte gTrainerBackPicCoords
+_0807B3C4: .4byte gObjectBankIDs
+_0807B3C8: .4byte gSprites
+_0807B3CC: .4byte SpriteCallbackDummy
+_0807B3D0:
+ ldr r1, _0807B4E8 @ =gBattlePartyID
+ lsls r0, r7, 1
+ adds r6, r0, r1
+ ldrh r0, [r6]
+ movs r1, 0x64
+ mov r10, r1
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r1, _0807B4EC @ =gPlayerParty
+ mov r9, r1
+ add r0, r9
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0807B4D8
+ ldrh r0, [r6]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r7, 0
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetMonSpriteTemplate_803C56C
+ ldr r5, _0807B4F0 @ =gUnknown_02024E8C
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, r8
+ bl CreateSprite
+ ldr r4, _0807B4F4 @ =gObjectBankIDs
+ adds r4, r7, r4
+ strb r0, [r4]
+ ldr r5, _0807B4F8 @ =gSprites
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, r7, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0807B4FC @ =SpriteCallbackDummy
+ str r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r7, [r0, 0x2E]
+ ldrh r0, [r6]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ movs r1, 0xB
+ bl GetMonData
+ ldrb r2, [r4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ strh r0, [r1, 0x32]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0807B500 @ =gBattleMonForms
+ adds r1, r7, r1
+ ldrb r1, [r1]
+ bl StartSpriteAnim
+_0807B4AC:
+ ldr r1, _0807B4F8 @ =gSprites
+ ldr r0, _0807B4F4 @ =gObjectBankIDs
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldr r0, _0807B504 @ =0x02017800
+ ldr r1, [sp]
+ adds r0, r1, r0
+ ldr r1, [r0]
+ lsls r1, 31
+ adds r2, 0x3E
+ lsrs r1, 31
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+_0807B4D8:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B4E8: .4byte gBattlePartyID
+_0807B4EC: .4byte gPlayerParty
+_0807B4F0: .4byte gUnknown_02024E8C
+_0807B4F4: .4byte gObjectBankIDs
+_0807B4F8: .4byte gSprites
+_0807B4FC: .4byte SpriteCallbackDummy
+_0807B500: .4byte gBattleMonForms
+_0807B504: .4byte 0x02017800
+ thumb_func_end sub_807B184
+
+ thumb_func_start sub_807B508
+sub_807B508: @ 807B508
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0807B530 @ =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _0807B518
+ b _0807B68A
+_0807B518:
+ ldr r2, _0807B534 @ =gBattleTypeFlags
+ ldrh r1, [r2]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0807B538
+ cmp r5, 0
+ bne _0807B538
+ bl battle_make_oam_safari_battle
+ b _0807B550
+ .align 2, 0
+_0807B530: .4byte gNoOfAllBanks
+_0807B534: .4byte gBattleTypeFlags
+_0807B538:
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0807B54A
+ cmp r5, 0
+ bne _0807B54A
+ b _0807B68A
+_0807B54A:
+ adds r0, r5, 0
+ bl battle_make_oam_normal_battle
+_0807B550:
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0807B58C @ =gHealthboxIDs
+ adds r4, r5, r0
+ strb r6, [r4]
+ adds r0, r5, 0
+ bl sub_8043F44
+ adds r0, r6, 0
+ bl sub_8043DFC
+ adds r0, r5, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807B598
+ ldrb r0, [r4]
+ ldr r1, _0807B590 @ =gBattlePartyID
+ lsls r4, r5, 1
+ adds r1, r4, r1
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0807B594 @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ b _0807B5E4
+ .align 2, 0
+_0807B58C: .4byte gHealthboxIDs
+_0807B590: .4byte gBattlePartyID
+_0807B594: .4byte gEnemyParty
+_0807B598:
+ ldr r0, _0807B5C0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0807B5CC
+ ldrb r0, [r4]
+ ldr r1, _0807B5C4 @ =gBattlePartyID
+ lsls r4, r5, 1
+ adds r1, r4, r1
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0807B5C8 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0xA
+ bl sub_8045A5C
+ b _0807B5E4
+ .align 2, 0
+_0807B5C0: .4byte gBattleTypeFlags
+_0807B5C4: .4byte gBattlePartyID
+_0807B5C8: .4byte gPlayerParty
+_0807B5CC:
+ ldrb r0, [r4]
+ ldr r1, _0807B610 @ =gBattlePartyID
+ lsls r4, r5, 1
+ adds r1, r4, r1
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0807B614 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+_0807B5E4:
+ adds r0, r5, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _0807B600
+ adds r0, r5, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0807B61C
+_0807B600:
+ ldr r0, _0807B618 @ =gHealthboxIDs
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl nullsub_11
+ b _0807B628
+ .align 2, 0
+_0807B610: .4byte gBattlePartyID
+_0807B614: .4byte gPlayerParty
+_0807B618: .4byte gHealthboxIDs
+_0807B61C:
+ ldr r0, _0807B654 @ =gHealthboxIDs
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ movs r1, 0
+ bl nullsub_11
+_0807B628:
+ adds r0, r5, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807B660
+ ldr r0, _0807B658 @ =gBattlePartyID
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0807B65C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _0807B68A
+ adds r0, r6, 0
+ bl sub_8043DB0
+ b _0807B68A
+ .align 2, 0
+_0807B654: .4byte gHealthboxIDs
+_0807B658: .4byte gBattlePartyID
+_0807B65C: .4byte gEnemyParty
+_0807B660:
+ ldr r0, _0807B690 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0807B68A
+ ldr r0, _0807B694 @ =gBattlePartyID
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0807B698 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _0807B68A
+ adds r0, r6, 0
+ bl sub_8043DB0
+_0807B68A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B690: .4byte gBattleTypeFlags
+_0807B694: .4byte gBattlePartyID
+_0807B698: .4byte gPlayerParty
+ thumb_func_end sub_807B508
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom3.s b/asm/rom3.s
deleted file mode 100644
index 823ac4e0c..000000000
--- a/asm/rom3.s
+++ /dev/null
@@ -1,3411 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_800B858
-sub_800B858: @ 800B858
- push {lr}
- ldr r0, _0800B87C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0800B876
- bl OpenLink
- ldr r0, _0800B880 @ =sub_8083C50
- movs r1, 0
- bl CreateTask
- bl sub_800BF28
-_0800B876:
- pop {r0}
- bx r0
- .align 2, 0
-_0800B87C: .4byte gUnknown_020239F8
-_0800B880: .4byte sub_8083C50
- thumb_func_end sub_800B858
-
- thumb_func_start sub_800B884
-sub_800B884: @ 800B884
- push {r4-r7,lr}
- sub sp, 0x14
- ldr r0, _0800B920 @ =gUnknown_030042D4
- ldr r1, _0800B924 @ =nullsub_41
- str r1, [r0]
- movs r0, 0
- str r0, [sp, 0x10]
- movs r1, 0
- ldr r7, _0800B928 @ =gUnknown_03004330
- ldr r6, _0800B92C @ =gUnknown_02024E60
- movs r2, 0
- ldr r5, _0800B930 @ =gUnknown_02024E64
- ldr r4, _0800B934 @ =nullsub_91
- ldr r3, _0800B938 @ =gUnknown_02024A72
-_0800B8A0:
- lsls r0, r1, 2
- adds r0, r7
- str r4, [r0]
- adds r1, r3
- movs r0, 0xFF
- strb r0, [r1]
- ldr r0, [sp, 0x10]
- adds r0, r6
- strb r2, [r0]
- ldr r0, [sp, 0x10]
- adds r0, r5
- strb r2, [r0]
- ldr r0, [sp, 0x10]
- adds r0, 0x1
- str r0, [sp, 0x10]
- adds r1, r0, 0
- cmp r1, 0x3
- ble _0800B8A0
- bl sub_800B858
- ldr r0, _0800B93C @ =gUnknown_02024A64
- movs r5, 0
- str r5, [r0]
- bl sub_8075624
- bl sub_8040710
- bl sub_81070D4
- ldr r0, _0800B940 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0800B90E
- bl ZeroEnemyPartyMons
- ldr r4, _0800B944 @ =gEnemyParty
- movs r1, 0x8F
- lsls r1, 1
- str r5, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- str r5, [sp, 0xC]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x20
- bl CreateMon
- str r5, [sp, 0x10]
- adds r0, r4, 0
- movs r1, 0xC
- add r2, sp, 0x10
- bl SetMonData
-_0800B90E:
- ldr r0, _0800B948 @ =gUnknown_020239FC
- str r5, [r0]
- ldr r0, _0800B94C @ =gUnknown_02024C78
- strb r5, [r0]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B920: .4byte gUnknown_030042D4
-_0800B924: .4byte nullsub_41
-_0800B928: .4byte gUnknown_03004330
-_0800B92C: .4byte gUnknown_02024E60
-_0800B930: .4byte gUnknown_02024E64
-_0800B934: .4byte nullsub_91
-_0800B938: .4byte gUnknown_02024A72
-_0800B93C: .4byte gUnknown_02024A64
-_0800B940: .4byte gUnknown_020239F8
-_0800B944: .4byte gEnemyParty
-_0800B948: .4byte gUnknown_020239FC
-_0800B94C: .4byte gUnknown_02024C78
- thumb_func_end sub_800B884
-
- thumb_func_start sub_800B950
-sub_800B950: @ 800B950
- push {r4,r5,lr}
- ldr r0, _0800B964 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0800B968
- bl sub_800BA78
- b _0800B96C
- .align 2, 0
-_0800B964: .4byte gUnknown_020239F8
-_0800B968:
- bl sub_800B9A8
-_0800B96C:
- bl sub_800BD54
- ldr r0, _0800B9A0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0800B99A
- movs r4, 0
- ldr r0, _0800B9A4 @ =gUnknown_02024A68
- ldrb r1, [r0]
- cmp r4, r1
- bge _0800B99A
- adds r5, r0, 0
-_0800B988:
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8094978
- adds r4, 0x1
- ldrb r0, [r5]
- cmp r4, r0
- blt _0800B988
-_0800B99A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B9A0: .4byte gUnknown_020239F8
-_0800B9A4: .4byte gUnknown_02024A68
- thumb_func_end sub_800B950
-
- thumb_func_start sub_800B9A8
-sub_800B9A8: @ 800B9A8
- push {r4,lr}
- ldr r0, _0800B9CC @ =gUnknown_020239F8
- ldrh r2, [r0]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0800BA28
- ldr r1, _0800B9D0 @ =gUnknown_030042D4
- ldr r0, _0800B9D4 @ =sub_8010800
- str r0, [r1]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _0800B9E0
- ldr r1, _0800B9D8 @ =gUnknown_03004330
- ldr r0, _0800B9DC @ =sub_812B468
- b _0800B9FC
- .align 2, 0
-_0800B9CC: .4byte gUnknown_020239F8
-_0800B9D0: .4byte gUnknown_030042D4
-_0800B9D4: .4byte sub_8010800
-_0800B9D8: .4byte gUnknown_03004330
-_0800B9DC: .4byte sub_812B468
-_0800B9E0:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0800B9F8
- ldr r1, _0800B9F0 @ =gUnknown_03004330
- ldr r0, _0800B9F4 @ =sub_8137224
- b _0800B9FC
- .align 2, 0
-_0800B9F0: .4byte gUnknown_03004330
-_0800B9F4: .4byte sub_8137224
-_0800B9F8:
- ldr r1, _0800BA14 @ =gUnknown_03004330
- ldr r0, _0800BA18 @ =sub_802BF74
-_0800B9FC:
- str r0, [r1]
- adds r2, r1, 0
- ldr r1, _0800BA1C @ =gUnknown_02024A72
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0800BA20 @ =sub_8032AE0
- str r0, [r2, 0x4]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- ldr r1, _0800BA24 @ =gUnknown_02024A68
- movs r0, 0x2
- b _0800BA52
- .align 2, 0
-_0800BA14: .4byte gUnknown_03004330
-_0800BA18: .4byte sub_802BF74
-_0800BA1C: .4byte gUnknown_02024A72
-_0800BA20: .4byte sub_8032AE0
-_0800BA24: .4byte gUnknown_02024A68
-_0800BA28:
- ldr r1, _0800BA5C @ =gUnknown_030042D4
- ldr r0, _0800BA60 @ =sub_8010800
- str r0, [r1]
- ldr r2, _0800BA64 @ =gUnknown_03004330
- ldr r4, _0800BA68 @ =sub_802BF74
- str r4, [r2]
- ldr r1, _0800BA6C @ =gUnknown_02024A72
- movs r0, 0
- strb r0, [r1]
- ldr r3, _0800BA70 @ =sub_8032AE0
- str r3, [r2, 0x4]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- str r4, [r2, 0x8]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- str r3, [r2, 0xC]
- movs r0, 0x3
- strb r0, [r1, 0x3]
- ldr r1, _0800BA74 @ =gUnknown_02024A68
- movs r0, 0x4
-_0800BA52:
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BA5C: .4byte gUnknown_030042D4
-_0800BA60: .4byte sub_8010800
-_0800BA64: .4byte gUnknown_03004330
-_0800BA68: .4byte sub_802BF74
-_0800BA6C: .4byte gUnknown_02024A72
-_0800BA70: .4byte sub_8032AE0
-_0800BA74: .4byte gUnknown_02024A68
- thumb_func_end sub_800B9A8
-
- thumb_func_start sub_800BA78
-sub_800BA78: @ 800BA78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r6, _0800BAB8 @ =gUnknown_020239F8
- ldrh r1, [r6]
- movs r5, 0x1
- movs r4, 0x1
- ands r4, r1
- cmp r4, 0
- bne _0800BB04
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _0800BAD8
- ldr r1, _0800BABC @ =gUnknown_030042D4
- ldr r0, _0800BAC0 @ =sub_8010800
- str r0, [r1]
- ldr r2, _0800BAC4 @ =gUnknown_03004330
- ldr r0, _0800BAC8 @ =sub_802BF74
- str r0, [r2]
- ldr r1, _0800BACC @ =gUnknown_02024A72
- strb r4, [r1]
- ldr r0, _0800BAD0 @ =sub_8037510
- str r0, [r2, 0x4]
- strb r5, [r1, 0x1]
- ldr r1, _0800BAD4 @ =gUnknown_02024A68
- movs r0, 0x2
- b _0800BD3E
- .align 2, 0
-_0800BAB8: .4byte gUnknown_020239F8
-_0800BABC: .4byte gUnknown_030042D4
-_0800BAC0: .4byte sub_8010800
-_0800BAC4: .4byte gUnknown_03004330
-_0800BAC8: .4byte sub_802BF74
-_0800BACC: .4byte gUnknown_02024A72
-_0800BAD0: .4byte sub_8037510
-_0800BAD4: .4byte gUnknown_02024A68
-_0800BAD8:
- ldr r2, _0800BAF0 @ =gUnknown_03004330
- ldr r0, _0800BAF4 @ =sub_802BF74
- str r0, [r2, 0x4]
- ldr r1, _0800BAF8 @ =gUnknown_02024A72
- strb r3, [r1, 0x1]
- ldr r0, _0800BAFC @ =sub_8037510
- str r0, [r2]
- strb r5, [r1]
- ldr r1, _0800BB00 @ =gUnknown_02024A68
- movs r0, 0x2
- b _0800BD3E
- .align 2, 0
-_0800BAF0: .4byte gUnknown_03004330
-_0800BAF4: .4byte sub_802BF74
-_0800BAF8: .4byte gUnknown_02024A72
-_0800BAFC: .4byte sub_8037510
-_0800BB00: .4byte gUnknown_02024A68
-_0800BB04:
- movs r0, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _0800BB90
- movs r6, 0x4
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _0800BB58
- ldr r1, _0800BB40 @ =gUnknown_030042D4
- ldr r0, _0800BB44 @ =sub_8010800
- str r0, [r1]
- ldr r2, _0800BB48 @ =gUnknown_03004330
- ldr r4, _0800BB4C @ =sub_802BF74
- str r4, [r2]
- ldr r1, _0800BB50 @ =gUnknown_02024A72
- movs r0, 0
- strb r0, [r1]
- ldr r3, _0800BB54 @ =sub_8037510
- str r3, [r2, 0x4]
- strb r5, [r1, 0x1]
- str r4, [r2, 0x8]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- str r3, [r2, 0xC]
- movs r0, 0x3
- strb r0, [r1, 0x3]
- b _0800BB74
- .align 2, 0
-_0800BB40: .4byte gUnknown_030042D4
-_0800BB44: .4byte sub_8010800
-_0800BB48: .4byte gUnknown_03004330
-_0800BB4C: .4byte sub_802BF74
-_0800BB50: .4byte gUnknown_02024A72
-_0800BB54: .4byte sub_8037510
-_0800BB58:
- ldr r2, _0800BB7C @ =gUnknown_03004330
- ldr r0, _0800BB80 @ =sub_802BF74
- str r0, [r2, 0x4]
- ldr r1, _0800BB84 @ =gUnknown_02024A72
- strb r3, [r1, 0x1]
- ldr r3, _0800BB88 @ =sub_8037510
- str r3, [r2]
- strb r5, [r1]
- str r0, [r2, 0xC]
- movs r0, 0x2
- strb r0, [r1, 0x3]
- str r3, [r2, 0x8]
- movs r0, 0x3
- strb r0, [r1, 0x2]
-_0800BB74:
- ldr r0, _0800BB8C @ =gUnknown_02024A68
- strb r6, [r0]
- b _0800BD40
- .align 2, 0
-_0800BB7C: .4byte gUnknown_03004330
-_0800BB80: .4byte sub_802BF74
-_0800BB84: .4byte gUnknown_02024A72
-_0800BB88: .4byte sub_8037510
-_0800BB8C: .4byte gUnknown_02024A68
-_0800BB90:
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0800BBA8
- ldr r1, _0800BBD0 @ =gUnknown_030042D4
- ldr r0, _0800BBD4 @ =sub_8010800
- str r0, [r1]
-_0800BBA8:
- movs r0, 0
- mov r10, r0
- ldr r1, _0800BBD8 @ =gLinkPlayers
- mov r12, r1
- ldr r7, _0800BBDC @ =gUnknown_02024A72
- mov r8, r0
- ldr r6, _0800BBE0 @ =gUnknown_02024A6A
- movs r4, 0
- movs r2, 0x3
- mov r9, r2
-_0800BBBC:
- mov r1, r12
- adds r0, r4, r1
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _0800BBE4
- cmp r0, 0x1
- bge _0800BBFC
- cmp r0, 0
- beq _0800BBE8
- b _0800BC06
- .align 2, 0
-_0800BBD0: .4byte gUnknown_030042D4
-_0800BBD4: .4byte sub_8010800
-_0800BBD8: .4byte gLinkPlayers
-_0800BBDC: .4byte gUnknown_02024A72
-_0800BBE0: .4byte gUnknown_02024A6A
-_0800BBE4:
- cmp r0, 0x3
- bne _0800BC06
-_0800BBE8:
- ldr r0, _0800BBF8 @ =gLinkPlayers
- adds r0, r4, r0
- ldrb r0, [r0, 0x18]
- movs r1, 0
- bl sub_8094978
- b _0800BC06
- .align 2, 0
-_0800BBF8: .4byte gLinkPlayers
-_0800BBFC:
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_8094978
-_0800BC06:
- cmp r10, r5
- bne _0800BC56
- ldr r0, _0800BC2C @ =gLinkPlayers
- adds r3, r4, r0
- ldrh r1, [r3, 0x18]
- lsls r1, 2
- ldr r2, _0800BC30 @ =gUnknown_03004330
- adds r1, r2
- ldr r2, _0800BC34 @ =sub_802BF74
- str r2, [r1]
- ldrh r1, [r3, 0x18]
- mov r12, r0
- cmp r1, 0x2
- bgt _0800BC38
- cmp r1, 0x1
- bge _0800BC4C
- cmp r1, 0
- beq _0800BC3C
- b _0800BD2C
- .align 2, 0
-_0800BC2C: .4byte gLinkPlayers
-_0800BC30: .4byte gUnknown_03004330
-_0800BC34: .4byte sub_802BF74
-_0800BC38:
- cmp r1, 0x3
- bne _0800BD2C
-_0800BC3C:
- mov r1, r12
- adds r0, r4, r1
- ldrh r1, [r0, 0x18]
- adds r1, r7
- mov r2, r8
- strb r2, [r1]
- ldrh r0, [r0, 0x18]
- b _0800BD12
-_0800BC4C:
- adds r1, r7
- movs r0, 0x2
- strb r0, [r1]
- ldrh r0, [r3, 0x18]
- b _0800BD24
-_0800BC56:
- ldr r2, _0800BC7C @ =gLinkPlayers
- adds r0, r4, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- mov r12, r2
- cmp r0, 0
- bne _0800BC80
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r12
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800BC92
- b _0800BCD8
- .align 2, 0
-_0800BC7C: .4byte gLinkPlayers
-_0800BC80:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r12
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800BCD8
-_0800BC92:
- mov r0, r12
- adds r2, r4, r0
- ldrh r0, [r2, 0x18]
- lsls r0, 2
- ldr r1, _0800BCB4 @ =gUnknown_03004330
- adds r0, r1
- ldr r1, _0800BCB8 @ =sub_811DA78
- str r1, [r0]
- ldrh r1, [r2, 0x18]
- cmp r1, 0x2
- bgt _0800BCBC
- cmp r1, 0x1
- bge _0800BCD0
- cmp r1, 0
- beq _0800BCC0
- b _0800BD2C
- .align 2, 0
-_0800BCB4: .4byte gUnknown_03004330
-_0800BCB8: .4byte sub_811DA78
-_0800BCBC:
- cmp r1, 0x3
- bne _0800BD2C
-_0800BCC0:
- mov r2, r12
- adds r0, r4, r2
- ldrh r1, [r0, 0x18]
- adds r1, r7
- mov r2, r8
- strb r2, [r1]
- ldrh r0, [r0, 0x18]
- b _0800BD12
-_0800BCD0:
- adds r1, r7
- movs r0, 0x2
- strb r0, [r1]
- b _0800BD22
-_0800BCD8:
- mov r0, r12
- adds r2, r4, r0
- ldrh r0, [r2, 0x18]
- lsls r0, 2
- ldr r1, _0800BCF8 @ =gUnknown_03004330
- adds r0, r1
- ldr r1, _0800BCFC @ =sub_8037510
- str r1, [r0]
- ldrh r0, [r2, 0x18]
- cmp r0, 0x2
- bgt _0800BD00
- cmp r0, 0x1
- bge _0800BD1C
- cmp r0, 0
- beq _0800BD04
- b _0800BD2C
- .align 2, 0
-_0800BCF8: .4byte gUnknown_03004330
-_0800BCFC: .4byte sub_8037510
-_0800BD00:
- cmp r0, 0x3
- bne _0800BD2C
-_0800BD04:
- mov r0, r12
- adds r2, r4, r0
- ldrh r0, [r2, 0x18]
- adds r0, r7
- movs r1, 0x1
- strb r1, [r0]
- ldrh r0, [r2, 0x18]
-_0800BD12:
- lsls r0, 1
- adds r0, r6
- mov r1, r8
- strh r1, [r0]
- b _0800BD2C
-_0800BD1C:
- adds r0, r7
- mov r1, r9
- strb r1, [r0]
-_0800BD22:
- ldrh r0, [r2, 0x18]
-_0800BD24:
- lsls r0, 1
- adds r0, r6
- mov r2, r9
- strh r2, [r0]
-_0800BD2C:
- adds r4, 0x1C
- movs r0, 0x1
- add r10, r0
- mov r1, r10
- cmp r1, 0x3
- bgt _0800BD3A
- b _0800BBBC
-_0800BD3A:
- ldr r1, _0800BD50 @ =gUnknown_02024A68
- movs r0, 0x4
-_0800BD3E:
- strb r0, [r1]
-_0800BD40:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BD50: .4byte gUnknown_02024A68
- thumb_func_end sub_800BA78
-
- thumb_func_start sub_800BD54
-sub_800BD54: @ 800BD54
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0800BD74 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800BD6C
- b _0800BE88
-_0800BD6C:
- movs r0, 0
- mov r8, r0
- b _0800BE7E
- .align 2, 0
-_0800BD74: .4byte gUnknown_020239F8
-_0800BD78:
- movs r5, 0
- movs r0, 0x1
- add r0, r8
- mov r10, r0
- ldr r0, _0800BDA4 @ =gUnknown_02024A72
- add r0, r8
- mov r9, r0
- mov r0, r8
- lsls r6, r0, 1
- movs r7, 0
-_0800BD8C:
- mov r0, r8
- cmp r0, 0x1
- bgt _0800BDF4
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0800BDAC
- ldr r0, _0800BDA8 @ =gPlayerParty
- b _0800BDAE
- .align 2, 0
-_0800BDA4: .4byte gUnknown_02024A72
-_0800BDA8: .4byte gPlayerParty
-_0800BDAC:
- ldr r0, _0800BDEC @ =gEnemyParty
-_0800BDAE:
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0800BE74
- ldr r0, _0800BDF0 @ =gUnknown_02024A6A
- adds r0, r6, r0
- strh r5, [r0]
- b _0800BE7C
- .align 2, 0
-_0800BDEC: .4byte gEnemyParty
-_0800BDF0: .4byte gUnknown_02024A6A
-_0800BDF4:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0800BE1C
- ldr r0, _0800BE18 @ =gPlayerParty
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0xB
- b _0800BE30
- .align 2, 0
-_0800BE18: .4byte gPlayerParty
-_0800BE1C:
- ldr r0, _0800BE6C @ =gEnemyParty
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0x41
-_0800BE30:
- bl GetMonData
- cmp r0, 0
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0800BE74
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0800BE74
- ldr r1, _0800BE70 @ =gUnknown_02024A6A
- mov r0, r8
- subs r0, 0x2
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r5
- beq _0800BE74
- adds r0, r6, r1
- strh r5, [r0]
- b _0800BE7C
- .align 2, 0
-_0800BE6C: .4byte gEnemyParty
-_0800BE70: .4byte gUnknown_02024A6A
-_0800BE74:
- adds r7, 0x64
- adds r5, 0x1
- cmp r5, 0x5
- ble _0800BD8C
-_0800BE7C:
- mov r8, r10
-_0800BE7E:
- ldr r0, _0800BE98 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r8, r0
- bge _0800BE88
- b _0800BD78
-_0800BE88:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BE98: .4byte gUnknown_02024A68
- thumb_func_end sub_800BD54
-
- thumb_func_start dp01_prepare_buffer
-dp01_prepare_buffer: @ 800BE9C
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r5, r3, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _0800BEC4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0800BEC8
- adds r0, r3, 0
- adds r1, r2, 0
- adds r2, r4, 0
- bl dp01_prepare_buffer_wireless_probably
- b _0800BF1A
- .align 2, 0
-_0800BEC4: .4byte gUnknown_020239F8
-_0800BEC8:
- cmp r5, 0
- beq _0800BED2
- cmp r5, 0x1
- beq _0800BEFC
- b _0800BF1A
-_0800BED2:
- movs r3, 0
- cmp r3, r2
- bge _0800BF1A
- ldr r6, _0800BEF4 @ =gUnknown_02023A60
- ldr r5, _0800BEF8 @ =gUnknown_02024A60
-_0800BEDC:
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3, r0
- adds r0, r6
- ldrb r1, [r4]
- strb r1, [r0]
- adds r4, 0x1
- adds r3, 0x1
- cmp r3, r2
- blt _0800BEDC
- b _0800BF1A
- .align 2, 0
-_0800BEF4: .4byte gUnknown_02023A60
-_0800BEF8: .4byte gUnknown_02024A60
-_0800BEFC:
- movs r3, 0
- cmp r3, r2
- bge _0800BF1A
- ldr r6, _0800BF20 @ =gUnknown_02024260
- ldr r5, _0800BF24 @ =gUnknown_02024A60
-_0800BF06:
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3, r0
- adds r0, r6
- ldrb r1, [r4]
- strb r1, [r0]
- adds r4, 0x1
- adds r3, 0x1
- cmp r3, r2
- blt _0800BF06
-_0800BF1A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BF20: .4byte gUnknown_02024260
-_0800BF24: .4byte gUnknown_02024A60
- thumb_func_end dp01_prepare_buffer
-
- thumb_func_start sub_800BF28
-sub_800BF28: @ 800BF28
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _0800BFD0 @ =sub_800C1A8
- movs r1, 0
- bl CreateTask
- ldr r2, _0800BFD4 @ =gUnknown_020238C4
- strb r0, [r2]
- ldr r5, _0800BFD8 @ =gTasks
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r6, 0
- movs r4, 0
- strh r4, [r0, 0x1E]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x22]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x24]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x26]
- ldr r0, _0800BFDC @ =sub_800C47C
- movs r1, 0
- bl CreateTask
- ldr r2, _0800BFE0 @ =gUnknown_020238C5
- strb r0, [r2]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x22]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x24]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x26]
- ldr r0, _0800BFE4 @ =gUnknown_020238C6
- strb r6, [r0]
- mov r0, sp
- strh r4, [r0]
- ldr r1, _0800BFE8 @ =0x02014000
- ldr r2, _0800BFEC @ =0x01001000
- bl CpuSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BFD0: .4byte sub_800C1A8
-_0800BFD4: .4byte gUnknown_020238C4
-_0800BFD8: .4byte gTasks
-_0800BFDC: .4byte sub_800C47C
-_0800BFE0: .4byte gUnknown_020238C5
-_0800BFE4: .4byte gUnknown_020238C6
-_0800BFE8: .4byte 0x02014000
-_0800BFEC: .4byte 0x01001000
- thumb_func_end sub_800BF28
-
- thumb_func_start dp01_prepare_buffer_wireless_probably
-dp01_prepare_buffer_wireless_probably: @ 800BFF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r2
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- movs r1, 0x3
- mov r0, r8
- bics r0, r1
- adds r0, 0x4
- mov r9, r0
- ldr r2, _0800C168 @ =gTasks
- ldr r3, _0800C16C @ =gUnknown_020238C4
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r4, r0, r2
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- add r0, r9
- adds r0, 0x9
- movs r1, 0x80
- lsls r1, 5
- adds r5, r2, 0
- cmp r0, r1
- ble _0800C042
- ldrh r0, [r4, 0x24]
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r2, [r0, 0x24]
-_0800C042:
- ldr r4, _0800C170 @ =0x02000000
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- movs r7, 0xA0
- lsls r7, 9
- adds r0, r7
- adds r0, r4
- strb r6, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- ldr r2, _0800C174 @ =0x00014001
- adds r0, r2
- adds r0, r4
- ldr r1, _0800C178 @ =gUnknown_02024A60
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r7, 0x24
- ldrsh r0, [r0, r7]
- ldr r1, _0800C17C @ =0x00014002
- adds r0, r1
- adds r0, r4
- ldr r1, _0800C180 @ =gUnknown_02024C07
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- ldr r7, _0800C184 @ =0x00014003
- adds r0, r7
- adds r0, r4
- ldr r1, _0800C188 @ =gUnknown_02024C08
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- ldr r2, _0800C18C @ =0x00014004
- adds r0, r2
- adds r0, r4
- mov r7, r9
- strb r7, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- ldr r7, _0800C190 @ =0x00014005
- adds r1, r7
- adds r1, r4
- movs r0, 0xFF
- lsls r0, 8
- mov r2, r9
- ands r0, r2
- asrs r0, 8
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r7, 0x24
- ldrsh r0, [r0, r7]
- ldr r1, _0800C194 @ =0x00014006
- adds r0, r1
- adds r0, r4
- ldr r1, _0800C198 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- ldr r7, _0800C19C @ =0x00014007
- adds r0, r7
- adds r0, r4
- ldr r1, _0800C1A0 @ =gUnknown_02024C0A
- ldrb r1, [r1]
- strb r1, [r0]
- movs r2, 0
- cmp r2, r8
- bge _0800C146
- mov r12, r4
- adds r6, r3, 0
- ldr r4, _0800C1A4 @ =0x00014008
-_0800C122:
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0800C168 @ =gTasks
- adds r0, r1
- movs r7, 0x24
- ldrsh r1, [r0, r7]
- adds r0, r2, r4
- adds r1, r0
- add r1, r12
- mov r7, r10
- adds r0, r7, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, r8
- blt _0800C122
-_0800C146:
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x24]
- add r0, r9
- adds r0, 0x8
- strh r0, [r1, 0x24]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C168: .4byte gTasks
-_0800C16C: .4byte gUnknown_020238C4
-_0800C170: .4byte 0x02000000
-_0800C174: .4byte 0x00014001
-_0800C178: .4byte gUnknown_02024A60
-_0800C17C: .4byte 0x00014002
-_0800C180: .4byte gUnknown_02024C07
-_0800C184: .4byte 0x00014003
-_0800C188: .4byte gUnknown_02024C08
-_0800C18C: .4byte 0x00014004
-_0800C190: .4byte 0x00014005
-_0800C194: .4byte 0x00014006
-_0800C198: .4byte gUnknown_02024C0C
-_0800C19C: .4byte 0x00014007
-_0800C1A0: .4byte gUnknown_02024C0A
-_0800C1A4: .4byte 0x00014008
- thumb_func_end dp01_prepare_buffer_wireless_probably
-
- thumb_func_start sub_800C1A8
-sub_800C1A8: @ 800C1A8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0800C1D0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x1E
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0x5
- bls _0800C1C4
- b _0800C354
-_0800C1C4:
- lsls r0, 2
- ldr r1, _0800C1D4 @ =_0800C1D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800C1D0: .4byte gTasks
-_0800C1D4: .4byte _0800C1D8
- .align 2, 0
-_0800C1D8:
- .4byte _0800C1F0
- .4byte _0800C204
- .4byte _0800C220
- .4byte _0800C25C
- .4byte _0800C2E6
- .4byte _0800C338
-_0800C1F0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- movs r1, 0x64
- strh r1, [r0, 0x1C]
- ldrh r1, [r0, 0x1E]
- adds r1, 0x1
- strh r1, [r0, 0x1E]
- b _0800C354
-_0800C204:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r7
- ldrh r0, [r1, 0x1C]
- subs r0, 0x1
- strh r0, [r1, 0x1C]
- lsls r0, 16
- cmp r0, 0
- beq _0800C21A
- b _0800C354
-_0800C21A:
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- b _0800C352
-_0800C220:
- bl GetLinkPlayerCount_2
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- beq _0800C248
- bl sub_8007F4C
- ldr r0, _0800C244 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- b _0800C352
- .align 2, 0
-_0800C244: .4byte gTasks
-_0800C248:
- ldr r0, _0800C258 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- b _0800C352
- .align 2, 0
-_0800C258: .4byte gTasks
-_0800C25C:
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r2, r0, r7
- movs r5, 0x26
- ldrsh r3, [r2, r5]
- movs r0, 0x24
- ldrsh r6, [r2, r0]
- mov r12, r6
- cmp r3, r12
- beq _0800C354
- ldrh r0, [r2, 0x22]
- movs r6, 0x22
- ldrsh r5, [r2, r6]
- cmp r5, 0
- bne _0800C2E0
- cmp r3, r12
- ble _0800C28C
- movs r6, 0x20
- ldrsh r0, [r2, r6]
- cmp r3, r0
- bne _0800C28C
- strh r5, [r2, 0x20]
- strh r5, [r2, 0x26]
-_0800C28C:
- ldr r5, _0800C2D4 @ =0x02000000
- adds r4, r1, r4
- lsls r4, 3
- adds r4, r7
- movs r0, 0x26
- ldrsh r2, [r4, r0]
- ldr r1, _0800C2D8 @ =0x00014004
- adds r0, r2, r1
- adds r0, r5
- ldrb r1, [r0]
- ldr r6, _0800C2DC @ =0x00014005
- adds r2, r6
- adds r2, r5
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- adds r1, 0x8
- lsls r1, 16
- lsrs r6, r1, 16
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- movs r2, 0xA0
- lsls r2, 9
- adds r5, r2
- adds r1, r5
- adds r2, r6, 0
- bl SendBlock
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- b _0800C354
- .align 2, 0
-_0800C2D4: .4byte 0x02000000
-_0800C2D8: .4byte 0x00014004
-_0800C2DC: .4byte 0x00014005
-_0800C2E0:
- subs r0, 0x1
- strh r0, [r2, 0x22]
- b _0800C354
-_0800C2E6:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0800C354
- ldr r2, _0800C328 @ =0x02000000
- ldr r0, _0800C32C @ =gTasks
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r0
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- ldr r5, _0800C330 @ =0x00014004
- adds r0, r1, r5
- adds r0, r2
- ldrb r0, [r0]
- ldr r6, _0800C334 @ =0x00014005
- adds r1, r6
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- movs r2, 0x1
- strh r2, [r3, 0x22]
- orrs r0, r1
- ldrh r1, [r3, 0x26]
- adds r0, r1
- adds r0, 0x8
- strh r0, [r3, 0x26]
- movs r0, 0x3
- strh r0, [r3, 0x1E]
- b _0800C354
- .align 2, 0
-_0800C328: .4byte 0x02000000
-_0800C32C: .4byte gTasks
-_0800C330: .4byte 0x00014004
-_0800C334: .4byte 0x00014005
-_0800C338:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r7
- ldrh r0, [r1, 0x22]
- subs r0, 0x1
- strh r0, [r1, 0x22]
- lsls r0, 16
- cmp r0, 0
- bne _0800C354
- movs r0, 0x1
- strh r0, [r1, 0x22]
- movs r0, 0x3
-_0800C352:
- strh r0, [r1, 0x1E]
-_0800C354:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_800C1A8
-
- thumb_func_start sub_800C35C
-sub_800C35C: @ 800C35C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0800C38C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _0800C458
- ldr r0, _0800C390 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0800C458
- ldr r0, _0800C394 @ =gLinkPlayers
- ldr r1, [r0, 0x14]
- ldr r0, _0800C398 @ =0x00002211
- cmp r1, r0
- bne _0800C458
- movs r4, 0
- ldr r0, _0800C39C @ =gBlockRecvBuffer
- mov r10, r0
- b _0800C44C
- .align 2, 0
-_0800C38C: .4byte gReceivedRemoteLinkPlayers
-_0800C390: .4byte gUnknown_020239F8
-_0800C394: .4byte gLinkPlayers
-_0800C398: .4byte 0x00002211
-_0800C39C: .4byte gBlockRecvBuffer
-_0800C3A0:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800C468 @ =gBitTable
- lsls r1, r4, 2
- adds r1, r2
- ldr r1, [r1]
- ands r0, r1
- adds r1, r4, 0x1
- mov r9, r1
- cmp r0, 0
- beq _0800C446
- adds r0, r4, 0
- bl ResetBlockReceivedFlag
- lsls r0, r4, 8
- mov r2, r10
- adds r3, r0, r2
- ldr r1, _0800C46C @ =gBlockRecvBuffer + 0x4
- adds r0, r1
- ldrh r6, [r0]
- ldr r7, _0800C470 @ =gTasks
- ldr r2, _0800C474 @ =gUnknown_020238C5
- mov r12, r2
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, r0, r7
- movs r0, 0x24
- ldrsh r1, [r2, r0]
- adds r0, r6, 0
- adds r0, 0x9
- adds r1, r0
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- ble _0800C402
- ldrh r0, [r2, 0x24]
- strh r0, [r2, 0x20]
- mov r2, r12
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0
- strh r1, [r0, 0x24]
-_0800C402:
- mov r2, r12
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- ldr r0, _0800C478 @ =0x02015000
- adds r5, r1, r0
- adds r4, r3, 0
- movs r2, 0
- adds r3, r6, 0
- adds r3, 0x8
- mov r8, r7
- mov r7, r12
- cmp r2, r3
- bge _0800C434
-_0800C426:
- adds r0, r5, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r3
- blt _0800C426
-_0800C434:
- ldrb r0, [r7]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- add r1, r8
- ldrh r0, [r1, 0x24]
- adds r0, r6, r0
- adds r0, 0x8
- strh r0, [r1, 0x24]
-_0800C446:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r4, r0, 24
-_0800C44C:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _0800C3A0
-_0800C458:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C468: .4byte gBitTable
-_0800C46C: .4byte gBlockRecvBuffer + 0x4
-_0800C470: .4byte gTasks
-_0800C474: .4byte gUnknown_020238C5
-_0800C478: .4byte 0x02015000
- thumb_func_end sub_800C35C
-
- thumb_func_start sub_800C47C
-sub_800C47C: @ 800C47C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0800C4FC @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r3, r0, r1
- movs r0, 0x26
- ldrsh r2, [r3, r0]
- movs r4, 0x24
- ldrsh r0, [r3, r4]
- adds r4, r1, 0
- cmp r2, r0
- bne _0800C4A4
- b _0800C5FA
-_0800C4A4:
- cmp r2, r0
- ble _0800C4B6
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- cmp r2, r0
- bne _0800C4B6
- movs r0, 0
- strh r0, [r3, 0x20]
- strh r0, [r3, 0x26]
-_0800C4B6:
- ldr r5, _0800C500 @ =0x02000000
- mov r2, r8
- lsls r1, r2, 2
- adds r0, r1, r2
- lsls r0, 3
- adds r6, r0, r4
- movs r4, 0x26
- ldrsh r3, [r6, r4]
- ldr r2, _0800C504 @ =0x00015001
- adds r0, r3, r2
- adds r0, r5
- ldrb r4, [r0]
- adds r2, 0x3
- adds r0, r3, r2
- adds r0, r5
- ldrb r7, [r0]
- adds r2, 0x1
- adds r0, r3, r2
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 8
- orrs r7, r0
- subs r2, 0x5
- adds r0, r3, r2
- adds r0, r5
- ldrb r0, [r0]
- mov r9, r1
- cmp r0, 0x1
- beq _0800C5B0
- cmp r0, 0x1
- bgt _0800C508
- cmp r0, 0
- beq _0800C50E
- b _0800C5E8
- .align 2, 0
-_0800C4FC: .4byte gTasks
-_0800C500: .4byte 0x02000000
-_0800C504: .4byte 0x00015001
-_0800C508:
- cmp r0, 0x2
- beq _0800C5CC
- b _0800C5E8
-_0800C50E:
- ldr r2, _0800C588 @ =gUnknown_02024A64
- ldr r1, _0800C58C @ =gBitTable
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0800C5FA
- lsls r0, r4, 9
- ldr r1, _0800C590 @ =gUnknown_02023A60
- adds r0, r1
- ldr r2, _0800C594 @ =0x00015008
- adds r1, r5, r2
- adds r1, r3, r1
- adds r2, r7, 0
- bl memcpy
- adds r0, r4, 0
- bl sub_80155A4
- ldr r0, _0800C598 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0800C5E8
- ldr r1, _0800C59C @ =gUnknown_02024C07
- movs r4, 0x26
- ldrsh r0, [r6, r4]
- ldr r2, _0800C5A0 @ =0x00015002
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0800C5A4 @ =gUnknown_02024C08
- movs r4, 0x26
- ldrsh r0, [r6, r4]
- adds r2, 0x1
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0800C5A8 @ =gUnknown_02024C0C
- movs r4, 0x26
- ldrsh r0, [r6, r4]
- adds r2, 0x3
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0800C5AC @ =gUnknown_02024C0A
- movs r4, 0x26
- ldrsh r0, [r6, r4]
- adds r2, 0x1
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- b _0800C5E8
- .align 2, 0
-_0800C588: .4byte gUnknown_02024A64
-_0800C58C: .4byte gBitTable
-_0800C590: .4byte gUnknown_02023A60
-_0800C594: .4byte 0x00015008
-_0800C598: .4byte gUnknown_020239F8
-_0800C59C: .4byte gUnknown_02024C07
-_0800C5A0: .4byte 0x00015002
-_0800C5A4: .4byte gUnknown_02024C08
-_0800C5A8: .4byte gUnknown_02024C0C
-_0800C5AC: .4byte gUnknown_02024C0A
-_0800C5B0:
- lsls r0, r4, 9
- ldr r1, _0800C5C4 @ =gUnknown_02024260
- adds r0, r1
- ldr r4, _0800C5C8 @ =0x00015008
- adds r1, r5, r4
- adds r1, r3, r1
- adds r2, r7, 0
- bl memcpy
- b _0800C5E8
- .align 2, 0
-_0800C5C4: .4byte gUnknown_02024260
-_0800C5C8: .4byte 0x00015008
-_0800C5CC:
- ldr r1, _0800C608 @ =0x00015008
- adds r0, r3, r1
- adds r0, r5
- ldrb r2, [r0]
- ldr r3, _0800C60C @ =gUnknown_02024A64
- ldr r1, _0800C610 @ =gBitTable
- lsls r0, r4, 2
- adds r0, r1
- lsls r2, 2
- ldr r1, [r0]
- lsls r1, r2
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
-_0800C5E8:
- ldr r0, _0800C614 @ =gTasks
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, r7, r0
- adds r0, 0x8
- strh r0, [r1, 0x26]
-_0800C5FA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C608: .4byte 0x00015008
-_0800C60C: .4byte gUnknown_02024A64
-_0800C610: .4byte gBitTable
-_0800C614: .4byte gTasks
- thumb_func_end sub_800C47C
-
- thumb_func_start dp01_build_cmdbuf_x00_a_b_0
-dp01_build_cmdbuf_x00_a_b_0: @ 800C618
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800C638 @ =gUnknown_03004040
- movs r3, 0
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r3, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C638: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x00_a_b_0
-
- thumb_func_start dp01_build_cmdbuf_x01_a_b_0
-dp01_build_cmdbuf_x01_a_b_0: @ 800C63C
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800C660 @ =gUnknown_03004040
- movs r4, 0
- movs r3, 0x1
- strb r3, [r1]
- strb r5, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r4, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C660: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x01_a_b_0
-
- thumb_func_start dp01_build_cmdbuf_x02_a_b_varargs
-dp01_build_cmdbuf_x02_a_b_varargs: @ 800C664
- push {r4-r6,lr}
- ldr r4, [sp, 0x10]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, _0800C6A0 @ =gUnknown_03004040
- movs r3, 0x2
- strb r3, [r0]
- strb r1, [r0, 0x1]
- strb r2, [r0, 0x2]
- adds r1, r0, 0
- cmp r5, 0
- beq _0800C692
- adds r3, r1, 0x3
- adds r2, r5, 0
-_0800C684:
- ldrb r0, [r4]
- strb r0, [r3]
- adds r4, 0x1
- adds r3, 0x1
- subs r2, 0x1
- cmp r2, 0
- bne _0800C684
-_0800C692:
- adds r2, r5, 0x3
- adds r0, r6, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C6A0: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x02_a_b_varargs
-
- thumb_func_start unref_sub_800C6A4
-unref_sub_800C6A4: @ 800C6A4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 24
- lsrs r4, r2, 24
- ldr r0, _0800C6E0 @ =gUnknown_03004040
- movs r2, 0x3
- strb r2, [r0]
- strb r1, [r0, 0x1]
- strb r4, [r0, 0x2]
- adds r5, r0, 0
- cmp r4, 0
- beq _0800C6D0
- adds r1, r5, 0x3
- adds r2, r4, 0
-_0800C6C2:
- ldrb r0, [r3]
- strb r0, [r1]
- adds r3, 0x1
- adds r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bne _0800C6C2
-_0800C6D0:
- adds r2, r4, 0x3
- adds r0, r6, 0
- adds r1, r5, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C6E0: .4byte gUnknown_03004040
- thumb_func_end unref_sub_800C6A4
-
- thumb_func_start dp01_build_cmdbuf_x04_4_4_4
-dp01_build_cmdbuf_x04_4_4_4: @ 800C6E4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800C700 @ =gUnknown_03004040
- movs r2, 0x4
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800C700: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x04_4_4_4
-
- thumb_func_start sub_800C704
-sub_800C704: @ 800C704
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800C724 @ =gUnknown_03004040
- movs r3, 0x5
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r3, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C724: .4byte gUnknown_03004040
- thumb_func_end sub_800C704
-
- thumb_func_start dp01_build_cmdbuf_x06_a
-dp01_build_cmdbuf_x06_a: @ 800C728
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800C744 @ =gUnknown_03004040
- movs r2, 0x6
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800C744: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x06_a
-
- thumb_func_start dp01_build_cmdbuf_x07_7_7_7
-dp01_build_cmdbuf_x07_7_7_7: @ 800C748
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800C764 @ =gUnknown_03004040
- movs r2, 0x7
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800C764: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x07_7_7_7
-
- thumb_func_start dp01_build_cmdbuf_x08_8_8_8
-dp01_build_cmdbuf_x08_8_8_8: @ 800C768
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800C784 @ =gUnknown_03004040
- movs r2, 0x8
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800C784: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x08_8_8_8
-
- thumb_func_start dp01_build_cmdbuf_x09_9_9_9
-dp01_build_cmdbuf_x09_9_9_9: @ 800C788
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800C7A4 @ =gUnknown_03004040
- movs r2, 0x9
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800C7A4: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x09_9_9_9
-
- thumb_func_start dp01_build_cmdbuf_x0A_A_A_A
-dp01_build_cmdbuf_x0A_A_A_A: @ 800C7A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800C7C4 @ =gUnknown_03004040
- movs r2, 0xA
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800C7C4: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x0A_A_A_A
-
- thumb_func_start dp01_build_cmdbuf_x0B_B_B_B
-dp01_build_cmdbuf_x0B_B_B_B: @ 800C7C8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800C7E4 @ =gUnknown_03004040
- movs r2, 0xB
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800C7E4: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x0B_B_B_B
-
- thumb_func_start dp01_build_cmdbuf_x0C_C_C_C
-dp01_build_cmdbuf_x0C_C_C_C: @ 800C7E8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800C804 @ =gUnknown_03004040
- movs r2, 0xC
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800C804: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x0C_C_C_C
-
- thumb_func_start dp01_build_cmdbuf_x0D_a
-dp01_build_cmdbuf_x0D_a: @ 800C808
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800C824 @ =gUnknown_03004040
- movs r2, 0xD
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800C824: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x0D_a
-
- thumb_func_start unref_sub_800C828
-unref_sub_800C828: @ 800C828
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r1, _0800C86C @ =gUnknown_03004040
- movs r0, 0xE
- strb r0, [r1]
- strb r4, [r1, 0x1]
- lsls r0, r4, 1
- adds r0, r4
- adds r5, r1, 0
- cmp r0, 0
- beq _0800C856
- adds r1, r5, 0x2
- adds r3, r0, 0
-_0800C848:
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _0800C848
-_0800C856:
- lsls r2, r4, 1
- adds r2, r4
- adds r2, 0x2
- adds r0, r6, 0
- adds r1, r5, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C86C: .4byte gUnknown_03004040
- thumb_func_end unref_sub_800C828
-
- thumb_func_start dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes
-dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes: @ 800C870
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, [sp, 0x1C]
- ldr r5, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r7, _0800C904 @ =gUnknown_03004040
- movs r0, 0
- mov r12, r0
- movs r0, 0xF
- strb r0, [r7]
- strb r1, [r7, 0x1]
- lsrs r1, 8
- strb r1, [r7, 0x2]
- strb r2, [r7, 0x3]
- strb r3, [r7, 0x4]
- movs r6, 0xFF
- lsls r6, 8
- lsrs r3, 8
- strb r3, [r7, 0x5]
- strb r4, [r7, 0x6]
- adds r0, r4, 0
- ands r0, r6
- asrs r0, 8
- strb r0, [r7, 0x7]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r4
- asrs r0, 16
- strb r0, [r7, 0x8]
- lsrs r4, 24
- strb r4, [r7, 0x9]
- strb r5, [r7, 0xA]
- ldr r0, _0800C908 @ =gUnknown_02024C0E
- ldrb r0, [r0]
- strb r0, [r7, 0xB]
- mov r0, r12
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0800C910
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0800C910
- ldr r0, _0800C90C @ =word_2024DB8
- ldrh r0, [r0]
- strb r0, [r7, 0xC]
- ands r6, r0
- lsrs r0, r6, 8
- strb r0, [r7, 0xD]
- adds r4, r7, 0
- b _0800C91A
- .align 2, 0
-_0800C904: .4byte gUnknown_03004040
-_0800C908: .4byte gUnknown_02024C0E
-_0800C90C: .4byte word_2024DB8
-_0800C910:
- ldr r0, _0800C944 @ =gUnknown_03004040
- movs r1, 0
- strb r1, [r0, 0xC]
- strb r1, [r0, 0xD]
- adds r4, r0, 0
-_0800C91A:
- movs r0, 0
- strb r0, [r4, 0xE]
- strb r0, [r4, 0xF]
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, [sp, 0x24]
- movs r2, 0x1C
- bl memcpy
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0x2C
- bl dp01_prepare_buffer
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800C944: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes
-
- thumb_func_start dp01_build_cmdbuf_x10_TODO
-dp01_build_cmdbuf_x10_TODO: @ 800C948
- 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
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _0800CA2C @ =gUnknown_03004040
- movs r0, 0x10
- strb r0, [r2]
- ldr r0, _0800CA30 @ =gUnknown_02024D26
- ldrb r0, [r0]
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- lsrs r1, 8
- strb r1, [r2, 0x3]
- adds r0, r2, 0x4
- mov r12, r0
- ldr r4, _0800CA34 @ =gUnknown_02024BE6
- ldrh r0, [r4]
- strh r0, [r2, 0x4]
- ldr r0, _0800CA38 @ =gUnknown_02024BE8
- ldrh r0, [r0]
- mov r1, r12
- strh r0, [r1, 0x2]
- ldr r0, _0800CA3C @ =gUnknown_02024C04
- ldrh r0, [r0]
- strh r0, [r1, 0x4]
- ldr r0, _0800CA40 @ =byte_2024C06
- ldrb r0, [r0]
- strb r0, [r1, 0x6]
- ldr r1, _0800CA44 @ =0x02000000
- ldr r3, _0800CA48 @ =0x00016003
- adds r0, r1, r3
- ldrb r0, [r0]
- mov r7, r12
- strb r0, [r7, 0x7]
- adds r3, 0x5B
- adds r0, r1, r3
- ldrb r0, [r0]
- strb r0, [r7, 0x8]
- ldr r7, _0800CA4C @ =0x000160c1
- adds r1, r7
- ldrb r0, [r1]
- mov r1, r12
- strb r0, [r1, 0x9]
- ldr r0, _0800CA50 @ =gUnknown_02024C0B
- ldrb r0, [r0]
- strb r0, [r1, 0xA]
- ldr r3, _0800CA54 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x2]
- mov r3, r12
- strb r0, [r3, 0xB]
- movs r3, 0
- mov r9, r2
- ldr r7, _0800CA58 @ =gUnknown_030042B0
- mov r8, r7
- adds r2, 0x10
- ldr r0, _0800CA5C @ =gBattleMons
- adds r4, r0, 0
- adds r4, 0x20
-_0800C9D2:
- adds r1, r2, r3
- ldrb r0, [r4]
- strb r0, [r1]
- adds r4, 0x58
- adds r3, 0x1
- cmp r3, 0x3
- ble _0800C9D2
- movs r3, 0
- mov r5, r12
- adds r5, 0x10
- mov r4, r12
- adds r4, 0x20
- ldr r6, _0800CA60 @ =gUnknown_03004290
- mov r2, r12
- adds r2, 0x30
-_0800C9F0:
- adds r1, r5, r3
- ldr r7, _0800CA64 @ =gUnknown_030041C0
- adds r0, r3, r7
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r4, r3
- adds r0, r3, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r2, r3
- mov r7, r8
- adds r0, r3, r7
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0xF
- ble _0800C9F0
- mov r0, r10
- mov r1, r9
- movs r2, 0x44
- bl dp01_prepare_buffer
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CA2C: .4byte gUnknown_03004040
-_0800CA30: .4byte gUnknown_02024D26
-_0800CA34: .4byte gUnknown_02024BE6
-_0800CA38: .4byte gUnknown_02024BE8
-_0800CA3C: .4byte gUnknown_02024C04
-_0800CA40: .4byte byte_2024C06
-_0800CA44: .4byte 0x02000000
-_0800CA48: .4byte 0x00016003
-_0800CA4C: .4byte 0x000160c1
-_0800CA50: .4byte gUnknown_02024C0B
-_0800CA54: .4byte gBattleMoves
-_0800CA58: .4byte gUnknown_030042B0
-_0800CA5C: .4byte gBattleMons
-_0800CA60: .4byte gUnknown_03004290
-_0800CA64: .4byte gUnknown_030041C0
- thumb_func_end dp01_build_cmdbuf_x10_TODO
-
- thumb_func_start dp01_build_cmdbuf_x11_TODO
-dp01_build_cmdbuf_x11_TODO: @ 800CA68
- 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
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _0800CB28 @ =gUnknown_03004040
- movs r0, 0x11
- strb r0, [r2]
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- lsrs r1, 8
- strb r1, [r2, 0x3]
- adds r0, r2, 0x4
- mov r12, r0
- ldr r0, _0800CB2C @ =gUnknown_02024BE6
- ldrh r0, [r0]
- strh r0, [r2, 0x4]
- ldr r0, _0800CB30 @ =gUnknown_02024BE8
- ldrh r0, [r0]
- mov r1, r12
- strh r0, [r1, 0x2]
- ldr r0, _0800CB34 @ =gUnknown_02024C04
- ldrh r0, [r0]
- strh r0, [r1, 0x4]
- ldr r0, _0800CB38 @ =byte_2024C06
- ldrb r0, [r0]
- strb r0, [r1, 0x6]
- ldr r0, _0800CB3C @ =0x02000000
- ldr r3, _0800CB40 @ =0x00016003
- adds r1, r0, r3
- ldrb r1, [r1]
- mov r7, r12
- strb r1, [r7, 0x7]
- ldr r1, _0800CB44 @ =0x0001605e
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r7, 0x8]
- movs r3, 0
- mov r9, r2
- ldr r7, _0800CB48 @ =gUnknown_030042B0
- mov r8, r7
- mov r4, r9
- adds r4, 0x10
- ldr r0, _0800CB4C @ =gBattleMons
- adds r2, r0, 0
- adds r2, 0x20
-_0800CACE:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x58
- adds r3, 0x1
- cmp r3, 0x3
- ble _0800CACE
- movs r3, 0
- mov r5, r12
- adds r5, 0x10
- mov r4, r12
- adds r4, 0x20
- ldr r6, _0800CB50 @ =gUnknown_03004290
- mov r2, r12
- adds r2, 0x30
-_0800CAEC:
- adds r1, r5, r3
- ldr r7, _0800CB54 @ =gUnknown_030041C0
- adds r0, r3, r7
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r4, r3
- adds r0, r3, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r2, r3
- mov r7, r8
- adds r0, r3, r7
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0xF
- ble _0800CAEC
- mov r0, r10
- mov r1, r9
- movs r2, 0x44
- bl dp01_prepare_buffer
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CB28: .4byte gUnknown_03004040
-_0800CB2C: .4byte gUnknown_02024BE6
-_0800CB30: .4byte gUnknown_02024BE8
-_0800CB34: .4byte gUnknown_02024C04
-_0800CB38: .4byte byte_2024C06
-_0800CB3C: .4byte 0x02000000
-_0800CB40: .4byte 0x00016003
-_0800CB44: .4byte 0x0001605e
-_0800CB48: .4byte gUnknown_030042B0
-_0800CB4C: .4byte gBattleMons
-_0800CB50: .4byte gUnknown_03004290
-_0800CB54: .4byte gUnknown_030041C0
- thumb_func_end dp01_build_cmdbuf_x11_TODO
-
- thumb_func_start dp01_build_cmdbuf_x12_a_bb
-dp01_build_cmdbuf_x12_a_bb: @ 800CB58
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _0800CB80 @ =gUnknown_03004040
- movs r3, 0x12
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- lsrs r2, 8
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CB80: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x12_a_bb
-
- thumb_func_start unref_sub_800CB84
-unref_sub_800CB84: @ 800CB84
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800CBA0 @ =gUnknown_03004040
- movs r2, 0x13
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800CBA0: .4byte gUnknown_03004040
- thumb_func_end unref_sub_800CB84
-
- thumb_func_start sub_800CBA4
-sub_800CBA4: @ 800CBA4
- push {r4-r6,lr}
- adds r5, r3, 0
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, _0800CBDC @ =gUnknown_03004040
- movs r4, 0
- movs r0, 0x14
- strb r0, [r3]
- strb r1, [r3, 0x1]
- strb r2, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0
- adds r1, r3, 0
- adds r4, r1, 0x4
-_0800CBC0:
- adds r0, r5, r2
- ldrb r0, [r0]
- strb r0, [r4]
- adds r4, 0x1
- adds r2, 0x1
- cmp r2, 0x13
- bls _0800CBC0
- adds r0, r6, 0
- movs r2, 0x18
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CBDC: .4byte gUnknown_03004040
- thumb_func_end sub_800CBA4
-
- thumb_func_start sub_800CBE0
-sub_800CBE0: @ 800CBE0
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0800CC10 @ =gUnknown_03004040
- movs r0, 0x15
- strb r0, [r1]
- movs r2, 0
- adds r3, r1, 0x1
-_0800CBF2:
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2
- ble _0800CBF2
- adds r0, r5, 0
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CC10: .4byte gUnknown_03004040
- thumb_func_end sub_800CBE0
-
- thumb_func_start dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
-dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f: @ 800CC14
- push {r4-r6,lr}
- ldr r6, [sp, 0x10]
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0800CC4C @ =gUnknown_03004040
- movs r0, 0x16
- strb r0, [r4]
- strb r1, [r4, 0x1]
- strb r2, [r4, 0x2]
- strb r3, [r4, 0x3]
- movs r2, 0
- adds r1, r4, 0
- adds r3, r1, 0x4
-_0800CC2E:
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2
- ble _0800CC2E
- adds r0, r5, 0
- movs r2, 0x8
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CC4C: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
-
- thumb_func_start dp01_build_cmdbuf_x17_17_17_17
-dp01_build_cmdbuf_x17_17_17_17: @ 800CC50
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800CC6C @ =gUnknown_03004040
- movs r2, 0x17
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800CC6C: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x17_17_17_17
-
- thumb_func_start dp01_build_cmdbuf_x18_0_aa_health_bar_update
-dp01_build_cmdbuf_x18_0_aa_health_bar_update: @ 800CC70
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _0800CCA4 @ =gUnknown_03004040
- movs r4, 0
- movs r2, 0x18
- strb r2, [r3]
- strb r4, [r3, 0x1]
- strb r1, [r3, 0x2]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0xFF
- lsls r2, 8
- ands r1, r2
- asrs r1, 8
- strb r1, [r3, 0x3]
- adds r1, r3, 0
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CCA4: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x18_0_aa_health_bar_update
-
- thumb_func_start dp01_build_cmdbuf_x19_a_bb
-dp01_build_cmdbuf_x19_a_bb: @ 800CCA8
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _0800CCD8 @ =gUnknown_03004040
- movs r3, 0x19
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- lsls r2, 16
- asrs r2, 16
- movs r3, 0xFF
- lsls r3, 8
- ands r2, r3
- asrs r2, 8
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CCD8: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x19_a_bb
-
- thumb_func_start dp01_build_cmdbuf_x1A_aaaa_bbbb
-dp01_build_cmdbuf_x1A_aaaa_bbbb: @ 800CCDC
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800CD2C @ =gUnknown_03004040
- movs r3, 0x1A
- strb r3, [r1]
- strb r4, [r1, 0x1]
- movs r6, 0xFF
- lsls r6, 8
- adds r3, r4, 0
- ands r3, r6
- lsrs r3, 8
- strb r3, [r1, 0x2]
- movs r5, 0xFF
- lsls r5, 16
- adds r3, r4, 0
- ands r3, r5
- lsrs r3, 16
- strb r3, [r1, 0x3]
- lsrs r4, 24
- strb r4, [r1, 0x4]
- strb r2, [r1, 0x5]
- adds r3, r2, 0
- ands r3, r6
- lsrs r3, 8
- strb r3, [r1, 0x6]
- adds r3, r2, 0
- ands r3, r5
- lsrs r3, 16
- strb r3, [r1, 0x7]
- lsrs r2, 24
- strb r2, [r1, 0x8]
- movs r2, 0x9
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CD2C: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x1A_aaaa_bbbb
-
- thumb_func_start dp01_build_cmdbuf_x1B_aaaa_b
-dp01_build_cmdbuf_x1B_aaaa_b: @ 800CD30
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800CD68 @ =gUnknown_03004040
- movs r3, 0x1B
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r3, 0xFF
- lsls r3, 8
- ands r3, r2
- lsrs r3, 8
- strb r3, [r1, 0x3]
- movs r3, 0xFF
- lsls r3, 16
- ands r3, r2
- lsrs r3, 16
- strb r3, [r1, 0x4]
- lsrs r2, 24
- strb r2, [r1, 0x5]
- movs r2, 0x6
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CD68: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x1B_aaaa_b
-
- thumb_func_start dp01_build_cmdbuf_x1C_a
-dp01_build_cmdbuf_x1C_a: @ 800CD6C
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800CD88 @ =gUnknown_03004040
- movs r2, 0x1C
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800CD88: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x1C_a
-
- thumb_func_start dp01_build_cmdbuf_x1D_1D_numargs_varargs
-dp01_build_cmdbuf_x1D_1D_numargs_varargs: @ 800CD8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r1, _0800CDD0 @ =gUnknown_03004040
- movs r0, 0x1D
- strb r0, [r1]
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- adds r5, r1, 0
- cmp r4, 0
- beq _0800CDBC
- adds r1, r5, 0x4
- adds r3, r4, 0
-_0800CDAE:
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _0800CDAE
-_0800CDBC:
- adds r2, r4, 0x4
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CDD0: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x1D_1D_numargs_varargs
-
- thumb_func_start unref_sub_800CDD4
-unref_sub_800CDD4: @ 800CDD4
- push {r4-r6,lr}
- adds r4, r3, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 16
- lsrs r5, r2, 16
- ldr r2, _0800CE38 @ =gUnknown_03004040
- movs r0, 0x1E
- strb r0, [r2]
- strb r1, [r2, 0x1]
- movs r3, 0xFF
- lsls r3, 8
- adds r0, r1, 0
- ands r0, r3
- lsrs r0, 8
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r2, 0x3]
- lsrs r1, 24
- strb r1, [r2, 0x4]
- strb r5, [r2, 0x5]
- adds r0, r5, 0
- ands r0, r3
- lsrs r0, 8
- strb r0, [r2, 0x6]
- adds r1, r2, 0
- cmp r5, 0
- beq _0800CE24
- adds r3, r1, 0x7
- adds r2, r5, 0
-_0800CE16:
- ldrb r0, [r4]
- strb r0, [r3]
- adds r4, 0x1
- adds r3, 0x1
- subs r2, 0x1
- cmp r2, 0
- bne _0800CE16
-_0800CE24:
- adds r2, r5, 0x7
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CE38: .4byte gUnknown_03004040
- thumb_func_end unref_sub_800CDD4
-
- thumb_func_start unref_sub_800CE3C
-unref_sub_800CE3C: @ 800CE3C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r1, _0800CE80 @ =gUnknown_03004040
- movs r0, 0x1F
- strb r0, [r1]
- strb r4, [r1, 0x1]
- lsrs r0, r4, 8
- strb r0, [r1, 0x2]
- adds r5, r1, 0
- cmp r4, 0
- beq _0800CE6A
- adds r1, r5, 0x3
- adds r3, r4, 0
-_0800CE5C:
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _0800CE5C
-_0800CE6A:
- adds r2, r4, 0x3
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CE80: .4byte gUnknown_03004040
- thumb_func_end unref_sub_800CE3C
-
- thumb_func_start unref_sub_800CE84
-unref_sub_800CE84: @ 800CE84
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r1, _0800CEC8 @ =gUnknown_03004040
- movs r0, 0x20
- strb r0, [r1]
- strb r4, [r1, 0x1]
- lsrs r0, r4, 8
- strb r0, [r1, 0x2]
- adds r5, r1, 0
- cmp r4, 0
- beq _0800CEB2
- adds r1, r5, 0x3
- adds r3, r4, 0
-_0800CEA4:
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _0800CEA4
-_0800CEB2:
- adds r2, r4, 0x3
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CEC8: .4byte gUnknown_03004040
- thumb_func_end unref_sub_800CE84
-
- thumb_func_start dp01_build_cmdbuf_x21_a_bb
-dp01_build_cmdbuf_x21_a_bb: @ 800CECC
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _0800CEF4 @ =gUnknown_03004040
- movs r3, 0x21
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- lsrs r2, 8
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CEF4: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x21_a_bb
-
- thumb_func_start dp01_build_cmdbuf_x22_a_three_bytes
-dp01_build_cmdbuf_x22_a_three_bytes: @ 800CEF8
- push {r4,r5,lr}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0800CF2C @ =gUnknown_03004040
- movs r0, 0x22
- strb r0, [r2]
- strb r1, [r2, 0x1]
- movs r3, 0
- adds r1, r2, 0x2
-_0800CF0C:
- adds r0, r4, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r3, 0x1
- cmp r3, 0x2
- ble _0800CF0C
- adds r0, r5, 0
- adds r1, r2, 0
- movs r2, 0x5
- bl dp01_prepare_buffer
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CF2C: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x22_a_three_bytes
-
- thumb_func_start dp01_build_cmdbuf_x23_aa_0
-dp01_build_cmdbuf_x23_aa_0: @ 800CF30
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _0800CF58 @ =gUnknown_03004040
- movs r4, 0
- movs r2, 0x23
- strb r2, [r3]
- strb r1, [r3, 0x1]
- lsrs r1, 8
- strb r1, [r3, 0x2]
- strb r4, [r3, 0x3]
- adds r1, r3, 0
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CF58: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x23_aa_0
-
- thumb_func_start dp01_build_cmdbuf_x24_aa_0
-dp01_build_cmdbuf_x24_aa_0: @ 800CF5C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _0800CF84 @ =gUnknown_03004040
- movs r4, 0
- movs r2, 0x24
- strb r2, [r3]
- strb r1, [r3, 0x1]
- lsrs r1, 8
- strb r1, [r3, 0x2]
- strb r4, [r3, 0x3]
- adds r1, r3, 0
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800CF84: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x24_aa_0
-
- thumb_func_start dp01_build_cmdbuf_x25_25_25_25
-dp01_build_cmdbuf_x25_25_25_25: @ 800CF88
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800CFA4 @ =gUnknown_03004040
- movs r2, 0x25
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800CFA4: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x25_25_25_25
-
- thumb_func_start dp01_build_cmdbuf_x26_a
-dp01_build_cmdbuf_x26_a: @ 800CFA8
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800CFC4 @ =gUnknown_03004040
- movs r2, 0x26
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800CFC4: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x26_a
-
- thumb_func_start dp01_build_cmdbuf_x27_27_27_27
-dp01_build_cmdbuf_x27_27_27_27: @ 800CFC8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800CFE4 @ =gUnknown_03004040
- movs r2, 0x27
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800CFE4: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x27_27_27_27
-
- thumb_func_start dp01_build_cmdbuf_x28_28_28_28
-dp01_build_cmdbuf_x28_28_28_28: @ 800CFE8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800D004 @ =gUnknown_03004040
- movs r2, 0x28
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800D004: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x28_28_28_28
-
- thumb_func_start dp01_build_cmdbuf_x29_29_29_29
-dp01_build_cmdbuf_x29_29_29_29: @ 800D008
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800D024 @ =gUnknown_03004040
- movs r2, 0x29
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800D024: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x29_29_29_29
-
- thumb_func_start dp01_build_cmdbuf_x2A_2A_2A_2A
-dp01_build_cmdbuf_x2A_2A_2A_2A: @ 800D028
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800D044 @ =gUnknown_03004040
- movs r2, 0x2A
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800D044: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x2A_2A_2A_2A
-
- thumb_func_start dp01_build_cmdbuf_x2B_aa_0
-dp01_build_cmdbuf_x2B_aa_0: @ 800D048
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _0800D070 @ =gUnknown_03004040
- movs r4, 0
- movs r2, 0x2B
- strb r2, [r3]
- strb r1, [r3, 0x1]
- lsrs r1, 8
- strb r1, [r3, 0x2]
- strb r4, [r3, 0x3]
- adds r1, r3, 0
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D070: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x2B_aa_0
-
- thumb_func_start sub_800D074
-sub_800D074: @ 800D074
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _0800D09C @ =gUnknown_03004040
- movs r4, 0
- movs r2, 0x2C
- strb r2, [r3]
- strb r1, [r3, 0x1]
- lsrs r1, 8
- strb r1, [r3, 0x2]
- strb r4, [r3, 0x3]
- adds r1, r3, 0
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D09C: .4byte gUnknown_03004040
- thumb_func_end sub_800D074
-
- thumb_func_start dp01_build_cmdbuf_x2D_2D_2D_2D
-dp01_build_cmdbuf_x2D_2D_2D_2D: @ 800D0A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800D0BC @ =gUnknown_03004040
- movs r2, 0x2D
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800D0BC: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x2D_2D_2D_2D
-
- thumb_func_start dp01_build_cmdbuf_x2E_a
-dp01_build_cmdbuf_x2E_a: @ 800D0C0
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800D0DC @ =gUnknown_03004040
- movs r2, 0x2E
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800D0DC: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x2E_a
-
- thumb_func_start dp01_build_cmdbuf_x2F_2F_2F_2F
-dp01_build_cmdbuf_x2F_2F_2F_2F: @ 800D0E0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800D0FC @ =gUnknown_03004040
- movs r2, 0x2F
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800D0FC: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x2F_2F_2F_2F
-
- thumb_func_start dp01_build_cmdbuf_x30_TODO
-dp01_build_cmdbuf_x30_TODO: @ 800D100
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r1, _0800D144 @ =gUnknown_03004040
- movs r3, 0x30
- strb r3, [r1]
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r0, 0x80
- ands r0, r2
- lsls r0, 24
- lsrs r0, 31
- strb r0, [r1, 0x2]
- strb r3, [r1, 0x3]
- movs r2, 0
- adds r3, r1, 0x4
-_0800D128:
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2F
- ble _0800D128
- adds r0, r5, 0
- movs r2, 0x34
- bl dp01_prepare_buffer
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D144: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x30_TODO
-
- thumb_func_start dp01_build_cmdbuf_x31_31_31_31
-dp01_build_cmdbuf_x31_31_31_31: @ 800D148
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800D164 @ =gUnknown_03004040
- movs r2, 0x31
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800D164: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x31_31_31_31
-
- thumb_func_start dp01_build_cmdbuf_x32_32_32_32
-dp01_build_cmdbuf_x32_32_32_32: @ 800D168
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800D184 @ =gUnknown_03004040
- movs r2, 0x32
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800D184: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x32_32_32_32
-
- thumb_func_start dp01_build_cmdbuf_x33_a_33_33
-dp01_build_cmdbuf_x33_a_33_33: @ 800D188
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800D1A8 @ =gUnknown_03004040
- movs r2, 0x33
- strb r2, [r1]
- strb r3, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800D1A8: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x33_a_33_33
-
- thumb_func_start dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
-dp01_build_cmdbuf_x34_a_bb_aka_battle_anim: @ 800D1AC
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _0800D1D4 @ =gUnknown_03004040
- movs r3, 0x34
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- lsrs r2, 8
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D1D4: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
-
- thumb_func_start sub_800D1D8
-sub_800D1D8: @ 800D1D8
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800D1F4 @ =gUnknown_03004040
- movs r2, 0x35
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800D1F4: .4byte gUnknown_03004040
- thumb_func_end sub_800D1D8
-
- thumb_func_start dp01_build_cmdbuf_x38_a
-dp01_build_cmdbuf_x38_a: @ 800D1F8
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800D214 @ =gUnknown_03004040
- movs r2, 0x36
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800D214: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x38_a
-
- thumb_func_start dp01_build_cmdbuf_x37_a
-dp01_build_cmdbuf_x37_a: @ 800D218
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800D234 @ =gUnknown_03004040
- movs r2, 0x37
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .align 2, 0
-_0800D234: .4byte gUnknown_03004040
- thumb_func_end dp01_build_cmdbuf_x37_a
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom5.s b/asm/rom5.s
deleted file mode 100644
index 4b0947a5d..000000000
--- a/asm/rom5.s
+++ /dev/null
@@ -1,2048 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_14
-nullsub_14: @ 807AD54
- bx lr
- thumb_func_end nullsub_14
-
- thumb_func_start sub_807AD58
-sub_807AD58: @ 807AD58
- push {lr}
- ldr r2, _0807AD90 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _0807AD94 @ =REG_MOSAIC
- movs r2, 0
- strh r2, [r0]
- ldr r0, _0807AD98 @ =0x02000000
- ldr r3, _0807AD9C @ =0x0001ffff
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0807ADA0 @ =0x0001fffe
- adds r0, r1
- strb r2, [r0]
- ldr r0, _0807ADA4 @ =sub_807ADA8
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0807AD90: .4byte gPaletteFade
-_0807AD94: .4byte REG_MOSAIC
-_0807AD98: .4byte 0x02000000
-_0807AD9C: .4byte 0x0001ffff
-_0807ADA0: .4byte 0x0001fffe
-_0807ADA4: .4byte sub_807ADA8
- thumb_func_end sub_807AD58
-
- thumb_func_start sub_807ADA8
-sub_807ADA8: @ 807ADA8
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r0, _0807ADC4 @ =0x02000000
- ldr r1, _0807ADC8 @ =0x0001ffff
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x13
- bls _0807ADBA
- b _0807B010
-_0807ADBA:
- lsls r0, 2
- ldr r1, _0807ADCC @ =_0807ADD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807ADC4: .4byte 0x02000000
-_0807ADC8: .4byte 0x0001ffff
-_0807ADCC: .4byte _0807ADD0
- .align 2, 0
-_0807ADD0:
- .4byte _0807AE20
- .4byte _0807AE84
- .4byte _0807AE9C
- .4byte _0807AEC8
- .4byte _0807AECE
- .4byte _0807AEE0
- .4byte _0807AEE6
- .4byte _0807AF18
- .4byte _0807AF1C
- .4byte _0807AF20
- .4byte _0807AF24
- .4byte _0807AF48
- .4byte _0807AF50
- .4byte _0807AF58
- .4byte _0807AF60
- .4byte _0807AF68
- .4byte _0807AF70
- .4byte _0807AF78
- .4byte _0807AF80
- .4byte _0807AF88
-_0807AE20:
- bl dp12_8087EA4
- ldr r4, _0807AE5C @ =gWindowConfig_81E6C58
- adds r0, r4, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _0807AE60 @ =gUnknown_03004210
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r0, _0807AE64 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0807AE68 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r0, _0807AE6C @ =gUnknown_030042C0
- strh r1, [r0]
- ldr r0, _0807AE70 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _0807AE74 @ =gUnknown_03004288
- strh r1, [r0]
- ldr r0, _0807AE78 @ =gUnknown_03004280
- strh r1, [r0]
- ldr r0, _0807AE7C @ =gUnknown_030041B0
- strh r1, [r0]
- ldr r0, _0807AE80 @ =gUnknown_030041B8
- strh r1, [r0]
- b _0807B040
- .align 2, 0
-_0807AE5C: .4byte gWindowConfig_81E6C58
-_0807AE60: .4byte gUnknown_03004210
-_0807AE64: .4byte gUnknown_030042A4
-_0807AE68: .4byte gUnknown_030042A0
-_0807AE6C: .4byte gUnknown_030042C0
-_0807AE70: .4byte gUnknown_030041B4
-_0807AE74: .4byte gUnknown_03004288
-_0807AE78: .4byte gUnknown_03004280
-_0807AE7C: .4byte gUnknown_030041B0
-_0807AE80: .4byte gUnknown_030041B8
-_0807AE84:
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _0807AE98 @ =0x01006000
- add r0, sp, 0x4
- bl CpuFastSet
- b _0807B040
- .align 2, 0
-_0807AE98: .4byte 0x01006000
-_0807AE9C:
- ldr r5, _0807AEBC @ =0x02000000
- ldr r0, _0807AEC0 @ =0x0001fffe
- adds r4, r5, r0
- ldrb r0, [r4]
- bl sub_800E414
- lsls r0, 24
- cmp r0, 0
- bne _0807AEF8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r0, _0807AEC4 @ =0x0001ffff
- adds r1, r5, r0
- b _0807AF38
- .align 2, 0
-_0807AEBC: .4byte 0x02000000
-_0807AEC0: .4byte 0x0001fffe
-_0807AEC4: .4byte 0x0001ffff
-_0807AEC8:
- bl ResetSpriteData
- b _0807B040
-_0807AECE:
- bl FreeAllSpritePalettes
- ldr r1, _0807AEDC @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- b _0807B040
- .align 2, 0
-_0807AEDC: .4byte gReservedSpritePaletteCount
-_0807AEE0:
- bl sub_8031EE8
- b _0807B040
-_0807AEE6:
- ldr r5, _0807AF00 @ =0x02000000
- ldr r1, _0807AF04 @ =0x0001fffe
- adds r4, r5, r1
- ldrb r0, [r4]
- bl sub_8031C30
- lsls r0, 24
- cmp r0, 0
- beq _0807AF08
-_0807AEF8:
- movs r0, 0
- strb r0, [r4]
- b _0807B040
- .align 2, 0
-_0807AF00: .4byte 0x02000000
-_0807AF04: .4byte 0x0001fffe
-_0807AF08:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r0, _0807AF14 @ =0x0001ffff
- adds r1, r5, r0
- b _0807AF38
- .align 2, 0
-_0807AF14: .4byte 0x0001ffff
-_0807AF18:
- movs r0, 0
- b _0807AF26
-_0807AF1C:
- movs r0, 0x1
- b _0807AF26
-_0807AF20:
- movs r0, 0x2
- b _0807AF26
-_0807AF24:
- movs r0, 0x3
-_0807AF26:
- bl sub_807B094
- lsls r0, 24
- cmp r0, 0
- beq _0807AF32
- b _0807B040
-_0807AF32:
- ldr r1, _0807AF40 @ =0x02000000
- ldr r0, _0807AF44 @ =0x0001ffff
- adds r1, r0
-_0807AF38:
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- b _0807B040
- .align 2, 0
-_0807AF40: .4byte 0x02000000
-_0807AF44: .4byte 0x0001ffff
-_0807AF48:
- movs r0, 0
- bl sub_807B184
- b _0807B040
-_0807AF50:
- movs r0, 0x1
- bl sub_807B184
- b _0807B040
-_0807AF58:
- movs r0, 0x2
- bl sub_807B184
- b _0807B040
-_0807AF60:
- movs r0, 0x3
- bl sub_807B184
- b _0807B040
-_0807AF68:
- movs r0, 0
- bl sub_807B508
- b _0807B040
-_0807AF70:
- movs r0, 0x1
- bl sub_807B508
- b _0807B040
-_0807AF78:
- movs r0, 0x2
- bl sub_807B508
- b _0807B040
-_0807AF80:
- movs r0, 0x3
- bl sub_807B508
- b _0807B040
-_0807AF88:
- bl sub_80327CC
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r7, _0807B000 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0807B004 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0807AFEC
- movs r0, 0x3
- bl battle_get_side_with_given_state
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
-_0807AFEC:
- ldr r1, _0807B008 @ =gUnknown_02024E60
- ldr r0, _0807B00C @ =gUnknown_02024E6C
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- b _0807B040
- .align 2, 0
-_0807B000: .4byte gUnknown_02024A6A
-_0807B004: .4byte gEnemyParty
-_0807B008: .4byte gUnknown_02024E60
-_0807B00C: .4byte gUnknown_02024E6C
-_0807B010:
- ldr r0, _0807B054 @ =sub_800FCD4
- bl SetHBlankCallback
- ldr r0, _0807B058 @ =sub_800FCFC
- bl SetVBlankCallback
- bl sub_807B06C
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r2, _0807B05C @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0807B060 @ =sub_800F808
- bl SetMainCallback2
-_0807B040:
- ldr r1, _0807B064 @ =0x02000000
- ldr r0, _0807B068 @ =0x0001ffff
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B054: .4byte sub_800FCD4
-_0807B058: .4byte sub_800FCFC
-_0807B05C: .4byte gPaletteFade
-_0807B060: .4byte sub_800F808
-_0807B064: .4byte 0x02000000
-_0807B068: .4byte 0x0001ffff
- thumb_func_end sub_807ADA8
-
- thumb_func_start sub_807B06C
-sub_807B06C: @ 807B06C
- push {lr}
- bl sub_800D6D4
- ldr r3, _0807B08C @ =REG_BG1CNT
- ldrb r2, [r3]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- ldr r2, _0807B090 @ =REG_BG2CNT
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_0807B08C: .4byte REG_BG1CNT
-_0807B090: .4byte REG_BG2CNT
- thumb_func_end sub_807B06C
-
- thumb_func_start sub_807B094
-sub_807B094: @ 807B094
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807B0D8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bcs _0807B172
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0807B0F2
- lsls r0, r4, 2
- ldr r1, _0807B0DC @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0807B0E8
- ldr r1, _0807B0E0 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0807B0E4 @ =gEnemyParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_8031794
- b _0807B168
- .align 2, 0
-_0807B0D8: .4byte gUnknown_02024A68
-_0807B0DC: .4byte 0x02017800
-_0807B0E0: .4byte gUnknown_02024A6A
-_0807B0E4: .4byte gEnemyParty
-_0807B0E8:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8032350
- b _0807B168
-_0807B0F2:
- ldr r2, _0807B108 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0807B110
- cmp r4, 0
- bne _0807B110
- ldr r0, _0807B10C @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- b _0807B122
- .align 2, 0
-_0807B108: .4byte gUnknown_020239F8
-_0807B10C: .4byte gSaveBlock2
-_0807B110:
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0807B12A
- cmp r4, 0
- bne _0807B12A
- movs r0, 0x2
-_0807B122:
- movs r1, 0
- bl sub_8031AF4
- b _0807B168
-_0807B12A:
- lsls r0, r4, 2
- ldr r1, _0807B154 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0807B160
- ldr r1, _0807B158 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0807B15C @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_80318FC
- b _0807B168
- .align 2, 0
-_0807B154: .4byte 0x02017800
-_0807B158: .4byte gUnknown_02024A6A
-_0807B15C: .4byte gPlayerParty
-_0807B160:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8032350
-_0807B168:
- ldr r0, _0807B17C @ =0x02000000
- ldr r1, _0807B180 @ =0x0001fffe
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0807B172:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0807B17C: .4byte 0x02000000
-_0807B180: .4byte 0x0001fffe
- thumb_func_end sub_807B094
-
- thumb_func_start sub_807B184
-sub_807B184: @ 807B184
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0807B1B8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcc _0807B19E
- b _0807B4D8
-_0807B19E:
- lsls r2, r7, 2
- ldr r0, _0807B1BC @ =0x02017800
- adds r0, r2, r0
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- str r2, [sp]
- cmp r0, 0
- beq _0807B1C0
- adds r0, r7, 0
- bl sub_8077F7C
- b _0807B1C6
- .align 2, 0
-_0807B1B8: .4byte gUnknown_02024A68
-_0807B1BC: .4byte 0x02017800
-_0807B1C0:
- adds r0, r7, 0
- bl sub_8077F68
-_0807B1C6:
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r7, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0807B1DA
- b _0807B2D8
-_0807B1DA:
- ldr r1, _0807B2BC @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r6, r0, r1
- ldrh r0, [r6]
- movs r1, 0x64
- mov r10, r1
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r1, _0807B2C0 @ =gEnemyParty
- mov r9, r1
- add r0, r9
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _0807B1FE
- b _0807B4D8
-_0807B1FE:
- ldrh r0, [r6]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r5, _0807B2C4 @ =gUnknown_02024E8C
- adds r0, r7, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r8
- bl CreateSprite
- ldr r4, _0807B2C8 @ =gUnknown_02024BE0
- adds r4, r7, r4
- strb r0, [r4]
- ldr r5, _0807B2CC @ =gSprites
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r7, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0807B2D0 @ =SpriteCallbackDummy
- str r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r7, [r0, 0x2E]
- ldrh r0, [r6]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- ldrb r2, [r4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- strh r0, [r1, 0x32]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0807B2D4 @ =gUnknown_02024E84
- adds r1, r7, r1
- ldrb r1, [r1]
- bl StartSpriteAnim
- b _0807B4AC
- .align 2, 0
-_0807B2BC: .4byte gUnknown_02024A6A
-_0807B2C0: .4byte gEnemyParty
-_0807B2C4: .4byte gUnknown_02024E8C
-_0807B2C8: .4byte gUnknown_02024BE0
-_0807B2CC: .4byte gSprites
-_0807B2D0: .4byte SpriteCallbackDummy
-_0807B2D4: .4byte gUnknown_02024E84
-_0807B2D8:
- ldr r2, _0807B328 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0807B338
- cmp r7, 0
- bne _0807B338
- ldr r5, _0807B32C @ =gSaveBlock2
- ldrb r4, [r5, 0x8]
- movs r0, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r6, _0807B330 @ =gUnknown_02024E8C
- ldr r1, _0807B334 @ =gTrainerBackPicCoords
- ldrb r0, [r5, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 15
- adds r4, r0
- asrs r4, 16
- movs r0, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- b _0807B37C
- .align 2, 0
-_0807B328: .4byte gUnknown_020239F8
-_0807B32C: .4byte gSaveBlock2
-_0807B330: .4byte gUnknown_02024E8C
-_0807B334: .4byte gTrainerBackPicCoords
-_0807B338:
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0807B3D0
- cmp r7, 0
- bne _0807B3D0
- movs r0, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x2
- bl GetMonSpriteTemplate_803C5A0
- ldr r5, _0807B3BC @ =gUnknown_02024E8C
- ldr r0, _0807B3C0 @ =gTrainerBackPicCoords
- ldrb r0, [r0, 0x8]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r4, r1
- asrs r4, 16
- movs r0, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
-_0807B37C:
- movs r1, 0x50
- adds r2, r4, 0
- bl CreateSprite
- ldr r3, _0807B3C4 @ =gUnknown_02024BE0
- strb r0, [r3]
- ldr r4, _0807B3C8 @ =gSprites
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x5]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0807B3CC @ =SpriteCallbackDummy
- str r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x2E]
- b _0807B4AC
- .align 2, 0
-_0807B3BC: .4byte gUnknown_02024E8C
-_0807B3C0: .4byte gTrainerBackPicCoords
-_0807B3C4: .4byte gUnknown_02024BE0
-_0807B3C8: .4byte gSprites
-_0807B3CC: .4byte SpriteCallbackDummy
-_0807B3D0:
- ldr r1, _0807B4E8 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r6, r0, r1
- ldrh r0, [r6]
- movs r1, 0x64
- mov r10, r1
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r1, _0807B4EC @ =gPlayerParty
- mov r9, r1
- add r0, r9
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0807B4D8
- ldrh r0, [r6]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r5, _0807B4F0 @ =gUnknown_02024E8C
- adds r0, r7, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r8
- bl CreateSprite
- ldr r4, _0807B4F4 @ =gUnknown_02024BE0
- adds r4, r7, r4
- strb r0, [r4]
- ldr r5, _0807B4F8 @ =gSprites
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r7, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0807B4FC @ =SpriteCallbackDummy
- str r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r7, [r0, 0x2E]
- ldrh r0, [r6]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- ldrb r2, [r4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- strh r0, [r1, 0x32]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0807B500 @ =gUnknown_02024E84
- adds r1, r7, r1
- ldrb r1, [r1]
- bl StartSpriteAnim
-_0807B4AC:
- ldr r1, _0807B4F8 @ =gSprites
- ldr r0, _0807B4F4 @ =gUnknown_02024BE0
- adds r0, r7, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldr r0, _0807B504 @ =0x02017800
- ldr r1, [sp]
- adds r0, r1, r0
- ldr r1, [r0]
- lsls r1, 31
- adds r2, 0x3E
- lsrs r1, 31
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_0807B4D8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B4E8: .4byte gUnknown_02024A6A
-_0807B4EC: .4byte gPlayerParty
-_0807B4F0: .4byte gUnknown_02024E8C
-_0807B4F4: .4byte gUnknown_02024BE0
-_0807B4F8: .4byte gSprites
-_0807B4FC: .4byte SpriteCallbackDummy
-_0807B500: .4byte gUnknown_02024E84
-_0807B504: .4byte 0x02017800
- thumb_func_end sub_807B184
-
- thumb_func_start sub_807B508
-sub_807B508: @ 807B508
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0807B530 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bcc _0807B518
- b _0807B68A
-_0807B518:
- ldr r2, _0807B534 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0807B538
- cmp r5, 0
- bne _0807B538
- bl battle_make_oam_safari_battle
- b _0807B550
- .align 2, 0
-_0807B530: .4byte gUnknown_02024A68
-_0807B534: .4byte gUnknown_020239F8
-_0807B538:
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0807B54A
- cmp r5, 0
- bne _0807B54A
- b _0807B68A
-_0807B54A:
- adds r0, r5, 0
- bl battle_make_oam_normal_battle
-_0807B550:
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0807B58C @ =gUnknown_03004340
- adds r4, r5, r0
- strb r6, [r4]
- adds r0, r5, 0
- bl sub_8043F44
- adds r0, r6, 0
- bl sub_8043DFC
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0807B598
- ldrb r0, [r4]
- ldr r1, _0807B590 @ =gUnknown_02024A6A
- lsls r4, r5, 1
- adds r1, r4, r1
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0807B594 @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- b _0807B5E4
- .align 2, 0
-_0807B58C: .4byte gUnknown_03004340
-_0807B590: .4byte gUnknown_02024A6A
-_0807B594: .4byte gEnemyParty
-_0807B598:
- ldr r0, _0807B5C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0807B5CC
- ldrb r0, [r4]
- ldr r1, _0807B5C4 @ =gUnknown_02024A6A
- lsls r4, r5, 1
- adds r1, r4, r1
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0807B5C8 @ =gPlayerParty
- adds r1, r2
- movs r2, 0xA
- bl sub_8045A5C
- b _0807B5E4
- .align 2, 0
-_0807B5C0: .4byte gUnknown_020239F8
-_0807B5C4: .4byte gUnknown_02024A6A
-_0807B5C8: .4byte gPlayerParty
-_0807B5CC:
- ldrb r0, [r4]
- ldr r1, _0807B610 @ =gUnknown_02024A6A
- lsls r4, r5, 1
- adds r1, r4, r1
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0807B614 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
-_0807B5E4:
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0807B600
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0807B61C
-_0807B600:
- ldr r0, _0807B618 @ =gUnknown_03004340
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0x1
- bl nullsub_11
- b _0807B628
- .align 2, 0
-_0807B610: .4byte gUnknown_02024A6A
-_0807B614: .4byte gPlayerParty
-_0807B618: .4byte gUnknown_03004340
-_0807B61C:
- ldr r0, _0807B654 @ =gUnknown_03004340
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0
- bl nullsub_11
-_0807B628:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0807B660
- ldr r0, _0807B658 @ =gUnknown_02024A6A
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0807B65C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _0807B68A
- adds r0, r6, 0
- bl sub_8043DB0
- b _0807B68A
- .align 2, 0
-_0807B654: .4byte gUnknown_03004340
-_0807B658: .4byte gUnknown_02024A6A
-_0807B65C: .4byte gEnemyParty
-_0807B660:
- ldr r0, _0807B690 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0807B68A
- ldr r0, _0807B694 @ =gUnknown_02024A6A
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0807B698 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _0807B68A
- adds r0, r6, 0
- bl sub_8043DB0
-_0807B68A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B690: .4byte gUnknown_020239F8
-_0807B694: .4byte gUnknown_02024A6A
-_0807B698: .4byte gPlayerParty
- thumb_func_end sub_807B508
-
- thumb_func_start unref_sub_807B69C
-unref_sub_807B69C: @ 807B69C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0807B740 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r6, [r0]
- ldr r0, _0807B744 @ =sub_807B7E0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0807B748 @ =gBattleAnimPicTable + (136 * 8)
- bl LoadCompressedObjectPic
- ldr r0, _0807B74C @ =gBattleAnimPaletteTable + (136 * 8)
- bl LoadCompressedObjectPalette
- ldr r1, _0807B750 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- strh r4, [r1, 0x8]
- cmp r5, 0
- beq _0807B75C
- movs r0, 0x1F
- strh r0, [r1, 0xA]
- movs r5, 0
- lsls r0, r6, 4
- ldr r7, _0807B754 @ =gSprites
- adds r0, r6
- lsls r0, 2
- adds r6, r0, r7
-_0807B6F0:
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- ldrh r2, [r6, 0x22]
- adds r2, 0x20
- lsls r2, 16
- asrs r2, 16
- ldr r0, _0807B758 @ =gSpriteTemplate_83931F8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r3, r0, r7
- lsls r0, r5, 1
- adds r0, r5
- lsls r1, r0, 4
- adds r0, r1
- strh r0, [r3, 0x2E]
- movs r0, 0xFF
- lsls r0, 8
- strh r0, [r3, 0x30]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- cmp r5, 0x4
- bls _0807B734
- movs r0, 0x15
- strh r0, [r3, 0x3A]
-_0807B734:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0807B6F0
- b _0807B7BC
- .align 2, 0
-_0807B740: .4byte gUnknown_02024BE0
-_0807B744: .4byte sub_807B7E0
-_0807B748: .4byte gBattleAnimPicTable + (136 * 8)
-_0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8)
-_0807B750: .4byte gTasks
-_0807B754: .4byte gSprites
-_0807B758: .4byte gSpriteTemplate_83931F8
-_0807B75C:
- movs r0, 0xF8
- lsls r0, 7
- strh r0, [r1, 0xA]
- movs r5, 0
- lsls r0, r6, 4
- ldr r7, _0807B7D8 @ =gSprites
- adds r0, r6
- lsls r0, 2
- adds r6, r0, r7
-_0807B76E:
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- ldrh r2, [r6, 0x22]
- subs r2, 0x20
- lsls r2, 16
- asrs r2, 16
- ldr r0, _0807B7DC @ =gSpriteTemplate_83931F8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r3, r0, r7
- lsls r0, r5, 1
- adds r0, r5
- lsls r1, r0, 4
- adds r0, r1
- strh r0, [r3, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r3, 0x30]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- cmp r5, 0x4
- bls _0807B7B2
- movs r0, 0x15
- strh r0, [r3, 0x3A]
-_0807B7B2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0807B76E
-_0807B7BC:
- ldr r0, _0807B7D8 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807B7D8: .4byte gSprites
-_0807B7DC: .4byte gSpriteTemplate_83931F8
- thumb_func_end unref_sub_807B69C
-
- thumb_func_start sub_807B7E0
-sub_807B7E0: @ 807B7E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0807B838 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x2
- bne _0807B866
- movs r0, 0
- strh r0, [r4, 0xC]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldrb r2, [r4, 0x10]
- ldrh r3, [r4, 0xA]
- movs r1, 0x10
- bl BlendPalette
- ldrh r2, [r4, 0x12]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0807B83C
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0807B86A
- movs r0, 0x1
- eors r0, r2
- strh r0, [r4, 0x12]
- b _0807B86A
- .align 2, 0
-_0807B838: .4byte gTasks
-_0807B83C:
- ldrh r1, [r4, 0x10]
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _0807B86A
- strh r1, [r4, 0x10]
- movs r0, 0x1
- eors r0, r2
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0807B86A
- adds r0, r5, 0
- bl DestroyTask
- b _0807B86A
-_0807B866:
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
-_0807B86A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_807B7E0
-
- thumb_func_start sub_807B870
-sub_807B870: @ 807B870
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0807B89C
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldr r1, _0807B898 @ =sub_807B8A4
- str r1, [r2, 0x1C]
- adds r0, r2, 0
- bl _call_via_r1
- b _0807B8A0
- .align 2, 0
-_0807B898: .4byte sub_807B8A4
-_0807B89C:
- subs r0, r1, 0x1
- strh r0, [r2, 0x3A]
-_0807B8A0:
- pop {r0}
- bx r0
- thumb_func_end sub_807B870
-
- thumb_func_start sub_807B8A4
-sub_807B8A4: @ 807B8A4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _0807B8D0
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
- b _0807B8D6
-_0807B8D0:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
-_0807B8D6:
- strb r0, [r1]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x34
- bne _0807B918
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0807B912
- adds r0, r4, 0
- bl DestroySpriteAndFreeResources
- b _0807B918
-_0807B912:
- adds r0, r4, 0
- bl DestroySprite
-_0807B918:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807B8A4
-
- thumb_func_start sub_807B920
-sub_807B920: @ 807B920
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _0807B9B0 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- ldr r1, _0807B9B4 @ =0xffe00000
- adds r0, r1
- lsrs r5, r0, 16
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- ldr r2, _0807B9B8 @ =0xffdc0000
- adds r0, r2
- lsrs r4, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807B95E
- lsls r0, r5, 16
- ldr r1, _0807B9BC @ =0xfffa0000
- adds r0, r1
- lsrs r5, r0, 16
-_0807B95E:
- ldr r1, _0807B9C0 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0807B9C4 @ =gSpriteTemplate_83931E0
- lsls r1, r5, 16
- asrs r1, 16
- lsls r2, r4, 16
- asrs r2, 16
- movs r3, 0x4
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0807B9C8 @ =gSprites
- adds r0, r1
- ldr r1, _0807B9CC @ =gUnknown_083931D8
- bl SetSubspriteTables
- ldr r1, _0807B9D0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x26]
- ldr r1, _0807B9D4 @ =sub_807B9D8
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B9B0: .4byte gUnknown_0202F7C9
-_0807B9B4: .4byte 0xffe00000
-_0807B9B8: .4byte 0xffdc0000
-_0807B9BC: .4byte 0xfffa0000
-_0807B9C0: .4byte REG_BLDCNT
-_0807B9C4: .4byte gSpriteTemplate_83931E0
-_0807B9C8: .4byte gSprites
-_0807B9CC: .4byte gUnknown_083931D8
-_0807B9D0: .4byte gTasks
-_0807B9D4: .4byte sub_807B9D8
- thumb_func_end sub_807B920
-
- thumb_func_start sub_807B9D8
-sub_807B9D8: @ 807B9D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BA04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- adds r2, r0, 0
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0807BA0C
- ldr r0, _0807BA08 @ =sub_807BA24
- str r0, [r1]
- movs r0, 0
- strh r0, [r1, 0xA]
- b _0807BA1C
- .align 2, 0
-_0807BA04: .4byte gTasks
-_0807BA08: .4byte sub_807BA24
-_0807BA0C:
- lsls r0, r2, 24
- lsrs r0, 24
- ldr r2, _0807BA20 @ =REG_BLDALPHA
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- strh r1, [r2]
-_0807BA1C:
- pop {r0}
- bx r0
- .align 2, 0
-_0807BA20: .4byte REG_BLDALPHA
- thumb_func_end sub_807B9D8
-
- thumb_func_start sub_807BA24
-sub_807BA24: @ 807BA24
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0807BABC @ =0x0000271a
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0807BAC0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0xA]
- adds r1, r0, 0x1
- strh r1, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- ble _0807BAB4
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0807BAB4
- ldr r3, _0807BAC4 @ =gPlttBufferFaded
- lsls r2, 4
- mov r12, r2
- ldr r1, _0807BAC8 @ =0x0000010d
- add r1, r12
- lsls r1, 1
- adds r1, r3
- ldrh r4, [r1]
- movs r2, 0x87
- lsls r2, 1
- add r2, r12
- lsls r2, 1
- adds r2, r3
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r0, _0807BACC @ =0x0000010f
- add r0, r12
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- strh r1, [r2]
- strh r4, [r0]
- strh r6, [r5, 0xC]
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0807BAB4
- strh r6, [r5, 0xE]
- strh r6, [r5, 0xA]
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0807BAB4
- movs r0, 0x9
- strh r0, [r5, 0xA]
- ldr r0, _0807BAD0 @ =sub_807BAD4
- str r0, [r5]
-_0807BAB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BABC: .4byte 0x0000271a
-_0807BAC0: .4byte gTasks
-_0807BAC4: .4byte gPlttBufferFaded
-_0807BAC8: .4byte 0x0000010d
-_0807BACC: .4byte 0x0000010f
-_0807BAD0: .4byte sub_807BAD4
- thumb_func_end sub_807BA24
-
- thumb_func_start sub_807BAD4
-sub_807BAD4: @ 807BAD4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BB04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- adds r3, r0, 0
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0807BB0C
- ldr r0, _0807BB08 @ =sub_807BB24
- str r0, [r2]
- movs r0, 0
- strh r0, [r2, 0xA]
- b _0807BB1C
- .align 2, 0
-_0807BB04: .4byte gTasks
-_0807BB08: .4byte sub_807BB24
-_0807BB0C:
- lsls r0, r3, 24
- lsrs r0, 24
- ldr r2, _0807BB20 @ =REG_BLDALPHA
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- strh r1, [r2]
-_0807BB1C:
- pop {r0}
- bx r0
- .align 2, 0
-_0807BB20: .4byte REG_BLDALPHA
- thumb_func_end sub_807BAD4
-
- thumb_func_start sub_807BB24
-sub_807BB24: @ 807BB24
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r1, _0807BB64 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x25
- bne _0807BB6C
- ldrh r0, [r1, 0x26]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807BB68 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _0807BB7E
- .align 2, 0
-_0807BB64: .4byte gTasks
-_0807BB68: .4byte gSprites
-_0807BB6C:
- cmp r0, 0x27
- bne _0807BB7E
- ldr r0, _0807BB84 @ =REG_BLDCNT
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, r2, 0
- bl move_anim_task_del
-_0807BB7E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BB84: .4byte REG_BLDCNT
- thumb_func_end sub_807BB24
-
- thumb_func_start sub_807BB88
-sub_807BB88: @ 807BB88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- ldr r0, _0807BBA8 @ =0x02017840
- ldrh r0, [r0]
- subs r0, 0xF
- cmp r0, 0x2B
- bls _0807BB9C
- b _0807BD20
-_0807BB9C:
- lsls r0, 2
- ldr r1, _0807BBAC @ =_0807BBB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807BBA8: .4byte 0x02017840
-_0807BBAC: .4byte _0807BBB0
- .align 2, 0
-_0807BBB0:
- .4byte _0807BC60
- .4byte _0807BC66
- .4byte _0807BC6C
- .4byte _0807BC72
- .4byte _0807BC78
- .4byte _0807BC7E
- .4byte _0807BC84
- .4byte _0807BC8A
- .4byte _0807BC90
- .4byte _0807BC96
- .4byte _0807BC9C
- .4byte _0807BCA2
- .4byte _0807BCA8
- .4byte _0807BCAE
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BCB4
- .4byte _0807BCB8
- .4byte _0807BCBC
- .4byte _0807BCC0
- .4byte _0807BCC4
- .4byte _0807BCC8
- .4byte _0807BCCC
- .4byte _0807BCD0
- .4byte _0807BCD8
- .4byte _0807BCE0
- .4byte _0807BCE8
- .4byte _0807BCF0
- .4byte _0807BCF8
- .4byte _0807BD00
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD08
- .4byte _0807BD0C
- .4byte _0807BD10
- .4byte _0807BD18
-_0807BC60:
- movs r5, 0
- movs r2, 0
- b _0807BD28
-_0807BC66:
- movs r5, 0
- movs r2, 0x1
- b _0807BD28
-_0807BC6C:
- movs r5, 0
- movs r2, 0x3
- b _0807BD28
-_0807BC72:
- movs r5, 0
- movs r2, 0x5
- b _0807BD28
-_0807BC78:
- movs r5, 0
- movs r2, 0x6
- b _0807BD28
-_0807BC7E:
- movs r5, 0
- movs r2, 0x2
- b _0807BD28
-_0807BC84:
- movs r5, 0
- movs r2, 0x4
- b _0807BD28
-_0807BC8A:
- movs r5, 0x1
- movs r2, 0
- b _0807BD28
-_0807BC90:
- movs r5, 0x1
- movs r2, 0x1
- b _0807BD28
-_0807BC96:
- movs r5, 0x1
- movs r2, 0x3
- b _0807BD28
-_0807BC9C:
- movs r5, 0x1
- movs r2, 0x5
- b _0807BD28
-_0807BCA2:
- movs r5, 0x1
- movs r2, 0x6
- b _0807BD28
-_0807BCA8:
- movs r5, 0x1
- movs r2, 0x2
- b _0807BD28
-_0807BCAE:
- movs r5, 0x1
- movs r2, 0x4
- b _0807BD28
-_0807BCB4:
- movs r5, 0
- b _0807BCD2
-_0807BCB8:
- movs r5, 0
- b _0807BCDA
-_0807BCBC:
- movs r5, 0
- b _0807BCE2
-_0807BCC0:
- movs r5, 0
- b _0807BCEA
-_0807BCC4:
- movs r5, 0
- b _0807BCF2
-_0807BCC8:
- movs r5, 0
- b _0807BCFA
-_0807BCCC:
- movs r5, 0
- b _0807BD02
-_0807BCD0:
- movs r5, 0x1
-_0807BCD2:
- movs r2, 0
- movs r3, 0x1
- b _0807BD28
-_0807BCD8:
- movs r5, 0x1
-_0807BCDA:
- movs r2, 0x1
- movs r3, 0x1
- b _0807BD28
-_0807BCE0:
- movs r5, 0x1
-_0807BCE2:
- movs r2, 0x3
- movs r3, 0x1
- b _0807BD28
-_0807BCE8:
- movs r5, 0x1
-_0807BCEA:
- movs r2, 0x5
- movs r3, 0x1
- b _0807BD28
-_0807BCF0:
- movs r5, 0x1
-_0807BCF2:
- movs r2, 0x6
- movs r3, 0x1
- b _0807BD28
-_0807BCF8:
- movs r5, 0x1
-_0807BCFA:
- movs r2, 0x2
- movs r3, 0x1
- b _0807BD28
-_0807BD00:
- movs r5, 0x1
-_0807BD02:
- movs r2, 0x4
- movs r3, 0x1
- b _0807BD28
-_0807BD08:
- movs r5, 0
- b _0807BD12
-_0807BD0C:
- movs r5, 0
- b _0807BD1A
-_0807BD10:
- movs r5, 0x1
-_0807BD12:
- movs r2, 0xFF
- movs r3, 0
- b _0807BD28
-_0807BD18:
- movs r5, 0x1
-_0807BD1A:
- movs r2, 0xFF
- movs r3, 0x1
- b _0807BD28
-_0807BD20:
- adds r0, r4, 0
- bl move_anim_task_del
- b _0807BD4A
-_0807BD28:
- ldr r0, _0807BD50 @ =gUnknown_03004B00
- movs r1, 0
- strh r5, [r0]
- strh r2, [r0, 0x2]
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- strh r3, [r0, 0x8]
- ldr r1, _0807BD54 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0807BD58 @ =sub_80E32E0
- str r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_0807BD4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BD50: .4byte gUnknown_03004B00
-_0807BD54: .4byte gTasks
-_0807BD58: .4byte sub_80E32E0
- thumb_func_end sub_807BB88
-
- thumb_func_start move_anim_start_t2
-move_anim_start_t2: @ 807BD5C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0807BD98 @ =gUnknown_0202F7C8
- strb r4, [r0]
- ldr r0, _0807BD9C @ =gUnknown_0202F7C9
- strb r4, [r0]
- ldr r0, _0807BDA0 @ =gBattleAnims_StatusConditions
- movs r2, 0
- bl move_something
- ldr r0, _0807BDA4 @ =sub_807BDAC
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BDA8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BD98: .4byte gUnknown_0202F7C8
-_0807BD9C: .4byte gUnknown_0202F7C9
-_0807BDA0: .4byte gBattleAnims_StatusConditions
-_0807BDA4: .4byte sub_807BDAC
-_0807BDA8: .4byte gTasks
- thumb_func_end move_anim_start_t2
-
- thumb_func_start sub_807BDAC
-sub_807BDAC: @ 807BDAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807BDF0 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _0807BDF4 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807BDEA
- ldr r1, _0807BDF8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0807BDFC @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0807BDEA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BDF0: .4byte gUnknown_0202F7AC
-_0807BDF4: .4byte gUnknown_0202F7B1
-_0807BDF8: .4byte gTasks
-_0807BDFC: .4byte 0x02017810
- thumb_func_end sub_807BDAC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom6.s b/asm/rom6.s
deleted file mode 100644
index a4006ace5..000000000
--- a/asm/rom6.s
+++ /dev/null
@@ -1,9863 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start npc_before_player_of_type
-npc_before_player_of_type: @ 810B2D4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0810B314 @ =gUnknown_0203923C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- bl PlayerGetZCoord
- strb r0, [r4, 0x4]
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810B318 @ =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x5]
- cmp r0, r5
- bne _0810B320
- ldr r1, _0810B31C @ =gScriptLastTalked
- ldrb r0, [r2, 0x8]
- strh r0, [r1]
- movs r0, 0x1
- b _0810B322
- .align 2, 0
-_0810B314: .4byte gUnknown_0203923C
-_0810B318: .4byte gMapObjects
-_0810B31C: .4byte gScriptLastTalked
-_0810B320:
- movs r0, 0
-_0810B322:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end npc_before_player_of_type
-
- thumb_func_start oei_task_add
-oei_task_add: @ 810B328
- push {lr}
- ldr r0, _0810B344 @ =gUnknown_0203923C
- adds r1, r0, 0x2
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r0, _0810B348 @ =task08_080C9820
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810B344: .4byte gUnknown_0203923C
-_0810B348: .4byte task08_080C9820
- thumb_func_end oei_task_add
-
- thumb_func_start task08_080C9820
-task08_080C9820: @ 810B34C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl ScriptContext2_Enable
- ldr r1, _0810B3A0 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrb r1, [r1, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810B3A4 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _0810B382
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0810B3CE
-_0810B382:
- ldr r0, _0810B3A8 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _0810B3B4
- movs r0, 0x3B
- bl FieldEffectStart
- ldr r0, _0810B3AC @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810B3B0 @ =sub_810B428
- b _0810B3CC
- .align 2, 0
-_0810B3A0: .4byte gPlayerAvatar
-_0810B3A4: .4byte gMapObjects
-_0810B3A8: .4byte gMapHeader
-_0810B3AC: .4byte gTasks
-_0810B3B0: .4byte sub_810B428
-_0810B3B4:
- bl sub_8059BF4
- adds r0, r4, 0
- movs r1, 0x39
- bl FieldObjectSetSpecialAnim
- ldr r0, _0810B3D4 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810B3D8 @ =sub_810B3DC
-_0810B3CC:
- str r0, [r1]
-_0810B3CE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B3D4: .4byte gTasks
-_0810B3D8: .4byte sub_810B3DC
- thumb_func_end task08_080C9820
-
- thumb_func_start sub_810B3DC
-sub_810B3DC: @ 810B3DC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810B418 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810B41C @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B410
- movs r0, 0x3B
- bl FieldEffectStart
- ldr r0, _0810B420 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810B424 @ =sub_810B428
- str r0, [r1]
-_0810B410:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B418: .4byte gPlayerAvatar
-_0810B41C: .4byte gMapObjects
-_0810B420: .4byte gTasks
-_0810B424: .4byte sub_810B428
- thumb_func_end sub_810B3DC
-
- thumb_func_start sub_810B428
-sub_810B428: @ 810B428
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0810B4AC
- bl player_get_direction_lower_nybble
- ldr r6, _0810B4B4 @ =gUnknown_0202FF84
- lsls r0, 24
- lsrs r0, 24
- str r0, [r6, 0x4]
- cmp r0, 0x1
- bne _0810B44E
- str r4, [r6, 0x8]
-_0810B44E:
- ldr r1, [r6, 0x4]
- cmp r1, 0x2
- bne _0810B458
- movs r0, 0x1
- str r0, [r6, 0x8]
-_0810B458:
- cmp r1, 0x3
- bne _0810B460
- movs r0, 0x2
- str r0, [r6, 0x8]
-_0810B460:
- cmp r1, 0x4
- bne _0810B468
- movs r0, 0x3
- str r0, [r6, 0x8]
-_0810B468:
- ldr r5, _0810B4B8 @ =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _0810B4BC @ =gMapObjects
- adds r4, r0
- bl GetPlayerAvatarGraphicsIdByCurrentState
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810B4C0 @ =gSprites
- adds r0, r1
- ldrb r1, [r6, 0x8]
- bl StartSpriteAnim
- movs r0, 0x6
- bl FieldEffectActiveListRemove
- ldr r1, _0810B4C4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810B4C8 @ =sub_810B4CC
- str r1, [r0]
-_0810B4AC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B4B4: .4byte gUnknown_0202FF84
-_0810B4B8: .4byte gPlayerAvatar
-_0810B4BC: .4byte gMapObjects
-_0810B4C0: .4byte gSprites
-_0810B4C4: .4byte gTasks
-_0810B4C8: .4byte sub_810B4CC
- thumb_func_end sub_810B428
-
- thumb_func_start sub_810B4CC
-sub_810B4CC: @ 810B4CC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0810B4FC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x18]
- lsls r1, 16
- ldrh r0, [r0, 0x1A]
- orrs r1, r0
- bl _call_via_r1
- ldr r1, _0810B500 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B4FC: .4byte gTasks
-_0810B500: .4byte gPlayerAvatar
- thumb_func_end sub_810B4CC
-
- thumb_func_start SetUpFieldMove_RockSmash
-SetUpFieldMove_RockSmash: @ 810B504
- push {lr}
- movs r0, 0x56
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810B518
- movs r0, 0
- b _0810B526
-_0810B518:
- ldr r1, _0810B52C @ =gUnknown_0300485C
- ldr r0, _0810B530 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0810B534 @ =gUnknown_03005CE4
- ldr r0, _0810B538 @ =sub_810B53C
- str r0, [r1]
- movs r0, 0x1
-_0810B526:
- pop {r1}
- bx r1
- .align 2, 0
-_0810B52C: .4byte gUnknown_0300485C
-_0810B530: .4byte sub_808AB90
-_0810B534: .4byte gUnknown_03005CE4
-_0810B538: .4byte sub_810B53C
- thumb_func_end SetUpFieldMove_RockSmash
-
- thumb_func_start sub_810B53C
-sub_810B53C: @ 810B53C
- push {lr}
- ldr r1, _0810B550 @ =gUnknown_0202FF84
- ldr r0, _0810B554 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _0810B558 @ =UseRockSmashScript
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_0810B550: .4byte gUnknown_0202FF84
-_0810B554: .4byte gUnknown_03005CE0
-_0810B558: .4byte UseRockSmashScript
- thumb_func_end sub_810B53C
-
- thumb_func_start FldEff_RockSmash
-FldEff_RockSmash: @ 810B55C
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810B584 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0810B588 @ =sub_810B58C
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x13
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810B584: .4byte gTasks
-_0810B588: .4byte sub_810B58C
- thumb_func_end FldEff_RockSmash
-
- thumb_func_start sub_810B58C
-sub_810B58C: @ 810B58C
- push {lr}
- movs r0, 0x83
- bl PlaySE
- movs r0, 0x25
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_810B58C
-
- thumb_func_start SetUpFieldMove_Dig
-SetUpFieldMove_Dig: @ 810B5A4
- push {lr}
- bl sub_80CA1C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810B5B6
- movs r0, 0
- b _0810B5C4
-_0810B5B6:
- ldr r1, _0810B5C8 @ =gUnknown_0300485C
- ldr r0, _0810B5CC @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0810B5D0 @ =gUnknown_03005CE4
- ldr r0, _0810B5D4 @ =sub_810B5D8
- str r0, [r1]
- movs r0, 0x1
-_0810B5C4:
- pop {r1}
- bx r1
- .align 2, 0
-_0810B5C8: .4byte gUnknown_0300485C
-_0810B5CC: .4byte sub_808AB90
-_0810B5D0: .4byte gUnknown_03005CE4
-_0810B5D4: .4byte sub_810B5D8
- thumb_func_end SetUpFieldMove_Dig
-
- thumb_func_start sub_810B5D8
-sub_810B5D8: @ 810B5D8
- push {lr}
- bl sub_8053014
- movs r0, 0x26
- bl FieldEffectStart
- ldr r0, _0810B5F0 @ =gUnknown_0202FF84
- ldr r1, _0810B5F4 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B5F0: .4byte gUnknown_0202FF84
-_0810B5F4: .4byte gUnknown_03005CE0
- thumb_func_end sub_810B5D8
-
- thumb_func_start FldEff_UseDig
-FldEff_UseDig: @ 810B5F8
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810B62C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0810B630 @ =sub_810B634
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- bl sub_81473B8
- lsls r0, 24
- cmp r0, 0
- bne _0810B624
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
-_0810B624:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810B62C: .4byte gTasks
-_0810B630: .4byte sub_810B634
- thumb_func_end FldEff_UseDig
-
- thumb_func_start sub_810B634
-sub_810B634: @ 810B634
- push {r4,lr}
- movs r0, 0x26
- bl FieldEffectActiveListRemove
- bl sub_81473B8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0810B64E
- bl sub_8147408
- b _0810B666
-_0810B64E:
- ldr r0, _0810B66C @ =task08_080A1C44
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810B670 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_0810B666:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B66C: .4byte task08_080A1C44
-_0810B670: .4byte gTasks
- thumb_func_end sub_810B634
-
- thumb_func_start sub_810B674
-sub_810B674: @ 810B674
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_810B674
-
- thumb_func_start sub_810B68C
-sub_810B68C: @ 810B68C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r1, _0810B6B0 @ =gBGTilemapBuffers + 0x1000
- ldr r2, _0810B6B4 @ =0x06007800
- ldr r0, _0810B6B8 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0810B6BC @ =0x80000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B6B0: .4byte gBGTilemapBuffers + 0x1000
-_0810B6B4: .4byte 0x06007800
-_0810B6B8: .4byte 0x040000d4
-_0810B6BC: .4byte 0x80000400
- thumb_func_end sub_810B68C
-
- thumb_func_start sub_810B6C0
-sub_810B6C0: @ 810B6C0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0810B6DC @ =gMain
- ldr r1, _0810B6E0 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _0810B6D2
- b _0810B960
-_0810B6D2:
- lsls r0, 2
- ldr r1, _0810B6E4 @ =_0810B6E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810B6DC: .4byte gMain
-_0810B6E0: .4byte 0x0000043c
-_0810B6E4: .4byte _0810B6E8
- .align 2, 0
-_0810B6E8:
- .4byte _0810B734
- .4byte _0810B764
- .4byte _0810B76A
- .4byte _0810B78C
- .4byte _0810B792
- .4byte _0810B7B4
- .4byte _0810B7C0
- .4byte _0810B7DC
- .4byte _0810B7E8
- .4byte _0810B804
- .4byte _0810B810
- .4byte _0810B830
- .4byte _0810B84C
- .4byte _0810B86A
- .4byte _0810B894
- .4byte _0810B89E
- .4byte _0810B8C4
- .4byte _0810B914
- .4byte _0810B934
-_0810B734:
- bl sub_80F9438
- bl sub_80F9368
- ldr r1, _0810B754 @ =REG_BG2CNT
- ldr r2, _0810B758 @ =0x00000f0a
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0810B75C @ =gMain
- ldr r0, _0810B760 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B754: .4byte REG_BG2CNT
-_0810B758: .4byte 0x00000f0a
-_0810B75C: .4byte gMain
-_0810B760: .4byte 0x0000043c
-_0810B764:
- bl remove_some_task
- b _0810B91C
-_0810B76A:
- bl ResetPaletteFade
- ldr r2, _0810B780 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _0810B784 @ =gMain
- ldr r0, _0810B788 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B780: .4byte gPaletteFade
-_0810B784: .4byte gMain
-_0810B788: .4byte 0x0000043c
-_0810B78C:
- bl ResetSpriteData
- b _0810B91C
-_0810B792:
- ldr r0, _0810B7A8 @ =gUnknown_02039244
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0810B79E
- bl ResetTasks
-_0810B79E:
- ldr r1, _0810B7AC @ =gMain
- ldr r0, _0810B7B0 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7A8: .4byte gUnknown_02039244
-_0810B7AC: .4byte gMain
-_0810B7B0: .4byte 0x0000043c
-_0810B7B4:
- ldr r0, _0810B7BC @ =gWindowConfig_81E6E34
- bl SetUpWindowConfig
- b _0810B91C
- .align 2, 0
-_0810B7BC: .4byte gWindowConfig_81E6E34
-_0810B7C0:
- ldr r0, _0810B7D0 @ =gWindowConfig_81E6E50
- bl SetUpWindowConfig
- ldr r1, _0810B7D4 @ =gMain
- ldr r0, _0810B7D8 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7D0: .4byte gWindowConfig_81E6E50
-_0810B7D4: .4byte gMain
-_0810B7D8: .4byte 0x0000043c
-_0810B7DC:
- ldr r0, _0810B7E4 @ =gWindowConfig_81E6E34
- bl MultistepInitMenuWindowBegin
- b _0810B91C
- .align 2, 0
-_0810B7E4: .4byte gWindowConfig_81E6E34
-_0810B7E8:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0810B7F2
- b _0810B960
-_0810B7F2:
- ldr r1, _0810B7FC @ =gMain
- ldr r0, _0810B800 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7FC: .4byte gMain
-_0810B800: .4byte 0x0000043c
-_0810B804:
- ldr r0, _0810B80C @ =gWindowConfig_81E6E50
- bl MultistepInitMenuWindowBegin
- b _0810B91C
- .align 2, 0
-_0810B80C: .4byte gWindowConfig_81E6E50
-_0810B810:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0810B81A
- b _0810B960
-_0810B81A:
- ldr r0, _0810B828 @ =0x02000000
- ldr r1, _0810B82C @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0810B91C
- .align 2, 0
-_0810B828: .4byte 0x02000000
-_0810B82C: .4byte 0x0001ffff
-_0810B830:
- bl sub_810B998
- lsls r0, 24
- cmp r0, 0
- bne _0810B83C
- b _0810B960
-_0810B83C:
- ldr r1, _0810B844 @ =gMain
- ldr r0, _0810B848 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B844: .4byte gMain
-_0810B848: .4byte 0x0000043c
-_0810B84C:
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- movs r0, 0
- movs r1, 0xB0
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
- movs r0, 0x1
- movs r1, 0xB0
- movs r2, 0x98
- bl CreateVerticalScrollIndicators
- b _0810B91C
-_0810B86A:
- movs r0, 0x38
- movs r1, 0x40
- movs r2, 0
- bl sub_810BA50
- ldr r1, _0810B884 @ =0x02000000
- ldr r2, _0810B888 @ =0x0001fffe
- adds r1, r2
- strb r0, [r1]
- ldr r1, _0810B88C @ =gMain
- ldr r0, _0810B890 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B884: .4byte 0x02000000
-_0810B888: .4byte 0x0001fffe
-_0810B88C: .4byte gMain
-_0810B890: .4byte 0x0000043c
-_0810B894:
- bl sub_810BC98
- bl sub_810BD08
- b _0810B91C
-_0810B89E:
- bl sub_810BB0C
- bl sub_810BB30
- ldr r0, _0810B8B8 @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- bl sub_810BC84
- ldr r1, _0810B8BC @ =gMain
- ldr r0, _0810B8C0 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B8B8: .4byte gUnknown_02039248
-_0810B8BC: .4byte gMain
-_0810B8C0: .4byte 0x0000043c
-_0810B8C4:
- ldr r3, _0810B8FC @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _0810B900 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0810B904 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0810B908 @ =sub_810B68C
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0810B90C @ =gMain
- ldr r0, _0810B910 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B8FC: .4byte 0x04000208
-_0810B900: .4byte 0x04000200
-_0810B904: .4byte REG_DISPSTAT
-_0810B908: .4byte sub_810B68C
-_0810B90C: .4byte gMain
-_0810B910: .4byte 0x0000043c
-_0810B914:
- bl sub_8055870
- cmp r0, 0x1
- beq _0810B960
-_0810B91C:
- ldr r1, _0810B92C @ =gMain
- ldr r2, _0810B930 @ =0x0000043c
- adds r1, r2
-_0810B922:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810B960
- .align 2, 0
-_0810B92C: .4byte gMain
-_0810B930: .4byte 0x0000043c
-_0810B934:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _0810B958 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0810B95C @ =sub_810B674
- bl SetMainCallback2
- movs r0, 0x1
- b _0810B962
- .align 2, 0
-_0810B958: .4byte gPaletteFade
-_0810B95C: .4byte sub_810B674
-_0810B960:
- movs r0, 0
-_0810B962:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810B6C0
-
- thumb_func_start sub_810B96C
-sub_810B96C: @ 810B96C
- push {lr}
-_0810B96E:
- bl sub_810B6C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B988
- ldr r0, _0810B984 @ =sub_810BF7C
- movs r1, 0
- bl CreateTask
- b _0810B994
- .align 2, 0
-_0810B984: .4byte sub_810BF7C
-_0810B988:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B96E
-_0810B994:
- pop {r0}
- bx r0
- thumb_func_end sub_810B96C
-
- thumb_func_start sub_810B998
-sub_810B998: @ 810B998
- push {lr}
- ldr r0, _0810B9B0 @ =0x02000000
- ldr r1, _0810B9B4 @ =0x0001ffff
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810BA48
- lsls r0, 2
- ldr r1, _0810B9B8 @ =_0810B9BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810B9B0: .4byte 0x02000000
-_0810B9B4: .4byte 0x0001ffff
-_0810B9B8: .4byte _0810B9BC
- .align 2, 0
-_0810B9BC:
- .4byte _0810B9D0
- .4byte _0810B9E4
- .4byte _0810B9F8
- .4byte _0810BA08
- .4byte _0810BA28
-_0810B9D0:
- ldr r0, _0810B9DC @ =gMenuPokeblock_Gfx
- ldr r1, _0810B9E0 @ =0x06008000
- bl LZDecompressVram
- b _0810BA0E
- .align 2, 0
-_0810B9DC: .4byte gMenuPokeblock_Gfx
-_0810B9E0: .4byte 0x06008000
-_0810B9E4:
- ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap
- ldr r1, _0810B9F4 @ =gBGTilemapBuffers + 0x1000
- bl sub_800D238
- b _0810BA0E
- .align 2, 0
-_0810B9F0: .4byte gMenuPokeblock_Tilemap
-_0810B9F4: .4byte gBGTilemapBuffers + 0x1000
-_0810B9F8:
- ldr r0, _0810BA04 @ =gMenuPokeblock_Pal
- movs r1, 0
- movs r2, 0xC0
- bl LoadCompressedPalette
- b _0810BA0E
- .align 2, 0
-_0810BA04: .4byte gMenuPokeblock_Pal
-_0810BA08:
- ldr r0, _0810BA1C @ =gUnknown_083F7F74
- bl LoadCompressedObjectPic
-_0810BA0E:
- ldr r1, _0810BA20 @ =0x02000000
- ldr r0, _0810BA24 @ =0x0001ffff
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810BA48
- .align 2, 0
-_0810BA1C: .4byte gUnknown_083F7F74
-_0810BA20: .4byte 0x02000000
-_0810BA24: .4byte 0x0001ffff
-_0810BA28:
- ldr r0, _0810BA3C @ =gUnknown_083F7F7C
- bl LoadCompressedObjectPalette
- ldr r0, _0810BA40 @ =0x02000000
- ldr r1, _0810BA44 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _0810BA4A
- .align 2, 0
-_0810BA3C: .4byte gUnknown_083F7F7C
-_0810BA40: .4byte 0x02000000
-_0810BA44: .4byte 0x0001ffff
-_0810BA48:
- movs r0, 0
-_0810BA4A:
- pop {r1}
- bx r1
- thumb_func_end sub_810B998
-
- thumb_func_start sub_810BA50
-sub_810BA50: @ 810BA50
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0810BA78 @ =gSpriteTemplate_83F7F84
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810BA78: .4byte gSpriteTemplate_83F7F84
- thumb_func_end sub_810BA50
-
- thumb_func_start sub_810BA7C
-sub_810BA7C: @ 810BA7C
- push {lr}
- ldr r1, _0810BA98 @ =gUnknown_02039244
- strb r0, [r1]
- ldrb r2, [r1]
- cmp r2, 0x2
- beq _0810BAA8
- cmp r2, 0x3
- beq _0810BAC0
- ldr r1, _0810BA9C @ =gUnknown_03000758
- ldr r0, _0810BAA0 @ =gUnknown_083F7F1C
- str r0, [r1]
- ldr r1, _0810BAA4 @ =gUnknown_0203924C
- movs r0, 0x3
- b _0810BACA
- .align 2, 0
-_0810BA98: .4byte gUnknown_02039244
-_0810BA9C: .4byte gUnknown_03000758
-_0810BAA0: .4byte gUnknown_083F7F1C
-_0810BAA4: .4byte gUnknown_0203924C
-_0810BAA8:
- ldr r0, _0810BAB4 @ =gUnknown_03000758
- ldr r1, _0810BAB8 @ =gUnknown_083F7F1F
- str r1, [r0]
- ldr r0, _0810BABC @ =gUnknown_0203924C
- strb r2, [r0]
- b _0810BACC
- .align 2, 0
-_0810BAB4: .4byte gUnknown_03000758
-_0810BAB8: .4byte gUnknown_083F7F1F
-_0810BABC: .4byte gUnknown_0203924C
-_0810BAC0:
- ldr r1, _0810BAD0 @ =gUnknown_03000758
- ldr r0, _0810BAD4 @ =gUnknown_083F7F21
- str r0, [r1]
- ldr r1, _0810BAD8 @ =gUnknown_0203924C
- movs r0, 0x2
-_0810BACA:
- strb r0, [r1]
-_0810BACC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810BAD0: .4byte gUnknown_03000758
-_0810BAD4: .4byte gUnknown_083F7F21
-_0810BAD8: .4byte gUnknown_0203924C
- thumb_func_end sub_810BA7C
-
- thumb_func_start sub_810BADC
-sub_810BADC: @ 810BADC
- push {lr}
- movs r0, 0x2
- bl sub_810BA7C
- ldr r0, _0810BAF0 @ =sub_810B96C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810BAF0: .4byte sub_810B96C
- thumb_func_end sub_810BADC
-
- thumb_func_start sub_810BAF4
-sub_810BAF4: @ 810BAF4
- push {lr}
- movs r0, 0x3
- bl sub_810BA7C
- ldr r0, _0810BB08 @ =sub_810B96C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB08: .4byte sub_810B96C
- thumb_func_end sub_810BAF4
-
- thumb_func_start sub_810BB0C
-sub_810BB0C: @ 810BB0C
- push {lr}
- ldr r0, _0810BB28 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BB2C @ =0x00000111
- bl ItemId_GetItem
- movs r1, 0x2
- movs r2, 0x1
- movs r3, 0x48
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB28: .4byte gWindowConfig_81E6E34
-_0810BB2C: .4byte 0x00000111
- thumb_func_end sub_810BB0C
-
- thumb_func_start sub_810BB30
-sub_810BB30: @ 810BB30
- push {lr}
- ldr r0, _0810BB70 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BB74 @ =gContestStatsText_Spicy
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- ldr r0, _0810BB78 @ =gContestStatsText_Dry
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _0810BB7C @ =gContestStatsText_Sweet
- movs r1, 0x2
- movs r2, 0x11
- bl MenuPrint
- ldr r0, _0810BB80 @ =gContestStatsText_Bitter
- movs r1, 0x8
- movs r2, 0xD
- bl MenuPrint
- ldr r0, _0810BB84 @ =gContestStatsText_Sour
- movs r1, 0x8
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB70: .4byte gWindowConfig_81E6E34
-_0810BB74: .4byte gContestStatsText_Spicy
-_0810BB78: .4byte gContestStatsText_Dry
-_0810BB7C: .4byte gContestStatsText_Sweet
-_0810BB80: .4byte gContestStatsText_Bitter
-_0810BB84: .4byte gContestStatsText_Sour
- thumb_func_end sub_810BB30
-
- thumb_func_start sub_810BB88
-sub_810BB88: @ 810BB88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0810BBF4 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- mov r6, r8
- adds r0, r6, 0
- adds r0, 0x8
- cmp r6, r0
- bgt _0810BC6C
- ldr r0, _0810BBF8 @ =gStringVar1
- mov r9, r0
- ldr r1, _0810BBFC @ =gSaveBlock1
- mov r10, r1
-_0810BBB0:
- mov r1, r8
- subs r0, r6, r1
- lsls r0, 25
- lsrs r7, r0, 24
- ldr r0, _0810BC00 @ =gUnknown_02039248
- ldrb r0, [r0, 0x2]
- cmp r6, r0
- bne _0810BC08
- mov r0, r9
- ldr r1, _0810BC04 @ =gContestStatsText_StowCase
- movs r2, 0x78
- movs r3, 0
- bl sub_8072C74
- movs r2, 0x1
- orrs r2, r7
- mov r0, r9
- movs r1, 0xF
- bl MenuPrint
- mov r0, r8
- adds r0, 0x8
- cmp r6, r0
- beq _0810BC6C
- adds r1, r7, 0x3
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0xF
- movs r2, 0x1D
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- b _0810BC6C
- .align 2, 0
-_0810BBF4: .4byte gWindowConfig_81E6E34
-_0810BBF8: .4byte gStringVar1
-_0810BBFC: .4byte gSaveBlock1
-_0810BC00: .4byte gUnknown_02039248
-_0810BC04: .4byte gContestStatsText_StowCase
-_0810BC08:
- lsls r5, r6, 3
- mov r1, r10
- adds r0, r5, r1
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _0810BC7C @ =gPokeblockNames
- adds r0, r1
- ldr r1, [r0]
- mov r0, r9
- movs r2, 0x5E
- movs r3, 0
- bl sub_8072C74
- adds r4, r0, 0
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x14
- strb r0, [r4, 0x1]
- movs r0, 0x6
- strb r0, [r4, 0x2]
- adds r4, 0x3
- ldr r0, _0810BC80 @ =gSaveBlock1 + 0x7F8
- adds r5, r0
- adds r0, r5, 0
- bl sub_810C9B0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r2, 0x1
- orrs r2, r7
- mov r0, r9
- movs r1, 0xF
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r0, 0x8
- cmp r6, r0
- ble _0810BBB0
-_0810BC6C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BC7C: .4byte gPokeblockNames
-_0810BC80: .4byte gSaveBlock1 + 0x7F8
- thumb_func_end sub_810BB88
-
- thumb_func_start sub_810BC84
-sub_810BC84: @ 810BC84
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_810BB88
- movs r0, 0
- bl sub_810BDAC
- pop {r0}
- bx r0
- thumb_func_end sub_810BC84
-
- thumb_func_start sub_810BC98
-sub_810BC98: @ 810BC98
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r2, 0
- ldr r0, _0810BD00 @ =gSaveBlock1
- mov r9, r0
-_0810BCA6:
- adds r1, r2, 0x1
- lsls r0, r1, 16
- lsrs r5, r0, 16
- mov r8, r1
- cmp r5, 0x27
- bhi _0810BCE8
- lsls r1, r2, 3
- mov r2, r9
- adds r0, r1, r2
- movs r2, 0xFF
- lsls r2, 3
- adds r7, r0, r2
- ldr r0, _0810BD04 @ =gSaveBlock1 + 0x7F8
- mov r12, r0
- adds r6, r1, r0
-_0810BCC4:
- ldrb r0, [r7]
- cmp r0, 0
- bne _0810BCDE
- ldr r3, [r6]
- ldr r4, [r6, 0x4]
- lsls r2, r5, 3
- add r2, r12
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- str r0, [r6]
- str r1, [r6, 0x4]
- str r3, [r2]
- str r4, [r2, 0x4]
-_0810BCDE:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x27
- bls _0810BCC4
-_0810BCE8:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r2, r0, 16
- cmp r2, 0x26
- bls _0810BCA6
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BD00: .4byte gSaveBlock1
-_0810BD04: .4byte gSaveBlock1 + 0x7F8
- thumb_func_end sub_810BC98
-
- thumb_func_start sub_810BD08
-sub_810BD08: @ 810BD08
- push {r4,r5,lr}
- ldr r1, _0810BD5C @ =gUnknown_02039248
- movs r0, 0
- strb r0, [r1, 0x2]
- movs r2, 0
- ldr r5, _0810BD60 @ =gSaveBlock1
- movs r4, 0xFF
- lsls r4, 3
- adds r3, r1, 0
-_0810BD1A:
- lsls r0, r2, 3
- adds r0, r5
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810BD2C
- ldrb r0, [r3, 0x2]
- adds r0, 0x1
- strb r0, [r3, 0x2]
-_0810BD2C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x27
- bls _0810BD1A
- ldrb r0, [r1, 0x2]
- cmp r0, 0x7
- bls _0810BD3E
- movs r0, 0x8
-_0810BD3E:
- strb r0, [r1, 0x3]
- ldrb r2, [r1, 0x1]
- adds r0, r2, 0
- adds r0, 0x8
- ldrb r3, [r1, 0x2]
- cmp r0, r3
- ble _0810BD54
- cmp r2, 0
- beq _0810BD54
- subs r0, r2, 0x1
- strb r0, [r1, 0x1]
-_0810BD54:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BD5C: .4byte gUnknown_02039248
-_0810BD60: .4byte gSaveBlock1
- thumb_func_end sub_810BD08
-
- thumb_func_start sub_810BD64
-sub_810BD64: @ 810BD64
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r5, _0810BDA4 @ =gUnknown_02039248
- ldr r4, _0810BDA8 @ =gBGTilemapBuffers + 0x1000
-_0810BD70:
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 5
- adds r1, r2, 0
- adds r1, 0xF
- adds r0, r1
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
- ldrb r0, [r5]
- lsls r0, 6
- adds r0, 0x40
- adds r0, r1
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xD
- bls _0810BD70
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BDA4: .4byte gUnknown_02039248
-_0810BDA8: .4byte gBGTilemapBuffers + 0x1000
- thumb_func_end sub_810BD64
-
- thumb_func_start sub_810BDAC
-sub_810BDAC: @ 810BDAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- cmp r0, 0
- bne _0810BDCC
- ldr r0, _0810BDC4 @ =0x00001005
- ldr r1, _0810BDC8 @ =0x00001014
- bl sub_810BD64
- b _0810BDD4
- .align 2, 0
-_0810BDC4: .4byte 0x00001005
-_0810BDC8: .4byte 0x00001014
-_0810BDCC:
- ldr r0, _0810BDE8 @ =0x00002005
- ldr r1, _0810BDEC @ =0x00002014
- bl sub_810BD64
-_0810BDD4:
- ldr r0, _0810BDF0 @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0810BDF4
- movs r0, 0
- movs r1, 0
- bl sub_80F979C
- b _0810BDFC
- .align 2, 0
-_0810BDE8: .4byte 0x00002005
-_0810BDEC: .4byte 0x00002014
-_0810BDF0: .4byte gUnknown_02039248
-_0810BDF4:
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
-_0810BDFC:
- ldr r2, _0810BE1C @ =gUnknown_02039248
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bls _0810BE20
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _0810BE20
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
- b _0810BE28
- .align 2, 0
-_0810BE1C: .4byte gUnknown_02039248
-_0810BE20:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
-_0810BE28:
- movs r6, 0
- ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000
- movs r0, 0xF
- mov r8, r0
-_0810BE30:
- adds r0, r6, 0
- movs r1, 0x3
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 18
- ldr r1, _0810BE98 @ =0x000001a1
- adds r4, r1
- adds r0, r6, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r5, r4, r1
- ldr r1, _0810BE9C @ =gUnknown_02039248
- ldrb r2, [r1]
- ldrb r0, [r1, 0x1]
- adds r0, r2, r0
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810BEB8
- lsls r0, 3
- ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- adds r4, r6, 0x1
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_810CA9C
- lsls r0, 16
- cmp r0, 0
- ble _0810BEA4
- lsls r1, r5, 1
- adds r1, r7
- lsls r2, r6, 12
- adds r0, r2, 0
- adds r0, 0x17
- strh r0, [r1]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- adds r2, 0x18
- strh r2, [r0]
- b _0810BECC
- .align 2, 0
-_0810BE94: .4byte gBGTilemapBuffers + 0x1000
-_0810BE98: .4byte 0x000001a1
-_0810BE9C: .4byte gUnknown_02039248
-_0810BEA0: .4byte gSaveBlock1 + 0x7F8
-_0810BEA4:
- lsls r0, r5, 1
- adds r0, r7
- mov r1, r8
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- b _0810BECC
-_0810BEB8:
- lsls r0, r5, 1
- adds r0, r7
- mov r1, r8
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- adds r4, r6, 0x1
-_0810BECC:
- lsls r0, r4, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bls _0810BE30
- ldr r0, _0810BF10 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BF14 @ =gUnknown_02039248
- ldrb r2, [r0]
- ldrb r1, [r0, 0x1]
- adds r2, r1
- ldrb r0, [r0, 0x2]
- cmp r2, r0
- beq _0810BF20
- ldr r4, _0810BF18 @ =gStringVar1
- lsls r0, r2, 3
- ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- bl sub_810C9E8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x10
- movs r3, 0x1
- bl sub_8072C14
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0x11
- bl MenuPrint
- b _0810BF2C
- .align 2, 0
-_0810BF10: .4byte gWindowConfig_81E6E34
-_0810BF14: .4byte gUnknown_02039248
-_0810BF18: .4byte gStringVar1
-_0810BF1C: .4byte gSaveBlock1 + 0x7F8
-_0810BF20:
- movs r0, 0xB
- movs r1, 0x11
- movs r2, 0xC
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0810BF2C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810BDAC
-
- thumb_func_start sub_810BF38
-sub_810BF38: @ 810BF38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0810BF6C @ =gSprites
- ldr r0, _0810BF70 @ =0x02000000
- ldr r1, _0810BF74 @ =0x0001fffe
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0810BF78 @ =sub_810C8D4
- str r1, [r0]
- adds r0, r4, 0
- bl sub_810BDAC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BF6C: .4byte gSprites
-_0810BF70: .4byte 0x02000000
-_0810BF74: .4byte 0x0001fffe
-_0810BF78: .4byte sub_810C8D4
- thumb_func_end sub_810BF38
-
- thumb_func_start sub_810BF7C
-sub_810BF7C: @ 810BF7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r0, _0810BFB8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810BF94
- b _0810C0B8
-_0810BF94:
- ldr r2, _0810BFBC @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810BFCE
- ldr r4, _0810BFC0 @ =gUnknown_02039248
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810BFC4
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- b _0810C00A
- .align 2, 0
-_0810BFB8: .4byte gPaletteFade
-_0810BFBC: .4byte gMain
-_0810BFC0: .4byte gUnknown_02039248
-_0810BFC4:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0810C0B8
- subs r0, 0x1
- b _0810C002
-_0810BFCE:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810C012
- ldr r4, _0810BFF0 @ =gUnknown_02039248
- ldrb r0, [r4]
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0810BFF4
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810C00A
- .align 2, 0
-_0810BFF0: .4byte gUnknown_02039248
-_0810BFF4:
- ldrb r1, [r4, 0x1]
- ldrb r0, [r4]
- adds r0, r1, r0
- ldrb r2, [r4, 0x2]
- cmp r0, r2
- beq _0810C0B8
- adds r0, r1, 0x1
-_0810C002:
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- bl sub_810BB88
-_0810C00A:
- movs r0, 0
- bl sub_810BF38
- b _0810C0B8
-_0810C012:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810C05C
- ldr r4, _0810C050 @ =gUnknown_02039248
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4]
- adds r0, r1
- ldrb r1, [r4, 0x2]
- cmp r0, r1
- beq _0810C0B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_810BDAC
- ldr r1, _0810C054 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldrb r2, [r4]
- adds r1, r2
- strh r1, [r0, 0x8]
- ldr r1, _0810C058 @ =sub_810C0C8
- str r1, [r0]
- b _0810C0B8
- .align 2, 0
-_0810C050: .4byte gUnknown_02039248
-_0810C054: .4byte gTasks
-_0810C058: .4byte sub_810C0C8
-_0810C05C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C09C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810C088 @ =gUnknown_02039248
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _0810C094
- ldr r1, _0810C08C @ =gScriptResult
- ldr r2, _0810C090 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_810C31C
- b _0810C0B8
- .align 2, 0
-_0810C088: .4byte gUnknown_02039248
-_0810C08C: .4byte gScriptResult
-_0810C090: .4byte 0x0000ffff
-_0810C094:
- adds r0, r5, 0
- bl sub_810C368
- b _0810C0B8
-_0810C09C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C0B8
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0810C0C0 @ =gScriptResult
- ldr r2, _0810C0C4 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_810C31C
-_0810C0B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C0C0: .4byte gScriptResult
-_0810C0C4: .4byte 0x0000ffff
- thumb_func_end sub_810BF7C
-
- thumb_func_start sub_810C0C8
-sub_810C0C8: @ 810C0C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0810C0F4 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810C110
- ldr r4, _0810C0F8 @ =gUnknown_02039248
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810C0FC
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- b _0810C158
- .align 2, 0
-_0810C0F4: .4byte gMain
-_0810C0F8: .4byte gUnknown_02039248
-_0810C0FC:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0810C1BA
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- b _0810C150
-_0810C110:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810C168
- ldr r4, _0810C134 @ =gUnknown_02039248
- ldrb r0, [r4]
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0810C138
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810C158
- .align 2, 0
-_0810C134: .4byte gUnknown_02039248
-_0810C138:
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4]
- adds r0, r1
- ldrb r1, [r4, 0x2]
- cmp r0, r1
- beq _0810C1BA
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
-_0810C150:
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- bl sub_810BB88
-_0810C158:
- movs r0, 0x1
- bl sub_810BF38
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_810C1C8
- b _0810C1BA
-_0810C168:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810C17A
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810C190
-_0810C17A:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- adds r0, r5, 0
- bl sub_810C23C
- b _0810C1AC
-_0810C190:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C1BA
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- movs r0, 0
- bl sub_810BDAC
-_0810C1AC:
- ldr r0, _0810C1C0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810C1C4 @ =sub_810BF7C
- str r0, [r1]
-_0810C1BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C1C0: .4byte gTasks
-_0810C1C4: .4byte sub_810BF7C
- thumb_func_end sub_810C0C8
-
- thumb_func_start sub_810C1C8
-sub_810C1C8: @ 810C1C8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- ldr r6, _0810C22C @ =0x00001005
- cmp r1, 0
- bne _0810C1D8
- movs r6, 0x5
-_0810C1D8:
- ldr r1, _0810C230 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r2, _0810C234 @ =gUnknown_02039248
- ldrb r1, [r2, 0x1]
- ldrh r0, [r0, 0x8]
- subs r0, r1
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r0, 0x8
- bhi _0810C226
- asrs r0, r1, 16
- ldrb r2, [r2]
- cmp r0, r2
- beq _0810C226
- movs r2, 0
- lsls r0, 1
- adds r1, r0, 0x1
- lsls r5, r1, 5
- ldr r3, _0810C238 @ =gBGTilemapBuffers + 0x1000
- adds r0, 0x2
- lsls r4, r0, 5
-_0810C208:
- adds r0, r2, 0
- adds r0, 0xF
- adds r1, r5, r0
- lsls r1, 1
- adds r1, r3
- strh r6, [r1]
- adds r0, r4, r0
- lsls r0, 1
- adds r0, r3
- strh r6, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xD
- bls _0810C208
-_0810C226:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C22C: .4byte 0x00001005
-_0810C230: .4byte gTasks
-_0810C234: .4byte gUnknown_02039248
-_0810C238: .4byte gBGTilemapBuffers + 0x1000
- thumb_func_end sub_810C1C8
-
- thumb_func_start sub_810C23C
-sub_810C23C: @ 810C23C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r7, _0810C25C @ =gUnknown_02039248
- ldrb r0, [r7]
- ldrb r2, [r7, 0x1]
- adds r0, r2
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r7, 0x2]
- cmp r0, r2
- bne _0810C260
- movs r0, 0
- bl sub_810BDAC
- b _0810C2A2
- .align 2, 0
-_0810C25C: .4byte gUnknown_02039248
-_0810C260:
- ldr r4, _0810C2A8 @ =gSaveBlock1
- lsls r3, r0, 3
- movs r0, 0xFF
- lsls r0, 3
- adds r4, r0
- adds r3, r4
- ldr r5, [r3]
- ldr r6, [r3, 0x4]
- ldr r0, _0810C2AC @ =gTasks
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 3
- adds r2, r0
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r0, 3
- adds r0, r4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r3]
- str r1, [r3, 0x4]
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r0, 3
- adds r0, r4
- str r5, [r0]
- str r6, [r0, 0x4]
- ldrb r0, [r7, 0x1]
- bl sub_810BB88
- movs r0, 0
- bl sub_810BDAC
-_0810C2A2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C2A8: .4byte gSaveBlock1
-_0810C2AC: .4byte gTasks
- thumb_func_end sub_810C23C
-
- thumb_func_start sub_810C2B0
-sub_810C2B0: @ 810C2B0
- push {lr}
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- bl BuyMenuFreeMemory
- pop {r0}
- bx r0
- thumb_func_end sub_810C2B0
-
- thumb_func_start sub_810C2C8
-sub_810C2C8: @ 810C2C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810C308 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810C300
- ldr r4, _0810C30C @ =gUnknown_02039244
- ldrb r0, [r4]
- cmp r0, 0x3
- bne _0810C2E8
- ldr r1, _0810C310 @ =gUnknown_0300485C
- ldr r0, _0810C314 @ =sub_8080990
- str r0, [r1]
-_0810C2E8:
- bl sub_810C2B0
- ldr r0, _0810C318 @ =gUnknown_083F7EA8
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0810C300:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C308: .4byte gPaletteFade
-_0810C30C: .4byte gUnknown_02039244
-_0810C310: .4byte gUnknown_0300485C
-_0810C314: .4byte sub_8080990
-_0810C318: .4byte gUnknown_083F7EA8
- thumb_func_end sub_810C2C8
-
- thumb_func_start sub_810C31C
-sub_810C31C: @ 810C31C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- movs r5, 0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0810C358 @ =gUnknown_02039244
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0810C342
- ldr r0, _0810C35C @ =gScriptItemId
- strh r5, [r0]
-_0810C342:
- ldr r0, _0810C360 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810C364 @ =sub_810C2C8
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C358: .4byte gUnknown_02039244
-_0810C35C: .4byte gScriptItemId
-_0810C360: .4byte gTasks
-_0810C364: .4byte sub_810C2C8
- thumb_func_end sub_810C31C
-
- thumb_func_start sub_810C368
-sub_810C368: @ 810C368
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r0, _0810C3E8 @ =gUnknown_02039244
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0810C37C
- movs r4, 0x2
-_0810C37C:
- movs r0, 0
- bl sub_80F98A4
- movs r0, 0x1
- bl sub_80F98A4
- ldr r0, _0810C3EC @ =gWindowConfig_81E6E50
- bl BasicInitMenuWindow
- adds r1, r4, 0x4
- movs r0, 0x7
- movs r2, 0xD
- movs r3, 0xB
- bl MenuDrawTextWindow
- adds r4, 0x5
- ldr r5, _0810C3F0 @ =gUnknown_0203924C
- ldrb r2, [r5]
- ldr r3, _0810C3F4 @ =gUnknown_083F7EF4
- ldr r0, _0810C3F8 @ =gUnknown_03000758
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x8
- adds r1, r4, 0
- bl PrintMenuItemsReordered
- ldrb r3, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x8
- adds r2, r4, 0
- bl InitMenu
- ldr r2, _0810C3FC @ =gScriptItemId
- ldr r1, _0810C400 @ =gUnknown_02039248
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- adds r0, r1
- strh r0, [r2]
- ldr r1, _0810C404 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C408 @ =sub_810C40C
- str r1, [r0]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C3E8: .4byte gUnknown_02039244
-_0810C3EC: .4byte gWindowConfig_81E6E50
-_0810C3F0: .4byte gUnknown_0203924C
-_0810C3F4: .4byte gUnknown_083F7EF4
-_0810C3F8: .4byte gUnknown_03000758
-_0810C3FC: .4byte gScriptItemId
-_0810C400: .4byte gUnknown_02039248
-_0810C404: .4byte gTasks
-_0810C408: .4byte sub_810C40C
- thumb_func_end sub_810C368
-
- thumb_func_start sub_810C40C
-sub_810C40C: @ 810C40C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _0810C43C @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810C440
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0810C4BC
- .align 2, 0
-_0810C43C: .4byte gMain
-_0810C440:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810C46C
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810C468 @ =gUnknown_0203924C
- ldrb r1, [r1]
- subs r1, 0x1
- cmp r0, r1
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0810C4BC
- .align 2, 0
-_0810C468: .4byte gUnknown_0203924C
-_0810C46C:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C4A8
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0810C4A0 @ =gUnknown_083F7EF4
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810C4A4 @ =gUnknown_03000758
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _0810C4BC
- .align 2, 0
-_0810C4A0: .4byte gUnknown_083F7EF4
-_0810C4A4: .4byte gUnknown_03000758
-_0810C4A8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_810C748
-_0810C4BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810C40C
-
- thumb_func_start sub_810C4C4
-sub_810C4C4: @ 810C4C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810C4F8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810C4F0
- bl sub_810C2B0
- ldr r0, _0810C4FC @ =gScriptItemId
- ldrh r0, [r0]
- lsls r0, 3
- ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- ldr r1, _0810C504 @ =sub_810B96C
- bl sub_8136130
- adds r0, r4, 0
- bl DestroyTask
-_0810C4F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C4F8: .4byte gPaletteFade
-_0810C4FC: .4byte gScriptItemId
-_0810C500: .4byte gSaveBlock1 + 0x7F8
-_0810C504: .4byte sub_810B96C
- thumb_func_end sub_810C4C4
-
- thumb_func_start sub_810C508
-sub_810C508: @ 810C508
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C538 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C53C @ =sub_810C4C4
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C538: .4byte gTasks
-_0810C53C: .4byte sub_810C4C4
- thumb_func_end sub_810C508
-
- thumb_func_start sub_810C540
-sub_810C540: @ 810C540
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50
- bl BasicInitMenuWindow
- bl sub_8072DEC
- movs r0, 0x7
- movs r1, 0x4
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r0, _0810C5A4 @ =gStringVar1
- ldr r4, _0810C5A8 @ =gPokeblockNames
- ldr r3, _0810C5AC @ =gSaveBlock1
- ldr r2, _0810C5B0 @ =gUnknown_02039248
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- adds r1, r2
- lsls r1, 3
- adds r1, r3
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r4
- ldr r1, [r1]
- bl StringCopy
- ldr r4, _0810C5B4 @ =gStringVar4
- ldr r1, _0810C5B8 @ =gContestStatsText_ThrowAwayPrompt
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _0810C5BC @ =sub_810C5EC
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C5A0: .4byte gWindowConfig_81E6E50
-_0810C5A4: .4byte gStringVar1
-_0810C5A8: .4byte gPokeblockNames
-_0810C5AC: .4byte gSaveBlock1
-_0810C5B0: .4byte gUnknown_02039248
-_0810C5B4: .4byte gStringVar4
-_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt
-_0810C5BC: .4byte sub_810C5EC
- thumb_func_end sub_810C540
-
- thumb_func_start sub_810C5C0
-sub_810C5C0: @ 810C5C0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- ldr r1, _0810C5E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C5E8 @ =sub_810C540
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C5E4: .4byte gTasks
-_0810C5E8: .4byte sub_810C540
- thumb_func_end sub_810C5C0
-
- thumb_func_start sub_810C5EC
-sub_810C5EC: @ 810C5EC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0810C60C @ =gUnknown_083F7F24
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C60C: .4byte gUnknown_083F7F24
- thumb_func_end sub_810C5EC
-
- thumb_func_start sub_810C610
-sub_810C610: @ 810C610
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r1, _0810C658 @ =gUnknown_02039248
- ldrb r0, [r1, 0x1]
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_810CA6C
- ldr r5, _0810C65C @ =gStringVar4
- ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r2, _0810C664 @ =sub_810C704
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- bl sub_810BC98
- bl sub_810BD08
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C658: .4byte gUnknown_02039248
-_0810C65C: .4byte gStringVar4
-_0810C660: .4byte gContestStatsText_WasThrownAway
-_0810C664: .4byte sub_810C704
- thumb_func_end sub_810C610
-
- thumb_func_start sub_810C668
-sub_810C668: @ 810C668
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- ldr r2, _0810C6CC @ =gUnknown_02039248
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bls _0810C698
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _0810C698
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
-_0810C698:
- ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50
- bl BasicInitMenuWindow
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0810C6D4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C6D8 @ =sub_810BF7C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C6CC: .4byte gUnknown_02039248
-_0810C6D0: .4byte gWindowConfig_81E6E50
-_0810C6D4: .4byte gTasks
-_0810C6D8: .4byte sub_810BF7C
- thumb_func_end sub_810C668
-
- thumb_func_start sub_810C6DC
-sub_810C6DC: @ 810C6DC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0810C700 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810C6F6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C6FC
-_0810C6F6:
- adds r0, r2, 0
- bl sub_810C668
-_0810C6FC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810C700: .4byte gMain
- thumb_func_end sub_810C6DC
-
- thumb_func_start sub_810C704
-sub_810C704: @ 810C704
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810C738 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810C73C @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- bl sub_810BC84
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- ldr r1, _0810C740 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C744 @ =sub_810C6DC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C738: .4byte gWindowConfig_81E6E34
-_0810C73C: .4byte gUnknown_02039248
-_0810C740: .4byte gTasks
-_0810C744: .4byte sub_810C6DC
- thumb_func_end sub_810C704
-
- thumb_func_start sub_810C748
-sub_810C748: @ 810C748
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- bl sub_8072DEC
- movs r0, 0x7
- movs r1, 0x4
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r1, _0810C780 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C784 @ =sub_810BF7C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C780: .4byte gTasks
-_0810C784: .4byte sub_810BF7C
- thumb_func_end sub_810C748
-
- thumb_func_start sub_810C788
-sub_810C788: @ 810C788
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0810C834 @ =gEnemyParty
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _0810C838 @ =gScriptItemId
- ldrh r1, [r7]
- lsls r1, 3
- ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8
- adds r1, r5
- bl sub_810CAE4
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810C840 @ =gUnknown_030041C0
- ldr r2, _0810C844 @ =gPokeblockNames
- ldr r1, _0810C848 @ =0xfffff808
- adds r5, r1
- ldrh r1, [r7]
- lsls r1, 3
- adds r1, r5
- movs r6, 0xFF
- lsls r6, 3
- adds r1, r6
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldrb r0, [r7]
- bl sub_810CA6C
- ldrh r0, [r7]
- lsls r0, 3
- adds r0, r5
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 8
- strh r0, [r7]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0
- bne _0810C7F4
- adds r0, 0x1
- strh r0, [r7]
-_0810C7F4:
- cmp r4, 0
- ble _0810C7FE
- ldrh r0, [r7]
- adds r0, 0x2
- strh r0, [r7]
-_0810C7FE:
- cmp r4, 0
- bge _0810C808
- ldrh r0, [r7]
- adds r0, 0x3
- strh r0, [r7]
-_0810C808:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C84C @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C850 @ =sub_810C2C8
- str r1, [r0]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C834: .4byte gEnemyParty
-_0810C838: .4byte gScriptItemId
-_0810C83C: .4byte gSaveBlock1 + 0x7F8
-_0810C840: .4byte gUnknown_030041C0
-_0810C844: .4byte gPokeblockNames
-_0810C848: .4byte 0xfffff808
-_0810C84C: .4byte gTasks
-_0810C850: .4byte sub_810C2C8
- thumb_func_end sub_810C788
-
- thumb_func_start sub_810C854
-sub_810C854: @ 810C854
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0810C8B8 @ =gScriptItemId
- ldrb r0, [r4]
- bl SafariZoneActivatePokeblockFeeder
- ldr r0, _0810C8BC @ =gStringVar1
- ldr r3, _0810C8C0 @ =gPokeblockNames
- ldr r2, _0810C8C4 @ =gSaveBlock1
- ldrh r1, [r4]
- lsls r1, 3
- adds r1, r2
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl StringCopy
- ldr r1, _0810C8C8 @ =gScriptResult
- ldrh r0, [r4]
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl sub_810CA6C
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C8CC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C8D0 @ =sub_810C2C8
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C8B8: .4byte gScriptItemId
-_0810C8BC: .4byte gStringVar1
-_0810C8C0: .4byte gPokeblockNames
-_0810C8C4: .4byte gSaveBlock1
-_0810C8C8: .4byte gScriptResult
-_0810C8CC: .4byte gTasks
-_0810C8D0: .4byte sub_810C2C8
- thumb_func_end sub_810C854
-
- thumb_func_start sub_810C8D4
-sub_810C8D4: @ 810C8D4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- ble _0810C8E4
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0810C8E4:
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _0810C8F2
- cmp r5, 0x1
- beq _0810C918
- b _0810C944
-_0810C8F2:
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _0810C914 @ =gUnknown_083F7F70
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- strh r5, [r4, 0x30]
- b _0810C944
- .align 2, 0
-_0810C914: .4byte gUnknown_083F7F70
-_0810C918:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- ble _0810C944
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- strh r2, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, _0810C94C @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_0810C944:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C94C: .4byte SpriteCallbackDummy
- thumb_func_end sub_810C8D4
-
- thumb_func_start sub_810C950
-sub_810C950: @ 810C950
- lsls r0, 24
- ldr r1, _0810C988 @ =gSaveBlock1
- lsrs r0, 21
- adds r0, r1
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r3, _0810C98C @ =0x000007f9
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0810C990 @ =0x000007fe
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0810C988: .4byte gSaveBlock1
-_0810C98C: .4byte 0x000007f9
-_0810C990: .4byte 0x000007fe
- thumb_func_end sub_810C950
-
- thumb_func_start sub_810C994
-sub_810C994: @ 810C994
- push {r4,lr}
- movs r4, 0
-_0810C998:
- adds r0, r4, 0
- bl sub_810C950
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x27
- bls _0810C998
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810C994
-
- thumb_func_start sub_810C9B0
-sub_810C9B0: @ 810C9B0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_810CA9C
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x1
-_0810C9C0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_810CA9C
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bcs _0810C9D8
- adds r5, r0, 0
-_0810C9D8:
- adds r1, r4, 0
- cmp r1, 0x4
- bls _0810C9C0
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810C9B0
-
- thumb_func_start sub_810C9E8
-sub_810C9E8: @ 810C9E8
- push {lr}
- movs r1, 0x6
- bl sub_810CA9C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x63
- bls _0810C9FA
- movs r0, 0x63
-_0810C9FA:
- pop {r1}
- bx r1
- thumb_func_end sub_810C9E8
-
- thumb_func_start sub_810CA00
-sub_810CA00: @ 810CA00
- push {lr}
- movs r1, 0
- ldr r3, _0810CA1C @ =gSaveBlock1
- movs r2, 0xFF
- lsls r2, 3
-_0810CA0A:
- lsls r0, r1, 3
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CA20
- lsls r0, r1, 24
- asrs r0, 24
- b _0810CA2E
- .align 2, 0
-_0810CA1C: .4byte gSaveBlock1
-_0810CA20:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x27
- bls _0810CA0A
- movs r0, 0x1
- negs r0, r0
-_0810CA2E:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA00
-
- thumb_func_start sub_810CA34
-sub_810CA34: @ 810CA34
- push {r4,lr}
- adds r4, r0, 0
- bl sub_810CA00
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _0810CA64
- ldr r0, _0810CA60 @ =gSaveBlock1
- lsls r2, 3
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- adds r2, r0
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0x1
- b _0810CA66
- .align 2, 0
-_0810CA60: .4byte gSaveBlock1
-_0810CA64:
- movs r0, 0
-_0810CA66:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810CA34
-
- thumb_func_start sub_810CA6C
-sub_810CA6C: @ 810CA6C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0810CA90 @ =gSaveBlock1
- lsls r0, r2, 3
- adds r0, r1
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810CA94
- adds r0, r2, 0
- bl sub_810C950
- movs r0, 0x1
- b _0810CA96
- .align 2, 0
-_0810CA90: .4byte gSaveBlock1
-_0810CA94:
- movs r0, 0
-_0810CA96:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA6C
-
- thumb_func_start sub_810CA9C
-sub_810CA9C: @ 810CA9C
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0
- bne _0810CAAC
- ldrb r0, [r0]
- b _0810CADE
-_0810CAAC:
- cmp r1, 0x1
- bne _0810CAB4
- ldrb r0, [r0, 0x1]
- b _0810CADE
-_0810CAB4:
- cmp r1, 0x2
- bne _0810CABC
- ldrb r0, [r0, 0x2]
- b _0810CADE
-_0810CABC:
- cmp r1, 0x3
- bne _0810CAC4
- ldrb r0, [r0, 0x3]
- b _0810CADE
-_0810CAC4:
- cmp r1, 0x4
- bne _0810CACC
- ldrb r0, [r0, 0x4]
- b _0810CADE
-_0810CACC:
- cmp r1, 0x5
- bne _0810CAD4
- ldrb r0, [r0, 0x5]
- b _0810CADE
-_0810CAD4:
- cmp r2, 0x6
- beq _0810CADC
- movs r0, 0
- b _0810CADE
-_0810CADC:
- ldrb r0, [r0, 0x6]
-_0810CADE:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA9C
-
- thumb_func_start sub_810CAE4
-sub_810CAE4: @ 810CAE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r1
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- movs r4, 0
- ldr r1, _0810CB40 @ =gUnknown_083F7E28
- mov r9, r1
- lsls r1, r0, 2
- adds r7, r1, r0
-_0810CAFE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- adds r1, r5, 0
- bl sub_810CA9C
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- ble _0810CB2A
- adds r0, r7, r4
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r1, r0
- lsls r0, r6, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
-_0810CB2A:
- adds r4, r5, 0
- cmp r4, 0x4
- bls _0810CAFE
- lsls r0, r6, 16
- asrs r0, 16
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810CB40: .4byte gUnknown_083F7E28
- thumb_func_end sub_810CAE4
-
- thumb_func_start sub_810CB44
-sub_810CB44: @ 810CB44
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0
- bl sub_810CA9C
- lsls r0, 24
- ldr r1, _0810CB64 @ =gPokeblockNames
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CB64: .4byte gPokeblockNames
- thumb_func_end sub_810CB44
-
- thumb_func_start sub_810CB68
-sub_810CB68: @ 810CB68
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r7, _0810CB98 @ =gPokeblockNames
-_0810CB74:
- lsls r1, r4, 3
- ldr r0, _0810CB9C @ =gUnknown_083F7F9C
- adds r1, r0
- adds r0, r5, 0
- bl sub_810CAE4
- lsls r0, 16
- cmp r0, 0
- ble _0810CBA0
- adds r0, r4, 0x1
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r6, 0
- bl StringCopy
- movs r0, 0x1
- b _0810CBAC
- .align 2, 0
-_0810CB98: .4byte gPokeblockNames
-_0810CB9C: .4byte gUnknown_083F7F9C
-_0810CBA0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0810CB74
- movs r0, 0
-_0810CBAC:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810CB68
-
- thumb_func_start SetUpFieldMove_Flash
-SetUpFieldMove_Flash: @ 810CBB4
- push {lr}
- ldr r0, _0810CBDC @ =gMapHeader
- ldrb r0, [r0, 0x15]
- cmp r0, 0x1
- bne _0810CBF4
- ldr r0, _0810CBE0 @ =0x00000828
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0810CBF4
- ldr r1, _0810CBE4 @ =gUnknown_0300485C
- ldr r0, _0810CBE8 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0810CBEC @ =gUnknown_03005CE4
- ldr r0, _0810CBF0 @ =sub_810CBFC
- str r0, [r1]
- movs r0, 0x1
- b _0810CBF6
- .align 2, 0
-_0810CBDC: .4byte gMapHeader
-_0810CBE0: .4byte 0x00000828
-_0810CBE4: .4byte gUnknown_0300485C
-_0810CBE8: .4byte sub_808AB90
-_0810CBEC: .4byte gUnknown_03005CE4
-_0810CBF0: .4byte sub_810CBFC
-_0810CBF4:
- movs r0, 0
-_0810CBF6:
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Flash
-
- thumb_func_start sub_810CBFC
-sub_810CBFC: @ 810CBFC
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CC24 @ =gUnknown_0202FF84
- ldr r1, _0810CC28 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r2]
- ldr r2, _0810CC2C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0810CC30 @ =sub_810CC34
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- pop {r0}
- bx r0
- .align 2, 0
-_0810CC24: .4byte gUnknown_0202FF84
-_0810CC28: .4byte gUnknown_03005CE0
-_0810CC2C: .4byte gTasks
-_0810CC30: .4byte sub_810CC34
- thumb_func_end sub_810CBFC
-
- thumb_func_start sub_810CC34
-sub_810CC34: @ 810CC34
- push {lr}
- movs r0, 0xCF
- bl PlaySE
- ldr r0, _0810CC4C @ =0x00000828
- bl FlagSet
- ldr r0, _0810CC50 @ =gUnknown_081B694A
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_0810CC4C: .4byte 0x00000828
-_0810CC50: .4byte gUnknown_081B694A
- thumb_func_end sub_810CC34
-
- thumb_func_start sub_810CC54
-sub_810CC54: @ 810CC54
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_810CC54
-
- thumb_func_start sub_810CC6C
-sub_810CC6C: @ 810CC6C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_810CC6C
-
- thumb_func_start sub_810CC80
-sub_810CC80: @ 810CC80
- push {r4,lr}
- sub sp, 0x8
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x10
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- strh r1, [r0]
- ldr r1, _0810CD34 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0810CD38 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r4, 0
- str r4, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0810CD3C @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- strh r4, [r0]
- str r0, [r1]
- ldr r0, _0810CD40 @ =0x05000002
- str r0, [r1, 0x4]
- ldr r0, _0810CD44 @ =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl ResetTasks
- bl ResetSpriteData
- ldr r3, _0810CD48 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0810CD4C @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r0, _0810CD50 @ =sub_810CC6C
- bl SetVBlankCallback
- ldr r0, _0810CD54 @ =sub_810CC54
- bl SetMainCallback2
- bl sub_810CD5C
- lsls r0, 24
- cmp r0, 0
- bne _0810CD2A
- ldr r0, _0810CD58 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810CD2A:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CD34: .4byte 0x040000d4
-_0810CD38: .4byte 0x8100c000
-_0810CD3C: .4byte 0x85000100
-_0810CD40: .4byte 0x05000002
-_0810CD44: .4byte 0x810001ff
-_0810CD48: .4byte 0x04000208
-_0810CD4C: .4byte 0x04000200
-_0810CD50: .4byte sub_810CC6C
-_0810CD54: .4byte sub_810CC54
-_0810CD58: .4byte gMain
- thumb_func_end sub_810CC80
-
- thumb_func_start sub_810CD5C
-sub_810CD5C: @ 810CD5C
- push {r4-r7,lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r6, r0, 24
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r4, _0810CD9C @ =gUnknown_083F7FC4
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810CDB0
- adds r7, r4, 0
- adds r0, r4, 0x4
- mov r12, r0
-_0810CD7E:
- lsls r2, r3, 3
- adds r1, r2, r7
- ldrb r0, [r1]
- cmp r0, r6
- bne _0810CDA0
- ldrb r0, [r1, 0x1]
- cmp r0, r5
- bne _0810CDA0
- mov r1, r12
- adds r0, r2, r1
- ldr r0, [r0]
- bl _call_via_r0
- movs r0, 0x1
- b _0810CDB2
- .align 2, 0
-_0810CD9C: .4byte gUnknown_083F7FC4
-_0810CDA0:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CD7E
-_0810CDB0:
- movs r0, 0
-_0810CDB2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810CD5C
-
- thumb_func_start sub_810CDB8
-sub_810CDB8: @ 810CDB8
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r5, r0, 24
- lsrs r4, r1, 24
- movs r3, 0
- ldr r1, _0810CDE4 @ =gUnknown_083F7FC4
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810CDF8
- adds r6, r1, 0
-_0810CDCE:
- lsls r0, r3, 3
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, r5
- bne _0810CDE8
- ldrb r0, [r2, 0x1]
- cmp r0, r4
- bne _0810CDE8
- ldrb r0, [r2, 0x2]
- b _0810CDFA
- .align 2, 0
-_0810CDE4: .4byte gUnknown_083F7FC4
-_0810CDE8:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CDCE
-_0810CDF8:
- movs r0, 0
-_0810CDFA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810CDB8
-
- thumb_func_start fade_type_for_given_maplight_pair
-fade_type_for_given_maplight_pair: @ 810CE00
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r5, r0, 24
- lsrs r4, r1, 24
- movs r3, 0
- ldr r1, _0810CE2C @ =gUnknown_083F7FC4
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810CE40
- adds r6, r1, 0
-_0810CE16:
- lsls r0, r3, 3
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, r5
- bne _0810CE30
- ldrb r0, [r2, 0x1]
- cmp r0, r4
- bne _0810CE30
- ldrb r0, [r2, 0x3]
- b _0810CE42
- .align 2, 0
-_0810CE2C: .4byte gUnknown_083F7FC4
-_0810CE30:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CE16
-_0810CE40:
- movs r0, 0
-_0810CE42:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end fade_type_for_given_maplight_pair
-
- thumb_func_start sub_810CE48
-sub_810CE48: @ 810CE48
- push {lr}
- ldr r0, _0810CE58 @ =sub_810CE5C
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810CE58: .4byte sub_810CE5C
- thumb_func_end sub_810CE48
-
- thumb_func_start sub_810CE5C
-sub_810CE5C: @ 810CE5C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CE70 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810CE74 @ =sub_810CE78
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810CE70: .4byte gTasks
-_0810CE74: .4byte sub_810CE78
- thumb_func_end sub_810CE5C
-
- thumb_func_start sub_810CE78
-sub_810CE78: @ 810CE78
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r6, 0x80
- lsls r6, 19
- movs r5, 0
- strh r5, [r6]
- ldr r0, _0810CEE8 @ =gCaveTransitionTiles
- ldr r1, _0810CEEC @ =0x0600c000
- bl LZ77UnCompVram
- ldr r0, _0810CEF0 @ =gCaveTransitionTilemap
- ldr r1, _0810CEF4 @ =0x0600f800
- bl LZ77UnCompVram
- ldr r0, _0810CEF8 @ =gCaveTransitionPalette_White
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810CEFC @ =gUnknown_083F809C
- movs r1, 0xE0
- movs r2, 0x10
- bl LoadPalette
- ldr r1, _0810CF00 @ =REG_BLDCNT
- ldr r2, _0810CF04 @ =0x00003e41
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0810CF08 @ =REG_BLDALPHA
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r1, 0x48
- ldr r2, _0810CF0C @ =0x00001f0c
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0x8A
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r6]
- ldr r1, _0810CF10 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810CF14 @ =sub_810CF18
- str r1, [r0]
- movs r2, 0
- movs r1, 0x10
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CEE8: .4byte gCaveTransitionTiles
-_0810CEEC: .4byte 0x0600c000
-_0810CEF0: .4byte gCaveTransitionTilemap
-_0810CEF4: .4byte 0x0600f800
-_0810CEF8: .4byte gCaveTransitionPalette_White
-_0810CEFC: .4byte gUnknown_083F809C
-_0810CF00: .4byte REG_BLDCNT
-_0810CF04: .4byte 0x00003e41
-_0810CF08: .4byte REG_BLDALPHA
-_0810CF0C: .4byte 0x00001f0c
-_0810CF10: .4byte gTasks
-_0810CF14: .4byte sub_810CF18
- thumb_func_end sub_810CE78
-
- thumb_func_start sub_810CF18
-sub_810CF18: @ 810CF18
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CF44 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r2, [r3, 0xA]
- movs r1, 0x80
- lsls r1, 5
- adds r0, r2, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0810CF48 @ =REG_BLDALPHA
- strh r0, [r1]
- cmp r2, 0x10
- bhi _0810CF4C
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- b _0810CF54
- .align 2, 0
-_0810CF44: .4byte gTasks
-_0810CF48: .4byte REG_BLDALPHA
-_0810CF4C:
- movs r0, 0
- strh r0, [r3, 0xC]
- ldr r0, _0810CF58 @ =sub_810CF5C
- str r0, [r3]
-_0810CF54:
- pop {r0}
- bx r0
- .align 2, 0
-_0810CF58: .4byte sub_810CF5C
- thumb_func_end sub_810CF18
-
- thumb_func_start sub_810CF5C
-sub_810CF5C: @ 810CF5C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CF94 @ =REG_BLDALPHA
- ldr r3, _0810CF98 @ =0x00001010
- adds r1, r3, 0
- strh r1, [r2]
- ldr r2, _0810CF9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0xC]
- cmp r1, 0x7
- bhi _0810CFA4
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r1, 1
- ldr r0, _0810CFA0 @ =gUnknown_083F809C
- adds r0, r1, r0
- movs r2, 0x10
- subs r2, r1
- lsls r2, 16
- lsrs r2, 16
- movs r1, 0xE0
- bl LoadPalette
- b _0810CFB6
- .align 2, 0
-_0810CF94: .4byte REG_BLDALPHA
-_0810CF98: .4byte 0x00001010
-_0810CF9C: .4byte gTasks
-_0810CFA0: .4byte gUnknown_083F809C
-_0810CFA4:
- ldr r0, _0810CFBC @ =gCaveTransitionPalette_White
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810CFC0 @ =sub_810CFC4
- str r0, [r4]
- movs r0, 0x8
- strh r0, [r4, 0xC]
-_0810CFB6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CFBC: .4byte gCaveTransitionPalette_White
-_0810CFC0: .4byte sub_810CFC4
- thumb_func_end sub_810CF5C
-
- thumb_func_start sub_810CFC4
-sub_810CFC4: @ 810CFC4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CFE4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0810CFE8
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _0810CFF0
- .align 2, 0
-_0810CFE4: .4byte gTasks
-_0810CFE8:
- ldr r0, _0810CFF4 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810CFF0:
- pop {r0}
- bx r0
- .align 2, 0
-_0810CFF4: .4byte gMain
- thumb_func_end sub_810CFC4
-
- thumb_func_start sub_810CFF8
-sub_810CFF8: @ 810CFF8
- push {lr}
- ldr r0, _0810D008 @ =sub_810D00C
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810D008: .4byte sub_810D00C
- thumb_func_end sub_810CFF8
-
- thumb_func_start sub_810D00C
-sub_810D00C: @ 810D00C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810D020 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810D024 @ =sub_810D028
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810D020: .4byte gTasks
-_0810D024: .4byte sub_810D028
- thumb_func_end sub_810D00C
-
- thumb_func_start sub_810D028
-sub_810D028: @ 810D028
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r6, 0x80
- lsls r6, 19
- movs r4, 0
- strh r4, [r6]
- ldr r0, _0810D098 @ =gCaveTransitionTiles
- ldr r1, _0810D09C @ =0x0600c000
- bl LZ77UnCompVram
- ldr r0, _0810D0A0 @ =gCaveTransitionTilemap
- ldr r1, _0810D0A4 @ =0x0600f800
- bl LZ77UnCompVram
- ldr r0, _0810D0A8 @ =REG_BLDCNT
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _0810D0AC @ =REG_BG0CNT
- ldr r2, _0810D0B0 @ =0x00001f0c
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0x8A
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r6]
- ldr r0, _0810D0B4 @ =gCaveTransitionPalette_White
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810D0B8 @ =gCaveTransitionPalette_Black
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _0810D0BC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810D0C0 @ =sub_810D0C4
- str r1, [r0]
- movs r2, 0
- movs r1, 0x10
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- strh r2, [r0, 0xC]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D098: .4byte gCaveTransitionTiles
-_0810D09C: .4byte 0x0600c000
-_0810D0A0: .4byte gCaveTransitionTilemap
-_0810D0A4: .4byte 0x0600f800
-_0810D0A8: .4byte REG_BLDCNT
-_0810D0AC: .4byte REG_BG0CNT
-_0810D0B0: .4byte 0x00001f0c
-_0810D0B4: .4byte gCaveTransitionPalette_White
-_0810D0B8: .4byte gCaveTransitionPalette_Black
-_0810D0BC: .4byte gTasks
-_0810D0C0: .4byte sub_810D0C4
- thumb_func_end sub_810D028
-
- thumb_func_start sub_810D0C4
-sub_810D0C4: @ 810D0C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810D0F8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r1, [r3, 0xC]
- cmp r1, 0xF
- bhi _0810D100
- adds r2, r1, 0x1
- adds r0, r2, 0x1
- strh r0, [r3, 0xC]
- movs r0, 0xF
- subs r0, r1
- lsls r0, 1
- ldr r1, _0810D0FC @ =gUnknown_083F808C
- adds r0, r1
- lsls r2, 17
- lsrs r2, 16
- movs r1, 0xE0
- bl LoadPalette
- b _0810D114
- .align 2, 0
-_0810D0F8: .4byte gTasks
-_0810D0FC: .4byte gUnknown_083F808C
-_0810D100:
- ldr r1, _0810D118 @ =REG_BLDALPHA
- ldr r2, _0810D11C @ =0x00001010
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _0810D120 @ =0x00003e41
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0810D124 @ =sub_810D128
- str r0, [r3]
-_0810D114:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D118: .4byte REG_BLDALPHA
-_0810D11C: .4byte 0x00001010
-_0810D120: .4byte 0x00003e41
-_0810D124: .4byte sub_810D128
- thumb_func_end sub_810D0C4
-
- thumb_func_start sub_810D128
-sub_810D128: @ 810D128
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810D158 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0xA]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 16
- movs r2, 0x80
- lsls r2, 21
- adds r0, r1, r2
- lsrs r0, 16
- ldr r2, _0810D15C @ =REG_BLDALPHA
- strh r0, [r2]
- cmp r1, 0
- beq _0810D160
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- b _0810D172
- .align 2, 0
-_0810D158: .4byte gTasks
-_0810D15C: .4byte REG_BLDALPHA
-_0810D160:
- ldr r0, _0810D178 @ =gCaveTransitionPalette_Black
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810D17C @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810D172:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D178: .4byte gCaveTransitionPalette_Black
-_0810D17C: .4byte gMain
- thumb_func_end sub_810D128
-
- thumb_func_start sub_810D180
-sub_810D180: @ 810D180
- push {r4-r7,lr}
- sub sp, 0x4
- bl HealPlayerParty
- ldr r4, _0810D1A0 @ =0x00000804
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _0810D1A8
- ldr r0, _0810D1A4 @ =gUnknown_02039324
- strb r1, [r0]
- b _0810D1B4
- .align 2, 0
-_0810D1A0: .4byte 0x00000804
-_0810D1A4: .4byte gUnknown_02039324
-_0810D1A8:
- ldr r1, _0810D1E8 @ =gUnknown_02039324
- movs r0, 0
- strb r0, [r1]
- adds r0, r4, 0
- bl FlagSet
-_0810D1B4:
- movs r0, 0x1
- bl sub_8053108
- cmp r0, 0
- bne _0810D1D4
- ldr r2, _0810D1EC @ =gSaveBlock2
- ldrh r1, [r2, 0xE]
- lsls r1, 16
- ldrb r0, [r2, 0x10]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x11]
- orrs r1, r0
- movs r0, 0x1
- bl sav12_xor_set
-_0810D1D4:
- bl SetSecretBase2Field_9
- ldr r0, _0810D1EC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810D1F0
- movs r0, 0x1
- bl sub_80537CC
- b _0810D1F6
- .align 2, 0
-_0810D1E8: .4byte gUnknown_02039324
-_0810D1EC: .4byte gSaveBlock2
-_0810D1F0:
- movs r0, 0x2
- bl sub_80537CC
-_0810D1F6:
- movs r6, 0
- movs r5, 0
- mov r7, sp
-_0810D1FC:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810D260 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _0810D23A
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _0810D23A
- adds r0, r4, 0
- movs r1, 0x43
- bl GetMonData
- cmp r0, 0
- bne _0810D23A
- movs r0, 0x1
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x43
- mov r2, sp
- bl SetMonData
- movs r6, 0x1
-_0810D23A:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0810D1FC
- cmp r6, 0x1
- bne _0810D250
- movs r0, 0x2A
- bl sav12_xor_increment
- ldr r0, _0810D264 @ =0x0000083b
- bl FlagSet
-_0810D250:
- ldr r0, _0810D268 @ =sub_8141F90
- bl SetMainCallback2
- movs r0, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810D260: .4byte gPlayerParty
-_0810D264: .4byte 0x0000083b
-_0810D268: .4byte sub_8141F90
- thumb_func_end sub_810D180
-
- thumb_func_start sp0C8_whiteout_maybe
-sp0C8_whiteout_maybe: @ 810D26C
- push {lr}
- ldr r0, _0810D27C @ =c2_whiteout
- bl SetMainCallback2
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810D27C: .4byte c2_whiteout
- thumb_func_end sp0C8_whiteout_maybe
-
- thumb_func_start sub_810D280
-sub_810D280: @ 810D280
- push {r4,lr}
- ldr r0, _0810D2A4 @ =0x00004024
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810D2A8 @ =0x00004025
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- orrs r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810D2A4: .4byte 0x00004024
-_0810D2A8: .4byte 0x00004025
- thumb_func_end sub_810D280
-
- thumb_func_start sub_810D2AC
-sub_810D2AC: @ 810D2AC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0810D2CC @ =0x00004024
- lsrs r1, r4, 16
- bl VarSet
- ldr r0, _0810D2D0 @ =0x00004025
- lsls r4, 16
- lsrs r4, 16
- adds r1, r4, 0
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D2CC: .4byte 0x00004024
-_0810D2D0: .4byte 0x00004025
- thumb_func_end sub_810D2AC
-
- thumb_func_start unref_sub_810D2D4
-unref_sub_810D2D4: @ 810D2D4
- push {r4,lr}
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsls r0, 16
- lsrs r0, 16
- orrs r4, r0
- adds r0, r4, 0
- bl sub_810D2AC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_810D2D4
-
- thumb_func_start sub_810D2F4
-sub_810D2F4: @ 810D2F4
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_810D280
- adds r1, r0, 0
- cmp r4, 0
- beq _0810D318
- ldr r3, _0810D324 @ =0x41c64e6d
- ldr r2, _0810D328 @ =0x00003039
-_0810D308:
- adds r0, r1, 0
- muls r0, r3
- adds r1, r0, r2
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _0810D308
-_0810D318:
- adds r0, r1, 0
- bl sub_810D2AC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D324: .4byte 0x41c64e6d
-_0810D328: .4byte 0x00003039
- thumb_func_end sub_810D2F4
-
- thumb_func_start sub_810D32C
-sub_810D32C: @ 810D32C
- push {r4-r6,lr}
- bl sub_810D280
- lsrs r6, r0, 16
- movs r5, 0
-_0810D336:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810D360 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0810D368
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldr r1, _0810D364 @ =0x0000ffff
- ands r1, r0
- cmp r1, r6
- bne _0810D368
- movs r0, 0x1
- b _0810D370
- .align 2, 0
-_0810D360: .4byte gPlayerParty
-_0810D364: .4byte 0x0000ffff
-_0810D368:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0810D336
- movs r0, 0
-_0810D370:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810D32C
-
- thumb_func_start sub_810D378
-sub_810D378: @ 810D378
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- cmp r0, 0
- beq _0810D3BE
- bl RtcCalcLocalTime
- ldr r1, _0810D3AC @ =gUnknown_083F8340
- ldr r0, _0810D3B0 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810D3B8
- ldr r0, _0810D3B4 @ =0x0000083a
- bl FlagSet
- b _0810D3BE
- .align 2, 0
-_0810D3AC: .4byte gUnknown_083F8340
-_0810D3B0: .4byte gLocalTime
-_0810D3B4: .4byte 0x0000083a
-_0810D3B8:
- ldr r0, _0810D3C4 @ =0x0000083a
- bl FlagReset
-_0810D3BE:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D3C4: .4byte 0x0000083a
- thumb_func_end sub_810D378
-
- thumb_func_start sub_810D3C8
-sub_810D3C8: @ 810D3C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807DDFC
- lsls r0, 24
- cmp r0, 0
- beq _0810D3E2
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_0810D3E2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810D3C8
-
- thumb_func_start sub_810D3E8
-sub_810D3E8: @ 810D3E8
- push {lr}
- ldr r0, _0810D3F8 @ =sub_810D3C8
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810D3F8: .4byte sub_810D3C8
- thumb_func_end sub_810D3E8
-
- thumb_func_start sub_810D3FC
-sub_810D3FC: @ 810D3FC
- push {lr}
- ldr r0, _0810D40C @ =0x00004049
- bl GetVarPointer
- movs r1, 0
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D40C: .4byte 0x00004049
- thumb_func_end sub_810D3FC
-
- thumb_func_start UpdateBirchState
-UpdateBirchState: @ 810D410
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810D438 @ =0x00004049
- bl GetVarPointer
- adds r5, r0, 0
- ldrh r0, [r5]
- adds r4, r0
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0x7
- bl __umodsi3
- strh r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D438: .4byte 0x00004049
- thumb_func_end UpdateBirchState
-
- thumb_func_start ScriptGetPokedexInfo
-ScriptGetPokedexInfo: @ 810D43C
- push {lr}
- ldr r0, _0810D458 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810D460
- movs r0, 0
- bl GetHoennPokedexCount
- ldr r1, _0810D45C @ =gSpecialVar_0x8005
- strh r0, [r1]
- movs r0, 0x1
- bl GetHoennPokedexCount
- b _0810D470
- .align 2, 0
-_0810D458: .4byte gSpecialVar_0x8004
-_0810D45C: .4byte gSpecialVar_0x8005
-_0810D460:
- movs r0, 0
- bl GetNationalPokedexCount
- ldr r1, _0810D480 @ =gSpecialVar_0x8005
- strh r0, [r1]
- movs r0, 0x1
- bl GetNationalPokedexCount
-_0810D470:
- ldr r1, _0810D484 @ =gSpecialVar_0x8006
- strh r0, [r1]
- bl IsNationalPokedex
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0810D480: .4byte gSpecialVar_0x8005
-_0810D484: .4byte gSpecialVar_0x8006
- thumb_func_end ScriptGetPokedexInfo
-
- thumb_func_start GetPokedexRatingText
-GetPokedexRatingText: @ 810D488
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x9
- bhi _0810D494
- b _0810D5EC
-_0810D494:
- cmp r0, 0x13
- bhi _0810D4A0
- ldr r0, _0810D49C @ =gUnknown_081C456A
- b _0810D5F6
- .align 2, 0
-_0810D49C: .4byte gUnknown_081C456A
-_0810D4A0:
- cmp r0, 0x1D
- bhi _0810D4AC
- ldr r0, _0810D4A8 @ =gUnknown_081C45B0
- b _0810D5F6
- .align 2, 0
-_0810D4A8: .4byte gUnknown_081C45B0
-_0810D4AC:
- cmp r0, 0x27
- bhi _0810D4B8
- ldr r0, _0810D4B4 @ =gUnknown_081C45F9
- b _0810D5F6
- .align 2, 0
-_0810D4B4: .4byte gUnknown_081C45F9
-_0810D4B8:
- cmp r0, 0x31
- bhi _0810D4C4
- ldr r0, _0810D4C0 @ =gUnknown_081C4648
- b _0810D5F6
- .align 2, 0
-_0810D4C0: .4byte gUnknown_081C4648
-_0810D4C4:
- cmp r0, 0x3B
- bhi _0810D4D0
- ldr r0, _0810D4CC @ =gUnknown_081C467E
- b _0810D5F6
- .align 2, 0
-_0810D4CC: .4byte gUnknown_081C467E
-_0810D4D0:
- cmp r0, 0x45
- bhi _0810D4DC
- ldr r0, _0810D4D8 @ =gUnknown_081C46B9
- b _0810D5F6
- .align 2, 0
-_0810D4D8: .4byte gUnknown_081C46B9
-_0810D4DC:
- cmp r0, 0x4F
- bhi _0810D4E8
- ldr r0, _0810D4E4 @ =gUnknown_081C46FE
- b _0810D5F6
- .align 2, 0
-_0810D4E4: .4byte gUnknown_081C46FE
-_0810D4E8:
- cmp r0, 0x59
- bhi _0810D4F4
- ldr r0, _0810D4F0 @ =gUnknown_081C4747
- b _0810D5F6
- .align 2, 0
-_0810D4F0: .4byte gUnknown_081C4747
-_0810D4F4:
- cmp r0, 0x63
- bhi _0810D500
- ldr r0, _0810D4FC @ =gUnknown_081C4780
- b _0810D5F6
- .align 2, 0
-_0810D4FC: .4byte gUnknown_081C4780
-_0810D500:
- cmp r0, 0x6D
- bhi _0810D50C
- ldr r0, _0810D508 @ =gUnknown_081C47DF
- b _0810D5F6
- .align 2, 0
-_0810D508: .4byte gUnknown_081C47DF
-_0810D50C:
- cmp r0, 0x77
- bhi _0810D518
- ldr r0, _0810D514 @ =gUnknown_081C4828
- b _0810D5F6
- .align 2, 0
-_0810D514: .4byte gUnknown_081C4828
-_0810D518:
- cmp r0, 0x81
- bhi _0810D524
- ldr r0, _0810D520 @ =gUnknown_081C4863
- b _0810D5F6
- .align 2, 0
-_0810D520: .4byte gUnknown_081C4863
-_0810D524:
- cmp r0, 0x8B
- bhi _0810D530
- ldr r0, _0810D52C @ =gUnknown_081C489C
- b _0810D5F6
- .align 2, 0
-_0810D52C: .4byte gUnknown_081C489C
-_0810D530:
- cmp r0, 0x95
- bhi _0810D53C
- ldr r0, _0810D538 @ =gUnknown_081C48EB
- b _0810D5F6
- .align 2, 0
-_0810D538: .4byte gUnknown_081C48EB
-_0810D53C:
- cmp r0, 0x9F
- bhi _0810D548
- ldr r0, _0810D544 @ =gUnknown_081C4936
- b _0810D5F6
- .align 2, 0
-_0810D544: .4byte gUnknown_081C4936
-_0810D548:
- cmp r0, 0xA9
- bhi _0810D554
- ldr r0, _0810D550 @ =gUnknown_081C49A2
- b _0810D5F6
- .align 2, 0
-_0810D550: .4byte gUnknown_081C49A2
-_0810D554:
- cmp r0, 0xB3
- bhi _0810D560
- ldr r0, _0810D55C @ =gUnknown_081C4A06
- b _0810D5F6
- .align 2, 0
-_0810D55C: .4byte gUnknown_081C4A06
-_0810D560:
- cmp r0, 0xBD
- bhi _0810D56C
- ldr r0, _0810D568 @ =gUnknown_081C4A4F
- b _0810D5F6
- .align 2, 0
-_0810D568: .4byte gUnknown_081C4A4F
-_0810D56C:
- cmp r0, 0xC7
- bls _0810D5DA
- cmp r0, 0xC8
- bne _0810D5A8
- ldr r0, _0810D5A4 @ =0x00000199
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- bne _0810D5DA
- movs r0, 0xCD
- lsls r0, 1
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- bne _0810D5DA
- b _0810D5F4
- .align 2, 0
-_0810D5A4: .4byte 0x00000199
-_0810D5A8:
- cmp r0, 0xC9
- bne _0810D5E8
- ldr r0, _0810D5E0 @ =0x00000199
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0810D5F4
- movs r0, 0xCD
- lsls r0, 1
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0810D5F4
-_0810D5DA:
- ldr r0, _0810D5E4 @ =gUnknown_081C4A91
- b _0810D5F6
- .align 2, 0
-_0810D5E0: .4byte 0x00000199
-_0810D5E4: .4byte gUnknown_081C4A91
-_0810D5E8:
- cmp r0, 0xCA
- beq _0810D5F4
-_0810D5EC:
- ldr r0, _0810D5F0 @ =gUnknown_081C4520
- b _0810D5F6
- .align 2, 0
-_0810D5F0: .4byte gUnknown_081C4520
-_0810D5F4:
- ldr r0, _0810D5FC @ =gUnknown_081C4ADA
-_0810D5F6:
- pop {r1}
- bx r1
- .align 2, 0
-_0810D5FC: .4byte gUnknown_081C4ADA
- thumb_func_end GetPokedexRatingText
-
- thumb_func_start ShowPokedexRatingMessage
-ShowPokedexRatingMessage: @ 810D600
- push {lr}
- ldr r0, _0810D614 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl GetPokedexRatingText
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .align 2, 0
-_0810D614: .4byte gSpecialVar_0x8004
- thumb_func_end ShowPokedexRatingMessage
-
- thumb_func_start AccessHallOfFamePC
-AccessHallOfFamePC: @ 810D618
- push {lr}
- ldr r0, _0810D628 @ =sub_81428CC
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0810D628: .4byte sub_81428CC
- thumb_func_end AccessHallOfFamePC
-
- thumb_func_start ReturnFromHallOfFamePC
-ReturnFromHallOfFamePC: @ 810D62C
- push {lr}
- ldr r0, _0810D640 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- ldr r1, _0810D644 @ =gUnknown_0300485C
- ldr r0, _0810D648 @ =ReshowPCMenuAfterHallOfFamePC
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D640: .4byte c2_exit_to_overworld_2_switch
-_0810D644: .4byte gUnknown_0300485C
-_0810D648: .4byte ReshowPCMenuAfterHallOfFamePC
- thumb_func_end ReturnFromHallOfFamePC
-
- thumb_func_start ReshowPCMenuAfterHallOfFamePC
-ReshowPCMenuAfterHallOfFamePC: @ 810D64C
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- bl sub_8053E90
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- bl sp109_CreatePCMenu
- bl sub_80B5838
- ldr r0, _0810D680 @ =sub_810D684
- movs r1, 0xA
- bl CreateTask
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0810D680: .4byte sub_810D684
- thumb_func_end ReshowPCMenuAfterHallOfFamePC
-
- thumb_func_start sub_810D684
-sub_810D684: @ 810D684
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0810D6A0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810D69C
- adds r0, r2, 0
- bl DestroyTask
-_0810D69C:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6A0: .4byte gPaletteFade
- thumb_func_end sub_810D684
-
- thumb_func_start sub_810D6A4
-sub_810D6A4: @ 810D6A4
- push {lr}
- ldr r0, _0810D6B4 @ =sub_8145D88
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6B4: .4byte sub_8145D88
- thumb_func_end sub_810D6A4
-
- thumb_func_start sub_810D6B8
-sub_810D6B8: @ 810D6B8
- push {lr}
- ldr r0, _0810D6D0 @ =gMain
- ldr r1, _0810D6D4 @ =c2_exit_to_overworld_2_switch
- str r1, [r0, 0x8]
- ldr r0, _0810D6D8 @ =Cb2_ViewWallClock
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6D0: .4byte gMain
-_0810D6D4: .4byte c2_exit_to_overworld_2_switch
-_0810D6D8: .4byte Cb2_ViewWallClock
- thumb_func_end sub_810D6B8
-
- thumb_func_start ResetCyclingRoadChallengeData
-ResetCyclingRoadChallengeData: @ 810D6DC
- ldr r0, _0810D6F0 @ =gUnknown_02039250
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0810D6F4 @ =gUnknown_02039251
- strb r1, [r0]
- ldr r1, _0810D6F8 @ =gUnknown_02039254
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810D6F0: .4byte gUnknown_02039250
-_0810D6F4: .4byte gUnknown_02039251
-_0810D6F8: .4byte gUnknown_02039254
- thumb_func_end ResetCyclingRoadChallengeData
-
- thumb_func_start BeginCyclingRoadChallenge
-BeginCyclingRoadChallenge: @ 810D6FC
- ldr r1, _0810D714 @ =gUnknown_02039250
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _0810D718 @ =gUnknown_02039251
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0810D71C @ =gUnknown_02039254
- ldr r0, _0810D720 @ =gMain
- ldr r0, [r0, 0x20]
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810D714: .4byte gUnknown_02039250
-_0810D718: .4byte gUnknown_02039251
-_0810D71C: .4byte gUnknown_02039254
-_0810D720: .4byte gMain
- thumb_func_end BeginCyclingRoadChallenge
-
- thumb_func_start GetPlayerAvatarBike
-GetPlayerAvatarBike: @ 810D724
- push {lr}
- movs r0, 0x4
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0810D736
- movs r0, 0x1
- b _0810D748
-_0810D736:
- movs r0, 0x2
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _0810D746
- movs r0, 0
- b _0810D748
-_0810D746:
- movs r0, 0x2
-_0810D748:
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarBike
-
- thumb_func_start DetermineCyclingRoadResults
-DetermineCyclingRoadResults: @ 810D74C
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r6, 0x63
- bhi _0810D778
- ldr r4, _0810D770 @ =gStringVar1
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, _0810D774 @ =gOtherText_Times
- adds r0, r4, 0
- bl StringAppend
- b _0810D780
- .align 2, 0
-_0810D770: .4byte gStringVar1
-_0810D774: .4byte gOtherText_Times
-_0810D778:
- ldr r0, _0810D7CC @ =gStringVar1
- ldr r1, _0810D7D0 @ =gOtherText_99Times
- bl StringCopy
-_0810D780:
- ldr r0, _0810D7D4 @ =0x00000e0f
- cmp r7, r0
- bhi _0810D7E0
- ldr r4, _0810D7D8 @ =gStringVar2
- adds r0, r7, 0
- movs r1, 0x3C
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0xAD
- strb r0, [r4, 0x2]
- adds r5, r4, 0x3
- adds r0, r7, 0
- movs r1, 0x3C
- bl __umodsi3
- movs r1, 0x64
- muls r0, r1
- movs r1, 0x3C
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, _0810D7DC @ =gOtherText_Seconds
- adds r0, r4, 0
- bl StringAppend
- b _0810D7E8
- .align 2, 0
-_0810D7CC: .4byte gStringVar1
-_0810D7D0: .4byte gOtherText_99Times
-_0810D7D4: .4byte 0x00000e0f
-_0810D7D8: .4byte gStringVar2
-_0810D7DC: .4byte gOtherText_Seconds
-_0810D7E0:
- ldr r0, _0810D7F4 @ =gStringVar2
- ldr r1, _0810D7F8 @ =gOtherText_1Minute
- bl StringCopy
-_0810D7E8:
- movs r4, 0
- cmp r6, 0
- bne _0810D7FC
- movs r4, 0x5
- b _0810D81A
- .align 2, 0
-_0810D7F4: .4byte gStringVar2
-_0810D7F8: .4byte gOtherText_1Minute
-_0810D7FC:
- cmp r6, 0x3
- bhi _0810D804
- movs r4, 0x4
- b _0810D81A
-_0810D804:
- cmp r6, 0x9
- bhi _0810D80C
- movs r4, 0x3
- b _0810D81A
-_0810D80C:
- cmp r6, 0x13
- bhi _0810D814
- movs r4, 0x2
- b _0810D81A
-_0810D814:
- cmp r6, 0x63
- bhi _0810D81A
- movs r4, 0x1
-_0810D81A:
- adds r0, r7, 0
- movs r1, 0x3C
- bl __udivsi3
- cmp r0, 0xA
- bhi _0810D82A
- adds r0, r4, 0x5
- b _0810D848
-_0810D82A:
- cmp r0, 0xF
- bhi _0810D832
- adds r0, r4, 0x4
- b _0810D848
-_0810D832:
- cmp r0, 0x14
- bhi _0810D83A
- adds r0, r4, 0x3
- b _0810D848
-_0810D83A:
- cmp r0, 0x28
- bhi _0810D842
- adds r0, r4, 0x2
- b _0810D848
-_0810D842:
- cmp r0, 0x3B
- bhi _0810D84C
- adds r0, r4, 0x1
-_0810D848:
- lsls r0, 24
- lsrs r4, r0, 24
-_0810D84C:
- ldr r0, _0810D858 @ =gScriptResult
- strh r4, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D858: .4byte gScriptResult
- thumb_func_end DetermineCyclingRoadResults
-
- thumb_func_start FinishCyclingRoadChallenge
-FinishCyclingRoadChallenge: @ 810D85C
- push {r4,r5,lr}
- ldr r0, _0810D880 @ =gMain
- ldr r1, _0810D884 @ =gUnknown_02039254
- ldr r4, [r0, 0x20]
- ldr r0, [r1]
- subs r4, r0
- ldr r5, _0810D888 @ =gUnknown_02039251
- ldrb r1, [r5]
- adds r0, r4, 0
- bl DetermineCyclingRoadResults
- ldrb r1, [r5]
- adds r0, r4, 0
- bl RecordCyclingRoadResults
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D880: .4byte gMain
-_0810D884: .4byte gUnknown_02039254
-_0810D888: .4byte gUnknown_02039251
- thumb_func_end FinishCyclingRoadChallenge
-
- thumb_func_start RecordCyclingRoadResults
-RecordCyclingRoadResults: @ 810D88C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r6, _0810D8E0 @ =0x00004028
- adds r0, r6, 0
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r7, _0810D8E4 @ =0x00004029
- adds r0, r7, 0
- bl VarGet
- lsls r0, 16
- adds r4, r0
- cmp r4, r5
- bhi _0810D8BC
- cmp r4, 0
- bne _0810D8D6
-_0810D8BC:
- lsls r1, r5, 16
- lsrs r1, 16
- adds r0, r6, 0
- bl VarSet
- lsrs r1, r5, 16
- adds r0, r7, 0
- bl VarSet
- ldr r0, _0810D8E8 @ =0x00004027
- mov r1, r8
- bl VarSet
-_0810D8D6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D8E0: .4byte 0x00004028
-_0810D8E4: .4byte 0x00004029
-_0810D8E8: .4byte 0x00004027
- thumb_func_end RecordCyclingRoadResults
-
- thumb_func_start GetRecordedCyclingRoadResults
-GetRecordedCyclingRoadResults: @ 810D8EC
- push {r4,lr}
- ldr r0, _0810D920 @ =0x00004028
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810D924 @ =0x00004029
- bl VarGet
- lsls r0, 16
- adds r4, r0
- cmp r4, 0
- beq _0810D92C
- ldr r0, _0810D928 @ =0x00004027
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl DetermineCyclingRoadResults
- movs r0, 0x1
- b _0810D92E
- .align 2, 0
-_0810D920: .4byte 0x00004028
-_0810D924: .4byte 0x00004029
-_0810D928: .4byte 0x00004027
-_0810D92C:
- movs r0, 0
-_0810D92E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetRecordedCyclingRoadResults
-
- thumb_func_start UpdateCyclingRoadState
-UpdateCyclingRoadState: @ 810D934
- push {r4,lr}
- ldr r0, _0810D974 @ =gUnknown_020297F0
- ldrh r1, [r0]
- ldr r0, _0810D978 @ =0x00000c1d
- cmp r1, r0
- beq _0810D96C
- ldr r4, _0810D97C @ =0x000040a9
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- beq _0810D95E
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bne _0810D96C
-_0810D95E:
- adds r0, r4, 0
- movs r1, 0
- bl VarSet
- movs r0, 0
- bl sav1_set_battle_music_maybe
-_0810D96C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D974: .4byte gUnknown_020297F0
-_0810D978: .4byte 0x00000c1d
-_0810D97C: .4byte 0x000040a9
- thumb_func_end UpdateCyclingRoadState
-
- thumb_func_start SetSSTidalFlag
-SetSSTidalFlag: @ 810D980
- push {lr}
- ldr r0, _0810D998 @ =0x0000082d
- bl FlagSet
- ldr r0, _0810D99C @ =0x0000404a
- bl GetVarPointer
- movs r1, 0
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D998: .4byte 0x0000082d
-_0810D99C: .4byte 0x0000404a
- thumb_func_end SetSSTidalFlag
-
- thumb_func_start ResetSSTidalFlag
-ResetSSTidalFlag: @ 810D9A0
- push {lr}
- ldr r0, _0810D9AC @ =0x0000082d
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_0810D9AC: .4byte 0x0000082d
- thumb_func_end ResetSSTidalFlag
-
- thumb_func_start sub_810D9B0
-sub_810D9B0: @ 810D9B0
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0810D9DC @ =0x0000082d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810D9D6
- ldr r0, _0810D9E0 @ =0x0000404a
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, r4, r1
- strh r1, [r0]
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xCC
- bhi _0810D9E4
-_0810D9D6:
- movs r0, 0
- b _0810D9E6
- .align 2, 0
-_0810D9DC: .4byte 0x0000082d
-_0810D9E0: .4byte 0x0000404a
-_0810D9E4:
- movs r0, 0x1
-_0810D9E6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810D9B0
-
- thumb_func_start sub_810D9EC
-sub_810D9EC: @ 810D9EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r5, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- ldr r0, _0810DA1C @ =0x0000404a
- bl GetVarPointer
- adds r4, r0, 0
- ldr r0, _0810DA20 @ =0x000040b4
- bl GetVarPointer
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x9
- bhi _0810DAB2
- lsls r0, 2
- ldr r1, _0810DA24 @ =_0810DA28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DA1C: .4byte 0x0000404a
-_0810DA20: .4byte 0x000040b4
-_0810DA24: .4byte _0810DA28
- .align 2, 0
-_0810DA28:
- .4byte _0810DA50
- .4byte _0810DA60
- .4byte _0810DA54
- .4byte _0810DA58
- .4byte _0810DA58
- .4byte _0810DA5C
- .4byte _0810DA88
- .4byte _0810DA50
- .4byte _0810DA54
- .4byte _0810DA5C
-_0810DA50:
- movs r0, 0x1
- b _0810DABE
-_0810DA54:
- movs r0, 0x4
- b _0810DABE
-_0810DA58:
- movs r0, 0x2
- b _0810DABE
-_0810DA5C:
- movs r0, 0x3
- b _0810DABE
-_0810DA60:
- ldrh r0, [r4]
- cmp r0, 0x3B
- bhi _0810DA70
- movs r0, 0x31
- strb r0, [r5]
- ldrh r0, [r4]
- adds r0, 0x13
- b _0810DAB0
-_0810DA70:
- cmp r0, 0x8B
- bhi _0810DA7E
- movs r0, 0x30
- strb r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x3C
- b _0810DAB0
-_0810DA7E:
- movs r0, 0x2F
- strb r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x8C
- b _0810DAB0
-_0810DA88:
- ldrh r0, [r4]
- cmp r0, 0x41
- bhi _0810DA98
- movs r0, 0x2F
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0x41
- b _0810DAAE
-_0810DA98:
- cmp r0, 0x91
- bhi _0810DAA6
- movs r0, 0x30
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0x91
- b _0810DAAE
-_0810DAA6:
- movs r0, 0x31
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0xE0
-_0810DAAE:
- subs r0, r1
-_0810DAB0:
- strh r0, [r6]
-_0810DAB2:
- movs r0, 0
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x14
- strh r0, [r7]
- movs r0, 0
-_0810DABE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810D9EC
-
- thumb_func_start GetLinkPartnerNames
-GetLinkPartnerNames: @ 810DAC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- bl sub_8008218
- lsls r0, 24
- lsrs r7, r0, 24
- bl sub_800820C
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0810DB12
- ldr r0, _0810DB20 @ =gUnknown_083D1464
- mov r8, r0
-_0810DAEA:
- cmp r7, r4
- beq _0810DB08
- lsls r0, r6, 2
- add r0, r8
- ldr r0, [r0]
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r2, _0810DB24 @ =gLinkPlayers + 0x8
- adds r1, r2
- bl StringCopy
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0810DB08:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0810DAEA
-_0810DB12:
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810DB20: .4byte gUnknown_083D1464
-_0810DB24: .4byte gLinkPlayers + 0x8
- thumb_func_end GetLinkPartnerNames
-
- thumb_func_start sub_810DB28
-sub_810DB28: @ 810DB28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r7, 0
- movs r0, 0
- mov r9, r0
- mov r8, r0
- ldr r1, _0810DB74 @ =gUnknown_083F8358
- add r0, sp, 0x8
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0xC
- ldr r1, _0810DB78 @ =gUnknown_083F835C
- adds r0, r4, 0
- movs r2, 0x8
- bl memcpy
- bl sub_8008218
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x2
- beq _0810DB94
- cmp r0, 0x2
- bgt _0810DB7C
- cmp r0, 0x1
- beq _0810DBC0
- b _0810DBD2
- .align 2, 0
-_0810DB74: .4byte gUnknown_083F8358
-_0810DB78: .4byte gUnknown_083F835C
-_0810DB7C:
- cmp r1, 0x3
- beq _0810DB86
- cmp r1, 0x4
- beq _0810DBA8
- b _0810DBD2
-_0810DB86:
- movs r7, 0x2
- ldr r1, _0810DB90 @ =gSaveBlock1
- ldrh r0, [r1]
- subs r0, 0x1
- b _0810DBAE
- .align 2, 0
-_0810DB90: .4byte gSaveBlock1
-_0810DB94:
- movs r7, 0x1
- ldr r0, _0810DBA4 @ =gSaveBlock1
- ldrh r1, [r0]
- mov r9, r1
- ldrh r0, [r0, 0x2]
- subs r0, 0x1
- b _0810DBCC
- .align 2, 0
-_0810DBA4: .4byte gSaveBlock1
-_0810DBA8:
- ldr r1, _0810DBBC @ =gSaveBlock1
- ldrh r0, [r1]
- adds r0, 0x1
-_0810DBAE:
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldrh r1, [r1, 0x2]
- mov r8, r1
- b _0810DBD2
- .align 2, 0
-_0810DBBC: .4byte gSaveBlock1
-_0810DBC0:
- movs r7, 0x3
- ldr r0, _0810DBD8 @ =gSaveBlock1
- ldrh r4, [r0]
- mov r9, r4
- ldrh r0, [r0, 0x2]
- adds r0, 0x1
-_0810DBCC:
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0810DBD2:
- movs r6, 0
- b _0810DC5C
- .align 2, 0
-_0810DBD8: .4byte gSaveBlock1
-_0810DBDC:
- cmp r10, r6
- beq _0810DC56
- ldr r1, _0810DC74 @ =gLinkPlayers
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x13]
- movs r0, 0
- bl sub_805983C
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- adds r1, r7
- adds r1, 0x8
- ldrb r1, [r1]
- movs r2, 0xF0
- subs r2, r6
- lsls r2, 24
- lsrs r2, 24
- lsls r5, r7, 1
- mov r3, sp
- adds r3, r5
- adds r3, 0xC
- ldrb r3, [r3]
- lsls r3, 24
- asrs r3, 24
- mov r12, r3
- mov r4, r9
- lsls r3, r4, 16
- asrs r3, 16
- add r3, r12
- adds r3, 0x7
- lsls r3, 16
- asrs r3, 16
- mov r4, sp
- adds r4, 0xD
- adds r4, r5
- ldrb r4, [r4]
- lsls r4, 24
- asrs r4, 24
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 16
- asrs r4, 16
- add r4, r12
- adds r4, 0x7
- lsls r4, 16
- asrs r4, 16
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- bl SpawnSpecialFieldObjectParametrized
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x4
- bne _0810DC56
- movs r7, 0
-_0810DC56:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0810DC5C:
- ldr r0, _0810DC78 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r6, r0
- bcc _0810DBDC
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DC74: .4byte gLinkPlayers
-_0810DC78: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810DB28
-
- thumb_func_start sub_810DC7C
-sub_810DC7C: @ 810DC7C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810DC9C @ =gUnknown_083F8364
-_0810DC82:
- ldr r0, _0810DCA0 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r4, r0
- bne _0810DCA8
- lsls r1, r4, 2
- adds r1, r5
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- ldr r2, _0810DCA4 @ =0x00000206
- bl MapGridSetMetatileIdAt
- b _0810DCB6
- .align 2, 0
-_0810DC9C: .4byte gUnknown_083F8364
-_0810DCA0: .4byte gSpecialVar_0x8004
-_0810DCA4: .4byte 0x00000206
-_0810DCA8:
- lsls r1, r4, 2
- adds r1, r5
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- ldr r2, _0810DCC8 @ =0x00000205
- bl MapGridSetMetatileIdAt
-_0810DCB6:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0810DC82
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DCC8: .4byte 0x00000205
- thumb_func_end sub_810DC7C
-
- thumb_func_start sub_810DCCC
-sub_810DCCC: @ 810DCCC
- push {r4-r6,lr}
- movs r5, 0xC
-_0810DCD0:
- movs r4, 0x7
- adds r6, r5, 0x1
-_0810DCD4:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0810DCF0 @ =0xfffffde6
- adds r0, r1
- cmp r0, 0x37
- bls _0810DCE6
- b _0810DEC0
-_0810DCE6:
- lsls r0, 2
- ldr r1, _0810DCF4 @ =_0810DCF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DCF0: .4byte 0xfffffde6
-_0810DCF4: .4byte _0810DCF8
- .align 2, 0
-_0810DCF8:
- .4byte _0810DE7E
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDD8
- .4byte _0810DDDE
- .4byte _0810DE18
- .4byte _0810DE20
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDE8
- .4byte _0810DDEE
- .4byte _0810DE28
- .4byte _0810DE30
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDF8
- .4byte _0810DDFE
- .4byte _0810DE38
- .4byte _0810DE40
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE08
- .4byte _0810DE10
- .4byte _0810DE48
- .4byte _0810DE50
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE58
- .4byte _0810DE68
- .4byte _0810DE78
- .4byte _0810DEA0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE60
- .4byte _0810DE70
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEB6
- .4byte _0810DEA8
-_0810DDD8:
- movs r2, 0x8C
- lsls r2, 2
- b _0810DEAC
-_0810DDDE:
- ldr r2, _0810DDE4 @ =0x00000231
- b _0810DEAC
- .align 2, 0
-_0810DDE4: .4byte 0x00000231
-_0810DDE8:
- movs r2, 0x8E
- lsls r2, 2
- b _0810DEAC
-_0810DDEE:
- ldr r2, _0810DDF4 @ =0x00000239
- b _0810DEAC
- .align 2, 0
-_0810DDF4: .4byte 0x00000239
-_0810DDF8:
- movs r2, 0x88
- lsls r2, 2
- b _0810DEAC
-_0810DDFE:
- ldr r2, _0810DE04 @ =0x00000221
- b _0810DEAC
- .align 2, 0
-_0810DE04: .4byte 0x00000221
-_0810DE08:
- ldr r2, _0810DE0C @ =0x00000e28
- b _0810DEAC
- .align 2, 0
-_0810DE0C: .4byte 0x00000e28
-_0810DE10:
- ldr r2, _0810DE14 @ =0x00000e29
- b _0810DEAC
- .align 2, 0
-_0810DE14: .4byte 0x00000e29
-_0810DE18:
- ldr r2, _0810DE1C @ =0x00000232
- b _0810DEAC
- .align 2, 0
-_0810DE1C: .4byte 0x00000232
-_0810DE20:
- ldr r2, _0810DE24 @ =0x00000233
- b _0810DEAC
- .align 2, 0
-_0810DE24: .4byte 0x00000233
-_0810DE28:
- ldr r2, _0810DE2C @ =0x0000023a
- b _0810DEAC
- .align 2, 0
-_0810DE2C: .4byte 0x0000023a
-_0810DE30:
- ldr r2, _0810DE34 @ =0x0000023b
- b _0810DEAC
- .align 2, 0
-_0810DE34: .4byte 0x0000023b
-_0810DE38:
- ldr r2, _0810DE3C @ =0x00000222
- b _0810DEAC
- .align 2, 0
-_0810DE3C: .4byte 0x00000222
-_0810DE40:
- ldr r2, _0810DE44 @ =0x00000223
- b _0810DEAC
- .align 2, 0
-_0810DE44: .4byte 0x00000223
-_0810DE48:
- ldr r2, _0810DE4C @ =0x00000e2a
- b _0810DEAC
- .align 2, 0
-_0810DE4C: .4byte 0x00000e2a
-_0810DE50:
- ldr r2, _0810DE54 @ =0x00000e2b
- b _0810DEAC
- .align 2, 0
-_0810DE54: .4byte 0x00000e2b
-_0810DE58:
- ldr r2, _0810DE5C @ =0x00000e42
- b _0810DEAC
- .align 2, 0
-_0810DE5C: .4byte 0x00000e42
-_0810DE60:
- ldr r2, _0810DE64 @ =0x0000021a
- b _0810DEAC
- .align 2, 0
-_0810DE64: .4byte 0x0000021a
-_0810DE68:
- ldr r2, _0810DE6C @ =0x00000e43
- b _0810DEAC
- .align 2, 0
-_0810DE6C: .4byte 0x00000e43
-_0810DE70:
- ldr r2, _0810DE74 @ =0x0000021a
- b _0810DEAC
- .align 2, 0
-_0810DE74: .4byte 0x0000021a
-_0810DE78:
- movs r2, 0xE4
- lsls r2, 4
- b _0810DEAC
-_0810DE7E:
- subs r1, r5, 0x1
- adds r0, r4, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x90
- lsls r1, 2
- cmp r0, r1
- bne _0810DE98
- ldr r2, _0810DE94 @ =0x00000e48
- b _0810DEAC
- .align 2, 0
-_0810DE94: .4byte 0x00000e48
-_0810DE98:
- ldr r2, _0810DE9C @ =0x00000e49
- b _0810DEAC
- .align 2, 0
-_0810DE9C: .4byte 0x00000e49
-_0810DEA0:
- ldr r2, _0810DEA4 @ =0x00000e41
- b _0810DEAC
- .align 2, 0
-_0810DEA4: .4byte 0x00000e41
-_0810DEA8:
- movs r2, 0xE5
- lsls r2, 4
-_0810DEAC:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0810DEC0
-_0810DEB6:
- ldr r2, _0810DED8 @ =0x00000251
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0810DEC0:
- adds r4, 0x1
- cmp r4, 0xF
- bgt _0810DEC8
- b _0810DCD4
-_0810DEC8:
- adds r5, r6, 0
- cmp r5, 0x17
- bgt _0810DED0
- b _0810DCD0
-_0810DED0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DED8: .4byte 0x00000251
- thumb_func_end sub_810DCCC
-
- thumb_func_start sub_810DEDC
-sub_810DEDC: @ 810DEDC
- push {r4-r6,lr}
- ldr r4, _0810DF18 @ =gUnknown_083F8364
- movs r5, 0x2
-_0810DEE2:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- ldr r2, _0810DF1C @ =0x00000206
- bl MapGridSetMetatileIdAt
- adds r4, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _0810DEE2
- movs r5, 0xC
-_0810DEF6:
- movs r4, 0x7
- adds r6, r5, 0x1
-_0810DEFA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0810DF20 @ =0xfffffde0
- adds r0, r1
- cmp r0, 0x30
- bls _0810DF0C
- b _0810E056
-_0810DF0C:
- lsls r0, 2
- ldr r1, _0810DF24 @ =_0810DF28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DF18: .4byte gUnknown_083F8364
-_0810DF1C: .4byte 0x00000206
-_0810DF20: .4byte 0xfffffde0
-_0810DF24: .4byte _0810DF28
- .align 2, 0
-_0810DF28:
- .4byte _0810DFEC
- .4byte _0810DFF2
- .4byte _0810E00C
- .4byte _0810E014
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810DFFC
- .4byte _0810E002
- .4byte _0810E01C
- .4byte _0810E024
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E02C
- .4byte _0810E034
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E03C
- .4byte _0810E03C
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E04C
-_0810DFEC:
- movs r2, 0x8C
- lsls r2, 2
- b _0810E03E
-_0810DFF2:
- ldr r2, _0810DFF8 @ =0x00000231
- b _0810E03E
- .align 2, 0
-_0810DFF8: .4byte 0x00000231
-_0810DFFC:
- movs r2, 0x8E
- lsls r2, 2
- b _0810E03E
-_0810E002:
- ldr r2, _0810E008 @ =0x00000239
- b _0810E03E
- .align 2, 0
-_0810E008: .4byte 0x00000239
-_0810E00C:
- ldr r2, _0810E010 @ =0x00000232
- b _0810E03E
- .align 2, 0
-_0810E010: .4byte 0x00000232
-_0810E014:
- ldr r2, _0810E018 @ =0x00000233
- b _0810E03E
- .align 2, 0
-_0810E018: .4byte 0x00000233
-_0810E01C:
- ldr r2, _0810E020 @ =0x0000023a
- b _0810E03E
- .align 2, 0
-_0810E020: .4byte 0x0000023a
-_0810E024:
- ldr r2, _0810E028 @ =0x0000023b
- b _0810E03E
- .align 2, 0
-_0810E028: .4byte 0x0000023b
-_0810E02C:
- ldr r2, _0810E030 @ =0x00000e42
- b _0810E03E
- .align 2, 0
-_0810E030: .4byte 0x00000e42
-_0810E034:
- ldr r2, _0810E038 @ =0x00000e43
- b _0810E03E
- .align 2, 0
-_0810E038: .4byte 0x00000e43
-_0810E03C:
- ldr r2, _0810E048 @ =0x0000021a
-_0810E03E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0810E056
- .align 2, 0
-_0810E048: .4byte 0x0000021a
-_0810E04C:
- ldr r2, _0810E06C @ =0x00000251
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0810E056:
- adds r4, 0x1
- cmp r4, 0xF
- bgt _0810E05E
- b _0810DEFA
-_0810E05E:
- adds r5, r6, 0
- cmp r5, 0x17
- bgt _0810E066
- b _0810DEF6
-_0810E066:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E06C: .4byte 0x00000251
- thumb_func_end sub_810DEDC
-
- thumb_func_start sub_810E070
-sub_810E070: @ 810E070
- push {lr}
- ldr r0, _0810E090 @ =gUnknown_02039258
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0810E094 @ =gUnknown_02039259
- strb r1, [r0]
- movs r0, 0x2C
- bl PlaySE
- ldr r0, _0810E098 @ =sub_810E09C
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810E090: .4byte gUnknown_02039258
-_0810E094: .4byte gUnknown_02039259
-_0810E098: .4byte sub_810E09C
- thumb_func_end sub_810E070
-
- thumb_func_start sub_810E09C
-sub_810E09C: @ 810E09C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0810E0E4 @ =gUnknown_083F8370
- ldr r5, _0810E0E8 @ =gUnknown_02039259
- ldrb r1, [r5]
- adds r0, r1, r0
- ldr r4, _0810E0EC @ =gUnknown_02039258
- ldrb r2, [r4]
- ldrb r0, [r0]
- cmp r0, r2
- bne _0810E0F8
- ldr r0, _0810E0F0 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- ldr r2, _0810E0F4 @ =gUnknown_083F8376
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- bl sub_810E104
- movs r0, 0
- strb r0, [r4]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _0810E0FC
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- b _0810E0FC
- .align 2, 0
-_0810E0E4: .4byte gUnknown_083F8370
-_0810E0E8: .4byte gUnknown_02039259
-_0810E0EC: .4byte gUnknown_02039258
-_0810E0F0: .4byte gSpecialVar_0x8004
-_0810E0F4: .4byte gUnknown_083F8376
-_0810E0F8:
- adds r0, r2, 0x1
- strb r0, [r4]
-_0810E0FC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810E09C
-
- thumb_func_start sub_810E104
-sub_810E104: @ 810E104
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r2, r1, 16
- movs r7, 0
- subs r0, 0x1
- cmp r0, 0x7
- bhi _0810E1CC
- lsls r0, 2
- ldr r1, _0810E128 @ =_0810E12C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810E128: .4byte _0810E12C
- .align 2, 0
-_0810E12C:
- .4byte _0810E14C
- .4byte _0810E15E
- .4byte _0810E170
- .4byte _0810E182
- .4byte _0810E190
- .4byte _0810E1A6
- .4byte _0810E1B2
- .4byte _0810E1C0
-_0810E14C:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x68
- b _0810E1A0
-_0810E15E:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x4E
- b _0810E1A0
-_0810E170:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x5B
- b _0810E1A0
-_0810E182:
- movs r7, 0x1
- mov r1, sp
- movs r0, 0x7
- strh r0, [r1]
- add r1, sp, 0x8
- movs r0, 0x27
- b _0810E1CA
-_0810E190:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x34
-_0810E1A0:
- strh r0, [r1]
- strh r0, [r1, 0x2]
- b _0810E1CC
-_0810E1A6:
- movs r7, 0x1
- mov r0, sp
- strh r7, [r0]
- add r1, sp, 0x8
- movs r0, 0x41
- b _0810E1CA
-_0810E1B2:
- movs r7, 0x1
- mov r1, sp
- movs r0, 0x7
- strh r0, [r1]
- add r1, sp, 0x8
- movs r0, 0xD
- b _0810E1CA
-_0810E1C0:
- movs r7, 0x1
- mov r0, sp
- strh r7, [r0]
- add r1, sp, 0x8
- movs r0, 0x1A
-_0810E1CA:
- strh r0, [r1]
-_0810E1CC:
- movs r6, 0
- cmp r6, r7
- bcs _0810E21E
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- adds r1, r2, 0
- orrs r1, r0
- lsls r1, 16
- mov r9, r1
- adds r1, r2, 0
- adds r1, 0x8
- orrs r1, r0
- lsls r1, 16
- mov r8, r1
-_0810E1EA:
- lsls r1, r6, 1
- mov r3, sp
- adds r5, r3, r1
- ldrh r0, [r5]
- adds r0, 0x7
- add r4, sp, 0x8
- adds r4, r1
- ldrh r1, [r4]
- adds r1, 0x7
- mov r3, r9
- lsrs r2, r3, 16
- bl MapGridSetMetatileIdAt
- ldrh r0, [r5]
- adds r0, 0x7
- ldrh r1, [r4]
- adds r1, 0x8
- mov r3, r8
- lsrs r2, r3, 16
- bl MapGridSetMetatileIdAt
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r7
- bcc _0810E1EA
-_0810E21E:
- bl DrawWholeMapView
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810E104
-
- thumb_func_start sub_810E230
-sub_810E230: @ 810E230
- push {lr}
- ldr r0, _0810E244 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- ldr r1, _0810E248 @ =gUnknown_083F8376
- ldrh r1, [r1, 0x8]
- bl sub_810E104
- pop {r0}
- bx r0
- .align 2, 0
-_0810E244: .4byte gSpecialVar_0x8004
-_0810E248: .4byte gUnknown_083F8376
- thumb_func_end sub_810E230
-
- thumb_func_start ShowFieldMessageStringVar4
-ShowFieldMessageStringVar4: @ 810E24C
- push {lr}
- ldr r0, _0810E258 @ =gStringVar4
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .align 2, 0
-_0810E258: .4byte gStringVar4
- thumb_func_end ShowFieldMessageStringVar4
-
- thumb_func_start StorePlayerCoordsInVars
-StorePlayerCoordsInVars: @ 810E25C
- ldr r1, _0810E26C @ =gSpecialVar_0x8004
- ldr r2, _0810E270 @ =gSaveBlock1
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, _0810E274 @ =gSpecialVar_0x8005
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0810E26C: .4byte gSpecialVar_0x8004
-_0810E270: .4byte gSaveBlock1
-_0810E274: .4byte gSpecialVar_0x8005
- thumb_func_end StorePlayerCoordsInVars
-
- thumb_func_start GetPlayerTrainerIdOnesDigit
-GetPlayerTrainerIdOnesDigit: @ 810E278
- push {lr}
- ldr r0, _0810E294 @ =gSaveBlock2
- ldrb r1, [r0, 0xB]
- lsls r1, 8
- ldrb r0, [r0, 0xA]
- orrs r0, r1
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810E294: .4byte gSaveBlock2
- thumb_func_end GetPlayerTrainerIdOnesDigit
-
- thumb_func_start GetPlayerBigGuyGirlString
-GetPlayerBigGuyGirlString: @ 810E298
- push {lr}
- ldr r0, _0810E2AC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810E2B8
- ldr r0, _0810E2B0 @ =gStringVar1
- ldr r1, _0810E2B4 @ =gOtherText_BigGuy
- bl StringCopy
- b _0810E2C0
- .align 2, 0
-_0810E2AC: .4byte gSaveBlock2
-_0810E2B0: .4byte gStringVar1
-_0810E2B4: .4byte gOtherText_BigGuy
-_0810E2B8:
- ldr r0, _0810E2C4 @ =gStringVar1
- ldr r1, _0810E2C8 @ =gOtherText_BigGirl
- bl StringCopy
-_0810E2C0:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E2C4: .4byte gStringVar1
-_0810E2C8: .4byte gOtherText_BigGirl
- thumb_func_end GetPlayerBigGuyGirlString
-
- thumb_func_start GetRivalSonDaughterString
-GetRivalSonDaughterString: @ 810E2CC
- push {lr}
- ldr r0, _0810E2E0 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810E2EC
- ldr r0, _0810E2E4 @ =gStringVar1
- ldr r1, _0810E2E8 @ =gOtherText_Daughter
- bl StringCopy
- b _0810E2F4
- .align 2, 0
-_0810E2E0: .4byte gSaveBlock2
-_0810E2E4: .4byte gStringVar1
-_0810E2E8: .4byte gOtherText_Daughter
-_0810E2EC:
- ldr r0, _0810E2F8 @ =gStringVar1
- ldr r1, _0810E2FC @ =gOtherText_Son
- bl StringCopy
-_0810E2F4:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E2F8: .4byte gStringVar1
-_0810E2FC: .4byte gOtherText_Son
- thumb_func_end GetRivalSonDaughterString
-
- thumb_func_start sub_810E300
-sub_810E300: @ 810E300
- ldr r0, _0810E308 @ =gUnknown_02024D26
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0810E308: .4byte gUnknown_02024D26
- thumb_func_end sub_810E300
-
- thumb_func_start CableCarWarp
-CableCarWarp: @ 810E30C
- push {lr}
- sub sp, 0x4
- ldr r0, _0810E32C @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- beq _0810E330
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0x6
- bl warp1_set
- b _0810E342
- .align 2, 0
-_0810E32C: .4byte gSpecialVar_0x8004
-_0810E330:
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0x1
- movs r3, 0x6
- bl warp1_set
-_0810E342:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end CableCarWarp
-
- thumb_func_start SetFlagInVar
-SetFlagInVar: @ 810E348
- push {lr}
- ldr r0, _0810E358 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810E358: .4byte gSpecialVar_0x8004
- thumb_func_end SetFlagInVar
-
- thumb_func_start GetWeekCount
-GetWeekCount: @ 810E35C
- push {lr}
- ldr r0, _0810E37C @ =gLocalTime
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x7
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0810E380 @ =0x0000270f
- cmp r0, r1
- bls _0810E376
- adds r0, r1, 0
-_0810E376:
- pop {r1}
- bx r1
- .align 2, 0
-_0810E37C: .4byte gLocalTime
-_0810E380: .4byte 0x0000270f
- thumb_func_end GetWeekCount
-
- thumb_func_start GetLeadMonFriendshipScore
-GetLeadMonFriendshipScore: @ 810E384
- push {r4,lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _0810E3A8 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xFF
- bne _0810E3AC
- movs r0, 0x6
- b _0810E3FE
- .align 2, 0
-_0810E3A8: .4byte gPlayerParty
-_0810E3AC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xC7
- bls _0810E3BC
- movs r0, 0x5
- b _0810E3FE
-_0810E3BC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x95
- bls _0810E3CC
- movs r0, 0x4
- b _0810E3FE
-_0810E3CC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x63
- bls _0810E3DC
- movs r0, 0x3
- b _0810E3FE
-_0810E3DC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x31
- bls _0810E3EC
- movs r0, 0x2
- b _0810E3FE
-_0810E3EC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0
- bne _0810E3FC
- movs r0, 0
- b _0810E3FE
-_0810E3FC:
- movs r0, 0x1
-_0810E3FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonFriendshipScore
-
- thumb_func_start CB2_FieldShowRegionMap
-CB2_FieldShowRegionMap: @ 810E404
- push {lr}
- ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl FieldInitRegionMap
- pop {r0}
- bx r0
- .align 2, 0
-_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end CB2_FieldShowRegionMap
-
- thumb_func_start FieldShowRegionMap
-FieldShowRegionMap: @ 810E414
- push {lr}
- ldr r0, _0810E420 @ =CB2_FieldShowRegionMap
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810E420: .4byte CB2_FieldShowRegionMap
- thumb_func_end FieldShowRegionMap
-
- thumb_func_start DoPCTurnOnEffect
-DoPCTurnOnEffect: @ 810E424
- push {r4,lr}
- ldr r4, _0810E460 @ =Task_PCTurnOnEffect
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810E458
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810E464 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810E458:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E460: .4byte Task_PCTurnOnEffect
-_0810E464: .4byte gTasks
- thumb_func_end DoPCTurnOnEffect
-
- thumb_func_start Task_PCTurnOnEffect
-Task_PCTurnOnEffect: @ 810E468
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0810E48C @ =gTasks
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0810E486
- adds r0, r1, 0
- bl PCTurnOffEffect_0
-_0810E486:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E48C: .4byte gTasks
- thumb_func_end Task_PCTurnOnEffect
-
- thumb_func_start PCTurnOffEffect_0
-PCTurnOffEffect_0: @ 810E490
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r6, 0
- movs r5, 0
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _0810E4FC
- strh r5, [r4, 0xE]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _0810E4C4
- cmp r0, 0x3
- bgt _0810E4BA
- cmp r0, 0x2
- beq _0810E4C0
- b _0810E4CC
-_0810E4BA:
- cmp r1, 0x4
- beq _0810E4C8
- b _0810E4CC
-_0810E4C0:
- movs r6, 0
- b _0810E4CA
-_0810E4C4:
- movs r6, 0xFF
- b _0810E4CA
-_0810E4C8:
- movs r6, 0x1
-_0810E4CA:
- movs r5, 0xFF
-_0810E4CC:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- lsls r1, r6, 24
- asrs r1, 24
- lsls r2, r5, 24
- asrs r2, 24
- bl PCTurnOffEffect_1
- bl DrawWholeMapView
- ldrh r0, [r4, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0810E4FC
- ldrb r0, [r4, 0xA]
- bl DestroyTask
-_0810E4FC:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end PCTurnOffEffect_0
-
- thumb_func_start PCTurnOffEffect_1
-PCTurnOffEffect_1: @ 810E508
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r3, 0
- lsls r0, 16
- cmp r0, 0
- beq _0810E544
- ldr r0, _0810E528 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E52C
- movs r3, 0x4
- b _0810E566
- .align 2, 0
-_0810E528: .4byte gSpecialVar_0x8004
-_0810E52C:
- cmp r0, 0x1
- bne _0810E538
- ldr r3, _0810E534 @ =0x0000025a
- b _0810E566
- .align 2, 0
-_0810E534: .4byte 0x0000025a
-_0810E538:
- cmp r0, 0x2
- bne _0810E566
- ldr r3, _0810E540 @ =0x00000259
- b _0810E566
- .align 2, 0
-_0810E540: .4byte 0x00000259
-_0810E544:
- ldr r0, _0810E550 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E554
- movs r3, 0x5
- b _0810E566
- .align 2, 0
-_0810E550: .4byte gSpecialVar_0x8004
-_0810E554:
- cmp r0, 0x1
- bne _0810E560
- ldr r3, _0810E55C @ =0x0000027f
- b _0810E566
- .align 2, 0
-_0810E55C: .4byte 0x0000027f
-_0810E560:
- cmp r0, 0x2
- bne _0810E566
- ldr r3, _0810E594 @ =0x0000027e
-_0810E566:
- ldr r2, _0810E598 @ =gSaveBlock1
- movs r5, 0
- ldrsh r0, [r2, r5]
- lsls r1, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r5, 0x2
- ldrsh r1, [r2, r5]
- lsls r2, r4, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r4, 0xC0
- lsls r4, 4
- adds r2, r4, 0
- orrs r3, r2
- adds r2, r3, 0
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E594: .4byte 0x0000027e
-_0810E598: .4byte gSaveBlock1
- thumb_func_end PCTurnOffEffect_1
-
- thumb_func_start DoPCTurnOffEffect
-DoPCTurnOffEffect: @ 810E59C
- push {lr}
- bl PCTurnOffEffect
- pop {r0}
- bx r0
- thumb_func_end DoPCTurnOffEffect
-
- thumb_func_start PCTurnOffEffect
-PCTurnOffEffect: @ 810E5A8
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
- movs r4, 0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _0810E5D2
- cmp r0, 0x3
- bgt _0810E5C8
- cmp r0, 0x2
- beq _0810E5CE
- b _0810E5DA
-_0810E5C8:
- cmp r1, 0x4
- beq _0810E5D6
- b _0810E5DA
-_0810E5CE:
- movs r6, 0
- b _0810E5D8
-_0810E5D2:
- movs r6, 0xFF
- b _0810E5D8
-_0810E5D6:
- movs r6, 0x1
-_0810E5D8:
- movs r5, 0xFF
-_0810E5DA:
- ldr r0, _0810E5E8 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E5EC
- movs r4, 0x4
- b _0810E5FE
- .align 2, 0
-_0810E5E8: .4byte gSpecialVar_0x8004
-_0810E5EC:
- cmp r0, 0x1
- bne _0810E5F8
- ldr r4, _0810E5F4 @ =0x0000025a
- b _0810E5FE
- .align 2, 0
-_0810E5F4: .4byte 0x0000025a
-_0810E5F8:
- cmp r0, 0x2
- bne _0810E5FE
- ldr r4, _0810E630 @ =0x00000259
-_0810E5FE:
- ldr r2, _0810E634 @ =gSaveBlock1
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r6, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- lsls r2, r5, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r3, 0xC0
- lsls r3, 4
- adds r2, r3, 0
- orrs r4, r2
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E630: .4byte 0x00000259
-_0810E634: .4byte gSaveBlock1
- thumb_func_end PCTurnOffEffect
-
- thumb_func_start DoLotteryCornerComputerEffect
-DoLotteryCornerComputerEffect: @ 810E638
- push {r4,lr}
- ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810E66C
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810E678 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810E66C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E674: .4byte Task_LotteryCornerComputerEffect
-_0810E678: .4byte gTasks
- thumb_func_end DoLotteryCornerComputerEffect
-
- thumb_func_start Task_LotteryCornerComputerEffect
-Task_LotteryCornerComputerEffect: @ 810E67C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0810E6A0 @ =gTasks
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0810E69A
- adds r0, r1, 0
- bl LotteryCornerComputerEffect
-_0810E69A:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E6A0: .4byte gTasks
- thumb_func_end Task_LotteryCornerComputerEffect
-
- thumb_func_start LotteryCornerComputerEffect
-LotteryCornerComputerEffect: @ 810E6A4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _0810E712
- movs r0, 0
- strh r0, [r4, 0xE]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810E6DC
- ldr r2, _0810E6D4 @ =0x00000e9d
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810E6D8 @ =0x00000ea5
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- b _0810E6F2
- .align 2, 0
-_0810E6D4: .4byte 0x00000e9d
-_0810E6D8: .4byte 0x00000ea5
-_0810E6DC:
- ldr r2, _0810E720 @ =0x00000e58
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0xE6
- lsls r2, 4
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
-_0810E6F2:
- bl DrawWholeMapView
- ldrh r0, [r4, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0810E712
- ldrb r0, [r4, 0xA]
- bl DestroyTask
-_0810E712:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E720: .4byte 0x00000e58
- thumb_func_end LotteryCornerComputerEffect
-
- thumb_func_start EndLotteryCornerComputerEffect
-EndLotteryCornerComputerEffect: @ 810E724
- push {lr}
- ldr r2, _0810E744 @ =0x00000e9d
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810E748 @ =0x00000ea5
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r0}
- bx r0
- .align 2, 0
-_0810E744: .4byte 0x00000e9d
-_0810E748: .4byte 0x00000ea5
- thumb_func_end EndLotteryCornerComputerEffect
-
- thumb_func_start SetDepartmentStoreFloorVar
-SetDepartmentStoreFloorVar: @ 810E74C
- push {lr}
- ldr r0, _0810E768 @ =gSaveBlock1
- ldrb r0, [r0, 0x15]
- subs r0, 0x11
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x5
- bhi _0810E79C
- lsls r0, 2
- ldr r1, _0810E76C @ =_0810E770
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810E768: .4byte gSaveBlock1
-_0810E76C: .4byte _0810E770
- .align 2, 0
-_0810E770:
- .4byte _0810E79C
- .4byte _0810E788
- .4byte _0810E78C
- .4byte _0810E790
- .4byte _0810E794
- .4byte _0810E798
-_0810E788:
- movs r1, 0x1
- b _0810E79E
-_0810E78C:
- movs r1, 0x2
- b _0810E79E
-_0810E790:
- movs r1, 0x3
- b _0810E79E
-_0810E794:
- movs r1, 0x4
- b _0810E79E
-_0810E798:
- movs r1, 0xF
- b _0810E79E
-_0810E79C:
- movs r1, 0
-_0810E79E:
- ldr r0, _0810E7A8 @ =0x00004043
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810E7A8: .4byte 0x00004043
- thumb_func_end SetDepartmentStoreFloorVar
-
- thumb_func_start ScriptAddElevatorMenuItem
-ScriptAddElevatorMenuItem: @ 810E7AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r12, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- ldr r0, _0810E81C @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- adds r2, r0, 0
- ldr r3, _0810E820 @ =gUnknown_03000760
- cmp r1, 0
- bne _0810E7E8
- movs r1, 0
- adds r5, r3, 0
- movs r4, 0x10
-_0810E7D8:
- lsls r0, r1, 2
- adds r0, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bls _0810E7D8
-_0810E7E8:
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- strb r6, [r0]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- strb r7, [r0, 0x1]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strb r1, [r0, 0x2]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- mov r1, r8
- strb r1, [r0, 0x3]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E81C: .4byte gSpecialVar_0x8004
-_0810E820: .4byte gUnknown_03000760
- thumb_func_end ScriptAddElevatorMenuItem
-
- thumb_func_start ScriptShowElevatorMenu
-ScriptShowElevatorMenu: @ 810E824
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810E868 @ =gUnknown_0203925A
- strb r4, [r5]
- ldr r0, _0810E86C @ =gUnknown_0203925B
- strb r4, [r0]
- movs r0, 0x10
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl ScriptAddElevatorMenuItem
- ldr r2, _0810E870 @ =gUnknown_03000760
- ldrb r0, [r2]
- cmp r0, 0x10
- beq _0810E85C
- adds r1, r5, 0
-_0810E846:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810E846
-_0810E85C:
- bl sub_810E874
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E868: .4byte gUnknown_0203925A
-_0810E86C: .4byte gUnknown_0203925B
-_0810E870: .4byte gUnknown_03000760
- thumb_func_end ScriptShowElevatorMenu
-
- thumb_func_start sub_810E874
-sub_810E874: @ 810E874
- push {r4-r6,lr}
- sub sp, 0x8
- bl ScriptContext2_Enable
- ldr r4, _0810E8B8 @ =gUnknown_0203925A
- ldrb r0, [r4]
- cmp r0, 0x5
- bls _0810E8C0
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0xB
- bl MenuDrawTextWindow
- movs r4, 0
- str r4, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x5
- bl InitMenu
- ldr r0, _0810E8BC @ =gUnknown_0203925C
- strb r4, [r0]
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- bl sub_810ECD4
- b _0810E8E8
- .align 2, 0
-_0810E8B8: .4byte gUnknown_0203925A
-_0810E8BC: .4byte gUnknown_0203925C
-_0810E8C0:
- ldrb r3, [r4]
- lsls r3, 1
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- bl MenuDrawTextWindow
- ldrb r3, [r4]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl InitMenu
-_0810E8E8:
- movs r4, 0
- ldr r1, _0810E938 @ =gUnknown_03000760
- ldrb r0, [r1]
- cmp r0, 0x10
- beq _0810E924
- ldr r6, _0810E93C @ =gUnknown_083F8380
- adds r5, r1, 0
-_0810E8F6:
- lsls r0, r4, 2
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r2, r4, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bhi _0810E924
- lsls r0, r4, 2
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810E8F6
-_0810E924:
- bl sub_810E944
- ldr r0, _0810E940 @ =sub_810E984
- movs r1, 0x8
- bl CreateTask
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E938: .4byte gUnknown_03000760
-_0810E93C: .4byte gUnknown_083F8380
-_0810E940: .4byte sub_810E984
- thumb_func_end sub_810E874
-
- thumb_func_start sub_810E944
-sub_810E944: @ 810E944
- push {lr}
- movs r0, 0x14
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x5
- bl MenuDrawTextWindow
- ldr r0, _0810E978 @ =gOtherText_NowOn
- movs r1, 0x15
- movs r2, 0x1
- movs r3, 0x40
- bl sub_8072BD8
- ldr r1, _0810E97C @ =gUnknown_083F8380
- ldr r0, _0810E980 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x15
- movs r2, 0x3
- movs r3, 0x40
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_0810E978: .4byte gOtherText_NowOn
-_0810E97C: .4byte gUnknown_083F8380
-_0810E980: .4byte gSpecialVar_0x8005
- thumb_func_end sub_810E944
-
- thumb_func_start sub_810E984
-sub_810E984: @ 810E984
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0810EA44 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0810E9B8
- ldr r1, _0810EA48 @ =gUnknown_0203925B
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810E9B8
- subs r0, 0x1
- strb r0, [r1]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x40
- bl sub_810EAC8
-_0810E9B8:
- ldr r0, _0810EA44 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0810E9E8
- ldr r2, _0810EA48 @ =gUnknown_0203925B
- ldrb r1, [r2]
- ldr r0, _0810EA4C @ =gUnknown_0203925A
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _0810E9E8
- adds r0, r1, 0x1
- strb r0, [r2]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x80
- bl sub_810EAC8
-_0810E9E8:
- ldr r0, _0810EA44 @ =gMain
- ldrh r2, [r0, 0x2E]
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r2
- cmp r1, 0
- beq _0810EA94
- ldr r1, _0810EA50 @ =gUnknown_03000760
- ldr r4, _0810EA48 @ =gUnknown_0203925B
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- movs r1, 0x1
- ldrsb r1, [r0, r1]
- movs r2, 0x2
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0x2
- str r0, [sp]
- str r5, [sp, 0x4]
- movs r0, 0
- bl saved_warp2_set_2
- ldr r1, _0810EA54 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- ldrb r2, [r4]
- cmp r0, r2
- bne _0810EA5C
- ldr r1, _0810EA58 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_810EC9C
- b _0810EABC
- .align 2, 0
-_0810EA44: .4byte gMain
-_0810EA48: .4byte gUnknown_0203925B
-_0810EA4C: .4byte gUnknown_0203925A
-_0810EA50: .4byte gUnknown_03000760
-_0810EA54: .4byte gSpecialVar_0x8005
-_0810EA58: .4byte gScriptResult
-_0810EA5C:
- ldr r0, _0810EA88 @ =gScriptResult
- strh r5, [r0]
- ldrb r0, [r4]
- strh r0, [r1]
- bl sub_810EBEC
- ldr r0, _0810EA8C @ =gScriptLastTalked
- ldrb r0, [r0]
- ldr r2, _0810EA90 @ =gSaveBlock1
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- movs r3, 0x1
- bl FieldObjectTurnByLocalIdAndMap
- bl sub_810EEDC
- bl MenuZeroFillScreen
- adds r0, r6, 0
- bl DestroyTask
- b _0810EABC
- .align 2, 0
-_0810EA88: .4byte gScriptResult
-_0810EA8C: .4byte gScriptLastTalked
-_0810EA90: .4byte gSaveBlock1
-_0810EA94:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0810EABC
- ldr r0, _0810EAC4 @ =gScriptResult
- strh r1, [r0]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_810EC9C
-_0810EABC:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EAC4: .4byte gScriptResult
- thumb_func_end sub_810E984
-
- thumb_func_start sub_810EAC8
-sub_810EAC8: @ 810EAC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r1, 24
- adds r3, r1, 0
- movs r7, 0
- movs r4, 0
- ldr r0, _0810EAEC @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810EAF0
- movs r0, 0
- b _0810EB78
- .align 2, 0
-_0810EAEC: .4byte gUnknown_0203925A
-_0810EAF0:
- cmp r1, 0x40
- bne _0810EB04
- cmp r2, 0
- bne _0810EB18
- ldr r0, _0810EB00 @ =gUnknown_0203925B
- ldrb r4, [r0]
- movs r7, 0x1
- b _0810EB1C
- .align 2, 0
-_0810EB00: .4byte gUnknown_0203925B
-_0810EB04:
- cmp r3, 0x80
- bne _0810EB18
- cmp r5, 0x4
- bne _0810EB18
- ldr r0, _0810EB84 @ =gUnknown_0203925B
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0x1
-_0810EB18:
- cmp r7, 0
- beq _0810EB76
-_0810EB1C:
- adds r0, r4, 0
- movs r1, 0x5
- bl sub_810EB90
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0xA
- bl MenuFillWindowRectWithBlankTile
- movs r5, 0
- ldr r2, _0810EB88 @ =gUnknown_03000760
- lsls r1, r4, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x10
- beq _0810EB76
- ldr r0, _0810EB8C @ =gUnknown_083F8380
- mov r8, r0
- adds r6, r2, 0
-_0810EB44:
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 2
- add r0, r8
- ldr r0, [r0]
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bhi _0810EB76
- lsls r1, r4, 2
- adds r0, r1, r6
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810EB44
-_0810EB76:
- adds r0, r7, 0
-_0810EB78:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810EB84: .4byte gUnknown_0203925B
-_0810EB88: .4byte gUnknown_03000760
-_0810EB8C: .4byte gUnknown_083F8380
- thumb_func_end sub_810EAC8
-
- thumb_func_start sub_810EB90
-sub_810EB90: @ 810EB90
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0
- bne _0810EBB4
- ldr r0, _0810EBB0 @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x2
- eors r1, r2
- strb r1, [r0]
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- b _0810EBB8
- .align 2, 0
-_0810EBB0: .4byte gUnknown_0203925C
-_0810EBB4:
- bl sub_810ECB0
-_0810EBB8:
- adds r1, r4, r5
- ldr r0, _0810EBC8 @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r1, r0
- bge _0810EBCC
- bl sub_810ECD4
- b _0810EBE0
- .align 2, 0
-_0810EBC8: .4byte gUnknown_0203925A
-_0810EBCC:
- cmp r1, r0
- bne _0810EBE0
- ldr r0, _0810EBE8 @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0810EBE0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EBE8: .4byte gUnknown_0203925C
- thumb_func_end sub_810EB90
-
- thumb_func_start sub_810EBEC
-sub_810EBEC: @ 810EBEC
- push {lr}
- ldr r0, _0810EC2C @ =sub_810EC34
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810EC30 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- movs r2, 0x1
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- strh r2, [r1, 0x10]
- movs r0, 0x3
- strh r0, [r1, 0x12]
- movs r0, 0
- bl SetCameraPanningCallback
- bl sub_810ECFC
- movs r0, 0x59
- bl PlaySE
- pop {r0}
- bx r0
- .align 2, 0
-_0810EC2C: .4byte sub_810EC34
-_0810EC30: .4byte gTasks
- thumb_func_end sub_810EBEC
-
- thumb_func_start sub_810EC34
-sub_810EC34: @ 810EC34
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810EC98 @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _0810EC92
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810EC92
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- movs r0, 0
- bl SetCameraPanning
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x17
- bne _0810EC92
- movs r0, 0x49
- bl PlaySE
- adds r0, r5, 0
- bl sub_810EC9C
- bl InstallCameraPanAheadCallback
-_0810EC92:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EC98: .4byte gTasks
- thumb_func_end sub_810EC34
-
- thumb_func_start sub_810EC9C
-sub_810EC9C: @ 810EC9C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_810EC9C
-
- thumb_func_start sub_810ECB0
-sub_810ECB0: @ 810ECB0
- push {lr}
- ldr r2, _0810ECD0 @ =gUnknown_0203925C
- ldrb r1, [r2]
- lsrs r0, r1, 1
- cmp r0, 0x1
- beq _0810ECCC
- movs r0, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- movs r1, 0x24
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
-_0810ECCC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810ECD0: .4byte gUnknown_0203925C
- thumb_func_end sub_810ECB0
-
- thumb_func_start sub_810ECD4
-sub_810ECD4: @ 810ECD4
- push {lr}
- ldr r2, _0810ECF8 @ =gUnknown_0203925C
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810ECF2
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- movs r1, 0x24
- movs r2, 0x48
- bl CreateVerticalScrollIndicators
-_0810ECF2:
- pop {r0}
- bx r0
- .align 2, 0
-_0810ECF8: .4byte gUnknown_0203925C
- thumb_func_end sub_810ECD4
-
- thumb_func_start sub_810ECFC
-sub_810ECFC: @ 810ECFC
- push {r4,lr}
- ldr r4, _0810ED38 @ =sub_810ED40
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810ED30
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810ED3C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810ED30:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810ED38: .4byte sub_810ED40
-_0810ED3C: .4byte gTasks
- thumb_func_end sub_810ECFC
-
- thumb_func_start sub_810ED40
-sub_810ED40: @ 810ED40
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0810ED5C @ =gTasks
- adds r0, r1
- bl sub_810ED60
- pop {r0}
- bx r0
- .align 2, 0
-_0810ED5C: .4byte gTasks
- thumb_func_end sub_810ED40
-
- thumb_func_start sub_810ED60
-sub_810ED60: @ 810ED60
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x8
- beq _0810ED6E
- b _0810EEB2
-_0810ED6E:
- movs r0, 0
- strh r0, [r5, 0xE]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0810EE14
- ldr r2, _0810EDFC @ =0x00000e68
- movs r0, 0x7
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r4, _0810EE00 @ =0x00000e69
- movs r0, 0x8
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE04 @ =0x00000e6a
- movs r0, 0xA
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- movs r2, 0xE7
- lsls r2, 4
- movs r0, 0x7
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE08 @ =0x00000e72
- movs r0, 0xA
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE0C @ =0x00000e78
- movs r0, 0x7
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE10 @ =0x00000e7a
- movs r0, 0xA
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- b _0810EE92
- .align 2, 0
-_0810EDFC: .4byte 0x00000e68
-_0810EE00: .4byte 0x00000e69
-_0810EE04: .4byte 0x00000e6a
-_0810EE08: .4byte 0x00000e72
-_0810EE0C: .4byte 0x00000e78
-_0810EE10: .4byte 0x00000e7a
-_0810EE14:
- ldr r2, _0810EEC0 @ =0x00000e6b
- movs r0, 0x7
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r4, _0810EEC4 @ =0x00000e6c
- movs r0, 0x8
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EEC8 @ =0x00000e6d
- movs r0, 0xA
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EECC @ =0x00000e73
- movs r0, 0x7
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED0 @ =0x00000e75
- movs r0, 0xA
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED4 @ =0x00000e7b
- movs r0, 0x7
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED8 @ =0x00000e7d
- movs r0, 0xA
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
-_0810EE92:
- bl DrawWholeMapView
- ldrh r0, [r5, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x10]
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _0810EEB2
- ldrb r0, [r5, 0xA]
- bl DestroyTask
-_0810EEB2:
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EEC0: .4byte 0x00000e6b
-_0810EEC4: .4byte 0x00000e6c
-_0810EEC8: .4byte 0x00000e6d
-_0810EECC: .4byte 0x00000e73
-_0810EED0: .4byte 0x00000e75
-_0810EED4: .4byte 0x00000e7b
-_0810EED8: .4byte 0x00000e7d
- thumb_func_end sub_810ED60
-
- thumb_func_start sub_810EEDC
-sub_810EEDC: @ 810EEDC
- push {r4,lr}
- ldr r4, _0810EF08 @ =gUnknown_0203925C
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810EEF0
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0810EEF0:
- ldrb r0, [r4]
- lsrs r0, 1
- cmp r0, 0x1
- bne _0810EEFE
- movs r0, 0
- bl DestroyVerticalScrollIndicator
-_0810EEFE:
- bl BuyMenuFreeMemory
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF08: .4byte gUnknown_0203925C
- thumb_func_end sub_810EEDC
-
- thumb_func_start SetTrickHouseEndRoomFlag
-SetTrickHouseEndRoomFlag: @ 810EF0C
- push {lr}
- ldr r1, _0810EF1C @ =gSpecialVar_0x8004
- ldr r0, _0810EF20 @ =0x00000259
- strh r0, [r1]
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF1C: .4byte gSpecialVar_0x8004
-_0810EF20: .4byte 0x00000259
- thumb_func_end SetTrickHouseEndRoomFlag
-
- thumb_func_start ResetTrickHouseEndRoomFlag
-ResetTrickHouseEndRoomFlag: @ 810EF24
- push {lr}
- ldr r1, _0810EF34 @ =gSpecialVar_0x8004
- ldr r0, _0810EF38 @ =0x00000259
- strh r0, [r1]
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF34: .4byte gSpecialVar_0x8004
-_0810EF38: .4byte 0x00000259
- thumb_func_end ResetTrickHouseEndRoomFlag
-
- thumb_func_start CheckLeadMonCool
-CheckLeadMonCool: @ 810EF3C
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EF5C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EF60
- movs r0, 0x1
- b _0810EF62
- .align 2, 0
-_0810EF5C: .4byte gPlayerParty
-_0810EF60:
- movs r0, 0
-_0810EF62:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonCool
-
- thumb_func_start CheckLeadMonBeauty
-CheckLeadMonBeauty: @ 810EF68
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EF88 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EF8C
- movs r0, 0x1
- b _0810EF8E
- .align 2, 0
-_0810EF88: .4byte gPlayerParty
-_0810EF8C:
- movs r0, 0
-_0810EF8E:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonBeauty
-
- thumb_func_start CheckLeadMonCute
-CheckLeadMonCute: @ 810EF94
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EFB4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EFB8
- movs r0, 0x1
- b _0810EFBA
- .align 2, 0
-_0810EFB4: .4byte gPlayerParty
-_0810EFB8:
- movs r0, 0
-_0810EFBA:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonCute
-
- thumb_func_start CheckLeadMonSmart
-CheckLeadMonSmart: @ 810EFC0
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EFE0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EFE4
- movs r0, 0x1
- b _0810EFE6
- .align 2, 0
-_0810EFE0: .4byte gPlayerParty
-_0810EFE4:
- movs r0, 0
-_0810EFE6:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonSmart
-
- thumb_func_start CheckLeadMonTough
-CheckLeadMonTough: @ 810EFEC
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F00C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- bl GetMonData
- cmp r0, 0xC7
- bls _0810F010
- movs r0, 0x1
- b _0810F012
- .align 2, 0
-_0810F00C: .4byte gPlayerParty
-_0810F010:
- movs r0, 0
-_0810F012:
- pop {r1}
- bx r1
- thumb_func_end CheckLeadMonTough
-
- thumb_func_start IsGrassTypeInParty
-IsGrassTypeInParty: @ 810F018
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _0810F068 @ =gBaseStats
-_0810F01E:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810F06C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _0810F074
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0810F074
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x6]
- cmp r0, 0xC
- beq _0810F060
- ldrb r0, [r1, 0x7]
- cmp r0, 0xC
- bne _0810F074
-_0810F060:
- ldr r1, _0810F070 @ =gScriptResult
- movs r0, 0x1
- b _0810F082
- .align 2, 0
-_0810F068: .4byte gBaseStats
-_0810F06C: .4byte gPlayerParty
-_0810F070: .4byte gScriptResult
-_0810F074:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0810F01E
- ldr r1, _0810F08C @ =gScriptResult
- movs r0, 0
-_0810F082:
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F08C: .4byte gScriptResult
- thumb_func_end IsGrassTypeInParty
-
- thumb_func_start ShowGlassWorkshopMenu
-ShowGlassWorkshopMenu: @ 810F090
- push {r4,r5,lr}
- sub sp, 0x8
- bl ScriptContext2_Enable
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xB
- bl MenuDrawTextWindow
- movs r4, 0
- str r4, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x5
- bl InitMenu
- ldr r0, _0810F104 @ =gUnknown_0203925C
- strb r4, [r0]
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- bl sub_810F2B4
- ldr r5, _0810F108 @ =gUnknown_083F83C0
-_0810F0CA:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r2, r4, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0810F0CA
- ldr r1, _0810F10C @ =gUnknown_0203925B
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0810F110 @ =gUnknown_0203925A
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0810F114 @ =sub_810F118
- movs r1, 0x8
- bl CreateTask
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F104: .4byte gUnknown_0203925C
-_0810F108: .4byte gUnknown_083F83C0
-_0810F10C: .4byte gUnknown_0203925B
-_0810F110: .4byte gUnknown_0203925A
-_0810F114: .4byte sub_810F118
- thumb_func_end ShowGlassWorkshopMenu
-
- thumb_func_start sub_810F118
-sub_810F118: @ 810F118
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810F1E4 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0810F14A
- ldr r1, _0810F1E8 @ =gUnknown_0203925B
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810F14A
- subs r0, 0x1
- strb r0, [r1]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x40
- bl sub_810F1F4
-_0810F14A:
- ldr r0, _0810F1E4 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0810F17A
- ldr r2, _0810F1E8 @ =gUnknown_0203925B
- ldrb r1, [r2]
- ldr r0, _0810F1EC @ =gUnknown_0203925A
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _0810F17A
- adds r0, r1, 0x1
- strb r0, [r2]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x80
- bl sub_810F1F4
-_0810F17A:
- ldr r4, _0810F1E4 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810F1AE
- bl sub_8072DEC
- ldr r0, _0810F1F0 @ =gScriptResult
- ldr r1, _0810F1E8 @ =gUnknown_0203925B
- ldrb r1, [r1]
- strh r1, [r0]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_810EC9C
-_0810F1AE:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810F1DE
- bl sub_8072DEC
- ldr r1, _0810F1F0 @ =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_810EC9C
-_0810F1DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F1E4: .4byte gMain
-_0810F1E8: .4byte gUnknown_0203925B
-_0810F1EC: .4byte gUnknown_0203925A
-_0810F1F0: .4byte gScriptResult
- thumb_func_end sub_810F118
-
- thumb_func_start sub_810F1F4
-sub_810F1F4: @ 810F1F4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r1, 24
- adds r3, r1, 0
- movs r6, 0
- movs r4, 0
- ldr r0, _0810F214 @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810F218
- movs r0, 0
- b _0810F282
- .align 2, 0
-_0810F214: .4byte gUnknown_0203925A
-_0810F218:
- cmp r1, 0x40
- bne _0810F22C
- cmp r2, 0
- bne _0810F240
- ldr r0, _0810F228 @ =gUnknown_0203925B
- ldrb r4, [r0]
- movs r6, 0x1
- b _0810F244
- .align 2, 0
-_0810F228: .4byte gUnknown_0203925B
-_0810F22C:
- cmp r3, 0x80
- bne _0810F240
- cmp r5, 0x4
- bne _0810F240
- ldr r0, _0810F288 @ =gUnknown_0203925B
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r6, 0x1
-_0810F240:
- cmp r6, 0
- beq _0810F280
-_0810F244:
- adds r0, r4, 0
- movs r1, 0x5
- bl GlassWorkshopUpdateScrollIndicators
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x9
- movs r3, 0xA
- bl MenuFillWindowRectWithBlankTile
- movs r5, 0
- ldr r7, _0810F28C @ =gUnknown_083F83C0
-_0810F25C:
- lsls r0, r4, 2
- adds r0, r7
- ldr r0, [r0]
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0810F25C
-_0810F280:
- adds r0, r6, 0
-_0810F282:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F288: .4byte gUnknown_0203925B
-_0810F28C: .4byte gUnknown_083F83C0
- thumb_func_end sub_810F1F4
-
- thumb_func_start sub_810F290
-sub_810F290: @ 810F290
- push {lr}
- ldr r2, _0810F2B0 @ =gUnknown_0203925C
- ldrb r1, [r2]
- lsrs r0, r1, 1
- cmp r0, 0x1
- beq _0810F2AC
- movs r0, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- movs r1, 0x2C
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
-_0810F2AC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810F2B0: .4byte gUnknown_0203925C
- thumb_func_end sub_810F290
-
- thumb_func_start sub_810F2B4
-sub_810F2B4: @ 810F2B4
- push {lr}
- ldr r2, _0810F2D8 @ =gUnknown_0203925C
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810F2D2
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- movs r1, 0x2C
- movs r2, 0x58
- bl CreateVerticalScrollIndicators
-_0810F2D2:
- pop {r0}
- bx r0
- .align 2, 0
-_0810F2D8: .4byte gUnknown_0203925C
- thumb_func_end sub_810F2B4
-
- thumb_func_start GlassWorkshopUpdateScrollIndicators
-GlassWorkshopUpdateScrollIndicators: @ 810F2DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0
- bne _0810F300
- ldr r0, _0810F2FC @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x2
- eors r1, r2
- strb r1, [r0]
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- b _0810F304
- .align 2, 0
-_0810F2FC: .4byte gUnknown_0203925C
-_0810F300:
- bl sub_810F290
-_0810F304:
- adds r1, r4, r5
- ldr r0, _0810F314 @ =gUnknown_0203925A
- ldrb r0, [r0]
- cmp r1, r0
- bge _0810F318
- bl sub_810F2B4
- b _0810F32C
- .align 2, 0
-_0810F314: .4byte gUnknown_0203925A
-_0810F318:
- cmp r1, r0
- bne _0810F32C
- ldr r0, _0810F334 @ =gUnknown_0203925C
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
-_0810F32C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F334: .4byte gUnknown_0203925C
- thumb_func_end GlassWorkshopUpdateScrollIndicators
-
- thumb_func_start SpawnCameraDummy
-SpawnCameraDummy: @ 810F338
- push {lr}
- sub sp, 0x8
- ldr r0, _0810F380 @ =gSaveBlock1
- ldrh r3, [r0]
- adds r3, 0x7
- lsls r3, 16
- asrs r3, 16
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- movs r0, 0x7
- movs r1, 0x8
- movs r2, 0x7F
- bl SpawnSpecialFieldObjectParametrized
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810F384 @ =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r1, 0x4]
- bl CameraObjectSetFollowedObjectId
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0810F380: .4byte gSaveBlock1
-_0810F384: .4byte gMapObjects
- thumb_func_end SpawnCameraDummy
-
- thumb_func_start RemoveCameraDummy
-RemoveCameraDummy: @ 810F388
- push {lr}
- bl GetPlayerAvatarObjectId
- lsls r0, 24
- lsrs r0, 24
- bl CameraObjectSetFollowedObjectId
- ldr r0, _0810F3A8 @ =gSaveBlock1
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x7F
- bl RemoveFieldObjectByLocalIdAndMap
- pop {r0}
- bx r0
- .align 2, 0
-_0810F3A8: .4byte gSaveBlock1
- thumb_func_end RemoveCameraDummy
-
- thumb_func_start GetPokeblockNameByMonNature
-GetPokeblockNameByMonNature: @ 810F3AC
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F3D4 @ =gPlayerParty
- adds r0, r1
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810F3D8 @ =gStringVar1
- bl sub_810CB68
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810F3D4: .4byte gPlayerParty
-_0810F3D8: .4byte gStringVar1
- thumb_func_end GetPokeblockNameByMonNature
-
- thumb_func_start GetSecretBaseNearbyMapName
-GetSecretBaseNearbyMapName: @ 810F3DC
- push {r4,lr}
- ldr r4, _0810F3FC @ =gStringVar1
- ldr r0, _0810F400 @ =0x00004026
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_80FBFB4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F3FC: .4byte gStringVar1
-_0810F400: .4byte 0x00004026
- thumb_func_end GetSecretBaseNearbyMapName
-
- thumb_func_start sub_810F404
-sub_810F404: @ 810F404
- push {lr}
- movs r0, 0x20
- bl sub_8053108
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_810F404
-
- thumb_func_start sub_810F414
-sub_810F414: @ 810F414
- push {lr}
- ldr r0, _0810F420 @ =gStringVar1
- bl sub_8135FF4
- pop {r0}
- bx r0
- .align 2, 0
-_0810F420: .4byte gStringVar1
- thumb_func_end sub_810F414
-
- thumb_func_start sub_810F424
-sub_810F424: @ 810F424
- push {r4,r5,lr}
- ldr r2, _0810F458 @ =gSaveBlock1
- ldr r1, _0810F45C @ =0x00002dd4
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 25
- ldr r0, _0810F460 @ =0x00002dd6
- adds r2, r0
- lsrs r1, 25
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _0810F464 @ =gUnknown_083F83E0
- ldr r0, _0810F468 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- adds r5, r1, r0
- movs r0, 0x2
- bl GetPriceReduction
- lsls r0, 24
- cmp r0, 0
- bne _0810F470
- ldr r4, _0810F46C @ =gUnknown_083F83EC
- b _0810F472
- .align 2, 0
-_0810F458: .4byte gSaveBlock1
-_0810F45C: .4byte 0x00002dd4
-_0810F460: .4byte 0x00002dd6
-_0810F464: .4byte gUnknown_083F83E0
-_0810F468: .4byte gSpecialVar_0x8004
-_0810F46C: .4byte gUnknown_083F83EC
-_0810F470:
- ldr r4, _0810F484 @ =gUnknown_083F83F8
-_0810F472:
- adds r0, r5, 0
- movs r1, 0xC
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F484: .4byte gUnknown_083F83F8
- thumb_func_end sub_810F424
-
- thumb_func_start sub_810F488
-sub_810F488: @ 810F488
- push {lr}
- ldr r1, _0810F4A0 @ =gSpecialVar_0x8004
- ldr r0, _0810F4A4 @ =0x00000277
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4A8
- movs r0, 0x1
- b _0810F4AA
- .align 2, 0
-_0810F4A0: .4byte gSpecialVar_0x8004
-_0810F4A4: .4byte 0x00000277
-_0810F4A8:
- movs r0, 0
-_0810F4AA:
- pop {r1}
- bx r1
- thumb_func_end sub_810F488
-
- thumb_func_start sub_810F4B0
-sub_810F4B0: @ 810F4B0
- push {lr}
- ldr r1, _0810F4C8 @ =gSpecialVar_0x8004
- movs r0, 0x9E
- lsls r0, 2
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4CC
- movs r0, 0x1
- b _0810F4CE
- .align 2, 0
-_0810F4C8: .4byte gSpecialVar_0x8004
-_0810F4CC:
- movs r0, 0
-_0810F4CE:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4B0
-
- thumb_func_start sub_810F4D4
-sub_810F4D4: @ 810F4D4
- push {lr}
- ldr r1, _0810F4EC @ =gSpecialVar_0x8004
- ldr r0, _0810F4F0 @ =0x00000279
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4F4
- movs r0, 0x1
- b _0810F4F6
- .align 2, 0
-_0810F4EC: .4byte gSpecialVar_0x8004
-_0810F4F0: .4byte 0x00000279
-_0810F4F4:
- movs r0, 0
-_0810F4F6:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4D4
-
- thumb_func_start sub_810F4FC
-sub_810F4FC: @ 810F4FC
- push {lr}
- ldr r1, _0810F514 @ =gSpecialVar_0x8004
- ldr r0, _0810F518 @ =0x0000027a
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F51C
- movs r0, 0x1
- b _0810F51E
- .align 2, 0
-_0810F514: .4byte gSpecialVar_0x8004
-_0810F518: .4byte 0x0000027a
-_0810F51C:
- movs r0, 0
-_0810F51E:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4FC
-
- thumb_func_start LeadMonHasEffortRibbon
-LeadMonHasEffortRibbon: @ 810F524
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F548 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x47
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810F548: .4byte gPlayerParty
- thumb_func_end LeadMonHasEffortRibbon
-
- thumb_func_start GivLeadMonEffortRibbon
-GivLeadMonEffortRibbon: @ 810F54C
- push {lr}
- sub sp, 0x4
- movs r0, 0x2A
- bl sav12_xor_increment
- ldr r0, _0810F580 @ =0x0000083b
- bl FlagSet
- movs r1, 0x1
- mov r0, sp
- strb r1, [r0]
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F584 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x47
- mov r2, sp
- bl SetMonData
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0810F580: .4byte 0x0000083b
-_0810F584: .4byte gPlayerParty
- thumb_func_end GivLeadMonEffortRibbon
-
- thumb_func_start GetLeadMonEVCount
-GetLeadMonEVCount: @ 810F588
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F5AC @ =gPlayerParty
- adds r0, r1
- bl GetMonEVCount
- lsls r0, 16
- ldr r1, _0810F5B0 @ =0x01fd0000
- cmp r0, r1
- bhi _0810F5B4
- movs r0, 0
- b _0810F5B6
- .align 2, 0
-_0810F5AC: .4byte gPlayerParty
-_0810F5B0: .4byte 0x01fd0000
-_0810F5B4:
- movs r0, 0x1
-_0810F5B6:
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonEVCount
-
- thumb_func_start sub_810F5BC
-sub_810F5BC: @ 810F5BC
- push {lr}
- movs r0, 0xC7
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0810F610
- ldr r0, _0810F5E8 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- movs r0, 0x83
- lsls r0, 3
- cmp r1, r0
- bne _0810F610
- subs r0, 0x75
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F5F0
- ldr r0, _0810F5EC @ =0x0000409a
- movs r1, 0x4
- b _0810F602
- .align 2, 0
-_0810F5E8: .4byte gSaveBlock1
-_0810F5EC: .4byte 0x0000409a
-_0810F5F0:
- movs r0, 0xE9
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F610
- ldr r0, _0810F60C @ =0x0000409a
- movs r1, 0x5
-_0810F602:
- bl VarSet
- movs r0, 0x1
- b _0810F612
- .align 2, 0
-_0810F60C: .4byte 0x0000409a
-_0810F610:
- movs r0, 0
-_0810F612:
- pop {r1}
- bx r1
- thumb_func_end sub_810F5BC
-
- thumb_func_start sub_810F618
-sub_810F618: @ 810F618
- push {lr}
- ldr r0, _0810F624 @ =0x0000085f
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810F624: .4byte 0x0000085f
- thumb_func_end sub_810F618
-
- thumb_func_start PutZigzagoonInPlayerParty
-PutZigzagoonInPlayerParty: @ 810F628
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r5, _0810F690 @ =gPlayerParty
- movs r1, 0x90
- lsls r1, 1
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r2, 0x7
- movs r3, 0x20
- bl CreateMon
- movs r1, 0x1
- add r0, sp, 0x10
- strh r1, [r0]
- adds r0, r5, 0
- movs r1, 0x2E
- add r2, sp, 0x10
- bl SetMonData
- add r1, sp, 0x10
- movs r0, 0x21
- strh r0, [r1]
- adds r0, r5, 0
- movs r1, 0xD
- add r2, sp, 0x10
- bl SetMonData
- add r0, sp, 0x10
- strh r4, [r0]
- adds r0, r5, 0
- movs r1, 0xE
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xF
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x10
- add r2, sp, 0x10
- bl SetMonData
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F690: .4byte gPlayerParty
- thumb_func_end PutZigzagoonInPlayerParty
-
- thumb_func_start IsStarterInParty
-IsStarterInParty: @ 810F694
- push {r4-r6,lr}
- ldr r0, _0810F6D0 @ =0x00004023
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl GetStarterPokemon
- lsls r0, 16
- lsrs r6, r0, 16
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0810F6E2
-_0810F6B6:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0810F6D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, r6
- bne _0810F6D8
- movs r0, 0x1
- b _0810F6E4
- .align 2, 0
-_0810F6D0: .4byte 0x00004023
-_0810F6D4: .4byte gPlayerParty
-_0810F6D8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0810F6B6
-_0810F6E2:
- movs r0, 0
-_0810F6E4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsStarterInParty
-
- thumb_func_start CheckFreePokemonStorageSpace
-CheckFreePokemonStorageSpace: @ 810F6EC
- push {r4-r6,lr}
- movs r5, 0
-_0810F6F0:
- movs r4, 0
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_0810F6FC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _0810F718 @ =gUnknown_020300A4
- adds r0, r1
- adds r0, r6, r0
- movs r1, 0xB
- movs r2, 0
- bl GetBoxMonData
- cmp r0, 0
- bne _0810F71C
- movs r0, 0x1
- b _0810F732
- .align 2, 0
-_0810F718: .4byte gUnknown_020300A4
-_0810F71C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _0810F6FC
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _0810F6F0
- movs r0, 0
-_0810F732:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CheckFreePokemonStorageSpace
-
- thumb_func_start IsPokerusInParty
-IsPokerusInParty: @ 810F738
- push {lr}
- ldr r0, _0810F74C @ =gPlayerParty
- movs r1, 0x3F
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- beq _0810F750
- movs r0, 0x1
- b _0810F752
- .align 2, 0
-_0810F74C: .4byte gPlayerParty
-_0810F750:
- movs r0, 0
-_0810F752:
- pop {r1}
- bx r1
- thumb_func_end IsPokerusInParty
-
- thumb_func_start sub_810F758
-sub_810F758: @ 810F758
- push {lr}
- ldr r0, _0810F798 @ =sub_810F7A8
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810F79C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810F7A0 @ =gSpecialVar_0x8005
- ldrh r2, [r0]
- movs r0, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- ldr r0, _0810F7A4 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0xD6
- bl PlaySE
- pop {r0}
- bx r0
- .align 2, 0
-_0810F798: .4byte sub_810F7A8
-_0810F79C: .4byte gTasks
-_0810F7A0: .4byte gSpecialVar_0x8005
-_0810F7A4: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810F758
-
- thumb_func_start sub_810F7A8
-sub_810F7A8: @ 810F7A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810F810 @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _0810F808
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810F808
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- bl SetCameraPanning
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _0810F808
- adds r0, r5, 0
- bl sub_810F814
- bl InstallCameraPanAheadCallback
-_0810F808:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F810: .4byte gTasks
- thumb_func_end sub_810F7A8
-
- thumb_func_start sub_810F814
-sub_810F814: @ 810F814
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_810F814
-
- thumb_func_start sub_810F828
-sub_810F828: @ 810F828
- push {lr}
- movs r0, 0xAE
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_810F828
-
- thumb_func_start SetRoute119Weather
-SetRoute119Weather: @ 810F83C
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810F858
- movs r0, 0x14
- bl SetSav1Weather
-_0810F858:
- pop {r0}
- bx r0
- thumb_func_end SetRoute119Weather
-
- thumb_func_start SetRoute123Weather
-SetRoute123Weather: @ 810F85C
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810F878
- movs r0, 0x15
- bl SetSav1Weather
-_0810F878:
- pop {r0}
- bx r0
- thumb_func_end SetRoute123Weather
-
- thumb_func_start GetLeadMonIndex
-GetLeadMonIndex: @ 810F87C
- push {r4-r6,lr}
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- cmp r5, r6
- bcs _0810F8CA
-_0810F88C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810F8BC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0810F8C0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0810F8C0
- adds r0, r5, 0
- b _0810F8CC
- .align 2, 0
-_0810F8BC: .4byte gPlayerParty
-_0810F8C0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _0810F88C
-_0810F8CA:
- movs r0, 0
-_0810F8CC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonIndex
-
- thumb_func_start ScriptGetPartyMonSpecies
-ScriptGetPartyMonSpecies: @ 810F8D4
- push {lr}
- ldr r0, _0810F8F4 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0810F8F8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0810F8F4: .4byte gSpecialVar_0x8004
-_0810F8F8: .4byte gPlayerParty
- thumb_func_end ScriptGetPartyMonSpecies
-
- thumb_func_start sub_810F8FC
-sub_810F8FC: @ 810F8FC
- push {lr}
- movs r0, 0x6
- bl sub_805ADDC
- pop {r0}
- bx r0
- thumb_func_end sub_810F8FC
-
- thumb_func_start sub_810F908
-sub_810F908: @ 810F908
- push {r4,lr}
- ldr r0, _0810F928 @ =0x000040c2
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- adds r3, r0, 0
- ldr r2, _0810F92C @ =gLocalTime
- movs r1, 0
- ldrsh r0, [r2, r1]
- subs r0, r3
- cmp r0, 0x6
- ble _0810F930
- movs r0, 0
- b _0810F948
- .align 2, 0
-_0810F928: .4byte 0x000040c2
-_0810F92C: .4byte gLocalTime
-_0810F930:
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0
- blt _0810F946
- subs r1, r3
- movs r0, 0x7
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- b _0810F948
-_0810F946:
- movs r0, 0x8
-_0810F948:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810F908
-
- thumb_func_start sub_810F950
-sub_810F950: @ 810F950
- push {r4,lr}
- ldr r0, _0810F964 @ =0x000040c2
- ldr r4, _0810F968 @ =gLocalTime
- ldrh r1, [r4]
- bl VarSet
- ldrh r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F964: .4byte 0x000040c2
-_0810F968: .4byte gLocalTime
- thumb_func_end sub_810F950
-
- thumb_func_start sub_810F96C
-sub_810F96C: @ 810F96C
- push {r4,lr}
- ldr r0, _0810F994 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0810F998 @ =gPlayerParty
- adds r0, r1
- ldr r4, _0810F99C @ =gStringVar1
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _0810F9A0 @ =gSaveBlock2
- adds r1, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _0810F9A4
- movs r0, 0x1
- b _0810F9A6
- .align 2, 0
-_0810F994: .4byte gSpecialVar_0x8004
-_0810F998: .4byte gPlayerParty
-_0810F99C: .4byte gStringVar1
-_0810F9A0: .4byte gSaveBlock2
-_0810F9A4:
- movs r0, 0
-_0810F9A6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810F96C
-
- thumb_func_start sub_810F9AC
-sub_810F9AC: @ 810F9AC
- push {r4,r5,lr}
- ldr r2, _0810F9C0 @ =gScriptResult
- ldrh r1, [r2]
- ldr r0, _0810F9C4 @ =0x0000270f
- cmp r1, r0
- bls _0810F9C8
- movs r0, 0
- bl sub_80BF088
- b _0810FA4A
- .align 2, 0
-_0810F9C0: .4byte gScriptResult
-_0810F9C4: .4byte 0x0000270f
-_0810F9C8:
- ldr r0, _0810F9D8 @ =0x000003e7
- cmp r1, r0
- bls _0810F9E0
- ldr r4, _0810F9DC @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- adds r4, 0x1
- b _0810FA04
- .align 2, 0
-_0810F9D8: .4byte 0x000003e7
-_0810F9DC: .4byte gStringVar1
-_0810F9E0:
- cmp r1, 0x63
- bls _0810F9F4
- ldr r4, _0810F9F0 @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r4, 0x2
- b _0810FA04
- .align 2, 0
-_0810F9F0: .4byte gStringVar1
-_0810F9F4:
- cmp r1, 0x9
- bls _0810FA24
- ldr r4, _0810FA20 @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- adds r4, 0x3
-_0810FA04:
- ldrh r5, [r2]
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- b _0810FA4A
- .align 2, 0
-_0810FA20: .4byte gStringVar1
-_0810FA24:
- ldr r4, _0810FA50 @ =gStringVar1
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- adds r4, 0x4
- ldrh r5, [r2]
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
-_0810FA4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FA50: .4byte gStringVar1
- thumb_func_end sub_810F9AC
-
- thumb_func_start sub_810FA54
-sub_810FA54: @ 810FA54
- ldr r0, _0810FA68 @ =gSaveBlock1
- ldr r2, _0810FA6C @ =0x000013c2
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- ldr r1, _0810FA70 @ =0x000013c4
- adds r0, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_0810FA68: .4byte gSaveBlock1
-_0810FA6C: .4byte 0x000013c2
-_0810FA70: .4byte 0x000013c4
- thumb_func_end sub_810FA54
-
- thumb_func_start sub_810FA74
-sub_810FA74: @ 810FA74
- push {lr}
- bl sub_810FF30
- lsls r0, 24
- cmp r0, 0
- beq _0810FA90
- bl sub_810FCE8
- ldr r0, _0810FA94 @ =gSaveBlock1
- ldr r1, _0810FA98 @ =gSaveBlock2
- ldrh r1, [r1, 0xE]
- ldr r2, _0810FA9C @ =0x000013c4
- adds r0, r2
- strh r1, [r0]
-_0810FA90:
- pop {r0}
- bx r0
- .align 2, 0
-_0810FA94: .4byte gSaveBlock1
-_0810FA98: .4byte gSaveBlock2
-_0810FA9C: .4byte 0x000013c4
- thumb_func_end sub_810FA74
-
- thumb_func_start sub_810FAA0
-sub_810FAA0: @ 810FAA0
- push {r4,lr}
- ldr r4, _0810FAF0 @ =gSaveBlock1
- ldr r1, _0810FAF4 @ =0x000013c2
- adds r0, r4, r1
- ldrh r0, [r0]
- lsrs r0, 7
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810FAE8
- bl sub_810FF48
- bl sub_810FD80
- ldr r0, _0810FAF8 @ =gSaveBlock2
- ldrh r1, [r0, 0xE]
- ldr r2, _0810FAFC @ =0x000013c4
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _0810FB00 @ =0x00000315
- bl FlagReset
- ldr r0, _0810FB04 @ =0x00000316
- bl FlagReset
- ldr r0, _0810FB08 @ =0x00000317
- bl FlagReset
- movs r0, 0xC6
- lsls r0, 2
- bl FlagReset
- ldr r0, _0810FB0C @ =0x00004095
- movs r1, 0x1
- bl VarSet
-_0810FAE8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FAF0: .4byte gSaveBlock1
-_0810FAF4: .4byte 0x000013c2
-_0810FAF8: .4byte gSaveBlock2
-_0810FAFC: .4byte 0x000013c4
-_0810FB00: .4byte 0x00000315
-_0810FB04: .4byte 0x00000316
-_0810FB08: .4byte 0x00000317
-_0810FB0C: .4byte 0x00004095
- thumb_func_end sub_810FAA0
-
- thumb_func_start sub_810FB10
-sub_810FB10: @ 810FB10
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810FB54 @ =0x00004095
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0810FB80
- ldr r0, _0810FB58 @ =gSaveBlock1
- ldr r1, _0810FB5C @ =0x000013c2
- adds r4, r0, r1
- ldrh r2, [r4]
- movs r1, 0x7F
- ands r1, r2
- ldr r0, _0810FB60 @ =gUnknown_083F8404
- adds r0, r5, r0
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x13
- ble _0810FB7C
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0810FB68
- bl sub_810FB9C
- ldrh r1, [r4]
- ldr r0, _0810FB64 @ =0x0000ff80
- ands r0, r1
- b _0810FB7E
- .align 2, 0
-_0810FB54: .4byte 0x00004095
-_0810FB58: .4byte gSaveBlock1
-_0810FB5C: .4byte 0x000013c2
-_0810FB60: .4byte gUnknown_083F8404
-_0810FB64: .4byte 0x0000ff80
-_0810FB68:
- ldrh r0, [r4]
- ldr r1, _0810FB78 @ =0x0000ff80
- ands r1, r0
- movs r0, 0x14
- orrs r1, r0
- strh r1, [r4]
- b _0810FB80
- .align 2, 0
-_0810FB78: .4byte 0x0000ff80
-_0810FB7C:
- adds r0, r2, r0
-_0810FB7E:
- strh r0, [r4]
-_0810FB80:
- ldr r0, _0810FB94 @ =gSaveBlock1
- ldr r1, _0810FB98 @ =0x000013c2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x7F
- ands r0, r1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FB94: .4byte gSaveBlock1
-_0810FB98: .4byte 0x000013c2
- thumb_func_end sub_810FB10
-
- thumb_func_start sub_810FB9C
-sub_810FB9C: @ 810FB9C
- push {r4-r7,lr}
- sub sp, 0x4
- movs r3, 0
- movs r5, 0
- ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2
- movs r6, 0x1
-_0810FBA8:
- ldrh r1, [r7]
- ldr r0, _0810FBDC @ =gUnknown_083F8408
- adds r0, r5, r0
- ldrb r4, [r0]
- asrs r1, r4
- ands r1, r6
- cmp r1, 0
- bne _0810FBE0
- adds r3, r5, 0
- str r3, [sp]
- bl Random
- adds r1, r6, 0
- ands r1, r0
- ldr r3, [sp]
- cmp r1, 0
- beq _0810FBE0
- adds r0, r6, 0
- lsls r0, r4
- ldrh r1, [r7]
- orrs r0, r1
- strh r0, [r7]
- b _0810FC00
- .align 2, 0
-_0810FBD8: .4byte gSaveBlock1 + 0x13C2
-_0810FBDC: .4byte gUnknown_083F8408
-_0810FBE0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0810FBA8
- ldr r2, _0810FC0C @ =gSaveBlock1
- ldr r0, _0810FC10 @ =0x000013c2
- adds r2, r0
- ldr r1, _0810FC14 @ =gUnknown_083F8408
- adds r1, r3, r1
- movs r0, 0x1
- ldrb r1, [r1]
- lsls r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
-_0810FC00:
- adds r0, r3, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FC0C: .4byte gSaveBlock1
-_0810FC10: .4byte 0x000013c2
-_0810FC14: .4byte gUnknown_083F8408
- thumb_func_end sub_810FB9C
-
- thumb_func_start sub_810FC18
-sub_810FC18: @ 810FC18
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r0, 0
- mov r8, r0
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0810FC3E
- movs r0, 0
- b _0810FC94
-_0810FC34:
- lsls r4, r6
- ldrh r0, [r2]
- eors r4, r0
- strh r4, [r2]
- b _0810FC92
-_0810FC3E:
- movs r5, 0
- ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2
- movs r4, 0x1
-_0810FC44:
- ldrh r1, [r2]
- ldr r7, _0810FCA4 @ =gUnknown_083F8410
- adds r0, r5, r7
- ldrb r6, [r0]
- asrs r1, r6
- ands r1, r4
- cmp r1, 0
- beq _0810FC66
- mov r8, r5
- str r2, [sp]
- bl Random
- adds r1, r4, 0
- ands r1, r0
- ldr r2, [sp]
- cmp r1, 0
- bne _0810FC34
-_0810FC66:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0810FC44
- ldr r0, _0810FCA8 @ =gSaveBlock1
- ldr r1, _0810FCAC @ =0x000013c2
- adds r4, r0, r1
- ldrh r1, [r4]
- mov r2, r8
- adds r0, r2, r7
- ldrb r2, [r0]
- adds r0, r1, 0
- asrs r0, r2
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0810FC92
- adds r0, r3, 0
- lsls r0, r2
- eors r1, r0
- strh r1, [r4]
-_0810FC92:
- mov r0, r8
-_0810FC94:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FCA0: .4byte gSaveBlock1 + 0x13C2
-_0810FCA4: .4byte gUnknown_083F8410
-_0810FCA8: .4byte gSaveBlock1
-_0810FCAC: .4byte 0x000013c2
- thumb_func_end sub_810FC18
-
- thumb_func_start sub_810FCB0
-sub_810FCB0: @ 810FCB0
- push {r4,r5,lr}
- movs r3, 0
- movs r2, 0
- ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2
- ldrh r4, [r0]
- movs r5, 0x1
-_0810FCBC:
- adds r1, r2, 0
- adds r1, 0x8
- adds r0, r4, 0
- asrs r0, r1
- ands r0, r5
- cmp r0, 0
- beq _0810FCD0
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_0810FCD0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _0810FCBC
- adds r0, r3, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FCE4: .4byte gSaveBlock1 + 0x13C2
- thumb_func_end sub_810FCB0
-
- thumb_func_start sub_810FCE8
-sub_810FCE8: @ 810FCE8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r2, _0810FD08 @ =gSaveBlock2
- ldrh r1, [r2, 0xE]
- ldr r0, _0810FD0C @ =0x000003e6
- cmp r1, r0
- bhi _0810FD54
- ldr r7, _0810FD10 @ =gSaveBlock1
- adds r6, r2, 0
- ldr r0, _0810FD14 @ =0x000013c4
- adds r0, r7
- mov r8, r0
- b _0810FD36
- .align 2, 0
-_0810FD08: .4byte gSaveBlock2
-_0810FD0C: .4byte 0x000003e6
-_0810FD10: .4byte gSaveBlock1
-_0810FD14: .4byte 0x000013c4
-_0810FD18:
- ldrh r1, [r6, 0xE]
- ldr r0, _0810FD4C @ =0x000013c4
- adds r4, r7, r0
- ldrh r0, [r4]
- subs r1, r0
- cmp r1, 0xB
- ble _0810FD54
- bl sub_810FC18
- ldrh r0, [r4]
- adds r0, 0xC
- strh r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0810FD36:
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _0810FD50
- ldrh r0, [r6, 0xE]
- mov r1, r8
- strh r0, [r1]
- b _0810FD54
- .align 2, 0
-_0810FD4C: .4byte 0x000013c4
-_0810FD50:
- cmp r5, 0x8
- bne _0810FD18
-_0810FD54:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810FCE8
-
- thumb_func_start sub_810FD60
-sub_810FD60: @ 810FD60
- ldr r0, _0810FD74 @ =gSaveBlock1
- ldr r1, _0810FD78 @ =0x000013c2
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, _0810FD7C @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0810FD74: .4byte gSaveBlock1
-_0810FD78: .4byte 0x000013c2
-_0810FD7C: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810FD60
-
- thumb_func_start sub_810FD80
-sub_810FD80: @ 810FD80
- ldr r2, _0810FDA4 @ =gSaveBlock1
- ldr r0, _0810FDA8 @ =0x000013c2
- adds r2, r0
- ldrh r1, [r2]
- movs r3, 0x80
- lsls r3, 6
- adds r0, r3, 0
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 3
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0810FDA4: .4byte gSaveBlock1
-_0810FDA8: .4byte 0x000013c2
- thumb_func_end sub_810FD80
-
- thumb_func_start sub_810FDAC
-sub_810FDAC: @ 810FDAC
- push {lr}
- movs r3, 0
- movs r2, 0
- ldr r0, _0810FDC8 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- subs r0, 0x8
- cmp r0, 0x7
- bhi _0810FE0C
- lsls r0, 2
- ldr r1, _0810FDCC @ =_0810FDD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810FDC8: .4byte gSpecialVar_0x8004
-_0810FDCC: .4byte _0810FDD0
- .align 2, 0
-_0810FDD0:
- .4byte _0810FE0C
- .4byte _0810FE0C
- .4byte _0810FDF0
- .4byte _0810FDF6
- .4byte _0810FDFC
- .4byte _0810FE02
- .4byte _0810FE08
- .4byte _0810FE0C
-_0810FDF0:
- movs r3, 0
- movs r2, 0x3
- b _0810FE0C
-_0810FDF6:
- movs r3, 0
- movs r2, 0x1
- b _0810FE0C
-_0810FDFC:
- movs r3, 0x1
- movs r2, 0
- b _0810FE0C
-_0810FE02:
- movs r3, 0
- movs r2, 0x4
- b _0810FE0C
-_0810FE08:
- movs r3, 0x1
- movs r2, 0x5
-_0810FE0C:
- ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8
- adds r1, r3, 0
- bl sub_810FE1C
- pop {r0}
- bx r0
- .align 2, 0
-_0810FE18: .4byte gSaveBlock1 + 0x30B8
- thumb_func_end sub_810FDAC
-
- thumb_func_start sub_810FE1C
-sub_810FE1C: @ 810FE1C
- push {r4,lr}
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsrs r1, 20
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0810FED0
- cmp r2, 0x5
- bhi _0810FEBC
- lsls r0, r2, 2
- ldr r1, _0810FE3C @ =_0810FE40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810FE3C: .4byte _0810FE40
- .align 2, 0
-_0810FE40:
- .4byte _0810FEBC
- .4byte _0810FE58
- .4byte _0810FE6C
- .4byte _0810FE80
- .4byte _0810FE94
- .4byte _0810FEA8
-_0810FE58:
- ldr r0, _0810FE64 @ =gStringVar1
- ldr r1, _0810FE68 @ =gOtherText_Steven
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE64: .4byte gStringVar1
-_0810FE68: .4byte gOtherText_Steven
-_0810FE6C:
- ldr r0, _0810FE78 @ =gStringVar1
- ldr r1, _0810FE7C @ =gOtherText_Brawly
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE78: .4byte gStringVar1
-_0810FE7C: .4byte gOtherText_Brawly
-_0810FE80:
- ldr r0, _0810FE8C @ =gStringVar1
- ldr r1, _0810FE90 @ =gOtherText_Winona
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE8C: .4byte gStringVar1
-_0810FE90: .4byte gOtherText_Winona
-_0810FE94:
- ldr r0, _0810FEA0 @ =gStringVar1
- ldr r1, _0810FEA4 @ =gOtherText_Phoebe
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEA0: .4byte gStringVar1
-_0810FEA4: .4byte gOtherText_Phoebe
-_0810FEA8:
- ldr r0, _0810FEB4 @ =gStringVar1
- ldr r1, _0810FEB8 @ =gOtherText_Glacia
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEB4: .4byte gStringVar1
-_0810FEB8: .4byte gOtherText_Glacia
-_0810FEBC:
- ldr r0, _0810FEC8 @ =gStringVar1
- ldr r1, _0810FECC @ =gOtherText_Wallace
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEC8: .4byte gStringVar1
-_0810FECC: .4byte gOtherText_Wallace
-_0810FED0:
- ldr r4, _0810FEF8 @ =gStringVar1
- adds r0, r4, 0
- movs r2, 0x7
- bl StringCopyN
- movs r0, 0xFF
- strb r0, [r4, 0x7]
- ldrb r0, [r4]
- cmp r0, 0xFC
- bne _0810FEF2
- ldrb r0, [r4, 0x1]
- cmp r0, 0x15
- bne _0810FEF2
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
-_0810FEF2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FEF8: .4byte gStringVar1
- thumb_func_end sub_810FE1C
-
- thumb_func_start sub_810FEFC
-sub_810FEFC: @ 810FEFC
- push {lr}
- ldr r0, _0810FF20 @ =0x00004095
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0810FF2C
- bl sub_810FA74
- ldr r0, _0810FF24 @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0810FF28
- bl sub_810FB9C
- b _0810FF2C
- .align 2, 0
-_0810FF20: .4byte 0x00004095
-_0810FF24: .4byte gUnknown_02024D26
-_0810FF28:
- bl sub_810FC18
-_0810FF2C:
- pop {r0}
- bx r0
- thumb_func_end sub_810FEFC
-
- thumb_func_start sub_810FF30
-sub_810FF30: @ 810FF30
- ldr r0, _0810FF40 @ =gSaveBlock1
- ldr r1, _0810FF44 @ =0x000013c2
- adds r0, r1
- ldrh r0, [r0]
- lsrs r0, 7
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0810FF40: .4byte gSaveBlock1
-_0810FF44: .4byte 0x000013c2
- thumb_func_end sub_810FF30
-
- thumb_func_start sub_810FF48
-sub_810FF48: @ 810FF48
- ldr r0, _0810FF58 @ =gSaveBlock1
- ldr r1, _0810FF5C @ =0x000013c2
- adds r0, r1
- ldrh r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0810FF58: .4byte gSaveBlock1
-_0810FF5C: .4byte 0x000013c2
- thumb_func_end sub_810FF48
-
- thumb_func_start sub_810FF60
-sub_810FF60: @ 810FF60
- push {lr}
- ldr r0, _0810FF74 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl sub_810FB10
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810FF74: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810FF60
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s
deleted file mode 100644
index fdb390563..000000000
--- a/asm/rom_800D42C.s
+++ /dev/null
@@ -1,88931 +0,0 @@
- .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 @ =gUnknown_020239F8
- 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 gUnknown_020239F8
-_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 @ =gUnknown_0300428C
- 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 gUnknown_0300428C
-_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 @ =gUnknown_020239F8
- 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 gUnknown_020239F8
-_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
-
- thumb_func_start sub_800DC24
-sub_800DC24: @ 800DC24
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _0800DC40 @ =gUnknown_02024D26
- ldrb r2, [r0]
- cmp r2, 0x3
- bne _0800DC4C
- ldr r4, _0800DC44 @ =gUnknown_03004210
- ldr r1, _0800DC48 @ =gUnknown_08400E57
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0xD
- b _0800DDCA
- .align 2, 0
-_0800DC40: .4byte gUnknown_02024D26
-_0800DC44: .4byte gUnknown_03004210
-_0800DC48: .4byte gUnknown_08400E57
-_0800DC4C:
- ldr r0, _0800DC80 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800DD38
- cmp r2, 0x1
- bne _0800DCCC
- ldr r2, _0800DC84 @ =gLinkPlayers
- ldr r0, _0800DC88 @ =0x02000000
- ldr r1, _0800DC8C @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800DC9C
- cmp r0, 0x1
- bgt _0800DC90
- cmp r0, 0
- bne _0800DC7E
- b _0800DDA8
-_0800DC7E:
- b _0800DE1C
- .align 2, 0
-_0800DC80: .4byte gUnknown_020239F8
-_0800DC84: .4byte gLinkPlayers
-_0800DC88: .4byte 0x02000000
-_0800DC8C: .4byte 0x000160cb
-_0800DC90:
- cmp r0, 0x2
- bne _0800DC96
- b _0800DDA8
-_0800DC96:
- cmp r0, 0x3
- beq _0800DC9C
- b _0800DE1C
-_0800DC9C:
- ldr r4, _0800DCC0 @ =gUnknown_03004210
- ldr r1, _0800DCC4 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DCC8 @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DCC0: .4byte gUnknown_03004210
-_0800DCC4: .4byte gUnknown_08400E48
-_0800DCC8: .4byte gUnknown_08400E4F
-_0800DCCC:
- ldr r2, _0800DCF0 @ =gLinkPlayers
- ldr r0, _0800DCF4 @ =0x02000000
- ldr r1, _0800DCF8 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800DDA8
- cmp r0, 0x1
- bgt _0800DCFC
- cmp r0, 0
- beq _0800DD08
- b _0800DE1C
- .align 2, 0
-_0800DCF0: .4byte gLinkPlayers
-_0800DCF4: .4byte 0x02000000
-_0800DCF8: .4byte 0x000160cb
-_0800DCFC:
- cmp r0, 0x2
- beq _0800DD08
- cmp r0, 0x3
- beq _0800DD06
- b _0800DE1C
-_0800DD06:
- b _0800DDA8
-_0800DD08:
- ldr r4, _0800DD2C @ =gUnknown_03004210
- ldr r1, _0800DD30 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DD34 @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DD2C: .4byte gUnknown_03004210
-_0800DD30: .4byte gUnknown_08400E48
-_0800DD34: .4byte gUnknown_08400E4F
-_0800DD38:
- cmp r2, 0x1
- bne _0800DD90
- ldr r2, _0800DD78 @ =gLinkPlayers
- ldr r0, _0800DD7C @ =0x02000000
- ldr r1, _0800DD80 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DDA8
- ldr r4, _0800DD84 @ =gUnknown_03004210
- ldr r1, _0800DD88 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DD8C @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DD78: .4byte gLinkPlayers
-_0800DD7C: .4byte 0x02000000
-_0800DD80: .4byte 0x000160cb
-_0800DD84: .4byte gUnknown_03004210
-_0800DD88: .4byte gUnknown_08400E48
-_0800DD8C: .4byte gUnknown_08400E4F
-_0800DD90:
- ldr r2, _0800DDD8 @ =gLinkPlayers
- ldr r0, _0800DDDC @ =0x02000000
- ldr r1, _0800DDE0 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DDF0
-_0800DDA8:
- ldr r4, _0800DDE4 @ =gUnknown_03004210
- ldr r1, _0800DDE8 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x6
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DDEC @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x15
-_0800DDCA:
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- b _0800DE1C
- .align 2, 0
-_0800DDD8: .4byte gLinkPlayers
-_0800DDDC: .4byte 0x02000000
-_0800DDE0: .4byte 0x000160cb
-_0800DDE4: .4byte gUnknown_03004210
-_0800DDE8: .4byte gUnknown_08400E48
-_0800DDEC: .4byte gUnknown_08400E4F
-_0800DDF0:
- ldr r4, _0800DE24 @ =gUnknown_03004210
- ldr r1, _0800DE28 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DE2C @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
-_0800DE1C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DE24: .4byte gUnknown_03004210
-_0800DE28: .4byte gUnknown_08400E48
-_0800DE2C: .4byte gUnknown_08400E4F
- thumb_func_end sub_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 @ =gUnknown_020239F8
- 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 gUnknown_020239F8
-_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 sub_800DC24
-_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 @ =gUnknown_020239F8
- 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 gUnknown_020239F8
-_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 @ =gUnknown_0300428C
- 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 gUnknown_0300428C
-_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 @ =gUnknown_020239F8
- 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 gUnknown_020239F8
-_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 @ =gUnknown_0300428C
- 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 gUnknown_0300428C
-_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 @ =gUnknown_020239F8
- 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 gUnknown_020239F8
-_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 @ =gUnknown_0300428C
- 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 gUnknown_0300428C
-_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 @ =gUnknown_020239F8
- 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 gUnknown_020239F8
-_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 @ =gUnknown_0300428C
- 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 gUnknown_0300428C
-_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
-
- thumb_func_start sub_800E7C4
-sub_800E7C4: @ 800E7C4
- push {lr}
- ldr r0, _0800E7E4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800E7F0
- bl sub_800B858
- ldr r0, _0800E7E8 @ =sub_800F104
- bl SetMainCallback2
- ldr r1, _0800E7EC @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1]
- b _0800E7F4
- .align 2, 0
-_0800E7E4: .4byte gUnknown_020239F8
-_0800E7E8: .4byte sub_800F104
-_0800E7EC: .4byte gUnknown_02024D1E
-_0800E7F0:
- bl sub_800E7F8
-_0800E7F4:
- pop {r0}
- bx r0
- thumb_func_end sub_800E7C4
-
- thumb_func_start sub_800E7F8
-sub_800E7F8: @ 800E7F8
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r4, 0
- str r4, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _0800E90C @ =0x05006000
- mov r0, sp
- bl CpuSet
- ldr r0, _0800E910 @ =REG_MOSAIC
- strh r4, [r0]
- subs r0, 0xC
- movs r2, 0xF0
- strh r2, [r0]
- adds r0, 0x4
- ldr r3, _0800E914 @ =0x00005051
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r0, _0800E918 @ =gUnknown_030042C4
- strh r2, [r0]
- ldr r0, _0800E91C @ =gUnknown_03004240
- strh r1, [r0]
- bl dp12_8087EA4
- ldr r0, _0800E920 @ =gUnknown_03004DE0
- movs r3, 0xF0
- movs r5, 0xF0
- lsls r5, 3
- adds r2, r0, r5
- movs r1, 0x4F
-_0800E84A:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0800E84A
- movs r1, 0x50
- ldr r4, _0800E924 @ =gUnknown_081F9674
- ldr r0, _0800E920 @ =gUnknown_03004DE0
- ldr r3, _0800E928 @ =0x0000ff10
- movs r5, 0x82
- lsls r5, 4
- adds r2, r0, r5
- adds r0, 0xA0
-_0800E868:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _0800E868
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- ldr r2, [r4, 0x8]
- bl sub_80895F8
- ldr r4, _0800E92C @ =gWindowConfig_81E6C58
- adds r0, r4, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _0800E930 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0800E934 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r0, _0800E938 @ =gUnknown_030042C0
- strh r1, [r0]
- ldr r0, _0800E93C @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _0800E940 @ =gUnknown_03004288
- strh r1, [r0]
- ldr r0, _0800E944 @ =gUnknown_03004280
- strh r1, [r0]
- ldr r0, _0800E948 @ =gUnknown_030041B0
- strh r1, [r0]
- ldr r0, _0800E94C @ =gUnknown_030041B8
- strh r1, [r0]
- bl sub_8081D3C
- ldr r1, _0800E950 @ =gUnknown_0300428C
- strb r0, [r1]
- ldr r0, _0800E954 @ =gUnknown_03004210
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r0, _0800E958 @ =gUnknown_030041D0
- ldr r1, _0800E95C @ =gWindowConfig_81E71D0
- bl InitWindowFromConfig
- ldr r0, _0800E960 @ =gUnknown_03004250
- ldr r1, _0800E964 @ =gWindowConfig_81E71EC
- bl InitWindowFromConfig
- bl sub_800D6D4
- bl sub_800DAB8
- bl ResetSpriteData
- bl ResetTasks
- bl sub_800E23C
- bl FreeAllSpritePalettes
- ldr r1, _0800E968 @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _0800E96C @ =sub_800FCFC
- bl SetVBlankCallback
- bl sub_800B884
- ldr r0, _0800E970 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800E978
- ldr r0, _0800E974 @ =sub_800F298
- bl SetMainCallback2
- b _0800E97E
- .align 2, 0
-_0800E90C: .4byte 0x05006000
-_0800E910: .4byte REG_MOSAIC
-_0800E914: .4byte 0x00005051
-_0800E918: .4byte gUnknown_030042C4
-_0800E91C: .4byte gUnknown_03004240
-_0800E920: .4byte gUnknown_03004DE0
-_0800E924: .4byte gUnknown_081F9674
-_0800E928: .4byte 0x0000ff10
-_0800E92C: .4byte gWindowConfig_81E6C58
-_0800E930: .4byte gUnknown_030042A4
-_0800E934: .4byte gUnknown_030042A0
-_0800E938: .4byte gUnknown_030042C0
-_0800E93C: .4byte gUnknown_030041B4
-_0800E940: .4byte gUnknown_03004288
-_0800E944: .4byte gUnknown_03004280
-_0800E948: .4byte gUnknown_030041B0
-_0800E94C: .4byte gUnknown_030041B8
-_0800E950: .4byte gUnknown_0300428C
-_0800E954: .4byte gUnknown_03004210
-_0800E958: .4byte gUnknown_030041D0
-_0800E95C: .4byte gWindowConfig_81E71D0
-_0800E960: .4byte gUnknown_03004250
-_0800E964: .4byte gWindowConfig_81E71EC
-_0800E968: .4byte gReservedSpritePaletteCount
-_0800E96C: .4byte sub_800FCFC
-_0800E970: .4byte gUnknown_020239F8
-_0800E974: .4byte sub_800F298
-_0800E978:
- ldr r0, _0800E9CC @ =sub_800EC9C
- bl SetMainCallback2
-_0800E97E:
- ldr r0, _0800E9D0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0800E998
- ldr r0, _0800E9D4 @ =gEnemyParty
- ldr r1, _0800E9D8 @ =gTrainerBattleOpponent
- ldrh r1, [r1]
- bl sub_800F8E8
- bl sub_8040C38
-_0800E998:
- ldr r0, _0800E9DC @ =gMain
- ldr r1, _0800E9E0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r4, _0800E9E4 @ =gPlayerParty
- movs r3, 0xFA
- lsls r3, 1
- adds r5, r4, r3
-_0800E9AE:
- adds r0, r4, 0
- movs r1, 0x3
- bl AdjustFriendship
- adds r4, 0x64
- cmp r4, r5
- ble _0800E9AE
- movs r1, 0
- ldr r0, _0800E9E8 @ =gUnknown_02024D1E
- strb r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E9CC: .4byte sub_800EC9C
-_0800E9D0: .4byte gUnknown_020239F8
-_0800E9D4: .4byte gEnemyParty
-_0800E9D8: .4byte gTrainerBattleOpponent
-_0800E9DC: .4byte gMain
-_0800E9E0: .4byte 0x0000043d
-_0800E9E4: .4byte gPlayerParty
-_0800E9E8: .4byte gUnknown_02024D1E
- thumb_func_end sub_800E7F8
-
- thumb_func_start sub_800E9EC
-sub_800E9EC: @ 800E9EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- mov r9, r6
- movs r0, 0xCE
- lsls r0, 1
- mov r10, r0
- mov r8, r6
-_0800EA02:
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _0800EAA4 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _0800EA7E
- cmp r5, r10
- beq _0800EA4A
- cmp r7, 0
- beq _0800EA4A
- cmp r1, 0
- bne _0800EA4A
- movs r0, 0x1
- mov r2, r8
- lsls r0, r2
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0800EA4A:
- cmp r5, 0
- beq _0800EA7E
- cmp r7, 0
- beq _0800EA66
- cmp r5, r10
- beq _0800EA5A
- cmp r1, 0
- beq _0800EA66
-_0800EA5A:
- movs r0, 0x2
- mov r1, r8
- lsls r0, r1
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0800EA66:
- cmp r5, 0
- beq _0800EA7E
- cmp r5, r10
- beq _0800EA7E
- cmp r7, 0
- bne _0800EA7E
- movs r0, 0x3
- mov r2, r8
- lsls r0, r2
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0800EA7E:
- movs r0, 0x2
- add r8, r0
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x5
- ble _0800EA02
- ldr r1, _0800EAA8 @ =0x02000000
- strb r6, [r1, 0x2]
- lsrs r0, r6, 8
- strb r0, [r1, 0x3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EAA4: .4byte gPlayerParty
-_0800EAA8: .4byte 0x02000000
- thumb_func_end sub_800E9EC
-
- thumb_func_start sub_800EAAC
-sub_800EAAC: @ 800EAAC
- push {r4-r6,lr}
- ldr r4, _0800EAF4 @ =0x02000004
- movs r2, 0
- ldr r6, _0800EAF8 @ =gSaveBlock1
- ldr r0, _0800EAFC @ =0x00003160
- adds r3, r6, r0
-_0800EAB8:
- adds r0, r4, r2
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x6
- ble _0800EAB8
- movs r2, 0
- adds r3, r4, 0
- adds r3, 0x8
- ldr r5, _0800EB00 @ =gSaveBlock1 + 0x3676
-_0800EACE:
- adds r0, r3, r2
- adds r1, r2, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x11
- ble _0800EACE
- ldr r1, _0800EB04 @ =0x00003688
- adds r0, r6, r1
- ldrb r0, [r0]
- strb r0, [r4, 0x7]
- adds r1, 0x1
- adds r0, r6, r1
- ldrb r0, [r0]
- strb r0, [r4, 0x1A]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EAF4: .4byte 0x02000004
-_0800EAF8: .4byte gSaveBlock1
-_0800EAFC: .4byte 0x00003160
-_0800EB00: .4byte gSaveBlock1 + 0x3676
-_0800EB04: .4byte 0x00003688
- thumb_func_end sub_800EAAC
-
- thumb_func_start sub_800EB08
-sub_800EB08: @ 800EB08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0800EB84 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0800EBA4
- movs r3, 0
- ldr r5, _0800EB88 @ =gEnigmaBerries
- ldr r0, _0800EB8C @ =gSaveBlock1
- mov r12, r0
- adds r7, r5, 0
- ldr r6, _0800EB90 @ =0x00003160
- add r6, r12
- adds r4, r5, 0
- adds r4, 0x38
-_0800EB30:
- adds r1, r3, r7
- adds r2, r3, r6
- ldrb r0, [r2]
- strb r0, [r1]
- adds r1, r3, r4
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0x6
- ble _0800EB30
- movs r3, 0
- ldr r4, _0800EB94 @ =gUnknown_02024DF8
- ldr r7, _0800EB98 @ =gSaveBlock1 + 0x3676
- adds r6, r4, 0
- adds r6, 0x38
-_0800EB4E:
- adds r1, r3, r4
- adds r2, r3, r7
- ldrb r0, [r2]
- strb r0, [r1]
- adds r1, r3, r6
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0x11
- ble _0800EB4E
- ldr r1, _0800EB9C @ =0x00003688
- add r1, r12
- ldrb r0, [r1]
- strb r0, [r5, 0x7]
- ldrb r0, [r1]
- adds r1, r5, 0
- adds r1, 0x3F
- strb r0, [r1]
- ldr r1, _0800EBA0 @ =0x00003689
- add r1, r12
- ldrb r0, [r1]
- strb r0, [r5, 0x1A]
- ldrb r1, [r1]
- adds r0, r5, 0
- adds r0, 0x52
- strb r1, [r0]
- b _0800EC28
- .align 2, 0
-_0800EB84: .4byte gUnknown_020239F8
-_0800EB88: .4byte gEnigmaBerries
-_0800EB8C: .4byte gSaveBlock1
-_0800EB90: .4byte 0x00003160
-_0800EB94: .4byte gUnknown_02024DF8
-_0800EB98: .4byte gSaveBlock1 + 0x3676
-_0800EB9C: .4byte 0x00003688
-_0800EBA0: .4byte 0x00003689
-_0800EBA4:
- movs r0, 0x40
- ands r0, r1
- movs r1, 0x2
- mov r8, r1
- cmp r0, 0
- beq _0800EBB4
- movs r0, 0x4
- mov r8, r0
-_0800EBB4:
- movs r3, 0
- cmp r3, r8
- bge _0800EC28
- ldr r1, _0800EC38 @ =gEnigmaBerries
- mov r12, r1
- ldr r0, _0800EC3C @ =gBlockRecvBuffer + 0x4
- mov r10, r0
- movs r1, 0x8
- add r1, r12
- mov r9, r1
-_0800EBC8:
- lsls r0, r3, 8
- mov r1, r10
- adds r5, r0, r1
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- ldr r1, _0800EC40 @ =gLinkPlayers
- adds r0, r1
- ldrb r4, [r0, 0x18]
- movs r2, 0
- adds r7, r3, 0x1
- lsls r1, r4, 3
- subs r0, r1, r4
- adds r6, r1, 0
- lsls r0, 2
- mov r1, r12
- adds r3, r0, r1
-_0800EBEA:
- adds r0, r5, r2
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x6
- ble _0800EBEA
- movs r2, 0
- subs r0, r6, r4
- lsls r0, 2
- mov r1, r9
- adds r3, r0, r1
- adds r1, r5, 0
- adds r1, 0x8
-_0800EC06:
- adds r0, r1, r2
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x11
- ble _0800EC06
- subs r0, r6, r4
- lsls r0, 2
- add r0, r12
- ldrb r1, [r5, 0x7]
- strb r1, [r0, 0x7]
- ldrb r1, [r5, 0x1A]
- strb r1, [r0, 0x1A]
- adds r3, r7, 0
- cmp r3, r8
- blt _0800EBC8
-_0800EC28:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EC38: .4byte gEnigmaBerries
-_0800EC3C: .4byte gBlockRecvBuffer + 0x4
-_0800EC40: .4byte gLinkPlayers
- thumb_func_end sub_800EB08
-
- thumb_func_start shedinja_something
-shedinja_something: @ 800EC44
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- add r5, sp, 0xC
- movs r0, 0x1
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0800EC94 @ =0x0000012f
- cmp r0, r1
- bne _0800EC8C
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- ldrb r1, [r5]
- cmp r0, r1
- beq _0800EC8C
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r1, _0800EC98 @ =gUnknown_081F96C8
- mov r0, sp
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0800EC8C
- adds r0, r4, 0
- movs r1, 0x3
- adds r2, r5, 0
- bl SetMonData
-_0800EC8C:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EC94: .4byte 0x0000012f
-_0800EC98: .4byte gUnknown_081F96C8
- thumb_func_end shedinja_something
-
- thumb_func_start sub_800EC9C
-sub_800EC9C: @ 800EC9C
- push {r4-r7,lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0800ECD4 @ =0x02000000
- ldr r1, _0800ECD8 @ =0x000160cb
- adds r0, r1
- strb r4, [r0]
- movs r0, 0x1
- adds r5, r4, 0
- eors r5, r0
- ldr r0, _0800ECDC @ =gUnknown_02024D1E
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _0800ECCA
- b _0800F008
-_0800ECCA:
- lsls r0, 2
- ldr r1, _0800ECE0 @ =_0800ECE4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800ECD4: .4byte 0x02000000
-_0800ECD8: .4byte 0x000160cb
-_0800ECDC: .4byte gUnknown_02024D1E
-_0800ECE0: .4byte _0800ECE4
- .align 2, 0
-_0800ECE4:
- .4byte _0800ED0C
- .4byte _0800ED7C
- .4byte _0800EE88
- .4byte _0800EEAC
- .4byte _0800EED8
- .4byte _0800EEFC
- .4byte _0800EF28
- .4byte _0800EF48
- .4byte _0800EFB4
- .4byte _0800EFCC
-_0800ED0C:
- ldr r2, _0800ED54 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0800ED64
- ldr r0, _0800ED58 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800ED22
- b _0800F008
-_0800ED22:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800ED2E
- b _0800F008
-_0800ED2E:
- ldr r4, _0800ED5C @ =0x02000000
- movs r5, 0x1
- strb r5, [r4]
- strb r5, [r4, 0x1]
- bl sub_800E9EC
- bl sub_800EAAC
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x20
- bl SendBlock
- ldr r0, _0800ED60 @ =gUnknown_02024D1E
- strb r5, [r0]
- b _0800F008
- .align 2, 0
-_0800ED54: .4byte gUnknown_020239F8
-_0800ED58: .4byte gReceivedRemoteLinkPlayers
-_0800ED5C: .4byte 0x02000000
-_0800ED60: .4byte gUnknown_02024D1E
-_0800ED64:
- movs r0, 0x4
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800ED78 @ =gUnknown_02024D1E
- movs r0, 0x8
- strb r0, [r1]
- bl sub_800EB08
- b _0800F008
- .align 2, 0
-_0800ED78: .4byte gUnknown_02024D1E
-_0800ED7C:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0800ED8A
- b _0800F008
-_0800ED8A:
- bl ResetBlockReceivedFlags
- movs r3, 0
- ldr r0, _0800EDA8 @ =gBlockRecvBuffer
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bne _0800EDBC
- cmp r4, 0
- bne _0800EDB0
- ldr r0, _0800EDAC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0xC
- b _0800EDB6
- .align 2, 0
-_0800EDA8: .4byte gBlockRecvBuffer
-_0800EDAC: .4byte gUnknown_020239F8
-_0800EDB0:
- ldr r0, _0800EDE0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x8
-_0800EDB6:
- orrs r1, r2
- strh r1, [r0]
- adds r3, 0x1
-_0800EDBC:
- lsls r7, r5, 8
- cmp r3, 0
- bne _0800EE38
- ldr r0, _0800EDE4 @ =gBlockRecvBuffer
- movs r1, 0x80
- lsls r1, 1
- adds r2, r0, r1
- ldrh r1, [r0]
- adds r6, r0, 0
- ldrh r2, [r2]
- cmp r1, r2
- bne _0800EDF4
- cmp r4, 0
- bne _0800EDE8
- ldr r0, _0800EDE0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0xC
- b _0800EDEE
- .align 2, 0
-_0800EDE0: .4byte gUnknown_020239F8
-_0800EDE4: .4byte gBlockRecvBuffer
-_0800EDE8:
- ldr r0, _0800EE04 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x8
-_0800EDEE:
- orrs r1, r2
- strh r1, [r0]
- adds r3, 0x1
-_0800EDF4:
- lsls r7, r5, 8
- cmp r3, 0
- bne _0800EE38
- ldrh r1, [r6]
- ldr r0, _0800EE08 @ =0x00000101
- ldr r2, _0800EE04 @ =gUnknown_020239F8
- b _0800EE1A
- .align 2, 0
-_0800EE04: .4byte gUnknown_020239F8
-_0800EE08: .4byte 0x00000101
-_0800EE0C:
- adds r3, 0x1
- cmp r3, 0x1
- bgt _0800EE22
- lsls r0, r3, 8
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _0800EE2C @ =0x00000101
-_0800EE1A:
- cmp r1, r0
- bls _0800EE0C
- cmp r3, r4
- beq _0800EE0C
-_0800EE22:
- cmp r3, 0x2
- bne _0800EE30
- ldrh r0, [r2]
- movs r1, 0xC
- b _0800EE34
- .align 2, 0
-_0800EE2C: .4byte 0x00000101
-_0800EE30:
- ldrh r0, [r2]
- movs r1, 0x8
-_0800EE34:
- orrs r0, r1
- strh r0, [r2]
-_0800EE38:
- bl sub_800EB08
- ldr r0, _0800EE78 @ =sub_800DE30
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800EE7C @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- movs r1, 0
- movs r0, 0x87
- lsls r0, 1
- strh r0, [r2, 0xA]
- movs r0, 0x5A
- strh r0, [r2, 0xC]
- strh r1, [r2, 0x12]
- ldr r0, _0800EE80 @ =0x02000000
- ldrb r1, [r0, 0x2]
- ldrb r0, [r0, 0x3]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2, 0xE]
- ldr r0, _0800EE84 @ =gBlockRecvBuffer
- adds r0, 0x2
- adds r0, r7, r0
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- b _0800EF96
- .align 2, 0
-_0800EE78: .4byte sub_800DE30
-_0800EE7C: .4byte gTasks
-_0800EE80: .4byte 0x02000000
-_0800EE84: .4byte gBlockRecvBuffer
-_0800EE88:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800EE94
- b _0800F008
-_0800EE94:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800EEA8 @ =gPlayerParty
- movs r2, 0xC8
- bl SendBlock
- b _0800EF96
- .align 2, 0
-_0800EEA8: .4byte gPlayerParty
-_0800EEAC:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0800EEBA
- b _0800F008
-_0800EEBA:
- bl ResetBlockReceivedFlags
- ldr r0, _0800EED0 @ =gEnemyParty
- lsls r1, r5, 8
- ldr r2, _0800EED4 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl memcpy
- b _0800EF96
- .align 2, 0
-_0800EED0: .4byte gEnemyParty
-_0800EED4: .4byte gBlockRecvBuffer
-_0800EED8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800EEE4
- b _0800F008
-_0800EEE4:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800EEF8 @ =gPlayerParty + 2 * 0x64
- movs r2, 0xC8
- bl SendBlock
- b _0800EF96
- .align 2, 0
-_0800EEF8: .4byte gPlayerParty + 2 * 0x64
-_0800EEFC:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0800EF0A
- b _0800F008
-_0800EF0A:
- bl ResetBlockReceivedFlags
- ldr r0, _0800EF20 @ =gEnemyParty + 2 * 0x64
- lsls r1, r5, 8
- ldr r2, _0800EF24 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl memcpy
- b _0800EF96
- .align 2, 0
-_0800EF20: .4byte gEnemyParty + 2 * 0x64
-_0800EF24: .4byte gBlockRecvBuffer
-_0800EF28:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0800F008
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800EF44 @ =gPlayerParty + 4 * 0x64
- movs r2, 0xC8
- bl SendBlock
- b _0800EF96
- .align 2, 0
-_0800EF44: .4byte gPlayerParty + 4 * 0x64
-_0800EF48:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- bne _0800F008
- bl ResetBlockReceivedFlags
- ldr r4, _0800EFA0 @ =gEnemyParty + 4 * 0x64
- lsls r1, r5, 8
- ldr r0, _0800EFA4 @ =gBlockRecvBuffer
- adds r1, r0
- adds r0, r4, 0
- movs r2, 0xC8
- bl memcpy
- ldr r1, _0800EFA8 @ =0xfffffe70
- adds r0, r4, r1
- bl shedinja_something
- ldr r1, _0800EFAC @ =0xfffffed4
- adds r0, r4, r1
- bl shedinja_something
- adds r0, r4, 0
- subs r0, 0xC8
- bl shedinja_something
- adds r0, r4, 0
- subs r0, 0x64
- bl shedinja_something
- adds r0, r4, 0
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0x64
- bl shedinja_something
-_0800EF96:
- ldr r1, _0800EFB0 @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0800F008
- .align 2, 0
-_0800EFA0: .4byte gEnemyParty + 4 * 0x64
-_0800EFA4: .4byte gBlockRecvBuffer
-_0800EFA8: .4byte 0xfffffe70
-_0800EFAC: .4byte 0xfffffed4
-_0800EFB0: .4byte gUnknown_02024D1E
-_0800EFB4:
- bl sub_800B950
- ldr r0, _0800EFC8 @ =gUnknown_02024D1E
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r2, [r0, 0x2]
- b _0800F008
- .align 2, 0
-_0800EFC8: .4byte gUnknown_02024D1E
-_0800EFCC:
- ldr r0, _0800F010 @ =gUnknown_02024D1F
- adds r1, r0, 0x1
- bl battle_load_something
- lsls r0, 24
- cmp r0, 0
- beq _0800F008
- ldr r2, _0800F014 @ =gUnknown_030042D0
- ldr r1, _0800F018 @ =gMain
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, _0800F01C @ =sub_8010824
- str r0, [r1]
- ldr r0, _0800F020 @ =sub_800F808
- bl SetMainCallback2
- ldr r3, _0800F024 @ =gUnknown_020239F8
- ldrh r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0800F008
- ldr r1, _0800F028 @ =gTrainerBattleOpponent
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- strh r0, [r1]
- movs r0, 0x20
- orrs r0, r2
- strh r0, [r3]
-_0800F008:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F010: .4byte gUnknown_02024D1F
-_0800F014: .4byte gUnknown_030042D0
-_0800F018: .4byte gMain
-_0800F01C: .4byte sub_8010824
-_0800F020: .4byte sub_800F808
-_0800F024: .4byte gUnknown_020239F8
-_0800F028: .4byte gTrainerBattleOpponent
- thumb_func_end sub_800EC9C
-
- thumb_func_start sub_800F02C
-sub_800F02C: @ 800F02C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r8, r0
- ldr r7, _0800F0F8 @ =gUnknown_02023A04
- mov r10, r7
-_0800F03E:
- mov r1, r8
- lsls r6, r1, 5
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r0, _0800F0FC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- movs r1, 0x4
- negs r1, r1
- add r1, r10
- mov r9, r1
- adds r5, r6, r1
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- strh r0, [r5, 0x2]
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r7, 0
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- strb r0, [r5, 0xF]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5, 0x10]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r5, 0x12]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- mov r1, r10
- adds r1, 0x10
- adds r6, r1
- str r0, [r6]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [r7, 0x14]
- adds r0, r4, 0
- bl GetMonGender
- strb r0, [r5, 0x1C]
- adds r0, r7, 0
- bl StripExtCtrlCodes
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- strb r0, [r5, 0x1D]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0800F0D4
- adds r0, r7, 0
- movs r1, 0
- bl sub_814A518
-_0800F0D4:
- adds r7, 0x20
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x2
- ble _0800F03E
- ldr r0, _0800F100 @ =0x02000000
- mov r1, r9
- movs r2, 0x60
- bl memcpy
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F0F8: .4byte gUnknown_02023A04
-_0800F0FC: .4byte gPlayerParty
-_0800F100: .4byte 0x02000000
- thumb_func_end sub_800F02C
-
- thumb_func_start sub_800F104
-sub_800F104: @ 800F104
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _0800F148 @ =0x02000000
- ldr r1, _0800F14C @ =0x000160cb
- adds r0, r4, r1
- strb r6, [r0]
- ldr r2, _0800F150 @ =0x000160c4
- adds r2, r4
- mov r9, r2
- ldr r0, _0800F154 @ =0x000160c2
- adds r0, r4
- mov r8, r0
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r5, _0800F158 @ =gUnknown_02024D1E
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _0800F1A0
- cmp r0, 0x1
- bgt _0800F15C
- cmp r0, 0
- beq _0800F168
- b _0800F27A
- .align 2, 0
-_0800F148: .4byte 0x02000000
-_0800F14C: .4byte 0x000160cb
-_0800F150: .4byte 0x000160c4
-_0800F154: .4byte 0x000160c2
-_0800F158: .4byte gUnknown_02024D1E
-_0800F15C:
- cmp r0, 0x2
- beq _0800F240
- cmp r0, 0x3
- bne _0800F166
- b _0800F25C
-_0800F166:
- b _0800F27A
-_0800F168:
- ldr r0, _0800F19C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800F172
- b _0800F27A
-_0800F172:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800F17E
- b _0800F27A
-_0800F17E:
- bl sub_800F02C
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x60
- bl SendBlock
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0800F27A
- .align 2, 0
-_0800F19C: .4byte gReceivedRemoteLinkPlayers
-_0800F1A0:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- bne _0800F27A
- bl ResetBlockReceivedFlags
- movs r4, 0
- lsls r0, r6, 3
- subs r0, r6
- lsls r5, r0, 2
- movs r7, 0
-_0800F1BA:
- cmp r4, r6
- beq _0800F1FA
- ldr r2, _0800F1DC @ =gLinkPlayers
- adds r0, r7, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0800F1E0
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F1EC
- b _0800F1FA
- .align 2, 0
-_0800F1DC: .4byte gLinkPlayers
-_0800F1E0:
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F1FA
-_0800F1EC:
- lsls r1, r4, 8
- ldr r0, _0800F228 @ =gBlockRecvBuffer
- adds r1, r0
- ldr r0, _0800F22C @ =gUnknown_02023A00
- movs r2, 0x60
- bl memcpy
-_0800F1FA:
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _0800F1BA
- ldr r1, _0800F230 @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _0800F234 @ =gMain
- ldr r0, [r1, 0x8]
- mov r2, r9
- str r0, [r2]
- ldr r0, _0800F238 @ =gUnknown_020239F8
- ldrh r0, [r0]
- mov r2, r8
- strh r0, [r2]
- ldr r0, _0800F23C @ =sub_800F104
- str r0, [r1, 0x8]
- movs r0, 0x5
- movs r1, 0
- bl OpenPartyMenu
- b _0800F27A
- .align 2, 0
-_0800F228: .4byte gBlockRecvBuffer
-_0800F22C: .4byte gUnknown_02023A00
-_0800F230: .4byte gUnknown_02024D1E
-_0800F234: .4byte gMain
-_0800F238: .4byte gUnknown_020239F8
-_0800F23C: .4byte sub_800F104
-_0800F240:
- ldr r0, _0800F258 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0800F27A
- movs r0, 0x3
- strb r0, [r5]
- bl sub_800832C
- b _0800F27A
- .align 2, 0
-_0800F258: .4byte gPaletteFade
-_0800F25C:
- ldr r0, _0800F288 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800F27A
- ldr r1, _0800F28C @ =gUnknown_020239F8
- mov r2, r8
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, _0800F290 @ =gMain
- mov r2, r9
- ldr r0, [r2]
- str r0, [r1, 0x8]
- ldr r0, _0800F294 @ =sub_800E7F8
- bl SetMainCallback2
-_0800F27A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F288: .4byte gReceivedRemoteLinkPlayers
-_0800F28C: .4byte gUnknown_020239F8
-_0800F290: .4byte gMain
-_0800F294: .4byte sub_800E7F8
- thumb_func_end sub_800F104
-
- thumb_func_start sub_800F298
-sub_800F298: @ 800F298
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0800F2D0 @ =0x02000000
- ldr r1, _0800F2D4 @ =0x000160cb
- adds r0, r1
- strb r6, [r0]
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _0800F2D8 @ =gUnknown_02024D1E
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _0800F2C4
- b _0800F7E0
-_0800F2C4:
- lsls r0, 2
- ldr r1, _0800F2DC @ =_0800F2E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800F2D0: .4byte 0x02000000
-_0800F2D4: .4byte 0x000160cb
-_0800F2D8: .4byte gUnknown_02024D1E
-_0800F2DC: .4byte _0800F2E0
- .align 2, 0
-_0800F2E0:
- .4byte _0800F300
- .4byte _0800F340
- .4byte _0800F4DE
- .4byte _0800F504
- .4byte _0800F5F8
- .4byte _0800F61C
- .4byte _0800F78C
- .4byte _0800F7A4
-_0800F300:
- ldr r0, _0800F338 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800F30A
- b _0800F7E0
-_0800F30A:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800F316
- b _0800F7E0
-_0800F316:
- ldr r4, _0800F33C @ =0x02000000
- movs r0, 0x1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- bl sub_800E9EC
- bl sub_800EAAC
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x20
- bl SendBlock
- b _0800F770
- .align 2, 0
-_0800F338: .4byte gReceivedRemoteLinkPlayers
-_0800F33C: .4byte 0x02000000
-_0800F340:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _0800F34E
- b _0800F7E0
-_0800F34E:
- bl ResetBlockReceivedFlags
- movs r4, 0
- ldr r0, _0800F36C @ =gBlockRecvBuffer
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bne _0800F380
- cmp r6, 0
- bne _0800F374
- ldr r0, _0800F370 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0xC
- b _0800F37A
- .align 2, 0
-_0800F36C: .4byte gBlockRecvBuffer
-_0800F370: .4byte gUnknown_020239F8
-_0800F374:
- ldr r0, _0800F3B0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x8
-_0800F37A:
- orrs r1, r2
- strh r1, [r0]
- adds r4, 0x1
-_0800F380:
- cmp r4, 0
- bne _0800F41C
- movs r2, 0
- ldr r1, _0800F3B4 @ =gBlockRecvBuffer
- adds r5, r1, 0
- movs r3, 0x80
- lsls r3, 1
-_0800F38E:
- adds r1, r3
- adds r2, 0x1
- cmp r2, 0x3
- bgt _0800F39E
- ldrh r0, [r5]
- ldrh r7, [r1]
- cmp r0, r7
- beq _0800F38E
-_0800F39E:
- cmp r2, 0x4
- bne _0800F3C4
- cmp r6, 0
- bne _0800F3B8
- ldr r0, _0800F3B0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0xC
- b _0800F3BE
- .align 2, 0
-_0800F3B0: .4byte gUnknown_020239F8
-_0800F3B4: .4byte gBlockRecvBuffer
-_0800F3B8:
- ldr r0, _0800F408 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x8
-_0800F3BE:
- orrs r1, r2
- strh r1, [r0]
- adds r4, 0x1
-_0800F3C4:
- cmp r4, 0
- bne _0800F41C
- ldr r0, _0800F40C @ =gBlockRecvBuffer
- ldrh r2, [r0]
- ldr r1, _0800F410 @ =0x00000101
- adds r3, r0, 0
- ldr r5, _0800F408 @ =gUnknown_020239F8
- cmp r2, r1
- beq _0800F3F6
-_0800F3D6:
- lsls r0, r4, 8
- adds r0, r3
- ldrh r0, [r0]
- ldr r1, _0800F410 @ =0x00000101
- cmp r0, r1
- bls _0800F3E6
- cmp r4, r6
- bne _0800F3FE
-_0800F3E6:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0800F3FE
- lsls r0, r4, 8
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r1
- bne _0800F3D6
-_0800F3F6:
- cmp r4, r6
- beq _0800F3D6
- cmp r4, r6
- bge _0800F3D6
-_0800F3FE:
- cmp r4, 0x4
- bne _0800F414
- ldrh r0, [r5]
- movs r1, 0xC
- b _0800F418
- .align 2, 0
-_0800F408: .4byte gUnknown_020239F8
-_0800F40C: .4byte gBlockRecvBuffer
-_0800F410: .4byte 0x00000101
-_0800F414:
- ldrh r0, [r5]
- movs r1, 0x8
-_0800F418:
- orrs r0, r1
- strh r0, [r5]
-_0800F41C:
- bl sub_800EB08
- ldr r0, _0800F474 @ =0x0201d000
- ldr r1, _0800F478 @ =gPlayerParty
- movs r2, 0x96
- lsls r2, 1
- bl memcpy
- ldr r0, _0800F47C @ =sub_800DE30
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800F480 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x87
- lsls r0, 1
- strh r0, [r1, 0xA]
- movs r0, 0x5A
- strh r0, [r1, 0xC]
- strh r2, [r1, 0x12]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
- adds r2, r1, 0
- ldr r0, _0800F484 @ =gBlockRecvBuffer
- adds r3, r0, 0x2
- ldr r6, _0800F488 @ =gLinkPlayers
- movs r5, 0x3F
- movs r7, 0x80
- lsls r7, 1
- movs r4, 0x3
-_0800F464:
- ldrh r0, [r6, 0x18]
- cmp r0, 0x1
- beq _0800F49E
- cmp r0, 0x1
- bgt _0800F48C
- cmp r0, 0
- beq _0800F496
- b _0800F4C4
- .align 2, 0
-_0800F474: .4byte 0x0201d000
-_0800F478: .4byte gPlayerParty
-_0800F47C: .4byte sub_800DE30
-_0800F480: .4byte gTasks
-_0800F484: .4byte gBlockRecvBuffer
-_0800F488: .4byte gLinkPlayers
-_0800F48C:
- cmp r0, 0x2
- beq _0800F4A6
- cmp r0, 0x3
- beq _0800F4B6
- b _0800F4C4
-_0800F496:
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- b _0800F4AE
-_0800F49E:
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- b _0800F4BE
-_0800F4A6:
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 6
-_0800F4AE:
- ldrh r0, [r2, 0xE]
- orrs r1, r0
- strh r1, [r2, 0xE]
- b _0800F4C4
-_0800F4B6:
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 6
-_0800F4BE:
- ldrh r0, [r2, 0x10]
- orrs r1, r0
- strh r1, [r2, 0x10]
-_0800F4C4:
- adds r3, r7
- adds r6, 0x1C
- subs r4, 0x1
- cmp r4, 0
- bge _0800F464
- bl ZeroPlayerPartyMons
- bl ZeroEnemyPartyMons
- ldr r1, _0800F4FC @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0800F4DE:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800F4EA
- b _0800F7E0
-_0800F4EA:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800F500 @ =0x0201d000
- movs r2, 0xC8
- bl SendBlock
- b _0800F770
- .align 2, 0
-_0800F4FC: .4byte gUnknown_02024D1E
-_0800F500: .4byte 0x0201d000
-_0800F504:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _0800F512
- b _0800F7E0
-_0800F512:
- bl ResetBlockReceivedFlags
- movs r4, 0
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- mov r8, r0
- ldr r5, _0800F53C @ =gBlockRecvBuffer
- movs r7, 0
-_0800F524:
- cmp r4, r6
- bne _0800F558
- ldr r0, _0800F540 @ =gLinkPlayers
- adds r0, r7, r0
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _0800F544
- cmp r0, 0x1
- bge _0800F550
- cmp r0, 0
- beq _0800F548
- b _0800F5E2
- .align 2, 0
-_0800F53C: .4byte gBlockRecvBuffer
-_0800F540: .4byte gLinkPlayers
-_0800F544:
- cmp r0, 0x3
- bne _0800F5E2
-_0800F548:
- ldr r0, _0800F54C @ =gPlayerParty
- b _0800F5C8
- .align 2, 0
-_0800F54C: .4byte gPlayerParty
-_0800F550:
- ldr r0, _0800F554 @ =gPlayerParty + 3 * 0x64
- b _0800F5C8
- .align 2, 0
-_0800F554: .4byte gPlayerParty + 3 * 0x64
-_0800F558:
- ldr r2, _0800F578 @ =gLinkPlayers
- adds r0, r7, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0800F57C
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F58A
- b _0800F5B0
- .align 2, 0
-_0800F578: .4byte gLinkPlayers
-_0800F57C:
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F5B0
-_0800F58A:
- adds r0, r7, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _0800F59C
- cmp r2, 0x1
- bge _0800F5A8
- cmp r2, 0
- beq _0800F5A0
- b _0800F5E2
-_0800F59C:
- cmp r2, 0x3
- bne _0800F5E2
-_0800F5A0:
- ldr r0, _0800F5A4 @ =gPlayerParty
- b _0800F5C8
- .align 2, 0
-_0800F5A4: .4byte gPlayerParty
-_0800F5A8:
- ldr r0, _0800F5AC @ =gPlayerParty + 3 * 0x64
- b _0800F5C8
- .align 2, 0
-_0800F5AC: .4byte gPlayerParty + 3 * 0x64
-_0800F5B0:
- adds r0, r7, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _0800F5C2
- cmp r2, 0x1
- bge _0800F5D8
- cmp r2, 0
- beq _0800F5C6
- b _0800F5E2
-_0800F5C2:
- cmp r2, 0x3
- bne _0800F5E2
-_0800F5C6:
- ldr r0, _0800F5D4 @ =gEnemyParty
-_0800F5C8:
- adds r1, r5, 0
- movs r2, 0xC8
- bl memcpy
- b _0800F5E2
- .align 2, 0
-_0800F5D4: .4byte gEnemyParty
-_0800F5D8:
- ldr r0, _0800F5F4 @ =gEnemyParty + 3 * 0x64
- adds r1, r5, 0
- movs r2, 0xC8
- bl memcpy
-_0800F5E2:
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _0800F524
- b _0800F770
- .align 2, 0
-_0800F5F4: .4byte gEnemyParty + 3 * 0x64
-_0800F5F8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800F604
- b _0800F7E0
-_0800F604:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800F618 @ =0x0201d0c8
- movs r2, 0x64
- bl SendBlock
- b _0800F770
- .align 2, 0
-_0800F618: .4byte 0x0201d0c8
-_0800F61C:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _0800F62A
- b _0800F7E0
-_0800F62A:
- bl ResetBlockReceivedFlags
- movs r4, 0
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- mov r8, r0
- ldr r5, _0800F654 @ =gBlockRecvBuffer
- movs r7, 0
-_0800F63C:
- cmp r4, r6
- bne _0800F670
- ldr r0, _0800F658 @ =gLinkPlayers
- adds r0, r7, r0
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _0800F65C
- cmp r0, 0x1
- bge _0800F668
- cmp r0, 0
- beq _0800F660
- b _0800F6FA
- .align 2, 0
-_0800F654: .4byte gBlockRecvBuffer
-_0800F658: .4byte gLinkPlayers
-_0800F65C:
- cmp r0, 0x3
- bne _0800F6FA
-_0800F660:
- ldr r0, _0800F664 @ =gPlayerParty + 2 * 0x64
- b _0800F6E0
- .align 2, 0
-_0800F664: .4byte gPlayerParty + 2 * 0x64
-_0800F668:
- ldr r0, _0800F66C @ =gPlayerParty + 5 * 0x64
- b _0800F6E0
- .align 2, 0
-_0800F66C: .4byte gPlayerParty + 5 * 0x64
-_0800F670:
- ldr r2, _0800F690 @ =gLinkPlayers
- adds r0, r7, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0800F694
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F6A2
- b _0800F6C8
- .align 2, 0
-_0800F690: .4byte gLinkPlayers
-_0800F694:
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F6C8
-_0800F6A2:
- adds r0, r7, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _0800F6B4
- cmp r2, 0x1
- bge _0800F6C0
- cmp r2, 0
- beq _0800F6B8
- b _0800F6FA
-_0800F6B4:
- cmp r2, 0x3
- bne _0800F6FA
-_0800F6B8:
- ldr r0, _0800F6BC @ =gPlayerParty + 2 * 0x64
- b _0800F6E0
- .align 2, 0
-_0800F6BC: .4byte gPlayerParty + 2 * 0x64
-_0800F6C0:
- ldr r0, _0800F6C4 @ =gPlayerParty + 5 * 0x64
- b _0800F6E0
- .align 2, 0
-_0800F6C4: .4byte gPlayerParty + 5 * 0x64
-_0800F6C8:
- adds r0, r7, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _0800F6DA
- cmp r2, 0x1
- bge _0800F6F0
- cmp r2, 0
- beq _0800F6DE
- b _0800F6FA
-_0800F6DA:
- cmp r2, 0x3
- bne _0800F6FA
-_0800F6DE:
- ldr r0, _0800F6EC @ =gEnemyParty + 2 * 0x64
-_0800F6E0:
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- b _0800F6FA
- .align 2, 0
-_0800F6EC: .4byte gEnemyParty + 2 * 0x64
-_0800F6F0:
- ldr r0, _0800F77C @ =gEnemyParty + 5 * 0x64
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
-_0800F6FA:
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _0800F63C
- ldr r4, _0800F780 @ =gPlayerParty
- adds r0, r4, 0
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0x64
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0xC8
- bl shedinja_something
- movs r1, 0x96
- lsls r1, 1
- adds r0, r4, r1
- bl shedinja_something
- movs r7, 0xC8
- lsls r7, 1
- adds r0, r4, r7
- bl shedinja_something
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r4, r1
- bl shedinja_something
- ldr r4, _0800F784 @ =gEnemyParty
- adds r0, r4, 0
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0x64
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0xC8
- bl shedinja_something
- subs r7, 0x64
- adds r0, r4, r7
- bl shedinja_something
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r4, r1
- bl shedinja_something
- adds r7, 0xC8
- adds r0, r4, r7
- bl shedinja_something
-_0800F770:
- ldr r1, _0800F788 @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0800F7E0
- .align 2, 0
-_0800F77C: .4byte gEnemyParty + 5 * 0x64
-_0800F780: .4byte gPlayerParty
-_0800F784: .4byte gEnemyParty
-_0800F788: .4byte gUnknown_02024D1E
-_0800F78C:
- bl sub_800B950
- ldr r0, _0800F7A0 @ =gUnknown_02024D1E
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r2, [r0, 0x2]
- b _0800F7E0
- .align 2, 0
-_0800F7A0: .4byte gUnknown_02024D1E
-_0800F7A4:
- ldr r0, _0800F7EC @ =gUnknown_02024D1F
- adds r1, r0, 0x1
- bl battle_load_something
- lsls r0, 24
- cmp r0, 0
- beq _0800F7E0
- ldr r2, _0800F7F0 @ =gUnknown_030042D0
- ldr r1, _0800F7F4 @ =gMain
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, _0800F7F8 @ =sub_8010824
- str r0, [r1]
- ldr r0, _0800F7FC @ =sub_800F808
- bl SetMainCallback2
- ldr r3, _0800F800 @ =gUnknown_020239F8
- ldrh r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0800F7E0
- ldr r1, _0800F804 @ =gTrainerBattleOpponent
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- strh r0, [r1]
- movs r0, 0x20
- orrs r0, r2
- strh r0, [r3]
-_0800F7E0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F7EC: .4byte gUnknown_02024D1F
-_0800F7F0: .4byte gUnknown_030042D0
-_0800F7F4: .4byte gMain
-_0800F7F8: .4byte sub_8010824
-_0800F7FC: .4byte sub_800F808
-_0800F800: .4byte gUnknown_020239F8
-_0800F804: .4byte gTrainerBattleOpponent
- thumb_func_end sub_800F298
-
- thumb_func_start sub_800F808
-sub_800F808: @ 800F808
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _0800F824 @ =gUnknown_03004210
- bl sub_800374C
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- .align 2, 0
-_0800F824: .4byte gUnknown_03004210
- thumb_func_end sub_800F808
-
- thumb_func_start sub_800F828
-sub_800F828: @ 800F828
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, _0800F834 @ =sub_800F838
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0800F834: .4byte sub_800F838
- thumb_func_end sub_800F828
-
- thumb_func_start sub_800F838
-sub_800F838: @ 800F838
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r5, _0800F850 @ =0x02000000
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- beq _0800F86C
- cmp r1, 0x1
- bgt _0800F854
- cmp r1, 0
- beq _0800F85A
- b _0800F8DC
- .align 2, 0
-_0800F850: .4byte 0x02000000
-_0800F854:
- cmp r1, 0x2
- beq _0800F8C8
- b _0800F8DC
-_0800F85A:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- strh r1, [r3, 0x30]
- ldr r0, _0800F8C4 @ =0x00000281
- strh r0, [r3, 0x32]
- strh r1, [r3, 0x34]
- movs r0, 0x1
- strh r0, [r3, 0x36]
-_0800F86C:
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _0800F8DC
- movs r0, 0x2
- strh r0, [r3, 0x36]
- movs r4, 0x30
- ldrsh r2, [r3, r4]
- movs r0, 0x34
- ldrsh r1, [r3, r0]
- lsls r1, 5
- adds r2, r1
- movs r4, 0x32
- ldrsh r0, [r3, r4]
- subs r0, r1
- movs r4, 0x3D
- lsls r0, 1
- adds r0, r5
- lsls r2, 1
- adds r2, r5
- movs r1, 0x1C
-_0800F89A:
- strh r4, [r2]
- strh r4, [r0]
- adds r0, 0x4
- adds r2, 0x4
- subs r1, 0x2
- cmp r1, 0
- bge _0800F89A
- ldrh r0, [r3, 0x34]
- adds r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _0800F8DC
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- movs r0, 0x20
- strh r0, [r3, 0x30]
- b _0800F8DC
- .align 2, 0
-_0800F8C4: .4byte 0x00000281
-_0800F8C8:
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _0800F8DC
- ldr r0, _0800F8E4 @ =sub_800E7C4
- bl SetMainCallback2
-_0800F8DC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F8E4: .4byte sub_800E7C4
- thumb_func_end sub_800F838
-
- thumb_func_start sub_800F8E8
-sub_800F8E8: @ 800F8E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r0, [sp, 0x10]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r0, 0
- mov r9, r0
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0800F90C
- movs r0, 0
- b _0800FCB4
-_0800F90C:
- ldr r0, _0800F93C @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0800F940 @ =0x00000908
- ands r0, r1
- ldr r1, [sp, 0x14]
- lsls r1, 2
- str r1, [sp, 0x20]
- cmp r0, 0x8
- beq _0800F920
- b _0800FCA4
-_0800F920:
- bl ZeroEnemyPartyMons
- movs r2, 0
- str r2, [sp, 0x18]
- ldr r2, _0800F944 @ =gTrainers
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- adds r0, 0x20
- ldr r4, [sp, 0x18]
- b _0800FC86
- .align 2, 0
-_0800F93C: .4byte gUnknown_020239F8
-_0800F940: .4byte 0x00000908
-_0800F944: .4byte gTrainers
-_0800F948:
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrb r0, [r1, 0x18]
- cmp r0, 0x1
- bne _0800F95C
- movs r4, 0x80
- mov r10, r4
- b _0800F96E
-_0800F95C:
- ldrb r1, [r1, 0x2]
- movs r0, 0x80
- ands r0, r1
- movs r1, 0x88
- mov r10, r1
- cmp r0, 0
- beq _0800F96E
- movs r2, 0x78
- mov r10, r2
-_0800F96E:
- movs r6, 0
- ldr r0, _0800F9C4 @ =gTrainers
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r1, r2, r3
- lsls r1, 3
- adds r3, r0, 0x4
- adds r1, r3
- ldrb r1, [r1]
- adds r4, r0, 0
- ldr r0, [sp, 0x18]
- adds r0, 0x1
- str r0, [sp, 0x1C]
- cmp r1, 0xFF
- beq _0800F9A6
-_0800F98C:
- ldr r0, [sp, 0x14]
- adds r1, r2, r0
- lsls r1, 3
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800F98C
-_0800F9A6:
- adds r2, r4, 0
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r1, r0, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0800FA5C
- cmp r0, 0x1
- bgt _0800F9C8
- cmp r0, 0
- beq _0800F9D6
- b _0800FC74
- .align 2, 0
-_0800F9C4: .4byte gTrainers
-_0800F9C8:
- cmp r0, 0x2
- bne _0800F9CE
- b _0800FB1C
-_0800F9CE:
- cmp r0, 0x3
- bne _0800F9D4
- b _0800FBB0
-_0800F9D4:
- b _0800FC74
-_0800F9D6:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0800FA58 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _0800FA18
- adds r3, r1, 0
- movs r7, 0xB
-_0800F9FC:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800F9FC
-_0800FA18:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r4, r5, r4
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r1, 0x64
- adds r0, r3, 0
- muls r0, r1
- ldr r2, [sp, 0x10]
- adds r0, r2, r0
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r3, 0x1
- str r3, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r3, 0x2
- str r3, [sp, 0x8]
- movs r3, 0
- str r3, [sp, 0xC]
- adds r3, r6, 0
- bl CreateMon
- b _0800FC74
- .align 2, 0
-_0800FA58: .4byte gSpeciesNames
-_0800FA5C:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0800FB14 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _0800FA9E
- adds r3, r1, 0
- movs r4, 0xB
-_0800FA82:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800FA82
-_0800FA9E:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r4, r3, r7
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r5, r0, 0
- muls r5, r1
- ldr r2, [sp, 0x10]
- adds r5, r2, r5
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r3, r6, 0
- bl CreateMon
- movs r6, 0
- mov r0, r8
- adds r0, 0x6
- adds r4, r7, r0
-_0800FAE8:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- adds r2, r4, 0
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _0800FB18 @ =gBattleMoves + 0x4 @ PP offset
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0800FAE8
- b _0800FC74
- .align 2, 0
-_0800FB14: .4byte gSpeciesNames
-_0800FB18: .4byte gBattleMoves + 0x4 @ PP offset
-_0800FB1C:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0800FBAC @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _0800FB5E
- adds r3, r1, 0
- movs r7, 0xB
-_0800FB42:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800FB42
-_0800FB5E:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r5, r4
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r1, [sp, 0x10]
- adds r4, r1, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- b _0800FC74
- .align 2, 0
-_0800FBAC: .4byte gSpeciesNames
-_0800FBB0:
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0800FCC4 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _0800FBF2
- adds r3, r1, 0
- movs r4, 0xB
-_0800FBD6:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800FBD6
-_0800FBF2:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r5, r3, r7
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r2, [sp, 0x10]
- adds r4, r2, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- movs r6, 0
- adds r5, r4, 0
- mov r0, r8
- adds r0, 0x8
- adds r4, r7, r0
-_0800FC4A:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- adds r2, r4, 0
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _0800FCC8 @ =gBattleMoves + 0x4 @ PP offset
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0800FC4A
-_0800FC74:
- ldr r4, [sp, 0x1C]
- str r4, [sp, 0x18]
- ldr r2, _0800FCCC @ =gTrainers
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- adds r0, 0x20
-_0800FC86:
- ldrb r0, [r0]
- cmp r4, r0
- bge _0800FC8E
- b _0800F948
-_0800FC8E:
- ldr r2, _0800FCD0 @ =gUnknown_020239F8
- ldr r1, _0800FCCC @ =gTrainers
- ldr r4, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r4, r3
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x18]
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
-_0800FCA4:
- ldr r0, _0800FCCC @ =gTrainers
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x14]
- adds r1, r4, r2
- lsls r1, 3
- adds r1, r0
- adds r1, 0x20
- ldrb r0, [r1]
-_0800FCB4:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0800FCC4: .4byte gSpeciesNames
-_0800FCC8: .4byte gBattleMoves + 0x4 @ PP offset
-_0800FCCC: .4byte gTrainers
-_0800FCD0: .4byte gUnknown_020239F8
- thumb_func_end sub_800F8E8
-
- thumb_func_start sub_800FCD4
-sub_800FCD4: @ 800FCD4
- push {lr}
- ldr r0, _0800FCF4 @ =REG_VCOUNT
- ldrh r0, [r0]
- subs r0, 0x6F
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x30
- bhi _0800FCEE
- ldr r1, _0800FCF8 @ =REG_BG0CNT
- movs r2, 0x98
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
-_0800FCEE:
- pop {r0}
- bx r0
- .align 2, 0
-_0800FCF4: .4byte REG_VCOUNT
-_0800FCF8: .4byte REG_BG0CNT
- thumb_func_end sub_800FCD4
-
- thumb_func_start sub_800FCFC
-sub_800FCFC: @ 800FCFC
- push {lr}
- bl Random
- ldr r1, _0800FD78 @ =REG_BG0HOFS
- ldr r0, _0800FD7C @ =gUnknown_030042A4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD80 @ =gUnknown_030042A0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD84 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD88 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD8C @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD90 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD94 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD98 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x22
- ldr r0, _0800FD9C @ =gUnknown_030042C4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _0800FDA0 @ =gUnknown_03004240
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0x2
- ldr r0, _0800FDA4 @ =gUnknown_03004200
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _0800FDA8 @ =gUnknown_03004244
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_0800FD78: .4byte REG_BG0HOFS
-_0800FD7C: .4byte gUnknown_030042A4
-_0800FD80: .4byte gUnknown_030042A0
-_0800FD84: .4byte gUnknown_030042C0
-_0800FD88: .4byte gUnknown_030041B4
-_0800FD8C: .4byte gUnknown_03004288
-_0800FD90: .4byte gUnknown_03004280
-_0800FD94: .4byte gUnknown_030041B0
-_0800FD98: .4byte gUnknown_030041B8
-_0800FD9C: .4byte gUnknown_030042C4
-_0800FDA0: .4byte gUnknown_03004240
-_0800FDA4: .4byte gUnknown_03004200
-_0800FDA8: .4byte gUnknown_03004244
- thumb_func_end sub_800FCFC
-
- thumb_func_start nullsub_36
-nullsub_36: @ 800FDAC
- bx lr
- thumb_func_end nullsub_36
-
- thumb_func_start sub_800FDB0
-sub_800FDB0: @ 800FDB0
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0800FDD0
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- lsrs r0, 8
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _0800FDE2
-_0800FDD0:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- asrs r0, 8
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x20]
-_0800FDE2:
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0800FE16
- ldr r4, _0800FE1C @ =0x00002710
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl FreeSpriteOamMatrix
- adds r0, r5, 0
- bl DestroySprite
-_0800FE16:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FE1C: .4byte 0x00002710
- thumb_func_end sub_800FDB0
-
- thumb_func_start sub_800FE20
-sub_800FE20: @ 800FE20
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _0800FE3C @ =sub_800FDB0
- str r0, [r4, 0x1C]
- movs r0, 0x68
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FE3C: .4byte sub_800FDB0
- thumb_func_end sub_800FE20
-
- thumb_func_start sub_800FE40
-sub_800FE40: @ 800FE40
- 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
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- ldr r0, _0800FE88 @ =0x02000000
- ldr r2, _0800FE8C @ =0x000160cb
- adds r0, r2
- ldrb r2, [r0]
- ldr r0, _0800FE90 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800FEB4
- ldr r1, _0800FE94 @ =gLinkPlayers
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800FEA0
- cmp r0, 0x1
- bgt _0800FE98
- cmp r0, 0
- beq _0800FEB4
- b _0800FEBC
- .align 2, 0
-_0800FE88: .4byte 0x02000000
-_0800FE8C: .4byte 0x000160cb
-_0800FE90: .4byte gUnknown_020239F8
-_0800FE94: .4byte gLinkPlayers
-_0800FE98:
- cmp r0, 0x2
- beq _0800FEB4
- cmp r0, 0x3
- bne _0800FEBC
-_0800FEA0:
- ldr r1, _0800FEAC @ =gEnemyParty
- str r1, [sp, 0x4]
- ldr r2, _0800FEB0 @ =gPlayerParty
- str r2, [sp, 0x8]
- b _0800FEBC
- .align 2, 0
-_0800FEAC: .4byte gEnemyParty
-_0800FEB0: .4byte gPlayerParty
-_0800FEB4:
- ldr r3, _08010008 @ =gPlayerParty
- str r3, [sp, 0x4]
- ldr r0, _0801000C @ =gEnemyParty
- str r0, [sp, 0x8]
-_0800FEBC:
- movs r7, 0
- movs r1, 0
- mov r8, r1
- ldr r2, [sp]
- lsls r2, 2
- str r2, [sp, 0xC]
- movs r3, 0xCE
- lsls r3, 1
- mov r10, r3
- mov r9, r1
-_0800FED0:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r0, [sp, 0x4]
- adds r4, r0, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _0800FF40
- cmp r5, r10
- beq _0800FF14
- cmp r6, 0
- beq _0800FF14
- cmp r1, 0
- bne _0800FF14
- movs r0, 0x1
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_0800FF14:
- cmp r5, 0
- beq _0800FF40
- cmp r6, 0
- beq _0800FF2C
- cmp r5, r10
- beq _0800FF24
- cmp r1, 0
- beq _0800FF2C
-_0800FF24:
- movs r0, 0x2
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_0800FF2C:
- cmp r5, 0
- beq _0800FF40
- cmp r5, r10
- beq _0800FF40
- cmp r6, 0
- bne _0800FF40
- movs r0, 0x3
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_0800FF40:
- movs r2, 0x2
- add r9, r2
- movs r3, 0x1
- add r8, r3
- mov r0, r8
- cmp r0, 0x5
- ble _0800FED0
- ldr r1, _08010010 @ =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0xE]
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r1, 0xCE
- lsls r1, 1
- mov r10, r1
- mov r9, r0
-_0800FF6A:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r2, [sp, 0x8]
- adds r4, r2, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _0800FFDA
- cmp r5, r10
- beq _0800FFAE
- cmp r6, 0
- beq _0800FFAE
- cmp r1, 0
- bne _0800FFAE
- movs r0, 0x1
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_0800FFAE:
- cmp r5, 0
- beq _0800FFDA
- cmp r6, 0
- beq _0800FFC6
- cmp r5, r10
- beq _0800FFBE
- cmp r1, 0
- beq _0800FFC6
-_0800FFBE:
- movs r0, 0x2
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_0800FFC6:
- cmp r5, 0
- beq _0800FFDA
- cmp r5, r10
- beq _0800FFDA
- cmp r6, 0
- bne _0800FFDA
- movs r0, 0x3
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_0800FFDA:
- movs r3, 0x2
- add r9, r3
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _0800FF6A
- ldr r1, _08010010 @ =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x10]
- 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
-_08010008: .4byte gPlayerParty
-_0801000C: .4byte gEnemyParty
-_08010010: .4byte gTasks
- thumb_func_end sub_800FE40
-
- thumb_func_start c2_8011A1C
-c2_8011A1C: @ 8010014
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r4, 0
- str r4, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _08010144 @ =0x05006000
- mov r0, sp
- bl CpuSet
- ldr r0, _08010148 @ =REG_MOSAIC
- strh r4, [r0]
- subs r0, 0xC
- movs r2, 0xF0
- strh r2, [r0]
- adds r0, 0x4
- ldr r3, _0801014C @ =0x00005051
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r0, _08010150 @ =gUnknown_030042C4
- strh r2, [r0]
- ldr r0, _08010154 @ =gUnknown_03004240
- strh r1, [r0]
- bl dp12_8087EA4
- ldr r0, _08010158 @ =gUnknown_03004DE0
- movs r3, 0xF0
- movs r4, 0xF0
- lsls r4, 3
- adds r2, r0, r4
- movs r1, 0x4F
-_08010066:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _08010066
- movs r1, 0x50
- ldr r5, _0801015C @ =gWindowConfig_81E6C58
- ldr r0, _08010158 @ =gUnknown_03004DE0
- ldr r3, _08010160 @ =0x0000ff10
- movs r4, 0x82
- lsls r4, 4
- adds r2, r0, r4
- adds r0, 0xA0
-_08010084:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _08010084
- adds r0, r5, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _08010164 @ =gUnknown_030042A4
- movs r4, 0
- strh r4, [r0]
- ldr r0, _08010168 @ =gUnknown_030042A0
- strh r4, [r0]
- ldr r0, _0801016C @ =gUnknown_030042C0
- strh r4, [r0]
- ldr r0, _08010170 @ =gUnknown_030041B4
- strh r4, [r0]
- ldr r0, _08010174 @ =gUnknown_03004288
- strh r4, [r0]
- ldr r0, _08010178 @ =gUnknown_03004280
- strh r4, [r0]
- ldr r0, _0801017C @ =gUnknown_030041B0
- strh r4, [r0]
- ldr r0, _08010180 @ =gUnknown_030041B8
- strh r4, [r0]
- ldr r0, _08010184 @ =gUnknown_03004210
- adds r1, r5, 0
- bl InitWindowFromConfig
- ldr r0, _08010188 @ =gUnknown_030041D0
- ldr r1, _0801018C @ =gWindowConfig_81E71D0
- bl InitWindowFromConfig
- ldr r0, _08010190 @ =gUnknown_03004250
- ldr r1, _08010194 @ =gWindowConfig_81E71EC
- bl InitWindowFromConfig
- bl sub_800D6D4
- ldr r0, _08010198 @ =gUnknown_08D004E0
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- bl sub_800D74C
- bl ResetSpriteData
- bl ResetTasks
- bl sub_800E23C
- ldr r1, _0801019C @ =REG_WINOUT
- movs r0, 0x37
- strh r0, [r1]
- bl FreeAllSpritePalettes
- ldr r1, _080101A0 @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _080101A4 @ =sub_800FCFC
- bl SetVBlankCallback
- ldr r0, _080101A8 @ =sub_800DE30
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080101AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x87
- lsls r2, 1
- strh r2, [r1, 0xA]
- movs r2, 0x5A
- strh r2, [r1, 0xC]
- movs r2, 0x1
- strh r2, [r1, 0x12]
- bl sub_800FE40
- ldr r0, _080101B0 @ =sub_80101B8
- bl SetMainCallback2
- ldr r0, _080101B4 @ =gUnknown_02024D1E
- strb r4, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08010144: .4byte 0x05006000
-_08010148: .4byte REG_MOSAIC
-_0801014C: .4byte 0x00005051
-_08010150: .4byte gUnknown_030042C4
-_08010154: .4byte gUnknown_03004240
-_08010158: .4byte gUnknown_03004DE0
-_0801015C: .4byte gWindowConfig_81E6C58
-_08010160: .4byte 0x0000ff10
-_08010164: .4byte gUnknown_030042A4
-_08010168: .4byte gUnknown_030042A0
-_0801016C: .4byte gUnknown_030042C0
-_08010170: .4byte gUnknown_030041B4
-_08010174: .4byte gUnknown_03004288
-_08010178: .4byte gUnknown_03004280
-_0801017C: .4byte gUnknown_030041B0
-_08010180: .4byte gUnknown_030041B8
-_08010184: .4byte gUnknown_03004210
-_08010188: .4byte gUnknown_030041D0
-_0801018C: .4byte gWindowConfig_81E71D0
-_08010190: .4byte gUnknown_03004250
-_08010194: .4byte gWindowConfig_81E71EC
-_08010198: .4byte gUnknown_08D004E0
-_0801019C: .4byte REG_WINOUT
-_080101A0: .4byte gReservedSpritePaletteCount
-_080101A4: .4byte sub_800FCFC
-_080101A8: .4byte sub_800DE30
-_080101AC: .4byte gTasks
-_080101B0: .4byte sub_80101B8
-_080101B4: .4byte gUnknown_02024D1E
- thumb_func_end c2_8011A1C
-
- thumb_func_start sub_80101B8
-sub_80101B8: @ 80101B8
- push {lr}
- bl c2_081284E0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_80101B8
-
- thumb_func_start c2_081284E0
-c2_081284E0: @ 80101D4
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080101EC @ =gUnknown_02024D1E
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _080101FC
- cmp r0, 0x1
- bgt _080101F0
- cmp r0, 0
- beq _080101F6
- b _08010236
- .align 2, 0
-_080101EC: .4byte gUnknown_02024D1E
-_080101F0:
- cmp r0, 0x2
- beq _08010222
- b _08010236
-_080101F6:
- movs r0, 0xFF
- strb r0, [r4, 0x1]
- b _0801021A
-_080101FC:
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08010236
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0801021A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08010236
-_08010222:
- ldr r0, _08010240 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08010236
- ldr r0, _08010244 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_08010236:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08010240: .4byte gPaletteFade
-_08010244: .4byte gMain
- thumb_func_end c2_081284E0
-
- thumb_func_start oac_poke_opponent
-oac_poke_opponent: @ 8010248
- push {lr}
- sub sp, 0x4
- ldr r1, _08010270 @ =sub_8010278
- str r1, [r0, 0x1C]
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- movs r0, 0x80
- lsls r0, 10
- ldr r1, _08010274 @ =0x00003def
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xA
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08010270: .4byte sub_8010278
-_08010274: .4byte 0x00003def
- thumb_func_end oac_poke_opponent
-
- thumb_func_start sub_8010278
-sub_8010278: @ 8010278
- push {lr}
- adds r2, r0, 0
- ldr r0, _080102A4 @ =gUnknown_02024DE8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080102A0
- ldrh r0, [r2, 0x24]
- adds r0, 0x2
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080102A0
- ldr r0, _080102A8 @ =sub_80102AC
- str r0, [r2, 0x1C]
- ldrh r0, [r2, 0x32]
- movs r1, 0x19
- bl PlayCry1
-_080102A0:
- pop {r0}
- bx r0
- .align 2, 0
-_080102A4: .4byte gUnknown_02024DE8
-_080102A8: .4byte sub_80102AC
- thumb_func_end sub_8010278
-
- thumb_func_start sub_80102AC
-sub_80102AC: @ 80102AC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080102F4
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl sub_804777C
- ldr r1, _080102FC @ =gUnknown_03004340
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DFC
- ldr r0, _08010300 @ =nullsub_37
- str r0, [r4, 0x1C]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- movs r0, 0x80
- lsls r0, 10
- ldr r1, _08010304 @ =0x00003def
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl BeginNormalPaletteFade
-_080102F4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080102FC: .4byte gUnknown_03004340
-_08010300: .4byte nullsub_37
-_08010304: .4byte 0x00003def
- thumb_func_end sub_80102AC
-
- thumb_func_start nullsub_37
-nullsub_37: @ 8010308
- bx lr
- thumb_func_end nullsub_37
-
- thumb_func_start unref_sub_801030C
-unref_sub_801030C: @ 801030C
- movs r1, 0x6
- strh r1, [r0, 0x34]
- movs r1, 0x1
- strh r1, [r0, 0x36]
- ldr r1, _0801031C @ =sub_8010320
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0801031C: .4byte sub_8010320
- thumb_func_end unref_sub_801030C
-
- thumb_func_start sub_8010320
-sub_8010320: @ 8010320
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08010374
- movs r0, 0x8
- strh r0, [r3, 0x36]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r4, 0x5
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _08010374
- ldrb r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r0, _0801037C @ =nullsub_37
- str r0, [r3, 0x1C]
- ldr r0, _08010380 @ =gUnknown_03004284
- str r2, [r0]
-_08010374:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801037C: .4byte nullsub_37
-_08010380: .4byte gUnknown_03004284
- thumb_func_end sub_8010320
-
- thumb_func_start sub_8010384
-sub_8010384: @ 8010384
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, r6, 2
- ldr r0, _080103A4 @ =0x02017800
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _080103A8
- adds r4, r0, 0
- b _080103AC
- .align 2, 0
-_080103A4: .4byte 0x02017800
-_080103A8:
- mov r0, r9
- ldrh r4, [r0, 0x32]
-_080103AC:
- ldr r1, _08010414 @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r5, r0, r1
- ldrh r0, [r5]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r7, _08010418 @ =gEnemyParty
- adds r0, r7
- movs r1, 0
- bl GetMonData
- cmp r4, SPECIES_UNOWN
- bne _08010430
- ldrh r0, [r5]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0801041C
- movs r0, SPECIES_UNOWN
- b _08010426
- .align 2, 0
-_08010414: .4byte gUnknown_02024A6A
-_08010418: .4byte gEnemyParty
-_0801041C:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_08010426:
- ldr r1, _0801042C @ =gMonFrontPicCoords
- lsls r0, 2
- b _08010468
- .align 2, 0
-_0801042C: .4byte gMonFrontPicCoords
-_08010430:
- ldr r0, _08010448 @ =SPECIES_CASTFORM
- cmp r4, r0 @ Check if pokemon species is Castform
- bne _08010454
- ldr r0, _0801044C @ =gUnknownCastformCoords_0837F598
- ldr r1, _08010450 @ =gUnknown_02024E84
- adds r1, r6, r1
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _0801046C
- .align 2, 0
-_08010448: .4byte SPECIES_CASTFORM
-_0801044C: .4byte gUnknownCastformCoords_0837F598
-_08010450: .4byte gUnknown_02024E84
-_08010454:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08010464
- ldr r0, _08010460 @ =gMonFrontPicCoords
- b _0801046A
- .align 2, 0
-_08010460: .4byte gMonFrontPicCoords
-_08010464:
- ldr r1, _0801048C @ =gMonFrontPicCoords
- lsls r0, r4, 2
-_08010468:
- adds r0, r1
-_0801046A:
- ldrb r0, [r0, 0x1]
-_0801046C:
- lsrs r1, r0, 3
- movs r0, 0x8
- subs r0, r1
- mov r1, r9
- strh r0, [r1, 0x34]
- movs r0, 0x1
- strh r0, [r1, 0x36]
- ldr r0, _08010490 @ =sub_8010494
- str r0, [r1, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801048C: .4byte gMonFrontPicCoords
-_08010490: .4byte sub_8010494
- thumb_func_end sub_8010384
-
- thumb_func_start sub_8010494
-sub_8010494: @ 8010494
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x36]
- subs r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08010510
- movs r0, 0x2
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x26]
- adds r0, 0x8
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- cmp r0, 0
- bge _080104C8
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _08010510
-_080104C8:
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- ldr r1, _08010518 @ =gUnknown_081FAF4C
- lsls r0, 24
- lsrs r0, 22
- adds r0, r1
- ldr r2, _0801051C @ =gUnknown_02024E84
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 11
- ldr r2, [r0]
- adds r2, r1
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 8
- adds r2, r0
- movs r1, 0
- movs r0, 0xFF
-_080104F6:
- strb r1, [r2]
- adds r2, 0x1
- subs r0, 0x1
- cmp r0, 0
- bge _080104F6
- ldr r0, _0801051C @ =gUnknown_02024E84
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- adds r1, r0
- ldrb r1, [r1]
- adds r0, r4, 0
- bl StartSpriteAnim
-_08010510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08010518: .4byte gUnknown_081FAF4C
-_0801051C: .4byte gUnknown_02024E84
- thumb_func_end sub_8010494
-
- thumb_func_start sub_8010520
-sub_8010520: @ 8010520
- movs r1, 0x8
- strh r1, [r0, 0x34]
- adds r1, r0, 0
- adds r1, 0x3E
- ldrb r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r0, 0x36]
- ldr r1, _08010538 @ =sub_801053C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_08010538: .4byte sub_801053C
- thumb_func_end sub_8010520
-
- thumb_func_start sub_801053C
-sub_801053C: @ 801053C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _0801056E
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0x8
- strh r0, [r3, 0x34]
-_0801056E:
- pop {r0}
- bx r0
- thumb_func_end sub_801053C
-
- thumb_func_start sub_8010574
-sub_8010574: @ 8010574
- movs r1, 0x3E
- adds r1, r0
- mov r12, r1
- movs r1, 0x1
- ldrh r2, [r0, 0x36]
- ands r2, r1
- lsls r2, 2
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0
- strh r1, [r0, 0x36]
- ldr r1, _0801059C @ =nullsub_37
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0801059C: .4byte nullsub_37
- thumb_func_end sub_8010574
-
- thumb_func_start sub_80105A0
-sub_80105A0: @ 80105A0
- ldr r1, _080105A8 @ =oac_poke_ally_
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080105A8: .4byte oac_poke_ally_
- thumb_func_end sub_80105A0
-
- thumb_func_start oac_poke_ally_
-oac_poke_ally_: @ 80105AC
- push {lr}
- adds r2, r0, 0
- ldr r0, _080105D4 @ =gUnknown_02024DE8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080105D0
- ldrh r0, [r2, 0x24]
- subs r0, 0x2
- strh r0, [r2, 0x24]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080105D0
- ldr r0, _080105D8 @ =nullsub_86
- str r0, [r2, 0x1C]
- strh r1, [r2, 0x30]
-_080105D0:
- pop {r0}
- bx r0
- .align 2, 0
-_080105D4: .4byte gUnknown_02024DE8
-_080105D8: .4byte nullsub_86
- thumb_func_end oac_poke_ally_
-
- thumb_func_start sub_80105DC
-sub_80105DC: @ 80105DC
- ldr r1, _080105E4 @ =nullsub_86
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080105E4: .4byte nullsub_86
- thumb_func_end sub_80105DC
-
- thumb_func_start nullsub_86
-nullsub_86: @ 80105E8
- bx lr
- thumb_func_end nullsub_86
-
- thumb_func_start sub_80105EC
-sub_80105EC: @ 80105EC
- push {lr}
- adds r2, r0, 0
- ldr r0, _08010610 @ =gUnknown_02024DE8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801060C
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
-_0801060C:
- pop {r0}
- bx r0
- .align 2, 0
-_08010610: .4byte gUnknown_02024DE8
- thumb_func_end sub_80105EC
-
- thumb_func_start dp11b_obj_instanciate
-dp11b_obj_instanciate: @ 8010614
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- cmp r1, 0
- beq _0801064C
- lsls r2, r4, 1
- adds r0, r2, r4
- lsls r0, 2
- ldr r1, _08010648 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- b _0801065A
- .align 2, 0
-_08010648: .4byte 0x02017810
-_0801064C:
- lsls r2, r4, 1
- adds r0, r2, r4
- lsls r0, 2
- ldr r1, _08010698 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
-_0801065A:
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- bne _080106FA
- ldr r0, _0801069C @ =objc_dp11b_pingpong
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- cmp r0, 0x1
- bne _080106A8
- ldr r0, _080106A0 @ =gUnknown_03004340
- adds r0, r4, r0
- ldrb r7, [r0]
- adds r0, r6, r4
- lsls r0, 2
- ldr r1, _08010698 @ =0x02017810
- adds r0, r1
- strb r5, [r0, 0x2]
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r2, _080106A4 @ =gSprites
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0x80
- b _080106CC
- .align 2, 0
-_08010698: .4byte 0x02017810
-_0801069C: .4byte objc_dp11b_pingpong
-_080106A0: .4byte gUnknown_03004340
-_080106A4: .4byte gSprites
-_080106A8:
- ldr r0, _08010708 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r7, [r0]
- adds r0, r6, r4
- lsls r0, 2
- ldr r1, _0801070C @ =0x02017810
- adds r0, r1
- strb r5, [r0, 0x3]
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r2, _08010710 @ =gSprites
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0xC0
-_080106CC:
- strh r1, [r0, 0x2E]
- adds r4, r2, 0
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r4
- mov r2, r9
- lsls r0, r2, 24
- asrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x30]
- mov r3, r10
- lsls r0, r3, 24
- asrs r0, 24
- strh r0, [r1, 0x32]
- strh r7, [r1, 0x34]
- mov r0, r8
- strh r0, [r1, 0x36]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x24]
- strh r2, [r0, 0x26]
-_080106FA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010708: .4byte gUnknown_02024BE0
-_0801070C: .4byte 0x02017810
-_08010710: .4byte gSprites
- thumb_func_end dp11b_obj_instanciate
-
- thumb_func_start dp11b_obj_free
-dp11b_obj_free: @ 8010714
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- bne _0801075C
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08010754 @ =0x02017810
- adds r5, r0, r1
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080107A0
- ldr r2, _08010758 @ =gSprites
- ldrb r1, [r5, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x34]
- lsls r1, 24
- lsrs r4, r1, 24
- bl DestroySprite
- ldrb r1, [r5]
- movs r0, 0x3
- negs r0, r0
- b _0801078C
- .align 2, 0
-_08010754: .4byte 0x02017810
-_08010758: .4byte gSprites
-_0801075C:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080107A8 @ =0x02017810
- adds r5, r0, r1
- ldrb r1, [r5]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080107A0
- ldr r2, _080107AC @ =gSprites
- ldrb r1, [r5, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x34]
- lsls r1, 24
- lsrs r4, r1, 24
- bl DestroySprite
- ldrb r1, [r5]
- movs r0, 0x5
- negs r0, r0
-_0801078C:
- ands r0, r1
- strb r0, [r5]
- ldr r0, _080107AC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x24]
- strh r0, [r1, 0x26]
-_080107A0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080107A8: .4byte 0x02017810
-_080107AC: .4byte gSprites
- thumb_func_end dp11b_obj_free
-
- thumb_func_start objc_dp11b_pingpong
-objc_dp11b_pingpong: @ 80107B0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080107C8
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- b _080107CC
-_080107C8:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
-_080107CC:
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- ldr r2, _080107F8 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080107F8: .4byte gSprites
- thumb_func_end objc_dp11b_pingpong
-
- thumb_func_start nullsub_41
-nullsub_41: @ 80107FC
- bx lr
- thumb_func_end nullsub_41
-
- thumb_func_start sub_8010800
-sub_8010800: @ 8010800
- push {lr}
- bl sub_8010874
- ldr r1, _08010818 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x1]
- ldr r1, _0801081C @ =gUnknown_030042D4
- ldr r0, _08010820 @ =bc_8012FAC
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08010818: .4byte gUnknown_02024D1E
-_0801081C: .4byte gUnknown_030042D4
-_08010820: .4byte bc_8012FAC
- thumb_func_end sub_8010800
-
- thumb_func_start sub_8010824
-sub_8010824: @ 8010824
- push {r4,r5,lr}
- ldr r0, _08010864 @ =gUnknown_030042D4
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _08010868 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0801086C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801085E
- ldr r5, _08010870 @ =gUnknown_03004330
- adds r4, r1, 0
-_08010840:
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- bl _call_via_r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0801086C @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08010840
-_0801085E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08010864: .4byte gUnknown_030042D4
-_08010868: .4byte gUnknown_02024A60
-_0801086C: .4byte gUnknown_02024A68
-_08010870: .4byte gUnknown_03004330
- thumb_func_end sub_8010824
-
- thumb_func_start sub_8010874
-sub_8010874: @ 8010874
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- bl sub_801365C
- bl sub_801377C
- movs r2, 0
- movs r3, 0
- ldr r0, _08010AC8 @ =gUnknown_02024C4C
- mov r10, r0
- ldr r1, _08010ACC @ =gUnknown_02024C44
- mov r9, r1
- ldr r4, _08010AD0 @ =gUnknown_02024C3C
- mov r8, r4
- ldr r0, _08010AD4 @ =gUnknown_02024C34
- mov r12, r0
- ldr r4, _08010AD8 @ =gUnknown_02024CA8
- movs r5, 0
- ldr r7, _08010ADC @ =gUnknown_02024C2C
- ldr r6, _08010AE0 @ =gUnknown_02024C54
-_080108A4:
- ldr r0, _08010AE4 @ =gUnknown_02024C98
- adds r0, r5, r0
- str r3, [r0]
- movs r1, 0
-_080108AC:
- adds r0, r4, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0x1B
- bls _080108AC
- movs r0, 0x2
- strb r0, [r4, 0x16]
- ldr r1, _08010AE8 @ =gUnknown_02024C70
- adds r0, r2, r1
- strb r3, [r0]
- mov r0, r12
- strh r3, [r0]
- mov r1, r8
- strh r3, [r1]
- mov r0, r9
- strh r3, [r0]
- mov r1, r10
- strh r3, [r1]
- ldr r0, _08010AEC @ =gUnknown_02024C5C
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- strh r3, [r6]
- strh r3, [r7]
- ldr r1, _08010AF0 @ =0x02017100
- adds r0, r5, r1
- str r3, [r0]
- movs r0, 0x2
- add r10, r0
- add r9, r0
- add r8, r0
- add r12, r0
- adds r4, 0x1C
- adds r5, 0x4
- adds r7, 0x2
- adds r6, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _080108A4
- movs r5, 0
- ldr r3, _08010AF4 @ =gUnknown_02024C80
- ldr r4, _08010AF8 @ =gUnknown_02024C7A
- movs r2, 0x1
-_08010902:
- strh r5, [r4]
- movs r1, 0
-_08010906:
- adds r0, r3, r1
- strb r5, [r0]
- adds r1, 0x1
- cmp r1, 0xB
- bls _08010906
- adds r3, 0xC
- adds r4, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08010902
- movs r1, 0
- ldr r2, _08010AFC @ =gUnknown_02024C07
- strb r1, [r2]
- ldr r3, _08010B00 @ =gUnknown_02024C08
- strb r1, [r3]
- ldr r4, _08010B04 @ =word_2024DB8
- strh r1, [r4]
- ldr r1, _08010B08 @ =gUnknown_02024DBC
- movs r2, 0
- movs r3, 0
-_0801092E:
- adds r0, r1, r2
- strb r3, [r0]
- adds r2, 0x1
- cmp r2, 0x2B
- bls _0801092E
- movs r0, 0
- ldr r1, _08010B0C @ =gUnknown_02024C6C
- str r0, [r1]
- ldr r2, _08010B10 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0801095C
- ldr r3, _08010B14 @ =gSaveBlock2
- ldrb r1, [r3, 0x15]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801095C
- movs r0, 0x80
- ldr r4, _08010B0C @ =gUnknown_02024C6C
- str r0, [r4]
-_0801095C:
- ldr r1, _08010B14 @ =gSaveBlock2
- ldrb r0, [r1, 0x15]
- lsls r0, 30
- lsrs r0, 31
- ldr r3, _08010B18 @ =0x02000000
- ldr r4, _08010B1C @ =0x00016084
- adds r2, r3, r4
- movs r1, 0
- strb r0, [r2]
- ldr r0, _08010B20 @ =gUnknown_02024C0E
- strb r1, [r0]
- ldr r2, _08010B24 @ =gUnknown_02024D26
- strb r1, [r2]
- ldr r3, _08010B28 @ =gUnknown_02024A64
- str r1, [r3]
- movs r2, 0
- ldr r4, _08010B2C @ =gUnknown_02024D1A
- strh r1, [r4]
- ldr r1, _08010B18 @ =0x02000000
- ldr r3, _08010B30 @ =0x00017130
- adds r0, r1, r3
- strb r2, [r0]
- ldr r4, _08010B34 @ =0x00017160
- adds r0, r1, r4
- strb r2, [r0]
- ldr r1, _08010B38 @ =gUnknown_02024D1E
- movs r2, 0
- adds r0, r1, 0x7
-_08010994:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08010994
- movs r5, 0
- ldr r0, _08010B3C @ =gUnknown_02024D18
- strh r5, [r0]
- movs r0, 0
- ldr r1, _08010B40 @ =gUnknown_02024BEC
- str r0, [r1]
- ldr r2, _08010B44 @ =gUnknown_02024DE8
- strh r0, [r2]
- ldr r4, _08010B18 @ =0x02000000
- ldr r3, _08010B48 @ =0x00016002
- adds r0, r4, r3
- strb r5, [r0]
- ldr r1, _08010B4C @ =0x000160a1
- adds r0, r4, r1
- strb r5, [r0]
- ldr r2, _08010B50 @ =gUnknown_03004324
- strb r5, [r2]
- ldr r3, _08010B54 @ =gUnknown_02024C0C
- strb r5, [r3]
- subs r1, 0x29
- adds r0, r4, r1
- strb r5, [r0]
- ldr r2, _08010B58 @ =0x00016086
- adds r0, r4, r2
- strb r5, [r0]
- ldr r3, _08010B5C @ =0x00016087
- adds r0, r4, r3
- strb r5, [r0]
- ldr r0, _08010B60 @ =gEnemyParty
- movs r1, 0xB
- bl GetMonData
- ldr r2, _08010B64 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x8]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08010B68 @ =0x000004fb
- bl __divsi3
- ldr r2, _08010B6C @ =0x00016089
- adds r1, r4, r2
- strb r0, [r1]
- ldr r3, _08010B70 @ =0x00016088
- adds r1, r4, r3
- movs r0, 0x3
- strb r0, [r1]
- ldr r1, _08010B74 @ =0x0001601b
- adds r0, r4, r1
- strb r5, [r0]
- subs r2, 0x33
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- movs r2, 0
- movs r1, 0
-_08010A12:
- ldr r3, _08010B78 @ =0x000160ac
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x20
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x1C
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x8
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x10
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x8
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08010A12
- ldr r4, _08010B18 @ =0x02000000
- ldr r1, _08010B7C @ =0x000160c8
- adds r0, r4, r1
- movs r2, 0
- movs r1, 0x6
- strb r1, [r0]
- subs r3, 0x3F
- adds r0, r4, r3
- strb r1, [r0]
- ldr r1, _08010B80 @ =0x00016113
- adds r0, r4, r1
- strb r2, [r0]
- ldr r3, _08010B84 @ =gUnknown_030042E0
- movs r1, 0
- movs r2, 0xA
- adds r0, r3, 0
- adds r0, 0x40
-_08010A6A:
- strb r1, [r0]
- subs r0, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _08010A6A
- movs r1, 0
- strb r1, [r3, 0x13]
- strb r1, [r3]
- strb r1, [r3, 0x1]
- strb r1, [r3, 0x2]
- strb r1, [r3, 0x3]
- strb r1, [r3, 0x4]
- ldrb r2, [r3, 0x5]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- movs r2, 0x3
- negs r2, r2
- ands r0, r2
- strb r0, [r3, 0x5]
- strh r1, [r3, 0x20]
- strh r1, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x6]
- strh r1, [r3, 0x26]
- strh r1, [r3, 0x28]
- movs r2, 0
- adds r5, r3, 0
- adds r5, 0x8
- movs r4, 0
- adds r1, r3, 0
- adds r1, 0x14
-_08010AAA:
- adds r0, r2, r5
- strb r4, [r0]
- strb r4, [r1]
- strb r4, [r1, 0x16]
- adds r1, 0x1
- adds r2, 0x1
- cmp r2, 0x9
- ble _08010AAA
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010AC8: .4byte gUnknown_02024C4C
-_08010ACC: .4byte gUnknown_02024C44
-_08010AD0: .4byte gUnknown_02024C3C
-_08010AD4: .4byte gUnknown_02024C34
-_08010AD8: .4byte gUnknown_02024CA8
-_08010ADC: .4byte gUnknown_02024C2C
-_08010AE0: .4byte gUnknown_02024C54
-_08010AE4: .4byte gUnknown_02024C98
-_08010AE8: .4byte gUnknown_02024C70
-_08010AEC: .4byte gUnknown_02024C5C
-_08010AF0: .4byte 0x02017100
-_08010AF4: .4byte gUnknown_02024C80
-_08010AF8: .4byte gUnknown_02024C7A
-_08010AFC: .4byte gUnknown_02024C07
-_08010B00: .4byte gUnknown_02024C08
-_08010B04: .4byte word_2024DB8
-_08010B08: .4byte gUnknown_02024DBC
-_08010B0C: .4byte gUnknown_02024C6C
-_08010B10: .4byte gUnknown_020239F8
-_08010B14: .4byte gSaveBlock2
-_08010B18: .4byte 0x02000000
-_08010B1C: .4byte 0x00016084
-_08010B20: .4byte gUnknown_02024C0E
-_08010B24: .4byte gUnknown_02024D26
-_08010B28: .4byte gUnknown_02024A64
-_08010B2C: .4byte gUnknown_02024D1A
-_08010B30: .4byte 0x00017130
-_08010B34: .4byte 0x00017160
-_08010B38: .4byte gUnknown_02024D1E
-_08010B3C: .4byte gUnknown_02024D18
-_08010B40: .4byte gUnknown_02024BEC
-_08010B44: .4byte gUnknown_02024DE8
-_08010B48: .4byte 0x00016002
-_08010B4C: .4byte 0x000160a1
-_08010B50: .4byte gUnknown_03004324
-_08010B54: .4byte gUnknown_02024C0C
-_08010B58: .4byte 0x00016086
-_08010B5C: .4byte 0x00016087
-_08010B60: .4byte gEnemyParty
-_08010B64: .4byte gBaseStats
-_08010B68: .4byte 0x000004fb
-_08010B6C: .4byte 0x00016089
-_08010B70: .4byte 0x00016088
-_08010B74: .4byte 0x0001601b
-_08010B78: .4byte 0x000160ac
-_08010B7C: .4byte 0x000160c8
-_08010B80: .4byte 0x00016113
-_08010B84: .4byte gUnknown_030042E0
- thumb_func_end sub_8010874
-
- thumb_func_start sub_8010B88
-sub_8010B88: @ 8010B88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r4, _08010CEC @ =gUnknown_02024CA8
- ldr r5, _08010CF0 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r1, sp
- adds r0, r4
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _08010CF4 @ =gBattleMoves
- ldr r3, _08010CF8 @ =gUnknown_02024BE6
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- mov r10, r4
- adds r7, r5, 0
- ldr r1, _08010CFC @ =gBattleMons
- mov r8, r1
- ldr r2, _08010D00 @ =gUnknown_02024C98
- mov r12, r2
- cmp r0, 0x7F
- beq _08010C66
- movs r5, 0
- adds r4, r7, 0
- movs r3, 0x58
- mov r2, r8
- adds r2, 0x18
- movs r1, 0x6
-_08010BDC:
- ldrb r0, [r4]
- muls r0, r3
- adds r0, r5, r0
- adds r0, r2
- strb r1, [r0]
- adds r5, 0x1
- cmp r5, 0x7
- ble _08010BDC
- movs r5, 0
- ldr r3, _08010D04 @ =gUnknown_02024A68
- ldrb r3, [r3]
- cmp r5, r3
- bge _08010C52
- ldr r6, _08010D08 @ =gUnknown_02024AD0
- mov r9, r6
- ldr r3, _08010CEC @ =gUnknown_02024CA8
- ldr r4, _08010D00 @ =gUnknown_02024C98
-_08010BFE:
- movs r0, 0x58
- muls r0, r5
- add r0, r9
- str r0, [sp, 0x20]
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 19
- ands r0, r1
- cmp r0, 0
- beq _08010C24
- ldrb r0, [r3, 0x14]
- ldr r2, _08010CF0 @ =gUnknown_02024A60
- ldrb r2, [r2]
- cmp r0, r2
- bne _08010C24
- ldr r0, _08010D0C @ =0xfbffffff
- ands r1, r0
- ldr r6, [sp, 0x20]
- str r1, [r6]
-_08010C24:
- ldr r1, [r4]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08010C44
- ldrb r0, [r3, 0x15]
- ldr r2, _08010CF0 @ =gUnknown_02024A60
- ldrb r2, [r2]
- cmp r0, r2
- bne _08010C44
- movs r0, 0x19
- negs r0, r0
- ands r1, r0
- str r1, [r4]
- movs r0, 0
- strb r0, [r3, 0x15]
-_08010C44:
- adds r3, 0x1C
- adds r4, 0x4
- adds r5, 0x1
- ldr r6, _08010D04 @ =gUnknown_02024A68
- ldrb r6, [r6]
- cmp r5, r6
- blt _08010BFE
-_08010C52:
- ldr r1, _08010CF8 @ =gUnknown_02024BE6
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _08010CF4 @ =gBattleMoves
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x7F
- bne _08010D18
-_08010C66:
- ldrb r1, [r7]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r8
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08010D10 @ =0x15100007
- ands r0, r1
- str r0, [r2]
- ldrb r1, [r7]
- lsls r1, 2
- add r1, r12
- ldr r0, [r1]
- ldr r2, _08010D14 @ =0x0003043f
- ands r0, r2
- str r0, [r1]
- movs r5, 0
- ldr r3, _08010D04 @ =gUnknown_02024A68
- ldrb r3, [r3]
- cmp r5, r3
- bge _08010D30
- movs r6, 0
-_08010C96:
- ldrb r0, [r7]
- bl battle_side_get_owner
- adds r4, r0, 0
- lsls r0, r5, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08010CD6
- ldr r1, _08010D00 @ =gUnknown_02024C98
- lsls r0, r5, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08010CD6
- ldr r0, _08010CEC @ =gUnknown_02024CA8
- adds r0, r6, r0
- ldrb r0, [r0, 0x15]
- ldrb r3, [r7]
- cmp r0, r3
- bne _08010CD6
- movs r0, 0x19
- negs r0, r0
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- str r1, [r2]
-_08010CD6:
- adds r6, 0x1C
- adds r5, 0x1
- ldr r0, _08010D04 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _08010C96
- ldr r6, _08010CEC @ =gUnknown_02024CA8
- mov r10, r6
- ldr r7, _08010CF0 @ =gUnknown_02024A60
- b _08010D30
- .align 2, 0
-_08010CEC: .4byte gUnknown_02024CA8
-_08010CF0: .4byte gUnknown_02024A60
-_08010CF4: .4byte gBattleMoves
-_08010CF8: .4byte gUnknown_02024BE6
-_08010CFC: .4byte gBattleMons
-_08010D00: .4byte gUnknown_02024C98
-_08010D04: .4byte gUnknown_02024A68
-_08010D08: .4byte gUnknown_02024AD0
-_08010D0C: .4byte 0xfbffffff
-_08010D10: .4byte 0x15100007
-_08010D14: .4byte 0x0003043f
-_08010D18:
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r8
- adds r1, 0x50
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- add r0, r12
- str r1, [r0]
-_08010D30:
- movs r5, 0
- ldr r6, _08010EFC @ =0x02000000
- ldr r0, _08010F00 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _08010D92
- ldr r1, _08010F04 @ =gUnknown_02024AD0
- mov r9, r1
- ldr r2, _08010F08 @ =gBitTable
- mov r8, r2
- ldr r4, _08010F0C @ =gUnknown_02024A60
- mov r12, r6
-_08010D48:
- movs r0, 0x58
- muls r0, r5
- mov r1, r9
- adds r3, r0, r1
- ldrb r0, [r4]
- lsls r0, 2
- add r0, r8
- ldr r0, [r0]
- lsls r2, r0, 16
- ldr r1, [r3]
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08010D68
- bics r1, r2
- str r1, [r3]
-_08010D68:
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08010D88
- ldr r2, _08010F10 @ =0x00016020
- adds r0, r5, r2
- add r0, r12
- ldrb r0, [r0]
- ldrb r2, [r4]
- cmp r0, r2
- bne _08010D88
- ldr r0, _08010F14 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
-_08010D88:
- adds r5, 0x1
- ldr r3, _08010F00 @ =gUnknown_02024A68
- ldrb r3, [r3]
- cmp r5, r3
- blt _08010D48
-_08010D92:
- ldrb r0, [r7]
- ldr r1, _08010F18 @ =gUnknown_02024E60
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- ldr r2, _08010F1C @ =gUnknown_02024E64
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r3, r10
- adds r1, r0, r3
- movs r5, 0
- movs r2, 0
-_08010DB4:
- adds r0, r1, r5
- strb r2, [r0]
- adds r5, 0x1
- cmp r5, 0x1B
- bls _08010DB4
- ldr r1, _08010F20 @ =gUnknown_02024BE6
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _08010F24 @ =gBattleMoves
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x7F
- bne _08010E2C
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- mov r1, sp
- ldrb r1, [r1, 0xA]
- strb r1, [r0, 0xA]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- mov r1, sp
- ldrb r1, [r1, 0x15]
- strb r1, [r0, 0x15]
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r10
- mov r0, sp
- ldrb r2, [r0, 0xF]
- lsls r2, 28
- movs r4, 0xF
- lsrs r2, 28
- ldrb r3, [r1, 0xF]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xF]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- mov r1, sp
- ldrb r1, [r1, 0xF]
- lsrs r1, 4
- lsls r1, 4
- ldrb r2, [r0, 0xF]
- ands r4, r2
- orrs r4, r1
- strb r4, [r0, 0xF]
-_08010E2C:
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- movs r3, 0
- movs r1, 0x2
- strb r1, [r0, 0x16]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F28 @ =gUnknown_02024C34
- adds r0, r1
- movs r2, 0
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F2C @ =gUnknown_02024C3C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F30 @ =gUnknown_02024C44
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F34 @ =gUnknown_02024C4C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F38 @ =gUnknown_02024C2C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- ldr r1, _08010F3C @ =gUnknown_02024C5C
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F40 @ =0x000160ac
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x53
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- subs r1, 0x1B
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldr r2, _08010F44 @ =0x00017100
- adds r1, r6, r2
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- str r3, [r0]
- ldr r6, _08010F20 @ =gUnknown_02024BE6
- strh r3, [r6]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010EFC: .4byte 0x02000000
-_08010F00: .4byte gUnknown_02024A68
-_08010F04: .4byte gUnknown_02024AD0
-_08010F08: .4byte gBitTable
-_08010F0C: .4byte gUnknown_02024A60
-_08010F10: .4byte 0x00016020
-_08010F14: .4byte 0xffff1fff
-_08010F18: .4byte gUnknown_02024E60
-_08010F1C: .4byte gUnknown_02024E64
-_08010F20: .4byte gUnknown_02024BE6
-_08010F24: .4byte gBattleMoves
-_08010F28: .4byte gUnknown_02024C34
-_08010F2C: .4byte gUnknown_02024C3C
-_08010F30: .4byte gUnknown_02024C44
-_08010F34: .4byte gUnknown_02024C4C
-_08010F38: .4byte gUnknown_02024C2C
-_08010F3C: .4byte gUnknown_02024C5C
-_08010F40: .4byte 0x000160ac
-_08010F44: .4byte 0x00017100
- thumb_func_end sub_8010B88
-
- thumb_func_start sub_8010F48
-sub_8010F48: @ 8010F48
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r4, 0
- ldr r7, _08011268 @ =gUnknown_02024A60
- ldr r0, _0801126C @ =gUnknown_02024C98
- mov r9, r0
- ldr r1, _08011270 @ =gUnknown_02024A68
- mov r8, r1
- ldr r2, _08011274 @ =0x02000000
- mov r12, r2
- ldr r6, _08011278 @ =gUnknown_02024D28
- adds r5, r7, 0
- movs r3, 0x58
- ldr r2, _0801127C @ =gBattleMons
- adds r2, 0x18
- movs r1, 0x6
-_08010F70:
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4, r0
- adds r0, r2
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x7
- ble _08010F70
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- ldr r2, _0801127C @ =gBattleMons
- adds r2, 0x50
- adds r0, r2
- movs r1, 0
- str r1, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- add r0, r9
- str r1, [r0]
- movs r4, 0
- mov r0, r8
- ldrb r0, [r0]
- cmp r4, r0
- bge _08011012
- adds r3, r2, 0
- movs r5, 0
- ldr r1, _08011280 @ =gBitTable
- mov r10, r1
- ldr r2, _08011274 @ =0x02000000
- mov r9, r2
-_08010FAE:
- ldr r1, [r3]
- movs r0, 0x80
- lsls r0, 19
- ands r0, r1
- cmp r0, 0
- beq _08010FCC
- ldr r2, _08011284 @ =gUnknown_02024CA8
- adds r0, r5, r2
- ldrb r0, [r0, 0x14]
- ldrb r2, [r7]
- cmp r0, r2
- bne _08010FCC
- ldr r0, _08011288 @ =0xfbffffff
- ands r1, r0
- str r1, [r3]
-_08010FCC:
- ldrb r0, [r7]
- lsls r0, 2
- add r0, r10
- ldr r0, [r0]
- lsls r2, r0, 16
- ldr r1, [r3]
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08010FE4
- bics r1, r2
- str r1, [r3]
-_08010FE4:
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08011004
- ldr r2, _0801128C @ =0x00016020
- adds r0, r4, r2
- add r0, r9
- ldrb r0, [r0]
- ldrb r2, [r7]
- cmp r0, r2
- bne _08011004
- ldr r0, _08011290 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
-_08011004:
- adds r3, 0x58
- adds r5, 0x1C
- adds r4, 0x1
- mov r0, r8
- ldrb r0, [r0]
- cmp r4, r0
- blt _08010FAE
-_08011012:
- ldrb r0, [r7]
- ldr r1, _08011294 @ =gUnknown_02024E60
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- ldr r2, _08011298 @ =gUnknown_02024E64
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r2, _08011284 @ =gUnknown_02024CA8
- adds r1, r0, r2
- movs r4, 0
- movs r2, 0
-_08011034:
- adds r0, r1, r4
- strb r2, [r0]
- adds r4, 0x1
- cmp r4, 0x1B
- bls _08011034
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- mov r9, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- mov r8, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- mov r10, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r5, 0x21
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r4, 0x41
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1, 0x1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1, 0x1]
- mov r0, r8
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ands r5, r1
- strb r5, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ands r3, r1
- strb r3, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x2]
- mov r2, r9
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x2]
- mov r2, r8
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x2]
- movs r2, 0x5
- negs r2, r2
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x2]
- mov r2, r10
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _08011284 @ =gUnknown_02024CA8
- adds r0, r1
- movs r3, 0
- movs r1, 0x2
- strb r1, [r0, 0x16]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0801129C @ =gUnknown_02024C34
- adds r0, r2
- movs r2, 0
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112A0 @ =gUnknown_02024C3C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112A4 @ =gUnknown_02024C44
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112A8 @ =gUnknown_02024C4C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112AC @ =gUnknown_02024C2C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- ldr r1, _080112B0 @ =gUnknown_02024C5C
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112B4 @ =0x000160e8
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- subs r1, 0x3D
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x53
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldr r1, _080112B8 @ =0x00017100
- add r1, r12
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- str r3, [r0]
- ldrb r0, [r7]
- movs r3, 0x58
- adds r1, r0, 0
- muls r1, r3
- ldr r2, _0801127C @ =gBattleMons
- adds r1, r2
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- ldr r2, _080112BC @ =gBaseStats
- adds r0, r2
- ldrb r0, [r0, 0x6]
- adds r1, 0x21
- strb r0, [r1]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r3
- ldr r0, _0801127C @ =gBattleMons
- adds r1, r0
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- ldr r2, _080112BC @ =gBaseStats
- adds r0, r2
- ldrb r0, [r0, 0x7]
- adds r1, 0x22
- strb r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011268: .4byte gUnknown_02024A60
-_0801126C: .4byte gUnknown_02024C98
-_08011270: .4byte gUnknown_02024A68
-_08011274: .4byte 0x02000000
-_08011278: .4byte gUnknown_02024D28
-_0801127C: .4byte gBattleMons
-_08011280: .4byte gBitTable
-_08011284: .4byte gUnknown_02024CA8
-_08011288: .4byte 0xfbffffff
-_0801128C: .4byte 0x00016020
-_08011290: .4byte 0xffff1fff
-_08011294: .4byte gUnknown_02024E60
-_08011298: .4byte gUnknown_02024E64
-_0801129C: .4byte gUnknown_02024C34
-_080112A0: .4byte gUnknown_02024C3C
-_080112A4: .4byte gUnknown_02024C44
-_080112A8: .4byte gUnknown_02024C4C
-_080112AC: .4byte gUnknown_02024C2C
-_080112B0: .4byte gUnknown_02024C5C
-_080112B4: .4byte 0x000160e8
-_080112B8: .4byte 0x00017100
-_080112BC: .4byte gBaseStats
- thumb_func_end sub_8010F48
-
- thumb_func_start bc_8012FAC
-bc_8012FAC: @ 80112C0
- push {r4,r5,lr}
- ldr r5, _080112D0 @ =gUnknown_02024D1E
- ldrb r0, [r5]
- cmp r0, 0
- beq _080112D4
- cmp r0, 0x1
- beq _080112F8
- b _0801132E
- .align 2, 0
-_080112D0: .4byte gUnknown_02024D1E
-_080112D4:
- ldr r4, _080112F4 @ =gUnknown_02024A60
- ldrb r0, [r5, 0x1]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0801132E
- .align 2, 0
-_080112F4: .4byte gUnknown_02024A60
-_080112F8:
- ldr r0, _0801131C @ =gUnknown_02024A64
- ldr r2, [r0]
- cmp r2, 0
- bne _0801132E
- ldrb r0, [r5, 0x1]
- adds r0, 0x1
- strb r0, [r5, 0x1]
- ldr r1, _08011320 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _0801132C
- ldr r1, _08011324 @ =gUnknown_030042D4
- ldr r0, _08011328 @ =bc_load_battlefield
- str r0, [r1]
- b _0801132E
- .align 2, 0
-_0801131C: .4byte gUnknown_02024A64
-_08011320: .4byte gUnknown_02024A68
-_08011324: .4byte gUnknown_030042D4
-_08011328: .4byte bc_load_battlefield
-_0801132C:
- strb r2, [r5]
-_0801132E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end bc_8012FAC
-
- thumb_func_start bc_load_battlefield
-bc_load_battlefield: @ 8011334
- push {r4,r5,lr}
- ldr r0, _0801136C @ =gUnknown_02024A64
- ldr r5, [r0]
- cmp r5, 0
- bne _08011364
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _08011370 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r0, _08011374 @ =gUnknown_0300428C
- ldrb r1, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x2E_a
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08011378 @ =gUnknown_030042D4
- ldr r0, _0801137C @ =sub_8011384
- str r0, [r1]
- ldr r0, _08011380 @ =gUnknown_02024D1E
- strb r5, [r0]
- strb r5, [r0, 0x1]
-_08011364:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801136C: .4byte gUnknown_02024A64
-_08011370: .4byte gUnknown_02024A60
-_08011374: .4byte gUnknown_0300428C
-_08011378: .4byte gUnknown_030042D4
-_0801137C: .4byte sub_8011384
-_08011380: .4byte gUnknown_02024D1E
- thumb_func_end bc_load_battlefield
-
- thumb_func_start sub_8011384
-sub_8011384: @ 8011384
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080113E0 @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- beq _08011396
- b _080115DA
-_08011396:
- ldr r2, _080113E4 @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _080113E8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcc _080113A4
- b _080115D4
-_080113A4:
- movs r7, 0x58
- ldr r0, _080113EC @ =gBattleMons
- mov r9, r0
- mov r8, r2
-_080113AC:
- ldr r0, _080113F0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080113F4
- ldr r4, _080113E4 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080113F4
- ldrb r0, [r4]
- muls r0, r7
- mov r1, r9
- adds r3, r0, r1
- movs r2, 0
- movs r1, 0
-_080113D2:
- adds r0, r3, r2
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _080113D2
- b _080114BE
- .align 2, 0
-_080113E0: .4byte gUnknown_02024A64
-_080113E4: .4byte gUnknown_02024A60
-_080113E8: .4byte gUnknown_02024A68
-_080113EC: .4byte gBattleMons
-_080113F0: .4byte gUnknown_020239F8
-_080113F4:
- mov r2, r8
- ldrb r0, [r2]
- muls r0, r7
- mov r1, r9
- adds r3, r0, r1
- movs r2, 0
- ldr r6, _08011530 @ =gBaseStats
- ldr r5, _08011534 @ =gUnknown_02024260
- ldr r4, _08011538 @ =gUnknown_02024A60
-_08011406:
- adds r0, r3, r2
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _08011406
- mov r2, r8
- ldrb r0, [r2]
- adds r2, r0, 0
- muls r2, r7
- add r2, r9
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x6]
- adds r2, 0x21
- strb r0, [r2]
- mov r1, r8
- ldrb r0, [r1]
- adds r2, r0, 0
- muls r2, r7
- add r2, r9
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x7]
- adds r2, 0x22
- strb r0, [r2]
- mov r2, r8
- ldrb r0, [r2]
- adds r1, r0, 0
- muls r1, r7
- add r1, r9
- ldrh r0, [r1]
- ldrb r1, [r1, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- mov r2, r8
- ldrb r1, [r2]
- muls r1, r7
- add r1, r9
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _0801153C @ =0x020160bc
- adds r0, r1
- mov r2, r8
- ldrb r1, [r2]
- muls r1, r7
- add r1, r9
- ldrh r1, [r1, 0x28]
- strh r1, [r0]
- movs r2, 0
- ldr r4, _08011538 @ =gUnknown_02024A60
- movs r5, 0x58
- ldr r1, _08011540 @ =gUnknown_02024A98
- adds r6, r4, 0
- movs r0, 0x18
- negs r0, r0
- adds r0, r1
- mov r12, r0
- movs r3, 0x6
-_0801149E:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r2, r0
- adds r0, r1
- strb r3, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _0801149E
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r7
- mov r0, r12
- adds r0, 0x50
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_080114BE:
- ldr r4, _08011538 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _080114D8
- movs r0, 0
- bl dp01_build_cmdbuf_x07_7_7_7
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080114D8:
- ldr r5, _08011544 @ =gUnknown_020239F8
- ldrh r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801154C
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080114FE
- movs r0, 0
- bl dp01_build_cmdbuf_x07_7_7_7
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080114FE:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011588
- ldrh r1, [r5]
- ldr r2, _08011548 @ =0x00000902
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08011588
- ldrb r0, [r4]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- b _08011588
- .align 2, 0
-_08011530: .4byte gBaseStats
-_08011534: .4byte gUnknown_02024260
-_08011538: .4byte gUnknown_02024A60
-_0801153C: .4byte 0x020160bc
-_08011540: .4byte gUnknown_02024A98
-_08011544: .4byte gUnknown_020239F8
-_08011548: .4byte 0x00000902
-_0801154C:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011588
- ldrh r1, [r5]
- ldr r2, _080115E8 @ =0x00000902
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08011588
- ldrb r0, [r4]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- movs r0, 0
- bl dp01_build_cmdbuf_x04_4_4_4
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08011588:
- ldr r0, _080115EC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080115BE
- ldr r4, _080115F0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080115B2
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080115BE
-_080115B2:
- movs r0, 0
- bl dp01_build_cmdbuf_x07_7_7_7
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080115BE:
- mov r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _080115F4 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080115D4
- b _080113AC
-_080115D4:
- ldr r1, _080115F8 @ =gUnknown_030042D4
- ldr r0, _080115FC @ =bc_801333C
- str r0, [r1]
-_080115DA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080115E8: .4byte 0x00000902
-_080115EC: .4byte gUnknown_020239F8
-_080115F0: .4byte gUnknown_02024A60
-_080115F4: .4byte gUnknown_02024A68
-_080115F8: .4byte gUnknown_030042D4
-_080115FC: .4byte bc_801333C
- thumb_func_end sub_8011384
-
- thumb_func_start bc_801333C
-bc_801333C: @ 8011600
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- ldr r0, _08011658 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _08011612
- b _0801178C
-_08011612:
- ldr r0, _0801165C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08011620
- b _0801172C
-_08011620:
- movs r7, 0
- add r0, sp, 0x4
- mov r8, r0
- mov r6, r8
- mov r5, sp
-_0801162A:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08011660 @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08011650
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08011668
-_08011650:
- ldr r0, _08011664 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _0801167A
- .align 2, 0
-_08011658: .4byte gUnknown_02024A64
-_0801165C: .4byte gUnknown_020239F8
-_08011660: .4byte gEnemyParty
-_08011664: .4byte 0x0000ffff
-_08011668:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_0801167A:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _0801162A
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r4, _080116D4 @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- mov r1, sp
- movs r2, 0x80
- bl dp01_build_cmdbuf_x30_TODO
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r7, 0
- mov r6, r8
- mov r5, sp
-_080116A6:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _080116D8 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080116CC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _080116E0
-_080116CC:
- ldr r0, _080116DC @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _080116F2
- .align 2, 0
-_080116D4: .4byte gUnknown_02024A60
-_080116D8: .4byte gPlayerParty
-_080116DC: .4byte 0x0000ffff
-_080116E0:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_080116F2:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _080116A6
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _08011720 @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- mov r1, sp
- movs r2, 0x80
- bl dp01_build_cmdbuf_x30_TODO
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08011724 @ =gUnknown_030042D4
- ldr r0, _08011728 @ =bc_battle_begin_message
- b _0801178A
- .align 2, 0
-_08011720: .4byte gUnknown_02024A60
-_08011724: .4byte gUnknown_030042D4
-_08011728: .4byte bc_battle_begin_message
-_0801172C:
- movs r7, 0
- add r6, sp, 0x4
- mov r5, sp
-_08011732:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08011760 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08011758
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08011768
-_08011758:
- ldr r0, _08011764 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _0801177A
- .align 2, 0
-_08011760: .4byte gPlayerParty
-_08011764: .4byte 0x0000ffff
-_08011768:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_0801177A:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _08011732
- ldr r1, _08011798 @ =gUnknown_030042D4
- ldr r0, _0801179C @ =bc_8013568
-_0801178A:
- str r0, [r1]
-_0801178C:
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011798: .4byte gUnknown_030042D4
-_0801179C: .4byte bc_8013568
- thumb_func_end bc_801333C
-
- thumb_func_start bc_battle_begin_message
-bc_battle_begin_message: @ 80117A0
- push {lr}
- ldr r0, _080117C8 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _080117C2
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _080117CC @ =gUnknown_02024A60
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0
- bl b_std_message
- ldr r1, _080117D0 @ =gUnknown_030042D4
- ldr r0, _080117D4 @ =sub_8011800
- str r0, [r1]
-_080117C2:
- pop {r0}
- bx r0
- .align 2, 0
-_080117C8: .4byte gUnknown_02024A64
-_080117CC: .4byte gUnknown_02024A60
-_080117D0: .4byte gUnknown_030042D4
-_080117D4: .4byte sub_8011800
- thumb_func_end bc_battle_begin_message
-
- thumb_func_start bc_8013568
-bc_8013568: @ 80117D8
- push {lr}
- ldr r0, _080117F4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _080117F0
- ldr r1, _080117F8 @ =gUnknown_030042D4
- ldr r0, _080117FC @ =sub_8011970
- str r0, [r1]
- movs r0, 0
- movs r1, 0
- bl b_std_message
-_080117F0:
- pop {r0}
- bx r0
- .align 2, 0
-_080117F4: .4byte gUnknown_02024A64
-_080117F8: .4byte gUnknown_030042D4
-_080117FC: .4byte sub_8011970
- thumb_func_end bc_8013568
-
- thumb_func_start sub_8011800
-sub_8011800: @ 8011800
- push {lr}
- ldr r0, _08011828 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08011822
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl b_std_message
- ldr r1, _0801182C @ =gUnknown_030042D4
- ldr r0, _08011830 @ =sub_8011834
- str r0, [r1]
-_08011822:
- pop {r0}
- bx r0
- .align 2, 0
-_08011828: .4byte gUnknown_02024A64
-_0801182C: .4byte gUnknown_030042D4
-_08011830: .4byte sub_8011834
- thumb_func_end sub_8011800
-
- thumb_func_start sub_8011834
-sub_8011834: @ 8011834
- push {r4,lr}
- ldr r0, _080118AC @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- bne _080118A4
- ldr r2, _080118B0 @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _080118B4 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _0801189E
- adds r4, r2, 0
-_0801184C:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011866
- movs r0, 0
- bl dp01_build_cmdbuf_x2F_2F_2F_2F
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08011866:
- ldr r0, _080118B8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801188C
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0801188C
- movs r0, 0
- bl dp01_build_cmdbuf_x2F_2F_2F_2F
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_0801188C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080118B4 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801184C
-_0801189E:
- ldr r1, _080118BC @ =gUnknown_030042D4
- ldr r0, _080118C0 @ =bc_801362C
- str r0, [r1]
-_080118A4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080118AC: .4byte gUnknown_02024A64
-_080118B0: .4byte gUnknown_02024A60
-_080118B4: .4byte gUnknown_02024A68
-_080118B8: .4byte gUnknown_020239F8
-_080118BC: .4byte gUnknown_030042D4
-_080118C0: .4byte bc_801362C
- thumb_func_end sub_8011834
-
- thumb_func_start bc_801362C
-bc_801362C: @ 80118C4
- push {r4,r5,lr}
- ldr r0, _08011930 @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- bne _0801192A
- ldr r2, _08011934 @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _08011938 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08011924
- adds r4, r2, 0
- ldr r5, _0801193C @ =gBattleMons
-_080118DE:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011912
- ldr r0, _08011940 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r2, _08011944 @ =0x00000902
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08011912
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r5
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
-_08011912:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08011938 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080118DE
-_08011924:
- ldr r1, _08011948 @ =gUnknown_030042D4
- ldr r0, _0801194C @ =sub_8011970
- str r0, [r1]
-_0801192A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011930: .4byte gUnknown_02024A64
-_08011934: .4byte gUnknown_02024A60
-_08011938: .4byte gUnknown_02024A68
-_0801193C: .4byte gBattleMons
-_08011940: .4byte gUnknown_020239F8
-_08011944: .4byte 0x00000902
-_08011948: .4byte gUnknown_030042D4
-_0801194C: .4byte sub_8011970
- thumb_func_end bc_801362C
-
- thumb_func_start unref_sub_8011950
-unref_sub_8011950: @ 8011950
- push {lr}
- ldr r0, _08011964 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08011960
- ldr r1, _08011968 @ =gUnknown_030042D4
- ldr r0, _0801196C @ =sub_8011970
- str r0, [r1]
-_08011960:
- pop {r0}
- bx r0
- .align 2, 0
-_08011964: .4byte gUnknown_02024A64
-_08011968: .4byte gUnknown_030042D4
-_0801196C: .4byte sub_8011970
- thumb_func_end unref_sub_8011950
-
- thumb_func_start sub_8011970
-sub_8011970: @ 8011970
- push {lr}
- ldr r0, _080119A4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801199E
- ldr r0, _080119A8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08011998
- movs r0, 0
- bl battle_get_side_with_given_state
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl b_std_message
-_08011998:
- ldr r1, _080119AC @ =gUnknown_030042D4
- ldr r0, _080119B0 @ =sub_80119B4
- str r0, [r1]
-_0801199E:
- pop {r0}
- bx r0
- .align 2, 0
-_080119A4: .4byte gUnknown_02024A64
-_080119A8: .4byte gUnknown_020239F8
-_080119AC: .4byte gUnknown_030042D4
-_080119B0: .4byte sub_80119B4
- thumb_func_end sub_8011970
-
- thumb_func_start sub_80119B4
-sub_80119B4: @ 80119B4
- push {r4,lr}
- ldr r0, _08011A40 @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- bne _08011A38
- ldr r2, _08011A44 @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _08011A48 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08011A1C
- adds r4, r2, 0
-_080119CC:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _080119E4
- movs r0, 0
- bl dp01_build_cmdbuf_x2F_2F_2F_2F
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080119E4:
- ldr r0, _08011A4C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08011A0A
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08011A0A
- movs r0, 0
- bl dp01_build_cmdbuf_x2F_2F_2F_2F
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08011A0A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08011A48 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080119CC
-_08011A1C:
- ldr r1, _08011A50 @ =0x02000000
- ldr r2, _08011A54 @ =0x00016058
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _08011A58 @ =0x000160f9
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08011A5C @ =0x000160e6
- adds r1, r0
- strb r2, [r1]
- ldr r1, _08011A60 @ =gUnknown_030042D4
- ldr r0, _08011A64 @ =sub_8011B00
- str r0, [r1]
-_08011A38:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011A40: .4byte gUnknown_02024A64
-_08011A44: .4byte gUnknown_02024A60
-_08011A48: .4byte gUnknown_02024A68
-_08011A4C: .4byte gUnknown_020239F8
-_08011A50: .4byte 0x02000000
-_08011A54: .4byte 0x00016058
-_08011A58: .4byte 0x000160f9
-_08011A5C: .4byte 0x000160e6
-_08011A60: .4byte gUnknown_030042D4
-_08011A64: .4byte sub_8011B00
- thumb_func_end sub_80119B4
-
- thumb_func_start unref_sub_8011A68
-unref_sub_8011A68: @ 8011A68
- push {r4,r5,lr}
- ldr r0, _08011AD8 @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- bne _08011AD2
- ldr r2, _08011ADC @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _08011AE0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08011AB6
- adds r4, r2, 0
- ldr r5, _08011AE4 @ =gUnknown_02024A6A
-_08011A82:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08011AA4
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- bl sub_800C704
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08011AA4:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08011AE0 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08011A82
-_08011AB6:
- ldr r1, _08011AE8 @ =0x02000000
- ldr r2, _08011AEC @ =0x00016058
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _08011AF0 @ =0x000160f9
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08011AF4 @ =0x000160e6
- adds r1, r0
- strb r2, [r1]
- ldr r1, _08011AF8 @ =gUnknown_030042D4
- ldr r0, _08011AFC @ =sub_8011B00
- str r0, [r1]
-_08011AD2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011AD8: .4byte gUnknown_02024A64
-_08011ADC: .4byte gUnknown_02024A60
-_08011AE0: .4byte gUnknown_02024A68
-_08011AE4: .4byte gUnknown_02024A6A
-_08011AE8: .4byte 0x02000000
-_08011AEC: .4byte 0x00016058
-_08011AF0: .4byte 0x000160f9
-_08011AF4: .4byte 0x000160e6
-_08011AF8: .4byte gUnknown_030042D4
-_08011AFC: .4byte sub_8011B00
- thumb_func_end unref_sub_8011A68
-
- thumb_func_start sub_8011B00
-sub_8011B00: @ 8011B00
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0
- mov r9, r0
- ldr r0, _08011B44 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _08011B18
- b _08011D6E
-_08011B18:
- ldr r0, _08011B48 @ =0x02000000
- ldr r1, _08011B4C @ =0x00016058
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08011BA2
- movs r5, 0
- ldr r1, _08011B50 @ =gUnknown_02024A68
- adds r3, r1, 0
- ldrb r2, [r1]
- cmp r5, r2
- bge _08011B3E
- ldr r2, _08011B54 @ =gUnknown_02024A7A
-_08011B32:
- adds r0, r5, r2
- strb r5, [r0]
- adds r5, 0x1
- ldrb r0, [r1]
- cmp r5, r0
- blt _08011B32
-_08011B3E:
- movs r5, 0
- b _08011B98
- .align 2, 0
-_08011B44: .4byte gUnknown_02024A64
-_08011B48: .4byte 0x02000000
-_08011B4C: .4byte 0x00016058
-_08011B50: .4byte gUnknown_02024A68
-_08011B54: .4byte gUnknown_02024A7A
-_08011B58:
- adds r4, r5, 0x1
- mov r8, r4
- ldrb r1, [r1]
- cmp r8, r1
- bge _08011B96
- ldr r6, _08011BC8 @ =gUnknown_02024A7A
- ldr r3, _08011BCC @ =gUnknown_02024A68
- lsls r7, r5, 24
-_08011B68:
- adds r0, r5, r6
- ldrb r0, [r0]
- adds r1, r4, r6
- ldrb r1, [r1]
- movs r2, 0x1
- str r3, [sp, 0x4]
- bl b_first_side
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _08011B8C
- lsls r1, r4, 24
- lsrs r1, 24
- lsrs r0, r7, 24
- bl sub_8012FBC
- ldr r3, [sp, 0x4]
-_08011B8C:
- adds r4, 0x1
- ldr r0, _08011BCC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08011B68
-_08011B96:
- mov r5, r8
-_08011B98:
- adds r1, r3, 0
- ldrb r0, [r3]
- subs r0, 0x1
- cmp r5, r0
- blt _08011B58
-_08011BA2:
- ldr r0, _08011BD0 @ =0x02000000
- ldr r1, _08011BD4 @ =0x000160e6
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _08011BD8
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08011BD8
- movs r0, 0x1
- strb r0, [r4]
- b _08011D6E
- .align 2, 0
-_08011BC8: .4byte gUnknown_02024A7A
-_08011BCC: .4byte gUnknown_02024A68
-_08011BD0: .4byte 0x02000000
-_08011BD4: .4byte 0x000160e6
-_08011BD8:
- ldr r0, _08011D7C @ =0x02000000
- ldr r3, _08011D80 @ =0x00016058
- adds r2, r0, r3
- ldr r1, _08011D84 @ =gUnknown_02024A68
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08011C28
- ldr r5, _08011D88 @ =gUnknown_02024A7A
- adds r4, r2, 0
-_08011BEC:
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08011C0E
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08011C0E:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- mov r1, r9
- cmp r1, 0
- beq _08011C1C
- b _08011D6E
-_08011C1C:
- ldr r1, _08011D84 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08011BEC
-_08011C28:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08011C42
- b _08011D6E
-_08011C42:
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08011C58
- b _08011D6E
-_08011C58:
- ldr r0, _08011D7C @ =0x02000000
- ldr r3, _08011D8C @ =0x000160f9
- adds r2, r0, r3
- ldr r0, _08011D84 @ =gUnknown_02024A68
- ldrb r1, [r2]
- adds r3, r0, 0
- ldrb r0, [r3]
- cmp r1, r0
- bcs _08011CA8
- ldr r5, _08011D88 @ =gUnknown_02024A7A
- adds r4, r2, 0
-_08011C6E:
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- str r3, [sp, 0x4]
- bl sub_801A02C
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _08011C90
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08011C90:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- mov r1, r9
- cmp r1, 0
- bne _08011D6E
- ldr r1, _08011D84 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08011C6E
-_08011CA8:
- ldrb r0, [r3]
- cmp r0, 0
- beq _08011CB6
- adds r5, r0, 0
-_08011CB0:
- subs r5, 0x1
- cmp r5, 0
- bne _08011CB0
-_08011CB6:
- movs r5, 0
- ldr r0, _08011D7C @ =0x02000000
- mov r8, r5
- ldr r3, _08011D90 @ =gUnknown_02024C60
- ldr r1, _08011D94 @ =0x00016068
- adds r2, r0, r1
- movs r7, 0x6
- ldr r6, _08011D98 @ =gUnknown_02024C18
- movs r4, 0xFF
-_08011CC8:
- strb r7, [r2]
- adds r1, r5, r6
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- mov r0, r8
- strh r0, [r3]
- adds r3, 0x2
- adds r2, 0x1
- adds r5, 0x1
- cmp r5, 0x3
- ble _08011CC8
- movs r0, 0
- bl sub_801365C
- bl sub_801377C
- ldr r0, _08011D7C @ =0x02000000
- ldr r1, _08011D9C @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _08011DA0 @ =0x000160a6
- adds r0, r2
- strb r1, [r0]
- ldr r1, _08011DA4 @ =gUnknown_030042D4
- ldr r0, _08011DA8 @ =sub_8012324
- str r0, [r1]
- bl sub_80156DC
- ldr r1, _08011DAC @ =gUnknown_02024D1E
- movs r2, 0
- adds r0, r1, 0x7
-_08011D06:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08011D06
- movs r5, 0
- ldr r3, _08011D84 @ =gUnknown_02024A68
- ldr r2, _08011D7C @ =0x02000000
- ldr r6, _08011DB0 @ =gUnknown_02024C68
- ldrb r0, [r3]
- cmp r5, r0
- bge _08011D36
- ldr r0, _08011DB4 @ =gBattleMons
- movs r4, 0x9
- negs r4, r4
- adds r1, r0, 0
- adds r1, 0x50
-_08011D26:
- ldr r0, [r1]
- ands r0, r4
- str r0, [r1]
- adds r1, 0x58
- adds r5, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- blt _08011D26
-_08011D36:
- movs r1, 0xB0
- lsls r1, 9
- adds r0, r2, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _08011DB8 @ =0x00016001
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _08011DBC @ =0x00016110
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x1
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _08011DC0 @ =0x0001600c
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x4D
- adds r0, r2, r3
- strb r1, [r0]
- subs r3, 0x4B
- adds r0, r2, r3
- strb r1, [r0]
- strb r1, [r6]
- bl Random
- ldr r1, _08011DC4 @ =gUnknown_02024D1C
- strh r0, [r1]
-_08011D6E:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011D7C: .4byte 0x02000000
-_08011D80: .4byte 0x00016058
-_08011D84: .4byte gUnknown_02024A68
-_08011D88: .4byte gUnknown_02024A7A
-_08011D8C: .4byte 0x000160f9
-_08011D90: .4byte gUnknown_02024C60
-_08011D94: .4byte 0x00016068
-_08011D98: .4byte gUnknown_02024C18
-_08011D9C: .4byte gUnknown_02024C0C
-_08011DA0: .4byte 0x000160a6
-_08011DA4: .4byte gUnknown_030042D4
-_08011DA8: .4byte sub_8012324
-_08011DAC: .4byte gUnknown_02024D1E
-_08011DB0: .4byte gUnknown_02024C68
-_08011DB4: .4byte gBattleMons
-_08011DB8: .4byte 0x00016001
-_08011DBC: .4byte 0x00016110
-_08011DC0: .4byte 0x0001600c
-_08011DC4: .4byte gUnknown_02024D1C
- thumb_func_end sub_8011B00
-
- thumb_func_start bc_8013B1C
-bc_8013B1C: @ 8011DC8
- push {r4-r6,lr}
- ldr r0, _08011E60 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08011E5A
- ldr r1, _08011E64 @ =gUnknown_030042D4
- ldr r0, _08011E68 @ =sub_8011E8C
- str r0, [r1]
- ldr r3, _08011E6C @ =gUnknown_02024A68
- ldr r1, _08011E70 @ =gUnknown_02024D1E
- movs r2, 0
- adds r0, r1, 0x7
-_08011DE0:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08011DE0
- movs r4, 0
- ldrb r3, [r3]
- cmp r4, r3
- bge _08011E32
- ldr r5, _08011E74 @ =gBattleMons
- adds r6, r5, 0
- adds r6, 0x4C
-_08011DF6:
- movs r0, 0x58
- adds r2, r4, 0
- muls r2, r0
- adds r1, r5, 0
- adds r1, 0x50
- adds r1, r2, r1
- ldr r3, [r1]
- subs r0, 0x61
- ands r3, r0
- str r3, [r1]
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08011E28
- movs r0, 0x80
- lsls r0, 5
- ands r3, r0
- cmp r3, 0
- beq _08011E28
- lsls r0, r4, 24
- lsrs r0, 24
- bl b_cancel_multi_turn_move_maybe
-_08011E28:
- adds r4, 0x1
- ldr r0, _08011E6C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08011DF6
-_08011E32:
- ldr r0, _08011E78 @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r3, _08011E7C @ =0x00016001
- adds r1, r0, r3
- strb r2, [r1]
- ldr r3, _08011E80 @ =0x00016110
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _08011E84 @ =0x0001600e
- adds r0, r1
- strb r2, [r0]
- ldr r0, _08011E88 @ =gUnknown_02024C68
- strb r2, [r0]
-_08011E5A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08011E60: .4byte gUnknown_02024A64
-_08011E64: .4byte gUnknown_030042D4
-_08011E68: .4byte sub_8011E8C
-_08011E6C: .4byte gUnknown_02024A68
-_08011E70: .4byte gUnknown_02024D1E
-_08011E74: .4byte gBattleMons
-_08011E78: .4byte 0x02000000
-_08011E7C: .4byte 0x00016001
-_08011E80: .4byte 0x00016110
-_08011E84: .4byte 0x0001600e
-_08011E88: .4byte gUnknown_02024C68
- thumb_func_end bc_8013B1C
-
- thumb_func_start sub_8011E8C
-sub_8011E8C: @ 8011E8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0x1
- bl sub_801365C
- ldr r0, _08011F3C @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0
- bne _08011EBC
- bl sub_8015DFC
- lsls r0, 24
- cmp r0, 0
- beq _08011EB0
- b _08011FEE
-_08011EB0:
- bl sub_8016558
- lsls r0, 24
- cmp r0, 0
- beq _08011EBC
- b _08011FEE
-_08011EBC:
- bl sub_80173A4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08011ECA
- b _08011FEE
-_08011ECA:
- ldr r5, _08011F40 @ =0x02000000
- ldr r2, _08011F44 @ =0x00016059
- adds r0, r5, r2
- strb r1, [r0]
- bl sub_80170DC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08011EE0
- b _08011FEE
-_08011EE0:
- movs r0, 0
- bl sub_801365C
- ldr r2, _08011F48 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08011F4C @ =0xfffffdff
- ands r0, r1
- ldr r1, _08011F50 @ =0xfff7ffff
- ands r0, r1
- ldr r1, _08011F54 @ =0xffbfffff
- ands r0, r1
- ldr r1, _08011F58 @ =0xffefffff
- ands r0, r1
- str r0, [r2]
- ldr r3, _08011F5C @ =0x00016002
- adds r0, r5, r3
- strb r4, [r0]
- ldr r1, _08011F60 @ =0x000160a1
- adds r0, r5, r1
- strb r4, [r0]
- ldr r2, _08011F64 @ =0x0001600c
- adds r0, r5, r2
- strb r4, [r0]
- ldr r0, _08011F68 @ =gUnknown_02024BEC
- str r4, [r0]
- ldr r0, _08011F6C @ =gUnknown_02024C68
- strb r4, [r0]
- ldr r1, _08011F70 @ =gUnknown_02024D1E
- movs r2, 0
- adds r0, r1, 0x4
-_08011F1C:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08011F1C
- ldr r0, _08011F3C @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0
- beq _08011F80
- ldr r1, _08011F74 @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
- ldr r1, _08011F78 @ =gUnknown_030042D4
- ldr r0, _08011F7C @ =sub_80138F0
- str r0, [r1]
- b _08011FEE
- .align 2, 0
-_08011F3C: .4byte gUnknown_02024D26
-_08011F40: .4byte 0x02000000
-_08011F44: .4byte 0x00016059
-_08011F48: .4byte gUnknown_02024C6C
-_08011F4C: .4byte 0xfffffdff
-_08011F50: .4byte 0xfff7ffff
-_08011F54: .4byte 0xffbfffff
-_08011F58: .4byte 0xffefffff
-_08011F5C: .4byte 0x00016002
-_08011F60: .4byte 0x000160a1
-_08011F64: .4byte 0x0001600c
-_08011F68: .4byte gUnknown_02024BEC
-_08011F6C: .4byte gUnknown_02024C68
-_08011F70: .4byte gUnknown_02024D1E
-_08011F74: .4byte gUnknown_02024A7F
-_08011F78: .4byte gUnknown_030042D4
-_08011F7C: .4byte sub_80138F0
-_08011F80:
- ldr r1, _08011FFC @ =gUnknown_030042E0
- ldrb r0, [r1, 0x13]
- cmp r0, 0xFE
- bhi _08011F8C
- adds r0, 0x1
- strb r0, [r1, 0x13]
-_08011F8C:
- movs r2, 0
- ldr r4, _08012000 @ =gUnknown_02024A68
- ldr r3, _08012004 @ =0x02000000
- mov r9, r3
- ldr r0, _08012008 @ =gUnknown_030042D4
- mov r10, r0
- ldr r1, _0801200C @ =gUnknown_02024C0C
- mov r12, r1
- ldr r3, _08012010 @ =sub_8012324
- mov r8, r3
- ldrb r0, [r4]
- cmp r2, r0
- bge _08011FC2
- ldr r7, _08012014 @ =gUnknown_02024C18
- movs r6, 0xFF
- movs r5, 0
- ldr r3, _08012018 @ =gUnknown_02024C60
-_08011FAE:
- adds r1, r2, r7
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- strh r5, [r3]
- adds r3, 0x2
- adds r2, 0x1
- ldrb r1, [r4]
- cmp r2, r1
- blt _08011FAE
-_08011FC2:
- ldr r0, _08012004 @ =0x02000000
- movs r1, 0x6
- movs r2, 0x3
- ldr r3, _0801201C @ =0x0001606b
- adds r0, r3
-_08011FCC:
- strb r1, [r0]
- subs r0, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _08011FCC
- mov r0, r12
- ldrb r1, [r0]
- ldr r0, _08012020 @ =0x000160a6
- add r0, r9
- strb r1, [r0]
- mov r1, r8
- mov r2, r10
- str r1, [r2]
- bl Random
- ldr r1, _08012024 @ =gUnknown_02024D1C
- strh r0, [r1]
-_08011FEE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011FFC: .4byte gUnknown_030042E0
-_08012000: .4byte gUnknown_02024A68
-_08012004: .4byte 0x02000000
-_08012008: .4byte gUnknown_030042D4
-_0801200C: .4byte gUnknown_02024C0C
-_08012010: .4byte sub_8012324
-_08012014: .4byte gUnknown_02024C18
-_08012018: .4byte gUnknown_02024C60
-_0801201C: .4byte 0x0001606b
-_08012020: .4byte 0x000160a6
-_08012024: .4byte gUnknown_02024D1C
- thumb_func_end sub_8011E8C
-
- thumb_func_start sub_8012028
-sub_8012028: @ 8012028
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _0801204C @ =gBattleMons
- ldr r0, _08012050 @ =gUnknown_02024A60
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08012058
- ldr r1, _08012054 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x7]
- b _08012062
- .align 2, 0
-_0801204C: .4byte gBattleMons
-_08012050: .4byte gUnknown_02024A60
-_08012054: .4byte gEnigmaBerries
-_08012058:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r2, r0, 24
-_08012062:
- ldr r1, _0801217C @ =gUnknown_02024C0B
- ldr r3, _08012180 @ =gUnknown_02024A60
- ldrb r0, [r3]
- strb r0, [r1]
- cmp r2, 0x25
- bne _08012070
- b _080121F4
-_08012070:
- ldr r0, _08012184 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801207E
- b _080121F4
-_0801207E:
- ldr r1, _08012188 @ =gBattleMons
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x32
- bne _08012092
- b _080121F4
-_08012092:
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r0, _0801218C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _08012126
- movs r7, 0
-_080120A8:
- lsrs r4, r7, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _080120CC
- ldr r1, _08012188 @ =gBattleMons
- movs r0, 0x58
- muls r0, r5
- adds r0, r1
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0x17
- bne _080120CC
- b _080121FC
-_080120CC:
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08012116
- ldr r3, _08012188 @ =gBattleMons
- ldr r0, _08012180 @ =gUnknown_02024A60
- ldrb r0, [r0]
- movs r2, 0x58
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- beq _08012116
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08012116
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08012116
- adds r0, r5, 0
- muls r0, r2
- adds r0, r3
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0x47
- bne _08012116
- b _08012220
-_08012116:
- movs r0, 0x80
- lsls r0, 17
- adds r7, r0
- adds r5, 0x1
- ldr r0, _0801218C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _080120A8
-_08012126:
- ldr r4, _08012180 @ =gUnknown_02024A60
- ldrb r1, [r4]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- movs r2, 0x2A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080121A0
- ldr r6, _08012188 @ =gBattleMons
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _0801215E
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _080121A0
-_0801215E:
- ldr r0, _08012190 @ =0x02000000
- subs r1, r5, 0x1
- ldr r2, _08012194 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- ldr r2, _08012198 @ =byte_2024C06
- adds r0, r1, 0
- muls r0, r3
- adds r0, r6
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r1, _0801219C @ =gUnknown_02024D1E
- movs r0, 0x2
- b _08012248
- .align 2, 0
-_0801217C: .4byte gUnknown_02024C0B
-_08012180: .4byte gUnknown_02024A60
-_08012184: .4byte gUnknown_020239F8
-_08012188: .4byte gBattleMons
-_0801218C: .4byte gUnknown_02024A68
-_08012190: .4byte 0x02000000
-_08012194: .4byte 0x00016003
-_08012198: .4byte byte_2024C06
-_0801219C: .4byte gUnknown_02024D1E
-_080121A0:
- ldr r1, _080121D4 @ =gBattleMons
- ldr r0, _080121D8 @ =gUnknown_02024A60
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080121DC @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _080121CA
- ldr r1, _080121E0 @ =gUnknown_02024C98
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _080121E8
-_080121CA:
- ldr r1, _080121E4 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0x1
- b _0801224A
- .align 2, 0
-_080121D4: .4byte gBattleMons
-_080121D8: .4byte gUnknown_02024A60
-_080121DC: .4byte 0x0400e000
-_080121E0: .4byte gUnknown_02024C98
-_080121E4: .4byte gUnknown_02024D1E
-_080121E8:
- ldr r0, _080121F8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08012244
-_080121F4:
- movs r0, 0
- b _0801224A
- .align 2, 0
-_080121F8: .4byte gUnknown_020239F8
-_080121FC:
- ldr r0, _08012210 @ =0x02000000
- ldr r1, _08012214 @ =0x00016003
- adds r0, r1
- strb r5, [r0]
- ldr r1, _08012218 @ =byte_2024C06
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r1, _0801221C @ =gUnknown_02024D1E
- movs r0, 0x2
- b _08012248
- .align 2, 0
-_08012210: .4byte 0x02000000
-_08012214: .4byte 0x00016003
-_08012218: .4byte byte_2024C06
-_0801221C: .4byte gUnknown_02024D1E
-_08012220:
- ldr r0, _08012234 @ =0x02000000
- ldr r1, _08012238 @ =0x00016003
- adds r0, r1
- strb r5, [r0]
- ldr r1, _0801223C @ =byte_2024C06
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r1, _08012240 @ =gUnknown_02024D1E
- movs r0, 0x2
- b _08012248
- .align 2, 0
-_08012234: .4byte 0x02000000
-_08012238: .4byte 0x00016003
-_0801223C: .4byte byte_2024C06
-_08012240: .4byte gUnknown_02024D1E
-_08012244:
- ldr r1, _08012254 @ =gUnknown_02024D1E
- movs r0, 0x1
-_08012248:
- strb r0, [r1, 0x5]
-_0801224A:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08012254: .4byte gUnknown_02024D1E
- thumb_func_end sub_8012028
-
- thumb_func_start sub_8012258
-sub_8012258: @ 8012258
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r7, _080122E4 @ =gUnknown_02024A6A
- ldr r4, _080122E8 @ =gUnknown_02038470
- ldr r1, _080122EC @ =0x02000000
- lsls r6, r5, 1
- ldr r2, _080122F0 @ =0x0001606c
- adds r0, r5, r2
- adds r0, r6, r0
- adds r2, r0, r1
-_08012270:
- adds r1, r3, r4
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x2
- ble _08012270
- adds r0, r6, r7
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r7, _080122EC @ =0x02000000
- ldr r1, _080122F4 @ =0x00016068
- adds r0, r5, r1
- adds r0, r7
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8094C98
- ldr r0, _080122F8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080122FC
- movs r3, 0
- ldr r2, _080122F0 @ =0x0001606c
- movs r0, 0x2
- adds r1, r5, 0
- eors r1, r0
- adds r0, r5, r2
- adds r0, r6, r0
- adds r4, r0, r7
- ldr r5, _080122E8 @ =gUnknown_02038470
- lsls r0, r1, 1
- adds r0, r1
- adds r0, r2
- adds r2, r0, r7
-_080122CC:
- adds r0, r3, r5
- ldrb r1, [r0]
- strb r1, [r4]
- ldrb r0, [r0]
- strb r0, [r2]
- adds r4, 0x1
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x2
- ble _080122CC
- b _08012316
- .align 2, 0
-_080122E4: .4byte gUnknown_02024A6A
-_080122E8: .4byte gUnknown_02038470
-_080122EC: .4byte 0x02000000
-_080122F0: .4byte 0x0001606c
-_080122F4: .4byte 0x00016068
-_080122F8: .4byte gUnknown_020239F8
-_080122FC:
- movs r3, 0
- ldr r2, _0801231C @ =0x0001606c
- adds r0, r5, r2
- adds r0, r6, r0
- adds r1, r0, r7
- ldr r2, _08012320 @ =gUnknown_02038470
-_08012308:
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r3, 0x1
- cmp r3, 0x2
- ble _08012308
-_08012316:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801231C: .4byte 0x0001606c
-_08012320: .4byte gUnknown_02038470
- thumb_func_end sub_8012258
-
- thumb_func_start sub_8012324
-sub_8012324: @ 8012324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _08012340 @ =gUnknown_02024D1E
- movs r1, 0
- strb r1, [r0, 0x4]
- ldr r0, _08012344 @ =gUnknown_02024A60
- strb r1, [r0]
- ldr r0, _08012348 @ =gUnknown_02024A68
- bl _08012F74
- .align 2, 0
-_08012340: .4byte gUnknown_02024D1E
-_08012344: .4byte gUnknown_02024A60
-_08012348: .4byte gUnknown_02024A68
-_0801234C:
- ldr r4, _08012374 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08012378 @ =gUnknown_02024D1E
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08012368
- bl _08012F66
-_08012368:
- lsls r0, 2
- ldr r1, _0801237C @ =_08012380
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08012374: .4byte gUnknown_02024A60
-_08012378: .4byte gUnknown_02024D1E
-_0801237C: .4byte _08012380
- .align 2, 0
-_08012380:
- .4byte _0801239C
- .4byte _080124C8
- .4byte _08012A28
- .4byte _08012DA8
- .4byte _08012E50
- .4byte _08012E94
- .4byte _08012F38
-_0801239C:
- ldr r4, _08012434 @ =0x02000000
- ldr r0, _08012438 @ =gUnknown_02024A60
- ldrb r0, [r0]
- ldr r1, _0801243C @ =0x00016068
- adds r0, r1
- adds r0, r4
- movs r1, 0x6
- strb r1, [r0]
- ldr r0, _08012440 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080123F8
- movs r1, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _080123F8
- eors r5, r1
- adds r0, r5, 0
- bl battle_get_side_with_given_state
- ldr r2, _08012444 @ =0x000160a6
- adds r1, r4, r2
- ldrb r1, [r1]
- ldr r2, _08012448 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080123F8
- ldr r4, _0801244C @ =gUnknown_02024D1E
- adds r0, r5, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _080123F8
- bl _08012F66
-_080123F8:
- ldr r0, _08012434 @ =0x02000000
- ldr r3, _08012444 @ =0x000160a6
- adds r0, r3
- ldrb r3, [r0]
- ldr r1, _08012448 @ =gBitTable
- ldr r4, _08012438 @ =gUnknown_02024A60
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ands r3, r0
- cmp r3, 0
- beq _08012468
- ldr r0, _08012450 @ =gUnknown_02024C18
- adds r0, r2, r0
- movs r1, 0xD
- strb r1, [r0]
- ldr r0, _08012440 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08012454
- ldr r0, _0801244C @ =gUnknown_02024D1E
- ldrb r1, [r4]
- adds r1, r0
- movs r0, 0x4
- strb r0, [r1]
- bl _08012F66
- .align 2, 0
-_08012434: .4byte 0x02000000
-_08012438: .4byte gUnknown_02024A60
-_0801243C: .4byte 0x00016068
-_08012440: .4byte gUnknown_020239F8
-_08012444: .4byte 0x000160a6
-_08012448: .4byte gBitTable
-_0801244C: .4byte gUnknown_02024D1E
-_08012450: .4byte gUnknown_02024C18
-_08012454:
- ldr r0, _08012464 @ =gUnknown_02024D1E
- ldrb r1, [r4]
- adds r1, r0
- movs r0, 0x3
- strb r0, [r1]
- bl _08012F66
- .align 2, 0
-_08012464: .4byte gUnknown_02024D1E
-_08012468:
- ldr r1, _0801249C @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- bne _08012488
- movs r0, 0x80
- lsls r0, 15
- ands r1, r0
- cmp r1, 0
- beq _080124A8
-_08012488:
- ldr r0, _080124A0 @ =gUnknown_02024C18
- adds r0, r2, r0
- strb r3, [r0]
- ldr r1, _080124A4 @ =gUnknown_02024D1E
- ldrb r0, [r4]
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bl _08012F66
- .align 2, 0
-_0801249C: .4byte gBattleMons
-_080124A0: .4byte gUnknown_02024C18
-_080124A4: .4byte gUnknown_02024D1E
-_080124A8:
- ldr r0, _080124C0 @ =gUnknown_02024C18
- ldrb r1, [r0]
- ldr r0, _080124C4 @ =gUnknown_02024260
- ldrb r2, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r2, r0
- movs r0, 0
- bl dp01_build_cmdbuf_x12_a_bb
- bl _08012E32
- .align 2, 0
-_080124C0: .4byte gUnknown_02024C18
-_080124C4: .4byte gUnknown_02024260
-_080124C8:
- ldr r4, _08012520 @ =gUnknown_02024A64
- ldr r1, _08012524 @ =gBitTable
- ldr r3, _08012528 @ =gUnknown_02024A60
- ldrb r5, [r3]
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r1, [r4]
- ands r1, r0
- mov r8, r3
- cmp r1, 0
- beq _080124F6
- bl _08012F66
-_080124F6:
- ldr r2, _0801252C @ =gUnknown_02024C18
- adds r2, r5, r2
- ldr r1, _08012530 @ =gUnknown_02024260
- lsls r0, r5, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldrb r0, [r3]
- lsls r0, 9
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _08012514
- b _08012968
-_08012514:
- lsls r0, 2
- ldr r1, _08012534 @ =_08012538
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08012520: .4byte gUnknown_02024A64
-_08012524: .4byte gBitTable
-_08012528: .4byte gUnknown_02024A60
-_0801252C: .4byte gUnknown_02024C18
-_08012530: .4byte gUnknown_02024260
-_08012534: .4byte _08012538
- .align 2, 0
-_08012538:
- .4byte _0801256C
- .4byte _080126B4
- .4byte _080126E0
- .4byte _08012968
- .4byte _08012968
- .4byte _080128B0
- .4byte _08012908
- .4byte _08012968
- .4byte _08012968
- .4byte _08012968
- .4byte _08012968
- .4byte _08012968
- .4byte _0801292C
-_0801256C:
- bl sub_8015C90
- lsls r0, 24
- cmp r0, 0
- beq _080125D0
- ldr r0, _080125B4 @ =gUnknown_02024D1E
- ldr r2, _080125B8 @ =gUnknown_02024A60
- ldrb r1, [r2]
- adds r1, r0
- movs r4, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r3, _080125BC @ =0x02000000
- ldrb r0, [r2]
- ldr r1, _080125C0 @ =0x00016060
- adds r0, r1
- adds r0, r3
- strb r4, [r0]
- ldrb r0, [r2]
- ldr r4, _080125C4 @ =0x00016094
- adds r0, r4
- adds r0, r3
- movs r1, 0x3
- strb r1, [r0]
- ldrb r1, [r2]
- ldr r0, _080125C8 @ =0x00016010
- adds r2, r1, r0
- adds r2, r3
- ldr r0, _080125CC @ =gUnknown_02024260
- lsls r1, 9
- adds r0, 0x3
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2]
- bl _08012F90
- .align 2, 0
-_080125B4: .4byte gUnknown_02024D1E
-_080125B8: .4byte gUnknown_02024A60
-_080125BC: .4byte 0x02000000
-_080125C0: .4byte 0x00016060
-_080125C4: .4byte 0x00016094
-_080125C8: .4byte 0x00016010
-_080125CC: .4byte gUnknown_02024260
-_080125D0:
- ldr r1, _080125FC @ =gUnknown_02024CA8
- ldr r5, _08012600 @ =gUnknown_02024A60
- ldrb r4, [r5]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r2, [r0, 0x6]
- cmp r2, 0
- beq _0801260C
- ldr r1, _08012604 @ =gUnknown_02024C60
- lsls r0, r4, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _08012608 @ =gUnknown_02024D1E
- ldrb r0, [r5]
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bl _08012F90
- .align 2, 0
-_080125FC: .4byte gUnknown_02024CA8
-_08012600: .4byte gUnknown_02024A60
-_08012604: .4byte gUnknown_02024C60
-_08012608: .4byte gUnknown_02024D1E
-_0801260C:
- add r2, sp, 0x4
- ldr r3, _080126AC @ =gBattleMons
- movs r1, 0x58
- adds r0, r4, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- ldrb r0, [r5]
- muls r0, r1
- adds r0, r3
- adds r0, 0x21
- ldrb r0, [r0]
- strb r0, [r2, 0x12]
- ldrb r0, [r5]
- muls r0, r1
- adds r0, r3
- adds r0, 0x22
- ldrb r0, [r0]
- strb r0, [r2, 0x13]
- movs r4, 0
- mov r1, sp
- adds r1, 0xC
- str r1, [sp, 0x18]
- add r2, sp, 0x10
- mov r10, r2
- mov r8, r3
- adds r7, r5, 0
- movs r6, 0x58
- movs r3, 0xC
- add r3, r8
- mov r9, r3
- add r5, sp, 0x4
-_0801264E:
- lsls r2, r4, 1
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r2, r0
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r5]
- ldr r0, [sp, 0x18]
- adds r3, r0, r4
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r2, r1
- add r2, r9
- ldrh r0, [r2]
- add r1, r8
- adds r1, 0x3B
- ldrb r1, [r1]
- lsls r2, r4, 24
- lsrs r2, 24
- bl CalculatePPWithBonus
- mov r2, r10
- adds r1, r2, r4
- strb r0, [r1]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0801264E
- ldr r0, _080126B0 @ =gUnknown_020239F8
- ldrb r0, [r0]
- movs r1, 0x1
- ands r1, r0
- movs r0, 0
- movs r2, 0
- add r3, sp, 0x4
- bl sub_800CBA4
- b _0801289E
- .align 2, 0
-_080126AC: .4byte gBattleMons
-_080126B0: .4byte gUnknown_020239F8
-_080126B4:
- ldr r0, _080126D0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _080126D4 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _080126C2
- b _08012908
-_080126C2:
- ldr r1, _080126D8 @ =gUnknown_02024C1C
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080126DC @ =gUnknown_081D9B29
- b _080129CC
- .align 2, 0
-_080126D0: .4byte gUnknown_020239F8
-_080126D4: .4byte 0x00000902
-_080126D8: .4byte gUnknown_02024C1C
-_080126DC: .4byte gUnknown_081D9B29
-_080126E0:
- ldr r3, _08012738 @ =0x02000000
- ldr r5, _0801273C @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r4, _08012740 @ =0x00016064
- adds r1, r0, r4
- adds r1, r3
- ldr r2, _08012744 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r7, _08012748 @ =gBattleMons
- ldrb r2, [r5]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0801274C @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _08012722
- ldr r0, _08012750 @ =gUnknown_02024C98
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- lsls r0, 3
- ands r1, r0
- cmp r1, 0
- beq _08012758
-_08012722:
- lsls r0, r2, 1
- adds r0, r2
- ldr r2, _08012754 @ =0x0001606c
- adds r1, r3, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x6
- b _0801286C
- .align 2, 0
-_08012738: .4byte 0x02000000
-_0801273C: .4byte gUnknown_02024A60
-_08012740: .4byte 0x00016064
-_08012744: .4byte gUnknown_02024A6A
-_08012748: .4byte gBattleMons
-_0801274C: .4byte 0x0400e000
-_08012750: .4byte gUnknown_02024C98
-_08012754: .4byte 0x0001606c
-_08012758:
- str r1, [sp]
- movs r0, 0xC
- adds r1, r2, 0
- movs r2, 0x17
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080127E0
- ldrb r1, [r5]
- str r4, [sp]
- movs r0, 0xC
- movs r2, 0x47
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080127A8
- ldrb r0, [r5]
- muls r0, r6
- adds r1, r0, r7
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080127A8
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080127A8
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- bne _080127E0
-_080127A8:
- ldr r5, _08012808 @ =gUnknown_02024A60
- ldrb r1, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- movs r2, 0x2A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08012818
- ldr r2, _0801280C @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _080127E0
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08012818
-_080127E0:
- subs r1, r4, 0x1
- lsls r1, 4
- movs r0, 0x4
- orrs r1, r0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08012810 @ =byte_2024C06
- ldrb r3, [r0]
- ldr r0, _08012808 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- ldr r2, _08012814 @ =0x0201606c
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r2, 0x6
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- b _0801289E
- .align 2, 0
-_08012808: .4byte gUnknown_02024A60
-_0801280C: .4byte gBattleMons
-_08012810: .4byte byte_2024C06
-_08012814: .4byte 0x0201606c
-_08012818:
- ldr r0, _08012830 @ =gUnknown_02024A60
- ldrb r1, [r0]
- mov r8, r0
- cmp r1, 0x2
- bne _08012840
- ldr r0, _08012834 @ =gUnknown_02024C18
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08012840
- ldr r3, _08012838 @ =0x02000000
- ldr r4, _0801283C @ =0x00016068
- b _08012854
- .align 2, 0
-_08012830: .4byte gUnknown_02024A60
-_08012834: .4byte gUnknown_02024C18
-_08012838: .4byte 0x02000000
-_0801283C: .4byte 0x00016068
-_08012840:
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _08012884
- ldr r0, _08012874 @ =gUnknown_02024C18
- ldrb r0, [r0, 0x1]
- cmp r0, 0x2
- bne _08012884
- ldr r3, _08012878 @ =0x02000000
- ldr r4, _0801287C @ =0x00016069
-_08012854:
- adds r0, r3, r4
- ldrb r2, [r0]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _08012880 @ =0x0001606c
- adds r3, r1
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- movs r1, 0
-_0801286C:
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- b _0801289E
- .align 2, 0
-_08012874: .4byte gUnknown_02024C18
-_08012878: .4byte 0x02000000
-_0801287C: .4byte 0x00016069
-_08012880: .4byte 0x0001606c
-_08012884:
- ldr r0, _080128A8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _080128AC @ =0x0201606c
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x6
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
-_0801289E:
- ldr r0, _080128A8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08012968
- .align 2, 0
-_080128A8: .4byte gUnknown_02024A60
-_080128AC: .4byte 0x0201606c
-_080128B0:
- bl PlayerPartyAndPokemonStorageFull
- lsls r0, 24
- cmp r0, 0
- beq _08012968
- ldr r1, _080128EC @ =gUnknown_02024C1C
- ldr r2, _080128F0 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080128F4 @ =gUnknown_081D8E4A
- str r1, [r0]
- ldr r0, _080128F8 @ =gUnknown_02024D1E
- ldrb r1, [r2]
- adds r1, r0
- movs r3, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r1, _080128FC @ =0x02000000
- ldrb r0, [r2]
- ldr r4, _08012900 @ =0x00016060
- adds r0, r4
- adds r0, r1
- strb r3, [r0]
- ldrb r0, [r2]
- ldr r2, _08012904 @ =0x00016094
- adds r0, r2
- adds r0, r1
- strb r3, [r0]
- b _08012F90
- .align 2, 0
-_080128EC: .4byte gUnknown_02024C1C
-_080128F0: .4byte gUnknown_02024A60
-_080128F4: .4byte gUnknown_081D8E4A
-_080128F8: .4byte gUnknown_02024D1E
-_080128FC: .4byte 0x02000000
-_08012900: .4byte 0x00016060
-_08012904: .4byte 0x00016094
-_08012908:
- ldr r4, _08012924 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, _08012928 @ =0x0201606c
- adds r1, r0
- movs r0, 0
- bl sub_800CBE0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08012968
- .align 2, 0
-_08012924: .4byte gUnknown_02024A60
-_08012928: .4byte 0x0201606c
-_0801292C:
- ldr r4, _08012964 @ =gUnknown_02024D1E
- mov r3, r8
- ldrb r1, [r3]
- adds r1, r4
- movs r5, 0
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r3]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- strb r5, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x32_32_32_32
- mov r4, r8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08012F90
- .align 2, 0
-_08012964: .4byte gUnknown_02024D1E
-_08012968:
- ldr r0, _08012994 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0xA
- ands r0, r1
- cmp r0, 0x8
- bne _080129A8
- ldr r0, _08012998 @ =gUnknown_02024260
- ldr r4, _0801299C @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _080129A8
- ldr r0, _080129A0 @ =gUnknown_081D8E37
- bl b_call_bc_move_exec
- ldr r1, _080129A4 @ =gUnknown_02024D1E
- ldrb r0, [r4]
- adds r0, r1
- b _08012BFE
- .align 2, 0
-_08012994: .4byte gUnknown_020239F8
-_08012998: .4byte gUnknown_02024260
-_0801299C: .4byte gUnknown_02024A60
-_080129A0: .4byte gUnknown_081D8E37
-_080129A4: .4byte gUnknown_02024D1E
-_080129A8:
- bl sub_8012028
- lsls r0, 24
- cmp r0, 0
- beq _08012A14
- ldr r0, _080129F4 @ =gUnknown_02024260
- ldr r3, _080129F8 @ =gUnknown_02024A60
- ldrb r2, [r3]
- lsls r1, r2, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _08012A14
- ldr r1, _080129FC @ =gUnknown_02024C1C
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, _08012A00 @ =gUnknown_081D8E44
-_080129CC:
- str r1, [r0]
- ldr r0, _08012A04 @ =gUnknown_02024D1E
- ldrb r1, [r3]
- adds r1, r0
- movs r2, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r1, _08012A08 @ =0x02000000
- ldrb r0, [r3]
- ldr r4, _08012A0C @ =0x00016060
- adds r0, r4
- adds r0, r1
- strb r2, [r0]
- ldrb r0, [r3]
- ldr r3, _08012A10 @ =0x00016094
- adds r0, r3
- adds r0, r1
- strb r2, [r0]
- b _08012F90
- .align 2, 0
-_080129F4: .4byte gUnknown_02024260
-_080129F8: .4byte gUnknown_02024A60
-_080129FC: .4byte gUnknown_02024C1C
-_08012A00: .4byte gUnknown_081D8E44
-_08012A04: .4byte gUnknown_02024D1E
-_08012A08: .4byte 0x02000000
-_08012A0C: .4byte 0x00016060
-_08012A10: .4byte 0x00016094
-_08012A14:
- ldr r2, _08012A20 @ =gUnknown_02024D1E
- ldr r0, _08012A24 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012A20: .4byte gUnknown_02024D1E
-_08012A24: .4byte gUnknown_02024A60
-_08012A28:
- ldr r4, _08012A6C @ =gUnknown_02024A64
- ldr r1, _08012A70 @ =gBitTable
- ldr r3, _08012A74 @ =gUnknown_02024A60
- ldrb r5, [r3]
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r1, [r4]
- ands r1, r0
- mov r8, r3
- cmp r1, 0
- beq _08012A54
- b _08012F66
-_08012A54:
- ldr r1, _08012A78 @ =gUnknown_02024C18
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x9
- bls _08012A62
- b _08012F66
-_08012A62:
- lsls r0, 2
- ldr r1, _08012A7C @ =_08012A80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08012A6C: .4byte gUnknown_02024A64
-_08012A70: .4byte gBitTable
-_08012A74: .4byte gUnknown_02024A60
-_08012A78: .4byte gUnknown_02024C18
-_08012A7C: .4byte _08012A80
- .align 2, 0
-_08012A80:
- .4byte _08012AA8
- .4byte _08012BB0
- .4byte _08012BE8
- .4byte _08012CE0
- .4byte _08012D04
- .4byte _08012D18
- .4byte _08012D2C
- .4byte _08012D5C
- .4byte _08012D70
- .4byte _08012D94
-_08012AA8:
- ldr r0, _08012AC8 @ =gUnknown_02024260
- mov r1, r8
- ldrb r4, [r1]
- lsls r1, r4, 9
- adds r2, r0, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r6, r0, 0
- cmp r1, 0x9
- bgt _08012ACC
- cmp r1, 0x3
- blt _08012ACC
- adds r0, r4, r3
- strb r1, [r0]
- b _08012F90
- .align 2, 0
-_08012AC8: .4byte gUnknown_02024260
-_08012ACC:
- adds r3, r6, 0
- mov r5, r8
- ldrb r4, [r5]
- lsls r1, r4, 9
- adds r7, r3, 0x2
- adds r0, r1, r7
- ldrb r2, [r0]
- adds r3, 0x3
- mov r9, r3
- add r1, r9
- ldrb r0, [r1]
- lsls r0, 8
- orrs r2, r0
- ldr r0, _08012AF4 @ =0x0000ffff
- cmp r2, r0
- bne _08012AFC
- ldr r0, _08012AF8 @ =gUnknown_02024D1E
- adds r0, r4, r0
- b _08012BFE
- .align 2, 0
-_08012AF4: .4byte 0x0000ffff
-_08012AF8: .4byte gUnknown_02024D1E
-_08012AFC:
- bl sub_8015894
- lsls r0, 24
- cmp r0, 0
- beq _08012B48
- ldr r0, _08012B38 @ =gUnknown_02024D1E
- ldrb r1, [r5]
- adds r1, r0
- movs r2, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r3, _08012B3C @ =0x02000000
- ldrb r0, [r5]
- ldr r4, _08012B40 @ =0x00016060
- adds r0, r4
- adds r0, r3
- strb r2, [r0]
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, r6, 0x1
- adds r0, r1
- strb r2, [r0]
- ldrb r0, [r5]
- ldr r1, _08012B44 @ =0x00016094
- adds r0, r1
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
- b _08012F90
- .align 2, 0
-_08012B38: .4byte gUnknown_02024D1E
-_08012B3C: .4byte 0x02000000
-_08012B40: .4byte 0x00016060
-_08012B44: .4byte 0x00016094
-_08012B48:
- ldr r6, _08012B98 @ =0x02000000
- mov r2, r8
- ldrb r0, [r2]
- ldr r2, _08012B9C @ =0x0001608c
- adds r1, r0, r2
- adds r1, r6
- lsls r0, 9
- adds r0, r7
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08012BA0 @ =gUnknown_02024C60
- mov r4, r8
- ldrb r3, [r4]
- lsls r5, r3, 1
- adds r5, r0
- ldr r4, _08012BA4 @ =gBattleMons
- adds r2, r3, r2
- adds r2, r6
- ldrb r0, [r2]
- lsls r0, 1
- movs r1, 0x58
- muls r1, r3
- adds r0, r1
- adds r4, 0xC
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r5]
- mov r1, r8
- ldrb r0, [r1]
- ldr r2, _08012BA8 @ =0x00016010
- adds r1, r0, r2
- adds r1, r6
- lsls r0, 9
- add r0, r9
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08012BAC @ =gUnknown_02024D1E
- mov r3, r8
- ldrb r1, [r3]
- b _08012E3C
- .align 2, 0
-_08012B98: .4byte 0x02000000
-_08012B9C: .4byte 0x0001608c
-_08012BA0: .4byte gUnknown_02024C60
-_08012BA4: .4byte gBattleMons
-_08012BA8: .4byte 0x00016010
-_08012BAC: .4byte gUnknown_02024D1E
-_08012BB0:
- ldr r2, _08012BD8 @ =gUnknown_02024260
- ldr r5, _08012BDC @ =gUnknown_02024A60
- ldrb r4, [r5]
- lsls r1, r4, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- bne _08012BCE
- b _08012F60
-_08012BCE:
- ldr r0, _08012BE0 @ =gUnknown_02024C04
- strh r3, [r0]
- ldr r0, _08012BE4 @ =gUnknown_02024D1E
- ldrb r1, [r5]
- b _08012E3C
- .align 2, 0
-_08012BD8: .4byte gUnknown_02024260
-_08012BDC: .4byte gUnknown_02024A60
-_08012BE0: .4byte gUnknown_02024C04
-_08012BE4: .4byte gUnknown_02024D1E
-_08012BE8:
- ldr r4, _08012C04 @ =gUnknown_02024260
- ldr r7, _08012C08 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 9
- adds r1, r4, 0x1
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0x6
- bne _08012C10
- ldr r0, _08012C0C @ =gUnknown_02024D1E
- adds r0, r2, r0
-_08012BFE:
- movs r1, 0
- strb r1, [r0]
- b _08012F66
- .align 2, 0
-_08012C04: .4byte gUnknown_02024260
-_08012C08: .4byte gUnknown_02024A60
-_08012C0C: .4byte gUnknown_02024D1E
-_08012C10:
- ldr r0, _08012CC4 @ =0x02000000
- mov r12, r0
- ldr r3, _08012CC8 @ =0x00016068
- adds r0, r2, r3
- add r0, r12
- strb r1, [r0]
- ldr r0, _08012CCC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08012CBE
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r5, _08012CD0 @ =0x0001606c
- adds r1, r5
- add r1, r12
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r2, r0, 1
- adds r2, r0
- adds r2, r5
- add r2, r12
- lsls r0, 9
- adds r6, r4, 0x2
- adds r0, r6
- ldrb r1, [r0]
- movs r3, 0xF0
- adds r0, r3, 0
- ands r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r2, _08012CD4 @ =0x0001606d
- adds r1, r2
- add r1, r12
- lsls r0, 9
- adds r4, 0x3
- mov r8, r4
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r4, 0x2
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- add r1, r12
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- add r1, r12
- ldrb r0, [r7]
- lsls r0, 9
- adds r0, r6
- ldrb r0, [r0]
- ands r3, r0
- lsrs r3, 4
- ldrb r0, [r1]
- orrs r3, r0
- strb r3, [r1]
- ldrb r0, [r7]
- eors r4, r0
- lsls r1, r4, 1
- adds r1, r4
- ldr r3, _08012CD8 @ =0x0001606e
- adds r1, r3
- add r1, r12
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
-_08012CBE:
- ldr r0, _08012CDC @ =gUnknown_02024D1E
- ldrb r1, [r7]
- b _08012E3C
- .align 2, 0
-_08012CC4: .4byte 0x02000000
-_08012CC8: .4byte 0x00016068
-_08012CCC: .4byte gUnknown_020239F8
-_08012CD0: .4byte 0x0001606c
-_08012CD4: .4byte 0x0001606d
-_08012CD8: .4byte 0x0001606e
-_08012CDC: .4byte gUnknown_02024D1E
-_08012CE0:
- ldr r2, _08012CF8 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08012CFC @ =gUnknown_02024D1E
- ldr r0, _08012D00 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012CF8: .4byte gUnknown_02024C6C
-_08012CFC: .4byte gUnknown_02024D1E
-_08012D00: .4byte gUnknown_02024A60
-_08012D04:
- ldr r2, _08012D10 @ =gUnknown_02024D1E
- ldr r0, _08012D14 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D10: .4byte gUnknown_02024D1E
-_08012D14: .4byte gUnknown_02024A60
-_08012D18:
- ldr r2, _08012D24 @ =gUnknown_02024D1E
- ldr r0, _08012D28 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D24: .4byte gUnknown_02024D1E
-_08012D28: .4byte gUnknown_02024A60
-_08012D2C:
- ldr r2, _08012D50 @ =gUnknown_02024260
- ldr r0, _08012D54 @ =gUnknown_02024A60
- ldrb r4, [r0]
- lsls r1, r4, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- bne _08012D4A
- b _08012F60
-_08012D4A:
- ldr r1, _08012D58 @ =gUnknown_02024D1E
- adds r1, r4, r1
- b _08012E3E
- .align 2, 0
-_08012D50: .4byte gUnknown_02024260
-_08012D54: .4byte gUnknown_02024A60
-_08012D58: .4byte gUnknown_02024D1E
-_08012D5C:
- ldr r2, _08012D68 @ =gUnknown_02024D1E
- ldr r0, _08012D6C @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D68: .4byte gUnknown_02024D1E
-_08012D6C: .4byte gUnknown_02024A60
-_08012D70:
- ldr r2, _08012D88 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08012D8C @ =gUnknown_02024D1E
- ldr r0, _08012D90 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D88: .4byte gUnknown_02024C6C
-_08012D8C: .4byte gUnknown_02024D1E
-_08012D90: .4byte gUnknown_02024A60
-_08012D94:
- ldr r2, _08012DA0 @ =gUnknown_02024D1E
- ldr r0, _08012DA4 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012DA0: .4byte gUnknown_02024D1E
-_08012DA4: .4byte gUnknown_02024A60
-_08012DA8:
- ldr r3, _08012E10 @ =gUnknown_02024A64
- ldr r4, _08012E14 @ =gBitTable
- ldr r0, _08012E18 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- beq _08012DD2
- b _08012F66
-_08012DD2:
- ldr r0, _08012E1C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _08012E06
- movs r1, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- bne _08012E06
- adds r0, r5, 0
- eors r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _08012E20 @ =0x02000000
- ldr r2, _08012E24 @ =0x000160a6
- adds r1, r2
- ldrb r1, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08012E28
-_08012E06:
- movs r0, 0
- movs r1, 0
- bl sub_800D1D8
- b _08012E30
- .align 2, 0
-_08012E10: .4byte gUnknown_02024A64
-_08012E14: .4byte gBitTable
-_08012E18: .4byte gUnknown_02024A60
-_08012E1C: .4byte gUnknown_020239F8
-_08012E20: .4byte 0x02000000
-_08012E24: .4byte 0x000160a6
-_08012E28:
- movs r0, 0
- movs r1, 0x1
- bl sub_800D1D8
-_08012E30:
- ldr r4, _08012E48 @ =gUnknown_02024A60
-_08012E32:
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _08012E4C @ =gUnknown_02024D1E
- ldrb r1, [r4]
-_08012E3C:
- adds r1, r0
-_08012E3E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08012F66
- .align 2, 0
-_08012E48: .4byte gUnknown_02024A60
-_08012E4C: .4byte gUnknown_02024D1E
-_08012E50:
- ldr r3, _08012E84 @ =gUnknown_02024A64
- ldr r1, _08012E88 @ =gBitTable
- ldr r0, _08012E8C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- bne _08012F66
- ldr r1, _08012E90 @ =gUnknown_02024D1E
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08012F66
- .align 2, 0
-_08012E84: .4byte gUnknown_02024A64
-_08012E88: .4byte gBitTable
-_08012E8C: .4byte gUnknown_02024A60
-_08012E90: .4byte gUnknown_02024D1E
-_08012E94:
- ldr r2, _08012EB8 @ =0x02000000
- ldr r5, _08012EBC @ =gUnknown_02024A60
- ldrb r1, [r5]
- ldr r3, _08012EC0 @ =0x00016060
- adds r0, r1, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08012ECC
- ldr r0, _08012EC4 @ =gUnknown_02024D1E
- adds r0, r1, r0
- ldr r4, _08012EC8 @ =0x00016094
- adds r1, r4
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- b _08012F66
- .align 2, 0
-_08012EB8: .4byte 0x02000000
-_08012EBC: .4byte gUnknown_02024A60
-_08012EC0: .4byte 0x00016060
-_08012EC4: .4byte gUnknown_02024D1E
-_08012EC8: .4byte 0x00016094
-_08012ECC:
- ldr r0, _08012F20 @ =gUnknown_02024C07
- strb r1, [r0]
- ldr r7, _08012F24 @ =gUnknown_02024C10
- ldr r6, _08012F28 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r4, [r0]
- str r4, [r7]
- ldr r3, _08012F2C @ =gUnknown_02024A64
- ldr r1, _08012F30 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- bne _08012F12
- ldr r0, _08012F34 @ =gUnknown_081FA73C
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_08012F12:
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r7]
- str r1, [r0]
- b _08012F66
- .align 2, 0
-_08012F20: .4byte gUnknown_02024C07
-_08012F24: .4byte gUnknown_02024C10
-_08012F28: .4byte gUnknown_02024C1C
-_08012F2C: .4byte gUnknown_02024A64
-_08012F30: .4byte gBitTable
-_08012F34: .4byte gUnknown_081FA73C
-_08012F38:
- ldr r3, _08012FA0 @ =gUnknown_02024A64
- ldr r1, _08012FA4 @ =gBitTable
- ldr r0, _08012FA8 @ =gUnknown_02024A60
- ldrb r4, [r0]
- lsls r0, r4, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r3, [r3]
- ands r3, r0
- cmp r3, 0
- bne _08012F66
-_08012F60:
- ldr r0, _08012FAC @ =gUnknown_02024D1E
- adds r0, r4, r0
- strb r3, [r0]
-_08012F66:
- ldr r0, _08012FA8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08012FB0 @ =gUnknown_02024A68
- lsls r1, 24
- lsrs r1, 24
-_08012F74:
- adds r2, r0, 0
- ldrb r0, [r2]
- cmp r1, r0
- bcs _08012F80
- bl _0801234C
-_08012F80:
- ldr r0, _08012FAC @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x4]
- ldrb r2, [r2]
- cmp r0, r2
- bne _08012F90
- ldr r1, _08012FB4 @ =gUnknown_030042D4
- ldr r0, _08012FB8 @ =sub_80133C8
- str r0, [r1]
-_08012F90:
- 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
-_08012FA0: .4byte gUnknown_02024A64
-_08012FA4: .4byte gBitTable
-_08012FA8: .4byte gUnknown_02024A60
-_08012FAC: .4byte gUnknown_02024D1E
-_08012FB0: .4byte gUnknown_02024A68
-_08012FB4: .4byte gUnknown_030042D4
-_08012FB8: .4byte sub_80133C8
- thumb_func_end sub_8012324
-
- thumb_func_start sub_8012FBC
-sub_8012FBC: @ 8012FBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08012FE8 @ =gUnknown_02024A76
- adds r4, r0, r2
- ldrb r5, [r4]
- adds r2, r1, r2
- ldrb r3, [r2]
- strb r3, [r4]
- strb r5, [r2]
- ldr r2, _08012FEC @ =gUnknown_02024A7A
- adds r0, r2
- ldrb r5, [r0]
- adds r1, r2
- ldrb r2, [r1]
- strb r2, [r0]
- strb r5, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08012FE8: .4byte gUnknown_02024A76
-_08012FEC: .4byte gUnknown_02024A7A
- thumb_func_end sub_8012FBC
-
- thumb_func_start b_first_side
-b_first_side: @ 8012FF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _080130B8
- ldr r1, [sp, 0x8]
- str r1, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _080130B8
- ldr r1, _08013070 @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x21
- bne _0801305C
- ldr r0, _08013074 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801306C
-_0801305C:
- cmp r3, 0x22
- bne _08013078
- ldr r0, _08013074 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08013078
-_0801306C:
- movs r3, 0x2
- b _0801307A
- .align 2, 0
-_08013070: .4byte gBattleMons
-_08013074: .4byte word_2024DB8
-_08013078:
- movs r3, 0x1
-_0801307A:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r2, _080130B0 @ =gBattleMons
- adds r0, r2
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x21
- bne _0801309A
- ldr r0, _080130B4 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _080130AA
-_0801309A:
- cmp r2, 0x22
- bne _080130BA
- ldr r0, _080130B4 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _080130BA
-_080130AA:
- movs r7, 0x2
- b _080130BC
- .align 2, 0
-_080130B0: .4byte gBattleMons
-_080130B4: .4byte word_2024DB8
-_080130B8:
- movs r3, 0x1
-_080130BA:
- movs r7, 0x1
-_080130BC:
- ldr r1, _08013100 @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r4, r0, r1
- ldrh r0, [r4, 0x6]
- muls r3, r0
- ldr r2, _08013104 @ =gStatStageRatios
- movs r1, 0x1B
- ldrsb r1, [r4, r1]
- lsls r1, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- muls r0, r3
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl __divsi3
- mov r8, r0
- ldrh r0, [r4, 0x2E]
- cmp r0, 0xAF
- bne _0801310C
- ldr r1, _08013108 @ =gEnigmaBerries
- mov r3, r9
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- ldrb r5, [r0, 0x1A]
- b _08013120
- .align 2, 0
-_08013100: .4byte gBattleMons
-_08013104: .4byte gStatStageRatios
-_08013108: .4byte gEnigmaBerries
-_0801310C:
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r5, r0, 24
-_08013120:
- ldr r0, _080131DC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08013154
- ldr r0, _080131E0 @ =0x00000809
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08013154
- mov r0, r9
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08013154
- movs r0, 0x6E
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x64
- bl __udivsi3
- mov r8, r0
-_08013154:
- cmp r6, 0x18
- bne _0801315E
- mov r2, r8
- lsrs r2, 1
- mov r8, r2
-_0801315E:
- ldr r1, _080131E4 @ =gBattleMons
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801317C
- mov r0, r8
- lsrs r0, 2
- mov r8, r0
-_0801317C:
- cmp r6, 0x1A
- bne _08013198
- ldr r0, _080131E8 @ =gUnknown_02024D1C
- ldrh r4, [r0]
- lsls r0, r5, 16
- subs r0, r5
- movs r1, 0x64
- bl __divsi3
- cmp r4, r0
- bge _08013198
- movs r1, 0x1
- negs r1, r1
- mov r8, r1
-_08013198:
- ldr r1, _080131E4 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r4, r0, r1
- ldrh r0, [r4, 0x6]
- adds r3, r0, 0
- muls r3, r7
- ldr r2, _080131EC @ =gStatStageRatios
- movs r1, 0x1B
- ldrsb r1, [r4, r1]
- lsls r1, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- muls r0, r3
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl __divsi3
- adds r7, r0, 0
- ldrh r0, [r4, 0x2E]
- cmp r0, 0xAF
- bne _080131F4
- ldr r1, _080131F0 @ =gEnigmaBerries
- mov r3, r10
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- ldrb r5, [r0, 0x1A]
- b _08013208
- .align 2, 0
-_080131DC: .4byte gUnknown_020239F8
-_080131E0: .4byte 0x00000809
-_080131E4: .4byte gBattleMons
-_080131E8: .4byte gUnknown_02024D1C
-_080131EC: .4byte gStatStageRatios
-_080131F0: .4byte gEnigmaBerries
-_080131F4:
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r5, r0, 24
-_08013208:
- ldr r0, _08013280 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08013238
- ldr r0, _08013284 @ =0x00000809
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08013238
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08013238
- movs r0, 0x6E
- muls r0, r7
- movs r1, 0x64
- bl __udivsi3
- adds r7, r0, 0
-_08013238:
- cmp r6, 0x18
- bne _0801323E
- lsrs r7, 1
-_0801323E:
- ldr r2, _08013288 @ =gBattleMons
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801325A
- lsrs r7, 2
-_0801325A:
- cmp r6, 0x1A
- bne _08013274
- ldr r0, _0801328C @ =gUnknown_02024D1C
- ldrh r4, [r0]
- lsls r0, r5, 16
- subs r0, r5
- movs r1, 0x64
- bl __divsi3
- cmp r4, r0
- bge _08013274
- movs r7, 0x1
- negs r7, r7
-_08013274:
- ldr r2, [sp, 0x4]
- cmp r2, 0
- beq _08013290
- movs r3, 0
- b _08013334
- .align 2, 0
-_08013280: .4byte gUnknown_020239F8
-_08013284: .4byte 0x00000809
-_08013288: .4byte gBattleMons
-_0801328C: .4byte gUnknown_02024D1C
-_08013290:
- ldr r0, _080132B0 @ =gUnknown_02024C18
- mov r3, r9
- adds r1, r3, r0
- ldrb r1, [r1]
- adds r2, r0, 0
- cmp r1, 0
- bne _080132E4
- ldr r0, _080132B4 @ =gUnknown_02024D28
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _080132B8
- movs r3, 0xA5
- b _080132E6
- .align 2, 0
-_080132B0: .4byte gUnknown_02024C18
-_080132B4: .4byte gUnknown_02024D28
-_080132B8:
- ldr r1, _080132D8 @ =0x02000000
- ldr r0, _080132DC @ =0x0001608c
- add r0, r9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- mov r3, r9
- muls r3, r1
- adds r1, r3, 0
- adds r0, r1
- ldr r1, _080132E0 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldrh r3, [r0]
- b _080132E6
- .align 2, 0
-_080132D8: .4byte 0x02000000
-_080132DC: .4byte 0x0001608c
-_080132E0: .4byte gBattleMons
-_080132E4:
- movs r3, 0
-_080132E6:
- mov r1, r10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08013334
- ldr r0, _08013304 @ =gUnknown_02024D28
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _08013308
- movs r2, 0xA5
- b _08013336
- .align 2, 0
-_08013304: .4byte gUnknown_02024D28
-_08013308:
- ldr r1, _08013328 @ =0x02000000
- ldr r0, _0801332C @ =0x0001608c
- add r0, r10
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- mov r2, r10
- muls r2, r1
- adds r1, r2, 0
- adds r0, r1
- ldr r1, _08013330 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldrh r2, [r0]
- b _08013336
- .align 2, 0
-_08013328: .4byte 0x02000000
-_0801332C: .4byte 0x0001608c
-_08013330: .4byte gBattleMons
-_08013334:
- movs r2, 0
-_08013336:
- ldr r4, _08013380 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- movs r1, 0x7
- ldrsb r1, [r0, r1]
- lsls r3, r2, 1
- cmp r1, 0
- bne _0801335A
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08013398
-_0801335A:
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _0801338E
- cmp r8, r7
- bne _08013384
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08013384
- movs r3, 0x2
- b _080133B4
- .align 2, 0
-_08013380: .4byte gBattleMoves
-_08013384:
- cmp r8, r7
- bcs _080133B6
- movs r0, 0x1
- str r0, [sp, 0x8]
- b _080133B6
-_0801338E:
- cmp r1, r0
- bge _080133B6
- movs r1, 0x1
- str r1, [sp, 0x8]
- b _080133B6
-_08013398:
- cmp r8, r7
- bne _080133AE
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080133AE
- movs r2, 0x2
- str r2, [sp, 0x8]
- b _080133B6
-_080133AE:
- cmp r8, r7
- bcs _080133B6
- movs r3, 0x1
-_080133B4:
- str r3, [sp, 0x8]
-_080133B6:
- ldr r0, [sp, 0x8]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end b_first_side
-
- thumb_func_start sub_80133C8
-sub_80133C8: @ 80133C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r3, 0
- ldr r0, _0801341C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08013434
- ldr r0, _08013420 @ =gUnknown_02024A60
- strb r3, [r0]
- ldr r4, _08013424 @ =gUnknown_02024A68
- mov r8, r0
- ldrb r0, [r4]
- cmp r3, r0
- bcc _080133F0
- b _08013622
-_080133F0:
- ldr r7, _08013428 @ =gUnknown_02024A76
- ldr r6, _0801342C @ =gUnknown_02024C18
- mov r2, r8
- ldr r5, _08013430 @ =gUnknown_02024A7A
-_080133F8:
- adds r1, r3, r7
- ldrb r0, [r2]
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r3, r5
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- cmp r0, r1
- bcc _080133F8
- b _08013622
- .align 2, 0
-_0801341C: .4byte gUnknown_020239F8
-_08013420: .4byte gUnknown_02024A60
-_08013424: .4byte gUnknown_02024A68
-_08013428: .4byte gUnknown_02024A76
-_0801342C: .4byte gUnknown_02024C18
-_08013430: .4byte gUnknown_02024A7A
-_08013434:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08013484
- ldr r0, _08013478 @ =gUnknown_02024A60
- strb r3, [r0]
- ldr r1, _0801347C @ =gUnknown_02024A68
- mov r8, r0
- adds r2, r1, 0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _08013494
- ldr r0, _08013480 @ =gUnknown_02024C18
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x3
- beq _08013492
-_08013456:
- mov r7, r8
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0801347C @ =gUnknown_02024A68
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08013494
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08013456
- b _08013492
- .align 2, 0
-_08013478: .4byte gUnknown_02024A60
-_0801347C: .4byte gUnknown_02024A68
-_08013480: .4byte gUnknown_02024C18
-_08013484:
- ldr r0, _080134FC @ =gUnknown_02024C18
- ldrb r0, [r0]
- ldr r2, _08013500 @ =gUnknown_02024A60
- mov r8, r2
- cmp r0, 0x3
- bne _08013494
- strb r3, [r2]
-_08013492:
- movs r3, 0x5
-_08013494:
- cmp r3, 0x5
- bne _08013520
- ldr r6, _08013504 @ =gUnknown_02024A76
- ldr r1, _080134FC @ =gUnknown_02024C18
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r6]
- ldr r2, _08013508 @ =gUnknown_02024A7A
- ldrb r0, [r3]
- strb r0, [r2]
- movs r3, 0x1
- movs r5, 0
- adds r4, r1, 0
- ldr r7, _0801350C @ =gUnknown_030042D4
- mov r9, r7
- ldr r0, _08013510 @ =bc_80154A0
- mov r12, r0
- ldr r1, _08013514 @ =0x02000000
- mov r10, r1
- ldr r7, _08013518 @ =gUnknown_02024A68
- ldrb r7, [r7]
- cmp r5, r7
- bge _080134EC
- adds r7, r6, 0
- adds r6, r4, 0
- adds r4, r2, 0
- ldr r2, _08013518 @ =gUnknown_02024A68
-_080134CE:
- mov r0, r8
- ldrb r0, [r0]
- cmp r5, r0
- beq _080134E4
- adds r1, r3, r7
- adds r0, r5, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, r4
- strb r5, [r0]
- adds r3, 0x1
-_080134E4:
- adds r5, 0x1
- ldrb r1, [r2]
- cmp r5, r1
- blt _080134CE
-_080134EC:
- mov r2, r12
- mov r3, r9
- str r2, [r3]
- ldr r1, _0801351C @ =0x0001601d
- add r1, r10
- movs r0, 0
- strb r0, [r1]
- b _08013632
- .align 2, 0
-_080134FC: .4byte gUnknown_02024C18
-_08013500: .4byte gUnknown_02024A60
-_08013504: .4byte gUnknown_02024A76
-_08013508: .4byte gUnknown_02024A7A
-_0801350C: .4byte gUnknown_030042D4
-_08013510: .4byte bc_80154A0
-_08013514: .4byte 0x02000000
-_08013518: .4byte gUnknown_02024A68
-_0801351C: .4byte 0x0001601d
-_08013520:
- movs r0, 0
- mov r7, r8
- strb r0, [r7]
- ldr r1, _080135B0 @ =gUnknown_02024A68
- ldrb r0, [r1]
- cmp r0, 0
- beq _08013566
- ldr r6, _080135B4 @ =gUnknown_02024C18
- mov r2, r8
- ldr r5, _080135B8 @ =gUnknown_02024A76
- ldr r4, _080135BC @ =gUnknown_02024A7A
-_08013536:
- ldrb r0, [r2]
- adds r0, r6
- ldrb r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08013554
- adds r0, r3, r5
- strb r1, [r0]
- adds r1, r3, r4
- mov r7, r8
- ldrb r0, [r7]
- strb r0, [r1]
- adds r3, 0x1
-_08013554:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080135B0 @ =gUnknown_02024A68
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08013536
-_08013566:
- movs r0, 0
- mov r2, r8
- strb r0, [r2]
- ldr r7, _080135B0 @ =gUnknown_02024A68
- ldrb r0, [r7]
- cmp r0, 0
- beq _080135AA
- ldr r6, _080135B4 @ =gUnknown_02024C18
- ldr r5, _080135B8 @ =gUnknown_02024A76
- ldr r4, _080135BC @ =gUnknown_02024A7A
-_0801357A:
- ldrb r0, [r2]
- adds r0, r6
- ldrb r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08013598
- adds r0, r3, r5
- strb r1, [r0]
- adds r1, r3, r4
- mov r7, r8
- ldrb r0, [r7]
- strb r0, [r1]
- adds r3, 0x1
-_08013598:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080135B0 @ =gUnknown_02024A68
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801357A
-_080135AA:
- movs r5, 0
- b _08013618
- .align 2, 0
-_080135B0: .4byte gUnknown_02024A68
-_080135B4: .4byte gUnknown_02024C18
-_080135B8: .4byte gUnknown_02024A76
-_080135BC: .4byte gUnknown_02024A7A
-_080135C0:
- adds r4, r5, 0x1
- adds r7, r4, 0
- ldrb r1, [r1]
- cmp r7, r1
- bge _08013616
- ldr r6, _08013640 @ =gUnknown_02024A76
- lsls r2, r5, 24
- mov r8, r2
-_080135D0:
- ldr r0, _08013644 @ =gUnknown_02024A7A
- adds r1, r5, r0
- ldrb r3, [r1]
- adds r0, r4, r0
- ldrb r1, [r0]
- adds r0, r5, r6
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _0801360C
- adds r0, r4, r6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0801360C
- cmp r2, 0x2
- beq _0801360C
- cmp r0, 0x2
- beq _0801360C
- adds r0, r3, 0
- movs r2, 0
- bl b_first_side
- lsls r0, 24
- cmp r0, 0
- beq _0801360C
- lsls r1, r4, 24
- lsrs r1, 24
- mov r3, r8
- lsrs r0, r3, 24
- bl sub_8012FBC
-_0801360C:
- adds r4, 0x1
- ldr r0, _08013648 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _080135D0
-_08013616:
- adds r5, r7, 0
-_08013618:
- ldr r1, _08013648 @ =gUnknown_02024A68
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _080135C0
-_08013622:
- ldr r1, _0801364C @ =gUnknown_030042D4
- ldr r0, _08013650 @ =bc_80154A0
- str r0, [r1]
- ldr r0, _08013654 @ =0x02000000
- ldr r7, _08013658 @ =0x0001601d
- adds r0, r7
- movs r1, 0
- strb r1, [r0]
-_08013632:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013640: .4byte gUnknown_02024A76
-_08013644: .4byte gUnknown_02024A7A
-_08013648: .4byte gUnknown_02024A68
-_0801364C: .4byte gUnknown_030042D4
-_08013650: .4byte bc_80154A0
-_08013654: .4byte 0x02000000
-_08013658: .4byte 0x0001601d
- thumb_func_end sub_80133C8
-
- thumb_func_start sub_801365C
-sub_801365C: @ 801365C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080136B4 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080136B8 @ =gUnknown_02024A68
- ldrb r2, [r0]
- adds r5, r1, 0
- cmp r2, 0
- beq _08013754
- ldr r7, _080136BC @ =gUnknown_02024D28
- adds r6, r5, 0
- ldr r0, _080136C0 @ =gUnknown_02024AD0
- mov r12, r0
- ldr r1, _080136C4 @ =gUnknown_02024CA8
- mov r8, r1
- mov r10, r8
-_0801368A:
- mov r2, r9
- cmp r2, 0
- beq _080136C8
- ldrb r1, [r6]
- lsls r1, 4
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r6]
- lsls r1, 4
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08013724
- .align 2, 0
-_080136B4: .4byte gUnknown_02024A60
-_080136B8: .4byte gUnknown_02024A68
-_080136BC: .4byte gUnknown_02024D28
-_080136C0: .4byte gUnknown_02024AD0
-_080136C4: .4byte gUnknown_02024CA8
-_080136C8:
- ldrb r0, [r6]
- lsls r0, 4
- adds r2, r0, r7
- movs r1, 0
- mov r4, r10
- movs r3, 0
-_080136D4:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0xF
- bls _080136D4
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x16]
- cmp r0, 0
- beq _080136F2
- subs r0, 0x1
- strb r0, [r1, 0x16]
-_080136F2:
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x19]
- cmp r0, 0
- beq _08013724
- subs r0, 0x1
- strb r0, [r1, 0x19]
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x19]
- cmp r0, 0
- bne _08013724
- movs r0, 0x58
- muls r2, r0
- add r2, r12
- ldr r0, [r2]
- ldr r1, _0801376C @ =0xffbfffff
- ands r0, r1
- str r0, [r2]
-_08013724:
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- bne _08013742
- movs r0, 0x58
- muls r2, r0
- add r2, r12
- ldr r0, [r2]
- ldr r1, _08013770 @ =0xfeffffff
- ands r0, r1
- str r0, [r2]
-_08013742:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08013774 @ =gUnknown_02024A68
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801368A
-_08013754:
- movs r0, 0
- ldr r2, _08013778 @ =gUnknown_02024C80
- strb r0, [r2, 0x8]
- strb r0, [r2, 0x14]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801376C: .4byte 0xffbfffff
-_08013770: .4byte 0xfeffffff
-_08013774: .4byte gUnknown_02024A68
-_08013778: .4byte gUnknown_02024C80
- thumb_func_end sub_801365C
-
- thumb_func_start sub_801377C
-sub_801377C: @ 801377C
- push {r4-r6,lr}
- ldr r2, _080137C0 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r2]
- ldr r0, _080137C4 @ =gUnknown_02024A68
- ldrb r1, [r0]
- adds r6, r0, 0
- cmp r1, 0
- beq _080137BA
- adds r3, r2, 0
- movs r4, 0
- ldr r5, _080137C8 @ =gUnknown_02024D68
-_08013794:
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r5
- movs r1, 0
-_080137A0:
- adds r0, r2, r1
- strb r4, [r0]
- adds r1, 0x1
- cmp r1, 0x13
- bls _080137A0
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6]
- cmp r0, r1
- bcc _08013794
-_080137BA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080137C0: .4byte gUnknown_02024A60
-_080137C4: .4byte gUnknown_02024A68
-_080137C8: .4byte gUnknown_02024D68
- thumb_func_end sub_801377C
-
- thumb_func_start bc_80154A0
-bc_80154A0: @ 80137CC
- push {r4-r7,lr}
- ldr r0, _08013850 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _08013884
- ldr r0, _08013854 @ =0x02000000
- ldr r1, _08013858 @ =0x0001601d
- adds r2, r0, r1
- ldr r0, _0801385C @ =gUnknown_02024A68
- ldrb r1, [r2]
- adds r7, r0, 0
- ldrb r0, [r7]
- cmp r1, r0
- bcs _08013884
- ldr r6, _08013860 @ =gUnknown_02024A60
- ldr r5, _08013864 @ =gUnknown_02024C07
- adds r4, r2, 0
- movs r1, 0x84
- lsls r1, 1
- mov r12, r1
-_080137FA:
- ldrb r0, [r4]
- strb r0, [r5]
- strb r0, [r6]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08013868 @ =gUnknown_02024C60
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r12
- bne _0801387C
- ldr r1, _0801386C @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801387C
- ldr r2, _08013870 @ =gUnknown_02024CA8
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _0801387C
- ldr r0, _08013874 @ =gUnknown_02024D28
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- blt _0801387C
- ldr r0, _08013878 @ =gUnknown_081D94DA
- bl b_call_bc_move_exec
- b _080138BE
- .align 2, 0
-_08013850: .4byte gUnknown_02024C6C
-_08013854: .4byte 0x02000000
-_08013858: .4byte 0x0001601d
-_0801385C: .4byte gUnknown_02024A68
-_08013860: .4byte gUnknown_02024A60
-_08013864: .4byte gUnknown_02024C07
-_08013868: .4byte gUnknown_02024C60
-_0801386C: .4byte gBattleMons
-_08013870: .4byte gUnknown_02024CA8
-_08013874: .4byte gUnknown_02024D28
-_08013878: .4byte gUnknown_081D94DA
-_0801387C:
- ldrb r0, [r4]
- ldrb r2, [r7]
- cmp r0, r2
- bcc _080137FA
-_08013884:
- bl b_clear_atk_up_if_hit_flag_unless_enraged
- ldr r1, _080138C4 @ =gUnknown_02024A7E
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080138C8 @ =gUnknown_02024A7F
- ldr r0, _080138CC @ =gUnknown_02024A76
- movs r2, 0
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080138D0 @ =gUnknown_02024DEC
- movs r3, 0
- strh r2, [r0]
- ldr r1, _080138D4 @ =0x02000000
- ldr r2, _080138D8 @ =0x0001601c
- adds r0, r1, r2
- strb r3, [r0]
- ldr r2, _080138DC @ =gUnknown_030042D4
- ldr r0, _080138E0 @ =sub_80138F0
- str r0, [r2]
- ldr r0, _080138E4 @ =gUnknown_02024D1E
- strb r3, [r0, 0x3]
- strb r3, [r0, 0x4]
- ldr r2, _080138E8 @ =0x00016112
- adds r0, r1, r2
- strb r3, [r0]
- ldr r0, _080138EC @ =0x00017130
- adds r1, r0
- strb r3, [r1]
-_080138BE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080138C4: .4byte gUnknown_02024A7E
-_080138C8: .4byte gUnknown_02024A7F
-_080138CC: .4byte gUnknown_02024A76
-_080138D0: .4byte gUnknown_02024DEC
-_080138D4: .4byte 0x02000000
-_080138D8: .4byte 0x0001601c
-_080138DC: .4byte gUnknown_030042D4
-_080138E0: .4byte sub_80138F0
-_080138E4: .4byte gUnknown_02024D1E
-_080138E8: .4byte 0x00016112
-_080138EC: .4byte 0x00017130
- thumb_func_end bc_80154A0
-
- thumb_func_start sub_80138F0
-sub_80138F0: @ 80138F0
- push {r4-r6,lr}
- ldr r6, _08013944 @ =gUnknown_02024D26
- ldrb r0, [r6]
- ldr r2, _08013948 @ =gUnknown_02024A7F
- cmp r0, 0
- beq _08013900
- movs r0, 0xC
- strb r0, [r2]
-_08013900:
- ldr r1, _0801394C @ =0x02000000
- ldr r4, _08013950 @ =gUnknown_02024A7E
- ldrb r0, [r4]
- ldr r3, _08013954 @ =0x00016057
- adds r5, r1, r3
- strb r0, [r5]
- ldr r1, _08013958 @ =gUnknown_081FA640
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _0801395C @ =gUnknown_02024A68
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08013970
- ldr r2, _08013960 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08013964 @ =0xffefffff
- ands r0, r1
- str r0, [r2]
- ldr r3, _08013968 @ =gUnknown_030042D4
- ldr r2, _0801396C @ =gUnknown_081FA678
- ldrb r1, [r6]
- movs r0, 0x7F
- ands r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- b _08013984
- .align 2, 0
-_08013944: .4byte gUnknown_02024D26
-_08013948: .4byte gUnknown_02024A7F
-_0801394C: .4byte 0x02000000
-_08013950: .4byte gUnknown_02024A7E
-_08013954: .4byte 0x00016057
-_08013958: .4byte gUnknown_081FA640
-_0801395C: .4byte gUnknown_02024A68
-_08013960: .4byte gUnknown_02024C6C
-_08013964: .4byte 0xffefffff
-_08013968: .4byte gUnknown_030042D4
-_0801396C: .4byte gUnknown_081FA678
-_08013970:
- ldrb r0, [r5]
- cmp r0, r1
- beq _08013984
- ldr r2, _0801398C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08013990 @ =0xfffffdff
- ands r0, r1
- ldr r1, _08013994 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
-_08013984:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801398C: .4byte gUnknown_02024C6C
-_08013990: .4byte 0xfffffdff
-_08013994: .4byte 0xfff7ffff
- thumb_func_end sub_80138F0
-
- thumb_func_start sub_8013998
-sub_8013998: @ 8013998
- push {r4,lr}
- ldr r1, _080139D0 @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080139D4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080139EC
- ldr r1, _080139D8 @ =gUnknown_030041C0
- ldr r4, _080139DC @ =gUnknown_02024D26
- ldrb r0, [r4]
- strb r0, [r1]
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _080139E0 @ =gUnknown_02024C07
- strb r0, [r1]
- ldr r1, _080139E4 @ =gUnknown_02024C10
- ldr r0, _080139E8 @ =gUnknown_081D8E02
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4]
- b _08013B48
- .align 2, 0
-_080139D0: .4byte gUnknown_02024A7F
-_080139D4: .4byte gUnknown_020239F8
-_080139D8: .4byte gUnknown_030041C0
-_080139DC: .4byte gUnknown_02024D26
-_080139E0: .4byte gUnknown_02024C07
-_080139E4: .4byte gUnknown_02024C10
-_080139E8: .4byte gUnknown_081D8E02
-_080139EC:
- movs r0, 0x90
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _08013A04
- ldr r1, _080139FC @ =gUnknown_02024C10
- ldr r0, _08013A00 @ =gUnknown_081D8E0D
- b _08013B46
- .align 2, 0
-_080139FC: .4byte gUnknown_02024C10
-_08013A00: .4byte gUnknown_081D8E0D
-_08013A04:
- movs r0, 0xA
- ands r0, r1
- cmp r0, 0x8
- beq _08013A0E
- b _08013B42
-_08013A0E:
- bl sub_80325B8
- ldr r1, _08013A3C @ =gUnknown_02024C10
- ldr r0, _08013A40 @ =gUnknown_081D8DBE
- str r0, [r1]
- ldr r2, _08013A44 @ =gTrainers
- ldr r0, _08013A48 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- subs r0, 0x2
- cmp r0, 0x31
- bls _08013A30
- b _08013B38
-_08013A30:
- lsls r0, 2
- ldr r1, _08013A4C @ =_08013A50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08013A3C: .4byte gUnknown_02024C10
-_08013A40: .4byte gUnknown_081D8DBE
-_08013A44: .4byte gTrainers
-_08013A48: .4byte gTrainerBattleOpponent
-_08013A4C: .4byte _08013A50
- .align 2, 0
-_08013A50:
- .4byte _08013B24
- .4byte _08013B24
- .4byte _08013B24
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B18
- .4byte _08013B2E
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B18
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B24
- .4byte _08013B24
- .4byte _08013B24
-_08013B18:
- ldr r0, _08013B20 @ =0x00000163
- bl PlayBGM
- b _08013B48
- .align 2, 0
-_08013B20: .4byte 0x00000163
-_08013B24:
- movs r0, 0xD4
- lsls r0, 1
- bl PlayBGM
- b _08013B48
-_08013B2E:
- movs r0, 0xB1
- lsls r0, 1
- bl PlayBGM
- b _08013B48
-_08013B38:
- movs r0, 0xCE
- lsls r0, 1
- bl PlayBGM
- b _08013B48
-_08013B42:
- ldr r1, _08013B54 @ =gUnknown_02024C10
- ldr r0, _08013B58 @ =gUnknown_081D8DCE
-_08013B46:
- str r0, [r1]
-_08013B48:
- ldr r1, _08013B5C @ =gUnknown_030042D4
- ldr r0, _08013B60 @ =sub_8013C9C
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08013B54: .4byte gUnknown_02024C10
-_08013B58: .4byte gUnknown_081D8DCE
-_08013B5C: .4byte gUnknown_030042D4
-_08013B60: .4byte sub_8013C9C
- thumb_func_end sub_8013998
-
- thumb_func_start sub_8013B64
-sub_8013B64: @ 8013B64
- push {r4,lr}
- ldr r1, _08013B9C @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08013BA0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08013BB8
- ldr r1, _08013BA4 @ =gUnknown_030041C0
- ldr r4, _08013BA8 @ =gUnknown_02024D26
- ldrb r0, [r4]
- strb r0, [r1]
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08013BAC @ =gUnknown_02024C07
- strb r0, [r1]
- ldr r1, _08013BB0 @ =gUnknown_02024C10
- ldr r0, _08013BB4 @ =gUnknown_081D8E02
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4]
- b _08013BBE
- .align 2, 0
-_08013B9C: .4byte gUnknown_02024A7F
-_08013BA0: .4byte gUnknown_020239F8
-_08013BA4: .4byte gUnknown_030041C0
-_08013BA8: .4byte gUnknown_02024D26
-_08013BAC: .4byte gUnknown_02024C07
-_08013BB0: .4byte gUnknown_02024C10
-_08013BB4: .4byte gUnknown_081D8E02
-_08013BB8:
- ldr r1, _08013BCC @ =gUnknown_02024C10
- ldr r0, _08013BD0 @ =gUnknown_081D8DD1
- str r0, [r1]
-_08013BBE:
- ldr r1, _08013BD4 @ =gUnknown_030042D4
- ldr r0, _08013BD8 @ =sub_8013C9C
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08013BCC: .4byte gUnknown_02024C10
-_08013BD0: .4byte gUnknown_081D8DD1
-_08013BD4: .4byte gUnknown_030042D4
-_08013BD8: .4byte sub_8013C9C
- thumb_func_end sub_8013B64
-
- thumb_func_start sub_8013BDC
-sub_8013BDC: @ 8013BDC
- push {lr}
- ldr r1, _08013C04 @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08013C08 @ =gUnknown_02024D28
- ldr r0, _08013C0C @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 27
- lsrs r0, 30
- cmp r0, 0x1
- beq _08013C18
- cmp r0, 0x2
- beq _08013C28
- ldr r1, _08013C10 @ =gUnknown_02024C10
- ldr r0, _08013C14 @ =gUnknown_081D8E29
- b _08013C2C
- .align 2, 0
-_08013C04: .4byte gUnknown_02024A7F
-_08013C08: .4byte gUnknown_02024D28
-_08013C0C: .4byte gUnknown_02024C07
-_08013C10: .4byte gUnknown_02024C10
-_08013C14: .4byte gUnknown_081D8E29
-_08013C18:
- ldr r1, _08013C20 @ =gUnknown_02024C10
- ldr r0, _08013C24 @ =gUnknown_081D8E14
- b _08013C2C
- .align 2, 0
-_08013C20: .4byte gUnknown_02024C10
-_08013C24: .4byte gUnknown_081D8E14
-_08013C28:
- ldr r1, _08013C38 @ =gUnknown_02024C10
- ldr r0, _08013C3C @ =gUnknown_081D8E22
-_08013C2C:
- str r0, [r1]
- ldr r1, _08013C40 @ =gUnknown_030042D4
- ldr r0, _08013C44 @ =sub_8013C9C
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08013C38: .4byte gUnknown_02024C10
-_08013C3C: .4byte gUnknown_081D8E22
-_08013C40: .4byte gUnknown_030042D4
-_08013C44: .4byte sub_8013C9C
- thumb_func_end sub_8013BDC
-
- thumb_func_start sub_8013C48
-sub_8013C48: @ 8013C48
- ldr r1, _08013C7C @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08013C80 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- ldr r2, _08013C84 @ =gUnknown_02024C07
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _08013C88 @ =gUnknown_02024A6A
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08013C8C @ =gUnknown_02024C10
- ldr r0, _08013C90 @ =gUnknown_081D8E30
- str r0, [r1]
- ldr r1, _08013C94 @ =gUnknown_030042D4
- ldr r0, _08013C98 @ =sub_8013C9C
- str r0, [r1]
- bx lr
- .align 2, 0
-_08013C7C: .4byte gUnknown_02024A7F
-_08013C80: .4byte gUnknown_030041C0
-_08013C84: .4byte gUnknown_02024C07
-_08013C88: .4byte gUnknown_02024A6A
-_08013C8C: .4byte gUnknown_02024C10
-_08013C90: .4byte gUnknown_081D8E30
-_08013C94: .4byte gUnknown_030042D4
-_08013C98: .4byte sub_8013C9C
- thumb_func_end sub_8013C48
-
- thumb_func_start sub_8013C9C
-sub_8013C9C: @ 8013C9C
- push {r4-r7,lr}
- ldr r0, _08013D00 @ =gUnknown_02024A7F
- ldrb r0, [r0]
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08013D7C
- ldr r0, _08013D04 @ =gUnknown_020239F8
- ldrh r0, [r0]
- ldr r1, _08013D08 @ =0x00000b92
- ands r1, r0
- cmp r1, 0
- bne _08013D4C
- ldr r2, _08013D0C @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _08013D10 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08013D48
- adds r4, r2, 0
- ldr r6, _08013D14 @ =gBattleMons
- movs r5, 0x58
- adds r7, r6, 0
- adds r7, 0x30
-_08013CCE:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08013D36
- ldr r2, _08013D18 @ =gUnknown_030042E0
- ldrh r0, [r2, 0x6]
- cmp r0, 0
- bne _08013D1C
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- adds r0, r2, 0
- adds r0, 0x8
- bl StringCopy
- b _08013D36
- .align 2, 0
-_08013D00: .4byte gUnknown_02024A7F
-_08013D04: .4byte gUnknown_020239F8
-_08013D08: .4byte 0x00000b92
-_08013D0C: .4byte gUnknown_02024A60
-_08013D10: .4byte gUnknown_02024A68
-_08013D14: .4byte gBattleMons
-_08013D18: .4byte gUnknown_030042E0
-_08013D1C:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r2, 0x26]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- adds r0, r2, 0
- adds r0, 0x14
- bl StringCopy
-_08013D36:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08013D68 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08013CCE
-_08013D48:
- bl sub_80BDEC8
-_08013D4C:
- movs r0, 0x3
- bl BeginFastPaletteFade
- movs r0, 0x5
- bl FadeOutMapMusic
- ldr r1, _08013D6C @ =gUnknown_030042D4
- ldr r0, _08013D70 @ =sub_8013DA8
- str r0, [r1]
- ldr r1, _08013D74 @ =gUnknown_03005E94
- ldr r0, _08013D78 @ =sub_800F808
- str r0, [r1]
- b _08013D96
- .align 2, 0
-_08013D68: .4byte gUnknown_02024A68
-_08013D6C: .4byte gUnknown_030042D4
-_08013D70: .4byte sub_8013DA8
-_08013D74: .4byte gUnknown_03005E94
-_08013D78: .4byte sub_800F808
-_08013D7C:
- ldr r0, _08013D9C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08013D96
- ldr r1, _08013DA0 @ =gUnknown_081FA73C
- ldr r0, _08013DA4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08013D96:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013D9C: .4byte gUnknown_02024A64
-_08013DA0: .4byte gUnknown_081FA73C
-_08013DA4: .4byte gUnknown_02024C10
- thumb_func_end sub_8013C9C
-
- thumb_func_start sub_8013DA8
-sub_8013DA8: @ 8013DA8
- push {lr}
- ldr r0, _08013DD0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08013DEA
- bl ResetSpriteData
- ldr r0, _08013DD4 @ =gUnknown_03004324
- ldrb r0, [r0]
- cmp r0, 0
- beq _08013DCA
- ldr r0, _08013DD8 @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08013DE4
-_08013DCA:
- ldr r1, _08013DDC @ =gUnknown_030042D4
- ldr r0, _08013DE0 @ =c4_overworld
- b _08013DE8
- .align 2, 0
-_08013DD0: .4byte gPaletteFade
-_08013DD4: .4byte gUnknown_03004324
-_08013DD8: .4byte gUnknown_02024D26
-_08013DDC: .4byte gUnknown_030042D4
-_08013DE0: .4byte c4_overworld
-_08013DE4:
- ldr r1, _08013DF0 @ =gUnknown_030042D4
- ldr r0, _08013DF4 @ =bc_evolution_cutscene
-_08013DE8:
- str r0, [r1]
-_08013DEA:
- pop {r0}
- bx r0
- .align 2, 0
-_08013DF0: .4byte gUnknown_030042D4
-_08013DF4: .4byte bc_evolution_cutscene
- thumb_func_end sub_8013DA8
-
- thumb_func_start bc_evolution_cutscene
-bc_evolution_cutscene: @ 8013DF8
- push {r4,r5,lr}
- ldr r0, _08013E4C @ =gUnknown_03004324
- ldrb r1, [r0]
- adds r3, r0, 0
- cmp r1, 0
- beq _08013E6E
-_08013E04:
- movs r5, 0
-_08013E06:
- ldrb r2, [r3]
- ldr r0, _08013E50 @ =gBitTable
- lsls r1, r5, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08013E60
- bics r2, r1
- strb r2, [r3]
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08013E54 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08013E60
- ldr r0, _08013E58 @ =gUnknown_030042D4
- ldr r1, _08013E5C @ =sub_8013E88
- str r1, [r0]
- lsls r3, r5, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r2, 0
- movs r2, 0x81
- bl EvolutionScene
- b _08013E74
- .align 2, 0
-_08013E4C: .4byte gUnknown_03004324
-_08013E50: .4byte gBitTable
-_08013E54: .4byte gPlayerParty
-_08013E58: .4byte gUnknown_030042D4
-_08013E5C: .4byte sub_8013E88
-_08013E60:
- adds r5, 0x1
- ldr r3, _08013E7C @ =gUnknown_03004324
- cmp r5, 0x5
- ble _08013E06
- ldrb r0, [r3]
- cmp r0, 0
- bne _08013E04
-_08013E6E:
- ldr r1, _08013E80 @ =gUnknown_030042D4
- ldr r0, _08013E84 @ =c4_overworld
- str r0, [r1]
-_08013E74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08013E7C: .4byte gUnknown_03004324
-_08013E80: .4byte gUnknown_030042D4
-_08013E84: .4byte c4_overworld
- thumb_func_end bc_evolution_cutscene
-
- thumb_func_start sub_8013E88
-sub_8013E88: @ 8013E88
- push {lr}
- ldr r0, _08013EA0 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08013EA4 @ =sub_800F808
- cmp r1, r0
- bne _08013E9A
- ldr r1, _08013EA8 @ =gUnknown_030042D4
- ldr r0, _08013EAC @ =bc_evolution_cutscene
- str r0, [r1]
-_08013E9A:
- pop {r0}
- bx r0
- .align 2, 0
-_08013EA0: .4byte gMain
-_08013EA4: .4byte sub_800F808
-_08013EA8: .4byte gUnknown_030042D4
-_08013EAC: .4byte bc_evolution_cutscene
- thumb_func_end sub_8013E88
-
- thumb_func_start c4_overworld
-c4_overworld: @ 8013EB0
- push {r4-r6,lr}
- ldr r5, _08013F30 @ =gUnknown_020239F8
- ldrh r1, [r5]
- movs r6, 0x2
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _08013ECE
- ldr r4, _08013F34 @ =gPlayerParty
- adds r0, r4, 0
- bl RandomlyGivePartyPokerus
- adds r0, r4, 0
- bl PartySpreadPokerus
-_08013ECE:
- ldrh r4, [r5]
- adds r0, r6, 0
- ands r0, r4
- cmp r0, 0
- beq _08013EE0
- ldr r0, _08013F38 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08013F2A
-_08013EE0:
- ldr r1, _08013F3C @ =gScriptResult
- ldr r5, _08013F40 @ =gUnknown_02024D26
- ldrb r0, [r5]
- strh r0, [r1]
- ldr r3, _08013F44 @ =gMain
- ldr r0, _08013F48 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08013F4C @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r3]
- movs r0, 0x80
- lsls r0, 3
- ands r0, r4
- cmp r0, 0
- beq _08013F1C
- ldr r0, _08013F50 @ =gEnemyParty
- bl sub_8134504
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _08013F18
- cmp r0, 0x7
- bne _08013F1C
-_08013F18:
- bl sub_813452C
-_08013F1C:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r0, _08013F44 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_08013F2A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08013F30: .4byte gUnknown_020239F8
-_08013F34: .4byte gPlayerParty
-_08013F38: .4byte gReceivedRemoteLinkPlayers
-_08013F3C: .4byte gScriptResult
-_08013F40: .4byte gUnknown_02024D26
-_08013F44: .4byte gMain
-_08013F48: .4byte 0x0000043d
-_08013F4C: .4byte gUnknown_030042D0
-_08013F50: .4byte gEnemyParty
- thumb_func_end c4_overworld
-
- thumb_func_start sub_8013F54
-sub_8013F54: @ 8013F54
- push {lr}
- ldr r0, _08013F84 @ =gUnknown_02024A7F
- ldrb r0, [r0]
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08013F90
- ldr r2, _08013F88 @ =0x02017140
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _08013F74
- subs r0, 0x1
- strb r0, [r1]
-_08013F74:
- ldr r0, _08013F8C @ =gUnknown_030042D4
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- b _08013FAA
- .align 2, 0
-_08013F84: .4byte gUnknown_02024A7F
-_08013F88: .4byte 0x02017140
-_08013F8C: .4byte gUnknown_030042D4
-_08013F90:
- ldr r0, _08013FB0 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08013FAA
- ldr r1, _08013FB4 @ =gUnknown_081FA73C
- ldr r0, _08013FB8 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08013FAA:
- pop {r0}
- bx r0
- .align 2, 0
-_08013FB0: .4byte gUnknown_02024A64
-_08013FB4: .4byte gUnknown_081FA73C
-_08013FB8: .4byte gUnknown_02024C10
- thumb_func_end sub_8013F54
-
- thumb_func_start sub_8013FBC
-sub_8013FBC: @ 8013FBC
- push {lr}
- ldr r0, _08013FDC @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08013FD8
- ldr r1, _08013FE0 @ =gUnknown_081FA73C
- ldr r0, _08013FE4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08013FD8:
- pop {r0}
- bx r0
- .align 2, 0
-_08013FDC: .4byte gUnknown_02024A64
-_08013FE0: .4byte gUnknown_081FA73C
-_08013FE4: .4byte gUnknown_02024C10
- thumb_func_end sub_8013FBC
-
- thumb_func_start sub_8013FE8
-sub_8013FE8: @ 8013FE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0x4
- str r0, [sp]
- ldr r7, _08014028 @ =gUnknown_02024C07
- ldr r1, _0801402C @ =gUnknown_02024A7A
- ldr r0, _08014030 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r7]
- ldr r1, _08014034 @ =0x02000000
- mov r10, r1
- ldr r0, _08014038 @ =0x000160a6
- add r0, r10
- ldrb r2, [r0]
- ldr r1, _0801403C @ =gBitTable
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _08014044
- ldr r1, _08014040 @ =gUnknown_02024A7F
- movs r0, 0xC
- b _080146CC
- .align 2, 0
-_08014028: .4byte gUnknown_02024C07
-_0801402C: .4byte gUnknown_02024A7A
-_08014030: .4byte gUnknown_02024A7E
-_08014034: .4byte 0x02000000
-_08014038: .4byte 0x000160a6
-_0801403C: .4byte gBitTable
-_08014040: .4byte gUnknown_02024A7F
-_08014044:
- ldr r1, _080140B8 @ =gCritMultiplier
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080140BC @ =0x0001601f
- add r1, r10
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080140C0 @ =0x000160e7
- add r0, r10
- strb r2, [r0]
- ldr r0, _080140C4 @ =gUnknown_02024C68
- strb r2, [r0]
- ldr r0, _080140C8 @ =gUnknown_02024C0E
- strb r2, [r0]
- ldr r0, _080140CC @ =gUnknown_02024D1E
- strb r2, [r0, 0x6]
- ldr r3, _080140D0 @ =gUnknown_02024BE4
- ldrb r0, [r7]
- ldr r2, _080140D4 @ =0x0001608c
- adds r0, r2
- add r0, r10
- ldrb r0, [r0]
- ldr r4, _080140D8 @ =gUnknown_02024BE5
- strb r0, [r4]
- strb r0, [r3]
- ldr r1, _080140DC @ =gUnknown_02024D28
- ldrb r2, [r7]
- lsls r0, r2, 4
- adds r5, r0, r1
- ldrb r1, [r5]
- lsls r0, r1, 29
- adds r4, r2, 0
- mov r8, r3
- cmp r0, 0
- bge _080140F0
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r5]
- ldr r2, _080140E0 @ =gUnknown_02024BE6
- ldr r1, _080140E4 @ =gUnknown_02024BE8
- movs r0, 0xA5
- strh r0, [r1]
- strh r0, [r2]
- ldr r2, _080140E8 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 4
- orrs r0, r1
- str r0, [r2]
- movs r0, 0xA5
- movs r1, 0
- bl sub_801B5C0
- ldrb r1, [r7]
- ldr r2, _080140EC @ =0x00016010
- adds r1, r2
- b _08014200
- .align 2, 0
-_080140B8: .4byte gCritMultiplier
-_080140BC: .4byte 0x0001601f
-_080140C0: .4byte 0x000160e7
-_080140C4: .4byte gUnknown_02024C68
-_080140C8: .4byte gUnknown_02024C0E
-_080140CC: .4byte gUnknown_02024D1E
-_080140D0: .4byte gUnknown_02024BE4
-_080140D4: .4byte 0x0001608c
-_080140D8: .4byte gUnknown_02024BE5
-_080140DC: .4byte gUnknown_02024D28
-_080140E0: .4byte gUnknown_02024BE6
-_080140E4: .4byte gUnknown_02024BE8
-_080140E8: .4byte gUnknown_02024C6C
-_080140EC: .4byte 0x00016010
-_080140F0:
- ldr r1, _08014128 @ =gBattleMons
- movs r0, 0x58
- adds r5, r4, 0
- muls r5, r0
- adds r0, r1, 0
- adds r0, 0x50
- adds r0, r5, r0
- ldr r2, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r2
- cmp r0, 0
- bne _08014114
- movs r6, 0x80
- lsls r6, 15
- ands r6, r2
- cmp r6, 0
- beq _08014138
-_08014114:
- ldr r3, _0801412C @ =gUnknown_02024BE6
- ldr r2, _08014130 @ =gUnknown_02024BE8
- ldr r1, _08014134 @ =gUnknown_02024C54
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- strh r0, [r3]
- b _08014280
- .align 2, 0
-_08014128: .4byte gBattleMons
-_0801412C: .4byte gUnknown_02024BE6
-_08014130: .4byte gUnknown_02024BE8
-_08014134: .4byte gUnknown_02024C54
-_08014138:
- ldr r3, _08014188 @ =gUnknown_02024CA8
- mov r12, r3
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r2, r0, r3
- ldrh r4, [r2, 0x6]
- adds r1, r4, 0
- cmp r1, 0
- beq _08014218
- ldrb r3, [r2, 0xC]
- lsls r0, r3, 1
- adds r0, r5
- str r0, [sp, 0x8]
- ldr r0, _0801418C @ =gBattleMons
- adds r0, 0xC
- mov r9, r0
- ldr r0, [sp, 0x8]
- add r0, r9
- ldrh r0, [r0]
- cmp r1, r0
- bne _080141A0
- ldr r1, _08014190 @ =gUnknown_02024BE6
- ldr r0, _08014194 @ =gUnknown_02024BE8
- strh r4, [r0]
- strh r4, [r1]
- ldrb r0, [r2, 0xC]
- ldr r2, _08014198 @ =gUnknown_02024BE5
- strb r0, [r2]
- mov r3, r8
- strb r0, [r3]
- ldrh r0, [r1]
- movs r1, 0
- bl sub_801B5C0
- ldrb r1, [r7]
- ldr r4, _0801419C @ =0x00016010
- adds r1, r4
- b _08014200
- .align 2, 0
-_08014188: .4byte gUnknown_02024CA8
-_0801418C: .4byte gBattleMons
-_08014190: .4byte gUnknown_02024BE6
-_08014194: .4byte gUnknown_02024BE8
-_08014198: .4byte gUnknown_02024BE5
-_0801419C: .4byte 0x00016010
-_080141A0:
- cmp r1, 0
- beq _08014218
- cmp r1, r0
- beq _08014218
- ldr r0, _08014208 @ =gUnknown_02024BE5
- strb r3, [r0]
- mov r1, r8
- strb r3, [r1]
- ldr r3, _0801420C @ =gUnknown_02024BE6
- ldr r1, _08014210 @ =gUnknown_02024BE8
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r5
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- strh r0, [r3]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- movs r2, 0
- strh r6, [r0, 0x6]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- strb r2, [r0, 0xC]
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r12
- ldrb r2, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xE]
- ldrh r0, [r3]
- movs r1, 0
- bl sub_801B5C0
- ldrb r1, [r7]
- ldr r3, _08014214 @ =0x00016010
- adds r1, r3
-_08014200:
- add r1, r10
- strb r0, [r1]
- b _08014280
- .align 2, 0
-_08014208: .4byte gUnknown_02024BE5
-_0801420C: .4byte gUnknown_02024BE6
-_08014210: .4byte gUnknown_02024BE8
-_08014214: .4byte 0x00016010
-_08014218:
- mov r4, r8
- ldrb r0, [r4]
- lsls r0, 1
- ldr r4, _0801425C @ =gUnknown_02024C07
- ldrb r2, [r4]
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- ldr r1, _08014260 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldr r1, _08014264 @ =gUnknown_02024C60
- lsls r2, 1
- adds r2, r1
- ldrh r3, [r0]
- ldrh r2, [r2]
- cmp r3, r2
- beq _08014278
- ldr r1, _08014268 @ =gUnknown_02024BE6
- ldr r0, _0801426C @ =gUnknown_02024BE8
- strh r3, [r0]
- strh r3, [r1]
- ldrh r0, [r1]
- movs r1, 0
- bl sub_801B5C0
- ldr r2, _08014270 @ =0x02000000
- ldrb r1, [r4]
- ldr r3, _08014274 @ =0x00016010
- adds r1, r3
- adds r1, r2
- strb r0, [r1]
- b _08014280
- .align 2, 0
-_0801425C: .4byte gUnknown_02024C07
-_08014260: .4byte gBattleMons
-_08014264: .4byte gUnknown_02024C60
-_08014268: .4byte gUnknown_02024BE6
-_0801426C: .4byte gUnknown_02024BE8
-_08014270: .4byte 0x02000000
-_08014274: .4byte 0x00016010
-_08014278:
- ldr r1, _08014298 @ =gUnknown_02024BE6
- ldr r0, _0801429C @ =gUnknown_02024BE8
- strh r3, [r0]
- strh r3, [r1]
-_08014280:
- ldr r0, _080142A0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080142A8
- ldr r0, _080142A4 @ =gUnknown_030042E0
- ldr r1, _08014298 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0, 0x22]
- b _080142B0
- .align 2, 0
-_08014298: .4byte gUnknown_02024BE6
-_0801429C: .4byte gUnknown_02024BE8
-_080142A0: .4byte gUnknown_02024C07
-_080142A4: .4byte gUnknown_030042E0
-_080142A8:
- ldr r0, _08014314 @ =gUnknown_030042E0
- ldr r1, _08014318 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0, 0x24]
-_080142B0:
- ldr r4, _0801431C @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08014320 @ =gUnknown_02024C80
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r1
- ldrb r0, [r5, 0x8]
- adds r3, r4, 0
- cmp r0, 0
- beq _08014330
- ldr r2, _08014324 @ =gBattleMoves
- ldr r0, _08014318 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _08014330
- ldrb r0, [r3]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r5, 0x9]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08014330
- ldr r1, _08014328 @ =gBattleMons
- ldrb r2, [r5, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08014330
- ldr r0, _0801432C @ =gUnknown_02024C08
- strb r2, [r0]
- b _080146AC
- .align 2, 0
-_08014314: .4byte gUnknown_030042E0
-_08014318: .4byte gUnknown_02024BE6
-_0801431C: .4byte gUnknown_02024C07
-_08014320: .4byte gUnknown_02024C80
-_08014324: .4byte gBattleMoves
-_08014328: .4byte gBattleMons
-_0801432C: .4byte gUnknown_02024C08
-_08014330:
- ldr r2, _08014454 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- ldr r3, _08014458 @ =gUnknown_02024C07
- mov r9, r2
- cmp r0, 0
- bne _08014342
- b _0801461C
-_08014342:
- ldr r1, _0801445C @ =gUnknown_02024C80
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r7, [r0, 0x8]
- cmp r7, 0
- beq _08014354
- b _08014570
-_08014354:
- ldr r2, _08014460 @ =gBattleMoves
- ldr r0, _08014464 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08014370
- ldrb r0, [r4, 0x6]
- cmp r0, 0x10
- bne _08014370
- b _08014570
-_08014370:
- ldr r3, _08014468 @ =gBattleMons
- ldr r0, _0801446C @ =0x02000000
- mov r8, r0
- ldr r2, _08014458 @ =gUnknown_02024C07
- ldrb r5, [r2]
- ldr r1, _08014470 @ =0x00016010
- adds r0, r5, r1
- add r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r2, 0
- cmp r0, 0x1F
- bne _08014394
- b _08014570
-_08014394:
- ldrb r0, [r4, 0x2]
- cmp r0, 0xD
- beq _0801439C
- b _08014570
-_0801439C:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08014474 @ =gUnknown_02024A60
- strb r7, [r1]
- ldr r0, _08014478 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcs _08014416
- adds r4, r1, 0
- mov r5, r8
-_080143B6:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08014404
- ldr r0, _08014458 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _08014470 @ =0x00016010
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- ldrb r3, [r4]
- cmp r0, r3
- beq _08014404
- ldr r1, _08014468 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1F
- bne _08014404
- adds r0, r2, 0
- bl sub_801E3B4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r0, r1
- bcs _08014404
- ldrb r0, [r4]
- bl sub_801E3B4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_08014404:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08014478 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080143B6
-_08014416:
- ldr r2, [sp]
- cmp r2, 0x4
- beq _0801441E
- b _08014522
-_0801441E:
- ldr r2, _08014460 @ =gBattleMoves
- ldr r0, _0801447C @ =gUnknown_02024BE8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- ldr r3, [sp]
- ands r3, r0
- cmp r3, 0
- beq _080144A4
- ldr r0, _08014458 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08014484
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08014480
- movs r0, 0x1
- b _08014496
- .align 2, 0
-_08014454: .4byte gUnknown_020239F8
-_08014458: .4byte gUnknown_02024C07
-_0801445C: .4byte gUnknown_02024C80
-_08014460: .4byte gBattleMoves
-_08014464: .4byte gUnknown_02024BE6
-_08014468: .4byte gBattleMons
-_0801446C: .4byte 0x02000000
-_08014470: .4byte 0x00016010
-_08014474: .4byte gUnknown_02024A60
-_08014478: .4byte gUnknown_02024A68
-_0801447C: .4byte gUnknown_02024BE8
-_08014480:
- movs r0, 0x3
- b _08014496
-_08014484:
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08014494
- movs r0, 0
- b _08014496
-_08014494:
- movs r0, 0x2
-_08014496:
- bl battle_get_side_with_given_state
- ldr r1, _080144A0 @ =gUnknown_02024C08
- strb r0, [r1]
- b _080144B6
- .align 2, 0
-_080144A0: .4byte gUnknown_02024C08
-_080144A4:
- ldr r2, _080144EC @ =gUnknown_02024C08
- ldr r1, _080144F0 @ =0x02000000
- ldr r0, _080144F4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r4, _080144F8 @ =0x00016010
- adds r0, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
-_080144B6:
- ldr r7, _080144FC @ =gUnknown_02024C0C
- ldrb r0, [r7]
- ldr r1, _08014500 @ =gBitTable
- mov r8, r1
- ldr r5, _080144EC @ =gUnknown_02024C08
- ldrb r1, [r5]
- lsls r1, 2
- add r1, r8
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _080144D0
- b _080146AC
-_080144D0:
- ldr r6, _080144F4 @ =gUnknown_02024C07
- ldrb r0, [r6]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08014504
- ldrb r0, [r5]
- b _0801469A
- .align 2, 0
-_080144EC: .4byte gUnknown_02024C08
-_080144F0: .4byte 0x02000000
-_080144F4: .4byte gUnknown_02024C07
-_080144F8: .4byte 0x00016010
-_080144FC: .4byte gUnknown_02024C0C
-_08014500: .4byte gBitTable
-_08014504:
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- strb r0, [r5]
- ldrb r1, [r7]
- ldrb r2, [r5]
- lsls r0, r2, 2
- add r0, r8
- b _08014690
-_08014522:
- ldr r4, _0801455C @ =gUnknown_02024A60
- ldr r0, _08014560 @ =gUnknown_02024A7A
- ldr r2, [sp]
- adds r0, r2, r0
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r0, [r4]
- ldr r2, _08014564 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- adds r1, 0x20
- ldrb r1, [r1]
- bl sub_81074C4
- ldr r2, _08014568 @ =gUnknown_02024D68
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _0801456C @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r1]
- b _080146AC
- .align 2, 0
-_0801455C: .4byte gUnknown_02024A60
-_08014560: .4byte gUnknown_02024A7A
-_08014564: .4byte gBattleMons
-_08014568: .4byte gUnknown_02024D68
-_0801456C: .4byte gUnknown_02024C08
-_08014570:
- mov r4, r9
- ldrh r1, [r4]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0801461C
- ldr r2, _080145B4 @ =gBattleMoves
- ldr r0, _080145B8 @ =gUnknown_02024BE8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801461C
- ldrb r0, [r3]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080145C0
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _080145BC
- movs r0, 0x1
- b _080145D2
- .align 2, 0
-_080145B4: .4byte gBattleMoves
-_080145B8: .4byte gUnknown_02024BE8
-_080145BC:
- movs r0, 0x3
- b _080145D2
-_080145C0:
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _080145D0
- movs r0, 0
- b _080145D2
-_080145D0:
- movs r0, 0x2
-_080145D2:
- bl battle_get_side_with_given_state
- ldr r1, _0801460C @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r0, _08014610 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08014614 @ =gBitTable
- ldr r5, _0801460C @ =gUnknown_02024C08
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080146AC
- ldr r0, _08014618 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080146AC
- ldrb r0, [r5]
- b _0801469A
- .align 2, 0
-_0801460C: .4byte gUnknown_02024C08
-_08014610: .4byte gUnknown_02024C0C
-_08014614: .4byte gBitTable
-_08014618: .4byte gUnknown_02024C07
-_0801461C:
- ldr r5, _08014660 @ =gUnknown_02024C08
- ldr r1, _08014664 @ =0x02000000
- adds r2, r3, 0
- ldrb r0, [r2]
- ldr r4, _08014668 @ =0x00016010
- adds r0, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r6, _0801466C @ =gUnknown_02024C0C
- ldrb r1, [r6]
- ldr r7, _08014670 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080146AC
- ldrb r0, [r2]
- str r3, [sp, 0x4]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r4, r0
- beq _08014674
- ldrb r0, [r5]
- b _0801469A
- .align 2, 0
-_08014660: .4byte gUnknown_02024C08
-_08014664: .4byte 0x02000000
-_08014668: .4byte 0x00016010
-_0801466C: .4byte gUnknown_02024C0C
-_08014670: .4byte gBitTable
-_08014674:
- ldrb r0, [r3]
- bl battle_get_per_side_status
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- strb r0, [r5]
- ldrb r1, [r6]
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r7
-_08014690:
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080146AC
- adds r0, r2, 0
-_0801469A:
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- strb r0, [r5]
-_080146AC:
- ldr r4, _080146E0 @ =gUnknown_02024C10
- ldr r3, _080146E4 @ =gUnknown_081D6BBC
- ldr r2, _080146E8 @ =gBattleMoves
- ldr r0, _080146EC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- ldr r1, _080146F0 @ =gUnknown_02024A7F
- movs r0, 0xA
-_080146CC:
- strb r0, [r1]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080146E0: .4byte gUnknown_02024C10
-_080146E4: .4byte gUnknown_081D6BBC
-_080146E8: .4byte gBattleMoves
-_080146EC: .4byte gUnknown_02024BE6
-_080146F0: .4byte gUnknown_02024A7F
- thumb_func_end sub_8013FE8
-
- thumb_func_start sub_80146F4
-sub_80146F4: @ 80146F4
- push {r4,lr}
- ldr r3, _08014764 @ =gUnknown_02024C07
- ldr r1, _08014768 @ =gUnknown_02024A7A
- ldr r0, _0801476C @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r0, _08014770 @ =gUnknown_030042A4
- movs r2, 0
- strh r2, [r0]
- ldr r0, _08014774 @ =gUnknown_030042A0
- strh r2, [r0]
- ldr r1, _08014778 @ =gUnknown_02024E60
- ldrb r0, [r3]
- adds r0, r1
- strb r2, [r0]
- ldr r1, _0801477C @ =gUnknown_02024E64
- ldrb r0, [r3]
- adds r0, r1
- strb r2, [r0]
- ldr r2, _08014780 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x7
- strb r0, [r2, 0x1]
- ldrb r4, [r3]
- strb r4, [r2, 0x2]
- ldr r1, _08014784 @ =0x02000000
- ldrb r0, [r3]
- ldr r3, _08014788 @ =0x00016064
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- ldr r0, _0801478C @ =0x00016003
- adds r1, r0
- strb r4, [r1]
- ldr r1, _08014790 @ =gUnknown_02024C10
- ldr r0, _08014794 @ =gUnknown_081D8E4E
- str r0, [r1]
- ldr r1, _08014798 @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- ldr r1, _0801479C @ =gUnknown_030042E0
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFE
- bhi _0801475C
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_0801475C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08014764: .4byte gUnknown_02024C07
-_08014768: .4byte gUnknown_02024A7A
-_0801476C: .4byte gUnknown_02024A7E
-_08014770: .4byte gUnknown_030042A4
-_08014774: .4byte gUnknown_030042A0
-_08014778: .4byte gUnknown_02024E60
-_0801477C: .4byte gUnknown_02024E64
-_08014780: .4byte gUnknown_030041C0
-_08014784: .4byte 0x02000000
-_08014788: .4byte 0x00016064
-_0801478C: .4byte 0x00016003
-_08014790: .4byte gUnknown_02024C10
-_08014794: .4byte gUnknown_081D8E4E
-_08014798: .4byte gUnknown_02024A7F
-_0801479C: .4byte gUnknown_030042E0
- thumb_func_end sub_80146F4
-
- thumb_func_start sub_80147A0
-sub_80147A0: @ 80147A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08014804 @ =gUnknown_02024C07
- ldr r2, _08014808 @ =gUnknown_02024C08
- ldr r1, _0801480C @ =gUnknown_02024A7A
- ldr r0, _08014810 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r4]
- ldr r0, _08014814 @ =gUnknown_030042A4
- movs r2, 0
- strh r2, [r0]
- ldr r0, _08014818 @ =gUnknown_030042A0
- strh r2, [r0]
- ldr r3, _0801481C @ =gUnknown_02024CA8
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- strb r2, [r0, 0x10]
- ldr r5, _08014820 @ =gUnknown_02024C04
- ldr r2, _08014824 @ =gUnknown_02024260
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- strh r3, [r5]
- cmp r3, 0xC
- bhi _08014830
- ldr r2, _08014828 @ =gUnknown_02024C10
- ldr r1, _0801482C @ =gUnknown_081D9E48
- ldrh r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- b _08014A8C
- .align 2, 0
-_08014804: .4byte gUnknown_02024C07
-_08014808: .4byte gUnknown_02024C08
-_0801480C: .4byte gUnknown_02024A7A
-_08014810: .4byte gUnknown_02024A7E
-_08014814: .4byte gUnknown_030042A4
-_08014818: .4byte gUnknown_030042A0
-_0801481C: .4byte gUnknown_02024CA8
-_08014820: .4byte gUnknown_02024C04
-_08014824: .4byte gUnknown_02024260
-_08014828: .4byte gUnknown_02024C10
-_0801482C: .4byte gUnknown_081D9E48
-_08014830:
- adds r0, r3, 0
- subs r0, 0x50
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0801484C
- ldr r0, _08014844 @ =gUnknown_02024C10
- ldr r1, _08014848 @ =gUnknown_081D9E94
- b _0801485C
- .align 2, 0
-_08014844: .4byte gUnknown_02024C10
-_08014848: .4byte gUnknown_081D9E94
-_0801484C:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801486C
- ldr r0, _08014864 @ =gUnknown_02024C10
- ldr r1, _08014868 @ =gUnknown_081D9E7C
-_0801485C:
- ldr r1, [r1]
- str r1, [r0]
- b _08014A8C
- .align 2, 0
-_08014864: .4byte gUnknown_02024C10
-_08014868: .4byte gUnknown_081D9E7C
-_0801486C:
- ldr r2, _080148A0 @ =0x02000000
- ldrb r0, [r4]
- ldr r3, _080148A4 @ =0x00016003
- adds r1, r2, r3
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _080148A8 @ =0x000160d8
- adds r0, r1
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x1
- mov r8, r4
- ldr r3, _080148AC @ =gUnknown_02024C10
- mov r9, r3
- ldr r1, _080148B0 @ =gUnknown_081D9E7C
- mov r10, r1
- adds r7, r2, 0
- cmp r0, 0x4
- bls _08014896
- b _08014A74
-_08014896:
- lsls r0, 2
- ldr r1, _080148B4 @ =_080148B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080148A0: .4byte 0x02000000
-_080148A4: .4byte 0x00016003
-_080148A8: .4byte 0x000160d8
-_080148AC: .4byte gUnknown_02024C10
-_080148B0: .4byte gUnknown_081D9E7C
-_080148B4: .4byte _080148B8
- .align 2, 0
-_080148B8:
- .4byte _08014A74
- .4byte _08014A74
- .4byte _080148CC
- .4byte _08014958
- .4byte _08014A30
-_080148CC:
- ldr r2, _08014904 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r2, 0x5]
- ldr r1, _08014908 @ =gUnknown_02024C07
- ldrb r0, [r1]
- lsrs r0, 1
- ldr r6, _0801490C @ =0x000160da
- adds r0, r6
- adds r0, r7
- ldrb r3, [r0]
- movs r0, 0x1
- ands r0, r3
- mov r8, r1
- cmp r0, 0
- beq _08014918
- movs r0, 0x3E
- ands r0, r3
- ldr r3, _08014910 @ =gUnknown_02024C10
- mov r9, r3
- ldr r1, _08014914 @ =gUnknown_081D9E7C
- mov r10, r1
- cmp r0, 0
- bne _080148FC
- b _08014A74
-_080148FC:
- movs r0, 0x5
- strb r0, [r2, 0x5]
- b _08014A74
- .align 2, 0
-_08014904: .4byte gUnknown_02024D1E
-_08014908: .4byte gUnknown_02024C07
-_0801490C: .4byte 0x000160da
-_08014910: .4byte gUnknown_02024C10
-_08014914: .4byte gUnknown_081D9E7C
-_08014918:
- ldr r3, _08014950 @ =gUnknown_02024C10
- mov r9, r3
- ldr r0, _08014954 @ =gUnknown_081D9E7C
- mov r10, r0
- adds r5, r7, 0
- mov r4, r8
- adds r3, r6, 0
-_08014926:
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r5
- ldrb r1, [r0]
- lsrs r1, 1
- strb r1, [r0]
- ldrb r0, [r2, 0x5]
- adds r0, 0x1
- strb r0, [r2, 0x5]
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08014926
- b _08014A74
- .align 2, 0
-_08014950: .4byte gUnknown_02024C10
-_08014954: .4byte gUnknown_081D9E7C
-_08014958:
- ldr r3, _0801498C @ =gUnknown_02024D1E
- movs r0, 0x4
- strb r0, [r3, 0x5]
- ldr r2, _08014990 @ =gUnknown_02024C07
- ldrb r0, [r2]
- lsrs r0, 1
- ldr r1, _08014994 @ =0x000160da
- mov r12, r1
- add r0, r12
- adds r6, r0, r7
- ldrb r1, [r6]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r8, r2
- cmp r5, 0
- beq _080149A0
- movs r0, 0x5
- strb r0, [r3, 0x5]
- ldr r2, _08014998 @ =gUnknown_02024C10
- mov r9, r2
- ldr r3, _0801499C @ =gUnknown_081D9E7C
- mov r10, r3
- b _08014A74
- .align 2, 0
-_0801498C: .4byte gUnknown_02024D1E
-_08014990: .4byte gUnknown_02024C07
-_08014994: .4byte 0x000160da
-_08014998: .4byte gUnknown_02024C10
-_0801499C: .4byte gUnknown_081D9E7C
-_080149A0:
- ldr r3, _08014A18 @ =gUnknown_030041C0
- movs r4, 0xFD
- strb r4, [r3]
- movs r0, 0x5
- strb r0, [r3, 0x1]
- movs r2, 0x1
- strb r2, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- ldr r1, _08014A1C @ =gUnknown_03004290
- strb r4, [r1]
- strb r5, [r1, 0x1]
- movs r0, 0xD2
- strb r0, [r1, 0x2]
- strb r5, [r1, 0x3]
- subs r0, 0xD3
- strb r0, [r1, 0x4]
- ldrb r0, [r6]
- ands r2, r0
- ldr r0, _08014A20 @ =gUnknown_02024C10
- mov r9, r0
- ldr r1, _08014A24 @ =gUnknown_081D9E7C
- mov r10, r1
- adds r6, r3, 0
- cmp r2, 0
- bne _08014A02
- adds r3, r7, 0
- mov r5, r8
- mov r4, r12
- adds r2, r6, 0
-_080149DC:
- ldrb r0, [r5]
- lsrs r0, 1
- adds r0, r4
- adds r0, r3
- ldrb r1, [r0]
- lsrs r1, 1
- strb r1, [r0]
- ldrb r0, [r2, 0x2]
- adds r0, 0x1
- strb r0, [r2, 0x2]
- ldrb r0, [r5]
- lsrs r0, 1
- adds r0, r4
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080149DC
-_08014A02:
- ldrb r0, [r6, 0x2]
- adds r0, 0xE
- ldr r2, _08014A28 @ =0x000160a4
- adds r1, r7, r2
- movs r2, 0
- strb r0, [r1]
- ldr r3, _08014A2C @ =0x000160a5
- adds r0, r7, r3
- strb r2, [r0]
- b _08014A74
- .align 2, 0
-_08014A18: .4byte gUnknown_030041C0
-_08014A1C: .4byte gUnknown_03004290
-_08014A20: .4byte gUnknown_02024C10
-_08014A24: .4byte gUnknown_081D9E7C
-_08014A28: .4byte 0x000160a4
-_08014A2C: .4byte 0x000160a5
-_08014A30:
- ldr r0, _08014A50 @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08014A64
- ldr r1, _08014A54 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- ldr r0, _08014A58 @ =gUnknown_02024C07
- mov r8, r0
- ldr r1, _08014A5C @ =gUnknown_02024C10
- mov r9, r1
- ldr r2, _08014A60 @ =gUnknown_081D9E7C
- mov r10, r2
- b _08014A74
- .align 2, 0
-_08014A50: .4byte gUnknown_020239F8
-_08014A54: .4byte gUnknown_02024D1E
-_08014A58: .4byte gUnknown_02024C07
-_08014A5C: .4byte gUnknown_02024C10
-_08014A60: .4byte gUnknown_081D9E7C
-_08014A64:
- ldr r0, _08014AA0 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
- ldr r3, _08014AA4 @ =gUnknown_02024C07
- mov r8, r3
- ldr r0, _08014AA8 @ =gUnknown_02024C10
- mov r9, r0
- ldr r1, _08014AAC @ =gUnknown_081D9E7C
- mov r10, r1
-_08014A74:
- mov r2, r8
- ldrb r0, [r2]
- lsrs r0, 1
- ldr r3, _08014AB0 @ =0x000160d8
- adds r0, r3
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 2
- add r0, r10
- ldr r0, [r0]
- mov r1, r9
- str r0, [r1]
-_08014A8C:
- movs r0, 0xA
- ldr r2, _08014AB4 @ =gUnknown_02024A7F
- strb r0, [r2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08014AA0: .4byte gUnknown_02024D1E
-_08014AA4: .4byte gUnknown_02024C07
-_08014AA8: .4byte gUnknown_02024C10
-_08014AAC: .4byte gUnknown_081D9E7C
-_08014AB0: .4byte 0x000160d8
-_08014AB4: .4byte gUnknown_02024A7F
- thumb_func_end sub_80147A0
-
- thumb_func_start sub_8014AB8
-sub_8014AB8: @ 8014AB8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r1, _08014ADC @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08014AE4
- ldr r1, _08014AE0 @ =gEnigmaBerries
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x7]
- b _08014AEE
- .align 2, 0
-_08014ADC: .4byte gBattleMons
-_08014AE0: .4byte gEnigmaBerries
-_08014AE4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r1, r0, 24
-_08014AEE:
- ldr r0, _08014B18 @ =gUnknown_02024C0B
- strb r4, [r0]
- cmp r1, 0x25
- bne _08014B28
- ldr r2, _08014B1C @ =gUnknown_02024C04
- ldr r1, _08014B20 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r2]
- ldr r0, _08014B24 @ =gUnknown_02024D28
- lsls r2, r4, 4
- adds r2, r0
- ldrb r1, [r2, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- b _08014B50
- .align 2, 0
-_08014B18: .4byte gUnknown_02024C0B
-_08014B1C: .4byte gUnknown_02024C04
-_08014B20: .4byte gBattleMons
-_08014B24: .4byte gUnknown_02024D28
-_08014B28:
- ldr r6, _08014B5C @ =gBattleMons
- movs r2, 0x58
- adds r0, r4, 0
- muls r0, r2
- adds r3, r0, r6
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x32
- bne _08014B68
- ldr r0, _08014B60 @ =byte_2024C06
- strb r1, [r0]
- ldr r0, _08014B64 @ =gUnknown_02024D28
- lsls r2, r4, 4
- adds r2, r0
- ldrb r1, [r2, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
-_08014B50:
- orrs r0, r1
- strb r0, [r2, 0x1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- b _08014BC2
- .align 2, 0
-_08014B5C: .4byte gBattleMons
-_08014B60: .4byte byte_2024C06
-_08014B64: .4byte gUnknown_02024D28
-_08014B68:
- ldr r0, _08014BDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08014BB6
- movs r1, 0x1
- adds r0, r4, 0
- eors r0, r1
- muls r0, r2
- adds r2, r0, r6
- ldrh r0, [r3, 0x6]
- ldrh r1, [r2, 0x6]
- cmp r0, r1
- bcs _08014BB0
- lsls r0, 7
- ldrh r1, [r2, 0x6]
- bl __divsi3
- adds r4, r0, 0
- ldr r0, _08014BE0 @ =0x02000000
- ldr r1, _08014BE4 @ =0x00016078
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 1
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- movs r1, 0xFF
- ands r1, r0
- cmp r4, r1
- bls _08014BB6
-_08014BB0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08014BB6:
- ldr r1, _08014BE0 @ =0x02000000
- ldr r0, _08014BE4 @ =0x00016078
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08014BC2:
- cmp r5, 0
- beq _08014BD4
- ldr r1, _08014BE8 @ =gUnknown_02024A7E
- ldr r0, _08014BEC @ =gUnknown_02024A68
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _08014BF0 @ =gUnknown_02024D26
- movs r0, 0x4
- strb r0, [r1]
-_08014BD4:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08014BDC: .4byte gUnknown_020239F8
-_08014BE0: .4byte 0x02000000
-_08014BE4: .4byte 0x00016078
-_08014BE8: .4byte gUnknown_02024A7E
-_08014BEC: .4byte gUnknown_02024A68
-_08014BF0: .4byte gUnknown_02024D26
- thumb_func_end sub_8014AB8
-
- thumb_func_start sub_8014BF4
-sub_8014BF4: @ 8014BF4
- push {r4-r6,lr}
- ldr r4, _08014C44 @ =gUnknown_02024C07
- ldr r1, _08014C48 @ =gUnknown_02024A7A
- ldr r5, _08014C4C @ =gUnknown_02024A7E
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, _08014C50 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08014C9C
- ldr r0, _08014C54 @ =gUnknown_02024A68
- ldrb r1, [r0]
- strb r1, [r5]
- ldr r2, _08014C58 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r2]
- lsls r1, 24
- cmp r1, 0
- beq _08014C88
- adds r4, r2, 0
- ldr r6, _08014C5C @ =gUnknown_02024C18
- ldr r5, _08014C60 @ =gUnknown_02024D26
-_08014C28:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08014C64
- ldrb r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08014C76
- ldrb r0, [r5]
- movs r1, 0x2
- b _08014C72
- .align 2, 0
-_08014C44: .4byte gUnknown_02024C07
-_08014C48: .4byte gUnknown_02024A7A
-_08014C4C: .4byte gUnknown_02024A7E
-_08014C50: .4byte gUnknown_020239F8
-_08014C54: .4byte gUnknown_02024A68
-_08014C58: .4byte gUnknown_02024A60
-_08014C5C: .4byte gUnknown_02024C18
-_08014C60: .4byte gUnknown_02024D26
-_08014C64:
- ldrb r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08014C76
- ldrb r0, [r5]
- movs r1, 0x1
-_08014C72:
- orrs r0, r1
- strb r0, [r5]
-_08014C76:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08014C94 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08014C28
-_08014C88:
- ldr r0, _08014C98 @ =gUnknown_02024D26
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _08014D40
- .align 2, 0
-_08014C94: .4byte gUnknown_02024A68
-_08014C98: .4byte gUnknown_02024D26
-_08014C9C:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08014CF4
- ldrb r0, [r4]
- bl sub_8014AB8
- lsls r0, 24
- cmp r0, 0
- bne _08014D40
- ldr r1, _08014CDC @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _08014CE0 @ =0xfdffffff
- ands r0, r1
- str r0, [r2]
- ldr r1, _08014CE4 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x5]
- ldr r1, _08014CE8 @ =gUnknown_02024C10
- ldr r0, _08014CEC @ =gUnknown_081D8E3B
- str r0, [r1]
- ldr r1, _08014CF0 @ =gUnknown_02024A7F
- movs r0, 0xA
- b _08014D3E
- .align 2, 0
-_08014CDC: .4byte gBattleMons
-_08014CE0: .4byte 0xfdffffff
-_08014CE4: .4byte gUnknown_02024D1E
-_08014CE8: .4byte gUnknown_02024C10
-_08014CEC: .4byte gUnknown_081D8E3B
-_08014CF0: .4byte gUnknown_02024A7F
-_08014CF4:
- ldr r1, _08014D1C @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08014D20 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- beq _08014D34
- ldr r1, _08014D24 @ =gUnknown_02024D1E
- movs r0, 0x4
- strb r0, [r1, 0x5]
- ldr r1, _08014D28 @ =gUnknown_02024C10
- ldr r0, _08014D2C @ =gUnknown_081D8E3B
- str r0, [r1]
- ldr r1, _08014D30 @ =gUnknown_02024A7F
- movs r0, 0xA
- b _08014D3E
- .align 2, 0
-_08014D1C: .4byte gBattleMons
-_08014D20: .4byte 0x0400e000
-_08014D24: .4byte gUnknown_02024D1E
-_08014D28: .4byte gUnknown_02024C10
-_08014D2C: .4byte gUnknown_081D8E3B
-_08014D30: .4byte gUnknown_02024A7F
-_08014D34:
- ldr r0, _08014D48 @ =gUnknown_02024A68
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r1, _08014D4C @ =gUnknown_02024D26
- movs r0, 0x6
-_08014D3E:
- strb r0, [r1]
-_08014D40:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08014D48: .4byte gUnknown_02024A68
-_08014D4C: .4byte gUnknown_02024D26
- thumb_func_end sub_8014BF4
-
- thumb_func_start sub_8014D50
-sub_8014D50: @ 8014D50
- ldr r2, _08014D78 @ =gUnknown_02024C07
- ldr r1, _08014D7C @ =gUnknown_02024A7A
- ldr r0, _08014D80 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08014D84 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08014D88 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r1, _08014D8C @ =gUnknown_02024C10
- ldr r0, _08014D90 @ =gUnknown_081D9E98
- ldr r0, [r0]
- str r0, [r1]
- ldr r1, _08014D94 @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08014D78: .4byte gUnknown_02024C07
-_08014D7C: .4byte gUnknown_02024A7A
-_08014D80: .4byte gUnknown_02024A7E
-_08014D84: .4byte gUnknown_030042A4
-_08014D88: .4byte gUnknown_030042A0
-_08014D8C: .4byte gUnknown_02024C10
-_08014D90: .4byte gUnknown_081D9E98
-_08014D94: .4byte gUnknown_02024A7F
- thumb_func_end sub_8014D50
-
- thumb_func_start sub_8014D98
-sub_8014D98: @ 8014D98
- ldr r2, _08014DD0 @ =gUnknown_02024C07
- ldr r1, _08014DD4 @ =gUnknown_02024A7A
- ldr r0, _08014DD8 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08014DDC @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08014DE0 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r1, _08014DE4 @ =gNumSafariBalls
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- ldr r1, _08014DE8 @ =gUnknown_02024C04
- movs r0, 0x5
- strh r0, [r1]
- ldr r1, _08014DEC @ =gUnknown_02024C10
- ldr r0, _08014DF0 @ =gUnknown_081D9E48
- ldr r0, [r0, 0x14]
- str r0, [r1]
- ldr r1, _08014DF4 @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08014DD0: .4byte gUnknown_02024C07
-_08014DD4: .4byte gUnknown_02024A7A
-_08014DD8: .4byte gUnknown_02024A7E
-_08014DDC: .4byte gUnknown_030042A4
-_08014DE0: .4byte gUnknown_030042A0
-_08014DE4: .4byte gNumSafariBalls
-_08014DE8: .4byte gUnknown_02024C04
-_08014DEC: .4byte gUnknown_02024C10
-_08014DF0: .4byte gUnknown_081D9E48
-_08014DF4: .4byte gUnknown_02024A7F
- thumb_func_end sub_8014D98
-
- thumb_func_start sub_8014DF8
-sub_8014DF8: @ 8014DF8
- push {r4-r6,lr}
- ldr r3, _08014E68 @ =gUnknown_02024C07
- ldr r1, _08014E6C @ =gUnknown_02024A7A
- ldr r0, _08014E70 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r0, _08014E74 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08014E78 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r6, _08014E7C @ =gUnknown_02024D1E
- ldr r2, _08014E80 @ =gUnknown_02024260
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- strb r0, [r6, 0x5]
- ldr r1, _08014E84 @ =gUnknown_02024C04
- ldrb r0, [r3]
- lsls r0, 9
- adds r2, 0x2
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r2, _08014E88 @ =0x02000000
- ldr r0, _08014E8C @ =0x00016087
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08014E42
- adds r0, 0x1
- strb r0, [r1]
-_08014E42:
- ldr r0, _08014E90 @ =0x00016088
- adds r4, r2, r0
- ldrb r5, [r4]
- adds r3, r5, 0
- cmp r3, 0x1
- bls _08014E9C
- ldr r2, _08014E94 @ =gUnknown_081FA70C
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- ldrb r6, [r6, 0x5]
- adds r0, r6
- adds r0, r2
- ldrb r0, [r0]
- cmp r3, r0
- bcs _08014E98
- movs r0, 0x1
- b _08014E9A
- .align 2, 0
-_08014E68: .4byte gUnknown_02024C07
-_08014E6C: .4byte gUnknown_02024A7A
-_08014E70: .4byte gUnknown_02024A7E
-_08014E74: .4byte gUnknown_030042A4
-_08014E78: .4byte gUnknown_030042A0
-_08014E7C: .4byte gUnknown_02024D1E
-_08014E80: .4byte gUnknown_02024260
-_08014E84: .4byte gUnknown_02024C04
-_08014E88: .4byte 0x02000000
-_08014E8C: .4byte 0x00016087
-_08014E90: .4byte 0x00016088
-_08014E94: .4byte gUnknown_081FA70C
-_08014E98:
- subs r0, r5, r0
-_08014E9A:
- strb r0, [r4]
-_08014E9C:
- ldr r1, _08014EB0 @ =gUnknown_02024C10
- ldr r0, _08014EB4 @ =gUnknown_081D9E98
- ldr r0, [r0, 0x8]
- str r0, [r1]
- ldr r1, _08014EB8 @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08014EB0: .4byte gUnknown_02024C10
-_08014EB4: .4byte gUnknown_081D9E98
-_08014EB8: .4byte gUnknown_02024A7F
- thumb_func_end sub_8014DF8
-
- thumb_func_start sub_8014EBC
-sub_8014EBC: @ 8014EBC
- push {r4,r5,lr}
- ldr r2, _08014F28 @ =gUnknown_02024C07
- ldr r1, _08014F2C @ =gUnknown_02024A7A
- ldr r0, _08014F30 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08014F34 @ =gUnknown_030042A4
- movs r5, 0
- strh r5, [r0]
- ldr r0, _08014F38 @ =gUnknown_030042A0
- strh r5, [r0]
- ldr r3, _08014F3C @ =0x02000000
- ldr r0, _08014F40 @ =0x00016089
- adds r2, r3, r0
- ldr r1, _08014F44 @ =gUnknown_081FA71B
- subs r0, 0x3
- adds r4, r3, r0
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- ldrb r1, [r2]
- adds r0, r1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- bls _08014EFA
- movs r0, 0x14
- strb r0, [r2]
-_08014EFA:
- ldr r0, _08014F48 @ =0x00016088
- adds r2, r3, r0
- ldr r1, _08014F4C @ =gUnknown_081FA71F
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- ldrb r1, [r2]
- adds r0, r1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- bls _08014F18
- movs r0, 0x14
- strb r0, [r2]
-_08014F18:
- ldrb r0, [r4]
- cmp r0, 0x2
- bhi _08014F54
- adds r0, 0x1
- strb r0, [r4]
- ldr r0, _08014F50 @ =gUnknown_02024D1E
- strb r5, [r0, 0x5]
- b _08014F5A
- .align 2, 0
-_08014F28: .4byte gUnknown_02024C07
-_08014F2C: .4byte gUnknown_02024A7A
-_08014F30: .4byte gUnknown_02024A7E
-_08014F34: .4byte gUnknown_030042A4
-_08014F38: .4byte gUnknown_030042A0
-_08014F3C: .4byte 0x02000000
-_08014F40: .4byte 0x00016089
-_08014F44: .4byte gUnknown_081FA71B
-_08014F48: .4byte 0x00016088
-_08014F4C: .4byte gUnknown_081FA71F
-_08014F50: .4byte gUnknown_02024D1E
-_08014F54:
- ldr r1, _08014F70 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08014F5A:
- ldr r1, _08014F74 @ =gUnknown_02024C10
- ldr r0, _08014F78 @ =gUnknown_081D9E98
- ldr r0, [r0, 0x4]
- str r0, [r1]
- ldr r1, _08014F7C @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08014F70: .4byte gUnknown_02024D1E
-_08014F74: .4byte gUnknown_02024C10
-_08014F78: .4byte gUnknown_081D9E98
-_08014F7C: .4byte gUnknown_02024A7F
- thumb_func_end sub_8014EBC
-
- thumb_func_start bs8_exit_by_flight
-bs8_exit_by_flight: @ 8014F80
- push {r4,lr}
- ldr r2, _08014FA8 @ =gUnknown_02024C07
- ldr r1, _08014FAC @ =gUnknown_02024A7A
- ldr r4, _08014FB0 @ =gUnknown_02024A7E
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x11
- bl PlaySE
- ldr r0, _08014FB4 @ =gUnknown_02024A68
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _08014FB8 @ =gUnknown_02024D26
- movs r0, 0x4
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08014FA8: .4byte gUnknown_02024C07
-_08014FAC: .4byte gUnknown_02024A7A
-_08014FB0: .4byte gUnknown_02024A7E
-_08014FB4: .4byte gUnknown_02024A68
-_08014FB8: .4byte gUnknown_02024D26
- thumb_func_end bs8_exit_by_flight
-
- thumb_func_start sub_8014FBC
-sub_8014FBC: @ 8014FBC
- ldr r3, _08015008 @ =gUnknown_02024C07
- ldr r1, _0801500C @ =gUnknown_02024A7A
- ldr r0, _08015010 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- strb r2, [r3]
- ldr r0, _08015014 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08015018 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r1, _0801501C @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _08015020 @ =gUnknown_02024A6A
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08015024 @ =gUnknown_02024C10
- ldr r0, _08015028 @ =gUnknown_081D9E98
- ldr r0, [r0, 0xC]
- str r0, [r1]
- ldr r1, _0801502C @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- ldr r1, _08015030 @ =gUnknown_02024A76
- movs r0, 0xC
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_08015008: .4byte gUnknown_02024C07
-_0801500C: .4byte gUnknown_02024A7A
-_08015010: .4byte gUnknown_02024A7E
-_08015014: .4byte gUnknown_030042A4
-_08015018: .4byte gUnknown_030042A0
-_0801501C: .4byte gUnknown_030041C0
-_08015020: .4byte gUnknown_02024A6A
-_08015024: .4byte gUnknown_02024C10
-_08015028: .4byte gUnknown_081D9E98
-_0801502C: .4byte gUnknown_02024A7F
-_08015030: .4byte gUnknown_02024A76
- thumb_func_end sub_8014FBC
-
- thumb_func_start bsB_exit_by_move
-bsB_exit_by_move: @ 8015034
- push {lr}
- bl sub_80173A4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08015050
- ldr r0, _08015054 @ =0x02000000
- ldr r2, _08015058 @ =0x00016059
- adds r0, r2
- strb r1, [r0]
- ldr r1, _0801505C @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
-_08015050:
- pop {r0}
- bx r0
- .align 2, 0
-_08015054: .4byte 0x02000000
-_08015058: .4byte 0x00016059
-_0801505C: .4byte gUnknown_02024A7F
- thumb_func_end bsB_exit_by_move
-
- thumb_func_start sub_8015060
-sub_8015060: @ 8015060
- ldr r1, _08015080 @ =gUnknown_02024A7E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r3, _08015084 @ =gUnknown_02024A7F
- ldr r2, _08015088 @ =gUnknown_02024A76
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r2, _0801508C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08015090 @ =0xf1e892af
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_08015080: .4byte gUnknown_02024A7E
-_08015084: .4byte gUnknown_02024A7F
-_08015088: .4byte gUnknown_02024A76
-_0801508C: .4byte gUnknown_02024C6C
-_08015090: .4byte 0xf1e892af
- thumb_func_end sub_8015060
-
- thumb_func_start bsC_8016D70
-bsC_8016D70: @ 8015094
- push {r4,r5,lr}
- ldr r1, _0801510C @ =gUnknown_02024A7E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r3, _08015110 @ =gUnknown_02024A7F
- ldr r2, _08015114 @ =gUnknown_02024A76
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- bl sub_801377C
- ldr r2, _08015118 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0801511C @ =0xf1e892af
- ands r0, r1
- str r0, [r2]
- ldr r0, _08015120 @ =gUnknown_02024BEC
- movs r4, 0
- str r4, [r0]
- ldr r1, _08015124 @ =0x02000000
- ldr r2, _08015128 @ =0x00016002
- adds r0, r1, r2
- strb r4, [r0]
- ldr r3, _0801512C @ =0x000160a1
- adds r0, r1, r3
- strb r4, [r0]
- ldr r2, _08015130 @ =gUnknown_02024C3C
- ldr r5, _08015134 @ =gUnknown_02024C07
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- strh r4, [r0]
- ldr r3, _08015138 @ =gUnknown_02024C44
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r3
- strh r4, [r0]
- ldr r3, _0801513C @ =0x0001601c
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08015140 @ =gUnknown_02024DEC
- strh r4, [r0]
- subs r3, 0x10
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08015144 @ =gUnknown_02024D1E
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x4]
- ldr r3, _08015148 @ =0x00016112
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _0801514C @ =0x00017130
- adds r1, r0
- strb r2, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801510C: .4byte gUnknown_02024A7E
-_08015110: .4byte gUnknown_02024A7F
-_08015114: .4byte gUnknown_02024A76
-_08015118: .4byte gUnknown_02024C6C
-_0801511C: .4byte 0xf1e892af
-_08015120: .4byte gUnknown_02024BEC
-_08015124: .4byte 0x02000000
-_08015128: .4byte 0x00016002
-_0801512C: .4byte 0x000160a1
-_08015130: .4byte gUnknown_02024C3C
-_08015134: .4byte gUnknown_02024C07
-_08015138: .4byte gUnknown_02024C44
-_0801513C: .4byte 0x0001601c
-_08015140: .4byte gUnknown_02024DEC
-_08015144: .4byte gUnknown_02024D1E
-_08015148: .4byte 0x00016112
-_0801514C: .4byte 0x00017130
- thumb_func_end bsC_8016D70
-
- thumb_func_start sub_8015150
-sub_8015150: @ 8015150
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- cmp r0, 0xA
- bhi _080151C8
- lsls r0, 2
- ldr r1, _08015168 @ =_0801516C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08015168: .4byte _0801516C
- .align 2, 0
-_0801516C:
- .4byte _08015198
- .4byte _080151A0
- .4byte _080151A8
- .4byte _080151C4
- .4byte _080151C8
- .4byte _080151C4
- .4byte _080151C8
- .4byte _080151B0
- .4byte _080151C8
- .4byte _080151C8
- .4byte _080151B4
-_08015198:
- ldr r0, _0801519C @ =gUnknown_02024C08
- b _080151C6
- .align 2, 0
-_0801519C: .4byte gUnknown_02024C08
-_080151A0:
- ldr r0, _080151A4 @ =gUnknown_02024C07
- b _080151C6
- .align 2, 0
-_080151A4: .4byte gUnknown_02024C07
-_080151A8:
- ldr r0, _080151AC @ =gUnknown_02024C0A
- b _080151C6
- .align 2, 0
-_080151AC: .4byte gUnknown_02024C0A
-_080151B0:
- movs r2, 0
- b _080151C8
-_080151B4:
- ldr r0, _080151BC @ =0x02000000
- ldr r1, _080151C0 @ =0x00016003
- adds r0, r1
- b _080151C6
- .align 2, 0
-_080151BC: .4byte 0x02000000
-_080151C0: .4byte 0x00016003
-_080151C4:
- ldr r0, _080151D0 @ =gUnknown_02024C09
-_080151C6:
- ldrb r2, [r0]
-_080151C8:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080151D0: .4byte gUnknown_02024C09
- thumb_func_end sub_8015150
-
- thumb_func_start sub_80151D4
-sub_80151D4: @ 80151D4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _08015204 @ =gBattleMons
- movs r4, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0x2E
- bne _08015286
- movs r3, 0
- adds r0, r5, 0
- muls r0, r4
- adds r1, 0xC
- adds r1, r0, r1
- b _08015210
- .align 2, 0
-_08015204: .4byte gBattleMons
-_08015208:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- bgt _08015216
-_08015210:
- ldrh r0, [r1]
- cmp r0, r2
- bne _08015208
-_08015216:
- cmp r3, 0x4
- beq _08015286
- movs r7, 0x58
- adds r2, r5, 0
- muls r2, r7
- adds r0, r3, r2
- mov r6, r12
- adds r6, 0x24
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _08015232
- subs r0, 0x1
- strb r0, [r1]
-_08015232:
- mov r0, r12
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08015286
- ldr r1, _08015290 @ =gUnknown_02024CA8
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08015294 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08015286
- ldr r4, _08015298 @ =gUnknown_02024A60
- strb r5, [r4]
- adds r1, r3, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- muls r0, r7
- adds r0, r6
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08015286:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08015290: .4byte gUnknown_02024CA8
-_08015294: .4byte gBitTable
-_08015298: .4byte gUnknown_02024A60
- thumb_func_end sub_80151D4
-
- thumb_func_start sub_801529C
-sub_801529C: @ 801529C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x4
- mov r8, r0
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- ldr r0, _080153BC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bge _08015344
- ldr r1, _080153C0 @ =gBattleMons
- movs r0, 0x58
- adds r7, r5, 0
- muls r7, r0
- adds r1, 0xC
- mov r10, r1
-_080152D2:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- adds r6, r4, 0x1
- cmp r9, r0
- beq _0801533A
- ldr r0, _080153C0 @ =gBattleMons
- movs r3, 0x58
- adds r1, r4, 0
- muls r1, r3
- adds r1, r0
- adds r1, 0x20
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0x2E
- bne _0801533A
- movs r2, 0
- adds r0, r5, 0
- muls r0, r3
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x8F
- lsls r1, 1
- cmp r0, r1
- beq _08015322
- adds r3, r1, 0
- mov r0, r10
- adds r1, r7, r0
-_08015314:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08015322
- ldrh r0, [r1]
- cmp r0, r3
- bne _08015314
-_08015322:
- cmp r2, 0x4
- beq _0801533A
- mov r8, r2
- adds r1, r2, r7
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0801533A
- subs r0, 0x1
- strb r0, [r1]
-_0801533A:
- adds r4, r6, 0
- ldr r0, _080153BC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _080152D2
-_08015344:
- mov r1, r8
- cmp r1, 0x4
- beq _080153AC
- ldr r6, _080153C0 @ =gBattleMons
- movs r3, 0x58
- adds r0, r5, 0
- muls r0, r3
- adds r1, r6, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080153AC
- ldr r1, _080153C4 @ =gUnknown_02024CA8
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _080153C8 @ =gBitTable
- mov r4, r8
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080153AC
- ldr r4, _080153CC @ =gUnknown_02024A60
- strb r5, [r4]
- mov r1, r8
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- muls r0, r3
- adds r2, r6, 0
- adds r2, 0x24
- adds r0, r2
- add r0, r8
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080153AC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080153BC: .4byte gUnknown_02024A68
-_080153C0: .4byte gBattleMons
-_080153C4: .4byte gUnknown_02024CA8
-_080153C8: .4byte gBitTable
-_080153CC: .4byte gUnknown_02024A60
- thumb_func_end sub_801529C
-
- thumb_func_start sub_80153D0
-sub_80153D0: @ 80153D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- movs r6, 0x4
- movs r1, 0
- ldr r0, _080154C8 @ =gUnknown_02024A68
- mov r8, r0
- ldrb r0, [r0]
- cmp r1, r0
- bge _08015452
- ldr r7, _080154CC @ =gBattleMons
- movs r2, 0x58
- mov r12, r2
- mov r5, r12
- muls r5, r3
- adds r0, r7, 0
- adds r0, 0xC
- adds r2, r5, r0
- mov r10, r2
- mov r9, r5
-_08015402:
- mov r0, r12
- muls r0, r1
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r1, 0x1
- cmp r0, 0x2E
- bne _08015448
- cmp r1, r3
- beq _08015448
- movs r2, 0
- mov r1, r10
- ldrh r0, [r1]
- cmp r0, 0xC3
- beq _08015432
- ldr r1, _080154D0 @ =gUnknown_02024A8C
- add r1, r9
-_08015424:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08015432
- ldrh r0, [r1]
- cmp r0, 0xC3
- bne _08015424
-_08015432:
- cmp r2, 0x4
- beq _08015448
- adds r6, r2, 0
- adds r0, r6, r5
- ldr r2, _080154D4 @ =gUnknown_02024AA4
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _08015448
- subs r0, 0x1
- strb r0, [r1]
-_08015448:
- adds r1, r4, 0
- mov r0, r8
- ldrb r0, [r0]
- cmp r1, r0
- blt _08015402
-_08015452:
- cmp r6, 0x4
- beq _080154B6
- ldr r7, _080154CC @ =gBattleMons
- movs r5, 0x58
- adds r0, r3, 0
- muls r0, r5
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080154B6
- ldr r1, _080154D8 @ =gUnknown_02024CA8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _080154DC @ =gBitTable
- lsls r0, r6, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080154B6
- ldr r4, _080154E0 @ =gUnknown_02024A60
- strb r3, [r4]
- adds r1, r6, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- muls r0, r5
- adds r2, r7, 0
- adds r2, 0x24
- adds r0, r2
- adds r0, r6
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080154B6:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080154C8: .4byte gUnknown_02024A68
-_080154CC: .4byte gBattleMons
-_080154D0: .4byte gUnknown_02024A8C
-_080154D4: .4byte gUnknown_02024AA4
-_080154D8: .4byte gUnknown_02024CA8
-_080154DC: .4byte gBitTable
-_080154E0: .4byte gUnknown_02024A60
- thumb_func_end sub_80153D0
-
- thumb_func_start unref_sub_80154E4
-unref_sub_80154E4: @ 80154E4
- push {r4,r5,lr}
- ldr r0, _08015514 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08015524
- movs r2, 0
- ldr r4, _08015518 @ =gUnknown_02024A68
- ldrb r0, [r4]
- cmp r2, r0
- bge _08015542
- ldr r3, _0801551C @ =gUnknown_02024A64
- ldr r5, _08015520 @ =gBitTable
-_08015500:
- ldm r5!, {r1}
- lsls r1, 28
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- adds r2, 0x1
- ldrb r0, [r4]
- cmp r2, r0
- blt _08015500
- b _08015542
- .align 2, 0
-_08015514: .4byte gUnknown_020239F8
-_08015518: .4byte gUnknown_02024A68
-_0801551C: .4byte gUnknown_02024A64
-_08015520: .4byte gBitTable
-_08015524:
- movs r2, 0
- ldr r4, _08015548 @ =gUnknown_02024A68
- ldrb r0, [r4]
- cmp r2, r0
- bge _08015542
- ldr r3, _0801554C @ =gUnknown_02024A64
- ldr r5, _08015550 @ =gBitTable
-_08015532:
- ldr r0, [r3]
- ldm r5!, {r1}
- orrs r0, r1
- str r0, [r3]
- adds r2, 0x1
- ldrb r0, [r4]
- cmp r2, r0
- blt _08015532
-_08015542:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08015548: .4byte gUnknown_02024A68
-_0801554C: .4byte gUnknown_02024A64
-_08015550: .4byte gBitTable
- thumb_func_end unref_sub_80154E4
-
- thumb_func_start dp01_battle_side_mark_buffer_for_execution
-dp01_battle_side_mark_buffer_for_execution: @ 8015554
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0801557C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08015588
- ldr r2, _08015580 @ =gUnknown_02024A64
- ldr r1, _08015584 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- b _08015598
- .align 2, 0
-_0801557C: .4byte gUnknown_020239F8
-_08015580: .4byte gUnknown_02024A64
-_08015584: .4byte gBitTable
-_08015588:
- ldr r2, _0801559C @ =gUnknown_02024A64
- ldr r1, _080155A0 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r2]
-_08015598:
- pop {r0}
- bx r0
- .align 2, 0
-_0801559C: .4byte gUnknown_02024A64
-_080155A0: .4byte gBitTable
- thumb_func_end dp01_battle_side_mark_buffer_for_execution
-
- thumb_func_start sub_80155A4
-sub_80155A4: @ 80155A4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r5, _080155B8 @ =gUnknown_02024A64
- ldr r1, _080155BC @ =gBitTable
- lsls r0, r7, 2
- adds r6, r0, r1
- b _080155CE
- .align 2, 0
-_080155B8: .4byte gUnknown_02024A64
-_080155BC: .4byte gBitTable
-_080155C0:
- lsls r0, r4, 2
- ldr r1, [r6]
- lsls r1, r0
- ldr r0, [r5]
- orrs r0, r1
- str r0, [r5]
- adds r4, 0x1
-_080155CE:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- blt _080155C0
- ldr r2, _080155F0 @ =gUnknown_02024A64
- movs r1, 0x80
- lsls r1, 21
- lsls r1, r7
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080155F0: .4byte gUnknown_02024A64
- thumb_func_end sub_80155A4
-
- thumb_func_start b_cancel_multi_turn_move_maybe
-b_cancel_multi_turn_move_maybe: @ 80155F4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08015644 @ =gBattleMons
- movs r2, 0x58
- adds r3, r0, 0
- muls r3, r2
- adds r1, 0x50
- adds r3, r1
- ldr r1, [r3]
- ldr r2, _08015648 @ =0xffffefff
- ands r1, r2
- ldr r2, _0801564C @ =0xfffff3ff
- ands r1, r2
- movs r2, 0x71
- negs r2, r2
- ands r1, r2
- ldr r2, _08015650 @ =0xfffffcff
- ands r1, r2
- str r1, [r3]
- ldr r1, _08015654 @ =gUnknown_02024C98
- lsls r2, r0, 2
- adds r2, r1
- ldr r1, [r2]
- ldr r3, _08015658 @ =0xfffbff3f
- ands r1, r3
- str r1, [r2]
- ldr r2, _0801565C @ =gUnknown_02024CA8
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x11]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x11]
- movs r0, 0
- strb r0, [r1, 0x10]
- bx lr
- .align 2, 0
-_08015644: .4byte gBattleMons
-_08015648: .4byte 0xffffefff
-_0801564C: .4byte 0xfffff3ff
-_08015650: .4byte 0xfffffcff
-_08015654: .4byte gUnknown_02024C98
-_08015658: .4byte 0xfffbff3f
-_0801565C: .4byte gUnknown_02024CA8
- thumb_func_end b_cancel_multi_turn_move_maybe
-
- thumb_func_start sub_8015660
-sub_8015660: @ 8015660
- push {lr}
- lsls r0, 24
- ldr r1, _080156AC @ =gUnknown_02024D28
- lsrs r0, 20
- adds r1, r0, r1
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- bne _080156A6
- ldrb r2, [r1, 0x1]
- lsls r0, r2, 30
- cmp r0, 0
- blt _080156A6
- lsls r0, r2, 26
- cmp r0, 0
- blt _080156A6
- lsls r0, r2, 25
- cmp r0, 0
- blt _080156A6
- lsrs r0, r2, 7
- cmp r0, 0
- bne _080156A6
- ldrb r1, [r1, 0x2]
- lsls r0, r1, 31
- cmp r0, 0
- bne _080156A6
- lsls r0, r1, 30
- cmp r0, 0
- blt _080156A6
- lsls r0, r1, 29
- cmp r0, 0
- blt _080156A6
- lsls r0, r2, 31
- cmp r0, 0
- beq _080156B0
-_080156A6:
- movs r0, 0x1
- b _080156B2
- .align 2, 0
-_080156AC: .4byte gUnknown_02024D28
-_080156B0:
- movs r0, 0
-_080156B2:
- pop {r1}
- bx r1
- thumb_func_end sub_8015660
-
- thumb_func_start b_std_message
-b_std_message: @ 80156B8
- push {r4,lr}
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080156D8 @ =gUnknown_02024A60
- strb r1, [r4]
- movs r0, 0
- adds r1, r2, 0
- bl dp01_build_cmdbuf_x10_TODO
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080156D8: .4byte gUnknown_02024A60
- thumb_func_end b_std_message
-
- thumb_func_start sub_80156DC
-sub_80156DC: @ 80156DC
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _08015730 @ =gUnknown_02024DEA
- strb r3, [r0]
- strb r3, [r0, 0x1]
- movs r1, 0
- ldr r0, _08015734 @ =gUnknown_02024A68
- ldrb r2, [r0]
- adds r6, r0, 0
- cmp r1, r2
- bge _0801570A
- ldr r5, _08015738 @ =gBitTable
- adds r4, r2, 0
- ldr r2, _0801573C @ =gUnknown_02024A6A
-_080156F8:
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- orrs r3, r0
- adds r2, 0x4
- adds r1, 0x2
- cmp r1, r4
- blt _080156F8
-_0801570A:
- movs r1, 0x1
- adds r2, r6, 0
- ldrb r0, [r2]
- cmp r1, r0
- bge _0801572A
- ldr r5, _08015730 @ =gUnknown_02024DEA
- movs r4, 0x2
-_08015718:
- adds r0, r1, 0
- ands r0, r4
- asrs r0, 1
- adds r0, r5
- strb r3, [r0]
- adds r1, 0x2
- ldrb r0, [r2]
- cmp r1, r0
- blt _08015718
-_0801572A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08015730: .4byte gUnknown_02024DEA
-_08015734: .4byte gUnknown_02024A68
-_08015738: .4byte gBitTable
-_0801573C: .4byte gUnknown_02024A6A
- thumb_func_end sub_80156DC
-
- thumb_func_start sub_8015740
-sub_8015740: @ 8015740
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080157A4
- movs r0, 0x2
- ands r0, r5
- lsls r0, 24
- lsrs r0, 25
- mov r12, r0
- ldr r1, _080157B0 @ =gUnknown_02024DEA
- adds r0, r1
- strb r4, [r0]
- adds r5, r4, 0
- ldr r0, _080157B4 @ =gUnknown_02024A68
- ldrb r2, [r0]
- mov r8, r1
- cmp r4, r2
- bge _0801579E
- ldr r0, _080157B8 @ =gUnknown_02024C0C
- ldrb r7, [r0]
- ldr r1, _080157BC @ =gBitTable
- adds r6, r2, 0
- ldr r3, _080157C0 @ =gUnknown_02024A6A
- adds r2, r1, 0
-_08015782:
- ldr r0, [r2]
- ands r0, r7
- cmp r0, 0
- bne _08015794
- ldrh r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- orrs r4, r0
-_08015794:
- adds r3, 0x4
- adds r2, 0x8
- adds r5, 0x2
- cmp r5, r6
- blt _08015782
-_0801579E:
- mov r0, r12
- add r0, r8
- strb r4, [r0]
-_080157A4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080157B0: .4byte gUnknown_02024DEA
-_080157B4: .4byte gUnknown_02024A68
-_080157B8: .4byte gUnknown_02024C0C
-_080157BC: .4byte gBitTable
-_080157C0: .4byte gUnknown_02024A6A
- thumb_func_end sub_8015740
-
- thumb_func_start sub_80157C4
-sub_80157C4: @ 80157C4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080157E0
- adds r0, r4, 0
- bl sub_8015740
- b _08015816
-_080157E0:
- movs r3, 0x1
- ldr r5, _0801581C @ =gUnknown_02024A68
- ldrb r0, [r5]
- cmp r3, r0
- bge _08015816
- ldr r0, _08015820 @ =gUnknown_02024DEA
- mov r12, r0
- movs r7, 0x2
- ldr r6, _08015824 @ =gBitTable
- ldr r1, _08015828 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r4, r0, r1
-_080157F8:
- adds r2, r3, 0
- ands r2, r7
- asrs r2, 1
- add r2, r12
- ldrh r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r3, 0x1
- ldrb r0, [r5]
- cmp r3, r0
- blt _080157F8
-_08015816:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801581C: .4byte gUnknown_02024A68
-_08015820: .4byte gUnknown_02024DEA
-_08015824: .4byte gBitTable
-_08015828: .4byte gUnknown_02024A6A
- thumb_func_end sub_80157C4
-
- thumb_func_start b_movescr_stack_push
-b_movescr_stack_push: @ 801582C
- push {r4,lr}
- ldr r4, _08015848 @ =0x02017110
- adds r3, r4, 0
- adds r3, 0x20
- ldrb r1, [r3]
- adds r2, r1, 0x1
- strb r2, [r3]
- lsls r1, 24
- lsrs r1, 22
- adds r1, r4
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08015848: .4byte 0x02017110
- thumb_func_end b_movescr_stack_push
-
- thumb_func_start b_movescr_stack_push_cursor
-b_movescr_stack_push_cursor: @ 801584C
- ldr r3, _08015868 @ =0x02017110
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r1, _0801586C @ =gUnknown_02024C10
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .align 2, 0
-_08015868: .4byte 0x02017110
-_0801586C: .4byte gUnknown_02024C10
- thumb_func_end b_movescr_stack_push_cursor
-
- thumb_func_start b_movescr_stack_pop_cursor
-b_movescr_stack_pop_cursor: @ 8015870
- ldr r3, _0801588C @ =gUnknown_02024C10
- ldr r2, _08015890 @ =0x02017110
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- bx lr
- .align 2, 0
-_0801588C: .4byte gUnknown_02024C10
-_08015890: .4byte 0x02017110
- thumb_func_end b_movescr_stack_pop_cursor
-
- thumb_func_start sub_8015894
-sub_8015894: @ 8015894
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r2, _080159AC @ =gBattleMons
- ldr r1, _080159B0 @ =gUnknown_02024260
- ldr r5, _080159B4 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r0, r3, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- muls r1, r3
- adds r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r4, [r0]
- lsls r0, r3, 1
- ldr r2, _080159B8 @ =0x020160e8
- adds r0, r2
- mov r8, r0
- ldr r1, _080159BC @ =gUnknown_02024CA8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x4]
- cmp r0, r4
- bne _080158EE
- cmp r4, 0
- beq _080158EE
- adds r0, r2, 0
- subs r0, 0xE5
- strb r3, [r0]
- ldr r0, _080159C0 @ =gUnknown_02024BE6
- strh r4, [r0]
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159C8 @ =gUnknown_081D9144
- str r1, [r0]
- movs r6, 0x1
-_080158EE:
- ldr r1, _080159CC @ =gUnknown_02024C34
- ldr r5, _080159B4 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _0801592A
- cmp r4, 0xA5
- beq _0801592A
- ldr r1, _080159AC @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bge _0801592A
- adds r0, r2, 0
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159D0 @ =gUnknown_081D937C
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0801592A:
- ldr r2, _080159BC @ =gUnknown_02024CA8
- ldr r3, _080159B4 @ =gUnknown_02024A60
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08015966
- ldr r0, _080159D4 @ =gBattleMoves
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08015966
- ldr r0, _080159C0 @ =gUnknown_02024BE6
- strh r4, [r0]
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159D8 @ =gUnknown_081D938B
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015966:
- ldr r5, _080159B4 @ =gUnknown_02024A60
- ldrb r0, [r5]
- adds r1, r4, 0
- bl sub_8015D5C
- lsls r0, 24
- cmp r0, 0
- beq _0801598C
- ldr r0, _080159C0 @ =gUnknown_02024BE6
- strh r4, [r0]
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159DC @ =gUnknown_081D9464
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0801598C:
- ldr r1, _080159AC @ =gBattleMons
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _080159E4
- ldr r1, _080159E0 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- b _080159EE
- .align 2, 0
-_080159AC: .4byte gBattleMons
-_080159B0: .4byte gUnknown_02024260
-_080159B4: .4byte gUnknown_02024A60
-_080159B8: .4byte 0x020160e8
-_080159BC: .4byte gUnknown_02024CA8
-_080159C0: .4byte gUnknown_02024BE6
-_080159C4: .4byte gUnknown_02024C1C
-_080159C8: .4byte gUnknown_081D9144
-_080159CC: .4byte gUnknown_02024C34
-_080159D0: .4byte gUnknown_081D937C
-_080159D4: .4byte gBattleMoves
-_080159D8: .4byte gUnknown_081D938B
-_080159DC: .4byte gUnknown_081D9464
-_080159E0: .4byte gEnigmaBerries
-_080159E4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r3, r0, 24
-_080159EE:
- ldr r2, _08015A70 @ =gUnknown_02024C0B
- ldr r1, _08015A74 @ =gUnknown_02024A60
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r7, _08015A78 @ =gBattleMons
- adds r5, r1, 0
- cmp r3, 0x1D
- bne _08015A36
- mov r0, r8
- ldrh r2, [r0]
- adds r1, r2, 0
- cmp r1, 0
- beq _08015A36
- ldr r0, _08015A7C @ =0x0000ffff
- cmp r1, r0
- beq _08015A36
- cmp r1, r4
- beq _08015A36
- ldr r0, _08015A80 @ =gUnknown_02024BE6
- strh r2, [r0]
- ldr r2, _08015A84 @ =gUnknown_02024C04
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- strh r0, [r2]
- ldr r1, _08015A88 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08015A8C @ =gUnknown_081D9AC2
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015A36:
- ldr r0, _08015A90 @ =gUnknown_02024260
- ldrb r2, [r5]
- lsls r1, r2, 9
- adds r0, 0x2
- adds r1, r0
- movs r0, 0x58
- muls r0, r2
- ldrb r1, [r1]
- adds r0, r1
- adds r1, r7, 0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015A64
- ldr r1, _08015A88 @ =gUnknown_02024C1C
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, _08015A94 @ =gUnknown_081D9369
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015A64:
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08015A70: .4byte gUnknown_02024C0B
-_08015A74: .4byte gUnknown_02024A60
-_08015A78: .4byte gBattleMons
-_08015A7C: .4byte 0x0000ffff
-_08015A80: .4byte gUnknown_02024BE6
-_08015A84: .4byte gUnknown_02024C04
-_08015A88: .4byte gUnknown_02024C1C
-_08015A8C: .4byte gUnknown_081D9AC2
-_08015A90: .4byte gUnknown_02024260
-_08015A94: .4byte gUnknown_081D9369
- thumb_func_end sub_8015894
-
- thumb_func_start sub_8015A98
-sub_8015A98: @ 8015A98
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r3, r2, 24
- lsls r1, r7, 1
- ldr r0, _08015AD8 @ =0x020160e8
- adds r1, r0
- str r1, [sp, 0x4]
- ldr r1, _08015ADC @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08015AE4
- ldr r2, _08015AE0 @ =gEnigmaBerries
- lsls r1, r7, 3
- subs r0, r1, r7
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- b _08015AF6
- .align 2, 0
-_08015AD8: .4byte 0x020160e8
-_08015ADC: .4byte gBattleMons
-_08015AE0: .4byte gEnigmaBerries
-_08015AE4:
- ldrh r0, [r1, 0x2E]
- str r3, [sp, 0x14]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, r7, 3
- ldr r3, [sp, 0x14]
-_08015AF6:
- ldr r0, _08015C70 @ =gUnknown_02024C0B
- strb r7, [r0]
- movs r0, 0
- mov r9, r0
- lsls r2, r7, 1
- str r2, [sp, 0xC]
- ldr r5, _08015C74 @ =gUnknown_02024CA8
- mov r12, r5
- ldr r0, _08015C78 @ =gBattleMons
- movs r2, 0x58
- adds r6, r7, 0
- muls r6, r2
- str r6, [sp, 0x8]
- ldr r2, _08015C7C @ =gUnknown_02024A8C
- adds r5, r6, r2
- movs r6, 0
- str r6, [sp, 0x10]
- mov r10, r0
- subs r0, r1, r7
- lsls r0, 2
- mov r8, r0
- ldr r6, _08015C80 @ =gBitTable
-_08015B22:
- ldrh r0, [r5]
- cmp r0, 0
- bne _08015B38
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08015B38
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015B38:
- ldr r0, [sp, 0x8]
- add r0, r9
- mov r1, r10
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015B58
- movs r0, 0x2
- ands r0, r3
- cmp r0, 0
- beq _08015B58
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015B58:
- mov r1, r8
- add r1, r12
- ldrh r0, [r5]
- ldrh r1, [r1, 0x4]
- cmp r0, r1
- bne _08015B74
- movs r0, 0x4
- ands r0, r3
- cmp r0, 0
- beq _08015B74
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015B74:
- movs r0, 0x58
- adds r2, r7, 0
- muls r2, r0
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldr r1, _08015C7C @ =gUnknown_02024A8C
- adds r0, r1
- mov r12, r0
- ldr r1, _08015C84 @ =gUnknown_02024C34
- ldr r0, [sp, 0xC]
- adds r1, r0, r1
- str r1, [sp, 0x18]
- mov r1, r12
- ldrh r1, [r1]
- mov r12, r1
- ldr r0, [sp, 0x18]
- ldrh r0, [r0]
- cmp r12, r0
- bne _08015BB6
- movs r0, 0x8
- ands r0, r3
- cmp r0, 0
- beq _08015BB6
- mov r0, r10
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bge _08015BB6
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015BB6:
- ldr r0, _08015C74 @ =gUnknown_02024CA8
- add r0, r8
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08015BE4
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _08015BE4
- ldr r2, _08015C88 @ =gBattleMoves
- ldrh r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08015BE4
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015BE4:
- ldrh r1, [r5]
- adds r0, r7, 0
- str r3, [sp, 0x14]
- bl sub_8015D5C
- lsls r0, 24
- ldr r3, [sp, 0x14]
- cmp r0, 0
- beq _08015C06
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _08015C06
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015C06:
- ldr r1, _08015C74 @ =gUnknown_02024CA8
- mov r0, r8
- adds r2, r0, r1
- ldrb r0, [r2, 0xE]
- lsls r0, 28
- mov r12, r1
- cmp r0, 0
- beq _08015C26
- ldrh r0, [r2, 0x6]
- ldrh r1, [r5]
- cmp r0, r1
- beq _08015C26
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015C26:
- ldr r2, [sp]
- cmp r2, 0x1D
- bne _08015C48
- ldr r0, [sp, 0x4]
- ldrh r1, [r0]
- cmp r1, 0
- beq _08015C48
- ldr r0, _08015C8C @ =0x0000ffff
- cmp r1, r0
- beq _08015C48
- ldrh r2, [r5]
- cmp r1, r2
- beq _08015C48
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015C48:
- adds r6, 0x4
- adds r5, 0x2
- ldr r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x10]
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x3
- bgt _08015C5E
- b _08015B22
-_08015C5E:
- adds r0, r4, 0
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08015C70: .4byte gUnknown_02024C0B
-_08015C74: .4byte gUnknown_02024CA8
-_08015C78: .4byte gBattleMons
-_08015C7C: .4byte gUnknown_02024A8C
-_08015C80: .4byte gBitTable
-_08015C84: .4byte gUnknown_02024C34
-_08015C88: .4byte gBattleMoves
-_08015C8C: .4byte 0x0000ffff
- thumb_func_end sub_8015A98
-
- thumb_func_start sub_8015C90
-sub_8015C90: @ 8015C90
- push {r4-r6,lr}
- ldr r5, _08015CFC @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r1, 0
- movs r2, 0xFF
- bl sub_8015A98
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xF
- bne _08015D38
- ldr r0, _08015D00 @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08015D04 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08015D08 @ =gUnknown_081D9365
- str r1, [r0]
- ldr r0, _08015D0C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08015D14
- ldrb r0, [r5]
- bl battle_get_per_side_status
- adds r4, r0, 0
- bl Random
- movs r1, 0x1
- eors r4, r1
- movs r1, 0x2
- ands r1, r0
- orrs r4, r1
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl battle_get_side_with_given_state
- ldr r2, _08015D10 @ =gUnknown_02024260
- ldrb r1, [r5]
- lsls r1, 9
- adds r2, 0x3
- adds r1, r2
- b _08015D48
- .align 2, 0
-_08015CFC: .4byte gUnknown_02024A60
-_08015D00: .4byte gUnknown_02024D28
-_08015D04: .4byte gUnknown_02024C1C
-_08015D08: .4byte gUnknown_081D9365
-_08015D0C: .4byte gUnknown_020239F8
-_08015D10: .4byte gUnknown_02024260
-_08015D14:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r2, _08015D34 @ =gUnknown_02024260
- ldrb r1, [r5]
- lsls r1, 9
- adds r2, 0x3
- adds r1, r2
- b _08015D48
- .align 2, 0
-_08015D34: .4byte gUnknown_02024260
-_08015D38:
- ldr r0, _08015D58 @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
-_08015D48:
- strb r0, [r1]
- movs r0, 0
- cmp r6, 0xF
- bne _08015D52
- movs r0, 0x1
-_08015D52:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08015D58: .4byte gUnknown_02024D28
- thumb_func_end sub_8015C90
-
- thumb_func_start sub_8015D5C
-sub_8015D5C: @ 8015D5C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- movs r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- ldr r0, _08015DF0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bge _08015DE0
- ldr r7, _08015DF4 @ =gUnknown_02024A8C
- mov r8, r7
-_08015D86:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r9, r0
- beq _08015DD6
- ldr r1, _08015DF8 @ =gUnknown_02024C98
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _08015DD6
- movs r2, 0
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- adds r0, r1, r7
- ldrh r0, [r0]
- cmp r5, r0
- beq _08015DCC
- mov r4, r8
- adds r0, r1, r4
-_08015DBE:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08015DD6
- ldrh r1, [r0]
- cmp r5, r1
- bne _08015DBE
-_08015DCC:
- cmp r2, 0x3
- bgt _08015DD6
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015DD6:
- adds r4, r3, 0
- ldr r0, _08015DF0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08015D86
-_08015DE0:
- adds r0, r6, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08015DF0: .4byte gUnknown_02024A68
-_08015DF4: .4byte gUnknown_02024A8C
-_08015DF8: .4byte gUnknown_02024C98
- thumb_func_end sub_8015D5C
-
- thumb_func_start sub_8015DFC
-sub_8015DFC: @ 8015DFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r9, r0
- ldr r1, _08015EA0 @ =gUnknown_02024C07
- mov r2, r9
- strb r2, [r1]
- ldr r0, _08015EA4 @ =gUnknown_02024A68
- ldrb r4, [r0]
- adds r6, r1, 0
- mov r10, r0
- ldr r7, _08015EA8 @ =gUnknown_02024C08
- ldr r3, _08015EAC @ =0x02000000
- mov r12, r3
- cmp r9, r4
- bcs _08015E50
- ldr r2, _08015EB0 @ =gUnknown_02024C0C
- ldrb r1, [r2]
- ldr r5, _08015EB4 @ =gBitTable
- ldr r0, [r5]
- ands r1, r0
- cmp r1, 0
- beq _08015E50
- adds r3, r6, 0
-_08015E32:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _08015E50
- ldrb r0, [r2]
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _08015E32
-_08015E50:
- movs r0, 0
- strb r0, [r7]
- mov r0, r10
- ldrb r4, [r0]
- cmp r4, 0
- beq _08015E8A
- ldr r2, _08015EB0 @ =gUnknown_02024C0C
- ldrb r1, [r2]
- ldr r5, _08015EB4 @ =gBitTable
- ldr r0, [r5]
- ands r1, r0
- cmp r1, 0
- beq _08015E8A
- adds r3, r7, 0
-_08015E6C:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _08015E8A
- ldrb r0, [r2]
- ldrb r1, [r7]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _08015E6C
-_08015E8A:
- ldr r0, _08015EB8 @ =0x0001600e
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _08015E96
- b _0801652A
-_08015E96:
- lsls r0, 2
- ldr r1, _08015EBC @ =_08015EC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08015EA0: .4byte gUnknown_02024C07
-_08015EA4: .4byte gUnknown_02024A68
-_08015EA8: .4byte gUnknown_02024C08
-_08015EAC: .4byte 0x02000000
-_08015EB0: .4byte gUnknown_02024C0C
-_08015EB4: .4byte gBitTable
-_08015EB8: .4byte 0x0001600e
-_08015EBC: .4byte _08015EC0
- .align 2, 0
-_08015EC0:
- .4byte _08015EEC
- .4byte _08015F74
- .4byte _08016034
- .4byte _080160F4
- .4byte _080161C8
- .4byte _08016274
- .4byte _08016324
- .4byte _080163A8
- .4byte _08016420
- .4byte _08016494
- .4byte _08016520
-_08015EEC:
- movs r5, 0
- ldr r1, _08015F0C @ =gUnknown_02024A68
- mov r10, r1
- ldrb r2, [r1]
- cmp r5, r2
- bge _08015F06
- ldr r2, _08015F10 @ =gUnknown_02024A7A
-_08015EFA:
- adds r0, r5, r2
- strb r5, [r0]
- adds r5, 0x1
- ldrb r3, [r1]
- cmp r5, r3
- blt _08015EFA
-_08015F06:
- movs r5, 0
- b _08015F54
- .align 2, 0
-_08015F0C: .4byte gUnknown_02024A68
-_08015F10: .4byte gUnknown_02024A7A
-_08015F14:
- adds r4, r5, 0x1
- adds r6, r4, 0
- ldrb r1, [r1]
- cmp r6, r1
- bge _08015F52
- ldr r7, _08016004 @ =gUnknown_02024A7A
- ldr r0, _08016008 @ =gUnknown_02024A68
- mov r10, r0
- lsls r1, r5, 24
- mov r8, r1
-_08015F28:
- adds r0, r5, r7
- ldrb r0, [r0]
- adds r1, r4, r7
- ldrb r1, [r1]
- movs r2, 0
- bl b_first_side
- lsls r0, 24
- cmp r0, 0
- beq _08015F48
- lsls r1, r4, 24
- lsrs r1, 24
- mov r2, r8
- lsrs r0, r2, 24
- bl sub_8012FBC
-_08015F48:
- adds r4, 0x1
- ldr r0, _08016008 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08015F28
-_08015F52:
- adds r5, r6, 0
-_08015F54:
- mov r1, r10
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _08015F14
- ldr r1, _0801600C @ =0x02000000
- ldr r3, _08016010 @ =0x0001600e
- adds r2, r1, r3
- ldrb r0, [r2]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r2]
- ldr r2, _08016014 @ =0x000160fc
- adds r0, r1, r2
- strb r3, [r0]
- mov r12, r1
-_08015F74:
- ldr r1, _08016014 @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bls _08015F80
- b _08016236
-_08015F80:
- ldr r3, _08016018 @ =gUnknown_02024A60
- mov r8, r3
- adds r6, r1, 0
- movs r7, 0
- ldr r5, _0801601C @ =gUnknown_030041C0
-_08015F8A:
- ldr r0, _08016020 @ =gUnknown_02024C07
- ldrb r4, [r6]
- strb r4, [r0]
- mov r0, r8
- strb r4, [r0]
- ldr r0, _08016024 @ =gUnknown_02024C7A
- lsls r2, r4, 1
- adds r3, r2, r0
- ldrh r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08015FE8
- ldr r0, _08016028 @ =gUnknown_02024C80
- adds r1, r2, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- movs r4, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _08015FE8
- ldrh r0, [r3]
- ldr r2, _0801602C @ =0x0000fffe
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, _08016030 @ =gUnknown_081D9030
- bl b_call_bc_move_exec
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0x1]
- movs r0, 0x73
- strb r0, [r5, 0x2]
- strb r7, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r4
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08015FE8:
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- ldr r3, _0801600C @ =0x02000000
- mov r12, r3
- mov r1, r9
- cmp r1, 0
- beq _08015FFA
- b _08016532
-_08015FFA:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08015F8A
- b _08016236
- .align 2, 0
-_08016004: .4byte gUnknown_02024A7A
-_08016008: .4byte gUnknown_02024A68
-_0801600C: .4byte 0x02000000
-_08016010: .4byte 0x0001600e
-_08016014: .4byte 0x000160fc
-_08016018: .4byte gUnknown_02024A60
-_0801601C: .4byte gUnknown_030041C0
-_08016020: .4byte gUnknown_02024C07
-_08016024: .4byte gUnknown_02024C7A
-_08016028: .4byte gUnknown_02024C80
-_0801602C: .4byte 0x0000fffe
-_08016030: .4byte gUnknown_081D9030
-_08016034:
- ldr r1, _080160CC @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bls _08016040
- b _08016182
-_08016040:
- adds r7, r1, 0
- movs r3, 0x2
- mov r10, r3
- movs r0, 0
- mov r8, r0
- ldr r5, _080160D0 @ =gUnknown_030041C0
-_0801604C:
- ldr r0, _080160D4 @ =gUnknown_02024C07
- ldrb r4, [r7]
- strb r4, [r0]
- ldr r1, _080160D8 @ =gUnknown_02024A60
- strb r4, [r1]
- ldr r0, _080160DC @ =gUnknown_02024C7A
- lsls r2, r4, 1
- adds r3, r2, r0
- ldrh r1, [r3]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080160B0
- ldr r0, _080160E0 @ =gUnknown_02024C80
- adds r1, r2, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- subs r0, 0x1
- strb r0, [r1, 0x1]
- movs r6, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _080160B0
- ldrh r0, [r3]
- ldr r2, _080160E4 @ =0x0000fffd
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, _080160E8 @ =gUnknown_081D9030
- bl b_call_bc_move_exec
- ldr r0, _080160EC @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- movs r0, 0xFD
- strb r0, [r5]
- mov r3, r10
- strb r3, [r5, 0x1]
- movs r0, 0x71
- strb r0, [r5, 0x2]
- mov r0, r8
- strb r0, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r6
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080160B0:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- ldr r1, _080160F0 @ =0x02000000
- mov r12, r1
- mov r2, r9
- cmp r2, 0
- beq _080160C2
- b _08016532
-_080160C2:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0801604C
- b _08016182
- .align 2, 0
-_080160CC: .4byte 0x000160fc
-_080160D0: .4byte gUnknown_030041C0
-_080160D4: .4byte gUnknown_02024C07
-_080160D8: .4byte gUnknown_02024A60
-_080160DC: .4byte gUnknown_02024C7A
-_080160E0: .4byte gUnknown_02024C80
-_080160E4: .4byte 0x0000fffd
-_080160E8: .4byte gUnknown_081D9030
-_080160EC: .4byte gUnknown_02024D1E
-_080160F0: .4byte 0x02000000
-_080160F4:
- ldr r1, _0801619C @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bhi _08016182
- ldr r0, _080161A0 @ =gUnknown_02024A60
- mov r10, r0
- adds r7, r1, 0
- movs r1, 0
- mov r8, r1
- ldr r5, _080161A4 @ =gUnknown_030041C0
-_0801610A:
- ldr r0, _080161A8 @ =gUnknown_02024C07
- ldrb r4, [r7]
- strb r4, [r0]
- mov r2, r10
- strb r4, [r2]
- ldr r1, _080161AC @ =gUnknown_02024C80
- lsls r3, r4, 1
- adds r0, r3, r4
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- beq _08016168
- subs r0, 0x1
- strb r0, [r1, 0x2]
- movs r6, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _08016168
- ldr r2, _080161B0 @ =gUnknown_02024C7A
- adds r2, r3, r2
- ldrh r0, [r2]
- ldr r3, _080161B4 @ =0x0000feff
- adds r1, r3, 0
- ands r0, r1
- strh r0, [r2]
- ldr r0, _080161B8 @ =gUnknown_081D9030
- bl b_call_bc_move_exec
- ldr r0, _080161BC @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0x1]
- movs r0, 0x36
- strb r0, [r5, 0x2]
- mov r0, r8
- strb r0, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r6
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016168:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- ldr r1, _080161C0 @ =0x02000000
- mov r12, r1
- mov r2, r9
- cmp r2, 0
- beq _0801617A
- b _08016532
-_0801617A:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0801610A
-_08016182:
- mov r3, r9
- cmp r3, 0
- beq _0801618A
- b _08016532
-_0801618A:
- ldr r0, _080161C4 @ =0x0001600e
- add r0, r12
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _0801619C @ =0x000160fc
- add r0, r12
- strb r3, [r0]
- b _0801652A
- .align 2, 0
-_0801619C: .4byte 0x000160fc
-_080161A0: .4byte gUnknown_02024A60
-_080161A4: .4byte gUnknown_030041C0
-_080161A8: .4byte gUnknown_02024C07
-_080161AC: .4byte gUnknown_02024C80
-_080161B0: .4byte gUnknown_02024C7A
-_080161B4: .4byte 0x0000feff
-_080161B8: .4byte gUnknown_081D9030
-_080161BC: .4byte gUnknown_02024D1E
-_080161C0: .4byte 0x02000000
-_080161C4: .4byte 0x0001600e
-_080161C8:
- ldr r1, _08016250 @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bhi _08016236
- ldr r7, _08016254 @ =gUnknown_02024A60
- adds r5, r1, 0
- ldr r6, _08016258 @ =gUnknown_02024C07
-_080161D8:
- ldrb r4, [r5]
- strb r4, [r6]
- strb r4, [r7]
- ldr r0, _0801625C @ =gUnknown_02024C7A
- lsls r2, r4, 1
- adds r3, r2, r0
- ldrh r1, [r3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801621C
- ldr r0, _08016260 @ =gUnknown_02024C80
- adds r1, r2, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x7]
- subs r0, 0x1
- strb r0, [r1, 0x7]
- lsls r0, 24
- cmp r0, 0
- bne _0801621C
- ldrh r0, [r3]
- ldr r2, _08016264 @ =0x0000ffdf
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, _08016268 @ =gUnknown_081D9041
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801621C:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r3, _0801626C @ =0x02000000
- mov r12, r3
- mov r1, r9
- cmp r1, 0
- beq _0801622E
- b _08016532
-_0801622E:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080161D8
-_08016236:
- mov r2, r9
- cmp r2, 0
- beq _0801623E
- b _08016532
-_0801623E:
- ldr r0, _08016270 @ =0x0001600e
- add r0, r12
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08016250 @ =0x000160fc
- add r0, r12
- strb r2, [r0]
- b _0801652A
- .align 2, 0
-_08016250: .4byte 0x000160fc
-_08016254: .4byte gUnknown_02024A60
-_08016258: .4byte gUnknown_02024C07
-_0801625C: .4byte gUnknown_02024C7A
-_08016260: .4byte gUnknown_02024C80
-_08016264: .4byte 0x0000ffdf
-_08016268: .4byte gUnknown_081D9041
-_0801626C: .4byte 0x02000000
-_08016270: .4byte 0x0001600e
-_08016274:
- ldr r2, _080162FC @ =0x000160fc
- add r2, r12
- ldr r1, _08016300 @ =gUnknown_02024A68
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080162E8
- ldr r5, _08016304 @ =gUnknown_02024A60
- adds r4, r2, 0
- ldr r6, _08016308 @ =gUnknown_02024DDC
-_08016288:
- ldr r1, _0801630C @ =gUnknown_02024A7A
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r5]
- ldrb r0, [r5]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _080162CA
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080162CA
- ldr r1, _08016310 @ =gBattleMons
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080162CA
- ldr r0, _08016314 @ =gUnknown_02024C08
- strb r2, [r0]
- ldr r0, _08016318 @ =gUnknown_081D939A
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080162CA:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r3, _0801631C @ =0x02000000
- mov r12, r3
- mov r1, r9
- cmp r1, 0
- beq _080162DC
- b _08016532
-_080162DC:
- ldr r1, _08016300 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08016288
-_080162E8:
- mov r2, r9
- cmp r2, 0
- beq _080162F0
- b _08016532
-_080162F0:
- ldr r1, _08016320 @ =0x0001600e
- add r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0801652A
- .align 2, 0
-_080162FC: .4byte 0x000160fc
-_08016300: .4byte gUnknown_02024A68
-_08016304: .4byte gUnknown_02024A60
-_08016308: .4byte gUnknown_02024DDC
-_0801630C: .4byte gUnknown_02024A7A
-_08016310: .4byte gBattleMons
-_08016314: .4byte gUnknown_02024C08
-_08016318: .4byte gUnknown_081D939A
-_0801631C: .4byte 0x02000000
-_08016320: .4byte 0x0001600e
-_08016324:
- ldr r3, _0801635C @ =word_2024DB8
- ldrh r2, [r3]
- movs r0, 0x7
- ands r0, r2
- cmp r0, 0
- bne _08016332
- b _080164F8
-_08016332:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- bne _0801637E
- ldr r1, _08016360 @ =gUnknown_02024DBC
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08016370
- ldr r0, _08016364 @ =0x0000fffe
- ands r0, r2
- ldr r1, _08016368 @ =0x0000fffd
- ands r0, r1
- strh r0, [r3]
- ldr r1, _0801636C @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0801639C
- .align 2, 0
-_0801635C: .4byte word_2024DB8
-_08016360: .4byte gUnknown_02024DBC
-_08016364: .4byte 0x0000fffe
-_08016368: .4byte 0x0000fffd
-_0801636C: .4byte gUnknown_02024D1E
-_08016370:
- movs r0, 0x2
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _0801638A
- b _08016398
-_0801637E:
- movs r0, 0x2
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _08016398
-_0801638A:
- ldr r1, _08016394 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0801639C
- .align 2, 0
-_08016394: .4byte gUnknown_02024D1E
-_08016398:
- ldr r0, _080163A0 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
-_0801639C:
- ldr r0, _080163A4 @ =gUnknown_081D8F62
- b _080164EA
- .align 2, 0
-_080163A0: .4byte gUnknown_02024D1E
-_080163A4: .4byte gUnknown_081D8F62
-_080163A8:
- ldr r3, _080163DC @ =word_2024DB8
- ldrh r2, [r3]
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- bne _080163B6
- b _080164F8
-_080163B6:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _080163F0
- ldr r1, _080163E0 @ =gUnknown_02024DBC
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080163F0
- ldr r0, _080163E4 @ =0x0000fff7
- ands r0, r2
- strh r0, [r3]
- ldr r1, _080163E8 @ =gUnknown_02024C10
- ldr r0, _080163EC @ =gUnknown_081D8FFF
- b _080163F4
- .align 2, 0
-_080163DC: .4byte word_2024DB8
-_080163E0: .4byte gUnknown_02024DBC
-_080163E4: .4byte 0x0000fff7
-_080163E8: .4byte gUnknown_02024C10
-_080163EC: .4byte gUnknown_081D8FFF
-_080163F0:
- ldr r1, _0801640C @ =gUnknown_02024C10
- ldr r0, _08016410 @ =gUnknown_081D8F7D
-_080163F4:
- str r0, [r1]
- adds r3, r1, 0
- ldr r1, _08016414 @ =0x02000000
- ldr r0, _08016418 @ =0x000160a4
- adds r1, r0
- movs r2, 0
- movs r0, 0xC
- strb r0, [r1]
- ldr r0, _0801641C @ =gUnknown_02024D1E
- strb r2, [r0, 0x5]
- b _080164E8
- .align 2, 0
-_0801640C: .4byte gUnknown_02024C10
-_08016410: .4byte gUnknown_081D8F7D
-_08016414: .4byte 0x02000000
-_08016418: .4byte 0x000160a4
-_0801641C: .4byte gUnknown_02024D1E
-_08016420:
- ldr r3, _08016450 @ =word_2024DB8
- ldrh r2, [r3]
- movs r0, 0x60
- ands r0, r2
- cmp r0, 0
- beq _0801647C
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _08016464
- ldr r1, _08016454 @ =gUnknown_02024DBC
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08016464
- ldr r0, _08016458 @ =0x0000ffdf
- ands r0, r2
- strh r0, [r3]
- ldr r1, _0801645C @ =gUnknown_02024C10
- ldr r0, _08016460 @ =gUnknown_081D9016
- b _08016468
- .align 2, 0
-_08016450: .4byte word_2024DB8
-_08016454: .4byte gUnknown_02024DBC
-_08016458: .4byte 0x0000ffdf
-_0801645C: .4byte gUnknown_02024C10
-_08016460: .4byte gUnknown_081D9016
-_08016464:
- ldr r1, _08016484 @ =gUnknown_02024C10
- ldr r0, _08016488 @ =gUnknown_081D9008
-_08016468:
- str r0, [r1]
- adds r3, r1, 0
- ldr r0, [r3]
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801647C:
- ldr r2, _0801648C @ =0x02000000
- ldr r0, _08016490 @ =0x0001600e
- adds r1, r2, r0
- b _080164FE
- .align 2, 0
-_08016484: .4byte gUnknown_02024C10
-_08016488: .4byte gUnknown_081D9008
-_0801648C: .4byte 0x02000000
-_08016490: .4byte 0x0001600e
-_08016494:
- ldr r3, _080164BC @ =word_2024DB8
- ldrh r2, [r3]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080164F8
- ldr r1, _080164C0 @ =gUnknown_02024DBC
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080164D0
- ldr r0, _080164C4 @ =0x0000ff7f
- ands r0, r2
- strh r0, [r3]
- ldr r1, _080164C8 @ =gUnknown_02024C10
- ldr r0, _080164CC @ =gUnknown_081D8FFF
- b _080164D4
- .align 2, 0
-_080164BC: .4byte word_2024DB8
-_080164C0: .4byte gUnknown_02024DBC
-_080164C4: .4byte 0x0000ff7f
-_080164C8: .4byte gUnknown_02024C10
-_080164CC: .4byte gUnknown_081D8FFF
-_080164D0:
- ldr r1, _08016508 @ =gUnknown_02024C10
- ldr r0, _0801650C @ =gUnknown_081D8F7D
-_080164D4:
- str r0, [r1]
- adds r3, r1, 0
- ldr r0, _08016510 @ =0x02000000
- ldr r1, _08016514 @ =0x000160a4
- adds r0, r1
- movs r1, 0xD
- strb r1, [r0]
- ldr r1, _08016518 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080164E8:
- ldr r0, [r3]
-_080164EA:
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080164F8:
- ldr r2, _08016510 @ =0x02000000
- ldr r3, _0801651C @ =0x0001600e
- adds r1, r2, r3
-_080164FE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- b _0801652A
- .align 2, 0
-_08016508: .4byte gUnknown_02024C10
-_0801650C: .4byte gUnknown_081D8F7D
-_08016510: .4byte 0x02000000
-_08016514: .4byte 0x000160a4
-_08016518: .4byte gUnknown_02024D1E
-_0801651C: .4byte 0x0001600e
-_08016520:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801652A:
- mov r0, r9
- cmp r0, 0
- bne _08016532
- b _08015E8A
-_08016532:
- ldr r0, _08016550 @ =gUnknown_030042D4
- ldr r1, [r0]
- ldr r0, _08016554 @ =sub_8011E8C
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08016550: .4byte gUnknown_030042D4
-_08016554: .4byte sub_8011E8C
- thumb_func_end sub_8015DFC
-
- thumb_func_start sub_8016558
-sub_8016558: @ 8016558
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r9, r0
- ldr r2, _08016578 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0801657C @ =0x01000020
- orrs r0, r1
- str r0, [r2]
- bl _08017088
- .align 2, 0
-_08016578: .4byte gUnknown_02024C6C
-_0801657C: .4byte 0x01000020
-_08016580:
- ldr r3, _080165B4 @ =gUnknown_02024A60
- ldr r4, _080165B8 @ =gUnknown_02024C07
- ldr r1, _080165BC @ =gUnknown_02024A7A
- adds r5, r7, r2
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- strb r0, [r3]
- ldr r0, _080165C0 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _080165C4 @ =gBitTable
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- adds r6, r3, 0
- cmp r1, 0
- beq _080165C8
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- bl _08017088
- .align 2, 0
-_080165B4: .4byte gUnknown_02024A60
-_080165B8: .4byte gUnknown_02024C07
-_080165BC: .4byte gUnknown_02024A7A
-_080165C0: .4byte gUnknown_02024C0C
-_080165C4: .4byte gBitTable
-_080165C8:
- movs r5, 0xB0
- lsls r5, 9
- adds r0, r7, r5
- ldrb r0, [r0]
- cmp r0, 0x13
- bls _080165D8
- bl _08017078
-_080165D8:
- lsls r0, 2
- ldr r1, _080165E4 @ =_080165E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080165E4: .4byte _080165E8
- .align 2, 0
-_080165E8:
- .4byte _08016638
- .4byte _080166A8
- .4byte _080166D8
- .4byte _08016730
- .4byte _080167C8
- .4byte _08016828
- .4byte _080168C0
- .4byte _0801691C
- .4byte _0801697C
- .4byte _080169DC
- .4byte _08016B78
- .4byte _08016CA0
- .4byte _08016D58
- .4byte _08016E30
- .4byte _08016EFC
- .4byte _08016F20
- .4byte _08016F6C
- .4byte _08016F9C
- .4byte _08016704
- .4byte _08017064
-_08016638:
- ldr r1, _08016694 @ =gUnknown_02024C98
- ldrb r3, [r6]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _08016686
- ldr r0, _08016698 @ =gBattleMons
- movs r1, 0x58
- muls r1, r3
- adds r0, r1, r0
- ldrh r2, [r0, 0x28]
- ldrh r7, [r0, 0x2C]
- cmp r2, r7
- beq _08016686
- cmp r2, 0
- beq _08016686
- ldr r1, _0801669C @ =gUnknown_02024BEC
- ldrh r0, [r0, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08016670
- movs r0, 0x1
- str r0, [r1]
-_08016670:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldr r0, _080166A0 @ =gUnknown_081D93D1
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016686:
- ldr r1, _080166A4 @ =0x02000000
- movs r0, 0xB0
- lsls r0, 9
- adds r1, r0
- bl _08017072
- .align 2, 0
-_08016694: .4byte gUnknown_02024C98
-_08016698: .4byte gBattleMons
-_0801669C: .4byte gUnknown_02024BEC
-_080166A0: .4byte gUnknown_081D93D1
-_080166A4: .4byte 0x02000000
-_080166A8:
- ldrb r1, [r6]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080166C8
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080166C8:
- ldr r1, _080166D4 @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r2
- bl _08017072
- .align 2, 0
-_080166D4: .4byte 0x02000000
-_080166D8:
- ldrb r1, [r6]
- movs r0, 0x1
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _080166F2
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080166F2:
- ldr r1, _08016700 @ =0x02000000
- movs r3, 0xB0
- lsls r3, 9
- adds r1, r3
- bl _08017072
- .align 2, 0
-_08016700: .4byte 0x02000000
-_08016704:
- ldrb r1, [r6]
- movs r0, 0x1
- movs r2, 0x1
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _0801671E
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801671E:
- ldr r1, _0801672C @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- bl _08017072
- .align 2, 0
-_0801672C: .4byte 0x02000000
-_08016730:
- ldr r0, _080167A8 @ =gUnknown_02024C98
- ldrb r2, [r6]
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801679C
- ldr r3, _080167AC @ =gBattleMons
- movs r5, 0x3
- ands r5, r1
- movs r1, 0x58
- adds r0, r5, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801679C
- adds r0, r2, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801679C
- ldr r0, _080167B0 @ =gUnknown_02024C08
- strb r5, [r0]
- ldr r2, _080167B4 @ =gUnknown_02024BEC
- ldrb r0, [r6]
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _0801677C
- movs r0, 0x1
- str r0, [r2]
-_0801677C:
- ldr r1, _080167B8 @ =0x02000000
- ldr r7, _080167BC @ =0x000160a4
- adds r0, r1, r7
- strb r5, [r0]
- ldrb r0, [r4]
- ldr r2, _080167C0 @ =0x000160a5
- adds r1, r2
- strb r0, [r1]
- ldr r0, _080167C4 @ =gUnknown_081D904B
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801679C:
- ldr r1, _080167B8 @ =0x02000000
- movs r3, 0xB0
- lsls r3, 9
- adds r1, r3
- bl _08017072
- .align 2, 0
-_080167A8: .4byte gUnknown_02024C98
-_080167AC: .4byte gBattleMons
-_080167B0: .4byte gUnknown_02024C08
-_080167B4: .4byte gUnknown_02024BEC
-_080167B8: .4byte 0x02000000
-_080167BC: .4byte 0x000160a4
-_080167C0: .4byte 0x000160a5
-_080167C4: .4byte gUnknown_081D904B
-_080167C8:
- ldr r2, _08016818 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801680A
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _0801680A
- ldr r2, _0801681C @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _080167FA
- movs r0, 0x1
- str r0, [r2]
-_080167FA:
- ldr r0, _08016820 @ =gUnknown_081D9518
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801680A:
- ldr r1, _08016824 @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- bl _08017072
- .align 2, 0
-_08016818: .4byte gBattleMons
-_0801681C: .4byte gUnknown_02024BEC
-_08016820: .4byte gUnknown_081D9518
-_08016824: .4byte 0x02000000
-_08016828:
- ldr r4, _080168B0 @ =gBattleMons
- ldrb r0, [r6]
- movs r7, 0x58
- mov r8, r7
- mov r2, r8
- muls r2, r0
- adds r3, r4, 0
- adds r3, 0x4C
- adds r0, r2, r3
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080168A2
- adds r1, r2, r4
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _080168A2
- ldr r5, _080168B4 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 4
- str r0, [r5]
- cmp r0, 0
- bne _0801685C
- movs r0, 0x1
- str r0, [r5]
-_0801685C:
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r2, r0, r3
- ldr r1, [r2]
- movs r4, 0xF0
- lsls r4, 4
- adds r0, r1, 0
- ands r0, r4
- cmp r0, r4
- beq _0801687C
- movs r7, 0x80
- lsls r7, 1
- adds r0, r1, r7
- str r0, [r2]
-_0801687C:
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r3
- ldr r0, [r0]
- ands r0, r4
- lsrs r0, 8
- ldr r1, [r5]
- muls r0, r1
- str r0, [r5]
- ldr r0, _080168B8 @ =gUnknown_081D9518
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080168A2:
- ldr r1, _080168BC @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r2
- bl _08017072
- .align 2, 0
-_080168B0: .4byte gBattleMons
-_080168B4: .4byte gUnknown_02024BEC
-_080168B8: .4byte gUnknown_081D9518
-_080168BC: .4byte 0x02000000
-_080168C0:
- ldr r2, _0801690C @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08016902
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08016902
- ldr r2, _08016910 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _080168F2
- movs r0, 0x1
- str r0, [r2]
-_080168F2:
- ldr r0, _08016914 @ =gUnknown_081D953A
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016902:
- ldr r1, _08016918 @ =0x02000000
- movs r3, 0xB0
- lsls r3, 9
- adds r1, r3
- b _08017072
- .align 2, 0
-_0801690C: .4byte gBattleMons
-_08016910: .4byte gUnknown_02024BEC
-_08016914: .4byte gUnknown_081D953A
-_08016918: .4byte 0x02000000
-_0801691C:
- ldr r2, _0801696C @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 20
- ands r0, r1
- cmp r0, 0
- beq _08016960
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08016960
- ldr r2, _08016970 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _08016950
- movs r0, 0x1
- str r0, [r2]
-_08016950:
- ldr r0, _08016974 @ =gUnknown_081D9613
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016960:
- ldr r1, _08016978 @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- b _08017072
- .align 2, 0
-_0801696C: .4byte gBattleMons
-_08016970: .4byte gUnknown_02024BEC
-_08016974: .4byte gUnknown_081D9613
-_08016978: .4byte 0x02000000
-_0801697C:
- ldr r2, _080169CC @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 21
- ands r0, r1
- cmp r0, 0
- beq _080169C0
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _080169C0
- ldr r2, _080169D0 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _080169B0
- movs r0, 0x1
- str r0, [r2]
-_080169B0:
- ldr r0, _080169D4 @ =gUnknown_081D9624
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080169C0:
- ldr r1, _080169D8 @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_080169CC: .4byte gBattleMons
-_080169D0: .4byte gUnknown_02024BEC
-_080169D4: .4byte gUnknown_081D9624
-_080169D8: .4byte 0x02000000
-_080169DC:
- ldr r0, _08016A8C @ =gBattleMons
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x58
- mov r10, r1
- mov r1, r10
- muls r1, r0
- mov r5, r8
- adds r5, 0x50
- adds r3, r1, r5
- ldr r2, [r3]
- movs r4, 0xE0
- lsls r4, 8
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- beq _08016AF6
- mov r7, r8
- adds r0, r1, r7
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08016AF6
- ldr r1, _08016A90 @ =0xffffe000
- adds r0, r2, r1
- str r0, [r3]
- ldrb r1, [r6]
- mov r0, r10
- muls r0, r1
- adds r0, r5
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08016AB4
- ldr r2, _08016A94 @ =0x02000000
- lsls r0, r1, 1
- ldr r4, _08016A98 @ =0x00016004
- adds r0, r4
- adds r0, r2
- ldrb r1, [r0]
- ldr r3, _08016A9C @ =0x000160a4
- adds r0, r2, r3
- strb r1, [r0]
- ldrb r0, [r6]
- lsls r0, 1
- subs r3, 0x9F
- adds r0, r3
- adds r0, r2
- ldrb r1, [r0]
- ldr r5, _08016AA0 @ =0x000160a5
- adds r0, r2, r5
- strb r1, [r0]
- ldr r1, _08016AA4 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r4
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08016AA8 @ =gUnknown_02024C10
- ldr r0, _08016AAC @ =gUnknown_081D95E2
- str r0, [r1]
- ldr r2, _08016AB0 @ =gUnknown_02024BEC
- ldrb r0, [r6]
- mov r7, r10
- muls r7, r0
- adds r0, r7, 0
- add r0, r8
- ldrh r0, [r0, 0x2C]
- lsrs r0, 4
- str r0, [r2]
- cmp r0, 0
- bne _08016AE6
- movs r0, 0x1
- str r0, [r2]
- b _08016AE6
- .align 2, 0
-_08016A8C: .4byte gBattleMons
-_08016A90: .4byte 0xffffe000
-_08016A94: .4byte 0x02000000
-_08016A98: .4byte 0x00016004
-_08016A9C: .4byte 0x000160a4
-_08016AA0: .4byte 0x000160a5
-_08016AA4: .4byte gUnknown_030041C0
-_08016AA8: .4byte gUnknown_02024C10
-_08016AAC: .4byte gUnknown_081D95E2
-_08016AB0: .4byte gUnknown_02024BEC
-_08016AB4:
- ldr r1, _08016B00 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r2, _08016B04 @ =0x02000000
- ldrb r0, [r6]
- lsls r0, 1
- ldr r3, _08016B08 @ =0x00016004
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- lsls r0, 1
- ldr r5, _08016B0C @ =0x00016005
- adds r0, r5
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08016B10 @ =gUnknown_02024C10
- ldr r0, _08016B14 @ =gUnknown_081D95F4
- str r0, [r1]
-_08016AE6:
- ldr r0, [r1]
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016AF6:
- ldr r1, _08016B04 @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_08016B00: .4byte gUnknown_030041C0
-_08016B04: .4byte 0x02000000
-_08016B08: .4byte 0x00016004
-_08016B0C: .4byte 0x00016005
-_08016B10: .4byte gUnknown_02024C10
-_08016B14: .4byte gUnknown_081D95F4
-_08016B18:
- movs r0, 0x8
- negs r0, r0
- ands r4, r0
- str r4, [r2]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- mov r0, r10
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08016B68 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r1, _08016B6C @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r0, _08016B70 @ =gUnknown_081D950F
- bl b_call_bc_move_exec
- ldr r4, _08016B74 @ =gUnknown_02024A60
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08016BE0
- .align 2, 0
-_08016B68: .4byte 0xf7ffffff
-_08016B6C: .4byte gUnknown_02024D1E
-_08016B70: .4byte gUnknown_081D950F
-_08016B74: .4byte gUnknown_02024A60
-_08016B78:
- ldr r2, _08016BF4 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x70
- ands r1, r0
- adds r7, r2, 0
- cmp r1, 0
- beq _08016C82
- movs r0, 0
- strb r0, [r4]
- mov r2, r8
- ldrb r1, [r2]
- cmp r1, 0
- beq _08016BE0
- mov r10, r7
- adds r6, r4, 0
- movs r3, 0x58
- mov r8, r3
- movs r5, 0x4C
- adds r5, r7
- mov r9, r5
- str r1, [sp, 0x4]
- movs r0, 0x7
- mov r12, r0
-_08016BB2:
- ldrb r1, [r6]
- mov r3, r8
- muls r3, r1
- mov r5, r9
- adds r2, r3, r5
- ldr r4, [r2]
- adds r0, r4, 0
- mov r5, r12
- ands r0, r5
- cmp r0, 0
- beq _08016BD2
- adds r0, r3, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- bne _08016B18
-_08016BD2:
- adds r0, r1, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp, 0x4]
- cmp r0, r1
- bcc _08016BB2
-_08016BE0:
- ldr r2, _08016BF8 @ =gUnknown_02024C07
- ldr r1, _08016BFC @ =gUnknown_02024A68
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08016C00
- movs r2, 0x2
- mov r9, r2
- b _0801707E
- .align 2, 0
-_08016BF4: .4byte gBattleMons
-_08016BF8: .4byte gUnknown_02024C07
-_08016BFC: .4byte gUnknown_02024A68
-_08016C00:
- ldr r5, _08016C38 @ =gUnknown_02024A60
- ldrb r0, [r5]
- strb r0, [r2]
- ldr r2, _08016C3C @ =gBattleMons
- ldrb r0, [r5]
- movs r7, 0x58
- adds r1, r0, 0
- muls r1, r7
- adds r6, r2, 0
- adds r6, 0x50
- adds r1, r6
- ldr r0, [r1]
- subs r0, 0x10
- str r0, [r1]
- ldrb r0, [r5]
- bl sub_8015660
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08016C44
- ldrb r0, [r5]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08016C40 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08016C78
- .align 2, 0
-_08016C38: .4byte gUnknown_02024A60
-_08016C3C: .4byte gBattleMons
-_08016C40: .4byte gUnknown_02024D1E
-_08016C44:
- ldrb r3, [r5]
- adds r0, r3, 0
- muls r0, r7
- adds r2, r0, r6
- ldr r0, [r2]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- beq _08016C6C
- ldr r0, _08016C68 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- b _08016C78
- .align 2, 0
-_08016C68: .4byte gUnknown_02024D1E
-_08016C6C:
- ldr r1, _08016C94 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- adds r0, r3, 0
- bl b_cancel_multi_turn_move_maybe
-_08016C78:
- ldr r0, _08016C98 @ =gUnknown_081D957E
- bl b_call_bc_move_exec
- movs r3, 0x1
- mov r9, r3
-_08016C82:
- mov r5, r9
- cmp r5, 0x2
- bne _08016C8A
- b _08017078
-_08016C8A:
- ldr r1, _08016C9C @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_08016C94: .4byte gUnknown_02024D1E
-_08016C98: .4byte gUnknown_081D957E
-_08016C9C: .4byte 0x02000000
-_08016CA0:
- ldr r1, _08016CD8 @ =gBattleMons
- ldrb r0, [r6]
- movs r7, 0x58
- muls r0, r7
- adds r5, r1, 0
- adds r5, 0x50
- adds r2, r0, r5
- ldr r1, [r2]
- movs r4, 0xC0
- lsls r4, 4
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- beq _08016D3C
- ldr r3, _08016CDC @ =0xfffffc00
- adds r0, r1, r3
- str r0, [r2]
- ldrb r0, [r6]
- bl sub_8015660
- lsls r0, 24
- cmp r0, 0
- beq _08016CE0
- ldrb r0, [r6]
- bl b_cancel_multi_turn_move_maybe
- b _08016D3C
- .align 2, 0
-_08016CD8: .4byte gBattleMons
-_08016CDC: .4byte 0xfffffc00
-_08016CE0:
- ldrb r0, [r6]
- muls r0, r7
- adds r2, r0, r5
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- bne _08016D3C
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _08016D3C
- ldr r0, _08016D48 @ =0xffffefff
- ands r1, r0
- str r1, [r2]
- ldrb r0, [r6]
- muls r0, r7
- adds r0, r5
- ldr r0, [r0]
- movs r4, 0x7
- ands r0, r4
- cmp r0, 0
- bne _08016D3C
- ldr r1, _08016D4C @ =gUnknown_02024D1E
- movs r0, 0x47
- strb r0, [r1, 0x3]
- movs r0, 0x1
- movs r1, 0
- bl sub_801E3EC
- ldrb r0, [r6]
- muls r0, r7
- adds r0, r5
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08016D32
- ldr r0, _08016D50 @ =gUnknown_081D9587
- bl b_call_bc_move_exec
-_08016D32:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016D3C:
- ldr r1, _08016D54 @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- b _08017072
- .align 2, 0
-_08016D48: .4byte 0xffffefff
-_08016D4C: .4byte gUnknown_02024D1E
-_08016D50: .4byte gUnknown_081D9587
-_08016D54: .4byte 0x02000000
-_08016D58:
- ldr r0, _08016DD4 @ =gUnknown_02024CA8
- ldrb r3, [r6]
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r5, r1, r0
- ldrb r1, [r5, 0xB]
- lsls r1, 28
- adds r7, r0, 0
- cmp r1, 0
- beq _08016E1E
- movs r4, 0
- ldr r2, _08016DD8 @ =gBattleMons
- movs r0, 0x58
- adds r1, r3, 0
- muls r1, r0
- adds r2, 0xC
- adds r1, r2
- ldrh r0, [r5, 0x4]
- ldrh r1, [r1]
- cmp r0, r1
- beq _08016DAC
- mov r12, r7
- mov r8, r2
- adds r5, r6, 0
- movs r3, 0x58
-_08016D8C:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08016DAC
- ldrb r2, [r5]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r12
- lsls r0, r4, 1
- muls r2, r3
- adds r0, r2
- add r0, r8
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0]
- cmp r1, r0
- bne _08016D8C
-_08016DAC:
- cmp r4, 0x4
- bne _08016DDC
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- strh r1, [r0, 0x4]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- b _08016E1E
- .align 2, 0
-_08016DD4: .4byte gUnknown_02024CA8
-_08016DD8: .4byte gBattleMons
-_08016DDC:
- ldrb r0, [r6]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r2, r7
- ldrb r3, [r2, 0xB]
- lsls r1, r3, 28
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0xB]
- adds r2, r1, 0
- cmp r2, 0
- bne _08016E1E
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x4]
- ldr r0, _08016E28 @ =gUnknown_081D9148
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016E1E:
- ldr r1, _08016E2C @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_08016E28: .4byte gUnknown_081D9148
-_08016E2C: .4byte 0x02000000
-_08016E30:
- ldr r3, _08016E7C @ =gUnknown_02024CA8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r2, r0, r3
- ldrb r5, [r2, 0xE]
- lsls r4, r5, 28
- cmp r4, 0
- beq _08016EE8
- ldr r0, _08016E80 @ =gBattleMons
- mov r8, r0
- ldrb r0, [r2, 0xC]
- lsls r0, 1
- movs r7, 0x58
- muls r1, r7
- adds r0, r1
- mov r1, r8
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- ldrh r1, [r2, 0x6]
- cmp r0, r1
- beq _08016E84
- movs r0, 0
- strh r0, [r2, 0x6]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xE]
- b _08016EE8
- .align 2, 0
-_08016E7C: .4byte gUnknown_02024CA8
-_08016E80: .4byte gBattleMons
-_08016E84:
- lsrs r1, r4, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r5
- orrs r0, r1
- strb r0, [r2, 0xE]
- cmp r1, 0
- beq _08016EB8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- muls r1, r7
- ldrb r0, [r0, 0xC]
- adds r1, r0
- mov r0, r8
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08016EE8
-_08016EB8:
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x6]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0xE]
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0xE]
- ldr r0, _08016EF4 @ =gUnknown_081D914F
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016EE8:
- ldr r1, _08016EF8 @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r2
- b _08017072
- .align 2, 0
-_08016EF4: .4byte gUnknown_081D914F
-_08016EF8: .4byte 0x02000000
-_08016EFC:
- ldr r0, _08016F1C @ =gUnknown_02024C98
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- beq _08016F14
- adds r0, r2, 0
- subs r0, 0x8
- str r0, [r1]
-_08016F14:
- movs r1, 0xB0
- lsls r1, 9
- b _08017070
- .align 2, 0
-_08016F1C: .4byte gUnknown_02024C98
-_08016F20:
- ldr r2, _08016F60 @ =gUnknown_02024CA8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r3, r0, r2
- ldrb r2, [r3, 0x12]
- lsls r1, r2, 28
- cmp r1, 0
- beq _08016F5A
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x12]
- cmp r1, 0
- bne _08016F5A
- ldr r0, _08016F64 @ =gUnknown_02024C98
- ldrb r2, [r6]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08016F68 @ =0xfffffdff
- ands r0, r1
- str r0, [r2]
-_08016F5A:
- movs r1, 0xB0
- lsls r1, 9
- b _08017070
- .align 2, 0
-_08016F60: .4byte gUnknown_02024CA8
-_08016F64: .4byte gUnknown_02024C98
-_08016F68: .4byte 0xfffffdff
-_08016F6C:
- ldr r2, _08016F98 @ =gUnknown_02024CA8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r3, r0, r2
- ldrb r2, [r3, 0x13]
- lsls r1, r2, 28
- cmp r1, 0
- beq _08016F92
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x13]
-_08016F92:
- movs r1, 0xB0
- lsls r1, 9
- b _08017070
- .align 2, 0
-_08016F98: .4byte gUnknown_02024CA8
-_08016F9C:
- ldr r4, _0801704C @ =gUnknown_02024C98
- ldrb r0, [r6]
- lsls r0, 2
- adds r2, r0, r4
- ldr r1, [r2]
- movs r3, 0xC0
- lsls r3, 5
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _08017042
- ldr r5, _08017050 @ =0xfffff800
- adds r0, r1, r5
- str r0, [r2]
- ldrb r2, [r6]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r3
- cmp r0, 0
- bne _08017042
- ldr r3, _08017054 @ =gBattleMons
- movs r5, 0x58
- adds r1, r2, 0
- muls r1, r5
- adds r4, r3, 0
- adds r4, 0x4C
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08017042
- adds r0, r1, r3
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- beq _08017042
- cmp r0, 0xF
- beq _08017042
- adds r0, r2, 0
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- bne _08017042
- ldrb r0, [r6]
- bl b_cancel_multi_turn_move_maybe
- bl Random
- ldrb r1, [r6]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08017058 @ =gUnknown_02024C0A
- ldrb r0, [r6]
- strb r0, [r1]
- ldr r0, _0801705C @ =gUnknown_081D964C
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08017042:
- ldr r1, _08017060 @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_0801704C: .4byte gUnknown_02024C98
-_08017050: .4byte 0xfffff800
-_08017054: .4byte gBattleMons
-_08017058: .4byte gUnknown_02024C0A
-_0801705C: .4byte gUnknown_081D964C
-_08017060: .4byte 0x02000000
-_08017064:
- movs r1, 0xB0
- lsls r1, 9
- add r1, r10
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08017084 @ =0x00016001
-_08017070:
- add r1, r10
-_08017072:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08017078:
- mov r0, r9
- cmp r0, 0
- beq _08017088
-_0801707E:
- mov r0, r9
- b _080170B8
- .align 2, 0
-_08017084: .4byte 0x00016001
-_08017088:
- ldr r7, _080170C8 @ =0x02000000
- ldr r2, _080170CC @ =0x00016001
- adds r0, r7, r2
- ldr r1, _080170D0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- mov r10, r7
- mov r8, r1
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080170AC
- movs r3, 0xB0
- lsls r3, 9
- adds r0, r7, r3
- ldrb r0, [r0]
- cmp r0, 0x13
- bhi _080170AC
- bl _08016580
-_080170AC:
- ldr r0, _080170D4 @ =gUnknown_02024C6C
- ldr r1, [r0]
- ldr r2, _080170D8 @ =0xfeffffdf
- ands r1, r2
- str r1, [r0]
- movs r0, 0
-_080170B8:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080170C8: .4byte 0x02000000
-_080170CC: .4byte 0x00016001
-_080170D0: .4byte gUnknown_02024A68
-_080170D4: .4byte gUnknown_02024C6C
-_080170D8: .4byte 0xfeffffdf
- thumb_func_end sub_8016558
-
- thumb_func_start sub_80170DC
-sub_80170DC: @ 80170DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _08017108 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0801710C @ =0x01000020
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08017110 @ =0x02000000
- ldr r3, _08017114 @ =0x00016110
- adds r0, r1, r3
- ldrb r0, [r0]
- mov r8, r1
- cmp r0, 0
- beq _08017118
- cmp r0, 0x1
- bne _08017104
- b _08017258
-_08017104:
- b _08017380
- .align 2, 0
-_08017108: .4byte gUnknown_02024C6C
-_0801710C: .4byte 0x01000020
-_08017110: .4byte 0x02000000
-_08017114: .4byte 0x00016110
-_08017118:
- ldr r2, _0801715C @ =0x00016111
- add r2, r8
- ldr r0, _08017160 @ =gUnknown_02024A68
- ldrb r1, [r2]
- mov r9, r0
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0801712A
- b _08017248
-_0801712A:
- ldr r4, _08017164 @ =gUnknown_02024A60
- adds r5, r2, 0
- ldr r1, _08017168 @ =gUnknown_02024DBC
- mov r12, r1
- movs r2, 0x8
- add r2, r12
- mov r10, r2
- mov r7, r12
- adds r7, 0x18
- ldr r6, _0801716C @ =gUnknown_030041C0
-_0801713E:
- ldrb r3, [r5]
- strb r3, [r4]
- ldr r0, _08017170 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08017174 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08017178
- adds r0, r3, 0x1
- strb r0, [r5]
- b _0801723C
- .align 2, 0
-_0801715C: .4byte 0x00016111
-_08017160: .4byte gUnknown_02024A68
-_08017164: .4byte gUnknown_02024A60
-_08017168: .4byte gUnknown_02024DBC
-_0801716C: .4byte gUnknown_030041C0
-_08017170: .4byte gUnknown_02024C0C
-_08017174: .4byte gBitTable
-_08017178:
- adds r0, r3, 0x1
- strb r0, [r5]
- ldr r1, _080171B4 @ =gUnknown_02024DBC
- ldrb r0, [r4]
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- beq _0801723C
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _0801723C
- ldr r1, _080171B8 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801723C
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, 0xF8
- bne _080171C0
- ldr r0, _080171BC @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
- b _080171C6
- .align 2, 0
-_080171B4: .4byte gUnknown_02024DBC
-_080171B8: .4byte gBattleMons
-_080171BC: .4byte gUnknown_02024D1E
-_080171C0:
- ldr r1, _08017220 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080171C6:
- movs r0, 0xFD
- strb r0, [r6]
- movs r0, 0x2
- strb r0, [r6, 0x1]
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- strb r0, [r6, 0x2]
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r6, 0x3]
- movs r0, 0xFF
- strb r0, [r6, 0x4]
- ldr r3, _08017224 @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r3]
- ldr r1, _08017228 @ =gUnknown_02024C07
- mov r0, r12
- adds r0, 0x4
- ldrb r2, [r4]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0801722C @ =gUnknown_02024BEC
- ldrb r0, [r4]
- lsls r0, 2
- add r0, r10
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _08017230 @ =gUnknown_02024D68
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, _08017234 @ =0x0000ffff
- str r1, [r0]
- ldr r0, _08017238 @ =gUnknown_081D92D7
- b _08017364
- .align 2, 0
-_08017220: .4byte gUnknown_02024D1E
-_08017224: .4byte gUnknown_02024C08
-_08017228: .4byte gUnknown_02024C07
-_0801722C: .4byte gUnknown_02024BEC
-_08017230: .4byte gUnknown_02024D68
-_08017234: .4byte 0x0000ffff
-_08017238: .4byte gUnknown_081D92D7
-_0801723C:
- ldrb r0, [r5]
- mov r3, r9
- ldrb r3, [r3]
- cmp r0, r3
- bcs _08017248
- b _0801713E
-_08017248:
- ldr r1, _0801729C @ =0x00016110
- add r1, r8
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080172A0 @ =0x00016111
- add r0, r8
- strb r2, [r0]
-_08017258:
- ldr r2, _080172A0 @ =0x00016111
- add r2, r8
- ldr r0, _080172A4 @ =gUnknown_02024A68
- ldrb r1, [r2]
- mov r9, r0
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0801726A
- b _08017380
-_0801726A:
- ldr r5, _080172A8 @ =gUnknown_02024A60
- adds r3, r2, 0
- ldr r4, _080172AC @ =gUnknown_030041C0
- ldr r7, _080172B0 @ =gUnknown_02024CA8
-_08017272:
- ldr r2, _080172B4 @ =gUnknown_02024C07
- ldr r1, _080172B8 @ =gUnknown_02024A7A
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r5]
- ldr r0, _080172BC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _080172C0 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080172C4
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- b _08017374
- .align 2, 0
-_0801729C: .4byte 0x00016110
-_080172A0: .4byte 0x00016111
-_080172A4: .4byte gUnknown_02024A68
-_080172A8: .4byte gUnknown_02024A60
-_080172AC: .4byte gUnknown_030041C0
-_080172B0: .4byte gUnknown_02024CA8
-_080172B4: .4byte gUnknown_02024C07
-_080172B8: .4byte gUnknown_02024A7A
-_080172BC: .4byte gUnknown_02024C0C
-_080172C0: .4byte gBitTable
-_080172C4:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldr r6, _08017334 @ =gUnknown_02024C98
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08017374
- movs r0, 0xFD
- strb r0, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0xF]
- lsls r0, 28
- lsrs r0, 28
- strb r0, [r4, 0x4]
- movs r0, 0xFF
- strb r0, [r4, 0x5]
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r4, r0, r7
- ldrb r3, [r4, 0xF]
- lsls r1, r3, 28
- cmp r1, 0
- bne _08017348
- lsls r2, 2
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldr r3, _08017338 @ =gUnknown_02024BEC
- ldr r2, _0801733C @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- str r0, [r3]
- ldr r1, _08017340 @ =gUnknown_02024C10
- ldr r0, _08017344 @ =gUnknown_081D9202
- b _08017360
- .align 2, 0
-_08017334: .4byte gUnknown_02024C98
-_08017338: .4byte gUnknown_02024BEC
-_0801733C: .4byte gBattleMons
-_08017340: .4byte gUnknown_02024C10
-_08017344: .4byte gUnknown_081D9202
-_08017348:
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0xF]
- ldr r1, _0801736C @ =gUnknown_02024C10
- ldr r0, _08017370 @ =gUnknown_081D921D
-_08017360:
- str r0, [r1]
- ldr r0, [r1]
-_08017364:
- bl b_call_bc_move_exec
- movs r0, 0x1
- b _0801738C
- .align 2, 0
-_0801736C: .4byte gUnknown_02024C10
-_08017370: .4byte gUnknown_081D921D
-_08017374:
- ldrb r0, [r3]
- mov r1, r9
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08017380
- b _08017272
-_08017380:
- ldr r2, _0801739C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _080173A0 @ =0xfeffffdf
- ands r0, r1
- str r0, [r2]
- movs r0, 0
-_0801738C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801739C: .4byte gUnknown_02024C6C
-_080173A0: .4byte 0xfeffffdf
- thumb_func_end sub_80170DC
-
- thumb_func_start sub_80173A4
-sub_80173A4: @ 80173A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _080173C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080173F8
- b _080176AC
- .align 2, 0
-_080173C0: .4byte gUnknown_020239F8
-_080173C4:
- ldr r0, _080173D4 @ =gUnknown_081D8C72
- bl b_call_bc_move_exec
- ldr r1, _080173D8 @ =0x00016059
- add r1, r10
- movs r0, 0x2
- b _080173E8
- .align 2, 0
-_080173D4: .4byte gUnknown_081D8C72
-_080173D8: .4byte 0x00016059
-_080173DC:
- ldr r0, _080173F0 @ =gUnknown_081D8C7B
- bl b_call_bc_move_exec
- ldr r1, _080173F4 @ =0x00016059
- add r1, r8
- movs r0, 0x5
-_080173E8:
- strb r0, [r1]
-_080173EA:
- movs r0, 0x1
- b _080176AE
- .align 2, 0
-_080173F0: .4byte gUnknown_081D8C7B
-_080173F4: .4byte 0x00016059
-_080173F8:
- ldr r0, _08017414 @ =0x02000000
- mov r9, r0
-_080173FC:
- ldr r0, _08017418 @ =0x00016059
- add r0, r9
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08017408
- b _080176A0
-_08017408:
- lsls r0, 2
- ldr r1, _0801741C @ =_08017420
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08017414: .4byte 0x02000000
-_08017418: .4byte 0x00016059
-_0801741C: .4byte _08017420
- .align 2, 0
-_08017420:
- .4byte _08017440
- .4byte _08017490
- .4byte _08017534
- .4byte _0801757C
- .4byte _0801758E
- .4byte _080175FC
- .4byte _08017638
- .4byte _080176A0
-_08017440:
- ldr r1, _08017508 @ =0x0001605a
- add r1, r9
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0801750C @ =0x00016059
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r5, 0
- ldr r0, _08017510 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _08017490
- ldr r6, _08017514 @ =gUnknown_02024C0C
-_0801745E:
- ldrb r0, [r6]
- ldr r2, _08017518 @ =gBitTable
- lsls r1, r5, 2
- adds r1, r2
- ldr r4, [r1]
- ands r0, r4
- cmp r0, 0
- beq _08017486
- lsls r0, r5, 24
- lsrs r0, 24
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- bne _08017486
- ldrb r0, [r6]
- bics r0, r4
- strb r0, [r6]
-_08017486:
- adds r5, 0x1
- ldr r0, _08017510 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801745E
-_08017490:
- ldr r1, _0801751C @ =0x02000000
- mov r9, r1
- ldr r0, _08017520 @ =gUnknown_02024C09
- mov r12, r0
- ldr r1, _08017524 @ =gUnknown_02024C08
- mov r8, r1
- mov r10, r9
- ldr r5, _08017508 @ =0x0001605a
- add r5, r9
- ldr r7, _08017528 @ =gBattleMons
- ldr r6, _0801752C @ =0x00016113
- add r6, r9
-_080174A8:
- ldrb r0, [r5]
- mov r1, r8
- strb r0, [r1]
- mov r1, r12
- strb r0, [r1]
- ldrb r3, [r5]
- movs r0, 0x58
- muls r0, r3
- adds r0, r7
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080174EA
- ldrb r2, [r6]
- ldr r4, _08017518 @ =gBitTable
- ldr r1, _08017530 @ =gUnknown_02024A6A
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _080174EA
- ldr r0, _08017514 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- lsls r0, r3, 2
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080174EA
- b _080173C4
-_080174EA:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r1, _08017510 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _080174A8
- ldr r1, _0801750C @ =0x00016059
- add r1, r9
- movs r0, 0x3
- strb r0, [r1]
- b _080176A0
- .align 2, 0
-_08017508: .4byte 0x0001605a
-_0801750C: .4byte 0x00016059
-_08017510: .4byte gUnknown_02024A68
-_08017514: .4byte gUnknown_02024C0C
-_08017518: .4byte gBitTable
-_0801751C: .4byte 0x02000000
-_08017520: .4byte gUnknown_02024C09
-_08017524: .4byte gUnknown_02024C08
-_08017528: .4byte gBattleMons
-_0801752C: .4byte 0x00016113
-_08017530: .4byte gUnknown_02024A6A
-_08017534:
- ldr r0, _0801755C @ =gUnknown_02024C09
- ldrb r0, [r0]
- bl sub_8015740
- ldr r2, _08017560 @ =0x02000000
- ldr r0, _08017564 @ =0x0001605a
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08017568 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08017570
- ldr r0, _0801756C @ =0x00016059
- adds r1, r2, r0
- movs r0, 0x3
- b _0801769C
- .align 2, 0
-_0801755C: .4byte gUnknown_02024C09
-_08017560: .4byte 0x02000000
-_08017564: .4byte 0x0001605a
-_08017568: .4byte gUnknown_02024A68
-_0801756C: .4byte 0x00016059
-_08017570:
- ldr r0, _08017578 @ =0x00016059
- adds r1, r2, r0
- movs r0, 0x1
- b _0801769C
- .align 2, 0
-_08017578: .4byte 0x00016059
-_0801757C:
- ldr r1, _080175D8 @ =0x0001605a
- add r1, r9
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080175DC @ =0x00016059
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0801758E:
- ldr r7, _080175E0 @ =gUnknown_02024C09
- ldr r6, _080175E4 @ =gUnknown_02024C08
- ldr r1, _080175E8 @ =0x02000000
- mov r8, r1
- ldr r3, _080175D8 @ =0x0001605a
- add r3, r8
- ldr r5, _080175EC @ =gBattleMons
- ldr r4, _080175F0 @ =gBitTable
-_0801759E:
- ldrb r0, [r3]
- strb r0, [r6]
- strb r0, [r7]
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080175C4
- ldr r0, _080175F4 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080175C4
- b _080173DC
-_080175C4:
- adds r0, r2, 0x1
- strb r0, [r3]
- ldr r1, _080175F8 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _0801759E
- b _08017612
- .align 2, 0
-_080175D8: .4byte 0x0001605a
-_080175DC: .4byte 0x00016059
-_080175E0: .4byte gUnknown_02024C09
-_080175E4: .4byte gUnknown_02024C08
-_080175E8: .4byte 0x02000000
-_080175EC: .4byte gBattleMons
-_080175F0: .4byte gBitTable
-_080175F4: .4byte gUnknown_02024C0C
-_080175F8: .4byte gUnknown_02024A68
-_080175FC:
- ldr r0, _0801761C @ =0x0001605a
- add r0, r9
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08017620 @ =gUnknown_02024A68
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r0]
- cmp r1, r0
- bne _08017628
-_08017612:
- ldr r1, _08017624 @ =0x00016059
- add r1, r9
- movs r0, 0x6
- strb r0, [r1]
- b _080176A0
- .align 2, 0
-_0801761C: .4byte 0x0001605a
-_08017620: .4byte gUnknown_02024A68
-_08017624: .4byte 0x00016059
-_08017628:
- ldr r1, _08017634 @ =0x00016059
- add r1, r9
- movs r0, 0x4
- strb r0, [r1]
- b _080176A0
- .align 2, 0
-_08017634: .4byte 0x00016059
-_08017638:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08017652
- b _080173EA
-_08017652:
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08017668
- b _080173EA
-_08017668:
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl sub_801A02C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0801767C
- b _080173EA
-_0801767C:
- str r0, [sp]
- movs r0, 0x6
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08017692
- b _080173EA
-_08017692:
- ldr r2, _080176C0 @ =0x02000000
- ldr r0, _080176C4 @ =0x00016059
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
-_0801769C:
- strb r0, [r1]
- mov r9, r2
-_080176A0:
- ldr r0, _080176C4 @ =0x00016059
- add r0, r9
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080176AC
- b _080173FC
-_080176AC:
- movs r0, 0
-_080176AE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080176C0: .4byte 0x02000000
-_080176C4: .4byte 0x00016059
- thumb_func_end sub_80173A4
-
- thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged
-b_clear_atk_up_if_hit_flag_unless_enraged: @ 80176C8
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _08017708 @ =gUnknown_02024A68
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r3, r0
- bge _08017700
- ldr r4, _0801770C @ =gUnknown_02024C60
- movs r6, 0x80
- lsls r6, 16
- ldr r2, _08017710 @ =gUnknown_02024AD0
-_080176DE:
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _080176F4
- ldrh r0, [r4]
- cmp r0, 0x63
- beq _080176F4
- ldr r0, _08017714 @ =0xff7fffff
- ands r1, r0
- str r1, [r2]
-_080176F4:
- adds r4, 0x2
- adds r2, 0x58
- adds r3, 0x1
- ldrb r0, [r5]
- cmp r3, r0
- blt _080176DE
-_08017700:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08017708: .4byte gUnknown_02024A68
-_0801770C: .4byte gUnknown_02024C60
-_08017710: .4byte gUnknown_02024AD0
-_08017714: .4byte 0xff7fffff
- thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged
-
- thumb_func_start sub_8017718
-sub_8017718: @ 8017718
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r0, 0
- mov r9, r0
- ldr r1, _08017734 @ =0x02016090
- mov r10, r1
- ldr r2, _08017738 @ =0xfffe9f70
- add r2, r10
- mov r8, r2
- b _08017746
- .align 2, 0
-_08017734: .4byte 0x02016090
-_08017738: .4byte 0xfffe9f70
-_0801773C:
- mov r4, r9
- cmp r4, 0
- beq _08017746
- bl _08017FAC
-_08017746:
- ldr r0, _08017760 @ =0x000160e7
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xE
- bls _08017754
- bl _08017F9E
-_08017754:
- lsls r0, 2
- ldr r1, _08017764 @ =_08017768
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08017760: .4byte 0x000160e7
-_08017764: .4byte _08017768
- .align 2, 0
-_08017768:
- .4byte _080177A4
- .4byte _080177E4
- .4byte _08017920
- .4byte _080179D8
- .4byte _08017A50
- .4byte _08017AC8
- .4byte _08017B1C
- .4byte _08017B98
- .4byte _08017C1C
- .4byte _08017C60
- .4byte _08017D3C
- .4byte _08017DC0
- .4byte _08017E5C
- .4byte _08017F48
- .4byte _08017F9E
-_080177A4:
- ldr r1, _080177D0 @ =gBattleMons
- ldr r3, _080177D4 @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _080177D8 @ =0xfdffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _080177DC @ =gUnknown_02024C98
- ldrb r2, [r3]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _080177E0 @ =0xffffbfff
- ands r0, r1
- str r0, [r2]
- bl _08017F94
- .align 2, 0
-_080177D0: .4byte gBattleMons
-_080177D4: .4byte gUnknown_02024C07
-_080177D8: .4byte 0xfdffffff
-_080177DC: .4byte gUnknown_02024C98
-_080177E0: .4byte 0xffffbfff
-_080177E4:
- ldr r7, _0801784C @ =gBattleMons
- ldr r4, _08017850 @ =gUnknown_02024C07
- ldrb r1, [r4]
- movs r5, 0x58
- adds r0, r1, 0
- muls r0, r5
- adds r6, r7, 0
- adds r6, 0x4C
- adds r0, r6
- ldr r0, [r0]
- movs r2, 0x7
- mov r8, r2
- ands r0, r2
- cmp r0, 0
- bne _08017804
- b _08017D90
-_08017804:
- adds r0, r1, 0
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- beq _08017864
- ldrb r0, [r4]
- adds r2, r0, 0
- muls r2, r5
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldrb r0, [r4]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r7, 0
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08017854 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _08017858 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r1, _0801785C @ =gUnknown_02024C10
- ldr r0, _08017860 @ =gUnknown_081D94FB
- str r0, [r1]
- movs r4, 0x2
- mov r9, r4
- b _08017D90
- .align 2, 0
-_0801784C: .4byte gBattleMons
-_08017850: .4byte gUnknown_02024C07
-_08017854: .4byte 0xf7ffffff
-_08017858: .4byte gUnknown_02024D1E
-_0801785C: .4byte gUnknown_02024C10
-_08017860: .4byte gUnknown_081D94FB
-_08017864:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r0, r1, r7
- adds r0, 0x20
- ldrb r0, [r0]
- movs r3, 0x1
- cmp r0, 0x30
- bne _08017878
- movs r3, 0x2
-_08017878:
- adds r2, r1, r6
- ldr r1, [r2]
- adds r0, r1, 0
- mov r7, r8
- ands r0, r7
- cmp r0, r3
- bcs _08017890
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- b _08017894
-_08017890:
- subs r0, r1, r3
- str r0, [r2]
-_08017894:
- ldr r2, _080178D8 @ =gBattleMons
- ldr r0, _080178DC @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r4, [r0]
- movs r0, 0x7
- ands r4, r0
- cmp r4, 0
- beq _080178F0
- ldr r0, _080178E0 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xAD
- bne _080178B8
- b _08017D90
-_080178B8:
- cmp r0, 0xD6
- bne _080178BE
- b _08017D90
-_080178BE:
- ldr r1, _080178E4 @ =gUnknown_02024C10
- ldr r0, _080178E8 @ =gUnknown_081D94EE
- str r0, [r1]
- ldr r2, _080178EC @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x2
- mov r9, r0
- b _08017D90
- .align 2, 0
-_080178D8: .4byte gBattleMons
-_080178DC: .4byte gUnknown_02024C07
-_080178E0: .4byte gUnknown_02024BE6
-_080178E4: .4byte gUnknown_02024C10
-_080178E8: .4byte gUnknown_081D94EE
-_080178EC: .4byte gUnknown_02024C6C
-_080178F0:
- adds r2, 0x50
- adds r2, r1, r2
- ldr r0, [r2]
- ldr r1, _08017910 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r0, _08017914 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r1, _08017918 @ =gUnknown_02024C10
- ldr r0, _0801791C @ =gUnknown_081D94FB
- str r0, [r1]
- movs r1, 0x2
- b _08017D8E
- .align 2, 0
-_08017910: .4byte 0xf7ffffff
-_08017914: .4byte gUnknown_02024D1E
-_08017918: .4byte gUnknown_02024C10
-_0801791C: .4byte gUnknown_081D94FB
-_08017920:
- ldr r1, _0801797C @ =gBattleMons
- ldr r7, _08017980 @ =gUnknown_02024C07
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r0, r5
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801793C
- b _08017F94
-_0801793C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080179A8
- ldr r2, _08017984 @ =gBattleMoves
- ldr r0, _08017988 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7D
- beq _08017998
- ldr r1, _0801798C @ =gUnknown_02024C10
- ldr r0, _08017990 @ =gUnknown_081D9545
- str r0, [r1]
- ldr r2, _08017994 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- str r0, [r2]
- b _080179C8
- .align 2, 0
-_0801797C: .4byte gBattleMons
-_08017980: .4byte gUnknown_02024C07
-_08017984: .4byte gBattleMoves
-_08017988: .4byte gUnknown_02024BE6
-_0801798C: .4byte gUnknown_02024C10
-_08017990: .4byte gUnknown_081D9545
-_08017994: .4byte gUnknown_02024C6C
-_08017998:
- ldr r2, _080179A0 @ =0x02000000
- ldr r7, _080179A4 @ =0x000160e7
- adds r1, r2, r7
- b _08017D96
- .align 2, 0
-_080179A0: .4byte 0x02000000
-_080179A4: .4byte 0x000160e7
-_080179A8:
- ldrb r0, [r7]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r5
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _080179CC @ =gUnknown_02024C10
- ldr r0, _080179D0 @ =gUnknown_081D9552
- str r0, [r1]
- ldr r0, _080179D4 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
-_080179C8:
- movs r0, 0x2
- b _08017E3C
- .align 2, 0
-_080179CC: .4byte gUnknown_02024C10
-_080179D0: .4byte gUnknown_081D9552
-_080179D4: .4byte gUnknown_02024D1E
-_080179D8:
- ldr r1, _08017A30 @ =gBattleMons
- ldr r0, _08017A34 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x36
- beq _080179EE
- b _08017D90
-_080179EE:
- ldr r0, _08017A38 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _08017A02
- b _08017D90
-_08017A02:
- adds r0, r2, 0
- bl b_cancel_multi_turn_move_maybe
- ldr r2, _08017A3C @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08017A40 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- ldr r1, _08017A44 @ =gUnknown_02024C10
- ldr r0, _08017A48 @ =gUnknown_081D9977
- str r0, [r1]
- ldr r2, _08017A4C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r2, 0x1
- mov r9, r2
- b _08017D90
- .align 2, 0
-_08017A30: .4byte gBattleMons
-_08017A34: .4byte gUnknown_02024C07
-_08017A38: .4byte gUnknown_02024CA8
-_08017A3C: .4byte gUnknown_02024C6C
-_08017A40: .4byte gUnknown_02024D1E
-_08017A44: .4byte gUnknown_02024C10
-_08017A48: .4byte gUnknown_081D9977
-_08017A4C: .4byte gUnknown_02024C68
-_08017A50:
- ldr r1, _08017AA4 @ =gBattleMons
- ldr r3, _08017AA8 @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 15
- ands r0, r1
- cmp r0, 0
- beq _08017A9C
- ldr r0, _08017AAC @ =0xffbfffff
- ands r1, r0
- str r1, [r2]
- ldr r2, _08017AB0 @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x19]
- ldrb r0, [r3]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017AB4 @ =gUnknown_02024C10
- ldr r0, _08017AB8 @ =gUnknown_081D7956
- str r0, [r1]
- ldr r2, _08017ABC @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r7, 0x1
- mov r9, r7
-_08017A9C:
- ldr r2, _08017AC0 @ =0x02000000
- ldr r0, _08017AC4 @ =0x000160e7
- adds r1, r2, r0
- b _08017D96
- .align 2, 0
-_08017AA4: .4byte gBattleMons
-_08017AA8: .4byte gUnknown_02024C07
-_08017AAC: .4byte 0xffbfffff
-_08017AB0: .4byte gUnknown_02024CA8
-_08017AB4: .4byte gUnknown_02024C10
-_08017AB8: .4byte gUnknown_081D7956
-_08017ABC: .4byte gUnknown_02024C6C
-_08017AC0: .4byte 0x02000000
-_08017AC4: .4byte 0x000160e7
-_08017AC8:
- ldr r1, _08017B08 @ =gBattleMons
- ldr r3, _08017B0C @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08017AE2
- b _08017D90
-_08017AE2:
- movs r0, 0x9
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- ldr r0, _08017B10 @ =gUnknown_02024D28
- ldrb r2, [r3]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r0, [r3]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017B14 @ =gUnknown_02024C10
- ldr r0, _08017B18 @ =gUnknown_081D9573
- b _08017D7E
- .align 2, 0
-_08017B08: .4byte gBattleMons
-_08017B0C: .4byte gUnknown_02024C07
-_08017B10: .4byte gUnknown_02024D28
-_08017B14: .4byte gUnknown_02024C10
-_08017B18: .4byte gUnknown_081D9573
-_08017B1C:
- ldr r0, _08017B74 @ =gUnknown_02024CA8
- ldr r3, _08017B78 @ =gUnknown_02024C07
- ldrb r2, [r3]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, _08017B7C @ =gUnknown_02024BE6
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0]
- cmp r1, r0
- beq _08017B36
- b _08017D90
-_08017B36:
- cmp r1, 0
- bne _08017B3C
- b _08017D90
-_08017B3C:
- ldr r0, _08017B80 @ =gUnknown_02024D28
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r0, _08017B84 @ =0x02000000
- ldrb r1, [r3]
- ldr r7, _08017B88 @ =0x00016003
- adds r0, r7
- strb r1, [r0]
- ldrb r0, [r3]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017B8C @ =gUnknown_02024C10
- ldr r0, _08017B90 @ =gUnknown_081D9139
- str r0, [r1]
- ldr r2, _08017B94 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x1
- mov r9, r0
- b _08017D90
- .align 2, 0
-_08017B74: .4byte gUnknown_02024CA8
-_08017B78: .4byte gUnknown_02024C07
-_08017B7C: .4byte gUnknown_02024BE6
-_08017B80: .4byte gUnknown_02024D28
-_08017B84: .4byte 0x02000000
-_08017B88: .4byte 0x00016003
-_08017B8C: .4byte gUnknown_02024C10
-_08017B90: .4byte gUnknown_081D9139
-_08017B94: .4byte gUnknown_02024C6C
-_08017B98:
- ldr r0, _08017BF4 @ =gUnknown_02024CA8
- ldr r4, _08017BF8 @ =gUnknown_02024C07
- ldrb r3, [r4]
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08017BEC
- ldr r2, _08017BFC @ =gBattleMoves
- ldr r0, _08017C00 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08017BEC
- ldr r0, _08017C04 @ =gUnknown_02024D28
- lsls r2, r3, 4
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r0, [r4]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017C08 @ =gUnknown_02024C10
- ldr r0, _08017C0C @ =gUnknown_081D938F
- str r0, [r1]
- ldr r2, _08017C10 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r7, 0x1
- mov r9, r7
-_08017BEC:
- ldr r2, _08017C14 @ =0x02000000
- ldr r0, _08017C18 @ =0x000160e7
- adds r1, r2, r0
- b _08017D96
- .align 2, 0
-_08017BF4: .4byte gUnknown_02024CA8
-_08017BF8: .4byte gUnknown_02024C07
-_08017BFC: .4byte gBattleMoves
-_08017C00: .4byte gUnknown_02024BE6
-_08017C04: .4byte gUnknown_02024D28
-_08017C08: .4byte gUnknown_02024C10
-_08017C0C: .4byte gUnknown_081D938F
-_08017C10: .4byte gUnknown_02024C6C
-_08017C14: .4byte 0x02000000
-_08017C18: .4byte 0x000160e7
-_08017C1C:
- ldr r4, _08017C4C @ =gUnknown_02024C07
- ldrb r0, [r4]
- ldr r1, _08017C50 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- bl sub_8015D5C
- lsls r0, 24
- cmp r0, 0
- bne _08017C30
- b _08017D90
-_08017C30:
- ldr r0, _08017C54 @ =gUnknown_02024D28
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r4]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017C58 @ =gUnknown_02024C10
- ldr r0, _08017C5C @ =gUnknown_081D9459
- b _08017D7E
- .align 2, 0
-_08017C4C: .4byte gUnknown_02024C07
-_08017C50: .4byte gUnknown_02024BE6
-_08017C54: .4byte gUnknown_02024D28
-_08017C58: .4byte gUnknown_02024C10
-_08017C5C: .4byte gUnknown_081D9459
-_08017C60:
- ldr r7, _08017CAC @ =gBattleMons
- ldr r5, _08017CB0 @ =gUnknown_02024C07
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- adds r4, r7, 0
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r3, 0x7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _08017C7E
- b _08017F94
-_08017C7E:
- subs r0, r1, 0x1
- str r0, [r2]
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r4
- ldr r0, [r0]
- ands r0, r3
- cmp r0, 0
- beq _08017D24
- bl Random
- movs r1, 0x1
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _08017CB8
- ldr r1, _08017CB4 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- bl b_movescr_stack_push_cursor
- b _08017D02
- .align 2, 0
-_08017CAC: .4byte gBattleMons
-_08017CB0: .4byte gUnknown_02024C07
-_08017CB4: .4byte gUnknown_02024D1E
-_08017CB8:
- ldr r0, _08017D08 @ =gUnknown_02024D1E
- movs r4, 0x1
- strb r1, [r0, 0x5]
- ldr r1, _08017D0C @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- ldrb r0, [r5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r7
- movs r0, 0x28
- str r0, [sp]
- str r2, [sp, 0x4]
- ldrb r0, [r5]
- str r0, [sp, 0x8]
- ldrb r0, [r5]
- str r0, [sp, 0xC]
- adds r0, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl CalculateBaseDamage
- ldr r1, _08017D10 @ =gUnknown_02024BEC
- str r0, [r1]
- ldr r0, _08017D14 @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- orrs r0, r4
- strb r0, [r1, 0x1]
- ldr r2, _08017D18 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
-_08017D02:
- ldr r1, _08017D1C @ =gUnknown_02024C10
- ldr r0, _08017D20 @ =gUnknown_081D9595
- b _08017D2C
- .align 2, 0
-_08017D08: .4byte gUnknown_02024D1E
-_08017D0C: .4byte gUnknown_02024C08
-_08017D10: .4byte gUnknown_02024BEC
-_08017D14: .4byte gUnknown_02024D28
-_08017D18: .4byte gUnknown_02024C6C
-_08017D1C: .4byte gUnknown_02024C10
-_08017D20: .4byte gUnknown_081D9595
-_08017D24:
- bl b_movescr_stack_push_cursor
- ldr r1, _08017D34 @ =gUnknown_02024C10
- ldr r0, _08017D38 @ =gUnknown_081D95D4
-_08017D2C:
- str r0, [r1]
- movs r7, 0x1
- b _08017F8E
- .align 2, 0
-_08017D34: .4byte gUnknown_02024C10
-_08017D38: .4byte gUnknown_081D95D4
-_08017D3C:
- ldr r1, _08017DA0 @ =gBattleMons
- ldr r4, _08017DA4 @ =gUnknown_02024C07
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08017D90
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _08017D90
- ldr r0, _08017DA8 @ =gUnknown_02024D28
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017DAC @ =gUnknown_02024C10
- ldr r0, _08017DB0 @ =gUnknown_081D9566
-_08017D7E:
- str r0, [r1]
- ldr r2, _08017DB4 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r1, 0x1
-_08017D8E:
- mov r9, r1
-_08017D90:
- ldr r2, _08017DB8 @ =0x02000000
- ldr r4, _08017DBC @ =0x000160e7
- adds r1, r2, r4
-_08017D96:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r8, r2
- b _08017F9E
- .align 2, 0
-_08017DA0: .4byte gBattleMons
-_08017DA4: .4byte gUnknown_02024C07
-_08017DA8: .4byte gUnknown_02024D28
-_08017DAC: .4byte gUnknown_02024C10
-_08017DB0: .4byte gUnknown_081D9566
-_08017DB4: .4byte gUnknown_02024C6C
-_08017DB8: .4byte 0x02000000
-_08017DBC: .4byte 0x000160e7
-_08017DC0:
- ldr r1, _08017DFC @ =gBattleMons
- ldr r4, _08017E00 @ =gUnknown_02024C07
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0xF0
- lsls r0, 12
- ands r1, r0
- cmp r1, 0
- bne _08017DDC
- b _08017F94
-_08017DDC:
- lsrs r0, r1, 16
- bl sub_804114C
- ldr r1, _08017E04 @ =0x02000000
- ldr r7, _08017E08 @ =0x00016003
- adds r1, r7
- strb r0, [r1]
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08017E0C
- bl b_movescr_stack_push_cursor
- b _08017E34
- .align 2, 0
-_08017DFC: .4byte gBattleMons
-_08017E00: .4byte gUnknown_02024C07
-_08017E04: .4byte 0x02000000
-_08017E08: .4byte 0x00016003
-_08017E0C:
- ldr r0, _08017E44 @ =gUnknown_081D9608
- bl b_movescr_stack_push
- ldr r2, _08017E48 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- ldr r0, _08017E4C @ =gUnknown_02024D28
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r4]
- bl b_cancel_multi_turn_move_maybe
-_08017E34:
- ldr r1, _08017E50 @ =gUnknown_02024C10
- ldr r0, _08017E54 @ =gUnknown_081D95FB
- str r0, [r1]
- movs r0, 0x1
-_08017E3C:
- mov r9, r0
- ldr r1, _08017E58 @ =0x02000000
- mov r8, r1
- b _08017F94
- .align 2, 0
-_08017E44: .4byte gUnknown_081D9608
-_08017E48: .4byte gUnknown_02024C6C
-_08017E4C: .4byte gUnknown_02024D28
-_08017E50: .4byte gUnknown_02024C10
-_08017E54: .4byte gUnknown_081D95FB
-_08017E58: .4byte 0x02000000
-_08017E5C:
- ldr r1, _08017E98 @ =gBattleMons
- ldr r6, _08017E9C @ =gUnknown_02024C07
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r1, 0x50
- adds r3, r0, r1
- ldr r2, [r3]
- movs r4, 0xC0
- lsls r4, 2
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- bne _08017E7A
- b _08017F94
-_08017E7A:
- ldr r7, _08017EA0 @ =0xffffff00
- adds r0, r2, r7
- str r0, [r3]
- ldrb r0, [r6]
- muls r0, r5
- adds r1, r0, r1
- ldr r2, [r1]
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- beq _08017EAC
- ldr r1, _08017EA4 @ =gUnknown_02024C10
- ldr r0, _08017EA8 @ =gUnknown_081D90A7
- b _08017F38
- .align 2, 0
-_08017E98: .4byte gBattleMons
-_08017E9C: .4byte gUnknown_02024C07
-_08017EA0: .4byte 0xffffff00
-_08017EA4: .4byte gUnknown_02024C10
-_08017EA8: .4byte gUnknown_081D90A7
-_08017EAC:
- ldr r0, _08017F0C @ =0xffffefff
- ands r2, r0
- str r2, [r1]
- ldr r2, _08017F10 @ =gUnknown_02024BF4
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0
- beq _08017F34
- ldr r1, _08017F14 @ =gUnknown_02024BE6
- movs r0, 0x75
- strh r0, [r1]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- lsls r0, 1
- mov r1, r10
- str r0, [r1]
- ldr r4, _08017F18 @ =gUnknown_02024C08
- ldr r1, _08017F1C @ =gUnknown_02024C74
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, _08017F20 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08017F24 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08017EFE
- movs r0, 0x75
- movs r1, 0x1
- bl sub_801B5C0
- strb r0, [r4]
-_08017EFE:
- ldr r1, _08017F28 @ =gUnknown_02024C10
- ldr r0, _08017F2C @ =gUnknown_081D90B2
- str r0, [r1]
- ldr r2, _08017F30 @ =0x02000000
- mov r8, r2
- b _08017F3A
- .align 2, 0
-_08017F0C: .4byte 0xffffefff
-_08017F10: .4byte gUnknown_02024BF4
-_08017F14: .4byte gUnknown_02024BE6
-_08017F18: .4byte gUnknown_02024C08
-_08017F1C: .4byte gUnknown_02024C74
-_08017F20: .4byte gUnknown_02024C0C
-_08017F24: .4byte gBitTable
-_08017F28: .4byte gUnknown_02024C10
-_08017F2C: .4byte gUnknown_081D90B2
-_08017F30: .4byte 0x02000000
-_08017F34:
- ldr r1, _08017F40 @ =gUnknown_02024C10
- ldr r0, _08017F44 @ =gUnknown_081D90F1
-_08017F38:
- str r0, [r1]
-_08017F3A:
- movs r4, 0x1
- mov r9, r4
- b _08017F94
- .align 2, 0
-_08017F40: .4byte gUnknown_02024C10
-_08017F44: .4byte gUnknown_081D90F1
-_08017F48:
- ldr r1, _08017FEC @ =gBattleMons
- ldr r0, _08017FF0 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r4, r0, r1
- ldr r3, [r4]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _08017F94
- ldr r2, _08017FF4 @ =gBattleMoves
- ldr r0, _08017FF8 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7D
- bne _08017F8C
- movs r0, 0x21
- negs r0, r0
- ands r3, r0
- str r3, [r4]
- bl b_movescr_stack_push_cursor
- ldr r1, _08017FFC @ =gUnknown_02024C10
- ldr r0, _08018000 @ =gUnknown_081D9552
- str r0, [r1]
- ldr r1, _08018004 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08017F8C:
- movs r7, 0x2
-_08017F8E:
- mov r9, r7
- ldr r0, _08018008 @ =0x02000000
- mov r8, r0
-_08017F94:
- ldr r1, _0801800C @ =0x000160e7
- add r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08017F9E:
- ldr r0, _0801800C @ =0x000160e7
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xE
- beq _08017FAC
- bl _0801773C
-_08017FAC:
- mov r1, r9
- cmp r1, 0x2
- bne _08017FD8
- ldr r4, _08018010 @ =gUnknown_02024A60
- ldr r0, _08017FF0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _08018014 @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08017FD8:
- mov r0, r9
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08017FEC: .4byte gBattleMons
-_08017FF0: .4byte gUnknown_02024C07
-_08017FF4: .4byte gBattleMoves
-_08017FF8: .4byte gUnknown_02024BE6
-_08017FFC: .4byte gUnknown_02024C10
-_08018000: .4byte gUnknown_081D9552
-_08018004: .4byte gUnknown_02024D1E
-_08018008: .4byte 0x02000000
-_0801800C: .4byte 0x000160e7
-_08018010: .4byte gUnknown_02024A60
-_08018014: .4byte gUnknown_02024ACC
- thumb_func_end sub_8017718
-
- thumb_func_start sub_8018018
-sub_8018018: @ 8018018
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r3, r4, 0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- ldr r0, _08018044 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08018048
- movs r0, 0
- b _08018198
- .align 2, 0
-_08018044: .4byte gUnknown_020239F8
-_08018048:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080180D4
- adds r0, r4, 0
- bl sub_803FC34
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _080180CC @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _0801806E
- ldr r2, _080180D0 @ =gPlayerParty
- mov r8, r2
-_0801806E:
- adds r0, r7, 0
- bl sub_803FBFC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 1
- adds r5, r0, r6
- adds r0, r5, 0x3
- cmp r5, r0
- bge _080180BA
- adds r7, r0, 0
-_08018084:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080180B4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080180B4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _080180BA
-_080180B4:
- adds r5, 0x1
- cmp r5, r7
- blt _08018084
-_080180BA:
- movs r1, 0
- lsls r0, r6, 1
- adds r0, r6
- adds r0, 0x3
- cmp r5, r0
- bne _080180C8
- movs r1, 0x1
-_080180C8:
- adds r0, r1, 0
- b _08018198
- .align 2, 0
-_080180CC: .4byte gEnemyParty
-_080180D0: .4byte gPlayerParty
-_080180D4:
- adds r0, r3, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08018100
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080180FC @ =gEnemyParty
- mov r8, r2
- b _08018118
- .align 2, 0
-_080180FC: .4byte gEnemyParty
-_08018100:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080181A8 @ =gPlayerParty
- mov r8, r0
-_08018118:
- mov r1, r10
- cmp r1, 0x6
- bne _08018128
- ldr r1, _080181AC @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrb r0, [r0]
- mov r10, r0
-_08018128:
- mov r2, r9
- cmp r2, 0x6
- bne _08018138
- ldr r1, _080181AC @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r0, r1
- ldrb r0, [r0]
- mov r9, r0
-_08018138:
- movs r5, 0
-_0801813A:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0801818A
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0801818A
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0801818A
- cmp r5, r10
- beq _0801818A
- cmp r5, r9
- beq _0801818A
- ldr r1, _080181B0 @ =0x02000000
- ldr r2, _080181B4 @ =0x00016068
- adds r0, r7, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- beq _0801818A
- adds r0, r6, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- bne _08018190
-_0801818A:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0801813A
-_08018190:
- movs r0, 0
- cmp r5, 0x6
- bne _08018198
- movs r0, 0x1
-_08018198:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080181A8: .4byte gPlayerParty
-_080181AC: .4byte gUnknown_02024A6A
-_080181B0: .4byte 0x02000000
-_080181B4: .4byte 0x00016068
- thumb_func_end sub_8018018
-
- thumb_func_start castform_switch
-castform_switch: @ 80181B8
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, _08018228 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r4, r0, r1
- ldrh r1, [r4]
- ldr r0, _0801822C @ =SPECIES_CASTFORM
- cmp r1, r0
- bne _0801825C
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3B
- bne _0801825C
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- beq _0801825C
- str r5, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801820A
- str r5, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08018230
-_0801820A:
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0
- beq _08018230
- adds r1, r4, 0
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0
- beq _08018230
- strb r5, [r2]
- strb r5, [r1]
- movs r0, 0x1
- b _08018314
- .align 2, 0
-_08018228: .4byte gBattleMons
-_0801822C: .4byte SPECIES_CASTFORM
-_08018230:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801825C
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08018260
-_0801825C:
- movs r0, 0
- b _08018314
-_08018260:
- ldr r1, _0801831C @ =word_2024DB8
- ldrh r0, [r1]
- movs r2, 0xE7
- ands r2, r0
- adds r4, r1, 0
- cmp r2, 0
- bne _0801828E
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r3, r1, 0
- adds r3, 0x21
- ldrb r0, [r3]
- cmp r0, 0
- beq _0801828E
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0
- beq _0801828E
- strb r2, [r3]
- strb r2, [r1]
- movs r5, 0x1
-_0801828E:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _080182BA
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xA
- beq _080182BA
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xA
- beq _080182BA
- movs r0, 0xA
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x2
-_080182BA:
- ldrh r1, [r4]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080182E6
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xB
- beq _080182E6
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xB
- beq _080182E6
- movs r0, 0xB
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x3
-_080182E6:
- ldrh r1, [r4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08018312
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xF
- beq _08018312
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xF
- beq _08018312
- movs r0, 0xF
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x4
-_08018312:
- adds r0, r5, 0
-_08018314:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0801831C: .4byte word_2024DB8
-_08018320: .4byte gBattleMons
- thumb_func_end castform_switch
-
- thumb_func_start sub_8018324
-sub_8018324: @ 8018324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- ldr r4, [sp, 0x48]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0
- mov r9, r0
- ldr r5, _08018380 @ =gUnknown_02024C07
- ldr r1, _08018384 @ =gUnknown_02024A68
- ldrb r0, [r5]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08018360
- mov r1, r10
- strb r1, [r5]
-_08018360:
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08018390
- ldr r1, _08018388 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801838C @ =gPlayerParty
- b _080183A0
- .align 2, 0
-_08018380: .4byte gUnknown_02024C07
-_08018384: .4byte gUnknown_02024A68
-_08018388: .4byte gUnknown_02024A6A
-_0801838C: .4byte gPlayerParty
-_08018390:
- ldr r1, _080183D0 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080183D4 @ =gEnemyParty
-_080183A0:
- adds r7, r1, r0
- ldr r5, _080183D8 @ =gUnknown_02024C08
- ldr r1, _080183DC @ =gUnknown_02024A68
- ldrb r0, [r5]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080183B2
- mov r2, r10
- strb r2, [r5]
-_080183B2:
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080183E4
- ldr r1, _080183D0 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080183E0 @ =gPlayerParty
- b _080183F4
- .align 2, 0
-_080183D0: .4byte gUnknown_02024A6A
-_080183D4: .4byte gEnemyParty
-_080183D8: .4byte gUnknown_02024C08
-_080183DC: .4byte gUnknown_02024A68
-_080183E0: .4byte gPlayerParty
-_080183E4:
- ldr r1, _08018444 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08018448 @ =gEnemyParty
-_080183F4:
- adds r5, r1, r0
- adds r0, r7, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x14]
- ldr r0, _0801844C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08018436
- bl _08019F92
-_08018436:
- mov r3, r8
- cmp r3, 0
- beq _08018454
- ldr r0, _08018450 @ =byte_2024C06
- strb r3, [r0]
- mov r8, r0
- b _0801846A
- .align 2, 0
-_08018444: .4byte gUnknown_02024A6A
-_08018448: .4byte gEnemyParty
-_0801844C: .4byte gUnknown_020239F8
-_08018450: .4byte byte_2024C06
-_08018454:
- ldr r2, _08018474 @ =byte_2024C06
- ldr r1, _08018478 @ =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2]
- mov r8, r2
-_0801846A:
- cmp r4, 0
- beq _0801847C
- adds r3, r4, 0
- b _08018480
- .align 2, 0
-_08018474: .4byte byte_2024C06
-_08018478: .4byte gBattleMons
-_0801847C:
- ldr r0, _08018494 @ =gUnknown_02024BE6
- ldrh r3, [r0]
-_08018480:
- ldr r1, _08018498 @ =0x02000000
- ldr r2, _0801849C @ =0x0001601c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0
- beq _080184A0
- movs r4, 0x3F
- ands r4, r0
- b _080184AC
- .align 2, 0
-_08018494: .4byte gUnknown_02024BE6
-_08018498: .4byte 0x02000000
-_0801849C: .4byte 0x0001601c
-_080184A0:
- ldr r1, _080184C0 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x2]
-_080184AC:
- ldr r5, [sp, 0x4]
- cmp r5, 0x13
- bls _080184B6
- bl _08019F76
-_080184B6:
- lsls r0, r5, 2
- ldr r1, _080184C4 @ =_080184C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080184C0: .4byte gBattleMoves
-_080184C4: .4byte _080184C8
- .align 2, 0
-_080184C8:
- .4byte _08018518
- .4byte _08018814
- .4byte _08018A40
- .4byte _08018AD8
- .4byte _08018CF0
- .4byte _08019448
- .4byte _080197B4
- .4byte _08019804
- .4byte _08019880
- .4byte _080198FC
- .4byte _08019B1C
- .4byte _08019940
- .4byte _08019B60
- .4byte _08019BBC
- .4byte _08019C18
- .4byte _08019D18
- .4byte _08019D5C
- .4byte _08019DB8
- .4byte _08019F44
- .4byte _08019CD4
-_08018518:
- ldr r2, _0801854C @ =gUnknown_02024C07
- ldr r0, _08018550 @ =gUnknown_02024A68
- ldrb r1, [r2]
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r1, r0
- bcc _0801852A
- mov r1, r10
- strb r1, [r2]
-_0801852A:
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0x2D
- bne _08018534
- b _080186B8
-_08018534:
- cmp r0, 0x2D
- bgt _08018564
- cmp r0, 0xD
- bne _0801853E
- b _080187DC
-_0801853E:
- cmp r0, 0xD
- bgt _08018554
- cmp r0, 0x2
- bne _08018548
- b _08018680
-_08018548:
- bl _08019F76
- .align 2, 0
-_0801854C: .4byte gUnknown_02024C07
-_08018550: .4byte gUnknown_02024A68
-_08018554:
- cmp r0, 0x16
- bne _0801855A
- b _08018728
-_0801855A:
- cmp r0, 0x24
- bne _08018560
- b _080187A0
-_08018560:
- bl _08019F76
-_08018564:
- cmp r0, 0x46
- bne _0801856A
- b _080186F0
-_0801856A:
- cmp r0, 0x46
- bgt _08018578
- cmp r0, 0x3B
- bne _08018574
- b _0801875C
-_08018574:
- bl _08019F76
-_08018578:
- cmp r0, 0x4D
- bne _0801857E
- b _080187DC
-_0801857E:
- cmp r0, 0xFF
- beq _08018586
- bl _08019F76
-_08018586:
- bl weather_get_current
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0xA
- bhi _0801864C
- lsls r0, 2
- ldr r1, _080185A0 @ =_080185A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080185A0: .4byte _080185A4
- .align 2, 0
-_080185A4:
- .4byte _080185D0
- .4byte _0801864C
- .4byte _080185D0
- .4byte _0801864C
- .4byte _0801864C
- .4byte _080185F8
- .4byte _0801864C
- .4byte _0801864C
- .4byte _0801864C
- .4byte _08018620
- .4byte _080185D0
-_080185D0:
- ldr r2, _080185EC @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801864C
- movs r0, 0x5
- strh r0, [r2]
- ldr r0, _080185F0 @ =0x02000000
- ldr r3, _080185F4 @ =0x000160a4
- adds r2, r0, r3
- movs r1, 0xA
- b _08018638
- .align 2, 0
-_080185EC: .4byte word_2024DB8
-_080185F0: .4byte 0x02000000
-_080185F4: .4byte 0x000160a4
-_080185F8:
- ldr r3, _08018614 @ =word_2024DB8
- ldrh r1, [r3]
- movs r2, 0x18
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0801864C
- strh r2, [r3]
- ldr r0, _08018618 @ =0x02000000
- ldr r3, _0801861C @ =0x000160a4
- adds r2, r0, r3
- movs r1, 0xC
- b _08018638
- .align 2, 0
-_08018614: .4byte word_2024DB8
-_08018618: .4byte 0x02000000
-_0801861C: .4byte 0x000160a4
-_08018620:
- ldr r3, _08018668 @ =word_2024DB8
- ldrh r1, [r3]
- movs r2, 0x60
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0801864C
- strh r2, [r3]
- ldr r0, _0801866C @ =0x02000000
- ldr r3, _08018670 @ =0x000160a4
- adds r2, r0, r3
- movs r1, 0xB
-_08018638:
- strb r1, [r2]
- ldr r5, _08018674 @ =0x00016003
- adds r0, r5
- mov r1, r10
- strb r1, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801864C:
- mov r2, r9
- cmp r2, 0
- bne _08018656
- bl _08019F92
-_08018656:
- bl weather_get_current
- ldr r1, _08018678 @ =gUnknown_02024D1E
- strb r0, [r1, 0x5]
- ldr r0, _0801867C @ =gUnknown_081D901D
- bl b_push_move_exec
- bl _08019F76
- .align 2, 0
-_08018668: .4byte word_2024DB8
-_0801866C: .4byte 0x02000000
-_08018670: .4byte 0x000160a4
-_08018674: .4byte 0x00016003
-_08018678: .4byte gUnknown_02024D1E
-_0801867C: .4byte gUnknown_081D901D
-_08018680:
- ldr r2, _080186A8 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08018690
- bl _08019F76
-_08018690:
- movs r0, 0x5
- strh r0, [r2]
- ldr r0, _080186AC @ =gUnknown_081D9704
- bl b_push_move_exec
- ldr r0, _080186B0 @ =0x02000000
- ldr r3, _080186B4 @ =0x00016003
- adds r0, r3
- mov r5, r10
- strb r5, [r0]
- bl _08019F22
- .align 2, 0
-_080186A8: .4byte word_2024DB8
-_080186AC: .4byte gUnknown_081D9704
-_080186B0: .4byte 0x02000000
-_080186B4: .4byte 0x00016003
-_080186B8:
- ldr r2, _080186E0 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080186C8
- bl _08019F76
-_080186C8:
- movs r0, 0x18
- strh r0, [r2]
- ldr r0, _080186E4 @ =gUnknown_081D9744
- bl b_push_move_exec
- ldr r0, _080186E8 @ =0x02000000
- ldr r1, _080186EC @ =0x00016003
- adds r0, r1
- mov r2, r10
- strb r2, [r0]
- bl _08019F22
- .align 2, 0
-_080186E0: .4byte word_2024DB8
-_080186E4: .4byte gUnknown_081D9744
-_080186E8: .4byte 0x02000000
-_080186EC: .4byte 0x00016003
-_080186F0:
- ldr r2, _08018718 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08018700
- bl _08019F76
-_08018700:
- movs r0, 0x60
- strh r0, [r2]
- ldr r0, _0801871C @ =gUnknown_081D97FE
- bl b_push_move_exec
- ldr r0, _08018720 @ =0x02000000
- ldr r3, _08018724 @ =0x00016003
- adds r0, r3
- mov r5, r10
- strb r5, [r0]
- bl _08019F22
- .align 2, 0
-_08018718: .4byte word_2024DB8
-_0801871C: .4byte gUnknown_081D97FE
-_08018720: .4byte 0x02000000
-_08018724: .4byte 0x00016003
-_08018728:
- ldr r0, _08018754 @ =gUnknown_02024D68
- mov r1, r10
- lsls r2, r1, 2
- adds r1, r2, r1
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3]
- lsls r0, 28
- cmp r0, 0
- bge _08018740
- bl _08019F76
-_08018740:
- ldr r1, _08018758 @ =gUnknown_02024C98
- adds r1, r2, r1
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 12
- orrs r0, r2
- str r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x8
- b _080187CA
- .align 2, 0
-_08018754: .4byte gUnknown_02024D68
-_08018758: .4byte gUnknown_02024C98
-_0801875C:
- mov r0, r10
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- bne _08018770
- bl _08019F92
-_08018770:
- ldr r0, _08018790 @ =gUnknown_081D977D
- bl b_push_move_exec
- ldr r0, _08018794 @ =0x02000000
- ldr r2, _08018798 @ =0x00016003
- adds r1, r0, r2
- mov r3, r10
- strb r3, [r1]
- mov r1, r9
- subs r1, 0x1
- ldr r5, _0801879C @ =0x0001609b
- adds r0, r5
- strb r1, [r0]
- bl _08019F76
- .align 2, 0
-_08018790: .4byte gUnknown_081D977D
-_08018794: .4byte 0x02000000
-_08018798: .4byte 0x00016003
-_0801879C: .4byte 0x0001609b
-_080187A0:
- ldr r0, _080187D4 @ =gUnknown_02024D68
- mov r1, r10
- lsls r2, r1, 2
- adds r1, r2, r1
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3]
- lsls r0, 27
- cmp r0, 0
- bge _080187B8
- bl _08019F76
-_080187B8:
- ldr r1, _080187D8 @ =gUnknown_02024C98
- adds r1, r2, r1
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 13
- orrs r0, r2
- str r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x10
-_080187CA:
- orrs r0, r1
- strb r0, [r3]
- bl _08019F76
- .align 2, 0
-_080187D4: .4byte gUnknown_02024D68
-_080187D8: .4byte gUnknown_02024C98
-_080187DC:
- movs r6, 0
- ldrb r5, [r5]
- cmp r6, r5
- bcc _080187E8
- bl _08019F76
-_080187E8:
- adds r0, r6, 0
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- beq _080187FC
- bl _08019E14
-_080187FC:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08018810 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bcc _080187E8
- bl _08019F76
- .align 2, 0
-_08018810: .4byte gUnknown_02024A68
-_08018814:
- ldr r2, _08018844 @ =gBattleMons
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r4, r1, r2
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- bne _08018828
- bl _08019F76
-_08018828:
- ldr r0, _08018848 @ =gUnknown_02024C07
- mov r3, r10
- strb r3, [r0]
- mov r3, r8
- ldrb r5, [r3]
- cmp r5, 0x2C
- beq _0801885A
- cmp r5, 0x2C
- bgt _0801884C
- cmp r5, 0x3
- bne _08018840
- b _080189B8
-_08018840:
- bl _08019F76
- .align 2, 0
-_08018844: .4byte gBattleMons
-_08018848: .4byte gUnknown_02024C07
-_0801884C:
- cmp r5, 0x36
- bne _08018852
- b _08018A18
-_08018852:
- cmp r5, 0x3D
- beq _080188DC
- bl _08019F76
-_0801885A:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08018876
- bl _08019F76
-_08018876:
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0801888E
- bl _08019F76
-_0801888E:
- ldr r0, _080188D0 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801889E
- bl _08019F76
-_0801889E:
- ldrh r0, [r4, 0x2C]
- ldrh r1, [r4, 0x28]
- cmp r0, r1
- bhi _080188AA
- bl _08019F76
-_080188AA:
- mov r2, r8
- strb r5, [r2]
- ldr r0, _080188D4 @ =gUnknown_081D9730
- bl b_push_move_exec
- ldr r1, _080188D8 @ =gUnknown_02024BEC
- ldrh r0, [r4, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _080188C4
- movs r0, 0x1
- str r0, [r1]
-_080188C4:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_080188D0: .4byte word_2024DB8
-_080188D4: .4byte gUnknown_081D9730
-_080188D8: .4byte gUnknown_02024BEC
-_080188DC:
- adds r0, r2, 0
- adds r0, 0x4C
- adds r5, r1, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _080188EC
- bl _08019F76
-_080188EC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08018906
- bl _08019F76
-_08018906:
- ldr r0, [r5]
- movs r1, 0x88
- ands r0, r1
- cmp r0, 0
- beq _08018918
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _08018994 @ =gStatusConditionString_PoisonJpn
- bl StringCopy
-_08018918:
- ldr r0, [r5]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801892A
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _08018998 @ =gStatusConditionString_SleepJpn
- bl StringCopy
-_0801892A:
- ldr r0, [r5]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801893C
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _0801899C @ =gStatusConditionString_ParalysisJpn
- bl StringCopy
-_0801893C:
- ldr r0, [r5]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801894E
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _080189A0 @ =gStatusConditionString_BurnJpn
- bl StringCopy
-_0801894E:
- ldr r0, [r5]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08018960
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _080189A4 @ =gStatusConditionString_IceJpn
- bl StringCopy
-_08018960:
- str r4, [r5]
- ldr r0, _080189A8 @ =0x02000000
- ldr r4, _080189AC @ =gUnknown_02024A60
- mov r3, r10
- strb r3, [r4]
- ldr r1, _080189B0 @ =0x00016003
- adds r0, r1
- strb r3, [r0]
- ldr r0, _080189B4 @ =gUnknown_081D9758
- bl b_push_move_exec
- str r5, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl _08019F22
- .align 2, 0
-_08018990: .4byte gUnknown_030041C0
-_08018994: .4byte gStatusConditionString_PoisonJpn
-_08018998: .4byte gStatusConditionString_SleepJpn
-_0801899C: .4byte gStatusConditionString_ParalysisJpn
-_080189A0: .4byte gStatusConditionString_BurnJpn
-_080189A4: .4byte gStatusConditionString_IceJpn
-_080189A8: .4byte 0x02000000
-_080189AC: .4byte gUnknown_02024A60
-_080189B0: .4byte 0x00016003
-_080189B4: .4byte gUnknown_081D9758
-_080189B8:
- ldrb r2, [r4, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r4, r0]
- cmp r0, 0xB
- ble _080189C6
- bl _08019F76
-_080189C6:
- ldr r0, _08018A04 @ =gUnknown_02024CA8
- mov r3, r10
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x16]
- cmp r0, 0x2
- bne _080189DC
- bl _08019F76
-_080189DC:
- adds r0, r2, 0x1
- movs r2, 0
- strb r0, [r4, 0x1B]
- ldr r5, _08018A08 @ =0x000160a4
- adds r1, r7, r5
- movs r0, 0x11
- strb r0, [r1]
- ldr r1, _08018A0C @ =0x000160a5
- adds r0, r7, r1
- strb r2, [r0]
- ldr r0, _08018A10 @ =gUnknown_081D9718
- bl b_push_move_exec
- ldr r2, _08018A14 @ =0x00016003
- adds r0, r7, r2
- mov r3, r10
- strb r3, [r0]
- bl _08019F22
- .align 2, 0
-_08018A04: .4byte gUnknown_02024CA8
-_08018A08: .4byte 0x000160a4
-_08018A0C: .4byte 0x000160a5
-_08018A10: .4byte gUnknown_081D9718
-_08018A14: .4byte 0x00016003
-_08018A18:
- ldr r2, _08018A3C @ =gUnknown_02024CA8
- ldrb r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x18]
- lsls r0, r3, 31
- lsrs r0, 31
- movs r2, 0x1
- eors r2, r0
- movs r0, 0x2
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x18]
- bl _08019F76
- .align 2, 0
-_08018A3C: .4byte gUnknown_02024CA8
-_08018A40:
- mov r5, r8
- ldrb r0, [r5]
- cmp r0, 0x2B
- beq _08018A4C
- bl _08019F76
-_08018A4C:
- movs r4, 0
- ldr r0, _08018ABC @ =gUnknown_081FA724
- ldrh r2, [r0]
- ldr r5, _08018AC0 @ =0x0000ffff
- adds r1, r0, 0
- cmp r2, r5
- bne _08018A5E
- bl _08019F76
-_08018A5E:
- cmp r2, r3
- beq _08018A76
- adds r2, r1, 0
-_08018A64:
- adds r2, 0x2
- adds r4, 0x1
- ldrh r0, [r2]
- cmp r0, r5
- bne _08018A72
- bl _08019F76
-_08018A72:
- cmp r0, r3
- bne _08018A64
-_08018A76:
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _08018AC0 @ =0x0000ffff
- cmp r1, r0
- bne _08018A86
- bl _08019F76
-_08018A86:
- ldr r1, _08018AC4 @ =gBattleMons
- ldr r0, _08018AC8 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _08018AAC
- ldr r0, _08018ACC @ =gUnknown_02024C6C
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 4
- orrs r1, r2
- str r1, [r0]
-_08018AAC:
- ldr r1, _08018AD0 @ =gUnknown_02024C10
- ldr r0, _08018AD4 @ =gUnknown_081D98F3
- str r0, [r1]
- movs r0, 0x1
- mov r9, r0
- bl _08019F7C
- .align 2, 0
-_08018ABC: .4byte gUnknown_081FA724
-_08018AC0: .4byte 0x0000ffff
-_08018AC4: .4byte gBattleMons
-_08018AC8: .4byte gUnknown_02024C07
-_08018ACC: .4byte gUnknown_02024C6C
-_08018AD0: .4byte gUnknown_02024C10
-_08018AD4: .4byte gUnknown_081D98F3
-_08018AD8:
- cmp r3, 0
- bne _08018AE0
- bl _08019F76
-_08018AE0:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0xB
- beq _08018B50
- cmp r0, 0xB
- bgt _08018AF2
- cmp r0, 0xA
- beq _08018AF8
- b _08018C6A
-_08018AF2:
- cmp r0, 0x12
- beq _08018BA8
- b _08018C6A
-_08018AF8:
- cmp r4, 0xD
- beq _08018AFE
- b _08018C6A
-_08018AFE:
- ldr r0, _08018B28 @ =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08018B10
- b _08018C6A
-_08018B10:
- ldr r1, _08018B2C @ =gUnknown_02024D28
- ldr r0, _08018B30 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018B3C
- ldr r1, _08018B34 @ =gUnknown_02024C10
- ldr r0, _08018B38 @ =gUnknown_081D9843
- b _08018B40
- .align 2, 0
-_08018B28: .4byte gBattleMoves
-_08018B2C: .4byte gUnknown_02024D28
-_08018B30: .4byte gUnknown_02024C07
-_08018B34: .4byte gUnknown_02024C10
-_08018B38: .4byte gUnknown_081D9843
-_08018B3C:
- ldr r1, _08018B48 @ =gUnknown_02024C10
- ldr r0, _08018B4C @ =gUnknown_081D9842
-_08018B40:
- str r0, [r1]
- movs r2, 0x1
- b _08018C68
- .align 2, 0
-_08018B48: .4byte gUnknown_02024C10
-_08018B4C: .4byte gUnknown_081D9842
-_08018B50:
- cmp r4, 0xB
- beq _08018B56
- b _08018C6A
-_08018B56:
- ldr r0, _08018B80 @ =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08018B68
- b _08018C6A
-_08018B68:
- ldr r1, _08018B84 @ =gUnknown_02024D28
- ldr r0, _08018B88 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018B94
- ldr r1, _08018B8C @ =gUnknown_02024C10
- ldr r0, _08018B90 @ =gUnknown_081D9843
- b _08018B98
- .align 2, 0
-_08018B80: .4byte gBattleMoves
-_08018B84: .4byte gUnknown_02024D28
-_08018B88: .4byte gUnknown_02024C07
-_08018B8C: .4byte gUnknown_02024C10
-_08018B90: .4byte gUnknown_081D9843
-_08018B94:
- ldr r1, _08018BA0 @ =gUnknown_02024C10
- ldr r0, _08018BA4 @ =gUnknown_081D9842
-_08018B98:
- str r0, [r1]
- movs r3, 0x1
- mov r9, r3
- b _08018C6A
- .align 2, 0
-_08018BA0: .4byte gUnknown_02024C10
-_08018BA4: .4byte gUnknown_081D9842
-_08018BA8:
- cmp r4, 0xA
- bne _08018C6A
- ldr r1, _08018BF4 @ =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08018C6A
- ldr r2, _08018BF8 @ =0x02017100
- mov r0, r10
- lsls r1, r0, 2
- adds r0, r1, r2
- ldr r3, [r0]
- movs r4, 0x1
- ands r3, r4
- adds r5, r1, 0
- cmp r3, 0
- bne _08018C30
- ldr r0, _08018BFC @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
- ldr r1, _08018C00 @ =gUnknown_02024D28
- ldr r0, _08018C04 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018C10
- ldr r1, _08018C08 @ =gUnknown_02024C10
- ldr r0, _08018C0C @ =gUnknown_081D987C
- b _08018C14
- .align 2, 0
-_08018BF4: .4byte gBattleMons
-_08018BF8: .4byte 0x02017100
-_08018BFC: .4byte gUnknown_02024D1E
-_08018C00: .4byte gUnknown_02024D28
-_08018C04: .4byte gUnknown_02024C07
-_08018C08: .4byte gUnknown_02024C10
-_08018C0C: .4byte gUnknown_081D987C
-_08018C10:
- ldr r1, _08018C28 @ =gUnknown_02024C10
- ldr r0, _08018C2C @ =gUnknown_081D987B
-_08018C14:
- str r0, [r1]
- adds r0, r5, r2
- ldr r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- str r1, [r0]
- movs r1, 0x2
- mov r9, r1
- b _08018C6A
- .align 2, 0
-_08018C28: .4byte gUnknown_02024C10
-_08018C2C: .4byte gUnknown_081D987B
-_08018C30:
- ldr r0, _08018C4C @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r1, _08018C50 @ =gUnknown_02024D28
- ldr r0, _08018C54 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018C60
- ldr r1, _08018C58 @ =gUnknown_02024C10
- ldr r0, _08018C5C @ =gUnknown_081D987C
- b _08018C64
- .align 2, 0
-_08018C4C: .4byte gUnknown_02024D1E
-_08018C50: .4byte gUnknown_02024D28
-_08018C54: .4byte gUnknown_02024C07
-_08018C58: .4byte gUnknown_02024C10
-_08018C5C: .4byte gUnknown_081D987C
-_08018C60:
- ldr r1, _08018CA4 @ =gUnknown_02024C10
- ldr r0, _08018CA8 @ =gUnknown_081D987B
-_08018C64:
- str r0, [r1]
- movs r2, 0x2
-_08018C68:
- mov r9, r2
-_08018C6A:
- mov r3, r9
- cmp r3, 0x1
- beq _08018C74
- bl _08019F76
-_08018C74:
- ldr r1, _08018CAC @ =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r2, [r1, 0x28]
- cmp r0, r2
- bne _08018CD0
- ldr r1, _08018CB0 @ =gUnknown_02024D28
- ldr r0, _08018CB4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018CBC
- ldr r1, _08018CA4 @ =gUnknown_02024C10
- ldr r0, _08018CB8 @ =gUnknown_081D9866
- str r0, [r1]
- bl _08019F76
- .align 2, 0
-_08018CA4: .4byte gUnknown_02024C10
-_08018CA8: .4byte gUnknown_081D987B
-_08018CAC: .4byte gBattleMons
-_08018CB0: .4byte gUnknown_02024D28
-_08018CB4: .4byte gUnknown_02024C07
-_08018CB8: .4byte gUnknown_081D9866
-_08018CBC:
- ldr r1, _08018CC8 @ =gUnknown_02024C10
- ldr r0, _08018CCC @ =gUnknown_081D9865
- str r0, [r1]
- bl _08019F76
- .align 2, 0
-_08018CC8: .4byte gUnknown_02024C10
-_08018CCC: .4byte gUnknown_081D9865
-_08018CD0:
- ldr r2, _08018CEC @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _08018CE0
- mov r3, r9
- str r3, [r2]
-_08018CE0:
- ldr r0, [r2]
- negs r0, r0
- str r0, [r2]
- bl _08019F76
- .align 2, 0
-_08018CEC: .4byte gUnknown_02024BEC
-_08018CF0:
- mov r5, r8
- ldrb r0, [r5]
- subs r0, 0x9
- cmp r0, 0x2F
- bls _08018CFE
- bl _08019F76
-_08018CFE:
- lsls r0, 2
- ldr r1, _08018D08 @ =_08018D0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08018D08: .4byte _08018D0C
- .align 2, 0
-_08018D0C:
- .4byte _08019128
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08018DCC
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08018E94
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08018F54
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _0801904C
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019204
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _080192E0
-_08018DCC:
- ldr r0, _08018E74 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08018DDC
- bl _08019F76
-_08018DDC:
- cmp r3, 0xA5
- bne _08018DE4
- bl _08019F76
-_08018DE4:
- ldr r0, _08018E78 @ =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08018DF8
- bl _08019F76
-_08018DF8:
- ldr r2, _08018E7C @ =gUnknown_02024D68
- ldr r0, _08018E80 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018E20
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018E20
- bl _08019F76
-_08018E20:
- ldr r1, _08018E84 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r1, r0, r1
- adds r3, r1, 0
- adds r3, 0x21
- ldrb r0, [r3]
- cmp r0, r4
- bne _08018E3A
- bl _08019F76
-_08018E3A:
- adds r2, r1, 0
- adds r2, 0x22
- ldrb r0, [r2]
- cmp r0, r4
- bne _08018E48
- bl _08019F76
-_08018E48:
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- bne _08018E52
- bl _08019F76
-_08018E52:
- strb r4, [r3]
- strb r4, [r2]
- ldr r1, _08018E88 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _08018E8C @ =gUnknown_02024C10
- ldr r0, _08018E90 @ =gUnknown_081D9921
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_08018E74: .4byte gUnknown_02024C68
-_08018E78: .4byte gBattleMoves
-_08018E7C: .4byte gUnknown_02024D68
-_08018E80: .4byte gUnknown_02024C08
-_08018E84: .4byte gBattleMons
-_08018E88: .4byte gUnknown_030041C0
-_08018E8C: .4byte gUnknown_02024C10
-_08018E90: .4byte gUnknown_081D9921
-_08018E94:
- ldr r0, _08018F2C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08018EA4
- bl _08019F76
-_08018EA4:
- ldr r1, _08018F30 @ =gBattleMons
- ldr r0, _08018F34 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r4, r0, r1
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- bne _08018EBA
- bl _08019F76
-_08018EBA:
- ldr r0, _08018F38 @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08018ECC
- bl _08019F76
-_08018ECC:
- ldr r2, _08018F3C @ =gUnknown_02024D68
- ldr r0, _08018F40 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018EF4
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018EF4
- bl _08019F76
-_08018EF4:
- ldr r1, _08018F44 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08018F0E
- bl _08019F76
-_08018F0E:
- ldr r1, _08018F48 @ =gUnknown_02024BEC
- ldrh r0, [r4, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08018F1C
- str r2, [r1]
-_08018F1C:
- bl b_movescr_stack_push_cursor
- ldr r1, _08018F4C @ =gUnknown_02024C10
- ldr r0, _08018F50 @ =gUnknown_081D9928
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_08018F2C: .4byte gUnknown_02024C68
-_08018F30: .4byte gBattleMons
-_08018F34: .4byte gUnknown_02024C07
-_08018F38: .4byte gUnknown_02024D28
-_08018F3C: .4byte gUnknown_02024D68
-_08018F40: .4byte gUnknown_02024C08
-_08018F44: .4byte gBattleMoves
-_08018F48: .4byte gUnknown_02024BEC
-_08018F4C: .4byte gUnknown_02024C10
-_08018F50: .4byte gUnknown_081D9928
-_08018F54:
- ldr r0, _08019020 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08018F64
- bl _08019F76
-_08018F64:
- ldr r1, _08019024 @ =gBattleMons
- ldr r0, _08019028 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08018F7A
- bl _08019F76
-_08018F7A:
- ldr r0, _0801902C @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08018F8C
- bl _08019F76
-_08018F8C:
- ldr r2, _08019030 @ =gUnknown_02024D68
- ldr r0, _08019034 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018FB4
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018FB4
- bl _08019F76
-_08018FB4:
- ldr r1, _08019038 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08018FCC
- bl _08019F76
-_08018FCC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08018FE4
- bl _08019F76
-_08018FE4:
- ldr r5, _0801903C @ =gUnknown_02024D1E
- movs r4, 0x3
-_08018FE8:
- bl Random
- ands r0, r4
- strb r0, [r5, 0x3]
- cmp r0, 0
- beq _08018FE8
- ldr r1, _0801903C @ =gUnknown_02024D1E
- ldrb r0, [r1, 0x3]
- cmp r0, 0x3
- bne _08019000
- adds r0, 0x2
- strb r0, [r1, 0x3]
-_08019000:
- ldrb r0, [r1, 0x3]
- adds r0, 0x40
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019040 @ =gUnknown_02024C10
- ldr r0, _08019044 @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _08019048 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_08019020: .4byte gUnknown_02024C68
-_08019024: .4byte gBattleMons
-_08019028: .4byte gUnknown_02024C07
-_0801902C: .4byte gUnknown_02024D28
-_08019030: .4byte gUnknown_02024D68
-_08019034: .4byte gUnknown_02024C08
-_08019038: .4byte gBattleMoves
-_0801903C: .4byte gUnknown_02024D1E
-_08019040: .4byte gUnknown_02024C10
-_08019044: .4byte gUnknown_081D9950
-_08019048: .4byte gUnknown_02024C6C
-_0801904C:
- ldr r0, _080190FC @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801905C
- bl _08019F76
-_0801905C:
- ldr r1, _08019100 @ =gBattleMons
- ldr r0, _08019104 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08019072
- bl _08019F76
-_08019072:
- ldr r0, _08019108 @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08019084
- bl _08019F76
-_08019084:
- ldr r2, _0801910C @ =gUnknown_02024D68
- ldr r0, _08019110 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080190AC
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080190AC
- bl _08019F76
-_080190AC:
- ldr r1, _08019114 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080190C4
- bl _08019F76
-_080190C4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _080190DC
- bl _08019F76
-_080190DC:
- ldr r1, _08019118 @ =gUnknown_02024D1E
- movs r0, 0x42
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801911C @ =gUnknown_02024C10
- ldr r0, _08019120 @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _08019124 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_080190FC: .4byte gUnknown_02024C68
-_08019100: .4byte gBattleMons
-_08019104: .4byte gUnknown_02024C07
-_08019108: .4byte gUnknown_02024D28
-_0801910C: .4byte gUnknown_02024D68
-_08019110: .4byte gUnknown_02024C08
-_08019114: .4byte gBattleMoves
-_08019118: .4byte gUnknown_02024D1E
-_0801911C: .4byte gUnknown_02024C10
-_08019120: .4byte gUnknown_081D9950
-_08019124: .4byte gUnknown_02024C6C
-_08019128:
- ldr r0, _080191D8 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08019138
- bl _08019F76
-_08019138:
- ldr r1, _080191DC @ =gBattleMons
- ldr r0, _080191E0 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801914E
- bl _08019F76
-_0801914E:
- ldr r0, _080191E4 @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08019160
- bl _08019F76
-_08019160:
- ldr r2, _080191E8 @ =gUnknown_02024D68
- ldr r0, _080191EC @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08019188
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08019188
- bl _08019F76
-_08019188:
- ldr r1, _080191F0 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080191A0
- bl _08019F76
-_080191A0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _080191B8
- bl _08019F76
-_080191B8:
- ldr r1, _080191F4 @ =gUnknown_02024D1E
- movs r0, 0x45
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _080191F8 @ =gUnknown_02024C10
- ldr r0, _080191FC @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _08019200 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_080191D8: .4byte gUnknown_02024C68
-_080191DC: .4byte gBattleMons
-_080191E0: .4byte gUnknown_02024C07
-_080191E4: .4byte gUnknown_02024D28
-_080191E8: .4byte gUnknown_02024D68
-_080191EC: .4byte gUnknown_02024C08
-_080191F0: .4byte gBattleMoves
-_080191F4: .4byte gUnknown_02024D1E
-_080191F8: .4byte gUnknown_02024C10
-_080191FC: .4byte gUnknown_081D9950
-_08019200: .4byte gUnknown_02024C6C
-_08019204:
- ldr r0, _080192B4 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08019214
- bl _08019F76
-_08019214:
- ldr r1, _080192B8 @ =gBattleMons
- ldr r0, _080192BC @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801922A
- bl _08019F76
-_0801922A:
- ldr r0, _080192C0 @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801923C
- bl _08019F76
-_0801923C:
- ldr r1, _080192C4 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08019254
- bl _08019F76
-_08019254:
- ldr r2, _080192C8 @ =gUnknown_02024D68
- ldr r0, _080192CC @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801927C
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801927C
- bl _08019F76
-_0801927C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08019294
- bl _08019F76
-_08019294:
- ldr r1, _080192D0 @ =gUnknown_02024D1E
- movs r0, 0x43
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _080192D4 @ =gUnknown_02024C10
- ldr r0, _080192D8 @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _080192DC @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_080192B4: .4byte gUnknown_02024C68
-_080192B8: .4byte gBattleMons
-_080192BC: .4byte gUnknown_02024C07
-_080192C0: .4byte gUnknown_02024D28
-_080192C4: .4byte gBattleMoves
-_080192C8: .4byte gUnknown_02024D68
-_080192CC: .4byte gUnknown_02024C08
-_080192D0: .4byte gUnknown_02024D1E
-_080192D4: .4byte gUnknown_02024C10
-_080192D8: .4byte gUnknown_081D9950
-_080192DC: .4byte gUnknown_02024C6C
-_080192E0:
- ldr r0, _08019420 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _080192F0
- bl _08019F76
-_080192F0:
- ldr r5, _08019424 @ =gBattleMons
- ldr r7, _08019428 @ =gUnknown_02024C07
- ldrb r1, [r7]
- movs r6, 0x58
- adds r0, r1, 0
- muls r0, r6
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08019308
- bl _08019F76
-_08019308:
- ldr r0, _0801942C @ =gUnknown_02024D28
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801931A
- bl _08019F76
-_0801931A:
- ldr r1, _08019430 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08019332
- bl _08019F76
-_08019332:
- ldr r3, _08019434 @ =gUnknown_02024D68
- ldr r0, _08019438 @ =gUnknown_02024C08
- mov r8, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801935C
- adds r0, r3, 0
- adds r0, 0xC
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801935C
- bl _08019F76
-_0801935C:
- adds r0, r1, 0
- muls r0, r6
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801936C
- bl _08019F76
-_0801936C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08019384
- bl _08019F76
-_08019384:
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _08019396
- bl _08019F76
-_08019396:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- bl GetGenderFromSpeciesAndPersonality
- adds r4, r0, 0
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x14]
- bl GetGenderFromSpeciesAndPersonality
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080193B4
- bl _08019F76
-_080193B4:
- ldrb r0, [r7]
- muls r0, r6
- adds r4, r5, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _080193CE
- bl _08019F76
-_080193CE:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080193E2
- bl _08019F76
-_080193E2:
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x14]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080193F6
- bl _08019F76
-_080193F6:
- ldrb r0, [r7]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r1, _0801943C @ =gBitTable
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019440 @ =gUnknown_02024C10
- ldr r0, _08019444 @ =gUnknown_081D9943
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_08019420: .4byte gUnknown_02024C68
-_08019424: .4byte gBattleMons
-_08019428: .4byte gUnknown_02024C07
-_0801942C: .4byte gUnknown_02024D28
-_08019430: .4byte gBattleMoves
-_08019434: .4byte gUnknown_02024D68
-_08019438: .4byte gUnknown_02024C08
-_0801943C: .4byte gBitTable
-_08019440: .4byte gUnknown_02024C10
-_08019444: .4byte gUnknown_081D9943
-_08019448:
- movs r5, 0
- mov r10, r5
- ldr r0, _0801947C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r10, r0
- bcc _08019458
- bl _08019F76
-_08019458:
- ldr r1, _08019480 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- subs r0, 0x7
- adds r2, r1, 0
- cmp r0, 0x41
- bls _08019472
- b _080196D6
-_08019472:
- lsls r0, 2
- ldr r1, _08019484 @ =_08019488
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801947C: .4byte gUnknown_02024A68
-_08019480: .4byte gBattleMons
-_08019484: .4byte _08019488
- .align 2, 0
-_08019488:
- .4byte _080195EC
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196B0
- .4byte _080196D6
- .4byte _080196D6
- .4byte _08019614
- .4byte _080196D6
- .4byte _08019590
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080195BC
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _08019680
- .4byte _08019650
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _08019614
-_08019590:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080195B0 @ =0x00000f88
- ands r0, r1
- cmp r0, 0
- bne _080195AA
- b _080196D6
-_080195AA:
- ldr r0, _080195B4 @ =gUnknown_030041C0
- ldr r1, _080195B8 @ =gStatusConditionString_PoisonJpn
- b _0801969C
- .align 2, 0
-_080195B0: .4byte 0x00000f88
-_080195B4: .4byte gUnknown_030041C0
-_080195B8: .4byte gStatusConditionString_PoisonJpn
-_080195BC:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _080195D6
- b _080196D6
-_080195D6:
- ldr r0, _080195E4 @ =gUnknown_030041C0
- ldr r1, _080195E8 @ =gStatusConditionString_ConfusionJpn
- bl StringCopy
- movs r2, 0x2
- mov r9, r2
- b _080196DC
- .align 2, 0
-_080195E4: .4byte gUnknown_030041C0
-_080195E8: .4byte gStatusConditionString_ConfusionJpn
-_080195EC:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _0801960C @ =gUnknown_030041C0
- ldr r1, _08019610 @ =gStatusConditionString_ParalysisJpn
- b _0801969C
- .align 2, 0
-_0801960C: .4byte gUnknown_030041C0
-_08019610: .4byte gStatusConditionString_ParalysisJpn
-_08019614:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- adds r2, 0x50
- adds r2, r3, r2
- ldr r0, [r2]
- ldr r1, _08019644 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _08019648 @ =gUnknown_030041C0
- ldr r1, _0801964C @ =gStatusConditionString_SleepJpn
- bl StringCopy
- movs r0, 0x1
- mov r9, r0
- b _080196DC
- .align 2, 0
-_08019644: .4byte 0xf7ffffff
-_08019648: .4byte gUnknown_030041C0
-_0801964C: .4byte gStatusConditionString_SleepJpn
-_08019650:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _08019678 @ =gUnknown_030041C0
- ldr r1, _0801967C @ =gStatusConditionString_BurnJpn
- bl StringCopy
- movs r2, 0x1
- mov r9, r2
- b _080196DC
- .align 2, 0
-_08019678: .4byte gUnknown_030041C0
-_0801967C: .4byte gStatusConditionString_BurnJpn
-_08019680:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _080196A8 @ =gUnknown_030041C0
- ldr r1, _080196AC @ =gStatusConditionString_IceJpn
-_0801969C:
- bl StringCopy
- movs r5, 0x1
- mov r9, r5
- b _080196DC
- .align 2, 0
-_080196A8: .4byte gUnknown_030041C0
-_080196AC: .4byte gStatusConditionString_IceJpn
-_080196B0:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _080196EC @ =gUnknown_030041C0
- ldr r1, _080196F0 @ =gStatusConditionString_LoveJpn
- bl StringCopy
- movs r2, 0x3
- mov r9, r2
-_080196D6:
- mov r3, r9
- cmp r3, 0
- beq _08019798
-_080196DC:
- mov r5, r9
- cmp r5, 0x2
- beq _08019710
- cmp r5, 0x2
- bgt _080196F4
- cmp r5, 0x1
- beq _080196FC
- b _0801973C
- .align 2, 0
-_080196EC: .4byte gUnknown_030041C0
-_080196F0: .4byte gStatusConditionString_LoveJpn
-_080196F4:
- mov r0, r9
- cmp r0, 0x3
- beq _08019728
- b _0801973C
-_080196FC:
- ldr r1, _0801970C @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x4C
- adds r2, r1
- movs r0, 0
- b _0801973A
- .align 2, 0
-_0801970C: .4byte gBattleMons
-_08019710:
- ldr r1, _08019724 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- b _08019738
- .align 2, 0
-_08019724: .4byte gBattleMons
-_08019728:
- ldr r1, _08019778 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _0801977C @ =0xfff0ffff
-_08019738:
- ands r0, r1
-_0801973A:
- str r0, [r2]
-_0801973C:
- bl b_movescr_stack_push_cursor
- ldr r1, _08019780 @ =gUnknown_02024C10
- ldr r0, _08019784 @ =gUnknown_081D9956
- str r0, [r1]
- ldr r0, _08019788 @ =0x02000000
- ldr r1, _0801978C @ =0x00016003
- adds r0, r1
- mov r2, r10
- strb r2, [r0]
- ldr r4, _08019790 @ =gUnknown_02024A60
- strb r2, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _08019794 @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl _08019F92
- .align 2, 0
-_08019778: .4byte gBattleMons
-_0801977C: .4byte 0xfff0ffff
-_08019780: .4byte gUnknown_02024C10
-_08019784: .4byte gUnknown_081D9956
-_08019788: .4byte 0x02000000
-_0801978C: .4byte 0x00016003
-_08019790: .4byte gUnknown_02024A60
-_08019794: .4byte gUnknown_02024ACC
-_08019798:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _080197B0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r10, r0
- bcs _080197AC
- b _08019458
-_080197AC:
- bl _08019F76
- .align 2, 0
-_080197B0: .4byte gUnknown_02024A68
-_080197B4:
- movs r3, 0
- mov r10, r3
- ldr r0, _080197FC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r10, r0
- bcc _080197C2
- b _08019F76
-_080197C2:
- ldr r4, _08019800 @ =gBattleMons
-_080197C4:
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3B
- bne _080197E8
- mov r0, r10
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- beq _080197E8
- b _08019E40
-_080197E8:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _080197FC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r10, r0
- bcc _080197C4
- b _08019F76
- .align 2, 0
-_080197FC: .4byte gUnknown_02024A68
-_08019800: .4byte gBattleMons
-_08019804:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x1C
- beq _0801980E
- b _08019F76
-_0801980E:
- ldr r4, _08019860 @ =gUnknown_02024C6C
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0801981E
- b _08019F76
-_0801981E:
- ldr r0, _08019864 @ =0xffffbfff
- ands r1, r0
- str r1, [r4]
- ldr r3, _08019868 @ =0x000160ca
- adds r2, r7, r3
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- cmp r0, 0x6
- bne _08019838
- movs r0, 0x2
- strb r0, [r2]
-_08019838:
- ldr r1, _0801986C @ =gUnknown_02024D1E
- ldrb r0, [r2]
- adds r0, 0x40
- strb r0, [r1, 0x3]
- ldr r0, _08019870 @ =gUnknown_02024C08
- ldrb r1, [r0]
- ldr r5, _08019874 @ =0x00016003
- adds r0, r7, r5
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019878 @ =gUnknown_02024C10
- ldr r0, _0801987C @ =gUnknown_081D9953
- str r0, [r1]
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r4]
- b _08019F22
- .align 2, 0
-_08019860: .4byte gUnknown_02024C6C
-_08019864: .4byte 0xffffbfff
-_08019868: .4byte 0x000160ca
-_0801986C: .4byte gUnknown_02024D1E
-_08019870: .4byte gUnknown_02024C08
-_08019874: .4byte 0x00016003
-_08019878: .4byte gUnknown_02024C10
-_0801987C: .4byte gUnknown_081D9953
-_08019880:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x1C
- beq _0801988A
- b _08019F76
-_0801988A:
- ldr r4, _080198DC @ =gUnknown_02024C6C
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0801989A
- b _08019F76
-_0801989A:
- ldr r0, _080198E0 @ =0xffffbfff
- ands r1, r0
- str r1, [r4]
- ldr r3, _080198E4 @ =0x000160ca
- adds r2, r7, r3
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- cmp r0, 0x6
- bne _080198B4
- movs r0, 0x2
- strb r0, [r2]
-_080198B4:
- ldr r1, _080198E8 @ =gUnknown_02024D1E
- ldrb r0, [r2]
- strb r0, [r1, 0x3]
- ldr r0, _080198EC @ =gUnknown_02024C07
- ldrb r1, [r0]
- ldr r5, _080198F0 @ =0x00016003
- adds r0, r7, r5
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _080198F4 @ =gUnknown_02024C10
- ldr r0, _080198F8 @ =gUnknown_081D9953
- str r0, [r1]
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r4]
- b _08019F22
- .align 2, 0
-_080198DC: .4byte gUnknown_02024C6C
-_080198E0: .4byte 0xffffbfff
-_080198E4: .4byte 0x000160ca
-_080198E8: .4byte gUnknown_02024D1E
-_080198EC: .4byte gUnknown_02024C07
-_080198F0: .4byte 0x00016003
-_080198F4: .4byte gUnknown_02024C10
-_080198F8: .4byte gUnknown_081D9953
-_080198FC:
- movs r4, 0
- ldr r0, _08019934 @ =gUnknown_02024A68
- ldrb r1, [r0]
- cmp r4, r1
- blt _08019908
- b _08019F76
-_08019908:
- ldr r0, _08019938 @ =gBattleMons
- adds r5, r1, 0
- ldr r2, _0801993C @ =gUnknown_02024C98
- adds r3, r0, 0
- adds r3, 0x20
- movs r6, 0x80
- lsls r6, 12
-_08019916:
- ldrb r1, [r3]
- cmp r1, 0x16
- bne _08019926
- ldr r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _08019926
- b _08019E6C
-_08019926:
- adds r2, 0x4
- adds r3, 0x58
- adds r4, 0x1
- cmp r4, r5
- blt _08019916
- b _08019F76
- .align 2, 0
-_08019934: .4byte gUnknown_02024A68
-_08019938: .4byte gBattleMons
-_0801993C: .4byte gUnknown_02024C98
-_08019940:
- movs r4, 0
- ldr r0, _08019A1C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _0801994C
- b _08019F76
-_0801994C:
- ldr r0, _08019A20 @ =gUnknown_02024A60
- mov r8, r0
- ldr r1, _08019A24 @ =gBattleMons
- adds r1, 0x20
- str r1, [sp, 0x1C]
- movs r2, 0
- str r2, [sp, 0x20]
-_0801995A:
- ldr r3, [sp, 0x1C]
- ldrb r0, [r3]
- cmp r0, 0x24
- beq _08019964
- b _08019AF6
-_08019964:
- ldr r0, _08019A28 @ =gUnknown_02024C98
- ldr r5, [sp, 0x20]
- adds r0, r5, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 13
- ands r1, r0
- str r5, [sp, 0x18]
- cmp r1, 0
- bne _0801997A
- b _08019AF6
-_0801997A:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- movs r1, 0x1
- adds r5, r0, 0
- eors r5, r1
- ands r5, r1
- adds r0, r5, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08019A2C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080199AE
- b _08019ABC
-_080199AE:
- movs r1, 0x58
- adds r0, r6, 0
- muls r0, r1
- ldr r3, _08019A24 @ =gBattleMons
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019A78
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019A34
- movs r1, 0x58
- adds r0, r7, 0
- muls r0, r1
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019A34
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019A34
- str r2, [sp, 0x24]
- bl Random
- ldr r2, [sp, 0x24]
- adds r1, r2, 0
- ands r1, r0
- lsls r1, 1
- orrs r5, r1
- adds r0, r5, 0
- bl battle_get_side_with_given_state
- mov r2, r8
- strb r0, [r2]
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- ldr r5, _08019A24 @ =gBattleMons
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r3
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r2, _08019A30 @ =byte_2024C06
- strb r0, [r2]
- b _08019AE4
- .align 2, 0
-_08019A1C: .4byte gUnknown_02024A68
-_08019A20: .4byte gUnknown_02024A60
-_08019A24: .4byte gBattleMons
-_08019A28: .4byte gUnknown_02024C98
-_08019A2C: .4byte gUnknown_020239F8
-_08019A30: .4byte byte_2024C06
-_08019A34:
- ldr r3, _08019A74 @ =gBattleMons
- movs r2, 0x58
- adds r0, r6, 0
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019A78
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019A78
- mov r5, r8
- strb r6, [r5]
- adds r1, r4, 0
- muls r1, r2
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- b _08019AE0
- .align 2, 0
-_08019A74: .4byte gBattleMons
-_08019A78:
- ldr r3, _08019AB8 @ =gBattleMons
- movs r2, 0x58
- adds r0, r7, 0
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019AEE
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019AEE
- mov r5, r8
- strb r7, [r5]
- adds r1, r4, 0
- muls r1, r2
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- b _08019AE0
- .align 2, 0
-_08019AB8: .4byte gBattleMons
-_08019ABC:
- mov r2, r8
- strb r6, [r2]
- movs r3, 0x58
- adds r0, r6, 0
- muls r0, r3
- ldr r5, _08019B10 @ =gBattleMons
- adds r0, r5
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- beq _08019AEE
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08019AEE
- ldr r0, [sp, 0x1C]
- strb r1, [r0]
- ldrb r0, [r2]
-_08019AE0:
- ldr r1, _08019B14 @ =byte_2024C06
- strb r0, [r1]
-_08019AE4:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019AEE:
- mov r2, r9
- cmp r2, 0
- beq _08019AF6
- b _08019E88
-_08019AF6:
- ldr r3, [sp, 0x1C]
- adds r3, 0x58
- str r3, [sp, 0x1C]
- ldr r5, [sp, 0x20]
- adds r5, 0x4
- str r5, [sp, 0x20]
- adds r4, 0x1
- ldr r0, _08019B18 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bge _08019B0E
- b _0801995A
-_08019B0E:
- b _08019F76
- .align 2, 0
-_08019B10: .4byte gBattleMons
-_08019B14: .4byte byte_2024C06
-_08019B18: .4byte gUnknown_02024A68
-_08019B1C:
- movs r4, 0
- ldr r0, _08019B54 @ =gUnknown_02024A68
- ldrb r1, [r0]
- cmp r4, r1
- blt _08019B28
- b _08019F76
-_08019B28:
- ldr r0, _08019B58 @ =gBattleMons
- adds r5, r1, 0
- ldr r2, _08019B5C @ =gUnknown_02024C98
- adds r3, r0, 0
- adds r3, 0x20
- movs r6, 0x80
- lsls r6, 12
-_08019B36:
- ldrb r1, [r3]
- cmp r1, 0x16
- bne _08019B46
- ldr r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _08019B46
- b _08019F04
-_08019B46:
- adds r2, 0x4
- adds r3, 0x58
- adds r4, 0x1
- cmp r4, r5
- blt _08019B36
- b _08019F76
- .align 2, 0
-_08019B54: .4byte gUnknown_02024A68
-_08019B58: .4byte gBattleMons
-_08019B5C: .4byte gUnknown_02024C98
-_08019B60:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019BB0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019B76
- b _08019F76
-_08019B76:
- ldr r7, _08019BB4 @ =gBattleMons
-_08019B78:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r0, r5
- beq _08019BA2
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019BA2
- ldr r0, _08019BB8 @ =byte_2024C06
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019BA2:
- adds r4, r3, 0
- ldr r0, _08019BB0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019B78
- b _08019F76
- .align 2, 0
-_08019BB0: .4byte gUnknown_02024A68
-_08019BB4: .4byte gBattleMons
-_08019BB8: .4byte byte_2024C06
-_08019BBC:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019C0C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019BD2
- b _08019F76
-_08019BD2:
- ldr r7, _08019C10 @ =gBattleMons
-_08019BD4:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r0, r5
- bne _08019BFE
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019BFE
- ldr r0, _08019C14 @ =byte_2024C06
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019BFE:
- adds r4, r3, 0
- ldr r0, _08019C0C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019BD4
- b _08019F76
- .align 2, 0
-_08019C0C: .4byte gUnknown_02024A68
-_08019C10: .4byte gBattleMons
-_08019C14: .4byte byte_2024C06
-_08019C18:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0xFD
- beq _08019C40
- cmp r0, 0xFE
- beq _08019C78
- movs r4, 0
- ldr r0, _08019C38 @ =gUnknown_02024A68
- adds r5, r0, 0
- ldrb r2, [r5]
- cmp r4, r2
- blt _08019C32
- b _08019F76
-_08019C32:
- ldr r2, _08019C3C @ =gBattleMons
- b _08019CB0
- .align 2, 0
-_08019C38: .4byte gUnknown_02024A68
-_08019C3C: .4byte gBattleMons
-_08019C40:
- movs r4, 0
- ldr r0, _08019C70 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019C4C
- b _08019F76
-_08019C4C:
- ldr r5, _08019C74 @ =gUnknown_02024C98
- movs r2, 0x80
- lsls r2, 9
- adds r1, r0, 0
-_08019C54:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- ands r0, r2
- adds r3, r4, 0x1
- cmp r0, 0
- beq _08019C68
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019C68:
- adds r4, r3, 0
- cmp r4, r1
- blt _08019C54
- b _08019F76
- .align 2, 0
-_08019C70: .4byte gUnknown_02024A68
-_08019C74: .4byte gUnknown_02024C98
-_08019C78:
- movs r4, 0
- ldr r0, _08019CA8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019C84
- b _08019F76
-_08019C84:
- ldr r5, _08019CAC @ =gUnknown_02024C98
- movs r2, 0x80
- lsls r2, 10
- adds r1, r0, 0
-_08019C8C:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- ands r0, r2
- adds r3, r4, 0x1
- cmp r0, 0
- beq _08019CA0
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019CA0:
- adds r4, r3, 0
- cmp r4, r1
- blt _08019C8C
- b _08019F76
- .align 2, 0
-_08019CA8: .4byte gUnknown_02024A68
-_08019CAC: .4byte gUnknown_02024C98
-_08019CB0:
- movs r0, 0x58
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _08019CCA
- mov r0, r8
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019CCA:
- adds r4, r3, 0
- ldrb r1, [r5]
- cmp r4, r1
- blt _08019CB0
- b _08019F76
-_08019CD4:
- movs r4, 0
- ldr r0, _08019D10 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019CE0
- b _08019F76
-_08019CE0:
- ldr r7, _08019D14 @ =gBattleMons
- adds r2, r0, 0
- movs r5, 0x58
-_08019CE6:
- adds r0, r4, 0
- muls r0, r5
- adds r1, r0, r7
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _08019D08
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019D08
- mov r0, r8
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019D08:
- adds r4, r3, 0
- cmp r4, r2
- blt _08019CE6
- b _08019F76
- .align 2, 0
-_08019D10: .4byte gUnknown_02024A68
-_08019D14: .4byte gBattleMons
-_08019D18:
- movs r4, 0
- ldr r0, _08019D50 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019D24
- b _08019F76
-_08019D24:
- ldr r7, _08019D54 @ =gBattleMons
- adds r1, r0, 0
- movs r5, 0x58
- ldr r2, _08019D58 @ =byte_2024C06
-_08019D2C:
- adds r0, r4, 0
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _08019D48
- cmp r4, r10
- beq _08019D48
- strb r6, [r2]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019D48:
- adds r4, r3, 0
- cmp r4, r1
- blt _08019D2C
- b _08019F76
- .align 2, 0
-_08019D50: .4byte gUnknown_02024A68
-_08019D54: .4byte gBattleMons
-_08019D58: .4byte byte_2024C06
-_08019D5C:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019DAC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019D72
- b _08019F76
-_08019D72:
- ldr r7, _08019DB0 @ =gBattleMons
-_08019D74:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _08019DA0
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019DA0
- ldr r0, _08019DB4 @ =byte_2024C06
- strb r6, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019DA0:
- adds r4, 0x1
- ldr r0, _08019DAC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019D74
- b _08019F76
- .align 2, 0
-_08019DAC: .4byte gUnknown_02024A68
-_08019DB0: .4byte gBattleMons
-_08019DB4: .4byte byte_2024C06
-_08019DB8:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019E08 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019DCE
- b _08019F76
-_08019DCE:
- ldr r7, _08019E0C @ =gBattleMons
-_08019DD0:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bne _08019DFC
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019DFC
- ldr r0, _08019E10 @ =byte_2024C06
- strb r6, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019DFC:
- adds r4, 0x1
- ldr r0, _08019E08 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019DD0
- b _08019F76
- .align 2, 0
-_08019E08: .4byte gUnknown_02024A68
-_08019E0C: .4byte gBattleMons
-_08019E10: .4byte byte_2024C06
-_08019E14:
- ldr r0, _08019E30 @ =gUnknown_081D977D
- bl b_push_move_exec
- ldr r0, _08019E34 @ =0x02000000
- ldr r2, _08019E38 @ =0x00016003
- adds r1, r0, r2
- strb r6, [r1]
- mov r1, r9
- subs r1, 0x1
- ldr r3, _08019E3C @ =0x0001609b
- adds r0, r3
- strb r1, [r0]
- b _08019F76
- .align 2, 0
-_08019E30: .4byte gUnknown_081D977D
-_08019E34: .4byte 0x02000000
-_08019E38: .4byte 0x00016003
-_08019E3C: .4byte 0x0001609b
-_08019E40:
- ldr r0, _08019E5C @ =gUnknown_081D977D
- bl b_push_move_exec
- ldr r0, _08019E60 @ =0x02000000
- ldr r5, _08019E64 @ =0x00016003
- adds r1, r0, r5
- mov r2, r10
- strb r2, [r1]
- mov r1, r9
- subs r1, 0x1
- ldr r3, _08019E68 @ =0x0001609b
- adds r0, r3
- strb r1, [r0]
- b _08019F92
- .align 2, 0
-_08019E5C: .4byte gUnknown_081D977D
-_08019E60: .4byte 0x02000000
-_08019E64: .4byte 0x00016003
-_08019E68: .4byte 0x0001609b
-_08019E6C:
- mov r5, r8
- strb r1, [r5]
- ldr r0, [r2]
- ldr r1, _08019E80 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _08019E84 @ =gUnknown_081D978C
- bl b_push_move_exec
- b _08019F1A
- .align 2, 0
-_08019E80: .4byte 0xfff7ffff
-_08019E84: .4byte gUnknown_081D978C
-_08019E88:
- ldr r0, _08019EDC @ =gUnknown_081D9726
- bl b_push_move_exec
- ldr r1, _08019EE0 @ =gUnknown_02024C98
- ldr r2, [sp, 0x18]
- adds r1, r2, r1
- ldr r0, [r1]
- ldr r2, _08019EE4 @ =0xffefffff
- ands r0, r2
- str r0, [r1]
- ldr r0, _08019EE8 @ =0x02000000
- ldr r3, _08019EEC @ =0x00016003
- adds r0, r3
- strb r4, [r0]
- ldr r1, _08019EF0 @ =gUnknown_030041C0
- movs r4, 0xFD
- strb r4, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r2, _08019EF4 @ =gUnknown_02024A60
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _08019EF8 @ =gUnknown_02024A6A
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08019EFC @ =gUnknown_03004290
- strb r4, [r1]
- movs r0, 0x9
- strb r0, [r1, 0x1]
- ldr r0, _08019F00 @ =byte_2024C06
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x3]
- b _08019F76
- .align 2, 0
-_08019EDC: .4byte gUnknown_081D9726
-_08019EE0: .4byte gUnknown_02024C98
-_08019EE4: .4byte 0xffefffff
-_08019EE8: .4byte 0x02000000
-_08019EEC: .4byte 0x00016003
-_08019EF0: .4byte gUnknown_030041C0
-_08019EF4: .4byte gUnknown_02024A60
-_08019EF8: .4byte gUnknown_02024A6A
-_08019EFC: .4byte gUnknown_03004290
-_08019F00: .4byte byte_2024C06
-_08019F04:
- mov r5, r8
- strb r1, [r5]
- ldr r0, [r2]
- ldr r1, _08019F30 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019F34 @ =gUnknown_02024C10
- ldr r0, _08019F38 @ =gUnknown_081D9795
- str r0, [r1]
-_08019F1A:
- ldr r0, _08019F3C @ =0x02000000
- ldr r1, _08019F40 @ =0x000160dd
- adds r0, r1
- strb r4, [r0]
-_08019F22:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- b _08019F76
- .align 2, 0
-_08019F30: .4byte 0xfff7ffff
-_08019F34: .4byte gUnknown_02024C10
-_08019F38: .4byte gUnknown_081D9795
-_08019F3C: .4byte 0x02000000
-_08019F40: .4byte 0x000160dd
-_08019F44:
- movs r4, 0
- ldr r0, _08019FA4 @ =gUnknown_02024A68
- ldrb r1, [r0]
- cmp r4, r1
- bge _08019F76
- ldr r0, _08019FA8 @ =gBattleMons
- adds r2, r1, 0
- adds r1, r0, 0
- adds r1, 0x20
- ldr r3, _08019FAC @ =byte_2024C06
-_08019F58:
- ldrb r0, [r1]
- cmp r0, r6
- bne _08019F6E
- cmp r4, r10
- beq _08019F6E
- strb r6, [r3]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019F6E:
- adds r1, 0x58
- adds r4, 0x1
- cmp r4, r2
- blt _08019F58
-_08019F76:
- mov r2, r9
- cmp r2, 0
- beq _08019F92
-_08019F7C:
- ldr r3, [sp, 0x4]
- cmp r3, 0xB
- bhi _08019F92
- ldr r1, _08019FAC @ =byte_2024C06
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08019F92
- adds r1, r0, 0
- mov r0, r10
- bl sub_81074C4
-_08019F92:
- mov r0, r9
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08019FA4: .4byte gUnknown_02024A68
-_08019FA8: .4byte gBattleMons
-_08019FAC: .4byte byte_2024C06
- thumb_func_end sub_8018324
-
- thumb_func_start b_call_bc_move_exec
-b_call_bc_move_exec: @ 8019FB0
- ldr r1, _08019FD8 @ =gUnknown_02024C10
- str r0, [r1]
- ldr r3, _08019FDC @ =0x02017140
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r2, _08019FE0 @ =gUnknown_030042D4
- ldr r1, [r2]
- str r1, [r0]
- ldr r0, _08019FE4 @ =sub_8013F54
- str r0, [r2]
- ldr r1, _08019FE8 @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08019FD8: .4byte gUnknown_02024C10
-_08019FDC: .4byte 0x02017140
-_08019FE0: .4byte gUnknown_030042D4
-_08019FE4: .4byte sub_8013F54
-_08019FE8: .4byte gUnknown_02024A7F
- thumb_func_end b_call_bc_move_exec
-
- thumb_func_start b_push_move_exec
-b_push_move_exec: @ 8019FEC
- push {r4,lr}
- adds r4, r0, 0
- bl b_movescr_stack_push_cursor
- ldr r0, _0801A01C @ =gUnknown_02024C10
- str r4, [r0]
- ldr r3, _0801A020 @ =0x02017140
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r2, _0801A024 @ =gUnknown_030042D4
- ldr r1, [r2]
- str r1, [r0]
- ldr r0, _0801A028 @ =sub_8013FBC
- str r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A01C: .4byte gUnknown_02024C10
-_0801A020: .4byte 0x02017140
-_0801A024: .4byte gUnknown_030042D4
-_0801A028: .4byte sub_8013FBC
- thumb_func_end b_push_move_exec
-
- thumb_func_start sub_801A02C
-sub_801A02C: @ 801A02C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r0, 0
- mov r10, r0
- movs r1, 0
- str r1, [sp, 0xC]
- add r0, sp, 0x4
- strb r1, [r0]
- ldr r4, _0801A078 @ =gUnknown_02024C04
- ldr r1, _0801A07C @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0801A084
- ldr r1, _0801A080 @ =gEnigmaBerries
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- ldrb r0, [r0, 0x1A]
- b _0801A098
- .align 2, 0
-_0801A078: .4byte gUnknown_02024C04
-_0801A07C: .4byte gBattleMons
-_0801A080: .4byte gEnigmaBerries
-_0801A084:
- ldrh r0, [r4]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0801A098:
- mov r9, r0
- ldr r1, _0801A0C0 @ =gBattleMons
- ldr r0, _0801A0C4 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- str r0, [sp, 0x14]
- cmp r0, 0xAF
- bne _0801A0CC
- ldr r1, _0801A0C8 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- mov r8, r3
- ldrb r0, [r0, 0x1A]
- b _0801A0E2
- .align 2, 0
-_0801A0C0: .4byte gBattleMons
-_0801A0C4: .4byte gUnknown_02024C07
-_0801A0C8: .4byte gEnigmaBerries
-_0801A0CC:
- ldr r0, [sp, 0x14]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, [sp, 0x14]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0801A0E2:
- str r0, [sp, 0x10]
- ldr r2, _0801A118 @ =gBattleMons
- ldr r0, _0801A11C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- cmp r4, 0xAF
- beq _0801A102
- adds r0, r4, 0
- bl ItemId_GetHoldEffect
- adds r0, r4, 0
- bl ItemId_GetHoldEffectParam
-_0801A102:
- ldr r4, [sp, 0x8]
- cmp r4, 0x4
- bls _0801A10C
- bl _0801B3CA
-_0801A10C:
- lsls r0, r4, 2
- ldr r1, _0801A120 @ =_0801A124
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A118: .4byte gBattleMons
-_0801A11C: .4byte gUnknown_02024C08
-_0801A120: .4byte _0801A124
- .align 2, 0
-_0801A124:
- .4byte _0801A138
- .4byte _0801A1D4
- .4byte _0801B3CA
- .4byte _0801AE0C
- .4byte _0801B26C
-_0801A138:
- cmp r5, 0x17
- beq _0801A15C
- cmp r5, 0x20
- beq _0801A144
- bl _0801B3CA
-_0801A144:
- ldr r0, _0801A154 @ =0x02000000
- ldr r5, _0801A158 @ =0x00016056
- adds r0, r5
- movs r1, 0x2
- strb r1, [r0]
- bl _0801B3CA
- .align 2, 0
-_0801A154: .4byte 0x02000000
-_0801A158: .4byte 0x00016056
-_0801A15C:
- ldr r0, _0801A1B8 @ =gBattleMons
- mov r8, r0
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r3, 0x7
- mov r10, r3
-_0801A172:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0801A180
- strb r2, [r1]
- movs r4, 0x5
- str r4, [sp, 0xC]
-_0801A180:
- adds r1, 0x1
- movs r5, 0x1
- negs r5, r5
- add r10, r5
- mov r0, r10
- cmp r0, 0
- bge _0801A172
- ldr r1, [sp, 0xC]
- cmp r1, 0
- bne _0801A198
- bl _0801B3CA
-_0801A198:
- ldr r0, _0801A1BC @ =0x02000000
- ldr r2, _0801A1C0 @ =0x00016003
- adds r0, r2
- strb r7, [r0]
- ldr r0, _0801A1C4 @ =gUnknown_02024C0B
- strb r7, [r0]
- ldr r1, _0801A1C8 @ =gUnknown_02024A60
- ldr r0, _0801A1CC @ =gUnknown_02024C07
- strb r7, [r0]
- strb r7, [r1]
- ldr r0, _0801A1D0 @ =gUnknown_081D9A5E
- bl b_call_bc_move_exec
- bl _0801B3CA
- .align 2, 0
-_0801A1B8: .4byte gBattleMons
-_0801A1BC: .4byte 0x02000000
-_0801A1C0: .4byte 0x00016003
-_0801A1C4: .4byte gUnknown_02024C0B
-_0801A1C8: .4byte gUnknown_02024A60
-_0801A1CC: .4byte gUnknown_02024C07
-_0801A1D0: .4byte gUnknown_081D9A5E
-_0801A1D4:
- ldr r1, _0801A1FC @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x28]
- mov r8, r1
- cmp r0, 0
- bne _0801A1E8
- bl _0801B3CA
-_0801A1E8:
- subs r0, r5, 0x1
- cmp r0, 0x2A
- bls _0801A1F2
- bl _0801AD5A
-_0801A1F2:
- lsls r0, 2
- ldr r1, _0801A200 @ =_0801A204
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A1FC: .4byte gBattleMons
-_0801A200: .4byte _0801A204
- .align 2, 0
-_0801A204:
- .4byte _0801A2B0
- .4byte _0801AAC8
- .4byte _0801AB84
- .4byte _0801AAF8
- .4byte _0801AB2C
- .4byte _0801AB5C
- .4byte _0801A2F8
- .4byte _0801ABC8
- .4byte _0801ABF8
- .4byte _0801A4CC
- .4byte _0801A548
- .4byte _0801A5C4
- .4byte _0801A634
- .4byte _0801A6C8
- .4byte _0801A75C
- .4byte _0801A7D4
- .4byte _0801A838
- .4byte _0801A89C
- .4byte _0801A900
- .4byte _0801A97C
- .4byte _0801A9C8
- .4byte _0801AD5A
- .4byte _0801A3F8
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD24
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801A46C
-_0801A2B0:
- movs r0, 0x58
- muls r0, r7
- mov r3, r8
- adds r2, r0, r3
- ldrh r0, [r2, 0x2C]
- ldrh r1, [r2, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A2C6
- bl _0801AD5A
-_0801A2C6:
- cmp r6, 0
- beq _0801A2CE
- bl _0801AD5A
-_0801A2CE:
- ldr r4, _0801A2F0 @ =gUnknown_02024BEC
- mov r5, r9
- str r5, [r4]
- ldrh r3, [r2, 0x28]
- adds r0, r3, r5
- ldrh r1, [r2, 0x2C]
- cmp r0, r1
- ble _0801A2E2
- subs r0, r1, r3
- str r0, [r4]
-_0801A2E2:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- ldr r0, _0801A2F4 @ =gUnknown_081D9A74
- bl b_call_bc_move_exec
- b _0801A752
- .align 2, 0
-_0801A2F0: .4byte gUnknown_02024BEC
-_0801A2F4: .4byte gUnknown_081D9A74
-_0801A2F8:
- cmp r6, 0
- beq _0801A300
- bl _0801AD5A
-_0801A300:
- adds r0, r7, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801A324
- ldr r1, _0801A31C @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801A320 @ =gPlayerParty
- b _0801A332
- .align 2, 0
-_0801A31C: .4byte gUnknown_02024A6A
-_0801A320: .4byte gPlayerParty
-_0801A324:
- ldr r1, _0801A3A0 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801A3A4 @ =gEnemyParty
-_0801A332:
- adds r4, r1, r0
- movs r1, 0
- mov r10, r1
- add r5, sp, 0x4
-_0801A33A:
- mov r1, r10
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r10
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r6, 0
- beq _0801A36A
- ldrb r0, [r5]
- cmp r0, 0
- beq _0801A374
-_0801A36A:
- movs r2, 0x1
- add r10, r2
- mov r3, r10
- cmp r3, 0x3
- ble _0801A33A
-_0801A374:
- mov r4, r10
- cmp r4, 0x4
- bne _0801A37E
- bl _0801AD5A
-_0801A37E:
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r2, r0, 24
- add r0, sp, 0x4
- ldrb r0, [r0]
- mov r5, r9
- adds r1, r0, r5
- cmp r1, r2
- ble _0801A3A8
- add r0, sp, 0x4
- strb r2, [r0]
- b _0801A3AC
- .align 2, 0
-_0801A3A0: .4byte gUnknown_02024A6A
-_0801A3A4: .4byte gEnemyParty
-_0801A3A8:
- add r0, sp, 0x4
- strb r1, [r0]
-_0801A3AC:
- ldr r1, _0801A3EC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r6, [r1, 0x2]
- lsrs r0, r6, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r0, _0801A3F0 @ =gUnknown_081D9A91
- bl b_call_bc_move_exec
- mov r1, r10
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- add r0, sp, 0x4
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldr r0, _0801A3F4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r1, 0x3
- str r1, [sp, 0xC]
- bl _0801AD62
- .align 2, 0
-_0801A3EC: .4byte gUnknown_030041C0
-_0801A3F0: .4byte gUnknown_081D9A91
-_0801A3F4: .4byte gUnknown_02024A60
-_0801A3F8:
- ldr r0, _0801A450 @ =gBattleMons
- movs r1, 0x58
- muls r1, r7
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r3, 0x7
- mov r10, r3
-_0801A408:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0801A416
- strb r2, [r1]
- movs r4, 0x5
- str r4, [sp, 0xC]
-_0801A416:
- adds r1, 0x1
- movs r5, 0x1
- negs r5, r5
- add r10, r5
- mov r0, r10
- cmp r0, 0
- bge _0801A408
- movs r1, 0x8
- mov r10, r1
- ldr r2, [sp, 0xC]
- cmp r2, 0
- bne _0801A432
- bl _0801B3CA
-_0801A432:
- ldr r0, _0801A454 @ =0x02000000
- ldr r3, _0801A458 @ =0x00016003
- adds r0, r3
- strb r7, [r0]
- ldr r0, _0801A45C @ =gUnknown_02024C0B
- strb r7, [r0]
- ldr r1, _0801A460 @ =gUnknown_02024A60
- ldr r0, _0801A464 @ =gUnknown_02024C07
- strb r7, [r0]
- strb r7, [r1]
- ldr r0, _0801A468 @ =gUnknown_081D9A5E
- bl b_call_bc_move_exec
- bl _0801AD5A
- .align 2, 0
-_0801A450: .4byte gBattleMons
-_0801A454: .4byte 0x02000000
-_0801A458: .4byte 0x00016003
-_0801A45C: .4byte gUnknown_02024C0B
-_0801A460: .4byte gUnknown_02024A60
-_0801A464: .4byte gUnknown_02024C07
-_0801A468: .4byte gUnknown_081D9A5E
-_0801A46C:
- movs r0, 0x58
- muls r0, r7
- mov r4, r8
- adds r1, r0, r4
- ldrh r0, [r1, 0x28]
- ldrh r2, [r1, 0x2C]
- cmp r0, r2
- bcc _0801A480
- bl _0801AD5A
-_0801A480:
- cmp r6, 0
- beq _0801A488
- bl _0801AD5A
-_0801A488:
- ldr r3, _0801A4C4 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 4
- str r0, [r3]
- cmp r0, 0
- bne _0801A498
- movs r0, 0x1
- str r0, [r3]
-_0801A498:
- ldrh r2, [r1, 0x28]
- ldr r0, [r3]
- adds r0, r2, r0
- ldrh r1, [r1, 0x2C]
- cmp r0, r1
- ble _0801A4A8
- subs r0, r1, r2
- str r0, [r3]
-_0801A4A8:
- ldr r0, [r3]
- negs r0, r0
- str r0, [r3]
- ldr r0, _0801A4C8 @ =gUnknown_081D9AA1
- bl b_call_bc_move_exec
- movs r3, 0x4
- str r3, [sp, 0xC]
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_81074F8
- bl _0801AD5A
- .align 2, 0
-_0801A4C4: .4byte gUnknown_02024BEC
-_0801A4C8: .4byte gUnknown_081D9AA1
-_0801A4CC:
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- str r4, [sp, 0x18]
- add r4, r8
- ldrh r0, [r4, 0x2C]
- ldrh r1, [r4, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A4E4
- bl _0801AD5A
-_0801A4E4:
- cmp r6, 0
- beq _0801A4EC
- bl _0801AD5A
-_0801A4EC:
- ldr r1, _0801A540 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- strb r6, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r5, _0801A544 @ =gUnknown_02024BEC
- ldrh r0, [r4, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _0801A510
- movs r0, 0x1
- str r0, [r5]
-_0801A510:
- ldrh r2, [r4, 0x28]
- ldr r0, [r5]
- adds r0, r2, r0
- ldrh r1, [r4, 0x2C]
- cmp r0, r1
- ble _0801A520
- subs r0, r1, r2
- str r0, [r5]
-_0801A520:
- ldr r0, [r5]
- negs r0, r0
- str r0, [r5]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x18]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0
-_0801A532:
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- bge _0801A53E
- b _0801A738
-_0801A53E:
- b _0801A74C
- .align 2, 0
-_0801A540: .4byte gUnknown_030041C0
-_0801A544: .4byte gUnknown_02024BEC
-_0801A548:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- str r1, [sp, 0x1C]
- adds r5, r1, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A562
- bl _0801AD5A
-_0801A562:
- cmp r6, 0
- beq _0801A56A
- bl _0801AD5A
-_0801A56A:
- ldr r1, _0801A5BC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r6, 0x1
- strb r6, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A5C0 @ =gUnknown_02024BEC
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A58E
- str r6, [r4]
-_0801A58E:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A59E
- subs r0, r1, r2
- str r0, [r4]
-_0801A59E:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r2, [sp, 0x1C]
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x1
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- blt _0801A6A4
- b _0801A6B8
- .align 2, 0
-_0801A5BC: .4byte gUnknown_030041C0
-_0801A5C0: .4byte gUnknown_02024BEC
-_0801A5C4:
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- str r4, [sp, 0x20]
- adds r5, r4, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A5DC
- b _0801AD5A
-_0801A5DC:
- cmp r6, 0
- beq _0801A5E2
- b _0801AD5A
-_0801A5E2:
- ldr r1, _0801A62C @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A630 @ =gUnknown_02024BEC
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A608
- movs r0, 0x1
- str r0, [r4]
-_0801A608:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A618
- subs r0, r1, r2
- str r0, [r4]
-_0801A618:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x20]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x2
- b _0801A532
- .align 2, 0
-_0801A62C: .4byte gUnknown_030041C0
-_0801A630: .4byte gUnknown_02024BEC
-_0801A634:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- str r1, [sp, 0x24]
- adds r5, r1, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A64C
- b _0801AD5A
-_0801A64C:
- cmp r6, 0
- beq _0801A652
- b _0801AD5A
-_0801A652:
- ldr r1, _0801A6AC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x3
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A6B0 @ =gUnknown_02024BEC
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A678
- movs r0, 0x1
- str r0, [r4]
-_0801A678:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A688
- subs r0, r1, r2
- str r0, [r4]
-_0801A688:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r2, [sp, 0x24]
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x3
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- bge _0801A6B8
-_0801A6A4:
- ldr r0, _0801A6B4 @ =gUnknown_081D9AD4
- bl b_call_bc_move_exec
- b _0801A6BE
- .align 2, 0
-_0801A6AC: .4byte gUnknown_030041C0
-_0801A6B0: .4byte gUnknown_02024BEC
-_0801A6B4: .4byte gUnknown_081D9AD4
-_0801A6B8:
- ldr r0, _0801A6C4 @ =gUnknown_081D9A74
- bl b_call_bc_move_exec
-_0801A6BE:
- movs r3, 0x4
- str r3, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A6C4: .4byte gUnknown_081D9A74
-_0801A6C8:
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- str r4, [sp, 0x28]
- adds r5, r4, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A6E0
- b _0801AD5A
-_0801A6E0:
- cmp r6, 0
- beq _0801A6E6
- b _0801AD5A
-_0801A6E6:
- ldr r1, _0801A740 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A744 @ =gUnknown_02024BEC
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A70C
- movs r0, 0x1
- str r0, [r4]
-_0801A70C:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A71C
- subs r0, r1, r2
- str r0, [r4]
-_0801A71C:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x28]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x4
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- bge _0801A74C
-_0801A738:
- ldr r0, _0801A748 @ =gUnknown_081D9AD4
- bl b_call_bc_move_exec
- b _0801A752
- .align 2, 0
-_0801A740: .4byte gUnknown_030041C0
-_0801A744: .4byte gUnknown_02024BEC
-_0801A748: .4byte gUnknown_081D9AD4
-_0801A74C:
- ldr r0, _0801A758 @ =gUnknown_081D9A74
- bl b_call_bc_move_exec
-_0801A752:
- movs r0, 0x4
- str r0, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A758: .4byte gUnknown_081D9A74
-_0801A75C:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A774
- b _0801AD5A
-_0801A774:
- cmp r6, 0
- beq _0801A77A
- b _0801AD5A
-_0801A77A:
- movs r0, 0x19
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A784
- b _0801AD5A
-_0801A784:
- ldr r1, _0801A7BC @ =gUnknown_030041C0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x1
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _0801A7C0 @ =gUnknown_03004290
- strb r2, [r1]
- strb r6, [r1, 0x1]
- movs r0, 0xD2
- strb r0, [r1, 0x2]
- strb r6, [r1, 0x3]
- subs r0, 0xD3
- strb r0, [r1, 0x4]
- ldr r0, _0801A7C4 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A7C8 @ =0x02000000
- ldr r3, _0801A7CC @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x11
- strb r0, [r2]
- ldr r4, _0801A7D0 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0xF
- b _0801A94C
- .align 2, 0
-_0801A7BC: .4byte gUnknown_030041C0
-_0801A7C0: .4byte gUnknown_03004290
-_0801A7C4: .4byte gUnknown_02024C0A
-_0801A7C8: .4byte 0x02000000
-_0801A7CC: .4byte 0x0001601e
-_0801A7D0: .4byte 0x000160a4
-_0801A7D4:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A7EC
- b _0801AD5A
-_0801A7EC:
- cmp r6, 0
- beq _0801A7F2
- b _0801AD5A
-_0801A7F2:
- movs r0, 0x1A
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A7FC
- b _0801AD5A
-_0801A7FC:
- ldr r1, _0801A824 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A828 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A82C @ =0x02000000
- ldr r3, _0801A830 @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x12
- strb r0, [r2]
- ldr r4, _0801A834 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x10
- b _0801A94C
- .align 2, 0
-_0801A824: .4byte gUnknown_030041C0
-_0801A828: .4byte gUnknown_02024C0A
-_0801A82C: .4byte 0x02000000
-_0801A830: .4byte 0x0001601e
-_0801A834: .4byte 0x000160a4
-_0801A838:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A850
- b _0801AD5A
-_0801A850:
- cmp r6, 0
- beq _0801A856
- b _0801AD5A
-_0801A856:
- movs r0, 0x1B
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A860
- b _0801AD5A
-_0801A860:
- ldr r1, _0801A888 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x3
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A88C @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A890 @ =0x02000000
- ldr r3, _0801A894 @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x13
- strb r0, [r2]
- ldr r4, _0801A898 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x11
- b _0801A94C
- .align 2, 0
-_0801A888: .4byte gUnknown_030041C0
-_0801A88C: .4byte gUnknown_02024C0A
-_0801A890: .4byte 0x02000000
-_0801A894: .4byte 0x0001601e
-_0801A898: .4byte 0x000160a4
-_0801A89C:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A8B4
- b _0801AD5A
-_0801A8B4:
- cmp r6, 0
- beq _0801A8BA
- b _0801AD5A
-_0801A8BA:
- movs r0, 0x1C
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A8C4
- b _0801AD5A
-_0801A8C4:
- ldr r1, _0801A8EC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A8F0 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A8F4 @ =0x02000000
- ldr r3, _0801A8F8 @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x14
- strb r0, [r2]
- ldr r4, _0801A8FC @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x12
- b _0801A94C
- .align 2, 0
-_0801A8EC: .4byte gUnknown_030041C0
-_0801A8F0: .4byte gUnknown_02024C0A
-_0801A8F4: .4byte 0x02000000
-_0801A8F8: .4byte 0x0001601e
-_0801A8FC: .4byte 0x000160a4
-_0801A900:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A918
- b _0801AD5A
-_0801A918:
- cmp r6, 0
- beq _0801A91E
- b _0801AD5A
-_0801A91E:
- movs r0, 0x1D
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A928
- b _0801AD5A
-_0801A928:
- ldr r1, _0801A960 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A964 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A968 @ =0x02000000
- ldr r3, _0801A96C @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x15
- strb r0, [r2]
- ldr r4, _0801A970 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x13
-_0801A94C:
- strb r0, [r2]
- ldr r5, _0801A974 @ =0x000160a5
- adds r1, r5
- strb r6, [r1]
- ldr r0, _0801A978 @ =gUnknown_081D9AFE
- bl b_call_bc_move_exec
- movs r0, 0x5
- str r0, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A960: .4byte gUnknown_030041C0
-_0801A964: .4byte gUnknown_02024C0A
-_0801A968: .4byte 0x02000000
-_0801A96C: .4byte 0x0001601e
-_0801A970: .4byte 0x000160a4
-_0801A974: .4byte 0x000160a5
-_0801A978: .4byte gUnknown_081D9AFE
-_0801A97C:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r1, r8
- adds r0, r5, r1
- ldrh r4, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A996
- b _0801AD5A
-_0801A996:
- cmp r6, 0
- beq _0801A99C
- b _0801AD5A
-_0801A99C:
- mov r0, r8
- adds r0, 0x50
- adds r1, r5, r0
- ldr r2, [r1]
- movs r3, 0x80
- lsls r3, 13
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _0801A9B2
- b _0801AD5A
-_0801A9B2:
- orrs r2, r3
- str r2, [r1]
- ldr r0, _0801A9C4 @ =gUnknown_081D9B19
- bl b_call_bc_move_exec
- movs r2, 0x2
- str r2, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A9C4: .4byte gUnknown_081D9B19
-_0801A9C8:
- cmp r6, 0
- beq _0801A9CE
- b _0801AD5A
-_0801A9CE:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r3, r8
- adds r0, r5, r3
- ldrh r4, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A9E8
- b _0801AD5A
-_0801A9E8:
- movs r4, 0
- mov r10, r4
- adds r0, r5, 0x1
- mov r1, r8
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- ble _0801AA18
- mov r0, r8
- adds r0, 0x19
- adds r1, r5, r0
-_0801AA04:
- adds r1, 0x1
- movs r5, 0x1
- add r10, r5
- mov r0, r10
- cmp r0, 0x4
- bgt _0801AA18
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0801AA04
-_0801AA18:
- mov r1, r10
- cmp r1, 0x5
- bne _0801AA20
- b _0801AD5A
-_0801AA20:
- movs r0, 0x58
- muls r0, r7
- adds r4, r0, 0x1
- ldr r5, _0801AAA4 @ =gUnknown_02024A98
-_0801AA28:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xC
- beq _0801AA28
- ldr r1, _0801AAA8 @ =gUnknown_030041C0
- movs r3, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- mov r0, r10
- adds r0, 0x1
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801AAAC @ =gUnknown_03004290
- strb r2, [r0]
- strb r3, [r0, 0x1]
- movs r1, 0xD1
- strb r1, [r0, 0x2]
- strb r3, [r0, 0x3]
- strb r3, [r0, 0x4]
- movs r1, 0xD2
- strb r1, [r0, 0x5]
- strb r3, [r0, 0x6]
- subs r1, 0xD3
- strb r1, [r0, 0x7]
- ldr r0, _0801AAB0 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801AAB4 @ =0x02000000
- mov r2, r10
- adds r2, 0x21
- ldr r4, _0801AAB8 @ =0x0001601e
- adds r0, r1, r4
- strb r2, [r0]
- adds r2, 0x6
- ldr r5, _0801AABC @ =0x000160a4
- adds r0, r1, r5
- strb r2, [r0]
- ldr r0, _0801AAC0 @ =0x000160a5
- adds r1, r0
- strb r3, [r1]
- ldr r0, _0801AAC4 @ =gUnknown_081D9AFE
- bl b_call_bc_move_exec
- movs r1, 0x5
- str r1, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AAA4: .4byte gUnknown_02024A98
-_0801AAA8: .4byte gUnknown_030041C0
-_0801AAAC: .4byte gUnknown_03004290
-_0801AAB0: .4byte gUnknown_02024C0A
-_0801AAB4: .4byte 0x02000000
-_0801AAB8: .4byte 0x0001601e
-_0801AABC: .4byte 0x000160a4
-_0801AAC0: .4byte 0x000160a5
-_0801AAC4: .4byte gUnknown_081D9AFE
-_0801AAC8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _0801AAE0
- b _0801AD5A
-_0801AAE0:
- movs r0, 0x41
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AAF4 @ =gUnknown_081D99B6
- bl b_call_bc_move_exec
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AAF4: .4byte gUnknown_081D99B6
-_0801AAF8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x88
- ands r0, r2
- cmp r0, 0
- bne _0801AB10
- b _0801AD5A
-_0801AB10:
- ldr r0, _0801AB24 @ =0xfffff077
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AB28 @ =gUnknown_081D99CE
- bl b_call_bc_move_exec
- movs r3, 0x1
- str r3, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AB24: .4byte 0xfffff077
-_0801AB28: .4byte gUnknown_081D99CE
-_0801AB2C:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _0801AB44
- b _0801AD5A
-_0801AB44:
- movs r0, 0x11
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AB58 @ =gUnknown_081D99E6
- bl b_call_bc_move_exec
- movs r4, 0x1
- str r4, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AB58: .4byte gUnknown_081D99E6
-_0801AB5C:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _0801AB74
- b _0801AD5A
-_0801AB74:
- movs r0, 0x21
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AB80 @ =gUnknown_081D99FE
- b _0801AD0E
- .align 2, 0
-_0801AB80: .4byte gUnknown_081D99FE
-_0801AB84:
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- mov r0, r8
- adds r0, 0x4C
- adds r2, r3, r0
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801AB9C
- b _0801AD5A
-_0801AB9C:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- mov r1, r8
- adds r1, 0x50
- adds r1, r3, r1
- ldr r0, [r1]
- ldr r2, _0801ABC0 @ =0xf7ffffff
- ands r0, r2
- str r0, [r1]
- ldr r0, _0801ABC4 @ =gUnknown_081D9A16
- bl b_call_bc_move_exec
- movs r0, 0x1
- str r0, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801ABC0: .4byte 0xf7ffffff
-_0801ABC4: .4byte gUnknown_081D9A16
-_0801ABC8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x50
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x7
- ands r0, r2
- cmp r0, 0
- bne _0801ABE0
- b _0801AD5A
-_0801ABE0:
- movs r0, 0x8
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801ABF4 @ =gUnknown_081D9A2E
- bl b_call_bc_move_exec
- movs r1, 0x2
- str r1, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801ABF4: .4byte gUnknown_081D9A2E
-_0801ABF8:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r0, r8
- adds r0, 0x4C
- adds r4, r5, r0
- ldr r2, [r4]
- ldrb r0, [r4]
- cmp r0, 0
- bne _0801AC1E
- mov r0, r8
- adds r0, 0x50
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801AC1E
- b _0801AD5A
-_0801AC1E:
- movs r3, 0
- mov r10, r3
- movs r0, 0x88
- ands r2, r0
- cmp r2, 0
- beq _0801AC36
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACC8 @ =gStatusConditionString_PoisonJpn
- bl StringCopy
- movs r0, 0x1
- mov r10, r0
-_0801AC36:
- ldr r0, [r4]
- movs r1, 0x7
- mov r9, r1
- ands r0, r1
- mov r6, r8
- adds r6, 0x50
- cmp r0, 0
- beq _0801AC5C
- adds r2, r5, r6
- ldr r0, [r2]
- ldr r1, _0801ACCC @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACD0 @ =gStatusConditionString_SleepJpn
- bl StringCopy
- movs r2, 0x1
- add r10, r2
-_0801AC5C:
- ldr r0, [r4]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801AC72
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACD4 @ =gStatusConditionString_ParalysisJpn
- bl StringCopy
- movs r3, 0x1
- add r10, r3
-_0801AC72:
- ldr r0, [r4]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801AC88
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACD8 @ =gStatusConditionString_BurnJpn
- bl StringCopy
- movs r0, 0x1
- add r10, r0
-_0801AC88:
- ldr r0, [r4]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801AC9E
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACDC @ =gStatusConditionString_IceJpn
- bl StringCopy
- movs r1, 0x1
- add r10, r1
-_0801AC9E:
- adds r0, r5, r6
- ldr r0, [r0]
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- beq _0801ACB6
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACE0 @ =gStatusConditionString_ConfusionJpn
- bl StringCopy
- movs r3, 0x1
- add r10, r3
-_0801ACB6:
- mov r4, r10
- cmp r4, 0x1
- bgt _0801ACE8
- ldr r1, _0801ACE4 @ =gUnknown_02024D1E
- movs r0, 0
- b _0801ACEC
- .align 2, 0
-_0801ACC4: .4byte gUnknown_030041C0
-_0801ACC8: .4byte gStatusConditionString_PoisonJpn
-_0801ACCC: .4byte 0xf7ffffff
-_0801ACD0: .4byte gStatusConditionString_SleepJpn
-_0801ACD4: .4byte gStatusConditionString_ParalysisJpn
-_0801ACD8: .4byte gStatusConditionString_BurnJpn
-_0801ACDC: .4byte gStatusConditionString_IceJpn
-_0801ACE0: .4byte gStatusConditionString_ConfusionJpn
-_0801ACE4: .4byte gUnknown_02024D1E
-_0801ACE8:
- ldr r1, _0801AD18 @ =gUnknown_02024D1E
- movs r0, 0x1
-_0801ACEC:
- strb r0, [r1, 0x5]
- ldr r2, _0801AD1C @ =gBattleMons
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- movs r1, 0
- str r1, [r0]
- adds r2, 0x50
- adds r3, r2
- ldr r0, [r3]
- subs r1, 0x8
- ands r0, r1
- str r0, [r3]
- ldr r0, _0801AD20 @ =gUnknown_081D9A44
-_0801AD0E:
- bl b_call_bc_move_exec
- movs r5, 0x1
- str r5, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AD18: .4byte gUnknown_02024D1E
-_0801AD1C: .4byte gBattleMons
-_0801AD20: .4byte gUnknown_081D9A44
-_0801AD24:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x50
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r2
- cmp r0, 0
- beq _0801AD5A
- ldr r0, _0801AD84 @ =0xfff0ffff
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AD88 @ =gUnknown_030041C0
- ldr r1, _0801AD8C @ =gStatusConditionString_LoveJpn
- bl StringCopy
- ldr r0, _0801AD90 @ =gUnknown_081D9A44
- bl b_call_bc_move_exec
- ldr r1, _0801AD94 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0x2
- str r0, [sp, 0xC]
-_0801AD5A:
- ldr r1, [sp, 0xC]
- cmp r1, 0
- bne _0801AD62
- b _0801B3CA
-_0801AD62:
- ldr r0, _0801AD98 @ =0x02000000
- ldr r2, _0801AD9C @ =0x00016003
- adds r0, r2
- strb r7, [r0]
- ldr r0, _0801ADA0 @ =gUnknown_02024C0B
- strb r7, [r0]
- ldr r4, _0801ADA4 @ =gUnknown_02024A60
- ldr r0, _0801ADA8 @ =gUnknown_02024C07
- strb r7, [r0]
- strb r7, [r4]
- ldr r3, [sp, 0xC]
- cmp r3, 0x1
- beq _0801ADAC
- cmp r3, 0x3
- beq _0801ADB2
- b _0801B3CA
- .align 2, 0
-_0801AD84: .4byte 0xfff0ffff
-_0801AD88: .4byte gUnknown_030041C0
-_0801AD8C: .4byte gStatusConditionString_LoveJpn
-_0801AD90: .4byte gUnknown_081D9A44
-_0801AD94: .4byte gUnknown_02024D1E
-_0801AD98: .4byte 0x02000000
-_0801AD9C: .4byte 0x00016003
-_0801ADA0: .4byte gUnknown_02024C0B
-_0801ADA4: .4byte gUnknown_02024A60
-_0801ADA8: .4byte gUnknown_02024C07
-_0801ADAC:
- movs r0, 0x58
- muls r0, r7
- b _0801B224
-_0801ADB2:
- ldr r4, _0801AE00 @ =gBattleMons
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- beq _0801ADCE
- b _0801B3CA
-_0801ADCE:
- ldr r1, _0801AE04 @ =gUnknown_02024CA8
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0801AE08 @ =gBitTable
- mov r5, r10
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801ADEE
- b _0801B3CA
-_0801ADEE:
- adds r1, r5, r3
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- add r0, sp, 0x4
- ldrb r0, [r0]
- strb r0, [r1]
- b _0801B3CA
- .align 2, 0
-_0801AE00: .4byte gBattleMons
-_0801AE04: .4byte gUnknown_02024CA8
-_0801AE08: .4byte gBitTable
-_0801AE0C:
- movs r7, 0
- ldr r0, _0801AE3C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcc _0801AE18
- b _0801B3CA
-_0801AE18:
- ldr r4, _0801AE40 @ =gUnknown_02024C04
- ldr r1, _0801AE44 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0801AE4C
- ldr r1, _0801AE48 @ =gEnigmaBerries
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- b _0801AE5C
- .align 2, 0
-_0801AE3C: .4byte gUnknown_02024A68
-_0801AE40: .4byte gUnknown_02024C04
-_0801AE44: .4byte gBattleMons
-_0801AE48: .4byte gEnigmaBerries
-_0801AE4C:
- ldrh r0, [r4]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4]
- bl ItemId_GetHoldEffectParam
-_0801AE5C:
- subs r0, r5, 0x2
- cmp r0, 0x1A
- bls _0801AE64
- b _0801B208
-_0801AE64:
- lsls r0, 2
- ldr r1, _0801AE70 @ =_0801AE74
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801AE70: .4byte _0801AE74
- .align 2, 0
-_0801AE74:
- .4byte _0801AEE0
- .4byte _0801AFC8
- .4byte _0801AF1C
- .4byte _0801AF58
- .4byte _0801AF94
- .4byte _0801B208
- .4byte _0801B018
- .4byte _0801B0AC
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B1A0
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B054
-_0801AEE0:
- ldr r1, _0801AF10 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0801AEF6
- b _0801B208
-_0801AEF6:
- movs r0, 0x41
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AF14 @ =gUnknown_02024C10
- ldr r0, _0801AF18 @ =gUnknown_081D99BC
- str r0, [r1]
- movs r0, 0x1
- str r0, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801AF10: .4byte gBattleMons
-_0801AF14: .4byte gUnknown_02024C10
-_0801AF18: .4byte gUnknown_081D99BC
-_0801AF1C:
- ldr r1, _0801AF48 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0801AF32
- b _0801B208
-_0801AF32:
- ldr r0, _0801AF4C @ =0xfffff077
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AF50 @ =gUnknown_02024C10
- ldr r0, _0801AF54 @ =gUnknown_081D99D4
- str r0, [r1]
- movs r1, 0x1
- str r1, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801AF48: .4byte gBattleMons
-_0801AF4C: .4byte 0xfffff077
-_0801AF50: .4byte gUnknown_02024C10
-_0801AF54: .4byte gUnknown_081D99D4
-_0801AF58:
- ldr r1, _0801AF88 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0801AF6E
- b _0801B208
-_0801AF6E:
- movs r0, 0x11
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AF8C @ =gUnknown_02024C10
- ldr r0, _0801AF90 @ =gUnknown_081D99EC
- str r0, [r1]
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801AF88: .4byte gBattleMons
-_0801AF8C: .4byte gUnknown_02024C10
-_0801AF90: .4byte gUnknown_081D99EC
-_0801AF94:
- ldr r1, _0801AFBC @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801AFAA
- b _0801B208
-_0801AFAA:
- movs r0, 0x21
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AFC0 @ =gUnknown_02024C10
- ldr r0, _0801AFC4 @ =gUnknown_081D9A04
- b _0801B168
- .align 2, 0
-_0801AFBC: .4byte gBattleMons
-_0801AFC0: .4byte gUnknown_02024C10
-_0801AFC4: .4byte gUnknown_081D9A04
-_0801AFC8:
- ldr r2, _0801B008 @ =gBattleMons
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r3, r4, r0
- ldr r1, [r3]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801AFE2
- b _0801B208
-_0801AFE2:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r3]
- adds r2, 0x50
- adds r2, r4, r2
- ldr r0, [r2]
- ldr r1, _0801B00C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B010 @ =gUnknown_02024C10
- ldr r0, _0801B014 @ =gUnknown_081D9A1C
- str r0, [r1]
- movs r4, 0x1
- str r4, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B008: .4byte gBattleMons
-_0801B00C: .4byte 0xf7ffffff
-_0801B010: .4byte gUnknown_02024C10
-_0801B014: .4byte gUnknown_081D9A1C
-_0801B018:
- ldr r1, _0801B048 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801B02E
- b _0801B208
-_0801B02E:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B04C @ =gUnknown_02024C10
- ldr r0, _0801B050 @ =gUnknown_081D9A34
- str r0, [r1]
- movs r5, 0x2
- str r5, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B048: .4byte gBattleMons
-_0801B04C: .4byte gUnknown_02024C10
-_0801B050: .4byte gUnknown_081D9A34
-_0801B054:
- ldr r1, _0801B090 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- bne _0801B06C
- b _0801B208
-_0801B06C:
- ldr r0, _0801B094 @ =0xfff0ffff
- ands r1, r0
- str r1, [r2]
- ldr r0, _0801B098 @ =gUnknown_030041C0
- ldr r1, _0801B09C @ =gStatusConditionString_LoveJpn
- bl StringCopy
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B0A0 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- ldr r1, _0801B0A4 @ =gUnknown_02024C10
- ldr r0, _0801B0A8 @ =gUnknown_081D9A4A
- str r0, [r1]
- movs r0, 0x2
- str r0, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B090: .4byte gBattleMons
-_0801B094: .4byte 0xfff0ffff
-_0801B098: .4byte gUnknown_030041C0
-_0801B09C: .4byte gStatusConditionString_LoveJpn
-_0801B0A0: .4byte gUnknown_02024D1E
-_0801B0A4: .4byte gUnknown_02024C10
-_0801B0A8: .4byte gUnknown_081D9A4A
-_0801B0AC:
- ldr r4, _0801B170 @ =gBattleMons
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- adds r0, r4, 0
- adds r0, 0x4C
- adds r6, r5, r0
- ldr r2, [r6]
- ldrb r0, [r6]
- cmp r0, 0
- bne _0801B0D4
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801B0D4
- b _0801B208
-_0801B0D4:
- movs r0, 0x88
- ands r2, r0
- cmp r2, 0
- beq _0801B0E4
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B178 @ =gStatusConditionString_PoisonJpn
- bl StringCopy
-_0801B0E4:
- ldr r0, [r6]
- movs r1, 0x7
- mov r8, r1
- ands r0, r1
- adds r4, 0x50
- cmp r0, 0
- beq _0801B104
- adds r2, r5, r4
- ldr r0, [r2]
- ldr r1, _0801B17C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B180 @ =gStatusConditionString_SleepJpn
- bl StringCopy
-_0801B104:
- ldr r0, [r6]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801B116
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B184 @ =gStatusConditionString_ParalysisJpn
- bl StringCopy
-_0801B116:
- ldr r0, [r6]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801B128
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B188 @ =gStatusConditionString_BurnJpn
- bl StringCopy
-_0801B128:
- ldr r0, [r6]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801B13A
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B18C @ =gStatusConditionString_IceJpn
- bl StringCopy
-_0801B13A:
- adds r5, r4
- ldr r0, [r5]
- mov r2, r8
- ands r0, r2
- cmp r0, 0
- beq _0801B14E
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B190 @ =gStatusConditionString_ConfusionJpn
- bl StringCopy
-_0801B14E:
- movs r4, 0
- str r4, [r6]
- ldr r0, [r5]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r5]
- bl b_movescr_stack_push_cursor
- ldr r0, _0801B194 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r1, _0801B198 @ =gUnknown_02024C10
- ldr r0, _0801B19C @ =gUnknown_081D9A4A
-_0801B168:
- str r0, [r1]
- movs r3, 0x1
- str r3, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B170: .4byte gBattleMons
-_0801B174: .4byte gUnknown_030041C0
-_0801B178: .4byte gStatusConditionString_PoisonJpn
-_0801B17C: .4byte 0xf7ffffff
-_0801B180: .4byte gStatusConditionString_SleepJpn
-_0801B184: .4byte gStatusConditionString_ParalysisJpn
-_0801B188: .4byte gStatusConditionString_BurnJpn
-_0801B18C: .4byte gStatusConditionString_IceJpn
-_0801B190: .4byte gStatusConditionString_ConfusionJpn
-_0801B194: .4byte gUnknown_02024D1E
-_0801B198: .4byte gUnknown_02024C10
-_0801B19C: .4byte gUnknown_081D9A4A
-_0801B1A0:
- ldr r4, _0801B1F0 @ =gBattleMons
- mov r8, r4
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r5, 0x7
- mov r10, r5
-_0801B1B6:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0801B1C4
- strb r2, [r1]
- movs r0, 0x5
- str r0, [sp, 0xC]
-_0801B1C4:
- adds r1, 0x1
- movs r3, 0x1
- negs r3, r3
- add r10, r3
- mov r4, r10
- cmp r4, 0
- bge _0801B1B6
- ldr r5, [sp, 0xC]
- cmp r5, 0
- beq _0801B254
- ldr r0, _0801B1F4 @ =0x02000000
- ldr r1, _0801B1F8 @ =0x00016003
- adds r0, r1
- strb r7, [r0]
- ldr r0, _0801B1FC @ =gUnknown_02024C0B
- strb r7, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B200 @ =gUnknown_02024C10
- ldr r0, _0801B204 @ =gUnknown_081D9A64
- str r0, [r1]
- b _0801B3CA
- .align 2, 0
-_0801B1F0: .4byte gBattleMons
-_0801B1F4: .4byte 0x02000000
-_0801B1F8: .4byte 0x00016003
-_0801B1FC: .4byte gUnknown_02024C0B
-_0801B200: .4byte gUnknown_02024C10
-_0801B204: .4byte gUnknown_081D9A64
-_0801B208:
- ldr r2, [sp, 0xC]
- cmp r2, 0
- beq _0801B254
-_0801B20E:
- ldr r0, _0801B240 @ =0x02000000
- ldr r3, _0801B244 @ =0x00016003
- adds r0, r3
- strb r7, [r0]
- ldr r0, _0801B248 @ =gUnknown_02024C0B
- strb r7, [r0]
- ldr r4, _0801B24C @ =gUnknown_02024A60
- strb r7, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
-_0801B224:
- ldr r1, _0801B250 @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0801B3CA
- .align 2, 0
-_0801B240: .4byte 0x02000000
-_0801B244: .4byte 0x00016003
-_0801B248: .4byte gUnknown_02024C0B
-_0801B24C: .4byte gUnknown_02024A60
-_0801B250: .4byte gUnknown_02024ACC
-_0801B254:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0801B268 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcs _0801B264
- b _0801AE18
-_0801B264:
- b _0801B3CA
- .align 2, 0
-_0801B268: .4byte gUnknown_02024A68
-_0801B26C:
- ldr r7, _0801B284 @ =gUnknown_02024BEC
- ldr r0, [r7]
- cmp r0, 0
- bne _0801B276
- b _0801B3CA
-_0801B276:
- mov r4, r8
- cmp r4, 0x1E
- beq _0801B288
- cmp r4, 0x3E
- beq _0801B330
- b _0801B3CA
- .align 2, 0
-_0801B284: .4byte gUnknown_02024BEC
-_0801B288:
- ldr r0, _0801B314 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801B296
- b _0801B3CA
-_0801B296:
- ldr r2, _0801B318 @ =gUnknown_02024D68
- ldr r4, _0801B31C @ =gUnknown_02024C08
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801B2BC
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801B2BC
- b _0801B3CA
-_0801B2BC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r9
- bcs _0801B3CA
- ldr r2, _0801B320 @ =gBattleMoves
- ldr r0, _0801B324 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801B3CA
- ldr r2, _0801B328 @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B3CA
- ldr r1, _0801B32C @ =gUnknown_02024D1E
- movs r0, 0x8
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- bl b_movescr_stack_pop_cursor
- b _0801B3CA
- .align 2, 0
-_0801B314: .4byte gUnknown_02024C68
-_0801B318: .4byte gUnknown_02024D68
-_0801B31C: .4byte gUnknown_02024C08
-_0801B320: .4byte gBattleMoves
-_0801B324: .4byte gUnknown_02024BE6
-_0801B328: .4byte gBattleMons
-_0801B32C: .4byte gUnknown_02024D1E
-_0801B330:
- ldr r0, _0801B3DC @ =gUnknown_02024C68
- ldrb r0, [r0]
- movs r4, 0x29
- ands r4, r0
- cmp r4, 0
- bne _0801B3CA
- ldr r1, _0801B3E0 @ =gUnknown_02024D68
- ldr r5, _0801B3E4 @ =gUnknown_02024C08
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r6, r1, 0x4
- adds r0, r6
- ldr r1, [r0]
- cmp r1, 0
- beq _0801B3CA
- ldr r0, _0801B3E8 @ =0x0000ffff
- cmp r1, r0
- beq _0801B3CA
- ldr r0, _0801B3EC @ =gUnknown_02024C07
- ldrb r3, [r0]
- cmp r3, r2
- beq _0801B3CA
- ldr r2, _0801B3F0 @ =gBattleMons
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- beq _0801B3CA
- cmp r1, 0
- beq _0801B3CA
- ldr r0, _0801B3F4 @ =gUnknown_02024C04
- mov r1, sp
- ldrh r1, [r1, 0x14]
- strh r1, [r0]
- ldr r0, _0801B3F8 @ =gUnknown_02024C0B
- strb r3, [r0]
- ldr r0, _0801B3FC @ =0x02000000
- ldr r2, _0801B400 @ =0x00016003
- adds r0, r2
- strb r3, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldr r1, [sp, 0x10]
- bl __divsi3
- negs r0, r0
- str r0, [r7]
- ldrb r1, [r5]
- cmp r0, 0
- bne _0801B3AC
- movs r0, 0x1
- negs r0, r0
- str r0, [r7]
-_0801B3AC:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- str r4, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B404 @ =gUnknown_02024C10
- ldr r0, _0801B408 @ =gUnknown_081D9AA7
- str r0, [r1]
- ldr r0, [sp, 0xC]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
-_0801B3CA:
- ldr r0, [sp, 0xC]
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801B3DC: .4byte gUnknown_02024C68
-_0801B3E0: .4byte gUnknown_02024D68
-_0801B3E4: .4byte gUnknown_02024C08
-_0801B3E8: .4byte 0x0000ffff
-_0801B3EC: .4byte gUnknown_02024C07
-_0801B3F0: .4byte gBattleMons
-_0801B3F4: .4byte gUnknown_02024C04
-_0801B3F8: .4byte gUnknown_02024C0B
-_0801B3FC: .4byte 0x02000000
-_0801B400: .4byte 0x00016003
-_0801B404: .4byte gUnknown_02024C10
-_0801B408: .4byte gUnknown_081D9AA7
- thumb_func_end sub_801A02C
-
- thumb_func_start unref_sub_801B40C
-unref_sub_801B40C: @ 801B40C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- str r0, [sp]
- ldr r0, _0801B464 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801B42A
- b _0801B56E
-_0801B42A:
- movs r1, 0x1
- mov r9, r1
-_0801B42E:
- movs r5, 0
- ldr r4, _0801B468 @ =gUnknown_081FC1D0
- ldr r2, [sp]
- adds r2, 0x1
- str r2, [sp, 0x4]
-_0801B438:
- ldr r0, _0801B46C @ =gUnknown_02024C0C
- ldrb r2, [r0]
- ldr r3, _0801B470 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r3
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _0801B45A
- adds r0, r5, 0x2
- lsls r1, r0, 2
- adds r1, r3
- ldr r1, [r1]
- ands r2, r1
- adds r7, r0, 0
- cmp r2, 0
- beq _0801B474
-_0801B45A:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- b _0801B556
- .align 2, 0
-_0801B464: .4byte gUnknown_020239F8
-_0801B468: .4byte gUnknown_081FC1D0
-_0801B46C: .4byte gUnknown_02024C0C
-_0801B470: .4byte gBitTable
-_0801B474:
- ldr r0, _0801B580 @ =gUnknown_081FC1D0
- ldr r2, [sp]
- lsls r1, r2, 3
- adds r6, r1, r0
- ldr r4, _0801B584 @ =gUnknown_02024C60
- lsls r0, r5, 1
- adds r3, r0, r4
- ldrh r2, [r6]
- mov r8, r1
- mov r10, r0
- ldrh r3, [r3]
- cmp r2, r3
- bne _0801B4E4
- lsls r0, r7, 1
- adds r0, r4
- ldrh r1, [r6, 0x2]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0801B4E4
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r2, r9
- ands r2, r0
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r0, _0801B588 @ =gUnknown_02024C80
- adds r1, r0
- lsls r0, r7, 4
- orrs r0, r5
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r1, r9
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0801B588 @ =gUnknown_02024C80
- adds r0, r1
- ldrh r1, [r6, 0x4]
- strh r1, [r0, 0x4]
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r1, r9
- ands r1, r0
- lsls r1, 1
- ldr r2, _0801B58C @ =gUnknown_02024C7A
- adds r1, r2
- ldrh r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strh r0, [r1]
-_0801B4E4:
- ldr r0, _0801B580 @ =gUnknown_081FC1D0
- mov r1, r8
- adds r4, r1, r0
- ldr r2, _0801B584 @ =gUnknown_02024C60
- lsls r0, r7, 1
- adds r0, r2
- ldrh r1, [r4]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0801B54E
- mov r0, r10
- adds r1, r0, r2
- ldrh r0, [r4, 0x2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _0801B54E
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r2, r9
- ands r2, r0
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r2, _0801B588 @ =gUnknown_02024C80
- adds r1, r2
- lsls r0, r5, 4
- orrs r0, r7
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r1, r9
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0801B588 @ =gUnknown_02024C80
- adds r0, r1
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x4]
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r1, r9
- ands r1, r0
- lsls r1, 1
- ldr r2, _0801B58C @ =gUnknown_02024C7A
- adds r1, r2
- ldrh r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strh r0, [r1]
-_0801B54E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0801B580 @ =gUnknown_081FC1D0
-_0801B556:
- cmp r5, 0x1
- bhi _0801B55C
- b _0801B438
-_0801B55C:
- ldr r0, [sp, 0x4]
- str r0, [sp]
- lsls r0, 3
- adds r0, r4
- ldrh r1, [r0]
- ldr r0, _0801B590 @ =0x0000ffff
- cmp r1, r0
- beq _0801B56E
- b _0801B42E
-_0801B56E:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801B580: .4byte gUnknown_081FC1D0
-_0801B584: .4byte gUnknown_02024C60
-_0801B588: .4byte gUnknown_02024C80
-_0801B58C: .4byte gUnknown_02024C7A
-_0801B590: .4byte 0x0000ffff
- thumb_func_end unref_sub_801B40C
-
- thumb_func_start sub_801B594
-sub_801B594: @ 801B594
- push {lr}
- ldr r0, _0801B5B4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801B5B0
- ldr r1, _0801B5B8 @ =gUnknown_081FA73C
- ldr r0, _0801B5BC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_0801B5B0:
- pop {r0}
- bx r0
- .align 2, 0
-_0801B5B4: .4byte gUnknown_02024A64
-_0801B5B8: .4byte gUnknown_081FA73C
-_0801B5BC: .4byte gUnknown_02024C10
- thumb_func_end sub_801B594
-
- thumb_func_start sub_801B5C0
-sub_801B5C0: @ 801B5C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 24
- lsrs r0, r1, 24
- movs r5, 0
- cmp r0, 0
- beq _0801B5DE
- subs r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _0801B5EA
-_0801B5DE:
- ldr r1, _0801B5FC @ =gBattleMoves
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x6]
-_0801B5EA:
- cmp r6, 0x40
- bls _0801B5F0
- b _0801B900
-_0801B5F0:
- lsls r0, r6, 2
- ldr r1, _0801B600 @ =_0801B604
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801B5FC: .4byte gBattleMoves
-_0801B600: .4byte _0801B604
- .align 2, 0
-_0801B604:
- .4byte _0801B708
- .4byte _0801B808
- .4byte _0801B8FC
- .4byte _0801B900
- .4byte _0801B820
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B808
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B8FC
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B808
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B808
-_0801B708:
- ldr r0, _0801B7E8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801B7EC @ =gUnknown_02024C80
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0801B73A
- ldr r1, _0801B7F0 @ =gBattleMons
- ldrb r4, [r2, 0x9]
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B73A
- b _0801B850
-_0801B73A:
- ldr r0, _0801B7E8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r7, 1
- mov r8, r0
-_0801B74A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0801B7F4 @ =gUnknown_02024A68
- ldrb r1, [r1]
- bl __modsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0801B7E8 @ =gUnknown_02024C07
- ldrb r2, [r6]
- cmp r5, r2
- beq _0801B74A
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _0801B74A
- ldr r0, _0801B7F8 @ =gUnknown_02024C0C
- ldrb r2, [r0]
- ldr r1, _0801B7FC @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _0801B74A
- ldr r0, _0801B800 @ =gBattleMoves
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x2]
- cmp r0, 0xD
- beq _0801B798
- b _0801B900
-_0801B798:
- ldrb r1, [r6]
- str r2, [sp]
- movs r0, 0x10
- movs r2, 0x1F
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801B7AE
- b _0801B900
-_0801B7AE:
- ldr r2, _0801B7F0 @ =gBattleMons
- movs r1, 0x58
- adds r0, r5, 0
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1F
- bne _0801B7C2
- b _0801B900
-_0801B7C2:
- movs r4, 0x2
- eors r5, r4
- adds r0, r5, 0
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_81074C4
- ldr r1, _0801B804 @ =gUnknown_02024D68
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- orrs r1, r4
- strb r1, [r0]
- b _0801B900
- .align 2, 0
-_0801B7E8: .4byte gUnknown_02024C07
-_0801B7EC: .4byte gUnknown_02024C80
-_0801B7F0: .4byte gBattleMons
-_0801B7F4: .4byte gUnknown_02024A68
-_0801B7F8: .4byte gUnknown_02024C0C
-_0801B7FC: .4byte gBitTable
-_0801B800: .4byte gBattleMoves
-_0801B804: .4byte gUnknown_02024D68
-_0801B808:
- ldr r0, _0801B81C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- b _0801B8B2
- .align 2, 0
-_0801B81C: .4byte gUnknown_02024C07
-_0801B820:
- ldr r0, _0801B854 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801B858 @ =gUnknown_02024C80
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0801B860
- ldr r1, _0801B85C @ =gBattleMons
- ldrb r4, [r2, 0x9]
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B860
-_0801B850:
- adds r5, r4, 0
- b _0801B900
- .align 2, 0
-_0801B854: .4byte gUnknown_02024C07
-_0801B858: .4byte gUnknown_02024C80
-_0801B85C: .4byte gBattleMons
-_0801B860:
- ldr r0, _0801B894 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0801B8DC
- movs r0, 0x4
- ands r6, r0
- cmp r6, 0
- beq _0801B8DC
- ldr r0, _0801B898 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801B8A0
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _0801B89C
- movs r0, 0x1
- b _0801B8B2
- .align 2, 0
-_0801B894: .4byte gUnknown_020239F8
-_0801B898: .4byte gUnknown_02024C07
-_0801B89C:
- movs r0, 0x3
- b _0801B8B2
-_0801B8A0:
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _0801B8B0
- movs r0, 0
- b _0801B8B2
-_0801B8B0:
- movs r0, 0x2
-_0801B8B2:
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0801B8D4 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0801B8D8 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801B900
- movs r0, 0x2
- eors r5, r0
- b _0801B900
- .align 2, 0
-_0801B8D4: .4byte gUnknown_02024C0C
-_0801B8D8: .4byte gBitTable
-_0801B8DC:
- ldr r0, _0801B8F8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- b _0801B900
- .align 2, 0
-_0801B8F8: .4byte gUnknown_02024C07
-_0801B8FC:
- ldr r0, _0801B91C @ =gUnknown_02024C07
- ldrb r5, [r0]
-_0801B900:
- ldr r1, _0801B920 @ =0x02000000
- ldr r0, _0801B91C @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _0801B924 @ =0x00016010
- adds r0, r2
- adds r0, r1
- strb r5, [r0]
- adds r0, r5, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801B91C: .4byte gUnknown_02024C07
-_0801B920: .4byte 0x02000000
-_0801B924: .4byte 0x00016010
- thumb_func_end sub_801B5C0
-
- thumb_func_start sub_801B928
-sub_801B928: @ 801B928
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r0, _0801B9E0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0801B9DA
- ldr r7, _0801B9E4 @ =gUnknown_02024C07
- ldrb r0, [r7]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0801B9DA
- ldr r5, _0801B9E8 @ =gBattleMons
- ldrb r0, [r7]
- movs r1, 0x58
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r5, 0
- adds r0, 0x54
- adds r0, r1, r0
- ldr r0, [r0]
- adds r2, r5, 0
- adds r2, 0x3C
- adds r1, r2
- bl sub_8040AD0
- lsls r0, 24
- cmp r0, 0
- beq _0801B9DA
- ldr r0, _0801B9EC @ =0x0000080e
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0801B9DA
- movs r6, 0xA
- ldr r0, _0801B9F0 @ =0x00000808
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0801B98E
- movs r6, 0x1E
-_0801B98E:
- ldr r0, _0801B9F4 @ =0x0000080a
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0801B99C
- movs r6, 0x32
-_0801B99C:
- ldr r0, _0801B9F8 @ =0x0000080c
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0801B9AA
- movs r6, 0x46
-_0801B9AA:
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r5
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, r6
- bls _0801B9DA
- bl Random
- movs r1, 0xFF
- ands r1, r0
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, r5
- adds r0, 0x2A
- ldrb r0, [r0]
- adds r0, r6
- muls r0, r1
- asrs r4, r0, 8
- cmp r4, r6
- bge _0801B9FC
-_0801B9DA:
- movs r0, 0
- b _0801BC24
- .align 2, 0
-_0801B9E0: .4byte gUnknown_020239F8
-_0801B9E4: .4byte gUnknown_02024C07
-_0801B9E8: .4byte gBattleMons
-_0801B9EC: .4byte 0x0000080e
-_0801B9F0: .4byte 0x00000808
-_0801B9F4: .4byte 0x0000080a
-_0801B9F8: .4byte 0x0000080c
-_0801B9FC:
- ldr r3, _0801BA3C @ =gUnknown_02024BE6
- ldrh r0, [r3]
- cmp r0, 0x63
- bne _0801BA12
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r2, _0801BA40 @ =0xff7fffff
- ands r1, r2
- str r1, [r0]
-_0801BA12:
- ldrb r0, [r7]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r1, r5, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801BA4C
- ldrh r0, [r3]
- cmp r0, 0xAD
- beq _0801BA34
- cmp r0, 0xD6
- bne _0801BA4C
-_0801BA34:
- ldr r1, _0801BA44 @ =gUnknown_02024C10
- ldr r0, _0801BA48 @ =gUnknown_081D995F
- b _0801BBCE
- .align 2, 0
-_0801BA3C: .4byte gUnknown_02024BE6
-_0801BA40: .4byte 0xff7fffff
-_0801BA44: .4byte gUnknown_02024C10
-_0801BA48: .4byte gUnknown_081D995F
-_0801BA4C:
- bl Random
- movs r5, 0xFF
- adds r1, r5, 0
- ands r1, r0
- ldr r7, _0801BB04 @ =gBattleMons
- ldr r2, _0801BB08 @ =gUnknown_02024C07
- mov r9, r2
- ldrb r3, [r2]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r3
- adds r0, r7
- adds r0, 0x2A
- ldrb r2, [r0]
- adds r0, r2, r6
- muls r0, r1
- asrs r4, r0, 8
- cmp r4, r6
- bge _0801BB3C
- ldr r7, _0801BB0C @ =gBitTable
- ldr r5, _0801BB10 @ =gUnknown_02024BE4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0]
- adds r0, r3, 0
- movs r2, 0xFF
- bl sub_8015A98
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bne _0801BA94
- b _0801BBBE
-_0801BA94:
- adds r6, r5, 0
- ldr r1, _0801BB14 @ =gUnknown_02024BE5
- mov r9, r1
- movs r2, 0x3
- mov r8, r2
-_0801BA9E:
- bl Random
- mov r1, r8
- ands r0, r1
- mov r2, r9
- strb r0, [r2]
- strb r0, [r6]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r7
- ldr r5, [r0]
- ands r5, r4
- cmp r5, 0
- bne _0801BA9E
- ldr r4, _0801BB18 @ =gUnknown_02024BEA
- ldr r3, _0801BB04 @ =gBattleMons
- ldr r0, _0801BB10 @ =gUnknown_02024BE4
- ldrb r0, [r0]
- lsls r0, 1
- ldr r1, _0801BB08 @ =gUnknown_02024C07
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r4]
- ldr r0, _0801BB1C @ =gUnknown_02024D1E
- strb r5, [r0, 0x3]
- ldr r0, _0801BB20 @ =gUnknown_02024DEC
- movs r1, 0
- strh r5, [r0]
- ldr r0, _0801BB24 @ =0x02000000
- ldr r2, _0801BB28 @ =0x0001601c
- adds r0, r2
- strb r1, [r0]
- ldr r1, _0801BB2C @ =gUnknown_02024C10
- ldr r0, _0801BB30 @ =gUnknown_081D996F
- str r0, [r1]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0801BB34 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r2, _0801BB38 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 14
- b _0801BC1E
- .align 2, 0
-_0801BB04: .4byte gBattleMons
-_0801BB08: .4byte gUnknown_02024C07
-_0801BB0C: .4byte gBitTable
-_0801BB10: .4byte gUnknown_02024BE4
-_0801BB14: .4byte gUnknown_02024BE5
-_0801BB18: .4byte gUnknown_02024BEA
-_0801BB1C: .4byte gUnknown_02024D1E
-_0801BB20: .4byte gUnknown_02024DEC
-_0801BB24: .4byte 0x02000000
-_0801BB28: .4byte 0x0001601c
-_0801BB2C: .4byte gUnknown_02024C10
-_0801BB30: .4byte gUnknown_081D996F
-_0801BB34: .4byte gUnknown_02024C08
-_0801BB38: .4byte gUnknown_02024C6C
-_0801BB3C:
- subs r0, r2, r6
- lsls r0, 24
- lsrs r6, r0, 24
- bl Random
- adds r4, r5, 0
- ands r4, r0
- cmp r4, r6
- bge _0801BBB8
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r7, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _0801BBB8
- adds r0, r1, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- beq _0801BBB8
- cmp r0, 0xF
- beq _0801BBB8
- movs r2, 0
- ldr r0, _0801BBAC @ =gUnknown_02024A68
- ldrb r3, [r0]
- mov r8, r0
- cmp r2, r3
- bge _0801BB9E
- ldr r0, [r7, 0x50]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- bne _0801BB9E
- adds r1, r7, 0
- adds r1, 0x50
- movs r5, 0x70
-_0801BB8E:
- adds r1, 0x58
- adds r2, 0x1
- cmp r2, r3
- bge _0801BB9E
- ldr r0, [r1]
- ands r0, r5
- cmp r0, 0
- beq _0801BB8E
-_0801BB9E:
- mov r0, r8
- ldrb r0, [r0]
- cmp r2, r0
- bne _0801BBB8
- ldr r1, _0801BBB0 @ =gUnknown_02024C10
- ldr r0, _0801BBB4 @ =gUnknown_081D9989
- b _0801BBCE
- .align 2, 0
-_0801BBAC: .4byte gUnknown_02024A68
-_0801BBB0: .4byte gUnknown_02024C10
-_0801BBB4: .4byte gUnknown_081D9989
-_0801BBB8:
- subs r4, r6
- cmp r4, r6
- blt _0801BBE0
-_0801BBBE:
- bl Random
- ldr r2, _0801BBD4 @ =gUnknown_02024D1E
- movs r1, 0x3
- ands r1, r0
- strb r1, [r2, 0x5]
- ldr r1, _0801BBD8 @ =gUnknown_02024C10
- ldr r0, _0801BBDC @ =gUnknown_081D9977
-_0801BBCE:
- str r0, [r1]
- movs r0, 0x1
- b _0801BC24
- .align 2, 0
-_0801BBD4: .4byte gUnknown_02024D1E
-_0801BBD8: .4byte gUnknown_02024C10
-_0801BBDC: .4byte gUnknown_081D9977
-_0801BBE0:
- ldr r4, _0801BC34 @ =gUnknown_02024C07
- ldrb r1, [r4]
- movs r0, 0x58
- muls r1, r0
- ldr r0, _0801BC38 @ =gBattleMons
- adds r1, r0
- movs r0, 0x28
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldrb r0, [r4]
- str r0, [sp, 0x8]
- ldrb r0, [r4]
- str r0, [sp, 0xC]
- adds r0, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl CalculateBaseDamage
- ldr r1, _0801BC3C @ =gUnknown_02024BEC
- str r0, [r1]
- ldr r1, _0801BC40 @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r1]
- ldr r1, _0801BC44 @ =gUnknown_02024C10
- ldr r0, _0801BC48 @ =gUnknown_081D99A0
- str r0, [r1]
- ldr r2, _0801BC4C @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
-_0801BC1E:
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x2
-_0801BC24:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801BC34: .4byte gUnknown_02024C07
-_0801BC38: .4byte gBattleMons
-_0801BC3C: .4byte gUnknown_02024BEC
-_0801BC40: .4byte gUnknown_02024C08
-_0801BC44: .4byte gUnknown_02024C10
-_0801BC48: .4byte gUnknown_081D99A0
-_0801BC4C: .4byte gUnknown_02024C6C
- thumb_func_end sub_801B928
-
- thumb_func_start atk00_attackcanceler
-atk00_attackcanceler: @ 801BC50
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r0, _0801BC6C @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801BC74
- ldr r1, _0801BC70 @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
- b _0801BFF4
- .align 2, 0
-_0801BC6C: .4byte gUnknown_02024D26
-_0801BC70: .4byte gUnknown_02024A7F
-_0801BC74:
- ldr r2, _0801BCA4 @ =gBattleMons
- ldr r0, _0801BCA8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801BCB8
- ldr r2, _0801BCAC @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0801BCB8
- movs r0, 0x80
- lsls r0, 12
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801BCB0 @ =gUnknown_02024C10
- ldr r0, _0801BCB4 @ =BattleScript_1D6F62
- b _0801BFF2
- .align 2, 0
-_0801BCA4: .4byte gBattleMons
-_0801BCA8: .4byte gUnknown_02024C07
-_0801BCAC: .4byte gUnknown_02024C6C
-_0801BCB0: .4byte gUnknown_02024C10
-_0801BCB4: .4byte BattleScript_1D6F62
-_0801BCB8:
- bl sub_8017718
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0801BCC6
- b _0801BFF4
-_0801BCC6:
- ldr r0, _0801BD34 @ =gUnknown_02024C08
- ldrb r1, [r0]
- str r2, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0801BCDE
- b _0801BFF4
-_0801BCDE:
- ldr r4, _0801BD38 @ =gBattleMons
- ldr r0, _0801BD3C @ =gUnknown_02024BE4
- ldrb r1, [r0]
- ldr r3, _0801BD40 @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- muls r2, r0
- adds r1, r2
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- ldr r5, _0801BD44 @ =gUnknown_02024C6C
- cmp r0, 0
- bne _0801BD5C
- ldr r0, _0801BD48 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xA5
- beq _0801BD5C
- ldr r0, [r5]
- ldr r1, _0801BD4C @ =0x00800200
- ands r0, r1
- cmp r0, 0
- bne _0801BD5C
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0801BD5C
- ldr r1, _0801BD50 @ =gUnknown_02024C10
- ldr r0, _0801BD54 @ =gUnknown_081D936D
- str r0, [r1]
- ldr r2, _0801BD58 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- b _0801BFF4
- .align 2, 0
-_0801BD34: .4byte gUnknown_02024C08
-_0801BD38: .4byte gBattleMons
-_0801BD3C: .4byte gUnknown_02024BE4
-_0801BD40: .4byte gUnknown_02024C07
-_0801BD44: .4byte gUnknown_02024C6C
-_0801BD48: .4byte gUnknown_02024BE6
-_0801BD4C: .4byte 0x00800200
-_0801BD50: .4byte gUnknown_02024C10
-_0801BD54: .4byte gUnknown_081D936D
-_0801BD58: .4byte gUnknown_02024C68
-_0801BD5C:
- ldr r0, [r5]
- ldr r1, _0801BDA0 @ =0xff7fffff
- ands r0, r1
- str r0, [r5]
- movs r6, 0x80
- lsls r6, 18
- ands r0, r6
- cmp r0, 0
- bne _0801BDB4
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r1, r4, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0801BDB4
- bl sub_801B928
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0801BDB4
- cmp r2, 0x2
- bne _0801BDA4
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- b _0801BFF4
- .align 2, 0
-_0801BDA0: .4byte 0xff7fffff
-_0801BDA4:
- ldr r0, _0801BDB0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0801BFF4
- .align 2, 0
-_0801BDB0: .4byte gUnknown_02024C68
-_0801BDB4:
- ldr r2, _0801BE18 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 18
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801BE1C @ =gUnknown_02024D28
- ldr r1, _0801BE20 @ =gUnknown_02024C08
- ldrb r3, [r1]
- lsls r0, r3, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 27
- mov r8, r1
- mov r9, r2
- cmp r0, 0
- bge _0801BE3C
- ldr r2, _0801BE24 @ =gBattleMoves
- ldr r0, _0801BE28 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801BE3C
- ldr r0, _0801BE2C @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _0801BE30 @ =0x00000115
- adds r1, r3, 0
- bl sub_80151D4
- mov r0, r8
- ldrb r1, [r0]
- lsls r1, 4
- add r1, r9
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BE34 @ =gUnknown_02024C10
- ldr r0, _0801BE38 @ =gUnknown_081D946F
- b _0801BFF2
- .align 2, 0
-_0801BE18: .4byte gUnknown_02024C6C
-_0801BE1C: .4byte gUnknown_02024D28
-_0801BE20: .4byte gUnknown_02024C08
-_0801BE24: .4byte gBattleMoves
-_0801BE28: .4byte gUnknown_02024BE6
-_0801BE2C: .4byte gUnknown_02024C07
-_0801BE30: .4byte 0x00000115
-_0801BE34: .4byte gUnknown_02024C10
-_0801BE38: .4byte gUnknown_081D946F
-_0801BE3C:
- movs r2, 0
- ldr r0, _0801BEB8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r2, r0
- bge _0801BE7E
- ldr r6, _0801BEBC @ =gUnknown_02024D28
- ldr r1, _0801BEC0 @ =gBattleMoves
- mov r12, r1
- adds r5, r0, 0
- ldr r7, _0801BEC4 @ =gUnknown_02024A7A
-_0801BE50:
- adds r4, r2, r7
- ldrb r3, [r4]
- lsls r0, r3, 4
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0801BE78
- ldr r0, _0801BEC8 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r1, [r0, 0x8]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801BE78
- b _0801BFA4
-_0801BE78:
- adds r2, 0x1
- cmp r2, r5
- blt _0801BE50
-_0801BE7E:
- ldr r0, _0801BECC @ =gUnknown_02024D68
- mov r1, r8
- ldrb r2, [r1]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r3, [r1]
- lsls r0, r3, 30
- cmp r0, 0
- bge _0801BEDC
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- strb r0, [r1]
- ldr r4, _0801BED0 @ =byte_2024C06
- movs r0, 0x1F
- strb r0, [r4]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BED4 @ =gUnknown_02024C10
- ldr r0, _0801BED8 @ =gUnknown_081D9812
- str r0, [r1]
- mov r2, r8
- ldrb r0, [r2]
- ldrb r1, [r4]
- bl sub_81074C4
- b _0801BFF4
- .align 2, 0
-_0801BEB8: .4byte gUnknown_02024A68
-_0801BEBC: .4byte gUnknown_02024D28
-_0801BEC0: .4byte gBattleMoves
-_0801BEC4: .4byte gUnknown_02024A7A
-_0801BEC8: .4byte gUnknown_02024BE6
-_0801BECC: .4byte gUnknown_02024D68
-_0801BED0: .4byte byte_2024C06
-_0801BED4: .4byte gUnknown_02024C10
-_0801BED8: .4byte gUnknown_081D9812
-_0801BEDC:
- lsls r0, r2, 4
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0801BEEA
- b _0801BFEC
-_0801BEEA:
- ldr r1, _0801BF80 @ =gBattleMoves
- ldr r2, _0801BF84 @ =gUnknown_02024BE6
- ldrh r3, [r2]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _0801BFEC
- cmp r3, 0xAE
- bne _0801BF28
- ldr r2, _0801BF88 @ =gBattleMons
- ldr r0, _0801BF8C @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _0801BF28
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0801BFEC
-_0801BF28:
- ldrh r0, [r4]
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _0801BF4E
- ldr r1, _0801BF88 @ =gBattleMons
- ldr r0, _0801BF8C @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _0801BFEC
-_0801BF4E:
- ldr r0, _0801BF8C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl b_cancel_multi_turn_move_maybe
- ldr r2, _0801BF90 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801BF94 @ =gUnknown_02024C3C
- ldr r3, _0801BF98 @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801BF9C @ =gUnknown_02024C44
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0801BFA0 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x6]
- b _0801BFEC
- .align 2, 0
-_0801BF80: .4byte gBattleMoves
-_0801BF84: .4byte gUnknown_02024BE6
-_0801BF88: .4byte gBattleMons
-_0801BF8C: .4byte gUnknown_02024C07
-_0801BF90: .4byte gUnknown_02024C68
-_0801BF94: .4byte gUnknown_02024C3C
-_0801BF98: .4byte gUnknown_02024C08
-_0801BF9C: .4byte gUnknown_02024C44
-_0801BFA0: .4byte gUnknown_02024D1E
-_0801BFA4:
- ldr r0, _0801BFD4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _0801BFD8 @ =0x00000121
- adds r1, r3, 0
- bl sub_80151D4
- ldrb r1, [r4]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r0, _0801BFDC @ =0x02000000
- ldrb r1, [r4]
- ldr r2, _0801BFE0 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BFE4 @ =gUnknown_02024C10
- ldr r0, _0801BFE8 @ =gUnknown_081D9487
- b _0801BFF2
- .align 2, 0
-_0801BFD4: .4byte gUnknown_02024C07
-_0801BFD8: .4byte 0x00000121
-_0801BFDC: .4byte 0x02000000
-_0801BFE0: .4byte 0x00016003
-_0801BFE4: .4byte gUnknown_02024C10
-_0801BFE8: .4byte gUnknown_081D9487
-_0801BFEC:
- ldr r1, _0801C004 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
-_0801BFF2:
- str r0, [r1]
-_0801BFF4:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C004: .4byte gUnknown_02024C10
- thumb_func_end atk00_attackcanceler
-
- thumb_func_start mcmd_jump_if_move_not_executed
-mcmd_jump_if_move_not_executed: @ 801C008
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r1, _0801C054 @ =gUnknown_02024C10
- ldr r5, [r1]
- adds r4, r5, r0
- ldr r0, _0801C058 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801C068
- ldr r1, _0801C05C @ =gUnknown_02024C3C
- ldr r3, _0801C060 @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801C064 @ =gUnknown_02024C44
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldrb r4, [r5, 0x1]
- ldrb r0, [r5, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r5, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r5, 0x4]
- lsls r0, 24
- orrs r4, r0
- b _0801C082
- .align 2, 0
-_0801C054: .4byte gUnknown_02024C10
-_0801C058: .4byte gUnknown_02024C68
-_0801C05C: .4byte gUnknown_02024C3C
-_0801C060: .4byte gUnknown_02024C08
-_0801C064: .4byte gUnknown_02024C44
-_0801C068:
- bl b_feature_update_destiny_bond
- ldr r0, _0801C090 @ =gUnknown_02024C08
- ldrb r1, [r0]
- str r6, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801C086
-_0801C082:
- ldr r0, _0801C094 @ =gUnknown_02024C10
- str r4, [r0]
-_0801C086:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C090: .4byte gUnknown_02024C08
-_0801C094: .4byte gUnknown_02024C10
- thumb_func_end mcmd_jump_if_move_not_executed
-
- thumb_func_start atk40_801DBA0
-atk40_801DBA0: @ 801C098
- push {lr}
- ldr r1, _0801C0E0 @ =gUnknown_02024D28
- ldr r0, _0801C0E4 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0801C0F8
- ldr r2, _0801C0E8 @ =gBattleMoves
- ldr r0, _0801C0EC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801C0F8
- ldr r2, _0801C0F0 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x5
- movs r1, 0
- bl mcmd_jump_if_move_not_executed
- ldr r1, _0801C0F4 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x6]
- b _0801C100
- .align 2, 0
-_0801C0E0: .4byte gUnknown_02024D28
-_0801C0E4: .4byte gUnknown_02024C08
-_0801C0E8: .4byte gBattleMoves
-_0801C0EC: .4byte gUnknown_02024BE6
-_0801C0F0: .4byte gUnknown_02024C68
-_0801C0F4: .4byte gUnknown_02024D1E
-_0801C0F8:
- ldr r1, _0801C104 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0801C100:
- pop {r0}
- bx r0
- .align 2, 0
-_0801C104: .4byte gUnknown_02024C10
- thumb_func_end atk40_801DBA0
-
- thumb_func_start sub_801C108
-sub_801C108: @ 801C108
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r4, 0
- ldr r1, _0801C15C @ =gUnknown_02024D28
- ldr r0, _0801C160 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0801C154
- ldr r2, _0801C164 @ =gBattleMoves
- ldr r0, _0801C168 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801C154
- ldr r2, _0801C16C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x7
- adds r1, r3, 0
- bl mcmd_jump_if_move_not_executed
- ldr r1, _0801C170 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x6]
- movs r4, 0x1
-_0801C154:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801C15C: .4byte gUnknown_02024D28
-_0801C160: .4byte gUnknown_02024C08
-_0801C164: .4byte gBattleMoves
-_0801C168: .4byte gUnknown_02024BE6
-_0801C16C: .4byte gUnknown_02024C68
-_0801C170: .4byte gUnknown_02024D1E
- thumb_func_end sub_801C108
-
- thumb_func_start sub_801C174
-sub_801C174: @ 801C174
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _0801C1D4 @ =gUnknown_02024C98
- ldr r3, _0801C1D8 @ =gUnknown_02024C08
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x18
- ands r1, r0
- adds r6, r2, 0
- cmp r1, 0
- beq _0801C1A6
- ldr r1, _0801C1DC @ =gUnknown_02024CA8
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801C1E0 @ =gUnknown_02024C07
- ldrb r0, [r0, 0x15]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0801C290
-_0801C1A6:
- ldr r0, _0801C1E4 @ =gUnknown_02024C6C
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 9
- ands r1, r2
- adds r2, r0, 0
- cmp r1, 0
- bne _0801C1EC
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801C1EC
-_0801C1C6:
- ldr r0, _0801C1E8 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0801C290
- .align 2, 0
-_0801C1D4: .4byte gUnknown_02024C98
-_0801C1D8: .4byte gUnknown_02024C08
-_0801C1DC: .4byte gUnknown_02024CA8
-_0801C1E0: .4byte gUnknown_02024C07
-_0801C1E4: .4byte gUnknown_02024C6C
-_0801C1E8: .4byte gUnknown_02024C68
-_0801C1EC:
- ldr r0, [r2]
- ldr r1, _0801C29C @ =0xfffeffff
- ands r0, r1
- str r0, [r2]
- movs r1, 0x80
- lsls r1, 10
- ands r0, r1
- cmp r0, 0
- bne _0801C20E
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0801C1C6
-_0801C20E:
- ldr r0, [r2]
- ldr r1, _0801C2A0 @ =0xfffdffff
- ands r0, r1
- str r0, [r2]
- movs r1, 0x80
- lsls r1, 11
- ands r0, r1
- cmp r0, 0
- bne _0801C22E
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- bne _0801C1C6
-_0801C22E:
- ldr r0, [r2]
- ldr r1, _0801C2A4 @ =0xfffbffff
- ands r0, r1
- str r0, [r2]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r5, 1
- cmp r0, 0
- bne _0801C27E
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801C27E
- ldr r0, _0801C2A8 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801C27E
- ldr r0, _0801C2AC @ =gBattleMoves
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x98
- beq _0801C290
-_0801C27E:
- ldr r1, _0801C2AC @ =gBattleMoves
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _0801C290
- cmp r0, 0x4E
- bne _0801C2B0
-_0801C290:
- movs r0, 0x7
- adds r1, r5, 0
- bl mcmd_jump_if_move_not_executed
- movs r0, 0x1
- b _0801C2B2
- .align 2, 0
-_0801C29C: .4byte 0xfffeffff
-_0801C2A0: .4byte 0xfffdffff
-_0801C2A4: .4byte 0xfffbffff
-_0801C2A8: .4byte word_2024DB8
-_0801C2AC: .4byte gBattleMoves
-_0801C2B0:
- movs r0, 0
-_0801C2B2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_801C174
-
- thumb_func_start atk01_accuracycheck
-atk01_accuracycheck: @ 801C2BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _0801C314 @ =gUnknown_02024C10
- ldr r5, [r0]
- ldrb r6, [r5, 0x5]
- ldrb r1, [r5, 0x6]
- lsls r1, 8
- orrs r6, r1
- adds r1, r6, 0x2
- lsls r1, 16
- lsrs r1, 16
- adds r7, r0, 0
- cmp r1, 0x1
- bhi _0801C378
- ldr r2, _0801C318 @ =gUnknown_02024C98
- ldr r3, _0801C31C @ =gUnknown_02024C08
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x18
- ands r1, r0
- cmp r1, 0
- beq _0801C32C
- ldr r0, _0801C320 @ =0x0000ffff
- cmp r6, r0
- bne _0801C32C
- ldr r1, _0801C324 @ =gUnknown_02024CA8
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801C328 @ =gUnknown_02024C07
- ldrb r0, [r0, 0x15]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0801C32C
- adds r0, r5, 0x7
- str r0, [r7]
- b _0801C632
- .align 2, 0
-_0801C314: .4byte gUnknown_02024C10
-_0801C318: .4byte gUnknown_02024C98
-_0801C31C: .4byte gUnknown_02024C08
-_0801C320: .4byte 0x0000ffff
-_0801C324: .4byte gUnknown_02024CA8
-_0801C328: .4byte gUnknown_02024C07
-_0801C32C:
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ldr r1, _0801C358 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _0801C35C
- ldr r2, [r7]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r7]
- b _0801C632
- .align 2, 0
-_0801C358: .4byte 0x000400c0
-_0801C35C:
- movs r0, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _0801C36A
- b _0801C632
-_0801C36A:
- ldr r1, _0801C374 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x7
- str r0, [r1]
- b _0801C632
- .align 2, 0
-_0801C374: .4byte gUnknown_02024C10
-_0801C378:
- cmp r6, 0
- bne _0801C380
- ldr r0, _0801C398 @ =gUnknown_02024BE6
- ldrh r6, [r0]
-_0801C380:
- ldr r0, _0801C39C @ =0x02000000
- ldr r1, _0801C3A0 @ =0x0001601c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801C3A4
- movs r2, 0x3F
- mov r10, r2
- mov r3, r10
- ands r3, r0
- mov r10, r3
- b _0801C3B2
- .align 2, 0
-_0801C398: .4byte gUnknown_02024BE6
-_0801C39C: .4byte 0x02000000
-_0801C3A0: .4byte 0x0001601c
-_0801C3A4:
- ldr r1, _0801C3F8 @ =gBattleMoves
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r10, r0
-_0801C3B2:
- adds r0, r6, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _0801C3C0
- b _0801C632
-_0801C3C0:
- adds r0, r6, 0
- bl sub_801C174
- lsls r0, 24
- cmp r0, 0
- beq _0801C3CE
- b _0801C632
-_0801C3CE:
- ldr r3, _0801C3FC @ =gBattleMons
- ldr r0, _0801C400 @ =gUnknown_02024C08
- ldrb r0, [r0]
- movs r2, 0x58
- adds r4, r0, 0
- muls r4, r2
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801C408
- ldr r0, _0801C404 @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- ldrb r5, [r0, 0x1E]
- b _0801C41E
- .align 2, 0
-_0801C3F8: .4byte gBattleMoves
-_0801C3FC: .4byte gBattleMons
-_0801C400: .4byte gUnknown_02024C08
-_0801C404: .4byte gUnknown_02024C07
-_0801C408:
- ldr r0, _0801C56C @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- ldrb r0, [r0, 0x1E]
- adds r0, 0x6
- adds r1, r4, r3
- ldrb r1, [r1, 0x1F]
- subs r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
-_0801C41E:
- lsls r0, r5, 24
- cmp r0, 0
- bge _0801C426
- movs r5, 0
-_0801C426:
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0xC
- ble _0801C430
- movs r5, 0xC
-_0801C430:
- ldr r1, _0801C570 @ =gBattleMoves
- lsls r4, r6, 1
- adds r0, r4, r6
- lsls r0, 2
- adds r7, r0, r1
- ldrb r0, [r7, 0x3]
- mov r8, r0
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp, 0x4]
- cmp r0, 0
- bne _0801C482
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801C482
- ldr r0, _0801C574 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0801C482
- ldrb r0, [r7]
- cmp r0, 0x98
- bne _0801C482
- movs r1, 0x32
- mov r8, r1
-_0801C482:
- ldr r1, _0801C578 @ =gAccuracyStageRatios
- lsls r0, r5, 24
- asrs r0, 22
- adds r0, r1
- ldrb r1, [r0]
- mov r4, r8
- muls r4, r1
- ldrb r1, [r0, 0x1]
- adds r0, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r7, _0801C57C @ =gBattleMons
- ldr r0, _0801C56C @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r5, 0x58
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0xE
- bne _0801C4C0
- lsls r0, r4, 6
- adds r0, r4
- lsls r0, 1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C4C0:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801C518
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801C518
- ldr r0, _0801C580 @ =gUnknown_02024C08
- ldrb r0, [r0]
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _0801C518
- ldr r0, _0801C574 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0801C518
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C518:
- ldr r2, _0801C57C @ =gBattleMons
- ldr r0, _0801C56C @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r9, r2
- cmp r0, 0x37
- bne _0801C544
- mov r2, r10
- cmp r2, 0x8
- bhi _0801C544
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C544:
- ldr r3, _0801C580 @ =gUnknown_02024C08
- mov r8, r3
- ldrb r2, [r3]
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- mov r3, r9
- adds r1, r0, r3
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801C588
- ldr r1, _0801C584 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- ldrb r2, [r0, 0x1A]
- b _0801C5A4
- .align 2, 0
-_0801C56C: .4byte gUnknown_02024C07
-_0801C570: .4byte gBattleMoves
-_0801C574: .4byte word_2024DB8
-_0801C578: .4byte gAccuracyStageRatios
-_0801C57C: .4byte gBattleMons
-_0801C580: .4byte gUnknown_02024C08
-_0801C584: .4byte gEnigmaBerries
-_0801C588:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r8
- ldrb r0, [r1]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r2, r0, 24
-_0801C5A4:
- ldr r0, _0801C608 @ =gUnknown_02024C0B
- ldr r1, _0801C60C @ =gUnknown_02024C08
- ldrb r1, [r1]
- strb r1, [r0]
- cmp r5, 0x16
- bne _0801C5C0
- movs r0, 0x64
- subs r0, r2
- muls r0, r4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C5C0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- ble _0801C62A
- ldr r2, _0801C610 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0801C614 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801C620
- ldr r1, _0801C618 @ =gBattleMoves
- ldr r2, [sp, 0x4]
- adds r0, r2, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x6]
- cmp r0, 0x8
- beq _0801C602
- cmp r0, 0x20
- bne _0801C620
-_0801C602:
- ldr r1, _0801C61C @ =gUnknown_02024D1E
- movs r0, 0x2
- b _0801C624
- .align 2, 0
-_0801C608: .4byte gUnknown_02024C0B
-_0801C60C: .4byte gUnknown_02024C08
-_0801C610: .4byte gUnknown_02024C68
-_0801C614: .4byte gUnknown_020239F8
-_0801C618: .4byte gBattleMoves
-_0801C61C: .4byte gUnknown_02024D1E
-_0801C620:
- ldr r1, _0801C644 @ =gUnknown_02024D1E
- movs r0, 0
-_0801C624:
- strb r0, [r1, 0x6]
- bl b_wonderguard_and_levitate
-_0801C62A:
- movs r0, 0x7
- adds r1, r6, 0
- bl mcmd_jump_if_move_not_executed
-_0801C632:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C644: .4byte gUnknown_02024D1E
- thumb_func_end atk01_accuracycheck
-
- thumb_func_start atk02_attackstring
-atk02_attackstring: @ 801C648
- push {r4,r5,lr}
- ldr r0, _0801C688 @ =gUnknown_02024A64
- ldr r5, [r0]
- cmp r5, 0
- bne _0801C680
- ldr r4, _0801C68C @ =gUnknown_02024C6C
- ldr r0, [r4]
- movs r1, 0xC0
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- bne _0801C674
- ldr r0, _0801C690 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x4
- bl b_std_message
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 3
- orrs r0, r1
- str r0, [r4]
-_0801C674:
- ldr r0, _0801C694 @ =gUnknown_02024C10
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _0801C698 @ =gUnknown_02024D1E
- strb r5, [r0, 0x7]
-_0801C680:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C688: .4byte gUnknown_02024A64
-_0801C68C: .4byte gUnknown_02024C6C
-_0801C690: .4byte gUnknown_02024C07
-_0801C694: .4byte gUnknown_02024C10
-_0801C698: .4byte gUnknown_02024D1E
- thumb_func_end atk02_attackstring
-
- thumb_func_start atk03_ppreduce
-atk03_ppreduce: @ 801C69C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0x1
- ldr r0, _0801C6EC @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0801C6B4
- b _0801C84E
-_0801C6B4:
- ldr r1, _0801C6F0 @ =gUnknown_02024D68
- ldr r2, _0801C6F4 @ =gUnknown_02024C07
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r4, r0, 31
- mov r9, r2
- cmp r4, 0
- bne _0801C756
- ldr r2, _0801C6F8 @ =gBattleMoves
- ldr r0, _0801C6FC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- cmp r0, 0x20
- beq _0801C706
- cmp r0, 0x20
- bgt _0801C700
- cmp r0, 0x8
- beq _0801C71C
- b _0801C736
- .align 2, 0
-_0801C6EC: .4byte gUnknown_02024A64
-_0801C6F0: .4byte gUnknown_02024D68
-_0801C6F4: .4byte gUnknown_02024C07
-_0801C6F8: .4byte gBattleMoves
-_0801C6FC: .4byte gUnknown_02024BE6
-_0801C700:
- cmp r0, 0x40
- beq _0801C71C
- b _0801C736
-_0801C706:
- str r4, [sp]
- movs r0, 0x12
- adds r1, r3, 0
- movs r2, 0x2E
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0x1
- b _0801C756
-_0801C71C:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0x2E
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0
- b _0801C756
-_0801C736:
- ldr r1, _0801C7B8 @ =gUnknown_02024C08
- mov r2, r9
- ldrb r0, [r2]
- ldrb r7, [r1]
- cmp r0, r7
- beq _0801C756
- ldr r2, _0801C7BC @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2E
- bne _0801C756
- adds r6, 0x1
-_0801C756:
- ldr r0, _0801C7C0 @ =gUnknown_02024C6C
- ldr r4, [r0]
- movs r0, 0xA0
- lsls r0, 4
- ands r4, r0
- cmp r4, 0
- bne _0801C83C
- ldr r2, _0801C7BC @ =gBattleMons
- ldr r3, _0801C7C4 @ =gUnknown_02024BE4
- ldr r1, _0801C7C8 @ =gUnknown_02024C07
- ldrb r5, [r1]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r5
- ldrb r7, [r3]
- adds r0, r7
- movs r7, 0x24
- adds r7, r2
- mov r12, r7
- add r0, r12
- ldrb r0, [r0]
- mov r9, r1
- mov r10, r2
- adds r7, r3, 0
- cmp r0, 0
- beq _0801C83C
- ldr r0, _0801C7CC @ =gUnknown_02024D28
- lsls r1, r5, 4
- adds r1, r0
- ldrb r0, [r1, 0x2]
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x2]
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldrb r1, [r7]
- adds r0, r1
- mov r1, r12
- adds r2, r0, r1
- ldrb r0, [r2]
- cmp r0, r6
- ble _0801C7D0
- subs r0, r6
- strb r0, [r2]
- b _0801C7D2
- .align 2, 0
-_0801C7B8: .4byte gUnknown_02024C08
-_0801C7BC: .4byte gBattleMons
-_0801C7C0: .4byte gUnknown_02024C6C
-_0801C7C4: .4byte gUnknown_02024BE4
-_0801C7C8: .4byte gUnknown_02024C07
-_0801C7CC: .4byte gUnknown_02024D28
-_0801C7D0:
- strb r4, [r2]
-_0801C7D2:
- mov r2, r9
- ldrb r3, [r2]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- mov r1, r10
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0801C83C
- ldr r1, _0801C860 @ =gUnknown_02024CA8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0801C864 @ =gBitTable
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0801C83C
- ldr r0, _0801C868 @ =gUnknown_02024A60
- strb r3, [r0]
- ldrb r1, [r7]
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- mov r2, r10
- adds r2, 0x24
- adds r0, r2
- ldrb r7, [r7]
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- mov r7, r9
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
-_0801C83C:
- ldr r2, _0801C86C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0801C870 @ =0xfffff7ff
- ands r0, r1
- str r0, [r2]
- ldr r1, _0801C874 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801C84E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C860: .4byte gUnknown_02024CA8
-_0801C864: .4byte gBitTable
-_0801C868: .4byte gUnknown_02024A60
-_0801C86C: .4byte gUnknown_02024C6C
-_0801C870: .4byte 0xfffff7ff
-_0801C874: .4byte gUnknown_02024C10
- thumb_func_end atk03_ppreduce
-
- thumb_func_start atk04_critcalc
-atk04_critcalc: @ 801C878
- push {r4-r7,lr}
- ldr r1, _0801C89C @ =gBattleMons
- ldr r0, _0801C8A0 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- cmp r0, 0xAF
- bne _0801C8A8
- ldr r1, _0801C8A4 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- b _0801C8B0
- .align 2, 0
-_0801C89C: .4byte gBattleMons
-_0801C8A0: .4byte gUnknown_02024C07
-_0801C8A4: .4byte gEnigmaBerries
-_0801C8A8:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
-_0801C8B0:
- ldr r1, _0801C93C @ =gUnknown_02024C0B
- ldr r3, _0801C940 @ =gUnknown_02024C07
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r4, _0801C944 @ =gBattleMons
- ldrb r1, [r3]
- movs r0, 0x58
- adds r7, r1, 0
- muls r7, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r7, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- negs r0, r0
- asrs r5, r0, 31
- movs r0, 0x2
- ands r5, r0
- ldr r2, _0801C948 @ =gBattleMoves
- ldr r0, _0801C94C @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- mov r12, r3
- cmp r1, 0x2B
- bne _0801C8F0
- adds r5, 0x1
-_0801C8F0:
- adds r0, r5, 0
- cmp r1, 0x4B
- bne _0801C8F8
- adds r0, 0x1
-_0801C8F8:
- cmp r1, 0xC8
- bne _0801C8FE
- adds r0, 0x1
-_0801C8FE:
- adds r2, r0, 0
- cmp r1, 0xD1
- bne _0801C906
- adds r2, 0x1
-_0801C906:
- movs r1, 0
- cmp r6, 0x3F
- bne _0801C916
- adds r0, r7, r4
- ldrh r0, [r0]
- cmp r0, 0x71
- bne _0801C916
- movs r1, 0x1
-_0801C916:
- lsls r5, r1, 1
- movs r3, 0
- cmp r6, 0x42
- bne _0801C930
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0x53
- bne _0801C930
- movs r3, 0x1
-_0801C930:
- lsls r1, r3, 1
- cmp r6, 0x29
- bne _0801C950
- adds r0, r5, 0x1
- adds r0, r2, r0
- b _0801C952
- .align 2, 0
-_0801C93C: .4byte gUnknown_02024C0B
-_0801C940: .4byte gUnknown_02024C07
-_0801C944: .4byte gBattleMons
-_0801C948: .4byte gBattleMoves
-_0801C94C: .4byte gUnknown_02024BE6
-_0801C950:
- adds r0, r2, r5
-_0801C952:
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0, 0
- cmp r5, 0x4
- bls _0801C960
- movs r5, 0x4
-_0801C960:
- ldr r0, _0801C9BC @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- ldrb r4, [r0]
- cmp r4, 0x4
- beq _0801C9D0
- cmp r4, 0x4B
- beq _0801C9D0
- ldr r1, _0801C9C0 @ =gUnknown_02024C98
- mov r2, r12
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _0801C9D0
- ldr r0, _0801C9C4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x84
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0801C9D0
- bl Random
- ldr r2, _0801C9C8 @ =gCriticalHitChance
- lsls r1, r5, 1
- adds r1, r2
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1]
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0801C9D0
- ldr r1, _0801C9CC @ =gCritMultiplier
- movs r0, 0x2
- b _0801C9D4
- .align 2, 0
-_0801C9BC: .4byte gUnknown_02024C08
-_0801C9C0: .4byte gUnknown_02024C98
-_0801C9C4: .4byte gUnknown_020239F8
-_0801C9C8: .4byte gCriticalHitChance
-_0801C9CC: .4byte gCritMultiplier
-_0801C9D0:
- ldr r1, _0801C9E4 @ =gCritMultiplier
- movs r0, 0x1
-_0801C9D4:
- strb r0, [r1]
- ldr r1, _0801C9E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C9E4: .4byte gCritMultiplier
-_0801C9E8: .4byte gUnknown_02024C10
- thumb_func_end atk04_critcalc
-
- thumb_func_start atk05_damagecalc1
-atk05_damagecalc1: @ 801C9EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r4, _0801CABC @ =gUnknown_02024C7A
- ldr r6, _0801CAC0 @ =gUnknown_02024C08
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldr r0, _0801CAC4 @ =gUnknown_02024C07
- mov r8, r0
- ldrb r0, [r0]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _0801CAC8 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r6]
- muls r1, r4
- adds r1, r2
- ldr r2, _0801CACC @ =gUnknown_02024BE6
- mov r9, r2
- ldrh r2, [r2]
- ldr r4, _0801CAD0 @ =gUnknown_02024DEC
- ldrh r4, [r4]
- str r4, [sp]
- ldr r5, _0801CAD4 @ =0x02000000
- ldr r7, _0801CAD8 @ =0x0001601c
- adds r4, r5, r7
- ldrb r4, [r4]
- str r4, [sp, 0x4]
- mov r7, r8
- ldrb r4, [r7]
- str r4, [sp, 0x8]
- ldrb r4, [r6]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldr r4, _0801CADC @ =gUnknown_02024BEC
- ldr r1, _0801CAE0 @ =gCritMultiplier
- ldrb r1, [r1]
- muls r1, r0
- ldr r0, _0801CAE4 @ =0x0001601f
- adds r5, r0
- ldrb r0, [r5]
- adds r3, r1, 0
- muls r3, r0
- str r3, [r4]
- ldr r1, _0801CAE8 @ =gUnknown_02024C98
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0801CA82
- ldr r2, _0801CAEC @ =gBattleMoves
- mov r7, r9
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0xD
- bne _0801CA82
- lsls r0, r3, 1
- str r0, [r4]
-_0801CA82:
- ldr r1, _0801CAF0 @ =gUnknown_02024D28
- ldr r0, _0801CAC4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _0801CAA4
- ldr r4, _0801CADC @ =gUnknown_02024BEC
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801CAA4:
- ldr r1, _0801CAF4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CABC: .4byte gUnknown_02024C7A
-_0801CAC0: .4byte gUnknown_02024C08
-_0801CAC4: .4byte gUnknown_02024C07
-_0801CAC8: .4byte gBattleMons
-_0801CACC: .4byte gUnknown_02024BE6
-_0801CAD0: .4byte gUnknown_02024DEC
-_0801CAD4: .4byte 0x02000000
-_0801CAD8: .4byte 0x0001601c
-_0801CADC: .4byte gUnknown_02024BEC
-_0801CAE0: .4byte gCritMultiplier
-_0801CAE4: .4byte 0x0001601f
-_0801CAE8: .4byte gUnknown_02024C98
-_0801CAEC: .4byte gBattleMoves
-_0801CAF0: .4byte gUnknown_02024D28
-_0801CAF4: .4byte gUnknown_02024C10
- thumb_func_end atk05_damagecalc1
-
- thumb_func_start sub_801CAF8
-sub_801CAF8: @ 801CAF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0801CBBC @ =gUnknown_02024C7A
- adds r0, r5, 0
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x58
- adds r0, r7, 0
- muls r0, r1
- ldr r2, _0801CBC0 @ =gBattleMons
- adds r0, r2
- muls r1, r5
- adds r1, r2
- ldr r2, _0801CBC4 @ =gUnknown_02024BE6
- mov r9, r2
- ldrh r2, [r2]
- ldr r4, _0801CBC8 @ =gUnknown_02024DEC
- mov r8, r4
- ldrh r4, [r4]
- str r4, [sp]
- ldr r6, _0801CBCC @ =0x02000000
- ldr r4, _0801CBD0 @ =0x0001601c
- ldrb r4, [r4, r6]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- str r5, [sp, 0xC]
- bl CalculateBaseDamage
- ldr r4, _0801CBD4 @ =gUnknown_02024BEC
- movs r1, 0
- mov r2, r8
- strh r1, [r2]
- ldr r1, _0801CBD8 @ =gCritMultiplier
- ldrb r1, [r1]
- muls r1, r0
- ldr r0, _0801CBDC @ =0x0001601f
- adds r6, r0
- ldrb r0, [r6]
- adds r3, r1, 0
- muls r3, r0
- str r3, [r4]
- ldr r1, _0801CBE0 @ =gUnknown_02024C98
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0801CB8E
- ldr r2, _0801CBE4 @ =gBattleMoves
- mov r6, r9
- ldrh r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0xD
- bne _0801CB8E
- lsls r0, r3, 1
- str r0, [r4]
-_0801CB8E:
- ldr r0, _0801CBE8 @ =gUnknown_02024D28
- lsls r1, r7, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 28
- cmp r0, 0
- bge _0801CBAC
- ldr r4, _0801CBD4 @ =gUnknown_02024BEC
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801CBAC:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CBBC: .4byte gUnknown_02024C7A
-_0801CBC0: .4byte gBattleMons
-_0801CBC4: .4byte gUnknown_02024BE6
-_0801CBC8: .4byte gUnknown_02024DEC
-_0801CBCC: .4byte 0x02000000
-_0801CBD0: .4byte 0x0001601c
-_0801CBD4: .4byte gUnknown_02024BEC
-_0801CBD8: .4byte gCritMultiplier
-_0801CBDC: .4byte 0x0001601f
-_0801CBE0: .4byte gUnknown_02024C98
-_0801CBE4: .4byte gBattleMoves
-_0801CBE8: .4byte gUnknown_02024D28
- thumb_func_end sub_801CAF8
-
- thumb_func_start battle_attack_damage_modulate_by_effectivity
-battle_attack_damage_modulate_by_effectivity: @ 801CBEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _0801CC1C @ =gUnknown_02024BEC
- ldr r0, [r5]
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _0801CC0C
- cmp r4, 0
- beq _0801CC0C
- movs r0, 0x1
- str r0, [r5]
-_0801CC0C:
- cmp r4, 0x5
- beq _0801CC3C
- cmp r4, 0x5
- bgt _0801CC20
- cmp r4, 0
- beq _0801CC26
- b _0801CCBE
- .align 2, 0
-_0801CC1C: .4byte gUnknown_02024BEC
-_0801CC20:
- cmp r4, 0x14
- beq _0801CC7C
- b _0801CCBE
-_0801CC26:
- ldr r2, _0801CC38 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0xFB
- ands r0, r1
- movs r1, 0xFD
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CC38: .4byte gUnknown_02024C68
-_0801CC3C:
- ldr r2, _0801CC6C @ =gBattleMoves
- ldr r0, _0801CC70 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CCBE
- ldr r2, _0801CC74 @ =gUnknown_02024C68
- ldrb r1, [r2]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801CCBE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801CC78
- movs r0, 0xFD
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CC6C: .4byte gBattleMoves
-_0801CC70: .4byte gUnknown_02024BE6
-_0801CC74: .4byte gUnknown_02024C68
-_0801CC78:
- movs r0, 0x4
- b _0801CCBA
-_0801CC7C:
- ldr r2, _0801CCAC @ =gBattleMoves
- ldr r0, _0801CCB0 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CCBE
- ldr r2, _0801CCB4 @ =gUnknown_02024C68
- ldrb r1, [r2]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801CCBE
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801CCB8
- movs r0, 0xFB
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CCAC: .4byte gBattleMoves
-_0801CCB0: .4byte gUnknown_02024BE6
-_0801CCB4: .4byte gUnknown_02024C68
-_0801CCB8:
- movs r0, 0x2
-_0801CCBA:
- orrs r0, r1
-_0801CCBC:
- strb r0, [r2]
-_0801CCBE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end battle_attack_damage_modulate_by_effectivity
-
- thumb_func_start atk06_damagecalc2
-atk06_damagecalc2: @ 801CCC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r3, 0
- ldr r1, _0801CCF0 @ =gUnknown_02024BE6
- ldrh r0, [r1]
- cmp r0, 0xA5
- bne _0801CCD8
- b _0801CEF4
-_0801CCD8:
- ldr r0, _0801CCF4 @ =0x02000000
- ldr r2, _0801CCF8 @ =0x0001601c
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801CCFC
- movs r1, 0x3F
- mov r8, r1
- mov r2, r8
- ands r2, r0
- mov r8, r2
- b _0801CD0C
- .align 2, 0
-_0801CCF0: .4byte gUnknown_02024BE6
-_0801CCF4: .4byte 0x02000000
-_0801CCF8: .4byte 0x0001601c
-_0801CCFC:
- ldr r2, _0801CD94 @ =gBattleMoves
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
-_0801CD0C:
- ldr r2, _0801CD98 @ =gBattleMons
- ldr r0, _0801CD9C @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, r8
- beq _0801CD2E
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r8
- bne _0801CD44
-_0801CD2E:
- ldr r4, _0801CDA0 @ =gUnknown_02024BEC
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- str r0, [r4]
- movs r1, 0xA
- str r3, [sp, 0x4]
- bl __divsi3
- str r0, [r4]
- ldr r3, [sp, 0x4]
-_0801CD44:
- ldr r2, _0801CDA4 @ =gUnknown_02024C08
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r2, 0
- cmp r0, 0x1A
- bne _0801CDBC
- mov r1, r8
- cmp r1, 0x4
- bne _0801CDBC
- ldr r3, _0801CDA8 @ =byte_2024C06
- strb r0, [r3]
- ldr r2, _0801CDAC @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801CDB0 @ =gUnknown_02024C3C
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801CDB4 @ =gUnknown_02024C44
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _0801CDB8 @ =gUnknown_02024D1E
- mov r2, r8
- strb r2, [r0, 0x6]
- ldrb r0, [r4]
- ldrb r1, [r3]
- bl sub_81074C4
- b _0801CE58
- .align 2, 0
-_0801CD94: .4byte gBattleMoves
-_0801CD98: .4byte gBattleMons
-_0801CD9C: .4byte gUnknown_02024C07
-_0801CDA0: .4byte gUnknown_02024BEC
-_0801CDA4: .4byte gUnknown_02024C08
-_0801CDA8: .4byte byte_2024C06
-_0801CDAC: .4byte gUnknown_02024C68
-_0801CDB0: .4byte gUnknown_02024C3C
-_0801CDB4: .4byte gUnknown_02024C44
-_0801CDB8: .4byte gUnknown_02024D1E
-_0801CDBC:
- ldr r1, _0801CDC8 @ =gTypeEffectiveness
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r2, r1, 0
- b _0801CE38
- .align 2, 0
-_0801CDC8: .4byte gTypeEffectiveness
-_0801CDCC:
- adds r3, 0x3
- b _0801CE34
-_0801CDD0:
- ldr r5, _0801CF08 @ =gTypeEffectiveness
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, r8
- bne _0801CE2C
- adds r1, r3, 0x1
- adds r1, r5
- ldr r2, _0801CF0C @ =gBattleMons
- ldr r7, _0801CF10 @ =gUnknown_02024C08
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- adds r0, r2
- adds r0, 0x21
- ldrb r4, [r1]
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801CE06
- adds r0, r3, 0x2
- adds r0, r5
- ldrb r0, [r0]
- str r2, [sp]
- str r3, [sp, 0x4]
- bl battle_attack_damage_modulate_by_effectivity
- ldr r3, [sp, 0x4]
- ldr r2, [sp]
-_0801CE06:
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r1, [r1]
- cmp r4, r1
- bne _0801CE2C
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r4
- beq _0801CE2C
- adds r0, r3, 0x2
- adds r0, r5
- ldrb r0, [r0]
- str r3, [sp, 0x4]
- bl battle_attack_damage_modulate_by_effectivity
- ldr r3, [sp, 0x4]
-_0801CE2C:
- adds r3, 0x3
- ldr r5, _0801CF0C @ =gBattleMons
- ldr r4, _0801CF10 @ =gUnknown_02024C08
- ldr r2, _0801CF08 @ =gTypeEffectiveness
-_0801CE34:
- adds r0, r3, r2
- ldrb r0, [r0]
-_0801CE38:
- cmp r0, 0xFF
- beq _0801CE58
- cmp r0, 0xFE
- bne _0801CDD0
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r1, r5, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801CDCC
-_0801CE58:
- ldr r2, _0801CF0C @ =gBattleMons
- ldr r5, _0801CF10 @ =gUnknown_02024C08
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _0801CED6
- ldr r0, _0801CF14 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r7, _0801CF18 @ =gUnknown_02024BE6
- ldrh r1, [r7]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801CED6
- ldr r1, _0801CF1C @ =gUnknown_02024C68
- mov r8, r1
- ldrb r4, [r1]
- ands r0, r4
- cmp r0, 0
- beq _0801CE94
- movs r0, 0x6
- ands r0, r4
- cmp r0, 0x6
- bne _0801CED6
-_0801CE94:
- ldr r2, _0801CF20 @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CED6
- ldr r3, _0801CF24 @ =byte_2024C06
- strb r6, [r3]
- movs r0, 0x1
- orrs r0, r4
- mov r2, r8
- strb r0, [r2]
- ldr r1, _0801CF28 @ =gUnknown_02024C3C
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801CF2C @ =gUnknown_02024C44
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0801CF30 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r5]
- ldrb r1, [r3]
- bl sub_81074C4
-_0801CED6:
- ldr r0, _0801CF1C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801CEF4
- ldr r2, _0801CF34 @ =gUnknown_02024D28
- ldr r0, _0801CF14 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_0801CEF4:
- ldr r1, _0801CF38 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CF08: .4byte gTypeEffectiveness
-_0801CF0C: .4byte gBattleMons
-_0801CF10: .4byte gUnknown_02024C08
-_0801CF14: .4byte gUnknown_02024C07
-_0801CF18: .4byte gUnknown_02024BE6
-_0801CF1C: .4byte gUnknown_02024C68
-_0801CF20: .4byte gBattleMoves
-_0801CF24: .4byte byte_2024C06
-_0801CF28: .4byte gUnknown_02024C3C
-_0801CF2C: .4byte gUnknown_02024C44
-_0801CF30: .4byte gUnknown_02024D1E
-_0801CF34: .4byte gUnknown_02024D28
-_0801CF38: .4byte gUnknown_02024C10
- thumb_func_end atk06_damagecalc2
-
- thumb_func_start b_wonderguard_and_levitate
-b_wonderguard_and_levitate: @ 801CF3C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _0801CF80 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- mov r9, r0
- cmp r1, 0xA5
- bne _0801CF54
- b _0801D1A4
-_0801CF54:
- ldr r2, _0801CF84 @ =gBattleMoves
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0801CF66
- b _0801D1A4
-_0801CF66:
- ldr r0, _0801CF88 @ =0x02000000
- ldr r2, _0801CF8C @ =0x0001601c
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801CF90
- movs r1, 0x3F
- mov r12, r1
- mov r2, r12
- ands r2, r0
- mov r12, r2
- b _0801CF94
- .align 2, 0
-_0801CF80: .4byte gUnknown_02024BE6
-_0801CF84: .4byte gBattleMoves
-_0801CF88: .4byte 0x02000000
-_0801CF8C: .4byte 0x0001601c
-_0801CF90:
- ldrb r1, [r1, 0x2]
- mov r12, r1
-_0801CF94:
- ldr r2, _0801CFC8 @ =gBattleMons
- ldr r3, _0801CFCC @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r1, [r0]
- adds r7, r2, 0
- mov r8, r3
- cmp r1, 0x1A
- bne _0801CFD8
- mov r0, r12
- cmp r0, 0x4
- bne _0801CFD8
- ldr r0, _0801CFD0 @ =byte_2024C06
- strb r1, [r0]
- ldr r0, _0801CFD4 @ =gUnknown_02024D1E
- mov r1, r12
- strb r1, [r0, 0x6]
- ldrb r0, [r3]
- movs r1, 0x1A
- bl sub_81074C4
- b _0801D1A4
- .align 2, 0
-_0801CFC8: .4byte gBattleMons
-_0801CFCC: .4byte gUnknown_02024C08
-_0801CFD0: .4byte byte_2024C06
-_0801CFD4: .4byte gUnknown_02024D1E
-_0801CFD8:
- ldr r1, _0801CFE4 @ =gTypeEffectiveness
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r4, r1, 0
- b _0801D12A
- .align 2, 0
-_0801CFE4: .4byte gTypeEffectiveness
-_0801CFE8:
- adds r0, r5, r4
- ldrb r0, [r0]
- cmp r0, r12
- beq _0801CFF2
- b _0801D124
-_0801CFF2:
- adds r2, r5, 0x1
- adds r3, r2, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D032
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801D032
- ldr r2, _0801D1B0 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D1B4 @ =gUnknown_02024D28
- ldr r0, _0801D1B8 @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r2, 4
- adds r2, r1
- ldrb r0, [r2, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0801D032:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D078
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D078
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801D078
- ldr r2, _0801D1B0 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D1B4 @ =gUnknown_02024D28
- ldr r0, _0801D1B8 @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r2, 4
- adds r2, r1
- ldrb r0, [r2, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0801D078:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D09C
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801D09C
- movs r0, 0x1
- orrs r6, r0
-_0801D09C:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D0CA
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D0CA
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801D0CA
- movs r0, 0x1
- orrs r6, r0
-_0801D0CA:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D0F2
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0801D0F2
- movs r0, 0x2
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0801D0F2:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D124
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D124
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0801D124
- movs r0, 0x2
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0801D124:
- adds r5, 0x3
- adds r0, r5, r4
- ldrb r0, [r0]
-_0801D12A:
- cmp r0, 0xFF
- beq _0801D14E
- cmp r0, 0xFE
- beq _0801D134
- b _0801CFE8
-_0801D134:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801D124
-_0801D14E:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x20
- ldrb r4, [r0]
- cmp r4, 0x19
- bne _0801D1A4
- ldr r0, _0801D1B8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- mov r2, r9
- ldrh r1, [r2]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801D1A4
- movs r0, 0x3
- ands r6, r0
- cmp r6, 0x1
- beq _0801D1A4
- ldr r2, _0801D1BC @ =gBattleMoves
- mov r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801D1A4
- ldr r0, _0801D1C0 @ =byte_2024C06
- strb r4, [r0]
- ldr r1, _0801D1C4 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x19
- bl sub_81074C4
-_0801D1A4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D1B0: .4byte gUnknown_02024C68
-_0801D1B4: .4byte gUnknown_02024D28
-_0801D1B8: .4byte gUnknown_02024C07
-_0801D1BC: .4byte gBattleMoves
-_0801D1C0: .4byte byte_2024C06
-_0801D1C4: .4byte gUnknown_02024D1E
- thumb_func_end b_wonderguard_and_levitate
-
- thumb_func_start b_attack_effectivity_adapt
-b_attack_effectivity_adapt: @ 801D1C8
- push {r4-r7,lr}
- adds r6, r2, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r7, _0801D1FC @ =gUnknown_02024BEC
- ldr r0, [r7]
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- str r0, [r7]
- cmp r0, 0
- bne _0801D1EE
- cmp r4, 0
- beq _0801D1EE
- movs r0, 0x1
- str r0, [r7]
-_0801D1EE:
- cmp r4, 0x5
- beq _0801D216
- cmp r4, 0x5
- bgt _0801D200
- cmp r4, 0
- beq _0801D206
- b _0801D27A
- .align 2, 0
-_0801D1FC: .4byte gUnknown_02024BEC
-_0801D200:
- cmp r4, 0x14
- beq _0801D248
- b _0801D27A
-_0801D206:
- ldrb r0, [r6]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0xFB
- ands r0, r1
- movs r1, 0xFD
- ands r0, r1
- b _0801D278
-_0801D216:
- ldr r0, _0801D240 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D27A
- ldrb r1, [r6]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801D27A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801D244
- movs r0, 0xFD
- ands r0, r1
- b _0801D278
- .align 2, 0
-_0801D240: .4byte gBattleMoves
-_0801D244:
- movs r0, 0x4
- b _0801D276
-_0801D248:
- ldr r0, _0801D270 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D27A
- ldrb r1, [r6]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801D27A
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801D274
- movs r0, 0xFB
- ands r0, r1
- b _0801D278
- .align 2, 0
-_0801D270: .4byte gBattleMoves
-_0801D274:
- movs r0, 0x2
-_0801D276:
- orrs r0, r1
-_0801D278:
- strb r0, [r6]
-_0801D27A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end b_attack_effectivity_adapt
-
- thumb_func_start move_effectiveness_something
-move_effectiveness_something: @ 801D280
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- movs r7, 0
- mov r0, sp
- strb r7, [r0]
- mov r0, r10
- cmp r0, 0xA5
- bne _0801D2AE
- movs r0, 0
- b _0801D43A
-_0801D2AE:
- ldr r1, _0801D31C @ =gBattleMoves
- mov r3, r10
- lsls r2, r3, 1
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x8]
- ldr r1, _0801D320 @ =gBattleMons
- movs r0, 0x58
- ldr r3, [sp, 0x4]
- muls r0, r3
- adds r3, r0, r1
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r0, [r0]
- str r2, [sp, 0xC]
- adds r5, r1, 0
- ldr r1, [sp, 0x8]
- cmp r0, r1
- beq _0801D2E2
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- bne _0801D2F4
-_0801D2E2:
- ldr r4, _0801D324 @ =gUnknown_02024BEC
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- str r0, [r4]
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801D2F4:
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- bne _0801D328
- ldr r3, [sp, 0x8]
- cmp r3, 0x4
- bne _0801D328
- movs r1, 0x9
- mov r0, sp
- ldrb r0, [r0]
- orrs r0, r1
- mov r1, sp
- strb r0, [r1]
- b _0801D3DC
- .align 2, 0
-_0801D31C: .4byte gBattleMoves
-_0801D320: .4byte gBattleMons
-_0801D324: .4byte gUnknown_02024BEC
-_0801D328:
- ldr r1, _0801D344 @ =gTypeEffectiveness
- adds r0, r7, r1
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xFF
- beq _0801D3DC
- cmp r0, 0xFE
- bne _0801D34C
- movs r0, 0x58
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- b _0801D3CA
- .align 2, 0
-_0801D344: .4byte gTypeEffectiveness
-_0801D348:
- adds r7, 0x3
- b _0801D3B6
-_0801D34C:
- ldr r6, _0801D44C @ =gTypeEffectiveness
- adds r0, r7, r6
- ldrb r0, [r0]
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _0801D3B0
- adds r1, r7, 0x1
- adds r1, r6
- ldr r3, _0801D450 @ =gBattleMons
- mov r8, r3
- movs r3, 0x58
- mov r0, r9
- muls r0, r3
- mov r2, r8
- adds r5, r0, r2
- adds r0, r5, 0
- adds r0, 0x21
- ldrb r4, [r1]
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801D388
- adds r0, r7, 0x2
- adds r0, r6
- ldrb r0, [r0]
- mov r1, r10
- mov r2, sp
- str r3, [sp, 0x10]
- bl b_attack_effectivity_adapt
- ldr r3, [sp, 0x10]
-_0801D388:
- adds r0, r5, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801D3B0
- ldr r0, _0801D454 @ =gUnknown_02024C08
- ldrb r0, [r0]
- muls r0, r3
- add r0, r8
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r4
- beq _0801D3B0
- adds r0, r7, 0x2
- adds r0, r6
- ldrb r0, [r0]
- mov r1, r10
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D3B0:
- adds r7, 0x3
- ldr r5, _0801D450 @ =gBattleMons
- ldr r2, _0801D44C @ =gTypeEffectiveness
-_0801D3B6:
- adds r0, r7, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0801D3DC
- cmp r0, 0xFE
- bne _0801D34C
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
-_0801D3CA:
- adds r1, r5, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801D348
-_0801D3DC:
- movs r0, 0x58
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x19
- bne _0801D436
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801D436
- ldr r0, [sp, 0x4]
- mov r1, r10
- bl move_weather_interaction
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _0801D436
- mov r0, sp
- ldrb r3, [r0]
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0801D41E
- movs r0, 0x6
- ands r0, r3
- cmp r0, 0x6
- bne _0801D436
-_0801D41E:
- ldr r0, _0801D458 @ =gBattleMoves
- ldr r1, [sp, 0xC]
- add r1, r10
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D436
- mov r0, sp
- movs r1, 0x1
- orrs r1, r3
- strb r1, [r0]
-_0801D436:
- mov r0, sp
- ldrb r0, [r0]
-_0801D43A:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801D44C: .4byte gTypeEffectiveness
-_0801D450: .4byte gBattleMons
-_0801D454: .4byte gUnknown_02024C08
-_0801D458: .4byte gBattleMoves
- thumb_func_end move_effectiveness_something
-
- thumb_func_start ai_rate_move
-ai_rate_move: @ 801D45C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- movs r7, 0
- mov r0, sp
- strb r7, [r0]
- ldr r2, _0801D498 @ =gBaseStats
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- str r1, [sp, 0x8]
- ldrb r0, [r0, 0x7]
- mov r8, r0
- cmp r6, 0xA5
- bne _0801D49C
- movs r0, 0
- b _0801D554
- .align 2, 0
-_0801D498: .4byte gBaseStats
-_0801D49C:
- ldr r2, _0801D4C0 @ =gBattleMoves
- lsls r1, r6, 1
- adds r0, r1, r6
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r9, r0
- str r1, [sp, 0xC]
- ldr r3, [sp, 0x4]
- cmp r3, 0x1A
- bne _0801D4C4
- cmp r0, 0x4
- bne _0801D4C4
- movs r1, 0x9
- mov r0, sp
- strb r1, [r0]
- b _0801D51E
- .align 2, 0
-_0801D4C0: .4byte gBattleMoves
-_0801D4C4:
- ldr r0, _0801D564 @ =gTypeEffectiveness
- mov r10, r0
- adds r1, r7, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0801D51E
- adds r4, r1, 0
-_0801D4D2:
- ldrb r0, [r4]
- cmp r0, 0xFE
- beq _0801D510
- cmp r0, r9
- bne _0801D510
- ldrb r5, [r4, 0x1]
- ldr r1, [sp, 0x8]
- cmp r5, r1
- bne _0801D4EE
- ldrb r0, [r4, 0x2]
- adds r1, r6, 0
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D4EE:
- cmp r5, r8
- bne _0801D510
- ldr r0, _0801D568 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- ldr r3, _0801D56C @ =gBattleMons
- adds r0, r3
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r8
- beq _0801D510
- ldrb r0, [r4, 0x2]
- adds r1, r6, 0
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D510:
- adds r4, 0x3
- adds r7, 0x3
- mov r1, r10
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0801D4D2
-_0801D51E:
- ldr r3, [sp, 0x4]
- cmp r3, 0x19
- bne _0801D550
- mov r0, sp
- ldrb r2, [r0]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0801D538
- movs r0, 0x6
- ands r0, r2
- cmp r0, 0x6
- bne _0801D550
-_0801D538:
- ldr r0, _0801D570 @ =gBattleMoves
- ldr r3, [sp, 0xC]
- adds r1, r3, r6
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D550
- mov r0, sp
- movs r1, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0801D550:
- mov r0, sp
- ldrb r0, [r0]
-_0801D554:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801D564: .4byte gTypeEffectiveness
-_0801D568: .4byte gUnknown_02024C08
-_0801D56C: .4byte gBattleMons
-_0801D570: .4byte gBattleMoves
- thumb_func_end ai_rate_move
-
- thumb_func_start unref_sub_801D574
-unref_sub_801D574: @ 801D574
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D5AC @ =gUnknown_02024BEC
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D5A6
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D5A6
- movs r0, 0x1
- str r0, [r4]
-_0801D5A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D5AC: .4byte gUnknown_02024BEC
- thumb_func_end unref_sub_801D574
-
- thumb_func_start atk07_damagecalc3
-atk07_damagecalc3: @ 801D5B0
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D608 @ =gUnknown_02024BEC
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D5E2
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D5E2
- movs r0, 0x1
- str r0, [r4]
-_0801D5E2:
- ldr r7, _0801D60C @ =gBattleMons
- ldr r6, _0801D610 @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801D618
- ldr r1, _0801D614 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0801D632
- .align 2, 0
-_0801D608: .4byte gUnknown_02024BEC
-_0801D60C: .4byte gBattleMons
-_0801D610: .4byte gUnknown_02024C08
-_0801D614: .4byte gEnigmaBerries
-_0801D618:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0801D632:
- ldr r1, _0801D6F4 @ =gUnknown_02024C0B
- ldr r5, _0801D6F8 @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0801D670
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0801D670
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_81074F8
- ldr r2, _0801D6FC @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0801D670:
- ldr r2, _0801D700 @ =gBattleMons
- ldr r3, _0801D6F8 @ =gUnknown_02024C08
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- adds r5, r2, 0
- cmp r1, 0
- bne _0801D740
- ldr r2, _0801D704 @ =gBattleMoves
- ldr r0, _0801D708 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x65
- beq _0801D6C2
- ldr r0, _0801D70C @ =gUnknown_02024D28
- lsls r1, r4, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _0801D6C2
- ldr r0, _0801D6FC @ =gUnknown_02024D68
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D740
-_0801D6C2:
- ldrb r0, [r3]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r1, [r0, 0x28]
- ldr r2, _0801D710 @ =gUnknown_02024BEC
- ldr r0, [r2]
- cmp r1, r0
- bgt _0801D740
- subs r0, r1, 0x1
- str r0, [r2]
- ldr r1, _0801D70C @ =gUnknown_02024D28
- ldrb r3, [r3]
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0801D718
- ldr r0, _0801D714 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0801D740
- .align 2, 0
-_0801D6F4: .4byte gUnknown_02024C0B
-_0801D6F8: .4byte gUnknown_02024C08
-_0801D6FC: .4byte gUnknown_02024D68
-_0801D700: .4byte gBattleMons
-_0801D704: .4byte gBattleMoves
-_0801D708: .4byte gUnknown_02024BE6
-_0801D70C: .4byte gUnknown_02024D28
-_0801D710: .4byte gUnknown_02024BEC
-_0801D714: .4byte gUnknown_02024C68
-_0801D718:
- ldr r0, _0801D750 @ =gUnknown_02024D68
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D740
- ldr r2, _0801D754 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D758 @ =gUnknown_02024C04
- adds r0, r3, 0
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0801D740:
- ldr r1, _0801D75C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D750: .4byte gUnknown_02024D68
-_0801D754: .4byte gUnknown_02024C68
-_0801D758: .4byte gUnknown_02024C04
-_0801D75C: .4byte gUnknown_02024C10
- thumb_func_end atk07_damagecalc3
-
- thumb_func_start atk08_cmd8
-atk08_cmd8: @ 801D760
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D7B8 @ =gUnknown_02024BEC
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D792
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D792
- movs r0, 0x1
- str r0, [r4]
-_0801D792:
- ldr r7, _0801D7BC @ =gBattleMons
- ldr r6, _0801D7C0 @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801D7C8
- ldr r1, _0801D7C4 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0801D7E2
- .align 2, 0
-_0801D7B8: .4byte gUnknown_02024BEC
-_0801D7BC: .4byte gBattleMons
-_0801D7C0: .4byte gUnknown_02024C08
-_0801D7C4: .4byte gEnigmaBerries
-_0801D7C8:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0801D7E2:
- ldr r1, _0801D888 @ =gUnknown_02024C0B
- ldr r5, _0801D88C @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0801D820
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0801D820
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_81074F8
- ldr r2, _0801D890 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0801D820:
- ldr r4, _0801D894 @ =gBattleMons
- ldr r6, _0801D88C @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r7, 0x58
- adds r3, r2, 0
- muls r3, r7
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _0801D8CC
- ldr r5, _0801D898 @ =gUnknown_02024D28
- lsls r0, r2, 4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- blt _0801D85E
- ldr r0, _0801D890 @ =gUnknown_02024D68
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D8CC
-_0801D85E:
- adds r0, r3, r4
- ldrh r1, [r0, 0x28]
- ldr r2, _0801D89C @ =gUnknown_02024BEC
- ldr r0, [r2]
- cmp r1, r0
- bgt _0801D8CC
- subs r0, r1, 0x1
- str r0, [r2]
- ldrb r3, [r6]
- lsls r0, r3, 4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0801D8A4
- ldr r0, _0801D8A0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0801D8CC
- .align 2, 0
-_0801D888: .4byte gUnknown_02024C0B
-_0801D88C: .4byte gUnknown_02024C08
-_0801D890: .4byte gUnknown_02024D68
-_0801D894: .4byte gBattleMons
-_0801D898: .4byte gUnknown_02024D28
-_0801D89C: .4byte gUnknown_02024BEC
-_0801D8A0: .4byte gUnknown_02024C68
-_0801D8A4:
- ldr r0, _0801D8DC @ =gUnknown_02024D68
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D8CC
- ldr r2, _0801D8E0 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D8E4 @ =gUnknown_02024C04
- adds r0, r3, 0
- muls r0, r7
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0801D8CC:
- ldr r1, _0801D8E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D8DC: .4byte gUnknown_02024D68
-_0801D8E0: .4byte gUnknown_02024C68
-_0801D8E4: .4byte gUnknown_02024C04
-_0801D8E8: .4byte gUnknown_02024C10
- thumb_func_end atk08_cmd8
-
- thumb_func_start sub_801D8EC
-sub_801D8EC: @ 801D8EC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- ldr r0, _0801D940 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0801D900
- b _0801DA4A
-_0801D900:
- ldr r0, _0801D944 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- ldr r3, _0801D948 @ =gUnknown_02024BE6
- cmp r0, 0
- beq _0801D960
- ldrh r0, [r3]
- cmp r0, 0x90
- beq _0801D960
- cmp r0, 0xA4
- beq _0801D960
- ldr r4, _0801D94C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801D950 @ =gUnknown_081D8EEF
- str r0, [r4]
- ldr r1, _0801D954 @ =0x02000000
- ldr r0, _0801D958 @ =0x00016002
- adds r2, r1, r0
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r2, _0801D95C @ =0x000160a1
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0801DA4A
- .align 2, 0
-_0801D940: .4byte gUnknown_02024A64
-_0801D944: .4byte gUnknown_02024C6C
-_0801D948: .4byte gUnknown_02024BE6
-_0801D94C: .4byte gUnknown_02024C10
-_0801D950: .4byte gUnknown_081D8EEF
-_0801D954: .4byte 0x02000000
-_0801D958: .4byte 0x00016002
-_0801D95C: .4byte 0x000160a1
-_0801D960:
- ldr r2, _0801DA0C @ =gBattleMoves
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0801D986
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801D986
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801D992
-_0801D986:
- ldr r0, _0801DA10 @ =0x02000000
- ldr r1, _0801DA14 @ =0x000160a1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801DA00
-_0801D992:
- ldr r0, _0801DA18 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DA3C
- ldr r1, _0801DA1C @ =gUnknown_02024A60
- ldr r2, _0801DA20 @ =gUnknown_02024C07
- mov r9, r2
- ldrb r0, [r2]
- strb r0, [r1]
- ldrh r1, [r3]
- ldr r6, _0801DA10 @ =0x02000000
- ldr r0, _0801DA24 @ =0x00016002
- adds r0, r6
- mov r8, r0
- ldrb r2, [r0]
- ldr r0, _0801DA28 @ =gBattleMovePower
- ldrh r3, [r0]
- ldr r0, _0801DA2C @ =gUnknown_02024BEC
- ldr r0, [r0]
- str r0, [sp]
- ldr r5, _0801DA30 @ =gBattleMons
- mov r0, r9
- ldrb r4, [r0]
- movs r0, 0x58
- muls r0, r4
- adds r0, r5
- adds r0, 0x2B
- ldrb r0, [r0]
- str r0, [sp, 0x4]
- mov r0, r9
- ldrb r4, [r0]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r4, _0801DA34 @ =gUnknown_02024CA8
- adds r0, r4
- str r0, [sp, 0x8]
- movs r0, 0
- bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes
- mov r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r2, _0801DA14 @ =0x000160a1
- adds r6, r2
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- mov r1, r9
- ldrb r0, [r1]
- bl dp01_battle_side_mark_buffer_for_execution
-_0801DA00:
- ldr r1, _0801DA38 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _0801DA4A
- .align 2, 0
-_0801DA0C: .4byte gBattleMoves
-_0801DA10: .4byte 0x02000000
-_0801DA14: .4byte 0x000160a1
-_0801DA18: .4byte gUnknown_02024C68
-_0801DA1C: .4byte gUnknown_02024A60
-_0801DA20: .4byte gUnknown_02024C07
-_0801DA24: .4byte 0x00016002
-_0801DA28: .4byte gBattleMovePower
-_0801DA2C: .4byte gUnknown_02024BEC
-_0801DA30: .4byte gBattleMons
-_0801DA34: .4byte gUnknown_02024CA8
-_0801DA38: .4byte gUnknown_02024C10
-_0801DA3C:
- ldr r4, _0801DA58 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801DA5C @ =gUnknown_081D8EEF
- str r0, [r4]
-_0801DA4A:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DA58: .4byte gUnknown_02024C10
-_0801DA5C: .4byte gUnknown_081D8EEF
- thumb_func_end sub_801D8EC
-
- thumb_func_start sub_801DA60
-sub_801DA60: @ 801DA60
- push {lr}
- ldr r0, _0801DA78 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DA72
- ldr r1, _0801DA7C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801DA72:
- pop {r0}
- bx r0
- .align 2, 0
-_0801DA78: .4byte gUnknown_02024A64
-_0801DA7C: .4byte gUnknown_02024C10
- thumb_func_end sub_801DA60
-
- thumb_func_start sub_801DA80
-sub_801DA80: @ 801DA80
- push {r4,r5,lr}
- ldr r0, _0801DAE4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DB36
- ldr r0, _0801DAE8 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DB2E
- ldr r0, _0801DAEC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _0801DAF0 @ =gUnknown_02024A60
- strb r0, [r2]
- ldr r1, _0801DAF4 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801DB00
- ldr r0, _0801DAF8 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- beq _0801DB00
- ldr r0, _0801DAFC @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- bne _0801DB00
- movs r0, 0x80
- adds r1, r2, 0
- bl b_std_message
- b _0801DB2E
- .align 2, 0
-_0801DAE4: .4byte gUnknown_02024A64
-_0801DAE8: .4byte gUnknown_02024C68
-_0801DAEC: .4byte gUnknown_02024C10
-_0801DAF0: .4byte gUnknown_02024A60
-_0801DAF4: .4byte gBattleMons
-_0801DAF8: .4byte gUnknown_02024CA8
-_0801DAFC: .4byte gUnknown_02024C6C
-_0801DB00:
- ldr r5, _0801DB3C @ =gUnknown_02024BEC
- ldrh r1, [r5]
- movs r0, 0
- bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
- ldr r4, _0801DB40 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801DB2E
- ldr r0, [r5]
- cmp r0, 0
- ble _0801DB2E
- ldr r0, _0801DB44 @ =gUnknown_030042E0
- ldrb r1, [r0, 0x5]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x5]
-_0801DB2E:
- ldr r1, _0801DB48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0801DB36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DB3C: .4byte gUnknown_02024BEC
-_0801DB40: .4byte gUnknown_02024A60
-_0801DB44: .4byte gUnknown_030042E0
-_0801DB48: .4byte gUnknown_02024C10
- thumb_func_end sub_801DA80
-
- thumb_func_start atk0C_datahpupdate
-atk0C_datahpupdate: @ 801DB4C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _0801DB74 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0801DB5A
- b _0801DF2E
-_0801DB5A:
- ldr r0, _0801DB78 @ =0x02000000
- ldr r1, _0801DB7C @ =0x0001601c
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _0801DB80
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0801DB80
- movs r6, 0x3F
- ands r6, r1
- b _0801DB90
- .align 2, 0
-_0801DB74: .4byte gUnknown_02024A64
-_0801DB78: .4byte 0x02000000
-_0801DB7C: .4byte 0x0001601c
-_0801DB80:
- ldr r2, _0801DC1C @ =gBattleMoves
- ldr r0, _0801DC20 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r6, [r0, 0x2]
-_0801DB90:
- ldr r0, _0801DC24 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801DB9E
- b _0801DF00
-_0801DB9E:
- ldr r0, _0801DC28 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _0801DC2C @ =gUnknown_02024A60
- strb r0, [r7]
- ldr r1, _0801DC30 @ =gBattleMons
- ldrb r2, [r7]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801DCB4
- ldr r0, _0801DC34 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r4, r1, r0
- ldrb r1, [r4, 0xA]
- mov r12, r0
- cmp r1, 0
- beq _0801DCB4
- ldr r0, _0801DC38 @ =gUnknown_02024C6C
- ldr r3, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r3, r0
- cmp r3, 0
- bne _0801DCB4
- adds r5, r1, 0
- ldr r6, _0801DC3C @ =gUnknown_02024BEC
- ldr r4, [r6]
- cmp r5, r4
- blt _0801DC48
- ldr r0, _0801DC40 @ =gUnknown_02024D68
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DC02
- str r4, [r1]
-_0801DC02:
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r12
- ldr r2, [r6]
- ldrb r0, [r1, 0xA]
- subs r0, r2
- strb r0, [r1, 0xA]
- ldr r1, _0801DC44 @ =gUnknown_02024BF0
- ldr r0, [r6]
- str r0, [r1]
- b _0801DC78
- .align 2, 0
-_0801DC1C: .4byte gBattleMoves
-_0801DC20: .4byte gUnknown_02024BE6
-_0801DC24: .4byte gUnknown_02024C68
-_0801DC28: .4byte gUnknown_02024C10
-_0801DC2C: .4byte gUnknown_02024A60
-_0801DC30: .4byte gBattleMons
-_0801DC34: .4byte gUnknown_02024CA8
-_0801DC38: .4byte gUnknown_02024C6C
-_0801DC3C: .4byte gUnknown_02024BEC
-_0801DC40: .4byte gUnknown_02024D68
-_0801DC44: .4byte gUnknown_02024BF0
-_0801DC48:
- ldr r0, _0801DCA0 @ =gUnknown_02024D68
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DC5C
- str r5, [r1]
-_0801DC5C:
- ldr r2, _0801DCA4 @ =gUnknown_02024BF0
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xA]
- str r0, [r2]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- strb r3, [r0, 0xA]
-_0801DC78:
- ldr r0, _0801DCA8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _0801DC8C
- b _0801DF26
-_0801DC8C:
- ldr r4, _0801DCAC @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- bl b_movescr_stack_push_cursor
- ldr r0, _0801DCB0 @ =gUnknown_081D99AB
- str r0, [r4]
- b _0801DF2E
- .align 2, 0
-_0801DCA0: .4byte gUnknown_02024D68
-_0801DCA4: .4byte gUnknown_02024BF0
-_0801DCA8: .4byte gUnknown_02024A60
-_0801DCAC: .4byte gUnknown_02024C10
-_0801DCB0: .4byte gUnknown_081D99AB
-_0801DCB4:
- ldr r0, _0801DCF4 @ =gUnknown_02024C6C
- ldr r2, [r0]
- ldr r1, _0801DCF8 @ =0xfffffeff
- ands r2, r1
- str r2, [r0]
- ldr r1, _0801DCFC @ =gUnknown_02024BEC
- ldr r5, [r1]
- mov r12, r0
- adds r7, r1, 0
- cmp r5, 0
- bge _0801DD08
- ldr r4, _0801DD00 @ =gBattleMons
- ldr r2, _0801DD04 @ =gUnknown_02024A60
- ldrb r0, [r2]
- movs r3, 0x58
- adds r1, r0, 0
- muls r1, r3
- adds r1, r4
- ldrh r0, [r1, 0x28]
- subs r0, r5
- strh r0, [r1, 0x28]
- ldrb r0, [r2]
- muls r0, r3
- adds r1, r0, r4
- ldrh r3, [r1, 0x2C]
- ldrh r0, [r1, 0x28]
- adds r5, r2, 0
- cmp r0, r3
- bhi _0801DCF0
- b _0801DEC6
-_0801DCF0:
- strh r3, [r1, 0x28]
- b _0801DEC6
- .align 2, 0
-_0801DCF4: .4byte gUnknown_02024C6C
-_0801DCF8: .4byte 0xfffffeff
-_0801DCFC: .4byte gUnknown_02024BEC
-_0801DD00: .4byte gBattleMons
-_0801DD04: .4byte gUnknown_02024A60
-_0801DD08:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _0801DD24
- movs r0, 0x21
- negs r0, r0
- ands r2, r0
- mov r0, r12
- str r2, [r0]
- ldr r5, _0801DD20 @ =gUnknown_02024A60
- b _0801DD6C
- .align 2, 0
-_0801DD20: .4byte gUnknown_02024A60
-_0801DD24:
- ldr r0, _0801DD4C @ =gUnknown_02024BF4
- ldr r2, _0801DD50 @ =gUnknown_02024A60
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- adds r0, r5
- str r0, [r1]
- ldr r0, _0801DD54 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- adds r5, r2, 0
- cmp r0, 0
- bne _0801DD60
- ldr r1, _0801DD58 @ =gUnknown_02024C74
- ldrb r0, [r5]
- adds r0, r1
- ldr r1, _0801DD5C @ =gUnknown_02024C07
- b _0801DD68
- .align 2, 0
-_0801DD4C: .4byte gUnknown_02024BF4
-_0801DD50: .4byte gUnknown_02024A60
-_0801DD54: .4byte gUnknown_02024C10
-_0801DD58: .4byte gUnknown_02024C74
-_0801DD5C: .4byte gUnknown_02024C07
-_0801DD60:
- ldr r1, _0801DD8C @ =gUnknown_02024C74
- ldrb r0, [r5]
- adds r0, r1
- ldr r1, _0801DD90 @ =gUnknown_02024C08
-_0801DD68:
- ldrb r1, [r1]
- strb r1, [r0]
-_0801DD6C:
- ldr r4, _0801DD94 @ =gBattleMons
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, r0, r4
- ldrh r0, [r2, 0x28]
- ldr r1, [r7]
- cmp r0, r1
- ble _0801DD9C
- subs r0, r1
- strh r0, [r2, 0x28]
- ldr r0, _0801DD98 @ =gUnknown_02024BF0
- str r1, [r0]
- adds r7, r0, 0
- b _0801DDAC
- .align 2, 0
-_0801DD8C: .4byte gUnknown_02024C74
-_0801DD90: .4byte gUnknown_02024C08
-_0801DD94: .4byte gBattleMons
-_0801DD98: .4byte gUnknown_02024BF0
-_0801DD9C:
- ldr r2, _0801DE20 @ =gUnknown_02024BF0
- str r0, [r2]
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- movs r1, 0
- strh r1, [r0, 0x28]
- adds r7, r2, 0
-_0801DDAC:
- ldr r2, _0801DE24 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0x4
- adds r3, r0, r1
- ldr r0, [r3]
- adds r4, r2, 0
- cmp r0, 0
- bne _0801DDD4
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DDD4
- ldr r0, [r7]
- str r0, [r3]
-_0801DDD4:
- cmp r6, 0x8
- bhi _0801DE5C
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DE58
- ldr r0, _0801DE28 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xDC
- beq _0801DE58
- ldr r3, _0801DE2C @ =gUnknown_02024D28
- ldrb r0, [r5]
- lsls r0, 4
- adds r1, r3, 0x4
- adds r0, r1
- ldr r2, [r7]
- str r2, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r1
- str r2, [r0]
- ldr r0, _0801DE30 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0801DE38
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DE34 @ =gUnknown_02024C07
- b _0801DE40
- .align 2, 0
-_0801DE20: .4byte gUnknown_02024BF0
-_0801DE24: .4byte gUnknown_02024D68
-_0801DE28: .4byte gUnknown_02024BE6
-_0801DE2C: .4byte gUnknown_02024D28
-_0801DE30: .4byte gUnknown_02024C10
-_0801DE34: .4byte gUnknown_02024C07
-_0801DE38:
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DE54 @ =gUnknown_02024C08
-_0801DE40:
- ldrb r1, [r2]
- strb r1, [r0, 0xC]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r2]
- strb r1, [r0, 0x10]
- b _0801DEC6
- .align 2, 0
-_0801DE54: .4byte gUnknown_02024C08
-_0801DE58:
- cmp r6, 0x8
- bls _0801DEC6
-_0801DE5C:
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DEC6
- ldr r3, _0801DEA0 @ =gUnknown_02024D28
- ldrb r0, [r5]
- lsls r0, 4
- adds r1, r3, 0
- adds r1, 0x8
- adds r0, r1
- ldr r2, [r7]
- str r2, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r1
- str r2, [r0]
- ldr r0, _0801DEA4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0801DEAC
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DEA8 @ =gUnknown_02024C07
- b _0801DEB4
- .align 2, 0
-_0801DEA0: .4byte gUnknown_02024D28
-_0801DEA4: .4byte gUnknown_02024C10
-_0801DEA8: .4byte gUnknown_02024C07
-_0801DEAC:
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DEF4 @ =gUnknown_02024C08
-_0801DEB4:
- ldrb r1, [r2]
- strb r1, [r0, 0xD]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r2]
- strb r1, [r0, 0x11]
-_0801DEC6:
- mov r1, r12
- ldr r0, [r1]
- ldr r1, _0801DEF8 @ =0xffefffff
- ands r0, r1
- mov r1, r12
- str r0, [r1]
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _0801DEFC @ =gUnknown_02024AA8
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0801DF26
- .align 2, 0
-_0801DEF4: .4byte gUnknown_02024C08
-_0801DEF8: .4byte 0xffefffff
-_0801DEFC: .4byte gUnknown_02024AA8
-_0801DF00:
- ldr r0, _0801DF38 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _0801DF3C @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r2, _0801DF40 @ =gUnknown_02024D68
- ldrb r1, [r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r1, r0, r2
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DF26
- ldr r0, _0801DF44 @ =0x0000ffff
- str r0, [r1]
-_0801DF26:
- ldr r1, _0801DF38 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0801DF2E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DF38: .4byte gUnknown_02024C10
-_0801DF3C: .4byte gUnknown_02024A60
-_0801DF40: .4byte gUnknown_02024D68
-_0801DF44: .4byte 0x0000ffff
- thumb_func_end atk0C_datahpupdate
-
- thumb_func_start atk0D_critmessage
-atk0D_critmessage: @ 801DF48
- push {lr}
- ldr r0, _0801DF84 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DF7E
- ldr r0, _0801DF88 @ =gCritMultiplier
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0801DF76
- ldr r0, _0801DF8C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DF76
- ldr r0, _0801DF90 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0xD9
- bl b_std_message
- ldr r1, _0801DF94 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x7]
-_0801DF76:
- ldr r1, _0801DF98 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801DF7E:
- pop {r0}
- bx r0
- .align 2, 0
-_0801DF84: .4byte gUnknown_02024A64
-_0801DF88: .4byte gCritMultiplier
-_0801DF8C: .4byte gUnknown_02024C68
-_0801DF90: .4byte gUnknown_02024C07
-_0801DF94: .4byte gUnknown_02024D1E
-_0801DF98: .4byte gUnknown_02024C10
- thumb_func_end atk0D_critmessage
-
- thumb_func_start atk0E_missmessage
-atk0E_missmessage: @ 801DF9C
- push {r4,lr}
- ldr r0, _0801DFD4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E05C
- ldr r4, _0801DFD8 @ =gUnknown_02024A60
- ldr r0, _0801DFDC @ =gUnknown_02024C08
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _0801DFE0 @ =gUnknown_02024C68
- ldrb r2, [r1]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0801E054
- movs r0, 0xFE
- ands r0, r2
- cmp r0, 0x10
- beq _0801E00E
- cmp r0, 0x10
- bgt _0801DFEA
- cmp r0, 0x4
- beq _0801DFFE
- cmp r0, 0x4
- bgt _0801DFE4
- cmp r0, 0x2
- beq _0801DFF8
- b _0801E00E
- .align 2, 0
-_0801DFD4: .4byte gUnknown_02024A64
-_0801DFD8: .4byte gUnknown_02024A60
-_0801DFDC: .4byte gUnknown_02024C08
-_0801DFE0: .4byte gUnknown_02024C68
-_0801DFE4:
- cmp r0, 0x8
- beq _0801E054
- b _0801E00E
-_0801DFEA:
- cmp r0, 0x40
- beq _0801E00E
- cmp r0, 0x40
- bgt _0801E00E
- cmp r0, 0x20
- beq _0801E054
- b _0801E00E
-_0801DFF8:
- movs r0, 0
- movs r1, 0xE
- b _0801E002
-_0801DFFE:
- movs r0, 0
- movs r1, 0xC
-_0801E002:
- bl dp01_build_cmdbuf_x2B_aa_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0801E054
-_0801E00E:
- ldrb r1, [r1]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801E01E
- movs r0, 0
- movs r1, 0xE
- b _0801E02A
-_0801E01E:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801E03C
- movs r0, 0
- movs r1, 0xC
-_0801E02A:
- bl dp01_build_cmdbuf_x2B_aa_0
- ldr r0, _0801E038 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0801E054
- .align 2, 0
-_0801E038: .4byte gUnknown_02024A60
-_0801E03C:
- movs r0, 0x28
- ands r0, r1
- cmp r0, 0
- bne _0801E054
- movs r0, 0
- movs r1, 0xD
- bl dp01_build_cmdbuf_x2B_aa_0
- ldr r0, _0801E064 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
-_0801E054:
- ldr r1, _0801E068 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801E05C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E064: .4byte gUnknown_02024A60
-_0801E068: .4byte gUnknown_02024C10
- thumb_func_end atk0E_missmessage
-
- thumb_func_start atk0F_resultmessage
-atk0F_resultmessage: @ 801E06C
- push {r4-r7,lr}
- movs r3, 0
- ldr r0, _0801E0A8 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E07A
- b _0801E20C
-_0801E07A:
- ldr r1, _0801E0AC @ =gUnknown_02024C68
- ldrb r2, [r1]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r2
- adds r6, r1, 0
- ldr r7, _0801E0B0 @ =gUnknown_02024D1E
- cmp r0, 0
- beq _0801E0B8
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0801E09A
- ldrb r0, [r7, 0x6]
- cmp r0, 0x2
- bls _0801E0B8
-_0801E09A:
- ldr r1, _0801E0B4 @ =gUnknown_08401508
- ldrb r0, [r7, 0x6]
- lsls r0, 1
- adds r0, r1
- ldrh r3, [r0]
- strb r4, [r7, 0x7]
- b _0801E1F6
- .align 2, 0
-_0801E0A8: .4byte gUnknown_02024A64
-_0801E0AC: .4byte gUnknown_02024C68
-_0801E0B0: .4byte gUnknown_02024D1E
-_0801E0B4: .4byte gUnknown_08401508
-_0801E0B8:
- movs r0, 0x1
- strb r0, [r7, 0x7]
- ldrb r5, [r6]
- movs r0, 0xFE
- ands r0, r5
- cmp r0, 0x10
- beq _0801E0FC
- cmp r0, 0x10
- bgt _0801E0DE
- cmp r0, 0x4
- beq _0801E0F8
- cmp r0, 0x4
- bgt _0801E0D8
- cmp r0, 0x2
- beq _0801E0F4
- b _0801E144
-_0801E0D8:
- cmp r0, 0x8
- beq _0801E150
- b _0801E144
-_0801E0DE:
- cmp r0, 0x40
- beq _0801E100
- cmp r0, 0x40
- bgt _0801E0EE
- cmp r0, 0x20
- bne _0801E0EC
- b _0801E1F0
-_0801E0EC:
- b _0801E144
-_0801E0EE:
- cmp r0, 0x80
- beq _0801E104
- b _0801E144
-_0801E0F4:
- movs r3, 0xDE
- b _0801E1FA
-_0801E0F8:
- movs r3, 0xDD
- b _0801E1FA
-_0801E0FC:
- movs r3, 0xDA
- b _0801E1FA
-_0801E100:
- movs r3, 0x99
- b _0801E1FA
-_0801E104:
- ldr r4, _0801E12C @ =gUnknown_02024C04
- ldr r2, _0801E130 @ =gBattleMons
- ldr r3, _0801E134 @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- ldr r1, _0801E138 @ =gUnknown_02024C0B
- ldrb r0, [r3]
- strb r0, [r1]
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r6]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E13C @ =gUnknown_02024C10
- ldr r0, _0801E140 @ =gUnknown_081D9AC6
- b _0801E20A
- .align 2, 0
-_0801E12C: .4byte gUnknown_02024C04
-_0801E130: .4byte gBattleMons
-_0801E134: .4byte gUnknown_02024C08
-_0801E138: .4byte gUnknown_02024C0B
-_0801E13C: .4byte gUnknown_02024C10
-_0801E140: .4byte gUnknown_081D9AC6
-_0801E144:
- adds r2, r6, 0
- ldrb r5, [r2]
- movs r0, 0x8
- ands r0, r5
- cmp r0, 0
- beq _0801E154
-_0801E150:
- movs r3, 0x1B
- b _0801E1FA
-_0801E154:
- movs r0, 0x10
- ands r0, r5
- cmp r0, 0
- beq _0801E17C
- movs r0, 0xEF
- ands r0, r5
- movs r1, 0xFD
- ands r0, r1
- movs r1, 0xFB
- ands r0, r1
- strb r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E174 @ =gUnknown_02024C10
- ldr r0, _0801E178 @ =gUnknown_081D94A9
- b _0801E20A
- .align 2, 0
-_0801E174: .4byte gUnknown_02024C10
-_0801E178: .4byte gUnknown_081D94A9
-_0801E17C:
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _0801E19C
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E194 @ =gUnknown_02024C10
- ldr r0, _0801E198 @ =gUnknown_081D94A2
- b _0801E20A
- .align 2, 0
-_0801E194: .4byte gUnknown_02024C10
-_0801E198: .4byte gUnknown_081D94A2
-_0801E19C:
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _0801E1E4
- ldr r4, _0801E1CC @ =gUnknown_02024C04
- ldr r2, _0801E1D0 @ =gBattleMons
- ldr r3, _0801E1D4 @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- ldr r1, _0801E1D8 @ =gUnknown_02024C0B
- ldrb r0, [r3]
- strb r0, [r1]
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r6]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E1DC @ =gUnknown_02024C10
- ldr r0, _0801E1E0 @ =gUnknown_081D9AC6
- b _0801E20A
- .align 2, 0
-_0801E1CC: .4byte gUnknown_02024C04
-_0801E1D0: .4byte gBattleMons
-_0801E1D4: .4byte gUnknown_02024C08
-_0801E1D8: .4byte gUnknown_02024C0B
-_0801E1DC: .4byte gUnknown_02024C10
-_0801E1E0: .4byte gUnknown_081D9AC6
-_0801E1E4:
- movs r0, 0x20
- ands r0, r5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0801E1F4
-_0801E1F0:
- movs r3, 0xE5
- b _0801E1FA
-_0801E1F4:
- strb r0, [r7, 0x7]
-_0801E1F6:
- cmp r3, 0
- beq _0801E204
-_0801E1FA:
- adds r0, r3, 0
- ldr r1, _0801E214 @ =gUnknown_02024C07
- ldrb r1, [r1]
- bl b_std_message
-_0801E204:
- ldr r1, _0801E218 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
-_0801E20A:
- str r0, [r1]
-_0801E20C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E214: .4byte gUnknown_02024C07
-_0801E218: .4byte gUnknown_02024C10
- thumb_func_end atk0F_resultmessage
-
- thumb_func_start atk10_printstring
-atk10_printstring: @ 801E21C
- push {r4,lr}
- ldr r0, _0801E24C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E246
- ldr r4, _0801E250 @ =gUnknown_02024C10
- ldr r1, [r4]
- ldrb r0, [r1, 0x1]
- ldrb r1, [r1, 0x2]
- lsls r1, 8
- orrs r0, r1
- ldr r1, _0801E254 @ =gUnknown_02024C07
- ldrb r1, [r1]
- bl b_std_message
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- ldr r1, _0801E258 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x7]
-_0801E246:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E24C: .4byte gUnknown_02024A64
-_0801E250: .4byte gUnknown_02024C10
-_0801E254: .4byte gUnknown_02024C07
-_0801E258: .4byte gUnknown_02024D1E
- thumb_func_end atk10_printstring
-
- thumb_func_start atk11_printstring2
-atk11_printstring2: @ 801E25C
- push {r4,r5,lr}
- ldr r5, _0801E290 @ =gUnknown_02024A60
- ldr r0, _0801E294 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _0801E298 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl dp01_build_cmdbuf_x11_TODO
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- ldr r1, _0801E29C @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x7]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E290: .4byte gUnknown_02024A60
-_0801E294: .4byte gUnknown_02024C07
-_0801E298: .4byte gUnknown_02024C10
-_0801E29C: .4byte gUnknown_02024D1E
- thumb_func_end atk11_printstring2
-
- thumb_func_start atk12_waitmessage
-atk12_waitmessage: @ 801E2A0
- push {r4-r6,lr}
- ldr r0, _0801E2BC @ =gUnknown_02024A64
- ldr r4, [r0]
- cmp r4, 0
- bne _0801E2EE
- ldr r6, _0801E2C0 @ =gUnknown_02024D1E
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _0801E2C8
- ldr r1, _0801E2C4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
- b _0801E2EE
- .align 2, 0
-_0801E2BC: .4byte gUnknown_02024A64
-_0801E2C0: .4byte gUnknown_02024D1E
-_0801E2C4: .4byte gUnknown_02024C10
-_0801E2C8:
- ldr r5, _0801E2F4 @ =gUnknown_02024C10
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _0801E2F8 @ =gUnknown_02024D18
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _0801E2EE
- movs r1, 0
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
- strb r1, [r6, 0x7]
-_0801E2EE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E2F4: .4byte gUnknown_02024C10
-_0801E2F8: .4byte gUnknown_02024D18
- thumb_func_end atk12_waitmessage
-
- thumb_func_start atk13_printfromtable
-atk13_printfromtable: @ 801E2FC
- push {r4,r5,lr}
- ldr r0, _0801E340 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E33A
- ldr r4, _0801E344 @ =gUnknown_02024C10
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r5, _0801E348 @ =gUnknown_02024D1E
- ldrb r0, [r5, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, _0801E34C @ =gUnknown_02024C07
- ldrb r1, [r1]
- bl b_std_message
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- movs r0, 0x1
- strb r0, [r5, 0x7]
-_0801E33A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E340: .4byte gUnknown_02024A64
-_0801E344: .4byte gUnknown_02024C10
-_0801E348: .4byte gUnknown_02024D1E
-_0801E34C: .4byte gUnknown_02024C07
- thumb_func_end atk13_printfromtable
-
- thumb_func_start atk14_printfromtable2
-atk14_printfromtable2: @ 801E350
- push {r4-r6,lr}
- ldr r0, _0801E3A0 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E39A
- ldr r5, _0801E3A4 @ =gUnknown_02024C10
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r6, _0801E3A8 @ =gUnknown_02024D1E
- ldrb r0, [r6, 0x5]
- lsls r0, 1
- adds r1, r0
- ldr r4, _0801E3AC @ =gUnknown_02024A60
- ldr r0, _0801E3B0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldrh r1, [r1]
- movs r0, 0
- bl dp01_build_cmdbuf_x11_TODO
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
- movs r0, 0x1
- strb r0, [r6, 0x7]
-_0801E39A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E3A0: .4byte gUnknown_02024A64
-_0801E3A4: .4byte gUnknown_02024C10
-_0801E3A8: .4byte gUnknown_02024D1E
-_0801E3AC: .4byte gUnknown_02024A60
-_0801E3B0: .4byte gUnknown_02024C07
- thumb_func_end atk14_printfromtable2
-
- thumb_func_start sub_801E3B4
-sub_801E3B4: @ 801E3B4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r0, _0801E3E4 @ =gUnknown_02024A68
- ldrb r3, [r0]
- cmp r1, r3
- bge _0801E3DA
- ldr r4, _0801E3E8 @ =gUnknown_02024A7A
- ldrb r0, [r4]
- cmp r0, r2
- beq _0801E3DA
-_0801E3CC:
- adds r1, 0x1
- cmp r1, r3
- bge _0801E3DA
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _0801E3CC
-_0801E3DA:
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801E3E4: .4byte gUnknown_02024A68
-_0801E3E8: .4byte gUnknown_02024A7A
- thumb_func_end sub_801E3B4
-
- thumb_func_start sub_801E3EC
-sub_801E3EC: @ 801E3EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0
- mov r10, r0
- movs r6, 0
- movs r1, 0x1
- str r1, [sp, 0x4]
- ldr r1, _0801E430 @ =gUnknown_02024D1E
- ldrb r3, [r1, 0x3]
- movs r0, 0x40
- ands r0, r3
- adds r7, r1, 0
- cmp r0, 0
- beq _0801E444
- ldr r2, _0801E434 @ =gUnknown_02024C0A
- ldr r0, _0801E438 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0xBF
- ands r0, r3
- strb r0, [r7, 0x3]
- movs r6, 0x40
- ldr r0, _0801E43C @ =0x02000000
- ldr r1, _0801E440 @ =gUnknown_02024C08
- b _0801E450
- .align 2, 0
-_0801E430: .4byte gUnknown_02024D1E
-_0801E434: .4byte gUnknown_02024C0A
-_0801E438: .4byte gUnknown_02024C07
-_0801E43C: .4byte 0x02000000
-_0801E440: .4byte gUnknown_02024C08
-_0801E444:
- ldr r2, _0801E538 @ =gUnknown_02024C0A
- ldr r0, _0801E53C @ =gUnknown_02024C08
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _0801E540 @ =0x02000000
- ldr r1, _0801E544 @ =gUnknown_02024C07
-_0801E450:
- ldrb r1, [r1]
- ldr r3, _0801E548 @ =0x00016003
- adds r0, r3
- strb r1, [r0]
- mov r8, r2
- ldr r2, _0801E54C @ =gBattleMons
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x13
- bne _0801E48A
- ldr r0, _0801E550 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- bne _0801E48A
- cmp r4, 0
- bne _0801E48A
- ldrb r0, [r7, 0x3]
- cmp r0, 0x9
- bhi _0801E48A
- bl _0801F5DC
-_0801E48A:
- mov r1, r8
- ldrb r0, [r1]
- bl battle_get_per_side_status
- ldr r2, _0801E554 @ =gUnknown_02024C7A
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801E4C4
- ldr r0, _0801E550 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- bne _0801E4C4
- cmp r4, 0
- bne _0801E4C4
- ldr r0, _0801E558 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- cmp r0, 0x7
- bhi _0801E4C4
- bl _0801F5DC
-_0801E4C4:
- ldr r3, _0801E54C @ =gBattleMons
- ldr r2, _0801E538 @ =gUnknown_02024C0A
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- mov r8, r2
- mov r9, r3
- cmp r0, 0
- bne _0801E4EA
- ldr r0, _0801E558 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- cmp r0, 0xB
- beq _0801E4EA
- cmp r0, 0x1F
- beq _0801E4EA
- bl _0801F5DC
-_0801E4EA:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801E50C
- cmp r6, 0x40
- beq _0801E50C
- bl _0801F5DC
-_0801E50C:
- ldr r0, _0801E558 @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x3]
- adds r7, r0, 0
- cmp r1, 0x6
- bls _0801E518
- b _0801EB4A
-_0801E518:
- ldr r1, _0801E55C @ =gUnknown_081FAB5C
- ldrb r0, [r7, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x10
- bne _0801E528
- b _0801E714
-_0801E528:
- cmp r0, 0x10
- bhi _0801E560
- cmp r0, 0x7
- beq _0801E57A
- cmp r0, 0x8
- bne _0801E536
- b _0801E630
-_0801E536:
- b _0801EA14
- .align 2, 0
-_0801E538: .4byte gUnknown_02024C0A
-_0801E53C: .4byte gUnknown_02024C08
-_0801E540: .4byte 0x02000000
-_0801E544: .4byte gUnknown_02024C07
-_0801E548: .4byte 0x00016003
-_0801E54C: .4byte gBattleMons
-_0801E550: .4byte gUnknown_02024C6C
-_0801E554: .4byte gUnknown_02024C7A
-_0801E558: .4byte gUnknown_02024D1E
-_0801E55C: .4byte gUnknown_081FAB5C
-_0801E560:
- cmp r0, 0x40
- bne _0801E566
- b _0801E888
-_0801E566:
- cmp r0, 0x40
- bhi _0801E572
- cmp r0, 0x20
- bne _0801E570
- b _0801E7EA
-_0801E570:
- b _0801EA14
-_0801E572:
- cmp r0, 0x80
- bne _0801E578
- b _0801E8E4
-_0801E578:
- b _0801EA14
-_0801E57A:
- mov r3, r8
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- beq _0801E5DC
- ldr r0, _0801E5D4 @ =gUnknown_02024A60
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0801E5D8 @ =gUnknown_02024A68
- ldrb r3, [r1]
- adds r7, r0, 0
- mov r12, r1
- cmp r3, 0
- beq _0801E5E8
- mov r4, r9
- ldr r0, [r4, 0x50]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- bne _0801E5E8
- adds r1, r7, 0
- mov r6, r9
- adds r6, 0x50
- movs r5, 0x58
- movs r4, 0x70
-_0801E5B4:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcs _0801E5E8
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801E5B4
- b _0801E5E8
- .align 2, 0
-_0801E5D4: .4byte gUnknown_02024A60
-_0801E5D8: .4byte gUnknown_02024A68
-_0801E5DC:
- ldr r0, _0801E628 @ =gUnknown_02024A60
- ldr r2, _0801E62C @ =gUnknown_02024A68
- ldrb r1, [r2]
- strb r1, [r0]
- adds r7, r0, 0
- mov r12, r2
-_0801E5E8:
- mov r0, r8
- ldrb r2, [r0]
- movs r0, 0x58
- adds r1, r2, 0
- muls r1, r0
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E600
- b _0801EA14
-_0801E600:
- ldrb r0, [r7]
- mov r3, r12
- ldrb r3, [r3]
- cmp r0, r3
- beq _0801E60C
- b _0801EA14
-_0801E60C:
- mov r4, r9
- adds r0, r1, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- bne _0801E61A
- b _0801EA14
-_0801E61A:
- cmp r0, 0xF
- bne _0801E620
- b _0801EA14
-_0801E620:
- adds r0, r2, 0
- bl b_cancel_multi_turn_move_maybe
- b _0801EA04
- .align 2, 0
-_0801E628: .4byte gUnknown_02024A60
-_0801E62C: .4byte gUnknown_02024A68
-_0801E630:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x11
- bne _0801E688
- cmp r4, 0x1
- beq _0801E64A
- cmp r5, 0x80
- bne _0801E688
-_0801E64A:
- ldr r0, _0801E678 @ =byte_2024C06
- strb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x11
- bl sub_81074C4
- ldr r4, _0801E67C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E680 @ =BattleScript_1D98BD
-_0801E664:
- str r0, [r4]
- ldr r2, _0801E684 @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E676
- b _0801E928
-_0801E676:
- b _0801E94C
- .align 2, 0
-_0801E678: .4byte byte_2024C06
-_0801E67C: .4byte gUnknown_02024C10
-_0801E680: .4byte BattleScript_1D98BD
-_0801E684: .4byte gUnknown_02024C6C
-_0801E688:
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x58
- muls r0, r1
- add r0, r9
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0x3
- beq _0801E6AC
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801E6AC
- cmp r1, 0x8
- beq _0801E6AC
- cmp r0, 0x8
- bne _0801E6C6
-_0801E6AC:
- ldr r0, _0801E710 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E6C6
- cmp r4, 0x1
- bne _0801E6C0
- b _0801E98C
-_0801E6C0:
- cmp r5, 0x80
- bne _0801E6C6
- b _0801E98C
-_0801E6C6:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r1, r0
- mov r4, r9
- adds r3, r1, r4
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r4, [r0]
- cmp r4, 0x3
- bne _0801E6DE
- b _0801EA14
-_0801E6DE:
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0801E6E8
- b _0801EA14
-_0801E6E8:
- cmp r4, 0x8
- bne _0801E6EE
- b _0801EA14
-_0801E6EE:
- cmp r0, 0x8
- bne _0801E6F4
- b _0801EA14
-_0801E6F4:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E702
- b _0801EA14
-_0801E702:
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x11
- bne _0801E70E
- b _0801EA14
-_0801E70E:
- b _0801EA04
- .align 2, 0
-_0801E710: .4byte gUnknown_02024C6C
-_0801E714:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x29
- bne _0801E758
- cmp r4, 0x1
- beq _0801E72E
- cmp r5, 0x80
- bne _0801E758
-_0801E72E:
- ldr r0, _0801E74C @ =byte_2024C06
- strb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x29
- bl sub_81074C4
- ldr r4, _0801E750 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E754 @ =BattleScript_1D98A5
- b _0801E664
- .align 2, 0
-_0801E74C: .4byte byte_2024C06
-_0801E750: .4byte gUnknown_02024C10
-_0801E754: .4byte BattleScript_1D98A5
-_0801E758:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- mov r2, r9
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xA
- beq _0801E778
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7A8
-_0801E778:
- ldr r0, _0801E79C @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E7A8
- cmp r4, 0x1
- beq _0801E78E
- cmp r5, 0x80
- bne _0801E7A8
-_0801E78E:
- ldr r4, _0801E7A0 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E7A4 @ =BattleScript_1D98A5
- b _0801E998
- .align 2, 0
-_0801E79C: .4byte gUnknown_02024C6C
-_0801E7A0: .4byte gUnknown_02024C10
-_0801E7A4: .4byte BattleScript_1D98A5
-_0801E7A8:
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x58
- adds r2, r0, 0
- muls r2, r1
- mov r4, r9
- adds r1, r2, r4
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7C2
- b _0801EA14
-_0801E7C2:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7CE
- b _0801EA14
-_0801E7CE:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _0801E7DA
- b _0801EA14
-_0801E7DA:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E7E8
- b _0801EA14
-_0801E7E8:
- b _0801EA04
-_0801E7EA:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801E826
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801E826
- ldr r0, _0801E87C @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0801E826
- movs r1, 0
- str r1, [sp, 0x4]
-_0801E826:
- ldr r4, _0801E880 @ =gBattleMons
- ldr r0, _0801E884 @ =gUnknown_02024C0A
- ldrb r3, [r0]
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r1, r2, r4
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xF
- bne _0801E840
- b _0801EA14
-_0801E840:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xF
- bne _0801E84C
- b _0801EA14
-_0801E84C:
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E85A
- b _0801EA14
-_0801E85A:
- ldr r2, [sp, 0x4]
- cmp r2, 0
- bne _0801E862
- b _0801EA14
-_0801E862:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x28
- bne _0801E86E
- b _0801EA14
-_0801E86E:
- adds r0, r3, 0
- bl b_cancel_multi_turn_move_maybe
- movs r3, 0x1
- mov r10, r3
- b _0801EA14
- .align 2, 0
-_0801E87C: .4byte word_2024DB8
-_0801E880: .4byte gBattleMons
-_0801E884: .4byte gUnknown_02024C0A
-_0801E888:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- mov r2, r9
- adds r0, r1, r2
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x7
- bne _0801E8D0
- cmp r4, 0x1
- beq _0801E8A6
- cmp r5, 0x80
- beq _0801E8A6
- b _0801EA14
-_0801E8A6:
- ldr r0, _0801E8C4 @ =byte_2024C06
- strb r2, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x7
- bl sub_81074C4
- ldr r4, _0801E8C8 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E8CC @ =BattleScript_1D98B1
- b _0801E664
- .align 2, 0
-_0801E8C4: .4byte byte_2024C06
-_0801E8C8: .4byte gUnknown_02024C10
-_0801E8CC: .4byte BattleScript_1D98B1
-_0801E8D0:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E8DE
- b _0801EA14
-_0801E8DE:
- movs r4, 0x1
- mov r10, r4
- b _0801EA14
-_0801E8E4:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x11
- bne _0801E952
- cmp r4, 0x1
- beq _0801E8FE
- cmp r5, 0x80
- bne _0801E952
-_0801E8FE:
- ldr r0, _0801E938 @ =byte_2024C06
- strb r1, [r0]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x11
- bl sub_81074C4
- ldr r4, _0801E93C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E940 @ =BattleScript_1D98BD
- str r0, [r4]
- ldr r2, _0801E944 @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E94C
-_0801E928:
- movs r0, 0x1
- strb r0, [r7, 0x5]
- ldr r0, _0801E948 @ =0xffffdfff
- ands r1, r0
- str r1, [r2]
- bl _0801F5FA
- .align 2, 0
-_0801E938: .4byte byte_2024C06
-_0801E93C: .4byte gUnknown_02024C10
-_0801E940: .4byte BattleScript_1D98BD
-_0801E944: .4byte gUnknown_02024C6C
-_0801E948: .4byte 0xffffdfff
-_0801E94C:
- strb r0, [r7, 0x5]
- bl _0801F5FA
-_0801E952:
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x58
- muls r0, r1
- add r0, r9
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0x3
- beq _0801E976
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801E976
- cmp r1, 0x8
- beq _0801E976
- cmp r0, 0x8
- bne _0801E9B4
-_0801E976:
- ldr r0, _0801E9A4 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E9B4
- cmp r4, 0x1
- beq _0801E98C
- cmp r5, 0x80
- bne _0801E9B4
-_0801E98C:
- ldr r4, _0801E9A8 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E9AC @ =BattleScript_1D98BD
-_0801E998:
- str r0, [r4]
- ldr r1, _0801E9B0 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- bl _0801F5FA
- .align 2, 0
-_0801E9A4: .4byte gUnknown_02024C6C
-_0801E9A8: .4byte gUnknown_02024C10
-_0801E9AC: .4byte BattleScript_1D98BD
-_0801E9B0: .4byte gUnknown_02024D1E
-_0801E9B4:
- mov r3, r8
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- mov r2, r9
- adds r2, 0x4C
- adds r5, r0, r2
- ldr r4, [r5]
- cmp r4, 0
- bne _0801EA14
- mov r3, r9
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r3, [r0]
- cmp r3, 0x3
- beq _0801EA0A
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801EA0A
- cmp r3, 0x8
- beq _0801EA0A
- cmp r0, 0x8
- beq _0801EA0A
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _0801EA14
- mov r4, r8
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x9
- negs r2, r2
- ands r0, r2
- str r0, [r1]
-_0801EA04:
- movs r0, 0x1
- mov r10, r0
- b _0801EA14
-_0801EA0A:
- ldr r0, _0801EA58 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0801EA14:
- mov r1, r10
- cmp r1, 0x1
- beq _0801EA1C
- b _0801EB3C
-_0801EA1C:
- ldr r0, _0801EA5C @ =gUnknown_02024C10
- ldr r0, [r0]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EA60 @ =gUnknown_081FAB5C
- ldr r0, _0801EA64 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r3, [r0]
- cmp r3, 0x7
- bne _0801EA70
- bl Random
- ldr r2, _0801EA68 @ =gBattleMons
- ldr r1, _0801EA6C @ =gUnknown_02024C0A
- ldrb r3, [r1]
- movs r1, 0x58
- muls r3, r1
- adds r2, 0x4C
- adds r3, r2
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- b _0801EA84
- .align 2, 0
-_0801EA58: .4byte gUnknown_02024C68
-_0801EA5C: .4byte gUnknown_02024C10
-_0801EA60: .4byte gUnknown_081FAB5C
-_0801EA64: .4byte gUnknown_02024D1E
-_0801EA68: .4byte gBattleMons
-_0801EA6C: .4byte gUnknown_02024C0A
-_0801EA70:
- ldr r2, _0801EAD4 @ =gBattleMons
- ldr r0, _0801EAD8 @ =gUnknown_02024C0A
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r2, 0x4C
- adds r1, r2
- ldr r0, [r1]
- orrs r0, r3
- str r0, [r1]
-_0801EA84:
- ldr r2, _0801EADC @ =gUnknown_02024C10
- ldr r1, _0801EAE0 @ =gUnknown_081FAC4C
- ldr r5, _0801EAE4 @ =gUnknown_02024D1E
- ldrb r0, [r5, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldr r4, _0801EAE8 @ =gUnknown_02024A60
- ldr r1, _0801EAD8 @ =gUnknown_02024C0A
- ldrb r0, [r1]
- strb r0, [r4]
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _0801EAEC @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r2, _0801EAF0 @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801EAF8
- movs r0, 0x1
- strb r0, [r5, 0x5]
- ldr r0, _0801EAF4 @ =0xffffdfff
- ands r1, r0
- str r1, [r2]
- b _0801EAFA
- .align 2, 0
-_0801EAD4: .4byte gBattleMons
-_0801EAD8: .4byte gUnknown_02024C0A
-_0801EADC: .4byte gUnknown_02024C10
-_0801EAE0: .4byte gUnknown_081FAC4C
-_0801EAE4: .4byte gUnknown_02024D1E
-_0801EAE8: .4byte gUnknown_02024A60
-_0801EAEC: .4byte gUnknown_02024ACC
-_0801EAF0: .4byte gUnknown_02024C6C
-_0801EAF4: .4byte 0xffffdfff
-_0801EAF8:
- strb r0, [r5, 0x5]
-_0801EAFA:
- ldr r0, _0801EB2C @ =gUnknown_02024D1E
- ldrb r2, [r0, 0x3]
- adds r7, r0, 0
- cmp r2, 0x2
- beq _0801EB14
- cmp r2, 0x6
- beq _0801EB14
- cmp r2, 0x5
- beq _0801EB14
- cmp r2, 0x3
- beq _0801EB14
- bl _0801F5FA
-_0801EB14:
- ldr r0, _0801EB30 @ =0x02000000
- ldrb r1, [r7, 0x3]
- ldr r2, _0801EB34 @ =0x000160ca
- adds r0, r2
- strb r1, [r0]
- ldr r2, _0801EB38 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 7
- bl _0801F4F2
- .align 2, 0
-_0801EB2C: .4byte gUnknown_02024D1E
-_0801EB30: .4byte 0x02000000
-_0801EB34: .4byte 0x000160ca
-_0801EB38: .4byte gUnknown_02024C6C
-_0801EB3C:
- mov r3, r10
- cmp r3, 0
- beq _0801EB46
- bl _0801F5FA
-_0801EB46:
- bl _0801F5DC
-_0801EB4A:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- mov r0, r9
- adds r0, 0x50
- adds r1, r0
- ldr r2, _0801EB84 @ =gUnknown_081FAB5C
- ldrb r3, [r7, 0x3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801EB6E
- bl _0801F5DC
-_0801EB6E:
- subs r0, r3, 0x7
- cmp r0, 0x34
- bls _0801EB78
- bl _0801F5FA
-_0801EB78:
- lsls r0, 2
- ldr r1, _0801EB88 @ =_0801EB8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801EB84: .4byte gUnknown_081FAB5C
-_0801EB88: .4byte _0801EB8C
- .align 2, 0
-_0801EB8C:
- .4byte _0801EC60
- .4byte _0801ECD4
- .4byte _0801EE4C
- .4byte _0801ED60
- .4byte _0801EDDC
- .4byte _0801EE84
- .4byte _0801EECC
- .4byte _0801EFA8
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F13C
- .4byte _0801F184
- .4byte _0801F1A4
- .4byte _0801F364
- .4byte _0801F3A0
- .4byte _0801F3BC
- .4byte _0801F3D4
- .4byte _0801F3EC
- .4byte _0801F44C
- .4byte _0801F464
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F4A8
- .4byte _0801F500
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5EC
-_0801EC60:
- mov r1, r8
- ldrb r0, [r1]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- mov r2, r9
- adds r0, r1, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801EC7A
- bl _0801F5DC
-_0801EC7A:
- mov r4, r9
- adds r4, 0x50
- adds r0, r1, r4
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801EC8E
- bl _0801F5DC
-_0801EC8E:
- bl Random
- mov r3, r8
- ldrb r1, [r3]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 16
- adds r1, 0x2
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r4, _0801ECC8 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801ECCC @ =gUnknown_081FAC4C
- ldr r0, _0801ECD0 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801ECC8: .4byte gUnknown_02024C10
-_0801ECCC: .4byte gUnknown_081FAC4C
-_0801ECD0: .4byte gUnknown_02024D1E
-_0801ECD4:
- mov r0, r8
- ldrb r2, [r0]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x27
- bne _0801ED18
- cmp r4, 0x1
- beq _0801ECF4
- cmp r5, 0x80
- beq _0801ECF4
- bl _0801F5DC
-_0801ECF4:
- ldr r0, _0801ED0C @ =byte_2024C06
- strb r1, [r0]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x27
- bl sub_81074C4
- ldr r1, _0801ED10 @ =gUnknown_02024C10
- ldr r0, _0801ED14 @ =gUnknown_081D98D7
- str r0, [r1]
- bl _0801F5FA
- .align 2, 0
-_0801ED0C: .4byte byte_2024C06
-_0801ED10: .4byte gUnknown_02024C10
-_0801ED14: .4byte gUnknown_081D98D7
-_0801ED18:
- adds r0, r2, 0
- bl sub_801E3B4
- ldr r1, _0801ED54 @ =gUnknown_02024A7E
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bhi _0801ED2E
- bl _0801F5DC
-_0801ED2E:
- mov r2, r8
- ldrb r0, [r2]
- adds r2, r0, 0
- muls r2, r6
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r1, _0801ED58 @ =gUnknown_081FAB5C
- ldr r0, _0801ED5C @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r2]
- bl _0801F5DC
- .align 2, 0
-_0801ED54: .4byte gUnknown_02024A7E
-_0801ED58: .4byte gUnknown_081FAB5C
-_0801ED5C: .4byte gUnknown_02024D1E
-_0801ED60:
- mov r3, r8
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- mov r4, r9
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0x70
- ands r0, r1
- cmp r0, 0
- beq _0801ED7C
- bl _0801F5DC
-_0801ED7C:
- movs r0, 0x80
- lsls r0, 5
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801EDC8 @ =gUnknown_02024C54
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801EDCC @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0]
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- lsls r1, 4
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r4, _0801EDD0 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EDD4 @ =gUnknown_081FAC4C
- ldr r0, _0801EDD8 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801EDC8: .4byte gUnknown_02024C54
-_0801EDCC: .4byte gUnknown_02024BE6
-_0801EDD0: .4byte gUnknown_02024C10
-_0801EDD4: .4byte gUnknown_081FAC4C
-_0801EDD8: .4byte gUnknown_02024D1E
-_0801EDDC:
- ldr r5, _0801EE30 @ =gUnknown_02024C07
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0801EE14
- ldr r4, _0801EE34 @ =gUnknown_02024D1A
- ldrh r3, [r4]
- ldr r2, _0801EE38 @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r3, r0
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r3, r0
- bls _0801EE14
- ldr r3, _0801EE3C @ =0x0000ffff
- adds r0, r3, 0
- strh r0, [r4]
-_0801EE14:
- ldr r4, _0801EE40 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EE44 @ =gUnknown_081FAC4C
- ldr r0, _0801EE48 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801EE30: .4byte gUnknown_02024C07
-_0801EE34: .4byte gUnknown_02024D1A
-_0801EE38: .4byte gBattleMons
-_0801EE3C: .4byte 0x0000ffff
-_0801EE40: .4byte gUnknown_02024C10
-_0801EE44: .4byte gUnknown_081FAC4C
-_0801EE48: .4byte gUnknown_02024D1E
-_0801EE4C:
- mov r4, r8
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _0801EE62
- b _0801F5DC
-_0801EE62:
- bl Random
- ldr r4, _0801EE80 @ =gUnknown_02024D1E
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x3
- strb r0, [r4, 0x3]
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- b _0801F5FA
- .align 2, 0
-_0801EE80: .4byte gUnknown_02024D1E
-_0801EE84:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _0801EEC0 @ =gUnknown_02024C54
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801EEC4 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0]
- ldr r0, _0801EEC8 @ =gUnknown_02024D28
- ldrb r1, [r2]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x1]
- b _0801F5DC
- .align 2, 0
-_0801EEC0: .4byte gUnknown_02024C54
-_0801EEC4: .4byte gUnknown_02024BE6
-_0801EEC8: .4byte gUnknown_02024D28
-_0801EECC:
- mov r3, r8
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- mov r4, r9
- adds r4, 0x50
- adds r0, r4
- ldr r5, [r0]
- movs r0, 0xE0
- lsls r0, 8
- ands r5, r0
- cmp r5, 0
- beq _0801EEE8
- b _0801F5DC
-_0801EEE8:
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r6
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x3
- lsls r1, 13
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801EF80 @ =0x02000000
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- ldr r4, _0801EF84 @ =0x00016004
- adds r0, r4
- adds r0, r2
- ldr r6, _0801EF88 @ =gUnknown_02024BE6
- ldrh r1, [r6]
- strb r1, [r0]
- ldrb r0, [r3]
- lsls r0, 1
- ldr r1, _0801EF8C @ =0x00016005
- adds r0, r1
- adds r0, r2
- ldrh r1, [r6]
- lsrs r1, 8
- strb r1, [r0]
- ldrb r0, [r3]
- ldr r3, _0801EF90 @ =0x00016020
- adds r0, r3
- adds r0, r2
- ldr r1, _0801EF94 @ =gUnknown_02024C07
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r4, _0801EF98 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EF9C @ =gUnknown_081FAC4C
- ldr r2, _0801EFA0 @ =gUnknown_02024D1E
- ldrb r0, [r2, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r4]
- strb r5, [r2, 0x5]
- ldr r1, _0801EFA4 @ =gUnknown_0840164C
- ldrh r0, [r1]
- ldrh r4, [r6]
- cmp r0, r4
- bne _0801EF5C
- b _0801F5FA
-_0801EF5C:
- adds r3, r1, 0
- adds r1, r6, 0
-_0801EF60:
- ldrb r0, [r2, 0x5]
- adds r0, 0x1
- strb r0, [r2, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _0801EF70
- b _0801F5FA
-_0801EF70:
- ldrb r0, [r2, 0x5]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- ldrh r4, [r1]
- cmp r0, r4
- bne _0801EF60
- b _0801F5FA
- .align 2, 0
-_0801EF80: .4byte 0x02000000
-_0801EF84: .4byte 0x00016004
-_0801EF88: .4byte gUnknown_02024BE6
-_0801EF8C: .4byte 0x00016005
-_0801EF90: .4byte 0x00016020
-_0801EF94: .4byte gUnknown_02024C07
-_0801EF98: .4byte gUnknown_02024C10
-_0801EF9C: .4byte gUnknown_081FAC4C
-_0801EFA0: .4byte gUnknown_02024D1E
-_0801EFA4: .4byte gUnknown_0840164C
-_0801EFA8:
- ldr r1, _0801EFD8 @ =gUnknown_02024BEC
- ldr r0, _0801EFDC @ =gUnknown_02024BF0
- ldr r0, [r0]
- cmp r0, 0
- bge _0801EFB4
- adds r0, 0x3
-_0801EFB4:
- asrs r0, 2
- str r0, [r1]
- cmp r0, 0
- bne _0801EFC0
- movs r0, 0x1
- str r0, [r1]
-_0801EFC0:
- ldr r4, _0801EFE0 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EFE4 @ =gUnknown_081FAC4C
- ldr r0, _0801EFE8 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _0801F5F8
- .align 2, 0
-_0801EFD8: .4byte gUnknown_02024BEC
-_0801EFDC: .4byte gUnknown_02024BF0
-_0801EFE0: .4byte gUnknown_02024C10
-_0801EFE4: .4byte gUnknown_081FAC4C
-_0801EFE8: .4byte gUnknown_02024D1E
-_0801EFEC:
- ldrb r1, [r7, 0x3]
- adds r1, 0xF2
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x10
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F008
- b _0801F5DC
-_0801F008:
- ldr r2, _0801F02C @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F030 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F034 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F038 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F03C @ =gUnknown_081D71E5
- b _0801F5F8
- .align 2, 0
-_0801F02C: .4byte 0x02000000
-_0801F030: .4byte 0x000160a4
-_0801F034: .4byte 0x000160a5
-_0801F038: .4byte gUnknown_02024C10
-_0801F03C: .4byte gUnknown_081D71E5
-_0801F040:
- movs r0, 0x70
- negs r0, r0
- ldrb r1, [r7, 0x3]
- adds r1, 0xEB
- lsls r1, 24
- lsrs r1, 24
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F05E
- b _0801F5DC
-_0801F05E:
- ldr r2, _0801F080 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F084 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F088 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F08C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F090 @ =gUnknown_081D7276
- b _0801F5F8
- .align 2, 0
-_0801F080: .4byte 0x02000000
-_0801F084: .4byte 0x000160a4
-_0801F088: .4byte 0x000160a5
-_0801F08C: .4byte gUnknown_02024C10
-_0801F090: .4byte gUnknown_081D7276
-_0801F094:
- ldrb r1, [r7, 0x3]
- adds r1, 0xDA
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x20
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F0B0
- b _0801F5DC
-_0801F0B0:
- ldr r2, _0801F0D4 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F0D8 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F0DC @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F0E0 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F0E4 @ =gUnknown_081D71E5
- b _0801F5F8
- .align 2, 0
-_0801F0D4: .4byte 0x02000000
-_0801F0D8: .4byte 0x000160a4
-_0801F0DC: .4byte 0x000160a5
-_0801F0E0: .4byte gUnknown_02024C10
-_0801F0E4: .4byte gUnknown_081D71E5
-_0801F0E8:
- movs r0, 0x60
- negs r0, r0
- ldrb r1, [r7, 0x3]
- adds r1, 0xD3
- lsls r1, 24
- lsrs r1, 24
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F106
- b _0801F5DC
-_0801F106:
- ldr r2, _0801F128 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F12C @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F130 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F134 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F138 @ =gUnknown_081D7276
- b _0801F5F8
- .align 2, 0
-_0801F128: .4byte 0x02000000
-_0801F12C: .4byte 0x000160a4
-_0801F130: .4byte 0x000160a5
-_0801F134: .4byte gUnknown_02024C10
-_0801F138: .4byte gUnknown_081D7276
-_0801F13C:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 15
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801F178 @ =gUnknown_02024CA8
- mov r3, r8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0, 0x19]
- ldr r1, _0801F17C @ =gUnknown_02024C54
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801F180 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0]
- b _0801F5DC
- .align 2, 0
-_0801F178: .4byte gUnknown_02024CA8
-_0801F17C: .4byte gUnknown_02024C54
-_0801F180: .4byte gUnknown_02024BE6
-_0801F184:
- ldr r0, _0801F1A0 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 16
-_0801F19A:
- orrs r0, r1
- str r0, [r2]
- b _0801F5DC
- .align 2, 0
-_0801F1A0: .4byte gUnknown_02024C07
-_0801F1A4:
- ldr r4, _0801F254 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0801F1D8
- ldr r0, _0801F258 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0801F25C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0801F214
- ldr r0, _0801F260 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0801F1D8
- b _0801F5DC
-_0801F1D8:
- ldr r0, _0801F258 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0801F25C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0801F214
- ldr r0, _0801F260 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0801F214
- ldr r0, _0801F264 @ =gUnknown_02024DBC
- adds r0, 0x29
- adds r0, r6, r0
- ldrb r1, [r0]
- ldr r3, _0801F268 @ =gBitTable
- ldr r2, _0801F26C @ =gUnknown_02024A6A
- ldr r0, _0801F254 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801F214
- b _0801F5DC
-_0801F214:
- ldr r2, _0801F270 @ =gBattleMons
- ldr r1, _0801F274 @ =gUnknown_02024C08
- ldrb r0, [r1]
- movs r3, 0x58
- muls r0, r3
- adds r4, r0, r2
- ldrh r0, [r4, 0x2E]
- adds r7, r1, 0
- mov r9, r2
- cmp r0, 0
- beq _0801F284
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _0801F284
- ldr r1, _0801F278 @ =gUnknown_02024C10
- ldr r0, _0801F27C @ =gUnknown_081D9913
- str r0, [r1]
- ldr r1, _0801F280 @ =byte_2024C06
- ldrb r0, [r7]
- muls r0, r3
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl sub_81074C4
- b _0801F5FA
- .align 2, 0
-_0801F254: .4byte gUnknown_02024C07
-_0801F258: .4byte gUnknown_020239F8
-_0801F25C: .4byte 0x00000902
-_0801F260: .4byte gTrainerBattleOpponent
-_0801F264: .4byte gUnknown_02024DBC
-_0801F268: .4byte gBitTable
-_0801F26C: .4byte gUnknown_02024A6A
-_0801F270: .4byte gBattleMons
-_0801F274: .4byte gUnknown_02024C08
-_0801F278: .4byte gUnknown_02024C10
-_0801F27C: .4byte gUnknown_081D9913
-_0801F280: .4byte byte_2024C06
-_0801F284:
- ldr r4, _0801F340 @ =gUnknown_02024C07
- mov r10, r4
- ldrb r1, [r4]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r1
- add r0, r9
- ldrh r3, [r0, 0x2E]
- cmp r3, 0
- beq _0801F29C
- b _0801F5DC
-_0801F29C:
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- ldrh r2, [r0, 0x2E]
- adds r0, r2, 0
- cmp r0, 0xAF
- bne _0801F2B0
- b _0801F5DC
-_0801F2B0:
- cmp r0, 0
- bne _0801F2B6
- b _0801F5DC
-_0801F2B6:
- lsls r0, r1, 1
- ldr r5, _0801F344 @ =0x020160f0
- adds r0, r5
- ldr r1, _0801F348 @ =gUnknown_02024C04
- strh r2, [r0]
- strh r2, [r1]
- ldrb r0, [r7]
- mov r4, r8
- muls r4, r0
- adds r0, r4, 0
- add r0, r9
- movs r6, 0
- strh r3, [r0, 0x2E]
- ldr r4, _0801F34C @ =gUnknown_02024A60
- mov r2, r10
- ldrb r0, [r2]
- strb r0, [r4]
- str r1, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- mov r3, r10
- ldrb r0, [r3]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r7]
- strb r0, [r4]
- ldrb r0, [r7]
- mov r4, r8
- muls r4, r0
- adds r0, r4, 0
- mov r1, r9
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r4, _0801F350 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F354 @ =gUnknown_081D96F6
- str r0, [r4]
- ldr r0, _0801F358 @ =0xfffe9f10
- adds r5, r0
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _0801F35C @ =0x000160e8
- adds r0, r1
- adds r0, r5
- strb r6, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0801F360 @ =0x000160e9
- adds r0, r2
- adds r0, r5
- strb r6, [r0]
- b _0801F5FA
- .align 2, 0
-_0801F340: .4byte gUnknown_02024C07
-_0801F344: .4byte 0x020160f0
-_0801F348: .4byte gUnknown_02024C04
-_0801F34C: .4byte gUnknown_02024A60
-_0801F350: .4byte gUnknown_02024C10
-_0801F354: .4byte gUnknown_081D96F6
-_0801F358: .4byte 0xfffe9f10
-_0801F35C: .4byte 0x000160e8
-_0801F360: .4byte 0x000160e9
-_0801F364:
- ldr r3, _0801F394 @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801F398 @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0801F39C @ =gUnknown_02024C07
- ldrb r1, [r1]
- strb r1, [r0, 0x14]
- b _0801F5DC
- .align 2, 0
-_0801F394: .4byte gUnknown_02024C08
-_0801F398: .4byte gUnknown_02024CA8
-_0801F39C: .4byte gUnknown_02024C07
-_0801F3A0:
- ldr r0, _0801F3B8 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 20
- b _0801F19A
- .align 2, 0
-_0801F3B8: .4byte gUnknown_02024C08
-_0801F3BC:
- ldr r4, _0801F3CC @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F3D0 @ =gUnknown_081D9224
- b _0801F5F8
- .align 2, 0
-_0801F3CC: .4byte gUnknown_02024C10
-_0801F3D0: .4byte gUnknown_081D9224
-_0801F3D4:
- ldr r4, _0801F3E4 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F3E8 @ =gUnknown_081D92C0
- b _0801F5F8
- .align 2, 0
-_0801F3E4: .4byte gUnknown_02024C10
-_0801F3E8: .4byte gUnknown_081D92C0
-_0801F3EC:
- ldr r6, _0801F43C @ =gUnknown_02024C08
- ldrb r0, [r6]
- movs r2, 0x58
- muls r0, r2
- mov r1, r9
- adds r1, 0x4C
- adds r5, r0, r1
- ldr r4, [r5]
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- bne _0801F406
- b _0801F5DC
-_0801F406:
- movs r0, 0x41
- negs r0, r0
- ands r4, r0
- str r4, [r5]
- ldr r4, _0801F440 @ =gUnknown_02024A60
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r4, _0801F444 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F448 @ =gUnknown_081D9635
- b _0801F5F8
- .align 2, 0
-_0801F43C: .4byte gUnknown_02024C08
-_0801F440: .4byte gUnknown_02024A60
-_0801F444: .4byte gUnknown_02024C10
-_0801F448: .4byte gUnknown_081D9635
-_0801F44C:
- ldr r4, _0801F45C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F460 @ =gUnknown_081D93FA
- b _0801F5F8
- .align 2, 0
-_0801F45C: .4byte gUnknown_02024C10
-_0801F460: .4byte gUnknown_081D93FA
-_0801F464:
- ldr r4, _0801F494 @ =gUnknown_02024BEC
- ldr r0, _0801F498 @ =gUnknown_02024BF0
- ldr r0, [r0]
- movs r1, 0x3
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801F47A
- movs r0, 0x1
- str r0, [r4]
-_0801F47A:
- ldr r4, _0801F49C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801F4A0 @ =gUnknown_081FAC4C
- ldr r0, _0801F4A4 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _0801F5F8
- .align 2, 0
-_0801F494: .4byte gUnknown_02024BEC
-_0801F498: .4byte gUnknown_02024BF0
-_0801F49C: .4byte gUnknown_02024C10
-_0801F4A0: .4byte gUnknown_081FAC4C
-_0801F4A4: .4byte gUnknown_02024D1E
-_0801F4A8:
- mov r3, r8
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- mov r4, r9
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0xC0
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _0801F4C4
- b _0801F5DC
-_0801F4C4:
- movs r0, 0x80
- lsls r0, 5
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801F4F8 @ =gUnknown_02024C54
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801F4FC @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0]
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x1
- ands r1, r0
- adds r1, 0x2
- lsls r1, 10
- ldr r0, [r2]
-_0801F4F2:
- orrs r0, r1
- str r0, [r2]
- b _0801F5FA
- .align 2, 0
-_0801F4F8: .4byte gUnknown_02024C54
-_0801F4FC: .4byte gUnknown_02024BE6
-_0801F500:
- mov r5, r8
- ldrb r3, [r5]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- mov r2, r9
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x3C
- bne _0801F540
- ldrh r0, [r1, 0x2E]
- cmp r0, 0
- beq _0801F5DC
- ldr r0, _0801F534 @ =byte_2024C06
- strb r2, [r0]
- ldr r1, _0801F538 @ =gUnknown_02024C10
- ldr r0, _0801F53C @ =gUnknown_081D9913
- str r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x3C
- bl sub_81074C4
- b _0801F5FA
- .align 2, 0
-_0801F534: .4byte byte_2024C06
-_0801F538: .4byte gUnknown_02024C10
-_0801F53C: .4byte gUnknown_081D9913
-_0801F540:
- ldrh r0, [r1, 0x2E]
- cmp r0, 0
- beq _0801F5DC
- adds r0, r3, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0801F5B8 @ =gUnknown_02024C04
- mov r3, r8
- ldrb r0, [r3]
- muls r0, r4
- add r0, r9
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- ldrb r0, [r3]
- muls r0, r4
- add r0, r9
- movs r5, 0
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r2, _0801F5BC @ =gUnknown_02024DBC
- adds r2, 0x29
- adds r2, r6, r2
- ldr r3, _0801F5C0 @ =gBitTable
- ldr r1, _0801F5C4 @ =gUnknown_02024A6A
- mov r4, r8
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r4, _0801F5C8 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F5CC @ =gUnknown_081D944B
- str r0, [r4]
- ldr r1, _0801F5D0 @ =0x02000000
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- ldr r3, _0801F5D4 @ =0x000160e8
- adds r0, r3
- adds r0, r1
- strb r5, [r0]
- ldrb r0, [r2]
- lsls r0, 1
- ldr r4, _0801F5D8 @ =0x000160e9
- adds r0, r4
- adds r0, r1
- strb r5, [r0]
- b _0801F5FA
- .align 2, 0
-_0801F5B8: .4byte gUnknown_02024C04
-_0801F5BC: .4byte gUnknown_02024DBC
-_0801F5C0: .4byte gBitTable
-_0801F5C4: .4byte gUnknown_02024A6A
-_0801F5C8: .4byte gUnknown_02024C10
-_0801F5CC: .4byte gUnknown_081D944B
-_0801F5D0: .4byte 0x02000000
-_0801F5D4: .4byte 0x000160e8
-_0801F5D8: .4byte 0x000160e9
-_0801F5DC:
- ldr r1, _0801F5E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _0801F5FA
- .align 2, 0
-_0801F5E8: .4byte gUnknown_02024C10
-_0801F5EC:
- ldr r4, _0801F60C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F610 @ =gUnknown_081D94B0
-_0801F5F8:
- str r0, [r4]
-_0801F5FA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F60C: .4byte gUnknown_02024C10
-_0801F610: .4byte gUnknown_081D94B0
- thumb_func_end sub_801E3EC
-
- thumb_func_start atk15_seteffectwithchancetarget
-atk15_seteffectwithchancetarget: @ 801F614
- push {r4,lr}
- ldr r2, _0801F640 @ =gBattleMons
- ldr r0, _0801F644 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x20
- bne _0801F650
- ldr r2, _0801F648 @ =gBattleMoves
- ldr r0, _0801F64C @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 1
- b _0801F660
- .align 2, 0
-_0801F640: .4byte gBattleMons
-_0801F644: .4byte gUnknown_02024C07
-_0801F648: .4byte gBattleMoves
-_0801F64C: .4byte gUnknown_02024BE6
-_0801F650:
- ldr r2, _0801F680 @ =gBattleMoves
- ldr r0, _0801F684 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0, 0x5]
-_0801F660:
- ldr r3, _0801F688 @ =gUnknown_02024D1E
- ldrb r2, [r3, 0x3]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _0801F690
- ldr r0, _0801F68C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801F690
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r3, 0x3]
- b _0801F6BE
- .align 2, 0
-_0801F680: .4byte gBattleMoves
-_0801F684: .4byte gUnknown_02024BE6
-_0801F688: .4byte gUnknown_02024D1E
-_0801F68C: .4byte gUnknown_02024C68
-_0801F690:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bhi _0801F6DA
- ldr r0, _0801F6C8 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _0801F6DA
- ldr r0, _0801F6CC @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801F6DA
- cmp r4, 0x63
- bls _0801F6D0
-_0801F6BE:
- movs r0, 0
- movs r1, 0x80
- bl sub_801E3EC
- b _0801F6E2
- .align 2, 0
-_0801F6C8: .4byte gUnknown_02024D1E
-_0801F6CC: .4byte gUnknown_02024C68
-_0801F6D0:
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- b _0801F6E2
-_0801F6DA:
- ldr r1, _0801F6F8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801F6E2:
- ldr r0, _0801F6FC @ =gUnknown_02024D1E
- movs r1, 0
- strb r1, [r0, 0x3]
- ldr r0, _0801F700 @ =0x02000000
- ldr r2, _0801F704 @ =0x00016112
- adds r0, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F6F8: .4byte gUnknown_02024C10
-_0801F6FC: .4byte gUnknown_02024D1E
-_0801F700: .4byte 0x02000000
-_0801F704: .4byte 0x00016112
- thumb_func_end atk15_seteffectwithchancetarget
-
- thumb_func_start sub_801F708
-sub_801F708: @ 801F708
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl sub_801E3EC
- pop {r0}
- bx r0
- thumb_func_end sub_801F708
-
- thumb_func_start sub_801F718
-sub_801F718: @ 801F718
- push {lr}
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- pop {r0}
- bx r0
- thumb_func_end sub_801F718
-
- thumb_func_start sub_801F728
-sub_801F728: @ 801F728
- push {lr}
- ldr r0, _0801F74C @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _0801F750 @ =gUnknown_02024A60
- strb r0, [r2]
- ldr r3, _0801F754 @ =gUnknown_02024D1E
- ldrb r0, [r3, 0x3]
- cmp r0, 0x6
- bhi _0801F75C
- ldr r1, _0801F758 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x4C
- b _0801F766
- .align 2, 0
-_0801F74C: .4byte gUnknown_02024C10
-_0801F750: .4byte gUnknown_02024A60
-_0801F754: .4byte gUnknown_02024D1E
-_0801F758: .4byte gBattleMons
-_0801F75C:
- ldr r1, _0801F794 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
-_0801F766:
- adds r2, r1
- ldr r1, _0801F798 @ =gUnknown_081FAB5C
- ldrb r0, [r3, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- ldr r0, _0801F79C @ =gUnknown_02024D1E
- movs r2, 0
- strb r2, [r0, 0x3]
- ldr r1, _0801F7A0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- ldr r0, _0801F7A4 @ =0x02000000
- ldr r1, _0801F7A8 @ =0x00016112
- adds r0, r1
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0801F794: .4byte gBattleMons
-_0801F798: .4byte gUnknown_081FAB5C
-_0801F79C: .4byte gUnknown_02024D1E
-_0801F7A0: .4byte gUnknown_02024C10
-_0801F7A4: .4byte 0x02000000
-_0801F7A8: .4byte 0x00016112
- thumb_func_end sub_801F728
-
- thumb_func_start sub_801F7AC
-sub_801F7AC: @ 801F7AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0801F81C @ =gUnknown_02024C10
- ldr r2, [r0]
- ldrb r1, [r2, 0x2]
- adds r6, r0, 0
- cmp r1, 0
- beq _0801F834
- ldrb r0, [r2, 0x1]
- bl sub_8015150
- ldr r5, _0801F820 @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r2, _0801F824 @ =gUnknown_02024C6C
- ldr r1, _0801F828 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0801F7E6
- b _0801FB1C
-_0801F7E6:
- ldr r1, [r6]
- ldrb r4, [r1, 0x3]
- ldrb r0, [r1, 0x4]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x6]
- lsls r0, 24
- orrs r4, r0
- bl b_movescr_stack_pop_cursor
- str r4, [r6]
- ldrb r0, [r5]
- bl battle_side_get_owner
- ldr r1, _0801F82C @ =gUnknown_02024C7A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r2, [r0]
- ldr r1, _0801F830 @ =0x0000fdff
- ands r1, r2
- strh r1, [r0]
- b _0801FB22
- .align 2, 0
-_0801F81C: .4byte gUnknown_02024C10
-_0801F820: .4byte gUnknown_02024A60
-_0801F824: .4byte gUnknown_02024C6C
-_0801F828: .4byte gBitTable
-_0801F82C: .4byte gUnknown_02024C7A
-_0801F830: .4byte 0x0000fdff
-_0801F834:
- ldrb r0, [r2, 0x1]
- cmp r0, 0x1
- bne _0801F85C
- ldr r1, _0801F84C @ =gUnknown_02024A60
- ldr r0, _0801F850 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0801F854 @ =gUnknown_02024C08
- ldrb r7, [r0]
- ldr r4, _0801F858 @ =gUnknown_081D8C58
- b _0801F86A
- .align 2, 0
-_0801F84C: .4byte gUnknown_02024A60
-_0801F850: .4byte gUnknown_02024C07
-_0801F854: .4byte gUnknown_02024C08
-_0801F858: .4byte gUnknown_081D8C58
-_0801F85C:
- ldr r1, _0801F954 @ =gUnknown_02024A60
- ldr r0, _0801F958 @ =gUnknown_02024C08
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0801F95C @ =gUnknown_02024C07
- ldrb r7, [r0]
- ldr r4, _0801F960 @ =gUnknown_081D8C65
-_0801F86A:
- ldr r0, _0801F964 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r0, _0801F968 @ =gBitTable
- mov r12, r0
- ldr r2, _0801F954 @ =gUnknown_02024A60
- mov r8, r2
- ldrb r2, [r2]
- lsls r0, r2, 2
- add r0, r12
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801F886
- b _0801FB1C
-_0801F886:
- ldr r3, _0801F96C @ =gBattleMons
- mov r10, r3
- movs r5, 0x58
- mov r9, r5
- mov r0, r9
- muls r0, r2
- add r0, r10
- ldrh r3, [r0, 0x28]
- cmp r3, 0
- beq _0801F89C
- b _0801FB1C
-_0801F89C:
- ldr r2, _0801F970 @ =0x02000000
- lsls r1, r7, 1
- ldr r5, _0801F974 @ =0x000160ac
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- ldr r0, _0801F978 @ =0x000160ad
- adds r1, r0
- adds r1, r2
- strb r3, [r1]
- lsls r1, r7, 2
- adds r5, 0x54
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- adds r5, 0x1
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- adds r5, 0x1
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- ldr r0, _0801F97C @ =0x00016103
- adds r1, r0
- adds r1, r2
- strb r3, [r1]
- ldr r5, _0801F980 @ =gUnknown_02024C6C
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 2
- add r0, r12
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r5]
- orrs r0, r1
- str r0, [r5]
- ldr r0, [r6]
- adds r0, 0x7
- bl b_movescr_stack_push
- str r4, [r6]
- mov r2, r8
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801F9B0
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 15
- orrs r0, r1
- str r0, [r5]
- ldr r1, _0801F984 @ =gUnknown_030042E0
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _0801F914
- adds r0, 0x1
- strb r0, [r1]
-_0801F914:
- mov r0, r9
- muls r0, r7
- add r0, r10
- adds r3, r0, 0
- adds r3, 0x2A
- mov r4, r8
- ldrb r2, [r4]
- mov r0, r9
- muls r0, r2
- add r0, r10
- adds r1, r0, 0
- adds r1, 0x2A
- ldrb r0, [r3]
- ldrb r5, [r1]
- cmp r0, r5
- bls _0801F9CC
- ldrb r1, [r1]
- subs r0, r1
- cmp r0, 0x1D
- ble _0801F990
- ldr r1, _0801F988 @ =gUnknown_02024A6A
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0801F98C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x8
- bl AdjustFriendship
- b _0801F9CC
- .align 2, 0
-_0801F954: .4byte gUnknown_02024A60
-_0801F958: .4byte gUnknown_02024C08
-_0801F95C: .4byte gUnknown_02024C07
-_0801F960: .4byte gUnknown_081D8C65
-_0801F964: .4byte gUnknown_02024C0C
-_0801F968: .4byte gBitTable
-_0801F96C: .4byte gBattleMons
-_0801F970: .4byte 0x02000000
-_0801F974: .4byte 0x000160ac
-_0801F978: .4byte 0x000160ad
-_0801F97C: .4byte 0x00016103
-_0801F980: .4byte gUnknown_02024C6C
-_0801F984: .4byte gUnknown_030042E0
-_0801F988: .4byte gUnknown_02024A6A
-_0801F98C: .4byte gPlayerParty
-_0801F990:
- ldr r1, _0801F9A8 @ =gUnknown_02024A6A
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0801F9AC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x6
- bl AdjustFriendship
- b _0801F9CC
- .align 2, 0
-_0801F9A8: .4byte gUnknown_02024A6A
-_0801F9AC: .4byte gPlayerParty
-_0801F9B0:
- ldr r1, _0801FAE0 @ =gUnknown_030042E0
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFE
- bhi _0801F9BC
- adds r0, 0x1
- strb r0, [r1, 0x1]
-_0801F9BC:
- ldr r2, _0801FAE4 @ =gUnknown_02024A60
- ldrb r0, [r2]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
-_0801F9CC:
- ldr r0, _0801FAE8 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801FA02
- ldr r6, _0801FAEC @ =gBattleMons
- ldr r0, _0801FAF0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FA02
- ldr r4, _0801FAF4 @ =gUnknown_02024C10
- ldr r0, [r4]
- bl b_movescr_stack_push
- ldr r1, _0801FAF8 @ =gUnknown_02024BEC
- adds r0, r7, 0
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r1]
- ldr r0, _0801FAFC @ =gUnknown_081D9156
- str r0, [r4]
-_0801FA02:
- ldr r1, _0801FB00 @ =gUnknown_02024C98
- ldr r6, _0801FB04 @ =gUnknown_02024C08
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 7
- ands r0, r1
- cmp r0, 0
- bne _0801FA1A
- b _0801FB22
-_0801FA1A:
- ldr r0, _0801FAE8 @ =gUnknown_02024C6C
- ldr r5, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r5, r0
- cmp r5, 0
- bne _0801FB22
- ldr r4, _0801FAF0 @ =gUnknown_02024C07
- mov r8, r4
- ldrb r0, [r4]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0801FB22
- ldr r0, _0801FAEC @ =gBattleMons
- mov r9, r0
- mov r1, r8
- ldrb r2, [r1]
- movs r7, 0x58
- adds r3, r2, 0
- muls r3, r7
- adds r0, r3, r0
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FB22
- ldr r0, _0801FB08 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xA5
- beq _0801FB22
- ldr r1, _0801FB0C @ =0x02000000
- ldr r4, _0801FB10 @ =0x0001608c
- adds r0, r2, r4
- adds r0, r1
- ldrb r4, [r0]
- adds r0, r4, r3
- mov r6, r9
- adds r6, 0x24
- adds r0, r6
- strb r5, [r0]
- ldr r5, _0801FAF4 @ =gUnknown_02024C10
- ldr r0, [r5]
- bl b_movescr_stack_push
- ldr r0, _0801FB14 @ =gUnknown_081D9468
- str r0, [r5]
- ldr r5, _0801FAE4 @ =gUnknown_02024A60
- mov r1, r8
- ldrb r0, [r1]
- strb r0, [r5]
- adds r1, r4, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r5]
- muls r0, r7
- adds r0, r6
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0801FB18 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- lsls r4, 1
- mov r2, r8
- ldrb r0, [r2]
- muls r0, r7
- adds r0, r4, r0
- mov r2, r9
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- mov r3, r8
- ldrb r0, [r3]
- muls r0, r7
- adds r4, r0
- adds r4, r2
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- b _0801FB22
- .align 2, 0
-_0801FAE0: .4byte gUnknown_030042E0
-_0801FAE4: .4byte gUnknown_02024A60
-_0801FAE8: .4byte gUnknown_02024C6C
-_0801FAEC: .4byte gBattleMons
-_0801FAF0: .4byte gUnknown_02024C07
-_0801FAF4: .4byte gUnknown_02024C10
-_0801FAF8: .4byte gUnknown_02024BEC
-_0801FAFC: .4byte gUnknown_081D9156
-_0801FB00: .4byte gUnknown_02024C98
-_0801FB04: .4byte gUnknown_02024C08
-_0801FB08: .4byte gUnknown_02024BE6
-_0801FB0C: .4byte 0x02000000
-_0801FB10: .4byte 0x0001608c
-_0801FB14: .4byte gUnknown_081D9468
-_0801FB18: .4byte gUnknown_030041C0
-_0801FB1C:
- ldr r0, [r6]
- adds r0, 0x7
- str r0, [r6]
-_0801FB22:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_801F7AC
-
- thumb_func_start sub_801FB34
-sub_801FB34: @ 801FB34
- push {r4,r5,lr}
- ldr r0, _0801FB64 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801FB5E
- ldr r5, _0801FB68 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0801FB6C @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x0A_A_A_A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_0801FB5E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FB64: .4byte gUnknown_02024A64
-_0801FB68: .4byte gUnknown_02024C10
-_0801FB6C: .4byte gUnknown_02024A60
- thumb_func_end sub_801FB34
-
- thumb_func_start atkE2_cmde2
-atkE2_cmde2: @ 801FB70
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _0801FBC4 @ =gUnknown_02024A64
- ldr r6, [r0]
- cmp r6, 0
- bne _0801FBBC
- ldr r5, _0801FBC8 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0801FBCC @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r1, _0801FBD0 @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- str r6, [r0]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl sub_8010F48
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_0801FBBC:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FBC4: .4byte gUnknown_02024A64
-_0801FBC8: .4byte gUnknown_02024C10
-_0801FBCC: .4byte gUnknown_02024A60
-_0801FBD0: .4byte gBattleMons
- thumb_func_end atkE2_cmde2
-
- thumb_func_start atk1C_jumpifstatus
-atk1C_jumpifstatus: @ 801FBD4
- push {r4,r5,lr}
- ldr r5, _0801FC30 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- ldrb r4, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- lsls r1, 8
- adds r4, r1
- ldrb r1, [r2, 0x4]
- lsls r1, 16
- adds r4, r1
- ldrb r1, [r2, 0x5]
- lsls r1, 24
- adds r4, r1
- ldrb r3, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- lsls r1, 8
- adds r3, r1
- ldrb r1, [r2, 0x8]
- lsls r1, 16
- adds r3, r1
- ldrb r1, [r2, 0x9]
- lsls r1, 24
- adds r3, r1
- ldr r2, _0801FC34 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801FC38
- adds r0, r1, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FC38
- str r3, [r5]
- b _0801FC40
- .align 2, 0
-_0801FC30: .4byte gUnknown_02024C10
-_0801FC34: .4byte gBattleMons
-_0801FC38:
- ldr r1, _0801FC48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_0801FC40:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FC48: .4byte gUnknown_02024C10
- thumb_func_end atk1C_jumpifstatus
-
- thumb_func_start atk1D_jumpifsecondarystatus
-atk1D_jumpifsecondarystatus: @ 801FC4C
- push {r4,r5,lr}
- ldr r5, _0801FCA8 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- ldrb r4, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- lsls r1, 8
- adds r4, r1
- ldrb r1, [r2, 0x4]
- lsls r1, 16
- adds r4, r1
- ldrb r1, [r2, 0x5]
- lsls r1, 24
- adds r4, r1
- ldrb r3, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- lsls r1, 8
- adds r3, r1
- ldrb r1, [r2, 0x8]
- lsls r1, 16
- adds r3, r1
- ldrb r1, [r2, 0x9]
- lsls r1, 24
- adds r3, r1
- ldr r2, _0801FCAC @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801FCB0
- adds r0, r1, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FCB0
- str r3, [r5]
- b _0801FCB8
- .align 2, 0
-_0801FCA8: .4byte gUnknown_02024C10
-_0801FCAC: .4byte gBattleMons
-_0801FCB0:
- ldr r1, _0801FCC0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_0801FCB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FCC0: .4byte gUnknown_02024C10
- thumb_func_end atk1D_jumpifsecondarystatus
-
- thumb_func_start atk1E_jumpifability
-atk1E_jumpifability: @ 801FCC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r6, _0801FD18 @ =gUnknown_02024C10
- ldr r2, [r6]
- ldrb r5, [r2, 0x2]
- mov r8, r5
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r7, r1, r0
- ldrb r0, [r2, 0x1]
- cmp r0, 0x8
- bne _0801FD24
- ldr r0, _0801FD1C @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xD
- adds r2, r5, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0801FDA0
- ldr r1, _0801FD20 @ =byte_2024C06
- strb r5, [r1]
- str r7, [r6]
- subs r4, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- ldrb r1, [r1]
- b _0801FD80
- .align 2, 0
-_0801FD18: .4byte gUnknown_02024C10
-_0801FD1C: .4byte gUnknown_02024C07
-_0801FD20: .4byte byte_2024C06
-_0801FD24:
- cmp r0, 0x9
- bne _0801FD5C
- ldr r0, _0801FD54 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC
- adds r2, r5, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0801FDA0
- ldr r1, _0801FD58 @ =byte_2024C06
- strb r5, [r1]
- str r7, [r6]
- subs r4, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- ldrb r1, [r1]
- b _0801FD80
- .align 2, 0
-_0801FD54: .4byte gUnknown_02024C07
-_0801FD58: .4byte byte_2024C06
-_0801FD5C:
- ldrb r0, [r2, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801FD90 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, r8
- bne _0801FDA0
- ldr r0, _0801FD94 @ =byte_2024C06
- strb r1, [r0]
- str r7, [r6]
- ldrb r1, [r0]
- adds r0, r4, 0
-_0801FD80:
- bl sub_81074C4
- ldr r0, _0801FD98 @ =0x02000000
- ldr r1, _0801FD9C @ =0x000160f8
- adds r0, r1
- strb r4, [r0]
- b _0801FDA6
- .align 2, 0
-_0801FD90: .4byte gBattleMons
-_0801FD94: .4byte byte_2024C06
-_0801FD98: .4byte 0x02000000
-_0801FD9C: .4byte 0x000160f8
-_0801FDA0:
- ldr r0, [r6]
- adds r0, 0x7
- str r0, [r6]
-_0801FDA6:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk1E_jumpifability
-
- thumb_func_start sub_801FDB4
-sub_801FDB4: @ 801FDB4
- push {r4-r6,lr}
- ldr r0, _0801FDCC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r4, [r0, 0x1]
- cmp r4, 0x1
- bne _0801FDD4
- ldr r0, _0801FDD0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- b _0801FDDE
- .align 2, 0
-_0801FDCC: .4byte gUnknown_02024C10
-_0801FDD0: .4byte gUnknown_02024C07
-_0801FDD4:
- ldr r0, _0801FE14 @ =gUnknown_02024C08
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r4, 0x1
-_0801FDDE:
- ands r4, r0
- ldr r6, _0801FE18 @ =gUnknown_02024C10
- ldr r3, [r6]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- adds r5, r1, r0
- ldr r1, _0801FE1C @ =gUnknown_02024C7A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _0801FE20
- str r5, [r6]
- b _0801FE26
- .align 2, 0
-_0801FE14: .4byte gUnknown_02024C08
-_0801FE18: .4byte gUnknown_02024C10
-_0801FE1C: .4byte gUnknown_02024C7A
-_0801FE20:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r6]
-_0801FE26:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_801FDB4
-
- thumb_func_start sub_801FE2C
-sub_801FE2C: @ 801FE2C
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _0801FE60 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0801FE64 @ =gBattleMons
- ldr r3, [r4]
- movs r1, 0x58
- muls r0, r1
- ldrb r1, [r3, 0x3]
- adds r0, r1
- adds r2, 0x18
- adds r0, r2
- ldrb r2, [r0]
- ldrb r0, [r3, 0x2]
- cmp r0, 0x5
- bhi _0801FEEA
- lsls r0, 2
- ldr r1, _0801FE68 @ =_0801FE6C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801FE60: .4byte gUnknown_02024C10
-_0801FE64: .4byte gBattleMons
-_0801FE68: .4byte _0801FE6C
- .align 2, 0
-_0801FE6C:
- .4byte _0801FE84
- .4byte _0801FE94
- .4byte _0801FEA4
- .4byte _0801FEB4
- .4byte _0801FEC4
- .4byte _0801FED8
-_0801FE84:
- ldr r0, _0801FE90 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bne _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FE90: .4byte gUnknown_02024C10
-_0801FE94:
- ldr r0, _0801FEA0 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- beq _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEA0: .4byte gUnknown_02024C10
-_0801FEA4:
- ldr r0, _0801FEB0 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bls _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEB0: .4byte gUnknown_02024C10
-_0801FEB4:
- ldr r0, _0801FEC0 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bcs _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEC0: .4byte gUnknown_02024C10
-_0801FEC4:
- ldr r0, _0801FED4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- ands r2, r0
- cmp r2, 0
- beq _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FED4: .4byte gUnknown_02024C10
-_0801FED8:
- ldr r0, _0801FF0C @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- ands r2, r0
- cmp r2, 0
- bne _0801FEEA
-_0801FEE4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0801FEEA:
- cmp r5, 0
- beq _0801FF10
- ldr r3, _0801FF0C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- b _0801FF18
- .align 2, 0
-_0801FF0C: .4byte gUnknown_02024C10
-_0801FF10:
- ldr r1, _0801FF20 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
-_0801FF18:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FF20: .4byte gUnknown_02024C10
- thumb_func_end sub_801FE2C
-
- thumb_func_start atk21_jumpifspecialstatusflag
-atk21_jumpifspecialstatusflag: @ 801FF24
- push {r4-r6,lr}
- ldr r4, _0801FF78 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _0801FF7C @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r6, r1, r0
- ldrb r1, [r2, 0x7]
- ldrb r0, [r2, 0x8]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0xA]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r0, [r2, 0x6]
- cmp r0, 0
- beq _0801FF84
- ldr r0, _0801FF80 @ =gUnknown_02024C98
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- ands r0, r6
- cmp r0, 0
- bne _0801FF9C
- b _0801FF94
- .align 2, 0
-_0801FF78: .4byte gUnknown_02024C10
-_0801FF7C: .4byte gUnknown_02024A60
-_0801FF80: .4byte gUnknown_02024C98
-_0801FF84:
- ldr r0, _0801FF98 @ =gUnknown_02024C98
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- ands r0, r6
- cmp r0, 0
- beq _0801FF9C
-_0801FF94:
- str r3, [r4]
- b _0801FFA2
- .align 2, 0
-_0801FF98: .4byte gUnknown_02024C98
-_0801FF9C:
- adds r0, r2, 0
- adds r0, 0xB
- str r0, [r4]
-_0801FFA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk21_jumpifspecialstatusflag
-
- thumb_func_start sub_801FFA8
-sub_801FFA8: @ 801FFA8
- push {r4-r6,lr}
- ldr r4, _0801FFF0 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldrb r5, [r3, 0x2]
- ldrb r2, [r3, 0x3]
- ldrb r1, [r3, 0x4]
- lsls r1, 8
- adds r2, r1
- ldrb r1, [r3, 0x5]
- lsls r1, 16
- adds r2, r1
- ldrb r1, [r3, 0x6]
- lsls r1, 24
- adds r6, r2, r1
- ldr r2, _0801FFF4 @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r5
- beq _0801FFEC
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r5
- bne _0801FFF8
-_0801FFEC:
- str r6, [r4]
- b _0801FFFC
- .align 2, 0
-_0801FFF0: .4byte gUnknown_02024C10
-_0801FFF4: .4byte gBattleMons
-_0801FFF8:
- adds r0, r3, 0x7
- str r0, [r4]
-_0801FFFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_801FFA8
-
- thumb_func_start sub_8020004
-sub_8020004: @ 8020004
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- ldr r0, _0802004C @ =0x0201605c
- mov r10, r0
- ldr r0, _08020050 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08020054 @ =gUnknown_02024C09
- strb r0, [r1]
- ldr r2, _08020058 @ =gUnknown_02024DEA
- movs r1, 0x2
- ands r1, r0
- lsls r1, 24
- lsrs r1, 25
- adds r1, r2
- ldrb r1, [r1]
- mov r8, r1
- mov r0, r10
- subs r0, 0x4D
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08020040
- bl _08020996
-_08020040:
- lsls r0, 2
- ldr r1, _0802005C @ =_08020060
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802004C: .4byte 0x0201605c
-_08020050: .4byte gUnknown_02024C10
-_08020054: .4byte gUnknown_02024C09
-_08020058: .4byte gUnknown_02024DEA
-_0802005C: .4byte _08020060
- .align 2, 0
-_08020060:
- .4byte _0802007C
- .4byte _080200FC
- .4byte _08020216
- .4byte _0802055C
- .4byte _08020648
- .4byte _08020910
- .4byte _0802096C
-_0802007C:
- ldr r4, _080200A8 @ =gUnknown_02024C09
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08020098
- ldr r0, _080200AC @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _080200B0 @ =0x00000982
- ands r0, r1
- cmp r0, 0
- beq _080200BC
-_08020098:
- ldr r0, _080200B4 @ =0x02000000
- ldr r1, _080200B8 @ =0x0001600f
- adds r0, r1
- movs r1, 0x6
- strb r1, [r0]
- bl _08020996
- .align 2, 0
-_080200A8: .4byte gUnknown_02024C09
-_080200AC: .4byte gUnknown_020239F8
-_080200B0: .4byte 0x00000982
-_080200B4: .4byte 0x02000000
-_080200B8: .4byte 0x0001600f
-_080200BC:
- ldr r2, _080200E8 @ =0x02000000
- ldr r3, _080200EC @ =0x0001600f
- adds r1, r2, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _080200F0 @ =0x00016113
- adds r2, r0
- ldr r3, _080200F4 @ =gBitTable
- ldr r1, _080200F8 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- bl _08020996
- .align 2, 0
-_080200E8: .4byte 0x02000000
-_080200EC: .4byte 0x0001600f
-_080200F0: .4byte 0x00016113
-_080200F4: .4byte gBitTable
-_080200F8: .4byte gUnknown_02024A6A
-_080200FC:
- movs r5, 0
- movs r7, 0
- ldr r1, _08020150 @ =gSaveBlock1 + 0x3688
- mov r9, r1
-_08020104:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08020154 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802016A
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802016A
- ldr r0, _08020158 @ =gBitTable
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- mov r2, r8
- ands r0, r2
- cmp r0, 0
- beq _08020138
- adds r5, 0x1
-_08020138:
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0802015C
- mov r3, r9
- ldrb r4, [r3]
- b _08020164
- .align 2, 0
-_08020150: .4byte gSaveBlock1 + 0x3688
-_08020154: .4byte gPlayerParty
-_08020158: .4byte gBitTable
-_0802015C:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08020164:
- cmp r4, 0x19
- bne _0802016A
- adds r6, 0x1
-_0802016A:
- adds r7, 0x1
- cmp r7, 0x5
- ble _08020104
- ldr r3, _080201D0 @ =gBaseStats
- ldr r2, _080201D4 @ =gBattleMons
- ldr r0, _080201D8 @ =gUnknown_02024C09
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x9]
- adds r1, 0x2A
- ldrb r0, [r1]
- muls r0, r2
- movs r1, 0x7
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r6, 0
- beq _080201E0
- lsrs r4, r0, 17
- adds r0, r4, 0
- adds r1, r5, 0
- bl __divsi3
- mov r1, r10
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _080201B6
- movs r0, 0x1
- strh r0, [r1]
-_080201B6:
- ldr r5, _080201DC @ =gUnknown_02024DEE
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- bne _080201FA
- movs r0, 0x1
- strh r0, [r5]
- b _080201FA
- .align 2, 0
-_080201D0: .4byte gBaseStats
-_080201D4: .4byte gBattleMons
-_080201D8: .4byte gUnknown_02024C09
-_080201DC: .4byte gUnknown_02024DEE
-_080201E0:
- adds r0, r1, 0
- adds r1, r5, 0
- bl __divsi3
- mov r2, r10
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bne _080201F6
- movs r0, 0x1
- strh r0, [r2]
-_080201F6:
- ldr r0, _08020248 @ =gUnknown_02024DEE
- strh r6, [r0]
-_080201FA:
- ldr r1, _0802024C @ =0x02000000
- ldr r3, _08020250 @ =0x0001600f
- adds r2, r1, r3
- ldrb r0, [r2]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r2]
- ldr r2, _08020254 @ =0x00016018
- adds r0, r1, r2
- strb r3, [r0]
- ldr r3, _08020258 @ =0x0001605f
- adds r1, r3
- mov r0, r8
- strb r0, [r1]
-_08020216:
- ldr r0, _0802025C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _08020220
- b _08020996
-_08020220:
- ldr r0, _0802024C @ =0x02000000
- ldr r1, _08020254 @ =0x00016018
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020260 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0802026C
- ldr r0, _08020264 @ =gSaveBlock1
- ldr r2, _08020268 @ =0x00003688
- adds r0, r2
- ldrb r4, [r0]
- b _08020274
- .align 2, 0
-_08020248: .4byte gUnknown_02024DEE
-_0802024C: .4byte 0x02000000
-_08020250: .4byte 0x0001600f
-_08020254: .4byte 0x00016018
-_08020258: .4byte 0x0001605f
-_0802025C: .4byte gUnknown_02024A64
-_08020260: .4byte gPlayerParty
-_08020264: .4byte gSaveBlock1
-_08020268: .4byte 0x00003688
-_0802026C:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08020274:
- ldr r5, _08020294 @ =0x02000000
- cmp r4, 0x19
- beq _080202A0
- ldr r3, _08020298 @ =0x0001605f
- adds r1, r5, r3
- ldrb r0, [r1]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- bne _080202A0
- lsrs r0, 1
- strb r0, [r1]
- ldr r0, _0802029C @ =0x0001600f
- adds r1, r5, r0
- b _080202C8
- .align 2, 0
-_08020294: .4byte 0x02000000
-_08020298: .4byte 0x0001605f
-_0802029C: .4byte 0x0001600f
-_080202A0:
- ldr r1, _080202D4 @ =0x00016018
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080202D8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- bne _080202E8
- ldr r2, _080202DC @ =0x0001605f
- adds r1, r5, r2
- ldrb r0, [r1]
- lsrs r0, 1
- movs r2, 0
- strb r0, [r1]
- ldr r3, _080202E0 @ =0x0001600f
- adds r1, r5, r3
-_080202C8:
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, _080202E4 @ =gUnknown_02024BEC
- str r2, [r0]
- b _08020996
- .align 2, 0
-_080202D4: .4byte 0x00016018
-_080202D8: .4byte gPlayerParty
-_080202DC: .4byte 0x0001605f
-_080202E0: .4byte 0x0001600f
-_080202E4: .4byte gUnknown_02024BEC
-_080202E8:
- ldr r0, _0802034C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08020316
- ldr r0, _08020350 @ =gBattleMons
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08020316
- ldr r0, _08020354 @ =0x0001601b
- adds r5, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _08020316
- bl sub_80325B8
- ldr r0, _08020358 @ =0x00000161
- bl PlayBGM
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_08020316:
- ldr r5, _0802035C @ =0x02000000
- ldr r1, _08020360 @ =0x00016018
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020364 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _08020332
- b _0802051E
-_08020332:
- ldr r2, _08020368 @ =0x0001605f
- adds r0, r5, r2
- ldrb r0, [r0]
- movs r3, 0x1
- ands r3, r0
- cmp r3, 0
- beq _08020370
- ldr r1, _0802036C @ =gUnknown_02024BEC
- mov r3, r10
- ldrh r0, [r3]
- str r0, [r1]
- mov r8, r1
- b _08020376
- .align 2, 0
-_0802034C: .4byte gUnknown_020239F8
-_08020350: .4byte gBattleMons
-_08020354: .4byte 0x0001601b
-_08020358: .4byte 0x00000161
-_0802035C: .4byte 0x02000000
-_08020360: .4byte 0x00016018
-_08020364: .4byte gPlayerParty
-_08020368: .4byte 0x0001605f
-_0802036C: .4byte gUnknown_02024BEC
-_08020370:
- ldr r0, _080203EC @ =gUnknown_02024BEC
- str r3, [r0]
- mov r8, r0
-_08020376:
- cmp r4, 0x19
- bne _08020386
- ldr r0, _080203F0 @ =gUnknown_02024DEE
- ldrh r1, [r0]
- mov r2, r8
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
-_08020386:
- cmp r4, 0x28
- bne _0802039C
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_0802039C:
- ldr r0, _080203F4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080203B8
- ldr r4, _080203EC @ =gUnknown_02024BEC
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
-_080203B8:
- ldr r0, _080203F8 @ =0x02000000
- ldr r2, _080203FC @ =0x00016018
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020400 @ =gPlayerParty
- adds r0, r1
- bl sub_8040AA4
- lsls r0, 24
- cmp r0, 0
- beq _08020404
- ldr r4, _080203EC @ =gUnknown_02024BEC
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- movs r7, 0xA5
- lsls r7, 1
- mov r8, r4
- b _0802040A
- .align 2, 0
-_080203EC: .4byte gUnknown_02024BEC
-_080203F0: .4byte gUnknown_02024DEE
-_080203F4: .4byte gUnknown_020239F8
-_080203F8: .4byte 0x02000000
-_080203FC: .4byte 0x00016018
-_08020400: .4byte gPlayerParty
-_08020404:
- ldr r7, _0802043C @ =0x00000149
- ldr r3, _08020440 @ =gUnknown_02024BEC
- mov r8, r3
-_0802040A:
- ldr r0, _08020444 @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08020488
- ldr r1, _08020448 @ =gUnknown_02024A6A
- ldr r0, _0802044C @ =0x02000000
- ldr r3, _08020450 @ =0x00016018
- adds r2, r0, r3
- ldrh r1, [r1, 0x4]
- adds r5, r0, 0
- ldr r4, _08020454 @ =gBitTable
- ldr r3, _08020458 @ =gUnknown_02024C0C
- ldrb r2, [r2]
- cmp r1, r2
- bne _08020460
- ldrb r1, [r3]
- ldr r0, [r4, 0x8]
- ands r1, r0
- cmp r1, 0
- bne _08020460
- ldr r0, _0802045C @ =0x000160a2
- adds r1, r5, r0
- b _0802047C
- .align 2, 0
-_0802043C: .4byte 0x00000149
-_08020440: .4byte gUnknown_02024BEC
-_08020444: .4byte gUnknown_020239F8
-_08020448: .4byte gUnknown_02024A6A
-_0802044C: .4byte 0x02000000
-_08020450: .4byte 0x00016018
-_08020454: .4byte gBitTable
-_08020458: .4byte gUnknown_02024C0C
-_0802045C: .4byte 0x000160a2
-_08020460:
- ldrb r2, [r3]
- ldr r0, [r4]
- ands r2, r0
- cmp r2, 0
- bne _08020478
- ldr r1, _08020474 @ =0x000160a2
- adds r0, r5, r1
- strb r2, [r0]
- b _08020490
- .align 2, 0
-_08020474: .4byte 0x000160a2
-_08020478:
- ldr r2, _08020484 @ =0x000160a2
- adds r1, r5, r2
-_0802047C:
- movs r0, 0x2
- strb r0, [r1]
- b _08020490
- .align 2, 0
-_08020484: .4byte 0x000160a2
-_08020488:
- ldr r0, _08020530 @ =0x02000000
- ldr r3, _08020534 @ =0x000160a2
- adds r0, r3
- strb r1, [r0]
-_08020490:
- ldr r1, _08020538 @ =gUnknown_030041C0
- movs r3, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r5, 0x4
- strb r5, [r1, 0x1]
- ldr r4, _08020530 @ =0x02000000
- ldr r0, _08020534 @ =0x000160a2
- adds r6, r4, r0
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- ldr r0, _0802053C @ =0x00016018
- adds r4, r0
- ldrb r0, [r4]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08020540 @ =gUnknown_03004290
- strb r2, [r1]
- strb r3, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r3, 0xFF
- lsls r3, 8
- ands r7, r3
- asrs r0, r7, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- ldr r1, _08020544 @ =gUnknown_030042B0
- strb r2, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- mov r0, r8
- ldr r2, [r0]
- strb r2, [r1, 0x4]
- adds r0, r2, 0
- ands r0, r3
- asrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r2
- asrs r0, 16
- strb r0, [r1, 0x6]
- lsrs r2, 24
- strb r2, [r1, 0x7]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x8]
- ldrb r1, [r6]
- movs r0, 0xD
- bl b_std_message
- ldrb r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020548 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0802054C @ =gBattleMons
- ldr r1, _08020550 @ =gUnknown_02024C09
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r1, [r1]
- bl MonGainEVs
-_0802051E:
- ldr r1, _08020530 @ =0x02000000
- ldr r3, _08020554 @ =0x0001605f
- adds r2, r1, r3
- ldrb r0, [r2]
- lsrs r0, 1
- strb r0, [r2]
- ldr r0, _08020558 @ =0x0001600f
- adds r1, r0
- b _08020618
- .align 2, 0
-_08020530: .4byte 0x02000000
-_08020534: .4byte 0x000160a2
-_08020538: .4byte gUnknown_030041C0
-_0802053C: .4byte 0x00016018
-_08020540: .4byte gUnknown_03004290
-_08020544: .4byte gUnknown_030042B0
-_08020548: .4byte gPlayerParty
-_0802054C: .4byte gBattleMons
-_08020550: .4byte gUnknown_02024C09
-_08020554: .4byte 0x0001605f
-_08020558: .4byte 0x0001600f
-_0802055C:
- ldr r0, _08020620 @ =gUnknown_02024A64
- ldr r2, [r0]
- cmp r2, 0
- beq _08020566
- b _08020996
-_08020566:
- ldr r1, _08020624 @ =gUnknown_02024260
- ldr r4, _08020628 @ =0x02000000
- ldr r3, _0802062C @ =0x000160a2
- adds r3, r4
- mov r8, r3
- ldrb r0, [r3]
- lsls r0, 9
- adds r0, r1
- strb r2, [r0]
- ldr r0, _08020630 @ =0x00016018
- adds r7, r4, r0
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08020634 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08020612
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _08020612
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3A
- bl GetMonData
- ldr r1, _08020638 @ =0x00017180
- adds r4, r1
- strh r0, [r4]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r4, 0x2]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r4, 0x4]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r4, 0x8]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r4, 0xA]
- ldr r4, _0802063C @ =gUnknown_02024A60
- mov r2, r8
- ldrb r0, [r2]
- strb r0, [r4]
- ldrb r1, [r7]
- ldr r0, _08020640 @ =gUnknown_02024BEC
- ldrh r2, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x19_a_bb
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08020612:
- ldr r1, _08020628 @ =0x02000000
- ldr r3, _08020644 @ =0x0001600f
- adds r1, r3
-_08020618:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020620: .4byte gUnknown_02024A64
-_08020624: .4byte gUnknown_02024260
-_08020628: .4byte 0x02000000
-_0802062C: .4byte 0x000160a2
-_08020630: .4byte 0x00016018
-_08020634: .4byte gPlayerParty
-_08020638: .4byte 0x00017180
-_0802063C: .4byte gUnknown_02024A60
-_08020640: .4byte gUnknown_02024BEC
-_08020644: .4byte 0x0001600f
-_08020648:
- ldr r0, _080208AC @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _08020652
- b _08020996
-_08020652:
- ldr r1, _080208B0 @ =gUnknown_02024A60
- ldr r4, _080208B4 @ =0x02000000
- ldr r2, _080208B8 @ =0x000160a2
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r2, _080208BC @ =gUnknown_02024260
- ldrb r3, [r1]
- lsls r1, r3, 9
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x21
- beq _0802066E
- b _080208F0
-_0802066E:
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _0802067A
- b _080208F0
-_0802067A:
- ldr r0, _080208C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080206A8
- ldr r1, _080208C4 @ =gUnknown_02024A6A
- lsls r0, r3, 1
- adds r2, r0, r1
- ldr r0, _080208C8 @ =0x00016018
- adds r1, r4, r0
- ldrh r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080206A8
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080208CC @ =gPlayerParty
- adds r0, r1
- adds r1, r3, 0
- bl sub_80324F8
-_080206A8:
- ldr r1, _080208D0 @ =gUnknown_030041C0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r5, _080208B0 @ =gUnknown_02024A60
- ldrb r0, [r5]
- strb r0, [r1, 0x2]
- ldr r0, _080208B4 @ =0x02000000
- ldr r3, _080208C8 @ =0x00016018
- adds r6, r0, r3
- ldrb r0, [r6]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r4, _080208D4 @ =gUnknown_03004290
- strb r2, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- movs r0, 0x3
- strb r0, [r4, 0x3]
- ldrb r0, [r6]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r7, _080208CC @ =gPlayerParty
- adds r0, r7
- movs r1, 0x38
- bl GetMonData
- strb r0, [r4, 0x4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4, 0x5]
- bl b_movescr_stack_push_cursor
- ldr r2, _080208D8 @ =gUnknown_03004324
- ldr r1, _080208DC @ =gBitTable
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080208E0 @ =gUnknown_02024C10
- ldr r0, _080208E4 @ =gUnknown_081D8EF3
- str r0, [r1]
- ldr r4, _080208E8 @ =gUnknown_02024BEC
- ldr r2, _080208BC @ =gUnknown_02024260
- ldrb r1, [r5]
- lsls r1, 9
- adds r0, r2, 0x2
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x3
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- str r3, [r4]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0
- bl AdjustFriendship
- ldr r0, _080208C4 @ =gUnknown_02024A6A
- ldrb r1, [r6]
- ldrh r0, [r0]
- cmp r0, r1
- bne _080207EC
- ldr r4, _080208EC @ =gBattleMons
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- beq _080207EC
- mov r0, r8
- muls r0, r1
- adds r0, r7
- movs r1, 0x38
- bl GetMonData
- adds r1, r4, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x28]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r4, 0x2C]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r4, 0x2]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r4, 0x4]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r4, 0x8]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r4, 0xA]
-_080207EC:
- ldr r0, _080208C4 @ =gUnknown_02024A6A
- ldr r1, _080208B4 @ =0x02000000
- ldr r3, _080208C8 @ =0x00016018
- adds r7, r1, r3
- ldrb r2, [r7]
- ldrh r0, [r0, 0x4]
- cmp r0, r2
- bne _080208F6
- ldr r6, _080208EC @ =gBattleMons
- movs r0, 0xD8
- adds r0, r6
- mov r8, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _080208F6
- ldr r0, _080208C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080208F6
- movs r5, 0x64
- adds r0, r2, 0
- muls r0, r5
- ldr r4, _080208CC @ =gPlayerParty
- adds r0, r4
- movs r1, 0x38
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xDA
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xDC
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3B
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB2
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3C
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB4
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3D
- bl GetMonData
- movs r2, 0xB6
- adds r2, r6
- mov r8, r2
- strh r0, [r2]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3D
- bl GetMonData
- mov r3, r8
- strh r0, [r3]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3E
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB8
- strh r0, [r1]
- b _080208F6
- .align 2, 0
-_080208AC: .4byte gUnknown_02024A64
-_080208B0: .4byte gUnknown_02024A60
-_080208B4: .4byte 0x02000000
-_080208B8: .4byte 0x000160a2
-_080208BC: .4byte gUnknown_02024260
-_080208C0: .4byte gUnknown_020239F8
-_080208C4: .4byte gUnknown_02024A6A
-_080208C8: .4byte 0x00016018
-_080208CC: .4byte gPlayerParty
-_080208D0: .4byte gUnknown_030041C0
-_080208D4: .4byte gUnknown_03004290
-_080208D8: .4byte gUnknown_03004324
-_080208DC: .4byte gBitTable
-_080208E0: .4byte gUnknown_02024C10
-_080208E4: .4byte gUnknown_081D8EF3
-_080208E8: .4byte gUnknown_02024BEC
-_080208EC: .4byte gBattleMons
-_080208F0:
- ldr r1, _08020904 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
-_080208F6:
- ldr r0, _08020908 @ =0x02000000
- ldr r1, _0802090C @ =0x0001600f
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- b _08020996
- .align 2, 0
-_08020904: .4byte gUnknown_02024BEC
-_08020908: .4byte 0x02000000
-_0802090C: .4byte 0x0001600f
-_08020910:
- ldr r0, _08020924 @ =gUnknown_02024BEC
- ldr r0, [r0]
- cmp r0, 0
- beq _08020930
- ldr r0, _08020928 @ =0x02000000
- ldr r2, _0802092C @ =0x0001600f
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0]
- b _08020996
- .align 2, 0
-_08020924: .4byte gUnknown_02024BEC
-_08020928: .4byte 0x02000000
-_0802092C: .4byte 0x0001600f
-_08020930:
- ldr r2, _08020950 @ =0x02000000
- ldr r3, _08020954 @ =0x00016018
- adds r1, r2, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _0802095C
- ldr r0, _08020958 @ =0x0001600f
- adds r1, r2, r0
- movs r0, 0x2
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020950: .4byte 0x02000000
-_08020954: .4byte 0x00016018
-_08020958: .4byte 0x0001600f
-_0802095C:
- ldr r3, _08020968 @ =0x0001600f
- adds r1, r2, r3
- movs r0, 0x6
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020968: .4byte 0x0001600f
-_0802096C:
- ldr r0, _080209A4 @ =gUnknown_02024A64
- ldr r5, [r0]
- cmp r5, 0
- bne _08020996
- ldr r4, _080209A8 @ =gBattleMons
- ldr r2, _080209AC @ =gUnknown_02024C09
- ldrb r0, [r2]
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- movs r3, 0
- strh r5, [r0, 0x2E]
- ldrb r0, [r2]
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- strb r3, [r0]
- ldr r1, _080209B0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08020996:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080209A4: .4byte gUnknown_02024A64
-_080209A8: .4byte gBattleMons
-_080209AC: .4byte gUnknown_02024C09
-_080209B0: .4byte gUnknown_02024C10
- thumb_func_end sub_8020004
-
- thumb_func_start sub_80209B4
-sub_80209B4: @ 80209B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r0, _08020AF0 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _080209C6
- b _08020B46
-_080209C6:
- movs r5, 0
-_080209C8:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08020AF4 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080209F8
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080209F8
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_080209F8:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080209C8
- cmp r6, 0
- bne _08020A0C
- ldr r0, _08020AF8 @ =gUnknown_02024D26
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_08020A0C:
- movs r6, 0
- movs r5, 0
-_08020A10:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08020AFC @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08020A40
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08020A40
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_08020A40:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08020A10
- ldr r2, _08020AF8 @ =gUnknown_02024D26
- cmp r6, 0
- bne _08020A54
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08020A54:
- ldrb r0, [r2]
- cmp r0, 0
- bne _08020B3E
- ldr r2, _08020B00 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x2
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _08020B3E
- movs r2, 0
- movs r5, 0
- ldr r0, _08020B04 @ =gUnknown_02024A68
- ldrb r3, [r0]
- mov r12, r0
- ldr r7, _08020B08 @ =gUnknown_02024C10
- cmp r2, r3
- bge _08020AA0
- ldr r0, _08020B0C @ =gUnknown_02024C6C
- movs r1, 0x80
- lsls r1, 21
- ldr r6, [r0]
- adds r4, r3, 0
- ldr r3, _08020B10 @ =gUnknown_02024D68
-_08020A84:
- adds r0, r1, 0
- lsls r0, r5
- ands r0, r6
- cmp r0, 0
- beq _08020A98
- ldrb r0, [r3]
- lsls r0, 25
- cmp r0, 0
- blt _08020A98
- adds r2, 0x1
-_08020A98:
- adds r3, 0x28
- adds r5, 0x2
- cmp r5, r4
- blt _08020A84
-_08020AA0:
- movs r4, 0
- movs r5, 0x1
- mov r0, r12
- ldrb r3, [r0]
- cmp r5, r3
- bge _08020ADA
- ldr r0, _08020B0C @ =gUnknown_02024C6C
- movs r1, 0x80
- lsls r1, 21
- mov r12, r1
- ldr r1, [r0]
- ldr r0, _08020B10 @ =gUnknown_02024D68
- adds r6, r3, 0
- adds r3, r0, 0
- adds r3, 0x14
-_08020ABE:
- mov r0, r12
- lsls r0, r5
- ands r0, r1
- cmp r0, 0
- beq _08020AD2
- ldrb r0, [r3]
- lsls r0, 25
- cmp r0, 0
- blt _08020AD2
- adds r4, 0x1
-_08020AD2:
- adds r3, 0x28
- adds r5, 0x2
- cmp r5, r6
- blt _08020ABE
-_08020ADA:
- mov r0, r8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08020B14
- adds r0, r4, r2
- cmp r0, 0x1
- bgt _08020B1C
- b _08020B36
- .align 2, 0
-_08020AF0: .4byte gUnknown_02024A64
-_08020AF4: .4byte gPlayerParty
-_08020AF8: .4byte gUnknown_02024D26
-_08020AFC: .4byte gEnemyParty
-_08020B00: .4byte gUnknown_020239F8
-_08020B04: .4byte gUnknown_02024A68
-_08020B08: .4byte gUnknown_02024C10
-_08020B0C: .4byte gUnknown_02024C6C
-_08020B10: .4byte gUnknown_02024D68
-_08020B14:
- cmp r4, 0
- beq _08020B36
- cmp r2, 0
- beq _08020B36
-_08020B1C:
- ldr r2, [r7]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r7]
- b _08020B46
-_08020B36:
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _08020B46
-_08020B3E:
- ldr r1, _08020B50 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08020B46:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08020B50: .4byte gUnknown_02024C10
- thumb_func_end sub_80209B4
-
- thumb_func_start sub_8020B54
-sub_8020B54: @ 8020B54
- ldr r1, _08020B80 @ =gUnknown_02024C68
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08020B84 @ =0x02000000
- ldr r1, _08020B88 @ =0x0001601f
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08020B8C @ =gCritMultiplier
- strb r1, [r0]
- ldr r0, _08020B90 @ =gUnknown_02024D1E
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x6]
- ldr r2, _08020B94 @ =gUnknown_02024C6C
- ldr r0, [r2]
- subs r1, 0x42
- ands r0, r1
- ldr r1, _08020B98 @ =0xffffbfff
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_08020B80: .4byte gUnknown_02024C68
-_08020B84: .4byte 0x02000000
-_08020B88: .4byte 0x0001601f
-_08020B8C: .4byte gCritMultiplier
-_08020B90: .4byte gUnknown_02024D1E
-_08020B94: .4byte gUnknown_02024C6C
-_08020B98: .4byte 0xffffbfff
- thumb_func_end sub_8020B54
-
- thumb_func_start atk25_resetflags
-atk25_resetflags: @ 8020B9C
- push {lr}
- bl sub_8020B54
- ldr r1, _08020BB0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08020BB0: .4byte gUnknown_02024C10
- thumb_func_end atk25_resetflags
-
- thumb_func_start sub_8020BB4
-sub_8020BB4: @ 8020BB4
- ldr r3, _08020BC4 @ =gUnknown_02024C0E
- ldr r2, _08020BC8 @ =gUnknown_02024C10
- ldr r0, [r2]
- ldrb r1, [r0, 0x1]
- strb r1, [r3]
- adds r0, 0x2
- str r0, [r2]
- bx lr
- .align 2, 0
-_08020BC4: .4byte gUnknown_02024C0E
-_08020BC8: .4byte gUnknown_02024C10
- thumb_func_end sub_8020BB4
-
- thumb_func_start atk27_cmd27
-atk27_cmd27: @ 8020BCC
- push {lr}
- ldr r1, _08020BE8 @ =gUnknown_02024C0E
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08020BF0
- ldr r1, _08020BEC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08020C0A
- .align 2, 0
-_08020BE8: .4byte gUnknown_02024C0E
-_08020BEC: .4byte gUnknown_02024C10
-_08020BF0:
- ldr r3, _08020C10 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
-_08020C0A:
- pop {r0}
- bx r0
- .align 2, 0
-_08020C10: .4byte gUnknown_02024C10
- thumb_func_end atk27_cmd27
-
- thumb_func_start sub_8020C14
-sub_8020C14: @ 8020C14
- ldr r3, _08020C30 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_08020C30: .4byte gUnknown_02024C10
- thumb_func_end sub_8020C14
-
- thumb_func_start atk29_jumpifbyte
-atk29_jumpifbyte: @ 8020C34
- push {r4-r6,lr}
- ldr r3, _08020C78 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r2, [r1, 0x7]
- ldrb r0, [r1, 0x8]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xB
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020CCC
- lsls r0, r6, 2
- ldr r1, _08020C7C @ =_08020C80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020C78: .4byte gUnknown_02024C10
-_08020C7C: .4byte _08020C80
- .align 2, 0
-_08020C80:
- .4byte _08020C98
- .4byte _08020CA0
- .4byte _08020CA8
- .4byte _08020CB0
- .4byte _08020CB8
- .4byte _08020CC2
-_08020C98:
- ldrb r0, [r5]
- cmp r0, r4
- bne _08020CCC
- b _08020CCA
-_08020CA0:
- ldrb r0, [r5]
- cmp r0, r4
- beq _08020CCC
- b _08020CCA
-_08020CA8:
- ldrb r0, [r5]
- cmp r0, r4
- bls _08020CCC
- b _08020CCA
-_08020CB0:
- ldrb r0, [r5]
- cmp r0, r4
- bcs _08020CCC
- b _08020CCA
-_08020CB8:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _08020CCC
- b _08020CCA
-_08020CC2:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _08020CCC
-_08020CCA:
- str r2, [r3]
-_08020CCC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk29_jumpifbyte
-
- thumb_func_start sub_8020CD4
-sub_8020CD4: @ 8020CD4
- push {r4-r6,lr}
- ldr r3, _08020D20 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r2, [r1, 0x8]
- ldrb r0, [r1, 0x9]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xC
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020D74
- lsls r0, r6, 2
- ldr r1, _08020D24 @ =_08020D28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020D20: .4byte gUnknown_02024C10
-_08020D24: .4byte _08020D28
- .align 2, 0
-_08020D28:
- .4byte _08020D40
- .4byte _08020D48
- .4byte _08020D50
- .4byte _08020D58
- .4byte _08020D60
- .4byte _08020D6A
-_08020D40:
- ldrh r0, [r5]
- cmp r0, r4
- bne _08020D74
- b _08020D72
-_08020D48:
- ldrh r0, [r5]
- cmp r0, r4
- beq _08020D74
- b _08020D72
-_08020D50:
- ldrh r0, [r5]
- cmp r0, r4
- bls _08020D74
- b _08020D72
-_08020D58:
- ldrh r0, [r5]
- cmp r0, r4
- bcs _08020D74
- b _08020D72
-_08020D60:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _08020D74
- b _08020D72
-_08020D6A:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _08020D74
-_08020D72:
- str r2, [r3]
-_08020D74:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8020CD4
-
- thumb_func_start sub_8020D7C
-sub_8020D7C: @ 8020D7C
- push {r4-r6,lr}
- ldr r3, _08020DD4 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 24
- orrs r4, r0
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xE
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020E28
- lsls r0, r6, 2
- ldr r1, _08020DD8 @ =_08020DDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020DD4: .4byte gUnknown_02024C10
-_08020DD8: .4byte _08020DDC
- .align 2, 0
-_08020DDC:
- .4byte _08020DF4
- .4byte _08020DFC
- .4byte _08020E04
- .4byte _08020E0C
- .4byte _08020E14
- .4byte _08020E1E
-_08020DF4:
- ldr r0, [r5]
- cmp r0, r4
- bne _08020E28
- b _08020E26
-_08020DFC:
- ldr r0, [r5]
- cmp r0, r4
- beq _08020E28
- b _08020E26
-_08020E04:
- ldr r0, [r5]
- cmp r0, r4
- bls _08020E28
- b _08020E26
-_08020E0C:
- ldr r0, [r5]
- cmp r0, r4
- bcs _08020E28
- b _08020E26
-_08020E14:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- beq _08020E28
- b _08020E26
-_08020E1E:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- bne _08020E28
-_08020E26:
- str r2, [r3]
-_08020E28:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8020D7C
-
- thumb_func_start sub_8020E30
-sub_8020E30: @ 8020E30
- push {r4-r7,lr}
- ldr r2, _08020E88 @ =gUnknown_02024C10
- ldr r3, [r2]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r5, r1, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r6, [r3, 0x9]
- ldrb r1, [r3, 0xA]
- ldrb r0, [r3, 0xB]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0xC]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0xD]
- lsls r0, 24
- adds r1, r0
- mov r12, r1
- movs r1, 0
- cmp r1, r6
- bcs _08020EA8
- ldrb r0, [r5]
- ldrb r7, [r4]
- cmp r0, r7
- beq _08020E8C
- adds r0, r3, 0
- b _08020EA4
- .align 2, 0
-_08020E88: .4byte gUnknown_02024C10
-_08020E8C:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcs _08020EA8
- ldrb r0, [r5]
- ldrb r3, [r4]
- cmp r0, r3
- beq _08020E8C
- ldr r0, [r2]
-_08020EA4:
- adds r0, 0xE
- str r0, [r2]
-_08020EA8:
- cmp r1, r6
- bne _08020EB0
- mov r7, r12
- str r7, [r2]
-_08020EB0:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8020E30
-
- thumb_func_start sub_8020EB8
-sub_8020EB8: @ 8020EB8
- push {r4-r7,lr}
- movs r7, 0
- ldr r3, _08020F2C @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r4, r2, r0
- ldrb r6, [r1, 0x9]
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- mov r12, r2
- movs r1, 0
- cmp r7, r6
- bcs _08020F22
-_08020F06:
- ldrb r0, [r5]
- ldrb r2, [r4]
- cmp r0, r2
- bne _08020F14
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_08020F14:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcc _08020F06
-_08020F22:
- cmp r7, r6
- beq _08020F30
- mov r0, r12
- b _08020F34
- .align 2, 0
-_08020F2C: .4byte gUnknown_02024C10
-_08020F30:
- ldr r0, [r3]
- adds r0, 0xE
-_08020F34:
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8020EB8
-
- thumb_func_start sub_8020F3C
-sub_8020F3C: @ 8020F3C
- ldr r3, _08020F60 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020F60: .4byte gUnknown_02024C10
- thumb_func_end sub_8020F3C
-
- thumb_func_start sub_8020F64
-sub_8020F64: @ 8020F64
- ldr r3, _08020F8C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020F8C: .4byte gUnknown_02024C10
- thumb_func_end sub_8020F64
-
- thumb_func_start sub_8020F90
-sub_8020F90: @ 8020F90
- ldr r3, _08020FB8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- subs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020FB8: .4byte gUnknown_02024C10
- thumb_func_end sub_8020F90
-
- thumb_func_start atk31_copyarray
-atk31_copyarray: @ 8020FBC
- push {r4-r6,lr}
- ldr r3, _0802100C @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x9]
- movs r2, 0
- cmp r2, r4
- bge _08021000
-_08020FF2:
- adds r0, r6, r2
- adds r1, r5, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _08020FF2
-_08021000:
- ldr r0, [r3]
- adds r0, 0xA
- str r0, [r3]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802100C: .4byte gUnknown_02024C10
- thumb_func_end atk31_copyarray
-
- thumb_func_start atk32_memcpy_with_offset
-atk32_memcpy_with_offset: @ 8021010
- push {r4-r7,lr}
- ldr r3, _08021078 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r7, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x9]
- ldrb r0, [r1, 0xA]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0xD]
- movs r2, 0
- cmp r2, r4
- bge _0802106C
-_0802105A:
- adds r0, r7, r2
- ldrb r1, [r5]
- adds r1, r2, r1
- adds r1, r6, r1
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _0802105A
-_0802106C:
- ldr r0, [r3]
- adds r0, 0xE
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08021078: .4byte gUnknown_02024C10
- thumb_func_end atk32_memcpy_with_offset
-
- thumb_func_start sub_802107C
-sub_802107C: @ 802107C
- ldr r3, _080210A4 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- orrs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_080210A4: .4byte gUnknown_02024C10
- thumb_func_end sub_802107C
-
- thumb_func_start atk34_orhalfword
-atk34_orhalfword: @ 80210A8
- push {r4,lr}
- ldr r4, _080210DC @ =gUnknown_02024C10
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r2, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2]
- orrs r1, r0
- strh r1, [r2]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080210DC: .4byte gUnknown_02024C10
- thumb_func_end atk34_orhalfword
-
- thumb_func_start atk35_orword
-atk35_orword: @ 80210E0
- push {r4,lr}
- ldr r4, _08021120 @ =gUnknown_02024C10
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021120: .4byte gUnknown_02024C10
- thumb_func_end atk35_orword
-
- thumb_func_start sub_8021124
-sub_8021124: @ 8021124
- ldr r3, _0802114C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r2, 0x5]
- ldrb r0, [r1]
- bics r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_0802114C: .4byte gUnknown_02024C10
- thumb_func_end sub_8021124
-
- thumb_func_start atk37_bichalfword
-atk37_bichalfword: @ 8021150
- push {r4,lr}
- ldr r4, _08021184 @ =gUnknown_02024C10
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r2, r0
- ldrh r0, [r1]
- bics r0, r2
- strh r0, [r1]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021184: .4byte gUnknown_02024C10
- thumb_func_end atk37_bichalfword
-
- thumb_func_start atk38_bicword
-atk38_bicword: @ 8021188
- push {r4,lr}
- ldr r4, _080211C8 @ =gUnknown_02024C10
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080211C8: .4byte gUnknown_02024C10
- thumb_func_end atk38_bicword
-
- thumb_func_start atk39_pause
-atk39_pause: @ 80211CC
- push {r4,r5,lr}
- ldr r0, _08021200 @ =gUnknown_02024A64
- ldr r4, [r0]
- cmp r4, 0
- bne _080211F8
- ldr r5, _08021204 @ =gUnknown_02024C10
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _08021208 @ =gUnknown_02024D18
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _080211F8
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
-_080211F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08021200: .4byte gUnknown_02024A64
-_08021204: .4byte gUnknown_02024C10
-_08021208: .4byte gUnknown_02024D18
- thumb_func_end atk39_pause
-
- thumb_func_start sub_802120C
-sub_802120C: @ 802120C
- push {lr}
- ldr r0, _08021224 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0802121E
- ldr r1, _08021228 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802121E:
- pop {r0}
- bx r0
- .align 2, 0
-_08021224: .4byte gUnknown_02024A64
-_08021228: .4byte gUnknown_02024C10
- thumb_func_end sub_802120C
-
- thumb_func_start atk3B_8022C68
-atk3B_8022C68: @ 802122C
- push {lr}
- ldr r0, _08021240 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0802124C
- ldr r0, _08021244 @ =gUnknown_02024A60
- ldr r1, _08021248 @ =gUnknown_02024C08
- b _08021250
- .align 2, 0
-_08021240: .4byte gUnknown_02024C10
-_08021244: .4byte gUnknown_02024A60
-_08021248: .4byte gUnknown_02024C08
-_0802124C:
- ldr r0, _08021274 @ =gUnknown_02024A60
- ldr r1, _08021278 @ =gUnknown_02024C07
-_08021250:
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r0, _0802127C @ =gUnknown_02024BEC
- ldrh r1, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
- ldr r0, _08021274 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08021280 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08021274: .4byte gUnknown_02024A60
-_08021278: .4byte gUnknown_02024C07
-_0802127C: .4byte gUnknown_02024BEC
-_08021280: .4byte gUnknown_02024C10
- thumb_func_end atk3B_8022C68
-
- thumb_func_start atk3C_return
-atk3C_return: @ 8021284
- push {lr}
- bl b_movescr_stack_pop_cursor
- pop {r0}
- bx r0
- thumb_func_end atk3C_return
-
- thumb_func_start sub_8021290
-sub_8021290: @ 8021290
- ldr r0, _080212A4 @ =gUnknown_02024C68
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080212A8 @ =gUnknown_02024A60
- strb r1, [r0]
- ldr r1, _080212AC @ =gUnknown_02024A7F
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080212A4: .4byte gUnknown_02024C68
-_080212A8: .4byte gUnknown_02024A60
-_080212AC: .4byte gUnknown_02024A7F
- thumb_func_end sub_8021290
-
- thumb_func_start sub_80212B0
-sub_80212B0: @ 80212B0
- ldr r1, _080212C0 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080212C4 @ =gUnknown_02024A7F
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080212C0: .4byte gUnknown_02024A60
-_080212C4: .4byte gUnknown_02024A7F
- thumb_func_end sub_80212B0
-
- thumb_func_start atk3F_end3
-atk3F_end3: @ 80212C8
- push {lr}
- bl b_movescr_stack_pop_cursor
- ldr r2, _080212F0 @ =0x02017140
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _080212DE
- subs r0, 0x1
- strb r0, [r1]
-_080212DE:
- ldr r0, _080212F4 @ =gUnknown_030042D4
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080212F0: .4byte 0x02017140
-_080212F4: .4byte gUnknown_030042D4
- thumb_func_end atk3F_end3
-
- thumb_func_start atk41_call
-atk41_call: @ 80212F8
- push {r4,lr}
- ldr r4, _08021324 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x5
- bl b_movescr_stack_push
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021324: .4byte gUnknown_02024C10
- thumb_func_end atk41_call
-
- thumb_func_start atk42_jumpiftype2
-atk42_jumpiftype2: @ 8021328
- push {r4,lr}
- ldr r4, _08021370 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldr r2, _08021374 @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r2, [r3, 0x2]
- ldrb r1, [r1]
- cmp r2, r1
- beq _08021356
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _08021378
-_08021356:
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0802137C
- .align 2, 0
-_08021370: .4byte gUnknown_02024C10
-_08021374: .4byte gBattleMons
-_08021378:
- adds r0, r3, 0x7
- str r0, [r4]
-_0802137C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk42_jumpiftype2
-
- thumb_func_start sub_8021384
-sub_8021384: @ 8021384
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080213BC @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r2, [r0, 0x1]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080213C0
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _080213C6
- .align 2, 0
-_080213BC: .4byte gUnknown_02024C10
-_080213C0:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_080213C6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8021384
-
- thumb_func_start sub_80213D0
-sub_80213D0: @ 80213D0
- ldr r1, _080213E4 @ =0x02000000
- ldr r0, _080213E8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _080213EC @ =0x00016060
- adds r0, r2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080213E4: .4byte 0x02000000
-_080213E8: .4byte gUnknown_02024C07
-_080213EC: .4byte 0x00016060
- thumb_func_end sub_80213D0
-
- thumb_func_start atk46_cmd46
-atk46_cmd46: @ 80213F0
- push {r4-r6,lr}
- ldr r5, _08021444 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r6, _08021448 @ =gUnknown_02024A60
- strb r0, [r6]
- ldr r2, [r5]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r4, [r2, 0x2]
- adds r0, r4, 0
- cmp r0, 0x1
- beq _08021426
- cmp r0, 0x11
- beq _08021426
- cmp r0, 0x2
- bne _0802144C
-_08021426:
- ldr r4, _08021444 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldr r0, _08021448 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- b _080214AE
- .align 2, 0
-_08021444: .4byte gUnknown_02024C10
-_08021448: .4byte gUnknown_02024A60
-_0802144C:
- ldr r0, _08021464 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802146C
- adds r0, r2, 0x7
- bl b_movescr_stack_push
- ldr r0, _08021468 @ =gUnknown_081D8EEF
- b _080214AC
- .align 2, 0
-_08021464: .4byte gUnknown_02024C6C
-_08021468: .4byte gUnknown_081D8EEF
-_0802146C:
- adds r0, r4, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08021498
- ldr r1, _08021490 @ =gUnknown_02024C98
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021494 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021498
- adds r0, r2, 0x7
- b _080214AC
- .align 2, 0
-_08021490: .4byte gUnknown_02024C98
-_08021494: .4byte 0x000400c0
-_08021498:
- ldrb r1, [r2, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x7
-_080214AC:
- str r0, [r5]
-_080214AE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk46_cmd46
-
- thumb_func_start sub_80214B4
-sub_80214B4: @ 80214B4
- push {r4-r7,lr}
- ldr r6, _0802151C @ =gUnknown_02024C10
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _08021520 @ =gUnknown_02024A60
- strb r0, [r7]
- ldr r2, [r6]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r5, [r3]
- adds r0, r5, 0
- cmp r0, 0x1
- beq _080214FE
- cmp r0, 0x11
- beq _080214FE
- cmp r0, 0x2
- bne _08021524
-_080214FE:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldr r0, _08021520 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802151C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _0802157A
- .align 2, 0
-_0802151C: .4byte gUnknown_02024C10
-_08021520: .4byte gUnknown_02024A60
-_08021524:
- ldr r0, _08021534 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08021538
- adds r0, r2, 0
- b _08021576
- .align 2, 0
-_08021534: .4byte gUnknown_02024C6C
-_08021538:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08021564
- ldr r1, _0802155C @ =gUnknown_02024C98
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021560 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021564
- adds r0, r2, 0
- b _08021576
- .align 2, 0
-_0802155C: .4byte gUnknown_02024C98
-_08021560: .4byte 0x000400c0
-_08021564:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r6]
-_08021576:
- adds r0, 0xA
- str r0, [r6]
-_0802157A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80214B4
-
- thumb_func_start atk47
-atk47: @ 8021580
- push {r4,lr}
- movs r3, 0
- ldr r0, _080215A0 @ =0x02000000
- ldr r2, _080215A4 @ =0x0001601e
- adds r1, r0, r2
- ldrb r1, [r1]
- movs r2, 0xF0
- ands r2, r1
- adds r4, r0, 0
- cmp r2, 0x20
- beq _080215B6
- cmp r2, 0x20
- bgt _080215A8
- cmp r2, 0x10
- beq _080215B2
- b _080215C0
- .align 2, 0
-_080215A0: .4byte 0x02000000
-_080215A4: .4byte 0x0001601e
-_080215A8:
- cmp r2, 0x90
- beq _080215BA
- cmp r2, 0xA0
- beq _080215BE
- b _080215C0
-_080215B2:
- movs r3, 0xF
- b _080215C0
-_080215B6:
- movs r3, 0x27
- b _080215C0
-_080215BA:
- movs r3, 0x16
- b _080215C0
-_080215BE:
- movs r3, 0x2E
-_080215C0:
- ldr r1, _080215EC @ =0x0001601e
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- adds r0, r3, r0
- subs r0, 0x1
- ldr r2, _080215F0 @ =0x000160a4
- adds r1, r4, r2
- movs r2, 0
- strb r0, [r1]
- ldr r1, _080215F4 @ =0x000160a5
- adds r0, r4, r1
- strb r2, [r0]
- ldr r1, _080215F8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080215EC: .4byte 0x0001601e
-_080215F0: .4byte 0x000160a4
-_080215F4: .4byte 0x000160a5
-_080215F8: .4byte gUnknown_02024C10
- thumb_func_end atk47
-
- thumb_func_start atk48_playstatchangeanimation
-atk48_playstatchangeanimation: @ 80215FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r3, 0
- ldr r5, _08021670 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- str r3, [sp]
- bl sub_8015150
- ldr r2, _08021674 @ =gUnknown_02024A60
- strb r0, [r2]
- ldr r0, [r5]
- ldrb r4, [r0, 0x2]
- ldrb r1, [r0, 0x3]
- movs r0, 0x1
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _08021710
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x15
- cmp r0, 0
- beq _0802163C
- movs r1, 0x2D
-_0802163C:
- cmp r4, 0
- beq _080216E4
- movs r0, 0x1
- mov r10, r0
- ldr r0, _08021678 @ =gUnknown_02024A98
- mov r9, r0
- lsls r5, r1, 16
-_0802164A:
- adds r0, r4, 0
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- beq _080216D6
- ldr r0, _08021670 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802167C
- ldr r0, _08021674 @ =gUnknown_02024A60
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- b _080216C4
- .align 2, 0
-_08021670: .4byte gUnknown_02024C10
-_08021674: .4byte gUnknown_02024A60
-_08021678: .4byte gUnknown_02024A98
-_0802167C:
- ldr r6, _08021700 @ =gUnknown_02024A60
- ldrb r0, [r6]
- str r3, [sp]
- bl battle_get_per_side_status
- mov r1, r10
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08021704 @ =gUnknown_02024C80
- adds r0, r1
- ldrb r0, [r0, 0x2]
- ldr r3, [sp]
- cmp r0, 0
- bne _080216D6
- ldr r0, _08021708 @ =gBattleMons
- ldrb r2, [r6]
- movs r1, 0x58
- muls r2, r1
- adds r0, r2, r0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1D
- beq _080216D6
- cmp r0, 0x49
- beq _080216D6
- cmp r0, 0x33
- bne _080216BA
- cmp r7, 0x6
- beq _080216D6
-_080216BA:
- cmp r0, 0x34
- bne _080216C2
- cmp r7, 0x1
- beq _080216D6
-_080216C2:
- adds r0, r7, r2
-_080216C4:
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080216D6
- lsrs r0, r5, 16
- mov r8, r0
- adds r3, 0x1
-_080216D6:
- lsrs r4, 1
- movs r1, 0x80
- lsls r1, 9
- adds r5, r1
- adds r7, 0x1
- cmp r4, 0
- bne _0802164A
-_080216E4:
- ldr r0, _0802170C @ =gUnknown_02024C10
- mov r9, r0
- cmp r3, 0x1
- ble _08021772
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x39
- mov r8, r1
- cmp r0, 0
- beq _08021772
- movs r0, 0x3A
- b _08021770
- .align 2, 0
-_08021700: .4byte gUnknown_02024A60
-_08021704: .4byte gUnknown_02024C80
-_08021708: .4byte gBattleMons
-_0802170C: .4byte gUnknown_02024C10
-_08021710:
- movs r0, 0x2
- ands r0, r1
- movs r1, 0xE
- cmp r0, 0
- beq _0802171C
- movs r1, 0x26
-_0802171C:
- mov r9, r5
- cmp r4, 0
- beq _08021758
- ldr r6, _0802178C @ =gUnknown_02024A98
- adds r5, r2, 0
- lsls r2, r1, 16
-_08021728:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802174A
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- bgt _0802174A
- lsrs r1, r2, 16
- mov r8, r1
- adds r3, 0x1
-_0802174A:
- lsrs r4, 1
- movs r0, 0x80
- lsls r0, 9
- adds r2, r0
- adds r7, 0x1
- cmp r4, 0
- bne _08021728
-_08021758:
- cmp r3, 0x1
- ble _08021772
- mov r1, r9
- ldr r0, [r1]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x37
- mov r8, r1
- cmp r0, 0
- beq _08021772
- movs r0, 0x38
-_08021770:
- mov r8, r0
-_08021772:
- mov r1, r9
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08021790
- cmp r3, 0x1
- bgt _08021790
- adds r0, r2, 0x4
- mov r1, r9
- b _080217E6
- .align 2, 0
-_0802178C: .4byte gUnknown_02024A98
-_08021790:
- cmp r3, 0
- beq _080217E0
- ldr r0, _080217D0 @ =0x02000000
- ldr r1, _080217D4 @ =0x000160dc
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _080217E0
- movs r0, 0
- movs r1, 0x1
- mov r2, r8
- str r3, [sp]
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldr r0, _080217D8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _080217DC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x4
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _080217CC
- cmp r3, 0x1
- ble _080217CC
- movs r0, 0x1
- strb r0, [r4]
-_080217CC:
- ldr r1, _080217DC @ =gUnknown_02024C10
- b _080217E2
- .align 2, 0
-_080217D0: .4byte 0x02000000
-_080217D4: .4byte 0x000160dc
-_080217D8: .4byte gUnknown_02024A60
-_080217DC: .4byte gUnknown_02024C10
-_080217E0:
- mov r1, r9
-_080217E2:
- ldr r0, [r1]
- adds r0, 0x4
-_080217E6:
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk48_playstatchangeanimation
-
- thumb_func_start sub_80217F8
-sub_80217F8: @ 80217F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r0, 0
- mov r10, r0
- ldr r0, _08021834 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- str r1, [sp, 0x10]
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x14]
- ldr r1, _08021838 @ =gBattleMons
- ldr r0, _0802183C @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08021844
- ldr r1, _08021840 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- b _0802184E
- .align 2, 0
-_08021834: .4byte gUnknown_02024C10
-_08021838: .4byte gBattleMons
-_0802183C: .4byte gUnknown_02024C07
-_08021840: .4byte gEnigmaBerries
-_08021844:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0802184E:
- str r0, [sp, 0x8]
- ldr r0, _0802186C @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 1
- ldr r0, _08021870 @ =0x020160e8
- adds r1, r0
- str r1, [sp, 0xC]
- subs r0, 0xCC
- ldrb r0, [r0]
- cmp r0, 0
- beq _080218C0
- movs r2, 0x3F
- ands r2, r0
- str r2, [sp, 0x4]
- b _080218D2
- .align 2, 0
-_0802186C: .4byte gUnknown_02024C07
-_08021870: .4byte 0x020160e8
-_08021874:
- strb r2, [r7]
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r0, _080218AC @ =0x02000000
- ldr r3, _080218B0 @ =0x0001600c
- adds r0, r3
- strb r4, [r0]
- bl sub_8020B54
- ldr r2, _080218B4 @ =gUnknown_081D6BBC
- mov r4, r8
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- bl b_movescr_stack_push
- ldr r1, _080218B8 @ =gUnknown_02024C10
- ldr r0, _080218BC @ =gUnknown_081D9B2D
- bl _0802229C
- .align 2, 0
-_080218AC: .4byte 0x02000000
-_080218B0: .4byte 0x0001600c
-_080218B4: .4byte gUnknown_081D6BBC
-_080218B8: .4byte gUnknown_02024C10
-_080218BC: .4byte gUnknown_081D9B2D
-_080218C0:
- ldr r2, _080218D8 @ =gBattleMoves
- ldr r0, _080218DC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x4]
-_080218D2:
- ldr r5, _080218E0 @ =0x02000000
- mov r12, r5
- b _080218EE
- .align 2, 0
-_080218D8: .4byte gBattleMoves
-_080218DC: .4byte gUnknown_02024BE6
-_080218E0: .4byte 0x02000000
-_080218E4:
- mov r0, r10
- cmp r0, 0
- beq _080218EE
- bl _08022286
-_080218EE:
- ldr r0, _08021908 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- bls _080218FC
- bl _0802224E
-_080218FC:
- lsls r0, 2
- ldr r1, _0802190C @ =_08021910
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08021908: .4byte 0x0001600c
-_0802190C: .4byte _08021910
- .align 2, 0
-_08021910:
- .4byte _08021958
- .4byte _08021A34
- .4byte _08021AF0
- .4byte _08021B20
- .4byte _08021B44
- .4byte _08021B78
- .4byte _08021B9C
- .4byte _08021C40
- .4byte _08021C78
- .4byte _08021CA8
- .4byte _08021CCC
- .4byte _08021D18
- .4byte _08021DAC
- .4byte _08021E30
- .4byte _08021E70
- .4byte _08022068
- .4byte _080221C0
- .4byte _0802224E
-_08021958:
- ldr r5, _08021A08 @ =gBattleMons
- ldr r2, _08021A0C @ =gUnknown_02024C08
- ldrb r4, [r2]
- movs r6, 0x58
- adds r3, r4, 0
- muls r3, r6
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 16
- ands r1, r0
- cmp r1, 0
- beq _080219FE
- adds r0, r3, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080219FE
- ldr r0, _08021A10 @ =gUnknown_02024C07
- ldrb r1, [r0]
- cmp r1, r4
- beq _080219FE
- adds r0, r1, 0
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r1, _08021A0C @ =gUnknown_02024C08
- ldrb r0, [r1]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080219FE
- ldr r0, _08021A14 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _080219FE
- ldr r2, _08021A18 @ =gUnknown_02024D28
- ldr r4, _08021A0C @ =gUnknown_02024C08
- ldrb r3, [r4]
- lsls r1, r3, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080219C8
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080219FE
-_080219C8:
- ldr r2, _08021A1C @ =gBattleMoves
- ldr r0, _08021A20 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080219FE
- adds r0, r3, 0
- muls r0, r6
- adds r1, r0, r5
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _080219FE
- adds r0, r2, 0x1
- strb r0, [r1, 0x19]
- bl b_movescr_stack_push_cursor
- ldr r1, _08021A24 @ =gUnknown_02024C10
- ldr r0, _08021A28 @ =gUnknown_081D9132
- str r0, [r1]
- movs r5, 0x1
- mov r10, r5
-_080219FE:
- ldr r2, _08021A2C @ =0x02000000
- ldr r0, _08021A30 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021A08: .4byte gBattleMons
-_08021A0C: .4byte gUnknown_02024C08
-_08021A10: .4byte gUnknown_02024C07
-_08021A14: .4byte gUnknown_02024C68
-_08021A18: .4byte gUnknown_02024D28
-_08021A1C: .4byte gBattleMoves
-_08021A20: .4byte gUnknown_02024BE6
-_08021A24: .4byte gUnknown_02024C10
-_08021A28: .4byte gUnknown_081D9132
-_08021A2C: .4byte 0x02000000
-_08021A30: .4byte 0x0001600c
-_08021A34:
- ldr r2, _08021AD0 @ =gBattleMons
- ldr r1, _08021AD4 @ =gUnknown_02024C08
- ldrb r4, [r1]
- movs r3, 0x58
- mov r12, r3
- mov r3, r12
- muls r3, r4
- adds r7, r2, 0
- adds r7, 0x4C
- adds r6, r3, r7
- ldr r5, [r6]
- movs r0, 0x20
- ands r0, r5
- cmp r0, 0
- bne _08021A54
- b _08021DFA
-_08021A54:
- adds r0, r3, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08021A5E
- b _08021DFA
-_08021A5E:
- ldr r0, _08021AD8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- cmp r0, r4
- bne _08021A68
- b _08021DFA
-_08021A68:
- ldr r0, _08021ADC @ =gUnknown_02024D68
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r0, 0xC
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _08021A7C
- b _08021DFA
-_08021A7C:
- ldr r0, _08021AE0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08021A8A
- b _08021DFA
-_08021A8A:
- ldr r4, [sp, 0x4]
- cmp r4, 0xA
- beq _08021A92
- b _08021DFA
-_08021A92:
- movs r0, 0x21
- negs r0, r0
- ands r5, r0
- str r5, [r6]
- ldr r4, _08021AE4 @ =gUnknown_02024A60
- ldr r5, _08021AD4 @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r4]
- ldrb r0, [r5]
- mov r1, r12
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl b_movescr_stack_push_cursor
- ldr r1, _08021AE8 @ =gUnknown_02024C10
- ldr r0, _08021AEC @ =gUnknown_081D955D
- str r0, [r1]
- movs r2, 0x1
- mov r10, r2
- b _08021DFA
- .align 2, 0
-_08021AD0: .4byte gBattleMons
-_08021AD4: .4byte gUnknown_02024C08
-_08021AD8: .4byte gUnknown_02024C07
-_08021ADC: .4byte gUnknown_02024D68
-_08021AE0: .4byte gUnknown_02024C68
-_08021AE4: .4byte gUnknown_02024A60
-_08021AE8: .4byte gUnknown_02024C10
-_08021AEC: .4byte gUnknown_081D955D
-_08021AF0:
- ldr r0, _08021B14 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08021B0C
- movs r4, 0x1
- mov r10, r4
-_08021B0C:
- ldr r2, _08021B18 @ =0x02000000
- ldr r5, _08021B1C @ =0x0001600c
- adds r1, r2, r5
- b _08021E00
- .align 2, 0
-_08021B14: .4byte gUnknown_02024C08
-_08021B18: .4byte 0x02000000
-_08021B1C: .4byte 0x0001600c
-_08021B20:
- ldr r0, _08021B40 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _08021B3A
- b _08021DFA
-_08021B3A:
- movs r0, 0x1
- mov r10, r0
- b _08021DFA
- .align 2, 0
-_08021B40: .4byte gUnknown_02024C08
-_08021B44:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08021B68
- movs r4, 0x1
- mov r10, r4
- ldr r5, _08021B64 @ =0x02000000
- mov r12, r5
- b _0802224E
- .align 2, 0
-_08021B64: .4byte 0x02000000
-_08021B68:
- ldr r2, _08021B70 @ =0x02000000
- ldr r0, _08021B74 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021B70: .4byte 0x02000000
-_08021B74: .4byte 0x0001600c
-_08021B78:
- ldr r0, _08021B98 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _08021B92
- b _08021DFA
-_08021B92:
- movs r1, 0x1
- mov r10, r1
- b _08021DFA
- .align 2, 0
-_08021B98: .4byte gUnknown_02024C07
-_08021B9C:
- ldr r0, _08021C28 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08021BE0
- ldr r4, [sp, 0x8]
- cmp r4, 0x1D
- bne _08021BE0
- ldr r0, _08021C2C @ =gUnknown_02024BE8
- ldrh r2, [r0]
- adds r7, r0, 0
- cmp r2, 0xA5
- beq _08021BE0
- ldr r5, [sp, 0xC]
- ldrh r1, [r5]
- cmp r1, 0
- beq _08021BC8
- ldr r0, _08021C30 @ =0x0000ffff
- cmp r1, r0
- bne _08021BE0
-_08021BC8:
- cmp r2, 0xE2
- bne _08021BDA
- ldr r0, _08021C34 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08021BDA
- b _08022244
-_08021BDA:
- ldrh r0, [r7]
- ldr r1, [sp, 0xC]
- strh r0, [r1]
-_08021BE0:
- movs r4, 0
- ldr r2, _08021C38 @ =gBattleMons
- ldr r3, _08021C3C @ =gUnknown_02024C07
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldr r5, [sp, 0xC]
- ldrh r1, [r5]
- mov r9, r3
- cmp r0, r1
- beq _08021C18
- mov r6, r9
- movs r3, 0x58
- adds r5, r1, 0
-_08021C02:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08021C18
- lsls r0, r4, 1
- ldrb r1, [r6]
- muls r1, r3
- adds r0, r1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r5
- bne _08021C02
-_08021C18:
- cmp r4, 0x4
- beq _08021C1E
- b _08022244
-_08021C1E:
- movs r0, 0
- ldr r1, [sp, 0xC]
-_08021C22:
- strh r0, [r1]
- b _08022244
- .align 2, 0
-_08021C28: .4byte gUnknown_02024C6C
-_08021C2C: .4byte gUnknown_02024BE8
-_08021C30: .4byte 0x0000ffff
-_08021C34: .4byte gUnknown_02024C68
-_08021C38: .4byte gBattleMons
-_08021C3C: .4byte gUnknown_02024C07
-_08021C40:
- movs r4, 0
- ldr r0, _08021C6C @ =gUnknown_02024A68
- ldrb r2, [r0]
- cmp r4, r2
- blt _08021C4C
- b _08022244
-_08021C4C:
- movs r5, 0
- ldr r2, _08021C70 @ =0x020160f0
- ldr r3, _08021C74 @ =gBattleMons
-_08021C52:
- ldrh r1, [r2]
- cmp r1, 0
- beq _08021C5C
- strh r1, [r3, 0x2E]
- strh r5, [r2]
-_08021C5C:
- adds r2, 0x2
- adds r3, 0x58
- adds r4, 0x1
- ldrb r1, [r0]
- cmp r4, r1
- blt _08021C52
- b _08022244
- .align 2, 0
-_08021C6C: .4byte gUnknown_02024A68
-_08021C70: .4byte 0x020160f0
-_08021C74: .4byte gBattleMons
-_08021C78:
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _08021C98
- movs r2, 0x1
- mov r10, r2
- ldr r3, _08021C94 @ =0x02000000
- mov r12, r3
- b _0802224E
- .align 2, 0
-_08021C94: .4byte 0x02000000
-_08021C98:
- ldr r2, _08021CA0 @ =0x02000000
- ldr r4, _08021CA4 @ =0x0001600c
- adds r1, r2, r4
- b _08021E00
- .align 2, 0
-_08021CA0: .4byte 0x02000000
-_08021CA4: .4byte 0x0001600c
-_08021CA8:
- movs r0, 0x4
- movs r1, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _08021CBC
- movs r5, 0x1
- mov r10, r5
-_08021CBC:
- ldr r2, _08021CC4 @ =0x02000000
- ldr r0, _08021CC8 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021CC4: .4byte 0x02000000
-_08021CC8: .4byte 0x0001600c
-_08021CCC:
- ldr r1, _08021D04 @ =gUnknown_02024C98
- ldr r0, _08021D08 @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021D0C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08021CE2
- b _08021DFA
-_08021CE2:
- ldr r0, _08021D10 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08021CF0
- b _08021DFA
-_08021CF0:
- ldr r4, _08021D14 @ =gUnknown_02024A60
- strb r2, [r4]
- movs r0, 0
- movs r1, 0x1
- bl dp01_build_cmdbuf_x33_a_33_33
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08021DFA
- .align 2, 0
-_08021D04: .4byte gUnknown_02024C98
-_08021D08: .4byte gUnknown_02024C07
-_08021D0C: .4byte 0x000400c0
-_08021D10: .4byte gUnknown_02024C6C
-_08021D14: .4byte gUnknown_02024A60
-_08021D18:
- ldr r0, _08021D88 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08021D44
- ldr r1, _08021D8C @ =gUnknown_02024C98
- ldr r0, _08021D90 @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021D94 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021D44
- adds r0, r2, 0
- bl sub_8015660
- lsls r0, 24
- cmp r0, 0
- beq _08021D7E
-_08021D44:
- ldr r4, _08021D98 @ =gUnknown_02024A60
- ldr r5, _08021D90 @ =gUnknown_02024C07
- ldrb r0, [r5]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x33_a_33_33
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _08021D8C @ =gUnknown_02024C98
- ldrb r2, [r5]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08021D9C @ =0xfffbff3f
- ands r0, r1
- str r0, [r2]
- ldr r2, _08021DA0 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08021D7E:
- ldr r2, _08021DA4 @ =0x02000000
- ldr r4, _08021DA8 @ =0x0001600c
- adds r1, r2, r4
- b _08021E00
- .align 2, 0
-_08021D88: .4byte gUnknown_02024C68
-_08021D8C: .4byte gUnknown_02024C98
-_08021D90: .4byte gUnknown_02024C07
-_08021D94: .4byte 0x000400c0
-_08021D98: .4byte gUnknown_02024A60
-_08021D9C: .4byte 0xfffbff3f
-_08021DA0: .4byte gUnknown_02024D68
-_08021DA4: .4byte 0x02000000
-_08021DA8: .4byte 0x0001600c
-_08021DAC:
- ldr r2, _08021E0C @ =gUnknown_02024D68
- ldr r1, _08021E10 @ =gUnknown_02024C08
- ldrb r3, [r1]
- lsls r4, r3, 2
- adds r0, r4, r3
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08021DFA
- ldr r0, _08021E14 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r3, r0
- bcs _08021DFA
- ldr r5, _08021E18 @ =gUnknown_02024C98
- adds r0, r4, r5
- ldr r0, [r0]
- ldr r1, _08021E1C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08021DFA
- ldr r4, _08021E20 @ =gUnknown_02024A60
- strb r3, [r4]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x33_a_33_33
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _08021E10 @ =gUnknown_02024C08
- ldrb r2, [r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, [r2]
- ldr r1, _08021E24 @ =0xfffbff3f
- ands r0, r1
- str r0, [r2]
-_08021DFA:
- ldr r2, _08021E28 @ =0x02000000
- ldr r3, _08021E2C @ =0x0001600c
- adds r1, r2, r3
-_08021E00:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- b _0802224E
- .align 2, 0
-_08021E0C: .4byte gUnknown_02024D68
-_08021E10: .4byte gUnknown_02024C08
-_08021E14: .4byte gUnknown_02024A68
-_08021E18: .4byte gUnknown_02024C98
-_08021E1C: .4byte 0x000400c0
-_08021E20: .4byte gUnknown_02024A60
-_08021E24: .4byte 0xfffbff3f
-_08021E28: .4byte 0x02000000
-_08021E2C: .4byte 0x0001600c
-_08021E30:
- movs r4, 0
- ldr r0, _08021E60 @ =gUnknown_02024A68
- ldrb r5, [r0]
- cmp r4, r5
- blt _08021E3C
- b _08022244
-_08021E3C:
- ldr r2, _08021E64 @ =gUnknown_02024CA8
- ldr r5, _08021E68 @ =0xfeffffff
- adds r3, r0, 0
- ldr r1, _08021E6C @ =gUnknown_02024AD0
-_08021E44:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- bne _08021E50
- ldr r0, [r1]
- ands r0, r5
- str r0, [r1]
-_08021E50:
- adds r2, 0x1C
- adds r1, 0x58
- adds r4, 0x1
- ldrb r0, [r3]
- cmp r4, r0
- blt _08021E44
- b _08022244
- .align 2, 0
-_08021E60: .4byte gUnknown_02024A68
-_08021E64: .4byte gUnknown_02024CA8
-_08021E68: .4byte 0xfeffffff
-_08021E6C: .4byte gUnknown_02024AD0
-_08021E70:
- ldr r1, _08021F2C @ =gUnknown_02024C6C
- ldr r3, [r1]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r3
- ldr r2, _08021F30 @ =gUnknown_02024C07
- mov r9, r2
- adds r5, r1, 0
- cmp r0, 0
- beq _08021E9A
- ldr r0, _08021F34 @ =gUnknown_02024A60
- ldrb r2, [r2]
- strb r2, [r0]
- ldr r1, _08021F38 @ =gUnknown_02024C08
- ldrb r0, [r1]
- mov r4, r9
- strb r0, [r4]
- strb r2, [r1]
- ldr r0, _08021F3C @ =0xffffefff
- ands r3, r0
- str r3, [r5]
-_08021E9A:
- ldr r1, _08021F40 @ =gBattleMoves
- ldr r2, _08021F44 @ =gUnknown_02024BE8
- ldrh r3, [r2]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r1
- adds r7, r2, 0
- cmp r0, 0x7F
- bne _08021EBE
- ldr r0, _08021F48 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08021ECA
-_08021EBE:
- ldr r1, _08021F4C @ =gUnknown_02024C2C
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r3, [r0]
-_08021ECA:
- ldr r0, _08021F50 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08021F54 @ =gBitTable
- mov r3, r9
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r3, [r0]
- ands r1, r3
- adds r6, r2, 0
- cmp r1, 0
- beq _08021EE4
- b _08022244
-_08021EE4:
- ldr r0, _08021F58 @ =0x000160a6
- add r0, r12
- ldrb r0, [r0]
- ands r0, r3
- cmp r0, 0
- beq _08021EF2
- b _08022244
-_08021EF2:
- ldrh r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0x7F
- bne _08021F04
- b _08022244
-_08021F04:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08021F68
- ldr r1, _08021F5C @ =gUnknown_02024C34
- lsls r0, r4, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _08021F60 @ =gUnknown_02024C4C
- mov r4, r9
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08021F64 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- strh r0, [r1]
- b _08021F82
- .align 2, 0
-_08021F2C: .4byte gUnknown_02024C6C
-_08021F30: .4byte gUnknown_02024C07
-_08021F34: .4byte gUnknown_02024A60
-_08021F38: .4byte gUnknown_02024C08
-_08021F3C: .4byte 0xffffefff
-_08021F40: .4byte gBattleMoves
-_08021F44: .4byte gUnknown_02024BE8
-_08021F48: .4byte gUnknown_02024C68
-_08021F4C: .4byte gUnknown_02024C2C
-_08021F50: .4byte gUnknown_02024C0C
-_08021F54: .4byte gBitTable
-_08021F58: .4byte 0x000160a6
-_08021F5C: .4byte gUnknown_02024C34
-_08021F60: .4byte gUnknown_02024C4C
-_08021F64: .4byte gUnknown_02024BE6
-_08021F68:
- ldr r1, _08021FD0 @ =gUnknown_02024C34
- lsls r0, r4, 1
- adds r0, r1
- ldr r1, _08021FD4 @ =0x0000ffff
- strh r1, [r0]
- ldr r1, _08021FD8 @ =gUnknown_02024C4C
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0]
-_08021F82:
- ldr r2, _08021FDC @ =gUnknown_02024C08
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r0, 28
- ldr r1, [r5]
- ands r1, r0
- cmp r1, 0
- bne _08021FA0
- ldr r0, _08021FE0 @ =gUnknown_02024C5C
- adds r0, r3, r0
- mov r3, r9
- ldrb r1, [r3]
- strb r1, [r0]
-_08021FA0:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _0802204C
- ldr r0, _08021FE4 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0802204C
- ldrh r2, [r7]
- ldr r0, _08021FD4 @ =0x0000ffff
- cmp r2, r0
- bne _08021FEC
- ldr r1, _08021FE8 @ =gUnknown_02024C3C
- ldr r4, _08021FDC @ =gUnknown_02024C08
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- b _08022244
- .align 2, 0
-_08021FD0: .4byte gUnknown_02024C34
-_08021FD4: .4byte 0x0000ffff
-_08021FD8: .4byte gUnknown_02024C4C
-_08021FDC: .4byte gUnknown_02024C08
-_08021FE0: .4byte gUnknown_02024C5C
-_08021FE4: .4byte gUnknown_02024C68
-_08021FE8: .4byte gUnknown_02024C3C
-_08021FEC:
- ldr r0, _08022014 @ =gUnknown_02024C3C
- ldr r5, _08022018 @ =gUnknown_02024C08
- ldrb r1, [r5]
- lsls r1, 1
- adds r1, r0
- ldr r4, _0802201C @ =gUnknown_02024BE6
- ldrh r0, [r4]
- strh r0, [r1]
- ldr r0, _08022020 @ =0x0001601c
- add r0, r12
- ldrb r3, [r0]
- cmp r3, 0
- beq _08022028
- ldr r0, _08022024 @ =gUnknown_02024C44
- ldrb r1, [r5]
- lsls r1, 1
- adds r1, r0
- movs r0, 0x3F
- ands r0, r3
- b _08021C22
- .align 2, 0
-_08022014: .4byte gUnknown_02024C3C
-_08022018: .4byte gUnknown_02024C08
-_0802201C: .4byte gUnknown_02024BE6
-_08022020: .4byte 0x0001601c
-_08022024: .4byte gUnknown_02024C44
-_08022028:
- ldr r0, _08022044 @ =gUnknown_02024C44
- ldr r1, _08022048 @ =gUnknown_02024C08
- ldrb r2, [r1]
- lsls r2, 1
- adds r2, r0
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x2]
- strh r0, [r2]
- b _08022244
- .align 2, 0
-_08022044: .4byte gUnknown_02024C44
-_08022048: .4byte gUnknown_02024C08
-_0802204C:
- ldr r0, _0802205C @ =gUnknown_02024C3C
- ldr r2, _08022060 @ =gUnknown_02024C08
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08022064 @ =0x0000ffff
- b _08021C22
- .align 2, 0
-_0802205C: .4byte gUnknown_02024C3C
-_08022060: .4byte gUnknown_02024C08
-_08022064: .4byte 0x0000ffff
-_08022068:
- ldr r0, _0802212C @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r6, _08022130 @ =gBitTable
- ldr r2, _08022134 @ =gUnknown_02024C07
- ldrb r5, [r2]
- lsls r0, r5, 2
- adds r0, r6
- ldr r4, [r0]
- ands r1, r4
- mov r9, r2
- cmp r1, 0
- beq _08022082
- b _08022244
-_08022082:
- ldr r0, _08022138 @ =0x000160a6
- add r0, r12
- ldrb r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08022090
- b _08022244
-_08022090:
- ldr r1, _0802213C @ =gBattleMoves
- ldr r4, _08022140 @ =gUnknown_02024BE8
- ldrh r3, [r4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802215C
- ldr r0, _08022144 @ =gUnknown_02024C6C
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 18
- ands r0, r1
- cmp r0, 0
- beq _0802215C
- ldr r2, _08022148 @ =gUnknown_02024C08
- ldrb r0, [r2]
- cmp r5, r0
- bne _080220C0
- b _08022244
-_080220C0:
- adds r2, r0, 0
- lsls r0, r2, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r0, 28
- ands r1, r0
- cmp r1, 0
- bne _0802215C
- ldr r0, _0802214C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0802215C
- lsls r0, r2, 1
- ldr r5, _08022150 @ =0x000160ac
- adds r0, r5
- add r0, r12
- strb r3, [r0]
- ldr r0, _08022148 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r1, 1
- ldr r2, _08022154 @ =0x000160ad
- adds r1, r2
- add r1, r12
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r1]
- ldr r3, _08022148 @ =gUnknown_02024C08
- ldrb r2, [r3]
- lsls r2, 2
- mov r5, r9
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 1
- ldr r1, _08022158 @ =0x00016100
- adds r0, r1
- adds r2, r0
- add r2, r12
- ldrh r0, [r4]
- strb r0, [r2]
- ldrb r2, [r3]
- lsls r2, 2
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r2, r0
- add r2, r12
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r2]
- b _08022244
- .align 2, 0
-_0802212C: .4byte gUnknown_02024C0C
-_08022130: .4byte gBitTable
-_08022134: .4byte gUnknown_02024C07
-_08022138: .4byte 0x000160a6
-_0802213C: .4byte gBattleMoves
-_08022140: .4byte gUnknown_02024BE8
-_08022144: .4byte gUnknown_02024C6C
-_08022148: .4byte gUnknown_02024C08
-_0802214C: .4byte gUnknown_02024C68
-_08022150: .4byte 0x000160ac
-_08022154: .4byte 0x000160ad
-_08022158: .4byte 0x00016100
-_0802215C:
- mov r1, r9
- ldrb r0, [r1]
- ldr r2, _080221B4 @ =gUnknown_02024C08
- ldrb r2, [r2]
- cmp r0, r2
- beq _08022244
- ldr r3, _080221B4 @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r0, 1
- ldr r4, _080221B8 @ =0x000160ac
- adds r0, r4
- add r0, r12
- movs r3, 0
- strb r3, [r0]
- ldr r5, _080221B4 @ =gUnknown_02024C08
- ldrb r0, [r5]
- lsls r0, 1
- ldr r1, _080221BC @ =0x000160ad
- adds r0, r1
- add r0, r12
- strb r3, [r0]
- ldrb r2, [r5]
- lsls r2, 2
- mov r4, r9
- ldrb r0, [r4]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x53
- adds r0, r1
- adds r2, r0
- add r2, r12
- strb r3, [r2]
- ldrb r2, [r5]
- lsls r2, 2
- ldrb r0, [r4]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r2, r0
- add r2, r12
- strb r3, [r2]
- b _08022244
- .align 2, 0
-_080221B4: .4byte gUnknown_02024C08
-_080221B8: .4byte 0x000160ac
-_080221BC: .4byte 0x000160ad
-_080221C0:
- ldr r5, _080222B0 @ =gUnknown_02024C6C
- ldr r2, [r5]
- movs r0, 0x80
- lsls r0, 12
- ands r0, r2
- cmp r0, 0
- bne _08022244
- ldr r0, _080222B4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08022244
- ldr r1, _080222B8 @ =gUnknown_02024D28
- ldr r0, _080222BC @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r0, 0
- blt _08022244
- ldr r0, _080222C0 @ =gBattleMoves
- mov r9, r0
- ldr r1, _080222C4 @ =gUnknown_02024BE6
- mov r8, r1
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _08022244
- movs r6, 0x80
- lsls r6, 2
- adds r4, r6, 0
- ands r4, r2
- cmp r4, 0
- bne _08022244
- ldr r7, _080222C8 @ =gUnknown_02024C08
- ldrb r0, [r7]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080222CC @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0802223A
- bl _08021874
-_0802223A:
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r2, _080222D0 @ =0x02000000
- mov r12, r2
-_08022244:
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0802224E:
- ldr r3, [sp, 0x10]
- cmp r3, 0x1
- bne _08022262
- mov r4, r10
- cmp r4, 0
- bne _08022262
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- movs r0, 0x11
- strb r0, [r1]
-_08022262:
- ldr r5, [sp, 0x10]
- cmp r5, 0x2
- bne _08022278
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- ldr r0, [sp, 0x14]
- ldrb r2, [r1]
- cmp r0, r2
- bne _08022278
- movs r0, 0x11
- strb r0, [r1]
-_08022278:
- ldr r0, _080222D4 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _08022286
- bl _080218E4
-_08022286:
- ldr r0, _080222D4 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- bne _0802229E
- mov r3, r10
- cmp r3, 0
- bne _0802229E
- ldr r1, _080222D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x3
-_0802229C:
- str r0, [r1]
-_0802229E:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080222B0: .4byte gUnknown_02024C6C
-_080222B4: .4byte gUnknown_020239F8
-_080222B8: .4byte gUnknown_02024D28
-_080222BC: .4byte gUnknown_02024C07
-_080222C0: .4byte gBattleMoves
-_080222C4: .4byte gUnknown_02024BE6
-_080222C8: .4byte gUnknown_02024C08
-_080222CC: .4byte gBattleMons
-_080222D0: .4byte 0x02000000
-_080222D4: .4byte 0x0001600c
-_080222D8: .4byte gUnknown_02024C10
- thumb_func_end sub_80217F8
-
- thumb_func_start atk4A_damageflags
-atk4A_damageflags: @ 80222DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- movs r5, 0
- ldr r2, _08022340 @ =gBattleMoves
- ldr r0, _08022344 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
- ldr r2, _08022348 @ =gBattleMons
- ldr r3, _0802234C @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r12, r2
- adds r7, r3, 0
- cmp r0, 0x1A
- bne _08022370
- mov r1, r8
- cmp r1, 0x4
- bne _08022370
- ldr r3, _08022350 @ =byte_2024C06
- strb r0, [r3]
- ldr r2, _08022354 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08022358 @ =gUnknown_02024C3C
- ldrb r0, [r7]
- lsls r0, 1
- adds r0, r1
- strh r4, [r0]
- ldr r0, _0802235C @ =gUnknown_02024D1E
- mov r2, r8
- strb r2, [r0, 0x6]
- ldrb r0, [r7]
- ldrb r1, [r3]
- bl sub_81074C4
- b _08022452
- .align 2, 0
-_08022340: .4byte gBattleMoves
-_08022344: .4byte gUnknown_02024BE6
-_08022348: .4byte gBattleMons
-_0802234C: .4byte gUnknown_02024C08
-_08022350: .4byte byte_2024C06
-_08022354: .4byte gUnknown_02024C68
-_08022358: .4byte gUnknown_02024C3C
-_0802235C: .4byte gUnknown_02024D1E
-_08022360:
- ldr r0, _0802236C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
- b _08022452
- .align 2, 0
-_0802236C: .4byte gUnknown_02024C68
-_08022370:
- ldr r1, _0802237C @ =gTypeEffectiveness
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r6, r1, 0
- b _08022432
- .align 2, 0
-_0802237C: .4byte gTypeEffectiveness
-_08022380:
- adds r0, r5, r6
- ldrb r0, [r0]
- cmp r0, r8
- bne _0802242C
- adds r2, r5, 0x1
- adds r3, r2, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _080223BE
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _08022360
- cmp r1, 0x5
- bne _080223B2
- movs r0, 0x4
- orrs r4, r0
-_080223B2:
- cmp r1, 0x14
- bne _080223BE
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080223BE:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0802242C
- adds r0, 0x21
- ldrb r1, [r0]
- cmp r1, r2
- beq _080223E6
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _08022360
-_080223E6:
- cmp r1, r2
- beq _080223FC
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080223FC
- movs r0, 0x4
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080223FC:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0802242C
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0802242C
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0802242C
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_0802242C:
- adds r5, 0x3
- adds r0, r5, r6
- ldrb r0, [r0]
-_08022432:
- cmp r0, 0xFF
- beq _08022452
- cmp r0, 0xFE
- bne _08022380
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0802242C
-_08022452:
- ldr r2, _08022500 @ =gBattleMons
- ldr r0, _08022504 @ =gUnknown_02024C08
- mov r8, r0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _080224CE
- movs r5, 0x29
- ands r5, r4
- cmp r5, 0
- bne _080224CE
- ldr r0, _08022508 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r7, _0802250C @ =gUnknown_02024BE6
- ldrh r1, [r7]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _080224CE
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08022494
- movs r0, 0x6
- ands r4, r0
- cmp r4, 0x6
- bne _080224CE
-_08022494:
- ldr r2, _08022510 @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080224CE
- ldr r3, _08022514 @ =byte_2024C06
- strb r6, [r3]
- ldr r2, _08022518 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802251C @ =gUnknown_02024C3C
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r5, [r0]
- ldr r1, _08022520 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r2]
- ldrb r1, [r3]
- bl sub_81074C4
-_080224CE:
- ldr r0, _08022518 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080224EC
- ldr r2, _08022524 @ =gUnknown_02024D28
- ldr r0, _08022508 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_080224EC:
- ldr r1, _08022528 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022500: .4byte gBattleMons
-_08022504: .4byte gUnknown_02024C08
-_08022508: .4byte gUnknown_02024C07
-_0802250C: .4byte gUnknown_02024BE6
-_08022510: .4byte gBattleMoves
-_08022514: .4byte byte_2024C06
-_08022518: .4byte gUnknown_02024C68
-_0802251C: .4byte gUnknown_02024C3C
-_08022520: .4byte gUnknown_02024D1E
-_08022524: .4byte gUnknown_02024D28
-_08022528: .4byte gUnknown_02024C10
- thumb_func_end atk4A_damageflags
-
- thumb_func_start atk4B_cmd4b
-atk4B_cmd4b: @ 802252C
- push {r4,lr}
- ldr r4, _08022568 @ =gUnknown_02024A60
- ldr r0, _0802256C @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _08022570 @ =gUnknown_02024C6C
- ldr r1, _08022574 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0802255A
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x06_a
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802255A:
- ldr r1, _08022578 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022568: .4byte gUnknown_02024A60
-_0802256C: .4byte gUnknown_02024C07
-_08022570: .4byte gUnknown_02024C6C
-_08022574: .4byte gBitTable
-_08022578: .4byte gUnknown_02024C10
- thumb_func_end atk4B_cmd4b
-
- thumb_func_start atk4C_switch1
-atk4C_switch1: @ 802257C
- push {r4-r6,lr}
- ldr r0, _080225D4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _080225CC
- ldr r5, _080225D8 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080225DC @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r3, _080225E0 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r3
- ldr r2, _080225E4 @ =0x02000000
- ldr r6, _080225E8 @ =0x00016068
- adds r0, r6
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _080225EC @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080225CC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080225D4: .4byte gUnknown_02024A64
-_080225D8: .4byte gUnknown_02024C10
-_080225DC: .4byte gUnknown_02024A60
-_080225E0: .4byte gUnknown_02024A6A
-_080225E4: .4byte 0x02000000
-_080225E8: .4byte 0x00016068
-_080225EC: .4byte gBitTable
- thumb_func_end atk4C_switch1
-
- thumb_func_start sub_80225F0
-sub_80225F0: @ 80225F0
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r0, _0802274C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _080225FE
- b _08022744
-_080225FE:
- ldr r0, _08022750 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08022754 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r6, _08022758 @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- mov r0, sp
- movs r2, 0x58
- bl memcpy
- ldrb r0, [r4]
- muls r0, r5
- adds r3, r0, r6
- movs r2, 0
- ldr r5, _0802275C @ =gUnknown_02024260
- adds r7, r4, 0
-_0802262C:
- adds r0, r3, r2
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _0802262C
- ldr r4, _08022758 @ =gBattleMons
- ldrb r0, [r7]
- movs r6, 0x58
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r3, _08022760 @ =gBaseStats
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x6]
- adds r2, 0x21
- strb r0, [r2]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x7]
- adds r1, 0x22
- strb r0, [r1]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r0, [r1]
- ldrb r1, [r1, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- ldrb r1, [r7]
- muls r1, r6
- adds r1, r4
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r7]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08022764 @ =gUnknown_02024DBC
- adds r0, 0x29
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r3, _08022768 @ =gBitTable
- ldr r2, _0802276C @ =gUnknown_02024A6A
- ldrb r5, [r7]
- lsls r0, r5, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- mov r12, r4
- cmp r1, 0
- beq _080226CA
- adds r0, r5, 0
- muls r0, r6
- add r0, r12
- movs r1, 0
- strh r1, [r0, 0x2E]
-_080226CA:
- ldr r2, _08022770 @ =gBattleMoves
- ldr r0, _08022774 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7F
- bne _08022710
- movs r2, 0
- adds r4, r7, 0
- movs r6, 0x58
- mov r5, r12
- adds r5, 0x18
- add r3, sp, 0x18
-_080226EA:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2, r1
- adds r1, r5
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080226EA
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r1, [sp, 0x50]
- str r1, [r0]
-_08022710:
- bl sub_8010B88
- ldr r0, _08022778 @ =0x02000000
- ldr r3, _08022754 @ =gUnknown_02024A60
- ldrb r2, [r3]
- ldr r1, _0802277C @ =0x00016003
- adds r0, r1
- strb r2, [r0]
- ldr r1, _08022780 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _0802276C @ =gUnknown_02024A6A
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08022750 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08022744:
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802274C: .4byte gUnknown_02024A64
-_08022750: .4byte gUnknown_02024C10
-_08022754: .4byte gUnknown_02024A60
-_08022758: .4byte gBattleMons
-_0802275C: .4byte gUnknown_02024260
-_08022760: .4byte gBaseStats
-_08022764: .4byte gUnknown_02024DBC
-_08022768: .4byte gBitTable
-_0802276C: .4byte gUnknown_02024A6A
-_08022770: .4byte gBattleMoves
-_08022774: .4byte gUnknown_02024BE6
-_08022778: .4byte 0x02000000
-_0802277C: .4byte 0x00016003
-_08022780: .4byte gUnknown_030041C0
- thumb_func_end sub_80225F0
-
- thumb_func_start sub_8022784
-sub_8022784: @ 8022784
- push {r4,r5,lr}
- ldr r0, _0802280C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08022806
- ldr r0, _08022810 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08022814 @ =gUnknown_02024A60
- strb r0, [r4]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080227D0
- ldr r0, _08022818 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0802281C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _080227D0
- ldr r2, _08022820 @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
-_080227D0:
- ldr r2, _08022824 @ =gUnknown_02024C0C
- ldr r1, _08022828 @ =gBitTable
- ldr r5, _08022814 @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _0802282C @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrb r1, [r0]
- ldr r4, _08022810 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r2, [r0, 0x2]
- movs r0, 0
- bl sub_800C704
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
-_08022806:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802280C: .4byte gUnknown_02024A64
-_08022810: .4byte gUnknown_02024C10
-_08022814: .4byte gUnknown_02024A60
-_08022818: .4byte gUnknown_020239F8
-_0802281C: .4byte 0x00000902
-_08022820: .4byte gBattleMons
-_08022824: .4byte gUnknown_02024C0C
-_08022828: .4byte gBitTable
-_0802282C: .4byte gUnknown_02024A6A
- thumb_func_end sub_8022784
-
- thumb_func_start sub_8022830
-sub_8022830: @ 8022830
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08022894 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- movs r0, 0x7F
- ands r0, r1
- bl sub_8015150
- ldr r3, _08022898 @ =gUnknown_02024A60
- strb r0, [r3]
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080228A8
- ldr r1, _0802289C @ =gBattleMons
- ldrb r3, [r3]
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080228A0 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _0802287C
- ldr r1, _080228A4 @ =gUnknown_02024C98
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _080228A8
-_0802287C:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08022A2C
- .align 2, 0
-_08022894: .4byte gUnknown_02024C10
-_08022898: .4byte gUnknown_02024A60
-_0802289C: .4byte gBattleMons
-_080228A0: .4byte 0x0400e000
-_080228A4: .4byte gUnknown_02024C98
-_080228A8:
- ldr r5, _08022934 @ =gUnknown_020239F8
- ldrh r1, [r5]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08022948
- ldr r4, _08022938 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802293C @ =gPlayerParty
- mov r8, r1
- cmp r0, 0x1
- bne _080228CC
- ldr r0, _08022940 @ =gEnemyParty
- mov r8, r0
-_080228CC:
- movs r5, 0
- ldrb r0, [r4]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080228E6
- movs r5, 0x3
-_080228E6:
- adds r6, r5, 0x3
- cmp r5, r6
- bge _0802292E
- ldr r7, _08022944 @ =gUnknown_02024A6A
-_080228EE:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08022928
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08022928
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08022928
- ldr r0, _08022938 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, r5
- bne _0802292E
-_08022928:
- adds r5, 0x1
- cmp r5, r6
- blt _080228EE
-_0802292E:
- cmp r5, r6
- beq _080229FC
- b _08022A24
- .align 2, 0
-_08022934: .4byte gUnknown_020239F8
-_08022938: .4byte gUnknown_02024A60
-_0802293C: .4byte gPlayerParty
-_08022940: .4byte gEnemyParty
-_08022944: .4byte gUnknown_02024A6A
-_08022948:
- ldr r0, _08022978 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _08022988
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r5]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0802297C
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- b _0802297E
- .align 2, 0
-_08022978: .4byte gUnknown_02024A60
-_0802297C:
- adds r6, r7, 0
-_0802297E:
- ldr r0, _08022984 @ =gEnemyParty
- mov r8, r0
- b _080229AE
- .align 2, 0
-_08022984: .4byte gEnemyParty
-_08022988:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080229A8
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- b _080229AA
-_080229A8:
- adds r6, r7, 0
-_080229AA:
- ldr r1, _08022A18 @ =gPlayerParty
- mov r8, r1
-_080229AE:
- movs r5, 0
-_080229B0:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080229F2
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080229F2
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080229F2
- ldr r1, _08022A1C @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _080229F2
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- bne _080229F8
-_080229F2:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080229B0
-_080229F8:
- cmp r5, 0x6
- bne _08022A24
-_080229FC:
- ldr r3, _08022A20 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08022A2C
- .align 2, 0
-_08022A18: .4byte gPlayerParty
-_08022A1C: .4byte gUnknown_02024A6A
-_08022A20: .4byte gUnknown_02024C10
-_08022A24:
- ldr r1, _08022A38 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08022A2C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A38: .4byte gUnknown_02024C10
- thumb_func_end sub_8022830
-
- thumb_func_start sub_8022A3C
-sub_8022A3C: @ 8022A3C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r4, _08022A84 @ =0x02000000
- ldr r5, _08022A88 @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r3, _08022A8C @ =0x00016064
- adds r1, r0, r3
- adds r1, r4
- ldr r3, _08022A90 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _08022A94 @ =0x0001606c
- adds r4, r1
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A84: .4byte 0x02000000
-_08022A88: .4byte gUnknown_02024A60
-_08022A8C: .4byte 0x00016064
-_08022A90: .4byte gUnknown_02024A6A
-_08022A94: .4byte 0x0001606c
- thumb_func_end sub_8022A3C
-
- thumb_func_start atk50_openpartyscreen
-atk50_openpartyscreen: @ 8022A98
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r9, r0
- ldr r6, _08022B44 @ =gUnknown_02024C10
- ldr r1, [r6]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r2, r0
- mov r8, r2
- ldrb r2, [r1, 0x1]
- adds r0, r2, 0
- mov r12, r6
- cmp r0, 0x5
- beq _08022ACE
- b _08022F74
-_08022ACE:
- ldr r0, _08022B48 @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r1, 0x41
- ands r1, r0
- cmp r1, 0x1
- beq _08022BBC
- ldr r1, _08022B4C @ =gUnknown_02024A60
- strb r7, [r1]
- ldr r0, _08022B50 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcc _08022AE8
- b _08022F62
-_08022AE8:
- ldr r7, _08022B54 @ =gUnknown_02024C6C
- ldr r6, _08022B58 @ =gBitTable
- adds r4, r1, 0
- ldr r0, _08022B5C @ =gUnknown_02024C0C
- mov r8, r0
-_08022AF2:
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- ands r0, r1
- cmp r0, 0
- beq _08022B94
- adds r0, r2, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022B60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- bics r0, r1
- str r0, [r7]
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022BA2
- .align 2, 0
-_08022B44: .4byte gUnknown_02024C10
-_08022B48: .4byte gUnknown_020239F8
-_08022B4C: .4byte gUnknown_02024A60
-_08022B50: .4byte gUnknown_02024A68
-_08022B54: .4byte gUnknown_02024C6C
-_08022B58: .4byte gBitTable
-_08022B5C: .4byte gUnknown_02024C0C
-_08022B60:
- ldr r5, _08022B90 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022BA2
- movs r0, 0x6
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022BA2
- .align 2, 0
-_08022B90: .4byte gUnknown_02024D68
-_08022B94:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022BA2:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08022BB8 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08022AF2
- b _08022F62
- .align 2, 0
-_08022BB8: .4byte gUnknown_02024A68
-_08022BBC:
- ands r1, r0
- cmp r1, 0
- bne _08022BC4
- b _08022F62
-_08022BC4:
- ldr r0, _08022C1C @ =gUnknown_02024C6C
- mov r8, r0
- ldr r0, [r0]
- lsrs r5, r0, 28
- ldr r6, _08022C20 @ =gBitTable
- ldr r0, [r6]
- ands r0, r5
- cmp r0, 0
- beq _08022C7E
- ldr r4, _08022C24 @ =gUnknown_02024A60
- strb r7, [r4]
- movs r0, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022C2C
- ldr r2, _08022C28 @ =gUnknown_02024C0C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- mov r2, r8
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022C7E
- .align 2, 0
-_08022C1C: .4byte gUnknown_02024C6C
-_08022C20: .4byte gBitTable
-_08022C24: .4byte gUnknown_02024A60
-_08022C28: .4byte gUnknown_02024C0C
-_08022C2C:
- ldr r6, _08022C60 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022C6C
- ldr r0, _08022C64 @ =0x02000000
- ldr r1, _08022C68 @ =0x0001606a
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022C7E
- .align 2, 0
-_08022C60: .4byte gUnknown_02024D68
-_08022C64: .4byte 0x02000000
-_08022C68: .4byte 0x0001606a
-_08022C6C:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r2, 0x1
- mov r9, r2
-_08022C7E:
- ldr r6, _08022CD8 @ =gBitTable
- ldr r0, [r6, 0x8]
- ands r0, r5
- cmp r0, 0
- beq _08022D40
- ldr r0, [r6]
- ands r0, r5
- cmp r0, 0
- bne _08022D40
- ldr r4, _08022CDC @ =gUnknown_02024A60
- movs r0, 0x2
- strb r0, [r4]
- movs r0, 0x2
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022CE8
- ldr r2, _08022CE0 @ =gUnknown_02024C0C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022CE4 @ =gUnknown_02024C6C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022D40
- .align 2, 0
-_08022CD8: .4byte gBitTable
-_08022CDC: .4byte gUnknown_02024A60
-_08022CE0: .4byte gUnknown_02024C0C
-_08022CE4: .4byte gUnknown_02024C6C
-_08022CE8:
- ldr r6, _08022D1C @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022D28
- ldr r0, _08022D20 @ =0x02000000
- ldr r1, _08022D24 @ =0x00016068
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022D40
- .align 2, 0
-_08022D1C: .4byte gUnknown_02024D68
-_08022D20: .4byte 0x02000000
-_08022D24: .4byte 0x00016068
-_08022D28:
- movs r0, 0x1
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- bne _08022D40
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022D40:
- ldr r6, _08022D90 @ =gBitTable
- ldr r0, [r6, 0x4]
- ands r0, r5
- cmp r0, 0
- beq _08022DF6
- ldr r4, _08022D94 @ =gUnknown_02024A60
- movs r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022DA0
- ldr r2, _08022D98 @ =gUnknown_02024C0C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022D9C @ =gUnknown_02024C6C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022DF6
- .align 2, 0
-_08022D90: .4byte gBitTable
-_08022D94: .4byte gUnknown_02024A60
-_08022D98: .4byte gUnknown_02024C0C
-_08022D9C: .4byte gUnknown_02024C6C
-_08022DA0:
- ldr r6, _08022DD4 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022DE0
- ldr r0, _08022DD8 @ =0x02000000
- ldr r1, _08022DDC @ =0x0001606b
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022DF6
- .align 2, 0
-_08022DD4: .4byte gUnknown_02024D68
-_08022DD8: .4byte 0x02000000
-_08022DDC: .4byte 0x0001606b
-_08022DE0:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r0, 0x2
- mov r2, r9
- orrs r2, r0
- mov r9, r2
-_08022DF6:
- ldr r6, _08022E50 @ =gBitTable
- ldr r0, [r6, 0xC]
- ands r0, r5
- cmp r0, 0
- beq _08022EB8
- ldr r0, [r6, 0x4]
- ands r0, r5
- cmp r0, 0
- bne _08022EB8
- ldr r4, _08022E54 @ =gUnknown_02024A60
- movs r0, 0x3
- strb r0, [r4]
- movs r0, 0x3
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022E60
- ldr r2, _08022E58 @ =gUnknown_02024C0C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022E5C @ =gUnknown_02024C6C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022EB8
- .align 2, 0
-_08022E50: .4byte gBitTable
-_08022E54: .4byte gUnknown_02024A60
-_08022E58: .4byte gUnknown_02024C0C
-_08022E5C: .4byte gUnknown_02024C6C
-_08022E60:
- ldr r6, _08022E94 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022EA0
- ldr r0, _08022E98 @ =0x02000000
- ldr r1, _08022E9C @ =0x00016069
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022EB8
- .align 2, 0
-_08022E94: .4byte gUnknown_02024D68
-_08022E98: .4byte 0x02000000
-_08022E9C: .4byte 0x00016069
-_08022EA0:
- movs r0, 0x2
- mov r2, r9
- ands r2, r0
- cmp r2, 0
- bne _08022EB8
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022EB8:
- ldr r1, _08022EE8 @ =gUnknown_02024D68
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022F0C
- adds r0, r1, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _08022F0C
- cmp r5, 0
- beq _08022F0C
- ldr r0, _08022EEC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r0, _08022EF0 @ =gBitTable
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08022EF8
- ldr r1, _08022EF4 @ =gUnknown_02024A60
- movs r0, 0x2
- strb r0, [r1]
- b _08022EFC
- .align 2, 0
-_08022EE8: .4byte gUnknown_02024D68
-_08022EEC: .4byte gUnknown_02024C0C
-_08022EF0: .4byte gBitTable
-_08022EF4: .4byte gUnknown_02024A60
-_08022EF8:
- ldr r0, _08022F3C @ =gUnknown_02024A60
- strb r1, [r0]
-_08022EFC:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldr r0, _08022F3C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022F0C:
- ldr r1, _08022F40 @ =gUnknown_02024D68
- ldrb r0, [r1, 0x14]
- lsls r0, 25
- cmp r0, 0
- blt _08022F62
- adds r0, r1, 0
- adds r0, 0x3C
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _08022F62
- cmp r5, 0
- beq _08022F62
- ldr r0, _08022F44 @ =gUnknown_02024C0C
- ldrb r0, [r0]
- ldr r1, _08022F48 @ =gBitTable
- ldr r1, [r1, 0x4]
- ands r0, r1
- cmp r0, 0
- beq _08022F4C
- ldr r1, _08022F3C @ =gUnknown_02024A60
- movs r0, 0x3
- b _08022F50
- .align 2, 0
-_08022F3C: .4byte gUnknown_02024A60
-_08022F40: .4byte gUnknown_02024D68
-_08022F44: .4byte gUnknown_02024C0C
-_08022F48: .4byte gBitTable
-_08022F4C:
- ldr r1, _08022F6C @ =gUnknown_02024A60
- movs r0, 0x1
-_08022F50:
- strb r0, [r1]
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldr r0, _08022F6C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022F62:
- ldr r1, _08022F70 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- b _08023302
- .align 2, 0
-_08022F6C: .4byte gUnknown_02024A60
-_08022F70: .4byte gUnknown_02024C10
-_08022F74:
- cmp r0, 0x6
- beq _08022F7A
- b _08023170
-_08022F7A:
- ldr r0, _08022FF0 @ =gUnknown_020239F8
- ldrh r2, [r0]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _08022F88
- b _0802310C
-_08022F88:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _08022F92
- b _0802310C
-_08022F92:
- ldr r7, _08022FF4 @ =gUnknown_02024C6C
- ldr r0, [r7]
- lsrs r5, r0, 28
- ldr r4, _08022FF8 @ =gBitTable
- ldr r0, [r4, 0x8]
- ands r0, r5
- cmp r0, 0
- beq _0802303A
- ldr r0, [r4]
- ands r0, r5
- cmp r0, 0
- beq _0802303A
- ldr r6, _08022FFC @ =gUnknown_02024A60
- movs r0, 0x2
- strb r0, [r6]
- ldr r0, _08023000 @ =gUnknown_02024260
- ldrb r1, [r0, 0x1]
- movs r0, 0x2
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08023008
- ldr r2, _08023004 @ =gUnknown_02024C0C
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- bics r0, r1
- str r0, [r7]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0802303A
- .align 2, 0
-_08022FF0: .4byte gUnknown_020239F8
-_08022FF4: .4byte gUnknown_02024C6C
-_08022FF8: .4byte gBitTable
-_08022FFC: .4byte gUnknown_02024A60
-_08023000: .4byte gUnknown_02024260
-_08023004: .4byte gUnknown_02024C0C
-_08023008:
- ldr r4, _08023098 @ =gUnknown_02024D68
- ldrb r0, [r6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _0802303A
- ldr r0, _0802309C @ =0x02000000
- ldr r1, _080230A0 @ =0x00016068
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_0802303A:
- ldr r4, _080230A4 @ =gBitTable
- ldr r0, [r4, 0xC]
- ands r0, r5
- cmp r0, 0
- beq _080230EE
- ldr r0, [r4, 0x4]
- ands r5, r0
- cmp r5, 0
- beq _080230EE
- ldr r5, _080230A8 @ =gUnknown_02024A60
- movs r0, 0x3
- strb r0, [r5]
- ldr r0, _080230AC @ =gUnknown_02024260
- ldr r2, _080230B0 @ =0x00000201
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x3
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _080230BC
- ldr r2, _080230B4 @ =gUnknown_02024C0C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _080230B8 @ =gUnknown_02024C6C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- b _080230EE
- .align 2, 0
-_08023098: .4byte gUnknown_02024D68
-_0802309C: .4byte 0x02000000
-_080230A0: .4byte 0x00016068
-_080230A4: .4byte gBitTable
-_080230A8: .4byte gUnknown_02024A60
-_080230AC: .4byte gUnknown_02024260
-_080230B0: .4byte 0x00000201
-_080230B4: .4byte gUnknown_02024C0C
-_080230B8: .4byte gUnknown_02024C6C
-_080230BC:
- ldr r4, _080230FC @ =gUnknown_02024D68
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _080230EE
- ldr r0, _08023100 @ =0x02000000
- ldr r1, _08023104 @ =0x00016069
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_080230EE:
- ldr r1, _08023108 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- mov r12, r1
- b _08023110
- .align 2, 0
-_080230FC: .4byte gUnknown_02024D68
-_08023100: .4byte 0x02000000
-_08023104: .4byte 0x00016069
-_08023108: .4byte gUnknown_02024C10
-_0802310C:
- adds r0, r1, 0x6
- str r0, [r6]
-_08023110:
- ldr r0, _08023160 @ =gUnknown_02024C6C
- ldr r0, [r0]
- lsrs r5, r0, 28
- ldr r1, _08023164 @ =gUnknown_02024C09
- movs r0, 0
- strb r0, [r1]
- ldr r4, _08023168 @ =gBitTable
- ldr r2, [r4]
- ands r2, r5
- ldr r6, _0802316C @ =gUnknown_02024A68
- cmp r2, 0
- bne _0802314C
- adds r7, r6, 0
- ldrb r0, [r6]
- cmp r2, r0
- bcs _0802314C
- adds r3, r1, 0
-_08023132:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldrb r2, [r3]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _0802314C
- ldrb r0, [r7]
- cmp r2, r0
- bcc _08023132
-_0802314C:
- ldrb r0, [r1]
- ldrb r6, [r6]
- cmp r0, r6
- beq _08023156
- b _08023302
-_08023156:
- mov r1, r8
- mov r2, r12
- str r1, [r2]
- b _08023302
- .align 2, 0
-_08023160: .4byte gUnknown_02024C6C
-_08023164: .4byte gUnknown_02024C09
-_08023168: .4byte gBitTable
-_0802316C: .4byte gUnknown_02024A68
-_08023170:
- movs r0, 0x80
- ands r0, r2
- movs r5, 0x1
- cmp r0, 0
- beq _0802317C
- movs r5, 0
-_0802317C:
- movs r0, 0x7F
- ands r0, r2
- bl sub_8015150
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080231A4 @ =gUnknown_02024D68
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- bge _080231A8
- ldr r0, [r6]
- adds r0, 0x6
- str r0, [r6]
- b _08023302
- .align 2, 0
-_080231A4: .4byte gUnknown_02024D68
-_080231A8:
- adds r0, r7, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _080231F8
- ldr r2, _080231E8 @ =gUnknown_02024A60
- strb r7, [r2]
- ldr r3, _080231EC @ =gUnknown_02024C0C
- ldr r4, _080231F0 @ =gBitTable
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r3]
- orrs r0, r1
- strb r0, [r3]
- ldr r3, _080231F4 @ =gUnknown_02024C6C
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- mov r0, r8
- str r0, [r6]
- b _08023302
- .align 2, 0
-_080231E8: .4byte gUnknown_02024A60
-_080231EC: .4byte gUnknown_02024C0C
-_080231F0: .4byte gBitTable
-_080231F4: .4byte gUnknown_02024C6C
-_080231F8:
- ldr r4, _080232A0 @ =gUnknown_02024A60
- strb r7, [r4]
- ldr r3, _080232A4 @ =0x02000000
- ldrb r0, [r4]
- ldr r2, _080232A8 @ =0x00016064
- adds r1, r0, r2
- adds r1, r3
- ldr r2, _080232AC @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- ldr r1, _080232B0 @ =0x00016068
- adds r0, r1
- adds r0, r3
- ldrb r2, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _080232B4 @ =0x0001606c
- adds r3, r1
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- adds r1, r5, 0
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r6]
- adds r0, 0x6
- str r0, [r6]
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _0802325A
- ldr r1, _080232B8 @ =gUnknown_030042E0
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFE
- bhi _0802325A
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_0802325A:
- ldr r0, _080232BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080232C4
- ldr r1, _080232A0 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080232C0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r0, 0
- beq _08023302
- adds r4, r1, 0
-_08023276:
- ldrb r0, [r4]
- cmp r0, r7
- beq _0802328A
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802328A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080232C0 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08023276
- b _08023302
- .align 2, 0
-_080232A0: .4byte gUnknown_02024A60
-_080232A4: .4byte 0x02000000
-_080232A8: .4byte 0x00016064
-_080232AC: .4byte gUnknown_02024A6A
-_080232B0: .4byte 0x00016068
-_080232B4: .4byte 0x0001606c
-_080232B8: .4byte gUnknown_030042E0
-_080232BC: .4byte gUnknown_020239F8
-_080232C0: .4byte gUnknown_02024A68
-_080232C4:
- adds r0, r7, 0
- bl battle_get_per_side_status
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r4, _08023310 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r0, _08023314 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08023318 @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080232F4
- movs r0, 0x2
- eors r3, r0
- strb r3, [r4]
-_080232F4:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08023302:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023310: .4byte gUnknown_02024A60
-_08023314: .4byte gUnknown_02024C0C
-_08023318: .4byte gBitTable
- thumb_func_end atk50_openpartyscreen
-
- thumb_func_start sub_802331C
-sub_802331C: @ 802331C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802334C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0802332C
- b _080234FE
-_0802332C:
- ldr r4, _08023350 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _08023354 @ =gUnknown_02024A60
- strb r0, [r7]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x1
- beq _080233A0
- cmp r0, 0x1
- bgt _08023358
- cmp r0, 0
- beq _0802335E
- b _080234F6
- .align 2, 0
-_0802334C: .4byte gUnknown_02024A64
-_08023350: .4byte gUnknown_02024C10
-_08023354: .4byte gUnknown_02024A60
-_08023358:
- cmp r0, 0x2
- beq _080233BC
- b _080234F6
-_0802335E:
- movs r3, 0
- ldr r2, _08023390 @ =gUnknown_02024A68
- ldrb r0, [r2]
- cmp r3, r0
- blt _0802336A
- b _080234F6
-_0802336A:
- ldr r0, _08023394 @ =0x02000000
- ldr r1, _08023398 @ =gUnknown_02024260
- movs r5, 0x80
- lsls r5, 2
- adds r4, r2, 0
- ldr r6, _0802339C @ =0x00016068
- adds r2, r0, r6
-_08023378:
- ldrb r0, [r1]
- cmp r0, 0x22
- bne _08023382
- ldrb r0, [r1, 0x1]
- strb r0, [r2]
-_08023382:
- adds r1, r5
- adds r2, 0x1
- adds r3, 0x1
- ldrb r0, [r4]
- cmp r3, r0
- blt _08023378
- b _080234F6
- .align 2, 0
-_08023390: .4byte gUnknown_02024A68
-_08023394: .4byte 0x02000000
-_08023398: .4byte gUnknown_02024260
-_0802339C: .4byte 0x00016068
-_080233A0:
- ldr r0, _080233B8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080233AE
- b _080234F6
-_080233AE:
- ldrb r0, [r7]
- bl sub_8012258
- b _080234F6
- .align 2, 0
-_080233B8: .4byte gUnknown_020239F8
-_080233BC:
- ldr r1, _08023484 @ =gUnknown_02024D1E
- ldr r4, _08023488 @ =gUnknown_02024260
- ldrb r0, [r7]
- lsls r0, 9
- adds r2, r4, 0x1
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r6, _0802348C @ =0x02000000
- ldrb r0, [r7]
- ldr r3, _08023490 @ =0x00016068
- adds r1, r0, r3
- adds r1, r6
- lsls r0, 9
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08023494 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080234A4
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r5, _08023498 @ =0x0001606c
- adds r1, r5
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- lsls r0, 9
- adds r2, r4, 0x2
- mov r12, r2
- add r0, r12
- ldrb r2, [r0]
- movs r3, 0xF0
- adds r0, r3, 0
- ands r0, r2
- ldrb r2, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r2, _0802349C @ =0x0001606d
- adds r1, r2
- adds r1, r6
- lsls r0, 9
- adds r4, 0x3
- mov r8, r4
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r4, 0x2
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r12
- ldrb r0, [r0]
- ands r3, r0
- lsrs r3, 4
- ldrb r0, [r1]
- orrs r3, r0
- strb r3, [r1]
- ldrb r0, [r7]
- eors r4, r0
- lsls r1, r4, 1
- adds r1, r4
- ldr r3, _080234A0 @ =0x0001606e
- adds r1, r3
- adds r1, r6
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- b _080234AA
- .align 2, 0
-_08023484: .4byte gUnknown_02024D1E
-_08023488: .4byte gUnknown_02024260
-_0802348C: .4byte 0x02000000
-_08023490: .4byte 0x00016068
-_08023494: .4byte gUnknown_020239F8
-_08023498: .4byte 0x0001606c
-_0802349C: .4byte 0x0001606d
-_080234A0: .4byte 0x0001606e
-_080234A4:
- ldrb r0, [r7]
- bl sub_8012258
-_080234AA:
- ldr r1, _08023508 @ =gUnknown_030041C0
- movs r5, 0xFD
- strb r5, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- ldr r4, _0802350C @ =gBattleMons
- ldr r3, _08023510 @ =gUnknown_02024C07
- ldrb r0, [r3]
- movs r2, 0x58
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r2, _08023514 @ =gUnknown_03004290
- strb r5, [r2]
- movs r0, 0x7
- strb r0, [r2, 0x1]
- ldr r3, _08023518 @ =gUnknown_02024A60
- ldrb r0, [r3]
- strb r0, [r2, 0x2]
- ldr r1, _0802351C @ =gUnknown_02024260
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2, 0x4]
-_080234F6:
- ldr r1, _08023520 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
-_080234FE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023508: .4byte gUnknown_030041C0
-_0802350C: .4byte gBattleMons
-_08023510: .4byte gUnknown_02024C07
-_08023514: .4byte gUnknown_03004290
-_08023518: .4byte gUnknown_02024A60
-_0802351C: .4byte gUnknown_02024260
-_08023520: .4byte gUnknown_02024C10
- thumb_func_end sub_802331C
-
- thumb_func_start sub_8023524
-sub_8023524: @ 8023524
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r6, _08023630 @ =gUnknown_02024C10
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08023634 @ =gUnknown_02024A60
- strb r0, [r4]
- ldrb r0, [r4]
- bl sub_80157C4
- ldr r2, _08023638 @ =gUnknown_02024C6C
- ldr r1, _0802363C @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- ldr r2, _08023640 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- bl battle_side_get_owner
- ldr r5, _08023644 @ =gUnknown_02024C7A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- bne _0802367C
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802367C
- ldr r1, _08023648 @ =gBattleMons
- mov r9, r1
- ldrb r2, [r4]
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0802367C
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0802367C
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- beq _0802367C
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- mov r1, r8
- orrs r1, r2
- strh r1, [r0]
- ldrb r0, [r4]
- bl battle_side_get_owner
- ldr r2, _0802364C @ =gUnknown_02024C80
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x6]
- movs r1, 0x5
- subs r1, r0
- lsls r1, 25
- lsrs r1, 24
- ldr r5, _08023650 @ =gUnknown_02024BEC
- ldrb r0, [r4]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0, 0x2C]
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08023614
- movs r0, 0x1
- str r0, [r5]
-_08023614:
- ldr r0, _08023654 @ =0x02000000
- ldrb r1, [r4]
- ldr r2, _08023658 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08023660
- ldr r0, _0802365C @ =gUnknown_081D919F
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_08023630: .4byte gUnknown_02024C10
-_08023634: .4byte gUnknown_02024A60
-_08023638: .4byte gUnknown_02024C6C
-_0802363C: .4byte gBitTable
-_08023640: .4byte gUnknown_02024D68
-_08023644: .4byte gUnknown_02024C7A
-_08023648: .4byte gBattleMons
-_0802364C: .4byte gUnknown_02024C80
-_08023650: .4byte gUnknown_02024BEC
-_08023654: .4byte 0x02000000
-_08023658: .4byte 0x00016003
-_0802365C: .4byte gUnknown_081D919F
-_08023660:
- cmp r0, 0x1
- bne _08023670
- ldr r0, _0802366C @ =gUnknown_081D9171
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_0802366C: .4byte gUnknown_081D9171
-_08023670:
- ldr r0, _08023678 @ =gUnknown_081D91CD
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_08023678: .4byte gUnknown_081D91CD
-_0802367C:
- ldr r1, _08023754 @ =gBattleMons
- ldr r5, _08023758 @ =gUnknown_02024A60
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x36
- bne _080236A2
- ldr r1, _0802375C @ =gUnknown_02024CA8
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x18]
-_080236A2:
- ldrb r1, [r5]
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080236B8
- b _080237B6
-_080236B8:
- ldrb r1, [r5]
- movs r0, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- bne _080237B6
- ldrb r0, [r5]
- bl battle_side_get_owner
- ldr r1, _08023760 @ =gUnknown_02024C7A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r2, [r0]
- ldr r1, _08023764 @ =0x0000fdff
- ands r1, r2
- strh r1, [r0]
- movs r4, 0
- ldr r0, _08023768 @ =gUnknown_02024A68
- ldrb r3, [r0]
- cmp r4, r3
- bge _08023706
- ldr r6, _0802376C @ =gUnknown_02024A7A
- ldr r3, _08023770 @ =gUnknown_02024A76
- movs r2, 0xC
- adds r1, r0, 0
-_080236F0:
- adds r0, r4, r6
- ldrb r0, [r0]
- ldrb r7, [r5]
- cmp r0, r7
- bne _080236FE
- adds r0, r4, r3
- strb r2, [r0]
-_080236FE:
- adds r4, 0x1
- ldrb r0, [r1]
- cmp r4, r0
- blt _080236F0
-_08023706:
- movs r4, 0
- ldr r0, _08023768 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bge _08023736
- ldr r5, _08023754 @ =gBattleMons
-_08023712:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _08023774 @ =0x020160bc
- adds r0, r1
- movs r1, 0x58
- muls r1, r4
- adds r1, r5
- ldrh r1, [r1, 0x28]
- strh r1, [r0]
- adds r4, 0x1
- ldr r0, _08023768 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08023712
-_08023736:
- ldr r0, _08023778 @ =gUnknown_02024C10
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x5
- bne _080237B0
- ldr r0, _0802377C @ =gUnknown_02024C6C
- ldr r0, [r0]
- lsrs r4, r0, 28
- ldr r1, _08023780 @ =gUnknown_02024C09
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r2, _08023784 @ =gBitTable
- b _08023796
- .align 2, 0
-_08023754: .4byte gBattleMons
-_08023758: .4byte gUnknown_02024A60
-_0802375C: .4byte gUnknown_02024CA8
-_08023760: .4byte gUnknown_02024C7A
-_08023764: .4byte 0x0000fdff
-_08023768: .4byte gUnknown_02024A68
-_0802376C: .4byte gUnknown_02024A7A
-_08023770: .4byte gUnknown_02024A76
-_08023774: .4byte 0x020160bc
-_08023778: .4byte gUnknown_02024C10
-_0802377C: .4byte gUnknown_02024C6C
-_08023780: .4byte gUnknown_02024C09
-_08023784: .4byte gBitTable
-_08023788:
- ldr r0, _080237C4 @ =gUnknown_02024A68
- ldrb r3, [r1]
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080237B0
- adds r0, r3, 0x1
- strb r0, [r1]
-_08023796:
- ldrb r0, [r1]
- lsls r0, 2
- adds r0, r2
- ldr r3, [r0]
- adds r0, r4, 0
- ands r0, r3
- cmp r0, 0
- beq _08023788
- ldr r0, _080237C8 @ =gUnknown_02024C0C
- ldrb r0, [r0]
- ands r0, r3
- cmp r0, 0
- bne _08023788
-_080237B0:
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080237B6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080237C4: .4byte gUnknown_02024A68
-_080237C8: .4byte gUnknown_02024C0C
- thumb_func_end sub_8023524
-
- thumb_func_start sub_80237CC
-sub_80237CC: @ 80237CC
- push {lr}
- ldr r0, _080237DC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080237E0
- movs r0, 0
- b _080237E2
- .align 2, 0
-_080237DC: .4byte gUnknown_02024C10
-_080237E0:
- movs r0, 0x1
-_080237E2:
- bl battle_get_side_with_given_state
- ldr r1, _08023804 @ =gUnknown_02024A60
- strb r0, [r1]
- movs r0, 0
- bl dp01_build_cmdbuf_x08_8_8_8
- ldr r0, _08023804 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08023808 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08023804: .4byte gUnknown_02024A60
-_08023808: .4byte gUnknown_02024C10
- thumb_func_end sub_80237CC
-
- thumb_func_start atk54_802511C
-atk54_802511C: @ 802380C
- push {r4,r5,lr}
- ldr r5, _0802383C @ =gUnknown_02024A60
- ldr r0, _08023840 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _08023844 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl dp01_build_cmdbuf_x2B_aa_0
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802383C: .4byte gUnknown_02024A60
-_08023840: .4byte gUnknown_02024C07
-_08023844: .4byte gUnknown_02024C10
- thumb_func_end atk54_802511C
-
- thumb_func_start sub_8023848
-sub_8023848: @ 8023848
- push {r4,r5,lr}
- ldr r5, _08023878 @ =gUnknown_02024A60
- ldr r0, _0802387C @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _08023880 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl sub_800D074
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023878: .4byte gUnknown_02024A60
-_0802387C: .4byte gUnknown_02024C07
-_08023880: .4byte gUnknown_02024C10
- thumb_func_end sub_8023848
-
- thumb_func_start atk56_8025194
-atk56_8025194: @ 8023884
- push {r4,r5,lr}
- ldr r5, _080238AC @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080238B0 @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x2D_2D_2D_2D
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080238AC: .4byte gUnknown_02024C10
-_080238B0: .4byte gUnknown_02024A60
- thumb_func_end atk56_8025194
-
- thumb_func_start atk57_80251C4_flee
-atk57_80251C4_flee: @ 80238B4
- push {r4,lr}
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _080238E0 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r0, _080238E4 @ =gUnknown_02024D26
- ldrb r1, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x37_a
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _080238E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080238E0: .4byte gUnknown_02024A60
-_080238E4: .4byte gUnknown_02024D26
-_080238E8: .4byte gUnknown_02024C10
- thumb_func_end atk57_80251C4_flee
-
- thumb_func_start atk58_cmd58
-atk58_cmd58: @ 80238EC
- push {r4,r5,lr}
- ldr r5, _08023918 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0802391C @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- movs r1, 0x1
- bl dp01_build_cmdbuf_x06_a
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023918: .4byte gUnknown_02024C10
-_0802391C: .4byte gUnknown_02024A60
- thumb_func_end atk58_cmd58
-
- thumb_func_start atk59_8025230
-atk59_8025230: @ 8023920
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0802399C @ =gUnknown_02024C10
- ldr r2, [r0]
- ldrb r6, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldrb r4, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _080239A0 @ =0x02000000
- ldr r1, _080239A4 @ =0x00016018
- adds r7, r0, r1
- ldrb r1, [r7]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080239A8 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r2, 0x9]
- bl sub_803B7C8
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080239AC @ =0x0000fffe
- cmp r5, r0
- bne _08023992
- mov r9, r7
- mov r8, r5
- movs r7, 0x64
-_0802397A:
- mov r3, r9
- ldrb r0, [r3]
- muls r0, r7
- ldr r1, _080239A8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- beq _0802397A
-_08023992:
- cmp r5, 0
- bne _080239B0
- ldr r0, _0802399C @ =gUnknown_02024C10
- str r4, [r0]
- b _08023A58
- .align 2, 0
-_0802399C: .4byte gUnknown_02024C10
-_080239A0: .4byte 0x02000000
-_080239A4: .4byte 0x00016018
-_080239A8: .4byte gPlayerParty
-_080239AC: .4byte 0x0000fffe
-_080239B0:
- ldr r0, _080239C0 @ =0x0000ffff
- cmp r5, r0
- bne _080239C8
- ldr r1, _080239C4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _08023A58
- .align 2, 0
-_080239C0: .4byte 0x0000ffff
-_080239C4: .4byte gUnknown_02024C10
-_080239C8:
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08023A64 @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r0, _08023A68 @ =gUnknown_02024A6A
- ldrb r2, [r1]
- lsls r1, r2, 1
- adds r1, r0
- ldr r0, _08023A6C @ =0x02000000
- ldr r3, _08023A70 @ =0x00016018
- adds r0, r3
- ldrh r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08023A08
- ldr r3, _08023A74 @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023A08
- adds r0, r2, r3
- adds r1, r5, 0
- bl GiveMoveToBattleMon
-_08023A08:
- ldr r0, _08023A78 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023A54
- movs r0, 0x2
- bl battle_get_side_with_given_state
- ldr r1, _08023A64 @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r0, _08023A68 @ =gUnknown_02024A6A
- ldrb r2, [r1]
- lsls r1, r2, 1
- adds r1, r0
- ldr r0, _08023A6C @ =0x02000000
- ldr r3, _08023A70 @ =0x00016018
- adds r0, r3
- ldrh r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08023A54
- ldr r3, _08023A74 @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023A54
- adds r0, r2, r3
- adds r1, r5, 0
- bl GiveMoveToBattleMon
-_08023A54:
- ldr r0, _08023A7C @ =gUnknown_02024C10
- str r6, [r0]
-_08023A58:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023A64: .4byte gUnknown_02024A60
-_08023A68: .4byte gUnknown_02024A6A
-_08023A6C: .4byte 0x02000000
-_08023A70: .4byte 0x00016018
-_08023A74: .4byte gBattleMons
-_08023A78: .4byte gUnknown_020239F8
-_08023A7C: .4byte gUnknown_02024C10
- thumb_func_end atk59_8025230
-
- thumb_func_start sub_8023A80
-sub_8023A80: @ 8023A80
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802BBD4
- ldr r4, _08023AC8 @ =gUnknown_03004210
- ldr r1, _08023ACC @ =gUnknown_08400D7A
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x9
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x19
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08023AD0 @ =0x0000ffff
- ldr r3, _08023AD4 @ =0x00002d9f
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08023AC8: .4byte gUnknown_03004210
-_08023ACC: .4byte gUnknown_08400D7A
-_08023AD0: .4byte 0x0000ffff
-_08023AD4: .4byte 0x00002d9f
- thumb_func_end sub_8023A80
-
- thumb_func_start sub_8023AD8
-sub_8023AD8: @ 8023AD8
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802BBD4
- bl sub_814A7FC
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8023AD8
-
- thumb_func_start sub_8023AF8
-sub_8023AF8: @ 8023AF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _08023B24 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08023B28 @ =0x02000000
- ldr r2, _08023B2C @ =0x0001601a
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bls _08023B18
- b _08023E5C
-_08023B18:
- lsls r0, 2
- ldr r1, _08023B30 @ =_08023B34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08023B24: .4byte gUnknown_02024A60
-_08023B28: .4byte 0x02000000
-_08023B2C: .4byte 0x0001601a
-_08023B30: .4byte _08023B34
- .align 2, 0
-_08023B34:
- .4byte _08023B4C
- .4byte _08023B74
- .4byte _08023C30
- .4byte _08023C84
- .4byte _08023E38
- .4byte _08023E4C
-_08023B4C:
- bl sub_8023A80
- ldr r1, _08023B68 @ =0x02000000
- ldr r0, _08023B6C @ =0x0001601a
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08023B70 @ =gUnknown_02024D1E
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _08023E5C
- .align 2, 0
-_08023B68: .4byte 0x02000000
-_08023B6C: .4byte 0x0001601a
-_08023B70: .4byte gUnknown_02024D1E
-_08023B74:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08023B9A
- ldr r4, _08023C00 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08023B9A
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023B9A:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023BC0
- ldr r4, _08023C00 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08023BC0
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023BC0:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023C0C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08023C00 @ =gUnknown_02024D1E
- ldrb r4, [r0, 0x1]
- cmp r4, 0
- bne _08023C1C
- bl sub_8023AD8
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08023C04 @ =0x02000000
- ldr r2, _08023C08 @ =0x0001601a
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _08023E5A
- .align 2, 0
-_08023BFC: .4byte gMain
-_08023C00: .4byte gUnknown_02024D1E
-_08023C04: .4byte 0x02000000
-_08023C08: .4byte 0x0001601a
-_08023C0C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08023C16
- b _08023E5C
-_08023C16:
- movs r0, 0x5
- bl PlaySE
-_08023C1C:
- ldr r0, _08023C28 @ =0x02000000
- ldr r1, _08023C2C @ =0x0001601a
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- b _08023E5C
- .align 2, 0
-_08023C28: .4byte 0x02000000
-_08023C2C: .4byte 0x0001601a
-_08023C30:
- ldr r0, _08023C68 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023C3E
- b _08023E5C
-_08023C3E:
- ldr r0, _08023C6C @ =gPlayerParty
- ldr r2, _08023C70 @ =0x00016018
- adds r1, r5, r2
- ldrb r1, [r1]
- ldr r2, _08023C74 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08023C78 @ =sub_807AD58
- ldr r4, _08023C7C @ =word_2024E82
- ldrh r4, [r4]
- str r4, [sp]
- bl sub_809D9F0
- ldr r0, _08023C80 @ =0x0001601a
- adds r1, r5, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _08023E5A
- .align 2, 0
-_08023C68: .4byte gPaletteFade
-_08023C6C: .4byte gPlayerParty
-_08023C70: .4byte 0x00016018
-_08023C74: .4byte gPlayerPartyCount
-_08023C78: .4byte sub_807AD58
-_08023C7C: .4byte word_2024E82
-_08023C80: .4byte 0x0001601a
-_08023C84:
- ldr r0, _08023CB4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023C92
- b _08023E5C
-_08023C92:
- ldr r0, _08023CB8 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08023CBC @ =sub_800F808
- cmp r1, r0
- beq _08023C9E
- b _08023E5C
-_08023C9E:
- bl sub_809FA30
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bne _08023CC8
- ldr r0, _08023CC0 @ =0x02000000
- ldr r1, _08023CC4 @ =0x0001601a
- adds r0, r1
- strb r5, [r0]
- b _08023E5C
- .align 2, 0
-_08023CB4: .4byte gPaletteFade
-_08023CB8: .4byte gMain
-_08023CBC: .4byte sub_800F808
-_08023CC0: .4byte 0x02000000
-_08023CC4: .4byte 0x0001601a
-_08023CC8:
- ldr r2, _08023D08 @ =0x02000000
- mov r9, r2
- ldr r6, _08023D0C @ =0x00016018
- add r6, r9
- ldrb r0, [r6]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r7, _08023D10 @ =gPlayerParty
- adds r0, r7
- adds r1, r5, 0
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_8040A00
- cmp r0, 0
- beq _08023D20
- ldr r0, _08023D14 @ =0x0000013f
- ldr r1, _08023D18 @ =gUnknown_02024A60
- ldrb r1, [r1]
- bl b_std_message
- ldr r1, _08023D1C @ =0x0001601a
- add r1, r9
- movs r0, 0x5
- b _08023E5A
- .align 2, 0
-_08023D08: .4byte 0x02000000
-_08023D0C: .4byte 0x00016018
-_08023D10: .4byte gPlayerParty
-_08023D14: .4byte 0x0000013f
-_08023D18: .4byte gUnknown_02024A60
-_08023D1C: .4byte 0x0001601a
-_08023D20:
- ldr r3, _08023E10 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- ldr r1, _08023E14 @ =gUnknown_03004290
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- adds r1, r5, 0
- bl RemoveMonPPBonus
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- ldr r7, _08023E18 @ =word_2024E82
- ldrh r1, [r7]
- adds r2, r5, 0
- bl SetMonMoveSlot
- ldr r0, _08023E1C @ =gUnknown_02024A6A
- ldrh r0, [r0]
- ldrb r6, [r6]
- cmp r0, r6
- bne _08023DB0
- ldr r4, _08023E20 @ =gBattleMons
- ldr r0, [r4, 0x50]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023DB0
- ldr r0, _08023E24 @ =gUnknown_02024CA8
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08023E28 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08023DB0
- adds r0, r4, 0
- adds r1, r5, 0
- bl RemoveBattleMonPPBonus
- ldrh r1, [r7]
- adds r0, r4, 0
- adds r2, r5, 0
- bl SetBattleMonMoveSlot
-_08023DB0:
- ldr r0, _08023E2C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023E5C
- ldr r0, _08023E1C @ =gUnknown_02024A6A
- ldr r1, _08023E30 @ =0x02000000
- ldr r2, _08023E34 @ =0x00016018
- adds r1, r2
- ldrh r0, [r0, 0x4]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08023E5C
- ldr r4, _08023E20 @ =gBattleMons
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023E5C
- ldr r0, _08023E24 @ =gUnknown_02024CA8
- adds r0, 0x50
- ldrb r1, [r0]
- lsrs r1, 4
- ldr r2, _08023E28 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08023E5C
- adds r4, 0xB0
- adds r0, r4, 0
- adds r1, r5, 0
- bl RemoveBattleMonPPBonus
- ldr r0, _08023E18 @ =word_2024E82
- ldrh r1, [r0]
- adds r0, r4, 0
- adds r2, r5, 0
- bl SetBattleMonMoveSlot
- b _08023E5C
- .align 2, 0
-_08023E10: .4byte gUnknown_02024C10
-_08023E14: .4byte gUnknown_03004290
-_08023E18: .4byte word_2024E82
-_08023E1C: .4byte gUnknown_02024A6A
-_08023E20: .4byte gBattleMons
-_08023E24: .4byte gUnknown_02024CA8
-_08023E28: .4byte gBitTable
-_08023E2C: .4byte gUnknown_020239F8
-_08023E30: .4byte 0x02000000
-_08023E34: .4byte 0x00016018
-_08023E38:
- bl sub_8023AD8
- ldr r1, _08023E48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08023E5C
- .align 2, 0
-_08023E48: .4byte gUnknown_02024C10
-_08023E4C:
- ldr r0, _08023E6C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08023E5C
- ldr r2, _08023E70 @ =0x0001601a
- adds r1, r5, r2
- movs r0, 0x2
-_08023E5A:
- strb r0, [r1]
-_08023E5C:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023E6C: .4byte gUnknown_02024A64
-_08023E70: .4byte 0x0001601a
- thumb_func_end sub_8023AF8
-
- thumb_func_start atk5B_80256E0
-atk5B_80256E0: @ 8023E74
- push {r4,r5,lr}
- ldr r0, _08023E88 @ =0x02000000
- ldr r1, _08023E8C @ =0x0001601a
- adds r5, r0, r1
- ldrb r4, [r5]
- cmp r4, 0
- beq _08023E90
- cmp r4, 0x1
- beq _08023EA8
- b _08023F78
- .align 2, 0
-_08023E88: .4byte 0x02000000
-_08023E8C: .4byte 0x0001601a
-_08023E90:
- bl sub_8023A80
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r0, _08023EA4 @ =gUnknown_02024D1E
- strb r4, [r0, 0x1]
- bl sub_802BC6C
- b _08023F78
- .align 2, 0
-_08023EA4: .4byte gUnknown_02024D1E
-_08023EA8:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08023ECE
- ldr r4, _08023F30 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08023ECE
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023ECE:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023EF4
- ldr r4, _08023F30 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08023EF4
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023EF4:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023F4C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08023F30 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _08023F38
- ldr r3, _08023F34 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08023F40
- .align 2, 0
-_08023F2C: .4byte gMain
-_08023F30: .4byte gUnknown_02024D1E
-_08023F34: .4byte gUnknown_02024C10
-_08023F38:
- ldr r1, _08023F48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08023F40:
- bl sub_8023AD8
- b _08023F78
- .align 2, 0
-_08023F48: .4byte gUnknown_02024C10
-_08023F4C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08023F78
- movs r0, 0x5
- bl PlaySE
- ldr r3, _08023F80 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- bl sub_8023AD8
-_08023F78:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023F80: .4byte gUnknown_02024C10
- thumb_func_end atk5B_80256E0
-
- thumb_func_start atk5C_cmd5c
-atk5C_cmd5c: @ 8023F84
- push {r4,lr}
- ldr r4, _08023FF0 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _08023FF4 @ =gUnknown_02024A60
- strb r0, [r2]
- ldr r0, _08023FF8 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08024008
- ldr r0, _08023FFC @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- beq _08023FD6
- ldr r1, _08024000 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08023FD6
- ldr r0, _08024004 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08024008
-_08023FD6:
- movs r0, 0
- bl dp01_build_cmdbuf_x29_29_29_29
- ldr r0, _08023FF4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08023FF0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- b _0802400E
- .align 2, 0
-_08023FF0: .4byte gUnknown_02024C10
-_08023FF4: .4byte gUnknown_02024A60
-_08023FF8: .4byte gUnknown_02024C68
-_08023FFC: .4byte gUnknown_02024C6C
-_08024000: .4byte gBattleMons
-_08024004: .4byte gUnknown_02024CA8
-_08024008:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
-_0802400E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk5C_cmd5c
-
- thumb_func_start sub_8024014
-sub_8024014: @ 8024014
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _08024048 @ =gTrainerBattleOpponent
- ldrh r2, [r0]
- movs r1, 0x80
- lsls r1, 3
- cmp r2, r1
- bne _08024058
- ldr r0, _0802404C @ =0x02017000
- adds r1, r0, 0
- adds r1, 0x94
- ldrb r2, [r1]
- ldr r1, _08024050 @ =0xfffff056
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- muls r4, r0
- ldr r0, _08024054 @ =gSaveBlock1 + 0x490
- mov r8, r0
- b _08024140
- .align 2, 0
-_08024048: .4byte gTrainerBattleOpponent
-_0802404C: .4byte 0x02017000
-_08024050: .4byte 0xfffff056
-_08024054: .4byte gSaveBlock1 + 0x490
-_08024058:
- ldr r2, _08024074 @ =gTrainers
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r3, r0, 3
- adds r4, r3, r2
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _080240AE
- cmp r1, 0x1
- bgt _08024078
- cmp r1, 0
- beq _08024082
- b _080240C4
- .align 2, 0
-_08024074: .4byte gTrainers
-_08024078:
- cmp r1, 0x2
- beq _08024098
- cmp r1, 0x3
- beq _080240AE
- b _080240C4
-_08024082:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- subs r0, 0x8
- b _080240C2
-_08024098:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- subs r0, 0x8
- b _080240C2
-_080240AE:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- subs r0, 0x10
-_080240C2:
- ldrb r5, [r0, 0x2]
-_080240C4:
- ldr r0, _08024120 @ =gTrainerMoney
- lsls r1, r6, 2
- adds r3, r1, r0
- ldrb r1, [r3]
- mov r12, r0
- lsls r4, r5, 2
- ldr r5, _08024124 @ =0x02000000
- ldr r7, _08024128 @ =gUnknown_020239F8
- ldr r0, _0802412C @ =gSaveBlock1 + 0x490
- mov r8, r0
- cmp r1, 0xFF
- beq _080240FE
- ldr r2, _08024130 @ =gTrainers
- ldr r0, _08024134 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r2, [r0, 0x1]
- adds r1, r3, 0
-_080240EE:
- ldrb r0, [r1]
- cmp r0, r2
- beq _080240FE
- adds r1, 0x4
- adds r6, 0x1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080240EE
-_080240FE:
- ldr r1, _08024138 @ =0x00016056
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, r4, 0
- muls r3, r0
- lsls r0, r6, 2
- add r0, r12
- ldrb r2, [r0, 0x1]
- ldrh r1, [r7]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802413C
- lsls r0, r2, 1
- adds r4, r3, 0
- muls r4, r0
- b _08024140
- .align 2, 0
-_08024120: .4byte gTrainerMoney
-_08024124: .4byte 0x02000000
-_08024128: .4byte gUnknown_020239F8
-_0802412C: .4byte gSaveBlock1 + 0x490
-_08024130: .4byte gTrainers
-_08024134: .4byte gTrainerBattleOpponent
-_08024138: .4byte 0x00016056
-_0802413C:
- adds r4, r3, 0
- muls r4, r2
-_08024140:
- mov r0, r8
- adds r1, r4, 0
- bl sub_80B79B8
- ldr r1, _0802418C @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- strb r4, [r1, 0x4]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r4
- lsrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r4
- lsrs r0, 16
- strb r0, [r1, 0x6]
- lsrs r0, r4, 24
- strb r0, [r1, 0x7]
- movs r0, 0xFF
- strb r0, [r1, 0x8]
- ldr r1, _08024190 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802418C: .4byte gUnknown_030041C0
-_08024190: .4byte gUnknown_02024C10
- thumb_func_end sub_8024014
-
- thumb_func_start atk5E_8025A70
-atk5E_8025A70: @ 8024194
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _080241B8 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r6, _080241BC @ =gUnknown_02024A60
- strb r0, [r6]
- ldr r5, _080241C0 @ =gUnknown_02024D1E
- ldrb r0, [r5]
- mov r8, r4
- cmp r0, 0
- beq _080241C4
- cmp r0, 0x1
- beq _080241DC
- b _08024230
- .align 2, 0
-_080241B8: .4byte gUnknown_02024C10
-_080241BC: .4byte gUnknown_02024A60
-_080241C0: .4byte gUnknown_02024D1E
-_080241C4:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08024230
-_080241DC:
- ldr r0, _0802423C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08024230
- ldrb r0, [r6]
- lsls r0, 9
- ldr r1, _08024240 @ =gUnknown_02024264
- adds r0, r1
- mov r12, r0
- movs r2, 0
- adds r4, r6, 0
- movs r5, 0x58
- ldr r6, _08024244 @ =gUnknown_02024AA4
- adds r7, r6, 0
- subs r7, 0x18
- mov r3, r12
- adds r3, 0xC
-_080241FE:
- lsls r1, r2, 1
- ldrb r0, [r4]
- muls r0, r5
- adds r1, r0
- adds r1, r7
- ldrh r0, [r3]
- strh r0, [r1]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r2, r1
- adds r1, r6
- mov r0, r12
- adds r0, 0x24
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _080241FE
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08024230:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802423C: .4byte gUnknown_02024A64
-_08024240: .4byte gUnknown_02024264
-_08024244: .4byte gUnknown_02024AA4
- thumb_func_end atk5E_8025A70
-
- thumb_func_start atk5F_8025B24
-atk5F_8025B24: @ 8024248
- push {lr}
- ldr r0, _08024270 @ =gUnknown_02024A60
- ldr r2, _08024274 @ =gUnknown_02024C07
- ldrb r3, [r2]
- strb r3, [r0]
- ldr r1, _08024278 @ =gUnknown_02024C08
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- ldr r2, _0802427C @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 5
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _08024284
- ldr r0, _08024280 @ =0xffffefff
- ands r1, r0
- b _08024286
- .align 2, 0
-_08024270: .4byte gUnknown_02024A60
-_08024274: .4byte gUnknown_02024C07
-_08024278: .4byte gUnknown_02024C08
-_0802427C: .4byte gUnknown_02024C6C
-_08024280: .4byte 0xffffefff
-_08024284:
- orrs r1, r3
-_08024286:
- str r1, [r2]
- ldr r1, _08024294 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024294: .4byte gUnknown_02024C10
- thumb_func_end atk5F_8025B24
-
- thumb_func_start atk60_cmd60
-atk60_cmd60: @ 8024298
- push {lr}
- ldr r0, _080242C0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080242B2
- ldr r0, _080242C4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sav12_xor_increment
-_080242B2:
- ldr r1, _080242C4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080242C0: .4byte gUnknown_02024C07
-_080242C4: .4byte gUnknown_02024C10
- thumb_func_end atk60_cmd60
-
- thumb_func_start atk61_8025BA4
-atk61_8025BA4: @ 80242C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- ldr r0, _0802432C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0802437C
- ldr r0, _08024330 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024334 @ =gUnknown_02024A60
- strb r0, [r1]
- ldrb r0, [r1]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _08024338 @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _080242FA
- ldr r0, _0802433C @ =gPlayerParty
- mov r8, r0
-_080242FA:
- movs r7, 0
- add r6, sp, 0x4
- mov r5, sp
-_08024300:
- movs r0, 0x64
- muls r0, r7
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08024324
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08024344
-_08024324:
- ldr r0, _08024340 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _08024356
- .align 2, 0
-_0802432C: .4byte gUnknown_02024A64
-_08024330: .4byte gUnknown_02024C10
-_08024334: .4byte gUnknown_02024A60
-_08024338: .4byte gEnemyParty
-_0802433C: .4byte gPlayerParty
-_08024340: .4byte 0x0000ffff
-_08024344:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_08024356:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _08024300
- movs r0, 0
- mov r1, sp
- movs r2, 0x1
- bl dp01_build_cmdbuf_x30_TODO
- ldr r0, _08024388 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802438C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0802437C:
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024388: .4byte gUnknown_02024A60
-_0802438C: .4byte gUnknown_02024C10
- thumb_func_end atk61_8025BA4
-
- thumb_func_start atk62_08025C6C
-atk62_08025C6C: @ 8024390
- push {r4,r5,lr}
- ldr r5, _080243B8 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080243BC @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x31_31_31_31
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080243B8: .4byte gUnknown_02024C10
-_080243BC: .4byte gUnknown_02024A60
- thumb_func_end atk62_08025C6C
-
- thumb_func_start atk63_jumptoattack
-atk63_jumptoattack: @ 80243C0
- push {r4,lr}
- ldr r0, _080243D8 @ =gUnknown_02024C10
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0
- beq _080243E4
- ldr r0, _080243DC @ =gUnknown_02024BE6
- ldr r1, _080243E0 @ =gUnknown_02024BEA
- ldrh r1, [r1]
- strh r1, [r0]
- b _080243F2
- .align 2, 0
-_080243D8: .4byte gUnknown_02024C10
-_080243DC: .4byte gUnknown_02024BE6
-_080243E0: .4byte gUnknown_02024BEA
-_080243E4:
- ldr r2, _08024410 @ =gUnknown_02024BE8
- ldr r1, _08024414 @ =gUnknown_02024BE6
- ldr r0, _08024418 @ =gUnknown_02024BEA
- ldrh r0, [r0]
- strh r0, [r1]
- strh r0, [r2]
- adds r0, r1, 0
-_080243F2:
- ldr r3, _0802441C @ =gUnknown_081D6BBC
- ldr r2, _08024420 @ =gBattleMoves
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024410: .4byte gUnknown_02024BE8
-_08024414: .4byte gUnknown_02024BE6
-_08024418: .4byte gUnknown_02024BEA
-_0802441C: .4byte gUnknown_081D6BBC
-_08024420: .4byte gBattleMoves
- thumb_func_end atk63_jumptoattack
-
- thumb_func_start atk64_statusanimation
-atk64_statusanimation: @ 8024424
- push {r4,lr}
- ldr r0, _08024494 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0802448C
- ldr r0, _08024498 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0802449C @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r1, _080244A0 @ =gUnknown_02024C98
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080244A4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08024484
- ldr r0, _080244A8 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08024484
- ldr r0, _080244AC @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08024484
- ldr r1, _080244B0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x1B_aaaa_b
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08024484:
- ldr r1, _08024498 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0802448C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024494: .4byte gUnknown_02024A64
-_08024498: .4byte gUnknown_02024C10
-_0802449C: .4byte gUnknown_02024A60
-_080244A0: .4byte gUnknown_02024C98
-_080244A4: .4byte 0x000400c0
-_080244A8: .4byte gUnknown_02024CA8
-_080244AC: .4byte gUnknown_02024C6C
-_080244B0: .4byte gBattleMons
- thumb_func_end atk64_statusanimation
-
- thumb_func_start atk65_8025D90
-atk65_8025D90: @ 80244B4
- push {r4,r5,lr}
- ldr r0, _0802453C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08024534
- ldr r4, _08024540 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _08024544 @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r1, [r4]
- ldrb r3, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r1, _08024548 @ =gUnknown_02024C98
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0802454C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _0802452C
- ldr r0, _08024550 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _0802452C
- ldr r0, _08024554 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802452C
- ldr r1, _08024558 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r2, [r0]
- ands r2, r3
- movs r0, 0
- movs r1, 0x1
- bl dp01_build_cmdbuf_x1B_aaaa_b
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802452C:
- ldr r1, _08024540 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08024534:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802453C: .4byte gUnknown_02024A64
-_08024540: .4byte gUnknown_02024C10
-_08024544: .4byte gUnknown_02024A60
-_08024548: .4byte gUnknown_02024C98
-_0802454C: .4byte 0x000400c0
-_08024550: .4byte gUnknown_02024CA8
-_08024554: .4byte gUnknown_02024C6C
-_08024558: .4byte gBattleMons
- thumb_func_end atk65_8025D90
-
- thumb_func_start atk66_8025E38
-atk66_8025E38: @ 802455C
- push {r4,r5,lr}
- ldr r0, _080245D4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _080245CE
- ldr r4, _080245D8 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _080245DC @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r4, [r4]
- ldrb r2, [r4, 0x3]
- ldrb r0, [r4, 0x4]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r4, 0x5]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r4, 0x6]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _080245E0 @ =gUnknown_02024C98
- ldrb r3, [r5]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080245E4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _080245C6
- ldr r0, _080245E8 @ =gUnknown_02024CA8
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _080245C6
- ldr r0, _080245EC @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080245C6
- ldrb r1, [r4, 0x2]
- movs r0, 0
- bl dp01_build_cmdbuf_x1B_aaaa_b
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
-_080245C6:
- ldr r1, _080245D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x7
- str r0, [r1]
-_080245CE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080245D4: .4byte gUnknown_02024A64
-_080245D8: .4byte gUnknown_02024C10
-_080245DC: .4byte gUnknown_02024A60
-_080245E0: .4byte gUnknown_02024C98
-_080245E4: .4byte 0x000400c0
-_080245E8: .4byte gUnknown_02024CA8
-_080245EC: .4byte gUnknown_02024C6C
- thumb_func_end atk66_8025E38
-
- thumb_func_start atk67_8025ECC
-atk67_8025ECC: @ 80245F0
- push {r4,r5,lr}
- ldr r5, _08024600 @ =gUnknown_02024D1E
- ldrb r4, [r5]
- cmp r4, 0
- beq _08024604
- cmp r4, 0x1
- beq _08024616
- b _08024696
- .align 2, 0
-_08024600: .4byte gUnknown_02024D1E
-_08024604:
- bl sub_8023A80
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- strb r4, [r5, 0x1]
- bl sub_802BC6C
- b _08024696
-_08024616:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802463A
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- beq _0802463A
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r5, 0x1]
- bl sub_802BC6C
-_0802463A:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08024660
- ldr r4, _08024678 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08024660
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08024660:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802467C
- ldr r1, _08024678 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x1]
- b _08024684
- .align 2, 0
-_08024674: .4byte gMain
-_08024678: .4byte gUnknown_02024D1E
-_0802467C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08024696
-_08024684:
- movs r0, 0x5
- bl PlaySE
- bl sub_8023AD8
- ldr r1, _0802469C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08024696:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802469C: .4byte gUnknown_02024C10
- thumb_func_end atk67_8025ECC
-
- thumb_func_start sub_80246A0
-sub_80246A0: @ 80246A0
- push {r4,r5,lr}
- movs r1, 0
- ldr r2, _080246CC @ =gUnknown_02024A68
- ldr r5, _080246D0 @ =gUnknown_02024C10
- ldrb r0, [r2]
- cmp r1, r0
- bge _080246BE
- ldr r4, _080246D4 @ =gUnknown_02024A76
- movs r3, 0xC
-_080246B2:
- adds r0, r1, r4
- strb r3, [r0]
- adds r1, 0x1
- ldrb r0, [r2]
- cmp r1, r0
- blt _080246B2
-_080246BE:
- ldr r0, [r5]
- adds r0, 0x1
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080246CC: .4byte gUnknown_02024A68
-_080246D0: .4byte gUnknown_02024C10
-_080246D4: .4byte gUnknown_02024A76
- thumb_func_end sub_80246A0
-
- thumb_func_start atk69_8025FE0
-atk69_8025FE0: @ 80246D8
- push {r4-r7,lr}
- ldr r7, _08024700 @ =gBattleMons
- ldr r6, _08024704 @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0802470C
- ldr r1, _08024708 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _08024726
- .align 2, 0
-_08024700: .4byte gBattleMons
-_08024704: .4byte gUnknown_02024C08
-_08024708: .4byte gEnigmaBerries
-_0802470C:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_08024726:
- ldr r1, _080247E8 @ =gUnknown_02024C0B
- ldr r5, _080247EC @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _08024764
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _08024764
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_81074F8
- ldr r2, _080247F0 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08024764:
- ldr r2, _080247F4 @ =gBattleMons
- ldr r3, _080247EC @ =gUnknown_02024C08
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- adds r5, r2, 0
- cmp r1, 0
- bne _08024834
- ldr r2, _080247F8 @ =gBattleMoves
- ldr r0, _080247FC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x65
- beq _080247B6
- ldr r0, _08024800 @ =gUnknown_02024D28
- lsls r1, r4, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _080247B6
- ldr r0, _080247F0 @ =gUnknown_02024D68
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08024834
-_080247B6:
- ldrb r0, [r3]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r1, [r0, 0x28]
- ldr r2, _08024804 @ =gUnknown_02024BEC
- ldr r0, [r2]
- cmp r1, r0
- bgt _08024834
- subs r0, r1, 0x1
- str r0, [r2]
- ldr r1, _08024800 @ =gUnknown_02024D28
- ldrb r3, [r3]
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0802480C
- ldr r0, _08024808 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08024834
- .align 2, 0
-_080247E8: .4byte gUnknown_02024C0B
-_080247EC: .4byte gUnknown_02024C08
-_080247F0: .4byte gUnknown_02024D68
-_080247F4: .4byte gBattleMons
-_080247F8: .4byte gBattleMoves
-_080247FC: .4byte gUnknown_02024BE6
-_08024800: .4byte gUnknown_02024D28
-_08024804: .4byte gUnknown_02024BEC
-_08024808: .4byte gUnknown_02024C68
-_0802480C:
- ldr r0, _08024844 @ =gUnknown_02024D68
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08024834
- ldr r2, _08024848 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802484C @ =gUnknown_02024C04
- adds r0, r3, 0
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_08024834:
- ldr r1, _08024850 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024844: .4byte gUnknown_02024D68
-_08024848: .4byte gUnknown_02024C68
-_0802484C: .4byte gUnknown_02024C04
-_08024850: .4byte gUnknown_02024C10
- thumb_func_end atk69_8025FE0
-
- thumb_func_start atk6A_stash_item_for_side
-atk6A_stash_item_for_side: @ 8024854
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _080248B0 @ =gUnknown_02024C10
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _080248B4 @ =gUnknown_02024A60
- strb r0, [r5]
- ldrb r4, [r5]
- lsls r1, r4, 1
- ldr r0, _080248B8 @ =0x020160cc
- adds r1, r0
- ldr r2, _080248BC @ =gBattleMons
- movs r3, 0x58
- adds r0, r4, 0
- muls r0, r3
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- muls r0, r3
- adds r2, 0x2E
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080248B0: .4byte gUnknown_02024C10
-_080248B4: .4byte gUnknown_02024A60
-_080248B8: .4byte 0x020160cc
-_080248BC: .4byte gBattleMons
- thumb_func_end atk6A_stash_item_for_side
-
- thumb_func_start sub_80248C0
-sub_80248C0: @ 80248C0
- ldr r1, _080248EC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- ldr r2, _080248F0 @ =gUnknown_02024C07
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _080248F4 @ =gUnknown_02024A6A
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _080248F8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_080248EC: .4byte gUnknown_030041C0
-_080248F0: .4byte gUnknown_02024C07
-_080248F4: .4byte gUnknown_02024A6A
-_080248F8: .4byte gUnknown_02024C10
- thumb_func_end sub_80248C0
-
- thumb_func_start sub_80248FC
-sub_80248FC: @ 80248FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r1, 0
- movs r7, 0
- ldr r0, _08024928 @ =0x02000000
- mov r10, r0
- ldr r4, _0802492C @ =0x0001609c
- add r4, r10
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _0802491C
- b _08024AF4
-_0802491C:
- cmp r0, 0x1
- bgt _08024930
- cmp r0, 0
- beq _0802493E
- b _08024C38
- .align 2, 0
-_08024928: .4byte 0x02000000
-_0802492C: .4byte 0x0001609c
-_08024930:
- cmp r0, 0x2
- bne _08024936
- b _08024C04
-_08024936:
- cmp r0, 0x3
- bne _0802493C
- b _08024C30
-_0802493C:
- b _08024C38
-_0802493E:
- str r1, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl sub_802BBD4
- ldr r0, _0802499C @ =gStringVar4
- ldr r1, _080249A0 @ =gUnknown_08400D9F
- bl StringCopy
- adds r5, r0, 0
- movs r1, 0
- mov r8, r1
-_0802495A:
- movs r2, 0
- mov r9, r2
- ldr r0, _080249A4 @ =gUnknown_0840165C
- mov r1, r8
- lsls r4, r1, 2
- adds r0, r4, r0
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringAppend
- adds r5, r0, 0
- ldr r0, _080249A8 @ =0x02000000
- ldr r2, _080249AC @ =0x00016018
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080249B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080249B4 @ =gLevelUpStatBoxStats
- add r1, r8
- ldrb r1, [r1]
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- mov r0, r8
- cmp r0, 0x5
- bhi _08024A1A
- ldr r0, _080249B8 @ =_080249BC
- adds r0, r4, r0
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802499C: .4byte gStringVar4
-_080249A0: .4byte gUnknown_08400D9F
-_080249A4: .4byte gUnknown_0840165C
-_080249A8: .4byte 0x02000000
-_080249AC: .4byte 0x00016018
-_080249B0: .4byte gPlayerParty
-_080249B4: .4byte gLevelUpStatBoxStats
-_080249B8: .4byte _080249BC
- .align 2, 0
-_080249BC:
- .4byte _080249D4
- .4byte _080249E0
- .4byte _080249EC
- .4byte _080249F8
- .4byte _08024A04
- .4byte _08024A10
-_080249D4:
- ldr r0, _080249DC @ =0x02017180
- ldrh r0, [r0]
- b _08024A14
- .align 2, 0
-_080249DC: .4byte 0x02017180
-_080249E0:
- ldr r0, _080249E8 @ =0x02017180
- ldrh r0, [r0, 0x8]
- b _08024A14
- .align 2, 0
-_080249E8: .4byte 0x02017180
-_080249EC:
- ldr r0, _080249F4 @ =0x02017180
- ldrh r0, [r0, 0x2]
- b _08024A14
- .align 2, 0
-_080249F4: .4byte 0x02017180
-_080249F8:
- ldr r0, _08024A00 @ =0x02017180
- ldrh r0, [r0, 0xA]
- b _08024A14
- .align 2, 0
-_08024A00: .4byte 0x02017180
-_08024A04:
- ldr r0, _08024A0C @ =0x02017180
- ldrh r0, [r0, 0x4]
- b _08024A14
- .align 2, 0
-_08024A0C: .4byte 0x02017180
-_08024A10:
- ldr r0, _08024A54 @ =0x02017180
- ldrh r0, [r0, 0x6]
-_08024A14:
- subs r0, r1, r0
- lsls r0, 16
- lsrs r7, r0, 16
-_08024A1A:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0
- bge _08024A2C
- negs r0, r0
- lsls r0, 16
- lsrs r7, r0, 16
- movs r1, 0x1
- add r9, r1
-_08024A2C:
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r1, 0x1
- mov r2, r8
- ands r1, r2
- lsls r0, r1, 3
- adds r0, r1
- adds r0, 0x5
- lsls r0, 3
- adds r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- mov r0, r9
- cmp r0, 0
- beq _08024A5C
- ldr r1, _08024A58 @ =gUnknown_08400DAC
- b _08024A5E
- .align 2, 0
-_08024A54: .4byte 0x02017180
-_08024A58: .4byte gUnknown_08400DAC
-_08024A5C:
- ldr r1, _08024AA4 @ =gUnknown_08400DAA
-_08024A5E:
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- movs r6, 0xFC
- strb r6, [r5]
- movs r4, 0x14
- strb r4, [r5, 0x1]
- movs r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- lsls r1, r7, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- strb r6, [r5]
- strb r4, [r5, 0x1]
- movs r0, 0
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0x1
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08024AA8
- movs r0, 0xFE
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- adds r5, 0x1
- b _08024AB8
- .align 2, 0
-_08024AA4: .4byte gUnknown_08400DAA
-_08024AA8:
- strb r6, [r5]
- movs r0, 0x11
- strb r0, [r5, 0x1]
- movs r0, 0x8
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0xFF
- strb r0, [r5]
-_08024AB8:
- movs r2, 0x1
- add r8, r2
- mov r0, r8
- cmp r0, 0x5
- bgt _08024AC4
- b _0802495A
-_08024AC4:
- ldr r4, _08024AE4 @ =gUnknown_03004210
- ldr r1, _08024AE8 @ =gStringVar4
- adds r2, 0xFF
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0xC
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08024AEC @ =0x02000000
- ldr r2, _08024AF0 @ =0x0001609c
- adds r1, r2
- b _08024BEA
- .align 2, 0
-_08024AE4: .4byte gUnknown_03004210
-_08024AE8: .4byte gStringVar4
-_08024AEC: .4byte 0x02000000
-_08024AF0: .4byte 0x0001609c
-_08024AF4:
- ldr r0, _08024B94 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- bne _08024AFE
- b _08024C38
-_08024AFE:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08024B98 @ =gStringVar4
- ldr r1, _08024B9C @ =gUnknown_08400D9F
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- movs r6, 0xFC
- movs r7, 0x14
- ldr r1, _08024BA0 @ =0x00016018
- add r10, r1
-_08024B1C:
- ldr r1, _08024BA4 @ =gUnknown_0840165C
- mov r2, r8
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringAppend
- adds r5, r0, 0
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08024BA8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08024BAC @ =gLevelUpStatBoxStats
- add r1, r8
- ldrb r1, [r1]
- bl GetMonData
- adds r1, r0, 0
- strb r6, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r4, 0x1
- mov r2, r8
- ands r4, r2
- lsls r0, r4, 3
- adds r0, r4
- adds r0, 0x5
- lsls r0, 3
- adds r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- strb r6, [r5]
- strb r7, [r5, 0x1]
- movs r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- strb r6, [r5]
- strb r7, [r5, 0x1]
- mov r0, r9
- strb r0, [r5, 0x2]
- adds r5, 0x3
- cmp r4, 0
- beq _08024BB0
- movs r0, 0xFE
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- adds r5, 0x1
- b _08024BC0
- .align 2, 0
-_08024B94: .4byte gMain
-_08024B98: .4byte gStringVar4
-_08024B9C: .4byte gUnknown_08400D9F
-_08024BA0: .4byte 0x00016018
-_08024BA4: .4byte gUnknown_0840165C
-_08024BA8: .4byte gPlayerParty
-_08024BAC: .4byte gLevelUpStatBoxStats
-_08024BB0:
- strb r6, [r5]
- movs r0, 0x11
- strb r0, [r5, 0x1]
- movs r0, 0x8
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0xFF
- strb r0, [r5]
-_08024BC0:
- movs r1, 0x1
- add r8, r1
- mov r2, r8
- cmp r2, 0x5
- ble _08024B1C
- ldr r4, _08024BF4 @ =gUnknown_03004210
- ldr r1, _08024BF8 @ =gStringVar4
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0xC
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08024BFC @ =0x02000000
- ldr r0, _08024C00 @ =0x0001609c
- adds r1, r0
-_08024BEA:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08024C38
- .align 2, 0
-_08024BF4: .4byte gUnknown_03004210
-_08024BF8: .4byte gStringVar4
-_08024BFC: .4byte 0x02000000
-_08024C00: .4byte 0x0001609c
-_08024C04:
- ldr r0, _08024C2C @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _08024C38
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl sub_802BBD4
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08024C38
- .align 2, 0
-_08024C2C: .4byte gMain
-_08024C30:
- ldr r1, _08024C48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08024C38:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024C48: .4byte gUnknown_02024C10
- thumb_func_end sub_80248FC
-
- thumb_func_start sub_8024C4C
-sub_8024C4C: @ 8024C4C
- push {lr}
- bl sub_80156DC
- ldr r1, _08024C60 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024C60: .4byte gUnknown_02024C10
- thumb_func_end sub_8024C4C
-
- thumb_func_start atk6E_state0_side_becomes_attacker
-atk6E_state0_side_becomes_attacker: @ 8024C64
- push {lr}
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08024C7C @ =gUnknown_02024C07
- strb r0, [r1]
- ldr r1, _08024C80 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024C7C: .4byte gUnknown_02024C07
-_08024C80: .4byte gUnknown_02024C10
- thumb_func_end atk6E_state0_side_becomes_attacker
-
- thumb_func_start atk6F_8026810
-atk6F_8026810: @ 8024C84
- push {r4,r5,lr}
- ldr r5, _08024CB0 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08024CB4 @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x33_a_33_33
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08024CB0: .4byte gUnknown_02024C10
-_08024CB4: .4byte gUnknown_02024A60
- thumb_func_end atk6F_8026810
-
- thumb_func_start atk70_record_ability_usage_of_side
-atk70_record_ability_usage_of_side: @ 8024CB8
- push {r4,lr}
- ldr r4, _08024CE0 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024CE4 @ =gUnknown_02024A60
- strb r0, [r1]
- ldrb r0, [r1]
- ldr r1, _08024CE8 @ =byte_2024C06
- ldrb r1, [r1]
- bl sub_81074C4
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024CE0: .4byte gUnknown_02024C10
-_08024CE4: .4byte gUnknown_02024A60
-_08024CE8: .4byte byte_2024C06
- thumb_func_end atk70_record_ability_usage_of_side
-
- thumb_func_start sub_8024CEC
-sub_8024CEC: @ 8024CEC
- ldr r2, _08024D0C @ =gUnknown_03004290
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x2
- strb r0, [r2, 0x1]
- ldr r0, _08024D10 @ =word_2024E82
- ldrh r1, [r0]
- strb r1, [r2, 0x2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- bx lr
- .align 2, 0
-_08024D0C: .4byte gUnknown_03004290
-_08024D10: .4byte word_2024E82
- thumb_func_end sub_8024CEC
-
- thumb_func_start atk71_80268A0
-atk71_80268A0: @ 8024D14
- push {lr}
- bl sub_8024CEC
- ldr r1, _08024D28 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024D28: .4byte gUnknown_02024C10
- thumb_func_end atk71_80268A0
-
- thumb_func_start atk72_flee
-atk72_flee: @ 8024D2C
- push {lr}
- ldr r0, _08024D58 @ =gUnknown_02024C09
- ldrb r0, [r0]
- bl sub_8014AB8
- lsls r0, 24
- cmp r0, 0
- beq _08024D60
- ldr r3, _08024D5C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08024D68
- .align 2, 0
-_08024D58: .4byte gUnknown_02024C09
-_08024D5C: .4byte gUnknown_02024C10
-_08024D60:
- ldr r1, _08024D6C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08024D68:
- pop {r0}
- bx r0
- .align 2, 0
-_08024D6C: .4byte gUnknown_02024C10
- thumb_func_end atk72_flee
-
- thumb_func_start atk73_cmd73
-atk73_cmd73: @ 8024D70
- push {r4,r5,lr}
- ldr r0, _08024DC0 @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r5, 0x1
- ands r5, r0
- cmp r5, 0
- bne _08024E12
- ldr r0, _08024DC4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024DC8 @ =gUnknown_02024A60
- strb r0, [r1]
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08024DCC @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r4, [r1, 0x28]
- movs r0, 0x64
- muls r0, r4
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- cmp r0, 0
- bne _08024DAE
- movs r0, 0x1
-_08024DAE:
- cmp r0, 0x45
- bgt _08024DB6
- cmp r4, 0
- bne _08024DD8
-_08024DB6:
- ldr r0, _08024DD0 @ =0x02000000
- ldr r1, _08024DD4 @ =0x000160c1
- adds r0, r1
- strb r5, [r0]
- b _08024E12
- .align 2, 0
-_08024DC0: .4byte gUnknown_020239F8
-_08024DC4: .4byte gUnknown_02024C10
-_08024DC8: .4byte gUnknown_02024A60
-_08024DCC: .4byte gBattleMons
-_08024DD0: .4byte 0x02000000
-_08024DD4: .4byte 0x000160c1
-_08024DD8:
- cmp r0, 0x27
- ble _08024DF0
- ldr r0, _08024DE8 @ =0x02000000
- ldr r1, _08024DEC @ =0x000160c1
- adds r0, r1
- movs r1, 0x1
- b _08024E10
- .align 2, 0
-_08024DE8: .4byte 0x02000000
-_08024DEC: .4byte 0x000160c1
-_08024DF0:
- cmp r0, 0x9
- ble _08024E08
- ldr r0, _08024E00 @ =0x02000000
- ldr r1, _08024E04 @ =0x000160c1
- adds r0, r1
- movs r1, 0x2
- b _08024E10
- .align 2, 0
-_08024E00: .4byte 0x02000000
-_08024E04: .4byte 0x000160c1
-_08024E08:
- ldr r0, _08024E20 @ =0x02000000
- ldr r1, _08024E24 @ =0x000160c1
- adds r0, r1
- movs r1, 0x3
-_08024E10:
- strb r1, [r0]
-_08024E12:
- ldr r1, _08024E28 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08024E20: .4byte 0x02000000
-_08024E24: .4byte 0x000160c1
-_08024E28: .4byte gUnknown_02024C10
- thumb_func_end atk73_cmd73
-
- thumb_func_start atk74_hp_tresholds_2
-atk74_hp_tresholds_2: @ 8024E2C
- push {r4-r7,lr}
- ldr r0, _08024E8C @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r7, 0x1
- ands r7, r0
- cmp r7, 0
- bne _08024ED0
- ldr r0, _08024E90 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- adds r4, r0, 0
- ldr r0, _08024E94 @ =gUnknown_02024A60
- strb r4, [r0]
- movs r0, 0x1
- eors r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _08024E98 @ =0x02000000
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _08024E9C @ =0x000160bc
- adds r0, r1
- adds r0, r6
- ldrb r5, [r0]
- ldr r1, _08024EA0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r4, [r0, 0x28]
- subs r1, r5, r4
- movs r0, 0x64
- muls r0, r1
- adds r1, r5, 0
- bl __divsi3
- adds r1, r0, 0
- cmp r4, r5
- bcc _08024EA8
- ldr r1, _08024EA4 @ =0x000160c1
- adds r0, r6, r1
- strb r7, [r0]
- b _08024ED0
- .align 2, 0
-_08024E8C: .4byte gUnknown_020239F8
-_08024E90: .4byte gUnknown_02024C10
-_08024E94: .4byte gUnknown_02024A60
-_08024E98: .4byte 0x02000000
-_08024E9C: .4byte 0x000160bc
-_08024EA0: .4byte gBattleMons
-_08024EA4: .4byte 0x000160c1
-_08024EA8:
- cmp r0, 0x1D
- bgt _08024EB8
- ldr r0, _08024EB4 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x1
- b _08024ECE
- .align 2, 0
-_08024EB4: .4byte 0x000160c1
-_08024EB8:
- cmp r1, 0x45
- bgt _08024EC8
- ldr r0, _08024EC4 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x2
- b _08024ECE
- .align 2, 0
-_08024EC4: .4byte 0x000160c1
-_08024EC8:
- ldr r0, _08024EE0 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x3
-_08024ECE:
- strb r0, [r1]
-_08024ED0:
- ldr r1, _08024EE4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024EE0: .4byte 0x000160c1
-_08024EE4: .4byte gUnknown_02024C10
- thumb_func_end atk74_hp_tresholds_2
-
- thumb_func_start atk75_8026A58
-atk75_8026A58: @ 8024EE8
- push {lr}
- sub sp, 0x4
- ldr r2, _08024F28 @ =gUnknown_02024E6C
- ldr r1, _08024F2C @ =gUnknown_02024C07
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r2, _08024F30 @ =gUnknown_02024A6A
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r1, _08024F34 @ =gEnemyParty
- adds r0, r1
- ldr r1, _08024F38 @ =gUnknown_02024C04
- ldrh r1, [r1]
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0x1
- str r3, [sp]
- movs r3, 0
- bl sub_803E1B0
- ldr r1, _08024F3C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08024F28: .4byte gUnknown_02024E6C
-_08024F2C: .4byte gUnknown_02024C07
-_08024F30: .4byte gUnknown_02024A6A
-_08024F34: .4byte gEnemyParty
-_08024F38: .4byte gUnknown_02024C04
-_08024F3C: .4byte gUnknown_02024C10
- thumb_func_end atk75_8026A58
-
- thumb_func_start sub_8024F40
-sub_8024F40: @ 8024F40
- push {r4-r6,lr}
- ldr r4, _08024F64 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024F68 @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x6
- bls _08024F5A
- b _08025112
-_08024F5A:
- lsls r0, 2
- ldr r1, _08024F6C @ =_08024F70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08024F64: .4byte gUnknown_02024C10
-_08024F68: .4byte gUnknown_02024A60
-_08024F6C: .4byte _08024F70
- .align 2, 0
-_08024F70:
- .4byte _08024F8C
- .4byte _08024F9C
- .4byte _08024FFC
- .4byte _0802500C
- .4byte _08025024
- .4byte _08025060
- .4byte _08025098
-_08024F8C:
- ldr r0, _08024F98 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl b_cancel_multi_turn_move_maybe
- b _08025112
- .align 2, 0
-_08024F98: .4byte gUnknown_02024A60
-_08024F9C:
- ldr r1, _08024FD8 @ =gUnknown_02024C07
- ldr r4, _08024FDC @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r1]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08024FE0 @ =gUnknown_02024C80
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08024FE8
- ldr r1, _08024FE4 @ =gBattleMons
- ldrb r2, [r2, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08024FE8
- strb r2, [r4]
- b _08025112
- .align 2, 0
-_08024FD8: .4byte gUnknown_02024C07
-_08024FDC: .4byte gUnknown_02024C08
-_08024FE0: .4byte gUnknown_02024C80
-_08024FE4: .4byte gBattleMons
-_08024FE8:
- ldr r0, _08024FF4 @ =gUnknown_02024C08
- ldr r1, _08024FF8 @ =gUnknown_02024A60
- ldrb r1, [r1]
- strb r1, [r0]
- b _08025112
- .align 2, 0
-_08024FF4: .4byte gUnknown_02024C08
-_08024FF8: .4byte gUnknown_02024A60
-_08024FFC:
- bl sub_8012028
- ldr r1, _08025008 @ =gUnknown_02024D1E
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025008: .4byte gUnknown_02024D1E
-_0802500C:
- ldr r0, _0802501C @ =gUnknown_02024BE6
- ldrh r0, [r0]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025020 @ =gUnknown_02024C08
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_0802501C: .4byte gUnknown_02024BE6
-_08025020: .4byte gUnknown_02024C08
-_08025024:
- ldr r2, _08025044 @ =gUnknown_02024C6C
- ldr r1, _08025048 @ =gBitTable
- ldr r0, _0802504C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 28
- ldr r2, [r2]
- ands r2, r0
- cmp r2, 0
- beq _08025054
- ldr r1, _08025050 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025044: .4byte gUnknown_02024C6C
-_08025048: .4byte gBitTable
-_0802504C: .4byte gUnknown_02024A60
-_08025050: .4byte gUnknown_02024D1E
-_08025054:
- ldr r0, _0802505C @ =gUnknown_02024D1E
- strb r2, [r0]
- b _08025112
- .align 2, 0
-_0802505C: .4byte gUnknown_02024D1E
-_08025060:
- ldr r4, _08025090 @ =gUnknown_02024D68
- ldr r3, _08025094 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025090: .4byte gUnknown_02024D68
-_08025094: .4byte gUnknown_02024A60
-_08025098:
- ldr r3, _080250B8 @ =gUnknown_02024A6A
- ldr r0, _080250BC @ =0x02000000
- ldr r1, _080250C0 @ =0x00016018
- adds r0, r1
- ldrh r2, [r3]
- ldrb r1, [r0]
- cmp r2, r1
- beq _080250B2
- ldrh r0, [r3, 0x4]
- cmp r0, r1
- bne _08025112
- cmp r2, r0
- bne _080250C8
-_080250B2:
- ldr r1, _080250C4 @ =gUnknown_02024A60
- movs r0, 0
- b _080250CC
- .align 2, 0
-_080250B8: .4byte gUnknown_02024A6A
-_080250BC: .4byte 0x02000000
-_080250C0: .4byte 0x00016018
-_080250C4: .4byte gUnknown_02024A60
-_080250C8:
- ldr r1, _08025120 @ =gUnknown_02024A60
- movs r0, 0x2
-_080250CC:
- strb r0, [r1]
- adds r5, r1, 0
- ldrb r2, [r5]
- lsls r1, r2, 1
- ldr r0, _08025124 @ =0x020160e8
- adds r4, r1, r0
- movs r3, 0
- ldr r1, _08025128 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- ldrh r2, [r4]
- cmp r0, r2
- beq _0802510A
- adds r6, r5, 0
- movs r5, 0x58
- adds r2, r1, 0
-_080250F2:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _0802510A
- lsls r1, r3, 1
- ldrb r0, [r6]
- muls r0, r5
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- ldrh r1, [r4]
- cmp r0, r1
- bne _080250F2
-_0802510A:
- cmp r3, 0x4
- bne _08025112
- movs r0, 0
- strh r0, [r4]
-_08025112:
- ldr r1, _0802512C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08025120: .4byte gUnknown_02024A60
-_08025124: .4byte 0x020160e8
-_08025128: .4byte gBattleMons
-_0802512C: .4byte gUnknown_02024C10
- thumb_func_end sub_8024F40
-
- thumb_func_start atk77_setprotect
-atk77_setprotect: @ 8025130
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0x1
- ldr r2, _080251FC @ =gUnknown_02024C4C
- ldr r1, _08025200 @ =gUnknown_02024C07
- ldrb r3, [r1]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- mov r8, r1
- ldr r7, _08025204 @ =gUnknown_02024CA8
- cmp r0, 0xB6
- beq _08025160
- cmp r0, 0xC5
- beq _08025160
- cmp r0, 0xCB
- beq _08025160
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- strb r1, [r0, 0x8]
-_08025160:
- ldr r0, _08025208 @ =gUnknown_02024A7E
- ldrb r1, [r0]
- ldr r0, _0802520C @ =gUnknown_02024A68
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _08025170
- movs r6, 0
-_08025170:
- ldr r2, _08025210 @ =gProtectSuccessRates
- mov r5, r8
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r4, [r0, 0x8]
- lsls r4, 1
- adds r4, r2
- bl Random
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bls _08025224
- cmp r6, 0
- beq _08025224
- ldr r4, _08025214 @ =gBattleMoves
- ldr r3, _08025218 @ =gUnknown_02024BE6
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x6F
- bne _080251C0
- ldr r0, _0802521C @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08025220 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
-_080251C0:
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x74
- bne _080251E6
- ldr r0, _0802521C @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08025220 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080251E6:
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1, 0x8]
- adds r0, 0x1
- strb r0, [r1, 0x8]
- b _08025246
- .align 2, 0
-_080251FC: .4byte gUnknown_02024C4C
-_08025200: .4byte gUnknown_02024C07
-_08025204: .4byte gUnknown_02024CA8
-_08025208: .4byte gUnknown_02024A7E
-_0802520C: .4byte gUnknown_02024A68
-_08025210: .4byte gProtectSuccessRates
-_08025214: .4byte gBattleMoves
-_08025218: .4byte gUnknown_02024BE6
-_0802521C: .4byte gUnknown_02024D28
-_08025220: .4byte gUnknown_02024D1E
-_08025224:
- ldr r2, _08025258 @ =gUnknown_02024CA8
- ldr r0, _0802525C @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x8]
- ldr r1, _08025260 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- ldr r2, _08025264 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08025246:
- ldr r1, _08025268 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025258: .4byte gUnknown_02024CA8
-_0802525C: .4byte gUnknown_02024C07
-_08025260: .4byte gUnknown_02024D1E
-_08025264: .4byte gUnknown_02024C68
-_08025268: .4byte gUnknown_02024C10
- thumb_func_end atk77_setprotect
-
- thumb_func_start atk78_faintifabilitynotdamp
-atk78_faintifabilitynotdamp: @ 802526C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08025328 @ =gUnknown_02024A64
- ldr r2, [r0]
- cmp r2, 0
- bne _08025370
- ldr r1, _0802532C @ =gUnknown_02024C08
- strb r2, [r1]
- ldr r0, _08025330 @ =gUnknown_02024A68
- ldrb r3, [r0]
- adds r5, r1, 0
- mov r8, r0
- ldr r6, _08025334 @ =gBattleMons
- cmp r2, r3
- bcs _080252B8
- adds r0, r6, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080252B8
- adds r2, r3, 0
- adds r4, r6, 0
- movs r3, 0x58
-_0802529C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r2
- bcs _080252B8
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0802529C
-_080252B8:
- ldrb r0, [r5]
- mov r1, r8
- ldrb r1, [r1]
- cmp r0, r1
- bne _08025354
- ldr r4, _08025338 @ =gUnknown_02024A60
- ldr r7, _0802533C @ =gUnknown_02024C07
- ldrb r0, [r7]
- strb r0, [r4]
- ldr r2, _08025340 @ =gUnknown_02024BEC
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _08025344 @ =0x00007fff
- movs r0, 0
- bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08025348 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- movs r0, 0
- strb r0, [r5]
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0
- beq _08025370
- adds r3, r5, 0
- ldrb r5, [r7]
- ldr r7, _0802534C @ =gBitTable
- adds r4, r0, 0
- ldr r6, _08025350 @ =gUnknown_02024C0C
-_08025304:
- ldrb r2, [r3]
- cmp r2, r5
- beq _0802531A
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r7
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _08025370
-_0802531A:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _08025304
- b _08025370
- .align 2, 0
-_08025328: .4byte gUnknown_02024A64
-_0802532C: .4byte gUnknown_02024C08
-_08025330: .4byte gUnknown_02024A68
-_08025334: .4byte gBattleMons
-_08025338: .4byte gUnknown_02024A60
-_0802533C: .4byte gUnknown_02024C07
-_08025340: .4byte gUnknown_02024BEC
-_08025344: .4byte 0x00007fff
-_08025348: .4byte gUnknown_02024C10
-_0802534C: .4byte gBitTable
-_08025350: .4byte gUnknown_02024C0C
-_08025354:
- ldr r1, _0802537C @ =byte_2024C06
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x58
- muls r1, r0
- adds r1, r6
- adds r1, 0x20
- ldrb r1, [r1]
- bl sub_81074C4
- ldr r1, _08025380 @ =gUnknown_02024C10
- ldr r0, _08025384 @ =gUnknown_081D9834
- str r0, [r1]
-_08025370:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802537C: .4byte byte_2024C06
-_08025380: .4byte gUnknown_02024C10
-_08025384: .4byte gUnknown_081D9834
- thumb_func_end atk78_faintifabilitynotdamp
-
- thumb_func_start atk79_setuserhptozero
-atk79_setuserhptozero: @ 8025388
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080253D4 @ =gUnknown_02024A64
- ldr r3, [r0]
- cmp r3, 0
- bne _080253CC
- ldr r4, _080253D8 @ =gUnknown_02024A60
- ldr r0, _080253DC @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _080253E0 @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r1
- strh r3, [r0, 0x28]
- ldrb r0, [r4]
- muls r0, r2
- adds r1, 0x28
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _080253E4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080253CC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080253D4: .4byte gUnknown_02024A64
-_080253D8: .4byte gUnknown_02024A60
-_080253DC: .4byte gUnknown_02024C07
-_080253E0: .4byte gBattleMons
-_080253E4: .4byte gUnknown_02024C10
- thumb_func_end atk79_setuserhptozero
-
- thumb_func_start sub_80253E8
-sub_80253E8: @ 80253E8
- push {r4-r7,lr}
- ldr r3, _08025460 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r4, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _08025464 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r7, r3, 0
- cmp r0, 0
- beq _08025480
- ldr r0, _08025468 @ =gUnknown_02024C08
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, _0802546C @ =gUnknown_02024C07
- lsls r1, 24
- lsrs r1, 24
- adds r3, r0, 0
- ldr r6, _08025470 @ =gUnknown_02024C0C
- ldr r5, _08025474 @ =gBitTable
- ldr r0, _08025478 @ =gUnknown_02024A68
- mov r12, r0
- ldrb r0, [r2]
- cmp r1, r0
- bne _0802543E
-_0802542E:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2]
- cmp r0, r1
- beq _0802542E
-_0802543E:
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _0802542E
- ldrb r0, [r3]
- mov r2, r12
- ldrb r2, [r2]
- cmp r0, r2
- bcc _0802547C
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _08025484
- .align 2, 0
-_08025460: .4byte gUnknown_02024C10
-_08025464: .4byte gUnknown_020239F8
-_08025468: .4byte gUnknown_02024C08
-_0802546C: .4byte gUnknown_02024C07
-_08025470: .4byte gUnknown_02024C0C
-_08025474: .4byte gBitTable
-_08025478: .4byte gUnknown_02024A68
-_0802547C:
- str r4, [r7]
- b _08025484
-_08025480:
- adds r0, r2, 0x5
- str r0, [r3]
-_08025484:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80253E8
-
- thumb_func_start sub_802548C
-sub_802548C: @ 802548C
- push {r4-r6,lr}
- ldr r4, _080254E8 @ =gUnknown_02024C10
- ldr r1, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldrb r0, [r1, 0x5]
- ldr r3, _080254EC @ =gUnknown_02024C08
- cmp r0, 0x1
- bne _080254B4
- ldr r0, _080254F0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r3]
-_080254B4:
- ldr r1, _080254F4 @ =gUnknown_02024BEC
- ldr r6, _080254F8 @ =gBattleMons
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _080254CE
- movs r0, 0x1
- str r0, [r1]
-_080254CE:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r3]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _080254FC
- str r2, [r4]
- b _08025502
- .align 2, 0
-_080254E8: .4byte gUnknown_02024C10
-_080254EC: .4byte gUnknown_02024C08
-_080254F0: .4byte gUnknown_02024C07
-_080254F4: .4byte gUnknown_02024BEC
-_080254F8: .4byte gBattleMons
-_080254FC:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_08025502:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_802548C
-
- thumb_func_start sub_8025508
-sub_8025508: @ 8025508
- push {r4-r7,lr}
- ldr r3, _0802556C @ =0x02000000
- ldr r4, _08025570 @ =gUnknown_02024C07
- ldrb r2, [r4]
- lsls r1, r2, 1
- ldr r5, _08025574 @ =0x000160ac
- adds r0, r1, r5
- adds r0, r3
- ldrb r7, [r0]
- ldr r0, _08025578 @ =0x000160ad
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
- lsls r0, 8
- orrs r7, r0
- lsls r2, 2
- ldr r1, _0802557C @ =0x00016100
- adds r0, r2, r1
- adds r0, r3
- ldrb r6, [r0]
- adds r5, 0x55
- adds r0, r2, r5
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 8
- orrs r6, r0
- adds r1, 0x2
- adds r0, r2, r1
- adds r0, r3
- ldrb r5, [r0]
- ldr r0, _08025580 @ =0x00016103
- adds r2, r0
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r5, r0
- cmp r7, 0
- beq _08025594
- ldr r0, _08025584 @ =0x0000ffff
- cmp r7, r0
- beq _08025594
- ldr r2, _08025588 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802558C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025590 @ =gUnknown_02024BE6
- strh r7, [r4]
- b _0802565C
- .align 2, 0
-_0802556C: .4byte 0x02000000
-_08025570: .4byte gUnknown_02024C07
-_08025574: .4byte 0x000160ac
-_08025578: .4byte 0x000160ad
-_0802557C: .4byte 0x00016100
-_08025580: .4byte 0x00016103
-_08025584: .4byte 0x0000ffff
-_08025588: .4byte gUnknown_02024C6C
-_0802558C: .4byte 0xfffffbff
-_08025590: .4byte gUnknown_02024BE6
-_08025594:
- cmp r6, 0
- beq _08025644
- cmp r5, 0
- beq _08025618
- ldr r0, _080255C4 @ =0x0000ffff
- cmp r6, r0
- beq _08025618
- cmp r5, r0
- beq _08025618
- ldr r2, _080255C8 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _080255CC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080255D4
- ldr r0, _080255D0 @ =gUnknown_02024BE6
- strh r6, [r0]
- b _080255D8
- .align 2, 0
-_080255C4: .4byte 0x0000ffff
-_080255C8: .4byte gUnknown_02024C6C
-_080255CC: .4byte 0xfffffbff
-_080255D0: .4byte gUnknown_02024BE6
-_080255D4:
- ldr r0, _08025604 @ =gUnknown_02024BE6
- strh r5, [r0]
-_080255D8:
- adds r5, r0, 0
- ldrh r0, [r5]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025608 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r4, _0802560C @ =gUnknown_02024C10
- ldr r3, _08025610 @ =gUnknown_081D6BBC
- ldr r2, _08025614 @ =gBattleMoves
- ldrh r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- b _080256C0
- .align 2, 0
-_08025604: .4byte gUnknown_02024BE6
-_08025608: .4byte gUnknown_02024C08
-_0802560C: .4byte gUnknown_02024C10
-_08025610: .4byte gUnknown_081D6BBC
-_08025614: .4byte gBattleMoves
-_08025618:
- cmp r6, 0
- beq _08025644
- ldr r0, _08025634 @ =0x0000ffff
- cmp r6, r0
- beq _08025644
- ldr r2, _08025638 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802563C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025640 @ =gUnknown_02024BE6
- strh r6, [r4]
- b _0802565C
- .align 2, 0
-_08025634: .4byte 0x0000ffff
-_08025638: .4byte gUnknown_02024C6C
-_0802563C: .4byte 0xfffffbff
-_08025640: .4byte gUnknown_02024BE6
-_08025644:
- cmp r5, 0
- beq _080256A4
- ldr r0, _08025684 @ =0x0000ffff
- cmp r5, r0
- beq _080256A4
- ldr r2, _08025688 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802568C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025690 @ =gUnknown_02024BE6
- strh r5, [r4]
-_0802565C:
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025694 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r5, _08025698 @ =gUnknown_02024C10
- ldr r3, _0802569C @ =gUnknown_081D6BBC
- ldr r2, _080256A0 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r5]
- b _080256C0
- .align 2, 0
-_08025684: .4byte 0x0000ffff
-_08025688: .4byte gUnknown_02024C6C
-_0802568C: .4byte 0xfffffbff
-_08025690: .4byte gUnknown_02024BE6
-_08025694: .4byte gUnknown_02024C08
-_08025698: .4byte gUnknown_02024C10
-_0802569C: .4byte gUnknown_081D6BBC
-_080256A0: .4byte gBattleMoves
-_080256A4:
- ldr r2, _080256C8 @ =gUnknown_02024D68
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _080256CC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080256C0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080256C8: .4byte gUnknown_02024D68
-_080256CC: .4byte gUnknown_02024C10
- thumb_func_end sub_8025508
-
- thumb_func_start sub_80256D0
-sub_80256D0: @ 80256D0
- push {lr}
- ldr r2, _080256F0 @ =word_2024DB8
- ldrh r0, [r2]
- movs r1, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080256FC
- ldr r2, _080256F4 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080256F8 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802570C
- .align 2, 0
-_080256F0: .4byte word_2024DB8
-_080256F4: .4byte gUnknown_02024C68
-_080256F8: .4byte gUnknown_02024D1E
-_080256FC:
- movs r0, 0x1
- strh r0, [r2]
- ldr r0, _08025718 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
- ldr r0, _0802571C @ =gUnknown_02024DBC
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_0802570C:
- ldr r1, _08025720 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025718: .4byte gUnknown_02024D1E
-_0802571C: .4byte gUnknown_02024DBC
-_08025720: .4byte gUnknown_02024C10
- thumb_func_end sub_80256D0
-
- thumb_func_start atk7E_setreflect
-atk7E_setreflect: @ 8025724
- push {r4-r6,lr}
- ldr r5, _08025754 @ =gUnknown_02024C07
- ldrb r0, [r5]
- bl battle_get_per_side_status
- ldr r6, _08025758 @ =gUnknown_02024C7A
- movs r4, 0x1
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08025764
- ldr r2, _0802575C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08025760 @ =gUnknown_02024D1E
- movs r0, 0
- b _080257C4
- .align 2, 0
-_08025754: .4byte gUnknown_02024C07
-_08025758: .4byte gUnknown_02024C7A
-_0802575C: .4byte gUnknown_02024C68
-_08025760: .4byte gUnknown_02024D1E
-_08025764:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- ldr r2, _080257B4 @ =gUnknown_02024C80
- adds r1, r4, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0]
- ldr r0, _080257B8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _080257C0
- movs r0, 0x1
- bl sub_803C348
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _080257C0
- ldr r0, _080257BC @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
- b _080257C6
- .align 2, 0
-_080257B4: .4byte gUnknown_02024C80
-_080257B8: .4byte gUnknown_020239F8
-_080257BC: .4byte gUnknown_02024D1E
-_080257C0:
- ldr r1, _080257D4 @ =gUnknown_02024D1E
- movs r0, 0x1
-_080257C4:
- strb r0, [r1, 0x5]
-_080257C6:
- ldr r1, _080257D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080257D4: .4byte gUnknown_02024D1E
-_080257D8: .4byte gUnknown_02024C10
- thumb_func_end atk7E_setreflect
-
- thumb_func_start sub_80257DC
-sub_80257DC: @ 80257DC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _0802581C @ =gUnknown_02024C68
- ldrb r5, [r7]
- movs r0, 0x29
- ands r0, r5
- cmp r0, 0
- bne _0802580E
- ldr r0, _08025820 @ =gUnknown_02024C98
- mov r9, r0
- ldr r1, _08025824 @ =gUnknown_02024C08
- mov r8, r1
- ldrb r4, [r1]
- lsls r0, r4, 2
- mov r2, r9
- adds r6, r0, r2
- ldr r2, [r6]
- movs r0, 0x4
- mov r12, r0
- adds r3, r2, 0
- ands r3, r0
- cmp r3, 0
- beq _0802582C
-_0802580E:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _08025828 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802587C
- .align 2, 0
-_0802581C: .4byte gUnknown_02024C68
-_08025820: .4byte gUnknown_02024C98
-_08025824: .4byte gUnknown_02024C08
-_08025828: .4byte gUnknown_02024D1E
-_0802582C:
- ldr r1, _08025858 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xC
- beq _08025848
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _08025860
-_08025848:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _0802585C @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802587C
- .align 2, 0
-_08025858: .4byte gBattleMons
-_0802585C: .4byte gUnknown_02024D1E
-_08025860:
- ldr r0, _08025890 @ =gUnknown_02024C07
- ldrb r0, [r0]
- orrs r2, r0
- str r2, [r6]
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 2
- add r1, r9
- ldr r0, [r1]
- mov r2, r12
- orrs r0, r2
- str r0, [r1]
- ldr r0, _08025894 @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
-_0802587C:
- ldr r1, _08025898 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025890: .4byte gUnknown_02024C07
-_08025894: .4byte gUnknown_02024D1E
-_08025898: .4byte gUnknown_02024C10
- thumb_func_end sub_80257DC
-
- thumb_func_start atk80_manipulatedamage
-atk80_manipulatedamage: @ 802589C
- push {r4,lr}
- ldr r1, _080258B4 @ =gUnknown_02024C10
- ldr r0, [r1]
- ldrb r2, [r0, 0x1]
- adds r4, r1, 0
- cmp r2, 0x1
- beq _080258CC
- cmp r2, 0x1
- bgt _080258B8
- cmp r2, 0
- beq _080258BE
- b _0802590C
- .align 2, 0
-_080258B4: .4byte gUnknown_02024C10
-_080258B8:
- cmp r2, 0x2
- beq _08025904
- b _0802590C
-_080258BE:
- ldr r1, _080258C8 @ =gUnknown_02024BEC
- ldr r0, [r1]
- negs r0, r0
- b _0802590A
- .align 2, 0
-_080258C8: .4byte gUnknown_02024BEC
-_080258CC:
- ldr r3, _080258F8 @ =gUnknown_02024BEC
- ldr r0, [r3]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _080258DE
- str r2, [r3]
-_080258DE:
- ldr r2, _080258FC @ =gBattleMons
- ldr r0, _08025900 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r1, r0, 1
- ldr r0, [r3]
- cmp r1, r0
- bge _0802590C
- str r1, [r3]
- b _0802590C
- .align 2, 0
-_080258F8: .4byte gUnknown_02024BEC
-_080258FC: .4byte gBattleMons
-_08025900: .4byte gUnknown_02024C08
-_08025904:
- ldr r1, _08025918 @ =gUnknown_02024BEC
- ldr r0, [r1]
- lsls r0, 1
-_0802590A:
- str r0, [r1]
-_0802590C:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08025918: .4byte gUnknown_02024BEC
- thumb_func_end atk80_manipulatedamage
-
- thumb_func_start atk81_setrest
-atk81_setrest: @ 802591C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _08025974 @ =gUnknown_02024C10
- mov r12, r0
- ldr r1, [r0]
- ldrb r6, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldr r5, _08025978 @ =gUnknown_02024A60
- ldr r2, _0802597C @ =gUnknown_02024C08
- ldr r0, _08025980 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r5]
- ldr r4, _08025984 @ =gUnknown_02024BEC
- ldr r1, _08025988 @ =gBattleMons
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r0, r1
- ldrh r0, [r0, 0x2C]
- negs r0, r0
- str r0, [r4]
- ldrb r0, [r2]
- adds r4, r0, 0
- muls r4, r3
- adds r0, r4, r1
- ldrh r3, [r0, 0x28]
- adds r7, r5, 0
- adds r5, r2, 0
- adds r2, r1, 0
- ldrh r0, [r0, 0x2C]
- cmp r3, r0
- bne _0802598C
- mov r0, r12
- str r6, [r0]
- b _080259DC
- .align 2, 0
-_08025974: .4byte gUnknown_02024C10
-_08025978: .4byte gUnknown_02024A60
-_0802597C: .4byte gUnknown_02024C08
-_08025980: .4byte gUnknown_02024C07
-_08025984: .4byte gUnknown_02024BEC
-_08025988: .4byte gBattleMons
-_0802598C:
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0xF8
- ands r1, r0
- cmp r1, 0
- beq _080259A8
- ldr r1, _080259A4 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _080259AC
- .align 2, 0
-_080259A4: .4byte gUnknown_02024D1E
-_080259A8:
- ldr r0, _080259E4 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
-_080259AC:
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, 0x4C
- adds r0, r2
- movs r1, 0x3
- str r1, [r0]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _080259E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_080259DC:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080259E4: .4byte gUnknown_02024D1E
-_080259E8: .4byte gUnknown_02024C10
- thumb_func_end atk81_setrest
-
- thumb_func_start atk82_jumpifnotfirstturn
-atk82_jumpifnotfirstturn: @ 80259EC
- push {r4,r5,lr}
- ldr r5, _08025A20 @ =gUnknown_02024C10
- ldr r4, [r5]
- ldrb r3, [r4, 0x1]
- ldrb r0, [r4, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldr r2, _08025A24 @ =gUnknown_02024CA8
- ldr r0, _08025A28 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _08025A2C
- adds r0, r4, 0x5
- str r0, [r5]
- b _08025A2E
- .align 2, 0
-_08025A20: .4byte gUnknown_02024C10
-_08025A24: .4byte gUnknown_02024CA8
-_08025A28: .4byte gUnknown_02024C07
-_08025A2C:
- str r3, [r5]
-_08025A2E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atk82_jumpifnotfirstturn
-
- thumb_func_start sub_8025A34
-sub_8025A34: @ 8025A34
- ldr r1, _08025A40 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08025A40: .4byte gUnknown_02024C10
- thumb_func_end sub_8025A34
-
- thumb_func_start sub_8025A44
-sub_8025A44: @ 8025A44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08025A9C @ =gUnknown_02024A68
- ldrb r1, [r0]
- mov r8, r0
- cmp r2, r1
- bge _08025AB8
- ldr r0, _08025AA0 @ =gBattleMons
- mov r12, r0
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r5, r0, 0
- adds r5, 0x20
- ldr r6, _08025AA4 @ =0x02016003
- movs r3, 0
- ldr r7, _08025AA8 @ =gUnknown_02024D1E
- adds r4, r1, 0
-_08025A70:
- mov r0, r12
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- beq _08025AB0
- ldrb r0, [r5]
- cmp r0, 0x2B
- beq _08025AB0
- movs r3, 0
- strb r2, [r6]
- ldr r1, _08025AAC @ =gUnknown_02024C08
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08025AD0
- cmp r0, r2
- beq _08025AC4
- movs r0, 0x1
- strb r0, [r7, 0x5]
- b _08025AB8
- .align 2, 0
-_08025A9C: .4byte gUnknown_02024A68
-_08025AA0: .4byte gBattleMons
-_08025AA4: .4byte 0x02016003
-_08025AA8: .4byte gUnknown_02024D1E
-_08025AAC: .4byte gUnknown_02024C08
-_08025AB0:
- adds r3, 0x58
- adds r2, 0x1
- cmp r2, r4
- blt _08025A70
-_08025AB8:
- mov r1, r8
- ldrb r1, [r1]
- cmp r2, r1
- beq _08025AD4
- movs r0, 0x1
- b _08025AD6
-_08025AC4:
- ldr r0, _08025ACC @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
- b _08025AB8
- .align 2, 0
-_08025ACC: .4byte gUnknown_02024D1E
-_08025AD0:
- strb r2, [r1]
- b _08025AB8
-_08025AD4:
- movs r0, 0
-_08025AD6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8025A44
-
- thumb_func_start sub_8025AE0
-sub_8025AE0: @ 8025AE0
- push {r4-r6,lr}
- ldr r5, _08025B0C @ =gUnknown_02024C10
- ldr r1, [r5]
- ldrb r4, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r6, _08025B10 @ =gUnknown_02024C08
- ldrb r0, [r6]
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- beq _08025B14
- str r4, [r5]
- b _08025B56
- .align 2, 0
-_08025B0C: .4byte gUnknown_02024C10
-_08025B10: .4byte gUnknown_02024C08
-_08025B14:
- ldr r1, _08025B44 @ =gBattleMons
- ldrb r3, [r6]
- movs r0, 0x58
- muls r0, r3
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, r0, 0
- cmp r1, 0xF
- beq _08025B2C
- cmp r1, 0x48
- bne _08025B50
-_08025B2C:
- ldr r2, _08025B48 @ =byte_2024C06
- strb r0, [r2]
- ldr r1, _08025B4C @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- str r4, [r5]
- ldrb r1, [r2]
- adds r0, r3, 0
- bl sub_81074C4
- b _08025B56
- .align 2, 0
-_08025B44: .4byte gBattleMons
-_08025B48: .4byte byte_2024C06
-_08025B4C: .4byte gUnknown_02024D1E
-_08025B50:
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
-_08025B56:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8025AE0
-
- thumb_func_start sub_8025B5C
-sub_8025B5C: @ 8025B5C
- push {r4,r5,lr}
- ldr r5, _08025B84 @ =gUnknown_02024CA8
- ldr r4, _08025B88 @ =gUnknown_02024C07
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x9]
- cmp r0, 0x3
- bne _08025B94
- ldr r2, _08025B8C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08025B90 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08025BBE
- .align 2, 0
-_08025B84: .4byte gUnknown_02024CA8
-_08025B88: .4byte gUnknown_02024C07
-_08025B8C: .4byte gUnknown_02024C68
-_08025B90: .4byte gUnknown_02024D1E
-_08025B94:
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1, 0x9]
- ldr r2, _08025BCC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x1]
- strb r0, [r2, 0x2]
- strb r0, [r2, 0x3]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x9]
- strb r0, [r2, 0x4]
- movs r0, 0xFF
- strb r0, [r2, 0x5]
- ldr r0, _08025BD0 @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
-_08025BBE:
- ldr r1, _08025BD4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025BCC: .4byte gUnknown_030041C0
-_08025BD0: .4byte gUnknown_02024D1E
-_08025BD4: .4byte gUnknown_02024C10
- thumb_func_end sub_8025B5C
-
- thumb_func_start atk86_stockpiletobasedamage
-atk86_stockpiletobasedamage: @ 8025BD8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r3, _08025C10 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r7, _08025C14 @ =gUnknown_02024CA8
- ldr r6, _08025C18 @ =gUnknown_02024C07
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _08025C1C
- str r2, [r3]
- b _08025CC2
- .align 2, 0
-_08025C10: .4byte gUnknown_02024C10
-_08025C14: .4byte gUnknown_02024CA8
-_08025C18: .4byte gUnknown_02024C07
-_08025C1C:
- ldr r0, _08025CD0 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _08025CA8
- ldr r0, _08025CD4 @ =gUnknown_02024BEC
- mov r8, r0
- ldr r4, _08025CD8 @ =gUnknown_02024C7A
- ldr r5, _08025CDC @ =gUnknown_02024C08
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r6]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _08025CE0 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r5]
- muls r1, r4
- adds r1, r2
- ldr r2, _08025CE4 @ =gUnknown_02024BE6
- ldrh r2, [r2]
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- ldrb r4, [r6]
- str r4, [sp, 0x8]
- ldrb r4, [r5]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r7
- ldrb r1, [r1, 0x9]
- adds r3, r0, 0
- muls r3, r1
- mov r1, r8
- str r3, [r1]
- ldr r2, _08025CE8 @ =0x02000000
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- ldr r1, _08025CEC @ =0x00016002
- adds r2, r1
- strb r0, [r2]
- ldr r1, _08025CF0 @ =gUnknown_02024D28
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _08025CA8
- lsls r0, r3, 4
- subs r0, r3
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_08025CA8:
- ldr r2, _08025CF4 @ =gUnknown_02024CA8
- ldr r0, _08025CF8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r1, _08025CFC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08025CC2:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025CD0: .4byte gUnknown_02024D1E
-_08025CD4: .4byte gUnknown_02024BEC
-_08025CD8: .4byte gUnknown_02024C7A
-_08025CDC: .4byte gUnknown_02024C08
-_08025CE0: .4byte gBattleMons
-_08025CE4: .4byte gUnknown_02024BE6
-_08025CE8: .4byte 0x02000000
-_08025CEC: .4byte 0x00016002
-_08025CF0: .4byte gUnknown_02024D28
-_08025CF4: .4byte gUnknown_02024CA8
-_08025CF8: .4byte gUnknown_02024C07
-_08025CFC: .4byte gUnknown_02024C10
- thumb_func_end atk86_stockpiletobasedamage
-
- thumb_func_start sub_8025D00
-sub_8025D00: @ 8025D00
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08025D40 @ =gUnknown_02024C10
- ldr r1, [r7]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r0, _08025D44 @ =gUnknown_02024CA8
- mov r8, r0
- ldr r6, _08025D48 @ =gUnknown_02024C07
- ldrb r3, [r6]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- mov r1, r8
- adds r4, r0, r1
- ldrb r1, [r4, 0x9]
- cmp r1, 0
- bne _08025D50
- str r2, [r7]
- ldr r0, _08025D4C @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
- b _08025DD0
- .align 2, 0
-_08025D40: .4byte gUnknown_02024C10
-_08025D44: .4byte gUnknown_02024CA8
-_08025D48: .4byte gUnknown_02024C07
-_08025D4C: .4byte gUnknown_02024D1E
-_08025D50:
- ldr r1, _08025D74 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r3, [r1, 0x28]
- cmp r0, r3
- bne _08025D80
- movs r0, 0
- strb r0, [r4, 0x9]
- str r2, [r7]
- ldr r1, _08025D78 @ =gUnknown_02024C08
- ldrb r0, [r6]
- strb r0, [r1]
- ldr r1, _08025D7C @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08025DD0
- .align 2, 0
-_08025D74: .4byte gBattleMons
-_08025D78: .4byte gUnknown_02024C08
-_08025D7C: .4byte gUnknown_02024D1E
-_08025D80:
- ldr r5, _08025DDC @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- ldrb r1, [r4, 0x9]
- movs r2, 0x3
- subs r2, r1
- movs r4, 0x1
- adds r1, r4, 0
- lsls r1, r2
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08025D9C
- str r4, [r5]
-_08025D9C:
- ldr r0, [r5]
- negs r0, r0
- str r0, [r5]
- ldr r2, _08025DE0 @ =0x02000000
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x9]
- ldr r1, _08025DE4 @ =0x00016002
- adds r2, r1
- movs r3, 0
- strb r0, [r2]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- strb r3, [r0, 0x9]
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- ldr r1, _08025DE8 @ =gUnknown_02024C08
- ldrb r0, [r6]
- strb r0, [r1]
-_08025DD0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025DDC: .4byte gUnknown_02024BEC
-_08025DE0: .4byte 0x02000000
-_08025DE4: .4byte 0x00016002
-_08025DE8: .4byte gUnknown_02024C08
- thumb_func_end sub_8025D00
-
- thumb_func_start atk88_negativedamage
-atk88_negativedamage: @ 8025DEC
- push {lr}
- ldr r2, _08025E14 @ =gUnknown_02024BEC
- ldr r0, _08025E18 @ =gUnknown_02024BF0
- ldr r0, [r0]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- negs r0, r0
- str r0, [r2]
- cmp r0, 0
- bne _08025E08
- movs r0, 0x1
- negs r0, r0
- str r0, [r2]
-_08025E08:
- ldr r1, _08025E1C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025E14: .4byte gUnknown_02024BEC
-_08025E18: .4byte gUnknown_02024BF0
-_08025E1C: .4byte gUnknown_02024C10
- thumb_func_end atk88_negativedamage
-
- thumb_func_start sub_8025E20
-sub_8025E20: @ 8025E20
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r3
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0
- mov r9, r0
- mov r10, r0
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _08025E54
- ldr r0, _08025E4C @ =gUnknown_02024A60
- ldr r1, _08025E50 @ =gUnknown_02024C07
- b _08025E58
- .align 2, 0
-_08025E4C: .4byte gUnknown_02024A60
-_08025E50: .4byte gUnknown_02024C07
-_08025E54:
- ldr r0, _08025EF8 @ =gUnknown_02024A60
- ldr r1, _08025EFC @ =gUnknown_02024C08
-_08025E58:
- ldrb r1, [r1]
- strb r1, [r0]
- movs r0, 0xBF
- ands r5, r0
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _08025E72
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08025E72:
- movs r0, 0x7F
- ands r5, r0
- movs r0, 0x20
- ands r0, r5
- cmp r0, 0
- beq _08025E88
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_08025E88:
- movs r0, 0xDF
- ands r5, r0
- ldr r1, _08025F00 @ =gUnknown_030041C0
- movs r4, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r3, 0x1
- negs r3, r3
- mov r12, r3
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- lsls r0, r6, 24
- cmp r0, 0
- blt _08025EAC
- b _080261B0
-_08025EAC:
- ldr r4, _08025F04 @ =gUnknown_02024C80
- ldr r1, _08025EF8 @ =gUnknown_02024A60
- ldrb r0, [r1]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _08025F54
- mov r2, r9
- cmp r2, 0
- bne _08025F54
- ldr r0, _08025F08 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08025F84
- cmp r5, 0x1
- bne _08025F74
- ldr r4, _08025F0C @ =gUnknown_02024D68
- ldr r3, _08025EF8 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _08025F14
- ldr r0, _08025F10 @ =gUnknown_02024C10
- mov r4, r8
- str r4, [r0]
- b _08025F74
- .align 2, 0
-_08025EF8: .4byte gUnknown_02024A60
-_08025EFC: .4byte gUnknown_02024C08
-_08025F00: .4byte gUnknown_030041C0
-_08025F04: .4byte gUnknown_02024C80
-_08025F08: .4byte gUnknown_02024BE6
-_08025F0C: .4byte gUnknown_02024D68
-_08025F10: .4byte gUnknown_02024C10
-_08025F14:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08025F40 @ =0x02000000
- ldr r6, _08025F44 @ =gUnknown_02024A60
- ldrb r1, [r6]
- ldr r2, _08025F48 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- ldr r1, _08025F4C @ =gUnknown_02024C10
- ldr r0, _08025F50 @ =gUnknown_081D9128
- str r0, [r1]
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08025F74
- .align 2, 0
-_08025F40: .4byte 0x02000000
-_08025F44: .4byte gUnknown_02024A60
-_08025F48: .4byte 0x00016003
-_08025F4C: .4byte gUnknown_02024C10
-_08025F50: .4byte gUnknown_081D9128
-_08025F54:
- ldr r0, _08025F78 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08025F84
- mov r3, r10
- cmp r3, 0x1
- beq _08025F84
- movs r0, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _08025F84
- ldr r1, _08025F7C @ =gUnknown_02024C10
- ldr r0, _08025F80 @ =BattleScript_1D83D6
- str r0, [r1]
-_08025F74:
- movs r0, 0x1
- b _080262A4
- .align 2, 0
-_08025F78: .4byte gUnknown_02024BE6
-_08025F7C: .4byte gUnknown_02024C10
-_08025F80: .4byte BattleScript_1D83D6
-_08025F84:
- ldr r2, _08025FCC @ =gBattleMons
- ldr r1, _08025FD0 @ =gUnknown_02024A60
- ldrb r3, [r1]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r10, r2
- cmp r0, 0x1D
- beq _08025FA0
- cmp r0, 0x49
- bne _08026040
-_08025FA0:
- mov r0, r9
- cmp r0, 0
- bne _08026040
- ldr r0, _08025FD4 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08026040
- cmp r5, 0x1
- bne _08025F74
- ldr r4, _08025FD8 @ =gUnknown_02024D68
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08025FE0
- ldr r0, _08025FDC @ =gUnknown_02024C10
- mov r1, r8
- str r1, [r0]
- b _08025F74
- .align 2, 0
-_08025FCC: .4byte gBattleMons
-_08025FD0: .4byte gUnknown_02024A60
-_08025FD4: .4byte gUnknown_02024BE6
-_08025FD8: .4byte gUnknown_02024D68
-_08025FDC: .4byte gUnknown_02024C10
-_08025FE0:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026028 @ =0x02000000
- ldr r2, _0802602C @ =gUnknown_02024A60
- ldrb r1, [r2]
- ldr r3, _08026030 @ =0x00016003
- adds r0, r3
- strb r1, [r0]
- ldr r1, _08026034 @ =gUnknown_02024C10
- ldr r0, _08026038 @ =gUnknown_081D989B
- str r0, [r1]
- ldr r1, _0802603C @ =byte_2024C06
- ldrb r0, [r2]
- movs r6, 0x58
- muls r0, r6
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- ldrb r1, [r1]
- bl sub_81074C4
- ldr r0, _0802602C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08025F74
- .align 2, 0
-_08026028: .4byte 0x02000000
-_0802602C: .4byte gUnknown_02024A60
-_08026030: .4byte 0x00016003
-_08026034: .4byte gUnknown_02024C10
-_08026038: .4byte gUnknown_081D989B
-_0802603C: .4byte byte_2024C06
-_08026040:
- ldr r1, _08026090 @ =gUnknown_02024A60
- ldrb r0, [r1]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x33
- bne _080260A8
- mov r2, r9
- cmp r2, 0
- bne _080260A8
- cmp r7, 0x6
- bne _080260A8
- cmp r5, 0x1
- bne _08025F74
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026094 @ =0x02000000
- ldr r3, _08026090 @ =gUnknown_02024A60
- ldrb r1, [r3]
- ldr r6, _08026098 @ =0x00016003
- adds r0, r6
- strb r1, [r0]
- ldr r1, _0802609C @ =gUnknown_02024C10
- ldr r0, _080260A0 @ =gUnknown_081D9903
- str r0, [r1]
- ldr r1, _080260A4 @ =byte_2024C06
- ldrb r0, [r3]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r3]
- ldrb r1, [r1]
- bl sub_81074C4
- b _08025F74
- .align 2, 0
-_08026090: .4byte gUnknown_02024A60
-_08026094: .4byte 0x02000000
-_08026098: .4byte 0x00016003
-_0802609C: .4byte gUnknown_02024C10
-_080260A0: .4byte gUnknown_081D9903
-_080260A4: .4byte byte_2024C06
-_080260A8:
- ldr r1, _080260FC @ =gUnknown_02024A60
- ldrb r0, [r1]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x34
- bne _08026114
- mov r2, r9
- cmp r2, 0
- bne _08026114
- cmp r7, 0x1
- bne _08026114
- cmp r5, 0x1
- beq _080260CA
- b _08025F74
-_080260CA:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026100 @ =0x02000000
- ldr r3, _080260FC @ =gUnknown_02024A60
- ldrb r1, [r3]
- ldr r6, _08026104 @ =0x00016003
- adds r0, r6
- strb r1, [r0]
- ldr r1, _08026108 @ =gUnknown_02024C10
- ldr r0, _0802610C @ =gUnknown_081D9903
- str r0, [r1]
- ldr r1, _08026110 @ =byte_2024C06
- ldrb r0, [r3]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r3]
- ldrb r1, [r1]
- bl sub_81074C4
- b _08025F74
- .align 2, 0
-_080260FC: .4byte gUnknown_02024A60
-_08026100: .4byte 0x02000000
-_08026104: .4byte 0x00016003
-_08026108: .4byte gUnknown_02024C10
-_0802610C: .4byte gUnknown_081D9903
-_08026110: .4byte byte_2024C06
-_08026114:
- ldr r0, _080261A0 @ =gUnknown_02024A60
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x13
- bne _0802612C
- cmp r5, 0
- bne _0802612C
- b _08025F74
-_0802612C:
- lsls r0, r6, 24
- asrs r0, 28
- movs r1, 0x7
- ands r0, r1
- negs r0, r0
- lsls r0, 24
- ldr r3, _080261A4 @ =gUnknown_03004290
- movs r4, 0
- movs r1, 0xFD
- strb r1, [r3]
- movs r2, 0x1
- lsrs r6, r0, 24
- asrs r0, 24
- subs r1, 0xFF
- cmp r0, r1
- bne _08026156
- strb r4, [r3, 0x1]
- movs r0, 0xD3
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_08026156:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD4
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080261A0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- mov r1, r10
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08026206
- movs r1, 0
- ldr r0, _080261A8 @ =gUnknown_02024C08
- ldrb r0, [r0]
- ldr r3, _080261AC @ =gUnknown_02024D1E
- mov r8, r3
- cmp r0, r2
- bne _0802619A
- movs r1, 0x1
-_0802619A:
- mov r4, r8
- strb r1, [r4, 0x5]
- b _08026234
- .align 2, 0
-_080261A0: .4byte gUnknown_02024A60
-_080261A4: .4byte gUnknown_03004290
-_080261A8: .4byte gUnknown_02024C08
-_080261AC: .4byte gUnknown_02024D1E
-_080261B0:
- asrs r6, r0, 28
- movs r0, 0x7
- ands r6, r0
- ldr r3, _08026210 @ =gUnknown_03004290
- strb r2, [r3]
- movs r2, 0x1
- cmp r6, 0x2
- bne _080261CA
- strb r4, [r3, 0x1]
- movs r0, 0xD1
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_080261CA:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD2
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- ldrb r0, [r1]
- mov r2, r12
- orrs r0, r2
- strb r0, [r1]
- ldr r2, _08026214 @ =gBattleMons
- ldr r4, _08026218 @ =gUnknown_02024A60
- ldrb r3, [r4]
- movs r0, 0x58
- muls r0, r3
- adds r0, r7, r0
- adds r1, r2, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- mov r10, r2
- cmp r0, 0xC
- bne _08026220
-_08026206:
- ldr r1, _0802621C @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- mov r8, r1
- b _08026234
- .align 2, 0
-_08026210: .4byte gUnknown_03004290
-_08026214: .4byte gBattleMons
-_08026218: .4byte gUnknown_02024A60
-_0802621C: .4byte gUnknown_02024D1E
-_08026220:
- movs r1, 0
- ldr r0, _080262B4 @ =gUnknown_02024C08
- ldrb r0, [r0]
- ldr r2, _080262B8 @ =gUnknown_02024D1E
- mov r8, r2
- cmp r0, r3
- bne _08026230
- movs r1, 0x1
-_08026230:
- mov r3, r8
- strb r1, [r3, 0x5]
-_08026234:
- ldr r2, _080262BC @ =gUnknown_02024A60
- ldrb r0, [r2]
- movs r4, 0x58
- adds r1, r0, 0
- muls r1, r4
- adds r1, r7, r1
- mov r3, r10
- adds r3, 0x18
- adds r1, r3
- lsls r0, r6, 24
- asrs r0, 24
- ldrb r6, [r1]
- adds r0, r6
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _08026264
- movs r0, 0
- strb r0, [r1]
-_08026264:
- ldr r1, _080262BC @ =gUnknown_02024A60
- ldrb r0, [r1]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0802627A
- movs r0, 0xC
- strb r0, [r1]
-_0802627A:
- mov r2, r8
- ldrb r0, [r2, 0x5]
- cmp r0, 0x2
- bne _080262A2
- movs r3, 0x1
- ands r3, r5
- cmp r3, 0
- beq _08026294
- ldr r0, _080262C0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
-_08026294:
- mov r4, r8
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- bne _080262A2
- cmp r3, 0
- bne _080262A2
- b _08025F74
-_080262A2:
- movs r0, 0
-_080262A4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080262B4: .4byte gUnknown_02024C08
-_080262B8: .4byte gUnknown_02024D1E
-_080262BC: .4byte gUnknown_02024A60
-_080262C0: .4byte gUnknown_02024C68
- thumb_func_end sub_8025E20
-
- thumb_func_start atk89_statbuffchange
-atk89_statbuffchange: @ 80262C4
- push {r4,r5,lr}
- ldr r5, _0802630C @ =gUnknown_02024C10
- ldr r2, [r5]
- ldrb r3, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r0, _08026310 @ =0x02000000
- ldr r1, _08026314 @ =0x0001601e
- adds r0, r1
- ldrb r4, [r0]
- movs r0, 0xF0
- ands r0, r4
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xF
- ands r1, r4
- ldrb r2, [r2, 0x1]
- bl sub_8025E20
- lsls r0, 24
- cmp r0, 0
- bne _08026304
- ldr r0, [r5]
- adds r0, 0x6
- str r0, [r5]
-_08026304:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802630C: .4byte gUnknown_02024C10
-_08026310: .4byte 0x02000000
-_08026314: .4byte 0x0001601e
- thumb_func_end atk89_statbuffchange
-
- thumb_func_start atk8A_normalisebuffs
-atk8A_normalisebuffs: @ 8026318
- push {r4-r7,lr}
- movs r2, 0
- ldr r0, _08026360 @ =gUnknown_02024A68
- ldrb r1, [r0]
- ldr r0, _08026364 @ =gUnknown_02024C10
- mov r12, r0
- cmp r2, r1
- bge _08026350
- ldr r0, _08026368 @ =gBattleMons
- movs r4, 0x6
- adds r5, r1, 0
- movs r7, 0x58
- adds r6, r0, 0
- adds r6, 0x18
-_08026334:
- adds r3, r2, 0x1
- movs r1, 0x7
- adds r0, r2, 0
- muls r0, r7
- adds r0, r6
- adds r0, 0x7
-_08026340:
- strb r4, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _08026340
- adds r2, r3, 0
- cmp r2, r5
- blt _08026334
-_08026350:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026360: .4byte gUnknown_02024A68
-_08026364: .4byte gUnknown_02024C10
-_08026368: .4byte gBattleMons
- thumb_func_end atk8A_normalisebuffs
-
- thumb_func_start atk8B_setbide
-atk8B_setbide: @ 802636C
- push {r4,r5,lr}
- ldr r4, _080263C4 @ =gBattleMons
- ldr r3, _080263C8 @ =gUnknown_02024C07
- ldrb r0, [r3]
- movs r5, 0x58
- adds r2, r0, 0
- muls r2, r5
- adds r4, 0x50
- adds r2, r4
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _080263CC @ =gUnknown_02024C54
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _080263D0 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- movs r2, 0
- strh r1, [r0]
- ldr r1, _080263D4 @ =gUnknown_02024BF4
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- str r2, [r0]
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r1, _080263D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080263C4: .4byte gBattleMons
-_080263C8: .4byte gUnknown_02024C07
-_080263CC: .4byte gUnknown_02024C54
-_080263D0: .4byte gUnknown_02024BE6
-_080263D4: .4byte gUnknown_02024BF4
-_080263D8: .4byte gUnknown_02024C10
- thumb_func_end atk8B_setbide
-
- thumb_func_start atk8C_confuseifrepeatingattackends
-atk8C_confuseifrepeatingattackends: @ 80263DC
- push {lr}
- ldr r1, _0802640C @ =gBattleMons
- ldr r0, _08026410 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 4
- ands r0, r1
- cmp r0, 0
- bne _080263FE
- ldr r1, _08026414 @ =gUnknown_02024D1E
- movs r0, 0x75
- strb r0, [r1, 0x3]
-_080263FE:
- ldr r1, _08026418 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802640C: .4byte gBattleMons
-_08026410: .4byte gUnknown_02024C07
-_08026414: .4byte gUnknown_02024D1E
-_08026418: .4byte gUnknown_02024C10
- thumb_func_end atk8C_confuseifrepeatingattackends
-
- thumb_func_start atk8D_setloopcounter
-atk8D_setloopcounter: @ 802641C
- push {r4,r5,lr}
- ldr r0, _08026430 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- cmp r1, 0
- beq _08026438
- ldr r0, _08026434 @ =gUnknown_02024C0E
- strb r1, [r0]
- b _08026452
- .align 2, 0
-_08026430: .4byte gUnknown_02024C10
-_08026434: .4byte gUnknown_02024C0E
-_08026438:
- ldr r4, _08026460 @ =gUnknown_02024C0E
- bl Random
- movs r5, 0x3
- ands r0, r5
- strb r0, [r4]
- cmp r0, 0x1
- bls _0802644E
- bl Random
- ands r0, r5
-_0802644E:
- adds r0, 0x2
- strb r0, [r4]
-_08026452:
- ldr r1, _08026464 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08026460: .4byte gUnknown_02024C0E
-_08026464: .4byte gUnknown_02024C10
- thumb_func_end atk8D_setloopcounter
-
- thumb_func_start sub_8026468
-sub_8026468: @ 8026468
- push {r4,lr}
- ldr r1, _080264A8 @ =0x02000000
- ldr r0, _080264AC @ =0x000160e0
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0xFD
- strb r0, [r2]
- ldr r2, _080264B0 @ =0x000160e1
- adds r0, r1, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r4, _080264B4 @ =0x000160e2
- adds r0, r1, r4
- strb r2, [r0]
- adds r4, 0x1
- adds r0, r1, r4
- strb r2, [r0]
- ldr r2, _080264B8 @ =0x000160e4
- adds r0, r1, r2
- strb r3, [r0]
- adds r4, 0x2
- adds r1, r4
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080264BC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080264A8: .4byte 0x02000000
-_080264AC: .4byte 0x000160e0
-_080264B0: .4byte 0x000160e1
-_080264B4: .4byte 0x000160e2
-_080264B8: .4byte 0x000160e4
-_080264BC: .4byte gUnknown_02024C10
- thumb_func_end sub_8026468
-
- thumb_func_start sub_80264C0
-sub_80264C0: @ 80264C0
- push {r4-r7,lr}
- ldr r6, _080264F4 @ =gBattleMons
- ldr r7, _080264F8 @ =gUnknown_02024C07
- ldrb r0, [r7]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- adds r1, 0x2A
- ldr r4, _080264FC @ =gUnknown_02024C08
- ldrb r3, [r4]
- adds r0, r3, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0802650C
- ldr r0, _08026500 @ =0x02000000
- ldr r2, _08026504 @ =0x00016064
- adds r1, r3, r2
- adds r1, r0
- ldr r2, _08026508 @ =gUnknown_02024A6A
- lsls r0, r3, 1
- b _08026568
- .align 2, 0
-_080264F4: .4byte gBattleMons
-_080264F8: .4byte gUnknown_02024C07
-_080264FC: .4byte gUnknown_02024C08
-_08026500: .4byte 0x02000000
-_08026504: .4byte 0x00016064
-_08026508: .4byte gUnknown_02024A6A
-_0802650C:
- bl Random
- movs r3, 0xFF
- ands r3, r0
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r2, [r0]
- ldrb r4, [r4]
- adds r0, r4, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r2, r1
- adds r0, r3, 0
- muls r0, r2
- asrs r0, 8
- adds r0, 0x1
- lsrs r1, 2
- cmp r0, r1
- bhi _0802655C
- ldr r3, _08026558 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- movs r0, 0
- b _08026576
- .align 2, 0
-_08026558: .4byte gUnknown_02024C10
-_0802655C:
- ldr r0, _0802657C @ =0x02000000
- ldr r2, _08026580 @ =0x00016064
- adds r1, r4, r2
- adds r1, r0
- ldr r2, _08026584 @ =gUnknown_02024A6A
- lsls r0, r4, 1
-_08026568:
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r1, _08026588 @ =gUnknown_02024C10
- ldr r0, _0802658C @ =gUnknown_081D90FC
- str r0, [r1]
- movs r0, 0x1
-_08026576:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0802657C: .4byte 0x02000000
-_08026580: .4byte 0x00016064
-_08026584: .4byte gUnknown_02024A6A
-_08026588: .4byte gUnknown_02024C10
-_0802658C: .4byte gUnknown_081D90FC
- thumb_func_end sub_80264C0
-
- thumb_func_start sub_8026590
-sub_8026590: @ 8026590
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08026628 @ =gUnknown_020239F8
- ldrh r1, [r4]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080265A4
- b _0802687C
-_080265A4:
- ldr r5, _0802662C @ =gUnknown_02024C08
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _08026630 @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _080265BA
- ldr r2, _08026634 @ =gPlayerParty
- mov r8, r2
-_080265BA:
- ldrh r1, [r4]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08026638
- movs r7, 0
- movs r6, 0
- ldrb r0, [r5]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080265E0
- movs r6, 0x3
-_080265E0:
- adds r5, r6, 0
- adds r0, r5, 0x3
- cmp r5, r0
- bge _08026678
-_080265E8:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802661A
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802661A
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802661A
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0802661A:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x3
- cmp r5, r0
- blt _080265E8
- b _08026678
- .align 2, 0
-_08026628: .4byte gUnknown_020239F8
-_0802662C: .4byte gUnknown_02024C08
-_08026630: .4byte gEnemyParty
-_08026634: .4byte gPlayerParty
-_08026638:
- movs r7, 0
- movs r5, 0
-_0802663C:
- movs r0, 0x64
- muls r0, r5
- mov r2, r8
- adds r4, r2, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802666E
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802666E
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802666E
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0802666E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0802663C
-_08026678:
- cmp r7, 0x1
- bhi _08026688
- ldr r0, _080266BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _080266A0
-_08026688:
- cmp r7, 0x2
- bhi _080266C4
- ldr r0, _080266BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080266C4
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080266C4
-_080266A0:
- ldr r3, _080266C0 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08026880
- .align 2, 0
-_080266BC: .4byte gUnknown_020239F8
-_080266C0: .4byte gUnknown_02024C10
-_080266C4:
- bl sub_80264C0
- lsls r0, 24
- cmp r0, 0
- bne _080266D0
- b _08026880
-_080266D0:
- ldr r0, _08026710 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08026774
-_080266DC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08026714 @ =gUnknown_02024C08
- ldrb r0, [r0]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _08026718
- adds r0, r6, 0x3
- lsls r0, 24
- lsrs r5, r0, 24
- b _0802671A
- .align 2, 0
-_08026710: .4byte gUnknown_020239F8
-_08026714: .4byte gUnknown_02024C08
-_08026718:
- adds r5, r6, 0
-_0802671A:
- ldr r4, _0802676C @ =gUnknown_02024A6A
- ldr r0, _08026770 @ =gUnknown_02024C08
- ldrb r2, [r0]
- lsls r1, r2, 1
- adds r1, r4
- lsls r0, r5, 16
- lsrs r3, r0, 16
- ldrh r1, [r1]
- cmp r3, r1
- beq _080266DC
- movs r0, 0x2
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r3, r0
- beq _080266DC
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080266DC
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080266DC
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080266DC
- b _08026832
- .align 2, 0
-_0802676C: .4byte gUnknown_02024A6A
-_08026770: .4byte gUnknown_02024C08
-_08026774:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080267E4
- ldr r6, _080267DC @ =gUnknown_02024A6A
-_0802677E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080267E0 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r6
- adds r2, r5, 0
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802677E
- movs r0, 0x2
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802677E
- movs r0, 0x64
- muls r0, r5
- mov r2, r8
- adds r4, r2, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802677E
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _0802677E
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802677E
- b _08026832
- .align 2, 0
-_080267DC: .4byte gUnknown_02024A6A
-_080267E0: .4byte gUnknown_02024C08
-_080267E4:
- ldr r6, _0802686C @ =gUnknown_02024A6A
-_080267E6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08026870 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r5, r0
- beq _080267E6
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080267E6
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080267E6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080267E6
-_08026832:
- ldr r0, _08026874 @ =0x02000000
- ldr r4, _08026870 @ =gUnknown_02024C08
- ldrb r1, [r4]
- ldr r2, _08026878 @ =0x00016068
- adds r1, r2
- adds r1, r0
- strb r5, [r1]
- bl sub_806B528
- lsls r0, 24
- cmp r0, 0
- bne _08026850
- ldrb r0, [r4]
- bl sub_8012258
-_08026850:
- ldrb r0, [r4]
- adds r1, r5, 0
- movs r2, 0
- bl sub_8094B6C
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8094B6C
- b _08026880
- .align 2, 0
-_0802686C: .4byte gUnknown_02024A6A
-_08026870: .4byte gUnknown_02024C08
-_08026874: .4byte 0x02000000
-_08026878: .4byte 0x00016068
-_0802687C:
- bl sub_80264C0
-_08026880:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8026590
-
- thumb_func_start sub_802688C
-sub_802688C: @ 802688C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- ldr r2, _08026920 @ =gBattleMons
- ldr r3, _08026924 @ =gUnknown_02024C07
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- mov r8, r2
- cmp r0, 0
- beq _080268CE
- movs r5, 0x58
- adds r2, r1, 0
-_080268B4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bhi _080268CE
- lsls r1, r6, 1
- ldrb r0, [r3]
- muls r0, r5
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- cmp r0, 0
- bne _080268B4
-_080268CE:
- movs r3, 0
- cmp r3, r6
- bcs _08026950
- ldr r0, _08026928 @ =gBattleMoves
- mov r10, r0
- ldr r5, _08026920 @ =gBattleMons
- mov r12, r5
- ldr r7, _08026924 @ =gUnknown_02024C07
- ldrb r0, [r7]
- movs r4, 0x58
- adds r5, r0, 0
- muls r5, r4
- movs r0, 0xC
- add r0, r12
- mov r9, r0
-_080268EC:
- lsls r0, r3, 1
- adds r0, r5
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrb r2, [r0, 0x2]
- cmp r2, 0x9
- bne _0802692E
- mov r0, r8
- adds r1, r5, r0
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _0802691A
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0802692C
-_0802691A:
- movs r2, 0x7
- b _0802692E
- .align 2, 0
-_08026920: .4byte gBattleMons
-_08026924: .4byte gUnknown_02024C07
-_08026928: .4byte gBattleMoves
-_0802692C:
- movs r2, 0
-_0802692E:
- ldrb r0, [r7]
- muls r0, r4
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r2, r1
- beq _08026946
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _08026950
-_08026946:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r6
- bcc _080268EC
-_08026950:
- cmp r3, r6
- bne _08026974
- ldr r3, _08026970 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08026A18
- .align 2, 0
-_08026970: .4byte gUnknown_02024C10
-_08026974:
- movs r7, 0x3
- ldr r5, _080269CC @ =gBattleMoves
- mov r9, r5
-_0802697A:
- bl Random
- adds r3, r0, 0
- ands r3, r7
- cmp r3, r6
- bcs _0802697A
- ldr r4, _080269D0 @ =gBattleMons
- lsls r1, r3, 1
- ldr r3, _080269D4 @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- adds r5, r2, 0
- muls r5, r0
- adds r1, r5
- adds r0, r4, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r2, [r0, 0x2]
- mov r8, r4
- adds r4, r3, 0
- cmp r2, 0x9
- bne _080269DA
- mov r0, r8
- adds r2, r5, r0
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080269C8
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _080269D8
-_080269C8:
- movs r2, 0x7
- b _080269DA
- .align 2, 0
-_080269CC: .4byte gBattleMoves
-_080269D0: .4byte gBattleMons
-_080269D4: .4byte gUnknown_02024C07
-_080269D8:
- movs r2, 0
-_080269DA:
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- add r0, r8
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r5, [r1]
- cmp r2, r5
- beq _0802697A
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- beq _0802697A
- strb r2, [r1]
- ldrb r0, [r4]
- muls r0, r3
- add r0, r8
- adds r0, 0x22
- strb r2, [r0]
- ldr r1, _08026A28 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _08026A2C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08026A18:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026A28: .4byte gUnknown_030041C0
-_08026A2C: .4byte gUnknown_02024C10
- thumb_func_end sub_802688C
-
- thumb_func_start atk91_givemoney
-atk91_givemoney: @ 8026A30
- push {r4,lr}
- ldr r0, _08026A8C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08026AAC
- ldr r4, _08026A90 @ =gUnknown_02024D1A
- ldrh r0, [r4]
- cmp r0, 0
- beq _08026AAC
- ldr r0, _08026A94 @ =gSaveBlock1 + 0x490
- ldrh r2, [r4]
- ldr r1, _08026A98 @ =0x02000000
- ldr r3, _08026A9C @ =0x00016056
- adds r1, r3
- ldrb r1, [r1]
- muls r1, r2
- bl sub_80B79B8
- ldr r1, _08026AA0 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- ldrh r2, [r4]
- strb r2, [r1, 0x4]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- lsrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- strb r0, [r1, 0x6]
- ldr r4, _08026AA4 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _08026AA8 @ =gUnknown_081D95DB
- str r0, [r4]
- b _08026AB4
- .align 2, 0
-_08026A8C: .4byte gUnknown_020239F8
-_08026A90: .4byte gUnknown_02024D1A
-_08026A94: .4byte gSaveBlock1 + 0x490
-_08026A98: .4byte 0x02000000
-_08026A9C: .4byte 0x00016056
-_08026AA0: .4byte gUnknown_030041C0
-_08026AA4: .4byte gUnknown_02024C10
-_08026AA8: .4byte gUnknown_081D95DB
-_08026AAC:
- ldr r1, _08026ABC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08026AB4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08026ABC: .4byte gUnknown_02024C10
- thumb_func_end atk91_givemoney
-
- thumb_func_start atk92_setlightscreen
-atk92_setlightscreen: @ 8026AC0
- push {r4-r6,lr}
- ldr r4, _08026AF0 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r6, _08026AF4 @ =gUnknown_02024C7A
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08026B00
- ldr r2, _08026AF8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026AFC @ =gUnknown_02024D1E
- movs r0, 0
- b _08026B60
- .align 2, 0
-_08026AF0: .4byte gUnknown_02024C07
-_08026AF4: .4byte gUnknown_02024C7A
-_08026AF8: .4byte gUnknown_02024C68
-_08026AFC: .4byte gUnknown_02024D1E
-_08026B00:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r2, _08026B50 @ =gUnknown_02024C80
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0, 0x1]
- ldr r0, _08026B54 @ =gUnknown_020239F8
- ldrh r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08026B5C
- movs r0, 0x1
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08026B5C
- ldr r1, _08026B58 @ =gUnknown_02024D1E
- movs r0, 0x4
- b _08026B60
- .align 2, 0
-_08026B50: .4byte gUnknown_02024C80
-_08026B54: .4byte gUnknown_020239F8
-_08026B58: .4byte gUnknown_02024D1E
-_08026B5C:
- ldr r1, _08026B70 @ =gUnknown_02024D1E
- movs r0, 0x3
-_08026B60:
- strb r0, [r1, 0x5]
- ldr r1, _08026B74 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08026B70: .4byte gUnknown_02024D1E
-_08026B74: .4byte gUnknown_02024C10
- thumb_func_end atk92_setlightscreen
-
- thumb_func_start sub_8026B78
-sub_8026B78: @ 8026B78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _08026BA8 @ =gBattleMons
- ldr r6, _08026BAC @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08026BB4
- ldr r1, _08026BB0 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _08026BCE
- .align 2, 0
-_08026BA8: .4byte gBattleMons
-_08026BAC: .4byte gUnknown_02024C08
-_08026BB0: .4byte gEnigmaBerries
-_08026BB4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_08026BCE:
- ldr r1, _08026C4C @ =gUnknown_02024C0B
- ldr r5, _08026C50 @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _08026C0C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _08026C0C
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_81074F8
- ldr r2, _08026C54 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08026C0C:
- ldr r0, _08026C58 @ =gBattleMons
- mov r8, r0
- ldr r1, _08026C50 @ =gUnknown_02024C08
- ldrb r2, [r1]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- mov r3, r8
- adds r5, r0, r3
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r3, [r0]
- mov r10, r8
- cmp r3, 0x5
- bne _08026C6C
- ldr r2, _08026C5C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08026C60 @ =byte_2024C06
- strb r3, [r0]
- ldr r1, _08026C64 @ =gUnknown_02024C10
- ldr r0, _08026C68 @ =gUnknown_081D9826
- str r0, [r1]
- ldr r1, _08026C50 @ =gUnknown_02024C08
- ldrb r0, [r1]
- movs r1, 0x5
- bl sub_81074C4
- b _08026E40
- .align 2, 0
-_08026C4C: .4byte gUnknown_02024C0B
-_08026C50: .4byte gUnknown_02024C08
-_08026C54: .4byte gUnknown_02024D68
-_08026C58: .4byte gBattleMons
-_08026C5C: .4byte gUnknown_02024C68
-_08026C60: .4byte byte_2024C06
-_08026C64: .4byte gUnknown_02024C10
-_08026C68: .4byte gUnknown_081D9826
-_08026C6C:
- ldr r1, _08026CE0 @ =gUnknown_02024C98
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x18
- ands r0, r1
- cmp r0, 0
- bne _08026CF4
- ldr r1, _08026CE4 @ =gBattleMoves
- ldr r0, _08026CE8 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldr r7, _08026CEC @ =gUnknown_02024C07
- ldrb r0, [r7]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r1, 0x2A
- ldrb r1, [r1]
- subs r0, r1
- ldrb r2, [r2, 0x3]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- bge _08026CDC
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r10
- adds r1, 0x2A
- ldr r2, _08026CF0 @ =gUnknown_02024C08
- ldrb r0, [r2]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- ldrb r1, [r1]
- movs r4, 0x1
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08026D20
-_08026CDC:
- mov r10, r8
- b _08026DE0
- .align 2, 0
-_08026CE0: .4byte gUnknown_02024C98
-_08026CE4: .4byte gBattleMoves
-_08026CE8: .4byte gUnknown_02024BE6
-_08026CEC: .4byte gUnknown_02024C07
-_08026CF0: .4byte gUnknown_02024C08
-_08026CF4:
- ldr r0, _08026D4C @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r2, _08026D50 @ =gUnknown_02024C07
- ldrb r0, [r1, 0x15]
- movs r4, 0
- ldrb r3, [r2]
- cmp r0, r3
- bne _08026D20
- ldrb r0, [r2]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- adds r1, r5, 0
- adds r1, 0x2A
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08026D20
- movs r4, 0x1
-_08026D20:
- cmp r4, 0
- beq _08026DE0
- ldr r0, _08026D54 @ =gUnknown_02024D28
- ldr r1, _08026D58 @ =gUnknown_02024C08
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- bge _08026D64
- ldr r1, _08026D5C @ =gUnknown_02024BEC
- movs r0, 0x58
- muls r0, r2
- add r0, r10
- ldrh r0, [r0, 0x28]
- subs r0, 0x1
- str r0, [r1]
- ldr r2, _08026D60 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x40
- b _08026DC6
- .align 2, 0
-_08026D4C: .4byte gUnknown_02024CA8
-_08026D50: .4byte gUnknown_02024C07
-_08026D54: .4byte gUnknown_02024D28
-_08026D58: .4byte gUnknown_02024C08
-_08026D5C: .4byte gUnknown_02024BEC
-_08026D60: .4byte gUnknown_02024C68
-_08026D64:
- ldr r0, _08026DA0 @ =gUnknown_02024D68
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08026DB4
- ldr r1, _08026DA4 @ =gUnknown_02024BEC
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- add r0, r10
- ldrh r0, [r0, 0x28]
- subs r0, 0x1
- str r0, [r1]
- ldr r2, _08026DA8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026DAC @ =gUnknown_02024C04
- ldr r2, _08026DB0 @ =gUnknown_02024C08
- ldrb r0, [r2]
- muls r0, r3
- add r0, r10
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- b _08026DCA
- .align 2, 0
-_08026DA0: .4byte gUnknown_02024D68
-_08026DA4: .4byte gUnknown_02024BEC
-_08026DA8: .4byte gUnknown_02024C68
-_08026DAC: .4byte gUnknown_02024C04
-_08026DB0: .4byte gUnknown_02024C08
-_08026DB4:
- ldr r1, _08026DD4 @ =gUnknown_02024BEC
- movs r0, 0x58
- muls r0, r2
- add r0, r10
- ldrh r0, [r0, 0x28]
- str r0, [r1]
- ldr r2, _08026DD8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x10
-_08026DC6:
- orrs r0, r1
- strb r0, [r2]
-_08026DCA:
- ldr r1, _08026DDC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08026E40
- .align 2, 0
-_08026DD4: .4byte gUnknown_02024BEC
-_08026DD8: .4byte gUnknown_02024C68
-_08026DDC: .4byte gUnknown_02024C10
-_08026DE0:
- ldr r2, _08026E10 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08026E14 @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- add r1, r10
- adds r1, 0x2A
- ldr r3, _08026E18 @ =gUnknown_02024C08
- ldrb r0, [r3]
- muls r0, r2
- add r0, r10
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08026E20
- ldr r1, _08026E1C @ =gUnknown_02024D1E
- movs r0, 0
- b _08026E24
- .align 2, 0
-_08026E10: .4byte gUnknown_02024C68
-_08026E14: .4byte gUnknown_02024C07
-_08026E18: .4byte gUnknown_02024C08
-_08026E1C: .4byte gUnknown_02024D1E
-_08026E20:
- ldr r1, _08026E50 @ =gUnknown_02024D1E
- movs r0, 0x1
-_08026E24:
- strb r0, [r1, 0x5]
- ldr r3, _08026E54 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08026E40:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026E50: .4byte gUnknown_02024D1E
-_08026E54: .4byte gUnknown_02024C10
- thumb_func_end sub_8026B78
-
- thumb_func_start atk94_gethalfcurrentenemyhp
-atk94_gethalfcurrentenemyhp: @ 8026E58
- push {lr}
- ldr r3, _08026E84 @ =gUnknown_02024BEC
- ldr r2, _08026E88 @ =gBattleMons
- ldr r0, _08026E8C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- lsrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _08026E76
- movs r0, 0x1
- str r0, [r3]
-_08026E76:
- ldr r1, _08026E90 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08026E84: .4byte gUnknown_02024BEC
-_08026E88: .4byte gBattleMons
-_08026E8C: .4byte gUnknown_02024C08
-_08026E90: .4byte gUnknown_02024C10
- thumb_func_end atk94_gethalfcurrentenemyhp
-
- thumb_func_start sub_8026E94
-sub_8026E94: @ 8026E94
- push {lr}
- ldr r2, _08026EB4 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08026EC0
- ldr r2, _08026EB8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026EBC @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08026ED2
- .align 2, 0
-_08026EB4: .4byte word_2024DB8
-_08026EB8: .4byte gUnknown_02024C68
-_08026EBC: .4byte gUnknown_02024D1E
-_08026EC0:
- movs r0, 0x8
- strh r0, [r2]
- ldr r1, _08026EE0 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x5]
- ldr r0, _08026EE4 @ =gUnknown_02024DBC
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_08026ED2:
- ldr r1, _08026EE8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08026EE0: .4byte gUnknown_02024D1E
-_08026EE4: .4byte gUnknown_02024DBC
-_08026EE8: .4byte gUnknown_02024C10
- thumb_func_end sub_8026E94
-
- thumb_func_start sub_8026EEC
-sub_8026EEC: @ 8026EEC
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08026F0A
- b _0802701C
-_08026F0A:
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08026F20
- b _0802701C
-_08026F20:
- ldr r2, _08026F94 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x18
- ands r0, r1
- adds r4, r2, 0
- ldr r5, _08026F98 @ =gUnknown_02024C07
- cmp r0, 0
- beq _08026FAE
- ldr r0, _08026F9C @ =gBattleMons
- ldrb r2, [r5]
- movs r1, 0x58
- muls r1, r2
- adds r3, r1, r0
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _08026FA8
- cmp r0, 0x8
- beq _08026FA8
- cmp r0, 0x4
- beq _08026FA8
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _08026FA8
- cmp r0, 0x8
- beq _08026FA8
- cmp r0, 0x4
- beq _08026FA8
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _08026FA8
- ldr r0, _08026FA0 @ =gUnknown_02024C98
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08026FA8
- movs r0, 0x80
- lsls r0, 11
- ands r1, r0
- cmp r1, 0
- bne _08026FA8
- ldr r1, _08026FA4 @ =gUnknown_02024BEC
- ldrh r0, [r3, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08026FAE
- movs r0, 0x1
- b _08026FAC
- .align 2, 0
-_08026F94: .4byte word_2024DB8
-_08026F98: .4byte gUnknown_02024C07
-_08026F9C: .4byte gBattleMons
-_08026FA0: .4byte gUnknown_02024C98
-_08026FA4: .4byte gUnknown_02024BEC
-_08026FA8:
- ldr r1, _08027004 @ =gUnknown_02024BEC
- movs r0, 0
-_08026FAC:
- str r0, [r1]
-_08026FAE:
- ldrh r1, [r4]
- movs r4, 0x80
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08027024
- ldr r1, _08027008 @ =gBattleMons
- ldrb r3, [r5]
- movs r0, 0x58
- muls r0, r3
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08027010
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08027010
- ldr r0, _0802700C @ =gUnknown_02024C98
- lsls r1, r3, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- bne _08027010
- movs r0, 0x80
- lsls r0, 11
- ands r1, r0
- cmp r1, 0
- bne _08027010
- ldr r1, _08027004 @ =gUnknown_02024BEC
- ldrh r0, [r2, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08027024
- movs r0, 0x1
- str r0, [r1]
- b _08027024
- .align 2, 0
-_08027004: .4byte gUnknown_02024BEC
-_08027008: .4byte gBattleMons
-_0802700C: .4byte gUnknown_02024C98
-_08027010:
- ldr r1, _08027018 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
- b _08027024
- .align 2, 0
-_08027018: .4byte gUnknown_02024BEC
-_0802701C:
- ldr r1, _08027050 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
- ldr r5, _08027054 @ =gUnknown_02024C07
-_08027024:
- ldr r0, _08027058 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802705C @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802703E
- ldr r1, _08027050 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
-_0802703E:
- ldr r1, _08027060 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08027050: .4byte gUnknown_02024BEC
-_08027054: .4byte gUnknown_02024C07
-_08027058: .4byte gUnknown_02024C0C
-_0802705C: .4byte gBitTable
-_08027060: .4byte gUnknown_02024C10
- thumb_func_end sub_8026EEC
-
- thumb_func_start sub_8027064
-sub_8027064: @ 8027064
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08027090 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0802709C
- ldr r1, _08027094 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08027098 @ =gPlayerParty
- b _080270AC
- .align 2, 0
-_08027090: .4byte gUnknown_02024C07
-_08027094: .4byte gUnknown_02024A6A
-_08027098: .4byte gPlayerParty
-_0802709C:
- ldr r1, _080270D0 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080270D4 @ =gEnemyParty
-_080270AC:
- adds r5, r1, r0
- ldr r4, _080270D8 @ =gUnknown_02024C08
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080270E0
- ldr r1, _080270D0 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080270DC @ =gPlayerParty
- b _080270F0
- .align 2, 0
-_080270D0: .4byte gUnknown_02024A6A
-_080270D4: .4byte gEnemyParty
-_080270D8: .4byte gUnknown_02024C08
-_080270DC: .4byte gPlayerParty
-_080270E0:
- ldr r1, _0802714C @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08027150 @ =gEnemyParty
-_080270F0:
- adds r4, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r7, r0, 0
- ldr r5, _08027154 @ =gUnknown_02024C08
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- ldr r1, _08027158 @ =gBattleMons
- adds r0, r1
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0xC
- bne _08027168
- ldr r1, _0802715C @ =gUnknown_02024C10
- ldr r0, _08027160 @ =gUnknown_081D98C9
- str r0, [r1]
- ldr r0, _08027164 @ =byte_2024C06
- strb r2, [r0]
- ldrb r0, [r5]
- movs r1, 0xC
- bl sub_81074C4
- b _0802721C
- .align 2, 0
-_0802714C: .4byte gUnknown_02024A6A
-_08027150: .4byte gEnemyParty
-_08027154: .4byte gUnknown_02024C08
-_08027158: .4byte gBattleMons
-_0802715C: .4byte gUnknown_02024C10
-_08027160: .4byte gUnknown_081D98C9
-_08027164: .4byte byte_2024C06
-_08027168:
- mov r0, r10
- mov r1, r9
- bl GetGenderFromSpeciesAndPersonality
- adds r4, r0, 0
- mov r0, r8
- adds r1, r7, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080271CA
- ldr r1, _080271E8 @ =gUnknown_02024C98
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080271EC @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _080271CA
- adds r0, r2, 0
- muls r0, r6
- ldr r4, _080271F0 @ =gBattleMons
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- bne _080271CA
- mov r0, r10
- mov r1, r9
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080271CA
- mov r0, r8
- adds r1, r7, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080271F8
-_080271CA:
- ldr r3, _080271F4 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802721C
- .align 2, 0
-_080271E8: .4byte gUnknown_02024C98
-_080271EC: .4byte 0x000400c0
-_080271F0: .4byte gBattleMons
-_080271F4: .4byte gUnknown_02024C10
-_080271F8:
- ldrb r0, [r5]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r1, _0802722C @ =gBitTable
- ldr r0, _08027230 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08027234 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802721C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802722C: .4byte gBitTable
-_08027230: .4byte gUnknown_02024C07
-_08027234: .4byte gUnknown_02024C10
- thumb_func_end sub_8027064
-
- thumb_func_start sub_8027238
-sub_8027238: @ 8027238
- push {r4-r7,lr}
- ldr r0, _08027280 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08027324
- ldr r5, _08027284 @ =gUnknown_02024C10
- ldr r1, [r5]
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- beq _08027290
- bl sub_8015150
- ldr r4, _08027288 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r3, _0802728C @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x1A_aaaa_bbbb
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- b _08027324
- .align 2, 0
-_08027280: .4byte gUnknown_02024A64
-_08027284: .4byte gUnknown_02024C10
-_08027288: .4byte gUnknown_02024A60
-_0802728C: .4byte gBattleMons
-_08027290:
- ldr r4, _0802732C @ =gUnknown_02024A60
- ldr r5, _08027330 @ =gUnknown_02024C07
- ldrb r0, [r5]
- strb r0, [r4]
- ldr r6, _08027334 @ =gUnknown_02024C0C
- ldrb r1, [r6]
- ldr r7, _08027338 @ =gBitTable
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080272CC
- ldr r3, _0802733C @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x1A_aaaa_bbbb
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080272CC:
- ldr r0, _08027340 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802731C
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- strb r0, [r4]
- ldrb r1, [r6]
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802731C
- ldr r3, _0802733C @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x1A_aaaa_bbbb
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802731C:
- ldr r1, _08027344 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08027324:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802732C: .4byte gUnknown_02024A60
-_08027330: .4byte gUnknown_02024C07
-_08027334: .4byte gUnknown_02024C0C
-_08027338: .4byte gBitTable
-_0802733C: .4byte gBattleMons
-_08027340: .4byte gUnknown_020239F8
-_08027344: .4byte gUnknown_02024C10
- thumb_func_end sub_8027238
-
- thumb_func_start sub_8027348
-sub_8027348: @ 8027348
- push {r4-r6,lr}
- ldr r6, _08027378 @ =gUnknown_02024C80
- ldr r4, _0802737C @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_get_per_side_status
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _08027388
- ldr r2, _08027380 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08027384 @ =gUnknown_02024D1E
- strb r5, [r0, 0x5]
- b _080273C0
- .align 2, 0
-_08027378: .4byte gUnknown_02024C80
-_0802737C: .4byte gUnknown_02024C07
-_08027380: .4byte gUnknown_02024C68
-_08027384: .4byte gUnknown_02024D1E
-_08027388:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- strb r1, [r0, 0x2]
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r2, _080273D0 @ =gUnknown_02024C7A
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- movs r3, 0
- orrs r0, r2
- strh r0, [r1]
- ldr r0, _080273D4 @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
-_080273C0:
- ldr r1, _080273D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080273D0: .4byte gUnknown_02024C7A
-_080273D4: .4byte gUnknown_02024D1E
-_080273D8: .4byte gUnknown_02024C10
- thumb_func_end sub_8027348
-
- thumb_func_start atk9A_setincreasedcriticalchance
-atk9A_setincreasedcriticalchance: @ 80273DC
- push {lr}
- ldr r1, _0802740C @ =gBattleMons
- ldr r0, _08027410 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r3, 0x80
- lsls r3, 13
- adds r2, r1, 0
- ands r2, r3
- cmp r2, 0
- beq _0802741C
- ldr r2, _08027414 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08027418 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08027424
- .align 2, 0
-_0802740C: .4byte gBattleMons
-_08027410: .4byte gUnknown_02024C07
-_08027414: .4byte gUnknown_02024C68
-_08027418: .4byte gUnknown_02024D1E
-_0802741C:
- orrs r1, r3
- str r1, [r0]
- ldr r0, _08027430 @ =gUnknown_02024D1E
- strb r2, [r0, 0x5]
-_08027424:
- ldr r1, _08027434 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08027430: .4byte gUnknown_02024D1E
-_08027434: .4byte gUnknown_02024C10
- thumb_func_end atk9A_setincreasedcriticalchance
-
- thumb_func_start atk9B_transformdataexecution
-atk9B_transformdataexecution: @ 8027438
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _08027490 @ =gUnknown_02024BE8
- ldr r2, _08027494 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08027498 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r7, _0802749C @ =gBattleMons
- ldr r0, _080274A0 @ =gUnknown_02024C08
- mov r12, r0
- ldrb r1, [r0]
- movs r6, 0x58
- adds r0, r1, 0
- muls r0, r6
- adds r5, r7, 0
- adds r5, 0x50
- adds r0, r5
- ldr r0, [r0]
- movs r4, 0x80
- lsls r4, 14
- ands r0, r4
- cmp r0, 0
- bne _0802747E
- ldr r0, _080274A4 @ =gUnknown_02024C98
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- ldr r0, _080274A8 @ =0x000400c0
- ands r2, r0
- cmp r2, 0
- beq _080274B4
-_0802747E:
- ldr r2, _080274AC @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080274B0 @ =gUnknown_02024D1E
- movs r0, 0x1
- b _080275C8
- .align 2, 0
-_08027490: .4byte gUnknown_02024BE8
-_08027494: .4byte 0x0000ffff
-_08027498: .4byte gUnknown_02024C10
-_0802749C: .4byte gBattleMons
-_080274A0: .4byte gUnknown_02024C08
-_080274A4: .4byte gUnknown_02024C98
-_080274A8: .4byte 0x000400c0
-_080274AC: .4byte gUnknown_02024C68
-_080274B0: .4byte gUnknown_02024D1E
-_080274B4:
- ldr r3, _08027588 @ =gUnknown_02024C07
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- ldr r0, [r1]
- orrs r0, r4
- str r0, [r1]
- ldr r4, _0802758C @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x4]
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r12
- ldrb r1, [r2]
- muls r1, r6
- adds r2, r7, 0
- adds r2, 0x48
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x18]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x18]
- ldr r1, _08027590 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- mov r2, r12
- ldrb r0, [r2]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r2]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r3]
- muls r0, r6
- adds r5, r0, r7
- ldrb r0, [r2]
- muls r0, r6
- adds r2, r0, r7
- movs r4, 0
- adds r6, r3, 0
- ldr r0, _08027594 @ =gUnknown_02024A60
- mov r8, r0
-_0802754C:
- adds r0, r5, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x23
- bls _0802754C
- movs r4, 0
- ldr r7, _08027598 @ =gBattleMoves
- ldr r3, _0802759C @ =gUnknown_02024A8C
- adds r5, r3, 0
- adds r5, 0x18
-_08027564:
- lsls r1, r4, 1
- ldrb r2, [r6]
- movs r0, 0x58
- muls r2, r0
- adds r1, r2
- adds r1, r3
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0, 0x4]
- cmp r1, 0x4
- bhi _080275A0
- adds r0, r4, r2
- adds r0, r5
- b _080275A6
- .align 2, 0
-_08027588: .4byte gUnknown_02024C07
-_0802758C: .4byte gUnknown_02024CA8
-_08027590: .4byte gUnknown_030041C0
-_08027594: .4byte gUnknown_02024A60
-_08027598: .4byte gBattleMoves
-_0802759C: .4byte gUnknown_02024A8C
-_080275A0:
- adds r0, r4, r2
- adds r0, r5
- movs r1, 0x5
-_080275A6:
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x3
- ble _08027564
- ldrb r0, [r6]
- mov r1, r8
- strb r0, [r1]
- movs r0, 0
- movs r1, 0x2
- bl dp01_build_cmdbuf_x38_a
- mov r2, r8
- ldrb r0, [r2]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _080275D4 @ =gUnknown_02024D1E
- movs r0, 0
-_080275C8:
- strb r0, [r1, 0x5]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080275D4: .4byte gUnknown_02024D1E
- thumb_func_end atk9B_transformdataexecution
-
- thumb_func_start sub_80275D8
-sub_80275D8: @ 80275D8
- push {r4-r7,lr}
- ldr r7, _08027608 @ =gBattleMons
- ldr r6, _0802760C @ =gUnknown_02024C07
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r3, r0, r7
- ldrh r0, [r3, 0x2C]
- lsrs r1, r0, 2
- adds r2, r1, 0
- cmp r1, 0
- bne _080275F2
- movs r2, 0x1
-_080275F2:
- ldrh r0, [r3, 0x28]
- cmp r0, r2
- bhi _08027618
- ldr r1, _08027610 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
- ldr r1, _08027614 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802766C
- .align 2, 0
-_08027608: .4byte gBattleMons
-_0802760C: .4byte gUnknown_02024C07
-_08027610: .4byte gUnknown_02024BEC
-_08027614: .4byte gUnknown_02024D1E
-_08027618:
- ldr r4, _0802767C @ =gUnknown_02024BEC
- str r1, [r4]
- cmp r1, 0
- bne _08027624
- movs r0, 0x1
- str r0, [r4]
-_08027624:
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r3, r7, 0
- adds r3, 0x50
- adds r2, r3
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 17
- orrs r0, r1
- str r0, [r2]
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r3
- ldr r0, [r1]
- ldr r2, _08027680 @ =0xffff1fff
- ands r0, r2
- str r0, [r1]
- ldr r2, _08027684 @ =gUnknown_02024CA8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, [r4]
- movs r2, 0
- strb r1, [r0, 0xA]
- ldr r0, _08027688 @ =gUnknown_02024D1E
- strb r2, [r0, 0x5]
- ldr r2, _0802768C @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- str r0, [r2]
-_0802766C:
- ldr r1, _08027690 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802767C: .4byte gUnknown_02024BEC
-_08027680: .4byte 0xffff1fff
-_08027684: .4byte gUnknown_02024CA8
-_08027688: .4byte gUnknown_02024D1E
-_0802768C: .4byte gUnknown_02024C6C
-_08027690: .4byte gUnknown_02024C10
- thumb_func_end sub_80275D8
-
- thumb_func_start sub_8027694
-sub_8027694: @ 8027694
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r3, 0
- ldr r0, _080276D4 @ =gUnknown_081FACFE
- ldrh r1, [r0]
- ldr r4, _080276D8 @ =0x0000fffe
- adds r5, r0, 0
- cmp r1, r4
- beq _080276BC
- cmp r1, r2
- beq _080276BC
- adds r1, r5, 0
-_080276AE:
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r4
- beq _080276BC
- cmp r0, r2
- bne _080276AE
-_080276BC:
- lsls r0, r3, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r0, _080276D8 @ =0x0000fffe
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080276D4: .4byte gUnknown_081FACFE
-_080276D8: .4byte 0x0000fffe
- thumb_func_end sub_8027694
-
- thumb_func_start atk9D_copyattack
-atk9D_copyattack: @ 80276DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08027754 @ =gUnknown_02024BE8
- ldr r1, _08027758 @ =0x0000ffff
- adds r7, r1, 0
- strh r7, [r0]
- ldr r5, _0802775C @ =gUnknown_02024C34
- ldr r6, _08027760 @ =gUnknown_02024C08
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- bl sub_8027694
- lsls r0, 24
- cmp r0, 0
- bne _08027736
- ldr r3, _08027764 @ =gBattleMons
- ldr r2, _08027768 @ =gUnknown_02024C07
- ldrb r1, [r2]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- mov r12, r3
- mov r9, r2
- cmp r1, 0
- bne _08027736
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r0]
- cmp r1, 0
- beq _08027736
- cmp r1, r7
- bne _08027770
-_08027736:
- ldr r3, _0802776C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _080278A8
- .align 2, 0
-_08027754: .4byte gUnknown_02024BE8
-_08027758: .4byte 0x0000ffff
-_0802775C: .4byte gUnknown_02024C34
-_08027760: .4byte gUnknown_02024C08
-_08027764: .4byte gBattleMons
-_08027768: .4byte gUnknown_02024C07
-_0802776C: .4byte gUnknown_02024C10
-_08027770:
- movs r2, 0
- mov r3, r12
- adds r3, 0xC
- adds r0, r4, r3
- ldrh r0, [r0]
- ldr r4, _08027800 @ =gUnknown_02024C10
- mov r10, r4
- cmp r0, r1
- beq _080277AA
- mov r8, r3
- adds r7, r5, 0
- adds r5, r6, 0
- mov r4, r9
- movs r3, 0x58
-_0802778C:
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080277AA
- lsls r1, r2, 1
- ldrb r0, [r4]
- muls r0, r3
- adds r1, r0
- add r1, r8
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r7
- ldrh r1, [r1]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0802778C
-_080277AA:
- cmp r2, 0x4
- bne _0802788C
- ldr r5, _08027804 @ =gUnknown_02024BE4
- ldrb r1, [r5]
- lsls r1, 1
- mov r2, r9
- ldrb r0, [r2]
- movs r6, 0x58
- muls r0, r6
- adds r1, r0
- mov r0, r12
- adds r0, 0xC
- adds r1, r0
- ldr r2, _08027808 @ =gUnknown_02024C34
- ldr r3, _0802780C @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r4, _08027810 @ =gBattleMoves
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r4, [r0, 0x4]
- cmp r4, 0x4
- bhi _08027814
- mov r1, r9
- ldrb r0, [r1]
- muls r0, r6
- ldrb r1, [r5]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- strb r4, [r0]
- b _08027828
- .align 2, 0
-_08027800: .4byte gUnknown_02024C10
-_08027804: .4byte gUnknown_02024BE4
-_08027808: .4byte gUnknown_02024C34
-_0802780C: .4byte gUnknown_02024C08
-_08027810: .4byte gBattleMoves
-_08027814:
- mov r4, r9
- ldrb r0, [r4]
- muls r0, r6
- ldrb r1, [r5]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
-_08027828:
- ldr r1, _08027880 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08027884 @ =gUnknown_02024CA8
- mov r2, r9
- ldrb r0, [r2]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r4, [r2, 0x18]
- lsrs r3, r4, 4
- ldr r1, _08027888 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- orrs r1, r3
- lsls r1, 4
- movs r0, 0xF
- ands r0, r4
- orrs r0, r1
- strb r0, [r2, 0x18]
- mov r4, r10
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _080278A8
- .align 2, 0
-_08027880: .4byte gUnknown_030041C0
-_08027884: .4byte gUnknown_02024CA8
-_08027888: .4byte gBitTable
-_0802788C:
- mov r0, r10
- ldr r2, [r0]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- mov r2, r10
- str r1, [r2]
-_080278A8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk9D_copyattack
-
- thumb_func_start sub_80278B8
-sub_80278B8: @ 80278B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08027938 @ =gUnknown_02024BE6
- movs r6, 0xB1
- lsls r6, 1
- ldr r5, _0802793C @ =gUnknown_081FACFE
- ldr r0, _08027940 @ =gUnknown_02024C10
- mov r8, r0
-_080278CA:
- bl Random
- ldr r2, _08027944 @ =0x000001ff
- adds r1, r2, 0
- ands r0, r1
- adds r0, 0x1
- strh r0, [r7]
- cmp r0, r6
- bhi _080278CA
- movs r0, 0x3
-_080278DE:
- subs r0, 0x1
- cmp r0, 0
- bge _080278DE
- ldr r4, _08027938 @ =gUnknown_02024BE6
- ldrh r2, [r4]
- ldr r3, _08027948 @ =0x0000ffff
- subs r0, r5, 0x2
-_080278EC:
- adds r0, 0x2
- ldrh r1, [r0]
- cmp r1, r2
- beq _080278F8
- cmp r1, r3
- bne _080278EC
-_080278F8:
- ldr r0, _08027948 @ =0x0000ffff
- cmp r1, r0
- bne _080278CA
- ldr r2, _0802794C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08027950 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r3, _08027954 @ =gUnknown_081D6BBC
- ldr r2, _08027958 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- mov r1, r8
- str r0, [r1]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0802795C @ =gUnknown_02024C08
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027938: .4byte gUnknown_02024BE6
-_0802793C: .4byte gUnknown_081FACFE
-_08027940: .4byte gUnknown_02024C10
-_08027944: .4byte 0x000001ff
-_08027948: .4byte 0x0000ffff
-_0802794C: .4byte gUnknown_02024C6C
-_08027950: .4byte 0xfffffbff
-_08027954: .4byte gUnknown_081D6BBC
-_08027958: .4byte gBattleMoves
-_0802795C: .4byte gUnknown_02024C08
- thumb_func_end sub_80278B8
-
- thumb_func_start sub_8027960
-sub_8027960: @ 8027960
- ldr r3, _08027980 @ =gUnknown_02024BEC
- ldr r2, _08027984 @ =gBattleMons
- ldr r0, _08027988 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r0, [r0]
- str r0, [r3]
- ldr r1, _0802798C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08027980: .4byte gUnknown_02024BEC
-_08027984: .4byte gBattleMons
-_08027988: .4byte gUnknown_02024C07
-_0802798C: .4byte gUnknown_02024C10
- thumb_func_end sub_8027960
-
- thumb_func_start atkA0_psywavedamageeffect
-atkA0_psywavedamageeffect: @ 8027990
- push {r4,lr}
- movs r4, 0xF
-_08027994:
- bl Random
- adds r3, r4, 0
- ands r3, r0
- cmp r3, 0xA
- bgt _08027994
- lsls r0, r3, 2
- adds r0, r3
- lsls r3, r0, 1
- ldr r4, _080279D4 @ =gUnknown_02024BEC
- ldr r2, _080279D8 @ =gBattleMons
- ldr r0, _080279DC @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r0, 0x32
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- ldr r1, _080279E0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080279D4: .4byte gUnknown_02024BEC
-_080279D8: .4byte gBattleMons
-_080279DC: .4byte gUnknown_02024C07
-_080279E0: .4byte gUnknown_02024C10
- thumb_func_end atkA0_psywavedamageeffect
-
- thumb_func_start atkA1_counterdamagecalculator
-atkA1_counterdamagecalculator: @ 80279E4
- push {r4-r6,lr}
- ldr r4, _08027A54 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _08027A58 @ =gUnknown_02024D28
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r5
- ldrb r0, [r0, 0xC]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r5, 0x4
- adds r0, r1, r0
- ldr r3, [r0]
- cmp r3, 0
- beq _08027A98
- cmp r6, r2
- beq _08027A98
- ldr r6, _08027A5C @ =gBattleMons
- adds r0, r1, r5
- ldrb r0, [r0, 0xC]
- movs r4, 0x58
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027A98
- ldr r1, _08027A60 @ =gUnknown_02024BEC
- lsls r0, r3, 1
- str r0, [r1]
- ldr r1, _08027A64 @ =gUnknown_02024C80
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _08027A6C
- ldrb r1, [r1, 0x9]
- adds r0, r1, 0
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027A6C
- ldr r0, _08027A68 @ =gUnknown_02024C08
- strb r1, [r0]
- b _08027A7C
- .align 2, 0
-_08027A54: .4byte gUnknown_02024C07
-_08027A58: .4byte gUnknown_02024D28
-_08027A5C: .4byte gBattleMons
-_08027A60: .4byte gUnknown_02024BEC
-_08027A64: .4byte gUnknown_02024C80
-_08027A68: .4byte gUnknown_02024C08
-_08027A6C:
- ldr r2, _08027A88 @ =gUnknown_02024C08
- ldr r1, _08027A8C @ =gUnknown_02024D28
- ldr r0, _08027A90 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xC]
- strb r0, [r2]
-_08027A7C:
- ldr r1, _08027A94 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027AC8
- .align 2, 0
-_08027A88: .4byte gUnknown_02024C08
-_08027A8C: .4byte gUnknown_02024D28
-_08027A90: .4byte gUnknown_02024C07
-_08027A94: .4byte gUnknown_02024C10
-_08027A98:
- ldr r2, _08027AD0 @ =gUnknown_02024D68
- ldr r0, _08027AD4 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08027AD8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027AC8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08027AD0: .4byte gUnknown_02024D68
-_08027AD4: .4byte gUnknown_02024C07
-_08027AD8: .4byte gUnknown_02024C10
- thumb_func_end atkA1_counterdamagecalculator
-
- thumb_func_start atkA2_mirrorcoatdamagecalculator
-atkA2_mirrorcoatdamagecalculator: @ 8027ADC
- push {r4-r6,lr}
- ldr r4, _08027B4C @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _08027B50 @ =gUnknown_02024D28
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r5
- ldrb r0, [r0, 0xD]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r3, [r0]
- cmp r3, 0
- beq _08027B90
- cmp r6, r2
- beq _08027B90
- ldr r6, _08027B54 @ =gBattleMons
- adds r0, r1, r5
- ldrb r0, [r0, 0xD]
- movs r4, 0x58
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027B90
- ldr r1, _08027B58 @ =gUnknown_02024BEC
- lsls r0, r3, 1
- str r0, [r1]
- ldr r1, _08027B5C @ =gUnknown_02024C80
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _08027B64
- ldrb r1, [r1, 0x9]
- adds r0, r1, 0
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027B64
- ldr r0, _08027B60 @ =gUnknown_02024C08
- strb r1, [r0]
- b _08027B74
- .align 2, 0
-_08027B4C: .4byte gUnknown_02024C07
-_08027B50: .4byte gUnknown_02024D28
-_08027B54: .4byte gBattleMons
-_08027B58: .4byte gUnknown_02024BEC
-_08027B5C: .4byte gUnknown_02024C80
-_08027B60: .4byte gUnknown_02024C08
-_08027B64:
- ldr r2, _08027B80 @ =gUnknown_02024C08
- ldr r1, _08027B84 @ =gUnknown_02024D28
- ldr r0, _08027B88 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xD]
- strb r0, [r2]
-_08027B74:
- ldr r1, _08027B8C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027BC0
- .align 2, 0
-_08027B80: .4byte gUnknown_02024C08
-_08027B84: .4byte gUnknown_02024D28
-_08027B88: .4byte gUnknown_02024C07
-_08027B8C: .4byte gUnknown_02024C10
-_08027B90:
- ldr r2, _08027BC8 @ =gUnknown_02024D68
- ldr r0, _08027BCC @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08027BD0 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027BC0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08027BC8: .4byte gUnknown_02024D68
-_08027BCC: .4byte gUnknown_02024C07
-_08027BD0: .4byte gUnknown_02024C10
- thumb_func_end atkA2_mirrorcoatdamagecalculator
-
- thumb_func_start atkA3_disablelastusedattack
-atkA3_disablelastusedattack: @ 8027BD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r4, 0
- ldr r2, _08027CD4 @ =gBattleMons
- ldr r3, _08027CD8 @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r7, r2, 0
- adds r7, 0xC
- adds r0, r7
- ldr r5, _08027CDC @ =gUnknown_02024C34
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r0]
- mov r9, r2
- adds r6, r3, 0
- ldr r2, _08027CE0 @ =gUnknown_02024CA8
- mov r8, r2
- ldrh r1, [r1]
- cmp r0, r1
- beq _08027C28
- mov r12, r6
- movs r3, 0x58
-_08027C08:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08027C28
- lsls r2, r4, 1
- mov r0, r12
- ldrb r1, [r0]
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r2, r7
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08027C08
-_08027C28:
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- bne _08027CEC
- cmp r4, 0x4
- beq _08027CEC
- movs r5, 0x58
- adds r0, r1, 0
- muls r0, r5
- adds r0, r4, r0
- mov r1, r9
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08027CEC
- ldr r1, _08027CE4 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- lsls r2, r4, 1
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r2, r0
- mov r3, r9
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r2, r0
- adds r0, r3
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- muls r1, r5
- adds r2, r1
- adds r2, r3
- ldrh r1, [r2]
- strh r1, [r0, 0x4]
- bl Random
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- movs r2, 0x3
- ands r2, r0
- adds r2, 0x2
- ldrb r3, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xB]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r3, [r1, 0xB]
- lsls r2, r3, 28
- lsrs r2, 24
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xB]
- ldr r1, _08027CE8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027D06
- .align 2, 0
-_08027CD4: .4byte gBattleMons
-_08027CD8: .4byte gUnknown_02024C08
-_08027CDC: .4byte gUnknown_02024C34
-_08027CE0: .4byte gUnknown_02024CA8
-_08027CE4: .4byte gUnknown_030041C0
-_08027CE8: .4byte gUnknown_02024C10
-_08027CEC:
- ldr r3, _08027D14 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027D06:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027D14: .4byte gUnknown_02024C10
- thumb_func_end atkA3_disablelastusedattack
-
- thumb_func_start atkA4_setencore
-atkA4_setencore: @ 8027D18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r3, _08027E0C @ =gBattleMons
- ldr r4, _08027E10 @ =gUnknown_02024C08
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r6, r3, 0
- adds r6, 0xC
- adds r0, r6
- ldr r2, _08027E14 @ =gUnknown_02024C34
- lsls r1, 1
- adds r1, r2
- ldrh r0, [r0]
- mov r10, r3
- mov r8, r2
- ldr r2, _08027E18 @ =gUnknown_02024CA8
- mov r9, r2
- ldrh r1, [r1]
- cmp r0, r1
- beq _08027D72
- mov r12, r4
- adds r7, r6, 0
- mov r6, r8
- movs r3, 0x58
-_08027D52:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _08027D72
- lsls r2, r5, 1
- mov r0, r12
- ldrb r1, [r0]
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r2, r7
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08027D52
-_08027D72:
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r2, [r0]
- cmp r2, 0xA5
- beq _08027D86
- cmp r2, 0xE3
- beq _08027D86
- cmp r2, 0x77
- bne _08027D88
-_08027D86:
- movs r5, 0x4
-_08027D88:
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r2, r9
- adds r3, r0, r2
- ldrh r0, [r3, 0x6]
- cmp r0, 0
- bne _08027E20
- cmp r5, 0x4
- beq _08027E20
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r5, r2
- mov r1, r10
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08027E20
- lsls r0, r5, 1
- adds r0, r2
- subs r1, 0x18
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- strb r5, [r0, 0xC]
- bl Random
- ldrb r2, [r4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r9
- movs r2, 0x3
- ands r2, r0
- adds r2, 0x3
- ldrb r3, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xE]
- ldrb r0, [r4]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r3, [r1, 0xE]
- lsls r2, r3, 28
- lsrs r2, 24
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xE]
- ldr r1, _08027E1C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027E3A
- .align 2, 0
-_08027E0C: .4byte gBattleMons
-_08027E10: .4byte gUnknown_02024C08
-_08027E14: .4byte gUnknown_02024C34
-_08027E18: .4byte gUnknown_02024CA8
-_08027E1C: .4byte gUnknown_02024C10
-_08027E20:
- ldr r3, _08027E48 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027E3A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027E48: .4byte gUnknown_02024C10
- thumb_func_end atkA4_setencore
-
- thumb_func_start sub_8027E4C
-sub_8027E4C: @ 8027E4C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _08027EEC @ =gBattleMons
- ldr r0, _08027EF0 @ =gUnknown_02024C08
- mov r8, r0
- ldrb r0, [r0]
- movs r6, 0x58
- adds r2, r0, 0
- muls r2, r6
- adds r0, r7, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _08027F18
- ldr r1, _08027EF4 @ =gUnknown_02024C07
- mov r12, r1
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r7
- ldrh r4, [r0, 0x28]
- adds r0, r2, r7
- ldrh r2, [r0, 0x28]
- adds r4, r2
- asrs r4, 1
- ldr r5, _08027EF8 @ =gUnknown_02024BEC
- mov r9, r5
- subs r2, r4
- str r2, [r5]
- ldr r3, _08027EFC @ =0x02000000
- ldr r1, _08027F00 @ =0x00016014
- adds r0, r3, r1
- strb r2, [r0]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- asrs r0, 8
- ldr r5, _08027F04 @ =0x00016015
- adds r1, r3, r5
- strb r0, [r1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r2
- asrs r0, 16
- adds r5, 0x1
- adds r1, r3, r5
- strb r0, [r1]
- lsrs r2, 24
- ldr r0, _08027F08 @ =0x00016017
- adds r3, r0
- strb r2, [r3]
- mov r1, r12
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x28]
- subs r0, r4
- mov r5, r9
- str r0, [r5]
- ldr r2, _08027F0C @ =gUnknown_02024D68
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, _08027F10 @ =0x0000ffff
- str r1, [r0]
- ldr r1, _08027F14 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027F32
- .align 2, 0
-_08027EEC: .4byte gBattleMons
-_08027EF0: .4byte gUnknown_02024C08
-_08027EF4: .4byte gUnknown_02024C07
-_08027EF8: .4byte gUnknown_02024BEC
-_08027EFC: .4byte 0x02000000
-_08027F00: .4byte 0x00016014
-_08027F04: .4byte 0x00016015
-_08027F08: .4byte 0x00016017
-_08027F0C: .4byte gUnknown_02024D68
-_08027F10: .4byte 0x0000ffff
-_08027F14: .4byte gUnknown_02024C10
-_08027F18:
- ldr r3, _08027F40 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027F32:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027F40: .4byte gUnknown_02024C10
- thumb_func_end sub_8027E4C
-
- thumb_func_start sub_8027F44
-sub_8027F44: @ 8027F44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _08027FA8 @ =gUnknown_02024C3C
- ldr r4, _08027FAC @ =gUnknown_02024C07
- ldrb r0, [r4]
- lsls r0, 1
- adds r2, r0, r1
- ldrh r1, [r2]
- cmp r1, 0
- beq _08027F8C
- ldr r0, _08027FB0 @ =0x0000ffff
- cmp r1, r0
- beq _08027F8C
- ldrh r0, [r2]
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _08028024
- ldr r2, _08027FB4 @ =gUnknown_02024D28
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08028024
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08028024
-_08027F8C:
- ldr r3, _08027FB8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028110
- .align 2, 0
-_08027FA8: .4byte gUnknown_02024C3C
-_08027FAC: .4byte gUnknown_02024C07
-_08027FB0: .4byte 0x0000ffff
-_08027FB4: .4byte gUnknown_02024D28
-_08027FB8: .4byte gUnknown_02024C10
-_08027FBC:
- mov r0, r12
- strb r5, [r0]
- mov r1, r10
- ldrb r0, [r1]
- muls r0, r2
- adds r0, r7
- adds r0, 0x22
- strb r5, [r0]
- ldr r1, _08027FE0 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _08027FE4 @ =gUnknown_02024C10
- b _08028012
- .align 2, 0
-_08027FE0: .4byte gUnknown_030041C0
-_08027FE4: .4byte gUnknown_02024C10
-_08027FE8:
- mov r0, r8
- adds r0, 0x1
- adds r0, r3
- ldrb r2, [r0]
- strb r2, [r4]
- mov r4, r10
- ldrb r0, [r4]
- muls r0, r6
- ldr r7, _0802801C @ =gBattleMons
- adds r0, r7
- adds r0, 0x22
- strb r2, [r0]
- ldr r1, _08028020 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- mov r1, r12
-_08028012:
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08028110
- .align 2, 0
-_0802801C: .4byte gBattleMons
-_08028020: .4byte gUnknown_030041C0
-_08028024:
- movs r4, 0
- mov r8, r4
- movs r7, 0x7F
- mov r9, r7
-_0802802C:
- bl Random
- mov r4, r9
- ands r4, r0
- cmp r4, 0x70
- bhi _0802802C
- lsls r0, r4, 1
- adds r4, r0, r4
- ldr r6, _08028120 @ =gTypeEffectiveness
- adds r3, r4, r6
- ldr r1, _08028124 @ =gUnknown_02024C44
- ldr r2, _08028128 @ =gUnknown_02024C07
- ldrb r5, [r2]
- lsls r0, r5, 1
- adds r0, r1
- ldrb r1, [r3]
- mov r10, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _08028088
- adds r0, r4, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08028088
- ldr r7, _0802812C @ =gBattleMons
- movs r2, 0x58
- adds r0, r5, 0
- muls r0, r2
- adds r3, r0, r7
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- adds r0, r4, 0x1
- adds r0, r6
- ldrb r5, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r5, 0
- cmp r0, r1
- beq _08028088
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- bne _08027FBC
-_08028088:
- movs r7, 0x1
- add r8, r7
- ldr r0, _08028130 @ =0x000003e7
- cmp r8, r0
- ble _0802802C
- movs r0, 0
- mov r8, r0
- ldr r1, _08028134 @ =gUnknown_02024C10
- mov r12, r1
- ldr r3, _08028120 @ =gTypeEffectiveness
- adds r0, r4, 0x1
- adds r0, r3
- mov r9, r0
- adds r5, r3, 0
-_080280A4:
- ldrb r1, [r5]
- cmp r1, 0xFF
- bgt _080280AE
- cmp r1, 0xFE
- bge _080280E8
-_080280AE:
- mov r4, r10
- ldrb r2, [r4]
- lsls r0, r2, 1
- ldr r7, _08028124 @ =gUnknown_02024C44
- adds r0, r7
- ldrh r0, [r0]
- cmp r1, r0
- bne _080280E8
- ldrb r0, [r5, 0x2]
- cmp r0, 0x5
- bhi _080280E8
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- ldr r1, _0802812C @ =gBattleMons
- adds r2, r0, r1
- adds r4, r2, 0
- adds r4, 0x21
- ldrb r0, [r4]
- mov r7, r9
- ldrb r1, [r7]
- cmp r0, r1
- beq _080280E8
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _080280E8
- b _08027FE8
-_080280E8:
- adds r5, 0x3
- movs r0, 0x3
- add r8, r0
- ldr r0, _08028138 @ =0x0000014f
- cmp r8, r0
- bls _080280A4
- mov r1, r12
- ldr r2, [r1]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- mov r4, r12
- str r1, [r4]
-_08028110:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028120: .4byte gTypeEffectiveness
-_08028124: .4byte gUnknown_02024C44
-_08028128: .4byte gUnknown_02024C07
-_0802812C: .4byte gBattleMons
-_08028130: .4byte 0x000003e7
-_08028134: .4byte gUnknown_02024C10
-_08028138: .4byte 0x0000014f
- thumb_func_end sub_8027F44
-
- thumb_func_start atkA7_setalwayshitflag
-atkA7_setalwayshitflag: @ 802813C
- push {r4,lr}
- ldr r4, _08028180 @ =gUnknown_02024C98
- ldr r3, _08028184 @ =gUnknown_02024C08
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x19
- negs r2, r2
- ands r0, r2
- str r0, [r1]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- str r0, [r1]
- ldr r2, _08028188 @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0802818C @ =gUnknown_02024C07
- ldrb r1, [r1]
- strb r1, [r0, 0x15]
- ldr r1, _08028190 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028180: .4byte gUnknown_02024C98
-_08028184: .4byte gUnknown_02024C08
-_08028188: .4byte gUnknown_02024CA8
-_0802818C: .4byte gUnknown_02024C07
-_08028190: .4byte gUnknown_02024C10
- thumb_func_end atkA7_setalwayshitflag
-
- thumb_func_start atkA8_copymovepermanently
-atkA8_copymovepermanently: @ 8028194
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r0, _080282F4 @ =gUnknown_02024BE8
- ldr r1, _080282F8 @ =0x0000ffff
- adds r5, r1, 0
- strh r5, [r0]
- ldr r3, _080282FC @ =gBattleMons
- ldr r2, _08028300 @ =gUnknown_02024C07
- ldrb r1, [r2]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- mov r12, r3
- mov r10, r2
- cmp r1, 0
- beq _080281CC
- b _08028320
-_080281CC:
- ldr r0, _08028304 @ =gUnknown_02024C2C
- ldr r2, _08028308 @ =gUnknown_02024C08
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- mov r9, r0
- mov r8, r2
- cmp r1, 0xA5
- bne _080281E2
- b _08028320
-_080281E2:
- cmp r1, 0
- bne _080281E8
- b _08028320
-_080281E8:
- cmp r1, r5
- bne _080281EE
- b _08028320
-_080281EE:
- cmp r1, 0xA6
- bne _080281F4
- b _08028320
-_080281F4:
- movs r7, 0
- mov r5, r9
- mov r0, r12
- adds r0, 0xC
- adds r1, r4, r0
- mov r3, r8
-_08028200:
- ldrh r2, [r1]
- cmp r2, 0xA6
- beq _08028212
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802821A
-_08028212:
- adds r1, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _08028200
-_0802821A:
- cmp r7, 0x4
- beq _08028220
- b _08028320
-_08028220:
- ldr r4, _0802830C @ =gUnknown_02024BE4
- ldrb r1, [r4]
- lsls r1, 1
- mov r2, r10
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r1, r0
- mov r6, r12
- adds r6, 0xC
- adds r1, r6
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- mov r1, r10
- ldrb r0, [r1]
- adds r2, r0, 0
- muls r2, r3
- ldrb r4, [r4]
- adds r2, r4
- mov r5, r12
- adds r5, 0x24
- adds r2, r5
- ldr r4, _08028310 @ =gBattleMoves
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x4]
- strb r0, [r2]
- ldr r1, _08028314 @ =gUnknown_02024A60
- mov r2, r10
- ldrb r0, [r2]
- strb r0, [r1]
- movs r7, 0
- ldrb r0, [r2]
- muls r0, r3
- adds r4, r0, r5
- adds r3, r0, 0
- add r2, sp, 0x4
- add r5, sp, 0xC
-_08028282:
- adds r0, r3, r6
- ldrh r0, [r0]
- strh r0, [r2]
- adds r1, r5, r7
- ldrb r0, [r4]
- strb r0, [r1]
- adds r4, 0x1
- adds r3, 0x2
- adds r2, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _08028282
- add r2, sp, 0x4
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x3B
- ldrb r0, [r0]
- strb r0, [r2, 0xC]
- str r2, [sp]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- movs r3, 0x10
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldr r0, _08028314 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08028318 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r3, _08028304 @ =gUnknown_02024C2C
- ldr r2, _08028308 @ =gUnknown_02024C08
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802831C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802833A
- .align 2, 0
-_080282F4: .4byte gUnknown_02024BE8
-_080282F8: .4byte 0x0000ffff
-_080282FC: .4byte gBattleMons
-_08028300: .4byte gUnknown_02024C07
-_08028304: .4byte gUnknown_02024C2C
-_08028308: .4byte gUnknown_02024C08
-_0802830C: .4byte gUnknown_02024BE4
-_08028310: .4byte gBattleMoves
-_08028314: .4byte gUnknown_02024A60
-_08028318: .4byte gUnknown_030041C0
-_0802831C: .4byte gUnknown_02024C10
-_08028320:
- ldr r3, _0802834C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802833A:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802834C: .4byte gUnknown_02024C10
- thumb_func_end atkA8_copymovepermanently
-
- thumb_func_start sub_8028350
-sub_8028350: @ 8028350
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08028380 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x91
- beq _0802837A
- cmp r0, 0x27
- beq _0802837A
- cmp r0, 0x4B
- beq _0802837A
- cmp r0, 0x97
- beq _0802837A
- cmp r0, 0x9B
- beq _0802837A
- cmp r0, 0x1A
- bne _08028384
-_0802837A:
- movs r0, 0x1
- b _08028386
- .align 2, 0
-_08028380: .4byte gBattleMoves
-_08028384:
- movs r0, 0
-_08028386:
- pop {r1}
- bx r1
- thumb_func_end sub_8028350
-
- thumb_func_start sub_802838C
-sub_802838C: @ 802838C
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080283AA
- cmp r1, 0xD6
- beq _080283AA
- movs r0, 0x89
- lsls r0, 1
- cmp r1, r0
- beq _080283AA
- cmp r1, 0x77
- beq _080283AA
- cmp r1, 0x76
- bne _080283AE
-_080283AA:
- movs r0, 0x1
- b _080283B0
-_080283AE:
- movs r0, 0
-_080283B0:
- pop {r1}
- bx r1
- thumb_func_end sub_802838C
-
- thumb_func_start move_weather_interaction
-move_weather_interaction: @ 80283B4
- push {lr}
- lsls r1, 16
- lsrs r2, r1, 16
- ldr r1, _0802840C @ =gBattleMoves
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x97
- bne _080283D8
- ldr r0, _08028410 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _08028418
-_080283D8:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x91
- beq _080283FA
- cmp r0, 0x27
- beq _080283FA
- cmp r0, 0x4B
- beq _080283FA
- cmp r0, 0x97
- beq _080283FA
- cmp r0, 0x9B
- beq _080283FA
- cmp r0, 0x1A
- bne _08028418
-_080283FA:
- ldr r0, _08028414 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 20
- ands r0, r1
- cmp r0, 0
- beq _08028418
- movs r0, 0x1
- b _0802841A
- .align 2, 0
-_0802840C: .4byte gBattleMoves
-_08028410: .4byte word_2024DB8
-_08028414: .4byte gUnknown_02024C6C
-_08028418:
- movs r0, 0x2
-_0802841A:
- pop {r1}
- bx r1
- thumb_func_end move_weather_interaction
-
- thumb_func_start sub_8028420
-sub_8028420: @ 8028420
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _080284B0 @ =gUnknown_02024C07
- mov r9, r0
- movs r1, 0x58
- mov r8, r1
- ldr r7, _080284B4 @ =gUnknown_02024A8C
- movs r0, 0x84
- lsls r0, 1
- mov r10, r0
-_0802843E:
- lsls r4, r5, 1
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4, r0
- adds r0, r7
- ldrh r0, [r0]
- bl sub_802838C
- lsls r0, 24
- cmp r0, 0
- bne _0802847E
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4, r0
- adds r0, r7
- ldrh r1, [r0]
- cmp r1, r10
- beq _0802847E
- cmp r1, 0xFD
- beq _0802847E
- adds r0, r1, 0
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _0802848C
-_0802847E:
- ldr r1, _080284B8 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0802848C:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0802843E
- ldr r0, _080284B0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- adds r1, r6, 0
- movs r2, 0xFD
- bl sub_8015A98
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xF
- bne _080284C0
- ldr r1, _080284BC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08028524
- .align 2, 0
-_080284B0: .4byte gUnknown_02024C07
-_080284B4: .4byte gUnknown_02024A8C
-_080284B8: .4byte gBitTable
-_080284BC: .4byte gUnknown_02024C10
-_080284C0:
- movs r7, 0x3
- ldr r4, _08028534 @ =gBitTable
-_080284C4:
- bl Random
- adds r5, r7, 0
- ands r5, r0
- lsls r0, r5, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r6
- cmp r0, 0
- bne _080284C4
- ldr r4, _08028538 @ =gUnknown_02024BEA
- ldr r2, _0802853C @ =gBattleMons
- lsls r1, r5, 1
- ldr r0, _08028540 @ =gUnknown_02024C07
- ldrb r3, [r0]
- movs r0, 0x58
- muls r0, r3
- adds r1, r0
- adds r2, 0xC
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r4]
- ldr r0, _08028544 @ =gUnknown_02024BE4
- strb r5, [r0]
- ldr r2, _08028548 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802854C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08028550 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r3, _08028554 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08028524:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028534: .4byte gBitTable
-_08028538: .4byte gUnknown_02024BEA
-_0802853C: .4byte gBattleMons
-_08028540: .4byte gUnknown_02024C07
-_08028544: .4byte gUnknown_02024BE4
-_08028548: .4byte gUnknown_02024C6C
-_0802854C: .4byte 0xfffffbff
-_08028550: .4byte gUnknown_02024C08
-_08028554: .4byte gUnknown_02024C10
- thumb_func_end sub_8028420
-
- thumb_func_start sub_8028558
-sub_8028558: @ 8028558
- ldr r1, _0802857C @ =gBattleMons
- ldr r0, _08028580 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 18
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08028584 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802857C: .4byte gBattleMons
-_08028580: .4byte gUnknown_02024C07
-_08028584: .4byte gUnknown_02024C10
- thumb_func_end sub_8028558
-
- thumb_func_start b_feature_update_destiny_bond
-b_feature_update_destiny_bond: @ 8028588
- push {r4,r5,lr}
- ldr r0, _080285D8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080285DC @ =gUnknown_02024C08
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _080285E0 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _080285D2
- cmp r5, r3
- beq _080285D2
- ldr r2, _080285E4 @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 17
- ands r0, r1
- cmp r0, 0
- bne _080285D2
- movs r0, 0x40
- orrs r1, r0
- str r1, [r2]
-_080285D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080285D8: .4byte gUnknown_02024C07
-_080285DC: .4byte gUnknown_02024C08
-_080285E0: .4byte gBattleMons
-_080285E4: .4byte gUnknown_02024C6C
- thumb_func_end b_feature_update_destiny_bond
-
- thumb_func_start atkAB_802A458
-atkAB_802A458: @ 80285E8
- push {lr}
- bl b_feature_update_destiny_bond
- ldr r1, _080285FC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080285FC: .4byte gUnknown_02024C10
- thumb_func_end atkAB_802A458
-
- thumb_func_start atkAC_remaininghptopower
-atkAC_remaininghptopower: @ 8028600
- push {lr}
- ldr r2, _08028654 @ =gBattleMons
- ldr r0, _08028658 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- movs r2, 0x28
- ldrsh r0, [r1, r2]
- movs r2, 0x2C
- ldrsh r1, [r1, r2]
- movs r2, 0x30
- bl sub_80461D4
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0
- ldr r0, _0802865C @ =gUnknown_081FAD26
- ldrb r2, [r0]
- cmp r1, r2
- ble _0802863A
- adds r2, r0, 0
-_0802862C:
- adds r3, 0x2
- cmp r3, 0xB
- bgt _0802863A
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r1, r0
- bgt _0802862C
-_0802863A:
- ldr r2, _08028660 @ =gUnknown_02024DEC
- ldr r1, _0802865C @ =gUnknown_081FAD26
- adds r0, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldr r1, _08028664 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08028654: .4byte gBattleMons
-_08028658: .4byte gUnknown_02024C07
-_0802865C: .4byte gUnknown_081FAD26
-_08028660: .4byte gUnknown_02024DEC
-_08028664: .4byte gUnknown_02024C10
- thumb_func_end atkAC_remaininghptopower
-
- thumb_func_start sub_8028668
-sub_8028668: @ 8028668
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, _080287F8 @ =gUnknown_02024C34
- ldr r1, _080287FC @ =gUnknown_02024C08
- ldrb r2, [r1]
- lsls r0, r2, 1
- adds r0, r4
- ldrh r3, [r0]
- mov r8, r1
- cmp r3, 0
- bne _08028688
- b _08028828
-_08028688:
- ldr r0, _08028800 @ =0x0000ffff
- cmp r3, r0
- bne _08028690
- b _08028828
-_08028690:
- ldr r1, _08028804 @ =gUnknown_02024C98
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08028808 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _080286A2
- b _08028828
-_080286A2:
- movs r7, 0
- ldr r0, _0802880C @ =gBattleMons
- movs r1, 0x58
- muls r1, r2
- adds r2, r0, 0
- adds r2, 0xC
- adds r1, r2
- ldrh r1, [r1]
- cmp r3, r1
- beq _080286DA
- adds r6, r4, 0
- mov r5, r8
- adds r4, r2, 0
- movs r3, 0x58
-_080286BE:
- adds r7, 0x1
- cmp r7, 0x3
- bgt _080286DA
- ldrb r0, [r5]
- lsls r2, r0, 1
- adds r2, r6
- lsls r1, r7, 1
- muls r0, r3
- adds r1, r0
- adds r1, r4
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _080286BE
-_080286DA:
- cmp r7, 0x4
- bne _080286E0
- b _08028828
-_080286E0:
- mov r4, r8
- ldrb r0, [r4]
- movs r1, 0x58
- mov r9, r1
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7, r0
- ldr r1, _0802880C @ =gBattleMons
- adds r1, 0x24
- mov r10, r1
- add r0, r10
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _08028700
- b _08028828
-_08028700:
- bl Random
- movs r1, 0x3
- ands r1, r0
- adds r6, r1, 0x2
- ldrb r0, [r4]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7, r0
- add r0, r10
- ldrb r0, [r0]
- cmp r0, r6
- bge _0802871E
- adds r6, r0, 0
-_0802871E:
- ldr r1, _08028810 @ =gUnknown_030041C0
- movs r5, 0xFD
- strb r5, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r2, _080287F8 @ =gUnknown_02024C34
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r4, _08028814 @ =gUnknown_03004290
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- strb r5, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- strb r6, [r4, 0x4]
- subs r0, 0x2
- strb r0, [r4, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- mov r1, r9
- muls r1, r0
- adds r1, r7, r1
- add r1, r10
- ldrb r0, [r1]
- subs r0, r6
- strb r0, [r1]
- ldr r4, _08028818 @ =gUnknown_02024A60
- mov r3, r8
- ldrb r0, [r3]
- strb r0, [r4]
- ldr r1, _0802881C @ =gUnknown_02024CA8
- ldrb r3, [r4]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08028820 @ =gBitTable
- lsls r0, r7, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080287D2
- mov r2, r9
- muls r2, r3
- ldr r0, _0802880C @ =gBattleMons
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080287D2
- adds r1, r7, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- mov r3, r10
- adds r0, r2, r3
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080287D2:
- ldr r1, _08028824 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802880C @ =gBattleMons
- ldr r0, _080287FC @ =gUnknown_02024C08
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08028842
- adds r0, r2, 0
- bl b_cancel_multi_turn_move_maybe
- b _08028842
- .align 2, 0
-_080287F8: .4byte gUnknown_02024C34
-_080287FC: .4byte gUnknown_02024C08
-_08028800: .4byte 0x0000ffff
-_08028804: .4byte gUnknown_02024C98
-_08028808: .4byte 0x000400c0
-_0802880C: .4byte gBattleMons
-_08028810: .4byte gUnknown_030041C0
-_08028814: .4byte gUnknown_03004290
-_08028818: .4byte gUnknown_02024A60
-_0802881C: .4byte gUnknown_02024CA8
-_08028820: .4byte gBitTable
-_08028824: .4byte gUnknown_02024C10
-_08028828:
- ldr r3, _08028854 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08028842:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028854: .4byte gUnknown_02024C10
- thumb_func_end sub_8028668
-
- thumb_func_start sub_8028858
-sub_8028858: @ 8028858
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r4, 0
- str r4, [sp, 0x4]
- movs r7, 0
- ldr r0, _080288AC @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xD7
- beq _08028872
- b _08028A26
-_08028872:
- ldr r5, _080288B0 @ =gUnknown_02024D1E
- strb r7, [r5, 0x5]
- ldr r6, _080288B4 @ =gUnknown_02024C07
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _080288B8 @ =gEnemyParty
- mov r9, r1
- cmp r0, 0
- bne _0802888C
- ldr r2, _080288BC @ =gPlayerParty
- mov r9, r2
-_0802888C:
- ldr r4, _080288C0 @ =gBattleMons
- ldrb r3, [r6]
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r0, r2, r4
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _080288C4
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r2, r0
- str r7, [r0]
- b _080288D4
- .align 2, 0
-_080288AC: .4byte gUnknown_02024BE6
-_080288B0: .4byte gUnknown_02024D1E
-_080288B4: .4byte gUnknown_02024C07
-_080288B8: .4byte gEnemyParty
-_080288BC: .4byte gPlayerParty
-_080288C0: .4byte gBattleMons
-_080288C4:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl sub_81074C4
- ldrb r0, [r5, 0x5]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5, 0x5]
-_080288D4:
- ldr r4, _08028934 @ =gUnknown_02024A60
- ldr r0, _08028938 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r6, 0x2
- eors r0, r6
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _0802893C @ =0x02000000
- ldr r2, _08028940 @ =0x00016003
- adds r1, r2
- strb r0, [r1]
- strb r0, [r4]
- ldr r0, _08028944 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028964
- ldr r0, _08028948 @ =gUnknown_02024C0C
- ldrb r2, [r0]
- ldr r1, _0802894C @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _08028964
- ldr r5, _08028950 @ =gBattleMons
- movs r0, 0x58
- adds r4, r3, 0
- muls r4, r0
- adds r0, r4, r5
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _08028954
- adds r0, r5, 0
- adds r0, 0x4C
- adds r0, r4, r0
- str r2, [r0]
- b _08028964
- .align 2, 0
-_08028934: .4byte gUnknown_02024A60
-_08028938: .4byte gUnknown_02024C07
-_0802893C: .4byte 0x02000000
-_08028940: .4byte 0x00016003
-_08028944: .4byte gUnknown_020239F8
-_08028948: .4byte gUnknown_02024C0C
-_0802894C: .4byte gBitTable
-_08028950: .4byte gBattleMons
-_08028954:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl sub_81074C4
- ldr r1, _080289AC @ =gUnknown_02024D1E
- ldrb r0, [r1, 0x5]
- orrs r0, r6
- strb r0, [r1, 0x5]
-_08028964:
- movs r6, 0
- ldr r0, _080289B0 @ =gBattleMons
- mov r8, r0
-_0802896A:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- add r4, r9
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r5, 0
- beq _08028A1E
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _08028A1E
- ldr r2, _080289B4 @ =gUnknown_02024A6A
- ldr r0, _080289B8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r6
- bne _080289BC
- movs r0, 0x58
- muls r0, r1
- b _080289EC
- .align 2, 0
-_080289AC: .4byte gUnknown_02024D1E
-_080289B0: .4byte gBattleMons
-_080289B4: .4byte gUnknown_02024A6A
-_080289B8: .4byte gUnknown_02024C07
-_080289BC:
- ldr r0, _080289F4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028A04
- ldr r0, _080289F8 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r6
- bne _08028A04
- ldr r0, _080289FC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08028A00 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08028A04
- movs r0, 0x58
- muls r0, r3
-_080289EC:
- add r0, r8
- adds r0, 0x20
- ldrb r0, [r0]
- b _08028A10
- .align 2, 0
-_080289F4: .4byte gUnknown_020239F8
-_080289F8: .4byte gUnknown_02024A60
-_080289FC: .4byte gUnknown_02024C0C
-_08028A00: .4byte gBitTable
-_08028A04:
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetAbilityBySpecies
- lsls r0, 24
- lsrs r0, 24
-_08028A10:
- cmp r0, 0x2B
- beq _08028A1E
- movs r0, 0x1
- lsls r0, r6
- orrs r7, r0
- lsls r0, r7, 24
- lsrs r7, r0, 24
-_08028A1E:
- adds r6, 0x1
- cmp r6, 0x5
- ble _0802896A
- b _08028A7E
-_08028A26:
- ldr r1, _08028AB4 @ =gUnknown_02024D1E
- movs r0, 0x4
- strb r0, [r1, 0x5]
- movs r7, 0x3F
- ldr r2, _08028AB8 @ =gBattleMons
- ldr r1, _08028ABC @ =gUnknown_02024C07
- ldrb r0, [r1]
- movs r6, 0x58
- muls r0, r6
- adds r5, r2, 0
- adds r5, 0x4C
- adds r0, r5
- str r4, [r0]
- ldrb r0, [r1]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r3, _08028AC0 @ =gUnknown_02024A60
- strb r0, [r3]
- ldr r0, _08028AC4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028A7E
- ldr r0, _08028AC8 @ =gUnknown_02024C0C
- ldrb r2, [r0]
- ldr r1, _08028ACC @ =gBitTable
- ldrb r3, [r3]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _08028A7E
- adds r0, r3, 0
- muls r0, r6
- adds r0, r5
- str r2, [r0]
-_08028A7E:
- ldr r4, _08028AC0 @ =gUnknown_02024A60
- ldr r0, _08028ABC @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- add r1, sp, 0x4
- str r1, [sp]
- movs r0, 0
- movs r1, 0x28
- adds r2, r7, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08028AD0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028AB4: .4byte gUnknown_02024D1E
-_08028AB8: .4byte gBattleMons
-_08028ABC: .4byte gUnknown_02024C07
-_08028AC0: .4byte gUnknown_02024A60
-_08028AC4: .4byte gUnknown_020239F8
-_08028AC8: .4byte gUnknown_02024C0C
-_08028ACC: .4byte gBitTable
-_08028AD0: .4byte gUnknown_02024C10
- thumb_func_end sub_8028858
-
- thumb_func_start sub_8028AD4
-sub_8028AD4: @ 8028AD4
- push {r4-r7,lr}
- ldr r7, _08028B24 @ =gBattleMons
- ldr r0, _08028B28 @ =gUnknown_02024C08
- ldrb r3, [r0]
- movs r6, 0x58
- adds r1, r3, 0
- muls r1, r6
- adds r0, r7, 0
- adds r0, 0x50
- adds r4, r1, r0
- ldr r2, [r4]
- movs r5, 0x80
- lsls r5, 21
- adds r0, r2, 0
- ands r0, r5
- cmp r0, 0
- bne _08028B06
- ldr r1, _08028B2C @ =gUnknown_02024C98
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08028B30 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08028B38
-_08028B06:
- ldr r3, _08028B34 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028B5C
- .align 2, 0
-_08028B24: .4byte gBattleMons
-_08028B28: .4byte gUnknown_02024C08
-_08028B2C: .4byte gUnknown_02024C98
-_08028B30: .4byte 0x000400c0
-_08028B34: .4byte gUnknown_02024C10
-_08028B38:
- orrs r2, r5
- str r2, [r4]
- ldr r1, _08028B64 @ =gUnknown_02024BEC
- ldr r0, _08028B68 @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _08028B54
- movs r0, 0x1
- str r0, [r1]
-_08028B54:
- ldr r1, _08028B6C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028B5C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028B64: .4byte gUnknown_02024BEC
-_08028B68: .4byte gUnknown_02024C07
-_08028B6C: .4byte gUnknown_02024C10
- thumb_func_end sub_8028AD4
-
- thumb_func_start sub_8028B70
-sub_8028B70: @ 8028B70
- push {r4,lr}
- ldr r4, _08028BC4 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08028BC8 @ =gUnknown_02024C80
- lsls r2, r0, 1
- adds r0, r2, r0
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3, 0x6]
- cmp r0, 0x3
- bne _08028BD4
- ldr r2, _08028BCC @ =gUnknown_02024D68
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08028BD0 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028BEE
- .align 2, 0
-_08028BC4: .4byte gUnknown_02024C07
-_08028BC8: .4byte gUnknown_02024C80
-_08028BCC: .4byte gUnknown_02024D68
-_08028BD0: .4byte gUnknown_02024C10
-_08028BD4:
- ldr r1, _08028BF4 @ =gUnknown_02024C7A
- adds r1, r2, r1
- ldrh r2, [r1]
- movs r0, 0x10
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r3, 0x6]
- adds r0, 0x1
- strb r0, [r3, 0x6]
- ldr r1, _08028BF8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028BEE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028BF4: .4byte gUnknown_02024C7A
-_08028BF8: .4byte gUnknown_02024C10
- thumb_func_end sub_8028B70
-
- thumb_func_start sub_8028BFC
-sub_8028BFC: @ 8028BFC
- ldr r1, _08028C20 @ =gBattleMons
- ldr r0, _08028C24 @ =gUnknown_02024C08
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 22
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08028C28 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08028C20: .4byte gBattleMons
-_08028C24: .4byte gUnknown_02024C08
-_08028C28: .4byte gUnknown_02024C10
- thumb_func_end sub_8028BFC
-
- thumb_func_start atkB2_setperishsong
-atkB2_setperishsong: @ 8028C2C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r3, 0
- ldr r0, _08028C70 @ =gUnknown_02024A68
- adds r7, r0, 0
- ldr r0, _08028C74 @ =gUnknown_02024C07
- mov r8, r0
- ldrb r1, [r7]
- cmp r6, r1
- bge _08028C98
- movs r5, 0x20
- ldr r0, _08028C78 @ =gBattleMons
- mov r12, r0
- ldr r0, _08028C7C @ =gUnknown_02024CA8
- adds r4, r0, 0
- adds r4, 0xF
- ldr r2, _08028C80 @ =gUnknown_02024C98
-_08028C54:
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r5
- cmp r0, 0
- bne _08028C6C
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- bne _08028C84
-_08028C6C:
- adds r6, 0x1
- b _08028C8C
- .align 2, 0
-_08028C70: .4byte gUnknown_02024A68
-_08028C74: .4byte gUnknown_02024C07
-_08028C78: .4byte gBattleMons
-_08028C7C: .4byte gUnknown_02024CA8
-_08028C80: .4byte gUnknown_02024C98
-_08028C84:
- orrs r1, r5
- str r1, [r2]
- movs r0, 0x33
- strb r0, [r4]
-_08028C8C:
- adds r4, 0x1C
- adds r2, 0x4
- adds r3, 0x1
- ldrb r0, [r7]
- cmp r3, r0
- blt _08028C54
-_08028C98:
- mov r1, r8
- ldrb r0, [r1]
- bl sub_80153D0
- ldr r0, _08028CC4 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bne _08028CCC
- ldr r3, _08028CC8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028CD4
- .align 2, 0
-_08028CC4: .4byte gUnknown_02024A68
-_08028CC8: .4byte gUnknown_02024C10
-_08028CCC:
- ldr r1, _08028CE0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028CD4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028CE0: .4byte gUnknown_02024C10
- thumb_func_end atkB2_setperishsong
-
- thumb_func_start atkB3_rolloutdamagecalculation
-atkB3_rolloutdamagecalculation: @ 8028CE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08028D08 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08028D18
- ldr r0, _08028D0C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08028D10 @ =gUnknown_02024C10
- ldr r0, _08028D14 @ =BattleScript_1D6F74
- str r0, [r1]
- b _08028E30
- .align 2, 0
-_08028D08: .4byte gUnknown_02024C68
-_08028D0C: .4byte gUnknown_02024C07
-_08028D10: .4byte gUnknown_02024C10
-_08028D14: .4byte BattleScript_1D6F74
-_08028D18:
- ldr r2, _08028E3C @ =gBattleMons
- ldr r1, _08028E40 @ =gUnknown_02024C07
- ldrb r3, [r1]
- movs r5, 0x58
- adds r0, r3, 0
- muls r0, r5
- adds r4, r2, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r7, 0x80
- lsls r7, 5
- ands r0, r7
- adds r6, r1, 0
- mov r9, r2
- ldr r1, _08028E44 @ =gUnknown_02024CA8
- mov r12, r1
- ldr r2, _08028E48 @ =gUnknown_02024BE6
- mov r8, r2
- cmp r0, 0
- bne _08028D8A
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x11]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x5
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x11]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x50
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- orrs r0, r7
- str r0, [r1]
- ldr r1, _08028E4C @ =gUnknown_02024C54
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r1
- mov r2, r8
- ldrh r1, [r2]
- strh r1, [r0]
-_08028D8A:
- ldrb r0, [r6]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- add r2, r12
- ldrb r3, [r2, 0x11]
- lsls r1, r3, 28
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x11]
- cmp r1, 0
- bne _08028DBE
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- ldr r2, _08028E50 @ =0xffffefff
- ands r0, r2
- str r0, [r1]
-_08028DBE:
- ldr r3, _08028E54 @ =gUnknown_02024DEC
- ldr r2, _08028E58 @ =gBattleMoves
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r3]
- movs r2, 0x1
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r1, r12
- adds r4, r0, r1
- ldrb r0, [r4, 0x11]
- lsls r0, 28
- lsrs r0, 28
- movs r1, 0x5
- subs r1, r0
- ldr r7, _08028E5C @ =gUnknown_02024C10
- adds r5, r3, 0
- cmp r2, r1
- bge _08028E0C
- adds r1, r5, 0
- adds r3, r4, 0
- movs r4, 0x5
-_08028DF8:
- ldrh r0, [r1]
- lsls r0, 1
- strh r0, [r1]
- adds r2, 0x1
- ldrb r0, [r3, 0x11]
- lsls r0, 28
- lsrs r0, 28
- subs r0, r4, r0
- cmp r2, r0
- blt _08028DF8
-_08028E0C:
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 23
- ands r0, r1
- cmp r0, 0
- beq _08028E2A
- ldrh r0, [r5]
- lsls r0, 1
- strh r0, [r5]
-_08028E2A:
- ldr r0, [r7]
- adds r0, 0x1
- str r0, [r7]
-_08028E30:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028E3C: .4byte gBattleMons
-_08028E40: .4byte gUnknown_02024C07
-_08028E44: .4byte gUnknown_02024CA8
-_08028E48: .4byte gUnknown_02024BE6
-_08028E4C: .4byte gUnknown_02024C54
-_08028E50: .4byte 0xffffefff
-_08028E54: .4byte gUnknown_02024DEC
-_08028E58: .4byte gBattleMoves
-_08028E5C: .4byte gUnknown_02024C10
- thumb_func_end atkB3_rolloutdamagecalculation
-
- thumb_func_start atkB4_jumpifconfusedandattackmaxed
-atkB4_jumpifconfusedandattackmaxed: @ 8028E60
- push {r4,r5,lr}
- ldr r5, _08028EB0 @ =gBattleMons
- ldr r0, _08028EB4 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- ldr r4, _08028EB8 @ =gUnknown_02024C10
- cmp r0, 0
- beq _08028EBC
- ldr r2, [r4]
- ldrb r0, [r2, 0x1]
- adds r0, r3
- adds r1, r5, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xC
- bne _08028EBC
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08028EC2
- .align 2, 0
-_08028EB0: .4byte gBattleMons
-_08028EB4: .4byte gUnknown_02024C08
-_08028EB8: .4byte gUnknown_02024C10
-_08028EBC:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_08028EC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atkB4_jumpifconfusedandattackmaxed
-
- thumb_func_start sub_8028EC8
-sub_8028EC8: @ 8028EC8
- push {r4,r5,lr}
- ldr r0, _08028EF0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08028F04
- ldr r2, _08028EF4 @ =gUnknown_02024CA8
- ldr r0, _08028EF8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x10]
- ldr r1, _08028EFC @ =gUnknown_02024C10
- ldr r0, _08028F00 @ =BattleScript_1D6F74
- str r0, [r1]
- b _08028F5C
- .align 2, 0
-_08028EF0: .4byte gUnknown_02024C68
-_08028EF4: .4byte gUnknown_02024CA8
-_08028EF8: .4byte gUnknown_02024C07
-_08028EFC: .4byte gUnknown_02024C10
-_08028F00: .4byte BattleScript_1D6F74
-_08028F04:
- ldr r5, _08028F64 @ =gUnknown_02024CA8
- ldr r4, _08028F68 @ =gUnknown_02024C07
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x10]
- cmp r0, 0x5
- beq _08028F1C
- adds r0, 0x1
- strb r0, [r1, 0x10]
-_08028F1C:
- ldr r3, _08028F6C @ =gUnknown_02024DEC
- ldr r2, _08028F70 @ =gBattleMoves
- ldr r0, _08028F74 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r3]
- movs r2, 0x1
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r4, _08028F78 @ =gUnknown_02024C10
- ldrb r1, [r0, 0x10]
- cmp r2, r1
- bge _08028F56
- adds r1, r3, 0
- adds r3, r0, 0
-_08028F48:
- ldrh r0, [r1]
- lsls r0, 1
- strh r0, [r1]
- adds r2, 0x1
- ldrb r0, [r3, 0x10]
- cmp r2, r0
- blt _08028F48
-_08028F56:
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
-_08028F5C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08028F64: .4byte gUnknown_02024CA8
-_08028F68: .4byte gUnknown_02024C07
-_08028F6C: .4byte gUnknown_02024DEC
-_08028F70: .4byte gBattleMoves
-_08028F74: .4byte gUnknown_02024BE6
-_08028F78: .4byte gUnknown_02024C10
- thumb_func_end sub_8028EC8
-
- thumb_func_start atkB6_happinesstodamagecalculation
-atkB6_happinesstodamagecalculation: @ 8028F7C
- push {r4,lr}
- ldr r2, _08028FA8 @ =gBattleMoves
- ldr r0, _08028FAC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x79
- bne _08028FBC
- ldr r4, _08028FB0 @ =gUnknown_02024DEC
- ldr r2, _08028FB4 @ =gBattleMons
- ldr r0, _08028FB8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2B
- ldrb r1, [r0]
- b _08028FD2
- .align 2, 0
-_08028FA8: .4byte gBattleMoves
-_08028FAC: .4byte gUnknown_02024BE6
-_08028FB0: .4byte gUnknown_02024DEC
-_08028FB4: .4byte gBattleMons
-_08028FB8: .4byte gUnknown_02024C07
-_08028FBC:
- ldr r4, _08028FF0 @ =gUnknown_02024DEC
- ldr r2, _08028FF4 @ =gBattleMons
- ldr r0, _08028FF8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- movs r1, 0xFF
- subs r1, r0
-_08028FD2:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- movs r1, 0x19
- bl __divsi3
- strh r0, [r4]
- ldr r1, _08028FFC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028FF0: .4byte gUnknown_02024DEC
-_08028FF4: .4byte gBattleMons
-_08028FF8: .4byte gUnknown_02024C07
-_08028FFC: .4byte gUnknown_02024C10
- thumb_func_end atkB6_happinesstodamagecalculation
-
- thumb_func_start atkB7_presentdamagecalculation
-atkB7_presentdamagecalculation: @ 8029000
- push {r4,lr}
- bl Random
- movs r4, 0xFF
- ands r4, r0
- cmp r4, 0x65
- bgt _0802901C
- ldr r1, _08029018 @ =gUnknown_02024DEC
- movs r0, 0x28
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029018: .4byte gUnknown_02024DEC
-_0802901C:
- cmp r4, 0xB1
- bgt _0802902C
- ldr r1, _08029028 @ =gUnknown_02024DEC
- movs r0, 0x50
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029028: .4byte gUnknown_02024DEC
-_0802902C:
- cmp r4, 0xCB
- bgt _0802903C
- ldr r1, _08029038 @ =gUnknown_02024DEC
- movs r0, 0x78
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029038: .4byte gUnknown_02024DEC
-_0802903C:
- ldr r3, _08029068 @ =gUnknown_02024BEC
- ldr r2, _0802906C @ =gBattleMons
- ldr r0, _08029070 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r0, 2
- str r0, [r3]
- cmp r0, 0
- bne _08029058
- movs r0, 0x1
- str r0, [r3]
-_08029058:
- ldr r0, [r3]
- negs r0, r0
- str r0, [r3]
-_0802905E:
- cmp r4, 0xCB
- bgt _0802907C
- ldr r1, _08029074 @ =gUnknown_02024C10
- ldr r0, _08029078 @ =BattleScript_1D6F44
- b _080290AC
- .align 2, 0
-_08029068: .4byte gUnknown_02024BEC
-_0802906C: .4byte gBattleMons
-_08029070: .4byte gUnknown_02024C08
-_08029074: .4byte gUnknown_02024C10
-_08029078: .4byte BattleScript_1D6F44
-_0802907C:
- ldr r2, _08029098 @ =gBattleMons
- ldr r0, _0802909C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x2C]
- ldrh r0, [r0, 0x28]
- cmp r1, r0
- bne _080290A8
- ldr r1, _080290A0 @ =gUnknown_02024C10
- ldr r0, _080290A4 @ =BattleScript_1D83B5
- b _080290AC
- .align 2, 0
-_08029098: .4byte gBattleMons
-_0802909C: .4byte gUnknown_02024C08
-_080290A0: .4byte gUnknown_02024C10
-_080290A4: .4byte BattleScript_1D83B5
-_080290A8:
- ldr r1, _080290B4 @ =gUnknown_02024C10
- ldr r0, _080290B8 @ =BattleScript_1D839B
-_080290AC:
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080290B4: .4byte gUnknown_02024C10
-_080290B8: .4byte BattleScript_1D839B
- thumb_func_end atkB7_presentdamagecalculation
-
- thumb_func_start sub_80290BC
-sub_80290BC: @ 80290BC
- push {r4-r6,lr}
- ldr r4, _080290F0 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r6, _080290F4 @ =gUnknown_02024C7A
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08029100
- ldr r2, _080290F8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080290FC @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- b _08029132
- .align 2, 0
-_080290F0: .4byte gUnknown_02024C07
-_080290F4: .4byte gUnknown_02024C7A
-_080290F8: .4byte gUnknown_02024C68
-_080290FC: .4byte gUnknown_02024D1E
-_08029100:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x20
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r2, _08029140 @ =gUnknown_02024C80
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0, 0x7]
- ldr r0, _08029144 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
-_08029132:
- ldr r1, _08029148 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08029140: .4byte gUnknown_02024C80
-_08029144: .4byte gUnknown_02024D1E
-_08029148: .4byte gUnknown_02024C10
- thumb_func_end sub_80290BC
-
- thumb_func_start atkB9_magnitudedamagecalculation
-atkB9_magnitudedamagecalculation: @ 802914C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bgt _08029178
- ldr r1, _08029174 @ =gUnknown_02024DEC
- movs r0, 0xA
- strh r0, [r1]
- movs r3, 0x4
- b _080291E4
- .align 2, 0
-_08029174: .4byte gUnknown_02024DEC
-_08029178:
- cmp r3, 0xE
- bgt _0802918C
- ldr r1, _08029188 @ =gUnknown_02024DEC
- movs r0, 0x1E
- strh r0, [r1]
- movs r3, 0x5
- b _080291E4
- .align 2, 0
-_08029188: .4byte gUnknown_02024DEC
-_0802918C:
- cmp r3, 0x22
- bgt _080291A0
- ldr r1, _0802919C @ =gUnknown_02024DEC
- movs r0, 0x32
- strh r0, [r1]
- movs r3, 0x6
- b _080291E4
- .align 2, 0
-_0802919C: .4byte gUnknown_02024DEC
-_080291A0:
- cmp r3, 0x40
- bgt _080291B4
- ldr r1, _080291B0 @ =gUnknown_02024DEC
- movs r0, 0x46
- strh r0, [r1]
- movs r3, 0x7
- b _080291E4
- .align 2, 0
-_080291B0: .4byte gUnknown_02024DEC
-_080291B4:
- cmp r3, 0x54
- bgt _080291C8
- ldr r1, _080291C4 @ =gUnknown_02024DEC
- movs r0, 0x5A
- strh r0, [r1]
- movs r3, 0x8
- b _080291E4
- .align 2, 0
-_080291C4: .4byte gUnknown_02024DEC
-_080291C8:
- cmp r3, 0x5E
- bgt _080291DC
- ldr r1, _080291D8 @ =gUnknown_02024DEC
- movs r0, 0x6E
- strh r0, [r1]
- movs r3, 0x9
- b _080291E4
- .align 2, 0
-_080291D8: .4byte gUnknown_02024DEC
-_080291DC:
- ldr r1, _08029250 @ =gUnknown_02024DEC
- movs r0, 0x96
- strh r0, [r1]
- movs r3, 0xA
-_080291E4:
- ldr r1, _08029254 @ =gUnknown_030041C0
- movs r2, 0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- movs r0, 0x2
- strb r0, [r1, 0x3]
- strb r3, [r1, 0x4]
- movs r0, 0xFF
- strb r0, [r1, 0x5]
- ldr r1, _08029258 @ =gUnknown_02024C08
- strb r2, [r1]
- ldr r0, _0802925C @ =gUnknown_02024A68
- ldrb r3, [r0]
- adds r6, r1, 0
- ldr r0, _08029260 @ =gUnknown_02024C10
- mov r8, r0
- cmp r2, r3
- bcs _0802923C
- adds r4, r6, 0
- ldr r0, _08029264 @ =gUnknown_02024C07
- ldrb r5, [r0]
- ldr r1, _08029268 @ =gBitTable
- mov r12, r1
- ldr r7, _0802926C @ =gUnknown_02024C0C
-_0802921A:
- ldrb r2, [r4]
- cmp r2, r5
- beq _08029230
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _0802923C
-_08029230:
- adds r0, r2, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcc _0802921A
-_0802923C:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029250: .4byte gUnknown_02024DEC
-_08029254: .4byte gUnknown_030041C0
-_08029258: .4byte gUnknown_02024C08
-_0802925C: .4byte gUnknown_02024A68
-_08029260: .4byte gUnknown_02024C10
-_08029264: .4byte gUnknown_02024C07
-_08029268: .4byte gBitTable
-_0802926C: .4byte gUnknown_02024C0C
- thumb_func_end atkB9_magnitudedamagecalculation
-
- thumb_func_start sub_8029270
-sub_8029270: @ 8029270
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08029294 @ =gUnknown_02024C0E
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080292A0
- ldr r0, _08029298 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0802929C
- movs r0, 0x1
- b _080292BA
- .align 2, 0
-_08029294: .4byte gUnknown_02024C0E
-_08029298: .4byte gUnknown_02024C07
-_0802929C:
- movs r0, 0
- b _080292BA
-_080292A0:
- ldr r0, _080292B4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080292B8
- movs r0, 0x3
- b _080292BA
- .align 2, 0
-_080292B4: .4byte gUnknown_02024C07
-_080292B8:
- movs r0, 0x2
-_080292BA:
- bl battle_get_side_with_given_state
- ldr r1, _0802937C @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r0, _08029380 @ =gUnknown_02024C18
- ldr r1, _0802937C @ =gUnknown_02024C08
- mov r9, r1
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080293BC
- ldr r5, _08029384 @ =gUnknown_02024C07
- ldr r0, _08029388 @ =0x02000000
- ldr r2, _0802938C @ =0x00016010
- adds r1, r3, r2
- adds r1, r0
- ldrb r2, [r5]
- mov r10, r0
- ldrb r1, [r1]
- cmp r2, r1
- bne _080293BC
- ldr r4, _08029390 @ =gBattleMons
- movs r2, 0x58
- adds r0, r3, 0
- muls r0, r2
- adds r1, r4, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x27
- ands r0, r1
- cmp r0, 0
- bne _080293BC
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080293BC
- ldr r0, _08029394 @ =gUnknown_02024CA8
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _080293BC
- ldr r0, _08029398 @ =gUnknown_02024C60
- lsls r1, r3, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0xE4
- bne _080293BC
- movs r1, 0
- ldr r0, _0802939C @ =gUnknown_02024A68
- ldr r7, _080293A0 @ =gUnknown_02024BE6
- mov r8, r7
- ldr r2, _080293A4 @ =gUnknown_02024C6C
- mov r12, r2
- ldrb r7, [r0]
- cmp r1, r7
- bge _0802935A
- ldr r6, _080293A8 @ =gUnknown_02024A7A
- mov r5, r9
- ldr r4, _080293AC @ =gUnknown_02024A76
- movs r3, 0xB
- adds r2, r0, 0
-_08029344:
- adds r0, r1, r6
- ldrb r0, [r0]
- ldrb r7, [r5]
- cmp r0, r7
- bne _08029352
- adds r0, r1, r4
- strb r3, [r0]
-_08029352:
- adds r1, 0x1
- ldrb r0, [r2]
- cmp r1, r0
- blt _08029344
-_0802935A:
- movs r0, 0xE4
- mov r1, r8
- strh r0, [r1]
- ldr r2, _080293B0 @ =gUnknown_02024C10
- ldr r0, [r2]
- adds r0, 0x5
- str r0, [r2]
- ldr r1, _080293B4 @ =0x00016002
- add r1, r10
- movs r0, 0x1
- strb r0, [r1]
- mov r7, r12
- ldr r0, [r7]
- ldr r1, _080293B8 @ =0xfffffbff
- ands r0, r1
- str r0, [r7]
- b _080293D6
- .align 2, 0
-_0802937C: .4byte gUnknown_02024C08
-_08029380: .4byte gUnknown_02024C18
-_08029384: .4byte gUnknown_02024C07
-_08029388: .4byte 0x02000000
-_0802938C: .4byte 0x00016010
-_08029390: .4byte gBattleMons
-_08029394: .4byte gUnknown_02024CA8
-_08029398: .4byte gUnknown_02024C60
-_0802939C: .4byte gUnknown_02024A68
-_080293A0: .4byte gUnknown_02024BE6
-_080293A4: .4byte gUnknown_02024C6C
-_080293A8: .4byte gUnknown_02024A7A
-_080293AC: .4byte gUnknown_02024A76
-_080293B0: .4byte gUnknown_02024C10
-_080293B4: .4byte 0x00016002
-_080293B8: .4byte 0xfffffbff
-_080293BC:
- ldr r3, _080293E4 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_080293D6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080293E4: .4byte gUnknown_02024C10
- thumb_func_end sub_8029270
-
- thumb_func_start sub_80293E8
-sub_80293E8: @ 80293E8
- push {lr}
- ldr r2, _08029408 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08029414
- ldr r2, _0802940C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08029410 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08029426
- .align 2, 0
-_08029408: .4byte word_2024DB8
-_0802940C: .4byte gUnknown_02024C68
-_08029410: .4byte gUnknown_02024D1E
-_08029414:
- movs r0, 0x20
- strh r0, [r2]
- ldr r1, _08029434 @ =gUnknown_02024D1E
- movs r0, 0x4
- strb r0, [r1, 0x5]
- ldr r0, _08029438 @ =gUnknown_02024DBC
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_08029426:
- ldr r1, _0802943C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029434: .4byte gUnknown_02024D1E
-_08029438: .4byte gUnknown_02024DBC
-_0802943C: .4byte gUnknown_02024C10
- thumb_func_end sub_80293E8
-
- thumb_func_start atkBC_maxattackhalvehp
-atkBC_maxattackhalvehp: @ 8029440
- push {r4,r5,lr}
- ldr r5, _0802948C @ =gBattleMons
- ldr r4, _08029490 @ =gUnknown_02024C07
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- adds r2, r0, r5
- ldrh r0, [r2, 0x2C]
- lsrs r1, r0, 1
- cmp r1, 0
- bne _08029458
- movs r1, 0x1
-_08029458:
- movs r0, 0x19
- ldrsb r0, [r2, r0]
- cmp r0, 0xB
- bgt _0802949C
- ldrh r0, [r2, 0x28]
- cmp r0, r1
- bls _0802949C
- movs r0, 0xC
- strb r0, [r2, 0x19]
- ldr r1, _08029494 @ =gUnknown_02024BEC
- ldrb r0, [r4]
- muls r0, r3
- adds r0, r5
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _08029480
- movs r0, 0x1
- str r0, [r1]
-_08029480:
- ldr r1, _08029498 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _080294B6
- .align 2, 0
-_0802948C: .4byte gBattleMons
-_08029490: .4byte gUnknown_02024C07
-_08029494: .4byte gUnknown_02024BEC
-_08029498: .4byte gUnknown_02024C10
-_0802949C:
- ldr r3, _080294BC @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_080294B6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080294BC: .4byte gUnknown_02024C10
- thumb_func_end atkBC_maxattackhalvehp
-
- thumb_func_start atkBD_copyfoestats
-atkBD_copyfoestats: @ 80294C0
- push {r4-r7,lr}
- movs r2, 0
- ldr r7, _080294F8 @ =gUnknown_02024C10
- ldr r6, _080294FC @ =gUnknown_02024C07
- movs r4, 0x58
- ldr r3, _08029500 @ =gUnknown_02024A98
- ldr r5, _08029504 @ =gUnknown_02024C08
-_080294CE:
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r4
- adds r1, r2, r1
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r4
- adds r0, r2, r0
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080294CE
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080294F8: .4byte gUnknown_02024C10
-_080294FC: .4byte gUnknown_02024C07
-_08029500: .4byte gUnknown_02024A98
-_08029504: .4byte gUnknown_02024C08
- thumb_func_end atkBD_copyfoestats
-
- thumb_func_start atkBE_breakfree
-atkBE_breakfree: @ 8029508
- push {r4,r5,lr}
- ldr r1, _08029570 @ =gBattleMons
- ldr r5, _08029574 @ =gUnknown_02024C07
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r3, r0, r1
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08029594
- ldr r0, _08029578 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
- ldr r1, _0802957C @ =gUnknown_02024C08
- ldr r2, _08029580 @ =0x02000000
- ldrb r0, [r5]
- ldr r3, _08029584 @ =0x00016020
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _08029588 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r5]
- lsls r0, 1
- subs r3, 0x1C
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r5]
- lsls r0, 1
- adds r3, 0x1
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- bl b_movescr_stack_push_cursor
- ldr r1, _0802958C @ =gUnknown_02024C10
- ldr r0, _08029590 @ =gUnknown_081D92C2
- b _0802963E
- .align 2, 0
-_08029570: .4byte gBattleMons
-_08029574: .4byte gUnknown_02024C07
-_08029578: .4byte 0xffff1fff
-_0802957C: .4byte gUnknown_02024C08
-_08029580: .4byte 0x02000000
-_08029584: .4byte 0x00016020
-_08029588: .4byte gUnknown_030041C0
-_0802958C: .4byte gUnknown_02024C10
-_08029590: .4byte gUnknown_081D92C2
-_08029594:
- ldr r4, _080295C8 @ =gUnknown_02024C98
- lsls r0, r2, 2
- adds r3, r0, r4
- ldr r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080295D4
- movs r0, 0x5
- negs r0, r0
- ands r1, r0
- str r1, [r3]
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x4
- negs r2, r2
- ands r0, r2
- str r0, [r1]
- bl b_movescr_stack_push_cursor
- ldr r1, _080295CC @ =gUnknown_02024C10
- ldr r0, _080295D0 @ =gUnknown_081D92C9
- b _0802963E
- .align 2, 0
-_080295C8: .4byte gUnknown_02024C98
-_080295CC: .4byte gUnknown_02024C10
-_080295D0: .4byte gUnknown_081D92C9
-_080295D4:
- adds r0, r2, 0
- bl battle_side_get_owner
- ldr r4, _08029624 @ =gUnknown_02024C7A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08029638
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r2, [r0]
- ldr r1, _08029628 @ =0x0000ffef
- ands r1, r2
- movs r4, 0
- strh r1, [r0]
- ldrb r0, [r5]
- bl battle_side_get_owner
- ldr r2, _0802962C @ =gUnknown_02024C80
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strb r4, [r1, 0x6]
- bl b_movescr_stack_push_cursor
- ldr r1, _08029630 @ =gUnknown_02024C10
- ldr r0, _08029634 @ =gUnknown_081D92D0
- b _0802963E
- .align 2, 0
-_08029624: .4byte gUnknown_02024C7A
-_08029628: .4byte 0x0000ffef
-_0802962C: .4byte gUnknown_02024C80
-_08029630: .4byte gUnknown_02024C10
-_08029634: .4byte gUnknown_081D92D0
-_08029638:
- ldr r1, _08029648 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
-_0802963E:
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08029648: .4byte gUnknown_02024C10
- thumb_func_end atkBE_breakfree
-
- thumb_func_start sub_802964C
-sub_802964C: @ 802964C
- ldr r1, _08029670 @ =gBattleMons
- ldr r0, _08029674 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 23
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08029678 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08029670: .4byte gBattleMons
-_08029674: .4byte gUnknown_02024C07
-_08029678: .4byte gUnknown_02024C10
- thumb_func_end sub_802964C
-
- thumb_func_start atkC0_recoverbasedonsunlight
-atkC0_recoverbasedonsunlight: @ 802967C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _080296E8 @ =gUnknown_02024C08
- ldr r5, _080296EC @ =gUnknown_02024C07
- ldrb r0, [r5]
- strb r0, [r1]
- ldr r7, _080296F0 @ =gBattleMons
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- adds r0, r7
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- beq _0802975C
- ldr r4, _080296F4 @ =word_2024DB8
- ldrh r0, [r4]
- cmp r0, 0
- beq _080296CE
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080296CE
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080296FC
-_080296CE:
- ldr r3, _080296F8 @ =gUnknown_02024BEC
- ldr r2, _080296F0 @ =gBattleMons
- ldr r0, _080296EC @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r3]
- adds r1, r3, 0
- b _08029736
- .align 2, 0
-_080296E8: .4byte gUnknown_02024C08
-_080296EC: .4byte gUnknown_02024C07
-_080296F0: .4byte gBattleMons
-_080296F4: .4byte word_2024DB8
-_080296F8: .4byte gUnknown_02024BEC
-_080296FC:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08029728
- ldr r4, _08029724 @ =gUnknown_02024BEC
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r7
- ldrh r1, [r0, 0x2C]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0x1E
- bl __divsi3
- str r0, [r4]
- adds r1, r4, 0
- b _08029736
- .align 2, 0
-_08029724: .4byte gUnknown_02024BEC
-_08029728:
- ldr r1, _08029754 @ =gUnknown_02024BEC
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x2C]
- lsrs r0, 2
- str r0, [r1]
-_08029736:
- adds r2, r1, 0
- ldr r0, [r2]
- cmp r0, 0
- bne _08029742
- movs r0, 0x1
- str r0, [r2]
-_08029742:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldr r1, _08029758 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08029776
- .align 2, 0
-_08029754: .4byte gUnknown_02024BEC
-_08029758: .4byte gUnknown_02024C10
-_0802975C:
- ldr r3, _08029780 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029776:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029780: .4byte gUnknown_02024C10
- thumb_func_end atkC0_recoverbasedonsunlight
-
- thumb_func_start sub_8029784
-sub_8029784: @ 8029784
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _08029894 @ =gBattleMons
- ldr r0, _08029898 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r4, r2
- ldrb r0, [r4, 0x14]
- mov r10, r0
- mov r7, r10
- lsls r7, 27
- adds r0, r7, 0
- lsrs r0, 27
- mov r10, r0
- movs r1, 0x2
- mov r2, r10
- ands r2, r1
- asrs r2, 1
- ldrh r7, [r4, 0x14]
- mov r9, r7
- mov r0, r9
- lsls r0, 22
- mov r9, r0
- lsrs r3, r0, 27
- adds r0, r1, 0
- ands r0, r3
- orrs r2, r0
- ldrb r7, [r4, 0x15]
- mov r8, r7
- mov r0, r8
- lsls r0, 25
- mov r8, r0
- lsrs r3, r0, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 1
- orrs r2, r0
- ldr r6, [r4, 0x14]
- lsls r6, 12
- lsrs r3, r6, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 2
- orrs r2, r0
- ldrh r5, [r4, 0x16]
- lsls r5, 23
- lsrs r3, r5, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 3
- orrs r2, r0
- ldrb r3, [r4, 0x17]
- lsls r3, 26
- lsrs r0, r3, 27
- ands r1, r0
- lsls r1, 4
- orrs r2, r1
- movs r1, 0x1
- adds r4, r1, 0
- mov r7, r10
- ands r4, r7
- mov r0, r9
- lsrs r0, 27
- mov r9, r0
- adds r0, r1, 0
- mov r7, r9
- ands r0, r7
- lsls r0, 1
- orrs r4, r0
- mov r0, r8
- lsrs r0, 27
- mov r8, r0
- adds r0, r1, 0
- mov r7, r8
- ands r0, r7
- lsls r0, 2
- orrs r4, r0
- lsrs r6, 27
- adds r0, r1, 0
- ands r0, r6
- lsls r0, 3
- orrs r4, r0
- lsrs r5, 27
- adds r0, r1, 0
- ands r0, r5
- lsls r0, 4
- orrs r4, r0
- lsrs r3, 27
- ands r1, r3
- lsls r1, 5
- orrs r4, r1
- ldr r5, _0802989C @ =gUnknown_02024DEC
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- movs r1, 0x3F
- bl __divsi3
- adds r0, 0x1E
- strh r0, [r5]
- ldr r5, _080298A0 @ =0x02000000
- lsls r0, r4, 4
- subs r0, r4
- movs r1, 0x3F
- bl __divsi3
- adds r1, r0, 0x1
- ldr r0, _080298A4 @ =0x0001601c
- adds r5, r0
- strb r1, [r5]
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _08029876
- adds r0, r1, 0x1
- strb r0, [r5]
-_08029876:
- ldrb r0, [r5]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r5]
- ldr r1, _080298A8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029894: .4byte gBattleMons
-_08029898: .4byte gUnknown_02024C07
-_0802989C: .4byte gUnknown_02024DEC
-_080298A0: .4byte 0x02000000
-_080298A4: .4byte 0x0001601c
-_080298A8: .4byte gUnknown_02024C10
- thumb_func_end sub_8029784
-
- thumb_func_start atkC2_selectnexttarget
-atkC2_selectnexttarget: @ 80298AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08029908 @ =gUnknown_02024C08
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0802990C @ =gUnknown_02024A68
- ldrb r1, [r1]
- adds r6, r0, 0
- ldr r0, _08029910 @ =gUnknown_02024C10
- mov r8, r0
- cmp r1, 0
- beq _080298F6
- adds r3, r6, 0
- ldr r0, _08029914 @ =gUnknown_02024C07
- ldrb r5, [r0]
- ldr r0, _08029918 @ =gBitTable
- mov r12, r0
- adds r4, r1, 0
- ldr r7, _0802991C @ =gUnknown_02024C0C
-_080298D4:
- ldrb r2, [r3]
- cmp r2, r5
- beq _080298EA
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _080298F6
-_080298EA:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _080298D4
-_080298F6:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029908: .4byte gUnknown_02024C08
-_0802990C: .4byte gUnknown_02024A68
-_08029910: .4byte gUnknown_02024C10
-_08029914: .4byte gUnknown_02024C07
-_08029918: .4byte gBitTable
-_0802991C: .4byte gUnknown_02024C0C
- thumb_func_end atkC2_selectnexttarget
-
- thumb_func_start atkC3_setfutureattack
-atkC3_setfutureattack: @ 8029920
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r0, _08029958 @ =gUnknown_02024DBC
- mov r8, r0
- ldr r7, _0802995C @ =gUnknown_02024C08
- ldrb r1, [r7]
- adds r0, r1, r0
- ldrb r6, [r0]
- cmp r6, 0
- beq _08029964
- ldr r3, _08029960 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08029A2E
- .align 2, 0
-_08029958: .4byte gUnknown_02024DBC
-_0802995C: .4byte gUnknown_02024C08
-_08029960: .4byte gUnknown_02024C10
-_08029964:
- lsls r1, 1
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- ldr r2, _08029A04 @ =gUnknown_02024BE6
- mov r9, r2
- ldrh r0, [r2]
- strh r0, [r1]
- mov r0, r8
- adds r0, 0x4
- ldrb r4, [r7]
- adds r0, r4
- ldr r5, _08029A08 @ =gUnknown_02024C07
- ldrb r1, [r5]
- strb r1, [r0]
- ldrb r0, [r7]
- add r0, r8
- movs r1, 0x3
- strb r1, [r0]
- ldr r4, _08029A0C @ =gUnknown_02024C7A
- ldrb r0, [r7]
- bl battle_get_per_side_status
- movs r1, 0x1
- mov r10, r1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _08029A10 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r7]
- muls r1, r4
- adds r1, r2
- mov r4, r9
- ldrh r2, [r4]
- str r6, [sp]
- str r6, [sp, 0x4]
- ldrb r4, [r5]
- str r4, [sp, 0x8]
- ldrb r4, [r7]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r1, [r7]
- lsls r1, 2
- mov r2, r8
- adds r2, 0x8
- adds r1, r2
- str r0, [r1]
- ldr r1, _08029A14 @ =gUnknown_02024D28
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _080299F2
- ldrb r4, [r7]
- lsls r4, 2
- adds r4, r2
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_080299F2:
- mov r0, r9
- ldrh r1, [r0]
- ldr r0, _08029A18 @ =0x00000161
- cmp r1, r0
- bne _08029A20
- ldr r0, _08029A1C @ =gUnknown_02024D1E
- mov r1, r10
- strb r1, [r0, 0x5]
- b _08029A26
- .align 2, 0
-_08029A04: .4byte gUnknown_02024BE6
-_08029A08: .4byte gUnknown_02024C07
-_08029A0C: .4byte gUnknown_02024C7A
-_08029A10: .4byte gBattleMons
-_08029A14: .4byte gUnknown_02024D28
-_08029A18: .4byte 0x00000161
-_08029A1C: .4byte gUnknown_02024D1E
-_08029A20:
- ldr r1, _08029A40 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
-_08029A26:
- ldr r1, _08029A44 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08029A2E:
- 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
-_08029A40: .4byte gUnknown_02024D1E
-_08029A44: .4byte gUnknown_02024C10
- thumb_func_end atkC3_setfutureattack
-
- thumb_func_start atkC4_802B910
-atkC4_802B910: @ 8029A48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08029A8C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r7, _08029A90 @ =gEnemyParty
- cmp r0, 0
- bne _08029A62
- ldr r7, _08029A94 @ =gPlayerParty
-_08029A62:
- ldr r2, _08029A98 @ =gBattleMons
- ldr r0, _08029A9C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08029AA4
- ldr r3, _08029AA0 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- b _08029C40
- .align 2, 0
-_08029A8C: .4byte gUnknown_02024C07
-_08029A90: .4byte gEnemyParty
-_08029A94: .4byte gPlayerParty
-_08029A98: .4byte gBattleMons
-_08029A9C: .4byte gUnknown_02024C08
-_08029AA0: .4byte gUnknown_02024C10
-_08029AA4:
- ldr r6, _08029BE0 @ =gUnknown_02024D1E
- ldrb r0, [r6]
- mov r8, r0
- cmp r0, 0x5
- bls _08029AB0
- b _08029C0C
-_08029AB0:
- adds r4, r6, 0
- movs r5, 0x64
-_08029AB4:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08029AF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08029AF8
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08029AF8
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x37
- bl GetMonData
- cmp r0, 0
- beq _08029B08
-_08029AF8:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, r4, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _08029AB4
-_08029B08:
- ldr r1, _08029BE0 @ =gUnknown_02024D1E
- mov r9, r1
- ldrb r2, [r1]
- cmp r2, 0x5
- bhi _08029C0C
- ldr r1, _08029BE4 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r6, _08029BE8 @ =gUnknown_02024C07
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08029BEC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- ldr r2, _08029BF0 @ =gUnknown_02024BEC
- mov r8, r2
- ldr r5, _08029BF4 @ =gBaseStats
- mov r1, r9
- ldrb r0, [r1]
- movs r4, 0x64
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0xB
- bl GetMonData
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x1]
- mov r2, r8
- str r3, [r2]
- ldr r2, _08029BF8 @ =gBattleMoves
- ldr r0, _08029BFC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- muls r0, r3
- mov r1, r8
- str r0, [r1]
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 1
- movs r1, 0x5
- bl __udivsi3
- adds r0, 0x2
- mov r2, r8
- ldr r1, [r2]
- muls r0, r1
- str r0, [r2]
- ldr r3, _08029C00 @ =gBattleMons
- ldr r1, _08029C04 @ =gUnknown_02024C08
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r2, [r1]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r1, [r1, 0x2]
- bl __divsi3
- mov r1, r8
- str r0, [r1]
- movs r1, 0x32
- bl __divsi3
- adds r2, r0, 0x2
- mov r0, r8
- str r2, [r0]
- ldr r1, _08029C08 @ =gUnknown_02024D28
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _08029BD4
- lsls r0, r2, 4
- subs r0, r2
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_08029BD4:
- mov r2, r9
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- b _08029C46
- .align 2, 0
-_08029BE0: .4byte gUnknown_02024D1E
-_08029BE4: .4byte gUnknown_030041C0
-_08029BE8: .4byte gUnknown_02024C07
-_08029BEC: .4byte gUnknown_02024C10
-_08029BF0: .4byte gUnknown_02024BEC
-_08029BF4: .4byte gBaseStats
-_08029BF8: .4byte gBattleMoves
-_08029BFC: .4byte gUnknown_02024BE6
-_08029C00: .4byte gBattleMons
-_08029C04: .4byte gUnknown_02024C08
-_08029C08: .4byte gUnknown_02024D28
-_08029C0C:
- mov r0, r8
- cmp r0, 0
- beq _08029C2C
- ldr r3, _08029C28 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- b _08029C40
- .align 2, 0
-_08029C28: .4byte gUnknown_02024C10
-_08029C2C:
- ldr r3, _08029C54 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
-_08029C40:
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029C46:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029C54: .4byte gUnknown_02024C10
- thumb_func_end atkC4_802B910
-
- thumb_func_start atkC5_hidepreattack
-atkC5_hidepreattack: @ 8029C58
- push {lr}
- ldr r0, _08029C6C @ =gUnknown_02024BE6
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _08029C98
- cmp r1, 0x5B
- bgt _08029C70
- cmp r1, 0x13
- beq _08029C7C
- b _08029CC4
- .align 2, 0
-_08029C6C: .4byte gUnknown_02024BE6
-_08029C70:
- ldr r0, _08029C8C @ =0x00000123
- cmp r1, r0
- beq _08029CB0
- adds r0, 0x31
- cmp r1, r0
- bne _08029CC4
-_08029C7C:
- ldr r2, _08029C90 @ =gUnknown_02024C98
- ldr r0, _08029C94 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x40
- b _08029CC0
- .align 2, 0
-_08029C8C: .4byte 0x00000123
-_08029C90: .4byte gUnknown_02024C98
-_08029C94: .4byte gUnknown_02024C07
-_08029C98:
- ldr r2, _08029CA8 @ =gUnknown_02024C98
- ldr r0, _08029CAC @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- b _08029CC0
- .align 2, 0
-_08029CA8: .4byte gUnknown_02024C98
-_08029CAC: .4byte gUnknown_02024C07
-_08029CB0:
- ldr r2, _08029CD0 @ =gUnknown_02024C98
- ldr r0, _08029CD4 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 11
-_08029CC0:
- orrs r0, r2
- str r0, [r1]
-_08029CC4:
- ldr r1, _08029CD8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029CD0: .4byte gUnknown_02024C98
-_08029CD4: .4byte gUnknown_02024C07
-_08029CD8: .4byte gUnknown_02024C10
- thumb_func_end atkC5_hidepreattack
-
- thumb_func_start atkC6_unhidepostattack
-atkC6_unhidepostattack: @ 8029CDC
- push {lr}
- ldr r0, _08029CF0 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _08029D20
- cmp r1, 0x5B
- bgt _08029CF4
- cmp r1, 0x13
- beq _08029D00
- b _08029D4E
- .align 2, 0
-_08029CF0: .4byte gUnknown_02024BE6
-_08029CF4:
- ldr r0, _08029D14 @ =0x00000123
- cmp r1, r0
- beq _08029D3C
- adds r0, 0x31
- cmp r1, r0
- bne _08029D4E
-_08029D00:
- ldr r2, _08029D18 @ =gUnknown_02024C98
- ldr r0, _08029D1C @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x41
- negs r2, r2
- b _08029D4A
- .align 2, 0
-_08029D14: .4byte 0x00000123
-_08029D18: .4byte gUnknown_02024C98
-_08029D1C: .4byte gUnknown_02024C07
-_08029D20:
- ldr r2, _08029D34 @ =gUnknown_02024C98
- ldr r0, _08029D38 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x81
- negs r2, r2
- b _08029D4A
- .align 2, 0
-_08029D34: .4byte gUnknown_02024C98
-_08029D38: .4byte gUnknown_02024C07
-_08029D3C:
- ldr r2, _08029D5C @ =gUnknown_02024C98
- ldr r0, _08029D60 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- ldr r2, _08029D64 @ =0xfffbffff
-_08029D4A:
- ands r0, r2
- str r0, [r1]
-_08029D4E:
- ldr r1, _08029D68 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029D5C: .4byte gUnknown_02024C98
-_08029D60: .4byte gUnknown_02024C07
-_08029D64: .4byte 0xfffbffff
-_08029D68: .4byte gUnknown_02024C10
- thumb_func_end atkC6_unhidepostattack
-
- thumb_func_start atkC7_setminimize
-atkC7_setminimize: @ 8029D6C
- push {lr}
- ldr r0, _08029D9C @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08029D90
- ldr r2, _08029DA0 @ =gUnknown_02024C98
- ldr r0, _08029DA4 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 1
- orrs r0, r2
- str r0, [r1]
-_08029D90:
- ldr r1, _08029DA8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029D9C: .4byte gUnknown_02024C6C
-_08029DA0: .4byte gUnknown_02024C98
-_08029DA4: .4byte gUnknown_02024C07
-_08029DA8: .4byte gUnknown_02024C10
- thumb_func_end atkC7_setminimize
-
- thumb_func_start sub_8029DAC
-sub_8029DAC: @ 8029DAC
- push {lr}
- ldr r3, _08029DD0 @ =word_2024DB8
- ldrh r1, [r3]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08029DDC
- ldr r2, _08029DD4 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08029DD8 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08029DEA
- .align 2, 0
-_08029DD0: .4byte word_2024DB8
-_08029DD4: .4byte gUnknown_02024C68
-_08029DD8: .4byte gUnknown_02024D1E
-_08029DDC:
- strh r2, [r3]
- ldr r0, _08029DF8 @ =gUnknown_02024D1E
- movs r1, 0x5
- strb r1, [r0, 0x5]
- ldr r0, _08029DFC @ =gUnknown_02024DBC
- adds r0, 0x28
- strb r1, [r0]
-_08029DEA:
- ldr r1, _08029E00 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029DF8: .4byte gUnknown_02024D1E
-_08029DFC: .4byte gUnknown_02024DBC
-_08029E00: .4byte gUnknown_02024C10
- thumb_func_end sub_8029DAC
-
- thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
-atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04
- push {r4,lr}
- ldr r2, _08029E48 @ =gBattleMons
- ldr r0, _08029E4C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- adds r3, r2, 0
- cmp r0, 0
- bne _08029E58
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _08029E58
- ldr r0, _08029E50 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _08029E58
- ldr r3, _08029E54 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08029E84
- .align 2, 0
-_08029E48: .4byte gBattleMons
-_08029E4C: .4byte gUnknown_02024C08
-_08029E50: .4byte gUnknown_02024D1E
-_08029E54: .4byte gUnknown_02024C10
-_08029E58:
- ldr r4, _08029E8C @ =gUnknown_02024A60
- ldr r0, _08029E90 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _08029E94 @ =gUnknown_02024BEC
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _08029E98 @ =0x00007fff
- movs r0, 0
- bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08029E9C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08029E84:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029E8C: .4byte gUnknown_02024A60
-_08029E90: .4byte gUnknown_02024C07
-_08029E94: .4byte gUnknown_02024BEC
-_08029E98: .4byte 0x00007fff
-_08029E9C: .4byte gUnknown_02024C10
- thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
-
- thumb_func_start atkCA_setforcedtarget
-atkCA_setforcedtarget: @ 8029EA0
- push {r4,r5,lr}
- ldr r4, _08029EE0 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- ldr r5, _08029EE4 @ =gUnknown_02024C80
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x1
- strb r0, [r1, 0x8]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r4]
- strb r0, [r1, 0x9]
- ldr r1, _08029EE8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08029EE0: .4byte gUnknown_02024C07
-_08029EE4: .4byte gUnknown_02024C80
-_08029EE8: .4byte gUnknown_02024C10
- thumb_func_end atkCA_setforcedtarget
-
- thumb_func_start atkCB_setcharge
-atkCB_setcharge: @ 8029EEC
- push {r4,lr}
- ldr r0, _08029F40 @ =gUnknown_02024C98
- ldr r3, _08029F44 @ =gUnknown_02024C07
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r4, _08029F48 @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldr r1, _08029F4C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029F40: .4byte gUnknown_02024C98
-_08029F44: .4byte gUnknown_02024C07
-_08029F48: .4byte gUnknown_02024CA8
-_08029F4C: .4byte gUnknown_02024C10
- thumb_func_end atkCB_setcharge
-
- thumb_func_start atkCC_callterrainattack
-atkCC_callterrainattack: @ 8029F50
- push {r4,lr}
- ldr r2, _08029FA0 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08029FA4 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08029FA8 @ =gUnknown_02024BE6
- ldr r1, _08029FAC @ =gNaturePowerMoves
- ldr r0, _08029FB0 @ =gUnknown_0300428C
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08029FB4 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r3, _08029FB8 @ =gUnknown_081D6BBC
- ldr r2, _08029FBC @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- bl b_movescr_stack_push
- ldr r1, _08029FC0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029FA0: .4byte gUnknown_02024C6C
-_08029FA4: .4byte 0xfffffbff
-_08029FA8: .4byte gUnknown_02024BE6
-_08029FAC: .4byte gNaturePowerMoves
-_08029FB0: .4byte gUnknown_0300428C
-_08029FB4: .4byte gUnknown_02024C08
-_08029FB8: .4byte gUnknown_081D6BBC
-_08029FBC: .4byte gBattleMoves
-_08029FC0: .4byte gUnknown_02024C10
- thumb_func_end atkCC_callterrainattack
-
- thumb_func_start atkCD_cureifburnedparalysedorpoisoned
-atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r1, _0802A010 @ =gBattleMons
- ldr r3, _0802A014 @ =gUnknown_02024C07
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r2, r0, r5
- ldr r0, [r2]
- movs r1, 0xD8
- ands r0, r1
- cmp r0, 0
- beq _0802A020
- movs r0, 0
- str r0, [r2]
- ldr r1, _0802A018 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r4, _0802A01C @ =gUnknown_02024A60
- ldrb r0, [r3]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r6
- adds r0, r5
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0802A03A
- .align 2, 0
-_0802A010: .4byte gBattleMons
-_0802A014: .4byte gUnknown_02024C07
-_0802A018: .4byte gUnknown_02024C10
-_0802A01C: .4byte gUnknown_02024A60
-_0802A020:
- ldr r3, _0802A044 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A03A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A044: .4byte gUnknown_02024C10
- thumb_func_end atkCD_cureifburnedparalysedorpoisoned
-
- thumb_func_start atkCE_settorment
-atkCE_settorment: @ 802A048
- push {lr}
- ldr r1, _0802A080 @ =gBattleMons
- ldr r0, _0802A084 @ =gUnknown_02024C08
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 24
- cmp r1, 0
- bge _0802A08C
- ldr r3, _0802A088 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A098
- .align 2, 0
-_0802A080: .4byte gBattleMons
-_0802A084: .4byte gUnknown_02024C08
-_0802A088: .4byte gUnknown_02024C10
-_0802A08C:
- orrs r1, r2
- str r1, [r0]
- ldr r1, _0802A09C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A098:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A09C: .4byte gUnknown_02024C10
- thumb_func_end atkCE_settorment
-
- thumb_func_start atkCF_jumpifnodamage
-atkCF_jumpifnodamage: @ 802A0A0
- push {lr}
- ldr r2, _0802A0CC @ =gUnknown_02024D28
- ldr r0, _0802A0D0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0802A0C0
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A0D8
-_0802A0C0:
- ldr r1, _0802A0D4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A0F2
- .align 2, 0
-_0802A0CC: .4byte gUnknown_02024D28
-_0802A0D0: .4byte gUnknown_02024C07
-_0802A0D4: .4byte gUnknown_02024C10
-_0802A0D8:
- ldr r3, _0802A0F8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A0F2:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A0F8: .4byte gUnknown_02024C10
- thumb_func_end atkCF_jumpifnodamage
-
- thumb_func_start atkD0_settaunt
-atkD0_settaunt: @ 802A0FC
- push {r4,lr}
- ldr r4, _0802A140 @ =gUnknown_02024CA8
- ldr r3, _0802A144 @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r2, r1, r4
- ldrb r1, [r2, 0x13]
- lsls r0, r1, 28
- cmp r0, 0
- bne _0802A14C
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x13]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x13]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x13]
- ldr r1, _0802A148 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A166
- .align 2, 0
-_0802A140: .4byte gUnknown_02024CA8
-_0802A144: .4byte gUnknown_02024C08
-_0802A148: .4byte gUnknown_02024C10
-_0802A14C:
- ldr r3, _0802A16C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A166:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A16C: .4byte gUnknown_02024C10
- thumb_func_end atkD0_settaunt
-
- thumb_func_start sub_802A170
-sub_802A170: @ 802A170
- push {r4,lr}
- ldr r4, _0802A1D8 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r3, _0802A1DC @ =gUnknown_02024C08
- strb r0, [r3]
- ldr r0, _0802A1E0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802A1F4
- ldr r0, _0802A1E4 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802A1E8 @ =gBitTable
- ldrb r3, [r3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802A1F4
- ldr r1, _0802A1EC @ =gUnknown_02024D28
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- blt _0802A1F4
- lsls r0, r3, 4
- adds r2, r0, r1
- ldrb r1, [r2]
- lsls r0, r1, 28
- cmp r0, 0
- blt _0802A1F4
- movs r0, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802A1F0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A20E
- .align 2, 0
-_0802A1D8: .4byte gUnknown_02024C07
-_0802A1DC: .4byte gUnknown_02024C08
-_0802A1E0: .4byte gUnknown_020239F8
-_0802A1E4: .4byte gUnknown_02024C0C
-_0802A1E8: .4byte gBitTable
-_0802A1EC: .4byte gUnknown_02024D28
-_0802A1F0: .4byte gUnknown_02024C10
-_0802A1F4:
- ldr r3, _0802A214 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A20E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A214: .4byte gUnknown_02024C10
- thumb_func_end sub_802A170
-
- thumb_func_start sub_802A218
-sub_802A218: @ 802A218
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0802A30C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802A24C
- ldr r0, _0802A310 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0802A314 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802A24C
- ldr r0, _0802A318 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0802A2EE
-_0802A24C:
- ldr r4, _0802A30C @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0802A310 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0802A314 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802A290
- ldr r0, _0802A318 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0802A290
- ldr r0, _0802A31C @ =gUnknown_02024DBC
- adds r0, 0x29
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r3, _0802A320 @ =gBitTable
- ldr r2, _0802A324 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802A2EE
-_0802A290:
- ldr r0, _0802A328 @ =gBattleMons
- mov r9, r0
- ldr r1, _0802A30C @ =gUnknown_02024C07
- ldrb r4, [r1]
- movs r2, 0x58
- mov r8, r2
- mov r0, r8
- muls r0, r4
- mov r3, r9
- adds r5, r0, r3
- ldrh r3, [r5, 0x2E]
- adds r1, r3, 0
- cmp r1, 0
- bne _0802A2BE
- ldr r0, _0802A32C @ =gUnknown_02024C08
- ldrb r0, [r0]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _0802A2EE
-_0802A2BE:
- cmp r1, 0xAF
- beq _0802A2EE
- ldr r7, _0802A32C @ =gUnknown_02024C08
- ldrb r0, [r7]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- mov r1, r9
- adds r2, r0, r1
- ldrh r1, [r2, 0x2E]
- cmp r1, 0xAF
- beq _0802A2EE
- adds r0, r3, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bls _0802A2EE
- adds r0, r1, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _0802A334
-_0802A2EE:
- ldr r3, _0802A330 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A49A
- .align 2, 0
-_0802A30C: .4byte gUnknown_02024C07
-_0802A310: .4byte gUnknown_020239F8
-_0802A314: .4byte 0x00000902
-_0802A318: .4byte gTrainerBattleOpponent
-_0802A31C: .4byte gUnknown_02024DBC
-_0802A320: .4byte gBitTable
-_0802A324: .4byte gUnknown_02024A6A
-_0802A328: .4byte gBattleMons
-_0802A32C: .4byte gUnknown_02024C08
-_0802A330: .4byte gUnknown_02024C10
-_0802A334:
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _0802A36C
- ldr r1, _0802A360 @ =gUnknown_02024C10
- ldr r0, _0802A364 @ =gUnknown_081D9913
- str r0, [r1]
- ldr r1, _0802A368 @ =byte_2024C06
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl sub_81074C4
- b _0802A49A
- .align 2, 0
-_0802A360: .4byte gUnknown_02024C10
-_0802A364: .4byte gUnknown_081D9913
-_0802A368: .4byte byte_2024C06
-_0802A36C:
- lsls r0, r4, 1
- ldr r4, _0802A458 @ =0x020160f0
- adds r6, r0, r4
- ldrh r5, [r5, 0x2E]
- mov r10, r5
- strh r1, [r6]
- ldr r3, _0802A45C @ =gUnknown_02024C07
- ldrb r0, [r3]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- mov r3, r10
- strh r3, [r0, 0x2E]
- ldr r5, _0802A460 @ =gUnknown_02024A60
- ldr r1, _0802A45C @ =gUnknown_02024C07
- ldrb r0, [r1]
- strb r0, [r5]
- str r6, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldr r2, _0802A45C @ =gUnknown_02024C07
- ldrb r0, [r2]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r7]
- strb r0, [r5]
- ldrb r0, [r7]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- mov r1, r9
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _0802A464 @ =0xfffe9f10
- adds r4, r0
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0802A468 @ =0x000160e8
- adds r0, r2
- adds r0, r4
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _0802A46C @ =0x000160e9
- adds r0, r1
- adds r0, r4
- movs r3, 0
- strb r3, [r0]
- ldr r3, _0802A45C @ =gUnknown_02024C07
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- adds r0, r4
- movs r2, 0
- strb r2, [r0]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- adds r0, r4
- strb r2, [r0]
- ldr r1, _0802A470 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802A474 @ =gUnknown_030041C0
- movs r3, 0xFD
- strb r3, [r1]
- movs r2, 0xA
- strb r2, [r1, 0x1]
- ldrh r0, [r6]
- strb r0, [r1, 0x2]
- ldrh r0, [r6]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802A478 @ =gUnknown_03004290
- strb r3, [r1]
- strb r2, [r1, 0x1]
- mov r3, r10
- strb r3, [r1, 0x2]
- mov r2, r10
- lsrs r0, r2, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- cmp r2, 0
- beq _0802A480
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802A494
- ldr r1, _0802A47C @ =gUnknown_02024D1E
- movs r0, 0x2
- b _0802A498
- .align 2, 0
-_0802A458: .4byte 0x020160f0
-_0802A45C: .4byte gUnknown_02024C07
-_0802A460: .4byte gUnknown_02024A60
-_0802A464: .4byte 0xfffe9f10
-_0802A468: .4byte 0x000160e8
-_0802A46C: .4byte 0x000160e9
-_0802A470: .4byte gUnknown_02024C10
-_0802A474: .4byte gUnknown_030041C0
-_0802A478: .4byte gUnknown_03004290
-_0802A47C: .4byte gUnknown_02024D1E
-_0802A480:
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802A494
- ldr r0, _0802A490 @ =gUnknown_02024D1E
- movs r3, 0
- strb r3, [r0, 0x5]
- b _0802A49A
- .align 2, 0
-_0802A490: .4byte gUnknown_02024D1E
-_0802A494:
- ldr r1, _0802A4AC @ =gUnknown_02024D1E
- movs r0, 0x1
-_0802A498:
- strb r0, [r1, 0x5]
-_0802A49A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A4AC: .4byte gUnknown_02024D1E
- thumb_func_end sub_802A218
-
- thumb_func_start sub_802A4B0
-sub_802A4B0: @ 802A4B0
- push {r4,lr}
- ldr r3, _0802A4F0 @ =gBattleMons
- ldr r4, _0802A4F4 @ =gUnknown_02024C08
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r1, 0
- cmp r0, 0
- beq _0802A504
- cmp r0, 0x19
- beq _0802A504
- ldr r0, _0802A4F8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802A4FC @ =byte_2024C06
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0802A500 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A51E
- .align 2, 0
-_0802A4F0: .4byte gBattleMons
-_0802A4F4: .4byte gUnknown_02024C08
-_0802A4F8: .4byte gUnknown_02024C07
-_0802A4FC: .4byte byte_2024C06
-_0802A500: .4byte gUnknown_02024C10
-_0802A504:
- ldr r3, _0802A524 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A51E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A524: .4byte gUnknown_02024C10
- thumb_func_end sub_802A4B0
-
- thumb_func_start atkD4_802C408
-atkD4_802C408: @ 802A528
- push {r4-r7,lr}
- ldr r7, _0802A53C @ =gUnknown_02024C10
- ldr r2, [r7]
- ldrb r3, [r2, 0x1]
- cmp r3, 0
- beq _0802A540
- cmp r3, 0x1
- beq _0802A578
- b _0802A5F4
- .align 2, 0
-_0802A53C: .4byte gUnknown_02024C10
-_0802A540:
- ldr r1, _0802A56C @ =gUnknown_02024DBC
- ldr r4, _0802A570 @ =gUnknown_02024C07
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r5, [r4]
- adds r3, r0, r5
- ldrb r0, [r3]
- cmp r0, 0
- bne _0802A5C4
- movs r0, 0x2
- strb r0, [r3]
- ldrb r0, [r4]
- adds r1, 0x24
- adds r1, r0, r1
- ldr r2, _0802A574 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, 0x6
- b _0802A5F2
- .align 2, 0
-_0802A56C: .4byte gUnknown_02024DBC
-_0802A570: .4byte gUnknown_02024C07
-_0802A574: .4byte gUnknown_02024A6A
-_0802A578:
- ldr r1, _0802A5DC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r4, _0802A5E0 @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r1, 0x2]
- ldr r0, _0802A5E4 @ =gUnknown_02024DBC
- adds r0, 0x24
- ldrb r5, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802A5E8 @ =gUnknown_02024BEC
- ldr r6, _0802A5EC @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _0802A5B0
- str r3, [r1]
-_0802A5B0:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _0802A5F0
-_0802A5C4:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r7]
- b _0802A5F4
- .align 2, 0
-_0802A5DC: .4byte gUnknown_030041C0
-_0802A5E0: .4byte gUnknown_02024C08
-_0802A5E4: .4byte gUnknown_02024DBC
-_0802A5E8: .4byte gUnknown_02024BEC
-_0802A5EC: .4byte gBattleMons
-_0802A5F0:
- adds r0, r2, 0x6
-_0802A5F2:
- str r0, [r7]
-_0802A5F4:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atkD4_802C408
-
- thumb_func_start sub_802A5FC
-sub_802A5FC: @ 802A5FC
- push {lr}
- ldr r1, _0802A634 @ =gUnknown_02024C98
- ldr r0, _0802A638 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 3
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802A640
- ldr r3, _0802A63C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A64C
- .align 2, 0
-_0802A634: .4byte gUnknown_02024C98
-_0802A638: .4byte gUnknown_02024C07
-_0802A63C: .4byte gUnknown_02024C10
-_0802A640:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802A650 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A64C:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A650: .4byte gUnknown_02024C10
- thumb_func_end sub_802A5FC
-
- thumb_func_start atkD6_doubledamagedealtifdamaged
-atkD6_doubledamagedealtifdamaged: @ 802A654
- push {lr}
- ldr r3, _0802A6A4 @ =gUnknown_02024D28
- ldr r0, _0802A6A8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r0, r3, 0x4
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A674
- adds r0, r2, r3
- ldr r1, _0802A6AC @ =gUnknown_02024C08
- ldrb r0, [r0, 0xC]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802A68C
-_0802A674:
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A696
- adds r0, r2, r3
- ldr r1, _0802A6AC @ =gUnknown_02024C08
- ldrb r0, [r0, 0xD]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0802A696
-_0802A68C:
- ldr r0, _0802A6B0 @ =0x02000000
- ldr r1, _0802A6B4 @ =0x0001601f
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
-_0802A696:
- ldr r1, _0802A6B8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802A6A4: .4byte gUnknown_02024D28
-_0802A6A8: .4byte gUnknown_02024C07
-_0802A6AC: .4byte gUnknown_02024C08
-_0802A6B0: .4byte 0x02000000
-_0802A6B4: .4byte 0x0001601f
-_0802A6B8: .4byte gUnknown_02024C10
- thumb_func_end atkD6_doubledamagedealtifdamaged
-
- thumb_func_start sub_802A6BC
-sub_802A6BC: @ 802A6BC
- push {r4,lr}
- ldr r1, _0802A700 @ =gUnknown_02024C98
- ldr r0, _0802A704 @ =gUnknown_02024C08
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r4, r0, r1
- ldr r2, [r4]
- movs r0, 0xC0
- lsls r0, 5
- ands r0, r2
- cmp r0, 0
- bne _0802A6E4
- ldr r1, _0802A708 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802A710
-_0802A6E4:
- ldr r3, _0802A70C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A720
- .align 2, 0
-_0802A700: .4byte gUnknown_02024C98
-_0802A704: .4byte gUnknown_02024C08
-_0802A708: .4byte gBattleMons
-_0802A70C: .4byte gUnknown_02024C10
-_0802A710:
- movs r0, 0x80
- lsls r0, 5
- orrs r2, r0
- str r2, [r4]
- ldr r1, _0802A728 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A720:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A728: .4byte gUnknown_02024C10
- thumb_func_end sub_802A6BC
-
- thumb_func_start atkD8_setdamagetohealthdifference
-atkD8_setdamagetohealthdifference: @ 802A72C
- push {lr}
- ldr r2, _0802A768 @ =gBattleMons
- ldr r0, _0802A76C @ =gUnknown_02024C08
- ldrb r0, [r0]
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- ldr r0, _0802A770 @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r1
- adds r1, r0, r2
- ldrh r0, [r3, 0x28]
- ldrh r2, [r1, 0x28]
- cmp r0, r2
- bhi _0802A778
- ldr r3, _0802A774 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A78A
- .align 2, 0
-_0802A768: .4byte gBattleMons
-_0802A76C: .4byte gUnknown_02024C08
-_0802A770: .4byte gUnknown_02024C07
-_0802A774: .4byte gUnknown_02024C10
-_0802A778:
- ldr r2, _0802A790 @ =gUnknown_02024BEC
- ldrh r0, [r3, 0x28]
- ldrh r1, [r1, 0x28]
- subs r0, r1
- str r0, [r2]
- ldr r1, _0802A794 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A78A:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A790: .4byte gUnknown_02024BEC
-_0802A794: .4byte gUnknown_02024C10
- thumb_func_end atkD8_setdamagetohealthdifference
-
- thumb_func_start atkD9_scaledamagebyhealthratio
-atkD9_scaledamagebyhealthratio: @ 802A798
- push {r4,lr}
- ldr r4, _0802A7E4 @ =gUnknown_02024DEC
- ldrh r0, [r4]
- cmp r0, 0
- bne _0802A7D4
- ldr r2, _0802A7E8 @ =gBattleMoves
- ldr r0, _0802A7EC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r3, [r0, 0x1]
- ldr r2, _0802A7F0 @ =gBattleMons
- ldr r0, _0802A7F4 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r0, [r1, 0x28]
- muls r0, r3
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- bne _0802A7D4
- movs r0, 0x1
- strh r0, [r4]
-_0802A7D4:
- ldr r1, _0802A7F8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A7E4: .4byte gUnknown_02024DEC
-_0802A7E8: .4byte gBattleMoves
-_0802A7EC: .4byte gUnknown_02024BE6
-_0802A7F0: .4byte gBattleMons
-_0802A7F4: .4byte gUnknown_02024C07
-_0802A7F8: .4byte gUnknown_02024C10
- thumb_func_end atkD9_scaledamagebyhealthratio
-
- thumb_func_start atkDA_abilityswap
-atkDA_abilityswap: @ 802A7FC
- push {r4-r6,lr}
- ldr r5, _0802A860 @ =gBattleMons
- ldr r0, _0802A864 @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- bne _0802A824
- ldr r0, _0802A868 @ =gUnknown_02024C08
- ldrb r0, [r0]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802A844
-_0802A824:
- cmp r1, 0x19
- beq _0802A844
- ldr r6, _0802A868 @ =gUnknown_02024C08
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x19
- beq _0802A844
- ldr r0, _0802A86C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0802A874
-_0802A844:
- ldr r3, _0802A870 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A88A
- .align 2, 0
-_0802A860: .4byte gBattleMons
-_0802A864: .4byte gUnknown_02024C07
-_0802A868: .4byte gUnknown_02024C08
-_0802A86C: .4byte gUnknown_02024C68
-_0802A870: .4byte gUnknown_02024C10
-_0802A874:
- ldrb r1, [r2]
- strb r3, [r2]
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802A890 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A88A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A890: .4byte gUnknown_02024C10
- thumb_func_end atkDA_abilityswap
-
- thumb_func_start atkDB_imprisoneffect
-atkDB_imprisoneffect: @ 802A894
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r8, r0
- ldr r1, _0802A8B8 @ =gUnknown_02024C98
- ldr r0, _0802A8BC @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0802A8E8
- b _0802A95E
- .align 2, 0
-_0802A8B8: .4byte gUnknown_02024C98
-_0802A8BC: .4byte gUnknown_02024C07
-_0802A8C0:
- ldr r0, _0802A8E0 @ =gUnknown_02024C98
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 6
- orrs r0, r2
- str r0, [r1]
- ldr r1, _0802A8E4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A956
- .align 2, 0
-_0802A8E0: .4byte gUnknown_02024C98
-_0802A8E4: .4byte gUnknown_02024C10
-_0802A8E8:
- adds r0, r2, 0
- bl sub_801529C
- movs r6, 0
- b _0802A94E
-_0802A8F2:
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- beq _0802A948
- movs r4, 0
- ldr r7, _0802A984 @ =gUnknown_02024C07
- mov r9, r7
- ldr r0, _0802A988 @ =gBattleMons
- mov r12, r0
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r12
- adds r2, 0xC
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- adds r5, r6, 0
- muls r5, r1
-_0802A91C:
- movs r2, 0
- ldrh r1, [r3]
- mov r0, r12
- adds r0, 0xC
- adds r0, r5, r0
-_0802A926:
- ldrh r7, [r0]
- cmp r1, r7
- bne _0802A930
- cmp r1, 0
- bne _0802A938
-_0802A930:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _0802A926
-_0802A938:
- cmp r2, 0x4
- bne _0802A944
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0802A91C
-_0802A944:
- cmp r4, 0x4
- bne _0802A8C0
-_0802A948:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0802A94E:
- ldr r0, _0802A98C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0802A8F2
-_0802A956:
- ldr r0, _0802A98C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bne _0802A978
-_0802A95E:
- ldr r3, _0802A990 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A978:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A984: .4byte gUnknown_02024C07
-_0802A988: .4byte gBattleMons
-_0802A98C: .4byte gUnknown_02024A68
-_0802A990: .4byte gUnknown_02024C10
- thumb_func_end atkDB_imprisoneffect
-
- thumb_func_start atkDC_setgrudge
-atkDC_setgrudge: @ 802A994
- push {lr}
- ldr r1, _0802A9CC @ =gUnknown_02024C98
- ldr r0, _0802A9D0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802A9D8
- ldr r3, _0802A9D4 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A9E4
- .align 2, 0
-_0802A9CC: .4byte gUnknown_02024C98
-_0802A9D0: .4byte gUnknown_02024C07
-_0802A9D4: .4byte gUnknown_02024C10
-_0802A9D8:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802A9E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A9E4:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A9E8: .4byte gUnknown_02024C10
- thumb_func_end atkDC_setgrudge
-
- thumb_func_start atkDD_weightdamagecalculation
-atkDD_weightdamagecalculation: @ 802A9EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r2, _0802AA50 @ =gWeightDamage
- ldrh r0, [r2]
- ldr r1, _0802AA54 @ =0x0000ffff
- cmp r0, r1
- beq _0802AA64
- adds r6, r2, 0
- ldr r0, _0802AA58 @ =gBattleMons
- mov r8, r0
- adds r7, r1, 0
- adds r4, r6, 0
-_0802AA08:
- ldr r0, _0802AA5C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D54
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0802AA36
- adds r4, 0x4
- adds r5, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _0802AA08
-_0802AA36:
- lsls r0, r5, 1
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _0802AA54 @ =0x0000ffff
- cmp r1, r0
- beq _0802AA64
- ldr r0, _0802AA60 @ =gUnknown_02024DEC
- adds r1, r5, 0x1
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- strh r1, [r0]
- b _0802AA6A
- .align 2, 0
-_0802AA50: .4byte gWeightDamage
-_0802AA54: .4byte 0x0000ffff
-_0802AA58: .4byte gBattleMons
-_0802AA5C: .4byte gUnknown_02024C08
-_0802AA60: .4byte gUnknown_02024DEC
-_0802AA64:
- ldr r1, _0802AA7C @ =gUnknown_02024DEC
- movs r0, 0x78
- strh r0, [r1]
-_0802AA6A:
- ldr r1, _0802AA80 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AA7C: .4byte gUnknown_02024DEC
-_0802AA80: .4byte gUnknown_02024C10
- thumb_func_end atkDD_weightdamagecalculation
-
- thumb_func_start atkDE_asistattackselect
-atkDE_asistattackselect: @ 802AA84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r10, r0
- ldr r0, _0802AB9C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- ldr r0, _0802ABA0 @ =gPlayerParty
- str r0, [sp]
- cmp r1, 0
- beq _0802AAAC
- ldr r1, _0802ABA4 @ =gEnemyParty
- str r1, [sp]
-_0802AAAC:
- movs r2, 0
-_0802AAAE:
- ldr r1, _0802ABA8 @ =gUnknown_02024A6A
- ldr r0, _0802AB9C @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- adds r1, r2, 0x1
- str r1, [sp, 0x4]
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802AB54
- movs r0, 0x64
- adds r6, r2, 0
- muls r6, r0
- ldr r0, [sp]
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0802AB54
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0802AB54
- movs r5, 0
- ldr r1, _0802ABAC @ =0x0000ffff
- mov r8, r1
- mov r9, r6
- mov r1, r10
- lsls r0, r1, 1
- ldr r1, _0802ABB0 @ =0x02016024
- adds r6, r0, r1
-_0802AAF8:
- movs r7, 0
- adds r1, r5, 0
- adds r1, 0xD
- ldr r0, [sp]
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_802838C
- lsls r0, 24
- adds r1, r5, 0x1
- cmp r0, 0
- bne _0802AB4E
- ldr r0, _0802ABB4 @ =gUnknown_081FACFE
- ldrh r2, [r0]
- adds r3, r0, 0
- cmp r2, r8
- beq _0802AB42
- cmp r4, r2
- beq _0802AB38
- ldr r5, _0802ABAC @ =0x0000ffff
- adds r2, r3, 0
-_0802AB2A:
- adds r2, 0x2
- adds r7, 0x1
- ldrh r0, [r2]
- cmp r0, r5
- beq _0802AB42
- cmp r4, r0
- bne _0802AB2A
-_0802AB38:
- lsls r0, r7, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r8
- bne _0802AB4E
-_0802AB42:
- cmp r4, 0
- beq _0802AB4E
- strh r4, [r6]
- adds r6, 0x2
- movs r0, 0x1
- add r10, r0
-_0802AB4E:
- adds r5, r1, 0
- cmp r5, 0x3
- ble _0802AAF8
-_0802AB54:
- ldr r2, [sp, 0x4]
- cmp r2, 0x5
- ble _0802AAAE
- mov r1, r10
- cmp r1, 0
- beq _0802ABCC
- ldr r2, _0802ABB8 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802ABBC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _0802ABC0 @ =gUnknown_02024BEA
- bl Random
- movs r1, 0xFF
- ands r1, r0
- mov r0, r10
- muls r0, r1
- asrs r0, 8
- lsls r0, 1
- ldr r1, _0802ABB0 @ =0x02016024
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0802ABC4 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r1, _0802ABC8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802ABE6
- .align 2, 0
-_0802AB9C: .4byte gUnknown_02024C07
-_0802ABA0: .4byte gPlayerParty
-_0802ABA4: .4byte gEnemyParty
-_0802ABA8: .4byte gUnknown_02024A6A
-_0802ABAC: .4byte 0x0000ffff
-_0802ABB0: .4byte 0x02016024
-_0802ABB4: .4byte gUnknown_081FACFE
-_0802ABB8: .4byte gUnknown_02024C6C
-_0802ABBC: .4byte 0xfffffbff
-_0802ABC0: .4byte gUnknown_02024BEA
-_0802ABC4: .4byte gUnknown_02024C08
-_0802ABC8: .4byte gUnknown_02024C10
-_0802ABCC:
- ldr r3, _0802ABF8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802ABE6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ABF8: .4byte gUnknown_02024C10
- thumb_func_end atkDE_asistattackselect
-
- thumb_func_start atkDF_setmagiccoat
-atkDF_setmagiccoat: @ 802ABFC
- push {lr}
- ldr r1, _0802AC44 @ =gUnknown_02024C08
- ldr r3, _0802AC48 @ =gUnknown_02024C07
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802AC4C @ =gUnknown_02024D68
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802AC50 @ =gUnknown_02024A7E
- ldrb r1, [r0]
- ldr r0, _0802AC54 @ =gUnknown_02024A68
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802AC5C
- ldr r3, _0802AC58 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802AC74
- .align 2, 0
-_0802AC44: .4byte gUnknown_02024C08
-_0802AC48: .4byte gUnknown_02024C07
-_0802AC4C: .4byte gUnknown_02024D68
-_0802AC50: .4byte gUnknown_02024A7E
-_0802AC54: .4byte gUnknown_02024A68
-_0802AC58: .4byte gUnknown_02024C10
-_0802AC5C:
- ldr r0, _0802AC78 @ =gUnknown_02024D28
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802AC7C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802AC74:
- pop {r0}
- bx r0
- .align 2, 0
-_0802AC78: .4byte gUnknown_02024D28
-_0802AC7C: .4byte gUnknown_02024C10
- thumb_func_end atkDF_setmagiccoat
-
- thumb_func_start atkE0_setstealstatchange
-atkE0_setstealstatchange: @ 802AC80
- push {lr}
- ldr r2, _0802ACC4 @ =gUnknown_02024D68
- ldr r3, _0802ACC8 @ =gUnknown_02024C07
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802ACCC @ =gUnknown_02024A7E
- ldrb r1, [r0]
- ldr r0, _0802ACD0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802ACD8
- ldr r3, _0802ACD4 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802ACEE
- .align 2, 0
-_0802ACC4: .4byte gUnknown_02024D68
-_0802ACC8: .4byte gUnknown_02024C07
-_0802ACCC: .4byte gUnknown_02024A7E
-_0802ACD0: .4byte gUnknown_02024A68
-_0802ACD4: .4byte gUnknown_02024C10
-_0802ACD8:
- ldr r0, _0802ACF4 @ =gUnknown_02024D28
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802ACF8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802ACEE:
- pop {r0}
- bx r0
- .align 2, 0
-_0802ACF4: .4byte gUnknown_02024D28
-_0802ACF8: .4byte gUnknown_02024C10
- thumb_func_end atkE0_setstealstatchange
-
- thumb_func_start atkE1_802CBE4
-atkE1_802CBE4: @ 802ACFC
- push {r4-r6,lr}
- ldr r4, _0802ADA0 @ =0x02000000
- ldr r1, _0802ADA4 @ =0x000160dd
- adds r0, r4, r1
- ldrb r0, [r0]
- subs r1, 0xDA
- adds r4, r1
- strb r0, [r4]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0802ADA8 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x9
- strb r0, [r2, 0x1]
- ldr r3, _0802ADAC @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r2, _0802ADB0 @ =gUnknown_02024C08
- ldr r1, _0802ADB4 @ =gUnknown_02024A68
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802AD84
- adds r4, r2, 0
- ldr r6, _0802ADB8 @ =gBitTable
-_0802AD44:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _0802AD66
- ldr r0, _0802ADBC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r1, r0
- ldr r2, _0802ADB4 @ =gUnknown_02024A68
- cmp r1, 0
- beq _0802AD7A
-_0802AD66:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0802ADB4 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- adds r2, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bcc _0802AD44
-_0802AD7A:
- ldr r0, _0802ADB0 @ =gUnknown_02024C08
- ldrb r0, [r0]
- ldrb r2, [r2]
- cmp r0, r2
- bcc _0802ADC4
-_0802AD84:
- ldr r3, _0802ADC0 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802ADCC
- .align 2, 0
-_0802ADA0: .4byte 0x02000000
-_0802ADA4: .4byte 0x000160dd
-_0802ADA8: .4byte gUnknown_030041C0
-_0802ADAC: .4byte gBattleMons
-_0802ADB0: .4byte gUnknown_02024C08
-_0802ADB4: .4byte gUnknown_02024A68
-_0802ADB8: .4byte gBitTable
-_0802ADBC: .4byte gUnknown_02024C0C
-_0802ADC0: .4byte gUnknown_02024C10
-_0802ADC4:
- ldr r1, _0802ADD4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802ADCC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ADD4: .4byte gUnknown_02024C10
- thumb_func_end atkE1_802CBE4
-
- thumb_func_start sub_802ADD8
-sub_802ADD8: @ 802ADD8
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r6, _0802AE44 @ =gUnknown_02024C10
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _0802AE48 @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r4, _0802AE4C @ =gBattleMons
- ldrb r0, [r5]
- movs r1, 0x58
- mov r12, r1
- mov r1, r12
- muls r1, r0
- adds r0, r1, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1E
- bne _0802AE34
- adds r4, 0x4C
- adds r1, r4
- movs r0, 0
- str r0, [r1]
- ldr r2, _0802AE50 @ =gBitTable
- ldr r1, _0802AE54 @ =0x02000000
- ldrb r3, [r5]
- ldr r7, _0802AE58 @ =0x00016064
- adds r0, r3, r7
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- mov r0, r12
- muls r0, r3
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802AE34:
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AE44: .4byte gUnknown_02024C10
-_0802AE48: .4byte gUnknown_02024A60
-_0802AE4C: .4byte gBattleMons
-_0802AE50: .4byte gBitTable
-_0802AE54: .4byte 0x02000000
-_0802AE58: .4byte 0x00016064
- thumb_func_end sub_802ADD8
-
- thumb_func_start atkE3_jumpiffainted
-atkE3_jumpiffainted: @ 802AE5C
- push {r4,lr}
- ldr r4, _0802AE98 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _0802AE9C @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r2, _0802AEA0 @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0802AEA4
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0802AEAA
- .align 2, 0
-_0802AE98: .4byte gUnknown_02024C10
-_0802AE9C: .4byte gUnknown_02024A60
-_0802AEA0: .4byte gBattleMons
-_0802AEA4:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_0802AEAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atkE3_jumpiffainted
-
- thumb_func_start sub_802AEB0
-sub_802AEB0: @ 802AEB0
- push {lr}
- ldr r0, _0802AEC4 @ =gUnknown_0300428C
- ldrb r0, [r0]
- cmp r0, 0x7
- bhi _0802AF4C
- lsls r0, 2
- ldr r1, _0802AEC8 @ =_0802AECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802AEC4: .4byte gUnknown_0300428C
-_0802AEC8: .4byte _0802AECC
- .align 2, 0
-_0802AECC:
- .4byte _0802AEEC
- .4byte _0802AEF8
- .4byte _0802AF04
- .4byte _0802AF10
- .4byte _0802AF1C
- .4byte _0802AF28
- .4byte _0802AF34
- .4byte _0802AF40
-_0802AEEC:
- ldr r1, _0802AEF4 @ =gUnknown_02024D1E
- movs r0, 0x2
- b _0802AF50
- .align 2, 0
-_0802AEF4: .4byte gUnknown_02024D1E
-_0802AEF8:
- ldr r1, _0802AF00 @ =gUnknown_02024D1E
- movs r0, 0x1
- b _0802AF50
- .align 2, 0
-_0802AF00: .4byte gUnknown_02024D1E
-_0802AF04:
- ldr r1, _0802AF0C @ =gUnknown_02024D1E
- movs r0, 0x1B
- b _0802AF50
- .align 2, 0
-_0802AF0C: .4byte gUnknown_02024D1E
-_0802AF10:
- ldr r1, _0802AF18 @ =gUnknown_02024D1E
- movs r0, 0x17
- b _0802AF50
- .align 2, 0
-_0802AF18: .4byte gUnknown_02024D1E
-_0802AF1C:
- ldr r1, _0802AF24 @ =gUnknown_02024D1E
- movs r0, 0x16
- b _0802AF50
- .align 2, 0
-_0802AF24: .4byte gUnknown_02024D1E
-_0802AF28:
- ldr r1, _0802AF30 @ =gUnknown_02024D1E
- movs r0, 0x18
- b _0802AF50
- .align 2, 0
-_0802AF30: .4byte gUnknown_02024D1E
-_0802AF34:
- ldr r1, _0802AF3C @ =gUnknown_02024D1E
- movs r0, 0x7
- b _0802AF50
- .align 2, 0
-_0802AF3C: .4byte gUnknown_02024D1E
-_0802AF40:
- ldr r1, _0802AF48 @ =gUnknown_02024D1E
- movs r0, 0x8
- b _0802AF50
- .align 2, 0
-_0802AF48: .4byte gUnknown_02024D1E
-_0802AF4C:
- ldr r1, _0802AF60 @ =gUnknown_02024D1E
- movs r0, 0x5
-_0802AF50:
- strb r0, [r1, 0x3]
- ldr r1, _0802AF64 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802AF60: .4byte gUnknown_02024D1E
-_0802AF64: .4byte gUnknown_02024C10
- thumb_func_end sub_802AEB0
-
- thumb_func_start sub_802AF68
-sub_802AF68: @ 802AF68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r0, _0802AFB4 @ =gBaseStats
- mov r9, r0
- ldr r1, _0802AFB8 @ =gPickupItems
- mov r8, r1
-_0802AF7A:
- movs r0, 0x64
- adds r4, r7, 0
- muls r4, r0
- ldr r0, _0802AFBC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _0802AFC0
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x17]
- b _0802AFCA
- .align 2, 0
-_0802AFB4: .4byte gBaseStats
-_0802AFB8: .4byte gPickupItems
-_0802AFBC: .4byte gPlayerParty
-_0802AFC0:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x16]
-_0802AFCA:
- adds r4, r7, 0x1
- cmp r0, 0x35
- bne _0802B032
- cmp r5, 0
- beq _0802B032
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _0802B032
- cmp r6, 0
- bne _0802B032
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0802B032
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- mov r1, r8
- ldrh r0, [r1, 0x2]
- cmp r0, r3
- bgt _0802B020
- adds r1, 0x2
-_0802B012:
- adds r1, 0x4
- adds r2, 0x2
- cmp r2, 0x11
- bgt _0802B020
- ldrh r0, [r1]
- cmp r0, r3
- ble _0802B012
-_0802B020:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0802B04C @ =gPlayerParty
- adds r0, r1
- lsls r2, 1
- add r2, r8
- movs r1, 0xC
- bl SetMonData
-_0802B032:
- adds r7, r4, 0
- cmp r7, 0x5
- ble _0802AF7A
- ldr r1, _0802B050 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B04C: .4byte gPlayerParty
-_0802B050: .4byte gUnknown_02024C10
- thumb_func_end sub_802AF68
-
- thumb_func_start atkE6_castform_transform
-atkE6_castform_transform: @ 802B054
- push {r4,lr}
- ldr r4, _0802B0A8 @ =gUnknown_02024A60
- ldr r3, _0802B0AC @ =0x02000000
- ldr r1, _0802B0B0 @ =0x00016003
- adds r0, r3, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _0802B0B4 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0802B086
- ldr r0, _0802B0B8 @ =0x0001609b
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r2]
-_0802B086:
- ldr r1, _0802B0B8 @ =0x0001609b
- adds r0, r3, r1
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B0BC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B0A8: .4byte gUnknown_02024A60
-_0802B0AC: .4byte 0x02000000
-_0802B0B0: .4byte 0x00016003
-_0802B0B4: .4byte gBattleMons
-_0802B0B8: .4byte 0x0001609b
-_0802B0BC: .4byte gUnknown_02024C10
- thumb_func_end atkE6_castform_transform
-
- thumb_func_start atkE7_castform_switch
-atkE7_castform_switch: @ 802B0C0
- push {r4,r5,lr}
- ldr r1, _0802B0F4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r5, _0802B0F8 @ =0x02000000
- ldr r1, _0802B0FC @ =0x00016003
- adds r0, r5, r1
- ldrb r0, [r0]
- bl castform_switch
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0802B0EC
- ldr r0, _0802B100 @ =gUnknown_081D977D
- bl b_push_move_exec
- subs r1, r4, 0x1
- ldr r2, _0802B104 @ =0x0001609b
- adds r0, r5, r2
- strb r1, [r0]
-_0802B0EC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B0F4: .4byte gUnknown_02024C10
-_0802B0F8: .4byte 0x02000000
-_0802B0FC: .4byte 0x00016003
-_0802B100: .4byte gUnknown_081D977D
-_0802B104: .4byte 0x0001609b
- thumb_func_end atkE7_castform_switch
-
- thumb_func_start atkE8_settypebasedhalvers
-atkE8_settypebasedhalvers: @ 802B108
- push {r4,lr}
- movs r4, 0
- ldr r2, _0802B144 @ =gBattleMoves
- ldr r0, _0802B148 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xC9
- bne _0802B158
- ldr r1, _0802B14C @ =gUnknown_02024C98
- ldr r0, _0802B150 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802B17C
- orrs r1, r3
- str r1, [r2]
- ldr r0, _0802B154 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- b _0802B180
- .align 2, 0
-_0802B144: .4byte gBattleMoves
-_0802B148: .4byte gUnknown_02024BE6
-_0802B14C: .4byte gUnknown_02024C98
-_0802B150: .4byte gUnknown_02024C07
-_0802B154: .4byte gUnknown_02024D1E
-_0802B158:
- ldr r1, _0802B18C @ =gUnknown_02024C98
- ldr r0, _0802B190 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 10
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802B17C
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802B194 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- movs r4, 0x1
-_0802B17C:
- cmp r4, 0
- beq _0802B19C
-_0802B180:
- ldr r1, _0802B198 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B1B6
- .align 2, 0
-_0802B18C: .4byte gUnknown_02024C98
-_0802B190: .4byte gUnknown_02024C07
-_0802B194: .4byte gUnknown_02024D1E
-_0802B198: .4byte gUnknown_02024C10
-_0802B19C:
- ldr r3, _0802B1BC @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B1B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B1BC: .4byte gUnknown_02024C10
- thumb_func_end atkE8_settypebasedhalvers
-
- thumb_func_start sub_802B1C0
-sub_802B1C0: @ 802B1C0
- push {lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0802B276
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0802B276
- ldr r3, _0802B218 @ =word_2024DB8
- ldrb r0, [r3]
- ldr r2, _0802B21C @ =0x02000000
- cmp r0, 0
- beq _0802B202
- ldr r0, _0802B220 @ =0x0001601f
- adds r1, r2, r0
- movs r0, 0x2
- strb r0, [r1]
-_0802B202:
- ldrh r1, [r3]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0802B228
- ldr r0, _0802B224 @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8B
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B218: .4byte word_2024DB8
-_0802B21C: .4byte 0x02000000
-_0802B220: .4byte 0x0001601f
-_0802B224: .4byte 0x0001601c
-_0802B228:
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0802B240
- ldr r0, _0802B23C @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x85
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B23C: .4byte 0x0001601c
-_0802B240:
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0802B258
- ldr r0, _0802B254 @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8A
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B254: .4byte 0x0001601c
-_0802B258:
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0802B270
- ldr r0, _0802B26C @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8F
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B26C: .4byte 0x0001601c
-_0802B270:
- ldr r1, _0802B284 @ =0x0001601c
- adds r0, r2, r1
- strb r3, [r0]
-_0802B276:
- ldr r1, _0802B288 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802B284: .4byte 0x0001601c
-_0802B288: .4byte gUnknown_02024C10
- thumb_func_end sub_802B1C0
-
- thumb_func_start atkEA_recycleitem
-atkEA_recycleitem: @ 802B28C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, _0802B2F0 @ =gUnknown_02024A60
- ldr r0, _0802B2F4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r7]
- ldrb r2, [r7]
- lsls r1, r2, 1
- ldr r0, _0802B2F8 @ =0x020160cc
- adds r6, r1, r0
- ldrh r5, [r6]
- cmp r5, 0
- beq _0802B308
- ldr r4, _0802B2FC @ =gBattleMons
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- bne _0802B308
- ldr r1, _0802B300 @ =gUnknown_02024C04
- strh r5, [r1]
- strh r0, [r6]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r4
- ldrh r1, [r1]
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- muls r0, r3
- adds r1, r4, 0
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B304 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B322
- .align 2, 0
-_0802B2F0: .4byte gUnknown_02024A60
-_0802B2F4: .4byte gUnknown_02024C07
-_0802B2F8: .4byte 0x020160cc
-_0802B2FC: .4byte gBattleMons
-_0802B300: .4byte gUnknown_02024C04
-_0802B304: .4byte gUnknown_02024C10
-_0802B308:
- ldr r3, _0802B32C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B322:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B32C: .4byte gUnknown_02024C10
- thumb_func_end atkEA_recycleitem
-
- thumb_func_start atkEB_settypetoterrain
-atkEB_settypetoterrain: @ 802B330
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802B3A0 @ =gBattleMons
- mov r8, r0
- ldr r7, _0802B3A4 @ =gUnknown_02024C07
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- mov r1, r8
- adds r3, r0, r1
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- ldr r5, _0802B3A8 @ =gTerrainToType
- ldr r4, _0802B3AC @ =gUnknown_0300428C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r2, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r2, 0
- cmp r0, r1
- beq _0802B3B8
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _0802B3B8
- mov r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r8
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- adds r1, 0x22
- strb r0, [r1]
- ldr r1, _0802B3B0 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _0802B3B4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B3D2
- .align 2, 0
-_0802B3A0: .4byte gBattleMons
-_0802B3A4: .4byte gUnknown_02024C07
-_0802B3A8: .4byte gTerrainToType
-_0802B3AC: .4byte gUnknown_0300428C
-_0802B3B0: .4byte gUnknown_030041C0
-_0802B3B4: .4byte gUnknown_02024C10
-_0802B3B8:
- ldr r3, _0802B3DC @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B3D2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B3DC: .4byte gUnknown_02024C10
- thumb_func_end atkEB_settypetoterrain
-
- thumb_func_start sub_802B3E0
-sub_802B3E0: @ 802B3E0
- push {r4,r5,lr}
- ldr r5, _0802B45C @ =gUnknown_02024C07
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r4, _0802B460 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r0, _0802B464 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802B490
- ldr r0, _0802B468 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802B46C @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802B490
- ldr r0, _0802B470 @ =gUnknown_02024C18
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802B490
- ldr r1, _0802B474 @ =gUnknown_02024C60
- lsls r0, r3, 1
- adds r0, r1
- ldrh r2, [r0]
- cmp r2, 0xE4
- bne _0802B490
- ldr r0, _0802B478 @ =gUnknown_02024A76
- adds r0, r3, r0
- movs r1, 0xB
- strb r1, [r0]
- ldr r0, _0802B47C @ =gUnknown_02024BE6
- strh r2, [r0]
- ldr r1, _0802B480 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802B484 @ =0x02000000
- ldr r0, _0802B488 @ =0x00016002
- adds r2, r1, r0
- movs r0, 0x1
- strb r0, [r2]
- ldrb r0, [r5]
- ldr r2, _0802B48C @ =0x000160a7
- adds r1, r2
- strb r0, [r1]
- ldrb r0, [r4]
- strb r0, [r5]
- b _0802B4AA
- .align 2, 0
-_0802B45C: .4byte gUnknown_02024C07
-_0802B460: .4byte gUnknown_02024A60
-_0802B464: .4byte gUnknown_020239F8
-_0802B468: .4byte gUnknown_02024C0C
-_0802B46C: .4byte gBitTable
-_0802B470: .4byte gUnknown_02024C18
-_0802B474: .4byte gUnknown_02024C60
-_0802B478: .4byte gUnknown_02024A76
-_0802B47C: .4byte gUnknown_02024BE6
-_0802B480: .4byte gUnknown_02024C10
-_0802B484: .4byte 0x02000000
-_0802B488: .4byte 0x00016002
-_0802B48C: .4byte 0x000160a7
-_0802B490:
- ldr r3, _0802B4B0 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B4AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B4B0: .4byte gUnknown_02024C10
- thumb_func_end sub_802B3E0
-
- thumb_func_start sub_802B4B4
-sub_802B4B4: @ 802B4B4
- push {r4,r5,lr}
- ldr r1, _0802B4DC @ =gUnknown_02024C0A
- ldr r3, _0802B4E0 @ =gUnknown_02024C07
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802B4E4 @ =gUnknown_02024C08
- lsls r0, 24
- lsrs r0, 24
- adds r4, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bne _0802B4F0
- ldr r0, _0802B4E8 @ =0x02000000
- ldr r5, _0802B4EC @ =0x00016003
- adds r1, r0, r5
- ldrb r1, [r1]
- strb r1, [r2]
- strb r1, [r3]
- b _0802B4FA
- .align 2, 0
-_0802B4DC: .4byte gUnknown_02024C0A
-_0802B4E0: .4byte gUnknown_02024C07
-_0802B4E4: .4byte gUnknown_02024C08
-_0802B4E8: .4byte 0x02000000
-_0802B4EC: .4byte 0x00016003
-_0802B4F0:
- ldr r0, _0802B510 @ =0x02000000
- ldr r3, _0802B514 @ =0x00016003
- adds r1, r0, r3
- ldrb r1, [r1]
- strb r1, [r2]
-_0802B4FA:
- ldrb r1, [r4]
- ldr r5, _0802B514 @ =0x00016003
- adds r0, r5
- strb r1, [r0]
- ldr r1, _0802B518 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B510: .4byte 0x02000000
-_0802B514: .4byte 0x00016003
-_0802B518: .4byte gUnknown_02024C10
- thumb_func_end sub_802B4B4
-
- thumb_func_start sub_802B51C
-sub_802B51C: @ 802B51C
- push {r4,lr}
- ldr r0, _0802B56C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802B570 @ =gUnknown_02024C80
- lsls r3, r0, 1
- adds r0, r3, r0
- lsls r0, 2
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _0802B544
- ldrb r2, [r4, 0x1]
- cmp r2, 0
- beq _0802B58C
-_0802B544:
- ldr r2, _0802B574 @ =gUnknown_02024C7A
- adds r2, r3, r2
- ldrh r1, [r2]
- ldr r0, _0802B578 @ =0x0000fffe
- ands r0, r1
- movs r3, 0
- ldr r1, _0802B57C @ =0x0000fffd
- ands r0, r1
- strh r0, [r2]
- strb r3, [r4]
- strb r3, [r4, 0x1]
- ldr r0, _0802B580 @ =0x02000000
- ldr r2, _0802B584 @ =0x00016002
- adds r1, r0, r2
- movs r2, 0x1
- strb r2, [r1]
- ldr r3, _0802B588 @ =0x000160a1
- adds r0, r3
- b _0802B598
- .align 2, 0
-_0802B56C: .4byte gUnknown_02024C07
-_0802B570: .4byte gUnknown_02024C80
-_0802B574: .4byte gUnknown_02024C7A
-_0802B578: .4byte 0x0000fffe
-_0802B57C: .4byte 0x0000fffd
-_0802B580: .4byte 0x02000000
-_0802B584: .4byte 0x00016002
-_0802B588: .4byte 0x000160a1
-_0802B58C:
- ldr r0, _0802B5A8 @ =0x02000000
- ldr r3, _0802B5AC @ =0x00016002
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0802B5B0 @ =0x000160a1
- adds r0, r1
-_0802B598:
- strb r2, [r0]
- ldr r1, _0802B5B4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B5A8: .4byte 0x02000000
-_0802B5AC: .4byte 0x00016002
-_0802B5B0: .4byte 0x000160a1
-_0802B5B4: .4byte gUnknown_02024C10
- thumb_func_end sub_802B51C
-
- thumb_func_start sub_802B5B8
-sub_802B5B8: @ 802B5B8
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _0802B5F8 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0802B5C6
- b _0802B94E
-_0802B5C6:
- ldr r5, _0802B5FC @ =gUnknown_02024A60
- ldr r0, _0802B600 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r6, _0802B604 @ =gUnknown_02024C08
- movs r1, 0x1
- eors r0, r1
- strb r0, [r6]
- ldr r0, _0802B608 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802B614
- movs r0, 0
- movs r1, 0x5
- bl dp01_build_cmdbuf_x0D_a
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B60C @ =gUnknown_02024C10
- ldr r0, _0802B610 @ =gUnknown_081D9F35
- b _0802B94C
- .align 2, 0
-_0802B5F8: .4byte gUnknown_02024A64
-_0802B5FC: .4byte gUnknown_02024A60
-_0802B600: .4byte gUnknown_02024C07
-_0802B604: .4byte gUnknown_02024C08
-_0802B608: .4byte gUnknown_020239F8
-_0802B60C: .4byte gUnknown_02024C10
-_0802B610: .4byte gUnknown_081D9F35
-_0802B614:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0802B63C
- movs r0, 0
- movs r1, 0x4
- bl dp01_build_cmdbuf_x0D_a
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B634 @ =gUnknown_02024C10
- ldr r0, _0802B638 @ =gUnknown_081D9F00
- b _0802B94C
- .align 2, 0
-_0802B634: .4byte gUnknown_02024C10
-_0802B638: .4byte gUnknown_081D9F00
-_0802B63C:
- ldr r0, _0802B660 @ =gUnknown_02024C04
- ldrh r0, [r0]
- cmp r0, 0x5
- bne _0802B66C
- ldr r0, _0802B664 @ =0x02000000
- ldr r1, _0802B668 @ =0x00016089
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 8
- subs r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- b _0802B684
- .align 2, 0
-_0802B660: .4byte gUnknown_02024C04
-_0802B664: .4byte 0x02000000
-_0802B668: .4byte 0x00016089
-_0802B66C:
- ldr r3, _0802B6A0 @ =gBaseStats
- ldr r2, _0802B6A4 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r5, [r0, 0x8]
-_0802B684:
- ldr r2, _0802B6A8 @ =gUnknown_02024C04
- ldrh r0, [r2]
- cmp r0, 0x5
- bhi _0802B68E
- b _0802B784
-_0802B68E:
- subs r0, 0x6
- cmp r0, 0x6
- bls _0802B696
- b _0802B78E
-_0802B696:
- lsls r0, 2
- ldr r1, _0802B6AC @ =_0802B6B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802B6A0: .4byte gBaseStats
-_0802B6A4: .4byte gBattleMons
-_0802B6A8: .4byte gUnknown_02024C04
-_0802B6AC: .4byte _0802B6B0
- .align 2, 0
-_0802B6B0:
- .4byte _0802B6CC
- .4byte _0802B6FC
- .4byte _0802B70E
- .4byte _0802B73C
- .4byte _0802B76C
- .4byte _0802B72E
- .4byte _0802B72E
-_0802B6CC:
- ldr r2, _0802B6F4 @ =gBattleMons
- ldr r0, _0802B6F8 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0xB
- beq _0802B760
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _0802B760
- cmp r1, 0x6
- beq _0802B760
- cmp r0, 0x6
- beq _0802B760
- b _0802B72E
- .align 2, 0
-_0802B6F4: .4byte gBattleMons
-_0802B6F8: .4byte gUnknown_02024C08
-_0802B6FC:
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0xA
- cmp r0, 0x5
- bne _0802B78E
- movs r4, 0x23
- b _0802B78E
-_0802B70E:
- ldr r2, _0802B734 @ =gBattleMons
- ldr r0, _0802B738 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- cmp r1, 0x27
- bhi _0802B72E
- movs r0, 0x28
- subs r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bhi _0802B78E
-_0802B72E:
- movs r4, 0xA
- b _0802B78E
- .align 2, 0
-_0802B734: .4byte gBattleMons
-_0802B738: .4byte gUnknown_02024C08
-_0802B73C:
- ldr r2, _0802B764 @ =gBattleMons
- ldr r0, _0802B768 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- movs r4, 0xA
- cmp r0, 0
- beq _0802B78E
-_0802B760:
- movs r4, 0x1E
- b _0802B78E
- .align 2, 0
-_0802B764: .4byte gBattleMons
-_0802B768: .4byte gUnknown_02024C08
-_0802B76C:
- ldr r0, _0802B780 @ =gUnknown_030042E0
- ldrb r0, [r0, 0x13]
- adds r0, 0xA
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x28
- bls _0802B78E
- movs r4, 0x28
- b _0802B78E
- .align 2, 0
-_0802B780: .4byte gUnknown_030042E0
-_0802B784:
- ldr r1, _0802B7F4 @ =gBallCatchBonuses
- ldrh r0, [r2]
- subs r0, 0x2
- adds r0, r1
- ldrb r4, [r0]
-_0802B78E:
- adds r0, r5, 0
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- ldr r5, _0802B7F8 @ =gBattleMons
- ldr r1, _0802B7FC @ =gUnknown_02024C08
- ldrb r1, [r1]
- movs r7, 0x58
- adds r4, r1, 0
- muls r4, r7
- adds r3, r4, r5
- ldrh r2, [r3, 0x2C]
- lsls r1, r2, 1
- adds r1, r2
- ldrh r2, [r3, 0x28]
- lsls r2, 1
- subs r2, r1, r2
- muls r0, r2
- bl __divsi3
- adds r6, r0, 0
- adds r5, 0x4C
- adds r4, r5
- ldr r4, [r4]
- movs r0, 0x27
- ands r0, r4
- cmp r0, 0
- beq _0802B7CA
- lsls r6, 1
-_0802B7CA:
- ands r4, r7
- cmp r4, 0
- beq _0802B7DC
- lsls r0, r6, 4
- subs r0, r6
- movs r1, 0xA
- bl __udivsi3
- adds r6, r0, 0
-_0802B7DC:
- ldr r1, _0802B800 @ =gUnknown_02024C04
- ldrh r0, [r1]
- cmp r0, 0x5
- beq _0802B81C
- cmp r0, 0x1
- bne _0802B808
- ldr r0, _0802B804 @ =gUnknown_030042E0
- ldrb r1, [r0, 0x5]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x5]
- b _0802B81C
- .align 2, 0
-_0802B7F4: .4byte gBallCatchBonuses
-_0802B7F8: .4byte gBattleMons
-_0802B7FC: .4byte gUnknown_02024C08
-_0802B800: .4byte gUnknown_02024C04
-_0802B804: .4byte gUnknown_030042E0
-_0802B808:
- ldr r0, _0802B860 @ =gUnknown_030042E0
- ldrh r1, [r1]
- adds r0, r1
- adds r1, r0, 0
- adds r1, 0x34
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _0802B81C
- adds r0, 0x1
- strb r0, [r1]
-_0802B81C:
- cmp r6, 0xFE
- bls _0802B880
- movs r0, 0
- movs r1, 0x4
- bl dp01_build_cmdbuf_x0D_a
- ldr r0, _0802B864 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B868 @ =gUnknown_02024C10
- ldr r0, _0802B86C @ =gUnknown_081D9EC2
- str r0, [r1]
- ldr r1, _0802B870 @ =gUnknown_02024A6A
- ldr r0, _0802B874 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802B878 @ =gEnemyParty
- adds r0, r1
- ldr r2, _0802B87C @ =gUnknown_02024C04
- movs r1, 0x26
- bl SetMonData
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _0802B90E
- b _0802B938
- .align 2, 0
-_0802B860: .4byte gUnknown_030042E0
-_0802B864: .4byte gUnknown_02024A60
-_0802B868: .4byte gUnknown_02024C10
-_0802B86C: .4byte gUnknown_081D9EC2
-_0802B870: .4byte gUnknown_02024A6A
-_0802B874: .4byte gUnknown_02024C08
-_0802B878: .4byte gEnemyParty
-_0802B87C: .4byte gUnknown_02024C04
-_0802B880:
- movs r0, 0xFF
- lsls r0, 16
- adds r1, r6, 0
- bl __udivsi3
- bl Sqrt
- lsls r0, 16
- lsrs r0, 16
- bl Sqrt
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _0802B8A8 @ =0x000ffff0
- adds r1, r6, 0
- bl __udivsi3
- adds r6, r0, 0
- movs r4, 0
- b _0802B8B2
- .align 2, 0
-_0802B8A8: .4byte 0x000ffff0
-_0802B8AC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0802B8B2:
- cmp r4, 0x3
- bhi _0802B8C2
- bl Random
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcc _0802B8AC
-_0802B8C2:
- ldr r5, _0802B918 @ =gUnknown_02024C04
- ldrh r0, [r5]
- cmp r0, 0x1
- bne _0802B8CC
- movs r4, 0x4
-_0802B8CC:
- movs r0, 0
- adds r1, r4, 0
- bl dp01_build_cmdbuf_x0D_a
- ldr r0, _0802B91C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- cmp r4, 0x4
- bne _0802B944
- ldr r1, _0802B920 @ =gUnknown_02024C10
- ldr r0, _0802B924 @ =gUnknown_081D9EC2
- str r0, [r1]
- ldr r1, _0802B928 @ =gUnknown_02024A6A
- ldr r0, _0802B92C @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802B930 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- adds r2, r5, 0
- bl SetMonData
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _0802B938
-_0802B90E:
- ldr r1, _0802B934 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- b _0802B94E
- .align 2, 0
-_0802B918: .4byte gUnknown_02024C04
-_0802B91C: .4byte gUnknown_02024A60
-_0802B920: .4byte gUnknown_02024C10
-_0802B924: .4byte gUnknown_081D9EC2
-_0802B928: .4byte gUnknown_02024A6A
-_0802B92C: .4byte gUnknown_02024C08
-_0802B930: .4byte gEnemyParty
-_0802B934: .4byte gUnknown_02024D1E
-_0802B938:
- ldr r1, _0802B940 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802B94E
- .align 2, 0
-_0802B940: .4byte gUnknown_02024D1E
-_0802B944:
- ldr r0, _0802B954 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r1, _0802B958 @ =gUnknown_02024C10
- ldr r0, _0802B95C @ =gUnknown_081D9F0A
-_0802B94C:
- str r0, [r1]
-_0802B94E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B954: .4byte gUnknown_02024D1E
-_0802B958: .4byte gUnknown_02024C10
-_0802B95C: .4byte gUnknown_081D9F0A
- thumb_func_end sub_802B5B8
-
- thumb_func_start sub_802B960
-sub_802B960: @ 802B960
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _0802B9C8 @ =gUnknown_02024A6A
- mov r9, r0
- ldr r5, _0802B9CC @ =gUnknown_02024C07
- ldrb r0, [r5]
- movs r4, 0x1
- eors r0, r4
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _0802B9D0 @ =gEnemyParty
- adds r0, r6
- bl GiveMonToPlayer
- ldr r2, _0802B9D4 @ =gUnknown_030042E0
- ldr r1, _0802B9D8 @ =gBattleMons
- ldrb r0, [r5]
- eors r4, r0
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0x28]
- lsls r4, 1
- add r4, r9
- ldrh r0, [r4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- adds r2, 0x2A
- movs r1, 0x2
- bl GetMonData
- ldr r1, _0802B9DC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B9C8: .4byte gUnknown_02024A6A
-_0802B9CC: .4byte gUnknown_02024C07
-_0802B9D0: .4byte gEnemyParty
-_0802B9D4: .4byte gUnknown_030042E0
-_0802B9D8: .4byte gBattleMons
-_0802B9DC: .4byte gUnknown_02024C10
- thumb_func_end sub_802B960
-
- thumb_func_start sub_802B9E0
-sub_802B9E0: @ 802B9E0
- push {r4-r6,lr}
- ldr r4, _0802BA20 @ =gBattleMons
- ldr r6, _0802BA24 @ =gUnknown_02024C08
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0802BA2C
- ldr r3, _0802BA28 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802BA82
- .align 2, 0
-_0802BA20: .4byte gBattleMons
-_0802BA24: .4byte gUnknown_02024C08
-_0802BA28: .4byte gUnknown_02024C10
-_0802BA2C:
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl sub_8090D90
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r2, r4
- ldrh r0, [r0]
- cmp r0, 0xC9
- bne _0802BA5C
- ldr r0, _0802BA88 @ =gSaveBlock2
- adds r1, r4, 0
- adds r1, 0x48
- adds r1, r2, r1
- ldr r1, [r1]
- str r1, [r0, 0x1C]
-_0802BA5C:
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r2, r4
- ldrh r1, [r0]
- movs r0, 0x9A
- lsls r0, 1
- cmp r1, r0
- bne _0802BA7A
- ldr r0, _0802BA88 @ =gSaveBlock2
- adds r1, r4, 0
- adds r1, 0x48
- adds r1, r2, r1
- ldr r1, [r1]
- str r1, [r0, 0x20]
-_0802BA7A:
- ldr r1, _0802BA8C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802BA82:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BA88: .4byte gSaveBlock2
-_0802BA8C: .4byte gUnknown_02024C10
- thumb_func_end sub_802B9E0
-
- thumb_func_start sub_802BA90
-sub_802BA90: @ 802BA90
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, _0802BAA8 @ =gUnknown_02024D1E
- ldrb r1, [r7]
- cmp r1, 0x1
- beq _0802BAC6
- cmp r1, 0x1
- bgt _0802BAAC
- cmp r1, 0
- beq _0802BAB8
- b _0802BBC4
- .align 2, 0
-_0802BAA8: .4byte gUnknown_02024D1E
-_0802BAAC:
- cmp r1, 0x2
- beq _0802BB10
- cmp r1, 0x3
- bne _0802BAB6
- b _0802BBB0
-_0802BAB6:
- b _0802BBC4
-_0802BAB8:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- b _0802BB6E
-_0802BAC6:
- ldr r0, _0802BB04 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r4, _0802BB08 @ =gBattleMons
- ldr r6, _0802BB0C @ =gUnknown_02024C08
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r6]
- adds r2, r1, 0
- muls r2, r5
- adds r1, r4, 0
- adds r1, 0x54
- adds r1, r2, r1
- ldr r1, [r1]
- adds r4, 0x48
- adds r2, r4
- ldr r2, [r2]
- bl sub_809070C
- strb r0, [r7, 0x1]
- b _0802BB72
- .align 2, 0
-_0802BB04: .4byte gPaletteFade
-_0802BB08: .4byte gBattleMons
-_0802BB0C: .4byte gUnknown_02024C08
-_0802BB10:
- ldr r0, _0802BB7C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r0, _0802BB80 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802BB84 @ =sub_800F808
- cmp r1, r0
- bne _0802BBC4
- ldr r2, _0802BB88 @ =gTasks
- ldrb r1, [r7, 0x1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r4, [r0, 0x4]
- cmp r4, 0
- bne _0802BBC4
- ldr r0, _0802BB8C @ =gBattleTerrainTiles_Building
- ldr r1, _0802BB90 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0802BB94 @ =gBattleTerrainTilemap_Building
- ldr r1, _0802BB98 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0802BB9C @ =gBattleTerrainPalette_BattleTower
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r1, _0802BBA0 @ =REG_BG3CNT
- ldr r2, _0802BBA4 @ =0x00005a0b
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0802BBA8 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0802BBAC @ =0x0000fffc
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
-_0802BB6E:
- bl BeginNormalPaletteFade
-_0802BB72:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _0802BBC4
- .align 2, 0
-_0802BB7C: .4byte gPaletteFade
-_0802BB80: .4byte gMain
-_0802BB84: .4byte sub_800F808
-_0802BB88: .4byte gTasks
-_0802BB8C: .4byte gBattleTerrainTiles_Building
-_0802BB90: .4byte 0x06008000
-_0802BB94: .4byte gBattleTerrainTilemap_Building
-_0802BB98: .4byte 0x0600d000
-_0802BB9C: .4byte gBattleTerrainPalette_BattleTower
-_0802BBA0: .4byte REG_BG3CNT
-_0802BBA4: .4byte 0x00005a0b
-_0802BBA8: .4byte gUnknown_030041B0
-_0802BBAC: .4byte 0x0000fffc
-_0802BBB0:
- ldr r0, _0802BBCC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r1, _0802BBD0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802BBC4:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BBCC: .4byte gPaletteFade
-_0802BBD0: .4byte gUnknown_02024C10
- thumb_func_end sub_802BA90
-
- thumb_func_start sub_802BBD4
-sub_802BBD4: @ 802BBD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- mov r2, r12
- cmp r2, r7
- bgt _0802BC5A
- lsls r1, r6, 1
- ldr r0, _0802BC20 @ =0x0600c000
- adds r1, r0
- mov r9, r1
-_0802BC06:
- adds r1, r6, 0
- adds r0, r2, 0x1
- mov r10, r0
- cmp r1, r5
- bgt _0802BC54
- lsls r0, r2, 6
- mov r4, r9
- adds r3, r4, r0
-_0802BC16:
- cmp r2, r12
- bne _0802BC28
- ldr r0, _0802BC24 @ =0x00001022
- b _0802BC36
- .align 2, 0
-_0802BC20: .4byte 0x0600c000
-_0802BC24: .4byte 0x00001022
-_0802BC28:
- cmp r2, r7
- bne _0802BC34
- ldr r0, _0802BC30 @ =0x00001028
- b _0802BC36
- .align 2, 0
-_0802BC30: .4byte 0x00001028
-_0802BC34:
- ldr r0, _0802BC68 @ =0x00001025
-_0802BC36:
- cmp r1, r6
- beq _0802BC42
- adds r0, 0x1
- cmp r1, r5
- bne _0802BC42
- adds r0, 0x1
-_0802BC42:
- mov r4, r8
- cmp r4, 0
- beq _0802BC4A
- movs r0, 0
-_0802BC4A:
- strh r0, [r3]
- adds r3, 0x2
- adds r1, 0x1
- cmp r1, r5
- ble _0802BC16
-_0802BC54:
- mov r2, r10
- cmp r2, r7
- ble _0802BC06
-_0802BC5A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC68: .4byte 0x00001025
- thumb_func_end sub_802BBD4
-
- thumb_func_start sub_802BC6C
-sub_802BC6C: @ 802BC6C
- push {lr}
- ldr r0, _0802BC88 @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x1]
- lsls r1, 28
- movs r0, 0x90
- lsls r0, 23
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xC8
- bl sub_814A880
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC88: .4byte gUnknown_02024D1E
- thumb_func_end sub_802BC6C
-
- thumb_func_start nullsub_6
-nullsub_6: @ 802BC8C
- bx lr
- thumb_func_end nullsub_6
-
- thumb_func_start atkF3_receive_new_pokemon_maybe
-atkF3_receive_new_pokemon_maybe: @ 802BC90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _0802BCB4 @ =gUnknown_02024D1E
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _0802BCA8
- b _0802BEDA
-_0802BCA8:
- lsls r0, r1, 2
- ldr r1, _0802BCB8 @ =_0802BCBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802BCB4: .4byte gUnknown_02024D1E
-_0802BCB8: .4byte _0802BCBC
- .align 2, 0
-_0802BCBC:
- .4byte _0802BCD0
- .4byte _0802BCEC
- .4byte _0802BD84
- .4byte _0802BE50
- .4byte _0802BEA4
-_0802BCD0:
- bl sub_8023A80
- ldr r0, _0802BCE8 @ =gUnknown_02024D1E
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _0802BEDA
- .align 2, 0
-_0802BCE8: .4byte gUnknown_02024D1E
-_0802BCEC:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802BD10
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0802BD10
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_0802BD10:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802BD36
- ldr r4, _0802BD64 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _0802BD36
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_0802BD36:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802BD68
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802BD64 @ =gUnknown_02024D1E
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0802BD7A
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- bl BeginFastPaletteFade
- b _0802BEDA
- .align 2, 0
-_0802BD60: .4byte gMain
-_0802BD64: .4byte gUnknown_02024D1E
-_0802BD68:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0802BD72
- b _0802BEDA
-_0802BD72:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802BD80 @ =gUnknown_02024D1E
-_0802BD7A:
- movs r0, 0x4
- strb r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BD80: .4byte gUnknown_02024D1E
-_0802BD84:
- ldr r0, _0802BE34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802BD92
- b _0802BEDA
-_0802BD92:
- ldr r7, _0802BE38 @ =gUnknown_02024A6A
- ldr r0, _0802BE3C @ =gUnknown_02024C07
- mov r10, r0
- ldrb r0, [r0]
- movs r4, 0x1
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r1, _0802BE40 @ =gEnemyParty
- mov r8, r1
- add r0, r8
- movs r1, 0x2
- ldr r2, _0802BE44 @ =0x02016079
- bl GetMonData
- mov r1, r10
- ldrb r0, [r1]
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- movs r1, 0xB
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- mov r1, r10
- ldrb r0, [r1]
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- bl GetMonGender
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r10
- ldrb r0, [r1]
- eors r4, r0
- lsls r4, 1
- adds r4, r7
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, _0802BE48 @ =sub_800F808
- str r0, [sp, 0x4]
- movs r0, 0x2
- ldr r1, _0802BE44 @ =0x02016079
- adds r2, r6, 0
- adds r3, r5, 0
- bl DoNamingScreen
- ldr r1, _0802BE4C @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BE34: .4byte gPaletteFade
-_0802BE38: .4byte gUnknown_02024A6A
-_0802BE3C: .4byte gUnknown_02024C07
-_0802BE40: .4byte gEnemyParty
-_0802BE44: .4byte 0x02016079
-_0802BE48: .4byte sub_800F808
-_0802BE4C: .4byte gUnknown_02024D1E
-_0802BE50:
- ldr r0, _0802BE88 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802BE8C @ =sub_800F808
- cmp r1, r0
- bne _0802BEDA
- ldr r0, _0802BE90 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BEDA
- ldr r2, _0802BE94 @ =gUnknown_02024A6A
- ldr r0, _0802BE98 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x1
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802BE9C @ =gEnemyParty
- adds r0, r1
- ldr r2, _0802BEA0 @ =0x02016079
- movs r1, 0x2
- bl SetMonData
- b _0802BEC0
- .align 2, 0
-_0802BE88: .4byte gMain
-_0802BE8C: .4byte sub_800F808
-_0802BE90: .4byte gPaletteFade
-_0802BE94: .4byte gUnknown_02024A6A
-_0802BE98: .4byte gUnknown_02024C07
-_0802BE9C: .4byte gEnemyParty
-_0802BEA0: .4byte 0x02016079
-_0802BEA4:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _0802BEC0
- ldr r1, _0802BEBC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BEBC: .4byte gUnknown_02024C10
-_0802BEC0:
- ldr r3, _0802BEEC @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802BEDA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BEEC: .4byte gUnknown_02024C10
- thumb_func_end atkF3_receive_new_pokemon_maybe
-
- thumb_func_start sub_802BEF0
-sub_802BEF0: @ 802BEF0
- ldr r2, _0802BF10 @ =gBattleMons
- ldr r0, _0802BF14 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldr r0, _0802BF18 @ =gUnknown_02024BEC
- ldr r2, [r0]
- ldrh r0, [r1, 0x28]
- subs r0, r2
- strh r0, [r1, 0x28]
- ldr r1, _0802BF1C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802BF10: .4byte gBattleMons
-_0802BF14: .4byte gUnknown_02024C07
-_0802BF18: .4byte gUnknown_02024BEC
-_0802BF1C: .4byte gUnknown_02024C10
- thumb_func_end sub_802BEF0
-
- thumb_func_start sub_802BF20
-sub_802BF20: @ 802BF20
- ldr r1, _0802BF3C @ =gBattleMons
- ldr r0, _0802BF40 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- ldr r1, _0802BF44 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802BF3C: .4byte gBattleMons
-_0802BF40: .4byte gUnknown_02024C07
-_0802BF44: .4byte gUnknown_02024C10
- thumb_func_end sub_802BF20
-
- thumb_func_start sub_802BF48
-sub_802BF48: @ 802BF48
- ldr r1, _0802BF50 @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF50: .4byte gUnknown_02024A7F
- thumb_func_end sub_802BF48
-
- thumb_func_start sub_802BF54
-sub_802BF54: @ 802BF54
- ldr r1, _0802BF64 @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
- ldr r1, _0802BF68 @ =gUnknown_02024A7E
- ldr r0, _0802BF6C @ =gUnknown_02024A68
- ldrb r0, [r0]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF64: .4byte gUnknown_02024A7F
-_0802BF68: .4byte gUnknown_02024A7E
-_0802BF6C: .4byte gUnknown_02024A68
- thumb_func_end sub_802BF54
-
- thumb_func_start nullsub_91
-nullsub_91: @ 802BF70
- bx lr
- thumb_func_end nullsub_91
-
- thumb_func_start sub_802BF74
-sub_802BF74: @ 802BF74
- ldr r1, _0802BF8C @ =gUnknown_03004330
- ldr r0, _0802BF90 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802BF94 @ =sub_802C014
- str r1, [r0]
- ldr r1, _0802BF98 @ =gUnknown_02024E6D
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF8C: .4byte gUnknown_03004330
-_0802BF90: .4byte gUnknown_02024A60
-_0802BF94: .4byte sub_802C014
-_0802BF98: .4byte gUnknown_02024E6D
- thumb_func_end sub_802BF74
-
- thumb_func_start dp01_tbl1_exec_completed
-dp01_tbl1_exec_completed: @ 802BF9C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0802BFDC @ =gUnknown_03004330
- ldr r4, _0802BFE0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802BFE4 @ =sub_802C014
- str r1, [r0]
- ldr r0, _0802BFE8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802BFF0
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _0802BFEC @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0802C002
- .align 2, 0
-_0802BFDC: .4byte gUnknown_03004330
-_0802BFE0: .4byte gUnknown_02024A60
-_0802BFE4: .4byte sub_802C014
-_0802BFE8: .4byte gUnknown_020239F8
-_0802BFEC: .4byte gUnknown_02023A60
-_0802BFF0:
- ldr r2, _0802C00C @ =gUnknown_02024A64
- ldr r1, _0802C010 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0802C002:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C00C: .4byte gUnknown_02024A64
-_0802C010: .4byte gBitTable
- thumb_func_end dp01_tbl1_exec_completed
-
- thumb_func_start sub_802C014
-sub_802C014: @ 802C014
- push {lr}
- ldr r2, _0802C048 @ =gUnknown_02024A64
- ldr r1, _0802C04C @ =gBitTable
- ldr r0, _0802C050 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802C060
- ldr r0, _0802C054 @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0802C05C
- ldr r0, _0802C058 @ =gUnknown_081FAD98
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _0802C060
- .align 2, 0
-_0802C048: .4byte gUnknown_02024A64
-_0802C04C: .4byte gBitTable
-_0802C050: .4byte gUnknown_02024A60
-_0802C054: .4byte gUnknown_02023A60
-_0802C058: .4byte gUnknown_081FAD98
-_0802C05C:
- bl dp01_tbl1_exec_completed
-_0802C060:
- pop {r0}
- bx r0
- thumb_func_end sub_802C014
-
- thumb_func_start bx_0802E404
-bx_0802E404: @ 802C064
- push {lr}
- ldr r2, _0802C08C @ =gSprites
- ldr r1, _0802C090 @ =gUnknown_02024BE0
- ldr r0, _0802C094 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0802C086
- bl dp01_tbl1_exec_completed
-_0802C086:
- pop {r0}
- bx r0
- .align 2, 0
-_0802C08C: .4byte gSprites
-_0802C090: .4byte gUnknown_02024BE0
-_0802C094: .4byte gUnknown_02024A60
- thumb_func_end bx_0802E404
-
- thumb_func_start sub_802C098
-sub_802C098: @ 802C098
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _0802C0FC @ =gUnknown_02023A60
- ldr r4, _0802C100 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r2, r0, 9
- adds r1, r7, 0x2
- adds r1, r2, r1
- ldrb r5, [r1]
- adds r1, r7, 0x3
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r5, r1
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldr r0, _0802C104 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C13E
- movs r0, 0x5
- bl PlaySE
- bl sub_814A7FC
- ldr r1, _0802C108 @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0802C11C
- cmp r0, 0x1
- bgt _0802C10C
- cmp r0, 0
- beq _0802C116
- b _0802C138
- .align 2, 0
-_0802C0FC: .4byte gUnknown_02023A60
-_0802C100: .4byte gUnknown_02024A60
-_0802C104: .4byte gMain
-_0802C108: .4byte gUnknown_02024E60
-_0802C10C:
- cmp r0, 0x2
- beq _0802C122
- cmp r0, 0x3
- beq _0802C12E
- b _0802C138
-_0802C116:
- movs r0, 0x1
- movs r1, 0
- b _0802C126
-_0802C11C:
- movs r0, 0x1
- movs r1, 0x1
- b _0802C126
-_0802C122:
- movs r0, 0x1
- movs r1, 0x2
-_0802C126:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _0802C138
-_0802C12E:
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_0802C138:
- bl dp01_tbl1_exec_completed
- b _0802C2AC
-_0802C13E:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802C178
- ldr r5, _0802C174 @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0802C158
- b _0802C2AC
-_0802C158:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0802C200
- .align 2, 0
-_0802C174: .4byte gUnknown_02024E60
-_0802C178:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802C1B0
- ldr r5, _0802C1AC @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C192
- b _0802C2AC
-_0802C192:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0802C200
- .align 2, 0
-_0802C1AC: .4byte gUnknown_02024E60
-_0802C1B0:
- movs r0, 0x40
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- beq _0802C1D0
- ldr r5, _0802C1CC @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C2AC
- b _0802C1E8
- .align 2, 0
-_0802C1CC: .4byte gUnknown_02024E60
-_0802C1D0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802C218
- ldr r5, _0802C214 @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0802C2AC
-_0802C1E8:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
-_0802C200:
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- b _0802C2AC
- .align 2, 0
-_0802C214: .4byte gUnknown_02024E60
-_0802C218:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C2A0
- ldr r6, _0802C294 @ =gUnknown_020239F8
- ldrh r1, [r6]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C2AC
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0802C2AC
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _0802C298 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _0802C29C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802C2AC
- ldrh r1, [r6]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- bne _0802C2AC
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, r7, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802C278
- cmp r5, 0xC
- bhi _0802C2AC
- adds r0, r5, 0
- movs r1, 0x1
- bl AddBagItem
-_0802C278:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl1_exec_completed
- bl sub_814A7FC
- b _0802C2AC
- .align 2, 0
-_0802C294: .4byte gUnknown_020239F8
-_0802C298: .4byte gUnknown_02024C0C
-_0802C29C: .4byte gBitTable
-_0802C2A0:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802C2AC
- bl sub_804454C
-_0802C2AC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_802C098
-
- thumb_func_start unref_sub_802C2B8
-unref_sub_802C2B8: @ 802C2B8
- push {r4,lr}
- ldr r4, _0802C2E0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- ldr r1, _0802C2E4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802C2E8 @ =sub_802C2EC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C2E0: .4byte gUnknown_02024A60
-_0802C2E4: .4byte gUnknown_03004330
-_0802C2E8: .4byte sub_802C2EC
- thumb_func_end unref_sub_802C2B8
-
- thumb_func_start sub_802C2EC
-sub_802C2EC: @ 802C2EC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _0802C384 @ =gUnknown_081FAE7C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldr r0, _0802C388 @ =gUnknown_03004344
- ldrb r0, [r0]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0x1
- bl dp11b_obj_instanciate
- movs r4, 0
- ldr r0, _0802C38C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802C32E
-_0802C312:
- ldr r0, _0802C388 @ =gUnknown_03004344
- ldrb r0, [r0]
- cmp r4, r0
- beq _0802C324
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0x1
- bl dp11b_obj_free
-_0802C324:
- adds r4, 0x1
- ldr r0, _0802C38C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _0802C312
-_0802C32E:
- ldr r0, _0802C390 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802C3A8
- bl sub_814A7FC
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C394 @ =gSprites
- ldr r1, _0802C398 @ =gUnknown_02024BE0
- ldr r4, _0802C388 @ =gUnknown_03004344
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C39C @ =sub_8010574
- str r1, [r0]
- ldr r1, _0802C3A0 @ =gUnknown_02024E64
- ldr r0, _0802C3A4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldrb r0, [r4]
- lsls r0, 8
- orrs r2, r0
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- bl dp01_tbl1_exec_completed
- b _0802C658
- .align 2, 0
-_0802C384: .4byte gUnknown_081FAE7C
-_0802C388: .4byte gUnknown_03004344
-_0802C38C: .4byte gUnknown_02024A68
-_0802C390: .4byte gMain
-_0802C394: .4byte gSprites
-_0802C398: .4byte gUnknown_02024BE0
-_0802C39C: .4byte sub_8010574
-_0802C3A0: .4byte gUnknown_02024E64
-_0802C3A4: .4byte gUnknown_02024A60
-_0802C3A8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C41C
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C400 @ =gSprites
- ldr r1, _0802C404 @ =gUnknown_02024BE0
- ldr r5, _0802C408 @ =gUnknown_03004344
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C40C @ =sub_8010574
- str r1, [r0]
- ldr r1, _0802C410 @ =gUnknown_03004330
- ldr r4, _0802C414 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802C418 @ =sub_802C68C
- str r1, [r0]
- ldrb r0, [r4]
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldrb r0, [r5]
- movs r1, 0x1
- bl dp11b_obj_free
- b _0802C658
- .align 2, 0
-_0802C400: .4byte gSprites
-_0802C404: .4byte gUnknown_02024BE0
-_0802C408: .4byte gUnknown_03004344
-_0802C40C: .4byte sub_8010574
-_0802C410: .4byte gUnknown_03004330
-_0802C414: .4byte gUnknown_02024A60
-_0802C418: .4byte sub_802C68C
-_0802C41C:
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _0802C426
- b _0802C540
-_0802C426:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C458 @ =gSprites
- ldr r1, _0802C45C @ =gUnknown_02024BE0
- ldr r3, _0802C460 @ =gUnknown_03004344
- ldrb r0, [r3]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C464 @ =sub_8010574
- str r1, [r0]
- adds r5, r3, 0
-_0802C448:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- mov r0, sp
- b _0802C472
- .align 2, 0
-_0802C458: .4byte gSprites
-_0802C45C: .4byte gUnknown_02024BE0
-_0802C460: .4byte gUnknown_03004344
-_0802C464: .4byte sub_8010574
-_0802C468:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0802C478
- mov r2, sp
- adds r0, r2, r4
-_0802C472:
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802C468
-_0802C478:
- subs r4, 0x1
- cmp r4, 0
- bge _0802C480
- movs r4, 0x3
-_0802C480:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl battle_get_side_with_given_state
- strb r0, [r5]
- ldr r1, _0802C4B4 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802C478
- movs r4, 0
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0802C4FE
- cmp r0, 0x1
- bgt _0802C4B8
- cmp r0, 0
- beq _0802C4C2
- b _0802C500
- .align 2, 0
-_0802C4B4: .4byte gUnknown_02024A68
-_0802C4B8:
- cmp r0, 0x2
- beq _0802C4C2
- cmp r0, 0x3
- beq _0802C4FE
- b _0802C500
-_0802C4C2:
- ldr r2, _0802C520 @ =gUnknown_02024A60
- ldrb r0, [r2]
- ldrb r1, [r5]
- cmp r0, r1
- bne _0802C4FE
- ldr r1, _0802C524 @ =gUnknown_02024A6A
- ldrb r2, [r2]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802C528 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802C52C @ =gUnknown_02024E64
- adds r2, r1
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- ldr r2, _0802C530 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C500
-_0802C4FE:
- adds r4, 0x1
-_0802C500:
- ldr r0, _0802C534 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802C538 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _0802C53C @ =gUnknown_03004344
- cmp r1, 0
- beq _0802C518
- movs r4, 0
-_0802C518:
- cmp r4, 0
- beq _0802C448
- b _0802C640
- .align 2, 0
-_0802C520: .4byte gUnknown_02024A60
-_0802C524: .4byte gUnknown_02024A6A
-_0802C528: .4byte gPlayerParty
-_0802C52C: .4byte gUnknown_02024E64
-_0802C530: .4byte gBattleMoves
-_0802C534: .4byte gUnknown_02024C0C
-_0802C538: .4byte gBitTable
-_0802C53C: .4byte gUnknown_03004344
-_0802C540:
- movs r0, 0x90
- ands r0, r1
- cmp r0, 0
- bne _0802C54A
- b _0802C658
-_0802C54A:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C57C @ =gSprites
- ldr r1, _0802C580 @ =gUnknown_02024BE0
- ldr r3, _0802C584 @ =gUnknown_03004344
- ldrb r0, [r3]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C588 @ =sub_8010574
- str r1, [r0]
- adds r5, r3, 0
-_0802C56C:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- mov r0, sp
- b _0802C596
- .align 2, 0
-_0802C57C: .4byte gSprites
-_0802C580: .4byte gUnknown_02024BE0
-_0802C584: .4byte gUnknown_03004344
-_0802C588: .4byte sub_8010574
-_0802C58C:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0802C59C
- mov r2, sp
- adds r0, r2, r4
-_0802C596:
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802C58C
-_0802C59C:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0802C5A4
- movs r4, 0
-_0802C5A4:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl battle_get_side_with_given_state
- strb r0, [r5]
- ldr r1, _0802C5D8 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802C59C
- movs r4, 0
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0802C622
- cmp r0, 0x1
- bgt _0802C5DC
- cmp r0, 0
- beq _0802C5E6
- b _0802C624
- .align 2, 0
-_0802C5D8: .4byte gUnknown_02024A68
-_0802C5DC:
- cmp r0, 0x2
- beq _0802C5E6
- cmp r0, 0x3
- beq _0802C622
- b _0802C624
-_0802C5E6:
- ldr r2, _0802C660 @ =gUnknown_02024A60
- ldrb r0, [r2]
- ldrb r1, [r5]
- cmp r0, r1
- bne _0802C622
- ldr r1, _0802C664 @ =gUnknown_02024A6A
- ldrb r2, [r2]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802C668 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802C66C @ =gUnknown_02024E64
- adds r2, r1
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- ldr r2, _0802C670 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C624
-_0802C622:
- adds r4, 0x1
-_0802C624:
- ldr r0, _0802C674 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802C678 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _0802C67C @ =gUnknown_03004344
- cmp r1, 0
- beq _0802C63C
- movs r4, 0
-_0802C63C:
- cmp r4, 0
- beq _0802C56C
-_0802C640:
- ldr r2, _0802C680 @ =gSprites
- ldr r1, _0802C684 @ =gUnknown_02024BE0
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C688 @ =sub_8010520
- str r1, [r0]
-_0802C658:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C660: .4byte gUnknown_02024A60
-_0802C664: .4byte gUnknown_02024A6A
-_0802C668: .4byte gPlayerParty
-_0802C66C: .4byte gUnknown_02024E64
-_0802C670: .4byte gBattleMoves
-_0802C674: .4byte gUnknown_02024C0C
-_0802C678: .4byte gBitTable
-_0802C67C: .4byte gUnknown_03004344
-_0802C680: .4byte gSprites
-_0802C684: .4byte gUnknown_02024BE0
-_0802C688: .4byte sub_8010520
- thumb_func_end sub_802C2EC
-
- thumb_func_start sub_802C68C
-sub_802C68C: @ 802C68C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r0, 0
- mov r8, r0
- ldr r7, _0802C6E4 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 9
- ldr r1, _0802C6E8 @ =gUnknown_02023A64
- adds r6, r0, r1
- ldr r0, _0802C6EC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r5, 0x1
- adds r4, r5, 0
- ands r4, r1
- cmp r4, 0
- bne _0802C6B2
- b _0802C864
-_0802C6B2:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802C6F0 @ =gUnknown_02024E64
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, r6, r0
- ldrh r0, [r1]
- cmp r0, 0xAE
- bne _0802C6F4
- ldrb r0, [r6, 0x12]
- movs r4, 0
- cmp r0, 0x7
- beq _0802C702
- ldrb r1, [r6, 0x13]
- movs r0, 0x7
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- asrs r4, r0, 31
- movs r0, 0x10
- ands r4, r0
- b _0802C702
- .align 2, 0
-_0802C6E4: .4byte gUnknown_02024A60
-_0802C6E8: .4byte gUnknown_02023A64
-_0802C6EC: .4byte gMain
-_0802C6F0: .4byte gUnknown_02024E64
-_0802C6F4:
- ldr r2, _0802C714 @ =gBattleMoves
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0, 0x6]
-_0802C702:
- movs r0, 0x10
- ands r0, r4
- cmp r0, 0
- beq _0802C720
- ldr r0, _0802C718 @ =gUnknown_03004344
- ldr r1, _0802C71C @ =gUnknown_02024A60
- ldrb r1, [r1]
- strb r1, [r0]
- b _0802C73A
- .align 2, 0
-_0802C714: .4byte gBattleMoves
-_0802C718: .4byte gUnknown_03004344
-_0802C71C: .4byte gUnknown_02024A60
-_0802C720:
- ldr r0, _0802C764 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- bl battle_get_side_with_given_state
- ldr r1, _0802C768 @ =gUnknown_03004344
- strb r0, [r1]
-_0802C73A:
- ldr r3, _0802C76C @ =gUnknown_02023A60
- ldr r5, _0802C764 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r1, r2, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802C770
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _0802C7B2
- adds r0, r3, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802C7B2
- movs r2, 0x1
- add r8, r2
- b _0802C7B2
- .align 2, 0
-_0802C764: .4byte gUnknown_02024A60
-_0802C768: .4byte gUnknown_03004344
-_0802C76C: .4byte gUnknown_02023A60
-_0802C770:
- movs r0, 0x7D
- ands r0, r4
- cmp r0, 0
- bne _0802C77C
- movs r0, 0x1
- add r8, r0
-_0802C77C:
- ldr r0, _0802C7D0 @ =gUnknown_02024E64
- adds r0, r2, r0
- adds r1, r6, 0
- adds r1, 0x8
- ldrb r0, [r0]
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0802C7B8
- movs r0, 0x12
- ands r0, r4
- cmp r0, 0
- bne _0802C7B2
- movs r0, 0
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0802C7B2
- ldrb r0, [r5]
- bl sub_803C434
- ldr r1, _0802C7D4 @ =gUnknown_03004344
- strb r0, [r1]
- movs r2, 0
- mov r8, r2
-_0802C7B2:
- mov r0, r8
- cmp r0, 0
- bne _0802C7DC
-_0802C7B8:
- bl sub_814A7FC
- ldr r1, _0802C7D0 @ =gUnknown_02024E64
- ldr r0, _0802C7D8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r0, _0802C7D4 @ =gUnknown_03004344
- ldrb r0, [r0]
- lsls r0, 8
- orrs r2, r0
- b _0802C888
- .align 2, 0
-_0802C7D0: .4byte gUnknown_02024E64
-_0802C7D4: .4byte gUnknown_03004344
-_0802C7D8: .4byte gUnknown_02024A60
-_0802C7DC:
- ldr r1, _0802C7F8 @ =gUnknown_03004330
- ldr r2, _0802C7FC @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802C800 @ =sub_802C2EC
- str r1, [r0]
- movs r0, 0x12
- ands r4, r0
- cmp r4, 0
- beq _0802C808
- ldr r1, _0802C804 @ =gUnknown_03004344
- ldrb r0, [r2]
- b _0802C838
- .align 2, 0
-_0802C7F8: .4byte gUnknown_03004330
-_0802C7FC: .4byte gUnknown_02024A60
-_0802C800: .4byte sub_802C2EC
-_0802C804: .4byte gUnknown_03004344
-_0802C808:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _0802C828 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _0802C82C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802C830
- movs r0, 0x3
- b _0802C832
- .align 2, 0
-_0802C828: .4byte gUnknown_02024C0C
-_0802C82C: .4byte gBitTable
-_0802C830:
- movs r0, 0x1
-_0802C832:
- bl battle_get_side_with_given_state
- ldr r1, _0802C854 @ =gUnknown_03004344
-_0802C838:
- strb r0, [r1]
- ldr r2, _0802C858 @ =gSprites
- ldr r1, _0802C85C @ =gUnknown_02024BE0
- ldr r0, _0802C854 @ =gUnknown_03004344
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C860 @ =sub_8010520
- b _0802CA36
- .align 2, 0
-_0802C854: .4byte gUnknown_03004344
-_0802C858: .4byte gSprites
-_0802C85C: .4byte gUnknown_02024BE0
-_0802C860: .4byte sub_8010520
-_0802C864:
- movs r6, 0x2
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C8A4
- bl sub_814A7FC
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0802C898 @ =gUnknown_030042A4
- strh r4, [r0]
- ldr r1, _0802C89C @ =gUnknown_030042A0
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _0802C8A0 @ =0x0000ffff
-_0802C888:
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl1_exec_completed
- b _0802CA38
- .align 2, 0
-_0802C898: .4byte gUnknown_030042A4
-_0802C89C: .4byte gUnknown_030042A0
-_0802C8A0: .4byte 0x0000ffff
-_0802C8A4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802C8D4
- ldr r4, _0802C8D0 @ =gUnknown_02024E64
- adds r2, r4
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _0802C8BC
- b _0802CA38
-_0802C8BC:
- ldrb r0, [r2]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- movs r2, 0x1
- eors r0, r2
- b _0802C976
- .align 2, 0
-_0802C8D0: .4byte gUnknown_02024E64
-_0802C8D4:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802C914
- ldr r4, _0802C90C @ =gUnknown_02024E64
- adds r3, r2, r4
- ldrb r2, [r3]
- movs r6, 0x1
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _0802C8EE
- b _0802CA38
-_0802C8EE:
- ldr r1, _0802C910 @ =gUnknown_03004348
- adds r0, r6, 0
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0802C8FC
- b _0802CA38
-_0802C8FC:
- ldrb r0, [r3]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- eors r0, r6
- b _0802C976
- .align 2, 0
-_0802C90C: .4byte gUnknown_02024E64
-_0802C910: .4byte gUnknown_03004348
-_0802C914:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802C944
- ldr r4, _0802C940 @ =gUnknown_02024E64
- adds r2, r4
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _0802C92C
- b _0802CA38
-_0802C92C:
- ldrb r0, [r2]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- movs r2, 0x2
- eors r0, r2
- b _0802C976
- .align 2, 0
-_0802C940: .4byte gUnknown_02024E64
-_0802C944:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802C99C
- ldr r4, _0802C994 @ =gUnknown_02024E64
- adds r3, r2, r4
- ldrb r2, [r3]
- movs r5, 0x2
- adds r0, r6, 0
- ands r0, r2
- cmp r0, 0
- bne _0802CA38
- ldr r1, _0802C998 @ =gUnknown_03004348
- adds r0, r5, 0
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802CA38
- ldrb r0, [r3]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- eors r0, r5
-_0802C976:
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- bl sub_802E220
- bl sub_802E2D4
- b _0802CA38
- .align 2, 0
-_0802C994: .4byte gUnknown_02024E64
-_0802C998: .4byte gUnknown_03004348
-_0802C99C:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802CA38
- ldr r0, _0802C9D8 @ =gUnknown_03004348
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0802CA38
- ldr r0, _0802C9DC @ =gUnknown_020239F8
- ldrh r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _0802CA38
- ldr r4, _0802C9E0 @ =gUnknown_02024E64
- adds r0, r2, r4
- ldrb r0, [r0]
- ldr r1, _0802C9E4 @ =gUnknown_081FAE80
- bl sub_802E12C
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802C9EC
- ldr r0, _0802C9E8 @ =gUnknown_03004344
- strb r5, [r0]
- b _0802C9F4
- .align 2, 0
-_0802C9D8: .4byte gUnknown_03004348
-_0802C9DC: .4byte gUnknown_020239F8
-_0802C9E0: .4byte gUnknown_02024E64
-_0802C9E4: .4byte gUnknown_081FAE80
-_0802C9E8: .4byte gUnknown_03004344
-_0802C9EC:
- ldr r1, _0802CA44 @ =gUnknown_03004344
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r1, 0
-_0802C9F4:
- ldrb r0, [r0]
- movs r1, 0x1B
- bl sub_802E3B4
- ldr r4, _0802CA48 @ =gUnknown_03004210
- ldr r1, _0802CA4C @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802CA50 @ =gUnknown_08400D89
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0802CA54 @ =gUnknown_03004330
- ldr r0, _0802CA58 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802CA5C @ =sub_802CA60
-_0802CA36:
- str r1, [r0]
-_0802CA38:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CA44: .4byte gUnknown_03004344
-_0802CA48: .4byte gUnknown_03004210
-_0802CA4C: .4byte 0x00001016
-_0802CA50: .4byte gUnknown_08400D89
-_0802CA54: .4byte gUnknown_03004330
-_0802CA58: .4byte gUnknown_02024A60
-_0802CA5C: .4byte sub_802CA60
- thumb_func_end sub_802C68C
-
- thumb_func_start sub_802CA60
-sub_802CA60: @ 802CA60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- ldr r0, _0802CDEC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x5
- ands r0, r1
- cmp r0, 0
- bne _0802CA7A
- b _0802CE78
-_0802CA7A:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0802CDF0 @ =gUnknown_02024E64
- mov r10, r0
- ldr r1, _0802CDF4 @ =gUnknown_02024A60
- mov r8, r1
- ldrb r1, [r1]
- adds r2, r1, r0
- ldr r5, _0802CDF8 @ =gUnknown_03004344
- ldrb r0, [r2]
- ldrb r3, [r5]
- cmp r0, r3
- bne _0802CA98
- b _0802CE14
-_0802CA98:
- lsls r1, 9
- ldr r0, _0802CDFC @ =gUnknown_02023A64
- adds r1, r0
- mov r9, r1
- ldrb r1, [r2]
- lsls r1, 1
- add r1, r9
- ldrh r6, [r1]
- ldrb r0, [r5]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- ldrb r0, [r5]
- lsls r0, 1
- add r0, r9
- strh r6, [r0]
- mov r1, r8
- ldrb r0, [r1]
- add r0, r10
- ldrb r1, [r0]
- mov r7, r9
- adds r7, 0x8
- adds r1, r7, r1
- ldrb r6, [r1]
- ldrb r0, [r5]
- adds r0, r7, r0
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r5]
- adds r0, r7, r0
- strb r6, [r0]
- mov r2, r8
- ldrb r0, [r2]
- add r0, r10
- ldrb r1, [r0]
- mov r2, r9
- adds r2, 0xC
- adds r1, r2, r1
- ldrb r6, [r1]
- ldrb r0, [r5]
- adds r0, r2, r0
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r5]
- adds r2, r0
- strb r6, [r2]
- mov r3, r8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r2, _0802CE00 @ =gUnknown_02024CA8
- adds r6, r0, r2
- ldrb r4, [r6, 0x18]
- lsls r3, r4, 24
- lsrs r2, r3, 28
- ldr r0, _0802CE04 @ =gBitTable
- mov r12, r0
- add r1, r10
- ldrb r0, [r1]
- lsls r0, 2
- add r0, r12
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _0802CB52
- lsrs r1, r3, 28
- bics r1, r0
- lsls r1, 4
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r4
- orrs r0, r1
- strb r0, [r6, 0x18]
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r3, _0802CE00 @ =gUnknown_02024CA8
- adds r1, r3
- ldrb r4, [r1, 0x18]
- lsrs r3, r4, 4
- ldrb r0, [r5]
- lsls r0, 2
- add r0, r12
- ldr r0, [r0]
- orrs r0, r3
- lsls r0, 4
- ands r2, r4
- orrs r2, r0
- strb r2, [r1, 0x18]
-_0802CB52:
- bl sub_802E1B0
- movs r6, 0
- mov r12, r7
- mov r5, sp
- adds r5, 0x20
- str r5, [sp, 0x28]
- ldr r2, _0802CE08 @ =gBattleMons
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r4, r0, 0
- adds r4, 0x3B
- mov r7, r8
- mov r10, r2
- movs r5, 0x3
-_0802CB76:
- mov r3, sp
- adds r3, r6
- adds r3, 0x8
- ldrb r1, [r4]
- lsls r2, r6, 1
- adds r0, r5, 0
- lsls r0, r2
- ands r1, r0
- asrs r1, r2
- strb r1, [r3]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CB76
- ldr r1, _0802CDF0 @ =gUnknown_02024E64
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r2, [sp, 0x28]
- strb r0, [r2]
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- mov r2, sp
- adds r2, r0
- adds r2, 0x8
- ldr r1, _0802CDF8 @ =gUnknown_03004344
- ldrb r0, [r1]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- movs r3, 0
- strb r0, [r2]
- ldrb r0, [r1]
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- ldr r5, [sp, 0x28]
- ldrb r0, [r5]
- strb r0, [r1]
- strb r3, [r5]
- movs r6, 0
- ldr r2, [sp, 0x28]
-_0802CBD0:
- mov r0, sp
- adds r0, r6
- adds r0, 0x8
- ldrb r1, [r0]
- lsls r0, r6, 1
- lsls r1, r0
- ldrb r0, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CBD0
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r10
- adds r0, 0x3B
- ldr r2, [sp, 0x28]
- ldrb r1, [r2]
- strb r1, [r0]
- movs r6, 0
- adds r4, r7, 0
- movs r3, 0x58
- movs r5, 0x24
- add r5, r10
- mov r8, r5
- mov r2, r9
- mov r7, r10
- adds r7, 0xC
- mov r5, r12
-_0802CC0C:
- lsls r1, r6, 1
- ldrb r0, [r4]
- muls r0, r3
- adds r1, r0
- adds r1, r7
- ldrh r0, [r2]
- strh r0, [r1]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r3
- adds r1, r6, r1
- add r1, r8
- adds r0, r5, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CC0C
- ldr r2, _0802CDF4 @ =gUnknown_02024A60
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- mov r1, r10
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- beq _0802CC4E
- b _0802CE1C
-_0802CC4E:
- movs r6, 0
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0x24]
- add r1, sp, 0x14
- mov r10, r1
- ldr r3, _0802CE0C @ =gUnknown_02024A6A
- mov r9, r3
- mov r8, r2
- movs r7, 0x64
- ldr r5, _0802CE10 @ =gPlayerParty
- adds r4, r0, 0
-_0802CC66:
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- muls r0, r7
- adds r0, r5
- adds r1, r6, 0
- adds r1, 0xD
- bl GetMonData
- strh r0, [r4]
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- muls r0, r7
- adds r0, r5
- adds r1, r6, 0
- adds r1, 0x11
- bl GetMonData
- mov r3, r10
- adds r1, r3, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CC66
- ldr r1, _0802CE0C @ =gUnknown_02024A6A
- ldr r0, _0802CDF4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802CE10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- ldr r5, [sp, 0x28]
- strb r0, [r5]
- movs r6, 0
- movs r5, 0x3
- ldr r4, [sp, 0x28]
-_0802CCC6:
- mov r3, sp
- adds r3, r6
- adds r3, 0x8
- lsls r2, r6, 1
- adds r1, r5, 0
- lsls r1, r2
- ldrb r0, [r4]
- ands r0, r1
- asrs r0, r2
- strb r0, [r3]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CCC6
- ldr r4, _0802CDF0 @ =gUnknown_02024E64
- ldr r3, _0802CDF4 @ =gUnknown_02024A60
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r1, 1
- ldr r0, [sp, 0x24]
- adds r1, r0, r1
- ldrh r6, [r1]
- ldr r2, _0802CDF8 @ =gUnknown_03004344
- ldrb r0, [r2]
- lsls r0, 1
- ldr r5, [sp, 0x24]
- adds r0, r5, r0
- ldrh r0, [r0]
- movs r5, 0
- strh r0, [r1]
- ldrb r0, [r2]
- lsls r0, 1
- ldr r1, [sp, 0x24]
- adds r0, r1, r0
- strh r6, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- add r1, r10
- ldrb r6, [r1]
- ldrb r0, [r2]
- add r0, r10
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- add r0, r10
- strb r6, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r1, [sp, 0x28]
- strb r0, [r1]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- ldrb r0, [r2]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- ldr r2, [sp, 0x28]
- ldrb r0, [r2]
- strb r0, [r1]
- strb r5, [r2]
- movs r6, 0
- ldr r2, [sp, 0x28]
-_0802CD5E:
- mov r0, sp
- adds r0, r6
- adds r0, 0x8
- ldrb r1, [r0]
- lsls r0, r6, 1
- lsls r1, r0
- ldrb r0, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CD5E
- movs r6, 0
- ldr r3, _0802CE0C @ =gUnknown_02024A6A
- mov r10, r3
- ldr r5, _0802CDF4 @ =gUnknown_02024A60
- mov r9, r5
- movs r0, 0x64
- mov r8, r0
- ldr r7, _0802CE10 @ =gPlayerParty
- ldr r5, [sp, 0x24]
- adds r5, 0x8
- ldr r4, [sp, 0x24]
-_0802CD8C:
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- adds r1, r6, 0
- adds r1, 0xD
- adds r2, r4, 0
- bl SetMonData
- mov r3, r9
- ldrb r0, [r3]
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- adds r1, r6, 0
- adds r1, 0x11
- adds r2, r5, 0
- bl SetMonData
- adds r5, 0x1
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CD8C
- ldr r1, _0802CE0C @ =gUnknown_02024A6A
- ldr r0, _0802CDF4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802CE10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- ldr r2, [sp, 0x28]
- bl SetMonData
- b _0802CE1C
- .align 2, 0
-_0802CDEC: .4byte gMain
-_0802CDF0: .4byte gUnknown_02024E64
-_0802CDF4: .4byte gUnknown_02024A60
-_0802CDF8: .4byte gUnknown_03004344
-_0802CDFC: .4byte gUnknown_02023A64
-_0802CE00: .4byte gUnknown_02024CA8
-_0802CE04: .4byte gBitTable
-_0802CE08: .4byte gBattleMons
-_0802CE0C: .4byte gUnknown_02024A6A
-_0802CE10: .4byte gPlayerParty
-_0802CE14:
- ldrb r0, [r5]
- ldr r1, _0802CF20 @ =gUnknown_08400D49
- bl sub_802E12C
-_0802CE1C:
- ldr r1, _0802CF24 @ =gUnknown_03004330
- ldr r2, _0802CF28 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802CF2C @ =sub_802C68C
- str r1, [r0]
- ldr r3, _0802CF30 @ =gUnknown_02024E64
- ldrb r0, [r2]
- adds r0, r3
- ldr r1, _0802CF34 @ =gUnknown_03004344
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- ldr r4, _0802CF38 @ =gUnknown_03004210
- ldr r1, _0802CF3C @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802CF40 @ =gUnknown_08400D38
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- bl sub_802E220
- bl sub_802E2D4
-_0802CE78:
- ldr r6, _0802CF44 @ =gMain
- ldrh r1, [r6, 0x2E]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _0802CEF0
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0802CF34 @ =gUnknown_03004344
- ldrb r0, [r0]
- bl nullsub_7
- ldr r5, _0802CF30 @ =gUnknown_02024E64
- ldr r4, _0802CF28 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- ldr r1, _0802CF20 @ =gUnknown_08400D49
- bl sub_802E12C
- ldr r1, _0802CF24 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802CF2C @ =sub_802C68C
- str r1, [r0]
- ldr r4, _0802CF38 @ =gUnknown_03004210
- ldr r1, _0802CF3C @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802CF40 @ =gUnknown_08400D38
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- bl sub_802E220
- bl sub_802E2D4
-_0802CEF0:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802CF8C
- ldr r3, _0802CF34 @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _0802CF8C
- ldr r0, _0802CF30 @ =gUnknown_02024E64
- ldr r1, _0802CF28 @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- cmp r2, r5
- bne _0802CF48
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802CF4E
- .align 2, 0
-_0802CF20: .4byte gUnknown_08400D49
-_0802CF24: .4byte gUnknown_03004330
-_0802CF28: .4byte gUnknown_02024A60
-_0802CF2C: .4byte sub_802C68C
-_0802CF30: .4byte gUnknown_02024E64
-_0802CF34: .4byte gUnknown_03004344
-_0802CF38: .4byte gUnknown_03004210
-_0802CF3C: .4byte 0x00001016
-_0802CF40: .4byte gUnknown_08400D38
-_0802CF44: .4byte gMain
-_0802CF48:
- ldrb r0, [r3]
- bl nullsub_7
-_0802CF4E:
- ldr r4, _0802CF78 @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802CF7C @ =gUnknown_02024E64
- ldr r0, _0802CF80 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802CF84
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802CF8C
- .align 2, 0
-_0802CF78: .4byte gUnknown_03004344
-_0802CF7C: .4byte gUnknown_02024E64
-_0802CF80: .4byte gUnknown_02024A60
-_0802CF84:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802CF8C:
- ldr r0, _0802CFC8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802D020
- ldr r3, _0802CFCC @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0802D020
- ldr r1, _0802CFD0 @ =gUnknown_03004348
- movs r0, 0x1
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802D020
- ldr r0, _0802CFD4 @ =gUnknown_02024E64
- ldr r1, _0802CFD8 @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- cmp r2, r0
- bne _0802CFDC
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802CFE2
- .align 2, 0
-_0802CFC8: .4byte gMain
-_0802CFCC: .4byte gUnknown_03004344
-_0802CFD0: .4byte gUnknown_03004348
-_0802CFD4: .4byte gUnknown_02024E64
-_0802CFD8: .4byte gUnknown_02024A60
-_0802CFDC:
- ldrb r0, [r3]
- bl nullsub_7
-_0802CFE2:
- ldr r4, _0802D00C @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802D010 @ =gUnknown_02024E64
- ldr r0, _0802D014 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802D018
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802D020
- .align 2, 0
-_0802D00C: .4byte gUnknown_03004344
-_0802D010: .4byte gUnknown_02024E64
-_0802D014: .4byte gUnknown_02024A60
-_0802D018:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802D020:
- ldr r0, _0802D050 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802D0A4
- ldr r3, _0802D054 @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0802D0A4
- ldr r0, _0802D058 @ =gUnknown_02024E64
- ldr r1, _0802D05C @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- cmp r2, r5
- bne _0802D060
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802D066
- .align 2, 0
-_0802D050: .4byte gMain
-_0802D054: .4byte gUnknown_03004344
-_0802D058: .4byte gUnknown_02024E64
-_0802D05C: .4byte gUnknown_02024A60
-_0802D060:
- ldrb r0, [r3]
- bl nullsub_7
-_0802D066:
- ldr r4, _0802D090 @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802D094 @ =gUnknown_02024E64
- ldr r0, _0802D098 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802D09C
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802D0A4
- .align 2, 0
-_0802D090: .4byte gUnknown_03004344
-_0802D094: .4byte gUnknown_02024E64
-_0802D098: .4byte gUnknown_02024A60
-_0802D09C:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802D0A4:
- ldr r0, _0802D0E0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802D138
- ldr r3, _0802D0E4 @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- bne _0802D138
- ldr r1, _0802D0E8 @ =gUnknown_03004348
- movs r0, 0x2
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802D138
- ldr r0, _0802D0EC @ =gUnknown_02024E64
- ldr r1, _0802D0F0 @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- cmp r2, r0
- bne _0802D0F4
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802D0FA
- .align 2, 0
-_0802D0E0: .4byte gMain
-_0802D0E4: .4byte gUnknown_03004344
-_0802D0E8: .4byte gUnknown_03004348
-_0802D0EC: .4byte gUnknown_02024E64
-_0802D0F0: .4byte gUnknown_02024A60
-_0802D0F4:
- ldrb r0, [r3]
- bl nullsub_7
-_0802D0FA:
- ldr r4, _0802D124 @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802D128 @ =gUnknown_02024E64
- ldr r0, _0802D12C @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802D130
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802D138
- .align 2, 0
-_0802D124: .4byte gUnknown_03004344
-_0802D128: .4byte gUnknown_02024E64
-_0802D12C: .4byte gUnknown_02024A60
-_0802D130:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802D138:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_802CA60
-
- thumb_func_start sub_802D148
-sub_802D148: @ 802D148
- push {lr}
- ldr r0, _0802D178 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802D174
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, _0802D17C @ =gMain
- ldr r0, _0802D180 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0802D184 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _0802D188 @ =c2_8011A1C
- bl SetMainCallback2
-_0802D174:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D178: .4byte gReceivedRemoteLinkPlayers
-_0802D17C: .4byte gMain
-_0802D180: .4byte 0x0000043d
-_0802D184: .4byte gUnknown_030042D0
-_0802D188: .4byte c2_8011A1C
- thumb_func_end sub_802D148
-
- thumb_func_start sub_802D18C
-sub_802D18C: @ 802D18C
- push {lr}
- ldr r0, _0802D1BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802D1F2
- ldr r0, _0802D1C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802D1D0
- bl sub_800832C
- ldr r1, _0802D1C4 @ =gUnknown_03004330
- ldr r0, _0802D1C8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D1CC @ =sub_802D148
- str r1, [r0]
- b _0802D1F2
- .align 2, 0
-_0802D1BC: .4byte gPaletteFade
-_0802D1C0: .4byte gUnknown_020239F8
-_0802D1C4: .4byte gUnknown_03004330
-_0802D1C8: .4byte gUnknown_02024A60
-_0802D1CC: .4byte sub_802D148
-_0802D1D0:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r2, _0802D1F8 @ =gMain
- ldr r0, _0802D1FC @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _0802D200 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0802D1F2:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D1F8: .4byte gMain
-_0802D1FC: .4byte 0x0000043d
-_0802D200: .4byte gUnknown_030042D0
- thumb_func_end sub_802D18C
-
- thumb_func_start sub_802D204
-sub_802D204: @ 802D204
- push {lr}
- ldr r2, _0802D22C @ =gSprites
- ldr r1, _0802D230 @ =gUnknown_02024BE0
- ldr r0, _0802D234 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0802D238 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D228
- bl dp01_tbl1_exec_completed
-_0802D228:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D22C: .4byte gSprites
-_0802D230: .4byte gUnknown_02024BE0
-_0802D234: .4byte gUnknown_02024A60
-_0802D238: .4byte SpriteCallbackDummy
- thumb_func_end sub_802D204
-
- thumb_func_start sub_802D23C
-sub_802D23C: @ 802D23C
- push {lr}
- ldr r2, _0802D264 @ =gSprites
- ldr r1, _0802D268 @ =gUnknown_02024BE0
- ldr r0, _0802D26C @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0802D270 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D260
- bl dp01_tbl1_exec_completed
-_0802D260:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D264: .4byte gSprites
-_0802D268: .4byte gUnknown_02024BE0
-_0802D26C: .4byte gUnknown_02024A60
-_0802D270: .4byte SpriteCallbackDummy
- thumb_func_end sub_802D23C
-
- thumb_func_start sub_802D274
-sub_802D274: @ 802D274
- push {r4-r6,lr}
- ldr r6, _0802D2CC @ =gSprites
- ldr r5, _0802D2D0 @ =gUnknown_02024BE0
- ldr r4, _0802D2D4 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _0802D2D8 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D2C6
- ldr r0, _0802D2DC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- bl nullsub_10
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl FreeSpriteOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- bl dp01_tbl1_exec_completed
-_0802D2C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D2CC: .4byte gSprites
-_0802D2D0: .4byte gUnknown_02024BE0
-_0802D2D4: .4byte gUnknown_02024A60
-_0802D2D8: .4byte SpriteCallbackDummy
-_0802D2DC: .4byte gSaveBlock2
- thumb_func_end sub_802D274
-
- thumb_func_start sub_802D2E0
-sub_802D2E0: @ 802D2E0
- push {lr}
- ldr r3, _0802D314 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _0802D318 @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0802D310
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl dp01_tbl1_exec_completed
-_0802D310:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D314: .4byte gUnknown_02024A60
-_0802D318: .4byte 0x02017810
- thumb_func_end sub_802D2E0
-
- thumb_func_start sub_802D31C
-sub_802D31C: @ 802D31C
- push {r4-r7,lr}
- movs r6, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0802D340
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0802D374
- ldr r0, _0802D360 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802D374
-_0802D340:
- ldr r2, _0802D364 @ =gSprites
- ldr r1, _0802D368 @ =gUnknown_03004340
- ldr r0, _0802D36C @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0802D370 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D3AA
- b _0802D3A8
- .align 2, 0
-_0802D360: .4byte gUnknown_020239F8
-_0802D364: .4byte gSprites
-_0802D368: .4byte gUnknown_03004340
-_0802D36C: .4byte gUnknown_02024A60
-_0802D370: .4byte SpriteCallbackDummy
-_0802D374:
- ldr r2, _0802D45C @ =gSprites
- ldr r5, _0802D460 @ =gUnknown_03004340
- ldr r0, _0802D464 @ =gUnknown_02024A60
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, _0802D468 @ =SpriteCallbackDummy
- cmp r4, r0
- bne _0802D3AA
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _0802D3AA
-_0802D3A8:
- movs r6, 0x1
-_0802D3AA:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _0802D3B6
- movs r6, 0
-_0802D3B6:
- cmp r6, 0
- bne _0802D3BC
- b _0802D4DA
-_0802D3BC:
- ldr r7, _0802D464 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r5, _0802D46C @ =0x02017810
- adds r4, r0, r5
- ldrb r1, [r4, 0x1]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D3D8
- b _0802D4DA
-_0802D3D8:
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0802D4DA
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _0802D470 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _0802D474 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802D47C
- ldr r0, _0802D478 @ =gMPlay_BGM
- bl m4aMPlayContinue
- b _0802D488
- .align 2, 0
-_0802D45C: .4byte gSprites
-_0802D460: .4byte gUnknown_03004340
-_0802D464: .4byte gUnknown_02024A60
-_0802D468: .4byte SpriteCallbackDummy
-_0802D46C: .4byte 0x02017810
-_0802D470: .4byte 0x000027f9
-_0802D474: .4byte gUnknown_020239F8
-_0802D478: .4byte gMPlay_BGM
-_0802D47C:
- ldr r0, _0802D4E0 @ =gMPlay_BGM
- ldr r1, _0802D4E4 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_0802D488:
- ldr r7, _0802D4E8 @ =gUnknown_02024A6A
- ldr r4, _0802D4EC @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0802D4F0 @ =gPlayerParty
- adds r0, r5
- bl sub_80324F8
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0802D4BE
- ldrb r0, [r4]
- movs r1, 0x2
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- bl sub_80324F8
-_0802D4BE:
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D4F4 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _0802D4F8 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D4FC @ =sub_802D2E0
- str r1, [r0]
-_0802D4DA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D4E0: .4byte gMPlay_BGM
-_0802D4E4: .4byte 0x0000ffff
-_0802D4E8: .4byte gUnknown_02024A6A
-_0802D4EC: .4byte gUnknown_02024A60
-_0802D4F0: .4byte gPlayerParty
-_0802D4F4: .4byte 0x02017810
-_0802D4F8: .4byte gUnknown_03004330
-_0802D4FC: .4byte sub_802D2E0
- thumb_func_end sub_802D31C
-
- thumb_func_start sub_802D500
-sub_802D500: @ 802D500
- push {r4-r7,lr}
- ldr r5, _0802D654 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r4, _0802D658 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r7, 0x88
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D530
- ldr r0, _0802D65C @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0802D660 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0802D530:
- ldrb r0, [r5]
- movs r6, 0x2
- adds r2, r6, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D55E
- ldr r0, _0802D65C @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0802D660 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0802D55E:
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D64C
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D64C
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0802D5EE
- ldr r0, _0802D664 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802D5EE
- ldr r1, _0802D668 @ =gUnknown_0300434C
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D66C @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _0802D670 @ =gUnknown_03004340
- ldrb r0, [r5]
- adds r1, r6, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _0802D65C @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0802D660 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- eors r0, r6
- bl sub_804777C
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
-_0802D5EE:
- ldr r1, _0802D668 @ =gUnknown_0300434C
- ldr r4, _0802D654 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D66C @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _0802D670 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _0802D65C @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0802D660 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldr r2, _0802D674 @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0802D678 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D67C @ =sub_802D31C
- str r1, [r0]
-_0802D64C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D654: .4byte gUnknown_02024A60
-_0802D658: .4byte 0x02017810
-_0802D65C: .4byte gUnknown_02024A6A
-_0802D660: .4byte gPlayerParty
-_0802D664: .4byte gUnknown_020239F8
-_0802D668: .4byte gUnknown_0300434C
-_0802D66C: .4byte gSprites
-_0802D670: .4byte gUnknown_03004340
-_0802D674: .4byte 0x02017840
-_0802D678: .4byte gUnknown_03004330
-_0802D67C: .4byte sub_802D31C
- thumb_func_end sub_802D500
-
- thumb_func_start sub_802D680
-sub_802D680: @ 802D680
- push {r4-r6,lr}
- ldr r2, _0802D710 @ =gSprites
- ldr r0, _0802D714 @ =gUnknown_03004340
- ldr r6, _0802D718 @ =gUnknown_02024A60
- ldrb r3, [r6]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0802D71C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D708
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r5, _0802D720 @ =0x02017810
- adds r2, r0, r5
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802D708
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _0802D724 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldrb r2, [r6]
- lsls r0, r2, 2
- adds r1, r5, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802D6FC
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_0802D6FC:
- ldr r0, _0802D728 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0802D72C @ =sub_802D730
- str r0, [r1]
-_0802D708:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D710: .4byte gSprites
-_0802D714: .4byte gUnknown_03004340
-_0802D718: .4byte gUnknown_02024A60
-_0802D71C: .4byte SpriteCallbackDummy
-_0802D720: .4byte 0x02017810
-_0802D724: .4byte 0x000027f9
-_0802D728: .4byte gUnknown_03004330
-_0802D72C: .4byte sub_802D730
- thumb_func_end sub_802D680
-
- thumb_func_start sub_802D730
-sub_802D730: @ 802D730
- push {r4,lr}
- ldr r4, _0802D780 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D784 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802D77A
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _0802D77A
- ldr r0, _0802D788 @ =gMPlay_BGM
- ldr r1, _0802D78C @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r2, _0802D790 @ =gUnknown_02024A6A
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802D794 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl1_exec_completed
-_0802D77A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D780: .4byte gUnknown_02024A60
-_0802D784: .4byte 0x02017810
-_0802D788: .4byte gMPlay_BGM
-_0802D78C: .4byte 0x0000ffff
-_0802D790: .4byte gUnknown_02024A6A
-_0802D794: .4byte gPlayerParty
- thumb_func_end sub_802D730
-
- thumb_func_start sub_802D798
-sub_802D798: @ 802D798
- push {r4-r6,lr}
- ldr r5, _0802D844 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _0802D848 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0802D7C6
- ldr r0, _0802D84C @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0802D850 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0802D7C6:
- ldr r4, _0802D854 @ =gSprites
- ldr r0, _0802D858 @ =gUnknown_0300434C
- ldrb r2, [r5]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _0802D85C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D83C
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0802D83C
- adds r0, r3, r4
- bl DestroySprite
- ldr r4, _0802D860 @ =gUnknown_03004340
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _0802D84C @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0802D850 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- bl sub_804777C
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- bl sub_8031F88
- ldr r1, _0802D864 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D868 @ =sub_802D680
- str r1, [r0]
-_0802D83C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D844: .4byte gUnknown_02024A60
-_0802D848: .4byte 0x02017810
-_0802D84C: .4byte gUnknown_02024A6A
-_0802D850: .4byte gPlayerParty
-_0802D854: .4byte gSprites
-_0802D858: .4byte gUnknown_0300434C
-_0802D85C: .4byte SpriteCallbackDummy
-_0802D860: .4byte gUnknown_03004340
-_0802D864: .4byte gUnknown_03004330
-_0802D868: .4byte sub_802D680
- thumb_func_end sub_802D798
-
- thumb_func_start c3_0802FDF4
-c3_0802FDF4: @ 802D86C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _0802D88E
- ldr r0, _0802D894 @ =gMPlay_BGM
- ldr r1, _0802D898 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- adds r0, r4, 0
- bl DestroyTask
-_0802D88E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D894: .4byte gMPlay_BGM
-_0802D898: .4byte 0x0000ffff
- thumb_func_end c3_0802FDF4
-
- thumb_func_start bx_t1_healthbar_update
-bx_t1_healthbar_update: @ 802D89C
- push {r4-r6,lr}
- ldr r5, _0802D8DC @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r6, _0802D8E0 @ =gUnknown_03004340
- adds r1, r0, r6
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0802D8E4
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _0802D8FE
- .align 2, 0
-_0802D8DC: .4byte gUnknown_02024A60
-_0802D8E0: .4byte gUnknown_03004340
-_0802D8E4:
- ldr r2, _0802D904 @ =gUnknown_02024A6A
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802D908 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl1_exec_completed
-_0802D8FE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D904: .4byte gUnknown_02024A6A
-_0802D908: .4byte gPlayerParty
- thumb_func_end bx_t1_healthbar_update
-
- thumb_func_start sub_802D90C
-sub_802D90C: @ 802D90C
- push {lr}
- ldr r0, _0802D920 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0802D91A
- bl dp01_tbl1_exec_completed
-_0802D91A:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D920: .4byte gUnknown_03004210
- thumb_func_end sub_802D90C
-
- thumb_func_start sub_802D924
-sub_802D924: @ 802D924
- 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, _0802DA24 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- mov r8, r0
- ldrb r0, [r0, 0x8]
- mov r10, r0
- mov r1, r8
- ldrb r7, [r1, 0xC]
- str r7, [sp, 0x8]
- ldrh r2, [r1, 0xA]
- str r2, [sp, 0xC]
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0802D96A
- ldr r1, _0802DA28 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r10, r0
- bne _0802D96A
- b _0802DA80
-_0802D96A:
- movs r0, 0x64
- mov r1, r10
- muls r1, r0
- ldr r0, _0802DA2C @ =gPlayerParty
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x4]
- ldr r3, _0802DA30 @ =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0802DA34 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r1, r2
- adds r4, r1
- adds r4, r3
- ldr r2, [r4]
- str r2, [sp]
- ldr r3, [sp, 0xC]
- lsls r1, r3, 16
- asrs r1, 16
- adds r0, r1
- cmp r0, r2
- bcc _0802DA58
- adds r0, r6, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r6, 0
- bl CalculateMonStats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- ldr r0, [sp, 0xC]
- subs r2, r0, r2
- ldr r4, _0802DA38 @ =gUnknown_02024A60
- ldrb r5, [r4]
- strb r7, [r4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xB
- bl dp01_build_cmdbuf_x21_a_bb
- strb r5, [r4]
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802DA40
- ldr r2, _0802DA28 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r2
- mov r1, r10
- ldrh r0, [r0]
- cmp r1, r0
- beq _0802DA1E
- movs r0, 0x2
- eors r7, r0
- lsls r0, r7, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _0802DA40
-_0802DA1E:
- ldr r0, _0802DA3C @ =sub_802DCB0
- b _0802DA82
- .align 2, 0
-_0802DA24: .4byte gTasks
-_0802DA28: .4byte gUnknown_02024A6A
-_0802DA2C: .4byte gPlayerParty
-_0802DA30: .4byte gExperienceTables
-_0802DA34: .4byte gBaseStats
-_0802DA38: .4byte gUnknown_02024A60
-_0802DA3C: .4byte sub_802DCB0
-_0802DA40:
- ldr r0, _0802DA50 @ =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldr r0, _0802DA54 @ =sub_802DDC4
- b _0802DA84
- .align 2, 0
-_0802DA50: .4byte gTasks
-_0802DA54: .4byte sub_802DDC4
-_0802DA58:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r6, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, _0802DA78 @ =gUnknown_03004330
- ldr r3, [sp, 0x8]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, _0802DA7C @ =sub_802D90C
- str r1, [r0]
- mov r0, r9
- bl DestroyTask
- b _0802DA86
- .align 2, 0
-_0802DA78: .4byte gUnknown_03004330
-_0802DA7C: .4byte sub_802D90C
-_0802DA80:
- ldr r0, _0802DA98 @ =sub_802DA9C
-_0802DA82:
- mov r1, r8
-_0802DA84:
- str r0, [r1]
-_0802DA86:
- 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
-_0802DA98: .4byte sub_802DA9C
- thumb_func_end sub_802D924
-
- thumb_func_start sub_802DA9C
-sub_802DA9C: @ 802DA9C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802DB54 @ =gTasks
- lsls r2, r0, 2
- mov r8, r2
- add r8, r0
- mov r0, r8
- lsls r0, 3
- mov r8, r0
- add r8, r1
- mov r2, r8
- ldrb r1, [r2, 0x8]
- movs r0, 0xA
- ldrsh r2, [r2, r0]
- mov r9, r2
- mov r2, r8
- ldrb r2, [r2, 0xC]
- mov r10, r2
- movs r0, 0x64
- adds r6, r1, 0
- muls r6, r0
- ldr r0, _0802DB58 @ =gPlayerParty
- adds r6, r0
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x19
- bl GetMonData
- adds r3, r0, 0
- ldr r6, _0802DB5C @ =gExperienceTables
- lsls r1, r4, 2
- ldr r2, _0802DB60 @ =gBaseStats
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r2
- adds r1, r0
- adds r1, r6
- ldr r1, [r1]
- subs r3, r1
- adds r4, 0x1
- lsls r4, 2
- adds r4, r0
- adds r4, r6
- ldr r2, [r4]
- subs r2, r1
- ldr r0, _0802DB64 @ =gUnknown_03004340
- add r0, r10
- ldrb r1, [r0]
- mov r0, r9
- negs r0, r0
- str r0, [sp]
- mov r0, r10
- bl sub_8043D84
- movs r0, 0x21
- bl PlaySE
- ldr r0, _0802DB68 @ =sub_802DB6C
- mov r1, r8
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DB54: .4byte gTasks
-_0802DB58: .4byte gPlayerParty
-_0802DB5C: .4byte gExperienceTables
-_0802DB60: .4byte gBaseStats
-_0802DB64: .4byte gUnknown_03004340
-_0802DB68: .4byte sub_802DB6C
- thumb_func_end sub_802DA9C
-
- thumb_func_start sub_802DB6C
-sub_802DB6C: @ 802DB6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0802DB98 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r6, r0, r1
- ldrh r1, [r6, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r6, r2]
- cmp r0, 0xC
- bgt _0802DB9C
- adds r0, r1, 0x1
- strh r0, [r6, 0x1C]
- b _0802DC98
- .align 2, 0
-_0802DB98: .4byte gTasks
-_0802DB9C:
- ldrb r0, [r6, 0x8]
- mov r9, r0
- ldrh r2, [r6, 0xA]
- mov r10, r2
- ldrb r7, [r6, 0xC]
- ldr r5, _0802DC64 @ =gUnknown_03004340
- adds r5, r7, r5
- ldrb r1, [r5]
- adds r0, r7, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- bl sub_8043DFC
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0802DC98
- movs r0, 0x21
- bl m4aSongNumStop
- movs r0, 0x64
- mov r1, r9
- muls r1, r0
- ldr r0, _0802DC68 @ =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _0802DC6C @ =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0802DC70 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r3
- ldr r1, [r4]
- str r1, [sp]
- mov r2, r10
- lsls r0, r2, 16
- asrs r4, r0, 16
- ldr r0, [sp, 0x4]
- adds r0, r4
- cmp r0, r1
- blt _0802DC7C
- adds r0, r5, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- bl CalculateMonStats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- subs r2, r4, r2
- ldr r4, _0802DC74 @ =gUnknown_02024A60
- ldrb r5, [r4]
- strb r7, [r4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xB
- bl dp01_build_cmdbuf_x21_a_bb
- strb r5, [r4]
- ldr r0, _0802DC78 @ =sub_802DCB0
- str r0, [r6]
- b _0802DC98
- .align 2, 0
-_0802DC64: .4byte gUnknown_03004340
-_0802DC68: .4byte gPlayerParty
-_0802DC6C: .4byte gExperienceTables
-_0802DC70: .4byte gBaseStats
-_0802DC74: .4byte gUnknown_02024A60
-_0802DC78: .4byte sub_802DCB0
-_0802DC7C:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r5, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, _0802DCA8 @ =gUnknown_03004330
- lsls r0, r7, 2
- adds r0, r1
- ldr r1, _0802DCAC @ =sub_802D90C
- str r1, [r0]
- mov r0, r8
- bl DestroyTask
-_0802DC98:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DCA8: .4byte gUnknown_03004330
-_0802DCAC: .4byte sub_802D90C
- thumb_func_end sub_802DB6C
-
- thumb_func_start sub_802DCB0
-sub_802DCB0: @ 802DCB0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0802DD04 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0xC]
- ldrb r6, [r0, 0x8]
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802DCE4
- ldr r1, _0802DD08 @ =gUnknown_02024A6A
- movs r0, 0x2
- adds r2, r4, 0
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- bne _0802DCE4
- adds r4, r2, 0
-_0802DCE4:
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0
- bl move_anim_start_t4
- ldr r0, _0802DD04 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0802DD0C @ =sub_802DD10
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DD04: .4byte gTasks
-_0802DD08: .4byte gUnknown_02024A6A
-_0802DD0C: .4byte sub_802DD10
- thumb_func_end sub_802DCB0
-
- thumb_func_start sub_802DD10
-sub_802DD10: @ 802DD10
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0802DD78 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- ldrb r5, [r2, 0xC]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- ldr r1, _0802DD7C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802DDAE
- ldrb r4, [r2, 0x8]
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _0802DD80 @ =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x38
- bl GetMonData
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802DD8C
- ldr r1, _0802DD84 @ =gUnknown_02024A6A
- movs r0, 0x2
- adds r2, r5, 0
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _0802DD8C
- ldr r0, _0802DD88 @ =gUnknown_03004340
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r1, r7, 0
- movs r2, 0
- bl sub_8045A5C
- b _0802DDA0
- .align 2, 0
-_0802DD78: .4byte gTasks
-_0802DD7C: .4byte 0x02017810
-_0802DD80: .4byte gPlayerParty
-_0802DD84: .4byte gUnknown_02024A6A
-_0802DD88: .4byte gUnknown_03004340
-_0802DD8C:
- ldr r0, _0802DDB4 @ =gUnknown_03004340
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0x64
- muls r1, r4
- ldr r2, _0802DDB8 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
-_0802DDA0:
- ldr r0, _0802DDBC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0802DDC0 @ =sub_802DDC4
- str r0, [r1]
-_0802DDAE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DDB4: .4byte gUnknown_03004340
-_0802DDB8: .4byte gPlayerParty
-_0802DDBC: .4byte gTasks
-_0802DDC0: .4byte sub_802DDC4
- thumb_func_end sub_802DD10
-
- thumb_func_start sub_802DDC4
-sub_802DDC4: @ 802DDC4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0802DE00 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r1, [r4, 0x8]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802DE04 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- ldrb r0, [r4, 0xC]
- ldr r1, _0802DE08 @ =gUnknown_03004330
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802DE0C @ =sub_802D90C
- str r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DE00: .4byte gTasks
-_0802DE04: .4byte gPlayerParty
-_0802DE08: .4byte gUnknown_03004330
-_0802DE0C: .4byte sub_802D90C
- thumb_func_end sub_802DDC4
-
- thumb_func_start sub_802DE10
-sub_802DE10: @ 802DE10
- push {r4-r6,lr}
- ldr r6, _0802DE94 @ =gSprites
- ldr r5, _0802DE98 @ =gUnknown_02024BE0
- ldr r4, _0802DE9C @ =gUnknown_02024A60
- ldrb r2, [r4]
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r3, 0x22
- ldrsh r1, [r0, r3]
- movs r3, 0x26
- ldrsh r0, [r0, r3]
- adds r1, r0
- cmp r1, 0xA0
- ble _0802DE8C
- ldr r1, _0802DEA0 @ =gUnknown_02024A6A
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802DEA4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl nullsub_9
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r1, _0802DEA8 @ =gUnknown_03004340
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl1_exec_completed
-_0802DE8C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DE94: .4byte gSprites
-_0802DE98: .4byte gUnknown_02024BE0
-_0802DE9C: .4byte gUnknown_02024A60
-_0802DEA0: .4byte gUnknown_02024A6A
-_0802DEA4: .4byte gPlayerParty
-_0802DEA8: .4byte gUnknown_03004340
- thumb_func_end sub_802DE10
-
- thumb_func_start sub_802DEAC
-sub_802DEAC: @ 802DEAC
- push {r4-r6,lr}
- ldr r6, _0802DF04 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0802DF08 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802DEFC
- ldr r5, _0802DF0C @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0802DF10 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0802DF14 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl1_exec_completed
-_0802DEFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF04: .4byte gUnknown_02024A60
-_0802DF08: .4byte 0x02017810
-_0802DF0C: .4byte gUnknown_02024BE0
-_0802DF10: .4byte gSprites
-_0802DF14: .4byte gUnknown_03004340
- thumb_func_end sub_802DEAC
-
- thumb_func_start sub_802DF18
-sub_802DF18: @ 802DF18
- push {lr}
- ldr r0, _0802DF2C @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0802DF26
- bl dp01_tbl1_exec_completed
-_0802DF26:
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF2C: .4byte gUnknown_03004210
- thumb_func_end sub_802DF18
-
- thumb_func_start sub_802DF30
-sub_802DF30: @ 802DF30
- push {r4,lr}
- ldr r0, _0802DF70 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802DF6A
- ldr r1, _0802DF74 @ =gUnknown_03004330
- ldr r2, _0802DF78 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802DF7C @ =sub_802DF88
- str r1, [r0]
- ldr r3, _0802DF80 @ =gTasks
- ldr r1, _0802DF84 @ =gUnknown_0300434C
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldrb r4, [r1, 0x8]
- bl DestroyTask
- adds r0, r4, 0
- bl sub_8094E20
-_0802DF6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF70: .4byte gPaletteFade
-_0802DF74: .4byte gUnknown_03004330
-_0802DF78: .4byte gUnknown_02024A60
-_0802DF7C: .4byte sub_802DF88
-_0802DF80: .4byte gTasks
-_0802DF84: .4byte gUnknown_0300434C
- thumb_func_end sub_802DF30
-
- thumb_func_start sub_802DF88
-sub_802DF88: @ 802DF88
- push {lr}
- ldr r0, _0802DFB8 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802DFBC @ =sub_800F808
- cmp r1, r0
- bne _0802DFF8
- ldr r0, _0802DFC0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802DFF8
- ldr r0, _0802DFC4 @ =gUnknown_0202E8F4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802DFD0
- ldr r0, _0802DFC8 @ =gUnknown_0202E8F5
- ldrb r1, [r0]
- ldr r2, _0802DFCC @ =gUnknown_02038470
- movs r0, 0x1
- bl dp01_build_cmdbuf_x22_a_three_bytes
- b _0802DFDA
- .align 2, 0
-_0802DFB8: .4byte gMain
-_0802DFBC: .4byte sub_800F808
-_0802DFC0: .4byte gPaletteFade
-_0802DFC4: .4byte gUnknown_0202E8F4
-_0802DFC8: .4byte gUnknown_0202E8F5
-_0802DFCC: .4byte gUnknown_02038470
-_0802DFD0:
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
-_0802DFDA:
- ldr r1, _0802DFFC @ =gUnknown_02023A60
- ldr r0, _0802E000 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- bne _0802DFF4
- bl b_link_standby_message
-_0802DFF4:
- bl dp01_tbl1_exec_completed
-_0802DFF8:
- pop {r0}
- bx r0
- .align 2, 0
-_0802DFFC: .4byte gUnknown_02023A60
-_0802E000: .4byte gUnknown_02024A60
- thumb_func_end sub_802DF88
-
- thumb_func_start sub_802E004
-sub_802E004: @ 802E004
- push {lr}
- ldr r0, _0802E02C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802E028
- ldr r1, _0802E030 @ =gUnknown_03004330
- ldr r0, _0802E034 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802E038 @ =sub_802E03C
- str r1, [r0]
- bl nullsub_14
- bl sub_80A6DCC
-_0802E028:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E02C: .4byte gPaletteFade
-_0802E030: .4byte gUnknown_03004330
-_0802E034: .4byte gUnknown_02024A60
-_0802E038: .4byte sub_802E03C
- thumb_func_end sub_802E004
-
- thumb_func_start sub_802E03C
-sub_802E03C: @ 802E03C
- push {lr}
- ldr r0, _0802E068 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802E06C @ =sub_800F808
- cmp r1, r0
- bne _0802E062
- ldr r0, _0802E070 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802E062
- ldr r0, _0802E074 @ =gScriptItemId
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl1_exec_completed
-_0802E062:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E068: .4byte gMain
-_0802E06C: .4byte sub_800F808
-_0802E070: .4byte gPaletteFade
-_0802E074: .4byte gScriptItemId
- thumb_func_end sub_802E03C
-
- thumb_func_start bx_wait_t1
-bx_wait_t1: @ 802E078
- push {lr}
- ldr r0, _0802E0A4 @ =gUnknown_02024E6D
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802E09A
- ldr r0, _0802E0A8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802E0AC @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802E09E
-_0802E09A:
- bl dp01_tbl1_exec_completed
-_0802E09E:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E0A4: .4byte gUnknown_02024E6D
-_0802E0A8: .4byte gUnknown_02024A60
-_0802E0AC: .4byte 0x02017810
- thumb_func_end bx_wait_t1
-
- thumb_func_start bx_blink_t1
-bx_blink_t1: @ 802E0B0
- push {r4,lr}
- ldr r1, _0802E0EC @ =gUnknown_02024BE0
- ldr r0, _0802E0F0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _0802E0F4 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _0802E0FC
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0802E0F8 @ =gUnknown_02024E6D
- strb r3, [r0]
- bl dp01_tbl1_exec_completed
- b _0802E126
- .align 2, 0
-_0802E0EC: .4byte gUnknown_02024BE0
-_0802E0F0: .4byte gUnknown_02024A60
-_0802E0F4: .4byte gSprites
-_0802E0F8: .4byte gUnknown_02024E6D
-_0802E0FC:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0802E120
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_0802E120:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_0802E126:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t1
-
- thumb_func_start sub_802E12C
-sub_802E12C: @ 802E12C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _0802E180 @ =gUnknown_02024A60
- ldrb r4, [r0]
- lsls r4, 9
- ldr r0, _0802E184 @ =gUnknown_02023A64
- adds r4, r0
- ldr r5, _0802E188 @ =gUnknown_020238CC
- adds r0, r5, 0
- bl StringCopy
- lsls r0, r6, 1
- adds r4, r0
- ldrh r1, [r4]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _0802E18C @ =gMoveNames
- adds r1, r0
- adds r0, r5, 0
- bl StringAppend
- ldr r4, _0802E190 @ =gUnknown_03004210
- adds r1, r5, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 18
- movs r2, 0xC0
- lsls r2, 18
- adds r0, r2
- lsrs r2, r0, 16
- movs r0, 0x1
- ands r0, r6
- movs r3, 0x1
- cmp r0, 0
- beq _0802E176
- movs r3, 0xB
-_0802E176:
- cmp r6, 0x1
- bgt _0802E194
- movs r0, 0x37
- b _0802E196
- .align 2, 0
-_0802E180: .4byte gUnknown_02024A60
-_0802E184: .4byte gUnknown_02023A64
-_0802E188: .4byte gUnknown_020238CC
-_0802E18C: .4byte gMoveNames
-_0802E190: .4byte gUnknown_03004210
-_0802E194:
- movs r0, 0x39
-_0802E196:
- str r0, [sp]
- adds r0, r4, 0
- bl InitWindow
- ldr r0, _0802E1AC @ =gUnknown_03004210
- bl sub_8002F44
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E1AC: .4byte gUnknown_03004210
- thumb_func_end sub_802E12C
-
- thumb_func_start sub_802E1B0
-sub_802E1B0: @ 802E1B0
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _0802E208 @ =gUnknown_02024A60
- ldrb r4, [r0]
- lsls r4, 9
- ldr r0, _0802E20C @ =gUnknown_02023A64
- adds r4, r0
- ldr r5, _0802E210 @ =gUnknown_03004348
- movs r0, 0
- strb r0, [r5]
- ldr r0, _0802E214 @ =gUnknown_03004210
- ldr r1, _0802E218 @ =0x00001016
- movs r2, 0x14
- str r2, [sp]
- movs r2, 0x3A
- str r2, [sp, 0x4]
- movs r2, 0x1
- movs r3, 0x37
- bl FillWindowRect
- movs r6, 0
-_0802E1DA:
- lsls r0, r6, 24
- lsrs r0, 24
- bl nullsub_7
- adds r0, r6, 0
- ldr r1, _0802E21C @ =gUnknown_08400D49
- bl sub_802E12C
- ldrh r0, [r4]
- cmp r0, 0
- beq _0802E1F6
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_0802E1F6:
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802E1DA
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E208: .4byte gUnknown_02024A60
-_0802E20C: .4byte gUnknown_02023A64
-_0802E210: .4byte gUnknown_03004348
-_0802E214: .4byte gUnknown_03004210
-_0802E218: .4byte 0x00001016
-_0802E21C: .4byte gUnknown_08400D49
- thumb_func_end sub_802E1B0
-
- thumb_func_start sub_802E220
-sub_802E220: @ 802E220
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r4, _0802E2B8 @ =gUnknown_02023A60
- ldr r6, _0802E2BC @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r1, r0, 9
- adds r0, r4, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0802E2B0
- adds r4, 0x4
- adds r4, r1, r4
- ldr r2, _0802E2C0 @ =gUnknown_020238CC
- ldr r1, _0802E2C4 @ =gUnknown_08400D49
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r1, 0xFC
- strb r1, [r2]
- movs r0, 0x11
- strb r0, [r2, 0x1]
- movs r0, 0x2
- strb r0, [r2, 0x2]
- adds r2, 0x3
- strb r1, [r2]
- movs r0, 0x14
- strb r0, [r2, 0x1]
- movs r0, 0x6
- strb r0, [r2, 0x2]
- adds r2, 0x3
- ldr r5, _0802E2C8 @ =gUnknown_02024E64
- ldrb r1, [r6]
- adds r1, r5
- adds r0, r4, 0
- adds r0, 0x8
- ldrb r1, [r1]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- ldrb r0, [r6]
- adds r0, r5
- adds r4, 0xC
- ldrb r0, [r0]
- adds r4, r0
- ldrb r1, [r4]
- adds r0, r2, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, _0802E2CC @ =gUnknown_03004210
- ldr r1, _0802E2C0 @ =gUnknown_020238CC
- ldr r2, _0802E2D0 @ =0x000002a2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x19
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
-_0802E2B0:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E2B8: .4byte gUnknown_02023A60
-_0802E2BC: .4byte gUnknown_02024A60
-_0802E2C0: .4byte gUnknown_020238CC
-_0802E2C4: .4byte gUnknown_08400D49
-_0802E2C8: .4byte gUnknown_02024E64
-_0802E2CC: .4byte gUnknown_03004210
-_0802E2D0: .4byte 0x000002a2
- thumb_func_end sub_802E220
-
- thumb_func_start sub_802E2D4
-sub_802E2D4: @ 802E2D4
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _0802E314 @ =gUnknown_02023A60
- ldr r5, _0802E318 @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r1, r0, 9
- adds r0, r4, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802E328
- ldr r4, _0802E31C @ =gUnknown_03004210
- ldr r1, _0802E320 @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802E324 @ =gUnknown_08400D52
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x13
- bl InitWindow
- b _0802E388
- .align 2, 0
-_0802E314: .4byte gUnknown_02023A60
-_0802E318: .4byte gUnknown_02024A60
-_0802E31C: .4byte gUnknown_03004210
-_0802E320: .4byte 0x00001016
-_0802E324: .4byte gUnknown_08400D52
-_0802E328:
- adds r4, 0x4
- adds r4, r1, r4
- ldr r3, _0802E398 @ =gUnknown_020238CC
- ldr r1, _0802E39C @ =gUnknown_08400D49
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- ldr r2, _0802E3A0 @ =gBattleMoves
- ldr r1, _0802E3A4 @ =gUnknown_02024E64
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r0
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- lsls r1, r0, 3
- subs r1, r0
- ldr r0, _0802E3A8 @ =gTypeNames
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- ldr r4, _0802E3AC @ =gUnknown_03004210
- ldr r1, _0802E3B0 @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x39
- bl FillWindowRect
- ldr r1, _0802E398 @ =gUnknown_020238CC
- movs r2, 0xB0
- lsls r2, 2
- movs r0, 0x39
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
-_0802E388:
- ldr r0, _0802E3AC @ =gUnknown_03004210
- bl sub_8002F44
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E398: .4byte gUnknown_020238CC
-_0802E39C: .4byte gUnknown_08400D49
-_0802E3A0: .4byte gBattleMoves
-_0802E3A4: .4byte gUnknown_02024E64
-_0802E3A8: .4byte gTypeNames
-_0802E3AC: .4byte gUnknown_03004210
-_0802E3B0: .4byte 0x00001016
- thumb_func_end sub_802E2D4
-
- thumb_func_start sub_802E3B4
-sub_802E3B4: @ 802E3B4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x48
- bl sub_814A958
- ldr r1, _0802E3DC @ =gUnknown_081FAE89
- lsls r4, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r1, 0x1
- adds r4, r1
- ldrb r1, [r4]
- bl sub_814A880
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E3DC: .4byte gUnknown_081FAE89
- thumb_func_end sub_802E3B4
-
- thumb_func_start nullsub_7
-nullsub_7: @ 802E3E0
- bx lr
- thumb_func_end nullsub_7
-
- thumb_func_start sub_802E3E4
-sub_802E3E4: @ 802E3E4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2A
- bl sub_814A958
- ldr r1, _0802E40C @ =gUnknown_081FAE91
- lsls r4, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r1, 0x1
- adds r4, r1
- ldrb r1, [r4]
- bl sub_814A880
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E40C: .4byte gUnknown_081FAE91
- thumb_func_end sub_802E3E4
-
- thumb_func_start nullsub_8
-nullsub_8: @ 802E410
- bx lr
- thumb_func_end nullsub_8
-
- thumb_func_start sub_802E414
-sub_802E414: @ 802E414
- push {lr}
- ldr r0, _0802E420 @ =sub_807AD58
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0802E420: .4byte sub_807AD58
- thumb_func_end sub_802E414
-
- thumb_func_start sub_802E424
-sub_802E424: @ 802E424
- push {lr}
- ldr r0, _0802E430 @ =sub_807AD58
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0802E430: .4byte sub_807AD58
- thumb_func_end sub_802E424
-
- thumb_func_start sub_802E434
-sub_802E434: @ 802E434
- push {lr}
- ldr r0, _0802E458 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802E45C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0802E452
- bl dp01_tbl1_exec_completed
-_0802E452:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E458: .4byte gUnknown_02024A60
-_0802E45C: .4byte 0x02017810
- thumb_func_end sub_802E434
-
- thumb_func_start sub_802E460
-sub_802E460: @ 802E460
- push {lr}
- ldr r0, _0802E484 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802E488 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0802E47E
- bl dp01_tbl1_exec_completed
-_0802E47E:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E484: .4byte gUnknown_02024A60
-_0802E488: .4byte 0x02017810
- thumb_func_end sub_802E460
-
- thumb_func_start b_link_standby_message
-b_link_standby_message: @ 802E48C
- push {lr}
- sub sp, 0x4
- ldr r0, _0802E4BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802E4B6
- ldr r0, _0802E4C0 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0802E4C4 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r0, _0802E4C8 @ =gUnknown_03004210
- ldr r1, _0802E4CC @ =gUnknown_08400CE0
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
-_0802E4B6:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802E4BC: .4byte gUnknown_020239F8
-_0802E4C0: .4byte gUnknown_030042A4
-_0802E4C4: .4byte gUnknown_030042A0
-_0802E4C8: .4byte gUnknown_03004210
-_0802E4CC: .4byte gUnknown_08400CE0
- thumb_func_end b_link_standby_message
-
- thumb_func_start dp01t_00_1_getattr
-dp01t_00_1_getattr: @ 802E4D0
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _0802E4FC @ =gUnknown_02023A60
- ldr r0, _0802E500 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0802E508
- ldr r0, _0802E504 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_player_pokemon_
- adds r6, r0, 0
- b _0802E52A
- .align 2, 0
-_0802E4FC: .4byte gUnknown_02023A60
-_0802E500: .4byte gUnknown_02024A60
-_0802E504: .4byte gUnknown_02024A6A
-_0802E508:
- ldrb r4, [r1]
- movs r5, 0
-_0802E50C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802E522
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_player_pokemon_
- adds r6, r0
-_0802E522:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _0802E50C
-_0802E52A:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl1_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_1_getattr
-
- thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_
-dp01_getattr_by_ch1_for_player_pokemon_: @ 802E544
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _0802E578 @ =gUnknown_02023A60
- ldr r3, _0802E57C @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0802E56E
- bl _0802ECDA
-_0802E56E:
- lsls r0, 2
- ldr r1, _0802E580 @ =_0802E584
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802E578: .4byte gUnknown_02023A60
-_0802E57C: .4byte gUnknown_02024A60
-_0802E580: .4byte _0802E584
- .align 2, 0
-_0802E584:
- .4byte _0802E674
- .4byte _0802E898
- .4byte _0802E8A8
- .4byte _0802E8B8
- .4byte _0802E920
- .4byte _0802E920
- .4byte _0802E920
- .4byte _0802E920
- .4byte _0802E93C
- .4byte _0802E978
- .4byte _0802E978
- .4byte _0802E978
- .4byte _0802E978
- .4byte _0802ECDA
- .4byte _0802ECDA
- .4byte _0802ECDA
- .4byte _0802ECDA
- .4byte _0802E994
- .4byte _0802E9A4
- .4byte _0802E9D4
- .4byte _0802E9E4
- .4byte _0802E9F4
- .4byte _0802EA04
- .4byte _0802EA14
- .4byte _0802EA24
- .4byte _0802EA34
- .4byte _0802EA44
- .4byte _0802EA54
- .4byte _0802EA64
- .4byte _0802EA74
- .4byte _0802EA84
- .4byte _0802EA94
- .4byte _0802EAE4
- .4byte _0802EAF4
- .4byte _0802EB04
- .4byte _0802EB14
- .4byte _0802EB24
- .4byte _0802EB34
- .4byte _0802EB44
- .4byte _0802EB54
- .4byte _0802EB64
- .4byte _0802EB98
- .4byte _0802EBA8
- .4byte _0802EBB8
- .4byte _0802EBC8
- .4byte _0802EBD8
- .4byte _0802EBE8
- .4byte _0802EBF8
- .4byte _0802EC08
- .4byte _0802EC28
- .4byte _0802EC38
- .4byte _0802EC48
- .4byte _0802EC58
- .4byte _0802EC68
- .4byte _0802EC78
- .4byte _0802EC88
- .4byte _0802EC98
- .4byte _0802ECA8
- .4byte _0802ECB8
- .4byte _0802ECC8
-_0802E674:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802E888 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_0802E6C0:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802E6C0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802E888 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _0802E88C @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _0802E890 @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _0802E894 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_0802E878:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _0802E878
- b _0802ECDA
- .align 2, 0
-_0802E888: .4byte gPlayerParty
-_0802E88C: .4byte 0xfffffc1f
-_0802E890: .4byte 0xfff07fff
-_0802E894: .4byte 0xfffffe0f
-_0802E898:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E8A4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- b _0802EC12
- .align 2, 0
-_0802E8A4: .4byte gPlayerParty
-_0802E8A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E8B4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- b _0802EC12
- .align 2, 0
-_0802E8B4: .4byte gPlayerParty
-_0802E8B8:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0802E91C @ =gPlayerParty
- adds r4, r1, r0
- mov r8, r9
-_0802E8CE:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802E8CE
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E91C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_0802E90C:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _0802E90C
- b _0802ECDA
- .align 2, 0
-_0802E91C: .4byte gPlayerParty
-_0802E920:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E938 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _0802EC12
- .align 2, 0
-_0802E938: .4byte gPlayerParty
-_0802E93C:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _0802E974 @ =gPlayerParty
- mov r8, r2
-_0802E948:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802E948
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E974 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _0802ECDA
- .align 2, 0
-_0802E974: .4byte gPlayerParty
-_0802E978:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E990 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0802ECD2
- .align 2, 0
-_0802E990: .4byte gPlayerParty
-_0802E994:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E9A0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- b _0802E9AE
- .align 2, 0
-_0802E9A0: .4byte gPlayerParty
-_0802E9A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E9D0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x19
-_0802E9AE:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _0802ECDA
- .align 2, 0
-_0802E9D0: .4byte gPlayerParty
-_0802E9D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E9E0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1A
- b _0802ECD2
- .align 2, 0
-_0802E9E0: .4byte gPlayerParty
-_0802E9E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E9F0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1B
- b _0802ECD2
- .align 2, 0
-_0802E9F0: .4byte gPlayerParty
-_0802E9F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA00 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1C
- b _0802ECD2
- .align 2, 0
-_0802EA00: .4byte gPlayerParty
-_0802EA04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1D
- b _0802ECD2
- .align 2, 0
-_0802EA10: .4byte gPlayerParty
-_0802EA14:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA20 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1E
- b _0802ECD2
- .align 2, 0
-_0802EA20: .4byte gPlayerParty
-_0802EA24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA30 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1F
- b _0802ECD2
- .align 2, 0
-_0802EA30: .4byte gPlayerParty
-_0802EA34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA40 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x20
- b _0802ECD2
- .align 2, 0
-_0802EA40: .4byte gPlayerParty
-_0802EA44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA50 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x22
- b _0802ECD2
- .align 2, 0
-_0802EA50: .4byte gPlayerParty
-_0802EA54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA60 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x23
- b _0802ECD2
- .align 2, 0
-_0802EA60: .4byte gPlayerParty
-_0802EA64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA70 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x24
- b _0802ECD2
- .align 2, 0
-_0802EA70: .4byte gPlayerParty
-_0802EA74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA80 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x25
- b _0802ECD2
- .align 2, 0
-_0802EA80: .4byte gPlayerParty
-_0802EA84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA90 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x26
- b _0802ECD2
- .align 2, 0
-_0802EA90: .4byte gPlayerParty
-_0802EA94:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802EAE0 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _0802ECDA
- .align 2, 0
-_0802EAE0: .4byte gPlayerParty
-_0802EAE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EAF0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x27
- b _0802ECD2
- .align 2, 0
-_0802EAF0: .4byte gPlayerParty
-_0802EAF4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB00 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x28
- b _0802ECD2
- .align 2, 0
-_0802EB00: .4byte gPlayerParty
-_0802EB04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x29
- b _0802ECD2
- .align 2, 0
-_0802EB10: .4byte gPlayerParty
-_0802EB14:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB20 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2A
- b _0802ECD2
- .align 2, 0
-_0802EB20: .4byte gPlayerParty
-_0802EB24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB30 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2B
- b _0802ECD2
- .align 2, 0
-_0802EB30: .4byte gPlayerParty
-_0802EB34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB40 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- b _0802ECD2
- .align 2, 0
-_0802EB40: .4byte gPlayerParty
-_0802EB44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB50 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- b _0802EB6E
- .align 2, 0
-_0802EB50: .4byte gPlayerParty
-_0802EB54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB60 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x9
- b _0802EC12
- .align 2, 0
-_0802EB60: .4byte gPlayerParty
-_0802EB64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB94 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x37
-_0802EB6E:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _0802ECDA
- .align 2, 0
-_0802EB94: .4byte gPlayerParty
-_0802EB98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBA4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- b _0802ECD2
- .align 2, 0
-_0802EBA4: .4byte gPlayerParty
-_0802EBA8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBB4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- b _0802EC12
- .align 2, 0
-_0802EBB4: .4byte gPlayerParty
-_0802EBB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBC4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- b _0802EC12
- .align 2, 0
-_0802EBC4: .4byte gPlayerParty
-_0802EBC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBD4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3B
- b _0802EC12
- .align 2, 0
-_0802EBD4: .4byte gPlayerParty
-_0802EBD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBE4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3C
- b _0802EC12
- .align 2, 0
-_0802EBE4: .4byte gPlayerParty
-_0802EBE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBF4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3D
- b _0802EC12
- .align 2, 0
-_0802EBF4: .4byte gPlayerParty
-_0802EBF8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC04 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3E
- b _0802EC12
- .align 2, 0
-_0802EC04: .4byte gPlayerParty
-_0802EC08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC24 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3F
-_0802EC12:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _0802ECDA
- .align 2, 0
-_0802EC24: .4byte gPlayerParty
-_0802EC28:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC34 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- b _0802ECD2
- .align 2, 0
-_0802EC34: .4byte gPlayerParty
-_0802EC38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC44 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- b _0802ECD2
- .align 2, 0
-_0802EC44: .4byte gPlayerParty
-_0802EC48:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC54 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- b _0802ECD2
- .align 2, 0
-_0802EC54: .4byte gPlayerParty
-_0802EC58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC64 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- b _0802ECD2
- .align 2, 0
-_0802EC64: .4byte gPlayerParty
-_0802EC68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC74 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- b _0802ECD2
- .align 2, 0
-_0802EC74: .4byte gPlayerParty
-_0802EC78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC84 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x30
- b _0802ECD2
- .align 2, 0
-_0802EC84: .4byte gPlayerParty
-_0802EC88:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC94 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x32
- b _0802ECD2
- .align 2, 0
-_0802EC94: .4byte gPlayerParty
-_0802EC98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802ECA4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x33
- b _0802ECD2
- .align 2, 0
-_0802ECA4: .4byte gPlayerParty
-_0802ECA8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802ECB4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x34
- b _0802ECD2
- .align 2, 0
-_0802ECB4: .4byte gPlayerParty
-_0802ECB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802ECC4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x35
- b _0802ECD2
- .align 2, 0
-_0802ECC4: .4byte gPlayerParty
-_0802ECC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802ECEC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x36
-_0802ECD2:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_0802ECDA:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0802ECEC: .4byte gPlayerParty
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_
-
- thumb_func_start sub_802ECF0
-sub_802ECF0: @ 802ECF0
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r2, _0802ED68 @ =gUnknown_02024A6A
- ldr r5, _0802ED6C @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r3, _0802ED70 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r2, [r0]
- ldr r0, _0802ED74 @ =gPlayerParty
- adds r0, r2, r0
- adds r6, r4, r0
- mov r0, sp
- adds r4, r0, r2
- movs r2, 0
- adds r0, r3, 0x2
- adds r1, r0
- adds r7, r5, 0
- mov r12, r3
- ldrb r1, [r1]
- cmp r2, r1
- bcs _0802ED46
- adds r3, r0, 0
-_0802ED2C:
- adds r1, r4, r2
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcc _0802ED2C
-_0802ED46:
- ldrb r0, [r7]
- lsls r0, 9
- mov r1, r12
- adds r1, 0x2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- adds r2, r4, 0
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl1_exec_completed
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ED68: .4byte gUnknown_02024A6A
-_0802ED6C: .4byte gUnknown_02024A60
-_0802ED70: .4byte gUnknown_02023A60
-_0802ED74: .4byte gPlayerParty
- thumb_func_end sub_802ECF0
-
- thumb_func_start dp01t_02_1_setattr
-dp01t_02_1_setattr: @ 802ED78
- push {r4,r5,lr}
- ldr r1, _0802ED9C @ =gUnknown_02023A60
- ldr r0, _0802EDA0 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0802EDA8
- ldr r0, _0802EDA4 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl dp01_setattr_by_ch1_for_player_pokemon
- b _0802EDC6
- .align 2, 0
-_0802ED9C: .4byte gUnknown_02023A60
-_0802EDA0: .4byte gUnknown_02024A60
-_0802EDA4: .4byte gUnknown_02024A6A
-_0802EDA8:
- ldrb r4, [r1]
- movs r5, 0
-_0802EDAC:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802EDBA
- adds r0, r5, 0
- bl dp01_setattr_by_ch1_for_player_pokemon
-_0802EDBA:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0802EDAC
-_0802EDC6:
- bl dp01_tbl1_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp01t_02_1_setattr
-
- thumb_func_start dp01_setattr_by_ch1_for_player_pokemon
-dp01_setattr_by_ch1_for_player_pokemon: @ 802EDD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0802EE08 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, _0802EE0C @ =gUnknown_02023A63
- adds r3, r0, r2
- adds r6, r3, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r2, 0
- cmp r0, 0x3B
- bls _0802EDFC
- bl _0802F796
-_0802EDFC:
- lsls r0, 2
- ldr r1, _0802EE10 @ =_0802EE14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802EE08: .4byte gUnknown_02024A60
-_0802EE0C: .4byte gUnknown_02023A63
-_0802EE10: .4byte _0802EE14
- .align 2, 0
-_0802EE14:
- .4byte _0802EF04
- .4byte _0802F09C
- .4byte _0802F0BC
- .4byte _0802F0DC
- .4byte _0802F134
- .4byte _0802F134
- .4byte _0802F134
- .4byte _0802F134
- .4byte _0802F15C
- .4byte _0802F1C0
- .4byte _0802F1C0
- .4byte _0802F1C0
- .4byte _0802F1C0
- .4byte _0802F796
- .4byte _0802F796
- .4byte _0802F796
- .4byte _0802F796
- .4byte _0802F1F0
- .4byte _0802F210
- .4byte _0802F230
- .4byte _0802F250
- .4byte _0802F270
- .4byte _0802F290
- .4byte _0802F2B0
- .4byte _0802F2D0
- .4byte _0802F2F0
- .4byte _0802F310
- .4byte _0802F330
- .4byte _0802F350
- .4byte _0802F370
- .4byte _0802F390
- .4byte _0802F3B0
- .4byte _0802F420
- .4byte _0802F440
- .4byte _0802F460
- .4byte _0802F480
- .4byte _0802F4A0
- .4byte _0802F4C0
- .4byte _0802F4E0
- .4byte _0802F500
- .4byte _0802F520
- .4byte _0802F540
- .4byte _0802F560
- .4byte _0802F580
- .4byte _0802F5A0
- .4byte _0802F5C0
- .4byte _0802F5E0
- .4byte _0802F600
- .4byte _0802F620
- .4byte _0802F640
- .4byte _0802F660
- .4byte _0802F680
- .4byte _0802F6A0
- .4byte _0802F6C0
- .4byte _0802F6E0
- .4byte _0802F700
- .4byte _0802F720
- .4byte _0802F740
- .4byte _0802F760
- .4byte _0802F780
-_0802EF04:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802F098 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r6, 0
- bl SetMonData
- adds r2, r6, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r6
- mov r10, r0
- adds r0, r6, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r6, 0x2
- str r0, [sp, 0x4]
- adds r0, r6, 0x4
- str r0, [sp, 0x8]
- adds r0, r6, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r7, r6, 0
- adds r7, 0x24
- adds r4, r6, 0
- adds r4, 0xC
-_0802EF6A:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r7, 0
- bl SetMonData
- adds r7, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0802EF6A
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802F098 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r6, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r6, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F098: .4byte gPlayerParty
-_0802F09C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F0B4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F0B8 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F0B4: .4byte gPlayerParty
-_0802F0B8: .4byte gUnknown_02024A60
-_0802F0BC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F0D4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F0D8 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F0D4: .4byte gPlayerParty
-_0802F0D8: .4byte gUnknown_02024A60
-_0802F0DC:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r3
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0802F130 @ =gPlayerParty
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_0802F0F6:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0802F0F6
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F130 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F130: .4byte gPlayerParty
-_0802F134:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F150 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0802F154 @ =gUnknown_02023A60
- ldr r1, _0802F158 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0802F1D8
- .align 2, 0
-_0802F150: .4byte gPlayerParty
-_0802F154: .4byte gUnknown_02023A60
-_0802F158: .4byte gUnknown_02024A60
-_0802F15C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802F1B8 @ =gPlayerParty
- adds r4, r0
- ldr r5, _0802F1BC @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x11
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F1B8: .4byte gPlayerParty
-_0802F1BC: .4byte gUnknown_02024A60
-_0802F1C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F1E4 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0802F1E8 @ =gUnknown_02023A60
- ldr r1, _0802F1EC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0802F1D8:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F1E4: .4byte gPlayerParty
-_0802F1E8: .4byte gUnknown_02023A60
-_0802F1EC: .4byte gUnknown_02024A60
-_0802F1F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F208 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F20C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F208: .4byte gPlayerParty
-_0802F20C: .4byte gUnknown_02024A60
-_0802F210:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F228 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F22C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F228: .4byte gPlayerParty
-_0802F22C: .4byte gUnknown_02024A60
-_0802F230:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F248 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F24C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F248: .4byte gPlayerParty
-_0802F24C: .4byte gUnknown_02024A60
-_0802F250:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F268 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F26C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F268: .4byte gPlayerParty
-_0802F26C: .4byte gUnknown_02024A60
-_0802F270:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F288 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F28C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F288: .4byte gPlayerParty
-_0802F28C: .4byte gUnknown_02024A60
-_0802F290:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F2A8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F2AC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F2A8: .4byte gPlayerParty
-_0802F2AC: .4byte gUnknown_02024A60
-_0802F2B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F2C8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F2CC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F2C8: .4byte gPlayerParty
-_0802F2CC: .4byte gUnknown_02024A60
-_0802F2D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F2E8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F2EC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F2E8: .4byte gPlayerParty
-_0802F2EC: .4byte gUnknown_02024A60
-_0802F2F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F308 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F30C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F308: .4byte gPlayerParty
-_0802F30C: .4byte gUnknown_02024A60
-_0802F310:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F328 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F32C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F328: .4byte gPlayerParty
-_0802F32C: .4byte gUnknown_02024A60
-_0802F330:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F348 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F34C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F348: .4byte gPlayerParty
-_0802F34C: .4byte gUnknown_02024A60
-_0802F350:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F368 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F36C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F368: .4byte gPlayerParty
-_0802F36C: .4byte gUnknown_02024A60
-_0802F370:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F388 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F38C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F388: .4byte gPlayerParty
-_0802F38C: .4byte gUnknown_02024A60
-_0802F390:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F3A8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F3AC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F3A8: .4byte gPlayerParty
-_0802F3AC: .4byte gUnknown_02024A60
-_0802F3B0:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802F418 @ =gPlayerParty
- adds r4, r0
- ldr r5, _0802F41C @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x27
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _0802F4D0
- .align 2, 0
-_0802F418: .4byte gPlayerParty
-_0802F41C: .4byte gUnknown_02024A60
-_0802F420:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F438 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F43C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F438: .4byte gPlayerParty
-_0802F43C: .4byte gUnknown_02024A60
-_0802F440:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F458 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F45C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F458: .4byte gPlayerParty
-_0802F45C: .4byte gUnknown_02024A60
-_0802F460:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F478 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F47C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F478: .4byte gPlayerParty
-_0802F47C: .4byte gUnknown_02024A60
-_0802F480:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F498 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F49C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F498: .4byte gPlayerParty
-_0802F49C: .4byte gUnknown_02024A60
-_0802F4A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F4B8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F4BC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F4B8: .4byte gPlayerParty
-_0802F4BC: .4byte gUnknown_02024A60
-_0802F4C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F4D8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F4DC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_0802F4D0:
- movs r1, 0x2C
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F4D8: .4byte gPlayerParty
-_0802F4DC: .4byte gUnknown_02024A60
-_0802F4E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F4F8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F4FC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F4F8: .4byte gPlayerParty
-_0802F4FC: .4byte gUnknown_02024A60
-_0802F500:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F518 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F51C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F518: .4byte gPlayerParty
-_0802F51C: .4byte gUnknown_02024A60
-_0802F520:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F538 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F53C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F538: .4byte gPlayerParty
-_0802F53C: .4byte gUnknown_02024A60
-_0802F540:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F558 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F55C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F558: .4byte gPlayerParty
-_0802F55C: .4byte gUnknown_02024A60
-_0802F560:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F578 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F57C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F578: .4byte gPlayerParty
-_0802F57C: .4byte gUnknown_02024A60
-_0802F580:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F598 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F59C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F598: .4byte gPlayerParty
-_0802F59C: .4byte gUnknown_02024A60
-_0802F5A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F5B8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F5BC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F5B8: .4byte gPlayerParty
-_0802F5BC: .4byte gUnknown_02024A60
-_0802F5C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F5D8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F5DC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F5D8: .4byte gPlayerParty
-_0802F5DC: .4byte gUnknown_02024A60
-_0802F5E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F5F8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F5FC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F5F8: .4byte gPlayerParty
-_0802F5FC: .4byte gUnknown_02024A60
-_0802F600:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F618 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F61C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F618: .4byte gPlayerParty
-_0802F61C: .4byte gUnknown_02024A60
-_0802F620:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F638 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F63C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F638: .4byte gPlayerParty
-_0802F63C: .4byte gUnknown_02024A60
-_0802F640:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F658 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F65C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F658: .4byte gPlayerParty
-_0802F65C: .4byte gUnknown_02024A60
-_0802F660:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F678 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F67C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F678: .4byte gPlayerParty
-_0802F67C: .4byte gUnknown_02024A60
-_0802F680:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F698 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F69C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F698: .4byte gPlayerParty
-_0802F69C: .4byte gUnknown_02024A60
-_0802F6A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F6B8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F6BC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F6B8: .4byte gPlayerParty
-_0802F6BC: .4byte gUnknown_02024A60
-_0802F6C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F6D8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F6DC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F6D8: .4byte gPlayerParty
-_0802F6DC: .4byte gUnknown_02024A60
-_0802F6E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F6F8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F6FC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F6F8: .4byte gPlayerParty
-_0802F6FC: .4byte gUnknown_02024A60
-_0802F700:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F718 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F71C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F718: .4byte gPlayerParty
-_0802F71C: .4byte gUnknown_02024A60
-_0802F720:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F738 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F73C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F738: .4byte gPlayerParty
-_0802F73C: .4byte gUnknown_02024A60
-_0802F740:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F758 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F75C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F758: .4byte gPlayerParty
-_0802F75C: .4byte gUnknown_02024A60
-_0802F760:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F778 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F77C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F778: .4byte gPlayerParty
-_0802F77C: .4byte gUnknown_02024A60
-_0802F780:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F7C0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F7C4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_0802F796:
- ldr r2, _0802F7C8 @ =gUnknown_02024A6A
- ldr r0, _0802F7C4 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802F7C0 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F7C0: .4byte gPlayerParty
-_0802F7C4: .4byte gUnknown_02024A60
-_0802F7C8: .4byte gUnknown_02024A6A
- thumb_func_end dp01_setattr_by_ch1_for_player_pokemon
-
- thumb_func_start sub_802F7CC
-sub_802F7CC: @ 802F7CC
- push {r4-r7,lr}
- ldr r1, _0802F830 @ =gUnknown_02024A6A
- ldr r7, _0802F834 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0802F838 @ =gUnknown_02023A60
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _0802F83C @ =gPlayerParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _0802F824
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_0802F802:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _0802F802
-_0802F824:
- bl dp01_tbl1_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F830: .4byte gUnknown_02024A6A
-_0802F834: .4byte gUnknown_02024A60
-_0802F838: .4byte gUnknown_02023A60
-_0802F83C: .4byte gPlayerParty
- thumb_func_end sub_802F7CC
-
- thumb_func_start sub_802F840
-sub_802F840: @ 802F840
- push {r4,lr}
- ldr r2, _0802F88C @ =gUnknown_02024A6A
- ldr r4, _0802F890 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802F894 @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldr r2, _0802F898 @ =gSprites
- ldr r0, _0802F89C @ =gUnknown_02024BE0
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldr r1, _0802F8A0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802F8A4 @ =bx_0802E404
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F88C: .4byte gUnknown_02024A6A
-_0802F890: .4byte gUnknown_02024A60
-_0802F894: .4byte gPlayerParty
-_0802F898: .4byte gSprites
-_0802F89C: .4byte gUnknown_02024BE0
-_0802F8A0: .4byte gUnknown_03004330
-_0802F8A4: .4byte bx_0802E404
- thumb_func_end sub_802F840
-
- thumb_func_start sub_802F8A8
-sub_802F8A8: @ 802F8A8
- push {r4-r6,lr}
- ldr r5, _0802F914 @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r4, _0802F918 @ =gUnknown_02023A60
- lsls r1, r0, 9
- adds r6, r4, 0x2
- adds r1, r6
- ldrb r1, [r1]
- bl sub_8032AA8
- ldr r2, _0802F91C @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r2
- lsls r0, 9
- adds r4, 0x1
- adds r0, r4
- ldrb r0, [r0]
- movs r4, 0
- strh r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802F920 @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldr r1, _0802F924 @ =gUnknown_02024E60
- ldrb r0, [r5]
- adds r0, r1
- strb r4, [r0]
- ldr r1, _0802F928 @ =gUnknown_02024E64
- ldrb r0, [r5]
- adds r0, r1
- strb r4, [r0]
- ldrb r0, [r5]
- lsls r1, r0, 9
- adds r1, r6
- ldrb r1, [r1]
- bl sub_802F934
- ldr r1, _0802F92C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802F930 @ =sub_802D798
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F914: .4byte gUnknown_02024A60
-_0802F918: .4byte gUnknown_02023A60
-_0802F91C: .4byte gUnknown_02024A6A
-_0802F920: .4byte gPlayerParty
-_0802F924: .4byte gUnknown_02024E60
-_0802F928: .4byte gUnknown_02024E64
-_0802F92C: .4byte gUnknown_03004330
-_0802F930: .4byte sub_802D798
- thumb_func_end sub_802F8A8
-
- thumb_func_start sub_802F934
-sub_802F934: @ 802F934
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0802FA78 @ =gUnknown_02024A6A
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, _0802FA7C @ =gUnknown_02023A60
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
- ldrh r1, [r2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802FA80 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _0802FA84 @ =sub_80312F0
- bl object_new_hidden_with_callback
- ldr r1, _0802FA88 @ =gUnknown_0300434C
- mov r9, r1
- add r9, r6
- mov r1, r9
- strb r0, [r1]
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _0802FA8C @ =gUnknown_02024E8C
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r10
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _0802FA90 @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _0802FA94 @ =gSprites
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0802FA98 @ =gUnknown_02024E84
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- 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 r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0802FA9C @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFF
- bl sub_8046400
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FA78: .4byte gUnknown_02024A6A
-_0802FA7C: .4byte gUnknown_02023A60
-_0802FA80: .4byte gPlayerParty
-_0802FA84: .4byte sub_80312F0
-_0802FA88: .4byte gUnknown_0300434C
-_0802FA8C: .4byte gUnknown_02024E8C
-_0802FA90: .4byte gUnknown_02024BE0
-_0802FA94: .4byte gSprites
-_0802FA98: .4byte gUnknown_02024E84
-_0802FA9C: .4byte SpriteCallbackDummy
- thumb_func_end sub_802F934
-
- thumb_func_start sub_802FAA0
-sub_802FAA0: @ 802FAA0
- push {r4-r6,lr}
- ldr r1, _0802FAD0 @ =gUnknown_02023A60
- ldr r6, _0802FAD4 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _0802FAE4
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0802FAD8 @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _0802FADC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FAE0 @ =sub_802FB2C
- str r1, [r0]
- b _0802FB1A
- .align 2, 0
-_0802FAD0: .4byte gUnknown_02023A60
-_0802FAD4: .4byte gUnknown_02024A60
-_0802FAD8: .4byte 0x02017810
-_0802FADC: .4byte gUnknown_03004330
-_0802FAE0: .4byte sub_802FB2C
-_0802FAE4:
- ldr r5, _0802FB20 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0802FB24 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0802FB28 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl1_exec_completed
-_0802FB1A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FB20: .4byte gUnknown_02024BE0
-_0802FB24: .4byte gSprites
-_0802FB28: .4byte gUnknown_03004340
- thumb_func_end sub_802FAA0
-
- thumb_func_start sub_802FB2C
-sub_802FB2C: @ 802FB2C
- push {r4,r5,lr}
- ldr r5, _0802FB48 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0802FB4C @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0802FB50
- cmp r0, 0x1
- beq _0802FB7C
- b _0802FBA4
- .align 2, 0
-_0802FB48: .4byte gUnknown_02024A60
-_0802FB4C: .4byte 0x02017810
-_0802FB50:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802FB6C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0802FB6C:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _0802FBA4
-_0802FB7C:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0802FBA4
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x1
- bl move_anim_start_t4
- ldr r1, _0802FBAC @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FBB0 @ =sub_802DEAC
- str r1, [r0]
-_0802FBA4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FBAC: .4byte gUnknown_03004330
-_0802FBB0: .4byte sub_802DEAC
- thumb_func_end sub_802FB2C
-
- thumb_func_start sub_802FBB4
-sub_802FBB4: @ 802FBB4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802FBDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802FBE8
- ldr r0, _0802FBE0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r1, 0x2
- ands r1, r0
- ldr r7, _0802FBE4 @ =0x0000fff0
- cmp r1, 0
- beq _0802FBEA
- movs r7, 0x10
- b _0802FBEA
- .align 2, 0
-_0802FBDC: .4byte gUnknown_020239F8
-_0802FBE0: .4byte gUnknown_02024A60
-_0802FBE4: .4byte 0x0000fff0
-_0802FBE8:
- movs r7, 0
-_0802FBEA:
- ldr r4, _0802FCB8 @ =gSaveBlock2
- ldrb r0, [r4, 0x8]
- ldr r6, _0802FCBC @ =gUnknown_02024A60
- ldrb r1, [r6]
- bl sub_8031AF4
- ldrb r5, [r4, 0x8]
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0802FCC0 @ =gUnknown_02024E8C
- mov r8, r0
- lsls r5, r7, 16
- movs r0, 0xA0
- lsls r0, 15
- adds r5, r0
- asrs r5, 16
- ldr r1, _0802FCC4 @ =gTrainerBackPicCoords
- ldrb r0, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 15
- adds r4, r0
- asrs r4, 16
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0802FCC8 @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _0802FCCC @ =gSprites
- ldrb r3, [r6]
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0802FCD0 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0802FCD4 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0802FCD8 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FCDC @ =sub_802D204
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FCB8: .4byte gSaveBlock2
-_0802FCBC: .4byte gUnknown_02024A60
-_0802FCC0: .4byte gUnknown_02024E8C
-_0802FCC4: .4byte gTrainerBackPicCoords
-_0802FCC8: .4byte gUnknown_02024BE0
-_0802FCCC: .4byte gSprites
-_0802FCD0: .4byte 0x0000fffe
-_0802FCD4: .4byte sub_80313A0
-_0802FCD8: .4byte gUnknown_03004330
-_0802FCDC: .4byte sub_802D204
- thumb_func_end sub_802FBB4
-
- thumb_func_start sub_802FCE0
-sub_802FCE0: @ 802FCE0
- push {r4-r6,lr}
- ldr r4, _0802FD94 @ =gSaveBlock2
- ldrb r0, [r4, 0x8]
- ldr r5, _0802FD98 @ =gUnknown_02024A60
- ldrb r1, [r5]
- bl sub_8031AF4
- ldrb r6, [r4, 0x8]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0802FD9C @ =gUnknown_02024E8C
- ldr r2, _0802FDA0 @ =gTrainerBackPicCoords
- ldrb r1, [r4, 0x8]
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, _0802FDA4 @ =gUnknown_02024BE0
- ldrb r1, [r5]
- adds r1, r6
- strb r0, [r1]
- ldr r4, _0802FDA8 @ =gSprites
- ldrb r3, [r5]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0802FDAC @ =0x0000ffa0
- strh r1, [r0, 0x24]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0802FDB0 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0802FDB4 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FDB8 @ =sub_802D23C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FD94: .4byte gSaveBlock2
-_0802FD98: .4byte gUnknown_02024A60
-_0802FD9C: .4byte gUnknown_02024E8C
-_0802FDA0: .4byte gTrainerBackPicCoords
-_0802FDA4: .4byte gUnknown_02024BE0
-_0802FDA8: .4byte gSprites
-_0802FDAC: .4byte 0x0000ffa0
-_0802FDB0: .4byte sub_80313A0
-_0802FDB4: .4byte gUnknown_03004330
-_0802FDB8: .4byte sub_802D23C
- thumb_func_end sub_802FCE0
-
- thumb_func_start sub_802FDBC
-sub_802FDBC: @ 802FDBC
- push {r4-r6,lr}
- ldr r5, _0802FE5C @ =gUnknown_02024BE0
- ldr r6, _0802FE60 @ =gUnknown_02024A60
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0802FE64 @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0802FE68 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0802FE6C @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0802FE70 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r1, _0802FE74 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FE78 @ =sub_802D274
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FE5C: .4byte gUnknown_02024BE0
-_0802FE60: .4byte gUnknown_02024A60
-_0802FE64: .4byte gSprites
-_0802FE68: .4byte 0x0000ffd8
-_0802FE6C: .4byte sub_8078B34
-_0802FE70: .4byte SpriteCallbackDummy
-_0802FE74: .4byte gUnknown_03004330
-_0802FE78: .4byte sub_802D274
- thumb_func_end sub_802FDBC
-
- thumb_func_start sub_802FE7C
-sub_802FE7C: @ 802FE7C
- push {r4,r5,lr}
- ldr r5, _0802FEC0 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0802FEC4 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _0802FEC8
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802FEAE
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0802FEAE:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0802FF3E
- .align 2, 0
-_0802FEC0: .4byte gUnknown_02024A60
-_0802FEC4: .4byte 0x02017810
-_0802FEC8:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0802FF3E
- strb r4, [r3, 0x4]
- ldr r2, _0802FF44 @ =gUnknown_02024A6A
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802FF48 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- movs r1, 0x40
- negs r1, r1
- movs r0, 0x10
- bl PlaySE12WithPanning
- ldr r2, _0802FF4C @ =gSprites
- ldr r3, _0802FF50 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x30]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strh r1, [r0, 0x32]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802FF54 @ =sub_80105EC
- str r1, [r0]
- ldr r1, _0802FF58 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FF5C @ =sub_802DE10
- str r1, [r0]
-_0802FF3E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FF44: .4byte gUnknown_02024A6A
-_0802FF48: .4byte gPlayerParty
-_0802FF4C: .4byte gSprites
-_0802FF50: .4byte gUnknown_02024BE0
-_0802FF54: .4byte sub_80105EC
-_0802FF58: .4byte gUnknown_03004330
-_0802FF5C: .4byte sub_802DE10
- thumb_func_end sub_802FE7C
-
- thumb_func_start sub_802FF60
-sub_802FF60: @ 802FF60
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl dp01_tbl1_exec_completed
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802FF60
-
- thumb_func_start sub_802FF80
-sub_802FF80: @ 802FF80
- push {r4,r5,lr}
- ldr r1, _0802FFBC @ =0x02017840
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, _0802FFC0 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, _0802FFC4 @ =gUnknown_02024A60
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x3
- bl move_anim_start_t4
- ldr r1, _0802FFC8 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FFCC @ =bx_wait_t1
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FFBC: .4byte 0x02017840
-_0802FFC0: .4byte gUnknown_02024E6D
-_0802FFC4: .4byte gUnknown_02024A60
-_0802FFC8: .4byte gUnknown_03004330
-_0802FFCC: .4byte bx_wait_t1
- thumb_func_end sub_802FF80
-
- thumb_func_start sub_802FFD0
-sub_802FFD0: @ 802FFD0
- push {r4,r5,lr}
- ldr r1, _08030014 @ =gUnknown_02023A60
- ldr r5, _08030018 @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _0803001C @ =0x02017840
- strb r1, [r0, 0x8]
- ldr r1, _08030020 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x3
- bl move_anim_start_t4
- ldr r1, _08030024 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030028 @ =bx_wait_t1
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030014: .4byte gUnknown_02023A60
-_08030018: .4byte gUnknown_02024A60
-_0803001C: .4byte 0x02017840
-_08030020: .4byte gUnknown_02024E6D
-_08030024: .4byte gUnknown_03004330
-_08030028: .4byte bx_wait_t1
- thumb_func_end sub_802FFD0
-
- thumb_func_start sub_803002C
-sub_803002C: @ 803002C
- push {lr}
- ldr r1, _08030054 @ =gUnknown_02023A60
- ldr r0, _08030058 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803004A
-_08030040:
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08030040
-_0803004A:
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030054: .4byte gUnknown_02023A60
-_08030058: .4byte gUnknown_02024A60
- thumb_func_end sub_803002C
-
- thumb_func_start dp01t_0F_1_move_anim
-dp01t_0F_1_move_anim: @ 803005C
- push {r4-r6,lr}
- ldr r6, _08030140 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _0803006E
- b _0803017E
-_0803006E:
- ldr r0, _08030144 @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _08030148 @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _0803014C @ =gUnknown_0202F7BC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _08030150 @ =gUnknown_0202F7B8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _08030154 @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08030158 @ =gUnknown_0202F7C0
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _0803015C @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08030160 @ =gUnknown_02024E70
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08030164
- bl dp01_tbl1_exec_completed
- b _0803017E
- .align 2, 0
-_08030140: .4byte gUnknown_02024A60
-_08030144: .4byte gUnknown_02023A60
-_08030148: .4byte gUnknown_0202F7C4
-_0803014C: .4byte gUnknown_0202F7BC
-_08030150: .4byte gUnknown_0202F7B8
-_08030154: .4byte gUnknown_0202F7BE
-_08030158: .4byte gUnknown_0202F7C0
-_0803015C: .4byte gUnknown_0202F7B4
-_08030160: .4byte gUnknown_02024E70
-_08030164:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08030184 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _08030188 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803018C @ =sub_8030190
- str r1, [r0]
-_0803017E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08030184: .4byte 0x02017810
-_08030188: .4byte gUnknown_03004330
-_0803018C: .4byte sub_8030190
- thumb_func_end dp01t_0F_1_move_anim
-
- thumb_func_start sub_8030190
-sub_8030190: @ 8030190
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _080301D4 @ =gUnknown_02023A60
- ldr r5, _080301D8 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _080301DC @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _0803021E
- cmp r2, 0x1
- bgt _080301E0
- cmp r2, 0
- beq _080301EA
- b _080302E8
- .align 2, 0
-_080301D4: .4byte gUnknown_02023A60
-_080301D8: .4byte gUnknown_02024A60
-_080301DC: .4byte 0x02017810
-_080301E0:
- cmp r2, 0x2
- beq _08030244
- cmp r2, 0x3
- beq _080302B0
- b _080302E8
-_080301EA:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _0803020E
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0803020E:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _080302E8
-_0803021E:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080302E8
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl move_anim_start_t1
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _080302E8
-_08030244:
- ldr r0, _080302A0 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _080302A4 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080302E8
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803028C
- cmp r7, 0x1
- bhi _0803028C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0803028C:
- ldr r0, _080302A8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080302AC @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _080302E8
- .align 2, 0
-_080302A0: .4byte gUnknown_0202F7AC
-_080302A4: .4byte gUnknown_0202F7B1
-_080302A8: .4byte gUnknown_02024A60
-_080302AC: .4byte 0x02017810
-_080302B0:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080302E8
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl1_exec_completed
-_080302E8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8030190
-
- thumb_func_start sub_80302F4
-sub_80302F4: @ 80302F4
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08030338 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0803033C @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _08030340 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _08030344 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _08030348 @ =gUnknown_03004210
- ldr r1, _0803034C @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08030350 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030354 @ =sub_802DF18
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030338: .4byte gUnknown_030042A4
-_0803033C: .4byte gUnknown_030042A0
-_08030340: .4byte gUnknown_02024A60
-_08030344: .4byte gUnknown_02023A62
-_08030348: .4byte gUnknown_03004210
-_0803034C: .4byte gUnknown_020238CC
-_08030350: .4byte gUnknown_03004330
-_08030354: .4byte sub_802DF18
- thumb_func_end sub_80302F4
-
- thumb_func_start dp01t_11_1_message_for_player_only
-dp01t_11_1_message_for_player_only: @ 8030358
- push {lr}
- ldr r0, _08030370 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08030374
- bl sub_80302F4
- b _08030378
- .align 2, 0
-_08030370: .4byte gUnknown_02024A60
-_08030374:
- bl dp01_tbl1_exec_completed
-_08030378:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_1_message_for_player_only
-
- thumb_func_start sub_803037C
-sub_803037C: @ 803037C
- push {r4,lr}
- sub sp, 0x8
- ldr r1, _08030434 @ =gUnknown_030042A4
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08030438 @ =gUnknown_030042A0
- movs r0, 0xA0
- strh r0, [r1]
- ldr r4, _0803043C @ =gUnknown_03004210
- movs r0, 0x1B
- str r0, [sp]
- movs r0, 0x12
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillWindowRect
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x26
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0x23
- bl FillWindowRect
- ldr r1, _08030440 @ =gUnknown_03004330
- ldr r0, _08030444 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030448 @ =sub_802C098
- str r1, [r0]
- ldr r1, _0803044C @ =gUnknown_08400CF3
- movs r2, 0xC8
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x12
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08030450 @ =0x0000ffff
- ldr r3, _08030454 @ =0x00002d9f
- movs r0, 0
- str r0, [sp]
- movs r2, 0xC
- bl sub_814A5C0
- movs r4, 0
-_080303EC:
- lsls r0, r4, 24
- lsrs r0, 24
- bl nullsub_8
- adds r4, 0x1
- cmp r4, 0x3
- ble _080303EC
- ldr r1, _08030458 @ =gUnknown_02024E60
- ldr r0, _08030444 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- ldr r0, _0803045C @ =gUnknown_08400CA8
- bl get_battle_strings_
- ldr r4, _0803043C @ =gUnknown_03004210
- ldr r1, _08030460 @ =gUnknown_020238CC
- movs r2, 0xDC
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x2
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030434: .4byte gUnknown_030042A4
-_08030438: .4byte gUnknown_030042A0
-_0803043C: .4byte gUnknown_03004210
-_08030440: .4byte gUnknown_03004330
-_08030444: .4byte gUnknown_02024A60
-_08030448: .4byte sub_802C098
-_0803044C: .4byte gUnknown_08400CF3
-_08030450: .4byte 0x0000ffff
-_08030454: .4byte 0x00002d9f
-_08030458: .4byte gUnknown_02024E60
-_0803045C: .4byte gUnknown_08400CA8
-_08030460: .4byte gUnknown_020238CC
- thumb_func_end sub_803037C
-
- thumb_func_start nullsub_42
-nullsub_42: @ 8030464
- bx lr
- thumb_func_end nullsub_42
-
- thumb_func_start sub_8030468
-sub_8030468: @ 8030468
- push {lr}
- sub sp, 0x4
- ldr r1, _08030494 @ =0x0000ffff
- ldr r3, _08030498 @ =0x00002d9f
- movs r0, 0
- str r0, [sp]
- movs r2, 0xC
- bl sub_814A5C0
- bl sub_80304A8
- ldr r1, _0803049C @ =gUnknown_03004330
- ldr r0, _080304A0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080304A4 @ =sub_802C68C
- str r1, [r0]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08030494: .4byte 0x0000ffff
-_08030498: .4byte 0x00002d9f
-_0803049C: .4byte gUnknown_03004330
-_080304A0: .4byte gUnknown_02024A60
-_080304A4: .4byte sub_802C68C
- thumb_func_end sub_8030468
-
- thumb_func_start sub_80304A8
-sub_80304A8: @ 80304A8
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _08030510 @ =gUnknown_030042A4
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08030514 @ =gUnknown_030042A0
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_802E1B0
- ldr r1, _08030518 @ =gUnknown_03004344
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _0803051C @ =gUnknown_02024E64
- ldr r4, _08030520 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- ldr r1, _08030524 @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08030500
- ldr r4, _08030528 @ =gUnknown_03004210
- ldr r1, _0803052C @ =gUnknown_08400D38
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
-_08030500:
- bl sub_802E220
- bl sub_802E2D4
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030510: .4byte gUnknown_030042A4
-_08030514: .4byte gUnknown_030042A0
-_08030518: .4byte gUnknown_03004344
-_0803051C: .4byte gUnknown_02024E64
-_08030520: .4byte gUnknown_02024A60
-_08030524: .4byte gUnknown_02023A60
-_08030528: .4byte gUnknown_03004210
-_0803052C: .4byte gUnknown_08400D38
- thumb_func_end sub_80304A8
-
- thumb_func_start sub_8030530
-sub_8030530: @ 8030530
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0803057C @ =gUnknown_03004330
- ldr r2, _08030580 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030584 @ =sub_802E004
- str r1, [r0]
- ldr r1, _08030588 @ =gUnknown_02024E6C
- ldrb r0, [r2]
- strb r0, [r1]
- movs r3, 0
- ldr r5, _0803058C @ =gUnknown_02038470
- ldr r4, _08030590 @ =gUnknown_02023A60
-_0803055E:
- adds r0, r3, r5
- ldrb r1, [r2]
- lsls r1, 9
- adds r1, 0x1
- adds r1, r3, r1
- adds r1, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x2
- ble _0803055E
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803057C: .4byte gUnknown_03004330
-_08030580: .4byte gUnknown_02024A60
-_08030584: .4byte sub_802E004
-_08030588: .4byte gUnknown_02024E6C
-_0803058C: .4byte gUnknown_02038470
-_08030590: .4byte gUnknown_02023A60
- thumb_func_end sub_8030530
-
- thumb_func_start sub_8030594
-sub_8030594: @ 8030594
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08030644 @ =TaskDummy
- movs r1, 0xFF
- bl CreateTask
- ldr r3, _08030648 @ =gUnknown_0300434C
- ldr r5, _0803064C @ =gUnknown_02024A60
- ldrb r1, [r5]
- adds r1, r3
- strb r0, [r1]
- ldr r4, _08030650 @ =gTasks
- ldrb r2, [r5]
- adds r3, r2, r3
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldr r4, _08030654 @ =gUnknown_02023A60
- lsls r2, 9
- adds r3, r4, 0x1
- adds r2, r3
- ldrb r2, [r2]
- movs r0, 0xF
- ands r0, r2
- strh r0, [r1, 0x8]
- ldr r2, _08030658 @ =0x02000000
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3
- ldrb r0, [r0]
- lsrs r0, 4
- ldr r3, _0803065C @ =0x00016054
- adds r1, r2, r3
- strb r0, [r1]
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, r4, 0x2
- adds r0, r1
- ldrb r1, [r0]
- adds r3, 0x49
- adds r0, r2, r3
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, r4, 0x3
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _08030660 @ =0x000160c0
- adds r2, r1
- strb r0, [r2]
- movs r2, 0
- ldr r3, _08030664 @ =gUnknown_02038470
-_08030600:
- adds r0, r2, r3
- ldrb r1, [r5]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _08030600
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08030668 @ =gUnknown_03004330
- ldr r2, _0803064C @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803066C @ =sub_802DF30
- str r1, [r0]
- ldr r1, _08030670 @ =gUnknown_02024E6C
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030644: .4byte TaskDummy
-_08030648: .4byte gUnknown_0300434C
-_0803064C: .4byte gUnknown_02024A60
-_08030650: .4byte gTasks
-_08030654: .4byte gUnknown_02023A60
-_08030658: .4byte 0x02000000
-_0803065C: .4byte 0x00016054
-_08030660: .4byte 0x000160c0
-_08030664: .4byte gUnknown_02038470
-_08030668: .4byte gUnknown_03004330
-_0803066C: .4byte sub_802DF30
-_08030670: .4byte gUnknown_02024E6C
- thumb_func_end sub_8030594
-
- thumb_func_start sub_8030674
-sub_8030674: @ 8030674
- push {lr}
- sub sp, 0x4
- bl sub_80325B8
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl dp01_tbl1_exec_completed
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8030674
-
- thumb_func_start sub_8030698
-sub_8030698: @ 8030698
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _08030710 @ =gUnknown_02023A60
- ldr r0, _08030714 @ =gUnknown_02024A60
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _08030718 @ =0x00007fff
- cmp r7, r0
- beq _08030728
- ldr r6, _0803071C @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08030720 @ =gPlayerParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08030724 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08030762
- .align 2, 0
-_08030710: .4byte gUnknown_02023A60
-_08030714: .4byte gUnknown_02024A60
-_08030718: .4byte 0x00007fff
-_0803071C: .4byte gUnknown_02024A6A
-_08030720: .4byte gPlayerParty
-_08030724: .4byte gUnknown_03004340
-_08030728:
- ldr r1, _08030780 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08030784 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r4, _08030788 @ =gUnknown_03004340
- adds r1, r0, r4
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
- mov r1, r9
- ldrb r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_80440EC
-_08030762:
- ldr r1, _0803078C @ =gUnknown_03004330
- ldr r0, _08030790 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030794 @ =bx_t1_healthbar_update
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030780: .4byte gUnknown_02024A6A
-_08030784: .4byte gPlayerParty
-_08030788: .4byte gUnknown_03004340
-_0803078C: .4byte gUnknown_03004330
-_08030790: .4byte gUnknown_02024A60
-_08030794: .4byte bx_t1_healthbar_update
- thumb_func_end sub_8030698
-
- thumb_func_start sub_8030798
-sub_8030798: @ 8030798
- push {r4-r7,lr}
- ldr r5, _080307C4 @ =gUnknown_02023A60
- ldr r6, _080307C8 @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r0, 9
- adds r1, r5, 0x1
- adds r0, r1
- ldrb r7, [r0]
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _080307CC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x63
- bls _080307D0
- bl dp01_tbl1_exec_completed
- b _0803081C
- .align 2, 0
-_080307C4: .4byte gUnknown_02023A60
-_080307C8: .4byte gUnknown_02024A60
-_080307CC: .4byte gPlayerParty
-_080307D0:
- movs r0, 0x1
- bl load_gfxc_health_bar
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 9
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r0, r5, 0x3
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- ldr r0, _08030824 @ =sub_802D924
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08030828 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r7, [r1, 0x8]
- strh r4, [r1, 0xA]
- ldrb r0, [r6]
- strh r0, [r1, 0xC]
- ldr r1, _0803082C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030830 @ =nullsub_91
- str r1, [r0]
-_0803081C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030824: .4byte sub_802D924
-_08030828: .4byte gTasks
-_0803082C: .4byte gUnknown_03004330
-_08030830: .4byte nullsub_91
- thumb_func_end sub_8030798
-
- thumb_func_start sub_8030834
-sub_8030834: @ 8030834
- push {r4,lr}
- ldr r4, _0803088C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08030884
- ldr r0, _08030890 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08030894 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08030898 @ =gPlayerParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0803089C @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _080308A0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080308A4 @ =sub_802E434
- str r1, [r0]
-_08030884:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803088C: .4byte gUnknown_02024A60
-_08030890: .4byte gUnknown_03004340
-_08030894: .4byte gUnknown_02024A6A
-_08030898: .4byte gPlayerParty
-_0803089C: .4byte 0x02017810
-_080308A0: .4byte gUnknown_03004330
-_080308A4: .4byte sub_802E434
- thumb_func_end sub_8030834
-
- thumb_func_start sub_80308A8
-sub_80308A8: @ 80308A8
- push {r4,r5,lr}
- ldr r5, _08030900 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _080308F8
- ldr r4, _08030904 @ =gUnknown_02023A60
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _08030908 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803090C @ =sub_802E434
- str r1, [r0]
-_080308F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030900: .4byte gUnknown_02024A60
-_08030904: .4byte gUnknown_02023A60
-_08030908: .4byte gUnknown_03004330
-_0803090C: .4byte sub_802E434
- thumb_func_end sub_80308A8
-
- thumb_func_start sub_8030910
-sub_8030910: @ 8030910
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- ldr r0, _0803096C @ =gUnknown_02024A6A
- mov r8, r0
- ldr r4, _08030970 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08030974 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x37
- bl GetMonData
- ldr r2, _08030978 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- eors r0, r1
- mov r1, sp
- strb r0, [r1]
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- bl dp01_tbl1_exec_completed
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803096C: .4byte gUnknown_02024A6A
-_08030970: .4byte gUnknown_02024A60
-_08030974: .4byte gPlayerParty
-_08030978: .4byte gUnknown_02023A60
- thumb_func_end sub_8030910
-
- thumb_func_start sub_803097C
-sub_803097C: @ 803097C
- push {lr}
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803097C
-
- thumb_func_start sub_8030988
-sub_8030988: @ 8030988
- push {r4,r5,lr}
- ldr r3, _080309EC @ =gUnknown_02023A60
- ldr r0, _080309F0 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r2, 9
- adds r0, r3, 0x1
- adds r0, r2, r0
- ldrb r5, [r0]
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r0, 8
- orrs r5, r0
- adds r0, r3, 0x3
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r0, 16
- orrs r5, r0
- adds r0, r3, 0x4
- adds r0, r2, r0
- ldrb r4, [r0]
- lsls r4, 24
- adds r0, r3, 0x5
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r0, r3, 0x6
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- adds r3, 0x7
- adds r2, r3
- orrs r5, r4
- lsrs r4, r1, 16
- movs r0, 0x80
- lsls r0, 5
- cmp r4, r0
- bhi _080309F8
- ldr r0, _080309F4 @ =0x040000d4
- str r2, [r0]
- str r5, [r0, 0x4]
- lsrs r1, 17
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _08030A24
- .align 2, 0
-_080309EC: .4byte gUnknown_02023A60
-_080309F0: .4byte gUnknown_02024A60
-_080309F4: .4byte 0x040000d4
-_080309F8:
- ldr r3, _08030A30 @ =0x040000d4
- str r2, [r3]
- str r5, [r3, 0x4]
- ldr r0, _08030A34 @ =0x80000800
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r2, r0
- adds r5, r0
- ldr r1, _08030A38 @ =0xfffff000
- adds r4, r1
- cmp r4, r0
- bhi _080309F8
- str r2, [r3]
- str r5, [r3, 0x4]
- lsrs r0, r4, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
-_08030A24:
- bl dp01_tbl1_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030A30: .4byte 0x040000d4
-_08030A34: .4byte 0x80000800
-_08030A38: .4byte 0xfffff000
- thumb_func_end sub_8030988
-
- thumb_func_start sub_8030A3C
-sub_8030A3C: @ 8030A3C
- push {lr}
- ldr r2, _08030A64 @ =gUnknown_02023A60
- ldr r0, _08030A68 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayBGM
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030A64: .4byte gUnknown_02023A60
-_08030A68: .4byte gUnknown_02024A60
- thumb_func_end sub_8030A3C
-
- thumb_func_start sub_8030A6C
-sub_8030A6C: @ 8030A6C
- push {lr}
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030A6C
-
- thumb_func_start sub_8030A78
-sub_8030A78: @ 8030A78
- push {lr}
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030A78
-
- thumb_func_start sub_8030A8C
-sub_8030A8C: @ 8030A8C
- push {lr}
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030A8C
-
- thumb_func_start sub_8030AA0
-sub_8030AA0: @ 8030AA0
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030AA0
-
- thumb_func_start sub_8030AB4
-sub_8030AB4: @ 8030AB4
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl dp01_build_cmdbuf_x24_aa_0
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030AB4
-
- thumb_func_start sub_8030AC8
-sub_8030AC8: @ 8030AC8
- push {lr}
- ldr r2, _08030AE0 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030AE0: .4byte gUnknown_020238C8
- thumb_func_end sub_8030AC8
-
- thumb_func_start sub_8030AE4
-sub_8030AE4: @ 8030AE4
- push {lr}
- ldr r3, _08030B10 @ =gUnknown_020238C8
- ldr r1, _08030B14 @ =gUnknown_02023A60
- ldr r0, _08030B18 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030B10: .4byte gUnknown_020238C8
-_08030B14: .4byte gUnknown_02023A60
-_08030B18: .4byte gUnknown_02024A60
- thumb_func_end sub_8030AE4
-
- thumb_func_start sub_8030B1C
-sub_8030B1C: @ 8030B1C
- push {lr}
- ldr r2, _08030B30 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030B30: .4byte gUnknown_020238C8
- thumb_func_end sub_8030B1C
-
- thumb_func_start sub_8030B34
-sub_8030B34: @ 8030B34
- push {lr}
- ldr r3, _08030B58 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030B58: .4byte gUnknown_020238C8
- thumb_func_end sub_8030B34
-
- thumb_func_start dp01t_29_1_blink
-dp01t_29_1_blink: @ 8030B5C
- push {r4,lr}
- ldr r3, _08030B84 @ =gSprites
- ldr r2, _08030B88 @ =gUnknown_02024BE0
- ldr r4, _08030B8C @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08030B90
- bl dp01_tbl1_exec_completed
- b _08030BBA
- .align 2, 0
-_08030B84: .4byte gSprites
-_08030B88: .4byte gUnknown_02024BE0
-_08030B8C: .4byte gUnknown_02024A60
-_08030B90:
- ldr r1, _08030BC0 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _08030BC4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030BC8 @ =bx_blink_t1
- str r1, [r0]
-_08030BBA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030BC0: .4byte gUnknown_02024E6D
-_08030BC4: .4byte gUnknown_03004330
-_08030BC8: .4byte bx_blink_t1
- thumb_func_end dp01t_29_1_blink
-
- thumb_func_start sub_8030BCC
-sub_8030BCC: @ 8030BCC
- push {lr}
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030BCC
-
- thumb_func_start sub_8030BD8
-sub_8030BD8: @ 8030BD8
- push {r4,lr}
- ldr r4, _08030C14 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _08030BEC
- movs r3, 0xC0
-_08030BEC:
- ldr r2, _08030C18 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030C14: .4byte gUnknown_02024A60
-_08030C18: .4byte gUnknown_02023A60
- thumb_func_end sub_8030BD8
-
- thumb_func_start sub_8030C1C
-sub_8030C1C: @ 8030C1C
- push {lr}
- ldr r2, _08030C44 @ =gUnknown_02023A60
- ldr r0, _08030C48 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030C44: .4byte gUnknown_02023A60
-_08030C48: .4byte gUnknown_02024A60
- thumb_func_end sub_8030C1C
-
- thumb_func_start sub_8030C4C
-sub_8030C4C: @ 8030C4C
- push {lr}
- ldr r1, _08030C80 @ =gUnknown_02024A6A
- ldr r0, _08030C84 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08030C88 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- negs r1, r1
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030C80: .4byte gUnknown_02024A6A
-_08030C84: .4byte gUnknown_02024A60
-_08030C88: .4byte gPlayerParty
- thumb_func_end sub_8030C4C
-
- thumb_func_start dp01t_2E_1_battle_intro
-dp01t_2E_1_battle_intro: @ 8030C8C
- push {lr}
- ldr r1, _08030CB4 @ =gUnknown_02023A60
- ldr r0, _08030CB8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _08030CBC @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030CB4: .4byte gUnknown_02023A60
-_08030CB8: .4byte gUnknown_02024A60
-_08030CBC: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_1_battle_intro
-
- thumb_func_start sub_8030CC0
-sub_8030CC0: @ 8030CC0
- push {r4-r7,lr}
- ldr r6, _08030DF8 @ =gUnknown_02024BE0
- ldr r7, _08030DFC @ =gUnknown_02024A60
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08030E00 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08030E04 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08030E08 @ =sub_8078B34
- str r1, [r0]
- ldrb r2, [r7]
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x38]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08030E0C @ =sub_8030E38
- bl oamt_set_x3A_32
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _08030E10 @ =0x0000d6f8
- bl AllocSpritePalette
- adds r4, r0, 0
- lsls r4, 24
- ldr r1, _08030E14 @ =gTrainerBackPicPaletteTable
- ldr r0, _08030E18 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- lsrs r4, 20
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- movs r2, 0x20
- bl LoadCompressedPalette
- ldrb r0, [r7]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r4
- strb r0, [r1, 0x5]
- ldr r0, _08030E1C @ =task05_08033660
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08030E20 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- ldrb r3, [r7]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _08030E24 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08030DDC
- ldr r0, _08030E28 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _08030E2C @ =sub_8044CA0
- str r1, [r0]
-_08030DDC:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08030E30 @ =gUnknown_03004330
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030E34 @ =nullsub_91
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030DF8: .4byte gUnknown_02024BE0
-_08030DFC: .4byte gUnknown_02024A60
-_08030E00: .4byte gSprites
-_08030E04: .4byte 0x0000ffd8
-_08030E08: .4byte sub_8078B34
-_08030E0C: .4byte sub_8030E38
-_08030E10: .4byte 0x0000d6f8
-_08030E14: .4byte gTrainerBackPicPaletteTable
-_08030E18: .4byte gSaveBlock2
-_08030E1C: .4byte task05_08033660
-_08030E20: .4byte gTasks
-_08030E24: .4byte 0x02017810
-_08030E28: .4byte gUnknown_02024E68
-_08030E2C: .4byte sub_8044CA0
-_08030E30: .4byte gUnknown_03004330
-_08030E34: .4byte nullsub_91
- thumb_func_end sub_8030CC0
-
- thumb_func_start sub_8030E38
-sub_8030E38: @ 8030E38
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r4, [r5, 0x38]
- lsls r4, 24
- lsrs r4, 24
- bl FreeSpriteOamMatrix
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl DestroySprite
- ldr r1, _08030E90 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08030E94 @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_80318FC
- ldr r0, _08030E98 @ =gUnknown_02024BE0
- adds r4, r0
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08030E9C @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030E90: .4byte gUnknown_02024A6A
-_08030E94: .4byte gPlayerParty
-_08030E98: .4byte gUnknown_02024BE0
-_08030E9C: .4byte gSprites
- thumb_func_end sub_8030E38
-
- thumb_func_start task05_08033660
-task05_08033660: @ 8030EA0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _08030EC8 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x1E
- bgt _08030ECC
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _08030F88
- .align 2, 0
-_08030EC8: .4byte gTasks
-_08030ECC:
- ldr r7, _08030F0C @ =gUnknown_02024A60
- ldrb r0, [r7]
- mov r9, r0
- ldrh r0, [r1, 0x8]
- strb r0, [r7]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08030EEC
- ldr r0, _08030F10 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08030F1C
-_08030EEC:
- ldr r0, _08030F14 @ =gUnknown_02023A60
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08030F18 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_802F934
- b _08030F70
- .align 2, 0
-_08030F0C: .4byte gUnknown_02024A60
-_08030F10: .4byte gUnknown_020239F8
-_08030F14: .4byte gUnknown_02023A60
-_08030F18: .4byte gUnknown_02024A6A
-_08030F1C:
- ldr r4, _08030F94 @ =gUnknown_02023A60
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r5, _08030F98 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_802F934
- ldrb r0, [r7]
- movs r6, 0x2
- eors r0, r6
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _08030F9C @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldrb r0, [r7]
- movs r1, 0
- bl sub_802F934
- ldrb r0, [r7]
- eors r0, r6
- strb r0, [r7]
-_08030F70:
- ldr r1, _08030FA0 @ =gUnknown_03004330
- ldr r2, _08030FA4 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030FA8 @ =sub_802D500
- str r1, [r0]
- mov r3, r9
- strb r3, [r2]
- mov r0, r8
- bl DestroyTask
-_08030F88:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030F94: .4byte gUnknown_02023A60
-_08030F98: .4byte gUnknown_02024A6A
-_08030F9C: .4byte gPlayerParty
-_08030FA0: .4byte gUnknown_03004330
-_08030FA4: .4byte gUnknown_02024A60
-_08030FA8: .4byte sub_802D500
- thumb_func_end task05_08033660
-
- thumb_func_start sub_8030FAC
-sub_8030FAC: @ 8030FAC
- push {r4-r6,lr}
- ldr r1, _08030FD4 @ =gUnknown_02023A60
- ldr r0, _08030FD8 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08030FDC
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08030FDC
- bl dp01_tbl1_exec_completed
- b _08031044
- .align 2, 0
-_08030FD4: .4byte gUnknown_02023A60
-_08030FD8: .4byte gUnknown_02024A60
-_08030FDC:
- ldr r5, _0803104C @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r6, _08031050 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _08031054 @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _08031058 @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08031038
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_08031038:
- ldr r0, _0803105C @ =gUnknown_03004330
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08031060 @ =sub_8031064
- str r0, [r1]
-_08031044:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803104C: .4byte gUnknown_02024A60
-_08031050: .4byte 0x02017810
-_08031054: .4byte gUnknown_02023A64
-_08031058: .4byte gUnknown_02024E68
-_0803105C: .4byte gUnknown_03004330
-_08031060: .4byte sub_8031064
- thumb_func_end sub_8030FAC
-
- thumb_func_start sub_8031064
-sub_8031064: @ 8031064
- push {r4,lr}
- ldr r4, _0803109C @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _080310A0 @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08031094
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl1_exec_completed
-_08031094:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803109C: .4byte gUnknown_02024A60
-_080310A0: .4byte 0x02017810
- thumb_func_end sub_8031064
-
- thumb_func_start sub_80310A4
-sub_80310A4: @ 80310A4
- push {lr}
- ldr r0, _080310DC @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _080310E0 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080310D2
- ldr r2, _080310E4 @ =gTasks
- ldr r0, _080310E8 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080310EC @ =sub_8044CA0
- str r1, [r0]
-_080310D2:
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_080310DC: .4byte gUnknown_02024A60
-_080310E0: .4byte 0x02017810
-_080310E4: .4byte gTasks
-_080310E8: .4byte gUnknown_02024E68
-_080310EC: .4byte sub_8044CA0
- thumb_func_end sub_80310A4
-
- thumb_func_start sub_80310F0
-sub_80310F0: @ 80310F0
- push {r4,lr}
- ldr r4, _08031110 @ =gUnknown_02024A60
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031110: .4byte gUnknown_02024A60
- thumb_func_end sub_80310F0
-
- thumb_func_start dp01t_33_1_enemy_move
-dp01t_33_1_enemy_move: @ 8031114
- push {r4,lr}
- ldr r4, _08031164 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _0803115A
- ldr r3, _08031168 @ =gSprites
- ldr r0, _0803116C @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _08031170 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_0803115A:
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031164: .4byte gUnknown_02024A60
-_08031168: .4byte gSprites
-_0803116C: .4byte gUnknown_02024BE0
-_08031170: .4byte gUnknown_02023A60
- thumb_func_end dp01t_33_1_enemy_move
-
- thumb_func_start bx_exec_buffer_A_ch0_tbl1
-bx_exec_buffer_A_ch0_tbl1: @ 8031174
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _080311B8 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _080311CC
- ldr r5, _080311BC @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _080311C0
- bl dp01_tbl1_exec_completed
- b _080311CC
- .align 2, 0
-_080311B8: .4byte gUnknown_02024A60
-_080311BC: .4byte gUnknown_02023A60
-_080311C0:
- ldr r0, _080311D4 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080311D8 @ =sub_802E460
- str r0, [r1]
-_080311CC:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080311D4: .4byte gUnknown_03004330
-_080311D8: .4byte sub_802E460
- thumb_func_end bx_exec_buffer_A_ch0_tbl1
-
- thumb_func_start dp01t_35_1_link_standby_message_and_free_vram
-dp01t_35_1_link_standby_message_and_free_vram: @ 80311DC
- push {r4,lr}
- ldr r1, _080311FC @ =gUnknown_02023A60
- ldr r0, _08031200 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0803120E
- cmp r0, 0x1
- bgt _08031204
- cmp r0, 0
- beq _0803120A
- b _0803122C
- .align 2, 0
-_080311FC: .4byte gUnknown_02023A60
-_08031200: .4byte gUnknown_02024A60
-_08031204:
- cmp r0, 0x2
- beq _08031228
- b _0803122C
-_0803120A:
- bl b_link_standby_message
-_0803120E:
- ldr r4, _08031224 @ =gUnknown_02024A60
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- b _0803122C
- .align 2, 0
-_08031224: .4byte gUnknown_02024A60
-_08031228:
- bl b_link_standby_message
-_0803122C:
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end dp01t_35_1_link_standby_message_and_free_vram
-
- thumb_func_start sub_8031238
-sub_8031238: @ 8031238
- push {r4,lr}
- ldr r1, _08031258 @ =gUnknown_02023A60
- ldr r4, _0803125C @ =gUnknown_02024A60
- ldrb r3, [r4]
- lsls r0, r3, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _08031280
- cmp r2, 0x1
- bgt _08031260
- cmp r2, 0
- beq _08031266
- b _08031290
- .align 2, 0
-_08031258: .4byte gUnknown_02023A60
-_0803125C: .4byte gUnknown_02024A60
-_08031260:
- cmp r2, 0x2
- beq _08031288
- b _08031290
-_08031266:
- ldr r0, _08031278 @ =gUnknown_02024E60
- adds r0, r3, r0
- strb r2, [r0]
- ldr r1, _0803127C @ =gUnknown_02024E64
- ldrb r0, [r4]
- adds r0, r1
- strb r2, [r0]
- b _08031290
- .align 2, 0
-_08031278: .4byte gUnknown_02024E60
-_0803127C: .4byte gUnknown_02024E64
-_08031280:
- ldr r0, _08031284 @ =gUnknown_02024E60
- b _0803128A
- .align 2, 0
-_08031284: .4byte gUnknown_02024E60
-_08031288:
- ldr r0, _0803129C @ =gUnknown_02024E64
-_0803128A:
- adds r0, r3, r0
- movs r1, 0
- strb r1, [r0]
-_08031290:
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803129C: .4byte gUnknown_02024E64
- thumb_func_end sub_8031238
-
- thumb_func_start sub_80312A0
-sub_80312A0: @ 80312A0
- push {r4,lr}
- ldr r2, _080312D8 @ =gUnknown_02024D26
- ldr r1, _080312DC @ =gUnknown_02023A60
- ldr r4, _080312E0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl1_exec_completed
- ldr r1, _080312E4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080312E8 @ =sub_802D18C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080312D8: .4byte gUnknown_02024D26
-_080312DC: .4byte gUnknown_02023A60
-_080312E0: .4byte gUnknown_02024A60
-_080312E4: .4byte gUnknown_03004330
-_080312E8: .4byte sub_802D18C
- thumb_func_end sub_80312A0
-
- thumb_func_start nullsub_43
-nullsub_43: @ 80312EC
- bx lr
- thumb_func_end nullsub_43
-
- thumb_func_start sub_80312F0
-sub_80312F0: @ 80312F0
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _08031334 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- adds r3, r5, r7
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r4, [r0]
- lsls r0, r4, 26
- cmp r0, 0
- bge _08031354
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08031354
- adds r1, r3, 0
- adds r1, 0x2C
- ldrb r2, [r1]
- lsls r0, r2, 25
- cmp r0, 0
- bge _08031338
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08031354
- .align 2, 0
-_08031334: .4byte gSprites
-_08031338:
- lsls r0, r4, 27
- cmp r0, 0
- bge _08031354
- adds r0, r7, 0
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _0803135C @ =sub_80105DC
- str r1, [r0]
- adds r0, r3, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r0, _08031360 @ =SpriteCallbackDummy
- str r0, [r6, 0x1C]
-_08031354:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803135C: .4byte sub_80105DC
-_08031360: .4byte SpriteCallbackDummy
- thumb_func_end sub_80312F0
-
- thumb_func_start unref_sub_8031364
-unref_sub_8031364: @ 8031364
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- adds r3, r4, 0
- adds r3, 0x2C
- ldrb r0, [r3]
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r3]
- ldr r0, _08031388 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- cmp r1, 0
- bne _0803138C
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _08031394
- .align 2, 0
-_08031388: .4byte SpriteCallbackDummy
-_0803138C:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08031394:
- adds r0, r4, 0
- bl AnimateSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8031364
-
- thumb_func_start sub_80313A0
-sub_80313A0: @ 80313A0
- push {lr}
- adds r2, r0, 0
- ldr r0, _080313C8 @ =gUnknown_02024DE8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080313C2
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080313C2
- ldr r0, _080313CC @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_080313C2:
- pop {r0}
- bx r0
- .align 2, 0
-_080313C8: .4byte gUnknown_02024DE8
-_080313CC: .4byte SpriteCallbackDummy
- thumb_func_end sub_80313A0
-
- thumb_func_start move_anim_start_t2_for_situation
-move_anim_start_t2_for_situation: @ 80313D0
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- ldr r5, _08031400 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r6, _08031404 @ =0x02017810
- adds r1, r6
- ldrb r2, [r1]
- movs r3, 0x10
- orrs r2, r3
- strb r2, [r1]
- cmp r0, 0
- bne _0803144C
- cmp r4, 0x20
- bne _08031408
- ldrb r0, [r5]
- movs r1, 0x6
- bl move_anim_start_t2
- b _080314C2
- .align 2, 0
-_08031400: .4byte gUnknown_02024A60
-_08031404: .4byte 0x02017810
-_08031408:
- cmp r4, 0x8
- beq _08031414
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- beq _0803141E
-_08031414:
- ldrb r0, [r5]
- movs r1, 0
- bl move_anim_start_t2
- b _080314C2
-_0803141E:
- cmp r4, 0x10
- bne _0803142C
- ldrb r0, [r5]
- movs r1, 0x2
- bl move_anim_start_t2
- b _080314C2
-_0803142C:
- movs r0, 0x7
- ands r0, r4
- cmp r0, 0
- beq _0803143E
- ldrb r0, [r5]
- movs r1, 0x4
- bl move_anim_start_t2
- b _080314C2
-_0803143E:
- cmp r4, 0x40
- bne _080314AE
- ldrb r0, [r5]
- movs r1, 0x5
- bl move_anim_start_t2
- b _080314C2
-_0803144C:
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r4
- cmp r0, 0
- beq _08031460
- ldrb r0, [r5]
- movs r1, 0x3
- bl move_anim_start_t2
- b _080314C2
-_08031460:
- movs r0, 0x7
- ands r0, r4
- cmp r0, 0
- beq _08031472
- ldrb r0, [r5]
- movs r1, 0x1
- bl move_anim_start_t2
- b _080314C2
-_08031472:
- movs r0, 0x80
- lsls r0, 21
- ands r0, r4
- cmp r0, 0
- beq _08031486
- ldrb r0, [r5]
- movs r1, 0x7
- bl move_anim_start_t2
- b _080314C2
-_08031486:
- movs r0, 0x80
- lsls r0, 20
- ands r0, r4
- cmp r0, 0
- beq _0803149A
- ldrb r0, [r5]
- movs r1, 0x8
- bl move_anim_start_t2
- b _080314C2
-_0803149A:
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r4
- cmp r0, 0
- beq _080314AE
- ldrb r0, [r5]
- movs r1, 0x9
- bl move_anim_start_t2
- b _080314C2
-_080314AE:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_080314C2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end move_anim_start_t2_for_situation
-
- thumb_func_start move_anim_start_t3
-move_anim_start_t3: @ 80314C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r4, 16
- lsrs r7, r4, 16
- cmp r5, 0
- bne _0803150C
- movs r0, 0x80
- ands r0, r7
- cmp r0, 0
- beq _0803150C
- ldr r0, _08031508 @ =gUnknown_02024E84
- adds r0, r6, r0
- movs r2, 0x7F
- adds r1, r7, 0
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x1
- b _080315C2
- .align 2, 0
-_08031508: .4byte gUnknown_02024E84
-_0803150C:
- lsls r1, r6, 2
- ldr r0, _08031530 @ =0x02017800
- adds r4, r1, r0
- ldrb r1, [r4]
- movs r0, 0x4
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- beq _08031578
- adds r0, r5, 0
- bl sub_803163C
- lsls r0, 24
- cmp r0, 0
- bne _08031534
- movs r0, 0x1
- b _080315C2
- .align 2, 0
-_08031530: .4byte 0x02017800
-_08031534:
- ldrb r1, [r4]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _08031578
- cmp r5, 0x2
- bne _08031578
- ldr r1, _08031570 @ =gSprites
- ldr r0, _08031574 @ =gUnknown_02024BE0
- adds r0, r6, r0
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08031578
- adds r0, r6, 0
- movs r1, 0x1
- bl refresh_graphics_maybe
- adds r0, r6, 0
- bl sub_80324E0
- movs r0, 0x1
- b _080315C2
- .align 2, 0
-_08031570: .4byte gSprites
-_08031574: .4byte gUnknown_02024BE0
-_08031578:
- ldr r0, _080315D0 @ =gUnknown_0202F7C8
- mov r1, r9
- strb r1, [r0]
- ldr r0, _080315D4 @ =gUnknown_0202F7C9
- mov r1, r10
- strb r1, [r0]
- ldr r4, _080315D8 @ =0x02017840
- strh r7, [r4]
- ldr r0, _080315DC @ =gBattleAnims_Unknown1
- adds r1, r5, 0
- movs r2, 0
- bl move_something
- ldr r0, _080315E0 @ =sub_80315E8
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080315E4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r6, [r1, 0x8]
- movs r0, 0x8
- ldrsh r1, [r1, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- subs r4, 0x30
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0
-_080315C2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080315D0: .4byte gUnknown_0202F7C8
-_080315D4: .4byte gUnknown_0202F7C9
-_080315D8: .4byte 0x02017840
-_080315DC: .4byte gBattleAnims_Unknown1
-_080315E0: .4byte sub_80315E8
-_080315E4: .4byte gTasks
- thumb_func_end move_anim_start_t3
-
- thumb_func_start sub_80315E8
-sub_80315E8: @ 80315E8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0803162C @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08031630 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08031626
- ldr r1, _08031634 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08031638 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_08031626:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803162C: .4byte gUnknown_0202F7AC
-_08031630: .4byte gUnknown_0202F7B1
-_08031634: .4byte gTasks
-_08031638: .4byte 0x02017810
- thumb_func_end sub_80315E8
-
- thumb_func_start sub_803163C
-sub_803163C: @ 803163C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bgt _08031650
- cmp r0, 0xA
- bge _08031654
- cmp r0, 0x2
- beq _08031654
- b _08031658
-_08031650:
- cmp r0, 0x11
- bne _08031658
-_08031654:
- movs r0, 0x1
- b _0803165A
-_08031658:
- movs r0, 0
-_0803165A:
- pop {r1}
- bx r1
- thumb_func_end sub_803163C
-
- thumb_func_start move_anim_start_t4
-move_anim_start_t4: @ 8031660
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _080316B4 @ =gUnknown_0202F7C8
- strb r1, [r0]
- ldr r0, _080316B8 @ =gUnknown_0202F7C9
- strb r2, [r0]
- ldr r0, _080316BC @ =gBattleAnims_Unknown2
- adds r1, r3, 0
- movs r2, 0
- bl move_something
- ldr r0, _080316C0 @ =sub_80316CC
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080316C4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- movs r0, 0x8
- ldrsh r1, [r1, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080316C8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080316B4: .4byte gUnknown_0202F7C8
-_080316B8: .4byte gUnknown_0202F7C9
-_080316BC: .4byte gBattleAnims_Unknown2
-_080316C0: .4byte sub_80316CC
-_080316C4: .4byte gTasks
-_080316C8: .4byte 0x02017810
- thumb_func_end move_anim_start_t4
-
- thumb_func_start sub_80316CC
-sub_80316CC: @ 80316CC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08031710 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08031714 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0803170A
- ldr r1, _08031718 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0803171C @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0803170A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031710: .4byte gUnknown_0202F7AC
-_08031714: .4byte gUnknown_0202F7B1
-_08031718: .4byte gTasks
-_0803171C: .4byte 0x02017810
- thumb_func_end sub_80316CC
-
- thumb_func_start sub_8031720
-sub_8031720: @ 8031720
- movs r0, 0
- bx lr
- thumb_func_end sub_8031720
-
- thumb_func_start mplay_80342A4
-mplay_80342A4: @ 8031724
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08031764
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- ldr r2, _0803176C @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x8]
- adds r0, 0x1
- strb r0, [r1, 0x8]
- ldr r0, _08031770 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1D
- bls _08031768
- ldr r0, _08031774 @ =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, _08031778 @ =gMPlay_SE2
- bl m4aMPlayStop
-_08031764:
- cmp r5, 0
- beq _0803177C
-_08031768:
- movs r0, 0x1
- b _0803178A
- .align 2, 0
-_0803176C: .4byte 0x02017810
-_08031770: .4byte gUnknown_02024A60
-_08031774: .4byte gMPlay_SE1
-_08031778: .4byte gMPlay_SE2
-_0803177C:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- ldr r1, _08031790 @ =0x02017810
- adds r0, r1
- strb r5, [r0, 0x8]
- movs r0, 0
-_0803178A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08031790: .4byte 0x02017810
- thumb_func_end mplay_80342A4
-
- thumb_func_start sub_8031794
-sub_8031794: @ 8031794
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0xC]
- mov r0, r9
- lsls r1, r0, 2
- ldr r0, _080317D0 @ =0x02017800
- adds r2, r1, r0
- ldrh r0, [r2, 0x2]
- cmp r0, 0
- bne _080317D4
- mov r0, r8
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r7, [sp, 0xC]
- b _080317DC
- .align 2, 0
-_080317D0: .4byte 0x02017800
-_080317D4:
- ldrh r6, [r2, 0x2]
- ldr r0, _08031838 @ =gUnknown_02024E70
- adds r0, r1, r0
- ldr r7, [r0]
-_080317DC:
- mov r0, r8
- movs r1, 0x1
- bl GetMonData
- mov r10, r0
- mov r0, r9
- bl battle_get_per_side_status
- lsls r0, 24
- lsls r5, r6, 3
- ldr r1, _0803183C @ =gMonFrontPicTable
- adds r5, r1
- ldr r1, _08031840 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08031844 @ =gUnknown_081FAF4C
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- adds r0, r5, 0
- bl sub_800D334
- mov r1, r9
- lsls r2, r1, 4
- movs r0, 0x80
- lsls r0, 1
- adds r7, r2, r0
- lsls r1, 2
- ldr r0, _08031848 @ =0x02017800
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- str r1, [sp, 0x10]
- adds r4, r2, 0
- cmp r0, 0
- bne _0803184C
- mov r0, r8
- bl pokemon_get_pal
- b _08031856
- .align 2, 0
-_08031838: .4byte gUnknown_02024E70
-_0803183C: .4byte gMonFrontPicTable
-_08031840: .4byte gMonFrontPicCoords
-_08031844: .4byte gUnknown_081FAF4C
-_08031848: .4byte 0x02017800
-_0803184C:
- adds r0, r6, 0
- mov r1, r10
- ldr r2, [sp, 0xC]
- bl species_and_otid_get_pal
-_08031856:
- adds r5, r0, 0
- ldr r1, _080318E0 @ =0x02000000
- mov r8, r1
- adds r0, r5, 0
- bl sub_800D238
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
- adds r1, r4, 0
- adds r1, 0x80
- mov r0, r8
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080318E4 @ =SPECIES_CASTFORM
- cmp r6, r0
- bne _080318A2
- subs r0, 0x81
- adds r7, r4, r0
- movs r4, 0xB2
- lsls r4, 9
- add r4, r8
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _080318E8 @ =gUnknown_02024E84
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r4
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
-_080318A2:
- movs r0, 0xBC
- lsls r0, 9
- add r0, r8
- ldr r1, [sp, 0x10]
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _080318CE
- ldr r3, _080318EC @ =0x00007fff
- adds r0, r7, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r7, 1
- ldr r0, _080318F0 @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _080318F4 @ =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, _080318F8 @ =REG_BG0CNT
- bl CpuSet
-_080318CE:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080318E0: .4byte 0x02000000
-_080318E4: .4byte SPECIES_CASTFORM
-_080318E8: .4byte gUnknown_02024E84
-_080318EC: .4byte 0x00007fff
-_080318F0: .4byte gPlttBufferFaded
-_080318F4: .4byte gPlttBufferUnfaded
-_080318F8: .4byte REG_BG0CNT
- thumb_func_end sub_8031794
-
- thumb_func_start sub_80318FC
-sub_80318FC: @ 80318FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0xC]
- mov r0, r9
- lsls r1, r0, 2
- ldr r0, _08031938 @ =0x02017800
- adds r2, r1, r0
- ldrh r0, [r2, 0x2]
- cmp r0, 0
- bne _0803193C
- mov r0, r8
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r7, [sp, 0xC]
- b _08031944
- .align 2, 0
-_08031938: .4byte 0x02017800
-_0803193C:
- ldrh r6, [r2, 0x2]
- ldr r0, _080319A0 @ =gUnknown_02024E70
- adds r0, r1, r0
- ldr r7, [r0]
-_08031944:
- mov r0, r8
- movs r1, 0x1
- bl GetMonData
- mov r10, r0
- mov r0, r9
- bl battle_get_per_side_status
- lsls r0, 24
- lsls r5, r6, 3
- ldr r1, _080319A4 @ =gMonBackPicTable
- adds r5, r1
- ldr r1, _080319A8 @ =gMonBackPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _080319AC @ =gUnknown_081FAF4C
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- adds r0, r5, 0
- bl sub_800D334
- mov r1, r9
- lsls r2, r1, 4
- movs r0, 0x80
- lsls r0, 1
- adds r7, r2, r0
- lsls r1, 2
- ldr r0, _080319B0 @ =0x02017800
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- str r1, [sp, 0x10]
- adds r4, r2, 0
- cmp r0, 0
- bne _080319B4
- mov r0, r8
- bl pokemon_get_pal
- b _080319BE
- .align 2, 0
-_080319A0: .4byte gUnknown_02024E70
-_080319A4: .4byte gMonBackPicTable
-_080319A8: .4byte gMonBackPicCoords
-_080319AC: .4byte gUnknown_081FAF4C
-_080319B0: .4byte 0x02017800
-_080319B4:
- adds r0, r6, 0
- mov r1, r10
- ldr r2, [sp, 0xC]
- bl species_and_otid_get_pal
-_080319BE:
- adds r5, r0, 0
- ldr r1, _08031A48 @ =0x02000000
- mov r8, r1
- adds r0, r5, 0
- bl sub_800D238
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
- adds r1, r4, 0
- adds r1, 0x80
- mov r0, r8
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08031A4C @ =SPECIES_CASTFORM
- cmp r6, r0
- bne _08031A0A
- subs r0, 0x81
- adds r7, r4, r0
- movs r4, 0xB2
- lsls r4, 9
- add r4, r8
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _08031A50 @ =gUnknown_02024E84
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r4
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
-_08031A0A:
- movs r0, 0xBC
- lsls r0, 9
- add r0, r8
- ldr r1, [sp, 0x10]
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _08031A36
- ldr r3, _08031A54 @ =0x00007fff
- adds r0, r7, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r7, 1
- ldr r0, _08031A58 @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _08031A5C @ =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, _08031A60 @ =REG_BG0CNT
- bl CpuSet
-_08031A36:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08031A48: .4byte 0x02000000
-_08031A4C: .4byte SPECIES_CASTFORM
-_08031A50: .4byte gUnknown_02024E84
-_08031A54: .4byte 0x00007fff
-_08031A58: .4byte gPlttBufferFaded
-_08031A5C: .4byte gPlttBufferUnfaded
-_08031A60: .4byte REG_BG0CNT
- thumb_func_end sub_80318FC
-
- thumb_func_start unref_sub_8031A64
-unref_sub_8031A64: @ 8031A64
- bx lr
- thumb_func_end unref_sub_8031A64
-
- thumb_func_start nullsub_9
-nullsub_9: @ 8031A68
- bx lr
- thumb_func_end nullsub_9
-
- thumb_func_start sub_8031A6C
-sub_8031A6C: @ 8031A6C
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- lsls r0, 24
- lsls r6, r4, 3
- ldr r5, _08031ADC @ =gTrainerFrontPicTable
- adds r5, r6, r5
- ldr r1, _08031AE0 @ =gTrainerFrontPicCoords
- lsls r4, 2
- adds r4, r1
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08031AE4 @ =gUnknown_081FAF4C
- lsrs r0, 22
- adds r0, r4
- ldr r4, [r0]
- str r4, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r5, 0
- bl DecompressPicFromTable_2
- str r4, [sp, 0x8]
- ldrh r2, [r5, 0x4]
- ldr r0, _08031AE8 @ =0xffff0000
- ldr r1, [sp, 0xC]
- ands r1, r0
- orrs r1, r2
- str r1, [sp, 0xC]
- ldrh r2, [r5, 0x6]
- lsls r2, 16
- ldr r0, _08031AEC @ =0x0000ffff
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0xC]
- add r0, sp, 0x8
- bl LoadCompressedObjectPic
- ldr r0, _08031AF0 @ =gTrainerFrontPicPaletteTable
- adds r6, r0
- adds r0, r6, 0
- bl LoadCompressedObjectPalette
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08031ADC: .4byte gTrainerFrontPicTable
-_08031AE0: .4byte gTrainerFrontPicCoords
-_08031AE4: .4byte gUnknown_081FAF4C
-_08031AE8: .4byte 0xffff0000
-_08031AEC: .4byte 0x0000ffff
-_08031AF0: .4byte gTrainerFrontPicPaletteTable
- thumb_func_end sub_8031A6C
-
- thumb_func_start sub_8031AF4
-sub_8031AF4: @ 8031AF4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsls r1, r4, 3
- mov r8, r1
- ldr r6, _08031B60 @ =gTrainerBackPicTable
- add r6, r8
- ldr r1, _08031B64 @ =gTrainerBackPicCoords
- lsls r4, 2
- adds r4, r1
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08031B68 @ =gUnknown_081FAF4C
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r6, 0
- bl DecompressPicFromTable_2
- ldr r0, _08031B6C @ =gTrainerBackPicPaletteTable
- add r8, r0
- mov r1, r8
- ldr r0, [r1]
- lsls r5, 20
- movs r1, 0x80
- lsls r1, 17
- adds r5, r1
- lsrs r5, 16
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08031B60: .4byte gTrainerBackPicTable
-_08031B64: .4byte gTrainerBackPicCoords
-_08031B68: .4byte gUnknown_081FAF4C
-_08031B6C: .4byte gTrainerBackPicPaletteTable
- thumb_func_end sub_8031AF4
-
- thumb_func_start nullsub_10
-nullsub_10: @ 8031B70
- bx lr
- thumb_func_end nullsub_10
-
- thumb_func_start sub_8031B74
-sub_8031B74: @ 8031B74
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- ldr r0, _08031B98 @ =gTrainerFrontPicPaletteTable
- lsrs r4, 13
- adds r0, r4, r0
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- ldr r0, _08031B9C @ =gTrainerFrontPicTable
- adds r4, r0
- ldrh r0, [r4, 0x6]
- bl FreeSpriteTilesByTag
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031B98: .4byte gTrainerFrontPicPaletteTable
-_08031B9C: .4byte gTrainerFrontPicTable
- thumb_func_end sub_8031B74
-
- thumb_func_start unref_sub_8031BA0
-unref_sub_8031BA0: @ 8031BA0
- push {r4-r7,lr}
- ldr r4, _08031BCC @ =gUnknown_0820A4D4
- adds r0, r4, 0
- bl LoadSpritePalette
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadSpritePalette
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08031BD8
- ldr r0, _08031BD0 @ =gUnknown_0820A47C
- bl LoadCompressedObjectPic
- ldr r0, _08031BD4 @ =gUnknown_0820A484
- bl LoadCompressedObjectPic
- movs r5, 0x2
- b _08031BFA
- .align 2, 0
-_08031BCC: .4byte gUnknown_0820A4D4
-_08031BD0: .4byte gUnknown_0820A47C
-_08031BD4: .4byte gUnknown_0820A484
-_08031BD8:
- ldr r4, _08031C20 @ =gUnknown_0820A48C
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- ldr r4, _08031C24 @ =gUnknown_0820A49C
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- movs r5, 0x4
-_08031BFA:
- movs r4, 0
- cmp r4, r5
- bcs _08031C1A
- ldr r7, _08031C28 @ =gUnknown_02024A72
- ldr r6, _08031C2C @ =gUnknown_0820A4B4
-_08031C04:
- adds r0, r4, r7
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r6
- bl LoadCompressedObjectPic
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _08031C04
-_08031C1A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08031C20: .4byte gUnknown_0820A48C
-_08031C24: .4byte gUnknown_0820A49C
-_08031C28: .4byte gUnknown_02024A72
-_08031C2C: .4byte gUnknown_0820A4B4
- thumb_func_end unref_sub_8031BA0
-
- thumb_func_start sub_8031C30
-sub_8031C30: @ 8031C30
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- movs r6, 0
- cmp r4, 0
- bne _08031C40
- b _08031D52
-_08031C40:
- cmp r4, 0x1
- bne _08031C5C
- ldr r4, _08031C58 @ =gUnknown_0820A4D4
- adds r0, r4, 0
- bl LoadSpritePalette
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadSpritePalette
- b _08031D52
- .align 2, 0
-_08031C58: .4byte gUnknown_0820A4D4
-_08031C5C:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08031CC4
- cmp r4, 0x2
- bne _08031C94
- ldr r0, _08031C80 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08031C88
- ldr r0, _08031C84 @ =gUnknown_0820A4AC
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031C80: .4byte gUnknown_020239F8
-_08031C84: .4byte gUnknown_0820A4AC
-_08031C88:
- ldr r0, _08031C90 @ =gUnknown_0820A47C
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031C90: .4byte gUnknown_0820A47C
-_08031C94:
- cmp r4, 0x3
- bne _08031CA4
- ldr r0, _08031CA0 @ =gUnknown_0820A484
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031CA0: .4byte gUnknown_0820A484
-_08031CA4:
- cmp r4, 0x4
- bne _08031CB4
- ldr r0, _08031CB0 @ =gUnknown_02024A72
- ldrb r0, [r0]
- b _08031D3C
- .align 2, 0
-_08031CB0: .4byte gUnknown_02024A72
-_08031CB4:
- cmp r4, 0x5
- bne _08031D50
- ldr r0, _08031CC0 @ =gUnknown_02024A72
- ldrb r0, [r0, 0x1]
- b _08031D3C
- .align 2, 0
-_08031CC0: .4byte gUnknown_02024A72
-_08031CC4:
- cmp r4, 0x2
- bne _08031CD4
- ldr r0, _08031CD0 @ =gUnknown_0820A48C
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031CD0: .4byte gUnknown_0820A48C
-_08031CD4:
- cmp r4, 0x3
- bne _08031CE4
- ldr r0, _08031CE0 @ =gUnknown_0820A494
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031CE0: .4byte gUnknown_0820A494
-_08031CE4:
- cmp r4, 0x4
- bne _08031CF4
- ldr r0, _08031CF0 @ =gUnknown_0820A49C
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031CF0: .4byte gUnknown_0820A49C
-_08031CF4:
- cmp r4, 0x5
- bne _08031D04
- ldr r0, _08031D00 @ =gUnknown_0820A4A4
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031D00: .4byte gUnknown_0820A4A4
-_08031D04:
- cmp r4, 0x6
- bne _08031D14
- ldr r0, _08031D10 @ =gUnknown_02024A72
- ldrb r0, [r0]
- b _08031D3C
- .align 2, 0
-_08031D10: .4byte gUnknown_02024A72
-_08031D14:
- cmp r4, 0x7
- bne _08031D24
- ldr r0, _08031D20 @ =gUnknown_02024A72
- ldrb r0, [r0, 0x1]
- b _08031D3C
- .align 2, 0
-_08031D20: .4byte gUnknown_02024A72
-_08031D24:
- cmp r4, 0x8
- bne _08031D34
- ldr r0, _08031D30 @ =gUnknown_02024A72
- ldrb r0, [r0, 0x2]
- b _08031D3C
- .align 2, 0
-_08031D30: .4byte gUnknown_02024A72
-_08031D34:
- cmp r5, 0x9
- bne _08031D50
- ldr r0, _08031D48 @ =gUnknown_02024A72
- ldrb r0, [r0, 0x3]
-_08031D3C:
- lsls r0, 3
- ldr r1, _08031D4C @ =gUnknown_0820A4B4
- adds r0, r1
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031D48: .4byte gUnknown_02024A72
-_08031D4C: .4byte gUnknown_0820A4B4
-_08031D50:
- movs r6, 0x1
-_08031D52:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8031C30
-
- thumb_func_start load_gfxc_health_bar
-load_gfxc_health_bar: @ 8031D5C
- push {lr}
- ldr r0, _08031D6C @ =gUnknown_08D09C48
- movs r1, 0x80
- lsls r1, 18
- bl sub_800D238
- pop {r0}
- bx r0
- .align 2, 0
-_08031D6C: .4byte gUnknown_08D09C48
- thumb_func_end load_gfxc_health_bar
-
- thumb_func_start battle_load_something
-battle_load_something: @ 8031D70
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r6, 0
- ldrb r0, [r5]
- cmp r0, 0x6
- bls _08031D80
- b _08031EDE
-_08031D80:
- lsls r0, 2
- ldr r1, _08031D8C @ =_08031D90
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08031D8C: .4byte _08031D90
- .align 2, 0
-_08031D90:
- .4byte _08031DAC
- .4byte _08031DB2
- .4byte _08031EBC
- .4byte _08031DC8
- .4byte _08031DF8
- .4byte _08031E34
- .4byte _08031ED4
-_08031DAC:
- bl sub_8031F0C
- b _08031EBC
-_08031DB2:
- ldrb r0, [r4]
- bl sub_8031C30
- lsls r0, 24
- cmp r0, 0
- beq _08031DC0
- b _08031EB8
-_08031DC0:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08031EDE
-_08031DC8:
- ldr r0, _08031DE0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08031DE4
- ldrb r0, [r4]
- cmp r0, 0
- bne _08031DE4
- bl battle_make_oam_safari_battle
- b _08031DEA
- .align 2, 0
-_08031DE0: .4byte gUnknown_020239F8
-_08031DE4:
- ldrb r0, [r4]
- bl battle_make_oam_normal_battle
-_08031DEA:
- ldr r2, _08031DF4 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r1, r2
- strb r0, [r1]
- b _08031EA6
- .align 2, 0
-_08031DF4: .4byte gUnknown_03004340
-_08031DF8:
- ldrb r0, [r4]
- bl sub_8043F44
- ldr r0, _08031E18 @ =gUnknown_02024A72
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _08031E20
- ldr r0, _08031E1C @ =gUnknown_03004340
- adds r0, r1, r0
- ldrb r0, [r0]
- movs r1, 0
- bl nullsub_11
- b _08031EA6
- .align 2, 0
-_08031E18: .4byte gUnknown_02024A72
-_08031E1C: .4byte gUnknown_03004340
-_08031E20:
- ldr r0, _08031E30 @ =gUnknown_03004340
- adds r0, r1, r0
- ldrb r0, [r0]
- movs r1, 0x1
- bl nullsub_11
- b _08031EA6
- .align 2, 0
-_08031E30: .4byte gUnknown_03004340
-_08031E34:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08031E7C
- ldr r0, _08031E6C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08031E9A
- ldr r0, _08031E70 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08031E74 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08031E78 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- b _08031E9A
- .align 2, 0
-_08031E6C: .4byte gUnknown_020239F8
-_08031E70: .4byte gUnknown_03004340
-_08031E74: .4byte gUnknown_02024A6A
-_08031E78: .4byte gPlayerParty
-_08031E7C:
- ldr r0, _08031EC4 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08031EC8 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08031ECC @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
-_08031E9A:
- ldr r1, _08031EC4 @ =gUnknown_03004340
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
-_08031EA6:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08031ED0 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08031EDE
-_08031EB8:
- movs r0, 0
- strb r0, [r4]
-_08031EBC:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08031EDE
- .align 2, 0
-_08031EC4: .4byte gUnknown_03004340
-_08031EC8: .4byte gUnknown_02024A6A
-_08031ECC: .4byte gEnemyParty
-_08031ED0: .4byte gUnknown_02024A68
-_08031ED4:
- bl sub_80327CC
- bl sub_8094958
- movs r6, 0x1
-_08031EDE:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end battle_load_something
-
- thumb_func_start sub_8031EE8
-sub_8031EE8: @ 8031EE8
- push {r4,lr}
- ldr r4, _08031F08 @ =0x02017810
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x30
- bl memset
- adds r4, 0x30
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031F08: .4byte 0x02017810
- thumb_func_end sub_8031EE8
-
- thumb_func_start sub_8031F0C
-sub_8031F0C: @ 8031F0C
- push {lr}
- bl sub_8031EE8
- ldr r0, _08031F20 @ =0x02017800
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_08031F20: .4byte 0x02017800
- thumb_func_end sub_8031F0C
-
- thumb_func_start sub_8031F24
-sub_8031F24: @ 8031F24
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- ldr r5, _08031F78 @ =gUnknown_02024A68
- ldrb r0, [r5]
- cmp r4, r0
- bge _08031F6E
- ldr r0, _08031F7C @ =gSprites
- mov r8, r0
- movs r7, 0x1
- movs r0, 0x2
- negs r0, r0
- mov r12, r0
- ldr r6, _08031F80 @ =gUnknown_02024BE0
- ldr r3, _08031F84 @ =0x02017800
-_08031F44:
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- ands r1, r7
- ldrb r2, [r3]
- mov r0, r12
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r3, 0x4
- adds r4, 0x1
- ldrb r0, [r5]
- cmp r4, r0
- blt _08031F44
-_08031F6E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08031F78: .4byte gUnknown_02024A68
-_08031F7C: .4byte gSprites
-_08031F80: .4byte gUnknown_02024BE0
-_08031F84: .4byte 0x02017800
- thumb_func_end sub_8031F24
-
- thumb_func_start sub_8031F88
-sub_8031F88: @ 8031F88
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 2
- ldr r1, _08031FB8 @ =0x02017800
- adds r3, r1
- ldr r2, _08031FBC @ =gSprites
- ldr r1, _08031FC0 @ =gUnknown_02024BE0
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bx lr
- .align 2, 0
-_08031FB8: .4byte 0x02017800
-_08031FBC: .4byte gSprites
-_08031FC0: .4byte gUnknown_02024BE0
- thumb_func_end sub_8031F88
-
- thumb_func_start sub_8031FC4
-sub_8031FC4: @ 8031FC4
- 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 r8, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0xC]
- lsls r2, 24
- cmp r2, 0
- beq _08032088
- ldr r0, _08032064 @ =gUnknown_02024BE0
- mov r1, r8
- adds r6, r1, r0
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r7, _08032068 @ =gSprites
- adds r0, r7
- ldr r4, _0803206C @ =0x02017840
- ldrb r1, [r4]
- bl StartSpriteAnim
- mov r2, r8
- lsls r0, r2, 20
- movs r5, 0x80
- lsls r5, 17
- adds r0, r5
- lsrs r5, r0, 16
- ldrh r0, [r4]
- lsls r0, 5
- ldr r2, _08032070 @ =0xffffebc0
- adds r1, r4, r2
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08032074 @ =gUnknown_02024E84
- add r0, r8
- ldrh r1, [r4]
- strb r1, [r0]
- mov r1, r8
- lsls r0, r1, 2
- subs r4, 0x40
- adds r0, r4
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _0803204C
- ldr r3, _08032078 @ =0x00007fff
- adds r0, r5, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r5, 1
- ldr r0, _0803207C @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _08032080 @ =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, _08032084 @ =REG_BG0CNT
- bl CpuSet
-_0803204C:
- mov r0, r8
- bl sub_8077F68
- ldrb r2, [r6]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r7
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x22]
- b _080322F6
- .align 2, 0
-_08032064: .4byte gUnknown_02024BE0
-_08032068: .4byte gSprites
-_0803206C: .4byte 0x02017840
-_08032070: .4byte 0xffffebc0
-_08032074: .4byte gUnknown_02024E84
-_08032078: .4byte 0x00007fff
-_0803207C: .4byte gPlttBufferFaded
-_08032080: .4byte gPlttBufferUnfaded
-_08032084: .4byte REG_BG0CNT
-_08032088:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080320D0
- movs r2, 0
- mov r10, r2
- ldr r5, _080320C0 @ =0x02019348
- ldrh r7, [r5, 0x2]
- ldr r4, [r5, 0x8]
- mov r9, r4
- ldr r6, [r5, 0xC]
- lsls r0, r7, 3
- ldr r1, _080320C4 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _080320C8 @ =gMonBackPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _080320CC @ =gUnknown_081FAF4C
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, [r5, 0x10]
- b _08032184
- .align 2, 0
-_080320C0: .4byte 0x02019348
-_080320C4: .4byte gMonBackPicTable
-_080320C8: .4byte gMonBackPicCoords
-_080320CC: .4byte gUnknown_081FAF4C
-_080320D0:
- mov r0, r8
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, [sp, 0xC]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08032104
- ldr r1, _080320FC @ =gUnknown_02024A6A
- ldr r5, [sp, 0xC]
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08032100 @ =gEnemyParty
- b _08032114
- .align 2, 0
-_080320FC: .4byte gUnknown_02024A6A
-_08032100: .4byte gEnemyParty
-_08032104:
- ldr r1, _0803218C @ =gUnknown_02024A6A
- ldr r2, [sp, 0xC]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08032190 @ =gPlayerParty
-_08032114:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080321A4
- ldr r0, _0803218C @ =gUnknown_02024A6A
- mov r5, r8
- lsls r4, r5, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08032190 @ =gPlayerParty
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrh r0, [r4]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- adds r6, r0, 0
- lsls r0, r7, 3
- ldr r1, _08032194 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _08032198 @ =gMonBackPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0803219C @ =gUnknown_081FAF4C
- mov r12, r4
- mov r5, r10
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, _080321A0 @ =gUnknown_02024E70
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
-_08032184:
- str r4, [sp, 0x8]
- bl sub_800D334
- b _08032202
- .align 2, 0
-_0803218C: .4byte gUnknown_02024A6A
-_08032190: .4byte gPlayerParty
-_08032194: .4byte gMonBackPicTable
-_08032198: .4byte gMonBackPicCoords
-_0803219C: .4byte gUnknown_081FAF4C
-_080321A0: .4byte gUnknown_02024E70
-_080321A4:
- ldr r0, _08032308 @ =gUnknown_02024A6A
- mov r1, r8
- lsls r4, r1, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0803230C @ =gEnemyParty
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrh r0, [r4]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- adds r6, r0, 0
- lsls r0, r7, 3
- ldr r1, _08032310 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08032314 @ =gMonFrontPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08032318 @ =gUnknown_081FAF4C
- mov r12, r4
- mov r5, r10
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, _0803231C @ =gUnknown_02024E70
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
-_08032202:
- ldr r1, _08032318 @ =gUnknown_081FAF4C
- mov r2, r10
- lsls r0, r2, 2
- adds r0, r1
- ldr r2, [r0]
- ldr r0, _08032320 @ =gUnknown_02024BE0
- add r0, r8
- mov r10, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08032324 @ =gSprites
- adds r0, r4
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldr r1, _08032328 @ =0x06010000
- adds r0, r1
- ldr r1, _0803232C @ =0x040000d4
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _08032330 @ =0x84000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r5, r8
- lsls r0, r5, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r5, r0, 16
- adds r0, r7, 0
- adds r1, r6, 0
- mov r2, r9
- bl species_and_otid_get_pal
- adds r6, r0, 0
- ldr r2, _08032334 @ =0x02000000
- mov r9, r2
- mov r1, r9
- bl sub_800D238
- mov r0, r9
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08032338 @ =SPECIES_CASTFORM
- cmp r7, r0
- bne _08032288
- movs r4, 0xB2
- lsls r4, 9
- add r4, r9
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _0803233C @ =gUnknown_02024E84
- ldr r1, [sp, 0xC]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r4
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
-_08032288:
- ldr r3, _08032340 @ =0x00007fff
- adds r0, r5, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r5, 1
- ldr r0, _08032344 @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _08032348 @ =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, _0803234C @ =REG_BG0CNT
- bl CpuSet
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080322C8
- mov r2, r8
- lsls r0, r2, 2
- movs r1, 0xBC
- lsls r1, 9
- add r1, r9
- adds r0, r1
- strh r7, [r0, 0x2]
- ldr r0, _0803233C @ =gUnknown_02024E84
- adds r1, r2, r0
- ldr r4, [sp, 0xC]
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r1]
-_080322C8:
- mov r0, r8
- bl sub_8077F68
- mov r5, r10
- ldrb r2, [r5]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _08032324 @ =gSprites
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x22]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0803233C @ =gUnknown_02024E84
- add r1, r8
- ldrb r1, [r1]
- bl StartSpriteAnim
-_080322F6:
- 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
-_08032308: .4byte gUnknown_02024A6A
-_0803230C: .4byte gEnemyParty
-_08032310: .4byte gMonFrontPicTable
-_08032314: .4byte gMonFrontPicCoords
-_08032318: .4byte gUnknown_081FAF4C
-_0803231C: .4byte gUnknown_02024E70
-_08032320: .4byte gUnknown_02024BE0
-_08032324: .4byte gSprites
-_08032328: .4byte 0x06010000
-_0803232C: .4byte 0x040000d4
-_08032330: .4byte 0x84000200
-_08032334: .4byte 0x02000000
-_08032338: .4byte SPECIES_CASTFORM
-_0803233C: .4byte gUnknown_02024E84
-_08032340: .4byte 0x00007fff
-_08032344: .4byte gPlttBufferFaded
-_08032348: .4byte gPlttBufferUnfaded
-_0803234C: .4byte REG_BG0CNT
- thumb_func_end sub_8031FC4
-
- thumb_func_start sub_8032350
-sub_8032350: @ 8032350
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- lsls r1, 24
- cmp r1, 0
- bne _08032408
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0803236C
- movs r4, 0
- b _08032376
-_0803236C:
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
-_08032376:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08032388
- ldr r0, _08032384 @ =gSubstituteDollTilemap
- b _08032396
- .align 2, 0
-_08032384: .4byte gSubstituteDollTilemap
-_08032388:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080323AC
- ldr r0, _080323A4 @ =gSubstituteDollGfx
-_08032396:
- ldr r1, _080323A8 @ =gUnknown_081FAF4C
- lsls r4, 2
- adds r1, r4, r1
- ldr r1, [r1]
- bl LZDecompressVram
- b _080323BA
- .align 2, 0
-_080323A4: .4byte gSubstituteDollGfx
-_080323A8: .4byte gUnknown_081FAF4C
-_080323AC:
- ldr r0, _080323F4 @ =gSubstituteDollTilemap
- ldr r1, _080323F8 @ =gUnknown_081FAF4C
- lsls r4, 2
- adds r1, r4, r1
- ldr r1, [r1]
- bl LZDecompressVram
-_080323BA:
- lsls r7, r5, 4
- ldr r0, _080323FC @ =gSubstituteDollPal
- mov r12, r0
- ldr r0, _080323F8 @ =gUnknown_081FAF4C
- adds r0, r4, r0
- ldr r4, [r0]
- ldr r3, _08032400 @ =0x040000d4
- ldr r6, _08032404 @ =0x84000200
- movs r0, 0x80
- lsls r0, 4
- adds r2, r4, r0
- adds r5, r0, 0
- movs r1, 0x2
-_080323D4:
- str r4, [r3]
- str r2, [r3, 0x4]
- str r6, [r3, 0x8]
- ldr r0, [r3, 0x8]
- adds r2, r5
- subs r1, 0x1
- cmp r1, 0
- bge _080323D4
- movs r0, 0x80
- lsls r0, 1
- adds r1, r7, r0
- mov r0, r12
- movs r2, 0x20
- bl LoadCompressedPalette
- b _08032456
- .align 2, 0
-_080323F4: .4byte gSubstituteDollTilemap
-_080323F8: .4byte gUnknown_081FAF4C
-_080323FC: .4byte gSubstituteDollPal
-_08032400: .4byte 0x040000d4
-_08032404: .4byte 0x84000200
-_08032408:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08032456
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08032440
- ldr r1, _08032438 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803243C @ =gEnemyParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_8031794
- b _08032456
- .align 2, 0
-_08032438: .4byte gUnknown_02024A6A
-_0803243C: .4byte gEnemyParty
-_08032440:
- ldr r1, _0803245C @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08032460 @ =gPlayerParty
- adds r0, r1
- adds r1, r5, 0
- bl sub_80318FC
-_08032456:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803245C: .4byte gUnknown_02024A6A
-_08032460: .4byte gPlayerParty
- thumb_func_end sub_8032350
-
- thumb_func_start refresh_graphics_maybe
-refresh_graphics_maybe: @ 8032464
- push {r4-r6,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_8032350
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _080324A0 @ =gSprites
- adds r4, r0, r1
- ldr r0, _080324A4 @ =gUnknown_02024E84
- adds r0, r6, r0
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAnim
- cmp r5, 0
- bne _080324A8
- adds r0, r6, 0
- bl sub_8077F7C
- b _080324AE
- .align 2, 0
-_080324A0: .4byte gSprites
-_080324A4: .4byte gUnknown_02024E84
-_080324A8:
- adds r0, r6, 0
- bl sub_8077F68
-_080324AE:
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end refresh_graphics_maybe
-
- thumb_func_start sub_80324BC
-sub_80324BC: @ 80324BC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xA4
- bne _080324D8
- lsls r2, r0, 2
- ldr r0, _080324DC @ =0x02017800
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080324D8:
- pop {r0}
- bx r0
- .align 2, 0
-_080324DC: .4byte 0x02017800
- thumb_func_end sub_80324BC
-
- thumb_func_start sub_80324E0
-sub_80324E0: @ 80324E0
- lsls r0, 24
- lsrs r0, 22
- ldr r1, _080324F4 @ =0x02017800
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080324F4: .4byte 0x02017800
- thumb_func_end sub_80324E0
-
- thumb_func_start sub_80324F8
-sub_80324F8: @ 80324F8
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- adds r7, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r4, 16
- asrs r4, 16
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08032568
- lsls r0, r6, 2
- ldr r3, _08032564 @ =0x02017800
- adds r4, r0, r3
- ldrb r1, [r4]
- movs r5, 0x2
- movs r2, 0x2
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080325B2
- adds r0, r6, 0
- eors r0, r5
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0803255A
- movs r0, 0x5A
- bl PlaySE
-_0803255A:
- ldrb r0, [r4]
- orrs r0, r5
- strb r0, [r4]
- b _080325B2
- .align 2, 0
-_08032564: .4byte 0x02017800
-_08032568:
- lsls r1, r6, 2
- ldr r4, _0803258C @ =0x02017800
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08032590
- movs r0, 0x5A
- bl m4aSongNumStop
- b _080325B2
- .align 2, 0
-_0803258C: .4byte 0x02017800
-_08032590:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080325B2
- movs r0, 0x2
- eors r7, r0
- lsls r0, r7, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080325B2
- movs r0, 0x5A
- bl m4aSongNumStop
-_080325B2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80324F8
-
- thumb_func_start sub_80325B8
-sub_80325B8: @ 80325B8
- push {r4-r6,lr}
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, r4, 2
- ldr r6, _08032600 @ =0x02017800
- adds r1, r6
- ldrb r2, [r1]
- movs r5, 0x3
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080325F2
- movs r0, 0x2
- adds r1, r4, 0
- eors r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
-_080325F2:
- movs r0, 0x5A
- bl m4aSongNumStop
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08032600: .4byte 0x02017800
- thumb_func_end sub_80325B8
-
- thumb_func_start unref_sub_8032604
-unref_sub_8032604: @ 8032604
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r4, 16
- asrs r4, 16
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8032604
-
- thumb_func_start sub_8032638
-sub_8032638: @ 8032638
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080326DC @ =gMain
- ldr r1, _080326E0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080326CE
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r5, _080326E4 @ =gUnknown_02024A6A
- mov r1, r8
- lsls r0, r1, 1
- adds r0, r5
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r9
- lsls r0, r1, 1
- adds r0, r5
- ldrb r0, [r0]
- bl pokemon_order_func
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0x64
- adds r0, r4, 0
- muls r0, r7
- ldr r6, _080326E8 @ =gPlayerParty
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080326AA
- adds r0, r4, 0
- mov r1, r8
- bl sub_80324F8
-_080326AA:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080326CE
- adds r0, r5, 0
- muls r0, r7
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080326CE
- adds r0, r4, 0
- mov r1, r9
- bl sub_80324F8
-_080326CE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080326DC: .4byte gMain
-_080326E0: .4byte 0x0000043d
-_080326E4: .4byte gUnknown_02024A6A
-_080326E8: .4byte gPlayerParty
- thumb_func_end sub_8032638
-
- thumb_func_start sub_80326EC
-sub_80326EC: @ 80326EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r0, _08032778 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _080327B4
- movs r0, 0x3
- mov r10, r8
- mov r1, r10
- ands r1, r0
- mov r10, r1
- movs r6, 0
- movs r2, 0x3F
- negs r2, r2
- mov r9, r2
-_08032718:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _080327A8
- ldr r4, _0803277C @ =gSprites
- ldr r0, _08032780 @ =gUnknown_02024BE0
- adds r3, r5, r0
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r7, 0x4
- negs r7, r7
- adds r2, r7, 0
- ands r1, r2
- mov r2, r10
- orrs r1, r2
- strb r1, [r0, 0x1]
- mov r7, r8
- cmp r7, 0
- bne _08032788
- ldr r2, _08032784 @ =0x02017810
- adds r2, r6, r2
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r2, 0x6]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x3]
- mov r2, r9
- ands r1, r2
- strb r1, [r0, 0x3]
- b _080327A8
- .align 2, 0
-_08032778: .4byte gUnknown_02024A68
-_0803277C: .4byte gSprites
-_08032780: .4byte gUnknown_02024BE0
-_08032784: .4byte 0x02017810
-_08032788:
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldr r0, _080327C4 @ =0x02017810
- adds r0, r6, r0
- ldrb r1, [r0, 0x6]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r0, [r2, 0x3]
- mov r3, r9
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x3]
-_080327A8:
- adds r6, 0xC
- adds r5, 0x1
- ldr r0, _080327C8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _08032718
-_080327B4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080327C4: .4byte 0x02017810
-_080327C8: .4byte gUnknown_02024A68
- thumb_func_end sub_80326EC
-
- thumb_func_start sub_80327CC
-sub_80327CC: @ 80327CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08032894 @ =gUnknown_081FAF24
- bl LoadCompressedObjectPic
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08032898 @ =gSpriteTemplate_81FAF34
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 8
- movs r0, 0x80
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0xC8
- bl CreateSprite
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- ldr r6, _0803289C @ =0x02017810
- adds r1, r6
- strb r0, [r1, 0x7]
- ldr r7, _080328A0 @ =gSprites
- ldrb r1, [r1, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r5, [r0, 0x2E]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0803288A
- movs r0, 0x3
- bl battle_get_side_with_given_state
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 8
- movs r0, 0x80
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0xC8
- bl CreateSprite
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r6
- strb r0, [r1, 0x7]
- ldrb r1, [r1, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r5, [r0, 0x2E]
-_0803288A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032894: .4byte gUnknown_081FAF24
-_08032898: .4byte gSpriteTemplate_81FAF34
-_0803289C: .4byte 0x02017810
-_080328A0: .4byte gSprites
- thumb_func_end sub_80327CC
-
- thumb_func_start sub_80328A4
-sub_80328A4: @ 80328A4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r0, 0
- mov r8, r0
- ldrh r0, [r5, 0x2E]
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080328E8 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080328EC @ =gSprites
- adds r7, r0, r1
- adds r6, r7, 0
- adds r6, 0x3E
- ldrb r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080328E0
- adds r0, r4, 0
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- bne _080328F4
-_080328E0:
- ldr r0, _080328F0 @ =sub_8032978
- str r0, [r5, 0x1C]
- b _08032964
- .align 2, 0
-_080328E8: .4byte gUnknown_02024BE0
-_080328EC: .4byte gSprites
-_080328F0: .4byte sub_8032978
-_080328F4:
- ldr r0, _08032910 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08032906
- ldrb r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08032918
-_08032906:
- movs r0, 0x1
- mov r8, r0
- lsls r4, 2
- ldr r6, _08032914 @ =0x02017800
- b _08032938
- .align 2, 0
-_08032910: .4byte gUnknown_0202F7B1
-_08032914: .4byte 0x02017800
-_08032918:
- lsls r0, r4, 2
- ldr r1, _08032970 @ =0x02017800
- adds r3, r0, r1
- ldrh r2, [r3, 0x2]
- adds r4, r0, 0
- adds r6, r1, 0
- cmp r2, 0
- beq _08032938
- ldr r0, _08032974 @ =gEnemyMonElevation
- adds r1, r2, 0
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08032938
- movs r0, 0x1
- mov r8, r0
-_08032938:
- adds r0, r4, r6
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08032948
- movs r0, 0x1
- mov r8, r0
-_08032948:
- ldrh r0, [r7, 0x20]
- strh r0, [r5, 0x20]
- ldrh r0, [r7, 0x24]
- strh r0, [r5, 0x24]
- adds r2, r5, 0
- adds r2, 0x3E
- mov r0, r8
- lsls r3, r0, 2
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
-_08032964:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032970: .4byte 0x02017800
-_08032974: .4byte gEnemyMonElevation
- thumb_func_end sub_80328A4
-
- thumb_func_start sub_8032978
-sub_8032978: @ 8032978
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- bx lr
- thumb_func_end sub_8032978
-
- thumb_func_start sub_8032984
-sub_8032984: @ 8032984
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- lsls r1, 16
- lsrs r5, r1, 16
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080329FA
- lsls r0, r4, 2
- ldr r3, _080329D0 @ =0x02017800
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _080329AA
- adds r5, r0, 0
-_080329AA:
- ldr r0, _080329D4 @ =gEnemyMonElevation
- adds r0, r5, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080329E0
- ldr r2, _080329D8 @ =gSprites
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r3, r0
- ldrb r1, [r0, 0x17]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080329DC @ =sub_80328A4
- b _080329F8
- .align 2, 0
-_080329D0: .4byte 0x02017800
-_080329D4: .4byte gEnemyMonElevation
-_080329D8: .4byte gSprites
-_080329DC: .4byte sub_80328A4
-_080329E0:
- ldr r2, _08032A00 @ =gSprites
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r3, r0
- ldrb r1, [r0, 0x17]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08032A04 @ =sub_8032978
-_080329F8:
- str r1, [r0]
-_080329FA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08032A00: .4byte gSprites
-_08032A04: .4byte sub_8032978
- thumb_func_end sub_8032984
-
- thumb_func_start sub_8032A08
-sub_8032A08: @ 8032A08
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08032A2C @ =gSprites
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08032A30 @ =0x02017810
- adds r1, r0
- ldrb r1, [r1, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08032A34 @ =sub_8032978
- str r1, [r0]
- bx lr
- .align 2, 0
-_08032A2C: .4byte gSprites
-_08032A30: .4byte 0x02017810
-_08032A34: .4byte sub_8032978
- thumb_func_end sub_8032A08
-
- thumb_func_start sub_8032A38
-sub_8032A38: @ 8032A38
- push {r4-r6,lr}
- ldr r3, _08032AA4 @ =0x06000240
- movs r0, 0
- movs r6, 0xF0
- lsls r6, 8
-_08032A42:
- adds r5, r0, 0x1
- movs r4, 0xF
-_08032A46:
- ldrh r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _08032A56
- adds r0, r6, 0
- orrs r0, r1
- strh r0, [r3]
-_08032A56:
- ldrh r1, [r3]
- movs r2, 0xF0
- lsls r2, 4
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08032A6A
- adds r0, r2, 0
- orrs r0, r1
- strh r0, [r3]
-_08032A6A:
- ldrh r1, [r3]
- movs r2, 0xF0
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- bne _08032A7C
- adds r0, r1, 0
- orrs r0, r2
- strh r0, [r3]
-_08032A7C:
- ldrh r1, [r3]
- movs r2, 0xF
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08032A8E
- adds r0, r1, 0
- orrs r0, r2
- strh r0, [r3]
-_08032A8E:
- adds r3, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08032A46
- adds r0, r5, 0
- cmp r0, 0x8
- ble _08032A42
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08032AA4: .4byte 0x06000240
- thumb_func_end sub_8032A38
-
- thumb_func_start sub_8032AA8
-sub_8032AA8: @ 8032AA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsls r2, r4, 2
- ldr r0, _08032AD4 @ =0x02017800
- adds r2, r0
- movs r3, 0
- movs r0, 0
- strh r0, [r2, 0x2]
- ldr r0, _08032AD8 @ =gUnknown_02024E84
- adds r0, r4, r0
- strb r3, [r0]
- cmp r1, 0
- bne _08032ACC
- adds r0, r4, 0
- bl sub_80324E0
-_08032ACC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08032AD4: .4byte 0x02017800
-_08032AD8: .4byte gUnknown_02024E84
- thumb_func_end sub_8032AA8
-
- thumb_func_start nullsub_45
-nullsub_45: @ 8032ADC
- bx lr
- thumb_func_end nullsub_45
-
- thumb_func_start sub_8032AE0
-sub_8032AE0: @ 8032AE0
- ldr r1, _08032AF0 @ =gUnknown_03004330
- ldr r0, _08032AF4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08032AF8 @ =sub_8032AFC
- str r1, [r0]
- bx lr
- .align 2, 0
-_08032AF0: .4byte gUnknown_03004330
-_08032AF4: .4byte gUnknown_02024A60
-_08032AF8: .4byte sub_8032AFC
- thumb_func_end sub_8032AE0
-
- thumb_func_start sub_8032AFC
-sub_8032AFC: @ 8032AFC
- push {lr}
- ldr r2, _08032B30 @ =gUnknown_02024A64
- ldr r1, _08032B34 @ =gBitTable
- ldr r0, _08032B38 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08032B48
- ldr r0, _08032B3C @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _08032B44
- ldr r0, _08032B40 @ =gUnknown_081FAF5C
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _08032B48
- .align 2, 0
-_08032B30: .4byte gUnknown_02024A64
-_08032B34: .4byte gBitTable
-_08032B38: .4byte gUnknown_02024A60
-_08032B3C: .4byte gUnknown_02023A60
-_08032B40: .4byte gUnknown_081FAF5C
-_08032B44:
- bl sub_80334EC
-_08032B48:
- pop {r0}
- bx r0
- thumb_func_end sub_8032AFC
-
- thumb_func_start sub_8032B4C
-sub_8032B4C: @ 8032B4C
- push {lr}
- ldr r2, _08032B74 @ =gSprites
- ldr r1, _08032B78 @ =gUnknown_02024BE0
- ldr r0, _08032B7C @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08032B80 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08032B70
- bl sub_80334EC
-_08032B70:
- pop {r0}
- bx r0
- .align 2, 0
-_08032B74: .4byte gSprites
-_08032B78: .4byte gUnknown_02024BE0
-_08032B7C: .4byte gUnknown_02024A60
-_08032B80: .4byte SpriteCallbackDummy
- thumb_func_end sub_8032B4C
-
- thumb_func_start sub_8032B84
-sub_8032B84: @ 8032B84
- push {lr}
- ldr r2, _08032BAC @ =gSprites
- ldr r1, _08032BB0 @ =gUnknown_02024BE0
- ldr r0, _08032BB4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08032BB8 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08032BA8
- bl sub_80334EC
-_08032BA8:
- pop {r0}
- bx r0
- .align 2, 0
-_08032BAC: .4byte gSprites
-_08032BB0: .4byte gUnknown_02024BE0
-_08032BB4: .4byte gUnknown_02024A60
-_08032BB8: .4byte SpriteCallbackDummy
- thumb_func_end sub_8032B84
-
- thumb_func_start sub_8032BBC
-sub_8032BBC: @ 8032BBC
- push {r4-r6,lr}
- ldr r4, _08032C34 @ =gSprites
- ldr r6, _08032C38 @ =gUnknown_02024BE0
- ldr r5, _08032C3C @ =gUnknown_02024A60
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, _08032C40 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08032C2C
- adds r0, r2, r4
- ldrh r0, [r0, 0x6]
- bl sub_8031B74
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x38]
- ldr r2, _08032C44 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08032C48 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- bl sub_80334EC
-_08032C2C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08032C34: .4byte gSprites
-_08032C38: .4byte gUnknown_02024BE0
-_08032C3C: .4byte gUnknown_02024A60
-_08032C40: .4byte SpriteCallbackDummy
-_08032C44: .4byte 0x000003ff
-_08032C48: .4byte 0xfffffc00
- thumb_func_end sub_8032BBC
-
- thumb_func_start sub_8032C4C
-sub_8032C4C: @ 8032C4C
- push {lr}
- ldr r3, _08032C80 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _08032C84 @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08032C7C
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl sub_80334EC
-_08032C7C:
- pop {r0}
- bx r0
- .align 2, 0
-_08032C80: .4byte gUnknown_02024A60
-_08032C84: .4byte 0x02017810
- thumb_func_end sub_8032C4C
-
- thumb_func_start sub_8032C88
-sub_8032C88: @ 8032C88
- push {r4-r7,lr}
- movs r6, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08032CAC
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08032CE0
- ldr r0, _08032CCC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08032CE0
-_08032CAC:
- ldr r2, _08032CD0 @ =gSprites
- ldr r1, _08032CD4 @ =gUnknown_03004340
- ldr r0, _08032CD8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08032CDC @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08032D16
- b _08032D14
- .align 2, 0
-_08032CCC: .4byte gUnknown_020239F8
-_08032CD0: .4byte gSprites
-_08032CD4: .4byte gUnknown_03004340
-_08032CD8: .4byte gUnknown_02024A60
-_08032CDC: .4byte SpriteCallbackDummy
-_08032CE0:
- ldr r2, _08032DC4 @ =gSprites
- ldr r5, _08032DC8 @ =gUnknown_03004340
- ldr r0, _08032DCC @ =gUnknown_02024A60
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, _08032DD0 @ =SpriteCallbackDummy
- cmp r4, r0
- bne _08032D16
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _08032D16
-_08032D14:
- movs r6, 0x1
-_08032D16:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08032D22
- movs r6, 0
-_08032D22:
- cmp r6, 0
- beq _08032E0E
- ldr r7, _08032DCC @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r5, _08032DD4 @ =0x02017810
- adds r4, r0, r5
- ldrb r1, [r4, 0x1]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032E0E
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032E0E
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _08032DD8 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _08032DDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08032DE4
- ldr r0, _08032DE0 @ =gMPlay_BGM
- bl m4aMPlayContinue
- b _08032DF0
- .align 2, 0
-_08032DC4: .4byte gSprites
-_08032DC8: .4byte gUnknown_03004340
-_08032DCC: .4byte gUnknown_02024A60
-_08032DD0: .4byte SpriteCallbackDummy
-_08032DD4: .4byte 0x02017810
-_08032DD8: .4byte 0x000027f9
-_08032DDC: .4byte gUnknown_020239F8
-_08032DE0: .4byte gMPlay_BGM
-_08032DE4:
- ldr r0, _08032E14 @ =gMPlay_BGM
- ldr r1, _08032E18 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08032DF0:
- ldr r2, _08032E1C @ =gUnknown_02024A60
- ldrb r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08032E20 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _08032E24 @ =gUnknown_03004330
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08032E28 @ =sub_8032C4C
- str r1, [r0]
-_08032E0E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032E14: .4byte gMPlay_BGM
-_08032E18: .4byte 0x0000ffff
-_08032E1C: .4byte gUnknown_02024A60
-_08032E20: .4byte 0x02017810
-_08032E24: .4byte gUnknown_03004330
-_08032E28: .4byte sub_8032C4C
- thumb_func_end sub_8032C88
-
- thumb_func_start sub_8032E2C
-sub_8032E2C: @ 8032E2C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08032FEC @ =gUnknown_02024A60
- mov r9, r0
- ldrb r2, [r0]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r4, _08032FF0 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r5, 0x88
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08032E64
- ldr r0, _08032FF4 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08032FF8 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08032E64:
- mov r1, r9
- ldrb r0, [r1]
- movs r7, 0x2
- adds r2, r7, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08032E94
- ldr r0, _08032FF4 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08032FF8 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08032E94:
- mov r0, r9
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032EAE
- b _08032FE0
-_08032EAE:
- adds r1, r7, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032EC6
- b _08032FE0
-_08032EC6:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08032F58
- ldr r0, _08032FFC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08032F58
- ldr r1, _08033000 @ =gUnknown_0300434C
- mov r2, r9
- ldrb r0, [r2]
- eors r0, r7
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08033004 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _08033008 @ =gUnknown_03004340
- mov r1, r9
- ldrb r0, [r1]
- adds r1, r7, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08032FF4 @ =gUnknown_02024A6A
- mov r8, r2
- lsls r1, 1
- add r1, r8
- ldrh r1, [r1]
- movs r6, 0x64
- muls r1, r6
- ldr r5, _08032FF8 @ =gEnemyParty
- adds r1, r5
- movs r2, 0
- bl sub_8045A5C
- mov r1, r9
- ldrb r0, [r1]
- eors r0, r7
- bl sub_804777C
- mov r2, r9
- ldrb r0, [r2]
- eors r0, r7
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- mov r1, r9
- ldrb r0, [r1]
- adds r4, r7, 0
- eors r4, r0
- lsls r0, r4, 1
- add r0, r8
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
-_08032F58:
- ldr r1, _08033000 @ =gUnknown_0300434C
- ldr r4, _08032FEC @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08033004 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _08033008 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _08032FF4 @ =gUnknown_02024A6A
- mov r9, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
- movs r2, 0x64
- mov r8, r2
- mov r2, r8
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _08032FF8 @ =gEnemyParty
- adds r1, r6
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r5, [r4]
- lsls r0, r5, 1
- add r0, r9
- ldrh r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_8032984
- ldr r2, _0803300C @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08033010 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08033014 @ =sub_8032C88
- str r1, [r0]
-_08032FE0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032FEC: .4byte gUnknown_02024A60
-_08032FF0: .4byte 0x02017810
-_08032FF4: .4byte gUnknown_02024A6A
-_08032FF8: .4byte gEnemyParty
-_08032FFC: .4byte gUnknown_020239F8
-_08033000: .4byte gUnknown_0300434C
-_08033004: .4byte gSprites
-_08033008: .4byte gUnknown_03004340
-_0803300C: .4byte 0x02017840
-_08033010: .4byte gUnknown_03004330
-_08033014: .4byte sub_8032C88
- thumb_func_end sub_8032E2C
-
- thumb_func_start sub_8033018
-sub_8033018: @ 8033018
- push {r4-r7,lr}
- ldr r2, _08033070 @ =gSprites
- ldr r0, _08033074 @ =gUnknown_02024BE0
- ldr r7, _08033078 @ =gUnknown_02024A60
- ldrb r3, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r2, r0, 31
- cmp r2, 0x1
- bne _080330BC
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _080330BC
- lsls r4, r3, 1
- adds r0, r4, r3
- lsls r0, 2
- ldr r6, _0803307C @ =0x02017810
- adds r1, r0, r6
- ldrb r5, [r1]
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- bne _08033088
- ldr r0, _08033080 @ =gUnknown_02024A6A
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08033084 @ =gEnemyParty
- adds r1, r0
- adds r0, r3, 0
- bl sub_8141828
- b _080330BC
- .align 2, 0
-_08033070: .4byte gSprites
-_08033074: .4byte gUnknown_02024BE0
-_08033078: .4byte gUnknown_02024A60
-_0803307C: .4byte 0x02017810
-_08033080: .4byte gUnknown_02024A6A
-_08033084: .4byte gEnemyParty
-_08033088:
- ldrb r0, [r1, 0x1]
- ands r2, r0
- cmp r2, 0
- beq _080330BC
- movs r0, 0x7F
- ands r0, r5
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _080330C4 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- bl sub_80334EC
-_080330BC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080330C4: .4byte 0x000027f9
- thumb_func_end sub_8033018
-
- thumb_func_start sub_80330C8
-sub_80330C8: @ 80330C8
- push {r4-r6,lr}
- ldr r6, _08033108 @ =gUnknown_02024A60
- ldrb r0, [r6]
- ldr r5, _0803310C @ =gUnknown_03004340
- adds r1, r0, r5
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08033110
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _08033114
- .align 2, 0
-_08033108: .4byte gUnknown_02024A60
-_0803310C: .4byte gUnknown_03004340
-_08033110:
- bl sub_80334EC
-_08033114:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80330C8
-
- thumb_func_start sub_803311C
-sub_803311C: @ 803311C
- push {lr}
- ldr r2, _08033150 @ =gSprites
- ldr r0, _08033154 @ =gUnknown_02024BE0
- ldr r1, _08033158 @ =gUnknown_02024A60
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0803314A
- ldr r0, _0803315C @ =gUnknown_03004340
- adds r0, r3, r0
- ldrb r0, [r0]
- bl sub_8043DB0
- bl sub_80334EC
-_0803314A:
- pop {r0}
- bx r0
- .align 2, 0
-_08033150: .4byte gSprites
-_08033154: .4byte gUnknown_02024BE0
-_08033158: .4byte gUnknown_02024A60
-_0803315C: .4byte gUnknown_03004340
- thumb_func_end sub_803311C
-
- thumb_func_start sub_8033160
-sub_8033160: @ 8033160
- push {r4-r6,lr}
- ldr r6, _080331BC @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080331C0 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080331B6
- ldr r5, _080331C4 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080331C8 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _080331CC @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl sub_80334EC
-_080331B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080331BC: .4byte gUnknown_02024A60
-_080331C0: .4byte 0x02017810
-_080331C4: .4byte gUnknown_02024BE0
-_080331C8: .4byte gSprites
-_080331CC: .4byte gUnknown_03004340
- thumb_func_end sub_8033160
-
- thumb_func_start sub_80331D0
-sub_80331D0: @ 80331D0
- push {lr}
- ldr r0, _080331E4 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _080331DE
- bl sub_80334EC
-_080331DE:
- pop {r0}
- bx r0
- .align 2, 0
-_080331E4: .4byte gUnknown_03004210
- thumb_func_end sub_80331D0
-
- thumb_func_start bx_blink_t7
-bx_blink_t7: @ 80331E8
- push {r4,lr}
- ldr r1, _08033224 @ =gUnknown_02024BE0
- ldr r0, _08033228 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _0803322C @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _08033234
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08033230 @ =gUnknown_02024E6D
- strb r3, [r0]
- bl sub_80334EC
- b _0803325E
- .align 2, 0
-_08033224: .4byte gUnknown_02024BE0
-_08033228: .4byte gUnknown_02024A60
-_0803322C: .4byte gSprites
-_08033230: .4byte gUnknown_02024E6D
-_08033234:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08033258
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08033258:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_0803325E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t7
-
- thumb_func_start sub_8033264
-sub_8033264: @ 8033264
- push {r4,lr}
- ldr r2, _080332B4 @ =gSprites
- ldr r0, _080332B8 @ =gUnknown_03004340
- ldr r4, _080332BC @ =gUnknown_02024A60
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080332C0 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080332AC
- lsls r0, r3, 2
- ldr r1, _080332C4 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080332A0
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_080332A0:
- ldr r0, _080332C8 @ =gUnknown_03004330
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080332CC @ =sub_80332D0
- str r0, [r1]
-_080332AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080332B4: .4byte gSprites
-_080332B8: .4byte gUnknown_03004340
-_080332BC: .4byte gUnknown_02024A60
-_080332C0: .4byte SpriteCallbackDummy
-_080332C4: .4byte 0x02017800
-_080332C8: .4byte gUnknown_03004330
-_080332CC: .4byte sub_80332D0
- thumb_func_end sub_8033264
-
- thumb_func_start sub_80332D0
-sub_80332D0: @ 80332D0
- push {lr}
- ldr r0, _080332FC @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08033300 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080332F6
- ldr r0, _08033304 @ =c3_0802FDF4
- movs r1, 0xA
- bl CreateTask
- bl sub_80334EC
-_080332F6:
- pop {r0}
- bx r0
- .align 2, 0
-_080332FC: .4byte gUnknown_02024A60
-_08033300: .4byte 0x02017810
-_08033304: .4byte c3_0802FDF4
- thumb_func_end sub_80332D0
-
- thumb_func_start sub_8033308
-sub_8033308: @ 8033308
- push {r4,r5,lr}
- ldr r5, _080333AC @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _080333B0 @ =0x02017810
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080333A4
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _080333B4 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r1, _080333B8 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080333BC @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, _080333C0 @ =gUnknown_03004340
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _080333C4 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _080333C8 @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- bl sub_804777C
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- bl sub_8031F88
- ldr r1, _080333CC @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080333D0 @ =sub_8033264
- str r1, [r0]
-_080333A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080333AC: .4byte gUnknown_02024A60
-_080333B0: .4byte 0x02017810
-_080333B4: .4byte 0x000027f9
-_080333B8: .4byte gUnknown_02024BE0
-_080333BC: .4byte gSprites
-_080333C0: .4byte gUnknown_03004340
-_080333C4: .4byte gUnknown_02024A6A
-_080333C8: .4byte gEnemyParty
-_080333CC: .4byte gUnknown_03004330
-_080333D0: .4byte sub_8033264
- thumb_func_end sub_8033308
-
- thumb_func_start sub_80333D4
-sub_80333D4: @ 80333D4
- push {r4-r6,lr}
- ldr r5, _08033470 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _08033474 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _08033402
- ldr r0, _08033478 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0803347C @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08033402:
- ldr r4, _08033480 @ =gSprites
- ldr r0, _08033484 @ =gUnknown_0300434C
- ldrb r2, [r5]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _08033488 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08033468
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08033468
- adds r0, r3, r4
- bl DestroySprite
- ldrb r4, [r5]
- ldr r1, _08033478 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803347C @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _0803348C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08033490 @ =sub_8033308
- str r1, [r0]
-_08033468:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08033470: .4byte gUnknown_02024A60
-_08033474: .4byte 0x02017810
-_08033478: .4byte gUnknown_02024A6A
-_0803347C: .4byte gEnemyParty
-_08033480: .4byte gSprites
-_08033484: .4byte gUnknown_0300434C
-_08033488: .4byte SpriteCallbackDummy
-_0803348C: .4byte gUnknown_03004330
-_08033490: .4byte sub_8033308
- thumb_func_end sub_80333D4
-
- thumb_func_start sub_8033494
-sub_8033494: @ 8033494
- push {lr}
- ldr r0, _080334B8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080334BC @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080334B2
- bl sub_80334EC
-_080334B2:
- pop {r0}
- bx r0
- .align 2, 0
-_080334B8: .4byte gUnknown_02024A60
-_080334BC: .4byte 0x02017810
- thumb_func_end sub_8033494
-
- thumb_func_start sub_80334C0
-sub_80334C0: @ 80334C0
- push {lr}
- ldr r0, _080334E4 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080334E8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _080334DE
- bl sub_80334EC
-_080334DE:
- pop {r0}
- bx r0
- .align 2, 0
-_080334E4: .4byte gUnknown_02024A60
-_080334E8: .4byte 0x02017810
- thumb_func_end sub_80334C0
-
- thumb_func_start sub_80334EC
-sub_80334EC: @ 80334EC
- ldr r1, _08033510 @ =gUnknown_03004330
- ldr r2, _08033514 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08033518 @ =sub_8032AFC
- str r1, [r0]
- ldr r3, _0803351C @ =gUnknown_02024A64
- ldr r1, _08033520 @ =gBitTable
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- bx lr
- .align 2, 0
-_08033510: .4byte gUnknown_03004330
-_08033514: .4byte gUnknown_02024A60
-_08033518: .4byte sub_8032AFC
-_0803351C: .4byte gUnknown_02024A64
-_08033520: .4byte gBitTable
- thumb_func_end sub_80334EC
-
- thumb_func_start dp01t_00_7_getattr
-dp01t_00_7_getattr: @ 8033524
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _08033550 @ =gUnknown_02023A60
- ldr r0, _08033554 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0803355C
- ldr r0, _08033558 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl sub_8033598
- adds r6, r0, 0
- b _0803357E
- .align 2, 0
-_08033550: .4byte gUnknown_02023A60
-_08033554: .4byte gUnknown_02024A60
-_08033558: .4byte gUnknown_02024A6A
-_0803355C:
- ldrb r4, [r1]
- movs r5, 0
-_08033560:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08033576
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl sub_8033598
- adds r6, r0
-_08033576:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _08033560
-_0803357E:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl sub_80334EC
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_7_getattr
-
- thumb_func_start sub_8033598
-sub_8033598: @ 8033598
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _080335CC @ =gUnknown_02023A60
- ldr r3, _080335D0 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _080335C2
- bl _08033D2E
-_080335C2:
- lsls r0, 2
- ldr r1, _080335D4 @ =_080335D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080335CC: .4byte gUnknown_02023A60
-_080335D0: .4byte gUnknown_02024A60
-_080335D4: .4byte _080335D8
- .align 2, 0
-_080335D8:
- .4byte _080336C8
- .4byte _080338EC
- .4byte _080338FC
- .4byte _0803390C
- .4byte _08033974
- .4byte _08033974
- .4byte _08033974
- .4byte _08033974
- .4byte _08033990
- .4byte _080339CC
- .4byte _080339CC
- .4byte _080339CC
- .4byte _080339CC
- .4byte _08033D2E
- .4byte _08033D2E
- .4byte _08033D2E
- .4byte _08033D2E
- .4byte _080339E8
- .4byte _080339F8
- .4byte _08033A28
- .4byte _08033A38
- .4byte _08033A48
- .4byte _08033A58
- .4byte _08033A68
- .4byte _08033A78
- .4byte _08033A88
- .4byte _08033A98
- .4byte _08033AA8
- .4byte _08033AB8
- .4byte _08033AC8
- .4byte _08033AD8
- .4byte _08033AE8
- .4byte _08033B38
- .4byte _08033B48
- .4byte _08033B58
- .4byte _08033B68
- .4byte _08033B78
- .4byte _08033B88
- .4byte _08033B98
- .4byte _08033BA8
- .4byte _08033BB8
- .4byte _08033BEC
- .4byte _08033BFC
- .4byte _08033C0C
- .4byte _08033C1C
- .4byte _08033C2C
- .4byte _08033C3C
- .4byte _08033C4C
- .4byte _08033C5C
- .4byte _08033C7C
- .4byte _08033C8C
- .4byte _08033C9C
- .4byte _08033CAC
- .4byte _08033CBC
- .4byte _08033CCC
- .4byte _08033CDC
- .4byte _08033CEC
- .4byte _08033CFC
- .4byte _08033D0C
- .4byte _08033D1C
-_080336C8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080338DC @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_08033714:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08033714
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080338DC @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _080338E0 @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _080338E4 @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _080338E8 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_080338CC:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _080338CC
- b _08033D2E
- .align 2, 0
-_080338DC: .4byte gEnemyParty
-_080338E0: .4byte 0xfffffc1f
-_080338E4: .4byte 0xfff07fff
-_080338E8: .4byte 0xfffffe0f
-_080338EC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080338F8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- b _08033C66
- .align 2, 0
-_080338F8: .4byte gEnemyParty
-_080338FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033908 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- b _08033C66
- .align 2, 0
-_08033908: .4byte gEnemyParty
-_0803390C:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08033970 @ =gEnemyParty
- adds r4, r1, r0
- mov r8, r9
-_08033922:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _08033922
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033970 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_08033960:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _08033960
- b _08033D2E
- .align 2, 0
-_08033970: .4byte gEnemyParty
-_08033974:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803398C @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _08033C66
- .align 2, 0
-_0803398C: .4byte gEnemyParty
-_08033990:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _080339C8 @ =gEnemyParty
- mov r8, r2
-_0803399C:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803399C
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080339C8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _08033D2E
- .align 2, 0
-_080339C8: .4byte gEnemyParty
-_080339CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080339E4 @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _08033D26
- .align 2, 0
-_080339E4: .4byte gEnemyParty
-_080339E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080339F4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1
- b _08033A02
- .align 2, 0
-_080339F4: .4byte gEnemyParty
-_080339F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A24 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x19
-_08033A02:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _08033D2E
- .align 2, 0
-_08033A24: .4byte gEnemyParty
-_08033A28:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A34 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1A
- b _08033D26
- .align 2, 0
-_08033A34: .4byte gEnemyParty
-_08033A38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A44 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1B
- b _08033D26
- .align 2, 0
-_08033A44: .4byte gEnemyParty
-_08033A48:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A54 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1C
- b _08033D26
- .align 2, 0
-_08033A54: .4byte gEnemyParty
-_08033A58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A64 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1D
- b _08033D26
- .align 2, 0
-_08033A64: .4byte gEnemyParty
-_08033A68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A74 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1E
- b _08033D26
- .align 2, 0
-_08033A74: .4byte gEnemyParty
-_08033A78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A84 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1F
- b _08033D26
- .align 2, 0
-_08033A84: .4byte gEnemyParty
-_08033A88:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A94 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x20
- b _08033D26
- .align 2, 0
-_08033A94: .4byte gEnemyParty
-_08033A98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AA4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x22
- b _08033D26
- .align 2, 0
-_08033AA4: .4byte gEnemyParty
-_08033AA8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AB4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x23
- b _08033D26
- .align 2, 0
-_08033AB4: .4byte gEnemyParty
-_08033AB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AC4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x24
- b _08033D26
- .align 2, 0
-_08033AC4: .4byte gEnemyParty
-_08033AC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AD4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x25
- b _08033D26
- .align 2, 0
-_08033AD4: .4byte gEnemyParty
-_08033AD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AE4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- b _08033D26
- .align 2, 0
-_08033AE4: .4byte gEnemyParty
-_08033AE8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08033B34 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _08033D2E
- .align 2, 0
-_08033B34: .4byte gEnemyParty
-_08033B38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B44 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x27
- b _08033D26
- .align 2, 0
-_08033B44: .4byte gEnemyParty
-_08033B48:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B54 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x28
- b _08033D26
- .align 2, 0
-_08033B54: .4byte gEnemyParty
-_08033B58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B64 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x29
- b _08033D26
- .align 2, 0
-_08033B64: .4byte gEnemyParty
-_08033B68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B74 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2A
- b _08033D26
- .align 2, 0
-_08033B74: .4byte gEnemyParty
-_08033B78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B84 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2B
- b _08033D26
- .align 2, 0
-_08033B84: .4byte gEnemyParty
-_08033B88:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B94 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- b _08033D26
- .align 2, 0
-_08033B94: .4byte gEnemyParty
-_08033B98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033BA4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0
- b _08033BC2
- .align 2, 0
-_08033BA4: .4byte gEnemyParty
-_08033BA8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033BB4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x9
- b _08033C66
- .align 2, 0
-_08033BB4: .4byte gEnemyParty
-_08033BB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033BE8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x37
-_08033BC2:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _08033D2E
- .align 2, 0
-_08033BE8: .4byte gEnemyParty
-_08033BEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033BF8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x38
- b _08033D26
- .align 2, 0
-_08033BF8: .4byte gEnemyParty
-_08033BFC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C08 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- b _08033C66
- .align 2, 0
-_08033C08: .4byte gEnemyParty
-_08033C0C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C18 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- b _08033C66
- .align 2, 0
-_08033C18: .4byte gEnemyParty
-_08033C1C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C28 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3B
- b _08033C66
- .align 2, 0
-_08033C28: .4byte gEnemyParty
-_08033C2C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C38 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3C
- b _08033C66
- .align 2, 0
-_08033C38: .4byte gEnemyParty
-_08033C3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C48 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3D
- b _08033C66
- .align 2, 0
-_08033C48: .4byte gEnemyParty
-_08033C4C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C58 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3E
- b _08033C66
- .align 2, 0
-_08033C58: .4byte gEnemyParty
-_08033C5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C78 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3F
-_08033C66:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _08033D2E
- .align 2, 0
-_08033C78: .4byte gEnemyParty
-_08033C7C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C88 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x16
- b _08033D26
- .align 2, 0
-_08033C88: .4byte gEnemyParty
-_08033C8C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C98 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x17
- b _08033D26
- .align 2, 0
-_08033C98: .4byte gEnemyParty
-_08033C9C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CA8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x18
- b _08033D26
- .align 2, 0
-_08033CA8: .4byte gEnemyParty
-_08033CAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CB8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x21
- b _08033D26
- .align 2, 0
-_08033CB8: .4byte gEnemyParty
-_08033CBC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CC8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2F
- b _08033D26
- .align 2, 0
-_08033CC8: .4byte gEnemyParty
-_08033CCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CD8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x30
- b _08033D26
- .align 2, 0
-_08033CD8: .4byte gEnemyParty
-_08033CDC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CE8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x32
- b _08033D26
- .align 2, 0
-_08033CE8: .4byte gEnemyParty
-_08033CEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CF8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x33
- b _08033D26
- .align 2, 0
-_08033CF8: .4byte gEnemyParty
-_08033CFC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033D08 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x34
- b _08033D26
- .align 2, 0
-_08033D08: .4byte gEnemyParty
-_08033D0C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033D18 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x35
- b _08033D26
- .align 2, 0
-_08033D18: .4byte gEnemyParty
-_08033D1C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033D40 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x36
-_08033D26:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_08033D2E:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08033D40: .4byte gEnemyParty
- thumb_func_end sub_8033598
-
- thumb_func_start dp01t_01_2_read_pokmon_data_slice
-dp01t_01_2_read_pokmon_data_slice: @ 8033D44
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r2, _08033DBC @ =gUnknown_02024A6A
- ldr r5, _08033DC0 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r3, _08033DC4 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r2, [r0]
- ldr r0, _08033DC8 @ =gEnemyParty
- adds r0, r2, r0
- adds r6, r4, r0
- mov r0, sp
- adds r4, r0, r2
- movs r2, 0
- adds r0, r3, 0x2
- adds r1, r0
- adds r7, r5, 0
- mov r12, r3
- ldrb r1, [r1]
- cmp r2, r1
- bcs _08033D9A
- adds r3, r0, 0
-_08033D80:
- adds r1, r4, r2
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcc _08033D80
-_08033D9A:
- ldrb r0, [r7]
- lsls r0, 9
- mov r1, r12
- adds r1, 0x2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- adds r2, r4, 0
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl sub_80334EC
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08033DBC: .4byte gUnknown_02024A6A
-_08033DC0: .4byte gUnknown_02024A60
-_08033DC4: .4byte gUnknown_02023A60
-_08033DC8: .4byte gEnemyParty
- thumb_func_end dp01t_01_2_read_pokmon_data_slice
-
- thumb_func_start dp01t_02_7_setattr
-dp01t_02_7_setattr: @ 8033DCC
- push {r4,r5,lr}
- ldr r1, _08033DF0 @ =gUnknown_02023A60
- ldr r0, _08033DF4 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _08033DFC
- ldr r0, _08033DF8 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8033E24
- b _08033E1A
- .align 2, 0
-_08033DF0: .4byte gUnknown_02023A60
-_08033DF4: .4byte gUnknown_02024A60
-_08033DF8: .4byte gUnknown_02024A6A
-_08033DFC:
- ldrb r4, [r1]
- movs r5, 0
-_08033E00:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08033E0E
- adds r0, r5, 0
- bl sub_8033E24
-_08033E0E:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08033E00
-_08033E1A:
- bl sub_80334EC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp01t_02_7_setattr
-
- thumb_func_start sub_8033E24
-sub_8033E24: @ 8033E24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r3, _08033E5C @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- ldr r2, _08033E60 @ =gUnknown_02023A63
- adds r4, r0, r2
- adds r7, r4, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- adds r3, r2, 0
- cmp r0, 0x3B
- bls _08033E52
- bl _08034730
-_08033E52:
- lsls r0, 2
- ldr r1, _08033E64 @ =_08033E68
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08033E5C: .4byte gUnknown_02024A60
-_08033E60: .4byte gUnknown_02023A63
-_08033E64: .4byte _08033E68
- .align 2, 0
-_08033E68:
- .4byte _08033F58
- .4byte _080340F0
- .4byte _0803410C
- .4byte _08034128
- .4byte _0803417C
- .4byte _0803417C
- .4byte _0803417C
- .4byte _0803417C
- .4byte _0803419C
- .4byte _08034204
- .4byte _08034204
- .4byte _08034204
- .4byte _08034204
- .4byte _08034730
- .4byte _08034730
- .4byte _08034730
- .4byte _08034730
- .4byte _0803422C
- .4byte _08034248
- .4byte _08034264
- .4byte _08034280
- .4byte _0803429C
- .4byte _080342B8
- .4byte _080342D4
- .4byte _080342F0
- .4byte _0803430C
- .4byte _08034328
- .4byte _08034344
- .4byte _08034360
- .4byte _0803437C
- .4byte _08034398
- .4byte _080343B4
- .4byte _08034428
- .4byte _08034444
- .4byte _08034460
- .4byte _0803447C
- .4byte _08034498
- .4byte _080344B4
- .4byte _080344D0
- .4byte _080344EC
- .4byte _08034508
- .4byte _08034524
- .4byte _08034540
- .4byte _0803455C
- .4byte _08034578
- .4byte _08034594
- .4byte _080345B0
- .4byte _080345CC
- .4byte _080345E8
- .4byte _08034604
- .4byte _08034620
- .4byte _0803463C
- .4byte _08034658
- .4byte _08034674
- .4byte _08034690
- .4byte _080346AC
- .4byte _080346C8
- .4byte _080346E4
- .4byte _08034700
- .4byte _0803471C
-_08033F58:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080340EC @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r7, 0
- bl SetMonData
- adds r2, r7, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r7
- mov r10, r0
- adds r0, r7, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r7, 0x2
- str r0, [sp, 0x4]
- adds r0, r7, 0x4
- str r0, [sp, 0x8]
- adds r0, r7, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r6, r7, 0
- adds r6, 0x24
- adds r4, r7, 0
- adds r4, 0xC
-_08033FBE:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08033FBE
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080340EC @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r7, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r7, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _08034730
- .align 2, 0
-_080340EC: .4byte gEnemyParty
-_080340F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034108 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xB
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034108: .4byte gEnemyParty
-_0803410C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034124 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034124: .4byte gEnemyParty
-_08034128:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r4
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08034178 @ =gEnemyParty
- adds r7, r1, r0
- adds r6, r4, 0
- adds r6, 0x8
-_08034140:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08034140
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034178 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034178: .4byte gEnemyParty
-_0803417C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034194 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08034198 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0803421A
- .align 2, 0
-_08034194: .4byte gEnemyParty
-_08034198: .4byte gUnknown_02023A60
-_0803419C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08034200 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x11
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034200: .4byte gEnemyParty
-_08034204:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034224 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08034228 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0803421A:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034224: .4byte gEnemyParty
-_08034228: .4byte gUnknown_02023A60
-_0803422C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034244 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034244: .4byte gEnemyParty
-_08034248:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034260 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x19
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034260: .4byte gEnemyParty
-_08034264:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803427C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1A
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803427C: .4byte gEnemyParty
-_08034280:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034298 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1B
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034298: .4byte gEnemyParty
-_0803429C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080342B4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1C
- bl SetMonData
- b _08034730
- .align 2, 0
-_080342B4: .4byte gEnemyParty
-_080342B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080342D0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1D
- bl SetMonData
- b _08034730
- .align 2, 0
-_080342D0: .4byte gEnemyParty
-_080342D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080342EC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1E
- bl SetMonData
- b _08034730
- .align 2, 0
-_080342EC: .4byte gEnemyParty
-_080342F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034308 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1F
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034308: .4byte gEnemyParty
-_0803430C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034324 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x20
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034324: .4byte gEnemyParty
-_08034328:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034340 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x22
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034340: .4byte gEnemyParty
-_08034344:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803435C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x23
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803435C: .4byte gEnemyParty
-_08034360:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034378 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x24
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034378: .4byte gEnemyParty
-_0803437C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034394 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x25
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034394: .4byte gEnemyParty
-_08034398:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080343B0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x26
- bl SetMonData
- b _08034730
- .align 2, 0
-_080343B0: .4byte gEnemyParty
-_080343B4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08034424 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x27
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _080344C2
- .align 2, 0
-_08034424: .4byte gEnemyParty
-_08034428:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034440 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x27
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034440: .4byte gEnemyParty
-_08034444:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803445C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x28
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803445C: .4byte gEnemyParty
-_08034460:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034478 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x29
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034478: .4byte gEnemyParty
-_0803447C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034494 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2A
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034494: .4byte gEnemyParty
-_08034498:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080344B0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2B
- bl SetMonData
- b _08034730
- .align 2, 0
-_080344B0: .4byte gEnemyParty
-_080344B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080344CC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
-_080344C2:
- movs r1, 0x2C
- bl SetMonData
- b _08034730
- .align 2, 0
-_080344CC: .4byte gEnemyParty
-_080344D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080344E8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0
- bl SetMonData
- b _08034730
- .align 2, 0
-_080344E8: .4byte gEnemyParty
-_080344EC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034504 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x9
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034504: .4byte gEnemyParty
-_08034508:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034520 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x37
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034520: .4byte gEnemyParty
-_08034524:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803453C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x38
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803453C: .4byte gEnemyParty
-_08034540:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034558 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x39
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034558: .4byte gEnemyParty
-_0803455C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034574 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3A
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034574: .4byte gEnemyParty
-_08034578:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034590 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3B
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034590: .4byte gEnemyParty
-_08034594:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080345AC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3C
- bl SetMonData
- b _08034730
- .align 2, 0
-_080345AC: .4byte gEnemyParty
-_080345B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080345C8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3D
- bl SetMonData
- b _08034730
- .align 2, 0
-_080345C8: .4byte gEnemyParty
-_080345CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080345E4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3E
- bl SetMonData
- b _08034730
- .align 2, 0
-_080345E4: .4byte gEnemyParty
-_080345E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034600 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3F
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034600: .4byte gEnemyParty
-_08034604:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803461C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x16
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803461C: .4byte gEnemyParty
-_08034620:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034638 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x17
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034638: .4byte gEnemyParty
-_0803463C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034654 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x18
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034654: .4byte gEnemyParty
-_08034658:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034670 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x21
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034670: .4byte gEnemyParty
-_08034674:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803468C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2F
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803468C: .4byte gEnemyParty
-_08034690:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080346A8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x30
- bl SetMonData
- b _08034730
- .align 2, 0
-_080346A8: .4byte gEnemyParty
-_080346AC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080346C4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x32
- bl SetMonData
- b _08034730
- .align 2, 0
-_080346C4: .4byte gEnemyParty
-_080346C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080346E0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x33
- bl SetMonData
- b _08034730
- .align 2, 0
-_080346E0: .4byte gEnemyParty
-_080346E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080346FC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x34
- bl SetMonData
- b _08034730
- .align 2, 0
-_080346FC: .4byte gEnemyParty
-_08034700:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034718 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x35
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034718: .4byte gEnemyParty
-_0803471C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034740 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x36
- bl SetMonData
-_08034730:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08034740: .4byte gEnemyParty
- thumb_func_end sub_8033E24
-
- thumb_func_start sub_8034744
-sub_8034744: @ 8034744
- push {r4-r7,lr}
- ldr r1, _080347A8 @ =gUnknown_02024A6A
- ldr r7, _080347AC @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _080347B0 @ =gUnknown_02023A60
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _080347B4 @ =gEnemyParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _0803479C
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_0803477A:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _0803477A
-_0803479C:
- bl sub_80334EC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080347A8: .4byte gUnknown_02024A6A
-_080347AC: .4byte gUnknown_02024A60
-_080347B0: .4byte gUnknown_02023A60
-_080347B4: .4byte gEnemyParty
- thumb_func_end sub_8034744
-
- thumb_func_start sub_80347B8
-sub_80347B8: @ 80347B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r6, _080348E8 @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r0, 1
- ldr r1, _080348EC @ =gUnknown_02024A6A
- adds r0, r1
- ldrh r0, [r0]
- movs r7, 0x64
- muls r0, r7
- ldr r2, _080348F0 @ =gEnemyParty
- mov r10, r2
- add r0, r10
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldrb r1, [r6]
- lsls r0, r1, 1
- ldr r2, _080348EC @ =gUnknown_02024A6A
- adds r0, r2
- ldrh r0, [r0]
- muls r0, r7
- add r0, r10
- bl sub_8031794
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080348F4 @ =gUnknown_02024E8C
- mov r9, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080348F8 @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _080348FC @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08034900 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08034904 @ =gUnknown_02024E84
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldrb r4, [r6]
- lsls r0, r4, 1
- ldr r2, _080348EC @ =gUnknown_02024A6A
- adds r0, r2
- ldrh r0, [r0]
- muls r0, r7
- add r0, r10
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _08034908 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803490C @ =sub_8033018
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080348E8: .4byte gUnknown_02024A60
-_080348EC: .4byte gUnknown_02024A6A
-_080348F0: .4byte gEnemyParty
-_080348F4: .4byte gUnknown_02024E8C
-_080348F8: .4byte gUnknown_02024BE0
-_080348FC: .4byte gSprites
-_08034900: .4byte 0x0000ff10
-_08034904: .4byte gUnknown_02024E84
-_08034908: .4byte gUnknown_03004330
-_0803490C: .4byte sub_8033018
- thumb_func_end sub_80347B8
-
- thumb_func_start sub_8034910
-sub_8034910: @ 8034910
- push {r4,lr}
- ldr r1, _08034948 @ =gUnknown_02024A6A
- ldr r4, _0803494C @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r1
- ldr r3, _08034950 @ =gUnknown_02023A60
- lsls r0, 9
- adds r1, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- lsls r1, r0, 9
- adds r3, 0x2
- adds r1, r3
- ldrb r1, [r1]
- bl sub_803495C
- ldr r1, _08034954 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034958 @ =sub_80333D4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08034948: .4byte gUnknown_02024A6A
-_0803494C: .4byte gUnknown_02024A60
-_08034950: .4byte gUnknown_02023A60
-_08034954: .4byte gUnknown_03004330
-_08034958: .4byte sub_80333D4
- thumb_func_end sub_8034910
-
- thumb_func_start sub_803495C
-sub_803495C: @ 803495C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _08034AB8 @ =gUnknown_02024A6A
- lsls r4, r6, 1
- adds r4, r0
- ldr r0, _08034ABC @ =gUnknown_02023A60
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r5, _08034AC0 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08034AC4 @ =sub_80312F0
- bl object_new_hidden_with_callback
- ldr r1, _08034AC8 @ =gUnknown_0300434C
- mov r10, r1
- add r10, r6
- mov r1, r10
- strb r0, [r1]
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r1, r6, 0
- bl sub_8031794
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08034ACC @ =gUnknown_02024E8C
- mov r9, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _08034AD0 @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _08034AD4 @ =gSprites
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- mov r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08034AD8 @ =gUnknown_02024E84
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- 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 r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08034ADC @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFE
- bl sub_8046400
- mov r1, r10
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08034AB8: .4byte gUnknown_02024A6A
-_08034ABC: .4byte gUnknown_02023A60
-_08034AC0: .4byte gEnemyParty
-_08034AC4: .4byte sub_80312F0
-_08034AC8: .4byte gUnknown_0300434C
-_08034ACC: .4byte gUnknown_02024E8C
-_08034AD0: .4byte gUnknown_02024BE0
-_08034AD4: .4byte gSprites
-_08034AD8: .4byte gUnknown_02024E84
-_08034ADC: .4byte SpriteCallbackDummy
- thumb_func_end sub_803495C
-
- thumb_func_start sub_8034AE0
-sub_8034AE0: @ 8034AE0
- push {r4-r6,lr}
- ldr r1, _08034B10 @ =gUnknown_02023A60
- ldr r6, _08034B14 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _08034B24
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08034B18 @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _08034B1C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034B20 @ =sub_8034B74
- str r1, [r0]
- b _08034B60
- .align 2, 0
-_08034B10: .4byte gUnknown_02023A60
-_08034B14: .4byte gUnknown_02024A60
-_08034B18: .4byte 0x02017810
-_08034B1C: .4byte gUnknown_03004330
-_08034B20: .4byte sub_8034B74
-_08034B24:
- ldr r5, _08034B68 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08034B6C @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08034B70 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl sub_80334EC
-_08034B60:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08034B68: .4byte gUnknown_02024BE0
-_08034B6C: .4byte gSprites
-_08034B70: .4byte gUnknown_03004340
- thumb_func_end sub_8034AE0
-
- thumb_func_start sub_8034B74
-sub_8034B74: @ 8034B74
- push {r4,r5,lr}
- ldr r5, _08034B90 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _08034B94 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _08034B98
- cmp r0, 0x1
- beq _08034BC4
- b _08034BEC
- .align 2, 0
-_08034B90: .4byte gUnknown_02024A60
-_08034B94: .4byte 0x02017810
-_08034B98:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08034BB4
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08034BB4:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08034BEC
-_08034BC4:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08034BEC
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x2
- bl move_anim_start_t4
- ldr r1, _08034BF4 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034BF8 @ =sub_8033160
- str r1, [r0]
-_08034BEC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08034BF4: .4byte gUnknown_03004330
-_08034BF8: .4byte sub_8033160
- thumb_func_end sub_8034B74
-
- thumb_func_start sub_8034BFC
-sub_8034BFC: @ 8034BFC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r3, _08034C18 @ =gTrainerBattleOpponent
- ldrh r1, [r3]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08034C1C
- bl GetSecretBaseTrainerPicIndex
- b _08034C42
- .align 2, 0
-_08034C18: .4byte gTrainerBattleOpponent
-_08034C1C:
- ldr r0, _08034C30 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08034C34
- bl get_trainer_class_pic_index
- b _08034C42
- .align 2, 0
-_08034C30: .4byte gUnknown_020239F8
-_08034C34:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _08034C48
- bl sub_8135FBC
-_08034C42:
- lsls r0, 24
- lsrs r0, 24
- b _08034C56
-_08034C48:
- ldr r2, _08034D88 @ =gTrainers
- ldrh r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x3]
-_08034C56:
- mov r9, r0
- ldr r0, _08034D8C @ =gUnknown_02024A60
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_8031A6C
- mov r1, r8
- ldrb r0, [r1]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl GetMonSpriteTemplate_803C5A0
- ldr r5, _08034D90 @ =gUnknown_02024E8C
- ldr r1, _08034D94 @ =gTrainerFrontPicCoords
- mov r2, r9
- lsls r0, r2, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 14
- adds r4, r0
- asrs r4, 16
- mov r1, r8
- ldrb r0, [r1]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- movs r1, 0xB0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _08034D98 @ =gUnknown_02024BE0
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08034D9C @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08034DA0 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldr r0, _08034DA4 @ =gTrainerFrontPicPaletteTable
- mov r1, r9
- lsls r6, r1, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _08034DA8 @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08034DAC @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08034DB0 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r9
- strh r2, [r0, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08034DB4 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _08034DB8 @ =gUnknown_03004330
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034DBC @ =sub_8032B4C
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08034D88: .4byte gTrainers
-_08034D8C: .4byte gUnknown_02024A60
-_08034D90: .4byte gUnknown_02024E8C
-_08034D94: .4byte gTrainerFrontPicCoords
-_08034D98: .4byte gUnknown_02024BE0
-_08034D9C: .4byte gSprites
-_08034DA0: .4byte 0x0000ff10
-_08034DA4: .4byte gTrainerFrontPicPaletteTable
-_08034DA8: .4byte gTrainerFrontPicTable
-_08034DAC: .4byte 0x000003ff
-_08034DB0: .4byte 0xfffffc00
-_08034DB4: .4byte sub_80313A0
-_08034DB8: .4byte gUnknown_03004330
-_08034DBC: .4byte sub_8032B4C
- thumb_func_end sub_8034BFC
-
- thumb_func_start sub_8034DC0
-sub_8034DC0: @ 8034DC0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r3, _08034DDC @ =gTrainerBattleOpponent
- ldrh r1, [r3]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08034DE0
- bl GetSecretBaseTrainerPicIndex
- b _08034E06
- .align 2, 0
-_08034DDC: .4byte gTrainerBattleOpponent
-_08034DE0:
- ldr r0, _08034DF4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08034DF8
- bl get_trainer_class_pic_index
- b _08034E06
- .align 2, 0
-_08034DF4: .4byte gUnknown_020239F8
-_08034DF8:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _08034E0C
- bl sub_8135FBC
-_08034E06:
- lsls r0, 24
- lsrs r0, 24
- b _08034E1A
-_08034E0C:
- ldr r2, _08034F4C @ =gTrainers
- ldrh r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x3]
-_08034E1A:
- mov r9, r0
- ldr r0, _08034F50 @ =gUnknown_02024A60
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_8031A6C
- mov r1, r8
- ldrb r0, [r1]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _08034F54 @ =gUnknown_02024E8C
- ldr r2, _08034F58 @ =gTrainerFrontPicCoords
- mov r3, r9
- lsls r1, r3, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 14
- adds r2, r1
- asrs r2, 16
- movs r1, 0xB0
- movs r3, 0x1E
- bl CreateSprite
- ldr r5, _08034F5C @ =gUnknown_02024BE0
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08034F60 @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x60
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x20]
- adds r1, 0x20
- strh r1, [r0, 0x20]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08034F64 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldr r0, _08034F68 @ =gTrainerFrontPicPaletteTable
- mov r3, r9
- lsls r6, r3, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _08034F6C @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08034F70 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08034F74 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r9
- strh r1, [r0, 0x6]
- ldrb r0, [r3]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08034F78 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _08034F7C @ =gUnknown_03004330
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034F80 @ =sub_8032B84
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08034F4C: .4byte gTrainers
-_08034F50: .4byte gUnknown_02024A60
-_08034F54: .4byte gUnknown_02024E8C
-_08034F58: .4byte gTrainerFrontPicCoords
-_08034F5C: .4byte gUnknown_02024BE0
-_08034F60: .4byte gSprites
-_08034F64: .4byte 0x0000fffe
-_08034F68: .4byte gTrainerFrontPicPaletteTable
-_08034F6C: .4byte gTrainerFrontPicTable
-_08034F70: .4byte 0x000003ff
-_08034F74: .4byte 0xfffffc00
-_08034F78: .4byte sub_80313A0
-_08034F7C: .4byte gUnknown_03004330
-_08034F80: .4byte sub_8032B84
- thumb_func_end sub_8034DC0
-
- thumb_func_start sub_8034F84
-sub_8034F84: @ 8034F84
- push {r4-r6,lr}
- ldr r6, _08035014 @ =gUnknown_02024BE0
- ldr r4, _08035018 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _0803501C @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08035020 @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08035024 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldr r1, _08035028 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803502C @ =sub_8032BBC
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035014: .4byte gUnknown_02024BE0
-_08035018: .4byte gUnknown_02024A60
-_0803501C: .4byte gSprites
-_08035020: .4byte sub_8078B34
-_08035024: .4byte SpriteCallbackDummy
-_08035028: .4byte gUnknown_03004330
-_0803502C: .4byte sub_8032BBC
- thumb_func_end sub_8034F84
-
- thumb_func_start sub_8035030
-sub_8035030: @ 8035030
- push {r4,r5,lr}
- ldr r5, _08035074 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _08035078 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _0803507C
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08035062
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08035062:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _080350B8
- .align 2, 0
-_08035074: .4byte gUnknown_02024A60
-_08035078: .4byte 0x02017810
-_0803507C:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080350B8
- strb r0, [r3, 0x4]
- movs r0, 0x10
- movs r1, 0x3F
- bl PlaySE12WithPanning
- ldr r2, _080350C0 @ =gSprites
- ldr r1, _080350C4 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080350C8 @ =sub_8010384
- str r1, [r0]
- ldr r1, _080350CC @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080350D0 @ =sub_803311C
- str r1, [r0]
-_080350B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080350C0: .4byte gSprites
-_080350C4: .4byte gUnknown_02024BE0
-_080350C8: .4byte sub_8010384
-_080350CC: .4byte gUnknown_03004330
-_080350D0: .4byte sub_803311C
- thumb_func_end sub_8035030
-
- thumb_func_start sub_80350D4
-sub_80350D4: @ 80350D4
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80350D4
-
- thumb_func_start sub_80350E0
-sub_80350E0: @ 80350E0
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80350E0
-
- thumb_func_start sub_80350EC
-sub_80350EC: @ 80350EC
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80350EC
-
- thumb_func_start sub_80350F8
-sub_80350F8: @ 80350F8
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80350F8
-
- thumb_func_start sub_8035104
-sub_8035104: @ 8035104
- push {r4-r6,lr}
- ldr r6, _080351E8 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _08035116
- b _08035226
-_08035116:
- ldr r0, _080351EC @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _080351F0 @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _080351F4 @ =gUnknown_0202F7BC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _080351F8 @ =gUnknown_0202F7B8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _080351FC @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08035200 @ =gUnknown_0202F7C0
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _08035204 @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08035208 @ =gUnknown_02024E70
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0803520C
- bl sub_80334EC
- b _08035226
- .align 2, 0
-_080351E8: .4byte gUnknown_02024A60
-_080351EC: .4byte gUnknown_02023A60
-_080351F0: .4byte gUnknown_0202F7C4
-_080351F4: .4byte gUnknown_0202F7BC
-_080351F8: .4byte gUnknown_0202F7B8
-_080351FC: .4byte gUnknown_0202F7BE
-_08035200: .4byte gUnknown_0202F7C0
-_08035204: .4byte gUnknown_0202F7B4
-_08035208: .4byte gUnknown_02024E70
-_0803520C:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0803522C @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _08035230 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035234 @ =sub_8035238
- str r1, [r0]
-_08035226:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803522C: .4byte 0x02017810
-_08035230: .4byte gUnknown_03004330
-_08035234: .4byte sub_8035238
- thumb_func_end sub_8035104
-
- thumb_func_start sub_8035238
-sub_8035238: @ 8035238
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0803527C @ =gUnknown_02023A60
- ldr r5, _08035280 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _08035284 @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _080352C6
- cmp r2, 0x1
- bgt _08035288
- cmp r2, 0
- beq _08035292
- b _08035390
- .align 2, 0
-_0803527C: .4byte gUnknown_02023A60
-_08035280: .4byte gUnknown_02024A60
-_08035284: .4byte 0x02017810
-_08035288:
- cmp r2, 0x2
- beq _080352EC
- cmp r2, 0x3
- beq _08035358
- b _08035390
-_08035292:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _080352B6
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_080352B6:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08035390
-_080352C6:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08035390
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl move_anim_start_t1
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08035390
-_080352EC:
- ldr r0, _08035348 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _0803534C @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08035390
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08035334
- cmp r7, 0x1
- bhi _08035334
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08035334:
- ldr r0, _08035350 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08035354 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08035390
- .align 2, 0
-_08035348: .4byte gUnknown_0202F7AC
-_0803534C: .4byte gUnknown_0202F7B1
-_08035350: .4byte gUnknown_02024A60
-_08035354: .4byte 0x02017810
-_08035358:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08035390
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl sub_80334EC
-_08035390:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8035238
-
- thumb_func_start sub_803539C
-sub_803539C: @ 803539C
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080353E0 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080353E4 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _080353E8 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _080353EC @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _080353F0 @ =gUnknown_03004210
- ldr r1, _080353F4 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _080353F8 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080353FC @ =sub_80331D0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080353E0: .4byte gUnknown_030042A4
-_080353E4: .4byte gUnknown_030042A0
-_080353E8: .4byte gUnknown_02024A60
-_080353EC: .4byte gUnknown_02023A62
-_080353F0: .4byte gUnknown_03004210
-_080353F4: .4byte gUnknown_020238CC
-_080353F8: .4byte gUnknown_03004330
-_080353FC: .4byte sub_80331D0
- thumb_func_end sub_803539C
-
- thumb_func_start sub_8035400
-sub_8035400: @ 8035400
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035400
-
- thumb_func_start sub_803540C
-sub_803540C: @ 803540C
- push {lr}
- bl sub_8036B0C
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_803540C
-
- thumb_func_start sub_803541C
-sub_803541C: @ 803541C
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_803541C
-
- thumb_func_start sub_8035428
-sub_8035428: @ 8035428
- push {r4-r6,lr}
- ldr r6, _0803545C @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r0, 9
- ldr r1, _08035460 @ =gUnknown_02023A64
- adds r5, r0, r1
- ldr r0, _08035464 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x93
- lsls r0, 3
- ands r0, r1
- cmp r0, 0
- beq _080354F8
- bl sub_810715C
- bl sub_81072A8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- beq _08035468
- cmp r4, 0x5
- bne _08035474
- movs r0, 0x1
- movs r1, 0x4
- b _0803546C
- .align 2, 0
-_0803545C: .4byte gUnknown_02024A60
-_08035460: .4byte gUnknown_02023A64
-_08035464: .4byte gUnknown_020239F8
-_08035468:
- movs r0, 0x1
- movs r1, 0x3
-_0803546C:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _080354E0
-_08035474:
- ldr r3, _080354E8 @ =gBattleMoves
- lsls r0, r4, 1
- adds r2, r5, r0
- ldrh r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x6]
- movs r0, 0x12
- ands r0, r1
- cmp r0, 0
- beq _08035494
- ldr r1, _080354EC @ =gUnknown_02024C08
- ldrb r0, [r6]
- strb r0, [r1]
-_08035494:
- ldrh r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080354CE
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r5, _080354EC @ =gUnknown_02024C08
- strb r0, [r5]
- ldr r0, _080354F0 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _080354F4 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080354CE
- movs r0, 0x2
- bl battle_get_side_with_given_state
- strb r0, [r5]
-_080354CE:
- ldr r0, _080354EC @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x1
- movs r1, 0xA
- adds r2, r4, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_080354E0:
- bl sub_80334EC
- b _0803558A
- .align 2, 0
-_080354E8: .4byte gBattleMoves
-_080354EC: .4byte gUnknown_02024C08
-_080354F0: .4byte gUnknown_02024C0C
-_080354F4: .4byte gBitTable
-_080354F8:
- movs r6, 0x3
-_080354FA:
- bl Random
- adds r4, r0, 0
- ands r4, r6
- lsls r0, r4, 1
- adds r0, r5, r0
- ldrh r2, [r0]
- cmp r2, 0
- beq _080354FA
- ldr r1, _08035534 @ =gBattleMoves
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x6]
- movs r0, 0x12
- ands r0, r1
- cmp r0, 0
- beq _0803553C
- ldr r0, _08035538 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x1
- movs r1, 0xA
- adds r2, r4, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _08035586
- .align 2, 0
-_08035534: .4byte gBattleMoves
-_08035538: .4byte gUnknown_02024A60
-_0803553C:
- ldr r0, _0803556C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08035570
- bl Random
- movs r1, 0x2
- ands r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 16
- orrs r2, r4
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- b _08035586
- .align 2, 0
-_0803556C: .4byte gUnknown_020239F8
-_08035570:
- movs r0, 0
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 16
- orrs r2, r4
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
-_08035586:
- bl sub_80334EC
-_0803558A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8035428
-
- thumb_func_start sub_8035590
-sub_8035590: @ 8035590
- push {lr}
- ldr r1, _080355B4 @ =0x02000000
- ldr r0, _080355B8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsrs r0, 1
- lsls r0, 1
- ldr r2, _080355BC @ =0x000160d4
- adds r0, r2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_080355B4: .4byte 0x02000000
-_080355B8: .4byte gUnknown_02024A60
-_080355BC: .4byte 0x000160d4
- thumb_func_end sub_8035590
-
- thumb_func_start sub_80355C0
-sub_80355C0: @ 80355C0
- push {r4-r6,lr}
- ldr r6, _08035604 @ =0x02000000
- ldr r5, _08035608 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _0803560C @ =0x000160c8
- adds r0, r1
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _08035664
- bl sub_8036CD4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bne _0803568A
- ldr r0, _08035610 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08035614
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- b _08035628
- .align 2, 0
-_08035604: .4byte 0x02000000
-_08035608: .4byte gUnknown_02024A60
-_0803560C: .4byte 0x000160c8
-_08035610: .4byte gUnknown_020239F8
-_08035614:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
-_08035628:
- movs r4, 0
- b _0803562E
-_0803562C:
- adds r4, 0x1
-_0803562E:
- cmp r4, 0x5
- bgt _0803568A
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0803565C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0803562C
- ldr r1, _08035660 @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _0803562C
- lsls r0, r5, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _0803562C
- b _0803568A
- .align 2, 0
-_0803565C: .4byte gEnemyParty
-_08035660: .4byte gUnknown_02024A6A
-_08035664:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _080356B0 @ =0x000160c8
- adds r0, r2
- adds r0, r6
- ldrb r4, [r0]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _080356B0 @ =0x000160c8
- adds r0, r1
- adds r0, r6
- movs r1, 0x6
- strb r1, [r0]
-_0803568A:
- ldr r1, _080356B4 @ =0x02000000
- ldr r0, _080356B8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- ldr r2, _080356BC @ =0x00016068
- adds r0, r2
- adds r0, r1
- strb r4, [r0]
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0x1
- movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
- bl sub_80334EC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080356B0: .4byte 0x000160c8
-_080356B4: .4byte 0x02000000
-_080356B8: .4byte gUnknown_02024A60
-_080356BC: .4byte 0x00016068
- thumb_func_end sub_80355C0
-
- thumb_func_start sub_80356C0
-sub_80356C0: @ 80356C0
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80356C0
-
- thumb_func_start sub_80356CC
-sub_80356CC: @ 80356CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _08035744 @ =gUnknown_02023A60
- ldr r0, _08035748 @ =gUnknown_02024A60
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x3
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r1, 8
- adds r3, 0x2
- adds r2, r3
- ldrb r0, [r2]
- orrs r0, r1
- lsls r0, 16
- asrs r7, r0, 16
- ldr r0, _0803574C @ =0x00007fff
- cmp r7, r0
- beq _0803575C
- ldr r6, _08035750 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08035754 @ =gEnemyParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08035758 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08035786
- .align 2, 0
-_08035744: .4byte gUnknown_02023A60
-_08035748: .4byte gUnknown_02024A60
-_0803574C: .4byte 0x00007fff
-_08035750: .4byte gUnknown_02024A6A
-_08035754: .4byte gEnemyParty
-_08035758: .4byte gUnknown_03004340
-_0803575C:
- ldr r1, _080357A4 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080357A8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _080357AC @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08035786:
- ldr r1, _080357B0 @ =gUnknown_03004330
- ldr r0, _080357B4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080357B8 @ =sub_80330C8
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080357A4: .4byte gUnknown_02024A6A
-_080357A8: .4byte gEnemyParty
-_080357AC: .4byte gUnknown_03004340
-_080357B0: .4byte gUnknown_03004330
-_080357B4: .4byte gUnknown_02024A60
-_080357B8: .4byte sub_80330C8
- thumb_func_end sub_80356CC
-
- thumb_func_start sub_80357BC
-sub_80357BC: @ 80357BC
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80357BC
-
- thumb_func_start sub_80357C8
-sub_80357C8: @ 80357C8
- push {r4,lr}
- ldr r4, _08035820 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08035818
- ldr r0, _08035824 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08035828 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0803582C @ =gEnemyParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08035830 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _08035834 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035838 @ =sub_8033494
- str r1, [r0]
-_08035818:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035820: .4byte gUnknown_02024A60
-_08035824: .4byte gUnknown_03004340
-_08035828: .4byte gUnknown_02024A6A
-_0803582C: .4byte gEnemyParty
-_08035830: .4byte 0x02017810
-_08035834: .4byte gUnknown_03004330
-_08035838: .4byte sub_8033494
- thumb_func_end sub_80357C8
-
- thumb_func_start sub_803583C
-sub_803583C: @ 803583C
- push {r4,r5,lr}
- ldr r5, _08035894 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0803588C
- ldr r4, _08035898 @ =gUnknown_02023A60
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _0803589C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080358A0 @ =sub_8033494
- str r1, [r0]
-_0803588C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08035894: .4byte gUnknown_02024A60
-_08035898: .4byte gUnknown_02023A60
-_0803589C: .4byte gUnknown_03004330
-_080358A0: .4byte sub_8033494
- thumb_func_end sub_803583C
-
- thumb_func_start sub_80358A4
-sub_80358A4: @ 80358A4
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358A4
-
- thumb_func_start sub_80358B0
-sub_80358B0: @ 80358B0
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358B0
-
- thumb_func_start sub_80358BC
-sub_80358BC: @ 80358BC
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358BC
-
- thumb_func_start sub_80358C8
-sub_80358C8: @ 80358C8
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358C8
-
- thumb_func_start sub_80358D4
-sub_80358D4: @ 80358D4
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358D4
-
- thumb_func_start sub_80358E0
-sub_80358E0: @ 80358E0
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358E0
-
- thumb_func_start sub_80358EC
-sub_80358EC: @ 80358EC
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358EC
-
- thumb_func_start sub_80358F8
-sub_80358F8: @ 80358F8
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358F8
-
- thumb_func_start sub_8035904
-sub_8035904: @ 8035904
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035904
-
- thumb_func_start sub_8035910
-sub_8035910: @ 8035910
- push {lr}
- ldr r2, _08035928 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035928: .4byte gUnknown_020238C8
- thumb_func_end sub_8035910
-
- thumb_func_start sub_803592C
-sub_803592C: @ 803592C
- push {lr}
- ldr r3, _08035958 @ =gUnknown_020238C8
- ldr r1, _0803595C @ =gUnknown_02023A60
- ldr r0, _08035960 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035958: .4byte gUnknown_020238C8
-_0803595C: .4byte gUnknown_02023A60
-_08035960: .4byte gUnknown_02024A60
- thumb_func_end sub_803592C
-
- thumb_func_start sub_8035964
-sub_8035964: @ 8035964
- push {lr}
- ldr r2, _08035978 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035978: .4byte gUnknown_020238C8
- thumb_func_end sub_8035964
-
- thumb_func_start sub_803597C
-sub_803597C: @ 803597C
- push {lr}
- ldr r3, _080359A0 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_080359A0: .4byte gUnknown_020238C8
- thumb_func_end sub_803597C
-
- thumb_func_start dp01t_29_7_blink
-dp01t_29_7_blink: @ 80359A4
- push {r4,lr}
- ldr r3, _080359CC @ =gSprites
- ldr r2, _080359D0 @ =gUnknown_02024BE0
- ldr r4, _080359D4 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _080359D8
- bl sub_80334EC
- b _08035A02
- .align 2, 0
-_080359CC: .4byte gSprites
-_080359D0: .4byte gUnknown_02024BE0
-_080359D4: .4byte gUnknown_02024A60
-_080359D8:
- ldr r1, _08035A08 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _08035A0C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035A10 @ =bx_blink_t7
- str r1, [r0]
-_08035A02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035A08: .4byte gUnknown_02024E6D
-_08035A0C: .4byte gUnknown_03004330
-_08035A10: .4byte bx_blink_t7
- thumb_func_end dp01t_29_7_blink
-
- thumb_func_start sub_8035A14
-sub_8035A14: @ 8035A14
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035A14
-
- thumb_func_start sub_8035A20
-sub_8035A20: @ 8035A20
- push {r4,lr}
- ldr r4, _08035A5C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _08035A34
- movs r3, 0xC0
-_08035A34:
- ldr r2, _08035A60 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl sub_80334EC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035A5C: .4byte gUnknown_02024A60
-_08035A60: .4byte gUnknown_02023A60
- thumb_func_end sub_8035A20
-
- thumb_func_start sub_8035A64
-sub_8035A64: @ 8035A64
- push {lr}
- ldr r2, _08035A8C @ =gUnknown_02023A60
- ldr r0, _08035A90 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035A8C: .4byte gUnknown_02023A60
-_08035A90: .4byte gUnknown_02024A60
- thumb_func_end sub_8035A64
-
- thumb_func_start sub_8035A94
-sub_8035A94: @ 8035A94
- push {lr}
- ldr r1, _08035AC4 @ =gUnknown_02024A6A
- ldr r0, _08035AC8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08035ACC @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- movs r2, 0x5
- bl PlayCry3
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035AC4: .4byte gUnknown_02024A6A
-_08035AC8: .4byte gUnknown_02024A60
-_08035ACC: .4byte gEnemyParty
- thumb_func_end sub_8035A94
-
- thumb_func_start dp01t_2E_7_battle_intro
-dp01t_2E_7_battle_intro: @ 8035AD0
- push {lr}
- ldr r1, _08035AF8 @ =gUnknown_02023A60
- ldr r0, _08035AFC @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _08035B00 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035AF8: .4byte gUnknown_02023A60
-_08035AFC: .4byte gUnknown_02024A60
-_08035B00: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_7_battle_intro
-
- thumb_func_start sub_8035B04
-sub_8035B04: @ 8035B04
- push {r4-r6,lr}
- ldr r5, _08035BE0 @ =gUnknown_02024BE0
- ldr r6, _08035BE4 @ =gUnknown_02024A60
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08035BE8 @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08035BEC @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08035BF0 @ =sub_8035C10
- bl oamt_set_x3A_32
- ldr r0, _08035BF4 @ =sub_8035C44
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08035BF8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r6]
- strh r0, [r1, 0x8]
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _08035BFC @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08035BC2
- ldr r0, _08035C00 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _08035C04 @ =sub_8044CA0
- str r1, [r0]
-_08035BC2:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08035C08 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035C0C @ =nullsub_45
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035BE0: .4byte gUnknown_02024BE0
-_08035BE4: .4byte gUnknown_02024A60
-_08035BE8: .4byte gSprites
-_08035BEC: .4byte sub_8078B34
-_08035BF0: .4byte sub_8035C10
-_08035BF4: .4byte sub_8035C44
-_08035BF8: .4byte gTasks
-_08035BFC: .4byte 0x02017810
-_08035C00: .4byte gUnknown_02024E68
-_08035C04: .4byte sub_8044CA0
-_08035C08: .4byte gUnknown_03004330
-_08035C0C: .4byte nullsub_45
- thumb_func_end sub_8035B04
-
- thumb_func_start sub_8035C10
-sub_8035C10: @ 8035C10
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x6]
- bl sub_8031B74
- ldrh r0, [r4, 0x38]
- ldr r1, _08035C3C @ =0x000003ff
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _08035C40 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035C3C: .4byte 0x000003ff
-_08035C40: .4byte 0xfffffc00
- thumb_func_end sub_8035C10
-
- thumb_func_start sub_8035C44
-sub_8035C44: @ 8035C44
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r7, _08035C9C @ =gUnknown_02024A60
- ldrb r0, [r7]
- mov r9, r0
- ldr r1, _08035CA0 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strb r0, [r7]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08035C7E
- ldr r0, _08035CA4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08035CB0
-_08035C7E:
- ldr r0, _08035CA8 @ =gUnknown_02023A60
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08035CAC @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_803495C
- b _08035CF0
- .align 2, 0
-_08035C9C: .4byte gUnknown_02024A60
-_08035CA0: .4byte gTasks
-_08035CA4: .4byte gUnknown_020239F8
-_08035CA8: .4byte gUnknown_02023A60
-_08035CAC: .4byte gUnknown_02024A6A
-_08035CB0:
- ldr r4, _08035D14 @ =gUnknown_02023A60
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r6, _08035D18 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_803495C
- ldrb r0, [r7]
- movs r5, 0x2
- eors r0, r5
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_803495C
- ldrb r0, [r7]
- eors r0, r5
- strb r0, [r7]
-_08035CF0:
- ldr r1, _08035D1C @ =gUnknown_03004330
- ldr r2, _08035D20 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035D24 @ =sub_8032E2C
- str r1, [r0]
- mov r0, r9
- strb r0, [r2]
- mov r0, r8
- bl DestroyTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08035D14: .4byte gUnknown_02023A60
-_08035D18: .4byte gUnknown_02024A6A
-_08035D1C: .4byte gUnknown_03004330
-_08035D20: .4byte gUnknown_02024A60
-_08035D24: .4byte sub_8032E2C
- thumb_func_end sub_8035C44
-
- thumb_func_start dp01t_30_7_0803D67C
-dp01t_30_7_0803D67C: @ 8035D28
- push {r4-r6,lr}
- ldr r1, _08035D50 @ =gUnknown_02023A60
- ldr r0, _08035D54 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08035D58
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08035D58
- bl sub_80334EC
- b _08035E12
- .align 2, 0
-_08035D50: .4byte gUnknown_02023A60
-_08035D54: .4byte gUnknown_02024A60
-_08035D58:
- ldr r3, _08035DA8 @ =gUnknown_02024A60
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r4, _08035DAC @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _08035DB0 @ =gUnknown_02023A60
- ldrb r2, [r3]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- cmp r0, 0
- beq _08035DBC
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 26
- lsrs r0, r1, 27
- cmp r0, 0x1
- bhi _08035DB4
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- b _08035E12
- .align 2, 0
-_08035DA8: .4byte gUnknown_02024A60
-_08035DAC: .4byte 0x02017810
-_08035DB0: .4byte gUnknown_02023A60
-_08035DB4:
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- strb r0, [r3, 0x1]
-_08035DBC:
- adds r5, r6, 0
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _08035E18 @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _08035E1C @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _08035E20 @ =0x02017810
- adds r0, r3
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08035E06
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_08035E06:
- ldr r0, _08035E24 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08035E28 @ =sub_8035E2C
- str r0, [r1]
-_08035E12:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035E18: .4byte gUnknown_02023A64
-_08035E1C: .4byte gUnknown_02024E68
-_08035E20: .4byte 0x02017810
-_08035E24: .4byte gUnknown_03004330
-_08035E28: .4byte sub_8035E2C
- thumb_func_end dp01t_30_7_0803D67C
-
- thumb_func_start sub_8035E2C
-sub_8035E2C: @ 8035E2C
- push {r4,lr}
- ldr r4, _08035E64 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _08035E68 @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08035E5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl sub_80334EC
-_08035E5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035E64: .4byte gUnknown_02024A60
-_08035E68: .4byte 0x02017810
- thumb_func_end sub_8035E2C
-
- thumb_func_start sub_8035E6C
-sub_8035E6C: @ 8035E6C
- push {lr}
- ldr r0, _08035EA4 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _08035EA8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08035E9A
- ldr r2, _08035EAC @ =gTasks
- ldr r0, _08035EB0 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08035EB4 @ =sub_8044CA0
- str r1, [r0]
-_08035E9A:
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035EA4: .4byte gUnknown_02024A60
-_08035EA8: .4byte 0x02017810
-_08035EAC: .4byte gTasks
-_08035EB0: .4byte gUnknown_02024E68
-_08035EB4: .4byte sub_8044CA0
- thumb_func_end sub_8035E6C
-
- thumb_func_start sub_8035EB8
-sub_8035EB8: @ 8035EB8
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035EB8
-
- thumb_func_start sub_8035EC4
-sub_8035EC4: @ 8035EC4
- push {r4,lr}
- ldr r4, _08035F14 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _08035F0A
- ldr r3, _08035F18 @ =gSprites
- ldr r0, _08035F1C @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _08035F20 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_08035F0A:
- bl sub_80334EC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035F14: .4byte gUnknown_02024A60
-_08035F18: .4byte gSprites
-_08035F1C: .4byte gUnknown_02024BE0
-_08035F20: .4byte gUnknown_02023A60
- thumb_func_end sub_8035EC4
-
- thumb_func_start dp01t_34_7_move_anim_start_t3
-dp01t_34_7_move_anim_start_t3: @ 8035F24
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08035F68 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08035F7C
- ldr r5, _08035F6C @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _08035F70
- bl sub_80334EC
- b _08035F7C
- .align 2, 0
-_08035F68: .4byte gUnknown_02024A60
-_08035F6C: .4byte gUnknown_02023A60
-_08035F70:
- ldr r0, _08035F84 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08035F88 @ =sub_80334C0
- str r0, [r1]
-_08035F7C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035F84: .4byte gUnknown_03004330
-_08035F88: .4byte sub_80334C0
- thumb_func_end dp01t_34_7_move_anim_start_t3
-
- thumb_func_start sub_8035F8C
-sub_8035F8C: @ 8035F8C
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035F8C
-
- thumb_func_start sub_8035F98
-sub_8035F98: @ 8035F98
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035F98
-
- thumb_func_start sub_8035FA4
-sub_8035FA4: @ 8035FA4
- push {lr}
- ldr r0, _08035FD8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _08035FCE
- ldr r2, _08035FDC @ =gMain
- ldr r0, _08035FE0 @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _08035FE4 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_08035FCE:
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035FD8: .4byte gUnknown_020239F8
-_08035FDC: .4byte gMain
-_08035FE0: .4byte 0x0000043d
-_08035FE4: .4byte gUnknown_030042D0
- thumb_func_end sub_8035FA4
-
- thumb_func_start nullsub_46
-nullsub_46: @ 8035FE8
- bx lr
- thumb_func_end nullsub_46
-
- thumb_func_start ai_switch_perish_song
-ai_switch_perish_song: @ 8035FEC
- push {lr}
- ldr r1, _08036038 @ =gUnknown_02024C98
- ldr r0, _0803603C @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0803604C
- ldr r0, _08036040 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xF]
- lsls r0, 28
- cmp r0, 0
- bne _0803604C
- adds r0, r2, 0
- bl battle_get_per_side_status
- ldr r1, _08036044 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _08036048 @ =0x000160c8
- adds r0, r2
- adds r0, r1
- movs r1, 0x6
- strb r1, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _0803604E
- .align 2, 0
-_08036038: .4byte gUnknown_02024C98
-_0803603C: .4byte gUnknown_02024A60
-_08036040: .4byte gUnknown_02024CA8
-_08036044: .4byte 0x02000000
-_08036048: .4byte 0x000160c8
-_0803604C:
- movs r0, 0
-_0803604E:
- pop {r1}
- bx r1
- thumb_func_end ai_switch_perish_song
-
- thumb_func_start sub_8036054
-sub_8036054: @ 8036054
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0803606C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080360A0
- b _080361C8
- .align 2, 0
-_0803606C: .4byte gUnknown_020239F8
-_08036070:
- ldr r0, _08036094 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- ldr r1, _08036098 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _0803609C @ =0x000160c8
- adds r0, r2
- adds r0, r1
- strb r6, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _080361CA
- .align 2, 0
-_08036094: .4byte gUnknown_02024A60
-_08036098: .4byte 0x02000000
-_0803609C: .4byte 0x000160c8
-_080360A0:
- ldr r4, _080361D8 @ =gBattleMons
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x19
- beq _080360BC
- b _080361C8
-_080360BC:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r2, r0, 24
- movs r6, 0
- adds r7, r4, 0
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r4, r0, r7
- movs r3, 0x20
- adds r3, r4
- mov r8, r3
-_080360D8:
- lsls r1, r6, 1
- ldr r0, _080361DC @ =gUnknown_02024A60
- ldrb r0, [r0]
- muls r0, r5
- adds r1, r0
- adds r0, r7, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08036104
- ldrh r1, [r4]
- mov r3, r8
- ldrb r2, [r3]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- bne _080361C8
-_08036104:
- adds r6, 0x1
- cmp r6, 0x3
- ble _080360D8
- movs r6, 0
- ldr r0, _080361E0 @ =gEnemyParty
- mov r9, r0
-_08036110:
- movs r0, 0x64
- adds r5, r6, 0
- muls r5, r0
- mov r2, r9
- adds r4, r5, r2
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080361C2
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080361C2
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080361C2
- ldr r1, _080361E4 @ =gUnknown_02024A6A
- ldr r0, _080361DC @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080361C2
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r2, r0, 24
- movs r4, 0
- mov r8, r5
- ldr r1, _080361D8 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r5, r0, r1
- adds r7, r5, 0
- adds r7, 0x20
-_0803617C:
- adds r1, r4, 0
- adds r1, 0xD
- mov r0, r8
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080361BC
- ldrh r1, [r5]
- ldrb r2, [r7]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _080361BC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080361BC
- b _08036070
-_080361BC:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0803617C
-_080361C2:
- adds r6, 0x1
- cmp r6, 0x5
- ble _08036110
-_080361C8:
- movs r0, 0
-_080361CA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080361D8: .4byte gBattleMons
-_080361DC: .4byte gUnknown_02024A60
-_080361E0: .4byte gEnemyParty
-_080361E4: .4byte gUnknown_02024A6A
- thumb_func_end sub_8036054
-
- thumb_func_start sub_80361E8
-sub_80361E8: @ 80361E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0x1
- bl ai_has_super_effective_move_on_field
- lsls r0, 24
- cmp r0, 0
- beq _08036214
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08036214
- b _08036400
-_08036214:
- ldr r1, _0803627C @ =gUnknown_02024C3C
- ldr r5, _08036280 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r0, r3, 1
- adds r4, r0, r1
- ldrh r1, [r4]
- cmp r1, 0
- bne _08036226
- b _08036400
-_08036226:
- ldr r0, _08036284 @ =0x0000ffff
- cmp r1, r0
- bne _0803622E
- b _08036400
-_0803622E:
- ldr r2, _08036288 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08036242
- b _08036400
-_08036242:
- ldr r0, _0803628C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080362AE
- mov r8, r3
- mov r0, r8
- bl battle_get_per_side_status
- movs r4, 0x2
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _08036290 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _08036294 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08036298
- ldrb r7, [r5]
- b _080362B2
- .align 2, 0
-_0803627C: .4byte gUnknown_02024C3C
-_08036280: .4byte gUnknown_02024A60
-_08036284: .4byte 0x0000ffff
-_08036288: .4byte gBattleMoves
-_0803628C: .4byte gUnknown_020239F8
-_08036290: .4byte gUnknown_02024C0C
-_08036294: .4byte gBitTable
-_08036298:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- b _080362B2
-_080362AE:
- adds r7, r3, 0
- mov r8, r7
-_080362B2:
- ldr r3, _080362D4 @ =gBattleMoves
- ldr r1, _080362D8 @ =gUnknown_02024C3C
- ldr r2, _080362DC @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x2]
- adds r1, r2, 0
- cmp r0, 0xA
- bne _080362E0
- movs r0, 0x12
- b _080362F2
- .align 2, 0
-_080362D4: .4byte gBattleMoves
-_080362D8: .4byte gUnknown_02024C3C
-_080362DC: .4byte gUnknown_02024A60
-_080362E0:
- cmp r0, 0xB
- bne _080362EA
- movs r2, 0xB
- mov r10, r2
- b _080362F4
-_080362EA:
- cmp r0, 0xD
- beq _080362F0
- b _08036400
-_080362F0:
- movs r0, 0xA
-_080362F2:
- mov r10, r0
-_080362F4:
- ldr r2, _08036308 @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r10
- bne _0803633C
- b _08036400
- .align 2, 0
-_08036308: .4byte gBattleMons
-_0803630C:
- ldr r0, _08036330 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- ldr r1, _08036334 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _08036338 @ =0x000160c8
- adds r0, r2
- adds r0, r1
- strb r6, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _08036402
- .align 2, 0
-_08036330: .4byte gUnknown_02024A60
-_08036334: .4byte 0x02000000
-_08036338: .4byte 0x000160c8
-_0803633C:
- movs r6, 0
- ldr r0, _080363CC @ =gBaseStats
- mov r9, r0
-_08036342:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _080363D0 @ =gEnemyParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080363FA
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080363FA
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080363FA
- ldr r1, _080363D4 @ =gUnknown_02024A6A
- mov r2, r8
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080363FA
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080363FA
- ldr r1, _080363D8 @ =0x02000000
- ldr r0, _080363DC @ =0x00016068
- add r0, r8
- adds r0, r1
- ldrb r0, [r0]
- cmp r6, r0
- beq _080363FA
- ldr r2, _080363DC @ =0x00016068
- adds r0, r7, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r6, r0
- beq _080363FA
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _080363E0
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x17]
- b _080363EA
- .align 2, 0
-_080363CC: .4byte gBaseStats
-_080363D0: .4byte gEnemyParty
-_080363D4: .4byte gUnknown_02024A6A
-_080363D8: .4byte 0x02000000
-_080363DC: .4byte 0x00016068
-_080363E0:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x16]
-_080363EA:
- cmp r10, r0
- bne _080363FA
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0803630C
-_080363FA:
- adds r6, 0x1
- cmp r6, 0x5
- ble _08036342
-_08036400:
- movs r0, 0
-_08036402:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80361E8
-
- thumb_func_start ai_switchout_natural_cure
-ai_switchout_natural_cure: @ 8036410
- push {r4,r5,lr}
- ldr r3, _08036468 @ =gBattleMons
- ldr r5, _0803646C @ =gUnknown_02024A60
- ldrb r4, [r5]
- movs r0, 0x58
- adds r2, r4, 0
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080364D8
- adds r1, r2, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1E
- bne _080364D8
- ldrh r0, [r1, 0x2C]
- ldrh r1, [r1, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bcc _080364D8
- ldr r1, _08036470 @ =gUnknown_02024C3C
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- beq _08036456
- ldr r0, _08036474 @ =0x0000ffff
- cmp r1, r0
- bne _08036478
-_08036456:
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08036478
- ldrb r0, [r5]
- b _080364E0
- .align 2, 0
-_08036468: .4byte gBattleMons
-_0803646C: .4byte gUnknown_02024A60
-_08036470: .4byte gUnknown_02024C3C
-_08036474: .4byte 0x0000ffff
-_08036478:
- ldr r2, _080364A4 @ =gBattleMoves
- ldr r1, _080364A8 @ =gUnknown_02024C3C
- ldr r4, _080364AC @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080364B0
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080364B0
- ldrb r0, [r4]
- b _080364E0
- .align 2, 0
-_080364A4: .4byte gBattleMoves
-_080364A8: .4byte gUnknown_02024C3C
-_080364AC: .4byte gUnknown_02024A60
-_080364B0:
- movs r0, 0x8
- movs r1, 0x1
- bl sub_80366A4
- lsls r0, 24
- cmp r0, 0
- bne _080364FE
- movs r0, 0x4
- movs r1, 0x1
- bl sub_80366A4
- lsls r0, 24
- cmp r0, 0
- bne _080364FE
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _080364DC
-_080364D8:
- movs r0, 0
- b _08036500
-_080364DC:
- ldr r0, _08036508 @ =gUnknown_02024A60
- ldrb r0, [r0]
-_080364E0:
- bl battle_get_per_side_status
- ldr r1, _0803650C @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _08036510 @ =0x000160c8
- adds r0, r2
- adds r0, r1
- movs r1, 0x6
- strb r1, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_080364FE:
- movs r0, 0x1
-_08036500:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08036508: .4byte gUnknown_02024A60
-_0803650C: .4byte 0x02000000
-_08036510: .4byte 0x000160c8
- thumb_func_end ai_switchout_natural_cure
-
- thumb_func_start ai_has_super_effective_move_on_field
-ai_has_super_effective_move_on_field: @ 8036514
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080365AC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _080365B0 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803659C
- movs r4, 0
- ldr r6, _080365B4 @ =gBattleMons
- movs r7, 0x58
- adds r0, r3, 0
- muls r0, r7
- adds r5, r0, r6
- movs r0, 0x20
- adds r0, r5
- mov r9, r0
-_08036550:
- lsls r1, r4, 1
- ldr r0, _080365B8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- muls r0, r7
- adds r1, r0
- adds r0, r6, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08036596
- ldrh r1, [r5]
- mov r3, r9
- ldrb r2, [r3]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _08036596
- mov r0, r8
- cmp r0, 0
- bne _080365C0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080365C0
-_08036596:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08036550
-_0803659C:
- ldr r0, _080365BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080365C4
- b _0803663E
- .align 2, 0
-_080365AC: .4byte gUnknown_02024C0C
-_080365B0: .4byte gBitTable
-_080365B4: .4byte gBattleMons
-_080365B8: .4byte gUnknown_02024A60
-_080365BC: .4byte gUnknown_020239F8
-_080365C0:
- movs r0, 0x1
- b _08036640
-_080365C4:
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0803664C @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08036650 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803663E
- movs r4, 0
- ldr r6, _08036654 @ =gBattleMons
- movs r7, 0x58
- adds r0, r3, 0
- muls r0, r7
- adds r5, r0, r6
- movs r3, 0x20
- adds r3, r5
- mov r9, r3
-_080365F2:
- lsls r1, r4, 1
- ldr r0, _08036658 @ =gUnknown_02024A60
- ldrb r0, [r0]
- muls r0, r7
- adds r1, r0
- adds r0, r6, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08036638
- ldrh r1, [r5]
- mov r3, r9
- ldrb r2, [r3]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _08036638
- mov r0, r8
- cmp r0, 0
- bne _080365C0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080365C0
-_08036638:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080365F2
-_0803663E:
- movs r0, 0
-_08036640:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803664C: .4byte gUnknown_02024C0C
-_08036650: .4byte gBitTable
-_08036654: .4byte gBattleMons
-_08036658: .4byte gUnknown_02024A60
- thumb_func_end ai_has_super_effective_move_on_field
-
- thumb_func_start ai_is_too_invested_in_stat_buffs
-ai_is_too_invested_in_stat_buffs: @ 803665C
- push {r4,lr}
- movs r4, 0
- ldr r1, _0803669C @ =gBattleMons
- ldr r0, _080366A0 @ =gUnknown_02024A60
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x18
- adds r2, r0, r1
- movs r3, 0x7
-_08036670:
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0x6
- ble _08036686
- subs r1, 0x6
- lsls r0, r4, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
-_08036686:
- adds r2, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _08036670
- movs r0, 0
- cmp r4, 0x3
- bls _08036696
- movs r0, 0x1
-_08036696:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803669C: .4byte gBattleMons
-_080366A0: .4byte gUnknown_02024A60
- thumb_func_end ai_is_too_invested_in_stat_buffs
-
- thumb_func_start sub_80366A4
-sub_80366A4: @ 80366A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- ldr r1, _08036730 @ =gUnknown_02024C3C
- ldr r5, _08036734 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r0, r3, 1
- adds r4, r0, r1
- ldrh r1, [r4]
- cmp r1, 0
- bne _080366CE
- b _080368D8
-_080366CE:
- ldr r0, _08036738 @ =0x0000ffff
- cmp r1, r0
- bne _080366D6
- b _080368D8
-_080366D6:
- ldr r0, _0803673C @ =gUnknown_02024C5C
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080366E2
- b _080368D8
-_080366E2:
- ldr r2, _08036740 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080366F6
- b _080368D8
-_080366F6:
- ldr r0, _08036744 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08036798
- mov r9, r3
- mov r0, r9
- bl battle_get_per_side_status
- movs r4, 0x2
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _08036748 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _0803674C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08036750
- ldrb r5, [r5]
- mov r10, r5
- b _0803679C
- .align 2, 0
-_08036730: .4byte gUnknown_02024C3C
-_08036734: .4byte gUnknown_02024A60
-_08036738: .4byte 0x0000ffff
-_0803673C: .4byte gUnknown_02024C5C
-_08036740: .4byte gBattleMoves
-_08036744: .4byte gUnknown_020239F8
-_08036748: .4byte gUnknown_02024C0C
-_0803674C: .4byte gBitTable
-_08036750:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- b _0803679C
-_08036768:
- ldr r0, _0803678C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- ldr r1, _08036790 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _08036794 @ =0x000160c8
- adds r0, r2
- adds r0, r1
- strb r6, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _080368DA
- .align 2, 0
-_0803678C: .4byte gUnknown_02024A60
-_08036790: .4byte 0x02000000
-_08036794: .4byte 0x000160c8
-_08036798:
- mov r9, r3
- mov r10, r9
-_0803679C:
- movs r6, 0
-_0803679E:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _08036830 @ =gEnemyParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080367B6
- b _080368D0
-_080367B6:
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- bne _080367C4
- b _080368D0
-_080367C4:
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080368D0
- ldr r1, _08036834 @ =gUnknown_02024A6A
- mov r2, r9
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080368D0
- mov r2, r10
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080368D0
- ldr r1, _08036838 @ =0x02000000
- ldr r0, _0803683C @ =0x00016068
- add r0, r9
- adds r0, r1
- ldrb r0, [r0]
- cmp r6, r0
- beq _080368D0
- ldr r0, _0803683C @ =0x00016068
- add r0, r10
- adds r0, r1
- ldrb r0, [r0]
- cmp r6, r0
- beq _080368D0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _08036844
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _08036840 @ =gBaseStats
- adds r0, r1
- ldrb r2, [r0, 0x17]
- b _08036850
- .align 2, 0
-_08036830: .4byte gEnemyParty
-_08036834: .4byte gUnknown_02024A6A
-_08036838: .4byte 0x02000000
-_0803683C: .4byte 0x00016068
-_08036840: .4byte gBaseStats
-_08036844:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r2, _080368EC @ =gBaseStats
- adds r0, r2
- ldrb r2, [r0, 0x16]
-_08036850:
- ldr r1, _080368F0 @ =gUnknown_02024C3C
- ldr r5, _080368F4 @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- adds r1, r4, 0
- bl ai_rate_move
- ldr r1, [sp]
- ands r1, r0
- cmp r1, 0
- beq _080368D0
- ldr r1, _080368F8 @ =gUnknown_02024C5C
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- mov r9, r0
- movs r4, 0
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- mov r8, r1
- ldr r1, _080368FC @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r5, r0, r1
- adds r7, r5, 0
- adds r7, 0x20
-_0803688E:
- ldr r0, _08036900 @ =gEnemyParty
- adds r1, r4, 0
- adds r1, 0xD
- add r0, r8
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080368CA
- ldrh r1, [r5]
- ldrb r2, [r7]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _080368CA
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x4]
- bl __modsi3
- cmp r0, 0
- bne _080368CA
- b _08036768
-_080368CA:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0803688E
-_080368D0:
- adds r6, 0x1
- cmp r6, 0x5
- bgt _080368D8
- b _0803679E
-_080368D8:
- movs r0, 0
-_080368DA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080368EC: .4byte gBaseStats
-_080368F0: .4byte gUnknown_02024C3C
-_080368F4: .4byte gUnknown_02024A60
-_080368F8: .4byte gUnknown_02024C5C
-_080368FC: .4byte gBattleMons
-_08036900: .4byte gEnemyParty
- thumb_func_end sub_80366A4
-
- thumb_func_start sub_8036904
-sub_8036904: @ 8036904
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r6, _080369E0 @ =gBattleMons
- ldr r4, _080369E4 @ =gUnknown_02024A60
- ldrb r2, [r4]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r6, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080369E8 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- beq _0803692A
- b _08036AFC
-_0803692A:
- ldr r0, _080369EC @ =gUnknown_02024C98
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- lsls r0, 3
- ands r1, r0
- cmp r1, 0
- beq _0803693E
- b _08036AFC
-_0803693E:
- str r1, [sp]
- movs r0, 0xC
- adds r1, r2, 0
- movs r2, 0x17
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08036956
- b _08036AFC
-_08036956:
- ldrb r1, [r4]
- str r0, [sp]
- movs r0, 0xC
- movs r2, 0x47
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0803696E
- b _08036AFC
-_0803696E:
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x2A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080369A0
- ldrb r0, [r4]
- muls r0, r5
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08036994
- b _08036AFC
-_08036994:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _080369A0
- b _08036AFC
-_080369A0:
- movs r0, 0
- mov r8, r0
- ldr r0, _080369F0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08036A12
- ldr r4, _080369E4 @ =gUnknown_02024A60
- ldrb r7, [r4]
- adds r0, r7, 0
- bl battle_get_per_side_status
- movs r5, 0x2
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _080369F4 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _080369F8 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080369FC
- ldrb r6, [r4]
- b _08036A18
- .align 2, 0
-_080369E0: .4byte gBattleMons
-_080369E4: .4byte gUnknown_02024A60
-_080369E8: .4byte 0x0400e000
-_080369EC: .4byte gUnknown_02024C98
-_080369F0: .4byte gUnknown_020239F8
-_080369F4: .4byte gUnknown_02024C0C
-_080369F8: .4byte gBitTable
-_080369FC:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- b _08036A18
-_08036A12:
- ldr r0, _08036AE8 @ =gUnknown_02024A60
- ldrb r6, [r0]
- adds r7, r6, 0
-_08036A18:
- movs r5, 0
-_08036A1A:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08036AEC @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08036A7E
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08036A7E
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08036A7E
- ldr r1, _08036AF0 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _08036A7E
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _08036A7E
- ldr r1, _08036AF4 @ =0x02000000
- ldr r2, _08036AF8 @ =0x00016068
- adds r0, r7, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- beq _08036A7E
- adds r0, r6, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- beq _08036A7E
- movs r0, 0x1
- add r8, r0
-_08036A7E:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08036A1A
- mov r2, r8
- cmp r2, 0
- beq _08036AFC
- bl ai_switch_perish_song
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- bl sub_8036054
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- bl sub_80361E8
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- bl ai_switchout_natural_cure
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- movs r0, 0
- bl ai_has_super_effective_move_on_field
- lsls r0, 24
- cmp r0, 0
- bne _08036AFC
- bl ai_is_too_invested_in_stat_buffs
- lsls r0, 24
- cmp r0, 0
- bne _08036AFC
- movs r0, 0x8
- movs r1, 0x2
- bl sub_80366A4
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- movs r0, 0x4
- movs r1, 0x3
- bl sub_80366A4
- lsls r0, 24
- cmp r0, 0
- beq _08036AFC
-_08036AE4:
- movs r0, 0x1
- b _08036AFE
- .align 2, 0
-_08036AE8: .4byte gUnknown_02024A60
-_08036AEC: .4byte gEnemyParty
-_08036AF0: .4byte gUnknown_02024A6A
-_08036AF4: .4byte 0x02000000
-_08036AF8: .4byte 0x00016068
-_08036AFC:
- movs r0, 0
-_08036AFE:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8036904
-
- thumb_func_start sub_8036B0C
-sub_8036B0C: @ 8036B0C
- push {r4-r6,lr}
- ldr r5, _08036B68 @ =gUnknown_020239F8
- ldrh r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08036B1C
- b _08036C2E
-_08036B1C:
- bl sub_8036904
- lsls r0, 24
- cmp r0, 0
- bne _08036B28
- b _08036C24
-_08036B28:
- ldr r4, _08036B6C @ =0x02000000
- ldr r0, _08036B70 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _08036B74 @ =0x000160c8
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _08036BEA
- bl sub_8036CD4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bne _08036BD4
- ldrh r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08036B78
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- b _08036B8C
- .align 2, 0
-_08036B68: .4byte gUnknown_020239F8
-_08036B6C: .4byte 0x02000000
-_08036B70: .4byte gUnknown_02024A60
-_08036B74: .4byte 0x000160c8
-_08036B78:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
-_08036B8C:
- movs r4, 0
-_08036B8E:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08036C0C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08036BCE
- ldr r1, _08036C10 @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _08036BCE
- lsls r0, r5, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _08036BCE
- ldr r1, _08036C14 @ =0x02000000
- ldr r2, _08036C18 @ =0x00016068
- adds r0, r6, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r4, r0
- beq _08036BCE
- adds r0, r5, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r4, r0
- bne _08036BD4
-_08036BCE:
- adds r4, 0x1
- cmp r4, 0x5
- ble _08036B8E
-_08036BD4:
- ldr r0, _08036C1C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- ldr r1, _08036C14 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r3, _08036C20 @ =0x000160c8
- adds r0, r3
- adds r0, r1
- strb r4, [r0]
-_08036BEA:
- ldr r4, _08036C1C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r2, _08036C14 @ =0x02000000
- ldrb r1, [r4]
- ldr r3, _08036C18 @ =0x00016068
- adds r1, r3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 25
- adds r3, 0x60
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- b _08036C40
- .align 2, 0
-_08036C0C: .4byte gEnemyParty
-_08036C10: .4byte gUnknown_02024A6A
-_08036C14: .4byte 0x02000000
-_08036C18: .4byte 0x00016068
-_08036C1C: .4byte gUnknown_02024A60
-_08036C20: .4byte 0x000160c8
-_08036C24:
- bl sub_803708C
- lsls r0, 24
- cmp r0, 0
- bne _08036C40
-_08036C2E:
- ldr r0, _08036C48 @ =gUnknown_02024A60
- ldrb r0, [r0]
- movs r2, 0x1
- eors r2, r0
- lsls r2, 8
- movs r0, 0x1
- movs r1, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_08036C40:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08036C48: .4byte gUnknown_02024A60
- thumb_func_end sub_8036B0C
-
- thumb_func_start sub_8036C4C
-sub_8036C4C: @ 8036C4C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r6, r3, 0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r7, 0
- ldr r0, _08036CD0 @ =gTypeEffectiveness
- mov r10, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08036CBE
- mov r5, r10
-_08036C7A:
- ldrb r0, [r5]
- cmp r0, 0xFE
- beq _08036CB0
- ldr r1, [sp]
- cmp r0, r1
- bne _08036CB0
- ldrb r4, [r5, 0x1]
- cmp r4, r9
- bne _08036C9A
- ldrb r1, [r6]
- ldrb r0, [r5, 0x2]
- muls r0, r1
- movs r1, 0xA
- bl __divsi3
- strb r0, [r6]
-_08036C9A:
- cmp r4, r8
- bne _08036CB0
- cmp r9, r8
- beq _08036CB0
- ldrb r1, [r6]
- ldrb r0, [r5, 0x2]
- muls r0, r1
- movs r1, 0xA
- bl __divsi3
- strb r0, [r6]
-_08036CB0:
- adds r5, 0x3
- adds r7, 0x3
- mov r1, r10
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08036C7A
-_08036CBE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08036CD0: .4byte gTypeEffectiveness
- thumb_func_end sub_8036C4C
-
- thumb_func_start sub_8036CD4
-sub_8036CD4: @ 8036CD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _08036D1C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08036D78
- ldr r4, _08036D20 @ =gUnknown_02024A60
- ldrb r0, [r4]
- str r0, [sp, 0xC]
- bl battle_get_per_side_status
- movs r5, 0x2
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _08036D24 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _08036D28 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08036D2C
- ldrb r4, [r4]
- str r4, [sp, 0x10]
- b _08036D42
- .align 2, 0
-_08036D1C: .4byte gUnknown_020239F8
-_08036D20: .4byte gUnknown_02024A60
-_08036D24: .4byte gUnknown_02024C0C
-_08036D28: .4byte gBitTable
-_08036D2C:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
-_08036D42:
- bl Random
- movs r3, 0x2
- ands r0, r3
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _08036D70 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08036D74 @ =gBitTable
- mov r4, r10
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08036D8C
- eors r4, r3
- lsls r0, r4, 24
- lsrs r0, 24
- mov r10, r0
- b _08036D8C
- .align 2, 0
-_08036D70: .4byte gUnknown_02024C0C
-_08036D74: .4byte gBitTable
-_08036D78:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _08036E5C @ =gUnknown_02024A60
- ldrb r0, [r0]
- str r0, [sp, 0x10]
- str r0, [sp, 0xC]
-_08036D8C:
- movs r0, 0
- mov r9, r0
- mov r1, sp
- str r1, [sp, 0x14]
-_08036D94:
- movs r2, 0
- str r2, [sp, 0x4]
- movs r3, 0x6
- str r3, [sp, 0x8]
- movs r7, 0
- ldr r4, _08036E60 @ =gBitTable
- mov r8, r4
-_08036DA2:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08036E64 @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _08036E7C
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08036E7C
- mov r1, r8
- ldr r0, [r1]
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- bne _08036E7C
- ldr r1, _08036E68 @ =gUnknown_02024A6A
- ldr r3, [sp, 0xC]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08036E7C
- ldr r4, [sp, 0x10]
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08036E7C
- ldr r1, _08036E6C @ =0x02000000
- ldr r2, _08036E70 @ =0x00016068
- adds r0, r3, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r7, r0
- beq _08036E7C
- adds r0, r4, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r7, r0
- beq _08036E7C
- ldr r1, _08036E74 @ =gBaseStats
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x6]
- ldrb r6, [r0, 0x7]
- movs r0, 0xA
- ldr r3, [sp, 0x14]
- strb r0, [r3]
- movs r0, 0x58
- mov r4, r10
- muls r4, r0
- ldr r0, _08036E78 @ =gBattleMons
- adds r4, r0
- adds r0, r4, 0
- adds r0, 0x21
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, sp
- bl sub_8036C4C
- adds r4, 0x22
- ldrb r0, [r4]
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, sp
- bl sub_8036C4C
- ldr r2, [sp, 0x4]
- ldr r1, [sp, 0x14]
- ldrb r1, [r1]
- cmp r2, r1
- bcs _08036E8A
- ldr r2, [sp, 0x14]
- ldrb r2, [r2]
- str r2, [sp, 0x4]
- lsls r0, r7, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- b _08036E8A
- .align 2, 0
-_08036E5C: .4byte gUnknown_02024A60
-_08036E60: .4byte gBitTable
-_08036E64: .4byte gEnemyParty
-_08036E68: .4byte gUnknown_02024A6A
-_08036E6C: .4byte 0x02000000
-_08036E70: .4byte 0x00016068
-_08036E74: .4byte gBaseStats
-_08036E78: .4byte gBattleMons
-_08036E7C:
- mov r3, r8
- ldr r0, [r3]
- mov r4, r9
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r0, 24
- mov r9, r0
-_08036E8A:
- movs r0, 0x4
- add r8, r0
- adds r7, 0x1
- cmp r7, 0x5
- ble _08036DA2
- ldr r1, [sp, 0x8]
- cmp r1, 0x6
- beq _08036EF8
- movs r7, 0
- movs r0, 0x64
- adds r5, r1, 0
- muls r5, r0
- ldr r6, _08036EEC @ =gEnemyParty
-_08036EA4:
- adds r1, r7, 0
- adds r1, 0xD
- adds r0, r5, r6
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08036ECA
- ldr r0, _08036EF0 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r0, r4, 0
- mov r2, r10
- bl move_effectiveness_something
- movs r1, 0x2
- ands r1, r0
- cmp r1, 0
- bne _08036ED0
-_08036ECA:
- adds r7, 0x1
- cmp r7, 0x3
- ble _08036EA4
-_08036ED0:
- cmp r7, 0x4
- beq _08036ED6
- b _08036FEE
-_08036ED6:
- ldr r2, [sp, 0x8]
- lsls r0, r2, 2
- ldr r3, _08036EF4 @ =gBitTable
- adds r0, r3
- ldr r0, [r0]
- mov r4, r9
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r0, 24
- b _08036EFA
- .align 2, 0
-_08036EEC: .4byte gEnemyParty
-_08036EF0: .4byte gUnknown_02024A60
-_08036EF4: .4byte gBitTable
-_08036EF8:
- movs r0, 0x3F
-_08036EFA:
- mov r9, r0
- mov r1, r9
- cmp r1, 0x3F
- beq _08036F04
- b _08036D94
-_08036F04:
- ldr r0, _08037000 @ =gUnknown_02024DEC
- movs r2, 0
- strh r2, [r0]
- ldr r0, _08037004 @ =0x02000000
- ldr r3, _08037008 @ =0x0001601c
- adds r1, r0, r3
- strb r2, [r1]
- ldr r4, _0803700C @ =0x0001601f
- adds r0, r4
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08037010 @ =gUnknown_02024C68
- strb r2, [r0]
- ldr r0, _08037014 @ =gCritMultiplier
- strb r1, [r0]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0x6
- str r1, [sp, 0x8]
- movs r7, 0
-_08036F2C:
- movs r0, 0x64
- adds r6, r7, 0
- muls r6, r0
- ldr r2, _08037018 @ =gEnemyParty
- adds r4, r6, r2
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- adds r3, r7, 0x1
- str r3, [sp, 0x18]
- cmp r0, 0
- beq _08036FE8
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08036FE8
- ldr r1, _0803701C @ =gUnknown_02024A6A
- ldr r4, [sp, 0xC]
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08036FE8
- ldr r2, [sp, 0x10]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08036FE8
- ldr r1, _08037004 @ =0x02000000
- ldr r3, _08037020 @ =0x00016068
- adds r0, r4, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r7, r0
- beq _08036FE8
- adds r0, r2, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r7, r0
- beq _08036FE8
- movs r5, 0
- mov r9, r6
- ldr r4, _08037024 @ =gUnknown_02024BEC
- mov r8, r4
- ldr r6, _08037028 @ =gUnknown_02024A60
-_08036F90:
- adds r1, r5, 0
- adds r1, 0xD
- ldr r0, _08037018 @ =gEnemyParty
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0
- mov r1, r8
- str r0, [r1]
- cmp r4, 0
- beq _08036FCC
- ldr r0, _0803702C @ =gBattleMoves
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- beq _08036FCC
- ldrb r0, [r6]
- mov r1, r10
- bl sub_801CAF8
- ldrb r1, [r6]
- adds r0, r4, 0
- mov r2, r10
- bl move_effectiveness_something
-_08036FCC:
- mov r2, r8
- ldr r0, [r2]
- ldr r3, [sp, 0x4]
- cmp r3, r0
- bge _08036FE2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- lsls r0, r7, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
-_08036FE2:
- adds r5, 0x1
- cmp r5, 0x3
- ble _08036F90
-_08036FE8:
- ldr r7, [sp, 0x18]
- cmp r7, 0x5
- ble _08036F2C
-_08036FEE:
- ldr r0, [sp, 0x8]
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08037000: .4byte gUnknown_02024DEC
-_08037004: .4byte 0x02000000
-_08037008: .4byte 0x0001601c
-_0803700C: .4byte 0x0001601f
-_08037010: .4byte gUnknown_02024C68
-_08037014: .4byte gCritMultiplier
-_08037018: .4byte gEnemyParty
-_0803701C: .4byte gUnknown_02024A6A
-_08037020: .4byte 0x00016068
-_08037024: .4byte gUnknown_02024BEC
-_08037028: .4byte gUnknown_02024A60
-_0803702C: .4byte gBattleMoves
- thumb_func_end sub_8036CD4
-
- thumb_func_start ai_identify_item_effect
-ai_identify_item_effect: @ 8037030
- push {r4,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bne _08037040
- movs r0, 0x1
- b _08037086
-_08037040:
- ldrb r1, [r2, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803704E
- movs r0, 0x2
- b _08037086
-_0803704E:
- ldrb r4, [r2, 0x3]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r4
- cmp r0, 0
- beq _0803705E
- movs r0, 0x3
- b _08037086
-_0803705E:
- ldrb r1, [r2]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08037074
- ldrb r0, [r2, 0x1]
- cmp r0, 0
- bne _08037074
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- beq _08037078
-_08037074:
- movs r0, 0x4
- b _08037086
-_08037078:
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- bne _08037084
- movs r0, 0x6
- b _08037086
-_08037084:
- movs r0, 0x5
-_08037086:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ai_identify_item_effect
-
- thumb_func_start sub_803708C
-sub_803708C: @ 803708C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- str r0, [sp]
- mov r8, r0
- mov r9, r0
-_080370A0:
- movs r0, 0x64
- mov r1, r9
- muls r1, r0
- ldr r0, _08037170 @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080370DC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080370DC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080370DC
- ldr r0, [sp]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_080370DC:
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x5
- ble _080370A0
- movs r3, 0
- mov r9, r3
-_080370EA:
- ldr r4, _08037174 @ =0x02016a00
- mov r0, r9
- cmp r0, 0
- beq _08037106
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r0, [r0]
- mov r1, r9
- subs r0, r1
- adds r0, 0x1
- ldr r2, [sp]
- cmp r2, r0
- ble _08037106
- b _080374EC
-_08037106:
- mov r3, r9
- lsls r1, r3, 1
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldrh r0, [r0]
- mov r10, r0
- str r1, [sp, 0x4]
- cmp r0, 0
- bne _0803711C
- b _080374EC
-_0803711C:
- ldr r1, _08037178 @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- cmp r1, 0
- bne _0803712C
- b _080374EC
-_0803712C:
- adds r5, r1, 0
- mov r0, r10
- cmp r0, 0xAF
- bne _08037136
- ldr r5, _0803717C @ =gSaveBlock1 + 0x3676
-_08037136:
- mov r1, r10
- lsls r0, r1, 24
- lsrs r0, 24
- adds r1, r5, 0
- bl ai_identify_item_effect
- ldr r2, _08037180 @ =0xfffe9600
- adds r4, r2
- ldr r3, _08037184 @ =gUnknown_02024A60
- ldrb r1, [r3]
- lsrs r1, 1
- ldr r2, _08037188 @ =0x000160d8
- adds r1, r2
- adds r1, r4
- strb r0, [r1]
- ldrb r0, [r3]
- lsrs r0, 1
- adds r0, r2
- adds r0, r4
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x5
- bls _08037166
- b _080374A8
-_08037166:
- lsls r0, 2
- ldr r1, _0803718C @ =_08037190
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08037170: .4byte gEnemyParty
-_08037174: .4byte 0x02016a00
-_08037178: .4byte gItemEffectTable
-_0803717C: .4byte gSaveBlock1 + 0x3676
-_08037180: .4byte 0xfffe9600
-_08037184: .4byte gUnknown_02024A60
-_08037188: .4byte 0x000160d8
-_0803718C: .4byte _08037190
- .align 2, 0
-_08037190:
- .4byte _080371A8
- .4byte _080371D0
- .4byte _0803721C
- .4byte _08037388
- .4byte _08037468
- .4byte _080374F8
-_080371A8:
- ldr r2, _080371C8 @ =gBattleMons
- ldr r0, _080371CC @ =gUnknown_02024A60
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x2C]
- ldrh r0, [r0, 0x28]
- lsrs r1, 2
- cmp r0, r1
- bcc _080371C0
- b _080374A8
-_080371C0:
- cmp r0, 0
- bne _080371C6
- b _080374A8
-_080371C6:
- b _08037450
- .align 2, 0
-_080371C8: .4byte gBattleMons
-_080371CC: .4byte gUnknown_02024A60
-_080371D0:
- mov r0, r10
- movs r1, 0x4
- movs r2, 0x4
- bl sub_803F1DC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080371E4
- b _080374A8
-_080371E4:
- ldr r2, _08037214 @ =gBattleMons
- ldr r0, _08037218 @ =gUnknown_02024A60
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- ldrh r2, [r1, 0x28]
- cmp r2, 0
- bne _080371F8
- b _080374A8
-_080371F8:
- ldrh r3, [r1, 0x2C]
- lsrs r0, r3, 2
- cmp r2, r0
- bcs _08037202
- b _08037496
-_08037202:
- adds r0, r2, 0
- subs r0, r3, r0
- adds r1, r5, r4
- ldrb r1, [r1]
- cmp r0, r1
- bgt _08037210
- b _080374A8
-_08037210:
- b _08037496
- .align 2, 0
-_08037214: .4byte gBattleMons
-_08037218: .4byte gUnknown_02024A60
-_0803721C:
- ldr r2, _08037378 @ =0x02000000
- ldr r3, _0803737C @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsrs r0, 1
- ldr r6, _08037380 @ =0x000160da
- adds r0, r6
- adds r0, r2
- movs r1, 0
- mov r12, r1
- movs r1, 0
- strb r1, [r0]
- ldrb r1, [r5, 0x3]
- movs r7, 0x20
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08037264
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08037264
- lsrs r1, r4, 1
- adds r1, r6
- adds r1, r2
- ldrb r0, [r1]
- orrs r0, r7
- strb r0, [r1]
- movs r0, 0x1
- mov r8, r0
-_08037264:
- ldrb r1, [r5, 0x3]
- movs r6, 0x10
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080372A0
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0803728E
- movs r0, 0x80
- ands r1, r0
- cmp r1, 0
- beq _080372A0
-_0803728E:
- lsrs r1, r4, 1
- ldr r0, _08037380 @ =0x000160da
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- movs r1, 0x1
- mov r8, r1
-_080372A0:
- ldrb r1, [r5, 0x3]
- movs r6, 0x8
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080372D4
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080372D4
- lsrs r0, r4, 1
- ldr r1, _08037380 @ =0x000160da
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r0, 0x1
- mov r8, r0
-_080372D4:
- ldrb r1, [r5, 0x3]
- movs r6, 0x4
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08037308
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08037308
- lsrs r0, r4, 1
- ldr r1, _08037380 @ =0x000160da
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r0, 0x1
- mov r8, r0
-_08037308:
- ldrb r1, [r5, 0x3]
- movs r6, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803733C
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803733C
- lsrs r0, r4, 1
- ldr r1, _08037380 @ =0x000160da
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r0, 0x1
- mov r8, r0
-_0803733C:
- ldrb r1, [r5, 0x3]
- movs r4, 0x1
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0803734A
- b _080374A8
-_0803734A:
- ldr r1, _08037384 @ =gBattleMons
- ldrb r3, [r3]
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08037362
- b _080374A8
-_08037362:
- lsrs r0, r3, 1
- ldr r1, _08037380 @ =0x000160da
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r4
- strb r1, [r0]
- movs r2, 0x1
- mov r8, r2
- b _080374AE
- .align 2, 0
-_08037378: .4byte 0x02000000
-_0803737C: .4byte gUnknown_02024A60
-_08037380: .4byte 0x000160da
-_08037384: .4byte gBattleMons
-_08037388:
- ldr r6, _08037458 @ =0x02000000
- ldr r4, _0803745C @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsrs r0, 1
- ldr r3, _08037460 @ =0x000160da
- adds r0, r3
- adds r0, r6
- movs r1, 0
- mov r12, r1
- movs r1, 0
- strb r1, [r0]
- ldr r1, _08037464 @ =gUnknown_02024CA8
- ldrb r2, [r4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _080374A8
- ldrb r1, [r5]
- movs r7, 0xF
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080373CA
- lsrs r0, r2, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
-_080373CA:
- ldrb r1, [r5, 0x1]
- movs r2, 0xF0
- mov r8, r2
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _080373E8
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_080373E8:
- ldrb r1, [r5, 0x1]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08037402
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08037402:
- ldrb r1, [r5, 0x2]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0803741C
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0803741C:
- ldrb r1, [r5, 0x2]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _08037436
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
-_08037436:
- ldrb r1, [r5]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _08037450
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08037450:
- movs r3, 0x1
- mov r8, r3
- b _080374AE
- .align 2, 0
-_08037458: .4byte 0x02000000
-_0803745C: .4byte gUnknown_02024A60
-_08037460: .4byte 0x000160da
-_08037464: .4byte gUnknown_02024CA8
-_08037468:
- ldr r4, _0803749C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080374A0 @ =gUnknown_02024CA8
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _080374A8
- ldr r0, _080374A4 @ =gUnknown_02024C80
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _080374A8
-_08037496:
- movs r0, 0x1
- mov r8, r0
- b _080374AE
- .align 2, 0
-_0803749C: .4byte gUnknown_02024A60
-_080374A0: .4byte gUnknown_02024CA8
-_080374A4: .4byte gUnknown_02024C80
-_080374A8:
- mov r1, r8
- cmp r1, 0
- beq _080374EC
-_080374AE:
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- ldr r1, _080374DC @ =0x02000000
- ldr r0, _080374E0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsrs r0, 1
- lsls r0, 1
- ldr r2, _080374E4 @ =0x000160d4
- adds r0, r2
- adds r0, r1
- movs r2, 0
- mov r3, r10
- strb r3, [r0]
- ldr r0, _080374E8 @ =0x00016a24
- adds r1, r0
- ldr r3, [sp, 0x4]
- adds r1, r3, r1
- strh r2, [r1]
- mov r0, r8
- b _080374FA
- .align 2, 0
-_080374DC: .4byte 0x02000000
-_080374E0: .4byte gUnknown_02024A60
-_080374E4: .4byte 0x000160d4
-_080374E8: .4byte 0x00016a24
-_080374EC:
- movs r0, 0x1
- add r9, r0
- mov r1, r9
- cmp r1, 0x3
- bgt _080374F8
- b _080370EA
-_080374F8:
- movs r0, 0
-_080374FA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803708C
-
- thumb_func_start nullsub_47
-nullsub_47: @ 803750C
- bx lr
- thumb_func_end nullsub_47
-
- thumb_func_start sub_8037510
-sub_8037510: @ 8037510
- ldr r1, _08037520 @ =gUnknown_03004330
- ldr r0, _08037524 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037528 @ =sub_803752C
- str r1, [r0]
- bx lr
- .align 2, 0
-_08037520: .4byte gUnknown_03004330
-_08037524: .4byte gUnknown_02024A60
-_08037528: .4byte sub_803752C
- thumb_func_end sub_8037510
-
- thumb_func_start sub_803752C
-sub_803752C: @ 803752C
- push {lr}
- ldr r2, _08037560 @ =gUnknown_02024A64
- ldr r1, _08037564 @ =gBitTable
- ldr r0, _08037568 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08037578
- ldr r0, _0803756C @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _08037574
- ldr r0, _08037570 @ =gUnknown_081FB048
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _08037578
- .align 2, 0
-_08037560: .4byte gUnknown_02024A64
-_08037564: .4byte gBitTable
-_08037568: .4byte gUnknown_02024A60
-_0803756C: .4byte gUnknown_02023A60
-_08037570: .4byte gUnknown_081FB048
-_08037574:
- bl dp01_tbl4_exec_completed
-_08037578:
- pop {r0}
- bx r0
- thumb_func_end sub_803752C
-
- thumb_func_start sub_803757C
-sub_803757C: @ 803757C
- push {lr}
- ldr r2, _080375A4 @ =gSprites
- ldr r1, _080375A8 @ =gUnknown_02024BE0
- ldr r0, _080375AC @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080375B0 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080375A0
- bl dp01_tbl4_exec_completed
-_080375A0:
- pop {r0}
- bx r0
- .align 2, 0
-_080375A4: .4byte gSprites
-_080375A8: .4byte gUnknown_02024BE0
-_080375AC: .4byte gUnknown_02024A60
-_080375B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_803757C
-
- thumb_func_start sub_80375B4
-sub_80375B4: @ 80375B4
- push {r4-r6,lr}
- ldr r4, _0803762C @ =gSprites
- ldr r6, _08037630 @ =gUnknown_02024BE0
- ldr r5, _08037634 @ =gUnknown_02024A60
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, _08037638 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08037624
- adds r0, r2, r4
- ldrh r0, [r0, 0x6]
- bl sub_8031B74
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x38]
- ldr r2, _0803763C @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08037640 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- bl dp01_tbl4_exec_completed
-_08037624:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803762C: .4byte gSprites
-_08037630: .4byte gUnknown_02024BE0
-_08037634: .4byte gUnknown_02024A60
-_08037638: .4byte SpriteCallbackDummy
-_0803763C: .4byte 0x000003ff
-_08037640: .4byte 0xfffffc00
- thumb_func_end sub_80375B4
-
- thumb_func_start sub_8037644
-sub_8037644: @ 8037644
- push {lr}
- ldr r3, _08037678 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _0803767C @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08037674
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl dp01_tbl4_exec_completed
-_08037674:
- pop {r0}
- bx r0
- .align 2, 0
-_08037678: .4byte gUnknown_02024A60
-_0803767C: .4byte 0x02017810
- thumb_func_end sub_8037644
-
- thumb_func_start sub_8037680
-sub_8037680: @ 8037680
- push {r4-r7,lr}
- movs r6, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080376A4
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080376D8
- ldr r0, _080376C4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080376D8
-_080376A4:
- ldr r2, _080376C8 @ =gSprites
- ldr r1, _080376CC @ =gUnknown_03004340
- ldr r0, _080376D0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080376D4 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0803770E
- b _0803770C
- .align 2, 0
-_080376C4: .4byte gUnknown_020239F8
-_080376C8: .4byte gSprites
-_080376CC: .4byte gUnknown_03004340
-_080376D0: .4byte gUnknown_02024A60
-_080376D4: .4byte SpriteCallbackDummy
-_080376D8:
- ldr r2, _080377D8 @ =gSprites
- ldr r5, _080377DC @ =gUnknown_03004340
- ldr r0, _080377E0 @ =gUnknown_02024A60
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, _080377E4 @ =SpriteCallbackDummy
- cmp r4, r0
- bne _0803770E
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _0803770E
-_0803770C:
- movs r6, 0x1
-_0803770E:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _0803771A
- movs r6, 0
-_0803771A:
- cmp r6, 0
- bne _08037720
- b _08037822
-_08037720:
- ldr r7, _080377E0 @ =gUnknown_02024A60
- ldrb r0, [r7]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- bne _080377B4
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r5, _080377E8 @ =0x02017810
- adds r4, r0, r5
- ldrb r1, [r4, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08037822
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08037822
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _080377EC @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
-_080377B4:
- ldr r0, _080377F0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080377F8
- ldrb r0, [r7]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08037804
- ldr r0, _080377F4 @ =gMPlay_BGM
- bl m4aMPlayContinue
- b _08037804
- .align 2, 0
-_080377D8: .4byte gSprites
-_080377DC: .4byte gUnknown_03004340
-_080377E0: .4byte gUnknown_02024A60
-_080377E4: .4byte SpriteCallbackDummy
-_080377E8: .4byte 0x02017810
-_080377EC: .4byte 0x000027f9
-_080377F0: .4byte gUnknown_020239F8
-_080377F4: .4byte gMPlay_BGM
-_080377F8:
- ldr r0, _08037828 @ =gMPlay_BGM
- ldr r1, _0803782C @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08037804:
- ldr r2, _08037830 @ =gUnknown_02024A60
- ldrb r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037834 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _08037838 @ =gUnknown_03004330
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803783C @ =sub_8037644
- str r1, [r0]
-_08037822:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037828: .4byte gMPlay_BGM
-_0803782C: .4byte 0x0000ffff
-_08037830: .4byte gUnknown_02024A60
-_08037834: .4byte 0x02017810
-_08037838: .4byte gUnknown_03004330
-_0803783C: .4byte sub_8037644
- thumb_func_end sub_8037680
-
- thumb_func_start sub_8037840
-sub_8037840: @ 8037840
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r6, _08037A48 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r5, _08037A4C @ =0x02017810
- adds r0, r5
- ldrb r1, [r0]
- movs r4, 0x88
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _08037878
- ldr r0, _08037A50 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037A54 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08037878:
- ldrb r0, [r6]
- movs r7, 0x2
- adds r2, r7, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080378A6
- ldr r0, _08037A50 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037A54 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_080378A6:
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080378BE
- b _08037A3A
-_080378BE:
- adds r1, r2, 0
- eors r1, r7
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080378DA
- b _08037A3A
-_080378DA:
- ldr r0, _08037A58 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803791A
- adds r0, r2, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0803791A
- ldrb r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x9]
- adds r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0803790E
- b _08037A3A
-_0803790E:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strb r4, [r0, 0x9]
-_0803791A:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080379B2
- ldr r0, _08037A58 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080379B2
- ldr r1, _08037A5C @ =gUnknown_0300434C
- ldr r5, _08037A48 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037A60 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r0, _08037A64 @ =gUnknown_03004340
- mov r8, r0
- ldrb r0, [r5]
- adds r1, r4, 0
- eors r1, r0
- mov r2, r8
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r2, _08037A50 @ =gUnknown_02024A6A
- mov r10, r2
- lsls r1, 1
- add r1, r10
- ldrh r1, [r1]
- movs r2, 0x64
- mov r9, r2
- mov r2, r9
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _08037A54 @ =gEnemyParty
- adds r1, r6
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- eors r0, r4
- bl sub_804777C
- ldrb r0, [r5]
- eors r0, r4
- add r0, r8
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- eors r4, r0
- lsls r0, r4, 1
- add r0, r10
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
-_080379B2:
- ldr r1, _08037A5C @ =gUnknown_0300434C
- ldr r4, _08037A48 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037A60 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _08037A64 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _08037A50 @ =gUnknown_02024A6A
- mov r9, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
- movs r2, 0x64
- mov r8, r2
- mov r2, r8
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _08037A54 @ =gEnemyParty
- adds r1, r6
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r5, [r4]
- lsls r0, r5, 1
- add r0, r9
- ldrh r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_8032984
- ldr r2, _08037A68 @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08037A6C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037A70 @ =sub_8037680
- str r1, [r0]
-_08037A3A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037A48: .4byte gUnknown_02024A60
-_08037A4C: .4byte 0x02017810
-_08037A50: .4byte gUnknown_02024A6A
-_08037A54: .4byte gEnemyParty
-_08037A58: .4byte gUnknown_020239F8
-_08037A5C: .4byte gUnknown_0300434C
-_08037A60: .4byte gSprites
-_08037A64: .4byte gUnknown_03004340
-_08037A68: .4byte 0x02017840
-_08037A6C: .4byte gUnknown_03004330
-_08037A70: .4byte sub_8037680
- thumb_func_end sub_8037840
-
- thumb_func_start sub_8037A74
-sub_8037A74: @ 8037A74
- push {r4-r7,lr}
- ldr r2, _08037ACC @ =gSprites
- ldr r0, _08037AD0 @ =gUnknown_02024BE0
- ldr r7, _08037AD4 @ =gUnknown_02024A60
- ldrb r3, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r2, r0, 31
- cmp r2, 0x1
- bne _08037B18
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _08037B18
- lsls r4, r3, 1
- adds r0, r4, r3
- lsls r0, 2
- ldr r6, _08037AD8 @ =0x02017810
- adds r1, r0, r6
- ldrb r5, [r1]
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- bne _08037AE4
- ldr r0, _08037ADC @ =gUnknown_02024A6A
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037AE0 @ =gEnemyParty
- adds r1, r0
- adds r0, r3, 0
- bl sub_8141828
- b _08037B18
- .align 2, 0
-_08037ACC: .4byte gSprites
-_08037AD0: .4byte gUnknown_02024BE0
-_08037AD4: .4byte gUnknown_02024A60
-_08037AD8: .4byte 0x02017810
-_08037ADC: .4byte gUnknown_02024A6A
-_08037AE0: .4byte gEnemyParty
-_08037AE4:
- ldrb r0, [r1, 0x1]
- ands r2, r0
- cmp r2, 0
- beq _08037B18
- movs r0, 0x7F
- ands r0, r5
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _08037B20 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- bl dp01_tbl4_exec_completed
-_08037B18:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037B20: .4byte 0x000027f9
- thumb_func_end sub_8037A74
-
- thumb_func_start sub_8037B24
-sub_8037B24: @ 8037B24
- push {r4-r6,lr}
- ldr r6, _08037B64 @ =gUnknown_02024A60
- ldrb r0, [r6]
- ldr r5, _08037B68 @ =gUnknown_03004340
- adds r1, r0, r5
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08037B6C
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _08037B70
- .align 2, 0
-_08037B64: .4byte gUnknown_02024A60
-_08037B68: .4byte gUnknown_03004340
-_08037B6C:
- bl dp01_tbl4_exec_completed
-_08037B70:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8037B24
-
- thumb_func_start sub_8037B78
-sub_8037B78: @ 8037B78
- push {lr}
- ldr r2, _08037BAC @ =gSprites
- ldr r0, _08037BB0 @ =gUnknown_02024BE0
- ldr r1, _08037BB4 @ =gUnknown_02024A60
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _08037BA6
- ldr r0, _08037BB8 @ =gUnknown_03004340
- adds r0, r3, r0
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08037BA6:
- pop {r0}
- bx r0
- .align 2, 0
-_08037BAC: .4byte gSprites
-_08037BB0: .4byte gUnknown_02024BE0
-_08037BB4: .4byte gUnknown_02024A60
-_08037BB8: .4byte gUnknown_03004340
- thumb_func_end sub_8037B78
-
- thumb_func_start sub_8037BBC
-sub_8037BBC: @ 8037BBC
- push {r4-r6,lr}
- ldr r6, _08037C18 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08037C1C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08037C12
- ldr r5, _08037C20 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08037C24 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08037C28 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08037C12:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037C18: .4byte gUnknown_02024A60
-_08037C1C: .4byte 0x02017810
-_08037C20: .4byte gUnknown_02024BE0
-_08037C24: .4byte gSprites
-_08037C28: .4byte gUnknown_03004340
- thumb_func_end sub_8037BBC
-
- thumb_func_start sub_8037C2C
-sub_8037C2C: @ 8037C2C
- push {lr}
- ldr r0, _08037C40 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _08037C3A
- bl dp01_tbl4_exec_completed
-_08037C3A:
- pop {r0}
- bx r0
- .align 2, 0
-_08037C40: .4byte gUnknown_03004210
- thumb_func_end sub_8037C2C
-
- thumb_func_start dp01t_0F_4_move_anim
-dp01t_0F_4_move_anim: @ 8037C44
- push {r4,lr}
- ldr r1, _08037C80 @ =gUnknown_02024BE0
- ldr r0, _08037C84 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _08037C88 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _08037C90
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08037C8C @ =gUnknown_02024E6D
- strb r3, [r0]
- bl dp01_tbl4_exec_completed
- b _08037CBA
- .align 2, 0
-_08037C80: .4byte gUnknown_02024BE0
-_08037C84: .4byte gUnknown_02024A60
-_08037C88: .4byte gSprites
-_08037C8C: .4byte gUnknown_02024E6D
-_08037C90:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08037CB4
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08037CB4:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_08037CBA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end dp01t_0F_4_move_anim
-
- thumb_func_start sub_8037CC0
-sub_8037CC0: @ 8037CC0
- push {r4,lr}
- ldr r2, _08037D10 @ =gSprites
- ldr r0, _08037D14 @ =gUnknown_03004340
- ldr r4, _08037D18 @ =gUnknown_02024A60
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08037D1C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08037D08
- lsls r0, r3, 2
- ldr r1, _08037D20 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08037CFC
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_08037CFC:
- ldr r0, _08037D24 @ =gUnknown_03004330
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08037D28 @ =sub_8037D2C
- str r0, [r1]
-_08037D08:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08037D10: .4byte gSprites
-_08037D14: .4byte gUnknown_03004340
-_08037D18: .4byte gUnknown_02024A60
-_08037D1C: .4byte SpriteCallbackDummy
-_08037D20: .4byte 0x02017800
-_08037D24: .4byte gUnknown_03004330
-_08037D28: .4byte sub_8037D2C
- thumb_func_end sub_8037CC0
-
- thumb_func_start sub_8037D2C
-sub_8037D2C: @ 8037D2C
- push {lr}
- ldr r0, _08037D58 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037D5C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08037D52
- ldr r0, _08037D60 @ =c3_0802FDF4
- movs r1, 0xA
- bl CreateTask
- bl dp01_tbl4_exec_completed
-_08037D52:
- pop {r0}
- bx r0
- .align 2, 0
-_08037D58: .4byte gUnknown_02024A60
-_08037D5C: .4byte 0x02017810
-_08037D60: .4byte c3_0802FDF4
- thumb_func_end sub_8037D2C
-
- thumb_func_start sub_8037D64
-sub_8037D64: @ 8037D64
- push {r4,r5,lr}
- ldr r5, _08037E08 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _08037E0C @ =0x02017810
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08037E00
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _08037E10 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r1, _08037E14 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037E18 @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, _08037E1C @ =gUnknown_03004340
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08037E20 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08037E24 @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- bl sub_804777C
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- bl sub_8031F88
- ldr r1, _08037E28 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037E2C @ =sub_8037CC0
- str r1, [r0]
-_08037E00:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08037E08: .4byte gUnknown_02024A60
-_08037E0C: .4byte 0x02017810
-_08037E10: .4byte 0x000027f9
-_08037E14: .4byte gUnknown_02024BE0
-_08037E18: .4byte gSprites
-_08037E1C: .4byte gUnknown_03004340
-_08037E20: .4byte gUnknown_02024A6A
-_08037E24: .4byte gEnemyParty
-_08037E28: .4byte gUnknown_03004330
-_08037E2C: .4byte sub_8037CC0
- thumb_func_end sub_8037D64
-
- thumb_func_start sub_8037E30
-sub_8037E30: @ 8037E30
- push {r4-r6,lr}
- ldr r5, _08037ECC @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _08037ED0 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _08037E5E
- ldr r0, _08037ED4 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037ED8 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08037E5E:
- ldr r4, _08037EDC @ =gSprites
- ldr r0, _08037EE0 @ =gUnknown_0300434C
- ldrb r2, [r5]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _08037EE4 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08037EC4
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08037EC4
- adds r0, r3, r4
- bl DestroySprite
- ldrb r4, [r5]
- ldr r1, _08037ED4 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08037ED8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _08037EE8 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037EEC @ =sub_8037D64
- str r1, [r0]
-_08037EC4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037ECC: .4byte gUnknown_02024A60
-_08037ED0: .4byte 0x02017810
-_08037ED4: .4byte gUnknown_02024A6A
-_08037ED8: .4byte gEnemyParty
-_08037EDC: .4byte gSprites
-_08037EE0: .4byte gUnknown_0300434C
-_08037EE4: .4byte SpriteCallbackDummy
-_08037EE8: .4byte gUnknown_03004330
-_08037EEC: .4byte sub_8037D64
- thumb_func_end sub_8037E30
-
- thumb_func_start sub_8037EF0
-sub_8037EF0: @ 8037EF0
- push {lr}
- ldr r0, _08037F20 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08037F1C
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, _08037F24 @ =gMain
- ldr r0, _08037F28 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08037F2C @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _08037F30 @ =c2_8011A1C
- bl SetMainCallback2
-_08037F1C:
- pop {r0}
- bx r0
- .align 2, 0
-_08037F20: .4byte gReceivedRemoteLinkPlayers
-_08037F24: .4byte gMain
-_08037F28: .4byte 0x0000043d
-_08037F2C: .4byte gUnknown_030042D0
-_08037F30: .4byte c2_8011A1C
- thumb_func_end sub_8037EF0
-
- thumb_func_start sub_8037F34
-sub_8037F34: @ 8037F34
- push {lr}
- ldr r0, _08037F64 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08037F9A
- ldr r0, _08037F68 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08037F78
- bl sub_800832C
- ldr r1, _08037F6C @ =gUnknown_03004330
- ldr r0, _08037F70 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037F74 @ =sub_8037EF0
- str r1, [r0]
- b _08037F9A
- .align 2, 0
-_08037F64: .4byte gPaletteFade
-_08037F68: .4byte gUnknown_020239F8
-_08037F6C: .4byte gUnknown_03004330
-_08037F70: .4byte gUnknown_02024A60
-_08037F74: .4byte sub_8037EF0
-_08037F78:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r2, _08037FA0 @ =gMain
- ldr r0, _08037FA4 @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _08037FA8 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_08037F9A:
- pop {r0}
- bx r0
- .align 2, 0
-_08037FA0: .4byte gMain
-_08037FA4: .4byte 0x0000043d
-_08037FA8: .4byte gUnknown_030042D0
- thumb_func_end sub_8037F34
-
- thumb_func_start sub_8037FAC
-sub_8037FAC: @ 8037FAC
- push {lr}
- ldr r0, _08037FD0 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037FD4 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08037FCA
- bl dp01_tbl4_exec_completed
-_08037FCA:
- pop {r0}
- bx r0
- .align 2, 0
-_08037FD0: .4byte gUnknown_02024A60
-_08037FD4: .4byte 0x02017810
- thumb_func_end sub_8037FAC
-
- thumb_func_start sub_8037FD8
-sub_8037FD8: @ 8037FD8
- push {lr}
- ldr r0, _08037FFC @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08038000 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08037FF6
- bl dp01_tbl4_exec_completed
-_08037FF6:
- pop {r0}
- bx r0
- .align 2, 0
-_08037FFC: .4byte gUnknown_02024A60
-_08038000: .4byte 0x02017810
- thumb_func_end sub_8037FD8
-
- thumb_func_start dp01_tbl4_exec_completed
-dp01_tbl4_exec_completed: @ 8038004
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _08038044 @ =gUnknown_03004330
- ldr r4, _08038048 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803804C @ =sub_803752C
- str r1, [r0]
- ldr r0, _08038050 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08038058
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _08038054 @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0803806A
- .align 2, 0
-_08038044: .4byte gUnknown_03004330
-_08038048: .4byte gUnknown_02024A60
-_0803804C: .4byte sub_803752C
-_08038050: .4byte gUnknown_020239F8
-_08038054: .4byte gUnknown_02023A60
-_08038058:
- ldr r2, _08038074 @ =gUnknown_02024A64
- ldr r1, _08038078 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0803806A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08038074: .4byte gUnknown_02024A64
-_08038078: .4byte gBitTable
- thumb_func_end dp01_tbl4_exec_completed
-
- thumb_func_start dp01t_00_4_getattr
-dp01t_00_4_getattr: @ 803807C
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _080380A8 @ =gUnknown_02023A60
- ldr r0, _080380AC @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080380B4
- ldr r0, _080380B0 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_player_pokemon__
- adds r6, r0, 0
- b _080380D6
- .align 2, 0
-_080380A8: .4byte gUnknown_02023A60
-_080380AC: .4byte gUnknown_02024A60
-_080380B0: .4byte gUnknown_02024A6A
-_080380B4:
- ldrb r4, [r1]
- movs r5, 0
-_080380B8:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080380CE
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_player_pokemon__
- adds r6, r0
-_080380CE:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _080380B8
-_080380D6:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl4_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_4_getattr
-
- thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__
-dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _08038124 @ =gUnknown_02023A60
- ldr r3, _08038128 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0803811A
- bl _08038886
-_0803811A:
- lsls r0, 2
- ldr r1, _0803812C @ =_08038130
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038124: .4byte gUnknown_02023A60
-_08038128: .4byte gUnknown_02024A60
-_0803812C: .4byte _08038130
- .align 2, 0
-_08038130:
- .4byte _08038220
- .4byte _08038444
- .4byte _08038454
- .4byte _08038464
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384E8
- .4byte _08038524
- .4byte _08038524
- .4byte _08038524
- .4byte _08038524
- .4byte _08038886
- .4byte _08038886
- .4byte _08038886
- .4byte _08038886
- .4byte _08038540
- .4byte _08038550
- .4byte _08038580
- .4byte _08038590
- .4byte _080385A0
- .4byte _080385B0
- .4byte _080385C0
- .4byte _080385D0
- .4byte _080385E0
- .4byte _080385F0
- .4byte _08038600
- .4byte _08038610
- .4byte _08038620
- .4byte _08038630
- .4byte _08038640
- .4byte _08038690
- .4byte _080386A0
- .4byte _080386B0
- .4byte _080386C0
- .4byte _080386D0
- .4byte _080386E0
- .4byte _080386F0
- .4byte _08038700
- .4byte _08038710
- .4byte _08038744
- .4byte _08038754
- .4byte _08038764
- .4byte _08038774
- .4byte _08038784
- .4byte _08038794
- .4byte _080387A4
- .4byte _080387B4
- .4byte _080387D4
- .4byte _080387E4
- .4byte _080387F4
- .4byte _08038804
- .4byte _08038814
- .4byte _08038824
- .4byte _08038834
- .4byte _08038844
- .4byte _08038854
- .4byte _08038864
- .4byte _08038874
-_08038220:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038434 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_0803826C:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803826C
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038434 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _08038438 @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _0803843C @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _08038440 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_08038424:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _08038424
- b _08038886
- .align 2, 0
-_08038434: .4byte gEnemyParty
-_08038438: .4byte 0xfffffc1f
-_0803843C: .4byte 0xfff07fff
-_08038440: .4byte 0xfffffe0f
-_08038444:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038450 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- b _080387BE
- .align 2, 0
-_08038450: .4byte gEnemyParty
-_08038454:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038460 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- b _080387BE
- .align 2, 0
-_08038460: .4byte gEnemyParty
-_08038464:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080384C8 @ =gEnemyParty
- adds r4, r1, r0
- mov r8, r9
-_0803847A:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803847A
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080384C8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_080384B8:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _080384B8
- b _08038886
- .align 2, 0
-_080384C8: .4byte gEnemyParty
-_080384CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080384E4 @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _080387BE
- .align 2, 0
-_080384E4: .4byte gEnemyParty
-_080384E8:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _08038520 @ =gEnemyParty
- mov r8, r2
-_080384F4:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _080384F4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038520 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _08038886
- .align 2, 0
-_08038520: .4byte gEnemyParty
-_08038524:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803853C @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0803887E
- .align 2, 0
-_0803853C: .4byte gEnemyParty
-_08038540:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803854C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1
- b _0803855A
- .align 2, 0
-_0803854C: .4byte gEnemyParty
-_08038550:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803857C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x19
-_0803855A:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _08038886
- .align 2, 0
-_0803857C: .4byte gEnemyParty
-_08038580:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803858C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1A
- b _0803887E
- .align 2, 0
-_0803858C: .4byte gEnemyParty
-_08038590:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803859C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1B
- b _0803887E
- .align 2, 0
-_0803859C: .4byte gEnemyParty
-_080385A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1C
- b _0803887E
- .align 2, 0
-_080385AC: .4byte gEnemyParty
-_080385B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1D
- b _0803887E
- .align 2, 0
-_080385BC: .4byte gEnemyParty
-_080385C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385CC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1E
- b _0803887E
- .align 2, 0
-_080385CC: .4byte gEnemyParty
-_080385D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1F
- b _0803887E
- .align 2, 0
-_080385DC: .4byte gEnemyParty
-_080385E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385EC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x20
- b _0803887E
- .align 2, 0
-_080385EC: .4byte gEnemyParty
-_080385F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385FC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x22
- b _0803887E
- .align 2, 0
-_080385FC: .4byte gEnemyParty
-_08038600:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803860C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x23
- b _0803887E
- .align 2, 0
-_0803860C: .4byte gEnemyParty
-_08038610:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803861C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x24
- b _0803887E
- .align 2, 0
-_0803861C: .4byte gEnemyParty
-_08038620:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803862C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x25
- b _0803887E
- .align 2, 0
-_0803862C: .4byte gEnemyParty
-_08038630:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803863C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- b _0803887E
- .align 2, 0
-_0803863C: .4byte gEnemyParty
-_08038640:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0803868C @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _08038886
- .align 2, 0
-_0803868C: .4byte gEnemyParty
-_08038690:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803869C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x27
- b _0803887E
- .align 2, 0
-_0803869C: .4byte gEnemyParty
-_080386A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x28
- b _0803887E
- .align 2, 0
-_080386AC: .4byte gEnemyParty
-_080386B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x29
- b _0803887E
- .align 2, 0
-_080386BC: .4byte gEnemyParty
-_080386C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386CC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2A
- b _0803887E
- .align 2, 0
-_080386CC: .4byte gEnemyParty
-_080386D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2B
- b _0803887E
- .align 2, 0
-_080386DC: .4byte gEnemyParty
-_080386E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386EC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- b _0803887E
- .align 2, 0
-_080386EC: .4byte gEnemyParty
-_080386F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386FC @ =gEnemyParty
- adds r0, r1
- movs r1, 0
- b _0803871A
- .align 2, 0
-_080386FC: .4byte gEnemyParty
-_08038700:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803870C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x9
- b _080387BE
- .align 2, 0
-_0803870C: .4byte gEnemyParty
-_08038710:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038740 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x37
-_0803871A:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _08038886
- .align 2, 0
-_08038740: .4byte gEnemyParty
-_08038744:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038750 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x38
- b _0803887E
- .align 2, 0
-_08038750: .4byte gEnemyParty
-_08038754:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038760 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- b _080387BE
- .align 2, 0
-_08038760: .4byte gEnemyParty
-_08038764:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038770 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- b _080387BE
- .align 2, 0
-_08038770: .4byte gEnemyParty
-_08038774:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038780 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3B
- b _080387BE
- .align 2, 0
-_08038780: .4byte gEnemyParty
-_08038784:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038790 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3C
- b _080387BE
- .align 2, 0
-_08038790: .4byte gEnemyParty
-_08038794:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387A0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3D
- b _080387BE
- .align 2, 0
-_080387A0: .4byte gEnemyParty
-_080387A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387B0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3E
- b _080387BE
- .align 2, 0
-_080387B0: .4byte gEnemyParty
-_080387B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387D0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3F
-_080387BE:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _08038886
- .align 2, 0
-_080387D0: .4byte gEnemyParty
-_080387D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387E0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x16
- b _0803887E
- .align 2, 0
-_080387E0: .4byte gEnemyParty
-_080387E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387F0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x17
- b _0803887E
- .align 2, 0
-_080387F0: .4byte gEnemyParty
-_080387F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038800 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x18
- b _0803887E
- .align 2, 0
-_08038800: .4byte gEnemyParty
-_08038804:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038810 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x21
- b _0803887E
- .align 2, 0
-_08038810: .4byte gEnemyParty
-_08038814:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038820 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2F
- b _0803887E
- .align 2, 0
-_08038820: .4byte gEnemyParty
-_08038824:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038830 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x30
- b _0803887E
- .align 2, 0
-_08038830: .4byte gEnemyParty
-_08038834:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038840 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x32
- b _0803887E
- .align 2, 0
-_08038840: .4byte gEnemyParty
-_08038844:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038850 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x33
- b _0803887E
- .align 2, 0
-_08038850: .4byte gEnemyParty
-_08038854:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038860 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x34
- b _0803887E
- .align 2, 0
-_08038860: .4byte gEnemyParty
-_08038864:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038870 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x35
- b _0803887E
- .align 2, 0
-_08038870: .4byte gEnemyParty
-_08038874:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038898 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x36
-_0803887E:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_08038886:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08038898: .4byte gEnemyParty
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__
-
- thumb_func_start sub_803889C
-sub_803889C: @ 803889C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803889C
-
- thumb_func_start sub_80388A8
-sub_80388A8: @ 80388A8
- push {r4,r5,lr}
- ldr r1, _080388CC @ =gUnknown_02023A60
- ldr r0, _080388D0 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080388D8
- ldr r0, _080388D4 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8038900
- b _080388F6
- .align 2, 0
-_080388CC: .4byte gUnknown_02023A60
-_080388D0: .4byte gUnknown_02024A60
-_080388D4: .4byte gUnknown_02024A6A
-_080388D8:
- ldrb r4, [r1]
- movs r5, 0
-_080388DC:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080388EA
- adds r0, r5, 0
- bl sub_8038900
-_080388EA:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080388DC
-_080388F6:
- bl dp01_tbl4_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80388A8
-
- thumb_func_start sub_8038900
-sub_8038900: @ 8038900
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r3, _08038938 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- ldr r2, _0803893C @ =gUnknown_02023A63
- adds r4, r0, r2
- adds r7, r4, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- adds r3, r2, 0
- cmp r0, 0x3B
- bls _0803892E
- bl _0803920C
-_0803892E:
- lsls r0, 2
- ldr r1, _08038940 @ =_08038944
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038938: .4byte gUnknown_02024A60
-_0803893C: .4byte gUnknown_02023A63
-_08038940: .4byte _08038944
- .align 2, 0
-_08038944:
- .4byte _08038A34
- .4byte _08038BCC
- .4byte _08038BE8
- .4byte _08038C04
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C78
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _0803920C
- .4byte _0803920C
- .4byte _0803920C
- .4byte _0803920C
- .4byte _08038D08
- .4byte _08038D24
- .4byte _08038D40
- .4byte _08038D5C
- .4byte _08038D78
- .4byte _08038D94
- .4byte _08038DB0
- .4byte _08038DCC
- .4byte _08038DE8
- .4byte _08038E04
- .4byte _08038E20
- .4byte _08038E3C
- .4byte _08038E58
- .4byte _08038E74
- .4byte _08038E90
- .4byte _08038F04
- .4byte _08038F20
- .4byte _08038F3C
- .4byte _08038F58
- .4byte _08038F74
- .4byte _08038F90
- .4byte _08038FAC
- .4byte _08038FC8
- .4byte _08038FE4
- .4byte _08039000
- .4byte _0803901C
- .4byte _08039038
- .4byte _08039054
- .4byte _08039070
- .4byte _0803908C
- .4byte _080390A8
- .4byte _080390C4
- .4byte _080390E0
- .4byte _080390FC
- .4byte _08039118
- .4byte _08039134
- .4byte _08039150
- .4byte _0803916C
- .4byte _08039188
- .4byte _080391A4
- .4byte _080391C0
- .4byte _080391DC
- .4byte _080391F8
-_08038A34:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038BC8 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r7, 0
- bl SetMonData
- adds r2, r7, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r7
- mov r10, r0
- adds r0, r7, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r7, 0x2
- str r0, [sp, 0x4]
- adds r0, r7, 0x4
- str r0, [sp, 0x8]
- adds r0, r7, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r6, r7, 0
- adds r6, 0x24
- adds r4, r7, 0
- adds r4, 0xC
-_08038A9A:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08038A9A
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038BC8 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r7, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r7, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038BC8: .4byte gEnemyParty
-_08038BCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038BE4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xB
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038BE4: .4byte gEnemyParty
-_08038BE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C00 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038C00: .4byte gEnemyParty
-_08038C04:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r4
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08038C54 @ =gEnemyParty
- adds r7, r1, r0
- adds r6, r4, 0
- adds r6, 0x8
-_08038C1C:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08038C1C
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C54 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038C54: .4byte gEnemyParty
-_08038C58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C70 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08038C74 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _08038CF6
- .align 2, 0
-_08038C70: .4byte gEnemyParty
-_08038C74: .4byte gUnknown_02023A60
-_08038C78:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038CDC @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x11
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038CDC: .4byte gEnemyParty
-_08038CE0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D00 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08038D04 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_08038CF6:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D00: .4byte gEnemyParty
-_08038D04: .4byte gUnknown_02023A60
-_08038D08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D20 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D20: .4byte gEnemyParty
-_08038D24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D3C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x19
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D3C: .4byte gEnemyParty
-_08038D40:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D58 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D58: .4byte gEnemyParty
-_08038D5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D74 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D74: .4byte gEnemyParty
-_08038D78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D90 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D90: .4byte gEnemyParty
-_08038D94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DAC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1D
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DAC: .4byte gEnemyParty
-_08038DB0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DC8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1E
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DC8: .4byte gEnemyParty
-_08038DCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DE4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DE4: .4byte gEnemyParty
-_08038DE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E00 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x20
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E00: .4byte gEnemyParty
-_08038E04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E1C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x22
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E1C: .4byte gEnemyParty
-_08038E20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E38 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x23
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E38: .4byte gEnemyParty
-_08038E3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E54 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x24
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E54: .4byte gEnemyParty
-_08038E58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E70 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x25
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E70: .4byte gEnemyParty
-_08038E74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E8C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x26
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E8C: .4byte gEnemyParty
-_08038E90:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038F00 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x27
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _08038F9E
- .align 2, 0
-_08038F00: .4byte gEnemyParty
-_08038F04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F1C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x27
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F1C: .4byte gEnemyParty
-_08038F20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F38 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x28
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F38: .4byte gEnemyParty
-_08038F3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F54 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x29
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F54: .4byte gEnemyParty
-_08038F58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F70 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F70: .4byte gEnemyParty
-_08038F74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F8C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F8C: .4byte gEnemyParty
-_08038F90:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FA8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
-_08038F9E:
- movs r1, 0x2C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FA8: .4byte gEnemyParty
-_08038FAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FC4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FC4: .4byte gEnemyParty
-_08038FC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FE0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x9
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FE0: .4byte gEnemyParty
-_08038FE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FFC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x37
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FFC: .4byte gEnemyParty
-_08039000:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039018 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x38
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039018: .4byte gEnemyParty
-_0803901C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039034 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x39
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039034: .4byte gEnemyParty
-_08039038:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039050 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039050: .4byte gEnemyParty
-_08039054:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803906C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_0803906C: .4byte gEnemyParty
-_08039070:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039088 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039088: .4byte gEnemyParty
-_0803908C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390A4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3D
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390A4: .4byte gEnemyParty
-_080390A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390C0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3E
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390C0: .4byte gEnemyParty
-_080390C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390DC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390DC: .4byte gEnemyParty
-_080390E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390F8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x16
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390F8: .4byte gEnemyParty
-_080390FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039114 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x17
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039114: .4byte gEnemyParty
-_08039118:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039130 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x18
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039130: .4byte gEnemyParty
-_08039134:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803914C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x21
- bl SetMonData
- b _0803920C
- .align 2, 0
-_0803914C: .4byte gEnemyParty
-_08039150:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039168 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039168: .4byte gEnemyParty
-_0803916C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039184 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x30
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039184: .4byte gEnemyParty
-_08039188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391A0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x32
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391A0: .4byte gEnemyParty
-_080391A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391BC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x33
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391BC: .4byte gEnemyParty
-_080391C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391D8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x34
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391D8: .4byte gEnemyParty
-_080391DC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391F4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x35
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391F4: .4byte gEnemyParty
-_080391F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803921C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x36
- bl SetMonData
-_0803920C:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803921C: .4byte gEnemyParty
- thumb_func_end sub_8038900
-
- thumb_func_start sub_8039220
-sub_8039220: @ 8039220
- push {r4-r7,lr}
- ldr r1, _08039284 @ =gUnknown_02024A6A
- ldr r7, _08039288 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0803928C @ =gUnknown_02023A60
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _08039290 @ =gEnemyParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _08039278
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_08039256:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _08039256
-_08039278:
- bl dp01_tbl4_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039284: .4byte gUnknown_02024A6A
-_08039288: .4byte gUnknown_02024A60
-_0803928C: .4byte gUnknown_02023A60
-_08039290: .4byte gEnemyParty
- thumb_func_end sub_8039220
-
- thumb_func_start sub_8039294
-sub_8039294: @ 8039294
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _080393BC @ =gUnknown_02024A6A
- ldr r6, _080393C0 @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x64
- mov r10, r1
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _080393C4 @ =gEnemyParty
- mov r9, r1
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- bl sub_8031794
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080393C8 @ =gUnknown_02024E8C
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080393CC @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _080393D0 @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080393D4 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080393D8 @ =gUnknown_02024E84
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldrb r4, [r6]
- lsls r0, r4, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _080393DC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080393E0 @ =sub_8037A74
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080393BC: .4byte gUnknown_02024A6A
-_080393C0: .4byte gUnknown_02024A60
-_080393C4: .4byte gEnemyParty
-_080393C8: .4byte gUnknown_02024E8C
-_080393CC: .4byte gUnknown_02024BE0
-_080393D0: .4byte gSprites
-_080393D4: .4byte 0x0000ff10
-_080393D8: .4byte gUnknown_02024E84
-_080393DC: .4byte gUnknown_03004330
-_080393E0: .4byte sub_8037A74
- thumb_func_end sub_8039294
-
- thumb_func_start sub_80393E4
-sub_80393E4: @ 80393E4
- push {r4,lr}
- ldr r1, _0803941C @ =gUnknown_02024A6A
- ldr r4, _08039420 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r1
- ldr r3, _08039424 @ =gUnknown_02023A60
- lsls r0, 9
- adds r1, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- lsls r1, r0, 9
- adds r3, 0x2
- adds r1, r3
- ldrb r1, [r1]
- bl sub_8039430
- ldr r1, _08039428 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803942C @ =sub_8037E30
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803941C: .4byte gUnknown_02024A6A
-_08039420: .4byte gUnknown_02024A60
-_08039424: .4byte gUnknown_02023A60
-_08039428: .4byte gUnknown_03004330
-_0803942C: .4byte sub_8037E30
- thumb_func_end sub_80393E4
-
- thumb_func_start sub_8039430
-sub_8039430: @ 8039430
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0803958C @ =gUnknown_02024A6A
- lsls r4, r6, 1
- adds r4, r0
- ldr r0, _08039590 @ =gUnknown_02023A60
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r5, _08039594 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08039598 @ =sub_80312F0
- bl object_new_hidden_with_callback
- ldr r1, _0803959C @ =gUnknown_0300434C
- mov r10, r1
- add r10, r6
- mov r1, r10
- strb r0, [r1]
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r1, r6, 0
- bl sub_8031794
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080395A0 @ =gUnknown_02024E8C
- mov r9, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080395A4 @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _080395A8 @ =gSprites
- mov r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080395AC @ =gUnknown_02024E84
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- 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 r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080395B0 @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFE
- bl sub_8046400
- mov r1, r10
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803958C: .4byte gUnknown_02024A6A
-_08039590: .4byte gUnknown_02023A60
-_08039594: .4byte gEnemyParty
-_08039598: .4byte sub_80312F0
-_0803959C: .4byte gUnknown_0300434C
-_080395A0: .4byte gUnknown_02024E8C
-_080395A4: .4byte gUnknown_02024BE0
-_080395A8: .4byte gSprites
-_080395AC: .4byte gUnknown_02024E84
-_080395B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8039430
-
- thumb_func_start sub_80395B4
-sub_80395B4: @ 80395B4
- push {r4-r6,lr}
- ldr r1, _080395E4 @ =gUnknown_02023A60
- ldr r6, _080395E8 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _080395F8
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080395EC @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _080395F0 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080395F4 @ =sub_8039648
- str r1, [r0]
- b _08039634
- .align 2, 0
-_080395E4: .4byte gUnknown_02023A60
-_080395E8: .4byte gUnknown_02024A60
-_080395EC: .4byte 0x02017810
-_080395F0: .4byte gUnknown_03004330
-_080395F4: .4byte sub_8039648
-_080395F8:
- ldr r5, _0803963C @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08039640 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08039644 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08039634:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803963C: .4byte gUnknown_02024BE0
-_08039640: .4byte gSprites
-_08039644: .4byte gUnknown_03004340
- thumb_func_end sub_80395B4
-
- thumb_func_start sub_8039648
-sub_8039648: @ 8039648
- push {r4,r5,lr}
- ldr r5, _08039664 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _08039668 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0803966C
- cmp r0, 0x1
- beq _08039698
- b _080396C0
- .align 2, 0
-_08039664: .4byte gUnknown_02024A60
-_08039668: .4byte 0x02017810
-_0803966C:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039688
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08039688:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _080396C0
-_08039698:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080396C0
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x2
- bl move_anim_start_t4
- ldr r1, _080396C8 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080396CC @ =sub_8037BBC
- str r1, [r0]
-_080396C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080396C8: .4byte gUnknown_03004330
-_080396CC: .4byte sub_8037BBC
- thumb_func_end sub_8039648
-
- thumb_func_start sub_80396D0
-sub_80396D0: @ 80396D0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _08039704 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08039714
- ldr r6, _08039708 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x2
- ands r1, r0
- movs r5, 0x10
- cmp r1, 0
- beq _080396F8
- ldr r5, _0803970C @ =0x0000fff0
-_080396F8:
- ldr r4, _08039710 @ =gLinkPlayers
- ldrb r0, [r6]
- bl sub_803FC34
- b _08039724
- .align 2, 0
-_08039704: .4byte gUnknown_020239F8
-_08039708: .4byte gUnknown_02024A60
-_0803970C: .4byte 0x0000fff0
-_08039710: .4byte gLinkPlayers
-_08039714:
- movs r5, 0
- ldr r4, _0803986C @ =gLinkPlayers
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
-_08039724:
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x13]
- mov r9, r0
- ldr r0, _08039870 @ =gUnknown_02024A60
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_8031A6C
- mov r1, r8
- ldrb r0, [r1]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl GetMonSpriteTemplate_803C5A0
- ldr r6, _08039874 @ =gUnknown_02024E8C
- lsls r5, 16
- movs r2, 0xB0
- lsls r2, 16
- adds r5, r2
- asrs r5, 16
- ldr r1, _08039878 @ =gTrainerFrontPicCoords
- mov r2, r9
- lsls r0, r2, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 14
- adds r4, r0
- asrs r4, 16
- mov r1, r8
- ldrb r0, [r1]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0803987C @ =gUnknown_02024BE0
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08039880 @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08039884 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldr r0, _08039888 @ =gTrainerFrontPicPaletteTable
- mov r1, r9
- lsls r6, r1, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _0803988C @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08039890 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08039894 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r9
- strh r2, [r0, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08039898 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0803989C @ =gUnknown_03004330
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080398A0 @ =sub_803757C
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803986C: .4byte gLinkPlayers
-_08039870: .4byte gUnknown_02024A60
-_08039874: .4byte gUnknown_02024E8C
-_08039878: .4byte gTrainerFrontPicCoords
-_0803987C: .4byte gUnknown_02024BE0
-_08039880: .4byte gSprites
-_08039884: .4byte 0x0000ff10
-_08039888: .4byte gTrainerFrontPicPaletteTable
-_0803988C: .4byte gTrainerFrontPicTable
-_08039890: .4byte 0x000003ff
-_08039894: .4byte 0xfffffc00
-_08039898: .4byte sub_80313A0
-_0803989C: .4byte gUnknown_03004330
-_080398A0: .4byte sub_803757C
- thumb_func_end sub_80396D0
-
- thumb_func_start sub_80398A4
-sub_80398A4: @ 80398A4
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_80398A4
-
- thumb_func_start sub_80398B0
-sub_80398B0: @ 80398B0
- push {r4-r6,lr}
- ldr r6, _08039940 @ =gUnknown_02024BE0
- ldr r4, _08039944 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08039948 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0803994C @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08039950 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldr r1, _08039954 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039958 @ =sub_80375B4
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039940: .4byte gUnknown_02024BE0
-_08039944: .4byte gUnknown_02024A60
-_08039948: .4byte gSprites
-_0803994C: .4byte sub_8078B34
-_08039950: .4byte SpriteCallbackDummy
-_08039954: .4byte gUnknown_03004330
-_08039958: .4byte sub_80375B4
- thumb_func_end sub_80398B0
-
- thumb_func_start sub_803995C
-sub_803995C: @ 803995C
- push {r4,r5,lr}
- ldr r5, _080399A0 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _080399A4 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _080399A8
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803998E
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0803998E:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _080399E4
- .align 2, 0
-_080399A0: .4byte gUnknown_02024A60
-_080399A4: .4byte 0x02017810
-_080399A8:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080399E4
- strb r0, [r3, 0x4]
- movs r0, 0x10
- movs r1, 0x3F
- bl PlaySE12WithPanning
- ldr r2, _080399EC @ =gSprites
- ldr r1, _080399F0 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080399F4 @ =sub_8010384
- str r1, [r0]
- ldr r1, _080399F8 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080399FC @ =sub_8037B78
- str r1, [r0]
-_080399E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080399EC: .4byte gSprites
-_080399F0: .4byte gUnknown_02024BE0
-_080399F4: .4byte sub_8010384
-_080399F8: .4byte gUnknown_03004330
-_080399FC: .4byte sub_8037B78
- thumb_func_end sub_803995C
-
- thumb_func_start sub_8039A00
-sub_8039A00: @ 8039A00
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A00
-
- thumb_func_start sub_8039A0C
-sub_8039A0C: @ 8039A0C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A0C
-
- thumb_func_start sub_8039A18
-sub_8039A18: @ 8039A18
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A18
-
- thumb_func_start sub_8039A24
-sub_8039A24: @ 8039A24
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A24
-
- thumb_func_start sub_8039A30
-sub_8039A30: @ 8039A30
- push {r4-r6,lr}
- ldr r6, _08039B14 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _08039A42
- b _08039B52
-_08039A42:
- ldr r0, _08039B18 @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _08039B1C @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _08039B20 @ =gUnknown_0202F7BC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _08039B24 @ =gUnknown_0202F7B8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _08039B28 @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08039B2C @ =gUnknown_0202F7C0
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _08039B30 @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08039B34 @ =gUnknown_02024E70
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08039B38
- bl dp01_tbl4_exec_completed
- b _08039B52
- .align 2, 0
-_08039B14: .4byte gUnknown_02024A60
-_08039B18: .4byte gUnknown_02023A60
-_08039B1C: .4byte gUnknown_0202F7C4
-_08039B20: .4byte gUnknown_0202F7BC
-_08039B24: .4byte gUnknown_0202F7B8
-_08039B28: .4byte gUnknown_0202F7BE
-_08039B2C: .4byte gUnknown_0202F7C0
-_08039B30: .4byte gUnknown_0202F7B4
-_08039B34: .4byte gUnknown_02024E70
-_08039B38:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08039B58 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _08039B5C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039B60 @ =sub_8039B64
- str r1, [r0]
-_08039B52:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039B58: .4byte 0x02017810
-_08039B5C: .4byte gUnknown_03004330
-_08039B60: .4byte sub_8039B64
- thumb_func_end sub_8039A30
-
- thumb_func_start sub_8039B64
-sub_8039B64: @ 8039B64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _08039BA8 @ =gUnknown_02023A60
- ldr r5, _08039BAC @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _08039BB0 @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _08039BF2
- cmp r2, 0x1
- bgt _08039BB4
- cmp r2, 0
- beq _08039BBE
- b _08039CBC
- .align 2, 0
-_08039BA8: .4byte gUnknown_02023A60
-_08039BAC: .4byte gUnknown_02024A60
-_08039BB0: .4byte 0x02017810
-_08039BB4:
- cmp r2, 0x2
- beq _08039C18
- cmp r2, 0x3
- beq _08039C84
- b _08039CBC
-_08039BBE:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _08039BE2
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08039BE2:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08039CBC
-_08039BF2:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08039CBC
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl move_anim_start_t1
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08039CBC
-_08039C18:
- ldr r0, _08039C74 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08039C78 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08039CBC
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039C60
- cmp r7, 0x1
- bhi _08039C60
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08039C60:
- ldr r0, _08039C7C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08039C80 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08039CBC
- .align 2, 0
-_08039C74: .4byte gUnknown_0202F7AC
-_08039C78: .4byte gUnknown_0202F7B1
-_08039C7C: .4byte gUnknown_02024A60
-_08039C80: .4byte 0x02017810
-_08039C84:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08039CBC
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl4_exec_completed
-_08039CBC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8039B64
-
- thumb_func_start sub_8039CC8
-sub_8039CC8: @ 8039CC8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08039D0C @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08039D10 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _08039D14 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _08039D18 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _08039D1C @ =gUnknown_03004210
- ldr r1, _08039D20 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08039D24 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039D28 @ =sub_8037C2C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039D0C: .4byte gUnknown_030042A4
-_08039D10: .4byte gUnknown_030042A0
-_08039D14: .4byte gUnknown_02024A60
-_08039D18: .4byte gUnknown_02023A62
-_08039D1C: .4byte gUnknown_03004210
-_08039D20: .4byte gUnknown_020238CC
-_08039D24: .4byte gUnknown_03004330
-_08039D28: .4byte sub_8037C2C
- thumb_func_end sub_8039CC8
-
- thumb_func_start sub_8039D2C
-sub_8039D2C: @ 8039D2C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D2C
-
- thumb_func_start sub_8039D38
-sub_8039D38: @ 8039D38
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D38
-
- thumb_func_start sub_8039D44
-sub_8039D44: @ 8039D44
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D44
-
- thumb_func_start sub_8039D50
-sub_8039D50: @ 8039D50
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D50
-
- thumb_func_start sub_8039D5C
-sub_8039D5C: @ 8039D5C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D5C
-
- thumb_func_start sub_8039D68
-sub_8039D68: @ 8039D68
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D68
-
- thumb_func_start sub_8039D74
-sub_8039D74: @ 8039D74
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D74
-
- thumb_func_start sub_8039D80
-sub_8039D80: @ 8039D80
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _08039DF8 @ =gUnknown_02023A60
- ldr r0, _08039DFC @ =gUnknown_02024A60
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _08039E00 @ =0x00007fff
- cmp r7, r0
- beq _08039E10
- ldr r6, _08039E04 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08039E08 @ =gEnemyParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08039E0C @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08039E3A
- .align 2, 0
-_08039DF8: .4byte gUnknown_02023A60
-_08039DFC: .4byte gUnknown_02024A60
-_08039E00: .4byte 0x00007fff
-_08039E04: .4byte gUnknown_02024A6A
-_08039E08: .4byte gEnemyParty
-_08039E0C: .4byte gUnknown_03004340
-_08039E10:
- ldr r1, _08039E58 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08039E5C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08039E60 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08039E3A:
- ldr r1, _08039E64 @ =gUnknown_03004330
- ldr r0, _08039E68 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039E6C @ =sub_8037B24
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039E58: .4byte gUnknown_02024A6A
-_08039E5C: .4byte gEnemyParty
-_08039E60: .4byte gUnknown_03004340
-_08039E64: .4byte gUnknown_03004330
-_08039E68: .4byte gUnknown_02024A60
-_08039E6C: .4byte sub_8037B24
- thumb_func_end sub_8039D80
-
- thumb_func_start sub_8039E70
-sub_8039E70: @ 8039E70
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039E70
-
- thumb_func_start sub_8039E7C
-sub_8039E7C: @ 8039E7C
- push {r4,lr}
- ldr r4, _08039ED4 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039ECC
- ldr r0, _08039ED8 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08039EDC @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08039EE0 @ =gEnemyParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08039EE4 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _08039EE8 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039EEC @ =sub_8037FAC
- str r1, [r0]
-_08039ECC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039ED4: .4byte gUnknown_02024A60
-_08039ED8: .4byte gUnknown_03004340
-_08039EDC: .4byte gUnknown_02024A6A
-_08039EE0: .4byte gEnemyParty
-_08039EE4: .4byte 0x02017810
-_08039EE8: .4byte gUnknown_03004330
-_08039EEC: .4byte sub_8037FAC
- thumb_func_end sub_8039E7C
-
- thumb_func_start sub_8039EF0
-sub_8039EF0: @ 8039EF0
- push {r4,r5,lr}
- ldr r5, _08039F48 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039F40
- ldr r4, _08039F4C @ =gUnknown_02023A60
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _08039F50 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039F54 @ =sub_8037FAC
- str r1, [r0]
-_08039F40:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08039F48: .4byte gUnknown_02024A60
-_08039F4C: .4byte gUnknown_02023A60
-_08039F50: .4byte gUnknown_03004330
-_08039F54: .4byte sub_8037FAC
- thumb_func_end sub_8039EF0
-
- thumb_func_start sub_8039F58
-sub_8039F58: @ 8039F58
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F58
-
- thumb_func_start sub_8039F64
-sub_8039F64: @ 8039F64
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F64
-
- thumb_func_start sub_8039F70
-sub_8039F70: @ 8039F70
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F70
-
- thumb_func_start sub_8039F7C
-sub_8039F7C: @ 8039F7C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F7C
-
- thumb_func_start sub_8039F88
-sub_8039F88: @ 8039F88
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F88
-
- thumb_func_start sub_8039F94
-sub_8039F94: @ 8039F94
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F94
-
- thumb_func_start sub_8039FA0
-sub_8039FA0: @ 8039FA0
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FA0
-
- thumb_func_start sub_8039FAC
-sub_8039FAC: @ 8039FAC
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FAC
-
- thumb_func_start sub_8039FB8
-sub_8039FB8: @ 8039FB8
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FB8
-
- thumb_func_start sub_8039FC4
-sub_8039FC4: @ 8039FC4
- push {lr}
- ldr r2, _08039FDC @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08039FDC: .4byte gUnknown_020238C8
- thumb_func_end sub_8039FC4
-
- thumb_func_start sub_8039FE0
-sub_8039FE0: @ 8039FE0
- push {lr}
- ldr r3, _0803A00C @ =gUnknown_020238C8
- ldr r1, _0803A010 @ =gUnknown_02023A60
- ldr r0, _0803A014 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A00C: .4byte gUnknown_020238C8
-_0803A010: .4byte gUnknown_02023A60
-_0803A014: .4byte gUnknown_02024A60
- thumb_func_end sub_8039FE0
-
- thumb_func_start sub_803A018
-sub_803A018: @ 803A018
- push {lr}
- ldr r2, _0803A02C @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A02C: .4byte gUnknown_020238C8
- thumb_func_end sub_803A018
-
- thumb_func_start sub_803A030
-sub_803A030: @ 803A030
- push {lr}
- ldr r3, _0803A054 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A054: .4byte gUnknown_020238C8
- thumb_func_end sub_803A030
-
- thumb_func_start dp01t_29_4_blink
-dp01t_29_4_blink: @ 803A058
- push {r4,lr}
- ldr r3, _0803A080 @ =gSprites
- ldr r2, _0803A084 @ =gUnknown_02024BE0
- ldr r4, _0803A088 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _0803A08C
- bl dp01_tbl4_exec_completed
- b _0803A0B6
- .align 2, 0
-_0803A080: .4byte gSprites
-_0803A084: .4byte gUnknown_02024BE0
-_0803A088: .4byte gUnknown_02024A60
-_0803A08C:
- ldr r1, _0803A0BC @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _0803A0C0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A0C4 @ =dp01t_0F_4_move_anim
- str r1, [r0]
-_0803A0B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A0BC: .4byte gUnknown_02024E6D
-_0803A0C0: .4byte gUnknown_03004330
-_0803A0C4: .4byte dp01t_0F_4_move_anim
- thumb_func_end dp01t_29_4_blink
-
- thumb_func_start sub_803A0C8
-sub_803A0C8: @ 803A0C8
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A0C8
-
- thumb_func_start sub_803A0D4
-sub_803A0D4: @ 803A0D4
- push {r4,lr}
- ldr r4, _0803A110 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _0803A0E8
- movs r3, 0xC0
-_0803A0E8:
- ldr r2, _0803A114 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl4_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A110: .4byte gUnknown_02024A60
-_0803A114: .4byte gUnknown_02023A60
- thumb_func_end sub_803A0D4
-
- thumb_func_start sub_803A118
-sub_803A118: @ 803A118
- push {lr}
- ldr r2, _0803A140 @ =gUnknown_02023A60
- ldr r0, _0803A144 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A140: .4byte gUnknown_02023A60
-_0803A144: .4byte gUnknown_02024A60
- thumb_func_end sub_803A118
-
- thumb_func_start sub_803A148
-sub_803A148: @ 803A148
- push {lr}
- ldr r1, _0803A178 @ =gUnknown_02024A6A
- ldr r0, _0803A17C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803A180 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A178: .4byte gUnknown_02024A6A
-_0803A17C: .4byte gUnknown_02024A60
-_0803A180: .4byte gEnemyParty
- thumb_func_end sub_803A148
-
- thumb_func_start dp01t_2E_4_battle_intro
-dp01t_2E_4_battle_intro: @ 803A184
- push {lr}
- ldr r1, _0803A1AC @ =gUnknown_02023A60
- ldr r0, _0803A1B0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0803A1B4 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A1AC: .4byte gUnknown_02023A60
-_0803A1B0: .4byte gUnknown_02024A60
-_0803A1B4: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_4_battle_intro
-
- thumb_func_start sub_803A1B8
-sub_803A1B8: @ 803A1B8
- push {r4-r6,lr}
- ldr r5, _0803A294 @ =gUnknown_02024BE0
- ldr r6, _0803A298 @ =gUnknown_02024A60
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0803A29C @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0803A2A0 @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0803A2A4 @ =sub_803A3A8
- bl oamt_set_x3A_32
- ldr r0, _0803A2A8 @ =sub_803A2C4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0803A2AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r6]
- strh r0, [r1, 0x8]
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _0803A2B0 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803A276
- ldr r0, _0803A2B4 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _0803A2B8 @ =sub_8044CA0
- str r1, [r0]
-_0803A276:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0803A2BC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A2C0 @ =nullsub_47
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A294: .4byte gUnknown_02024BE0
-_0803A298: .4byte gUnknown_02024A60
-_0803A29C: .4byte gSprites
-_0803A2A0: .4byte sub_8078B34
-_0803A2A4: .4byte sub_803A3A8
-_0803A2A8: .4byte sub_803A2C4
-_0803A2AC: .4byte gTasks
-_0803A2B0: .4byte 0x02017810
-_0803A2B4: .4byte gUnknown_02024E68
-_0803A2B8: .4byte sub_8044CA0
-_0803A2BC: .4byte gUnknown_03004330
-_0803A2C0: .4byte nullsub_47
- thumb_func_end sub_803A1B8
-
- thumb_func_start sub_803A2C4
-sub_803A2C4: @ 803A2C4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r7, _0803A31C @ =gUnknown_02024A60
- ldrb r0, [r7]
- mov r9, r0
- ldr r1, _0803A320 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strb r0, [r7]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0803A2FE
- ldr r0, _0803A324 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803A330
-_0803A2FE:
- ldr r0, _0803A328 @ =gUnknown_02023A60
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _0803A32C @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- b _0803A370
- .align 2, 0
-_0803A31C: .4byte gUnknown_02024A60
-_0803A320: .4byte gTasks
-_0803A324: .4byte gUnknown_020239F8
-_0803A328: .4byte gUnknown_02023A60
-_0803A32C: .4byte gUnknown_02024A6A
-_0803A330:
- ldr r4, _0803A394 @ =gUnknown_02023A60
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r6, _0803A398 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- ldrb r0, [r7]
- movs r5, 0x2
- eors r0, r5
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- ldrb r0, [r7]
- eors r0, r5
- strb r0, [r7]
-_0803A370:
- ldr r1, _0803A39C @ =gUnknown_03004330
- ldr r2, _0803A3A0 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A3A4 @ =sub_8037840
- str r1, [r0]
- mov r0, r9
- strb r0, [r2]
- mov r0, r8
- bl DestroyTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A394: .4byte gUnknown_02023A60
-_0803A398: .4byte gUnknown_02024A6A
-_0803A39C: .4byte gUnknown_03004330
-_0803A3A0: .4byte gUnknown_02024A60
-_0803A3A4: .4byte sub_8037840
- thumb_func_end sub_803A2C4
-
- thumb_func_start sub_803A3A8
-sub_803A3A8: @ 803A3A8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x6]
- bl sub_8031B74
- ldrh r0, [r4, 0x38]
- ldr r1, _0803A3D4 @ =0x000003ff
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _0803A3D8 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A3D4: .4byte 0x000003ff
-_0803A3D8: .4byte 0xfffffc00
- thumb_func_end sub_803A3A8
-
- thumb_func_start sub_803A3DC
-sub_803A3DC: @ 803A3DC
- push {r4-r6,lr}
- ldr r1, _0803A404 @ =gUnknown_02023A60
- ldr r0, _0803A408 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803A40C
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803A40C
- bl dp01_tbl4_exec_completed
- b _0803A4C6
- .align 2, 0
-_0803A404: .4byte gUnknown_02023A60
-_0803A408: .4byte gUnknown_02024A60
-_0803A40C:
- ldr r3, _0803A45C @ =gUnknown_02024A60
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r4, _0803A460 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _0803A464 @ =gUnknown_02023A60
- ldrb r2, [r3]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- cmp r0, 0
- beq _0803A470
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 26
- lsrs r0, r1, 27
- cmp r0, 0x1
- bhi _0803A468
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- b _0803A4C6
- .align 2, 0
-_0803A45C: .4byte gUnknown_02024A60
-_0803A460: .4byte 0x02017810
-_0803A464: .4byte gUnknown_02023A60
-_0803A468:
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- strb r0, [r3, 0x1]
-_0803A470:
- adds r5, r6, 0
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _0803A4CC @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _0803A4D0 @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0803A4D4 @ =0x02017810
- adds r0, r3
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803A4BA
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_0803A4BA:
- ldr r0, _0803A4D8 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803A4DC @ =sub_803A4E0
- str r0, [r1]
-_0803A4C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A4CC: .4byte gUnknown_02023A64
-_0803A4D0: .4byte gUnknown_02024E68
-_0803A4D4: .4byte 0x02017810
-_0803A4D8: .4byte gUnknown_03004330
-_0803A4DC: .4byte sub_803A4E0
- thumb_func_end sub_803A3DC
-
- thumb_func_start sub_803A4E0
-sub_803A4E0: @ 803A4E0
- push {r4,lr}
- ldr r4, _0803A518 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0803A51C @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _0803A510
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl4_exec_completed
-_0803A510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A518: .4byte gUnknown_02024A60
-_0803A51C: .4byte 0x02017810
- thumb_func_end sub_803A4E0
-
- thumb_func_start sub_803A520
-sub_803A520: @ 803A520
- push {lr}
- ldr r0, _0803A558 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _0803A55C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803A54E
- ldr r2, _0803A560 @ =gTasks
- ldr r0, _0803A564 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0803A568 @ =sub_8044CA0
- str r1, [r0]
-_0803A54E:
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A558: .4byte gUnknown_02024A60
-_0803A55C: .4byte 0x02017810
-_0803A560: .4byte gTasks
-_0803A564: .4byte gUnknown_02024E68
-_0803A568: .4byte sub_8044CA0
- thumb_func_end sub_803A520
-
- thumb_func_start sub_803A56C
-sub_803A56C: @ 803A56C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A56C
-
- thumb_func_start sub_803A578
-sub_803A578: @ 803A578
- push {r4,lr}
- ldr r4, _0803A5C8 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _0803A5BE
- ldr r3, _0803A5CC @ =gSprites
- ldr r0, _0803A5D0 @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _0803A5D4 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_0803A5BE:
- bl dp01_tbl4_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A5C8: .4byte gUnknown_02024A60
-_0803A5CC: .4byte gSprites
-_0803A5D0: .4byte gUnknown_02024BE0
-_0803A5D4: .4byte gUnknown_02023A60
- thumb_func_end sub_803A578
-
- thumb_func_start bx_exec_buffer_A_ch0_tbl4
-bx_exec_buffer_A_ch0_tbl4: @ 803A5D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _0803A61C @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0803A630
- ldr r5, _0803A620 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _0803A624
- bl dp01_tbl4_exec_completed
- b _0803A630
- .align 2, 0
-_0803A61C: .4byte gUnknown_02024A60
-_0803A620: .4byte gUnknown_02023A60
-_0803A624:
- ldr r0, _0803A638 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803A63C @ =sub_8037FD8
- str r0, [r1]
-_0803A630:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A638: .4byte gUnknown_03004330
-_0803A63C: .4byte sub_8037FD8
- thumb_func_end bx_exec_buffer_A_ch0_tbl4
-
- thumb_func_start sub_803A640
-sub_803A640: @ 803A640
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A640
-
- thumb_func_start sub_803A64C
-sub_803A64C: @ 803A64C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A64C
-
- thumb_func_start sub_803A658
-sub_803A658: @ 803A658
- push {lr}
- ldr r1, _0803A674 @ =gUnknown_02023A60
- ldr r0, _0803A678 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0x3
- bne _0803A680
- ldr r0, _0803A67C @ =gUnknown_02024D26
- strb r2, [r0]
- b _0803A688
- .align 2, 0
-_0803A674: .4byte gUnknown_02023A60
-_0803A678: .4byte gUnknown_02024A60
-_0803A67C: .4byte gUnknown_02024D26
-_0803A680:
- ldr r0, _0803A6AC @ =gUnknown_02024D26
- movs r1, 0x3
- eors r1, r2
- strb r1, [r0]
-_0803A688:
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl4_exec_completed
- ldr r1, _0803A6B0 @ =gUnknown_03004330
- ldr r0, _0803A6B4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A6B8 @ =sub_8037F34
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0803A6AC: .4byte gUnknown_02024D26
-_0803A6B0: .4byte gUnknown_03004330
-_0803A6B4: .4byte gUnknown_02024A60
-_0803A6B8: .4byte sub_8037F34
- thumb_func_end sub_803A658
-
- thumb_func_start nullsub_48
-nullsub_48: @ 803A6BC
- bx lr
- thumb_func_end nullsub_48
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_803D1FC.s b/asm/rom_803D1FC.s
deleted file mode 100644
index e011d3c43..000000000
--- a/asm/rom_803D1FC.s
+++ /dev/null
@@ -1,5839 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ExecuteTableBasedItemEffect_
-ExecuteTableBasedItemEffect_: @ 803E18C
- push {r4,lr}
- sub sp, 0x4
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- str r4, [sp]
- bl sub_803E1B0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ExecuteTableBasedItemEffect_
-
- thumb_func_start sub_803E1B0
-sub_803E1B0: @ 803E1B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- mov r8, r0
- ldr r0, [sp, 0x5C]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- movs r0, 0x1
- str r0, [sp, 0x1C]
- movs r1, 0x6
- str r1, [sp, 0x24]
- movs r2, 0
- str r2, [sp, 0x2C]
- movs r3, 0x4
- str r3, [sp, 0x34]
- mov r0, r8
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803E240
- ldr r0, _0803E21C @ =gMain
- ldr r4, _0803E220 @ =0x0000043d
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E22C
- ldr r2, _0803E224 @ =gEnigmaBerries
- ldr r0, _0803E228 @ =gUnknown_02024E6C
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- b _0803E248
- .align 2, 0
-_0803E21C: .4byte gMain
-_0803E220: .4byte 0x0000043d
-_0803E224: .4byte gEnigmaBerries
-_0803E228: .4byte gUnknown_02024E6C
-_0803E22C:
- ldr r0, _0803E238 @ =gSaveBlock1
- ldr r5, _0803E23C @ =0x00003688
- adds r0, r5
- ldrb r0, [r0]
- b _0803E248
- .align 2, 0
-_0803E238: .4byte gSaveBlock1
-_0803E23C: .4byte 0x00003688
-_0803E240:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0803E248:
- str r0, [sp, 0x30]
- ldr r1, _0803E2A4 @ =gUnknown_02024C0B
- ldr r0, _0803E2A8 @ =gUnknown_02024E6C
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _0803E2AC @ =gMain
- ldr r1, _0803E2B0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0803E2E8
- ldr r0, _0803E2B4 @ =gUnknown_02024A60
- strb r2, [r0]
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x18]
- ldr r0, _0803E2B8 @ =gUnknown_02024A68
- ldr r4, [sp, 0x8]
- subs r4, 0xD
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- ldr r2, _0803E2BC @ =gUnknown_02024A6A
- lsls r0, r1, 1
- adds r0, r2
- ldrh r3, [r0]
- ldr r5, [sp, 0xC]
- lsls r0, r5, 16
- lsrs r1, r0, 16
- adds r5, r0, 0
- cmp r3, r1
- bne _0803E2C0
- ldr r0, [sp, 0x18]
- str r0, [sp, 0x34]
- b _0803E2F4
- .align 2, 0
-_0803E2A4: .4byte gUnknown_02024C0B
-_0803E2A8: .4byte gUnknown_02024E6C
-_0803E2AC: .4byte gMain
-_0803E2B0: .4byte 0x0000043d
-_0803E2B4: .4byte gUnknown_02024A60
-_0803E2B8: .4byte gUnknown_02024A68
-_0803E2BC: .4byte gUnknown_02024A6A
-_0803E2C0:
- ldr r1, [sp, 0x18]
- adds r1, 0x2
- str r1, [sp, 0x18]
- ldr r0, _0803E2E4 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- lsls r0, r1, 1
- adds r0, r2
- ldrh r1, [r0]
- lsrs r0, r5, 16
- cmp r1, r0
- bne _0803E2C0
- ldr r2, [sp, 0x18]
- lsls r0, r2, 24
- lsrs r0, 24
- str r0, [sp, 0x34]
- b _0803E2F4
- .align 2, 0
-_0803E2E4: .4byte gUnknown_02024A68
-_0803E2E8:
- ldr r0, _0803E310 @ =gUnknown_02024A60
- strb r1, [r0]
- movs r3, 0x4
- str r3, [sp, 0x34]
- ldr r4, [sp, 0x8]
- subs r4, 0xD
-_0803E2F4:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, 0xA5
- bhi _0803E36C
- ldr r1, _0803E314 @ =gItemEffectTable
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0803E318
- ldr r4, [sp, 0x8]
- cmp r4, 0xAF
- beq _0803E31E
- b _0803E36C
- .align 2, 0
-_0803E310: .4byte gUnknown_02024A60
-_0803E314: .4byte gItemEffectTable
-_0803E318:
- ldr r5, [sp, 0x8]
- cmp r5, 0xAF
- bne _0803E372
-_0803E31E:
- ldr r0, _0803E340 @ =gMain
- ldr r1, _0803E344 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E350
- ldr r0, _0803E348 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803E34C @ =gUnknown_02024DF8
- adds r0, r1
- b _0803E372
- .align 2, 0
-_0803E340: .4byte gMain
-_0803E344: .4byte 0x0000043d
-_0803E348: .4byte gUnknown_02024A60
-_0803E34C: .4byte gUnknown_02024DF8
-_0803E350:
- ldr r2, _0803E358 @ =gSaveBlock1 + 0x3676
- str r2, [sp, 0x20]
- b _0803E374
- .align 2, 0
-_0803E358: .4byte gSaveBlock1 + 0x3676
-_0803E35C:
- mov r0, r8
- movs r2, 0
- ldr r3, [sp, 0xC]
- bl BeginEvolutionScene
- movs r0, 0
- bl _0803F15C
-_0803E36C:
- movs r0, 0x1
- bl _0803F15C
-_0803E372:
- str r0, [sp, 0x20]
-_0803E374:
- movs r3, 0
- str r3, [sp, 0x18]
-_0803E378:
- ldr r4, [sp, 0x18]
- cmp r4, 0x5
- bls _0803E382
- bl _0803F14C
-_0803E382:
- lsls r0, r4, 2
- ldr r1, _0803E38C @ =_0803E390
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803E38C: .4byte _0803E390
- .align 2, 0
-_0803E390:
- .4byte _0803E3A8
- .4byte _0803E474
- .4byte _0803E508
- .4byte _0803E59C
- .4byte _0803E77C
- .4byte _0803EE1E
-_0803E3A8:
- ldr r5, [sp, 0x20]
- ldr r0, [sp, 0x18]
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _0803E3F0
- ldr r0, _0803E460 @ =gMain
- ldr r1, _0803E464 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E3F0
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803E3F0
- ldr r1, _0803E468 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- beq _0803E3F0
- ldr r0, _0803E46C @ =0xfff0ffff
- ands r1, r0
- str r1, [r2]
- movs r3, 0
- str r3, [sp, 0x1C]
-_0803E3F0:
- ldrb r1, [r6]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0803E41E
- ldr r1, _0803E468 @ =gBattleMons
- ldr r0, _0803E470 @ =gUnknown_02024A60
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 13
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0803E41E
- orrs r1, r3
- str r1, [r2]
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E41E:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E42C
- bl _0803F14C
-_0803E42C:
- ldr r6, _0803E468 @ =gBattleMons
- ldr r5, _0803E470 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E446
- bl _0803F14C
-_0803E446:
- adds r0, r2, r3
- strb r0, [r1, 0x19]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- bgt _0803E45A
- b _0803E74E
-_0803E45A:
- movs r0, 0xC
- strb r0, [r1, 0x19]
- b _0803E74E
- .align 2, 0
-_0803E460: .4byte gMain
-_0803E464: .4byte 0x0000043d
-_0803E468: .4byte gBattleMons
-_0803E46C: .4byte 0xfff0ffff
-_0803E470: .4byte gUnknown_02024A60
-_0803E474:
- ldr r0, [sp, 0x20]
- ldr r1, [sp, 0x18]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _0803E4BA
- ldr r7, _0803E500 @ =gBattleMons
- ldr r5, _0803E504 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1A]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0803E4BA
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1A]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E4B6
- movs r0, 0xC
- strb r0, [r1, 0x1A]
-_0803E4B6:
- movs r2, 0
- str r2, [sp, 0x1C]
-_0803E4BA:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E4C8
- bl _0803F14C
-_0803E4C8:
- ldr r6, _0803E500 @ =gBattleMons
- ldr r5, _0803E504 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E4E2
- bl _0803F14C
-_0803E4E2:
- adds r0, r2, r3
- strb r0, [r1, 0x1B]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E4F8
- movs r0, 0xC
- strb r0, [r1, 0x1B]
-_0803E4F8:
- movs r3, 0
- str r3, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E500: .4byte gBattleMons
-_0803E504: .4byte gUnknown_02024A60
-_0803E508:
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x18]
- adds r2, r4, r5
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _0803E54E
- ldr r7, _0803E594 @ =gBattleMons
- ldr r5, _0803E598 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1E]
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0803E54E
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1E]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E54A
- movs r0, 0xC
- strb r0, [r1, 0x1E]
-_0803E54A:
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E54E:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E55C
- bl _0803F14C
-_0803E55C:
- ldr r6, _0803E594 @ =gBattleMons
- ldr r5, _0803E598 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1C]
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E576
- bl _0803F14C
-_0803E576:
- adds r0, r2, r3
- strb r0, [r1, 0x1C]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E58C
- movs r0, 0xC
- strb r0, [r1, 0x1C]
-_0803E58C:
- movs r1, 0
- str r1, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E594: .4byte gBattleMons
-_0803E598: .4byte gUnknown_02024A60
-_0803E59C:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r2, r3, r4
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _0803E5E4
- ldr r5, _0803E758 @ =gUnknown_02024C80
- ldr r4, _0803E75C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _0803E5E4
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x5
- strb r0, [r1, 0x2]
- movs r5, 0
- str r5, [sp, 0x1C]
-_0803E5E4:
- ldrb r1, [r6]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803E646
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- cmp r0, 0x64
- beq _0803E646
- ldr r5, _0803E760 @ =gExperienceTables
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0803E764 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r5
- ldr r0, [r4]
- str r0, [sp]
- mov r0, r8
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E646:
- ldrb r1, [r6]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0803E682
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x7
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E682
- ldr r1, [sp, 0x34]
- cmp r1, 0x4
- beq _0803E67E
- ldr r1, _0803E768 @ =gBattleMons
- movs r0, 0x58
- ldr r3, [sp, 0x34]
- adds r2, r3, 0
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _0803E76C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
-_0803E67E:
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E682:
- ldrb r1, [r6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0803E6A2
- ldr r2, _0803E770 @ =0x00000f88
- mov r0, r8
- ldr r1, [sp, 0xC]
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6A2
- movs r5, 0
- str r5, [sp, 0x1C]
-_0803E6A2:
- ldrb r1, [r6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803E6C2
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x10
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6C2
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E6C2:
- ldrb r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803E6E2
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x20
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6E2
- movs r1, 0
- str r1, [sp, 0x1C]
-_0803E6E2:
- ldrb r1, [r6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E702
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x40
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E702
- movs r2, 0
- str r2, [sp, 0x1C]
-_0803E702:
- ldrb r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0803E710
- bl _0803F14C
-_0803E710:
- ldr r0, _0803E774 @ =gMain
- ldr r3, _0803E778 @ =0x0000043d
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0803E724
- bl _0803F14C
-_0803E724:
- ldr r4, [sp, 0x34]
- cmp r4, 0x4
- bne _0803E72E
- bl _0803F14C
-_0803E72E:
- ldr r1, _0803E768 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0803E746
- bl _0803F14C
-_0803E746:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
-_0803E74E:
- movs r5, 0
- str r5, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E758: .4byte gUnknown_02024C80
-_0803E75C: .4byte gUnknown_02024A60
-_0803E760: .4byte gExperienceTables
-_0803E764: .4byte gBaseStats
-_0803E768: .4byte gBattleMons
-_0803E76C: .4byte 0xf7ffffff
-_0803E770: .4byte 0x00000f88
-_0803E774: .4byte gMain
-_0803E778: .4byte 0x0000043d
-_0803E77C:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x18]
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r10, r0
- movs r0, 0x20
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- beq _0803E854
- movs r0, 0xDF
- ands r3, r0
- mov r10, r3
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803E880 @ =gUnknown_08208238
- ldr r4, [sp, 0x10]
- adds r1, r4, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r4, 1
- lsrs r0, r1
- str r0, [sp]
- adds r5, r4, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- ldr r0, [sp]
- cmp r0, 0x2
- bhi _0803E854
- ldr r0, [sp, 0x28]
- cmp r0, 0x4
- bls _0803E854
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803E884 @ =gUnknown_08208240
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl SetMonData
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x28]
- subs r0, r3
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E854:
- movs r5, 0
- str r5, [sp, 0x28]
- mov r0, r10
- cmp r0, 0
- bne _0803E862
- bl _0803F14C
-_0803E862:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _0803E86E
- b _0803EE0A
-_0803E86E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0803E876
- b _0803EE0A
-_0803E876:
- lsls r0, r2, 2
- ldr r1, _0803E888 @ =_0803E88C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803E880: .4byte gUnknown_08208238
-_0803E884: .4byte gUnknown_08208240
-_0803E888: .4byte _0803E88C
- .align 2, 0
-_0803E88C:
- .4byte _0803E8AC
- .4byte _0803E8AC
- .4byte _0803E934
- .4byte _0803EB5C
- .4byte _0803EE0A
- .4byte _0803EE0A
- .4byte _0803EE0A
- .4byte _0803EDF4
-_0803E8AC:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803E8EC @ =0x000001fd
- cmp r5, r0
- bls _0803E8BE
- b _0803E36C
-_0803E8BE:
- ldr r0, _0803E8F0 @ =gUnknown_082082F2
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- cmp r1, 0x63
- bls _0803E8D8
- b _0803EE0A
-_0803E8D8:
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _0803E8F4
- adds r0, 0x64
- subs r4, r0, r1
- b _0803E8F6
- .align 2, 0
-_0803E8EC: .4byte 0x000001fd
-_0803E8F0: .4byte gUnknown_082082F2
-_0803E8F4:
- adds r4, r0, 0
-_0803E8F6:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0803E904
- adds r0, r4, r0
- subs r4, r0, r1
-_0803E904:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0803E930 @ =gUnknown_082082F2
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- movs r4, 0
- str r4, [sp, 0x1C]
- b _0803EE0A
- .align 2, 0
-_0803E930: .4byte gUnknown_082082F2
-_0803E934:
- movs r0, 0x10
- mov r5, r10
- ands r0, r5
- cmp r0, 0
- beq _0803E9F4
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0803E954
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803E954:
- ldr r0, _0803E99C @ =gMain
- ldr r1, _0803E9A0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r4, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EA0A
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803E9B4
- ldr r2, _0803E9A4 @ =gUnknown_02024C0C
- ldr r1, _0803E9A8 @ =gBitTable
- ldr r3, [sp, 0x34]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _0803E9AC @ =gUnknown_02024A6A
- lsls r0, r3, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, [sp, 0x34]
- bl CopyPlayerPartyMonToBattleData
- ldr r0, _0803E9B0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- b _0803E9CC
- .align 2, 0
-_0803E99C: .4byte gMain
-_0803E9A0: .4byte 0x0000043d
-_0803E9A4: .4byte gUnknown_02024C0C
-_0803E9A8: .4byte gBitTable
-_0803E9AC: .4byte gUnknown_02024A6A
-_0803E9B0: .4byte gUnknown_02024A60
-_0803E9B4:
- ldr r3, _0803E9E4 @ =gUnknown_02024C0C
- ldr r1, _0803E9E8 @ =gBitTable
- ldr r2, _0803E9EC @ =gUnknown_02024A60
- ldrb r0, [r2]
- eors r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r3]
- bics r0, r1
- strb r0, [r3]
- ldrb r0, [r2]
-_0803E9CC:
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803EA0A
- ldr r1, _0803E9F0 @ =gUnknown_030042E0
- ldrb r0, [r1, 0x4]
- cmp r0, 0xFE
- bhi _0803EA0A
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0803EA0A
- .align 2, 0
-_0803E9E4: .4byte gUnknown_02024C0C
-_0803E9E8: .4byte gBitTable
-_0803E9EC: .4byte gUnknown_02024A60
-_0803E9F0: .4byte gUnknown_030042E0
-_0803E9F4:
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _0803EA0A
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803EA0A:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r4, [sp, 0x20]
- adds r1, r4, r1
- ldrb r1, [r1]
- str r1, [sp]
- adds r0, r1, 0
- cmp r0, 0xFE
- beq _0803EA4C
- cmp r0, 0xFE
- bhi _0803EA2C
- cmp r0, 0xFD
- beq _0803EA62
- b _0803EA6C
-_0803EA2C:
- cmp r1, 0xFF
- bne _0803EA6C
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- subs r4, r0
- str r4, [sp]
- b _0803EA6C
-_0803EA4C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- lsrs r0, 1
- str r0, [sp]
- cmp r0, 0
- bne _0803EA6C
- movs r0, 0x1
- b _0803EA6A
-_0803EA62:
- ldr r0, _0803EB24 @ =0x02000000
- ldr r5, _0803EB28 @ =0x000160fa
- adds r0, r5
- ldrb r0, [r0]
-_0803EA6A:
- str r0, [sp]
-_0803EA6C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- beq _0803EB4C
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bne _0803EB40
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- cmp r1, r0
- bls _0803EAB8
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- str r0, [sp]
-_0803EAB8:
- mov r0, r8
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- ldr r0, _0803EB2C @ =gMain
- ldr r1, _0803EB30 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EB48
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803EB48
- ldr r1, _0803EB34 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldr r1, [sp]
- strh r1, [r0, 0x28]
- movs r0, 0x10
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- bne _0803EB48
- ldr r4, _0803EB38 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803EB48
- ldr r1, _0803EB3C @ =gUnknown_030042E0
- ldrb r0, [r1, 0x3]
- cmp r0, 0xFE
- bhi _0803EB08
- adds r0, 0x1
- strb r0, [r1, 0x3]
-_0803EB08:
- ldrb r5, [r4]
- add r0, sp, 0x34
- ldrb r0, [r0]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- strb r5, [r4]
- b _0803EB48
- .align 2, 0
-_0803EB24: .4byte 0x02000000
-_0803EB28: .4byte 0x000160fa
-_0803EB2C: .4byte gMain
-_0803EB30: .4byte 0x0000043d
-_0803EB34: .4byte gBattleMons
-_0803EB38: .4byte gUnknown_02024A60
-_0803EB3C: .4byte gUnknown_030042E0
-_0803EB40:
- ldr r1, _0803EB58 @ =gUnknown_02024BEC
- ldr r0, [sp]
- negs r0, r0
- str r0, [r1]
-_0803EB48:
- movs r1, 0
- str r1, [sp, 0x1C]
-_0803EB4C:
- movs r0, 0xEF
- mov r2, r10
- ands r2, r0
- mov r10, r2
- b _0803EE0A
- .align 2, 0
-_0803EB58: .4byte gUnknown_02024BEC
-_0803EB5C:
- movs r7, 0x2
- mov r0, r10
- ands r0, r7
- cmp r0, 0
- beq _0803EB68
- b _0803ECB8
-_0803EB68:
- movs r5, 0
- ldr r3, [sp, 0x24]
- adds r3, 0x1
- str r3, [sp, 0x38]
-_0803EB70:
- movs r4, 0x11
- adds r4, r5
- mov r9, r4
- mov r0, r8
- mov r1, r9
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- adds r7, r5, 0
- adds r7, 0xD
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r5, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- beq _0803EC92
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x24]
- adds r0, r2, r3
- ldrb r0, [r0]
- adds r0, r1, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _0803EC28
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_0803EC28:
- mov r0, r8
- mov r1, r9
- mov r2, sp
- bl SetMonData
- ldr r0, _0803ECA4 @ =gMain
- ldr r4, _0803ECA8 @ =0x0000043d
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EC8E
- ldr r0, [sp, 0x34]
- cmp r0, 0x4
- beq _0803EC8E
- ldr r4, _0803ECAC @ =gBattleMons
- movs r0, 0x58
- ldr r1, [sp, 0x34]
- adds r3, r1, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- cmp r1, 0
- bne _0803EC8E
- ldr r1, _0803ECB0 @ =gUnknown_02024CA8
- ldr r2, [sp, 0x34]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0803ECB4 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803EC8E
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_0803EC8E:
- movs r3, 0
- str r3, [sp, 0x1C]
-_0803EC92:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _0803EC9A
- b _0803EB70
-_0803EC9A:
- ldr r4, [sp, 0x38]
- lsls r0, r4, 24
-_0803EC9E:
- lsrs r0, 24
- str r0, [sp, 0x24]
- b _0803EE0A
- .align 2, 0
-_0803ECA4: .4byte gMain
-_0803ECA8: .4byte 0x0000043d
-_0803ECAC: .4byte gBattleMons
-_0803ECB0: .4byte gUnknown_02024CA8
-_0803ECB4: .4byte gBitTable
-_0803ECB8:
- ldr r6, [sp, 0x10]
- adds r6, 0x11
- mov r0, r8
- adds r1, r6, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r5, [sp, 0x10]
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp]
- cmp r2, r0
- bne _0803ED00
- b _0803EE0A
-_0803ED00:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r0, [sp, 0x20]
- adds r1, r0, r1
- ldrb r0, [r1]
- adds r0, r2, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _0803ED74
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_0803ED74:
- mov r0, r8
- adds r1, r6, 0
- mov r2, sp
- bl SetMonData
- ldr r0, _0803EDE0 @ =gMain
- ldr r1, _0803EDE4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0803EDD8
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803EDD8
- ldr r4, _0803EDE8 @ =gBattleMons
- movs r0, 0x58
- adds r3, r2, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0803EDD8
- ldr r1, _0803EDEC @ =gUnknown_02024CA8
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0803EDF0 @ =gBitTable
- ldr r5, [sp, 0x10]
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803EDD8
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_0803EDD8:
- movs r0, 0
- str r0, [sp, 0x1C]
- b _0803EE0A
- .align 2, 0
-_0803EDE0: .4byte gMain
-_0803EDE4: .4byte 0x0000043d
-_0803EDE8: .4byte gBattleMons
-_0803EDEC: .4byte gUnknown_02024CA8
-_0803EDF0: .4byte gBitTable
-_0803EDF4:
- mov r0, r8
- movs r1, 0x2
- ldr r2, [sp, 0x8]
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803EE0A
- bl _0803E35C
-_0803EE0A:
- ldr r1, [sp, 0x28]
- adds r1, 0x1
- str r1, [sp, 0x28]
- mov r2, r10
- lsrs r2, 1
- mov r10, r2
- cmp r2, 0
- beq _0803EE1C
- b _0803E862
-_0803EE1C:
- b _0803F14C
-_0803EE1E:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r10, r0
- movs r5, 0
- str r5, [sp, 0x28]
- cmp r0, 0
- bne _0803EE32
- b _0803F14C
-_0803EE32:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _0803EE3E
- b _0803F13A
-_0803EE3E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0803EE46
- b _0803F13A
-_0803EE46:
- lsls r0, r2, 2
- ldr r1, _0803EE50 @ =_0803EE54
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803EE50: .4byte _0803EE54
- .align 2, 0
-_0803EE54:
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EEF8
- .4byte _0803EFCC
- .4byte _0803F026
- .4byte _0803F07C
-_0803EE74:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803EEBC @ =0x000001fd
- cmp r5, r0
- bls _0803EE88
- bl _0803E36C
-_0803EE88:
- ldr r0, _0803EEC0 @ =gUnknown_082082F2
- ldr r4, [sp, 0x28]
- adds r4, 0x2
- adds r0, r4, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- adds r2, r4, 0
- cmp r1, 0x63
- bls _0803EEA6
- b _0803F13A
-_0803EEA6:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x24]
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _0803EEC4
- adds r0, 0x64
- subs r4, r0, r1
- b _0803EEC6
- .align 2, 0
-_0803EEBC: .4byte 0x000001fd
-_0803EEC0: .4byte gUnknown_082082F2
-_0803EEC4:
- adds r4, r0, 0
-_0803EEC6:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0803EED4
- adds r0, r4, r0
- subs r4, r0, r1
-_0803EED4:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0803EEF4 @ =gUnknown_082082F2
- adds r0, r2, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- movs r5, 0
- str r5, [sp, 0x1C]
- b _0803F130
- .align 2, 0
-_0803EEF4: .4byte gUnknown_082082F2
-_0803EEF8:
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803EFC0 @ =gUnknown_08208238
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r2, 1
- lsrs r0, r1
- str r0, [sp]
- cmp r0, 0x2
- bls _0803EF18
- b _0803F13A
-_0803EF18:
- adds r5, r2, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r1, _0803EFC4 @ =gUnknown_0820823C
- ldr r3, [sp, 0x10]
- adds r1, r3, r1
- ldrb r2, [r1]
- ands r2, r0
- str r2, [sp]
- ldr r0, _0803EFC8 @ =gUnknown_08208240
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r2, r0
- str r2, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl SetMonData
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- subs r0, r4
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- movs r4, 0
- str r4, [sp, 0x1C]
- b _0803F13A
- .align 2, 0
-_0803EFC0: .4byte gUnknown_08208238
-_0803EFC4: .4byte gUnknown_0820823C
-_0803EFC8: .4byte gUnknown_08208240
-_0803EFCC:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _0803EFDC
- b _0803F130
-_0803EFDC:
- ldr r5, [sp, 0x1C]
- cmp r5, 0
- beq _0803EFE4
- b _0803F130
-_0803EFE4:
- ldr r0, [sp, 0x2C]
- cmp r0, 0
- beq _0803EFEC
- b _0803F130
-_0803EFEC:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- str r5, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r4, r3, 24
- asrs r1, r4, 24
- cmp r1, 0
- ble _0803F0D0
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _0803F0D0
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r5, r0
- str r0, [sp, 0x4]
- adds r2, r4, 0
- b _0803F0DC
-_0803F026:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _0803F130
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bhi _0803F130
- ldr r2, [sp, 0x1C]
- cmp r2, 0
- bne _0803F130
- ldr r3, [sp, 0x2C]
- cmp r3, 0
- bne _0803F130
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x24]
- adds r0, r4, r5
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r0, [sp, 0x2C]
- lsls r5, r0, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _0803F076
- ldr r2, [sp, 0x30]
- cmp r2, 0x1B
- beq _0803F0BE
-_0803F076:
- ldr r3, [sp, 0x2C]
- lsls r2, r3, 24
- b _0803F0D4
-_0803F07C:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bls _0803F130
- ldr r4, [sp, 0x1C]
- cmp r4, 0
- bne _0803F130
- ldr r5, [sp, 0x2C]
- cmp r5, 0
- bne _0803F130
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r5, r3, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _0803F0D0
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _0803F0D0
-_0803F0BE:
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r4, r0
- str r0, [sp, 0x4]
- adds r2, r5, 0
- b _0803F0DC
-_0803F0D0:
- ldr r1, [sp, 0x2C]
- lsls r2, r1, 24
-_0803F0D4:
- asrs r1, r2, 24
- ldr r0, [sp, 0x4]
- adds r0, r1
- str r0, [sp, 0x4]
-_0803F0DC:
- cmp r2, 0
- ble _0803F112
- mov r0, r8
- movs r1, 0x26
- movs r2, 0
- bl GetMonData
- cmp r0, 0xB
- bne _0803F0F4
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0803F0F4:
- mov r0, r8
- movs r1, 0x23
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0803F112
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0803F112:
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bge _0803F11C
- movs r0, 0
- str r0, [sp, 0x4]
-_0803F11C:
- ldr r0, [sp, 0x4]
- cmp r0, 0xFF
- ble _0803F126
- movs r0, 0xFF
- str r0, [sp, 0x4]
-_0803F126:
- add r2, sp, 0x4
- mov r0, r8
- movs r1, 0x20
- bl SetMonData
-_0803F130:
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
-_0803F13A:
- ldr r2, [sp, 0x28]
- adds r2, 0x1
- str r2, [sp, 0x28]
- mov r3, r10
- lsrs r3, 1
- mov r10, r3
- cmp r3, 0
- beq _0803F14C
- b _0803EE32
-_0803F14C:
- ldr r4, [sp, 0x18]
- adds r4, 0x1
- str r4, [sp, 0x18]
- cmp r4, 0x5
- bgt _0803F15A
- bl _0803E378
-_0803F15A:
- ldr r0, [sp, 0x1C]
-_0803F15C:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803E1B0
-
- thumb_func_start HealStatusConditions
-HealStatusConditions: @ 803F16C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r4, r2, 0
- lsls r3, 24
- lsrs r6, r3, 24
- movs r1, 0x37
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- ands r0, r4
- cmp r0, 0
- beq _0803F1D0
- mvns r4, r4
- ands r1, r4
- str r1, [sp]
- adds r0, r5, 0
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- ldr r0, _0803F1C4 @ =gMain
- ldr r1, _0803F1C8 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803F1BE
- cmp r6, 0x4
- beq _0803F1BE
- ldr r0, _0803F1CC @ =gBattleMons
- movs r1, 0x58
- muls r1, r6
- adds r0, 0x4C
- adds r1, r0
- ldr r0, [r1]
- ands r0, r4
- str r0, [r1]
-_0803F1BE:
- movs r0, 0
- b _0803F1D2
- .align 2, 0
-_0803F1C4: .4byte gMain
-_0803F1C8: .4byte 0x0000043d
-_0803F1CC: .4byte gBattleMons
-_0803F1D0:
- movs r0, 0x1
-_0803F1D2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end HealStatusConditions
-
- thumb_func_start sub_803F1DC
-sub_803F1DC: @ 803F1DC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r7, 0x6
- ldr r1, _0803F204 @ =gItemEffectTable
- adds r0, r3, 0
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0803F208
- cmp r3, 0xAF
- beq _0803F20C
-_0803F200:
- movs r0, 0
- b _0803F31C
- .align 2, 0
-_0803F204: .4byte gItemEffectTable
-_0803F208:
- cmp r3, 0xAF
- bne _0803F21A
-_0803F20C:
- ldr r0, _0803F22C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803F230 @ =gUnknown_02024DF8
- adds r0, r1
-_0803F21A:
- mov r12, r0
- movs r2, 0
-_0803F21E:
- cmp r2, 0x4
- beq _0803F23E
- cmp r2, 0x4
- ble _0803F234
- cmp r2, 0x5
- beq _0803F2C8
- b _0803F312
- .align 2, 0
-_0803F22C: .4byte gUnknown_02024A60
-_0803F230: .4byte gUnknown_02024DF8
-_0803F234:
- cmp r2, 0
- blt _0803F312
- cmp r2, r4
- bne _0803F312
- b _0803F200
-_0803F23E:
- mov r0, r12
- ldrb r3, [r0, 0x4]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0803F24E
- movs r0, 0xDF
- ands r3, r0
-_0803F24E:
- movs r6, 0
- cmp r3, 0
- beq _0803F312
-_0803F254:
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0803F2B4
- cmp r6, 0x7
- bhi _0803F2B4
- lsls r0, r6, 2
- ldr r1, _0803F26C @ =_0803F270
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803F26C: .4byte _0803F270
- .align 2, 0
-_0803F270:
- .4byte _0803F29C
- .4byte _0803F29C
- .4byte _0803F290
- .4byte _0803F29C
- .4byte _0803F2B4
- .4byte _0803F2B4
- .4byte _0803F2B4
- .4byte _0803F2B0
-_0803F290:
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _0803F29C
- movs r0, 0xEF
- ands r3, r0
-_0803F29C:
- cmp r2, r4
- bne _0803F2A8
- adds r0, r3, 0
- ands r0, r5
- cmp r0, 0
- bne _0803F31A
-_0803F2A8:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _0803F2B4
-_0803F2B0:
- cmp r2, r4
- beq _0803F200
-_0803F2B4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsrs r3, 1
- cmp r2, r4
- bne _0803F2C2
- lsrs r5, 1
-_0803F2C2:
- cmp r3, 0
- bne _0803F254
- b _0803F312
-_0803F2C8:
- mov r0, r12
- ldrb r3, [r0, 0x5]
- movs r6, 0
-_0803F2CE:
- cmp r3, 0
- beq _0803F312
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0803F302
- cmp r6, 0
- blt _0803F302
- cmp r6, 0x6
- ble _0803F2E8
- cmp r6, 0x7
- beq _0803F2FC
- b _0803F302
-_0803F2E8:
- cmp r2, r4
- bne _0803F2F4
- adds r0, r3, 0
- ands r0, r5
- cmp r0, 0
- bne _0803F31A
-_0803F2F4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _0803F302
-_0803F2FC:
- cmp r2, r4
- bne _0803F302
- b _0803F200
-_0803F302:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsrs r3, 1
- cmp r2, r4
- bne _0803F2CE
- lsrs r5, 1
- b _0803F2CE
-_0803F312:
- adds r2, 0x1
- cmp r2, 0x5
- bgt _0803F31A
- b _0803F21E
-_0803F31A:
- adds r0, r7, 0
-_0803F31C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803F1DC
-
- thumb_func_start sub_803F324
-sub_803F324: @ 803F324
- push {lr}
- ldr r2, _0803F358 @ =gUnknown_02024C08
- ldr r1, _0803F35C @ =gUnknown_02024E6C
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r3, _0803F360 @ =gUnknown_030041C0
- ldr r2, _0803F364 @ =gUnknown_08400F58
- ldr r1, _0803F368 @ =gUnknown_082082F8
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r0]
- adds r0, r3, 0
- bl StringCopy
- ldr r0, _0803F36C @ =gUnknown_03004290
- ldr r1, _0803F370 @ =gUnknown_083FFDB3
- bl StringCopy
- ldr r0, _0803F374 @ =gUnknown_083FFDD3
- bl get_battle_strings_
- pop {r0}
- bx r0
- .align 2, 0
-_0803F358: .4byte gUnknown_02024C08
-_0803F35C: .4byte gUnknown_02024E6C
-_0803F360: .4byte gUnknown_030041C0
-_0803F364: .4byte gUnknown_08400F58
-_0803F368: .4byte gUnknown_082082F8
-_0803F36C: .4byte gUnknown_03004290
-_0803F370: .4byte gUnknown_083FFDB3
-_0803F374: .4byte gUnknown_083FFDD3
- thumb_func_end sub_803F324
-
- thumb_func_start sub_803F378
-sub_803F378: @ 803F378
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803F3C0
- ldr r0, _0803F3A8 @ =gMain
- ldr r1, _0803F3AC @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803F3B8
- ldr r2, _0803F3B0 @ =gUnknown_02024E6C
- ldrb r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803F3B4 @ =gUnknown_02024DF8
- adds r7, r0, r1
- b _0803F3CC
- .align 2, 0
-_0803F3A8: .4byte gMain
-_0803F3AC: .4byte 0x0000043d
-_0803F3B0: .4byte gUnknown_02024E6C
-_0803F3B4: .4byte gUnknown_02024DF8
-_0803F3B8:
- ldr r7, _0803F3BC @ =gSaveBlock1 + 0x3676
- b _0803F3CA
- .align 2, 0
-_0803F3BC: .4byte gSaveBlock1 + 0x3676
-_0803F3C0:
- ldr r1, _0803F404 @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r7, [r0]
-_0803F3CA:
- ldr r2, _0803F408 @ =gUnknown_02024E6C
-_0803F3CC:
- ldr r1, _0803F40C @ =gUnknown_02024C0B
- ldrb r0, [r2]
- strb r0, [r1]
- movs r5, 0
- ldr r0, _0803F410 @ =gUnknown_02024C07
- mov r8, r0
- movs r6, 0
-_0803F3DA:
- adds r4, r7, r5
- ldrb r1, [r4]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _0803F3EC
- adds r0, r6, 0
- bl sub_803F324
-_0803F3EC:
- ldrb r1, [r4]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _0803F422
- cmp r5, 0
- beq _0803F414
- adds r0, r6, 0x1
- bl sub_803F324
- b _0803F422
- .align 2, 0
-_0803F404: .4byte gItemEffectTable
-_0803F408: .4byte gUnknown_02024E6C
-_0803F40C: .4byte gUnknown_02024C0B
-_0803F410: .4byte gUnknown_02024C07
-_0803F414:
- ldr r0, _0803F450 @ =gUnknown_02024E6C
- ldrb r0, [r0]
- mov r1, r8
- strb r0, [r1]
- ldr r0, _0803F454 @ =gUnknown_083FEE92
- bl get_battle_strings_
-_0803F422:
- adds r6, 0x2
- adds r5, 0x1
- cmp r5, 0x2
- ble _0803F3DA
- ldrb r1, [r7, 0x3]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0803F442
- ldr r1, _0803F458 @ =gUnknown_02024C07
- ldr r0, _0803F450 @ =gUnknown_02024E6C
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0803F45C @ =gUnknown_083FEE5D
- bl get_battle_strings_
-_0803F442:
- ldr r0, _0803F460 @ =gUnknown_020238CC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803F450: .4byte gUnknown_02024E6C
-_0803F454: .4byte gUnknown_083FEE92
-_0803F458: .4byte gUnknown_02024C07
-_0803F45C: .4byte gUnknown_083FEE5D
-_0803F460: .4byte gUnknown_020238CC
- thumb_func_end sub_803F378
-
- thumb_func_start GetNature
-GetNature: @ 803F464
- push {lr}
- movs r1, 0
- movs r2, 0
- bl GetMonData
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNature
-
- thumb_func_start GetNatureFromPersonality
-GetNatureFromPersonality: @ 803F47C
- push {lr}
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNatureFromPersonality
-
- thumb_func_start GetEvolutionTargetSpecies
-GetEvolutionTargetSpecies: @ 803F48C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- movs r0, 0
- mov r10, r0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- mov r0, r8
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x17
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- lsrs r4, 16
- str r4, [sp, 0x10]
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0xAF
- bne _0803F500
- ldr r0, _0803F4F8 @ =gSaveBlock1
- ldr r1, _0803F4FC @ =0x00003688
- adds r0, r1
- ldrb r0, [r0]
- b _0803F508
- .align 2, 0
-_0803F4F8: .4byte gSaveBlock1
-_0803F4FC: .4byte 0x00003688
-_0803F500:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0803F508:
- cmp r0, 0x26
- bne _0803F514
- cmp r5, 0x3
- beq _0803F514
- movs r0, 0
- b _0803F7A4
-_0803F514:
- cmp r5, 0x1
- bne _0803F51A
- b _0803F734
-_0803F51A:
- cmp r5, 0x1
- bgt _0803F524
- cmp r5, 0
- beq _0803F538
- b _0803F7A2
-_0803F524:
- cmp r5, 0x3
- ble _0803F52A
- b _0803F7A2
-_0803F52A:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r3, _0803F534 @ =gEvolutionTable
- lsls r6, r7, 2
- b _0803F782
- .align 2, 0
-_0803F534: .4byte gEvolutionTable
-_0803F538:
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r6, r7, 2
-_0803F55E:
- ldr r1, _0803F584 @ =gEvolutionTable
- ldr r0, [sp, 0x4]
- lsls r2, r0, 3
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r2, r0
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- adds r3, r1, 0
- adds r4, r2, 0
- cmp r0, 0xE
- bls _0803F57A
- b _0803F726
-_0803F57A:
- lsls r0, 2
- ldr r1, _0803F588 @ =_0803F58C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803F584: .4byte gEvolutionTable
-_0803F588: .4byte _0803F58C
- .align 2, 0
-_0803F58C:
- .4byte _0803F5C8
- .4byte _0803F5DA
- .4byte _0803F5FC
- .4byte _0803F62C
- .4byte _0803F726
- .4byte _0803F726
- .4byte _0803F726
- .4byte _0803F63C
- .4byte _0803F666
- .4byte _0803F690
- .4byte _0803F6BE
- .4byte _0803F6DE
- .4byte _0803F702
- .4byte _0803F726
- .4byte _0803F712
-_0803F5C8:
- ldr r1, [sp, 0x8]
- cmp r1, 0xDB
- bhi _0803F5D0
- b _0803F726
-_0803F5D0:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r0, r3
- b _0803F61C
-_0803F5DA:
- bl RtcCalcLocalTime
- ldr r0, _0803F5F8 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- subs r0, 0xC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bls _0803F5EE
- b _0803F726
-_0803F5EE:
- ldr r2, [sp, 0x8]
- cmp r2, 0xDB
- bhi _0803F5F6
- b _0803F726
-_0803F5F6:
- b _0803F612
- .align 2, 0
-_0803F5F8: .4byte gLocalTime
-_0803F5FC:
- bl RtcCalcLocalTime
- ldr r0, _0803F624 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- cmp r0, 0xB
- bls _0803F60A
- b _0803F726
-_0803F60A:
- ldr r0, [sp, 0x8]
- cmp r0, 0xDB
- bhi _0803F612
- b _0803F726
-_0803F612:
- ldr r1, _0803F628 @ =gEvolutionTable
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r0, r1
-_0803F61C:
- ldrh r0, [r0, 0x4]
- mov r10, r0
- b _0803F726
- .align 2, 0
-_0803F624: .4byte gLocalTime
-_0803F628: .4byte gEvolutionTable
-_0803F62C:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- bhi _0803F726
- b _0803F722
-_0803F63C:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bls _0803F726
- b _0803F6B8
-_0803F666:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bne _0803F726
- b _0803F6B8
-_0803F690:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r5, r0, r3
- ldrh r0, [r5, 0x2]
- cmp r0, r9
- bhi _0803F726
- mov r0, r8
- movs r1, 0x3B
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x3C
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bcs _0803F726
-_0803F6B8:
- ldrh r5, [r5, 0x4]
- mov r10, r5
- b _0803F726
-_0803F6BE:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r4, r0, r3
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bhi _0803F726
- ldr r0, [sp, 0x10]
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _0803F726
- b _0803F6FC
-_0803F6DE:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r4, r0, r3
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bhi _0803F726
- ldr r0, [sp, 0x10]
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _0803F726
-_0803F6FC:
- ldrh r4, [r4, 0x4]
- mov r10, r4
- b _0803F726
-_0803F702:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- bhi _0803F726
- b _0803F722
-_0803F712:
- adds r0, r6, r7
- lsls r0, 3
- adds r0, r4, r0
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- ldr r2, [sp, 0xC]
- cmp r0, r2
- bhi _0803F726
-_0803F722:
- ldrh r1, [r1, 0x4]
- mov r10, r1
-_0803F726:
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0x4
- bgt _0803F732
- b _0803F55E
-_0803F732:
- b _0803F7A2
-_0803F734:
- lsls r6, r7, 2
- ldr r1, _0803F778 @ =gEvolutionTable
- adds r0, r6, r7
- lsls r0, 3
- adds r4, r0, r1
- mov r5, sp
- movs r1, 0x4
- str r1, [sp, 0x4]
-_0803F744:
- ldrh r0, [r4]
- cmp r0, 0x5
- beq _0803F764
- cmp r0, 0x6
- bne _0803F768
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5]
- cmp r0, r1
- bne _0803F768
- movs r0, 0
- strh r0, [r5]
- mov r0, r8
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_0803F764:
- ldrh r2, [r4, 0x4]
- mov r10, r2
-_0803F768:
- adds r4, 0x8
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0
- bge _0803F744
- b _0803F7A2
- .align 2, 0
-_0803F778: .4byte gEvolutionTable
-_0803F77C:
- ldrh r1, [r1, 0x4]
- mov r10, r1
- b _0803F7A2
-_0803F782:
- adds r0, r6, r7
- ldr r1, [sp, 0x4]
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r3
- ldrh r0, [r1]
- cmp r0, 0x7
- bne _0803F798
- ldrh r0, [r1, 0x2]
- cmp r0, r9
- beq _0803F77C
-_0803F798:
- ldr r2, [sp, 0x4]
- adds r2, 0x1
- str r2, [sp, 0x4]
- cmp r2, 0x4
- ble _0803F782
-_0803F7A2:
- mov r0, r10
-_0803F7A4:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetEvolutionTargetSpecies
-
- thumb_func_start HoennPokedexNumToSpecies
-HoennPokedexNumToSpecies: @ 803F7B4
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F7F8
- movs r1, 0
- ldr r3, _0803F7F0 @ =gSpeciesToHoennPokedexNum
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F7E0
- movs r4, 0xCD
- lsls r4, 1
-_0803F7CC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F7E0
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F7CC
-_0803F7E0:
- ldr r0, _0803F7F4 @ =0x0000019b
- cmp r1, r0
- beq _0803F7F8
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F7FA
- .align 2, 0
-_0803F7F0: .4byte gSpeciesToHoennPokedexNum
-_0803F7F4: .4byte 0x0000019b
-_0803F7F8:
- movs r0, 0
-_0803F7FA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end HoennPokedexNumToSpecies
-
- thumb_func_start NationalPokedexNumToSpecies
-NationalPokedexNumToSpecies: @ 803F800
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F844
- movs r1, 0
- ldr r3, _0803F83C @ =gSpeciesToNationalPokedexNum
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F82C
- movs r4, 0xCD
- lsls r4, 1
-_0803F818:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F82C
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F818
-_0803F82C:
- ldr r0, _0803F840 @ =0x0000019b
- cmp r1, r0
- beq _0803F844
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F846
- .align 2, 0
-_0803F83C: .4byte gSpeciesToNationalPokedexNum
-_0803F840: .4byte 0x0000019b
-_0803F844:
- movs r0, 0
-_0803F846:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end NationalPokedexNumToSpecies
-
- thumb_func_start NationalToHoennOrder
-NationalToHoennOrder: @ 803F84C
- push {r4,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0803F890
- movs r1, 0
- ldr r3, _0803F888 @ =gHoennToNationalOrder
- ldrh r0, [r3]
- cmp r0, r2
- beq _0803F878
- movs r4, 0xCD
- lsls r4, 1
-_0803F864:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bhi _0803F878
- lsls r0, r1, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0803F864
-_0803F878:
- ldr r0, _0803F88C @ =0x0000019b
- cmp r1, r0
- beq _0803F890
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0803F892
- .align 2, 0
-_0803F888: .4byte gHoennToNationalOrder
-_0803F88C: .4byte 0x0000019b
-_0803F890:
- movs r0, 0
-_0803F892:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end NationalToHoennOrder
-
- thumb_func_start SpeciesToNationalPokedexNum
-SpeciesToNationalPokedexNum: @ 803F898
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8B4
- ldr r0, _0803F8B0 @ =gSpeciesToNationalPokedexNum
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8B6
- .align 2, 0
-_0803F8B0: .4byte gSpeciesToNationalPokedexNum
-_0803F8B4:
- movs r0, 0
-_0803F8B6:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToNationalPokedexNum
-
- thumb_func_start SpeciesToHoennPokedexNum
-SpeciesToHoennPokedexNum: @ 803F8BC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8D8
- ldr r0, _0803F8D4 @ =gSpeciesToHoennPokedexNum
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8DA
- .align 2, 0
-_0803F8D4: .4byte gSpeciesToHoennPokedexNum
-_0803F8D8:
- movs r0, 0
-_0803F8DA:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToHoennPokedexNum
-
- thumb_func_start HoennToNationalOrder
-HoennToNationalOrder: @ 803F8E0
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803F8FC
- ldr r0, _0803F8F8 @ =gHoennToNationalOrder
- subs r1, 0x1
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F8FE
- .align 2, 0
-_0803F8F8: .4byte gHoennToNationalOrder
-_0803F8FC:
- movs r0, 0
-_0803F8FE:
- pop {r1}
- bx r1
- thumb_func_end HoennToNationalOrder
-
- thumb_func_start SpeciesToCryId
-SpeciesToCryId: @ 803F904
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0xFA
- bls _0803F932
- ldr r0, _0803F924 @ =0x00000113
- cmp r1, r0
- bls _0803F930
- ldr r0, _0803F928 @ =gSpeciesIdToCryId
- ldr r2, _0803F92C @ =0xfffffeec
- adds r1, r2
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- b _0803F932
- .align 2, 0
-_0803F924: .4byte 0x00000113
-_0803F928: .4byte gSpeciesIdToCryId
-_0803F92C: .4byte 0xfffffeec
-_0803F930:
- movs r0, 0xC8
-_0803F932:
- pop {r1}
- bx r1
- thumb_func_end SpeciesToCryId
-
- thumb_func_start unref_sub_803F938
-unref_sub_803F938: @ 803F938
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r1, 0
- mov r10, r2
- lsls r0, 16
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _0803FA42
- ldr r1, _0803FA04 @ =gUnknown_081FAF4C
- ldr r0, [r1]
- cmp r10, r0
- beq _0803FA42
- ldr r0, [r1, 0x8]
- cmp r10, r0
- beq _0803FA42
- movs r6, 0
-_0803F962:
- lsls r3, r6, 3
- adds r3, r6
- lsls r3, 2
- ldr r0, _0803FA08 @ =gSpindaSpotGraphics
- adds r4, r3, r0
- ldrb r1, [r4]
- adds r1, 0xF8
- movs r2, 0xF
- adds r0, r5, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- ldrb r1, [r4, 0x1]
- adds r1, 0xF8
- movs r0, 0xF0
- ands r0, r5
- lsrs r0, 4
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- lsrs r5, 8
- str r5, [sp, 0x4]
- adds r6, 0x1
- str r6, [sp]
- mov r9, r3
-_0803F99A:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _0803FA0C @ =gSpindaSpotGraphics + 0x2
- adds r0, r3
- ldrh r3, [r0]
- mov r4, r12
- adds r0, r4, 0
- adds r0, 0x10
- adds r7, r1, 0x1
- adds r2, 0x1
- mov r8, r2
- cmp r4, r0
- bge _0803FA30
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_0803F9BE:
- adds r0, r4, 0
- cmp r4, 0
- bge _0803F9C6
- adds r0, r4, 0x7
-_0803F9C6:
- asrs r0, 3
- lsls r2, r0, 5
- add r2, r10
- lsls r0, 3
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- adds r2, r6
- adds r2, r5
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FA24
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FA10
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _0803FA24
- adds r0, r1, 0
- adds r0, 0x40
- b _0803FA22
- .align 2, 0
-_0803FA04: .4byte gUnknown_081FAF4C
-_0803FA08: .4byte gSpindaSpotGraphics
-_0803FA0C: .4byte gSpindaSpotGraphics + 0x2
-_0803FA10:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0803FA24
- adds r0, r1, 0x4
-_0803FA22:
- strb r0, [r2]
-_0803FA24:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _0803F9BE
-_0803FA30:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _0803F99A
- ldr r5, [sp, 0x4]
- ldr r6, [sp]
- cmp r6, 0x3
- ble _0803F962
-_0803FA42:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_803F938
-
- thumb_func_start DrawSpindaSpots
-DrawSpindaSpots: @ 803FA54
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r1, 0
- str r2, [sp]
- lsls r0, 16
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x9A
- lsls r1, 17
- cmp r0, r1
- bne _0803FB56
- cmp r3, 0
- beq _0803FB56
- movs r6, 0
-_0803FA78:
- lsls r3, r6, 3
- adds r3, r6
- lsls r3, 2
- ldr r0, _0803FB1C @ =gSpindaSpotGraphics
- adds r4, r3, r0
- ldrb r1, [r4]
- adds r1, 0xF8
- movs r2, 0xF
- adds r0, r5, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- ldrb r1, [r4, 0x1]
- adds r1, 0xF8
- movs r0, 0xF0
- ands r0, r5
- lsrs r0, 4
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- lsrs r5, 8
- str r5, [sp, 0x4]
- adds r6, 0x1
- mov r10, r6
- mov r9, r3
-_0803FAB0:
- lsls r0, r2, 1
- add r0, r9
- ldr r3, _0803FB20 @ =gSpindaSpotGraphics + 0x2
- adds r0, r3
- ldrh r3, [r0]
- mov r4, r12
- adds r0, r4, 0
- adds r0, 0x10
- adds r7, r1, 0x1
- adds r2, 0x1
- mov r8, r2
- cmp r4, r0
- bge _0803FB44
- lsrs r0, r1, 3
- lsls r6, r0, 8
- movs r0, 0x7
- ands r1, r0
- lsls r5, r1, 2
-_0803FAD4:
- adds r0, r4, 0
- cmp r4, 0
- bge _0803FADC
- adds r0, r4, 0x7
-_0803FADC:
- asrs r0, 3
- lsls r2, r0, 5
- ldr r1, [sp]
- adds r2, r1, r2
- lsls r0, 3
- subs r0, r4, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- adds r2, r6
- adds r2, r5
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FB38
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0803FB24
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- bhi _0803FB38
- adds r0, r1, 0
- adds r0, 0x40
- b _0803FB36
- .align 2, 0
-_0803FB1C: .4byte gSpindaSpotGraphics
-_0803FB20: .4byte gSpindaSpotGraphics + 0x2
-_0803FB24:
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0803FB38
- adds r0, r1, 0x4
-_0803FB36:
- strb r0, [r2]
-_0803FB38:
- asrs r3, 1
- adds r4, 0x1
- mov r0, r12
- adds r0, 0x10
- cmp r4, r0
- blt _0803FAD4
-_0803FB44:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- mov r2, r8
- cmp r2, 0xF
- ble _0803FAB0
- ldr r5, [sp, 0x4]
- mov r6, r10
- cmp r6, 0x3
- ble _0803FA78
-_0803FB56:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end DrawSpindaSpots
-
- .if REVISION >= 1
- thumb_func_start sub_803FB68
-sub_803FB68: @ 803FB68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, =gStringVar1
- mov r9, r0
- adds r0, r5, 0
- movs r1, 0x2
- mov r2, r9
- bl GetMonData
- mov r4, sp
- adds r0, r5, 0
- movs r1, 0x3
- mov r2, sp
- bl GetMonData
- strb r0, [r4, 0x0]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0803FBC4
- movs r6, 0xB
- adds r0, r7, 0
- muls r0, r6
- ldr r4, =gSpeciesNames
- adds r0, r4
- mov r1, r9
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0803FBC4
- mov r2, r8
- muls r2, r6
- adds r2, r4
- adds r0, r5, 0
- movs r1, 0x2
- bl SetMonData
-_0803FBC4:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_803FB68
- .else
- thumb_func_start sub_803FB68
-sub_803FB68: @ 803FB68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r5, _0803FBB4 @ =gStringVar1
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- movs r6, 0xB
- adds r0, r4, 0
- muls r0, r6
- ldr r4, _0803FBB8 @ =gSpeciesNames
- adds r0, r4
- adds r1, r5, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0803FBA8
- mov r2, r8
- muls r2, r6
- adds r2, r4
- adds r0, r7, 0
- movs r1, 0x2
- bl SetMonData
-_0803FBA8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803FBB4: .4byte gStringVar1
-_0803FBB8: .4byte gSpeciesNames
- thumb_func_end sub_803FB68
- .endif
-
- thumb_func_start sub_803FBBC
-sub_803FBBC: @ 803FBBC
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _0803FBE4 @ =gLinkPlayers
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x18]
- cmp r0, 0x2
- bgt _0803FBE8
- cmp r0, 0x1
- bge _0803FBF0
- cmp r0, 0
- beq _0803FBEC
- b _0803FBF2
- .align 2, 0
-_0803FBE4: .4byte gLinkPlayers
-_0803FBE8:
- cmp r0, 0x3
- bne _0803FBF2
-_0803FBEC:
- movs r5, 0
- b _0803FBF2
-_0803FBF0:
- movs r5, 0x1
-_0803FBF2:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_803FBBC
-
- thumb_func_start sub_803FBFC
-sub_803FBFC: @ 803FBFC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r2, _0803FC20 @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x18]
- cmp r0, 0x2
- bgt _0803FC24
- cmp r0, 0x1
- bge _0803FC2C
- cmp r0, 0
- beq _0803FC28
- b _0803FC2E
- .align 2, 0
-_0803FC20: .4byte gLinkPlayers
-_0803FC24:
- cmp r0, 0x3
- bne _0803FC2E
-_0803FC28:
- movs r3, 0
- b _0803FC2E
-_0803FC2C:
- movs r3, 0x1
-_0803FC2E:
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end sub_803FBFC
-
- thumb_func_start sub_803FC34
-sub_803FC34: @ 803FC34
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r1, _0803FC40 @ =gLinkPlayers
- b _0803FC4C
- .align 2, 0
-_0803FC40: .4byte gLinkPlayers
-_0803FC44:
- adds r1, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- bgt _0803FC52
-_0803FC4C:
- ldrh r0, [r1, 0x18]
- cmp r0, r3
- bne _0803FC44
-_0803FC52:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_803FC34
-
- thumb_func_start sub_803FC58
-sub_803FC58: @ 803FC58
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _0803FC70 @ =gTrainers
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0x2]
- movs r0, 0x7F
- ands r0, r1
- bx lr
- .align 2, 0
-_0803FC70: .4byte gTrainers
- thumb_func_end sub_803FC58
-
- thumb_func_start nature_stat_mod
-nature_stat_mod: @ 803FC74
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0xFF
- lsls r0, 24
- adds r2, r0
- lsrs r2, 24
- cmp r2, 0x4
- bls _0803FC92
- adds r0, r3, 0
- b _0803FCCE
-_0803FC92:
- ldr r0, _0803FCB4 @ =gNatureStatTable
- lsls r1, r4, 2
- adds r1, r4
- subs r1, 0x1
- adds r1, r5, r1
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0803FCB8
- cmp r1, 0x1
- bne _0803FCCC
- movs r0, 0x6E
- b _0803FCBA
- .align 2, 0
-_0803FCB4: .4byte gNatureStatTable
-_0803FCB8:
- movs r0, 0x5A
-_0803FCBA:
- muls r0, r3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- b _0803FCCE
-_0803FCCC:
- adds r0, r3, 0
-_0803FCCE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end nature_stat_mod
-
- thumb_func_start AdjustFriendship
-AdjustFriendship: @ 803FCD4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803FD34
- ldr r0, _0803FD14 @ =gMain
- ldr r1, _0803FD18 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803FD20
- ldr r0, _0803FD1C @ =gEnigmaBerries
- ldrb r4, [r0, 0x7]
- b _0803FD3C
- .align 2, 0
-_0803FD14: .4byte gMain
-_0803FD18: .4byte 0x0000043d
-_0803FD1C: .4byte gEnigmaBerries
-_0803FD20:
- ldr r0, _0803FD2C @ =gSaveBlock1
- ldr r1, _0803FD30 @ =0x00003688
- adds r0, r1
- ldrb r4, [r0]
- b _0803FD3C
- .align 2, 0
-_0803FD2C: .4byte gSaveBlock1
-_0803FD30: .4byte 0x00003688
-_0803FD34:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_0803FD3C:
- cmp r6, 0
- bne _0803FD42
- b _0803FE56
-_0803FD42:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- bne _0803FD4C
- b _0803FE56
-_0803FD4C:
- movs r6, 0
- adds r0, r7, 0
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x63
- ble _0803FD6A
- movs r6, 0x1
-_0803FD6A:
- cmp r0, 0xC7
- ble _0803FD74
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0803FD74:
- cmp r5, 0x5
- bne _0803FD84
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0803FE56
-_0803FD84:
- cmp r5, 0x3
- bne _0803FDB4
- ldr r0, _0803FE60 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803FE56
- ldr r2, _0803FE64 @ =gTrainers
- ldr r0, _0803FE68 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x1]
- adds r0, r1, 0
- subs r0, 0x18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0803FDB4
- cmp r1, 0x20
- bne _0803FE56
-_0803FDB4:
- ldr r1, _0803FE6C @ =gUnknown_082082FE
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r6, r0
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0
- ldrsb r1, [r0, r1]
- cmp r1, 0
- ble _0803FDDA
- cmp r4, 0x1B
- bne _0803FDDA
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
-_0803FDDA:
- lsls r2, 24
- asrs r2, 24
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, r2
- mov r1, sp
- strh r0, [r1]
- cmp r2, 0
- ble _0803FE2C
- adds r0, r7, 0
- movs r1, 0x26
- movs r2, 0
- bl GetMonData
- cmp r0, 0xB
- bne _0803FE08
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_0803FE08:
- adds r0, r7, 0
- movs r1, 0x23
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0803FE2C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x1
- mov r1, sp
- strh r0, [r1]
-_0803FE2C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0803FE3C
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
-_0803FE3C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- ble _0803FE4C
- movs r1, 0xFF
- mov r0, sp
- strh r1, [r0]
-_0803FE4C:
- adds r0, r7, 0
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
-_0803FE56:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803FE60: .4byte gUnknown_020239F8
-_0803FE64: .4byte gTrainers
-_0803FE68: .4byte gTrainerBattleOpponent
-_0803FE6C: .4byte gUnknown_082082FE
- thumb_func_end AdjustFriendship
-
- thumb_func_start MonGainEVs
-MonGainEVs: @ 803FE70
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
- movs r7, 0
- movs r6, 0
-_0803FE84:
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- movs r2, 0
- bl GetMonData
- mov r2, sp
- adds r1, r2, r6
- strb r0, [r1]
- ldrb r0, [r1]
- adds r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
- adds r6, 0x1
- cmp r6, 0x5
- ble _0803FE84
- movs r6, 0
- b _08040006
-_0803FEA8:
- mov r0, r8
- movs r1, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- movs r2, 0x1
- cmp r0, 0
- beq _0803FEBA
- movs r2, 0x2
-_0803FEBA:
- cmp r6, 0x5
- bhi _0803FF5C
- lsls r0, r6, 2
- ldr r1, _0803FEC8 @ =_0803FECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803FEC8: .4byte _0803FECC
- .align 2, 0
-_0803FECC:
- .4byte _0803FEE4
- .4byte _0803FEF8
- .4byte _0803FF0C
- .4byte _0803FF20
- .4byte _0803FF34
- .4byte _0803FF48
-_0803FEE4:
- ldr r0, _0803FEF4 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 30
- b _0803FF56
- .align 2, 0
-_0803FEF4: .4byte gBaseStats
-_0803FEF8:
- ldr r0, _0803FF08 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- b _0803FF54
- .align 2, 0
-_0803FF08: .4byte gBaseStats
-_0803FF0C:
- ldr r0, _0803FF1C @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 26
- b _0803FF56
- .align 2, 0
-_0803FF1C: .4byte gBaseStats
-_0803FF20:
- ldr r0, _0803FF30 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- lsrs r0, 6
- b _0803FF58
- .align 2, 0
-_0803FF30: .4byte gBaseStats
-_0803FF34:
- ldr r0, _0803FF44 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 30
- b _0803FF56
- .align 2, 0
-_0803FF44: .4byte gBaseStats
-_0803FF48:
- ldr r0, _0803FF84 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xB]
-_0803FF54:
- lsls r0, 28
-_0803FF56:
- lsrs r0, 30
-_0803FF58:
- adds r4, r0, 0
- muls r4, r2
-_0803FF5C:
- mov r0, r8
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803FFA8
- ldr r0, _0803FF88 @ =gMain
- ldr r1, _0803FF8C @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803FF94
- ldr r0, _0803FF90 @ =gEnigmaBerries
- ldrb r0, [r0, 0x7]
- b _0803FFB0
- .align 2, 0
-_0803FF84: .4byte gBaseStats
-_0803FF88: .4byte gMain
-_0803FF8C: .4byte 0x0000043d
-_0803FF90: .4byte gEnigmaBerries
-_0803FF94:
- ldr r0, _0803FFA0 @ =gSaveBlock1
- ldr r2, _0803FFA4 @ =0x00003688
- adds r0, r2
- ldrb r0, [r0]
- b _0803FFB0
- .align 2, 0
-_0803FFA0: .4byte gSaveBlock1
-_0803FFA4: .4byte 0x00003688
-_0803FFA8:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0803FFB0:
- cmp r0, 0x18
- bne _0803FFB8
- lsls r0, r4, 17
- lsrs r4, r0, 16
-_0803FFB8:
- lsls r0, r4, 16
- asrs r2, r0, 16
- adds r1, r7, r2
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- ble _0803FFD0
- adds r0, r2, r0
- adds r1, r7, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0803FFD0:
- mov r0, sp
- adds r2, r0, r6
- ldrb r3, [r2]
- lsls r0, r4, 16
- asrs r1, r0, 16
- adds r0, r3, r1
- cmp r0, 0xFF
- ble _0803FFEC
- adds r0, r1, 0
- adds r0, 0xFF
- adds r1, r3, r4
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0803FFEC:
- adds r0, r3, r4
- strb r0, [r2]
- adds r0, r7, r4
- lsls r0, 16
- lsrs r7, r0, 16
- adds r1, r6, 0
- adds r1, 0x1A
- mov r0, r8
- bl SetMonData
- adds r6, 0x1
- cmp r6, 0x5
- bgt _0804000E
-_08040006:
- ldr r0, _0804001C @ =0x000001fd
- cmp r7, r0
- bhi _0804000E
- b _0803FEA8
-_0804000E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804001C: .4byte 0x000001fd
- thumb_func_end MonGainEVs
-
- thumb_func_start GetMonEVCount
-GetMonEVCount: @ 8040020
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_08040028:
- adds r1, r4, 0
- adds r1, 0x1A
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- cmp r4, 0x5
- ble _08040028
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetMonEVCount
-
- thumb_func_start RandomlyGivePartyPokerus
-RandomlyGivePartyPokerus: @ 8040048
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- bl Random
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x80
- lsls r0, 7
- cmp r5, r0
- beq _0804006E
- movs r0, 0x80
- lsls r0, 8
- cmp r5, r0
- beq _0804006E
- movs r0, 0xC0
- lsls r0, 8
- cmp r5, r0
- bne _08040104
-_0804006E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x64
- muls r0, r5
- adds r4, r6, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0804006E
- adds r0, r4, 0
- movs r1, 0x2D
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _0804006E
- ldr r1, _0804010C @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- cmp r0, 0
- bne _08040104
- mov r4, sp
-_080400B8:
- bl Random
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r4]
- cmp r0, 0
- beq _080400B8
- movs r0, 0xF0
- mov r1, sp
- ldrb r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _080400DA
- movs r0, 0x7
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
-_080400DA:
- mov r0, sp
- ldrb r0, [r0]
- lsls r1, r0, 4
- orrs r0, r1
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- movs r1, 0xF3
- ands r1, r0
- mov r0, sp
- strb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- movs r0, 0x64
- muls r0, r5
- adds r0, r6, r0
- movs r1, 0x22
- mov r2, sp
- bl SetMonData
-_08040104:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804010C: .4byte gBitTable
- thumb_func_end RandomlyGivePartyPokerus
-
- thumb_func_start CheckPartyPokerus
-CheckPartyPokerus: @ 8040110
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0
- movs r6, 0x1
- movs r5, 0
- cmp r4, 0
- beq _08040158
-_08040124:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0804014C
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl GetMonData
- movs r1, 0xF
- ands r1, r0
- ldr r3, [sp]
- cmp r1, 0
- beq _0804014C
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_0804014C:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _08040124
- b _0804016C
-_08040158:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- beq _0804016C
- movs r5, 0x1
-_0804016C:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPartyPokerus
-
- thumb_func_start CheckPartyHasHadPokerus
-CheckPartyHasHadPokerus: @ 8040178
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r3, 0
- movs r6, 0x1
- movs r5, 0
- cmp r4, 0
- beq _080401BC
-_0804018C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080401B0
- movs r0, 0x64
- muls r0, r3
- adds r0, r7, r0
- movs r1, 0x22
- movs r2, 0
- str r3, [sp]
- bl GetMonData
- ldr r3, [sp]
- cmp r0, 0
- beq _080401B0
- orrs r5, r6
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080401B0:
- adds r3, 0x1
- lsls r6, 1
- lsrs r4, 1
- cmp r4, 0
- bne _0804018C
- b _080401CC
-_080401BC:
- adds r0, r7, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _080401CC
- movs r5, 0x1
-_080401CC:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPartyHasHadPokerus
-
- thumb_func_start UpdatePartyPokerusTime
-UpdatePartyPokerusTime: @ 80401D8
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- movs r5, 0
- mov r6, sp
-_080401E4:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08040224 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0804023C
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r6]
- movs r1, 0xF
- adds r2, r0, 0
- ands r1, r2
- cmp r1, 0
- beq _0804023C
- cmp r1, r7
- bcc _0804021E
- cmp r7, 0x4
- bls _08040228
-_0804021E:
- movs r0, 0xF0
- ands r0, r2
- b _0804022A
- .align 2, 0
-_08040224: .4byte gPlayerParty
-_08040228:
- subs r0, r2, r7
-_0804022A:
- strb r0, [r6]
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0804024C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x22
- mov r2, sp
- bl SetMonData
-_0804023C:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080401E4
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804024C: .4byte gPlayerParty
- thumb_func_end UpdatePartyPokerusTime
-
- thumb_func_start PartySpreadPokerus
-PartySpreadPokerus: @ 8040250
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080402F6
- movs r5, 0
-_0804026C:
- movs r0, 0x64
- adds r6, r5, 0
- muls r6, r0
- adds r4, r7, r6
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _080402F0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- mov r0, sp
- strb r1, [r0]
- cmp r1, 0
- beq _080402F0
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _080402F0
- cmp r5, 0
- beq _080402C6
- adds r0, r6, 0
- subs r0, 0x64
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0
- bne _080402C6
- adds r0, r4, 0
- movs r1, 0x22
- mov r2, sp
- bl SetMonData
-_080402C6:
- cmp r5, 0x5
- beq _080402F0
- movs r0, 0x64
- muls r0, r5
- adds r0, 0x64
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x22
- movs r2, 0
- bl GetMonData
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0
- bne _080402F0
- adds r0, r4, 0
- movs r1, 0x22
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
-_080402F0:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0804026C
-_080402F6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PartySpreadPokerus
-
- thumb_func_start TryIncrementMonLevel
-TryIncrementMonLevel: @ 8040300
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- adds r0, 0x1
- mov r1, sp
- strb r0, [r1]
- adds r0, r6, 0
- movs r1, 0x19
- movs r2, 0
- bl GetMonData
- ldr r5, _08040358 @ =gExperienceTables
- mov r1, sp
- ldrb r2, [r1]
- lsls r2, 2
- ldr r3, _0804035C @ =gBaseStats
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- adds r1, r3
- ldrb r3, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r1, r3
- adds r2, r1
- adds r2, r5
- ldr r1, [r2]
- cmp r0, r1
- bhi _08040360
- movs r0, 0
- b _0804036C
- .align 2, 0
-_08040358: .4byte gExperienceTables
-_0804035C: .4byte gBaseStats
-_08040360:
- adds r0, r6, 0
- movs r1, 0x38
- mov r2, sp
- bl SetMonData
- movs r0, 0x1
-_0804036C:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end TryIncrementMonLevel
-
- thumb_func_start CanMonLearnTMHM
-CanMonLearnTMHM: @ 8040374
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- adds r3, r1, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _08040396
- movs r0, 0
- b _080403C2
-_08040396:
- cmp r4, 0x1F
- bls _080403B4
- adds r0, r4, 0
- subs r0, 0x20
- movs r2, 0x1
- lsls r2, r0
- ldr r0, _080403B0 @ =gTMHMLearnsets
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- ands r0, r2
- b _080403C2
- .align 2, 0
-_080403B0: .4byte gTMHMLearnsets
-_080403B4:
- movs r1, 0x1
- lsls r1, r5
- ldr r2, _080403C8 @ =gTMHMLearnsets
- lsls r0, r3, 3
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
-_080403C2:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080403C8: .4byte gTMHMLearnsets
- thumb_func_end CanMonLearnTMHM
-
- thumb_func_start sub_80403CC
-sub_80403CC: @ 80403CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r6, r0, 0
- str r1, [sp, 0x8]
- movs r0, 0
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- movs r5, 0
- mov r4, sp
-_08040402:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _08040402
- movs r5, 0
- ldr r6, _08040510 @ =gLevelUpLearnsets
- lsls r1, r7, 2
- adds r2, r1, r6
- ldr r3, [r2]
- ldrh r0, [r3]
- ldr r4, _08040514 @ =0x0000ffff
- str r1, [sp, 0x14]
- cmp r0, r4
- beq _080404FC
- mov r9, r2
- str r3, [sp, 0x10]
-_08040430:
- lsls r2, r5, 1
- ldr r1, [sp, 0x10]
- adds r0, r2, r1
- ldrh r3, [r0]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r3
- ldr r4, [sp, 0xC]
- lsls r1, r4, 9
- adds r7, r2, 0
- adds r5, 0x1
- mov r12, r5
- cmp r0, r1
- bgt _080404E6
- movs r4, 0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _08040518 @ =0x000001ff
- ands r0, r3
- cmp r1, r0
- beq _08040480
- ldr r0, [sp, 0x14]
- ldr r1, _08040510 @ =gLevelUpLearnsets
- adds r6, r0, r1
- ldr r2, _08040518 @ =0x000001ff
- mov r8, r2
- mov r3, sp
- adds r5, r7, 0
-_08040468:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08040480
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040468
-_08040480:
- cmp r4, 0x4
- bne _080404E6
- movs r4, 0
- cmp r4, r10
- bge _080404C4
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, 0x8]
- ldrh r2, [r0]
- ldr r0, _08040518 @ =0x000001ff
- ands r0, r1
- cmp r2, r0
- beq _080404C4
- ldr r1, [sp, 0x14]
- ldr r2, _08040510 @ =gLevelUpLearnsets
- adds r6, r1, r2
- ldr r0, _08040518 @ =0x000001ff
- mov r8, r0
- ldr r3, [sp, 0x8]
- adds r5, r7, 0
-_080404AC:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r10
- bge _080404C4
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _080404AC
-_080404C4:
- cmp r4, r10
- bne _080404E6
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r2, r4, 1
- ldr r1, [sp, 0x8]
- adds r2, r1
- mov r4, r9
- ldr r0, [r4]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, _08040518 @ =0x000001ff
- ands r0, r1
- strh r0, [r2]
-_080404E6:
- mov r5, r12
- cmp r5, 0x13
- bgt _080404FC
- mov r1, r9
- ldr r0, [r1]
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r2, _08040514 @ =0x0000ffff
- cmp r0, r2
- bne _08040430
-_080404FC:
- mov r0, r10
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08040510: .4byte gLevelUpLearnsets
-_08040514: .4byte 0x0000ffff
-_08040518: .4byte 0x000001ff
- thumb_func_end sub_80403CC
-
- thumb_func_start sub_804051C
-sub_804051C: @ 804051C
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 16
- movs r5, 0
- movs r4, 0
- ldr r1, _08040568 @ =gLevelUpLearnsets
- lsrs r0, 14
- adds r0, r1
- ldr r2, [r0]
- ldrh r0, [r2]
- ldr r1, _0804056C @ =0x0000ffff
- cmp r0, r1
- beq _08040560
- ldr r0, _08040570 @ =0x000001ff
- mov r12, r0
- adds r7, r1, 0
- adds r3, r2, 0
-_0804053E:
- adds r1, r5, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 1
- adds r1, r6
- ldrh r2, [r3]
- mov r0, r12
- ands r0, r2
- strh r0, [r1]
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x13
- bgt _08040560
- ldrh r0, [r3]
- cmp r0, r7
- bne _0804053E
-_08040560:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08040568: .4byte gLevelUpLearnsets
-_0804056C: .4byte 0x0000ffff
-_08040570: .4byte 0x000001ff
- thumb_func_end sub_804051C
-
- thumb_func_start sub_8040574
-sub_8040574: @ 8040574
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- adds r6, r0, 0
- movs r0, 0
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r6, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x30]
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bne _080405B0
- movs r0, 0
- b _080406BA
-_080405B0:
- movs r5, 0
- lsls r4, 2
- str r4, [sp, 0x38]
- mov r4, sp
-_080405B8:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r6, 0
- movs r2, 0
- bl GetMonData
- strh r0, [r4]
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _080405B8
- movs r5, 0
- ldr r3, _080406CC @ =gLevelUpLearnsets
- ldr r2, [sp, 0x38]
- adds r1, r2, r3
- ldr r0, [r1]
- ldrh r0, [r0]
- ldr r2, _080406D0 @ =0x0000ffff
- cmp r0, r2
- beq _080406B8
- mov r9, r1
- mov r4, sp
- adds r4, 0x8
- str r4, [sp, 0x34]
-_080405E8:
- mov r1, r9
- ldr r0, [r1]
- lsls r2, r5, 1
- adds r0, r2, r0
- ldrh r3, [r0]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r3
- ldr r4, [sp, 0x30]
- lsls r1, r4, 9
- adds r7, r2, 0
- adds r5, 0x1
- mov r12, r5
- cmp r0, r1
- bgt _080406A2
- movs r4, 0
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _080406D4 @ =0x000001ff
- ands r0, r3
- cmp r1, r0
- beq _0804063A
- ldr r0, [sp, 0x38]
- ldr r1, _080406CC @ =gLevelUpLearnsets
- adds r6, r0, r1
- ldr r2, _080406D4 @ =0x000001ff
- mov r8, r2
- mov r3, sp
- adds r5, r7, 0
-_08040622:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0804063A
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040622
-_0804063A:
- cmp r4, 0x4
- bne _080406A2
- movs r4, 0
- cmp r4, r10
- bge _08040680
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, [sp, 0x34]
- ldrh r2, [r0]
- ldr r0, _080406D4 @ =0x000001ff
- ands r0, r1
- add r1, sp, 0x8
- cmp r2, r0
- beq _08040680
- ldr r2, [sp, 0x38]
- ldr r0, _080406CC @ =gLevelUpLearnsets
- adds r6, r2, r0
- ldr r2, _080406D4 @ =0x000001ff
- mov r8, r2
- adds r3, r1, 0
- adds r5, r7, 0
-_08040668:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r10
- bge _08040680
- ldr r0, [r6]
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r3]
- mov r0, r8
- ands r0, r1
- cmp r2, r0
- bne _08040668
-_08040680:
- cmp r4, r10
- bne _080406A2
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r2, r4, 1
- ldr r4, [sp, 0x34]
- adds r2, r4, r2
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r0, _080406D4 @ =0x000001ff
- ands r0, r1
- strh r0, [r2]
-_080406A2:
- mov r5, r12
- cmp r5, 0x13
- bgt _080406B8
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r4, _080406D0 @ =0x0000ffff
- cmp r0, r4
- bne _080405E8
-_080406B8:
- mov r0, r10
-_080406BA:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080406CC: .4byte gLevelUpLearnsets
-_080406D0: .4byte 0x0000ffff
-_080406D4: .4byte 0x000001ff
- thumb_func_end sub_8040574
-
- thumb_func_start SpeciesToPokedexNum
-SpeciesToPokedexNum: @ 80406D8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl IsNationalPokedex
- cmp r0, 0
- beq _080406F2
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- b _0804070A
-_080406F2:
- adds r0, r4, 0
- bl SpeciesToHoennPokedexNum
- adds r4, r0, 0
- cmp r4, 0xCA
- bls _08040708
- ldr r0, _08040704 @ =0x0000ffff
- b _0804070A
- .align 2, 0
-_08040704: .4byte 0x0000ffff
-_08040708:
- adds r0, r4, 0
-_0804070A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end SpeciesToPokedexNum
-
- thumb_func_start sub_8040710
-sub_8040710: @ 8040710
- push {lr}
- ldr r1, _08040724 @ =gUnknown_02024E84
- movs r2, 0
- adds r0, r1, 0x3
-_08040718:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08040718
- pop {r0}
- bx r0
- .align 2, 0
-_08040724: .4byte gUnknown_02024E84
- thumb_func_end sub_8040710
-
- thumb_func_start sub_8040728
-sub_8040728: @ 8040728
- push {lr}
- ldr r0, _0804073C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _08040744
- ldr r0, _08040740 @ =0x000001cf
- b _080408B2
- .align 2, 0
-_0804073C: .4byte gUnknown_020239F8
-_08040740: .4byte 0x000001cf
-_08040744:
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- beq _08040754
- movs r0, 0xE7
- lsls r0, 1
- b _080408B2
-_08040754:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804075E
- b _080408A8
-_0804075E:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08040768
- b _080408B0
-_08040768:
- ldr r3, _0804078C @ =gTrainers
- ldr r2, _08040790 @ =gTrainerBattleOpponent
- ldrh r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x1]
- subs r0, 0x2
- cmp r0, 0x31
- bls _08040780
- b _080408A8
-_08040780:
- lsls r0, 2
- ldr r1, _08040794 @ =_08040798
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804078C: .4byte gTrainers
-_08040790: .4byte gTrainerBattleOpponent
-_08040794: .4byte _08040798
- .align 2, 0
-_08040798:
- .4byte _08040860
- .4byte _08040866
- .4byte _08040866
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A0
- .4byte _0804086C
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _08040872
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _080408A8
- .4byte _0804087C
- .4byte _080408A8
- .4byte _080408A8
- .4byte _08040860
- .4byte _08040866
- .4byte _08040866
-_08040860:
- movs r0, 0xE9
- lsls r0, 1
- b _080408B2
-_08040866:
- movs r0, 0xE5
- lsls r0, 1
- b _080408B2
-_0804086C:
- movs r0, 0xE6
- lsls r0, 1
- b _080408B2
-_08040872:
- ldr r0, _08040878 @ =0x000001cd
- b _080408B2
- .align 2, 0
-_08040878: .4byte 0x000001cd
-_0804087C:
- ldrh r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08040898 @ =gTrainers + 0x4
- adds r0, r1
- ldr r1, _0804089C @ =gUnknown_08400E42
- bl StringCompare
- cmp r0, 0
- beq _080408A8
- movs r0, 0xE8
- lsls r0, 1
- b _080408B2
- .align 2, 0
-_08040898: .4byte gTrainers + 0x4
-_0804089C: .4byte gUnknown_08400E42
-_080408A0:
- ldr r0, _080408A4 @ =0x000001d1
- b _080408B2
- .align 2, 0
-_080408A4: .4byte 0x000001d1
-_080408A8:
- ldr r0, _080408AC @ =0x000001cb
- b _080408B2
- .align 2, 0
-_080408AC: .4byte 0x000001cb
-_080408B0:
- ldr r0, _080408B8 @ =0x000001c9
-_080408B2:
- pop {r1}
- bx r1
- .align 2, 0
-_080408B8: .4byte 0x000001c9
- thumb_func_end sub_8040728
-
- thumb_func_start sub_80408BC
-sub_80408BC: @ 80408BC
- push {lr}
- bl ResetMapMusic
- bl m4aMPlayAllStop
- bl sub_8040728
- lsls r0, 16
- lsrs r0, 16
- bl PlayBGM
- pop {r0}
- bx r0
- thumb_func_end sub_80408BC
-
- thumb_func_start current_map_music_set__default_for_battle
-current_map_music_set__default_for_battle: @ 80408D8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl ResetMapMusic
- bl m4aMPlayAllStop
- cmp r4, 0
- beq _080408F2
- adds r0, r4, 0
- bl PlayNewMapMusic
- b _080408FE
-_080408F2:
- bl sub_8040728
- lsls r0, 16
- lsrs r0, 16
- bl PlayNewMapMusic
-_080408FE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end current_map_music_set__default_for_battle
-
- thumb_func_start pokemon_get_pal
-pokemon_get_pal: @ 8040904
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r2, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl species_and_otid_get_pal
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_pal
-
- thumb_func_start species_and_otid_get_pal
-species_and_otid_get_pal: @ 804093C
- push {r4,r5,lr}
- adds r3, r2, 0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08040958
- ldr r0, _08040954 @ =gMonPaletteTable
- ldr r0, [r0]
- b _08040984
- .align 2, 0
-_08040954: .4byte gMonPaletteTable
-_08040958:
- lsrs r0, r1, 16
- ldr r2, _08040974 @ =0x0000ffff
- ands r1, r2
- eors r0, r1
- lsrs r1, r3, 16
- eors r0, r1
- ands r3, r2
- eors r0, r3
- cmp r0, 0x7
- bls _0804097C
- ldr r0, _08040978 @ =gMonPaletteTable
- lsls r1, r4, 3
- b _08040980
- .align 2, 0
-_08040974: .4byte 0x0000ffff
-_08040978: .4byte gMonPaletteTable
-_0804097C:
- ldr r0, _0804098C @ =gMonShinyPaletteTable
- lsls r1, r5, 3
-_08040980:
- adds r1, r0
- ldr r0, [r1]
-_08040984:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0804098C: .4byte gMonShinyPaletteTable
- thumb_func_end species_and_otid_get_pal
-
- thumb_func_start sub_8040990
-sub_8040990: @ 8040990
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r2, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80409C8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8040990
-
- thumb_func_start sub_80409C8
-sub_80409C8: @ 80409C8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsrs r0, r1, 16
- ldr r3, _080409E8 @ =0x0000ffff
- ands r1, r3
- eors r0, r1
- lsrs r1, r2, 16
- eors r0, r1
- ands r2, r3
- eors r0, r2
- cmp r0, 0x7
- bls _080409F0
- lsls r0, r4, 3
- ldr r1, _080409EC @ =gMonPaletteTable
- b _080409F4
- .align 2, 0
-_080409E8: .4byte 0x0000ffff
-_080409EC: .4byte gMonPaletteTable
-_080409F0:
- lsls r0, r4, 3
- ldr r1, _080409FC @ =gMonShinyPaletteTable
-_080409F4:
- adds r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080409FC: .4byte gMonShinyPaletteTable
- thumb_func_end sub_80409C8
-
- thumb_func_start sub_8040A00
-sub_8040A00: @ 8040A00
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, _08040A24 @ =gUnknown_0820831A
- ldrh r0, [r2]
- ldr r1, _08040A28 @ =0x0000ffff
- cmp r0, r1
- beq _08040A32
- adds r4, r1, 0
- adds r1, r2, 0
-_08040A14:
- ldrh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- cmp r0, r3
- bne _08040A2C
- movs r0, 0x1
- b _08040A34
- .align 2, 0
-_08040A24: .4byte gUnknown_0820831A
-_08040A28: .4byte 0x0000ffff
-_08040A2C:
- ldrh r0, [r1]
- cmp r0, r4
- bne _08040A14
-_08040A32:
- movs r0, 0
-_08040A34:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8040A00
-
- thumb_func_start sub_8040A3C
-sub_8040A3C: @ 8040A3C
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08040A50 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x19]
- lsrs r0, 7
- bx lr
- .align 2, 0
-_08040A50: .4byte gBaseStats
- thumb_func_end sub_8040A3C
-
- thumb_func_start sub_8040A54
-sub_8040A54: @ 8040A54
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08040A78 @ =gUnknown_083F7E28
- lsls r1, r0, 2
- adds r1, r0
- adds r1, r4
- adds r1, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040A78: .4byte gUnknown_083F7E28
- thumb_func_end sub_8040A54
-
- thumb_func_start sub_8040A7C
-sub_8040A7C: @ 8040A7C
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08040AA0 @ =gUnknown_083F7E28
- lsls r1, r0, 2
- adds r1, r0
- adds r1, r4
- adds r1, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040AA0: .4byte gUnknown_083F7E28
- thumb_func_end sub_8040A7C
-
- thumb_func_start sub_8040AA4
-sub_8040AA4: @ 8040AA4
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- movs r1, 0x7
- mov r2, sp
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- mov r1, sp
- bl sub_8040AD0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8040AA4
-
- thumb_func_start sub_8040AD0
-sub_8040AD0: @ 8040AD0
- push {r4,r5,lr}
- adds r5, r1, 0
- ldr r3, _08040B10 @ =gSaveBlock2
- ldrb r2, [r3, 0xA]
- ldrb r1, [r3, 0xB]
- lsls r1, 8
- orrs r2, r1
- ldrb r1, [r3, 0xC]
- lsls r1, 16
- orrs r2, r1
- ldrb r1, [r3, 0xD]
- lsls r1, 24
- orrs r2, r1
- cmp r0, r2
- bne _08040B14
- movs r4, 0
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _08040B0C
- adds r2, r5, 0
-_08040AF8:
- adds r1, r4, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08040B14
- adds r2, 0x1
- adds r4, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _08040AF8
-_08040B0C:
- movs r0, 0
- b _08040B16
- .align 2, 0
-_08040B10: .4byte gSaveBlock2
-_08040B14:
- movs r0, 0x1
-_08040B16:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8040AD0
-
- thumb_func_start sub_8040B1C
-sub_8040B1C: @ 8040B1C
- push {lr}
- bl pokemon_restore_pp
- pop {r0}
- bx r0
- thumb_func_end sub_8040B1C
-
- thumb_func_start pokemon_restore_pp
-pokemon_restore_pp: @ 8040B28
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r6, 0
-_08040B30:
- adds r4, r6, 0
- adds r4, 0xD
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl GetBoxMonData
- cmp r0, 0
- beq _08040B7C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x15
- movs r2, 0
- bl GetBoxMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r6, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl CalculatePPWithBonus
- mov r1, sp
- strb r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r5, 0
- mov r2, sp
- bl SetBoxMonData
-_08040B7C:
- adds r6, 0x1
- cmp r6, 0x3
- ble _08040B30
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemon_restore_pp
-
- thumb_func_start sub_8040B8C
-sub_8040B8C: @ 8040B8C
- push {r4,r5,lr}
- ldr r1, _08040BCC @ =byte_2024C06
- ldr r2, _08040BD0 @ =0x02000000
- ldr r3, _08040BD4 @ =0x000160c0
- adds r0, r2, r3
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r5, _08040BD8 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x4
- strb r0, [r5, 0x1]
- ldr r0, _08040BDC @ =0x00016054
- adds r4, r2, r0
- ldrb r0, [r4]
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x4]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08040BE4
- ldr r1, _08040BE0 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- b _08040BEE
- .align 2, 0
-_08040BCC: .4byte byte_2024C06
-_08040BD0: .4byte 0x02000000
-_08040BD4: .4byte 0x000160c0
-_08040BD8: .4byte gUnknown_030041C0
-_08040BDC: .4byte 0x00016054
-_08040BE0: .4byte gUnknown_02024A6A
-_08040BE4:
- ldr r0, _08040C24 @ =gUnknown_02024A6A
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
-_08040BEE:
- strb r0, [r5, 0x3]
- ldr r4, _08040C28 @ =gUnknown_03004290
- movs r0, 0xFD
- strb r0, [r4]
- movs r0, 0x4
- strb r0, [r4, 0x1]
- ldr r1, _08040C2C @ =gUnknown_02024E6C
- ldrb r0, [r1]
- strb r0, [r4, 0x2]
- ldr r2, _08040C24 @ =gUnknown_02024A6A
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0]
- bl pokemon_order_func
- strb r0, [r4, 0x3]
- movs r0, 0xFF
- strb r0, [r4, 0x4]
- ldr r0, _08040C30 @ =gUnknown_083FFCCA
- ldr r1, _08040C34 @ =gStringVar4
- bl sub_8120FFC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08040C24: .4byte gUnknown_02024A6A
-_08040C28: .4byte gUnknown_03004290
-_08040C2C: .4byte gUnknown_02024E6C
-_08040C30: .4byte gUnknown_083FFCCA
-_08040C34: .4byte gStringVar4
- thumb_func_end sub_8040B8C
-
- thumb_func_start sub_8040C38
-sub_8040C38: @ 8040C38
- push {r4,r5,lr}
- ldr r0, _08040C90 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _08040C94 @ =0x00002008
- ands r0, r1
- cmp r0, 0
- bne _08040CAC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r4, _08040C98 @ =gEnemyParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08040C9C @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r3, r1, 2
- adds r1, r3, r2
- ldrh r0, [r1, 0xC]
- ldrh r1, [r1, 0xE]
- cmp r0, r1
- beq _08040C82
- cmp r5, 0x2C
- bls _08040CAC
- cmp r5, 0x5E
- bhi _08040CA0
-_08040C82:
- adds r2, 0xC
- adds r2, r3, r2
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- b _08040CAC
- .align 2, 0
-_08040C90: .4byte gUnknown_020239F8
-_08040C94: .4byte 0x00002008
-_08040C98: .4byte gEnemyParty
-_08040C9C: .4byte gBaseStats
-_08040CA0:
- adds r2, 0xE
- adds r2, r3, r2
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
-_08040CAC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8040C38
-
- thumb_func_start sub_8040CB4
-sub_8040CB4: @ 8040CB4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_8040CE0
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8040CB4
-
- thumb_func_start sub_8040CE0
-sub_8040CE0: @ 8040CE0
- push {r4,lr}
- movs r4, 0
- lsrs r2, r0, 16
- ldr r3, _08040D04 @ =0x0000ffff
- ands r0, r3
- eors r2, r0
- lsrs r0, r1, 16
- eors r2, r0
- ands r1, r3
- eors r2, r1
- cmp r2, 0x7
- bhi _08040CFA
- movs r4, 0x1
-_08040CFA:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D04: .4byte 0x0000ffff
- thumb_func_end sub_8040CE0
-
- thumb_func_start sub_8040D08
-sub_8040D08: @ 8040D08
- push {r4,lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08040D38 @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x18]
- movs r0, 0x2
- eors r0, r1
- bl sub_803FC34
- adds r1, r0, 0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r4, 0x8
- adds r0, r4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D38: .4byte gLinkPlayers
- thumb_func_end sub_8040D08
-
- thumb_func_start sub_8040D3C
-sub_8040D3C: @ 8040D3C
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r1, r0, 16
- adds r0, r1, 0
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0
- cmp r1, 0x20
- beq _08040D54
- cmp r1, 0x1D
- bne _08040D7E
-_08040D54:
- cmp r2, 0x2
- bne _08040D68
- movs r0, 0xB
- muls r1, r0
- ldr r0, _08040D64 @ =gSpeciesNames
- adds r1, r0
- b _08040D70
- .align 2, 0
-_08040D64: .4byte gSpeciesNames
-_08040D68:
- ldr r1, _08040D88 @ =gUnknown_08208337
- cmp r0, 0x20
- bne _08040D70
- subs r1, 0xB
-_08040D70:
- adds r0, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- movs r3, 0
- cmp r0, 0
- bne _08040D7E
- movs r3, 0x1
-_08040D7E:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08040D88: .4byte gUnknown_08208337
- thumb_func_end sub_8040D3C
-
- thumb_func_start sub_8040D8C
-sub_8040D8C: @ 8040D8C
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0x2
- ldrb r0, [r1]
- cmp r0, 0xFC
- bne _08040DA2
- ldrb r0, [r1, 0x1]
- cmp r0, 0x15
- bne _08040DA2
- movs r2, 0x1
-_08040DA2:
- adds r0, r3, 0
- bl sub_8040D3C
- pop {r1}
- bx r1
- thumb_func_end sub_8040D8C
-
- thumb_func_start unref_sub_8040DAC
-unref_sub_8040DAC: @ 8040DAC
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x3
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r5, 0
- mov r1, sp
- adds r2, r4, 0
- bl sub_8040D3C
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8040DAC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8040EB4.s b/asm/rom_8040EB4.s
deleted file mode 100644
index cf7780f78..000000000
--- a/asm/rom_8040EB4.s
+++ /dev/null
@@ -1,478 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start object_new_hidden_with_callback
-object_new_hidden_with_callback: @ 8040EB4
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _08040EE8 @ =gSpriteTemplate_82087AC
- movs r1, 0xF8
- movs r2, 0xA8
- movs r3, 0xE
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08040EEC @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r3, r2, r5
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r4, 0x4
- orrs r1, r4
- strb r1, [r3]
- adds r5, 0x1C
- adds r2, r5
- str r6, [r2]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08040EE8: .4byte gSpriteTemplate_82087AC
-_08040EEC: .4byte gSprites
- thumb_func_end object_new_hidden_with_callback
-
- thumb_func_start StoreWordInTwoHalfwords
-StoreWordInTwoHalfwords: @ 8040EF0
- strh r1, [r0]
- lsrs r1, 16
- strh r1, [r0, 0x2]
- bx lr
- thumb_func_end StoreWordInTwoHalfwords
-
- thumb_func_start LoadWordFromTwoHalfwords
-LoadWordFromTwoHalfwords: @ 8040EF8
- ldrh r2, [r0]
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- lsls r0, 16
- orrs r2, r0
- str r2, [r1]
- bx lr
- thumb_func_end LoadWordFromTwoHalfwords
-
- thumb_func_start sub_8040F08
-sub_8040F08: @ 8040F08
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, [sp, 0x18]
- ldr r5, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- ldr r7, [sp, 0x24]
- mov r8, r7
- str r1, [r0]
- str r2, [r0, 0x4]
- strh r3, [r0, 0x8]
- strh r4, [r0, 0xA]
- strh r5, [r0, 0xC]
- strh r6, [r0, 0xE]
- mov r1, r8
- strh r1, [r0, 0x10]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8040F08
-
- thumb_func_start sub_8040F34
-sub_8040F34: @ 8040F34
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x24
- mov r8, r0
- ldr r0, [sp, 0x38]
- ldr r4, [sp, 0x3C]
- ldr r5, [sp, 0x40]
- ldr r6, [sp, 0x44]
- lsls r6, 16
- lsrs r6, 16
- lsls r3, 16
- asrs r3, 16
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- lsls r4, 16
- asrs r4, 16
- str r4, [sp, 0x4]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- add r0, sp, 0x10
- bl sub_8040F08
- add r0, sp, 0x10
- mov r1, r8
- movs r2, 0x1
- bl BgAffineSet
- add sp, 0x24
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8040F34
-
- thumb_func_start sub_8040F80
-sub_8040F80: @ 8040F80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- str r2, [sp, 0x20]
- adds r4, r3, 0
- ldr r7, [sp, 0x5C]
- lsls r0, 24
- lsls r1, 24
- ldr r2, _08041008 @ =gUnknown_082087C4
- lsrs r1, 23
- lsrs r0, 21
- adds r1, r0
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- str r0, [sp, 0x24]
- adds r1, r2
- ldrb r1, [r1]
- str r1, [sp, 0x28]
- movs r1, 0
- cmp r1, r0
- bcc _08040FB4
- b _08041136
-_08040FB4:
- movs r0, 0x20
- ldr r2, [sp, 0x28]
- subs r0, r2
- lsls r0, 1
- str r0, [sp, 0x2C]
-_08040FBE:
- movs r2, 0
- adds r1, 0x1
- str r1, [sp, 0x34]
- ldr r3, [sp, 0x28]
- cmp r2, r3
- bcc _08040FCC
- b _08041124
-_08040FCC:
- ldr r0, _0804100C @ =0x040000d4
- mov r8, r0
-_08040FD0:
- ldrh r1, [r4]
- ldr r0, _08041010 @ =0x000003ff
- ands r0, r1
- lsls r0, 5
- mov r12, r0
- movs r0, 0xC0
- lsls r0, 4
- ands r0, r1
- mov r3, sp
- strh r1, [r3, 0x38]
- cmp r0, 0
- bne _08041018
- ldr r0, [sp, 0x20]
- add r0, r12
- mov r1, r8
- str r0, [r1]
- str r7, [r1, 0x4]
- ldr r3, _08041014 @ =0x84000008
- str r3, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r4, 0x2
- str r4, [sp, 0x30]
- adds r7, 0x20
- mov r10, r7
- adds r2, 0x1
- mov r9, r2
- b _08041112
- .align 2, 0
-_08041008: .4byte gUnknown_082087C4
-_0804100C: .4byte 0x040000d4
-_08041010: .4byte 0x000003ff
-_08041014: .4byte 0x84000008
-_08041018:
- movs r1, 0x80
- lsls r1, 4
- cmp r0, r1
- bne _08041068
- movs r3, 0
- adds r4, 0x2
- str r4, [sp, 0x30]
- movs r0, 0x20
- adds r0, r7
- mov r10, r0
- adds r2, 0x1
- mov r9, r2
- ldr r4, _08041060 @ =0x040000d4
- ldr r6, _08041064 @ =0x84000001
- movs r5, 0x7
-_08041036:
- lsls r2, r3, 24
- asrs r2, 24
- subs r0, r5, r2
- lsls r0, 2
- add r0, r12
- ldr r1, [sp, 0x20]
- adds r0, r1, r0
- lsls r1, r2, 2
- adds r1, r7, r1
- str r0, [r4]
- str r1, [r4, 0x4]
- str r6, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r2, 0x1
- lsls r2, 24
- lsrs r3, r2, 24
- asrs r2, 24
- cmp r2, 0x7
- ble _08041036
- b _08041112
- .align 2, 0
-_08041060: .4byte 0x040000d4
-_08041064: .4byte 0x84000001
-_08041068:
- movs r3, 0
- adds r4, 0x2
- str r4, [sp, 0x30]
- movs r0, 0x20
- adds r0, r7
- mov r10, r0
- adds r2, 0x1
- mov r9, r2
-_08041078:
- movs r2, 0
- lsls r4, r3, 24
- lsls r0, r4, 2
- lsrs r0, 24
- adds r6, r0, 0x3
- mov r1, r12
- adds r5, r1, r0
-_08041086:
- lsls r1, r2, 24
- asrs r1, 24
- subs r0, r6, r1
- mov r2, sp
- adds r3, r2, r0
- adds r0, r5, r1
- ldr r2, [sp, 0x20]
- adds r0, r2, r0
- ldrb r2, [r0]
- movs r0, 0xF
- ands r0, r2
- lsls r0, 4
- lsrs r2, 4
- orrs r0, r2
- strb r0, [r3]
- adds r1, 0x1
- lsls r1, 24
- lsrs r2, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _08041086
- movs r3, 0x80
- lsls r3, 17
- adds r0, r4, r3
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x7
- ble _08041078
- movs r0, 0x80
- lsls r0, 4
- mov r1, sp
- ldrh r1, [r1, 0x38]
- ands r0, r1
- cmp r0, 0
- beq _08041104
- movs r3, 0
- ldr r4, _080410FC @ =0x040000d4
- ldr r6, _08041100 @ =0x84000001
- movs r5, 0x7
-_080410D4:
- lsls r1, r3, 24
- asrs r1, 24
- subs r0, r5, r1
- lsls r0, 2
- mov r3, sp
- adds r2, r3, r0
- lsls r0, r1, 2
- adds r0, r7, r0
- str r2, [r4]
- str r0, [r4, 0x4]
- str r6, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r1, 0x1
- lsls r1, 24
- lsrs r3, r1, 24
- asrs r1, 24
- cmp r1, 0x7
- ble _080410D4
- b _08041112
- .align 2, 0
-_080410FC: .4byte 0x040000d4
-_08041100: .4byte 0x84000001
-_08041104:
- mov r0, sp
- mov r1, r8
- str r0, [r1]
- str r7, [r1, 0x4]
- ldr r2, _08041148 @ =0x84000008
- str r2, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_08041112:
- ldr r4, [sp, 0x30]
- mov r7, r10
- mov r3, r9
- lsls r0, r3, 24
- lsrs r2, r0, 24
- ldr r0, [sp, 0x28]
- cmp r2, r0
- bcs _08041124
- b _08040FD0
-_08041124:
- ldr r1, [sp, 0x2C]
- adds r4, r1
- ldr r2, [sp, 0x34]
- lsls r0, r2, 24
- lsrs r1, r0, 24
- ldr r3, [sp, 0x24]
- cmp r1, r3
- bcs _08041136
- b _08040FBE
-_08041136:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08041148: .4byte 0x84000008
- thumb_func_end sub_8040F80
-
- thumb_func_start sub_804114C
-sub_804114C: @ 804114C
- push {lr}
- adds r2, r0, 0
- movs r1, 0
- movs r3, 0x1
-_08041154:
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _08041160
- adds r0, r1, 0
- b _0804116E
-_08041160:
- lsrs r2, 1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1F
- bls _08041154
- movs r0, 0
-_0804116E:
- pop {r1}
- bx r1
- thumb_func_end sub_804114C
-
- thumb_func_start sub_8041174
-sub_8041174: @ 8041174
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r4, r1, 0
- ldr r2, _080411A4 @ =0x00001121
- movs r3, 0
- cmp r3, r4
- bge _080411C0
- movs r6, 0x1
- ldr r0, _080411A8 @ =0x00008408
- adds r5, r0, 0
-_08041188:
- adds r0, r7, r3
- ldrb r0, [r0]
- eors r2, r0
- movs r1, 0
- adds r3, 0x1
-_08041192:
- adds r0, r2, 0
- ands r0, r6
- cmp r0, 0
- beq _080411AC
- lsrs r0, r2, 1
- eors r0, r5
- lsls r0, 16
- lsrs r2, r0, 16
- b _080411AE
- .align 2, 0
-_080411A4: .4byte 0x00001121
-_080411A8: .4byte 0x00008408
-_080411AC:
- lsrs r2, 1
-_080411AE:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x7
- bls _08041192
- lsls r0, r3, 16
- lsrs r3, r0, 16
- cmp r3, r4
- blt _08041188
-_080411C0:
- mvns r0, r2
- lsls r0, 16
- lsrs r0, 16
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8041174
-
- thumb_func_start unref_sub_80411CC
-unref_sub_80411CC: @ 80411CC
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r2, _08041208 @ =0x00001121
- movs r3, 0
- cmp r3, r4
- bge _080411FA
- ldr r6, _0804120C @ =gCrc16Table
-_080411DC:
- lsrs r1, r2, 8
- adds r0, r5, r3
- ldrb r0, [r0]
- eors r2, r0
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r6
- ldrh r0, [r0]
- adds r2, r0, 0
- eors r2, r1
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- blt _080411DC
-_080411FA:
- mvns r0, r2
- lsls r0, 16
- lsrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08041208: .4byte 0x00001121
-_0804120C: .4byte gCrc16Table
- thumb_func_end unref_sub_80411CC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_804373C.s b/asm/rom_804373C.s
deleted file mode 100644
index a134237f1..000000000
--- a/asm/rom_804373C.s
+++ /dev/null
@@ -1,8495 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_804373C
-sub_804373C: @ 804373C
- movs r0, 0x9
- bx lr
- thumb_func_end sub_804373C
-
- thumb_func_start sub_8043740
-sub_8043740: @ 8043740
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r1, 0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- movs r3, 0
- movs r2, 0
-_0804375C:
- lsls r0, r3, 24
- asrs r0, 24
- mov r3, sp
- adds r1, r3, r0
- strb r2, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _0804375C
- movs r3, 0x3
- movs r0, 0x1
- negs r0, r0
- mov r9, r0
- mov r8, sp
-_0804377C:
- lsls r0, r5, 16
- asrs r6, r0, 16
- cmp r6, 0
- ble _080437AA
- lsls r4, r3, 24
- asrs r4, 24
- mov r1, sp
- adds r5, r1, r4
- adds r0, r6, 0
- movs r1, 0xA
- bl __modsi3
- strb r0, [r5]
- adds r0, r6, 0
- movs r1, 0xA
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- subs r4, 0x1
- lsls r4, 24
- lsrs r3, r4, 24
- b _0804377C
-_080437AA:
- lsls r1, r3, 24
- asrs r0, r1, 24
- cmp r0, r9
- ble _080437CE
- movs r4, 0xFF
- movs r3, 0x1
- negs r3, r3
-_080437B8:
- asrs r2, r1, 24
- mov r5, sp
- adds r1, r5, r2
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- subs r2, 0x1
- lsls r1, r2, 24
- asrs r0, r1, 24
- cmp r0, r3
- bgt _080437B8
-_080437CE:
- mov r1, r8
- ldrb r0, [r1, 0x3]
- cmp r0, 0xFF
- bne _080437DA
- movs r0, 0
- strb r0, [r1, 0x3]
-_080437DA:
- mov r2, r10
- cmp r2, 0
- bne _0804386A
- movs r3, 0
- movs r1, 0
- movs r6, 0xFC
- lsls r6, 8
- movs r5, 0x1E
- mov r12, r5
-_080437EC:
- lsls r1, 24
- asrs r2, r1, 24
- mov r0, sp
- adds r5, r0, r2
- ldrb r0, [r5]
- mov r8, r1
- cmp r0, 0xFF
- bne _08043822
- lsls r1, r2, 1
- adds r1, r7
- ldrh r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- mov r2, r12
- orrs r0, r2
- strh r0, [r1]
- lsls r3, 24
- asrs r1, r3, 23
- adds r1, r7
- adds r1, 0x40
- ldrh r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- mov r5, r12
- orrs r0, r5
- strh r0, [r1]
- b _08043852
-_08043822:
- lsls r2, 1
- adds r2, r7
- ldrh r0, [r2]
- adds r1, r6, 0
- ands r1, r0
- ldrb r0, [r5]
- adds r0, 0x14
- orrs r1, r0
- strh r1, [r2]
- lsls r4, r3, 24
- asrs r3, r4, 24
- lsls r2, r3, 1
- adds r2, r7
- adds r2, 0x40
- ldrh r0, [r2]
- adds r1, r6, 0
- ands r1, r0
- mov r5, sp
- adds r0, r5, r3
- ldrb r0, [r0]
- adds r0, 0x34
- orrs r1, r0
- strh r1, [r2]
- adds r3, r4, 0
-_08043852:
- movs r0, 0x80
- lsls r0, 17
- add r0, r8
- lsrs r1, r0, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r3, r2
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080437EC
- b _080438CE
-_0804386A:
- movs r3, 0
- movs r4, 0xFC
- lsls r4, 8
- movs r6, 0x1E
-_08043872:
- lsls r1, r3, 24
- asrs r2, r1, 24
- mov r3, sp
- adds r5, r3, r2
- ldrb r0, [r5]
- adds r3, r1, 0
- cmp r0, 0xFF
- bne _0804389E
- lsls r1, r2, 1
- adds r1, r7
- ldrh r2, [r1]
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r6
- strh r0, [r1]
- adds r1, 0x40
- ldrh r2, [r1]
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r6
- strh r0, [r1]
- b _080438C0
-_0804389E:
- lsls r2, 1
- adds r2, r7
- ldrh r0, [r2]
- adds r1, r4, 0
- ands r1, r0
- ldrb r0, [r5]
- adds r0, 0x14
- orrs r1, r0
- strh r1, [r2]
- adds r2, 0x40
- ldrh r0, [r2]
- adds r1, r4, 0
- ands r1, r0
- ldrb r0, [r5]
- adds r0, 0x34
- orrs r1, r0
- strh r1, [r2]
-_080438C0:
- movs r5, 0x80
- lsls r5, 17
- adds r0, r3, r5
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _08043872
-_080438CE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8043740
-
- thumb_func_start unref_sub_80438E0
-unref_sub_80438E0: @ 80438E0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- movs r1, 0x1E
- strh r1, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- adds r1, r5, 0
- movs r2, 0
- bl sub_8043740
- lsls r4, 16
- asrs r4, 16
- adds r5, 0xA
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8043740
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80438E0
-
- thumb_func_start battle_make_oam_normal_battle
-battle_make_oam_normal_battle: @ 8043914
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- movs r0, 0
- str r0, [sp]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08043A28
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080439AC
- ldr r4, _0804399C @ =gSpriteTemplate_820A4EC
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _080439A0 @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x1]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r2, r4
- ldrb r0, [r2, 0x1]
- ands r3, r0
- strb r3, [r2, 0x1]
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x40
- ldr r4, _080439A4 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080439A8 @ =0xfffffc00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- b _080439F2
- .align 2, 0
-_0804399C: .4byte gSpriteTemplate_820A4EC
-_080439A0: .4byte gSprites
-_080439A4: .4byte 0x000003ff
-_080439A8: .4byte 0xfffffc00
-_080439AC:
- ldr r4, _08043A14 @ =gSpriteTemplate_820A51C
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08043A18 @ =gSprites
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r5, _08043A1C @ =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _08043A20 @ =0xfffffc00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- movs r0, 0x2
- str r0, [sp]
-_080439F2:
- ldr r2, _08043A18 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r2
- strh r7, [r0, 0x6]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r1, r0, r2
- strh r6, [r1, 0x38]
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08043A24 @ =sub_8043D5C
- str r1, [r0]
- b _08043B50
- .align 2, 0
-_08043A14: .4byte gSpriteTemplate_820A51C
-_08043A18: .4byte gSprites
-_08043A1C: .4byte 0x000003ff
-_08043A20: .4byte 0xfffffc00
-_08043A24: .4byte sub_8043D5C
-_08043A28:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08043ACC
- mov r0, r10
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r4, _08043AB8 @ =gSpriteTemplate_820A4EC
- adds r0, r4
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r10
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _08043ABC @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x6]
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r3, r2, r4
- strh r6, [r3, 0x38]
- ldrh r1, [r3, 0x4]
- mov r8, r1
- mov r5, r8
- lsls r1, r5, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r5, _08043AC0 @ =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _08043AC4 @ =0xfffffc00
- mov r5, r8
- ands r0, r5
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r4, 0x1C
- adds r2, r4
- ldr r0, _08043AC8 @ =sub_8043D5C
- str r0, [r2]
- movs r0, 0x1
- b _08043B4E
- .align 2, 0
-_08043AB8: .4byte gSpriteTemplate_820A4EC
-_08043ABC: .4byte gSprites
-_08043AC0: .4byte 0x000003ff
-_08043AC4: .4byte 0xfffffc00
-_08043AC8: .4byte sub_8043D5C
-_08043ACC:
- mov r0, r10
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r4, _08043C14 @ =gSpriteTemplate_820A51C
- adds r0, r4
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r10
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _08043C18 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x6]
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r3, r2, r4
- strh r6, [r3, 0x38]
- ldrh r1, [r3, 0x4]
- mov r8, r1
- mov r5, r8
- lsls r1, r5, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r5, _08043C1C @ =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _08043C20 @ =0xfffffc00
- mov r5, r8
- ands r0, r5
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r4, 0x1C
- adds r2, r4
- ldr r0, _08043C24 @ =sub_8043D5C
- str r0, [r2]
- movs r0, 0x2
-_08043B4E:
- str r0, [sp]
-_08043B50:
- ldr r0, _08043C28 @ =gUnknown_02024A72
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _08043C2C @ =gSpriteTemplate_820A56C
- adds r0, r1
- movs r1, 0x8C
- movs r2, 0x3C
- movs r3, 0
- bl CreateSpriteAtEnd
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r1, _08043C18 @ =gSprites
- mov r8, r1
- add r4, r8
- mov r0, r10
- bl battle_side_get_owner
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 21
- ldr r0, _08043C30 @ =gSubspriteTables_820A684
- adds r1, r0
- adds r0, r4, 0
- bl SetSubspriteTables
- adds r2, r4, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r2, 0x4
- mov r9, r2
- mov r1, r9
- orrs r0, r1
- strb r0, [r4, 0x5]
- movs r0, 0x1
- bl sub_8043CDC
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r2, _08043C34 @ =0x06010000
- adds r1, r2
- ldr r2, _08043C38 @ =REG_BG0HOFS
- bl CpuSet
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- add r0, r8
- strh r5, [r0, 0x38]
- mov r2, r10
- strh r2, [r0, 0x3A]
- adds r0, 0x3E
- ldrb r1, [r0]
- mov r5, r9
- orrs r1, r5
- strb r1, [r0]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- add r0, r8
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r5
- strb r1, [r0]
- strh r6, [r4, 0x38]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x3A]
- adds r4, 0x3E
- ldrb r0, [r4]
- orrs r0, r5
- strb r0, [r4]
- adds r0, r6, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08043C14: .4byte gSpriteTemplate_820A51C
-_08043C18: .4byte gSprites
-_08043C1C: .4byte 0x000003ff
-_08043C20: .4byte 0xfffffc00
-_08043C24: .4byte sub_8043D5C
-_08043C28: .4byte gUnknown_02024A72
-_08043C2C: .4byte gSpriteTemplate_820A56C
-_08043C30: .4byte gSubspriteTables_820A684
-_08043C34: .4byte 0x06010000
-_08043C38: .4byte REG_BG0HOFS
- thumb_func_end battle_make_oam_normal_battle
-
- thumb_func_start battle_make_oam_safari_battle
-battle_make_oam_safari_battle: @ 8043C3C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, _08043CC8 @ =gSpriteTemplate_820A54C
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08043CCC @ =gSprites
- mov r9, r1
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- add r4, r9
- ldrb r3, [r4, 0x1]
- movs r2, 0x3F
- adds r1, r2, 0
- ands r1, r3
- strb r1, [r4, 0x1]
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- mov r7, r9
- adds r5, r3, r7
- ldrb r1, [r5, 0x1]
- ands r2, r1
- strb r2, [r5, 0x1]
- ldrh r1, [r5, 0x4]
- mov r8, r1
- mov r7, r8
- lsls r2, r7, 22
- lsrs r2, 22
- adds r2, 0x40
- ldr r7, _08043CD0 @ =0x000003ff
- adds r1, r7, 0
- ands r2, r1
- ldr r1, _08043CD4 @ =0xfffffc00
- mov r7, r8
- ands r1, r7
- orrs r1, r2
- strh r1, [r5, 0x4]
- strh r0, [r4, 0x6]
- strh r6, [r5, 0x38]
- movs r0, 0x1C
- add r9, r0
- add r3, r9
- ldr r0, _08043CD8 @ =sub_8043D5C
- str r0, [r3]
- adds r0, r6, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08043CC8: .4byte gSpriteTemplate_820A54C
-_08043CCC: .4byte gSprites
-_08043CD0: .4byte 0x000003ff
-_08043CD4: .4byte 0xfffffc00
-_08043CD8: .4byte sub_8043D5C
- thumb_func_end battle_make_oam_safari_battle
-
- thumb_func_start sub_8043CDC
-sub_8043CDC: @ 8043CDC
- lsls r0, 24
- lsrs r0, 19
- ldr r1, _08043CE8 @ =gUnknown_08D1216C
- adds r0, r1
- bx lr
- .align 2, 0
-_08043CE8: .4byte gUnknown_08D1216C
- thumb_func_end sub_8043CDC
-
- thumb_func_start sub_8043CEC
-sub_8043CEC: @ 8043CEC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08043D1C
- cmp r0, 0x1
- bgt _08043D30
- cmp r0, 0
- bne _08043D30
- ldr r2, _08043D18 @ =gSprites
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x20]
- adds r0, 0x10
- b _08043D3E
- .align 2, 0
-_08043D18: .4byte gSprites
-_08043D1C:
- ldr r2, _08043D2C @ =gSprites
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x20]
- adds r0, 0x10
- b _08043D3E
- .align 2, 0
-_08043D2C: .4byte gSprites
-_08043D30:
- ldr r2, _08043D58 @ =gSprites
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x20]
- adds r0, 0x8
-_08043D3E:
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x22]
- strh r0, [r4, 0x22]
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- strh r1, [r4, 0x24]
- ldrh r0, [r0, 0x26]
- strh r0, [r4, 0x26]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043D58: .4byte gSprites
- thumb_func_end sub_8043CEC
-
- thumb_func_start sub_8043D5C
-sub_8043D5C: @ 8043D5C
- ldrh r1, [r0, 0x38]
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08043D80 @ =gSprites
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x20]
- adds r1, 0x40
- strh r1, [r0, 0x20]
- ldrh r1, [r2, 0x22]
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x24]
- strh r1, [r0, 0x24]
- ldrh r1, [r2, 0x26]
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_08043D80: .4byte gSprites
- thumb_func_end sub_8043D5C
-
- thumb_func_start sub_8043D84
-sub_8043D84: @ 8043D84
- push {r4,r5,lr}
- ldr r5, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 2
- ldr r0, _08043DA8 @ =0x02017850
- adds r4, r0
- strb r1, [r4]
- str r2, [r4, 0x4]
- str r3, [r4, 0x8]
- str r5, [r4, 0xC]
- ldr r0, _08043DAC @ =0xffff8000
- str r0, [r4, 0x10]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043DA8: .4byte 0x02017850
-_08043DAC: .4byte 0xffff8000
- thumb_func_end sub_8043D84
-
- thumb_func_start sub_8043DB0
-sub_8043DB0: @ 8043DB0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08043DF8 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- movs r0, 0x38
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- ldrh r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08043DF8: .4byte gSprites
- thumb_func_end sub_8043DB0
-
- thumb_func_start sub_8043DFC
-sub_8043DFC: @ 8043DFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08043E4C @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- adds r4, r2, 0
- adds r4, 0x3E
- ldrb r1, [r4]
- movs r3, 0x5
- negs r3, r3
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x38
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r4, [r0]
- adds r1, r3, 0
- ands r1, r4
- strb r1, [r0]
- ldrh r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043E4C: .4byte gSprites
- thumb_func_end sub_8043DFC
-
- thumb_func_start sub_8043E50
-sub_8043E50: @ 8043E50
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08043E6C @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- strh r1, [r3, 0x20]
- strh r2, [r3, 0x22]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08043E6C: .4byte gSprites
- thumb_func_end sub_8043E50
-
- thumb_func_start unref_sub_8043E70
-unref_sub_8043E70: @ 8043E70
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08043EAC @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r4, r5
- ldrh r1, [r4, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0
- bl DestroySprite
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08043EAC: .4byte gSprites
- thumb_func_end unref_sub_8043E70
-
- thumb_func_start nullsub_11
-nullsub_11: @ 8043EB0
- bx lr
- thumb_func_end nullsub_11
-
- thumb_func_start sub_8043EB4
-sub_8043EB4: @ 8043EB4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- ldr r1, _08043F38 @ =gUnknown_02024A68
- mov r8, r1
- ldrb r2, [r1]
- cmp r6, r2
- bge _08043F2C
- ldr r1, _08043F3C @ =gSprites
- mov r12, r1
- movs r1, 0x3
- ands r0, r1
- lsls r5, r0, 2
- movs r7, 0xD
- negs r7, r7
- ldr r2, _08043F40 @ =gUnknown_03004340
- mov r9, r2
-_08043EDE:
- mov r1, r9
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- ldrb r4, [r1, 0x6]
- ldrh r3, [r1, 0x38]
- lsls r3, 24
- lsrs r3, 24
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- add r1, r12
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- add r1, r12
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
- adds r6, 0x1
- mov r2, r8
- ldrb r2, [r2]
- cmp r6, r2
- blt _08043EDE
-_08043F2C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08043F38: .4byte gUnknown_02024A68
-_08043F3C: .4byte gSprites
-_08043F40: .4byte gUnknown_03004340
- thumb_func_end sub_8043EB4
-
- thumb_func_start sub_8043F44
-sub_8043F44: @ 8043F44
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r4, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08043F70
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08043F6A
- movs r5, 0x2C
- movs r4, 0x1E
- b _08043FA8
-_08043F6A:
- movs r5, 0x9E
- movs r4, 0x58
- b _08043FA8
-_08043F70:
- adds r0, r6, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08043F9E
- cmp r0, 0x1
- bgt _08043F88
- cmp r0, 0
- beq _08043F92
- b _08043FA8
-_08043F88:
- cmp r0, 0x2
- beq _08043F98
- cmp r0, 0x3
- beq _08043FA4
- b _08043FA8
-_08043F92:
- movs r5, 0x9F
- movs r4, 0x4D
- b _08043FA8
-_08043F98:
- movs r5, 0xAB
- movs r4, 0x66
- b _08043FA8
-_08043F9E:
- movs r5, 0x2C
- movs r4, 0x13
- b _08043FA8
-_08043FA4:
- movs r5, 0x20
- movs r4, 0x2C
-_08043FA8:
- ldr r0, _08043FBC @ =gUnknown_03004340
- adds r0, r6, r0
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8043E50
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08043FBC: .4byte gUnknown_03004340
- thumb_func_end sub_8043F44
-
- thumb_func_start sub_8043FC0
-sub_8043FC0: @ 8043FC0
- push {r4-r7,lr}
- sub sp, 0x20
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _08044000 @ =gUnknown_0820A81C
- mov r0, sp
- movs r2, 0x1E
- bl memcpy
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08044010
- ldr r1, _08044004 @ =gSprites
- lsls r4, r5, 4
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- ldr r7, _08044008 @ =gUnknown_0820A80C
- cmp r0, 0
- bne _0804402E
- ldr r7, _0804400C @ =gUnknown_0820A804
- b _0804402E
- .align 2, 0
-_08044000: .4byte gUnknown_0820A81C
-_08044004: .4byte gSprites
-_08044008: .4byte gUnknown_0820A80C
-_0804400C: .4byte gUnknown_0820A804
-_08044010:
- ldr r1, _08044040 @ =gSprites
- lsls r4, r5, 4
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- ldr r7, _08044044 @ =gUnknown_0820A80C
- cmp r0, 0
- bne _0804402E
- ldr r7, _08044048 @ =gUnknown_0820A814
-_0804402E:
- mov r3, sp
- adds r3, 0x6
- cmp r6, 0x64
- bne _0804404C
- adds r0, r3, 0
- movs r1, 0x64
- movs r2, 0
- movs r3, 0x3
- b _0804408C
- .align 2, 0
-_08044040: .4byte gSprites
-_08044044: .4byte gUnknown_0820A80C
-_08044048: .4byte gUnknown_0820A814
-_0804404C:
- movs r1, 0xFC
- strb r1, [r3]
- mov r3, sp
- adds r3, 0x7
- movs r0, 0x11
- strb r0, [r3]
- adds r3, 0x1
- movs r0, 0x1
- strb r0, [r3]
- adds r3, 0x1
- strb r1, [r3]
- adds r3, 0x1
- movs r2, 0x14
- strb r2, [r3]
- adds r3, 0x1
- movs r0, 0x4
- strb r0, [r3]
- adds r3, 0x1
- movs r0, 0xF0
- strb r0, [r3]
- adds r3, 0x1
- strb r1, [r3]
- adds r3, 0x1
- strb r2, [r3]
- adds r3, 0x1
- movs r0, 0
- strb r0, [r3]
- adds r3, 0x1
- adds r0, r3, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x2
-_0804408C:
- bl ConvertIntToDecimalStringN
- adds r3, r0, 0
- movs r0, 0xFC
- strb r0, [r3]
- adds r3, 0x1
- movs r0, 0x13
- strb r0, [r3]
- adds r3, 0x1
- movs r0, 0xF
- strb r0, [r3]
- movs r0, 0xFF
- strb r0, [r3, 0x1]
- movs r0, 0x80
- lsls r0, 18
- mov r1, sp
- bl sub_80034D4
- ldr r1, _080440E0 @ =gSprites
- adds r0, r4, r5
- lsls r0, 2
- adds r6, r0, r1
- ldr r5, _080440E4 @ =0x02000020
- movs r4, 0x2
-_080440BC:
- ldrh r0, [r6, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldm r7!, {r1}
- adds r1, r0
- adds r0, r5, 0
- ldr r2, _080440E8 @ =REG_BG0CNT
- bl CpuSet
- adds r5, 0x40
- subs r4, 0x1
- cmp r4, 0
- bne _080440BC
- add sp, 0x20
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080440E0: .4byte gSprites
-_080440E4: .4byte 0x02000020
-_080440E8: .4byte REG_BG0CNT
- thumb_func_end sub_8043FC0
-
- thumb_func_start sub_80440EC
-sub_80440EC: @ 80440EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r1, _08044144 @ =gUnknown_0820A864
- mov r0, sp
- movs r2, 0x14
- bl memcpy
- ldr r1, _08044148 @ =gSprites
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x3A
- ldrsh r5, [r4, r0]
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08044136
- lsls r0, r5, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0804414C
-_08044136:
- lsls r1, r6, 16
- asrs r1, 16
- adds r0, r7, 0
- mov r2, r8
- bl sub_8044210
- b _080441F0
- .align 2, 0
-_08044144: .4byte gUnknown_0820A864
-_08044148: .4byte gSprites
-_0804414C:
- mov r5, sp
- adds r5, 0x6
- mov r0, r8
- cmp r0, 0
- bne _08044190
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- ldr r4, _08044188 @ =gUnknown_0820A848
- cmp r0, 0
- bne _0804416A
- ldr r4, _0804418C @ =gUnknown_0820A83C
-_0804416A:
- movs r0, 0x3
- mov r8, r0
- lsls r1, r6, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0x13
- movs r3, 0x1
- bl sub_8003504
- adds r5, r0, 0
- movs r0, 0xBA
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- b _080441B6
- .align 2, 0
-_08044188: .4byte gUnknown_0820A848
-_0804418C: .4byte gUnknown_0820A83C
-_08044190:
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- ldr r4, _080441FC @ =gUnknown_0820A85C
- cmp r0, 0
- bne _080441A4
- ldr r4, _08044200 @ =gUnknown_0820A854
-_080441A4:
- movs r0, 0x2
- mov r8, r0
- lsls r1, r6, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0xF
- movs r3, 0x1
- bl sub_8003504
-_080441B6:
- movs r0, 0x80
- lsls r0, 18
- mov r1, sp
- bl sub_80034D4
- mov r0, r8
- cmp r0, 0
- beq _080441F0
- ldr r1, _08044204 @ =gSprites
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r6, r0, r1
- adds r7, r4, 0
- ldr r5, _08044208 @ =0x02000020
- mov r4, r8
-_080441D6:
- ldrh r0, [r6, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldm r7!, {r1}
- adds r1, r0
- adds r0, r5, 0
- ldr r2, _0804420C @ =REG_BG0CNT
- bl CpuSet
- adds r5, 0x40
- subs r4, 0x1
- cmp r4, 0
- bne _080441D6
-_080441F0:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080441FC: .4byte gUnknown_0820A85C
-_08044200: .4byte gUnknown_0820A854
-_08044204: .4byte gSprites
-_08044208: .4byte 0x02000020
-_0804420C: .4byte REG_BG0CNT
- thumb_func_end sub_80440EC
-
- thumb_func_start sub_8044210
-sub_8044210: @ 8044210
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- mov r9, r6
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r1, _0804427C @ =gUnknown_0820A89C
- mov r0, sp
- movs r2, 0x14
- bl memcpy
- ldr r1, _08044280 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- mov r8, r0
- movs r1, 0x3A
- ldrsh r4, [r0, r1]
- lsls r0, r4, 2
- ldr r1, _08044284 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08044312
- mov r2, sp
- adds r2, 0x6
- cmp r7, 0
- bne _0804428C
- ldr r7, _08044288 @ =gUnknown_0820A87C
- movs r0, 0x6
- mov r10, r0
- lsls r1, r6, 16
- asrs r1, 16
- adds r0, r2, 0
- movs r2, 0x2B
- movs r3, 0x1
- bl sub_8003504
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- movs r0, 0xFF
- strb r0, [r2, 0x1]
- b _080442CE
- .align 2, 0
-_0804427C: .4byte gUnknown_0820A89C
-_08044280: .4byte gSprites
-_08044284: .4byte 0x02017800
-_08044288: .4byte gUnknown_0820A87C
-_0804428C:
- ldr r7, _08044324 @ =gUnknown_0820A894
- movs r1, 0x2
- mov r10, r1
- mov r0, r9
- lsls r1, r0, 16
- asrs r1, 16
- adds r0, r2, 0
- movs r2, 0xF
- movs r3, 0x1
- bl sub_8003504
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080442CE
- movs r0, 0x74
- bl sub_8043CDC
- mov r2, r8
- ldrh r1, [r2, 0x4]
- lsls r1, 22
- lsrs r1, 17
- movs r2, 0xD0
- lsls r2, 3
- adds r1, r2
- ldr r2, _08044328 @ =0x06010000
- adds r1, r2
- ldr r2, _0804432C @ =REG_BG0CNT
- bl CpuSet
-_080442CE:
- ldr r6, _08044330 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r6
- movs r1, 0x38
- ldrsh r4, [r0, r1]
- movs r0, 0x80
- lsls r0, 18
- mov r1, sp
- bl sub_80034D4
- mov r2, r10
- cmp r2, 0
- beq _08044312
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r6, r0, r6
- ldr r5, _08044334 @ =0x02000020
- mov r4, r10
-_080442F8:
- ldrh r0, [r6, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldm r7!, {r1}
- adds r1, r0
- adds r0, r5, 0
- ldr r2, _0804432C @ =REG_BG0CNT
- bl CpuSet
- adds r5, 0x40
- subs r4, 0x1
- cmp r4, 0
- bne _080442F8
-_08044312:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044324: .4byte gUnknown_0820A894
-_08044328: .4byte 0x06010000
-_0804432C: .4byte REG_BG0CNT
-_08044330: .4byte gSprites
-_08044334: .4byte 0x02000020
- thumb_func_end sub_8044210
-
- thumb_func_start sub_8044338
-sub_8044338: @ 8044338
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- ldr r1, _080443CC @ =gUnknown_0820A864
- mov r0, sp
- movs r2, 0x14
- bl memcpy
- ldr r1, _080443D0 @ =gSprites
- ldr r2, [sp, 0x14]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 7
- ldr r3, _080443D4 @ =0x02000520
- adds r6, r1, r3
- movs r0, 0x5
- mov r8, r0
- adds r0, r4, 0
- bl GetNature
- lsls r0, 24
- mov r4, sp
- adds r4, 0x6
- ldr r1, _080443D8 @ =gNatureNames
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r0, r6, 0
- mov r1, sp
- bl sub_80034D4
- movs r7, 0x6
- movs r5, 0
- mov r1, sp
- adds r1, 0x9
- str r1, [sp, 0x1C]
-_080443AA:
- mov r2, sp
- adds r0, r2, r7
- ldrb r1, [r0]
- adds r0, r1, 0
- subs r0, 0x37
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bls _080443C8
- adds r0, r1, 0
- adds r0, 0x79
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _080443DC
-_080443C8:
- movs r0, 0x2C
- b _080443FA
- .align 2, 0
-_080443CC: .4byte gUnknown_0820A864
-_080443D0: .4byte gSprites
-_080443D4: .4byte 0x02000520
-_080443D8: .4byte gNatureNames
-_080443DC:
- adds r0, r1, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080443F4
- adds r0, r1, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080443F8
-_080443F4:
- movs r0, 0x2D
- b _080443FA
-_080443F8:
- movs r0, 0x2B
-_080443FA:
- bl sub_8043CDC
- lsls r1, r5, 6
- adds r1, r6, r1
- ldr r2, _080444F8 @ =REG_BG0CNT
- bl CpuSet
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, 0x1
- cmp r5, r8
- bcc _080443AA
- movs r7, 0x1
- ldr r3, [sp, 0x14]
- lsls r3, 4
- str r3, [sp, 0x18]
- movs r0, 0x1
- add r0, r8
- mov r9, r0
- cmp r7, r9
- bge _08044486
- ldr r1, _080444FC @ =gSprites
- ldr r2, _080444F8 @ =REG_BG0CNT
- mov r10, r2
- ldr r2, [sp, 0x14]
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- mov r8, r0
-_08044436:
- mov r3, r8
- ldrh r0, [r3, 0x4]
- lsls r0, 22
- lsrs r0, 22
- adds r5, r7, 0
- cmp r7, 0
- bge _08044446
- adds r5, r7, 0x7
-_08044446:
- asrs r5, 3
- lsls r4, r5, 3
- subs r4, r7, r4
- adds r0, r4
- lsls r5, 6
- adds r0, r5
- lsls r0, 5
- ldr r2, _08044500 @ =0x06010000
- adds r1, r0, r2
- adds r0, r6, 0
- mov r2, r10
- bl CpuSet
- adds r6, 0x20
- mov r3, r8
- ldrh r0, [r3, 0x4]
- lsls r0, 22
- lsrs r0, 22
- adds r4, 0x8
- adds r0, r4
- adds r0, r5
- lsls r0, 5
- ldr r2, _08044500 @ =0x06010000
- adds r1, r0, r2
- adds r0, r6, 0
- mov r2, r10
- bl CpuSet
- adds r6, 0x20
- adds r7, 0x1
- cmp r7, r9
- blt _08044436
-_08044486:
- ldr r6, _080444FC @ =gSprites
- ldr r3, [sp, 0x18]
- ldr r1, [sp, 0x14]
- adds r0, r3, r1
- lsls r0, 2
- adds r0, r6
- ldrh r5, [r0, 0x38]
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _08044504 @ =0x02000000
- ldr r2, _08044508 @ =0x00016089
- adds r0, r4, r2
- ldrb r1, [r0]
- mov r0, sp
- adds r0, 0x6
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r3, _0804450C @ =0x00016088
- adds r4, r3
- ldrb r1, [r4]
- ldr r0, [sp, 0x1C]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r1, sp
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0xBA
- strb r0, [r1, 0x8]
- movs r0, 0x80
- lsls r0, 18
- bl sub_80034D4
- movs r7, 0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r5, r0, r6
- ldr r4, _08044510 @ =0x02000020
-_080444DA:
- cmp r7, 0x1
- bgt _08044514
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r0, r7, 0x2
- adds r1, r0
- lsls r1, 5
- ldr r0, _08044500 @ =0x06010000
- adds r1, r0
- adds r0, r4, 0
- ldr r2, _080444F8 @ =REG_BG0CNT
- bl CpuSet
- b _0804452A
- .align 2, 0
-_080444F8: .4byte REG_BG0CNT
-_080444FC: .4byte gSprites
-_08044500: .4byte 0x06010000
-_08044504: .4byte 0x02000000
-_08044508: .4byte 0x00016089
-_0804450C: .4byte 0x00016088
-_08044510: .4byte 0x02000020
-_08044514:
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r1, r7, r1
- lsls r1, 5
- ldr r2, _08044544 @ =0x060100c0
- adds r1, r2
- adds r0, r4, 0
- ldr r2, _08044548 @ =REG_BG0CNT
- bl CpuSet
-_0804452A:
- adds r4, 0x40
- adds r7, 0x1
- cmp r7, 0x4
- ble _080444DA
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044544: .4byte 0x060100c0
-_08044548: .4byte REG_BG0CNT
- thumb_func_end sub_8044338
-
- thumb_func_start sub_804454C
-sub_804454C: @ 804454C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- mov r8, r0
- ldr r0, _0804466C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r8, r0
- blt _08044566
- b _080447E4
-_08044566:
- ldr r1, _08044670 @ =gSprites
- mov r9, r1
- movs r2, 0x64
- mov r10, r2
- ldr r7, _08044674 @ =gUnknown_02024A6A
-_08044570:
- ldr r0, _08044678 @ =gUnknown_03004340
- mov r6, r8
- adds r5, r6, r0
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r9
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _0804467C @ =SpriteCallbackDummy
- cmp r1, r0
- beq _0804458E
- b _080447D4
-_0804458E:
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080445A2
- b _080447D4
-_080445A2:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _080445BA
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080445BA
- b _080447D4
-_080445BA:
- mov r0, r8
- lsls r3, r0, 2
- ldr r0, _08044680 @ =0x02017800
- adds r3, r0
- ldr r0, [r3]
- lsls r0, 27
- lsrs r0, 31
- movs r2, 0x1
- eors r2, r0
- lsls r2, 4
- ldrb r0, [r3]
- movs r6, 0x11
- negs r6, r6
- adds r1, r6, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- ldr r0, [r3]
- lsls r0, 27
- lsrs r6, r0, 31
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080446DC
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _080445FA
- b _080447D4
-_080445FA:
- ldr r0, _08044684 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0804460C
- b _080447D4
-_0804460C:
- cmp r6, 0x1
- bne _08044694
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r0, [r0, 0x38]
- lsls r0, 24
- lsrs r1, r0, 24
- str r2, [sp]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r1, [r0, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r0, _08044688 @ =0x06010000
- adds r1, r0
- mov r0, sp
- ldr r2, _0804468C @ =0x05000040
- bl CpuSet
- ldrb r4, [r5]
- ldrh r0, [r7]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r2, _08044690 @ =gPlayerParty
- adds r0, r2
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_8044210
- ldrb r4, [r5]
- ldrh r0, [r7]
- mov r6, r10
- muls r6, r0
- adds r0, r6, 0
- ldr r1, _08044690 @ =gPlayerParty
- b _08044766
- .align 2, 0
-_0804466C: .4byte gUnknown_02024A68
-_08044670: .4byte gSprites
-_08044674: .4byte gUnknown_02024A6A
-_08044678: .4byte gUnknown_03004340
-_0804467C: .4byte SpriteCallbackDummy
-_08044680: .4byte 0x02017800
-_08044684: .4byte gUnknown_020239F8
-_08044688: .4byte 0x06010000
-_0804468C: .4byte 0x05000040
-_08044690: .4byte gPlayerParty
-_08044694:
- ldrb r0, [r5]
- bl draw_status_ailment_maybe
- ldrb r0, [r5]
- ldrh r1, [r7]
- mov r2, r10
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _080446D0 @ =gPlayerParty
- adds r1, r6
- movs r2, 0x5
- bl sub_8045A5C
- movs r0, 0x75
- bl sub_8043CDC
- ldrb r2, [r5]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r9
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r2, _080446D4 @ =0x06010680
- adds r1, r2
- ldr r2, _080446D8 @ =REG_BG0CNT
- bl CpuSet
- b _080447BE
- .align 2, 0
-_080446D0: .4byte gPlayerParty
-_080446D4: .4byte 0x06010680
-_080446D8: .4byte REG_BG0CNT
-_080446DC:
- cmp r6, 0x1
- bne _0804478C
- ldr r0, _08044704 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _0804470C
- ldrb r0, [r5]
- ldrh r1, [r7]
- mov r6, r10
- muls r6, r1
- adds r1, r6, 0
- ldr r2, _08044708 @ =gEnemyParty
- adds r1, r2
- bl sub_8044338
- b _080447BE
- .align 2, 0
-_08044704: .4byte gUnknown_020239F8
-_08044708: .4byte gEnemyParty
-_0804470C:
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r0, [r0, 0x38]
- lsls r0, 24
- lsrs r1, r0, 24
- str r2, [sp]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r1, [r0, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r6, _08044780 @ =0x06010000
- adds r1, r6
- mov r0, sp
- ldr r2, _08044784 @ =0x05000040
- bl CpuSet
- ldrb r4, [r5]
- ldrh r0, [r7]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r2, _08044788 @ =gEnemyParty
- adds r0, r2
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_8044210
- ldrb r4, [r5]
- ldrh r0, [r7]
- mov r6, r10
- muls r6, r0
- adds r0, r6, 0
- ldr r1, _08044788 @ =gEnemyParty
-_08044766:
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_8044210
- b _080447BE
- .align 2, 0
-_08044780: .4byte 0x06010000
-_08044784: .4byte 0x05000040
-_08044788: .4byte gEnemyParty
-_0804478C:
- ldrb r0, [r5]
- bl draw_status_ailment_maybe
- ldrb r0, [r5]
- ldrh r1, [r7]
- movs r6, 0x64
- muls r1, r6
- ldr r4, _080447F4 @ =gEnemyParty
- adds r1, r4
- movs r2, 0x5
- bl sub_8045A5C
- ldr r0, _080447F8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080447BE
- ldrb r0, [r5]
- ldrh r1, [r7]
- muls r1, r6
- adds r1, r4
- movs r2, 0x4
- bl sub_8045A5C
-_080447BE:
- ldr r0, _080447FC @ =gUnknown_03004340
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r1, [r0, 0x3C]
- movs r2, 0x1
- eors r1, r2
- strh r1, [r0, 0x3C]
-_080447D4:
- adds r7, 0x2
- movs r2, 0x1
- add r8, r2
- ldr r0, _08044800 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r8, r0
- bge _080447E4
- b _08044570
-_080447E4:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080447F4: .4byte gEnemyParty
-_080447F8: .4byte gUnknown_020239F8
-_080447FC: .4byte gUnknown_03004340
-_08044800: .4byte gUnknown_02024A68
- thumb_func_end sub_804454C
-
- thumb_func_start sub_8044804
-sub_8044804: @ 8044804
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- str r1, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- adds r4, r2, 0
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- cmp r4, 0
- beq _08044834
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08044878
-_08044834:
- ldr r0, [sp, 0x8]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08044854
- movs r7, 0
- movs r1, 0x88
- movs r2, 0x60
- movs r0, 0x64
- mov r8, r0
- ldr r5, _08044850 @ =0x0000fffb
- b _08044884
- .align 2, 0
-_08044850: .4byte 0x0000fffb
-_08044854:
- movs r7, 0x1
- cmp r4, 0
- beq _08044864
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0804486A
-_08044864:
- movs r1, 0x68
- movs r2, 0x28
- b _0804486E
-_0804486A:
- movs r1, 0x68
- movs r2, 0x10
-_0804486E:
- ldr r3, _08044874 @ =0x0000ff9c
- mov r8, r3
- b _08044882
- .align 2, 0
-_08044874: .4byte 0x0000ff9c
-_08044878:
- movs r7, 0x1
- movs r1, 0x68
- movs r2, 0x28
- ldr r5, _08044930 @ =0x0000ff9c
- mov r8, r5
-_08044882:
- movs r5, 0x5
-_08044884:
- movs r6, 0
- str r6, [sp, 0x14]
- lsls r4, r7, 3
- ldr r0, _08044934 @ =gUnknown_0820A754
- mov r10, r0
- lsls r3, r7, 1
- mov r9, r3
- lsls r1, 16
- str r1, [sp, 0x20]
- lsls r2, 16
- str r2, [sp, 0x24]
- ldr r2, _08044938 @ =0x0000ffff
- ldr r1, [sp, 0xC]
- movs r6, 0x5
-_080448A0:
- ldrh r0, [r1]
- cmp r0, r2
- beq _080448B4
- ldr r3, [sp, 0x14]
- lsls r0, r3, 24
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r0, 24
- str r0, [sp, 0x14]
-_080448B4:
- adds r1, 0x8
- subs r6, 0x1
- cmp r6, 0
- bge _080448A0
- mov r6, r10
- adds r0, r4, r6
- bl LoadCompressedObjectPic
- ldr r0, _0804493C @ =gUnknown_0820A784
- adds r0, r4, r0
- bl LoadSpriteSheet
- ldr r0, _08044940 @ =gUnknown_0820A764
- adds r0, r4, r0
- bl LoadSpritePalette
- ldr r0, _08044944 @ =gUnknown_0820A774
- adds r0, r4, r0
- bl LoadSpritePalette
- mov r1, r9
- adds r0, r1, r7
- lsls r0, 3
- ldr r1, _08044948 @ =gSpriteTemplate_820A7A4
- adds r0, r1
- ldr r2, [sp, 0x20]
- asrs r1, r2, 16
- ldr r3, [sp, 0x24]
- asrs r2, r3, 16
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- lsls r0, 4
- ldr r6, [sp, 0x18]
- adds r0, r6
- lsls r0, 2
- ldr r1, _0804494C @ =gSprites
- adds r4, r0, r1
- ldr r1, _08044950 @ =gSubspriteTables_820A6E4
- adds r0, r4, 0
- bl SetSubspriteTables
- mov r0, r8
- strh r0, [r4, 0x24]
- strh r5, [r4, 0x2E]
- cmp r7, 0
- beq _08044954
- ldrh r0, [r4, 0x20]
- subs r0, 0x60
- strh r0, [r4, 0x20]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4, 0x3]
- b _0804495A
- .align 2, 0
-_08044930: .4byte 0x0000ff9c
-_08044934: .4byte gUnknown_0820A754
-_08044938: .4byte 0x0000ffff
-_0804493C: .4byte gUnknown_0820A784
-_08044940: .4byte gUnknown_0820A764
-_08044944: .4byte gUnknown_0820A774
-_08044948: .4byte gSpriteTemplate_820A7A4
-_0804494C: .4byte gSprites
-_08044950: .4byte gSubspriteTables_820A6E4
-_08044954:
- ldrh r0, [r4, 0x20]
- adds r0, 0x60
- strh r0, [r4, 0x20]
-_0804495A:
- movs r6, 0
- ldr r1, _08044A04 @ =gSprites
- mov r10, r1
- mov r4, sp
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- str r0, [sp, 0x1C]
- movs r3, 0xA
- mov r9, r3
- mov r8, r6
-_08044970:
- ldr r0, _08044A08 @ =gSpriteTemplate_820A7D4
- ldr r5, [sp, 0x24]
- ldr r1, _08044A0C @ =0xfffc0000
- adds r2, r5, r1
- ldr r3, [sp, 0x1C]
- adds r0, r3, r0
- ldr r5, [sp, 0x20]
- asrs r1, r5, 16
- asrs r2, 16
- movs r3, 0x9
- bl CreateSpriteAtEnd
- strb r0, [r4]
- ldr r0, [sp, 0x10]
- cmp r0, 0
- bne _080449A0
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r2, _08044A10 @ =gSprites + 0x1C
- adds r1, r2
- ldr r0, _08044A14 @ =sub_8045180
- str r0, [r1]
-_080449A0:
- ldr r5, _08044A04 @ =gSprites
- cmp r7, 0
- bne _080449BE
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- strh r7, [r0, 0x24]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- strh r7, [r0, 0x26]
-_080449BE:
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- mov r3, sp
- ldrh r3, [r3, 0x18]
- strh r3, [r0, 0x2E]
- cmp r7, 0
- bne _08044A18
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrh r0, [r1, 0x20]
- adds r0, 0x18
- add r0, r8
- strh r0, [r1, 0x20]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r9
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x78
- b _08044A56
- .align 2, 0
-_08044A04: .4byte gSprites
-_08044A08: .4byte gSpriteTemplate_820A7D4
-_08044A0C: .4byte 0xfffc0000
-_08044A10: .4byte gSprites + 0x1C
-_08044A14: .4byte sub_8045180
-_08044A18:
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldrh r3, [r2, 0x20]
- subs r3, 0x18
- movs r1, 0x5
- subs r1, r6
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- subs r3, r0
- strh r3, [r2, 0x20]
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- movs r1, 0x6
- subs r1, r6
- lsls r0, r1, 3
- subs r0, r1
- adds r0, 0xA
- strh r0, [r2, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08044AC4 @ =0x0000ff88
-_08044A56:
- strh r1, [r0, 0x24]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r7, [r0, 0x32]
- adds r4, 0x1
- movs r2, 0x7
- add r9, r2
- movs r3, 0xA
- add r8, r3
- adds r6, 0x1
- cmp r6, 0x5
- bgt _08044A76
- b _08044970
-_08044A76:
- ldr r0, [sp, 0x8]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08044B5E
- movs r6, 0
- ldr r5, _08044AC8 @ =gUnknown_020239F8
- mov r10, r5
- ldr r0, _08044ACC @ =0x0000ffff
- mov r9, r0
- ldr r7, _08044AD0 @ =gSprites
- ldr r1, _08044AD4 @ =0x000003ff
- mov r12, r1
- ldr r2, _08044AD8 @ =0xfffffc00
- mov r8, r2
- mov r4, sp
- ldr r5, [sp, 0xC]
-_08044A9A:
- mov r3, r10
- ldrh r1, [r3]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08044ADC
- ldrh r0, [r5]
- cmp r0, r9
- beq _08044AE6
- cmp r0, 0
- bne _08044B2E
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _08044B46
- .align 2, 0
-_08044AC4: .4byte 0x0000ff88
-_08044AC8: .4byte gUnknown_020239F8
-_08044ACC: .4byte 0x0000ffff
-_08044AD0: .4byte gSprites
-_08044AD4: .4byte 0x000003ff
-_08044AD8: .4byte 0xfffffc00
-_08044ADC:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- asrs r0, 24
- cmp r6, r0
- blt _08044B14
-_08044AE6:
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x1
- mov r0, r12
- ands r1, r0
- mov r0, r8
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- b _08044B52
-_08044B14:
- ldrh r0, [r5]
- cmp r0, 0
- bne _08044B2E
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _08044B46
-_08044B2E:
- ldr r0, [r5, 0x4]
- cmp r0, 0
- beq _08044B52
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x2
-_08044B46:
- mov r0, r12
- ands r1, r0
- mov r0, r8
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_08044B52:
- adds r4, 0x1
- adds r5, 0x8
- adds r6, 0x1
- cmp r6, 0x5
- ble _08044A9A
- b _08044C38
-_08044B5E:
- movs r6, 0
- ldr r1, _08044BA4 @ =gUnknown_020239F8
- mov r10, r1
- ldr r2, _08044BA8 @ =0x0000ffff
- mov r9, r2
- ldr r7, _08044BAC @ =gSprites
- ldr r3, _08044BB0 @ =0x000003ff
- mov r12, r3
- ldr r5, _08044BB4 @ =0xfffffc00
- mov r8, r5
- ldr r5, [sp, 0xC]
- mov r4, sp
- adds r4, 0x5
-_08044B78:
- mov r0, r10
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08044BB8
- ldrh r0, [r5]
- cmp r0, r9
- beq _08044BC2
- cmp r0, 0
- bne _08044C0A
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _08044C22
- .align 2, 0
-_08044BA4: .4byte gUnknown_020239F8
-_08044BA8: .4byte 0x0000ffff
-_08044BAC: .4byte gSprites
-_08044BB0: .4byte 0x000003ff
-_08044BB4: .4byte 0xfffffc00
-_08044BB8:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- asrs r0, 24
- cmp r6, r0
- blt _08044BF0
-_08044BC2:
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x1
- mov r0, r12
- ands r1, r0
- mov r0, r8
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- b _08044C2E
-_08044BF0:
- ldrh r0, [r5]
- cmp r0, 0
- bne _08044C0A
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _08044C22
-_08044C0A:
- ldr r0, [r5, 0x4]
- cmp r0, 0
- beq _08044C2E
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x2
-_08044C22:
- mov r0, r12
- ands r1, r0
- mov r0, r8
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_08044C2E:
- subs r4, 0x1
- adds r5, 0x8
- adds r6, 0x1
- cmp r6, 0x5
- ble _08044B78
-_08044C38:
- ldr r0, _08044C98 @ =TaskDummy
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _08044C9C @ =gTasks
- lsls r3, r4, 2
- adds r1, r3, r4
- lsls r1, 3
- adds r0, r1, r2
- mov r5, sp
- ldrh r5, [r5, 0x8]
- strh r5, [r0, 0x8]
- mov r6, sp
- ldrh r6, [r6, 0x18]
- strh r6, [r0, 0xA]
- movs r6, 0
- adds r0, r2, 0
- adds r0, 0xE
- adds r1, r0
-_08044C62:
- mov r5, sp
- adds r0, r5, r6
- ldrb r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x5
- ble _08044C62
- adds r0, r3, r4
- lsls r0, 3
- adds r0, r2
- ldrh r6, [r5, 0x10]
- strh r6, [r0, 0x1C]
- movs r0, 0x72
- movs r1, 0
- bl PlaySE12WithPanning
- adds r0, r4, 0
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08044C98: .4byte TaskDummy
-_08044C9C: .4byte gTasks
- thumb_func_end sub_8044804
-
- thumb_func_start sub_8044CA0
-sub_8044CA0: @ 8044CA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _08044DB4 @ =gTasks
- lsls r3, r0, 2
- adds r1, r3, r0
- lsls r1, 3
- adds r0, r1, r2
- ldrb r4, [r0, 0x1C]
- mov r9, r4
- ldrb r4, [r0, 0xA]
- mov r10, r4
- ldrb r0, [r0, 0x8]
- str r0, [sp, 0x8]
- movs r5, 0
- adds r7, r2, 0
- ldr r0, _08044DB8 @ =gSprites
- mov r12, r0
- str r3, [sp, 0xC]
- adds r0, r7, 0
- adds r0, 0xE
- adds r2, r1, r0
-_08044CD8:
- mov r4, sp
- adds r1, r4, r5
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044CD8
- ldr r1, _08044DBC @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r0, 3
- adds r0, r7
- movs r1, 0x10
- strh r1, [r0, 0x26]
- movs r5, 0
- mov r4, r10
- lsls r4, 4
- str r4, [sp, 0x10]
- ldr r4, _08044DB8 @ =gSprites
- movs r6, 0xD
- negs r6, r6
- movs r3, 0x4
-_08044D14:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x1]
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x1]
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044D14
- ldr r2, [sp, 0x10]
- add r2, r10
- lsls r2, 2
- add r2, r12
- ldrb r1, [r2, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x1]
- mov r2, r9
- cmp r2, 0
- bne _08044D50
- b _08044E54
-_08044D50:
- movs r5, 0
- mov r6, r12
- mov r9, r5
- adds r3, r6, 0
- adds r3, 0x1C
- mov r4, sp
- movs r7, 0
-_08044D5E:
- ldr r0, [sp, 0x8]
- str r3, [sp, 0x14]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, [sp, 0x14]
- cmp r2, 0
- beq _08044DC4
- movs r0, 0x5
- subs r0, r5
- mov r1, sp
- adds r2, r1, r0
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r7, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r9
- strh r1, [r0, 0x34]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r9
- strh r1, [r0, 0x36]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _08044DC0 @ =sub_8045110
- str r1, [r0]
- ldr r2, _08044DB8 @ =gSprites
- mov r12, r2
- b _08044DFA
- .align 2, 0
-_08044DB4: .4byte gTasks
-_08044DB8: .4byte gSprites
-_08044DBC: .4byte REG_BLDCNT
-_08044DC0: .4byte sub_8045110
-_08044DC4:
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r7, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x34]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x36]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _08044E3C @ =sub_8045110
- str r1, [r0]
- ldr r0, _08044E40 @ =gSprites
- mov r12, r0
-_08044DFA:
- adds r4, 0x1
- adds r7, 0x7
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044D5E
- ldr r3, [sp, 0x10]
- add r3, r10
- lsls r3, 2
- mov r1, r12
- adds r0, r3, r1
- movs r2, 0x2E
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- movs r2, 0
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- mov r1, r12
- adds r1, 0x1C
- adds r3, r1
- ldr r1, _08044E44 @ =sub_8045048
- str r1, [r3]
- ldr r1, _08044E48 @ =gSubspriteTables_820A6EC
- bl SetSubspriteTables
- ldr r1, _08044E4C @ =gTasks
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _08044E50 @ =sub_8044E74
- b _08044E5E
- .align 2, 0
-_08044E3C: .4byte sub_8045110
-_08044E40: .4byte gSprites
-_08044E44: .4byte sub_8045048
-_08044E48: .4byte gSubspriteTables_820A6EC
-_08044E4C: .4byte gTasks
-_08044E50: .4byte sub_8044E74
-_08044E54:
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r0, 3
- adds r0, r7
- ldr r1, _08044E70 @ =sub_8044F70
-_08044E5E:
- str r1, [r0]
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044E70: .4byte sub_8044F70
- thumb_func_end sub_8044CA0
-
- thumb_func_start sub_8044E74
-sub_8044E74: @ 8044E74
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08044EC0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1E]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08044EAE
- ldrh r0, [r3, 0x26]
- subs r2, r0, 0x1
- strh r2, [r3, 0x26]
- lsls r0, r2, 16
- cmp r0, 0
- blt _08044EBA
- ldr r1, _08044EC4 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1]
-_08044EAE:
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08044EBA
- ldr r0, _08044EC8 @ =sub_8044ECC
- str r0, [r3]
-_08044EBA:
- pop {r0}
- bx r0
- .align 2, 0
-_08044EC0: .4byte gTasks
-_08044EC4: .4byte REG_BLDALPHA
-_08044EC8: .4byte sub_8044ECC
- thumb_func_end sub_8044E74
-
- thumb_func_start sub_8044ECC
-sub_8044ECC: @ 8044ECC
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r6, _08044F44 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r4, r0, 3
- adds r1, r4, r6
- ldrh r0, [r1, 0x26]
- subs r0, 0x1
- movs r5, 0
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r2, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- bne _08044F4C
- ldrb r3, [r1, 0xA]
- adds r0, r6, 0
- adds r0, 0xE
- adds r2, r4, r0
-_08044EFA:
- mov r0, sp
- adds r1, r0, r5
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044EFA
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r4, _08044F48 @ =gSprites
- adds r0, r4
- bl DestroySpriteAndFreeResources
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySpriteAndFreeResources
- movs r5, 0x1
-_08044F2A:
- mov r1, sp
- adds r0, r1, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044F2A
- b _08044F62
- .align 2, 0
-_08044F44: .4byte gTasks
-_08044F48: .4byte gSprites
-_08044F4C:
- movs r0, 0x3
- negs r0, r0
- cmp r2, r0
- bne _08044F62
- ldr r0, _08044F6C @ =REG_BLDCNT
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, r3, 0
- bl DestroyTask
-_08044F62:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08044F6C: .4byte REG_BLDCNT
- thumb_func_end sub_8044ECC
-
- thumb_func_start sub_8044F70
-sub_8044F70: @ 8044F70
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r7, _08044FA4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r6, r0, 3
- adds r3, r6, r7
- ldrh r0, [r3, 0x26]
- subs r2, r0, 0x1
- movs r5, 0
- strh r2, [r3, 0x26]
- lsls r0, r2, 16
- asrs r1, r0, 16
- cmp r1, 0
- blt _08044FAC
- ldr r1, _08044FA8 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1]
- b _08045022
- .align 2, 0
-_08044FA4: .4byte gTasks
-_08044FA8: .4byte REG_BLDALPHA
-_08044FAC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0804500C
- ldrb r3, [r3, 0xA]
- movs r5, 0
- adds r0, r7, 0
- adds r0, 0xE
- adds r2, r6, r0
-_08044FBE:
- mov r0, sp
- adds r1, r0, r5
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044FBE
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r4, _08045008 @ =gSprites
- adds r0, r4
- bl DestroySpriteAndFreeResources
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySpriteAndFreeResources
- movs r5, 0x1
-_08044FEE:
- mov r1, sp
- adds r0, r1, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r5, 0x1
- cmp r5, 0x5
- ble _08044FEE
- b _08045022
- .align 2, 0
-_08045008: .4byte gSprites
-_0804500C:
- movs r0, 0x3
- negs r0, r0
- cmp r1, r0
- bne _08045022
- ldr r0, _0804502C @ =REG_BLDCNT
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_08045022:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804502C: .4byte REG_BLDCNT
- thumb_func_end sub_8044F70
-
- thumb_func_start sub_8045030
-sub_8045030: @ 8045030
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x24]
- movs r3, 0x24
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08045044
- ldrh r0, [r1, 0x2E]
- adds r0, r2, r0
- strh r0, [r1, 0x24]
-_08045044:
- pop {r0}
- bx r0
- thumb_func_end sub_8045030
-
- thumb_func_start sub_8045048
-sub_8045048: @ 8045048
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0
- adds r1, 0x20
- strh r1, [r2, 0x30]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _08045066
- lsls r0, r1, 16
- asrs r0, 20
- ldrh r1, [r2, 0x24]
- adds r0, r1
- b _0804506E
-_08045066:
- lsls r1, 16
- asrs r1, 20
- ldrh r0, [r2, 0x24]
- subs r0, r1
-_0804506E:
- strh r0, [r2, 0x24]
- ldrh r1, [r2, 0x30]
- movs r0, 0xF
- ands r0, r1
- strh r0, [r2, 0x30]
- pop {r0}
- bx r0
- thumb_func_end sub_8045048
-
- thumb_func_start sub_804507C
-sub_804507C: @ 804507C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08045090
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _08045106
-_08045090:
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r3, r0, 24
- ldrh r2, [r4, 0x34]
- adds r0, r2, 0
- adds r0, 0x38
- lsls r1, r0, 16
- lsrs r2, r1, 16
- ldr r0, _080450C0 @ =0x0000fff0
- ands r2, r0
- strh r2, [r4, 0x34]
- cmp r3, 0
- beq _080450C4
- lsrs r0, r1, 20
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080450D4
- movs r0, 0
- strh r0, [r4, 0x24]
- b _080450D4
- .align 2, 0
-_080450C0: .4byte 0x0000fff0
-_080450C4:
- lsrs r1, 20
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bge _080450D4
- strh r3, [r4, 0x24]
-_080450D4:
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08045106
- movs r1, 0x3F
- cmp r3, 0
- beq _080450E4
- movs r1, 0xC0
-_080450E4:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080450F8
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x74
- bl PlaySE2WithPanning
- b _08045102
-_080450F8:
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x73
- bl PlaySE1WithPanning
-_08045102:
- ldr r0, _0804510C @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_08045106:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804510C: .4byte SpriteCallbackDummy
- thumb_func_end sub_804507C
-
- thumb_func_start sub_8045110
-sub_8045110: @ 8045110
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _08045124
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _08045174
-_08045124:
- ldrh r0, [r3, 0x32]
- lsls r0, 24
- ldrh r2, [r3, 0x34]
- adds r1, r2, 0
- adds r1, 0x38
- lsls r4, r1, 16
- lsrs r2, r4, 16
- ldr r1, _08045144 @ =0x0000fff0
- ands r2, r1
- strh r2, [r3, 0x34]
- cmp r0, 0
- beq _08045148
- lsrs r0, r4, 20
- ldrh r1, [r3, 0x24]
- adds r0, r1
- b _0804514E
- .align 2, 0
-_08045144: .4byte 0x0000fff0
-_08045148:
- lsrs r1, r4, 20
- ldrh r0, [r3, 0x24]
- subs r0, r1
-_0804514E:
- strh r0, [r3, 0x24]
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- movs r2, 0x20
- ldrsh r1, [r3, r2]
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x80
- lsls r1, 1
- cmp r0, r1
- bls _08045174
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0804517C @ =SpriteCallbackDummy
- str r0, [r3, 0x1C]
-_08045174:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804517C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8045110
-
- thumb_func_start sub_8045180
-sub_8045180: @ 8045180
- ldrh r2, [r0, 0x2E]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0804519C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x24]
- strh r2, [r0, 0x24]
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_0804519C: .4byte gSprites
- thumb_func_end sub_8045180
-
- thumb_func_start sub_80451A0
-sub_80451A0: @ 80451A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r7, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _08045238 @ =gUnknown_020238CC
- ldr r1, _0804523C @ =gUnknown_0820A8B0
- adds r0, r4, 0
- bl StringCopy
- adds r0, r7, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- mov r0, sp
- bl StringGetEnd10
- adds r4, 0x3
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy
- adds r5, r0, 0
- movs r1, 0xFC
- strb r1, [r5]
- movs r0, 0x3
- strb r0, [r5, 0x1]
- movs r0, 0x2
- strb r0, [r5, 0x2]
- strb r1, [r5, 0x3]
- movs r0, 0x1
- strb r0, [r5, 0x4]
- adds r5, 0x5
- adds r0, r7, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r7, 0
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- movs r1, 0x3
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- mov r1, sp
- bl sub_8040D3C
- cmp r0, 0
- beq _08045222
- movs r6, 0x64
-_08045222:
- cmp r6, 0
- beq _08045240
- cmp r6, 0xFE
- beq _08045248
- movs r0, 0xB
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- adds r5, 0x1
- b _08045256
- .align 2, 0
-_08045238: .4byte gUnknown_020238CC
-_0804523C: .4byte gUnknown_0820A8B0
-_08045240:
- movs r0, 0xB
- strb r0, [r5]
- movs r0, 0xB5
- b _0804524E
-_08045248:
- movs r0, 0xA
- strb r0, [r5]
- movs r0, 0xB6
-_0804524E:
- strb r0, [r5, 0x1]
- movs r0, 0xFF
- strb r0, [r5, 0x2]
- adds r5, 0x2
-_08045256:
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x37
- strb r0, [r5, 0x2]
- movs r0, 0xFF
- strb r0, [r5, 0x3]
- ldr r1, _080452D8 @ =gSprites
- mov r0, r9
- lsls r4, r0, 4
- adds r0, r4, r0
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 7
- ldr r2, _080452DC @ =0x02000520
- adds r5, r1, r2
- ldr r0, _080452E0 @ =gUnknown_020238CC
- mov r8, r0
- adds r0, r5, 0
- mov r1, r8
- bl sub_80034D4
- movs r6, 0
- movs r1, 0x7
- mov r10, r1
- adds r0, r7, 0
- movs r1, 0x3
- bl GetMonData
- str r4, [sp, 0xC]
- cmp r0, 0x1
- bne _08045338
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08045338
- mov r4, r8
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _08045338
- adds r7, r5, 0
-_080452C2:
- cmp r1, 0xFC
- bne _080452E4
- ldrb r0, [r4, 0x1]
- bl GetExtCtrlCodeLength
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- adds r4, r0
- b _08045330
- .align 2, 0
-_080452D8: .4byte gSprites
-_080452DC: .4byte 0x02000520
-_080452E0: .4byte gUnknown_020238CC
-_080452E4:
- adds r0, r1, 0
- subs r0, 0x37
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bls _080452FC
- adds r0, r1, 0
- adds r0, 0x79
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _08045300
-_080452FC:
- movs r0, 0x2C
- b _0804531E
-_08045300:
- adds r0, r1, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _08045318
- adds r0, r1, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _0804531C
-_08045318:
- movs r0, 0x2D
- b _0804531E
-_0804531C:
- movs r0, 0x2B
-_0804531E:
- bl sub_8043CDC
- adds r1, r7, 0
- ldr r2, _080453C8 @ =REG_BG0CNT
- bl CpuSet
- adds r7, 0x40
- adds r6, 0x1
- adds r4, 0x1
-_08045330:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _080452C2
-_08045338:
- cmp r6, r10
- bge _0804535A
- lsls r0, r6, 6
- adds r4, r0, r5
- mov r2, r10
- subs r6, r2, r6
-_08045344:
- movs r0, 0x2B
- bl sub_8043CDC
- adds r1, r4, 0
- ldr r2, _080453C8 @ =REG_BG0CNT
- bl CpuSet
- adds r4, 0x40
- subs r6, 0x1
- cmp r6, 0
- bne _08045344
-_0804535A:
- ldr r1, _080453CC @ =gSprites
- ldr r0, [sp, 0xC]
- add r0, r9
- lsls r0, 2
- adds r6, r0, r1
- ldrh r0, [r6, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080453D4
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _080453D4
- ldr r1, _080453D0 @ =gUnknown_0820A8B4
- mov r0, r10
- cmp r0, 0
- beq _08045438
- mov r8, r6
- mov r9, r1
- ldr r7, _080453C8 @ =REG_BG0CNT
- mov r6, r10
-_0804538E:
- mov r1, r9
- adds r1, 0x4
- mov r9, r1
- subs r1, 0x4
- ldm r1!, {r4}
- mov r2, r8
- ldrh r0, [r2, 0x4]
- lsls r0, 22
- lsrs r0, 17
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- bl CpuSet
- adds r5, 0x20
- movs r0, 0x80
- lsls r0, 1
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- bl CpuSet
- adds r5, 0x20
- subs r6, 0x1
- cmp r6, 0
- bne _0804538E
- b _08045438
- .align 2, 0
-_080453C8: .4byte REG_BG0CNT
-_080453CC: .4byte gSprites
-_080453D0: .4byte gUnknown_0820A8B4
-_080453D4:
- ldr r1, _08045448 @ =gSprites
- ldr r0, [sp, 0xC]
- add r0, r9
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _0804544C @ =gUnknown_0820A8DC
- cmp r0, 0
- bne _080453F2
- ldr r1, _08045450 @ =gUnknown_0820A904
-_080453F2:
- mov r2, r10
- cmp r2, 0
- beq _08045438
- mov r8, r4
- mov r9, r1
- ldr r7, _08045454 @ =REG_BG0CNT
- mov r6, r10
-_08045400:
- mov r0, r9
- adds r0, 0x4
- mov r9, r0
- subs r0, 0x4
- ldm r0!, {r4}
- mov r1, r8
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 17
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- bl CpuSet
- adds r5, 0x20
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- bl CpuSet
- adds r5, 0x20
- subs r6, 0x1
- cmp r6, 0
- bne _08045400
-_08045438:
- 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
-_08045448: .4byte gSprites
-_0804544C: .4byte gUnknown_0820A8DC
-_08045450: .4byte gUnknown_0820A904
-_08045454: .4byte REG_BG0CNT
- thumb_func_end sub_80451A0
-
- thumb_func_start sub_8045458
-sub_8045458: @ 8045458
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080454F4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0804552E
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0804552E
- ldr r6, _080454F8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r6
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0804552E
- ldr r1, _080454FC @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08045500 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0804552E
- ldrh r0, [r5, 0x38]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r7, 0
- beq _0804550C
- movs r0, 0x46
- bl sub_8043CDC
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r6
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2
- ldr r2, _08045504 @ =0x06010000
- adds r1, r2
- ldr r2, _08045508 @ =REG_BG0CNT
- bl CpuSet
- b _0804552E
- .align 2, 0
-_080454F4: .4byte gUnknown_020239F8
-_080454F8: .4byte gSprites
-_080454FC: .4byte gUnknown_02024A6A
-_08045500: .4byte gEnemyParty
-_08045504: .4byte 0x06010000
-_08045508: .4byte REG_BG0CNT
-_0804550C:
- str r7, [sp]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x4]
- lsls r1, 22
- lsrs r1, 17
- movs r0, 0x80
- lsls r0, 1
- adds r1, r0
- ldr r0, _08045538 @ =0x06010000
- adds r1, r0
- ldr r2, _0804553C @ =0x05000008
- mov r0, sp
- bl CpuSet
-_0804552E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08045538: .4byte 0x06010000
-_0804553C: .4byte 0x05000008
- thumb_func_end sub_8045458
-
- thumb_func_start draw_status_ailment_maybe
-draw_status_ailment_maybe: @ 8045540
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080455A4 @ =gSprites
- mov r2, r9
- lsls r1, r2, 4
- add r1, r9
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x3A]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r1, 0x38]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- adds r0, r7, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080455B0
- ldr r1, _080455A8 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080455AC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x37
- bl GetMonData
- adds r4, r0, 0
- bl battle_type_is_double
- lsls r0, 24
- movs r3, 0x12
- mov r8, r3
- cmp r0, 0
- bne _080455CC
- movs r0, 0x1A
- mov r8, r0
- b _080455CC
- .align 2, 0
-_080455A4: .4byte gSprites
-_080455A8: .4byte gUnknown_02024A6A
-_080455AC: .4byte gPlayerParty
-_080455B0:
- ldr r1, _080455EC @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080455F0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x37
- bl GetMonData
- adds r4, r0, 0
- movs r1, 0x11
- mov r8, r1
-_080455CC:
- movs r0, 0x7
- ands r0, r4
- cmp r0, 0
- beq _080455F4
- movs r0, 0x1B
- adds r1, r7, 0
- bl sub_80457E8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8043CDC
- adds r6, r0, 0
- movs r0, 0x2
- b _080456FC
- .align 2, 0
-_080455EC: .4byte gUnknown_02024A6A
-_080455F0: .4byte gEnemyParty
-_080455F4:
- movs r0, 0x88
- ands r0, r4
- cmp r0, 0
- beq _08045612
- movs r0, 0x15
- adds r1, r7, 0
- bl sub_80457E8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8043CDC
- adds r6, r0, 0
- movs r0, 0
- b _080456FC
-_08045612:
- movs r0, 0x10
- ands r0, r4
- cmp r0, 0
- beq _08045630
- movs r0, 0x21
- adds r1, r7, 0
- bl sub_80457E8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8043CDC
- adds r6, r0, 0
- movs r0, 0x4
- b _080456FC
-_08045630:
- movs r0, 0x20
- ands r0, r4
- cmp r0, 0
- beq _0804564E
- movs r0, 0x1E
- adds r1, r7, 0
- bl sub_80457E8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8043CDC
- adds r6, r0, 0
- movs r0, 0x3
- b _080456FC
-_0804564E:
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- beq _0804566C
- movs r0, 0x18
- adds r1, r7, 0
- bl sub_80457E8
- lsls r0, 24
- lsrs r0, 24
- bl sub_8043CDC
- adds r6, r0, 0
- movs r0, 0x1
- b _080456FC
-_0804566C:
- movs r0, 0x27
- bl sub_8043CDC
- adds r6, r0, 0
- movs r4, 0
- mov r2, r9
- lsls r0, r2, 4
- mov r3, r8
- lsls r3, 16
- mov r8, r3
- lsls r7, 2
- ldr r1, _080456E8 @ =gSprites
- add r0, r9
- lsls r0, 2
- adds r5, r0, r1
-_0804568A:
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- mov r2, r8
- asrs r0, r2, 16
- adds r1, r0
- adds r1, r4
- lsls r1, 5
- ldr r3, _080456EC @ =0x06010000
- adds r1, r3
- adds r0, r6, 0
- ldr r2, _080456F0 @ =REG_BG0CNT
- bl CpuSet
- adds r4, 0x1
- cmp r4, 0x2
- ble _0804568A
- ldr r0, _080456F4 @ =0x02017800
- adds r0, r7, r0
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080456DC
- movs r0, 0x1
- bl sub_8043CDC
- ldr r2, _080456E8 @ =gSprites
- mov r3, r10
- lsls r1, r3, 4
- add r1, r10
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r2, _080456EC @ =0x06010000
- adds r1, r2
- ldr r2, _080456F8 @ =REG_BG0HOFS
- bl CpuSet
-_080456DC:
- mov r0, r9
- movs r1, 0x1
- bl sub_8045458
- b _080457BA
- .align 2, 0
-_080456E8: .4byte gSprites
-_080456EC: .4byte 0x06010000
-_080456F0: .4byte REG_BG0CNT
-_080456F4: .4byte 0x02017800
-_080456F8: .4byte REG_BG0HOFS
-_080456FC:
- mov r1, r9
- lsls r5, r1, 4
- add r5, r9
- lsls r5, 2
- ldr r2, _080457C8 @ =gSprites
- adds r5, r2
- ldrb r4, [r5, 0x5]
- lsrs r4, 4
- lsls r4, 4
- adds r4, 0xC
- adds r4, r7
- lsls r0, 1
- ldr r1, _080457CC @ =gBattleInterfaceStatusIcons_DynPal
- adds r0, r1
- ldrh r0, [r0]
- movs r3, 0x80
- lsls r3, 1
- adds r1, r4, r3
- movs r2, 0x2
- bl FillPalette
- lsls r4, 1
- ldr r0, _080457D0 @ =gPlttBufferUnfaded + 0x200
- adds r0, r4, r0
- ldr r1, _080457D4 @ =0x05000200
- adds r4, r1
- adds r1, r4, 0
- movs r2, 0x1
- bl CpuSet
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- add r1, r8
- lsls r1, 5
- ldr r2, _080457D8 @ =0x06010000
- mov r8, r2
- add r1, r8
- ldr r2, _080457DC @ =REG_BG2HOFS
- adds r0, r6, 0
- bl CpuSet
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0804576A
- adds r0, r7, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080457B2
-_0804576A:
- lsls r0, r7, 2
- ldr r1, _080457E0 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080457B2
- movs r0, 0
- bl sub_8043CDC
- mov r3, r10
- lsls r4, r3, 4
- add r4, r10
- lsls r4, 2
- ldr r1, _080457C8 @ =gSprites
- adds r4, r1
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- add r1, r8
- ldr r5, _080457E4 @ =REG_BG0CNT
- adds r2, r5, 0
- bl CpuSet
- movs r0, 0x41
- bl sub_8043CDC
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- adds r1, 0x20
- add r1, r8
- adds r2, r5, 0
- bl CpuSet
-_080457B2:
- mov r0, r9
- movs r1, 0
- bl sub_8045458
-_080457BA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080457C8: .4byte gSprites
-_080457CC: .4byte gBattleInterfaceStatusIcons_DynPal
-_080457D0: .4byte gPlttBufferUnfaded + 0x200
-_080457D4: .4byte 0x05000200
-_080457D8: .4byte 0x06010000
-_080457DC: .4byte REG_BG2HOFS
-_080457E0: .4byte 0x02017800
-_080457E4: .4byte REG_BG0CNT
- thumb_func_end draw_status_ailment_maybe
-
- thumb_func_start sub_80457E8
-sub_80457E8: @ 80457E8
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsrs r2, r0, 24
- adds r0, r2, 0
- subs r0, 0x15
- cmp r0, 0xC
- bhi _080458A8
- lsls r0, 2
- ldr r1, _08045804 @ =_08045808
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08045804: .4byte _08045808
- .align 2, 0
-_08045808:
- .4byte _0804583C
- .4byte _080458A8
- .4byte _080458A8
- .4byte _08045852
- .4byte _080458A8
- .4byte _080458A8
- .4byte _08045868
- .4byte _080458A8
- .4byte _080458A8
- .4byte _0804587E
- .4byte _080458A8
- .4byte _080458A8
- .4byte _08045894
-_0804583C:
- movs r2, 0x15
- cmp r3, 0
- beq _080458A8
- movs r2, 0x47
- cmp r3, 0x1
- beq _080458A8
- movs r2, 0x65
- cmp r3, 0x2
- bne _080458A8
- movs r2, 0x56
- b _080458A8
-_08045852:
- movs r2, 0x18
- cmp r3, 0
- beq _080458A8
- movs r2, 0x4A
- cmp r3, 0x1
- beq _080458A8
- movs r2, 0x68
- cmp r3, 0x2
- bne _080458A8
- movs r2, 0x59
- b _080458A8
-_08045868:
- movs r2, 0x1B
- cmp r3, 0
- beq _080458A8
- movs r2, 0x4D
- cmp r3, 0x1
- beq _080458A8
- movs r2, 0x6B
- cmp r3, 0x2
- bne _080458A8
- movs r2, 0x5C
- b _080458A8
-_0804587E:
- movs r2, 0x1E
- cmp r3, 0
- beq _080458A8
- movs r2, 0x50
- cmp r3, 0x1
- beq _080458A8
- movs r2, 0x6E
- cmp r3, 0x2
- bne _080458A8
- movs r2, 0x5F
- b _080458A8
-_08045894:
- movs r2, 0x21
- cmp r3, 0
- beq _080458A8
- movs r2, 0x53
- cmp r3, 0x1
- beq _080458A8
- movs r2, 0x71
- cmp r3, 0x2
- bne _080458A8
- movs r2, 0x62
-_080458A8:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80457E8
-
- thumb_func_start sub_80458B0
-sub_80458B0: @ 80458B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08045984 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 7
- ldr r0, _08045988 @ =0x02000520
- adds r6, r1, r0
- movs r1, 0x7
- mov r8, r1
- ldr r1, _0804598C @ =gUnknown_08400DD6
- adds r0, r6, 0
- bl sub_80034D4
- movs r4, 0
-_080458EE:
- movs r0, 0x2B
- bl sub_8043CDC
- lsls r1, r4, 6
- adds r1, r6, r1
- ldr r2, _08045990 @ =REG_BG0CNT
- bl CpuSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r8
- bcc _080458EE
- movs r7, 0x3
- movs r2, 0x3
- add r2, r8
- mov r9, r2
- cmp r7, r9
- bge _08045974
- ldr r1, _08045984 @ =gSprites
- ldr r0, _08045990 @ =REG_BG0CNT
- mov r10, r0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- mov r8, r0
-_08045924:
- mov r1, r8
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- adds r5, r7, 0
- cmp r7, 0
- bge _08045934
- adds r5, r7, 0x7
-_08045934:
- asrs r5, 3
- lsls r4, r5, 3
- subs r4, r7, r4
- adds r0, r4
- lsls r5, 6
- adds r0, r5
- lsls r0, 5
- ldr r2, _08045994 @ =0x06010000
- adds r1, r0, r2
- adds r0, r6, 0
- mov r2, r10
- bl CpuSet
- adds r6, 0x20
- mov r1, r8
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- adds r4, 0x8
- adds r0, r4
- adds r0, r5
- lsls r0, 5
- ldr r2, _08045994 @ =0x06010000
- adds r1, r0, r2
- adds r0, r6, 0
- mov r2, r10
- bl CpuSet
- adds r6, 0x20
- adds r7, 0x1
- cmp r7, r9
- blt _08045924
-_08045974:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08045984: .4byte gSprites
-_08045988: .4byte 0x02000520
-_0804598C: .4byte gUnknown_08400DD6
-_08045990: .4byte REG_BG0CNT
-_08045994: .4byte 0x06010000
- thumb_func_end sub_80458B0
-
- thumb_func_start sub_8045998
-sub_8045998: @ 8045998
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08045A38 @ =gUnknown_020238CC
- mov r8, r0
- ldr r1, _08045A3C @ =gUnknown_08400DE6
- bl StringCopy
- adds r7, r0, 0
- ldr r0, _08045A40 @ =gNumSafariBalls
- ldrb r1, [r0]
- adds r0, r7, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_8003504
- adds r7, r0, 0
- ldr r1, _08045A44 @ =gUnknown_08400DF0
- bl StringAppend
- ldr r0, _08045A48 @ =gSprites
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- adds r5, r0
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 7
- ldr r0, _08045A4C @ =0x02000520
- adds r7, r4, r0
- movs r6, 0x5
- adds r0, r7, 0
- mov r1, r8
- bl sub_80034D4
- ldr r0, _08045A50 @ =0x02000540
- adds r7, r4, r0
- movs r4, 0x6
-_080459F8:
- ldrh r0, [r5, 0x4]
- lsls r0, 22
- lsrs r2, r0, 22
- adds r0, r4, 0
- cmp r4, 0
- bge _08045A06
- adds r0, r4, 0x7
-_08045A06:
- asrs r0, 3
- lsls r1, r0, 3
- subs r1, r4, r1
- adds r1, 0x18
- adds r1, r2, r1
- lsls r0, 6
- adds r1, r0
- lsls r1, 5
- ldr r0, _08045A54 @ =0x06010000
- adds r1, r0
- adds r0, r7, 0
- ldr r2, _08045A58 @ =REG_BG0CNT
- bl CpuSet
- adds r7, 0x40
- adds r4, 0x1
- adds r0, r6, 0x6
- cmp r4, r0
- blt _080459F8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08045A38: .4byte gUnknown_020238CC
-_08045A3C: .4byte gUnknown_08400DE6
-_08045A40: .4byte gNumSafariBalls
-_08045A44: .4byte gUnknown_08400DF0
-_08045A48: .4byte gSprites
-_08045A4C: .4byte 0x02000520
-_08045A50: .4byte 0x02000540
-_08045A54: .4byte 0x06010000
-_08045A58: .4byte REG_BG0CNT
- thumb_func_end sub_8045998
-
- thumb_func_start sub_8045A5C
-sub_8045A5C: @ 8045A5C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r1, _08045BE4 @ =gSprites
- lsls r0, 4
- add r0, r8
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08045A92
- b _08045BF0
-_08045A92:
- cmp r7, 0x3
- beq _08045A9A
- cmp r7, 0
- bne _08045AAE
-_08045A9A:
- mov r0, r9
- movs r1, 0x38
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8043FC0
-_08045AAE:
- cmp r7, 0x1
- bhi _08045AC8
- mov r0, r9
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- mov r0, r8
- movs r2, 0
- bl sub_80440EC
-_08045AC8:
- cmp r7, 0x2
- beq _08045AD0
- cmp r7, 0
- bne _08045AE6
-_08045AD0:
- mov r0, r9
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- mov r0, r8
- movs r2, 0x1
- bl sub_80440EC
-_08045AE6:
- cmp r7, 0x5
- beq _08045AEE
- cmp r7, 0
- bne _08045B22
-_08045AEE:
- movs r0, 0
- bl load_gfxc_health_bar
- mov r0, r9
- movs r1, 0x3A
- bl GetMonData
- adds r4, r0, 0
- mov r0, r9
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- movs r0, 0
- str r0, [sp]
- mov r0, r10
- mov r1, r8
- adds r2, r4, 0
- bl sub_8043D84
- mov r0, r10
- mov r1, r8
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
-_08045B22:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- cmp r0, 0
- bne _08045BA6
- cmp r7, 0x6
- beq _08045B38
- cmp r7, 0
- bne _08045BA6
-_08045B38:
- movs r0, 0x3
- bl load_gfxc_health_bar
- mov r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r0, r9
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- movs r1, 0x19
- bl GetMonData
- adds r3, r0, 0
- ldr r6, _08045BE8 @ =gExperienceTables
- lsls r1, r4, 2
- ldr r2, _08045BEC @ =gBaseStats
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r2
- adds r1, r0
- adds r1, r6
- ldr r1, [r1]
- subs r3, r1
- adds r4, 0x1
- lsls r4, 2
- adds r4, r0
- adds r4, r6
- ldr r2, [r4]
- subs r2, r1
- ldr r0, [sp, 0x4]
- str r0, [sp]
- mov r0, r10
- mov r1, r8
- bl sub_8043D84
- mov r0, r10
- mov r1, r8
- movs r2, 0x1
- movs r3, 0
- bl sub_8045C78
-_08045BA6:
- cmp r7, 0x4
- beq _08045BAE
- cmp r7, 0
- bne _08045BB6
-_08045BAE:
- mov r0, r8
- mov r1, r9
- bl sub_80451A0
-_08045BB6:
- cmp r7, 0x9
- beq _08045BBE
- cmp r7, 0
- bne _08045BC4
-_08045BBE:
- mov r0, r8
- bl draw_status_ailment_maybe
-_08045BC4:
- cmp r7, 0xA
- bne _08045BCE
- mov r0, r8
- bl sub_80458B0
-_08045BCE:
- adds r0, r7, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08045C66
- mov r0, r8
- bl sub_8045998
- b _08045C66
- .align 2, 0
-_08045BE4: .4byte gSprites
-_08045BE8: .4byte gExperienceTables
-_08045BEC: .4byte gBaseStats
-_08045BF0:
- cmp r7, 0x3
- beq _08045BF8
- cmp r7, 0
- bne _08045C0C
-_08045BF8:
- mov r0, r9
- movs r1, 0x38
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8043FC0
-_08045C0C:
- cmp r7, 0x5
- beq _08045C14
- cmp r7, 0
- bne _08045C48
-_08045C14:
- movs r0, 0
- bl load_gfxc_health_bar
- mov r0, r9
- movs r1, 0x3A
- bl GetMonData
- adds r4, r0, 0
- mov r0, r9
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- movs r0, 0
- str r0, [sp]
- mov r0, r10
- mov r1, r8
- adds r2, r4, 0
- bl sub_8043D84
- mov r0, r10
- mov r1, r8
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
-_08045C48:
- cmp r7, 0x4
- beq _08045C50
- cmp r7, 0
- bne _08045C58
-_08045C50:
- mov r0, r8
- mov r1, r9
- bl sub_80451A0
-_08045C58:
- cmp r7, 0x9
- beq _08045C60
- cmp r7, 0
- bne _08045C66
-_08045C60:
- mov r0, r8
- bl draw_status_ailment_maybe
-_08045C66:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8045A5C
-
- thumb_func_start sub_8045C78
-sub_8045C78: @ 8045C78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- cmp r2, 0
- bne _08045CBC
- lsls r5, r7, 2
- adds r3, r5, r7
- lsls r3, 2
- ldr r4, _08045CB8 @ =0x02017850
- adds r2, r3, r4
- ldr r0, [r2, 0x4]
- ldr r1, [r2, 0x8]
- ldr r2, [r2, 0xC]
- adds r4, 0x10
- adds r3, r4
- movs r4, 0x6
- str r4, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- bl sub_8045F58
- adds r6, r0, 0
- adds r4, r5, 0
- b _08045D0A
- .align 2, 0
-_08045CB8: .4byte 0x02017850
-_08045CBC:
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 2
- mov r10, r0
- ldr r6, _08045D50 @ =0x02017850
- add r6, r10
- ldr r0, [r6, 0x8]
- ldr r1, [r6, 0xC]
- ldr r2, [r6, 0x4]
- movs r3, 0x8
- bl sub_8046188
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08045CDE
- movs r5, 0x1
-_08045CDE:
- ldr r0, [r6, 0xC]
- mov r8, r0
- adds r1, r5, 0
- bl __divsi3
- cmp r0, 0
- bge _08045CEE
- negs r0, r0
-_08045CEE:
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [r6, 0x4]
- ldr r1, [r6, 0x8]
- ldr r3, _08045D50 @ =0x02017850
- adds r3, 0x10
- add r3, r10
- movs r2, 0x8
- str r2, [sp]
- str r5, [sp, 0x4]
- mov r2, r8
- bl sub_8045F58
- adds r6, r0, 0
-_08045D0A:
- mov r0, r9
- cmp r0, 0x1
- beq _08045D22
- cmp r0, 0
- bne _08045D2A
- ldr r0, _08045D54 @ =0x02017800
- adds r0, r4, r0
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08045D2A
-_08045D22:
- adds r0, r7, 0
- mov r1, r9
- bl sub_8045D58
-_08045D2A:
- movs r0, 0x1
- negs r0, r0
- cmp r6, r0
- bne _08045D3E
- adds r0, r4, r7
- lsls r0, 2
- ldr r1, _08045D50 @ =0x02017850
- adds r0, r1
- movs r1, 0
- str r1, [r0, 0x10]
-_08045D3E:
- adds r0, r6, 0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08045D50: .4byte 0x02017850
-_08045D54: .4byte 0x02017800
- thumb_func_end sub_8045C78
-
- thumb_func_start sub_8045D58
-sub_8045D58: @ 8045D58
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- beq _08045D72
- cmp r1, 0x1
- beq _08045E54
- b _08045F42
-_08045D72:
- lsls r5, r6, 2
- adds r3, r5, r6
- lsls r3, 2
- ldr r4, _08045E00 @ =0x02017850
- adds r2, r3, r4
- ldr r0, [r2, 0x4]
- ldr r1, [r2, 0x8]
- ldr r2, [r2, 0xC]
- adds r4, 0x10
- adds r3, r4
- add r4, sp, 0x8
- str r4, [sp]
- movs r4, 0x6
- str r4, [sp, 0x4]
- bl sub_804602C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- mov r8, r1
- adds r1, r5, 0
- cmp r0, 0x18
- bhi _08045DAC
- movs r2, 0x38
- mov r8, r2
- cmp r0, 0x9
- bls _08045DAC
- movs r4, 0x2F
- mov r8, r4
-_08045DAC:
- movs r5, 0
- ldr r7, _08045E04 @ =gSprites
- adds r0, r1, r6
- lsls r6, r0, 2
-_08045DB4:
- ldr r0, _08045E00 @ =0x02017850
- adds r0, r6, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r0, [r0, 0x38]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r5, 0x1
- bhi _08045E10
- mov r0, r8
- bl sub_8043CDC
- mov r1, sp
- adds r1, r5
- adds r1, 0x8
- ldrb r1, [r1]
- lsls r1, 5
- adds r0, r1
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r7
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r2, r5, 0x2
- adds r1, r2
- lsls r1, 5
- ldr r2, _08045E08 @ =0x06010000
- adds r1, r2
- ldr r2, _08045E0C @ =REG_BG0CNT
- bl CpuSet
- b _08045E3E
- .align 2, 0
-_08045E00: .4byte 0x02017850
-_08045E04: .4byte gSprites
-_08045E08: .4byte 0x06010000
-_08045E0C: .4byte REG_BG0CNT
-_08045E10:
- mov r0, r8
- bl sub_8043CDC
- mov r1, sp
- adds r1, r5
- adds r1, 0x8
- ldrb r1, [r1]
- lsls r1, 5
- adds r0, r1
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r7
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r1, r5, r1
- lsls r1, 5
- ldr r4, _08045E4C @ =0x06010040
- adds r1, r4
- ldr r2, _08045E50 @ =REG_BG0CNT
- bl CpuSet
-_08045E3E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08045DB4
- b _08045F42
- .align 2, 0
-_08045E4C: .4byte 0x06010040
-_08045E50: .4byte REG_BG0CNT
-_08045E54:
- lsls r5, r6, 2
- adds r3, r5, r6
- lsls r3, 2
- ldr r4, _08045EF0 @ =0x02017850
- adds r2, r3, r4
- ldr r0, [r2, 0x4]
- ldr r1, [r2, 0x8]
- ldr r2, [r2, 0xC]
- adds r4, 0x10
- adds r3, r4
- add r4, sp, 0x8
- str r4, [sp]
- movs r4, 0x8
- str r4, [sp, 0x4]
- bl sub_804602C
- ldr r1, _08045EF4 @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08045EF8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- cmp r0, 0x64
- bne _08045EAA
- movs r5, 0
- movs r2, 0
-_08045E98:
- mov r0, sp
- adds r0, r5
- adds r0, 0x8
- strb r2, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _08045E98
-_08045EAA:
- movs r5, 0
- ldr r7, _08045EFC @ =gSprites
- adds r0, r1, r6
- lsls r0, 2
- ldr r1, _08045EF0 @ =0x02017850
- adds r4, r0, r1
-_08045EB6:
- cmp r5, 0x3
- bhi _08045F08
- movs r0, 0xC
- bl sub_8043CDC
- mov r1, sp
- adds r1, r5
- adds r1, 0x8
- ldrb r1, [r1]
- lsls r1, 5
- adds r0, r1
- ldrb r2, [r4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r7
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r2, r5, 0
- adds r2, 0x24
- adds r1, r2
- lsls r1, 5
- ldr r2, _08045F00 @ =0x06010000
- adds r1, r2
- ldr r2, _08045F04 @ =REG_BG0CNT
- bl CpuSet
- b _08045F38
- .align 2, 0
-_08045EF0: .4byte 0x02017850
-_08045EF4: .4byte gUnknown_02024A6A
-_08045EF8: .4byte gPlayerParty
-_08045EFC: .4byte gSprites
-_08045F00: .4byte 0x06010000
-_08045F04: .4byte REG_BG0CNT
-_08045F08:
- movs r0, 0xC
- bl sub_8043CDC
- mov r1, sp
- adds r1, r5
- adds r1, 0x8
- ldrb r1, [r1]
- lsls r1, 5
- adds r0, r1
- ldrb r2, [r4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r7
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r1, r5, r1
- lsls r1, 5
- ldr r2, _08045F50 @ =0x06010b80
- adds r1, r2
- ldr r2, _08045F54 @ =REG_BG0CNT
- bl CpuSet
-_08045F38:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _08045EB6
-_08045F42:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08045F50: .4byte 0x06010b80
-_08045F54: .4byte REG_BG0CNT
- thumb_func_end sub_8045D58
-
- thumb_func_start sub_8045F58
-sub_8045F58: @ 8045F58
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- mov r8, r2
- adds r5, r3, 0
- ldr r1, [sp, 0x18]
- ldr r0, [sp, 0x1C]
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 27
- lsrs r2, r1, 24
- ldr r1, [r5]
- ldr r0, _08045F84 @ =0xffff8000
- cmp r1, r0
- bne _08045F8A
- cmp r7, r2
- bge _08045F88
- lsls r0, r4, 8
- str r0, [r5]
- b _08045F8A
- .align 2, 0
-_08045F84: .4byte 0xffff8000
-_08045F88:
- str r4, [r5]
-_08045F8A:
- mov r0, r8
- subs r4, r0
- cmp r4, 0
- bge _08045F96
- movs r4, 0
- b _08045F9C
-_08045F96:
- cmp r4, r7
- ble _08045F9C
- adds r4, r7, 0
-_08045F9C:
- cmp r7, r2
- bge _08045FB8
- ldr r0, [r5]
- asrs r1, r0, 8
- adds r6, r0, 0
- cmp r4, r1
- bne _08045FC4
- movs r0, 0xFF
- ands r0, r6
- cmp r0, 0
- bne _08045FC4
- movs r0, 0x1
- negs r0, r0
- b _08046020
-_08045FB8:
- ldr r6, [r5]
- cmp r4, r6
- bne _08045FC4
- movs r0, 0x1
- negs r0, r0
- b _08046020
-_08045FC4:
- cmp r7, r2
- bge _08045FFE
- lsls r0, r7, 8
- adds r1, r2, 0
- bl __divsi3
- mov r1, r8
- cmp r1, 0
- bge _08045FE2
- adds r0, r6, r0
- str r0, [r5]
- asrs r2, r0, 8
- cmp r2, r4
- blt _0804601E
- b _08045FF6
-_08045FE2:
- subs r0, r6, r0
- str r0, [r5]
- asrs r2, r0, 8
- movs r1, 0xFF
- ands r0, r1
- cmp r0, 0
- ble _08045FF2
- adds r2, 0x1
-_08045FF2:
- cmp r2, r4
- bgt _0804601E
-_08045FF6:
- lsls r0, r4, 8
- str r0, [r5]
- adds r2, r4, 0
- b _0804601E
-_08045FFE:
- mov r0, r8
- cmp r0, 0
- bge _08046010
- ldr r0, [r5]
- adds r0, r3
- str r0, [r5]
- cmp r0, r4
- ble _0804601C
- b _0804601A
-_08046010:
- ldr r0, [r5]
- subs r0, r3
- str r0, [r5]
- cmp r0, r4
- bge _0804601C
-_0804601A:
- str r4, [r5]
-_0804601C:
- ldr r2, [r5]
-_0804601E:
- adds r0, r2, 0
-_08046020:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8045F58
-
- thumb_func_start sub_804602C
-sub_804602C: @ 804602C
- push {r4-r7,lr}
- adds r4, r0, 0
- mov r12, r3
- ldr r7, [sp, 0x14]
- ldr r0, [sp, 0x18]
- lsls r0, 24
- lsrs r6, r0, 24
- subs r5, r1, r2
- cmp r5, 0
- bge _08046044
- movs r5, 0
- b _0804604A
-_08046044:
- cmp r5, r4
- ble _0804604A
- adds r5, r4, 0
-_0804604A:
- lsls r0, r6, 27
- lsrs r3, r0, 24
- movs r1, 0
- cmp r1, r6
- bcs _08046064
- movs r2, 0
-_08046056:
- adds r0, r7, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcc _08046056
-_08046064:
- cmp r4, r3
- bge _08046078
- mov r1, r12
- ldr r0, [r1]
- muls r0, r3
- adds r1, r4, 0
- bl __divsi3
- asrs r0, 8
- b _08046084
-_08046078:
- mov r1, r12
- ldr r0, [r1]
- muls r0, r3
- adds r1, r4, 0
- bl __divsi3
-_08046084:
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- cmp r3, 0
- bne _0804609A
- cmp r5, 0
- ble _0804609A
- movs r0, 0x1
- strb r0, [r7]
- movs r3, 0x1
- b _080460BE
-_0804609A:
- movs r1, 0
- movs r4, 0x8
-_0804609E:
- cmp r1, r6
- bcs _080460BE
- cmp r2, 0x7
- bls _080460BA
- adds r0, r7, r1
- strb r4, [r0]
- adds r0, r2, 0
- subs r0, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- b _0804609E
-_080460BA:
- adds r0, r7, r1
- strb r2, [r0]
-_080460BE:
- adds r0, r3, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_804602C
-
- thumb_func_start sub_80460C8
-sub_80460C8: @ 80460C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- mov r8, r3
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- ldr r2, [r5, 0x8]
- movs r3, 0x6
- str r3, [sp]
- movs r3, 0x1
- str r3, [sp, 0x4]
- adds r3, r6, 0
- bl sub_8045F58
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_8046128
- ldr r0, [r5]
- cmp r0, 0x2F
- bgt _08046108
- ldr r0, [r6]
- lsls r0, 8
- lsrs r1, r0, 16
- b _0804610A
-_08046108:
- ldrh r1, [r6]
-_0804610A:
- movs r2, 0
- ldrsh r0, [r5, r2]
- lsls r1, 16
- asrs r1, 16
- mov r2, r8
- bl sub_804373C
- lsls r0, r7, 16
- asrs r0, 16
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80460C8
-
- thumb_func_start sub_8046128
-sub_8046128: @ 8046128
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x1C
- adds r5, r0, 0
- adds r3, r1, 0
- mov r8, r2
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- ldr r2, [r5, 0x8]
- add r4, sp, 0x8
- str r4, [sp]
- movs r4, 0x6
- str r4, [sp, 0x4]
- bl sub_804602C
- movs r3, 0
- add r7, sp, 0x10
- mov r12, r7
- ldrb r0, [r5, 0xC]
- lsls r6, r0, 27
- ldr r4, [r5, 0x10]
-_08046154:
- lsls r2, r3, 1
- add r2, r12
- lsrs r1, r6, 15
- mov r0, sp
- adds r0, r3
- adds r0, 0x8
- ldrb r0, [r0]
- adds r0, r4, r0
- orrs r1, r0
- strh r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- bls _08046154
- adds r0, r7, 0
- mov r1, r8
- movs r2, 0x6
- bl CpuSet
- add sp, 0x1C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8046128
-
- thumb_func_start sub_8046188
-sub_8046188: @ 8046188
- push {r4-r7,lr}
- adds r6, r2, 0
- lsls r3, 27
- lsrs r7, r3, 24
- subs r5, r0, r1
- cmp r5, 0
- bge _0804619A
- movs r5, 0
- b _080461A0
-_0804619A:
- cmp r5, r6
- ble _080461A0
- adds r5, r6, 0
-_080461A0:
- muls r0, r7
- adds r1, r6, 0
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- muls r0, r7
- adds r1, r6, 0
- bl __divsi3
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- subs r0, r4, r0
- cmp r0, 0
- bge _080461C8
- negs r0, r0
-_080461C8:
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8046188
-
- thumb_func_start sub_80461D4
-sub_80461D4: @ 80461D4
- push {r4,lr}
- lsls r2, 24
- lsrs r2, 24
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- muls r0, r2
- lsls r1, 16
- asrs r1, 16
- bl __divsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080461F8
- cmp r4, 0
- ble _080461F8
- movs r0, 0x1
-_080461F8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80461D4
-
- thumb_func_start sub_8046200
-sub_8046200: @ 8046200
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bne _08046212
- movs r0, 0x4
- b _0804622E
-_08046212:
- movs r2, 0x30
- bl sub_80461D4
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x3
- cmp r1, 0x18
- bhi _0804622E
- movs r0, 0x2
- cmp r1, 0x9
- bhi _0804622E
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
-_0804622E:
- pop {r1}
- bx r1
- thumb_func_end sub_8046200
-
- thumb_func_start sub_8046234
-sub_8046234: @ 8046234
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r4, r2, 24
- ldr r5, _0804636C @ =gUnknown_081FAEA4
- ldrh r0, [r5, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _08046370 @ =0xffff0000
- cmp r0, r1
- bne _08046266
- adds r0, r5, 0
- bl LoadCompressedObjectPic
- ldr r0, _08046374 @ =gUnknown_081FAEAC
- bl LoadCompressedObjectPalette
-_08046266:
- ldr r0, _08046378 @ =sub_8046388
- bl object_new_hidden_with_callback
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r5, r0, 4
- add r5, r8
- lsls r5, 2
- ldr r0, _0804637C @ =gSprites
- adds r5, r0
- strh r4, [r5, 0x30]
- ldr r0, _08046380 @ =gSpriteTemplate_81FAF0C
- mov r9, r0
- lsls r6, 16
- asrs r0, r6, 16
- mov r10, r0
- ldr r0, _08046384 @ =0xfff00000
- adds r6, r0
- asrs r6, 16
- lsls r4, r7, 16
- asrs r7, r4, 16
- adds r4, r0
- asrs r4, 16
- mov r0, r9
- adds r1, r6, 0
- adds r2, r4, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0804637C @ =gSprites
- adds r1, r0
- mov r0, r8
- strh r0, [r1, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r1, 0
- bl AnimateSprite
- mov r0, r9
- mov r1, r10
- adds r2, r4, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C @ =gSprites
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r9
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C @ =gSprites
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r9
- mov r1, r10
- adds r2, r7, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C @ =gSprites
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804636C: .4byte gUnknown_081FAEA4
-_08046370: .4byte 0xffff0000
-_08046374: .4byte gUnknown_081FAEAC
-_08046378: .4byte sub_8046388
-_0804637C: .4byte gSprites
-_08046380: .4byte gSpriteTemplate_81FAF0C
-_08046384: .4byte 0xfff00000
- thumb_func_end sub_8046234
-
- thumb_func_start sub_8046388
-sub_8046388: @ 8046388
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080463C0
- ldr r0, _080463B4 @ =gUnknown_081FAEA4
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldr r0, _080463B8 @ =gUnknown_081FAEAC
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080463BC
- adds r0, r4, 0
- bl DestroySprite
- b _080463C0
- .align 2, 0
-_080463B4: .4byte gUnknown_081FAEA4
-_080463B8: .4byte gUnknown_081FAEAC
-_080463BC:
- ldr r0, _080463C8 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_080463C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080463C8: .4byte SpriteCallbackDummy
- thumb_func_end sub_8046388
-
- thumb_func_start sub_80463CC
-sub_80463CC: @ 80463CC
- push {lr}
- adds r3, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080463F6
- ldr r2, _080463FC @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- subs r1, 0x1
- strh r1, [r0, 0x2E]
- adds r0, r3, 0
- bl DestroySprite
-_080463F6:
- pop {r0}
- bx r0
- .align 2, 0
-_080463FC: .4byte gSprites
- thumb_func_end sub_80463CC
-
- thumb_func_start sub_8046400
-sub_8046400: @ 8046400
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _08046450 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldr r6, _08046454 @ =gUnknown_02024A60
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08046458 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0804645C @ =sub_8046464
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08046460 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- ldrb r0, [r6]
- strh r0, [r1, 0xE]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08046450: .4byte gUnknown_02024E6D
-_08046454: .4byte gUnknown_02024A60
-_08046458: .4byte 0x02017810
-_0804645C: .4byte sub_8046464
-_08046460: .4byte gTasks
- thumb_func_end sub_8046400
-
- thumb_func_start sub_8046464
-sub_8046464: @ 8046464
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- movs r0, 0
- str r0, [sp]
- ldr r1, _08046498 @ =gTasks
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0804649C
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- b _08046616
- .align 2, 0
-_08046498: .4byte gTasks
-_0804649C:
- ldrh r0, [r1, 0xC]
- mov r8, r0
- ldrb r5, [r1, 0xE]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080464C8
- ldr r1, _080464C0 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080464C4 @ =gEnemyParty
- b _080464D6
- .align 2, 0
-_080464C0: .4byte gUnknown_02024A6A
-_080464C4: .4byte gEnemyParty
-_080464C8:
- ldr r1, _08046544 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08046548 @ =gPlayerParty
-_080464D6:
- adds r0, r1
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80478DC
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _0804654C @ =gSpriteTemplate_820AAB4
- adds r0, r1
- movs r1, 0x20
- movs r2, 0x50
- movs r3, 0x1D
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _08046550 @ =gSprites
- mov r9, r2
- lsls r0, r7, 4
- adds r0, r7
- lsls r6, r0, 2
- adds r4, r6, r2
- movs r0, 0x80
- strh r0, [r4, 0x2E]
- movs r3, 0
- strh r3, [r4, 0x30]
- mov r0, r8
- strh r0, [r4, 0x3C]
- mov r2, r8
- cmp r2, 0xFE
- beq _0804655C
- cmp r2, 0xFF
- bne _08046598
- ldr r0, _08046554 @ =gUnknown_02024C08
- strb r5, [r0]
- movs r0, 0x18
- strh r0, [r4, 0x20]
- movs r0, 0x44
- strh r0, [r4, 0x22]
- mov r0, r9
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, _08046558 @ =sub_8047074
- str r1, [r0]
- b _080465A6
- .align 2, 0
-_08046544: .4byte gUnknown_02024A6A
-_08046548: .4byte gPlayerParty
-_0804654C: .4byte gSpriteTemplate_820AAB4
-_08046550: .4byte gSprites
-_08046554: .4byte gUnknown_02024C08
-_08046558: .4byte sub_8047074
-_0804655C:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x18
- strh r0, [r4, 0x22]
- ldr r0, _08046590 @ =gUnknown_02024C08
- strb r5, [r0]
- movs r3, 0
- strh r3, [r4, 0x2E]
- mov r0, r9
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, _08046594 @ =sub_8047254
- str r1, [r0]
- b _080465A6
- .align 2, 0
-_08046590: .4byte gUnknown_02024C08
-_08046594: .4byte sub_8047254
-_08046598:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _080465C4 @ =gUnknown_02024C08
- strb r0, [r1]
- movs r0, 0x1
- str r0, [sp]
-_080465A6:
- ldr r0, _080465C8 @ =gSprites
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r4, r1, r0
- ldr r5, _080465C4 @ =gUnknown_02024C08
- ldrb r0, [r5]
- strh r0, [r4, 0x3A]
- ldr r2, [sp]
- cmp r2, 0
- bne _080465CC
- mov r0, r10
- bl DestroyTask
- b _08046616
- .align 2, 0
-_080465C4: .4byte gUnknown_02024C08
-_080465C8: .4byte gSprites
-_080465CC:
- movs r0, 0x22
- strh r0, [r4, 0x2E]
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r4, 0x36]
- ldr r0, _08046628 @ =0x0000ffd8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- mov r3, r10
- strh r3, [r4, 0x6]
- ldr r1, _0804662C @ =gTasks
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r5]
- strh r1, [r0, 0x10]
- ldr r1, _08046630 @ =TaskDummy
- str r1, [r0]
- movs r0, 0x3D
- bl PlaySE
-_08046616:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046628: .4byte 0x0000ffd8
-_0804662C: .4byte gTasks
-_08046630: .4byte TaskDummy
- thumb_func_end sub_8046464
-
- thumb_func_start objc_0804ABD4
-objc_0804ABD4: @ 8046634
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080466D4
- ldrb r6, [r7, 0x6]
- ldr r1, _080466E0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldrb r5, [r0, 0x10]
- ldrb r0, [r0, 0xC]
- mov r8, r0
- adds r0, r7, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r2, r7, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r7, 0x20]
- ldrh r0, [r7, 0x26]
- ldrh r2, [r7, 0x22]
- adds r0, r2
- strh r0, [r7, 0x22]
- strh r1, [r7, 0x24]
- strh r1, [r7, 0x26]
- strh r1, [r7, 0x38]
- adds r0, r5, 0
- bl sub_8047978
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- ldrh r0, [r7, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r7, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- movs r0, 0
- adds r1, r5, 0
- movs r2, 0xE
- adds r3, r4, 0
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x2E]
- strh r5, [r7, 0x3A]
- mov r0, r8
- strh r0, [r7, 0x3C]
- adds r0, r6, 0
- bl DestroyTask
- ldr r0, _080466E4 @ =sub_80466E8
- str r0, [r7, 0x1C]
-_080466D4:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080466E0: .4byte gTasks
-_080466E4: .4byte sub_80466E8
- thumb_func_end objc_0804ABD4
-
- thumb_func_start sub_80466E8
-sub_80466E8: @ 80466E8
- ldr r1, _080466F0 @ =sub_80466F4
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080466F0: .4byte sub_80466F4
- thumb_func_end sub_80466E8
-
- thumb_func_start sub_80466F4
-sub_80466F4: @ 80466F4
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x38]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r6, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0804674E
- strh r7, [r6, 0x38]
- ldr r0, _08046754 @ =sub_8046760
- str r0, [r6, 0x1C]
- ldr r5, _08046758 @ =gUnknown_02024BE0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0804675C @ =gSprites
- adds r0, r4
- movs r1, 0x2
- bl StartSpriteAffineAnim
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl AnimateSprite
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x30]
-_0804674E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046754: .4byte sub_8046760
-_08046758: .4byte gUnknown_02024BE0
-_0804675C: .4byte gSprites
- thumb_func_end sub_80466F4
-
- thumb_func_start sub_8046760
-sub_8046760: @ 8046760
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _08046778
- movs r0, 0x3C
- bl PlaySE
-_08046778:
- ldr r6, _080467C4 @ =gSprites
- ldr r5, _080467C8 @ =gUnknown_02024BE0
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _080467D0
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0
- strh r0, [r4, 0x38]
- ldr r0, _080467CC @ =sub_80467F8
- str r0, [r4, 0x1C]
- b _080467F0
- .align 2, 0
-_080467C4: .4byte gSprites
-_080467C8: .4byte gUnknown_02024BE0
-_080467CC: .4byte sub_80467F8
-_080467D0:
- ldrh r0, [r1, 0x30]
- adds r0, 0x60
- strh r0, [r1, 0x30]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- negs r0, r0
- asrs r0, 8
- strh r0, [r1, 0x26]
-_080467F0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8046760
-
- thumb_func_start sub_80467F8
-sub_80467F8: @ 80467F8
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08046840
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08046840
- strh r1, [r4, 0x34]
- movs r0, 0x20
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- movs r0, 0
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldr r0, _08046848 @ =sub_804684C
- str r0, [r4, 0x1C]
-_08046840:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08046848: .4byte sub_804684C
- thumb_func_end sub_80467F8
-
- thumb_func_start sub_804684C
-sub_804684C: @ 804684C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0
- beq _08046862
- cmp r1, 0x1
- beq _080468D6
- b _08046902
-_08046862:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- adds r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3F
- ble _08046902
- ldrh r0, [r4, 0x36]
- subs r0, 0xA
- strh r0, [r4, 0x36]
- ldr r1, _080468AC @ =0x00000101
- adds r0, r2, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _0804689E
- movs r5, 0x1
-_0804689E:
- cmp r0, 0x2
- beq _080468BE
- cmp r0, 0x2
- bgt _080468B0
- cmp r0, 0x1
- beq _080468B6
- b _080468CE
- .align 2, 0
-_080468AC: .4byte 0x00000101
-_080468B0:
- cmp r0, 0x3
- beq _080468C6
- b _080468CE
-_080468B6:
- movs r0, 0x38
- bl PlaySE
- b _08046902
-_080468BE:
- movs r0, 0x39
- bl PlaySE
- b _08046902
-_080468C6:
- movs r0, 0x3A
- bl PlaySE
- b _08046902
-_080468CE:
- movs r0, 0x3B
- bl PlaySE
- b _08046902
-_080468D6:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- subs r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- subs r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- cmp r1, 0
- bgt _08046902
- strh r5, [r4, 0x38]
- ldr r0, _08046928 @ =0xffffff00
- ands r0, r2
- strh r0, [r4, 0x34]
-_08046902:
- cmp r5, 0
- beq _0804693A
- movs r5, 0
- strh r5, [r4, 0x34]
- movs r0, 0x40
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08046930
- ldr r0, _0804692C @ =sub_8046C78
- str r0, [r4, 0x1C]
- b _0804693A
- .align 2, 0
-_08046928: .4byte 0xffffff00
-_0804692C: .4byte sub_8046C78
-_08046930:
- ldr r0, _08046940 @ =sub_8046944
- str r0, [r4, 0x1C]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
-_0804693A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08046940: .4byte sub_8046944
- thumb_func_end sub_804684C
-
- thumb_func_start sub_8046944
-sub_8046944: @ 8046944
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08046978
- movs r0, 0
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _08046980 @ =sub_8046984
- str r0, [r4, 0x1C]
- movs r0, 0x17
- bl PlaySE
-_08046978:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08046980: .4byte sub_8046984
- thumb_func_end sub_8046944
-
- thumb_func_start sub_8046984
-sub_8046984: @ 8046984
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x4
- bhi _08046A84
- lsls r0, r1, 2
- ldr r1, _0804699C @ =_080469A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804699C: .4byte _080469A0
- .align 2, 0
-_080469A0:
- .4byte _080469B4
- .4byte _080469E6
- .4byte _080469B4
- .4byte _08046A3A
- .4byte _08046A84
-_080469B4:
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x24]
- adds r1, r0, r2
- strh r1, [r4, 0x24]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bls _08046ACA
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- movs r0, 0
- strh r0, [r4, 0x38]
- b _08046ACA
-_080469E6:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08046A2C
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _08046A22
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _08046ACA
-_08046A22:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _08046ACA
-_08046A2C:
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _08046ACA
-_08046A3A:
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r2, [r4, 0x34]
- adds r0, r2
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _08046A5C
- ldr r0, _08046A58 @ =sub_8046C78
- str r0, [r4, 0x1C]
- b _08046ACA
- .align 2, 0
-_08046A58: .4byte sub_8046C78
-_08046A5C:
- cmp r1, 0x4
- bne _08046A70
- cmp r0, 0x3
- bne _08046A70
- ldr r0, _08046A6C @ =sub_8046E7C
- str r0, [r4, 0x1C]
- b _08046A76
- .align 2, 0
-_08046A6C: .4byte sub_8046E7C
-_08046A70:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
-_08046A76:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- b _08046ACA
-_08046A84:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08046ACA
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r1, [r4, 0x34]
- ldr r0, _08046AB8 @ =0xffffff00
- ands r0, r1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _08046ABC
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _08046AC4
- .align 2, 0
-_08046AB8: .4byte 0xffffff00
-_08046ABC:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08046AC4:
- movs r0, 0x17
- bl PlaySE
-_08046ACA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8046984
-
- thumb_func_start sub_8046AD0
-sub_8046AD0: @ 8046AD0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08046AFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r6, [r0, 0xC]
- ldrb r3, [r0, 0xA]
- ldrh r5, [r0, 0x8]
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x20
- bhi _08046B88
- lsls r0, 2
- ldr r1, _08046B00 @ =_08046B04
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08046AFC: .4byte gTasks
-_08046B00: .4byte _08046B04
- .align 2, 0
-_08046B04:
- .4byte _08046B88
- .4byte _08046BA6
- .4byte _08046BB2
- .4byte _08046BF6
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046BD0
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046B88
- .4byte _08046C08
- .4byte _08046C20
- .4byte _08046C48
-_08046B88:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x18]
- movs r3, 0x18
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bgt _08046BA0
- adds r0, r2, 0x1
- strh r0, [r1, 0x18]
- b _08046C72
-_08046BA0:
- adds r0, r6, 0x1
- strh r0, [r1, 0x26]
- b _08046C72
-_08046BA6:
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlayCry1
- b _08046BEE
-_08046BB2:
- bl StopCryAndClearCrySongs
- ldr r1, _08046BCC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x1C]
- movs r1, 0x14
- strh r1, [r0, 0x26]
- b _08046C72
- .align 2, 0
-_08046BCC: .4byte gTasks
-_08046BD0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x1C]
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- bne _08046C5A
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, 0
- movs r2, 0x1
- bl PlayCry4
-_08046BEE:
- adds r0, r4, 0
- bl DestroyTask
- b _08046C72
-_08046BF6:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r1, 0x6
- strh r1, [r0, 0x1C]
- movs r1, 0x1E
- strh r1, [r0, 0x26]
- b _08046C72
-_08046C08:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x1C]
- movs r3, 0x1C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08046C5A
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
-_08046C20:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _08046C72
- bl StopCryAndClearCrySongs
- ldr r0, _08046C44 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x3
- strh r0, [r1, 0x1C]
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08046C72
- .align 2, 0
-_08046C44: .4byte gTasks
-_08046C48:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0x1C]
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- beq _08046C60
-_08046C5A:
- subs r0, r2, 0x1
- strh r0, [r1, 0x1C]
- b _08046C72
-_08046C60:
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl PlayCry4
- adds r0, r4, 0
- bl DestroyTask
-_08046C72:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8046AD0
-
- thumb_func_start sub_8046C78
-sub_8046C78: @ 8046C78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- ldrh r0, [r6, 0x3A]
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_8047978
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- ldrh r0, [r6, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- ldrh r1, [r6, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- movs r2, 0xE
- adds r3, r4, 0
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x2E]
- ldr r0, _08046D0C @ =sub_8046E9C
- str r0, [r6, 0x1C]
- ldr r0, _08046D10 @ =gMain
- ldr r1, _08046D14 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08046CE8
- b _08046E1C
-_08046CE8:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08046D20
- ldr r1, _08046D18 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08046D1C @ =gEnemyParty
- adds r0, r1, r0
- movs r3, 0x19
- mov r8, r3
- b _08046D34
- .align 2, 0
-_08046D0C: .4byte sub_8046E9C
-_08046D10: .4byte gMain
-_08046D14: .4byte 0x0000043d
-_08046D18: .4byte gUnknown_02024A6A
-_08046D1C: .4byte gEnemyParty
-_08046D20:
- ldr r1, _08046D90 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08046D94 @ =gPlayerParty
- adds r0, r1, r0
- movs r1, 0xE7
- mov r8, r1
-_08046D34:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08046D5A
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _08046DAE
-_08046D5A:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08046DAE
- ldr r0, _08046D98 @ =0x02017840
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08046DAE
- ldr r0, _08046D9C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08046DA4
- bl IsBGMPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08046DAE
- ldr r0, _08046DA0 @ =gMPlay_BGM
- bl m4aMPlayStop
- b _08046DAE
- .align 2, 0
-_08046D90: .4byte gUnknown_02024A6A
-_08046D94: .4byte gPlayerParty
-_08046D98: .4byte 0x02017840
-_08046D9C: .4byte gUnknown_020239F8
-_08046DA0: .4byte gMPlay_BGM
-_08046DA4:
- ldr r0, _08046DC8 @ =gMPlay_BGM
- ldr r1, _08046DCC @ =0x0000ffff
- movs r2, 0x80
- bl m4aMPlayVolumeControl
-_08046DAE:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08046DC4
- ldr r0, _08046DD0 @ =0x02017840
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08046DD4
-_08046DC4:
- movs r4, 0
- b _08046DF6
- .align 2, 0
-_08046DC8: .4byte gMPlay_BGM
-_08046DCC: .4byte 0x0000ffff
-_08046DD0: .4byte 0x02017840
-_08046DD4:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08046DF0
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _08046DF4
-_08046DF0:
- movs r4, 0x1
- b _08046DF6
-_08046DF4:
- movs r4, 0x2
-_08046DF6:
- ldr r0, _08046E6C @ =sub_8046AD0
- movs r1, 0x3
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08046E70 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r7, [r1, 0x8]
- mov r3, r8
- lsls r0, r3, 24
- asrs r0, 24
- strh r0, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r2, [r1, 0x26]
-_08046E1C:
- ldr r5, _08046E74 @ =gUnknown_02024BE0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08046E78 @ =gSprites
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r3, 0x3A
- ldrsh r0, [r6, r3]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl AnimateSprite
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x80
- lsls r1, 5
- strh r1, [r0, 0x30]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046E6C: .4byte sub_8046AD0
-_08046E70: .4byte gTasks
-_08046E74: .4byte gUnknown_02024BE0
-_08046E78: .4byte gSprites
- thumb_func_end sub_8046C78
-
- thumb_func_start sub_8046E7C
-sub_8046E7C: @ 8046E7C
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r1, [r3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _08046E98 @ =sub_8046FBC
- str r1, [r0, 0x1C]
- movs r1, 0
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- bx lr
- .align 2, 0
-_08046E98: .4byte sub_8046FBC
- thumb_func_end sub_8046E7C
-
- thumb_func_start sub_8046E9C
-sub_8046E9C: @ 8046E9C
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r7, 0
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, _08046F00 @ =gSprites
- ldr r0, _08046F04 @ =gUnknown_02024BE0
- adds r3, r4, r0
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08046EDE
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_08046EDE:
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _08046F08
- adds r0, r1, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r7, 0x1
- b _08046F24
- .align 2, 0
-_08046F00: .4byte gSprites
-_08046F04: .4byte gUnknown_02024BE0
-_08046F08:
- ldr r2, _08046FA8 @ =0xfffffee0
- adds r0, r2, 0
- ldrh r2, [r1, 0x30]
- adds r0, r2
- strh r0, [r1, 0x30]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r1, 0x26]
-_08046F24:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08046FA0
- cmp r7, 0
- beq _08046FA0
- ldr r2, _08046FAC @ =gSprites
- ldr r0, _08046FB0 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x26]
- ldr r0, _08046FB4 @ =gUnknown_02024E6D
- strb r2, [r0]
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- ldr r4, _08046FB8 @ =0x02017810
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl FreeSpriteOamMatrix
- adds r0, r5, 0
- bl DestroySprite
- movs r3, 0
- movs r5, 0x8
- adds r2, r4, 0
- movs r4, 0x3
-_08046F78:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08046F84
- adds r3, 0x1
-_08046F84:
- adds r2, 0xC
- subs r4, 0x1
- cmp r4, 0
- bge _08046F78
- cmp r3, 0x4
- bne _08046FA0
- movs r4, 0
-_08046F92:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_804794C
- adds r4, 0x1
- cmp r4, 0xB
- ble _08046F92
-_08046FA0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046FA8: .4byte 0xfffffee0
-_08046FAC: .4byte gSprites
-_08046FB0: .4byte gUnknown_02024BE0
-_08046FB4: .4byte gUnknown_02024E6D
-_08046FB8: .4byte 0x02017810
- thumb_func_end sub_8046E9C
-
- thumb_func_start sub_8046FBC
-sub_8046FBC: @ 8046FBC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x3A]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r6, 0x36]
- adds r0, 0x1
- strh r0, [r6, 0x36]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0x28
- beq _08047056
- cmp r1, 0x5F
- bne _08046FF4
- ldr r0, _08046FEC @ =gUnknown_02024E6D
- movs r1, 0
- strb r1, [r0]
- bl m4aMPlayAllStop
- ldr r0, _08046FF0 @ =0x00000173
- bl PlaySE
- b _08047056
- .align 2, 0
-_08046FEC: .4byte gUnknown_02024E6D
-_08046FF0: .4byte 0x00000173
-_08046FF4:
- ldr r0, _0804705C @ =0x0000013b
- cmp r1, r0
- bne _08047056
- ldr r5, _08047060 @ =gSprites
- ldr r4, _08047064 @ =gUnknown_02024BE0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r6, 0
- bl DestroySpriteAndFreeResources
- ldr r0, _08047068 @ =gMain
- ldr r1, _0804706C @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08047056
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 2
- ldr r0, _08047070 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_08047056:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804705C: .4byte 0x0000013b
-_08047060: .4byte gSprites
-_08047064: .4byte gUnknown_02024BE0
-_08047068: .4byte gMain
-_0804706C: .4byte 0x0000043d
-_08047070: .4byte 0x02017810
- thumb_func_end sub_8046FBC
-
- thumb_func_start sub_8047074
-sub_8047074: @ 8047074
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x19
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x18
- strh r0, [r4, 0x36]
- ldr r0, _080470BC @ =0x0000ffe2
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- strh r0, [r4, 0x6]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080470C0 @ =sub_80470C4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080470BC: .4byte 0x0000ffe2
-_080470C0: .4byte sub_80470C4
- thumb_func_end sub_8047074
-
- thumb_func_start sub_80470C4
-sub_80470C4: @ 80470C4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldrh r0, [r5, 0x3C]
- movs r1, 0xFF
- mov r8, r1
- lsrs r0, 8
- subs r0, 0x23
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2C
- bhi _080471B8
- ldrh r1, [r5, 0x6]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- bne _08047126
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- adds r6, r1, 0
- ands r6, r0
- ldrh r0, [r5, 0x32]
- adds r7, r1, 0
- ands r7, r0
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r1, 0x3
- bl __divsi3
- movs r1, 0x2
- negs r1, r1
- adds r4, r1, 0
- ands r0, r4
- orrs r6, r0
- strh r6, [r5, 0x30]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- movs r1, 0x3
- bl __divsi3
- ands r0, r4
- orrs r7, r0
- strh r7, [r5, 0x32]
- adds r0, r5, 0
- movs r1, 0x4
- bl StartSpriteAffineAnim
-_08047126:
- ldrh r4, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078B5C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x3
- bl __divsi3
- adds r1, r0, 0
- ldrh r0, [r5, 0x3C]
- adds r0, r1
- strh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 24
- mov r2, r8
- ands r0, r2
- movs r2, 0x38
- ldrsh r1, [r5, r2]
- bl Sin
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r5, 0x6]
- adds r0, r1
- strh r0, [r5, 0x6]
- lsls r0, 16
- lsrs r0, 24
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08047176
- strh r4, [r5, 0x2E]
- b _0804717E
-_08047176:
- lsls r0, r4, 16
- asrs r0, 16
- subs r0, 0x1
- strh r0, [r5, 0x2E]
-_0804717E:
- ldrh r0, [r5, 0x3C]
- lsrs r0, 8
- cmp r0, 0x4F
- ble _08047220
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- adds r6, r1, 0
- ands r6, r0
- ldrh r0, [r5, 0x32]
- adds r7, r1, 0
- ands r7, r0
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 1
- adds r0, r1
- movs r1, 0x2
- negs r1, r1
- adds r2, r1, 0
- ands r0, r2
- orrs r0, r6
- strh r0, [r5, 0x30]
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- ands r0, r2
- orrs r0, r7
- strh r0, [r5, 0x32]
- b _08047220
-_080471B8:
- adds r0, r5, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _08047220
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldrb r0, [r5, 0x6]
- strh r0, [r5, 0x3A]
- strh r1, [r5, 0x2E]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08047214
- ldr r0, _0804720C @ =0x02017840
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08047214
- movs r0, 0x3A
- ldrsh r4, [r5, r0]
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _08047214
- ldr r0, _08047210 @ =sub_8047230
- b _08047216
- .align 2, 0
-_0804720C: .4byte 0x02017840
-_08047210: .4byte sub_8047230
-_08047214:
- ldr r0, _0804722C @ =sub_8046C78
-_08047216:
- str r0, [r5, 0x1C]
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAffineAnim
-_08047220:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804722C: .4byte sub_8046C78
- thumb_func_end sub_80470C4
-
- thumb_func_start sub_8047230
-sub_8047230: @ 8047230
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _0804724A
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldr r0, _08047250 @ =sub_8046C78
- str r0, [r2, 0x1C]
-_0804724A:
- pop {r0}
- bx r0
- .align 2, 0
-_08047250: .4byte sub_8046C78
- thumb_func_end sub_8047230
-
- thumb_func_start sub_8047254
-sub_8047254: @ 8047254
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080472A4
- movs r0, 0
- strh r0, [r5, 0x2E]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080472A0
- ldr r0, _08047298 @ =0x02017840
- ldrb r1, [r0, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080472A0
- movs r0, 0x3A
- ldrsh r4, [r5, r0]
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080472A0
- ldr r0, _0804729C @ =sub_8047230
- b _080472A2
- .align 2, 0
-_08047298: .4byte 0x02017840
-_0804729C: .4byte sub_8047230
-_080472A0:
- ldr r0, _080472AC @ =sub_8046C78
-_080472A2:
- str r0, [r5, 0x1C]
-_080472A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080472AC: .4byte sub_8046C78
- thumb_func_end sub_8047254
-
- thumb_func_start sub_80472B0
-sub_80472B0: @ 80472B0
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- str r4, [sp]
- bl sub_814086C
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80472B0
-
- thumb_func_start sub_80472D8
-sub_80472D8: @ 80472D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80472D8
-
- thumb_func_start CreatePokeballSprite
-CreatePokeballSprite: @ 80472F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- mov r9, r2
- mov r10, r3
- ldr r6, [sp, 0x24]
- ldr r4, [sp, 0x28]
- ldr r0, [sp, 0x2C]
- lsls r5, 24
- lsrs r5, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- mov r2, r10
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080473BC @ =gUnknown_0820A92C
- bl LoadCompressedObjectPic
- ldr r0, _080473C0 @ =gUnknown_0820A98C
- bl LoadCompressedObjectPalette
- ldr r0, _080473C4 @ =gSpriteTemplate_820AAB4
- mov r1, r9
- mov r2, r10
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080473C8 @ =gSprites
- mov r8, r3
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r1, r4, r3
- strh r5, [r1, 0x2E]
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- add r2, r8
- ldrh r0, [r2, 0x20]
- strh r0, [r1, 0x38]
- ldrh r0, [r2, 0x22]
- strh r0, [r1, 0x3A]
- mov r0, r9
- strh r0, [r2, 0x20]
- mov r3, r10
- strh r3, [r2, 0x22]
- strh r7, [r1, 0x30]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x32]
- mov r3, sp
- ldrh r3, [r3, 0x30]
- strh r3, [r1, 0x34]
- ldr r3, [sp, 0x30]
- lsrs r0, r3, 16
- strh r0, [r1, 0x36]
- movs r0, 0x3
- ands r6, r0
- lsls r6, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r6
- strb r0, [r1, 0x5]
- movs r0, 0x1C
- add r8, r0
- add r4, r8
- ldr r0, _080473CC @ =sub_80473D0
- str r0, [r4]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080473BC: .4byte gUnknown_0820A92C
-_080473C0: .4byte gUnknown_0820A98C
-_080473C4: .4byte gSpriteTemplate_820AAB4
-_080473C8: .4byte gSprites
-_080473CC: .4byte sub_80473D0
- thumb_func_end CreatePokeballSprite
-
- thumb_func_start sub_80473D0
-sub_80473D0: @ 80473D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldrh r1, [r6, 0x30]
- movs r2, 0x30
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0804747C
- ldrh r0, [r6, 0x2E]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r6, 0x32]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r4, [r6, 0x34]
- ldrh r0, [r6, 0x36]
- lsls r0, 16
- orrs r4, r0
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804740A
- subs r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- b _0804740C
-_0804740A:
- movs r5, 0
-_0804740C:
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r6, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r6, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r3, r5, 0
- bl sub_80472B0
- movs r0, 0x1
- mov r1, r8
- adds r2, r4, 0
- bl sub_80472D8
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r6, 0x30]
- ldr r0, _08047474 @ =sub_804748C
- str r0, [r6, 0x1C]
- ldr r0, _08047478 @ =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- adds r0, r4, 0
- bl AnimateSprite
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r4, 0x30]
- strh r5, [r6, 0x3C]
- b _08047480
- .align 2, 0
-_08047474: .4byte sub_804748C
-_08047478: .4byte gSprites
-_0804747C:
- subs r0, r1, 0x1
- strh r0, [r6, 0x30]
-_08047480:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80473D0
-
- thumb_func_start sub_804748C
-sub_804748C: @ 804748C
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r0, 0
- mov r12, r0
- movs r6, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080474B6
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080474B6:
- ldr r0, _08047544 @ =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r5, r1, r0
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _080474D8
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r1, 0x1
- mov r12, r1
-_080474D8:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r7, 0x20
- ldrsh r1, [r4, r7]
- subs r0, r1
- movs r1, 0x3C
- ldrsh r2, [r4, r1]
- muls r0, r2
- cmp r0, 0
- bge _080474EE
- adds r0, 0x7F
-_080474EE:
- asrs r0, 7
- ldrh r7, [r4, 0x20]
- adds r0, r7
- lsls r0, 16
- lsrs r3, r0, 16
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r7, 0x22
- ldrsh r1, [r4, r7]
- subs r0, r1
- muls r0, r2
- cmp r0, 0
- bge _0804750A
- adds r0, 0x7F
-_0804750A:
- asrs r0, 7
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r3, [r5, 0x20]
- strh r0, [r5, 0x22]
- ldrh r2, [r4, 0x3C]
- movs r7, 0x3C
- ldrsh r0, [r4, r7]
- cmp r0, 0x7F
- bgt _0804754C
- ldr r1, _08047548 @ =gSineTable
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _08047530
- adds r0, 0x7
-_08047530:
- asrs r0, 3
- negs r0, r0
- lsls r0, 16
- lsrs r0, 16
- adds r1, r2, 0x4
- strh r1, [r4, 0x3C]
- strh r0, [r5, 0x24]
- strh r0, [r5, 0x26]
- b _0804755A
- .align 2, 0
-_08047544: .4byte gSprites
-_08047548: .4byte gSineTable
-_0804754C:
- ldrh r0, [r4, 0x38]
- strh r0, [r5, 0x20]
- ldrh r0, [r4, 0x3A]
- strh r0, [r5, 0x22]
- strh r6, [r5, 0x24]
- strh r6, [r5, 0x26]
- movs r6, 0x1
-_0804755A:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08047578
- mov r2, r12
- cmp r2, 0
- beq _08047578
- cmp r6, 0
- beq _08047578
- adds r0, r4, 0
- bl DestroySpriteAndFreeResources
-_08047578:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804748C
-
- thumb_func_start sub_8047580
-sub_8047580: @ 8047580
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- adds r6, r2, 0
- mov r8, r3
- ldr r5, [sp, 0x20]
- ldr r4, [sp, 0x24]
- ldr r0, [sp, 0x28]
- mov r9, r0
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r6, 24
- lsrs r6, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _08047624 @ =gUnknown_0820A92C
- bl LoadCompressedObjectPic
- ldr r0, _08047628 @ =gUnknown_0820A98C
- bl LoadCompressedObjectPalette
- ldr r0, _0804762C @ =gSpriteTemplate_820AAB4
- adds r1, r6, 0
- mov r2, r8
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _08047630 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r6
- mov r1, r10
- strh r1, [r2, 0x2E]
- mov r4, r9
- strh r4, [r2, 0x30]
- strh r7, [r2, 0x32]
- mov r1, sp
- ldrh r1, [r1, 0x2C]
- strh r1, [r2, 0x34]
- ldr r4, [sp, 0x2C]
- lsrs r1, r4, 16
- strh r1, [r2, 0x36]
- movs r1, 0x3
- ands r5, r1
- lsls r5, 2
- ldrb r4, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r5
- strb r1, [r2, 0x5]
- adds r6, 0x1C
- adds r3, r6
- ldr r1, _08047634 @ =sub_8047638
- str r1, [r3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08047624: .4byte gUnknown_0820A92C
-_08047628: .4byte gUnknown_0820A98C
-_0804762C: .4byte gSpriteTemplate_820AAB4
-_08047630: .4byte gSprites
-_08047634: .4byte sub_8047638
- thumb_func_end sub_8047580
-
- thumb_func_start sub_8047638
-sub_8047638: @ 8047638
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080476D0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r5, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- lsls r0, 16
- orrs r5, r0
- adds r0, r4, 0
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r0, 0
- beq _08047672
- subs r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _08047674
-_08047672:
- movs r6, 0
-_08047674:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r4, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r3, r6, 0
- bl sub_80472B0
- movs r0, 0x1
- mov r1, r8
- adds r2, r5, 0
- bl sub_80472D8
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x30]
- ldr r0, _080476C8 @ =sub_80476E0
- str r0, [r4, 0x1C]
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- ldr r0, _080476CC @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- adds r0, r4, 0
- bl AnimateSprite
- strh r5, [r4, 0x30]
- b _080476D4
- .align 2, 0
-_080476C8: .4byte sub_80476E0
-_080476CC: .4byte gSprites
-_080476D0:
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
-_080476D4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8047638
-
- thumb_func_start sub_80476E0
-sub_80476E0: @ 80476E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _080476F8
- movs r0, 0x3C
- bl PlaySE
-_080476F8:
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08047734 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0804773C
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAnim
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- strh r0, [r5, 0x38]
- ldr r0, _08047738 @ =sub_8047754
- str r0, [r5, 0x1C]
- b _0804774C
- .align 2, 0
-_08047734: .4byte gSprites
-_08047738: .4byte sub_8047754
-_0804773C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x60
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- negs r0, r0
- asrs r0, 8
- strh r0, [r4, 0x26]
-_0804774C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80476E0
-
- thumb_func_start sub_8047754
-sub_8047754: @ 8047754
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08047768
- ldr r0, _0804776C @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_08047768:
- pop {r0}
- bx r0
- .align 2, 0
-_0804776C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8047754
-
- thumb_func_start obj_delete_and_free_associated_resources_
-obj_delete_and_free_associated_resources_: @ 8047770
- push {lr}
- bl DestroySpriteAndFreeResources
- pop {r0}
- bx r0
- thumb_func_end obj_delete_and_free_associated_resources_
-
- thumb_func_start sub_804777C
-sub_804777C: @ 804777C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, _080477FC @ =gUnknown_03004340
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r6, _08047800 @ =gSprites
- adds r4, r0, r6
- movs r1, 0
- movs r0, 0x5
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r0, 0x73
- strh r0, [r4, 0x24]
- strh r1, [r4, 0x26]
- ldr r0, _08047804 @ =sub_8047830
- str r0, [r4, 0x1C]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080477CA
- ldrh r0, [r4, 0x2E]
- negs r0, r0
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- negs r0, r0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080477CA:
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r1, r0, r1
- adds r0, r6
- ldr r1, [r1]
- bl _call_via_r1
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080477F4
- ldr r0, _08047808 @ =sub_804780C
- str r0, [r4, 0x1C]
-_080477F4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080477FC: .4byte gUnknown_03004340
-_08047800: .4byte gSprites
-_08047804: .4byte sub_8047830
-_08047808: .4byte sub_804780C
- thumb_func_end sub_804777C
-
- thumb_func_start sub_804780C
-sub_804780C: @ 804780C
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _08047826
- movs r0, 0
- strh r0, [r1, 0x30]
- ldr r0, _0804782C @ =sub_8047830
- str r0, [r1, 0x1C]
-_08047826:
- pop {r0}
- bx r0
- .align 2, 0
-_0804782C: .4byte sub_8047830
- thumb_func_end sub_804780C
-
- thumb_func_start sub_8047830
-sub_8047830: @ 8047830
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x2E]
- subs r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x26]
- ldrh r1, [r2, 0x30]
- subs r0, r1
- strh r0, [r2, 0x26]
- ldr r0, [r2, 0x24]
- cmp r0, 0
- bne _0804784E
- ldr r0, _08047854 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_0804784E:
- pop {r0}
- bx r0
- .align 2, 0
-_08047854: .4byte SpriteCallbackDummy
- thumb_func_end sub_8047830
-
- thumb_func_start sub_8047858
-sub_8047858: @ 8047858
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08047890 @ =oamc_804BEB4
- adds r0, r5, 0
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08047894 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r3, r1, r2
- movs r0, 0x1
- strh r0, [r3, 0x2E]
- ldr r0, _08047898 @ =gUnknown_03004340
- adds r4, r0
- ldrb r0, [r4]
- strh r0, [r3, 0x30]
- adds r2, 0x1C
- adds r1, r2
- str r5, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08047890: .4byte oamc_804BEB4
-_08047894: .4byte gSprites
-_08047898: .4byte gUnknown_03004340
- thumb_func_end sub_8047858
-
- thumb_func_start oamc_804BEB4
-oamc_804BEB4: @ 804789C
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080478D8 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrh r0, [r3, 0x2E]
- movs r2, 0
- strh r0, [r1, 0x26]
- ldrh r0, [r3, 0x2E]
- negs r0, r0
- strh r0, [r3, 0x2E]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080478D4
- strh r2, [r1, 0x24]
- strh r2, [r1, 0x26]
- adds r0, r3, 0
- bl DestroySprite
-_080478D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080478D8: .4byte gSprites
- thumb_func_end oamc_804BEB4
-
- thumb_func_start sub_80478DC
-sub_80478DC: @ 80478DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08047938 @ =gUnknown_0820A92C
- lsls r6, r4, 3
- adds r5, r6, r0
- ldrh r0, [r5, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _0804793C @ =0xffff0000
- cmp r0, r1
- bne _08047904
- adds r0, r5, 0
- bl LoadCompressedObjectPic
- ldr r0, _08047940 @ =gUnknown_0820A98C
- adds r0, r6, r0
- bl LoadCompressedObjectPalette
-_08047904:
- cmp r4, 0x6
- beq _08047930
- cmp r4, 0x6
- blt _08047914
- cmp r4, 0xB
- bgt _08047914
- cmp r4, 0xA
- bge _08047930
-_08047914:
- ldr r1, _08047938 @ =gUnknown_0820A92C
- lsls r0, r4, 3
- adds r0, r1
- ldrh r0, [r0, 0x6]
- bl GetSpriteTileStartByTag
- adds r1, r0, 0
- lsls r1, 16
- ldr r0, _08047944 @ =gUnknown_08D030D0
- lsrs r1, 11
- ldr r2, _08047948 @ =0x06010100
- adds r1, r2
- bl LZDecompressVram
-_08047930:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047938: .4byte gUnknown_0820A92C
-_0804793C: .4byte 0xffff0000
-_08047940: .4byte gUnknown_0820A98C
-_08047944: .4byte gUnknown_08D030D0
-_08047948: .4byte 0x06010100
- thumb_func_end sub_80478DC
-
- thumb_func_start sub_804794C
-sub_804794C: @ 804794C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- ldr r0, _08047970 @ =gUnknown_0820A92C
- lsrs r4, 21
- adds r0, r4, r0
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldr r0, _08047974 @ =gUnknown_0820A98C
- adds r4, r0
- ldrh r0, [r4, 0x4]
- bl FreeSpritePaletteByTag
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08047970: .4byte gUnknown_0820A92C
-_08047974: .4byte gUnknown_0820A98C
- thumb_func_end sub_804794C
-
- thumb_func_start sub_8047978
-sub_8047978: @ 8047978
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080479A4
- ldr r1, _0804799C @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080479A0 @ =gEnemyParty
- b _080479B2
- .align 2, 0
-_0804799C: .4byte gUnknown_02024A6A
-_080479A0: .4byte gEnemyParty
-_080479A4:
- ldr r1, _080479C4 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080479C8 @ =gPlayerParty
-_080479B2:
- adds r0, r1
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080479C4: .4byte gUnknown_02024A6A
-_080479C8: .4byte gPlayerParty
- thumb_func_end sub_8047978
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8065394.s b/asm/rom_8065394.s
deleted file mode 100644
index fd88d6ece..000000000
--- a/asm/rom_8065394.s
+++ /dev/null
@@ -1,2517 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8067EEC
-sub_8067EEC: @ 8067EEC
- push {r4,r5,lr}
- movs r1, 0x2
- negs r1, r1
- movs r3, 0x3
- negs r3, r3
- movs r4, 0x5
- negs r4, r4
- movs r5, 0x9
- negs r5, r5
- movs r2, 0
- strb r2, [r0]
- ldrb r2, [r0, 0x1]
- ands r1, r2
- ands r1, r3
- ands r1, r4
- ands r1, r5
- strb r1, [r0, 0x1]
- movs r1, 0
- strb r1, [r0, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8067EEC
-
- thumb_func_start process_overworld_input
-process_overworld_input: @ 8067F18
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, _08067FE8 @ =gPlayerAvatar
- ldrb r6, [r0, 0x3]
- ldrb r0, [r0, 0x2]
- mov r9, r0
- bl cur_mapdata_block_role_at_player_pos
- lsls r0, 24
- lsrs r0, 24
- bl sub_8056FFC
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r6, 0x2
- bne _08067F4C
- cmp r7, 0
- beq _08067F50
-_08067F4C:
- cmp r6, 0
- bne _08067FB2
-_08067F50:
- bl sub_80E6034
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _08067F9C
- movs r0, 0x8
- ands r0, r5
- cmp r0, 0
- beq _08067F6C
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
-_08067F6C:
- movs r0, 0x4
- ands r0, r5
- cmp r0, 0
- beq _08067F7C
- ldrb r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4]
-_08067F7C:
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _08067F8C
- ldrb r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
-_08067F8C:
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _08067F9C
- ldrb r0, [r4]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4]
-_08067F9C:
- movs r0, 0xF0
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08067FB2
- ldrb r0, [r4]
- movs r1, 0x10
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4]
-_08067FB2:
- cmp r7, 0
- bne _08067FD8
- cmp r6, 0x2
- bne _08067FC8
- mov r0, r9
- cmp r0, 0x2
- bne _08067FC8
- ldrb r0, [r4]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4]
-_08067FC8:
- cmp r7, 0
- bne _08067FD8
- cmp r6, 0x2
- bne _08067FD8
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
-_08067FD8:
- movs r0, 0x40
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08067FEC
- movs r0, 0x2
- b _08068014
- .align 2, 0
-_08067FE8: .4byte gPlayerAvatar
-_08067FEC:
- movs r0, 0x80
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08067FFA
- movs r0, 0x1
- b _08068014
-_08067FFA:
- movs r0, 0x20
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08068008
- movs r0, 0x3
- b _08068014
-_08068008:
- movs r0, 0x10
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08068016
- movs r0, 0x4
-_08068014:
- strb r0, [r4, 0x2]
-_08068016:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end process_overworld_input
-
- thumb_func_start sub_8068024
-sub_8068024: @ 8068024
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r6, r0, 24
- mov r4, sp
- mov r0, sp
- bl player_get_pos_to_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r4, r0, 16
- bl CheckTrainers
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
- bl mapheader_run_first_tag2_script_list_match
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
- ldrb r1, [r5]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08068076
- bl sub_80687A4
- cmp r0, 0x1
- beq _08068150
-_08068076:
- ldrb r1, [r5]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08068098
- movs r0, 0x5
- bl sav12_xor_increment
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_80687E4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
-_08068098:
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080680B0
- adds r0, r4, 0
- bl is_it_battle_time_3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
-_080680B0:
- ldrb r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080680D2
- ldrb r0, [r5, 0x2]
- cmp r0, r6
- bne _080680D2
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl mapheader_run_first_tag2_script_list_match_conditionally
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
-_080680D2:
- mov r4, sp
- mov r0, sp
- bl player_get_next_pos_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08068108
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_80681F0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
-_08068108:
- ldrb r1, [r5]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0806812A
- ldrb r0, [r5, 0x2]
- cmp r0, r6
- bne _0806812A
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl map_warp_consider_2_to_inside
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
-_0806812A:
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806813C
- bl sub_8068770
- cmp r0, 0x1
- beq _08068150
-_0806813C:
- ldrb r1, [r5]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08068154
- movs r0, 0x6
- bl PlaySE
- bl sub_8071310
-_08068150:
- movs r0, 0x1
- b _08068166
-_08068154:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08068164
- bl sub_80A6D1C
- cmp r0, 0x1
- beq _08068150
-_08068164:
- movs r0, 0
-_08068166:
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8068024
-
- thumb_func_start player_get_pos_to_and_height
-player_get_pos_to_and_height: @ 8068170
- push {r4,lr}
- adds r4, r0, 0
- adds r1, r4, 0x2
- bl PlayerGetDestCoords
- bl PlayerGetZCoord
- strb r0, [r4, 0x4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end player_get_pos_to_and_height
-
- thumb_func_start player_get_next_pos_and_height
-player_get_next_pos_and_height: @ 8068188
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r1, r5, 0x2
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080681BA
- bl PlayerGetZCoord
-_080681BA:
- strb r0, [r5, 0x4]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end player_get_next_pos_and_height
-
- thumb_func_start cur_mapdata_block_role_at_player_pos
-cur_mapdata_block_role_at_player_pos: @ 80681C4
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end cur_mapdata_block_role_at_player_pos
-
- thumb_func_start sub_80681F0
-sub_80681F0: @ 80681F0
- push {r4,lr}
- lsls r2, 24
- lsrs r2, 24
- lsls r1, 24
- lsrs r1, 24
- bl TryGetScriptOnPressingA
- adds r4, r0, 0
- cmp r4, 0
- bne _08068208
- movs r0, 0
- b _08068234
-_08068208:
- ldr r0, _0806823C @ =gUnknown_0815281E
- cmp r4, r0
- beq _0806822C
- ldr r0, _08068240 @ =gUnknown_08152C39
- cmp r4, r0
- beq _0806822C
- ldr r0, _08068244 @ =gUnknown_0815F36C
- cmp r4, r0
- beq _0806822C
- ldr r0, _08068248 @ =gUnknown_0815F43A
- cmp r4, r0
- beq _0806822C
- ldr r0, _0806824C @ =gUnknown_081A0009
- cmp r4, r0
- beq _0806822C
- movs r0, 0x5
- bl PlaySE
-_0806822C:
- adds r0, r4, 0
- bl ScriptContext1_SetupScript
- movs r0, 0x1
-_08068234:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806823C: .4byte gUnknown_0815281E
-_08068240: .4byte gUnknown_08152C39
-_08068244: .4byte gUnknown_0815F36C
-_08068248: .4byte gUnknown_0815F43A
-_0806824C: .4byte gUnknown_081A0009
- thumb_func_end sub_80681F0
-
- thumb_func_start TryGetScriptOnPressingA
-TryGetScriptOnPressingA: @ 8068250
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r8, r5
- lsls r2, 24
- lsrs r4, r2, 24
- adds r7, r4, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8068364
- cmp r0, 0
- bne _0806829C
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl TryGetInvisibleMapObjectScript
- cmp r0, 0
- bne _0806829C
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8068500
- cmp r0, 0
- bne _0806829C
- adds r0, r6, 0
- mov r1, r8
- adds r2, r7, 0
- bl TryGetFieldMoveScript
- cmp r0, 0
- bne _0806829C
- movs r0, 0
-_0806829C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end TryGetScriptOnPressingA
-
- thumb_func_start sub_80682A8
-sub_80682A8: @ 80682A8
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r2, 24
- lsrs r6, r2, 24
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsCounter
- lsls r0, 24
- cmp r0, 0
- bne _080682D0
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- b _080682EE
-_080682D0:
- ldr r1, _08068314 @ =gUnknown_0821664C
- lsls r2, r6, 3
- adds r0, r2, r1
- ldr r3, [r0]
- ldrh r0, [r4]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- adds r1, 0x4
- adds r2, r1
- ldr r2, [r2]
- ldrh r1, [r4, 0x2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
-_080682EE:
- ldrb r2, [r4, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x10
- beq _0806830E
- ldr r1, _08068318 @ =gMapObjects
- lsls r2, r3, 3
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- adds r5, r1, 0
- cmp r0, 0xFF
- bne _0806831C
-_0806830E:
- movs r0, 0
- b _0806834E
- .align 2, 0
-_08068314: .4byte gUnknown_0821664C
-_08068318: .4byte gMapObjects
-_0806831C:
- movs r4, 0
- ldr r1, _08068354 @ =gLinkPlayerMapObjects
-_08068320:
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _0806832C
- ldrb r0, [r1, 0x2]
- cmp r0, r3
- beq _0806830E
-_0806832C:
- adds r1, 0x4
- adds r4, 0x1
- cmp r4, 0x3
- ble _08068320
- ldr r0, _08068358 @ =gSelectedMapObject
- strb r3, [r0]
- ldr r1, _0806835C @ =gScriptLastTalked
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x8]
- strh r0, [r1]
- ldr r0, _08068360 @ =gScriptFacing
- strh r6, [r0]
- adds r0, r3, 0
- bl GetFieldObjectScriptPointerByFieldObjectId
-_0806834E:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08068354: .4byte gLinkPlayerMapObjects
-_08068358: .4byte gSelectedMapObject
-_0806835C: .4byte gScriptLastTalked
-_08068360: .4byte gScriptFacing
- thumb_func_end sub_80682A8
-
- thumb_func_start sub_8068364
-sub_8068364: @ 8068364
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x10
- beq _08068392
- ldr r1, _080683E0 @ =gMapObjects
- lsls r2, r3, 3
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- cmp r0, 0xFF
- bne _080683E8
-_08068392:
- adds r0, r5, 0
- bl MetatileBehavior_IsCounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080683DC
- ldr r1, _080683E4 @ =gUnknown_0821664C
- lsls r2, r6, 3
- adds r0, r2, r1
- ldr r3, [r0]
- ldrh r0, [r4]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- adds r1, 0x4
- adds r2, r1
- ldr r2, [r2]
- ldrh r1, [r4, 0x2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
- ldrb r2, [r4, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x10
- beq _080683DC
- ldr r1, _080683E0 @ =gMapObjects
- lsls r2, r3, 3
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- cmp r0, 0xFF
- bne _080683E8
-_080683DC:
- movs r0, 0
- b _0806840C
- .align 2, 0
-_080683E0: .4byte gMapObjects
-_080683E4: .4byte gUnknown_0821664C
-_080683E8:
- ldr r0, _08068414 @ =gSelectedMapObject
- strb r3, [r0]
- ldr r4, _08068418 @ =gScriptLastTalked
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- strh r0, [r4]
- ldr r0, _0806841C @ =gScriptFacing
- strh r6, [r0]
- adds r0, r3, 0
- bl GetFieldObjectScriptPointerByFieldObjectId
- adds r1, r0, 0
- ldrb r0, [r4]
- bl GetRamScript
- adds r1, r0, 0
-_0806840C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08068414: .4byte gSelectedMapObject
-_08068418: .4byte gScriptLastTalked
-_0806841C: .4byte gScriptFacing
- thumb_func_end sub_8068364
-
- thumb_func_start TryGetInvisibleMapObjectScript
-TryGetInvisibleMapObjectScript: @ 8068420
- push {r4,r5,lr}
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r4, _08068450 @ =gMapHeader
- ldrh r1, [r0]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r0, 0x4]
- adds r0, r4, 0
- bl FindInvisibleMapObjectByPosition
- cmp r0, 0
- beq _08068494
- ldr r2, [r0, 0x8]
- cmp r2, 0
- bne _08068458
- ldr r0, _08068454 @ =gUnknown_081C6C02
- b _080684FA
- .align 2, 0
-_08068450: .4byte gMapHeader
-_08068454: .4byte gUnknown_081C6C02
-_08068458:
- ldrb r0, [r0, 0x5]
- cmp r0, 0x8
- bhi _080684F8
- lsls r0, 2
- ldr r1, _08068468 @ =_0806846C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08068468: .4byte _0806846C
- .align 2, 0
-_0806846C:
- .4byte _080684F8
- .4byte _08068490
- .4byte _08068498
- .4byte _0806849E
- .4byte _080684A4
- .4byte _080684AA
- .4byte _080684AA
- .4byte _080684AA
- .4byte _080684D8
-_08068490:
- cmp r5, 0x2
- beq _080684F8
-_08068494:
- movs r0, 0
- b _080684FA
-_08068498:
- cmp r5, 0x1
- beq _080684F8
- b _08068494
-_0806849E:
- cmp r5, 0x4
- beq _080684F8
- b _08068494
-_080684A4:
- cmp r5, 0x3
- beq _080684F8
- b _08068494
-_080684AA:
- ldr r1, _080684CC @ =gSpecialVar_0x8004
- lsrs r0, r2, 16
- movs r3, 0x96
- lsls r3, 2
- adds r0, r3
- strh r0, [r1]
- ldr r0, _080684D0 @ =gSpecialVar_0x8005
- strh r2, [r0]
- ldrh r0, [r1]
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068494
- ldr r0, _080684D4 @ =HiddenItemScript
- b _080684FA
- .align 2, 0
-_080684CC: .4byte gSpecialVar_0x8004
-_080684D0: .4byte gSpecialVar_0x8005
-_080684D4: .4byte HiddenItemScript
-_080684D8:
- cmp r5, 0x2
- bne _08068494
- ldr r0, _080684F0 @ =gSpecialVar_0x8004
- strh r2, [r0]
- bl sub_80BC050
- lsls r0, 24
- cmp r0, 0
- beq _08068494
- ldr r0, _080684F4 @ =gUnknown_081A2C51
- b _080684FA
- .align 2, 0
-_080684F0: .4byte gSpecialVar_0x8004
-_080684F4: .4byte gUnknown_081A2C51
-_080684F8:
- adds r0, r2, 0
-_080684FA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end TryGetInvisibleMapObjectScript
-
- thumb_func_start sub_8068500
-sub_8068500: @ 8068500
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r2, 0
- bl MetatileBehavior_IsPlayerFacingTVScreen
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068524
- ldr r0, _08068520 @ =Event_TV
- b _080686EE
- .align 2, 0
-_08068520: .4byte Event_TV
-_08068524:
- adds r0, r5, 0
- bl MetatileBehavior_IsPC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806853C
- ldr r0, _08068538 @ =gUnknown_081A0009
- b _080686EE
- .align 2, 0
-_08068538: .4byte gUnknown_081A0009
-_0806853C:
- adds r0, r5, 0
- bl is_tile_x8B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068554
- ldr r0, _08068550 @ =ClosedSootopolisGymDoorScript
- b _080686EE
- .align 2, 0
-_08068550: .4byte ClosedSootopolisGymDoorScript
-_08068554:
- adds r0, r5, 0
- bl is_tile_x84
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806856C
- ldr r0, _08068568 @ =gUnknown_081A4363
- b _080686EE
- .align 2, 0
-_08068568: .4byte gUnknown_081A4363
-_0806856C:
- adds r0, r5, 0
- bl is_tile_x87
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068584
- ldr r0, _08068580 @ =gUnknown_081C346A
- b _080686EE
- .align 2, 0
-_08068580: .4byte gUnknown_081C346A
-_08068584:
- adds r0, r5, 0
- bl is_tile_x8C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806859C
- ldr r0, _08068598 @ =gUnknown_081616E1
- b _080686EE
- .align 2, 0
-_08068598: .4byte gUnknown_081616E1
-_0806859C:
- adds r0, r5, 0
- bl is_tile_x85
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080685B4
- ldr r0, _080685B0 @ =Event_WorldMap
- b _080686EE
- .align 2, 0
-_080685B0: .4byte Event_WorldMap
-_080685B4:
- adds r0, r5, 0
- bl sub_805791C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080685CC
- ldr r0, _080685C8 @ =Event_RunningShoesManual
- b _080686EE
- .align 2, 0
-_080685C8: .4byte Event_RunningShoesManual
-_080685CC:
- adds r0, r5, 0
- bl sub_8057930
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080685E4
- ldr r0, _080685E0 @ =PictureBookShelfScript
- b _080686EE
- .align 2, 0
-_080685E0: .4byte PictureBookShelfScript
-_080685E4:
- adds r0, r5, 0
- bl sub_8057944
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080685FC
- ldr r0, _080685F8 @ =BookshelfScript
- b _080686EE
- .align 2, 0
-_080685F8: .4byte BookshelfScript
-_080685FC:
- adds r0, r5, 0
- bl sub_8057958
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068614
- ldr r0, _08068610 @ =PokemonCenterBookshelfScript
- b _080686EE
- .align 2, 0
-_08068610: .4byte PokemonCenterBookshelfScript
-_08068614:
- adds r0, r5, 0
- bl sub_805796C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806862C
- ldr r0, _08068628 @ =VaseScript
- b _080686EE
- .align 2, 0
-_08068628: .4byte VaseScript
-_0806862C:
- adds r0, r5, 0
- bl sub_8057980
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068644
- ldr r0, _08068640 @ =TrashCanScript
- b _080686EE
- .align 2, 0
-_08068640: .4byte TrashCanScript
-_08068644:
- adds r0, r5, 0
- bl sub_8057994
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806865C
- ldr r0, _08068658 @ =ShopShelfScript
- b _080686EE
- .align 2, 0
-_08068658: .4byte ShopShelfScript
-_0806865C:
- adds r0, r5, 0
- bl sub_80579A8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068674
- ldr r0, _08068670 @ =BlueprintScript
- b _080686EE
- .align 2, 0
-_08068670: .4byte BlueprintScript
-_08068674:
- movs r4, 0x4
- ldrsb r4, [r6, r4]
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080686EC
- adds r0, r5, 0
- bl sub_8057238
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080686A4
- ldr r0, _080686A0 @ =gUnknown_0815F36C
- b _080686EE
- .align 2, 0
-_080686A0: .4byte gUnknown_0815F36C
-_080686A4:
- adds r0, r5, 0
- bl sub_805724C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080686BC
- ldr r0, _080686B8 @ =gUnknown_0815F43A
- b _080686EE
- .align 2, 0
-_080686B8: .4byte gUnknown_0815F43A
-_080686BC:
- adds r0, r5, 0
- bl sub_8057364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080686D4
- ldr r0, _080686D0 @ =gUnknown_0815F523
- b _080686EE
- .align 2, 0
-_080686D0: .4byte gUnknown_0815F523
-_080686D4:
- adds r0, r5, 0
- bl sub_8057378
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080686EC
- ldr r0, _080686E8 @ =gUnknown_0815F528
- b _080686EE
- .align 2, 0
-_080686E8: .4byte gUnknown_0815F528
-_080686EC:
- movs r0, 0
-_080686EE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8068500
-
- thumb_func_start TryGetFieldMoveScript
-TryGetFieldMoveScript: @ 80686F4
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, _08068724 @ =0x0000080b
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806872C
- bl PartyHasMonWithSurf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806872C
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806872C
- ldr r0, _08068728 @ =UseSurfScript
- b _0806876A
- .align 2, 0
-_08068724: .4byte 0x0000080b
-_08068728: .4byte UseSurfScript
-_0806872C:
- adds r0, r4, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068768
- ldr r0, _08068758 @ =0x0000080e
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068760
- bl IsPlayerSurfingNorth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068760
- ldr r0, _0806875C @ =UseWaterfallScript
- b _0806876A
- .align 2, 0
-_08068758: .4byte 0x0000080e
-_0806875C: .4byte UseWaterfallScript
-_08068760:
- ldr r0, _08068764 @ =CannotUseWaterfallScript
- b _0806876A
- .align 2, 0
-_08068764: .4byte CannotUseWaterfallScript
-_08068768:
- movs r0, 0
-_0806876A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end TryGetFieldMoveScript
-
- thumb_func_start sub_8068770
-sub_8068770: @ 8068770
- push {lr}
- ldr r0, _08068794 @ =0x0000080d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0806879C
- bl sub_8068F18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0806879C
- ldr r0, _08068798 @ =UseDiveScript
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _0806879E
- .align 2, 0
-_08068794: .4byte 0x0000080d
-_08068798: .4byte UseDiveScript
-_0806879C:
- movs r0, 0
-_0806879E:
- pop {r1}
- bx r1
- thumb_func_end sub_8068770
-
- thumb_func_start sub_80687A4
-sub_80687A4: @ 80687A4
- push {lr}
- ldr r0, _080687D0 @ =0x0000080d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080687DC
- ldr r0, _080687D4 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _080687DC
- bl sub_8068F18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080687DC
- ldr r0, _080687D8 @ =UnderwaterUseDiveScript
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _080687DE
- .align 2, 0
-_080687D0: .4byte 0x0000080d
-_080687D4: .4byte gMapHeader
-_080687D8: .4byte UnderwaterUseDiveScript
-_080687DC:
- movs r0, 0
-_080687DE:
- pop {r1}
- bx r1
- thumb_func_end sub_80687A4
-
- thumb_func_start sub_80687E4
-sub_80687E4: @ 80687E4
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- bl mapheader_trigger_activate_at__run_now
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068834
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8068A64
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068834
- adds r0, r6, 0
- bl sub_8068870
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068834
- bl sub_8068894
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068834
- bl UpdateRepelCounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068834
- movs r0, 0
- b _08068836
-_08068834:
- movs r0, 0x1
-_08068836:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80687E4
-
- thumb_func_start mapheader_trigger_activate_at__run_now
-mapheader_trigger_activate_at__run_now: @ 806883C
- push {r4,lr}
- ldr r4, _08068864 @ =gMapHeader
- ldrh r1, [r0]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r0, 0x4]
- adds r0, r4, 0
- bl mapheader_trigger_activate_at
- cmp r0, 0
- beq _08068868
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _0806886A
- .align 2, 0
-_08068864: .4byte gMapHeader
-_08068868:
- movs r0, 0
-_0806886A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end mapheader_trigger_activate_at__run_now
-
- thumb_func_start sub_8068870
-sub_8068870: @ 8068870
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8057818
- lsls r0, 24
- cmp r0, 0
- bne _08068884
- movs r0, 0
- b _0806888C
-_08068884:
- ldr r0, _08068890 @ =GraniteCave_B1F_EventScript_1C6BC5
- bl ScriptContext1_SetupScript
- movs r0, 0x1
-_0806888C:
- pop {r1}
- bx r1
- .align 2, 0
-_08068890: .4byte GraniteCave_B1F_EventScript_1C6BC5
- thumb_func_end sub_8068870
-
- thumb_func_start sub_8068894
-sub_8068894: @ 8068894
- push {lr}
- bl sub_8082B78
- bl happiness_algorithm_step
- bl overworld_poison_step
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080688B4
- ldr r0, _080688B0 @ =gUnknown_081A14B8
- b _080688E8
- .align 2, 0
-_080688B0: .4byte gUnknown_081A14B8
-_080688B4:
- bl sub_80422A0
- lsls r0, 24
- cmp r0, 0
- beq _080688CC
- movs r0, 0xD
- bl sav12_xor_increment
- ldr r0, _080688C8 @ =Event_EggHatch
- b _080688E8
- .align 2, 0
-_080688C8: .4byte Event_EggHatch
-_080688CC:
- bl SafariZoneTakeStep
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080688EC
- movs r0, 0x1
- bl sub_810D9B0
- cmp r0, 0x1
- beq _080688E6
- movs r0, 0
- b _080688EE
-_080688E6:
- ldr r0, _080688F4 @ =gUnknown_0815FD0D
-_080688E8:
- bl ScriptContext1_SetupScript
-_080688EC:
- movs r0, 0x1
-_080688EE:
- pop {r1}
- bx r1
- .align 2, 0
-_080688F4: .4byte gUnknown_0815FD0D
- thumb_func_end sub_8068894
-
- thumb_func_start unref_sub_80688F8
-unref_sub_80688F8: @ 80688F8
- push {lr}
- ldr r0, _08068908 @ =0x0000402a
- movs r1, 0
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_08068908: .4byte 0x0000402a
- thumb_func_end unref_sub_80688F8
-
- thumb_func_start happiness_algorithm_step
-happiness_algorithm_step: @ 806890C
- push {r4,r5,lr}
- ldr r0, _08068940 @ =0x0000402a
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- ldrh r1, [r0]
- movs r2, 0x7F
- ands r1, r2
- strh r1, [r0]
- cmp r1, 0
- bne _0806893A
- ldr r5, _08068944 @ =gPlayerParty
- movs r4, 0x5
-_0806892A:
- adds r0, r5, 0
- movs r1, 0x5
- bl AdjustFriendship
- adds r5, 0x64
- subs r4, 0x1
- cmp r4, 0
- bge _0806892A
-_0806893A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08068940: .4byte 0x0000402a
-_08068944: .4byte gPlayerParty
- thumb_func_end happiness_algorithm_step
-
- thumb_func_start overworld_poison_timer_set
-overworld_poison_timer_set: @ 8068948
- push {lr}
- ldr r0, _08068958 @ =0x0000402b
- movs r1, 0
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_08068958: .4byte 0x0000402b
- thumb_func_end overworld_poison_timer_set
-
- thumb_func_start overworld_poison_step
-overworld_poison_step: @ 806895C
- push {lr}
- ldr r0, _08068994 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x9
- beq _0806899C
- ldr r0, _08068998 @ =0x0000402b
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- ldrh r1, [r0]
- movs r2, 0x3
- ands r1, r2
- strh r1, [r0]
- cmp r1, 0
- bne _0806899C
- bl overworld_poison
- cmp r0, 0x1
- beq _0806899C
- cmp r0, 0x1
- ble _0806899C
- cmp r0, 0x2
- bne _0806899C
- movs r0, 0x1
- b _0806899E
- .align 2, 0
-_08068994: .4byte gMapHeader
-_08068998: .4byte 0x0000402b
-_0806899C:
- movs r0, 0
-_0806899E:
- pop {r1}
- bx r1
- thumb_func_end overworld_poison_step
-
- thumb_func_start prev_quest_postbuffer_cursor_backup_reset
-prev_quest_postbuffer_cursor_backup_reset: @ 80689A4
- ldr r1, _080689AC @ =gUnknown_0202E8C0
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080689AC: .4byte gUnknown_0202E8C0
- thumb_func_end prev_quest_postbuffer_cursor_backup_reset
-
- thumb_func_start is_it_battle_time_3
-is_it_battle_time_3: @ 80689B0
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r4, 0
- ldr r6, _080689CC @ =gUnknown_0202E8C0
- ldrb r0, [r6]
- cmp r0, 0x3
- bhi _080689D4
- adds r0, 0x1
- strb r0, [r6]
- ldr r0, _080689D0 @ =gUnknown_0202E8C2
- strh r4, [r0]
- movs r0, 0
- b _080689F8
- .align 2, 0
-_080689CC: .4byte gUnknown_0202E8C0
-_080689D0: .4byte gUnknown_0202E8C2
-_080689D4:
- ldr r5, _080689EC @ =gUnknown_0202E8C2
- ldrh r1, [r5]
- adds r0, r4, 0
- bl StandardWildEncounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080689F0
- strh r4, [r5]
- movs r0, 0
- b _080689F8
- .align 2, 0
-_080689EC: .4byte gUnknown_0202E8C2
-_080689F0:
- movs r0, 0
- strb r0, [r6]
- strh r7, [r5]
- movs r0, 0x1
-_080689F8:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end is_it_battle_time_3
-
- thumb_func_start mapheader_run_first_tag2_script_list_match_conditionally
-mapheader_run_first_tag2_script_list_match_conditionally: @ 8068A00
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08068A54 @ =gMapHeader
- mov r8, r0
- adds r1, r7, 0
- bl map_warp_check_packed
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl is_non_stair_warp_tile
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068A58
- lsls r0, r6, 24
- asrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08068A58
- bl walkrun_find_lowest_active_bit_in_bitfield
- mov r0, r8
- adds r1, r4, 0
- adds r2, r7, 0
- bl sub_8068C30
- bl sub_8080E88
- movs r0, 0x1
- b _08068A5A
- .align 2, 0
-_08068A54: .4byte gMapHeader
-_08068A58:
- movs r0, 0
-_08068A5A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end mapheader_run_first_tag2_script_list_match_conditionally
-
- thumb_func_start sub_8068A64
-sub_8068A64: @ 8068A64
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r7, _08068ABC @ =gMapHeader
- adds r0, r7, 0
- adds r1, r6, 0
- bl map_warp_check_packed
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08068B28
- adds r0, r5, 0
- bl sub_8068B30
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068B28
- bl walkrun_find_lowest_active_bit_in_bitfield
- adds r0, r7, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_8068C30
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsEscalator
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068AC0
- adds r0, r4, 0
- bl sub_8080F2C
- movs r0, 0x1
- b _08068B2A
- .align 2, 0
-_08068ABC: .4byte gMapHeader
-_08068AC0:
- adds r0, r4, 0
- bl sub_8057798
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068AD6
- bl sub_8080F48
- movs r0, 0x1
- b _08068B2A
-_08068AD6:
- adds r0, r4, 0
- bl is_role_x68
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068AEC
- bl sub_8080F58
- movs r0, 0x1
- b _08068B2A
-_08068AEC:
- adds r0, r4, 0
- bl MetatileBehavior_IsAquaHideoutWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068B02
- bl sub_8080F68
- movs r0, 0x1
- b _08068B2A
-_08068B02:
- adds r0, r4, 0
- bl sub_8057804
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068B20
- ldr r0, _08068B1C @ =gUnknown_081C6BDE
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _08068B2A
- .align 2, 0
-_08068B1C: .4byte gUnknown_081C6BDE
-_08068B20:
- bl sub_8080E88
- movs r0, 0x1
- b _08068B2A
-_08068B28:
- movs r0, 0
-_08068B2A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8068A64
-
- thumb_func_start sub_8068B30
-sub_8068B30: @ 8068B30
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl is_tile_x69_2_warp_door
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl MetatileBehavior_IsLadder
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl MetatileBehavior_IsEscalator
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl sub_8056F08
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl sub_8057798
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl is_role_x68
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl MetatileBehavior_IsAquaHideoutWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl sub_8057804
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- movs r0, 0
- b _08068BAC
-_08068BAA:
- movs r0, 0x1
-_08068BAC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8068B30
-
- thumb_func_start is_non_stair_warp_tile
-is_non_stair_warp_tile: @ 8068BB4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x2
- beq _08068BD8
- cmp r1, 0x2
- bgt _08068BCE
- cmp r1, 0x1
- beq _08068BE2
- b _08068C04
-_08068BCE:
- cmp r2, 0x3
- beq _08068BEC
- cmp r2, 0x4
- beq _08068BF6
- b _08068C04
-_08068BD8:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsNorthArrowWarp
- b _08068BFE
-_08068BE2:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSouthArrowWarp
- b _08068BFE
-_08068BEC:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsWestArrowWarp
- b _08068BFE
-_08068BF6:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsEastArrowWarp
-_08068BFE:
- lsls r0, 24
- lsrs r0, 24
- b _08068C06
-_08068C04:
- movs r0, 0
-_08068C06:
- pop {r1}
- bx r1
- thumb_func_end is_non_stair_warp_tile
-
- thumb_func_start map_warp_check_packed
-map_warp_check_packed: @ 8068C0C
- push {lr}
- adds r3, r1, 0
- ldrh r1, [r3]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r3, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r3, 0x4]
- bl map_warp_check
- lsls r0, 24
- asrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end map_warp_check_packed
-
- thumb_func_start sub_8068C30
-sub_8068C30: @ 8068C30
- push {r4-r7,lr}
- adds r5, r2, 0
- ldr r0, _08068C50 @ =gMapHeader
- ldr r0, [r0, 0x4]
- lsls r1, 24
- asrs r7, r1, 24
- lsls r6, r7, 3
- ldr r0, [r0, 0x8]
- adds r4, r0, r6
- ldrb r0, [r4, 0x6]
- cmp r0, 0x7F
- bne _08068C54
- ldrb r0, [r4, 0x5]
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- b _08068C9E
- .align 2, 0
-_08068C50: .4byte gMapHeader
-_08068C54:
- movs r0, 0x7
- ldrsb r0, [r4, r0]
- movs r1, 0x6
- ldrsb r1, [r4, r1]
- movs r2, 0x5
- ldrsb r2, [r4, r2]
- bl warp1_set_2
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl sub_80535C4
- ldrb r0, [r4, 0x7]
- ldrb r1, [r4, 0x6]
- bl get_mapheader_by_bank_and_number
- ldr r1, [r0, 0x4]
- ldrb r0, [r4, 0x5]
- ldr r1, [r1, 0x8]
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x6]
- cmp r0, 0x7F
- bne _08068C9E
- adds r0, r6, r1
- ldrb r0, [r0, 0x5]
- ldr r2, _08068CA4 @ =gSaveBlock1
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- ldrb r2, [r2, 0x5]
- lsls r2, 24
- asrs r2, 24
- adds r3, r7, 0
- bl saved_warp2_set
-_08068C9E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08068CA4: .4byte gSaveBlock1
- thumb_func_end sub_8068C30
-
- thumb_func_start map_warp_consider_2_to_inside
-map_warp_consider_2_to_inside: @ 8068CA8
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r0, r1, 16
- adds r7, r0, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0x2
- bne _08068D2C
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80571C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068CE0
- ldr r0, _08068CDC @ =gMapHeader
- ldr r1, [r0, 0x4]
- adds r0, r5, 0
- bl sub_80BC038
- movs r0, 0x1
- b _08068D2E
- .align 2, 0
-_08068CDC: .4byte gMapHeader
-_08068CE0:
- adds r0, r4, 0
- bl is_tile_x69_2_warp_door
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068D2C
- ldr r6, _08068D28 @ =gMapHeader
- adds r0, r6, 0
- adds r1, r5, 0
- bl map_warp_check_packed
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08068D2C
- adds r0, r7, 0
- bl sub_8068B30
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068D2C
- bl walkrun_find_lowest_active_bit_in_bitfield
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8068C30
- bl sub_8080EF0
- movs r0, 0x1
- b _08068D2E
- .align 2, 0
-_08068D28: .4byte gMapHeader
-_08068D2C:
- movs r0, 0
-_08068D2E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end map_warp_consider_2_to_inside
-
- thumb_func_start map_warp_check
-map_warp_check: @ 8068D34
- push {r4-r6,lr}
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- lsls r3, 24
- lsrs r4, r3, 24
- ldr r0, [r0, 0x4]
- ldr r1, [r0, 0x8]
- ldrb r3, [r0, 0x1]
- movs r2, 0
- cmp r2, r3
- bge _08068D72
-_08068D4E:
- ldrh r0, [r1]
- cmp r0, r6
- bne _08068D6A
- ldrh r0, [r1, 0x2]
- cmp r0, r5
- bne _08068D6A
- ldrb r0, [r1, 0x4]
- cmp r0, r4
- beq _08068D64
- cmp r0, 0
- bne _08068D6A
-_08068D64:
- lsls r0, r2, 24
- asrs r0, 24
- b _08068D76
-_08068D6A:
- adds r2, 0x1
- adds r1, 0x8
- cmp r2, r3
- blt _08068D4E
-_08068D72:
- movs r0, 0x1
- negs r0, r0
-_08068D76:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end map_warp_check
-
- thumb_func_start trigger_activate
-trigger_activate: @ 8068D7C
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _08068DB2
- ldr r1, [r4, 0xC]
- cmp r1, 0
- bne _08068D92
- ldrb r0, [r4, 0x6]
- bl sub_8069408
- b _08068DB2
-_08068D92:
- ldrh r0, [r4, 0x6]
- cmp r0, 0
- beq _08068DAC
- ldrh r0, [r4, 0x6]
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r4, 0x8]
- cmp r0, r1
- bne _08068DB2
- ldr r0, [r4, 0xC]
- b _08068DB4
-_08068DAC:
- adds r0, r1, 0
- bl ScriptContext2_RunNewScript
-_08068DB2:
- movs r0, 0
-_08068DB4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end trigger_activate
-
- thumb_func_start mapheader_trigger_activate_at
-mapheader_trigger_activate_at: @ 8068DBC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- ldr r0, [r0, 0x4]
- ldr r1, [r0, 0xC]
- ldrb r7, [r0, 0x2]
- movs r6, 0
- cmp r6, r7
- bge _08068E12
- adds r5, r1, 0
- adds r4, r5, 0
-_08068DE8:
- ldrh r0, [r4]
- cmp r0, r10
- bne _08068E08
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bne _08068E08
- ldrb r0, [r4, 0x4]
- cmp r0, r8
- beq _08068DFE
- cmp r0, 0
- bne _08068E08
-_08068DFE:
- adds r0, r5, 0
- bl trigger_activate
- cmp r0, 0
- bne _08068E14
-_08068E08:
- adds r4, 0x10
- adds r5, 0x10
- adds r6, 0x1
- cmp r6, r7
- blt _08068DE8
-_08068E12:
- movs r0, 0
-_08068E14:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end mapheader_trigger_activate_at
-
- thumb_func_start sub_8068E24
-sub_8068E24: @ 8068E24
- push {r4,lr}
- ldr r4, _08068E48 @ =gMapHeader
- ldrh r1, [r0]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r0, 0x4]
- adds r0, r4, 0
- bl mapheader_trigger_activate_at
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08068E48: .4byte gMapHeader
- thumb_func_end sub_8068E24
-
- thumb_func_start FindInvisibleMapObjectByPosition
-FindInvisibleMapObjectByPosition: @ 8068E4C
- push {r4-r7,lr}
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, [r0, 0x4]
- ldr r4, [r0, 0x10]
- ldrb r3, [r0, 0x3]
- movs r2, 0
- cmp r2, r3
- bcs _08068E92
-_08068E66:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r4
- ldrh r0, [r1]
- cmp r0, r7
- bne _08068E88
- ldrh r0, [r1, 0x2]
- cmp r0, r6
- bne _08068E88
- ldrb r0, [r1, 0x4]
- cmp r0, r5
- beq _08068E84
- cmp r0, 0
- bne _08068E88
-_08068E84:
- adds r0, r1, 0
- b _08068E94
-_08068E88:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r3
- bcc _08068E66
-_08068E92:
- movs r0, 0
-_08068E94:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end FindInvisibleMapObjectByPosition
-
- thumb_func_start dive_warp
-dive_warp: @ 8068E9C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r0, _08068ED0 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _08068ED4
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_805750C
- lsls r0, 24
- cmp r0, 0
- bne _08068ED4
- ldrh r0, [r4]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4, 0x2]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl sub_80538B0
- b _08068EF8
- .align 2, 0
-_08068ED0: .4byte gMapHeader
-_08068ED4:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_80574EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068F10
- ldrh r0, [r4]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4, 0x2]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl sub_80538D0
-_08068EF8:
- lsls r0, 24
- cmp r0, 0
- beq _08068F10
- bl walkrun_find_lowest_active_bit_in_bitfield
- bl sp13E_warp_to_last_warp
- movs r0, 0xE9
- bl PlaySE
- movs r0, 0x1
- b _08068F12
-_08068F10:
- movs r0, 0
-_08068F12:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end dive_warp
-
- thumb_func_start sub_8068F18
-sub_8068F18: @ 8068F18
- push {r4,r5,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08068F70 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _08068F74
- adds r0, r5, 0
- bl sub_805750C
- lsls r0, 24
- cmp r0, 0
- bne _08068F74
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl sub_80538B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068FA4
- movs r0, 0x1
- b _08068FA6
- .align 2, 0
-_08068F70: .4byte gMapHeader
-_08068F74:
- adds r0, r5, 0
- bl sub_80574EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068FA4
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl sub_80538D0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068FA4
- movs r0, 0x2
- b _08068FA6
-_08068FA4:
- movs r0, 0
-_08068FA6:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8068F18
-
- thumb_func_start GetFieldObjectScriptPointerForComparison
-GetFieldObjectScriptPointerForComparison: @ 8068FB0
- push {r4,r5,lr}
- sub sp, 0x8
- bl player_get_direction_upper_nybble
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r5, sp
- mov r0, sp
- bl player_get_next_pos_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- adds r2, r4, 0
- bl sub_8068364
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectScriptPointerForComparison
-
- thumb_func_start sub_8068FEC
-sub_8068FEC: @ 8068FEC
- push {r4,lr}
- sub sp, 0x8
- bl player_get_direction_upper_nybble
- mov r4, sp
- mov r0, sp
- bl player_get_pos_to_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- ldr r4, _0806902C @ =gMapHeader
- adds r0, r4, 0
- mov r1, sp
- bl map_warp_check_packed
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r4, 0
- mov r2, sp
- bl sub_8068C30
- movs r0, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806902C: .4byte gMapHeader
- thumb_func_end sub_8068FEC
-
- thumb_func_start sub_8069030
-sub_8069030: @ 8069030
- push {r4,lr}
- ldr r4, _08069064 @ =gSaveBlock1 + 0x1220
- movs r2, 0x90
- lsls r2, 1
- adds r0, r4, 0
- movs r1, 0
- bl memset
- movs r0, 0x90
- lsls r0, 1
- adds r4, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r4, 0
- movs r1, 0
- bl memset
- ldr r0, _08069068 @ =gUnknown_0202E8E2
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08069064: .4byte gSaveBlock1 + 0x1220
-_08069068: .4byte gUnknown_0202E8E2
- thumb_func_end sub_8069030
-
- thumb_func_start sub_806906C
-sub_806906C: @ 806906C
- push {lr}
- ldr r0, _080690A0 @ =gSaveBlock1 + 0x1220
- movs r1, 0
- str r1, [r0]
- movs r1, 0x90
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- movs r2, 0x20
- bl memset
- ldr r0, _080690A4 @ =0x0000084d
- bl FlagReset
- ldr r0, _080690A8 @ =0x0000084e
- bl FlagReset
- ldr r0, _080690AC @ =0x00000829
- bl FlagReset
- ldr r0, _080690B0 @ =0x00000861
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080690A0: .4byte gSaveBlock1 + 0x1220
-_080690A4: .4byte 0x0000084d
-_080690A8: .4byte 0x0000084e
-_080690AC: .4byte 0x00000829
-_080690B0: .4byte 0x00000861
- thumb_func_end sub_806906C
-
- thumb_func_start sub_80690B4
-sub_80690B4: @ 80690B4
- push {lr}
- ldr r0, _080690C4 @ =gSaveBlock1 + 0x1338
- movs r1, 0
- movs r2, 0x8
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080690C4: .4byte gSaveBlock1 + 0x1338
- thumb_func_end sub_80690B4
-
- thumb_func_start sub_80690C8
-sub_80690C8: @ 80690C8
- push {lr}
- ldr r0, _080690E4 @ =0x00004046
- bl GetVarPointer
- ldr r2, _080690E8 @ =gSaveBlock2
- movs r1, 0
- strb r1, [r2, 0x1A]
- strh r1, [r0]
- ldr r0, _080690EC @ =0x00000836
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080690E4: .4byte 0x00004046
-_080690E8: .4byte gSaveBlock2
-_080690EC: .4byte 0x00000836
- thumb_func_end sub_80690C8
-
- thumb_func_start sub_80690F0
-sub_80690F0: @ 80690F0
- push {r4,r5,lr}
- ldr r0, _0806911C @ =0x00004046
- bl GetVarPointer
- ldr r4, _08069120 @ =gSaveBlock2
- movs r5, 0
- movs r1, 0xDA
- strb r1, [r4, 0x1A]
- ldr r2, _08069124 @ =0x00000302
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _08069128 @ =0x00000836
- bl FlagSet
- movs r0, 0x1
- strb r0, [r4, 0x19]
- strb r5, [r4, 0x18]
- bl sub_808C0A0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806911C: .4byte 0x00004046
-_08069120: .4byte gSaveBlock2
-_08069124: .4byte 0x00000302
-_08069128: .4byte 0x00000836
- thumb_func_end sub_80690F0
-
- thumb_func_start IsNationalPokedex
-IsNationalPokedex: @ 806912C
- push {lr}
- ldr r0, _08069154 @ =gSaveBlock2
- ldrb r0, [r0, 0x1A]
- cmp r0, 0xDA
- bne _08069164
- ldr r0, _08069158 @ =0x00004046
- bl VarGet
- lsls r0, 16
- ldr r1, _0806915C @ =0x03020000
- cmp r0, r1
- bne _08069164
- ldr r0, _08069160 @ =0x00000836
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08069164
- movs r0, 0x1
- b _08069166
- .align 2, 0
-_08069154: .4byte gSaveBlock2
-_08069158: .4byte 0x00004046
-_0806915C: .4byte 0x03020000
-_08069160: .4byte 0x00000836
-_08069164:
- movs r0, 0
-_08069166:
- pop {r1}
- bx r1
- thumb_func_end IsNationalPokedex
-
- thumb_func_start unref_sub_806916C
-unref_sub_806916C: @ 806916C
- push {lr}
- ldr r0, _08069178 @ =0x0000084c
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_08069178: .4byte 0x0000084c
- thumb_func_end unref_sub_806916C
-
- thumb_func_start unref_sub_806917C
-unref_sub_806917C: @ 806917C
- push {lr}
- ldr r0, _08069188 @ =0x0000084c
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_08069188: .4byte 0x0000084c
- thumb_func_end unref_sub_806917C
-
- thumb_func_start IsMysteryGiftAvailable
-IsMysteryGiftAvailable: @ 806918C
- push {lr}
- ldr r0, _0806919C @ =0x0000084c
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806919C: .4byte 0x0000084c
- thumb_func_end IsMysteryGiftAvailable
-
- thumb_func_start sub_80691A0
-sub_80691A0: @ 80691A0
- push {lr}
- ldr r0, _080691B4 @ =0x0000402c
- movs r1, 0
- bl VarSet
- ldr r0, _080691B8 @ =0x00000862
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080691B4: .4byte 0x0000402c
-_080691B8: .4byte 0x00000862
- thumb_func_end sub_80691A0
-
- thumb_func_start sub_80691BC
-sub_80691BC: @ 80691BC
- push {lr}
- ldr r0, _080691D4 @ =0x0000402c
- movs r1, 0x92
- lsls r1, 4
- bl VarSet
- ldr r0, _080691D8 @ =0x00000862
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_080691D4: .4byte 0x0000402c
-_080691D8: .4byte 0x00000862
- thumb_func_end sub_80691BC
-
- thumb_func_start sub_80691DC
-sub_80691DC: @ 80691DC
- push {lr}
- ldr r0, _08069200 @ =0x00000862
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08069208
- ldr r0, _08069204 @ =0x0000402c
- bl VarGet
- lsls r0, 16
- movs r1, 0x92
- lsls r1, 20
- cmp r0, r1
- bne _08069208
- movs r0, 0x1
- b _0806920A
- .align 2, 0
-_08069200: .4byte 0x00000862
-_08069204: .4byte 0x0000402c
-_08069208:
- movs r0, 0
-_0806920A:
- pop {r1}
- bx r1
- thumb_func_end sub_80691DC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_806D7F8.s b/asm/rom_806D7F8.s
deleted file mode 100644
index 8f95428c3..000000000
--- a/asm/rom_806D7F8.s
+++ /dev/null
@@ -1,6917 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_806D7F8
-sub_806D7F8: @ 806D7F8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsls r2, 16
- lsrs r5, r1, 16
- asrs r1, 16
- lsrs r4, r2, 16
- asrs r2, 16
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- cmp r5, r4
- beq _0806D830
- movs r2, 0x1
- cmp r0, 0x3
- beq _0806D830
- movs r2, 0x2
- cmp r0, 0x2
- beq _0806D830
- movs r2, 0x4
- cmp r0, 0x1
- bne _0806D830
- movs r2, 0x3
-_0806D830:
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, _0806D848 @ =gSprites
- adds r0, r1
- adds r1, r2, 0
- bl sub_809D824
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D848: .4byte gSprites
- thumb_func_end sub_806D7F8
-
- thumb_func_start sub_806D84C
-sub_806D84C: @ 806D84C
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_806D7F8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806D84C
-
- thumb_func_start sub_806D880
-sub_806D880: @ 806D880
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806D904 @ =gUnknown_08376678
- lsls r1, r5, 2
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
- mov r9, r0
- ldrb r1, [r1, 0x1]
- mov r10, r1
- mov r0, r8
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0
- bl GetMonData
- ldr r1, _0806D908 @ =sub_809D62C
- movs r2, 0x5
- str r2, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r2, r9
- mov r3, r10
- bl sub_809D2FC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806DE50
- adds r0, r4, 0
- mov r1, r8
- bl sub_806D84C
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D904: .4byte gUnknown_08376678
-_0806D908: .4byte sub_809D62C
- thumb_func_end sub_806D880
-
- thumb_func_start sub_806D90C
-sub_806D90C: @ 806D90C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- mov r8, r6
- lsls r1, 24
- lsrs r5, r1, 24
- adds r7, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806D95A
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806D946
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x2
- adds r3, r4, 0
- bl sub_806D880
- b _0806D95A
-_0806D946:
- bl battle_type_is_double
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- adds r1, r7, 0
- adds r3, r4, 0
- bl sub_806D880
-_0806D95A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806D90C
-
- thumb_func_start unref_sub_806D964
-unref_sub_806D964: @ 806D964
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _0806D986
-_0806D96E:
- movs r0, 0x64
- adds r2, r4, 0
- muls r2, r0
- ldr r0, _0806D994 @ =gPlayerParty
- adds r2, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_806D90C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0806D986:
- ldr r0, _0806D998 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _0806D96E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D994: .4byte gPlayerParty
-_0806D998: .4byte gPlayerPartyCount
- thumb_func_end unref_sub_806D964
-
- thumb_func_start sub_806D99C
-sub_806D99C: @ 806D99C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806DA04 @ =gUnknown_08376678
- lsls r1, r5, 2
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r2, [r1]
- ldrb r3, [r1, 0x1]
- mov r1, r8
- ldrh r0, [r1]
- ldr r1, _0806DA08 @ =sub_809D62C
- movs r4, 0x5
- str r4, [sp]
- mov r7, r8
- ldr r4, [r7, 0x18]
- str r4, [sp, 0x4]
- bl sub_809D2FC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806DE50
- ldrh r1, [r7, 0x10]
- ldrh r2, [r7, 0x12]
- adds r0, r4, 0
- bl sub_806D7F8
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA04: .4byte gUnknown_08376678
-_0806DA08: .4byte sub_809D62C
- thumb_func_end sub_806D99C
-
- thumb_func_start sub_806DA0C
-sub_806DA0C: @ 806DA0C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809D638
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0806DA32
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806DA30
- ldr r0, _0806DA2C @ =0x0000fffd
- strh r0, [r4, 0x26]
- b _0806DA32
- .align 2, 0
-_0806DA2C: .4byte 0x0000fffd
-_0806DA30:
- strh r1, [r4, 0x26]
-_0806DA32:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806DA0C
-
- thumb_func_start sub_806DA38
-sub_806DA38: @ 806DA38
- push {lr}
- bl sub_809D638
- pop {r0}
- bx r0
- thumb_func_end sub_806DA38
-
- thumb_func_start sub_806DA44
-sub_806DA44: @ 806DA44
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r1, 0x5
- bhi _0806DA8E
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806DA7C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r2, r1, 2
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1, 0x26]
- strh r0, [r1, 0x2E]
- cmp r4, 0
- bne _0806DA84
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA80 @ =sub_806DA38
- b _0806DA8C
- .align 2, 0
-_0806DA7C: .4byte gSprites
-_0806DA80: .4byte sub_806DA38
-_0806DA84:
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA94 @ =sub_806DA0C
-_0806DA8C:
- str r1, [r0]
-_0806DA8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA94: .4byte sub_806DA0C
- thumb_func_end sub_806DA44
-
- thumb_func_start sub_806DA98
-sub_806DA98: @ 806DA98
- push {lr}
- ldr r0, _0806DAAC @ =gUnknown_083765DC
- bl LoadSpriteSheet
- ldr r0, _0806DAB0 @ =gUnknown_083765E4
- bl LoadSpritePalette
- pop {r0}
- bx r0
- .align 2, 0
-_0806DAAC: .4byte gUnknown_083765DC
-_0806DAB0: .4byte gUnknown_083765E4
- thumb_func_end sub_806DA98
-
- thumb_func_start sub_806DAB4
-sub_806DAB4: @ 806DAB4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0806DAE4 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _0806DAE8
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DB06
- .align 2, 0
-_0806DAE4: .4byte gSprites
-_0806DAE8:
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x26]
- ldrh r2, [r2, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
-_0806DB06:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806DAB4
-
- thumb_func_start sub_806DB0C
-sub_806DB0C: @ 806DB0C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r6, r0, 0
- mov r9, r1
- lsls r6, 24
- lsrs r6, 24
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _0806DB84 @ =gSprites
- mov r8, r0
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- add r0, r8
- adds r0, 0x43
- ldrb r3, [r0]
- ldr r0, _0806DB88 @ =gSpriteTemplate_837660C
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0xFA
- movs r2, 0xAA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- mov r0, r8
- adds r5, r4, r0
- movs r0, 0x4
- strh r0, [r5, 0x24]
- movs r0, 0xA
- strh r0, [r5, 0x26]
- movs r0, 0x1C
- add r8, r0
- add r4, r8
- ldr r0, _0806DB8C @ =sub_806DAB4
- str r0, [r4]
- strh r6, [r5, 0x3C]
- adds r0, r5, 0
- mov r1, r9
- bl StartSpriteAnim
- ldr r1, [r4]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DB84: .4byte gSprites
-_0806DB88: .4byte gSpriteTemplate_837660C
-_0806DB8C: .4byte sub_806DAB4
- thumb_func_end sub_806DB0C
-
- thumb_func_start sub_806DB90
-sub_806DB90: @ 806DB90
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0
- beq _0806DBA4
- cmp r2, 0x1
- beq _0806DBEC
- b _0806DC28
-_0806DBA4:
- movs r5, 0
- ldrb r0, [r6]
- cmp r5, r0
- bcs _0806DC28
-_0806DBAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0806DBE8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806DBD8
- adds r0, r7, r5
- ldrb r4, [r0]
- adds r0, r1, 0
- bl itemid_is_mail
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806DB0C
-_0806DBD8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r0, [r6]
- cmp r5, r0
- bcc _0806DBAC
- b _0806DC28
- .align 2, 0
-_0806DBE8: .4byte gPlayerParty
-_0806DBEC:
- movs r5, 0
- b _0806DC22
-_0806DBF0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0806DC30 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806DC1C
- adds r0, r5, r7
- ldrb r4, [r0, 0x6]
- adds r0, r1, 0
- bl itemid_is_mail
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806DB0C
-_0806DC1C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_0806DC22:
- ldrb r0, [r6, 0x1]
- cmp r5, r0
- bcc _0806DBF0
-_0806DC28:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DC30: .4byte gEnemyParty
- thumb_func_end sub_806DB90
-
- thumb_func_start sub_806DC34
-sub_806DC34: @ 806DC34
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r7, 0
- ldr r0, _0806DCC8 @ =gSprites
- mov r9, r0
- movs r1, 0x1C
- add r1, r9
- mov r10, r1
-_0806DC50:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0806DCCC @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806DCB0
- mov r0, r8
- adds r1, r7, 0
- bl sub_806DDA0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0806DCD0 @ =gSpriteTemplate_837660C
- movs r1, 0xFA
- movs r2, 0xAA
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- mov r1, r9
- adds r6, r4, r1
- movs r1, 0x4
- strh r1, [r6, 0x24]
- movs r1, 0xA
- strh r1, [r6, 0x26]
- strh r5, [r6, 0x3C]
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- add r1, r9
- strh r0, [r1, 0x3C]
- mov r0, r8
- adds r1, r7, 0
- bl sub_806DF60
- add r4, r10
- ldr r1, [r4]
- adds r0, r6, 0
- bl _call_via_r1
-_0806DCB0:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _0806DC50
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DCC8: .4byte gSprites
-_0806DCCC: .4byte gPlayerParty
-_0806DCD0: .4byte gSpriteTemplate_837660C
- thumb_func_end sub_806DC34
-
- thumb_func_start sub_806DCD4
-sub_806DCD4: @ 806DCD4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r7, r2, 16
- bl sub_806DDA0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0806DD2C @ =gSpriteTemplate_837660C
- movs r1, 0xFA
- movs r2, 0xAA
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0806DD30 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r1
- movs r0, 0x4
- strh r0, [r5, 0x24]
- movs r0, 0xA
- strh r0, [r5, 0x26]
- strh r4, [r5, 0x3C]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- strh r6, [r0, 0x3C]
- cmp r7, 0
- bne _0806DD34
- adds r0, r5, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DD5C
- .align 2, 0
-_0806DD2C: .4byte gSpriteTemplate_837660C
-_0806DD30: .4byte gSprites
-_0806DD34:
- adds r0, r7, 0
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806DD46
- adds r0, r5, 0
- movs r1, 0x1
- b _0806DD4A
-_0806DD46:
- adds r0, r5, 0
- movs r1, 0
-_0806DD4A:
- bl StartSpriteAnim
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0806DD5C:
- ldr r2, _0806DD78 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r1, r0, r1
- adds r0, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DD78: .4byte gSprites
- thumb_func_end sub_806DCD4
-
- thumb_func_start sub_806DD7C
-sub_806DD7C: @ 806DD7C
- ldrh r2, [r0, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806DD9C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x24]
- ldrh r3, [r1, 0x20]
- adds r2, r3
- strh r2, [r0, 0x20]
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_0806DD9C: .4byte gSprites
- thumb_func_end sub_806DD7C
-
- thumb_func_start sub_806DDA0
-sub_806DDA0: @ 806DDA0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, 0x5
- bhi _0806DE38
- lsls r0, 2
- ldr r1, _0806DDB8 @ =_0806DDBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806DDB8: .4byte _0806DDBC
- .align 2, 0
-_0806DDBC:
- .4byte _0806DE38
- .4byte _0806DDD4
- .4byte _0806DDE8
- .4byte _0806DDFC
- .4byte _0806DE10
- .4byte _0806DE24
-_0806DDD4:
- ldr r0, _0806DDE4 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- b _0806DE46
- .align 2, 0
-_0806DDE4: .4byte gTasks
-_0806DDE8:
- ldr r0, _0806DDF8 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- b _0806DE44
- .align 2, 0
-_0806DDF8: .4byte gTasks
-_0806DDFC:
- ldr r0, _0806DE0C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0xA]
- b _0806DE46
- .align 2, 0
-_0806DE0C: .4byte gTasks
-_0806DE10:
- ldr r0, _0806DE20 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- b _0806DE44
- .align 2, 0
-_0806DE20: .4byte gTasks
-_0806DE24:
- ldr r0, _0806DE34 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0xC]
- b _0806DE46
- .align 2, 0
-_0806DE34: .4byte gTasks
-_0806DE38:
- ldr r0, _0806DE4C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
-_0806DE44:
- lsrs r0, 8
-_0806DE46:
- pop {r1}
- bx r1
- .align 2, 0
-_0806DE4C: .4byte gTasks
- thumb_func_end sub_806DDA0
-
- thumb_func_start sub_806DE50
-sub_806DE50: @ 806DE50
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r0, 0x5
- bhi _0806DF24
- lsls r0, 2
- ldr r1, _0806DE6C @ =_0806DE70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806DE6C: .4byte _0806DE70
- .align 2, 0
-_0806DE70:
- .4byte _0806DE88
- .4byte _0806DEA0
- .4byte _0806DEC0
- .4byte _0806DED8
- .4byte _0806DEF8
- .4byte _0806DF10
-_0806DE88:
- ldr r1, _0806DE9C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0x8]
- b _0806DF24
- .align 2, 0
-_0806DE9C: .4byte gTasks
-_0806DEA0:
- ldr r0, _0806DEB8 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- ldr r0, _0806DEBC @ =0xffffff00
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0x8]
- b _0806DF24
- .align 2, 0
-_0806DEB8: .4byte gTasks
-_0806DEBC: .4byte 0xffffff00
-_0806DEC0:
- ldr r1, _0806DED4 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xA]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0xA]
- b _0806DF24
- .align 2, 0
-_0806DED4: .4byte gTasks
-_0806DED8:
- ldr r0, _0806DEF0 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- ldr r0, _0806DEF4 @ =0xffffff00
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0xA]
- b _0806DF24
- .align 2, 0
-_0806DEF0: .4byte gTasks
-_0806DEF4: .4byte 0xffffff00
-_0806DEF8:
- ldr r1, _0806DF0C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xC]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0xC]
- b _0806DF24
- .align 2, 0
-_0806DF0C: .4byte gTasks
-_0806DF10:
- ldr r0, _0806DF2C @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- ldr r0, _0806DF30 @ =0xffffff00
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0xC]
-_0806DF24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DF2C: .4byte gTasks
-_0806DF30: .4byte 0xffffff00
- thumb_func_end sub_806DE50
-
- thumb_func_start sub_806DF34
-sub_806DF34: @ 806DF34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806DF5C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806DF5C: .4byte gSprites
- thumb_func_end sub_806DF34
-
- thumb_func_start sub_806DF60
-sub_806DF60: @ 806DF60
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_806DF34
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _0806DFA4 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- cmp r0, 0
- bne _0806DFAC
- ldr r1, _0806DFA8 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DFF6
- .align 2, 0
-_0806DFA4: .4byte gPlayerParty
-_0806DFA8: .4byte gSprites
-_0806DFAC:
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806DFD8
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r0, _0806DFD4 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x1
- b _0806DFE6
- .align 2, 0
-_0806DFD4: .4byte gSprites
-_0806DFD8:
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- ldr r0, _0806DFFC @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
-_0806DFE6:
- bl StartSpriteAnim
- adds r4, 0x3E
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
-_0806DFF6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DFFC: .4byte gSprites
- thumb_func_end sub_806DF60
-
- thumb_func_start box_print
-box_print: @ 806E000
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E040 @ =gTileBuffer
- ldr r2, _0806E044 @ =0x01000100
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E048 @ =gWindowConfig_81E6CAC
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E04C @ =0x06014000
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x80
- bl CpuFastSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E040: .4byte gTileBuffer
-_0806E044: .4byte 0x01000100
-_0806E048: .4byte gWindowConfig_81E6CAC
-_0806E04C: .4byte 0x06014000
- thumb_func_end box_print
-
- thumb_func_start sub_806E050
-sub_806E050: @ 806E050
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r1, sp
- bl GetMonNickname
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl box_print
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E050
-
- thumb_func_start sub_806E07C
-sub_806E07C: @ 806E07C
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E0BC
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E0AA
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E050
- b _0806E0BC
-_0806E0AA:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E050
-_0806E0BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E07C
-
- thumb_func_start sub_806E0C4
-sub_806E0C4: @ 806E0C4
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E0E8 @ =gPlayerParty
-_0806E0CC:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E07C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E0CC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E0E8: .4byte gPlayerParty
- thumb_func_end sub_806E0C4
-
- thumb_func_start GetMonNickname
-GetMonNickname: @ 806E0EC
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetMonNickname
-
- thumb_func_start sub_806E104
-sub_806E104: @ 806E104
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _0806E15C @ =gUnknown_08376738
- lsrs r0, 22
- lsls r3, r1, 1
- adds r3, r1
- lsls r3, 3
- adds r0, r3
- adds r0, r4
- ldrb r1, [r0]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r0, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 19
- adds r1, r0
- lsls r1, 1
- ldr r0, _0806E160 @ =0x0600f000
- adds r4, r1, r0
- lsls r2, 26
- lsrs r2, 24
- movs r3, 0
- movs r0, 0xC6
- lsls r0, 1
- adds r2, r0
- ldr r0, _0806E164 @ =0xffffb000
- adds r5, r0, 0
-_0806E142:
- lsls r0, r3, 1
- adds r0, r4
- adds r1, r2, r3
- orrs r1, r5
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0806E142
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E15C: .4byte gUnknown_08376738
-_0806E160: .4byte 0x0600f000
-_0806E164: .4byte 0xffffb000
- thumb_func_end sub_806E104
-
- thumb_func_start sub_806E168
-sub_806E168: @ 806E168
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E17E
- movs r3, 0x2
- b _0806E186
-_0806E17E:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r3, r0, 24
-_0806E186:
- ldr r1, _0806E1C8 @ =gUnknown_08376738
- lsls r2, r4, 2
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r2, r0
- adds r2, r1
- ldrb r1, [r2]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r2, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 19
- adds r1, r0
- lsls r1, 1
- ldr r0, _0806E1CC @ =0x0600f000
- adds r1, r0
- movs r3, 0
- movs r2, 0
-_0806E1B0:
- lsls r0, r3, 1
- adds r0, r1
- strh r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0806E1B0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E1C8: .4byte gUnknown_08376738
-_0806E1CC: .4byte 0x0600f000
- thumb_func_end sub_806E168
-
- thumb_func_start sub_806E1D0
-sub_806E1D0: @ 806E1D0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 19
- adds r1, r2
- lsls r1, 1
- ldr r2, _0806E1F0 @ =0x0600f000
- adds r1, r2
- movs r2, 0x86
- lsls r2, 1
- adds r0, r2
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0806E1F0: .4byte 0x0600f000
- thumb_func_end sub_806E1D0
-
- thumb_func_start sub_806E1F4
-sub_806E1F4: @ 806E1F4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r3, _0806E278 @ =gUnknown_08376738
- lsls r2, r4, 2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r2, r3
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x40
- bl sub_806E1D0
- ldr r6, _0806E27C @ =gStringVar1
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x12
- strb r0, [r6, 0x1]
- movs r0, 0x8
- strb r0, [r6, 0x2]
- adds r0, r6, 0x3
- adds r1, r5, 0
- bl ConvertIntToDecimalString
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E280 @ =gUnknown_02039460
- ldr r2, _0806E284 @ =0x01000020
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E288 @ =gWindowConfig_81E6CAC
- ldr r2, _0806E28C @ =0xffffff00
- adds r1, r5, r2
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E290 @ =0x06014200
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x20
- bl CpuFastSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E278: .4byte gUnknown_08376738
-_0806E27C: .4byte gStringVar1
-_0806E280: .4byte gUnknown_02039460
-_0806E284: .4byte 0x01000020
-_0806E288: .4byte gWindowConfig_81E6CAC
-_0806E28C: .4byte 0xffffff00
-_0806E290: .4byte 0x06014200
- thumb_func_end sub_806E1F4
-
- thumb_func_start sub_806E294
-sub_806E294: @ 806E294
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x38
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E1F4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E294
-
- thumb_func_start sub_806E2C0
-sub_806E2C0: @ 806E2C0
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E32E
- adds r0, r5, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E32E
- adds r0, r5, 0
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E2FA
- movs r6, 0x2
- b _0806E302
-_0806E2FA:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r6, r0, 24
-_0806E302:
- cmp r4, 0
- beq _0806E31A
- cmp r4, 0x6
- beq _0806E31A
- subs r2, r4, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_806E104
- b _0806E324
-_0806E31A:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E294
-_0806E324:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E3C0
-_0806E32E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806E2C0
-
- thumb_func_start sub_806E334
-sub_806E334: @ 806E334
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E358 @ =gPlayerParty
-_0806E33C:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E2C0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E33C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E358: .4byte gPlayerParty
- thumb_func_end sub_806E334
-
- thumb_func_start sub_806E35C
-sub_806E35C: @ 806E35C
- push {r4-r7,lr}
- ldr r4, [sp, 0x14]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- adds r1, r4, 0
- bl sub_8040D8C
- cmp r0, 0
- bne _0806E3BA
- ldr r2, _0806E3A4 @ =gUnknown_08376738
- lsls r1, r6, 2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x3
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r7, 0
- beq _0806E3A8
- cmp r7, 0xFE
- beq _0806E3B2
- b _0806E3BA
- .align 2, 0
-_0806E3A4: .4byte gUnknown_08376738
-_0806E3A8:
- movs r0, 0x42
- adds r1, r3, 0
- bl sub_806E1D0
- b _0806E3BA
-_0806E3B2:
- movs r0, 0x44
- adds r1, r3, 0
- bl sub_806E1D0
-_0806E3BA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806E35C
-
- thumb_func_start sub_806E3C0
-sub_806E3C0: @ 806E3C0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- adds r6, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0806E41C @ =gStringVar1
- mov r9, r0
- adds r0, r5, 0
- mov r1, r9
- bl GetMonNickname
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl GetMonGender
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- str r0, [sp]
- adds r0, r4, 0
- adds r2, r6, 0
- mov r3, r8
- bl sub_806E35C
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E41C: .4byte gStringVar1
- thumb_func_end sub_806E3C0
-
- thumb_func_start sub_806E420
-sub_806E420: @ 806E420
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r1, r2, 0
- adds r5, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r2, _0806E48C @ =gStringVar1
- adds r0, r2, 0
- movs r2, 0xF
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r5, 0
- movs r2, 0x23
- movs r3, 0x1
- bl sub_8072C14
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E490 @ =gUnknown_02039460
- ldr r2, _0806E494 @ =0x01000040
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E498 @ =gWindowConfig_81E6CAC
- ldr r2, _0806E49C @ =0xffffff00
- adds r1, r5, r2
- ldr r2, _0806E48C @ =gStringVar1
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E4A0 @ =0x06014300
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x40
- bl CpuFastSet
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E48C: .4byte gStringVar1
-_0806E490: .4byte gUnknown_02039460
-_0806E494: .4byte 0x01000040
-_0806E498: .4byte gWindowConfig_81E6CAC
-_0806E49C: .4byte 0xffffff00
-_0806E4A0: .4byte 0x06014300
- thumb_func_end sub_806E420
-
- thumb_func_start sub_806E4A4
-sub_806E4A4: @ 806E4A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x3A
- bl GetMonData
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_806E420
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E4A4
-
- thumb_func_start sub_806E4E8
-sub_806E4E8: @ 806E4E8
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E534
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E534
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E522
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E4A4
- b _0806E534
-_0806E522:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E4A4
-_0806E534:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E4E8
-
- thumb_func_start sub_806E53C
-sub_806E53C: @ 806E53C
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E560 @ =gPlayerParty
-_0806E544:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E4E8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E544
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E560: .4byte gPlayerParty
- thumb_func_end sub_806E53C
-
- thumb_func_start unref_sub_806E564
-unref_sub_806E564: @ 806E564
- bx lr
- thumb_func_end unref_sub_806E564
-
- thumb_func_start unref_sub_806E568
-unref_sub_806E568: @ 806E568
- bx lr
- thumb_func_end unref_sub_806E568
-
- thumb_func_start nullsub_12
-nullsub_12: @ 806E56C
- bx lr
- thumb_func_end nullsub_12
-
- thumb_func_start nullsub_13
-nullsub_13: @ 806E570
- bx lr
- thumb_func_end nullsub_13
-
- thumb_func_start sub_806E574
-sub_806E574: @ 806E574
- push {r4-r6,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _0806E624 @ =0xffff8000
- str r0, [sp, 0x14]
- str r3, [sp]
- str r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- cmp r3, 0x2
- bls _0806E5BE
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5BE:
- cmp r3, 0x2
- bne _0806E5D2
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x5
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5D2:
- cmp r4, 0x1
- bhi _0806E5E6
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x6
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5E6:
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp, 0x10]
- ldr r2, _0806E628 @ =gUnknown_08376858
- lsls r1, r6, 2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldr r4, [r1]
- add r1, sp, 0x14
- mov r0, sp
- adds r2, r4, 0
- movs r3, 0
- bl sub_80460C8
- subs r4, 0x4
- ldr r1, _0806E62C @ =0x00003109
- adds r0, r1, 0
- strh r0, [r4]
- adds r1, 0x1
- adds r0, r1, 0
- strh r0, [r4, 0x2]
- adds r1, 0x1
- adds r0, r1, 0
- strh r0, [r4, 0x10]
- add sp, 0x18
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E624: .4byte 0xffff8000
-_0806E628: .4byte gUnknown_08376858
-_0806E62C: .4byte 0x00003109
- thumb_func_end sub_806E574
-
- thumb_func_start sub_806E630
-sub_806E630: @ 806E630
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x3A
- bl GetMonData
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_806E574
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E630
-
- thumb_func_start sub_806E674
-sub_806E674: @ 806E674
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0806E6C0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0806E6C0
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E6AE
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E630
- b _0806E6C0
-_0806E6AE:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E630
-_0806E6C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E674
-
- thumb_func_start sub_806E6C8
-sub_806E6C8: @ 806E6C8
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E6EC @ =gPlayerParty
-_0806E6D0:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E674
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E6D0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E6EC: .4byte gPlayerParty
- thumb_func_end sub_806E6C8
-
- thumb_func_start sub_806E6F0
-sub_806E6F0: @ 806E6F0
- push {r4,r5,lr}
- sub sp, 0x64
- adds r4, r0, 0
- adds r5, r1, 0
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E6F0
-
- thumb_func_start sub_806E720
-sub_806E720: @ 806E720
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 21
- adds r0, r3
- ldrb r4, [r0]
- lsls r4, 25
- movs r3, 0x80
- lsls r3, 18
- adds r4, r3
- lsrs r4, 24
- ldrb r0, [r0, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1E
- subs r3, r0
- strb r3, [r1]
- movs r0, 0x14
- subs r0, r4
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806E720
-
- thumb_func_start sub_806E750
-sub_806E750: @ 806E750
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- adds r5, r0, 0
- adds r4, r1, 0
- mov r9, r2
- adds r6, r3, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x9
- add r0, sp
- mov r8, r0
- adds r0, r5, 0
- add r1, sp, 0x8
- mov r2, r8
- adds r3, r4, 0
- bl sub_806E720
- add r0, sp, 0x8
- ldrb r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- lsls r5, 3
- adds r5, r4
- ldrb r2, [r5, 0x1]
- ldrb r3, [r5]
- mov r4, r9
- str r4, [sp]
- ldr r4, [r5, 0x4]
- str r4, [sp, 0x4]
- bl sub_8089C50
- add r0, sp, 0x8
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- ldrb r2, [r0]
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldrb r3, [r5]
- str r6, [sp]
- ldrb r0, [r5, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- bl InitMenu
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E750
-
- thumb_func_start sub_806E7D0
-sub_806E7D0: @ 806E7D0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- mov r5, sp
- adds r5, 0x1
- adds r0, r4, 0
- mov r1, sp
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_806E720
- mov r0, sp
- ldrb r0, [r0]
- ldrb r1, [r5]
- lsls r4, 3
- adds r4, r6
- ldrb r2, [r4, 0x1]
- adds r2, r0, r2
- lsls r2, 24
- lsrs r2, 24
- ldrb r3, [r4]
- lsls r3, 1
- adds r3, r1, r3
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E7D0
-
- thumb_func_start sub_806E81C
-sub_806E81C: @ 806E81C
- lsls r0, 24
- lsls r3, 24
- lsrs r3, 24
- lsrs r0, 21
- adds r0, r1
- ldr r0, [r0, 0x4]
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r2
- ldr r0, [r0, 0x4]
- bx lr
- thumb_func_end sub_806E81C
-
- thumb_func_start sub_806E834
-sub_806E834: @ 806E834
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r1, _0806E878 @ =gUnknown_0202E8F6
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r0, _0806E87C @ =sub_806E884
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806E880 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806E878: .4byte gUnknown_0202E8F6
-_0806E87C: .4byte sub_806E884
-_0806E880: .4byte gTasks
- thumb_func_end sub_806E834
-
- thumb_func_start sub_806E884
-sub_806E884: @ 806E884
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0806E8C0
- ldr r1, _0806E8C8 @ =gUnknown_0202E8F6
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0806E8CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0806E8BA
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_0806E8BA:
- adds r0, r5, 0
- bl DestroyTask
-_0806E8C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E8C8: .4byte gUnknown_0202E8F6
-_0806E8CC: .4byte gTasks
- thumb_func_end sub_806E884
-
- thumb_func_start sub_806E8D0
-sub_806E8D0: @ 806E8D0
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r4, _0806E8FC @ =0x0201c000
- str r2, [r4, 0x10]
- strb r0, [r4, 0x4]
- bl sub_806CA38
- strb r0, [r4, 0x5]
- strh r5, [r4, 0x6]
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0806E900 @ =gPlayerParty
- adds r0, r1
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E8FC: .4byte 0x0201c000
-_0806E900: .4byte gPlayerParty
- thumb_func_end sub_806E8D0
-
- thumb_func_start sub_806E904
-sub_806E904: @ 806E904
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E93C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2BC4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0806E930
- movs r0, 0x1
- b _0806E958
-_0806E930:
- ldr r1, _0806E938 @ =gUnknown_0202E8F4
- movs r0, 0x2
- b _0806E940
- .align 2, 0
-_0806E938: .4byte gUnknown_0202E8F4
-_0806E93C:
- ldr r1, _0806E960 @ =gUnknown_0202E8F4
- movs r0, 0x1
-_0806E940:
- strb r0, [r1]
- mov r0, sp
- strb r4, [r0]
- mov r1, sp
- lsrs r0, r4, 8
- strb r0, [r1, 0x1]
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- movs r0, 0
-_0806E958:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806E960: .4byte gUnknown_0202E8F4
- thumb_func_end sub_806E904
-
- thumb_func_start sub_806E964
-sub_806E964: @ 806E964
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- mov r9, r5
- ldr r2, _0806E9D4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r2
- ldr r1, _0806E9D8 @ =TaskDummy
- str r1, [r6]
- adds r1, r5, 0
- mov r2, r8
- bl sub_806E8D0
- ldr r4, _0806E9DC @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r2, r0, 16
- adds r7, r2, 0
- ldr r1, _0806E9E0 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0806E9E4 @ =gUnknown_0202E8F8
- mov r10, r0
- movs r0, 0
- mov r1, r10
- strh r0, [r1]
- cmp r2, 0
- beq _0806EA44
- adds r0, r2, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E9F0
- ldr r0, _0806E9E8 @ =gOtherText_MailMustBeRemoved
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806E9EC @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
- b _0806EA78
- .align 2, 0
-_0806E9D4: .4byte gTasks
-_0806E9D8: .4byte TaskDummy
-_0806E9DC: .4byte 0x0201c000
-_0806E9E0: .4byte gUnknown_0202E8F4
-_0806E9E4: .4byte gUnknown_0202E8F8
-_0806E9E8: .4byte gOtherText_MailMustBeRemoved
-_0806E9EC: .4byte party_menu_link_mon_held_item_object
-_0806E9F0:
- ldr r0, [r4]
- ldr r1, _0806EA30 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _0806EA34 @ =gStringVar2
- adds r0, r7, 0
- bl CopyItemName
- ldr r4, _0806EA38 @ =gStringVar4
- ldr r1, _0806EA3C @ =gOtherText_AlreadyHolding
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806EA40 @ =sub_806EBB8
- movs r1, 0x5
- bl CreateTask
- adds r0, r5, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EA78
- mov r0, r10
- strh r7, [r0]
- b _0806EA78
- .align 2, 0
-_0806EA30: .4byte gStringVar1
-_0806EA34: .4byte gStringVar2
-_0806EA38: .4byte gStringVar4
-_0806EA3C: .4byte gOtherText_AlreadyHolding
-_0806EA40: .4byte sub_806EBB8
-_0806EA44:
- ldr r0, [r4]
- adds r1, r5, 0
- bl sub_806E904
- adds r0, r5, 0
- movs r1, 0x1
- bl RemoveBagItem
- adds r0, r5, 0
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806EA66
- mov r1, r8
- str r1, [r6]
- b _0806EA78
-_0806EA66:
- ldrb r0, [r4, 0x5]
- mov r1, r9
- movs r2, 0x1
- bl sub_806EBF0
- ldr r0, _0806EA88 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
-_0806EA78:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EA88: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806E964
-
- thumb_func_start party_menu_link_mon_held_item_object
-party_menu_link_mon_held_item_object: @ 806EA8C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0806EAC0 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EABA
- ldr r4, _0806EAC4 @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r2, _0806EAC8 @ =gTasks
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
-_0806EABA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EAC0: .4byte gUnknown_0202E8F6
-_0806EAC4: .4byte 0x0201c000
-_0806EAC8: .4byte gTasks
- thumb_func_end party_menu_link_mon_held_item_object
-
- thumb_func_start sub_806EACC
-sub_806EACC: @ 806EACC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EB74
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _0806EB30 @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- adds r0, r5, 0
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EB5C
- ldr r0, [r4]
- ldrh r1, [r4, 0x6]
- bl sub_806E904
- ldrh r0, [r4, 0x6]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806EB34
- ldrb r0, [r4, 0x5]
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_806EDB4
- b _0806EB9A
- .align 2, 0
-_0806EB30: .4byte 0x0201c000
-_0806EB34:
- ldrh r0, [r4, 0x6]
- ldr r1, _0806EB50 @ =gStringVar1
- bl CopyItemName
- ldr r4, _0806EB54 @ =gStringVar4
- ldr r1, _0806EB58 @ =gOtherText_TakenAndReplaced
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- b _0806EB9A
- .align 2, 0
-_0806EB50: .4byte gStringVar1
-_0806EB54: .4byte gStringVar4
-_0806EB58: .4byte gOtherText_TakenAndReplaced
-_0806EB5C:
- ldr r0, _0806EB70 @ =gOtherText_BagFullCannotRemoveItem
- movs r1, 0
- bl sub_806E834
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl AddBagItem
- b _0806EB9A
- .align 2, 0
-_0806EB70: .4byte gOtherText_BagFullCannotRemoveItem
-_0806EB74:
- cmp r1, 0x1
- beq _0806EB80
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EBA8
-_0806EB80:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EB8E
- movs r0, 0x5
- bl PlaySE
-_0806EB8E:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
-_0806EB9A:
- ldr r0, _0806EBB0 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EBB4 @ =party_menu_link_mon_held_item_object
- str r0, [r1]
-_0806EBA8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EBB0: .4byte gTasks
-_0806EBB4: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806EACC
-
- thumb_func_start sub_806EBB8
-sub_806EBB8: @ 806EBB8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806EBE4 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EBDE
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806EBE8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EBEC @ =sub_806EACC
- str r0, [r1]
-_0806EBDE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EBE4: .4byte gUnknown_0202E8F6
-_0806EBE8: .4byte gTasks
-_0806EBEC: .4byte sub_806EACC
- thumb_func_end sub_806EBB8
-
- thumb_func_start sub_806EBF0
-sub_806EBF0: @ 806EBF0
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806EC30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0806EC34 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _0806EC38 @ =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r4, _0806EC3C @ =gStringVar4
- ldr r1, _0806EC40 @ =gOtherText_WasGivenToHold
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E834
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EC30: .4byte gPlayerParty
-_0806EC34: .4byte gStringVar1
-_0806EC38: .4byte gStringVar2
-_0806EC3C: .4byte gStringVar4
-_0806EC40: .4byte gOtherText_WasGivenToHold
- thumb_func_end sub_806EBF0
-
- thumb_func_start sub_806EC44
-sub_806EC44: @ 806EC44
- push {r4,r5,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806ECA0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806ECA4 @ =TaskDummy
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r5, _0806ECA8 @ =0x0201c000
- ldr r0, [r5]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- ldr r2, _0806ECAC @ =gUnknown_0202E8F4
- movs r1, 0
- strb r1, [r2]
- movs r1, 0xF8
- lsls r1, 6
- adds r2, r5, r1
- ldrb r1, [r2]
- adds r1, 0x6
- ldrb r2, [r2, 0x2]
- adds r1, r2
- lsls r2, r1, 3
- adds r2, r1
- lsls r2, 2
- ldr r1, _0806ECB0 @ =gSaveBlock1 + 0x2B4C
- adds r4, r2, r1
- cmp r0, 0
- beq _0806ECBC
- ldr r0, _0806ECB4 @ =gOtherText_PokeHoldingItemCantMail
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806ECB8 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
- b _0806ECDA
- .align 2, 0
-_0806ECA0: .4byte gTasks
-_0806ECA4: .4byte TaskDummy
-_0806ECA8: .4byte 0x0201c000
-_0806ECAC: .4byte gUnknown_0202E8F4
-_0806ECB0: .4byte gSaveBlock1 + 0x2B4C
-_0806ECB4: .4byte gOtherText_PokeHoldingItemCantMail
-_0806ECB8: .4byte party_menu_link_mon_held_item_object
-_0806ECBC:
- ldr r0, [r5]
- adds r1, r4, 0
- bl sub_80A2D88
- adds r0, r4, 0
- bl sub_80A2B40
- ldr r0, _0806ECE0 @ =gOtherText_MailTransferredMailbox
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806ECE4 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
-_0806ECDA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806ECE0: .4byte gOtherText_MailTransferredMailbox
-_0806ECE4: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806EC44
-
- thumb_func_start sub_806ECE8
-sub_806ECE8: @ 806ECE8
- push {r4-r6,lr}
- sub sp, 0x4
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806ED38 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806ED3C @ =TaskDummy
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r5, _0806ED40 @ =0x0201c000
- ldr r0, [r5]
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- cmp r4, 0
- bne _0806ED50
- ldr r4, _0806ED44 @ =gStringVar4
- ldr r1, _0806ED48 @ =gOtherText_NotHoldingAnything
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r0, _0806ED4C @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
- b _0806EDA2
- .align 2, 0
-_0806ED38: .4byte gTasks
-_0806ED3C: .4byte TaskDummy
-_0806ED40: .4byte 0x0201c000
-_0806ED44: .4byte gStringVar4
-_0806ED48: .4byte gOtherText_NotHoldingAnything
-_0806ED4C: .4byte party_menu_link_mon_held_item_object
-_0806ED50:
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806ED92
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806ED7C
- ldr r0, [r5]
- bl sub_80A2DF8
-_0806ED7C:
- ldrb r0, [r5, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl sub_806EDB4
- ldr r0, [r5]
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- b _0806ED9A
-_0806ED92:
- ldr r0, _0806EDAC @ =gOtherText_BagFullCannotRemoveItem
- movs r1, 0
- bl sub_806E834
-_0806ED9A:
- ldr r0, _0806EDB0 @ =party_menu_link_mon_held_item_object
- movs r1, 0x5
- bl CreateTask
-_0806EDA2:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EDAC: .4byte gOtherText_BagFullCannotRemoveItem
-_0806EDB0: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806ECE8
-
- thumb_func_start sub_806EDB4
-sub_806EDB4: @ 806EDB4
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806EDF4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0806EDF8 @ =gStringVar1
- bl GetMonNickname
- ldr r1, _0806EDFC @ =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r4, _0806EE00 @ =gStringVar4
- ldr r1, _0806EE04 @ =gOtherText_ReceivedTheThingFrom
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E834
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EDF4: .4byte gPlayerParty
-_0806EDF8: .4byte gStringVar1
-_0806EDFC: .4byte gStringVar2
-_0806EE00: .4byte gStringVar4
-_0806EE04: .4byte gOtherText_ReceivedTheThingFrom
- thumb_func_end sub_806EDB4
-
- thumb_func_start sub_806EE08
-sub_806EE08: @ 806EE08
- push {r4,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806EE48 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806EE4C @ =TaskDummy
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r4, _0806EE50 @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0xC
- bl GetMonData
- strh r0, [r4, 0x6]
- ldr r0, _0806EE54 @ =gOtherText_SendRemovedMailPrompt
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806EE58 @ =sub_806EFEC
- movs r1, 0x5
- bl CreateTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EE48: .4byte gTasks
-_0806EE4C: .4byte TaskDummy
-_0806EE50: .4byte 0x0201c000
-_0806EE54: .4byte gOtherText_SendRemovedMailPrompt
-_0806EE58: .4byte sub_806EFEC
- thumb_func_end sub_806EE08
-
- thumb_func_start sub_806EE5C
-sub_806EE5C: @ 806EE5C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EEB0
- ldr r5, _0806EE90 @ =0x0201c000
- ldrh r0, [r5, 0x6]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EE98
- ldr r0, [r5]
- bl sub_80A2DF8
- ldr r0, _0806EE94 @ =gOtherText_MailTaken
- movs r1, 0
- bl sub_806E834
- b _0806EEA0
- .align 2, 0
-_0806EE90: .4byte 0x0201c000
-_0806EE94: .4byte gOtherText_MailTaken
-_0806EE98:
- ldr r0, _0806EEAC @ =gOtherText_BagFullCannotRemoveItem
- movs r1, 0
- bl sub_806E834
-_0806EEA0:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- b _0806EEDE
- .align 2, 0
-_0806EEAC: .4byte gOtherText_BagFullCannotRemoveItem
-_0806EEB0:
- cmp r1, 0x1
- beq _0806EEBC
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EEF0
-_0806EEBC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EECA
- movs r0, 0x5
- bl PlaySE
-_0806EECA:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
-_0806EEDE:
- bl MenuZeroFillWindowRect
- ldr r0, _0806EEF8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EEFC @ =party_menu_link_mon_held_item_object
- str r0, [r1]
-_0806EEF0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EEF8: .4byte gTasks
-_0806EEFC: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806EE5C
-
- thumb_func_start sub_806EF00
-sub_806EF00: @ 806EF00
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806EF2C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EF26
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806EF30 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EF34 @ =sub_806EE5C
- str r0, [r1]
-_0806EF26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EF2C: .4byte gUnknown_0202E8F6
-_0806EF30: .4byte gTasks
-_0806EF34: .4byte sub_806EE5C
- thumb_func_end sub_806EF00
-
- thumb_func_start sub_806EF38
-sub_806EF38: @ 806EF38
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EF9C
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806EF70 @ =0x0201c000
- ldr r0, [r0]
- bl sub_80A2E78
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0806EF78
- ldr r0, _0806EF74 @ =gOtherText_MailWasSent
- movs r1, 0
- bl sub_806E834
- b _0806EF80
- .align 2, 0
-_0806EF70: .4byte 0x0201c000
-_0806EF74: .4byte gOtherText_MailWasSent
-_0806EF78:
- ldr r0, _0806EF90 @ =gOtherText_MailboxIsFull
- movs r1, 0
- bl sub_806E834
-_0806EF80:
- ldr r0, _0806EF94 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EF98 @ =party_menu_link_mon_held_item_object
- str r0, [r1]
- b _0806EFD8
- .align 2, 0
-_0806EF90: .4byte gOtherText_MailboxIsFull
-_0806EF94: .4byte gTasks
-_0806EF98: .4byte party_menu_link_mon_held_item_object
-_0806EF9C:
- cmp r1, 0x1
- beq _0806EFA8
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EFD8
-_0806EFA8:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EFB6
- movs r0, 0x5
- bl PlaySE
-_0806EFB6:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806EFE0 @ =gOtherText_MailRemovedMessageLost
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806EFE4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806EFE8 @ =sub_806EF00
- str r1, [r0]
-_0806EFD8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EFE0: .4byte gOtherText_MailRemovedMessageLost
-_0806EFE4: .4byte gTasks
-_0806EFE8: .4byte sub_806EF00
- thumb_func_end sub_806EF38
-
- thumb_func_start sub_806EFEC
-sub_806EFEC: @ 806EFEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F018 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F012
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F01C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F020 @ =sub_806EF38
- str r0, [r1]
-_0806F012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F018: .4byte gUnknown_0202E8F6
-_0806F01C: .4byte gTasks
-_0806F020: .4byte sub_806EF38
- thumb_func_end sub_806EFEC
-
- thumb_func_start ItemIdToBattleMoveId
-ItemIdToBattleMoveId: @ 806F024
- lsls r0, 16
- ldr r1, _0806F034 @ =0xfedf0000
- adds r0, r1
- ldr r1, _0806F038 @ =gUnknown_08376504
- lsrs r0, 15
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_0806F034: .4byte 0xfedf0000
-_0806F038: .4byte gUnknown_08376504
- thumb_func_end ItemIdToBattleMoveId
-
- thumb_func_start pokemon_has_move
-pokemon_has_move: @ 806F03C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
-_0806F046:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- bl GetMonData
- cmp r0, r5
- bne _0806F058
- movs r0, 0x1
- b _0806F064
-_0806F058:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0806F046
- movs r0, 0
-_0806F064:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_has_move
-
- thumb_func_start sub_806F06C
-sub_806F06C: @ 806F06C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0806F0A8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F0AC @ =TaskDummy
- str r1, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E8D0
- ldr r0, _0806F0B0 @ =sub_806F0B4
- movs r1, 0x5
- bl CreateTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F0A8: .4byte gTasks
-_0806F0AC: .4byte TaskDummy
-_0806F0B0: .4byte sub_806F0B4
- thumb_func_end sub_806F06C
-
- thumb_func_start sub_806F0B4
-sub_806F0B4: @ 806F0B4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, r6, 0
- ldr r5, _0806F114 @ =0x0201c000
- ldr r0, [r5]
- ldr r1, _0806F118 @ =gStringVar1
- bl GetMonNickname
- ldrh r0, [r5, 0x6]
- bl ItemIdToBattleMoveId
- movs r4, 0
- strh r0, [r5, 0x8]
- ldr r0, _0806F11C @ =gStringVar2
- ldrh r2, [r5, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F120 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r1, _0806F124 @ =0xfffff282
- adds r0, r5, r1
- strh r4, [r0]
- ldr r0, [r5]
- ldrh r1, [r5, 0x8]
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _0806F138
- ldr r4, _0806F128 @ =gStringVar4
- ldr r1, _0806F12C @ =gOtherText_AlreadyKnows
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F130 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F134 @ =party_menu_link_mon_held_item_object
- b _0806F1B6
- .align 2, 0
-_0806F114: .4byte 0x0201c000
-_0806F118: .4byte gStringVar1
-_0806F11C: .4byte gStringVar2
-_0806F120: .4byte gMoveNames
-_0806F124: .4byte 0xfffff282
-_0806F128: .4byte gStringVar4
-_0806F12C: .4byte gOtherText_AlreadyKnows
-_0806F130: .4byte gTasks
-_0806F134: .4byte party_menu_link_mon_held_item_object
-_0806F138:
- ldr r0, [r5]
- ldrb r1, [r5, 0x6]
- subs r1, 0x21
- lsls r1, 24
- lsrs r1, 24
- bl CanMonLearnTMHM
- cmp r0, 0
- bne _0806F17C
- ldr r4, _0806F16C @ =gStringVar4
- ldr r1, _0806F170 @ =gOtherText_NotCompatible
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F174 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F178 @ =party_menu_link_mon_held_item_object
- b _0806F1B6
- .align 2, 0
-_0806F16C: .4byte gStringVar4
-_0806F170: .4byte gOtherText_NotCompatible
-_0806F174: .4byte gTasks
-_0806F178: .4byte party_menu_link_mon_held_item_object
-_0806F17C:
- ldr r0, [r5]
- ldrh r1, [r5, 0x8]
- bl GiveMoveToMon
- lsls r0, 16
- ldr r1, _0806F194 @ =0xffff0000
- cmp r0, r1
- beq _0806F198
- adds r0, r6, 0
- bl sub_806F1D0
- b _0806F1B8
- .align 2, 0
-_0806F194: .4byte 0xffff0000
-_0806F198:
- ldr r4, _0806F1C0 @ =gStringVar4
- ldr r1, _0806F1C4 @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F1C8 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F1CC @ =sub_806F358
-_0806F1B6:
- str r1, [r0]
-_0806F1B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F1C0: .4byte gStringVar4
-_0806F1C4: .4byte gOtherText_WantsToLearn
-_0806F1C8: .4byte gTasks
-_0806F1CC: .4byte sub_806F358
- thumb_func_end sub_806F0B4
-
- thumb_func_start sub_806F1D0
-sub_806F1D0: @ 806F1D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0806F234 @ =gStringVar2
- ldr r5, _0806F238 @ =0x0201c000
- ldrh r2, [r5, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F23C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F240 @ =gStringVar4
- ldr r1, _0806F244 @ =gOtherText_LearnedMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, [r5]
- movs r1, 0x4
- bl AdjustFriendship
- ldr r1, _0806F248 @ =0xfffff282
- adds r0, r5, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0806F220
- ldrh r1, [r5, 0x6]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bhi _0806F220
- adds r0, r1, 0
- movs r1, 0x1
- bl RemoveBagItem
-_0806F220:
- ldr r0, _0806F24C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F250 @ =sub_806F254
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F234: .4byte gStringVar2
-_0806F238: .4byte 0x0201c000
-_0806F23C: .4byte gMoveNames
-_0806F240: .4byte gStringVar4
-_0806F244: .4byte gOtherText_LearnedMove
-_0806F248: .4byte 0xfffff282
-_0806F24C: .4byte gTasks
-_0806F250: .4byte sub_806F254
- thumb_func_end sub_806F1D0
-
- thumb_func_start sub_806F254
-sub_806F254: @ 806F254
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F27C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F276
- ldr r0, _0806F280 @ =0x0000016f
- bl PlayFanfare
- ldr r1, _0806F284 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F288 @ =sub_806F28C
- str r1, [r0]
-_0806F276:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F27C: .4byte gUnknown_0202E8F6
-_0806F280: .4byte 0x0000016f
-_0806F284: .4byte gTasks
-_0806F288: .4byte sub_806F28C
- thumb_func_end sub_806F254
-
- thumb_func_start sub_806F28C
-sub_806F28C: @ 806F28C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _0806F2F2
- ldr r0, _0806F2D0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0806F2B2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0806F2F2
-_0806F2B2:
- ldr r4, _0806F2D4 @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r1, _0806F2D8 @ =0xfffff282
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0806F2DC
- adds r0, r5, 0
- bl sub_8070C54
- b _0806F2F2
- .align 2, 0
-_0806F2D0: .4byte gMain
-_0806F2D4: .4byte 0x0201c000
-_0806F2D8: .4byte 0xfffff282
-_0806F2DC:
- ldr r2, _0806F2F8 @ =gTasks
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyTask
-_0806F2F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F2F8: .4byte gTasks
- thumb_func_end sub_806F28C
-
- thumb_func_start sub_806F2FC
-sub_806F2FC: @ 806F2FC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- ldr r0, _0806F32C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F34E
- ldr r4, _0806F330 @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r1, _0806F334 @ =0xfffff282
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0806F338
- adds r0, r5, 0
- bl sub_8070C54
- b _0806F34E
- .align 2, 0
-_0806F32C: .4byte gUnknown_0202E8F6
-_0806F330: .4byte 0x0201c000
-_0806F334: .4byte 0xfffff282
-_0806F338:
- ldr r2, _0806F354 @ =gTasks
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyTask
-_0806F34E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F354: .4byte gTasks
- thumb_func_end sub_806F2FC
-
- thumb_func_start sub_806F358
-sub_806F358: @ 806F358
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F384 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F37E
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F388 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F38C @ =sub_806F390
- str r0, [r1]
-_0806F37E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F384: .4byte gUnknown_0202E8F6
-_0806F388: .4byte gTasks
-_0806F38C: .4byte sub_806F390
- thumb_func_end sub_806F358
-
- thumb_func_start sub_806F390
-sub_806F390: @ 806F390
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806F3D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806F3C8 @ =gOtherText_WhichMoveToForget2
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F3CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F3D0 @ =sub_806F44C
- str r1, [r0]
- b _0806F3F4
- .align 2, 0
-_0806F3C8: .4byte gOtherText_WhichMoveToForget2
-_0806F3CC: .4byte gTasks
-_0806F3D0: .4byte sub_806F44C
-_0806F3D4:
- cmp r1, 0x1
- beq _0806F3E0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F3F4
-_0806F3E0:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F3EE
- movs r0, 0x5
- bl PlaySE
-_0806F3EE:
- adds r0, r5, 0
- bl sub_806F614
-_0806F3F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806F390
-
- thumb_func_start sub_806F3FC
-sub_806F3FC: @ 806F3FC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0806F438 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F430
- ldr r0, _0806F43C @ =gPlayerParty
- ldr r4, _0806F440 @ =0x0201c000
- ldrb r1, [r4, 0x5]
- ldr r2, _0806F444 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806F448 @ =sub_808B564
- ldrh r4, [r4, 0x8]
- str r4, [sp]
- bl sub_809D9F0
- adds r0, r5, 0
- bl DestroyTask
-_0806F430:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F438: .4byte gPaletteFade
-_0806F43C: .4byte gPlayerParty
-_0806F440: .4byte 0x0201c000
-_0806F444: .4byte gPlayerPartyCount
-_0806F448: .4byte sub_808B564
- thumb_func_end sub_806F3FC
-
- thumb_func_start sub_806F44C
-sub_806F44C: @ 806F44C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F484 @ =gUnknown_0202E8F6
- ldrb r1, [r0]
- cmp r1, 0
- bne _0806F47A
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0806F488 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F48C @ =sub_806F3FC
- str r1, [r0]
-_0806F47A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F484: .4byte gUnknown_0202E8F6
-_0806F488: .4byte gTasks
-_0806F48C: .4byte sub_806F3FC
- thumb_func_end sub_806F44C
-
- thumb_func_start sub_806F490
-sub_806F490: @ 806F490
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0806F50C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F506
- ldr r1, _0806F510 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F514 @ =TaskDummy
- str r1, [r0]
- ldr r0, _0806F518 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0806F51C @ =sub_808B508
- adds r0, r3, 0
- bl sub_806E8D0
- bl sub_809FA30
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r5, _0806F520 @ =0x0201c000
- ldr r0, [r5]
- adds r1, 0xD
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, [r5]
- ldr r1, _0806F524 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F528 @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _0806F52C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F530 @ =gStringVar4
- ldr r1, _0806F534 @ =gOtherText_ForgetMove123_2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806F538 @ =sub_806F53C
- movs r1, 0x5
- bl CreateTask
-_0806F506:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F50C: .4byte gPaletteFade
-_0806F510: .4byte gTasks
-_0806F514: .4byte TaskDummy
-_0806F518: .4byte gScriptItemId
-_0806F51C: .4byte sub_808B508
-_0806F520: .4byte 0x0201c000
-_0806F524: .4byte gStringVar1
-_0806F528: .4byte gStringVar2
-_0806F52C: .4byte gMoveNames
-_0806F530: .4byte gStringVar4
-_0806F534: .4byte gOtherText_ForgetMove123_2
-_0806F538: .4byte sub_806F53C
- thumb_func_end sub_806F490
-
- thumb_func_start sub_806F53C
-sub_806F53C: @ 806F53C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0806F580 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F57A
- ldr r4, _0806F584 @ =0x0201c000
- ldr r5, [r4]
- bl sub_809FA30
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl RemoveMonPPBonus
- ldr r5, [r4]
- ldrh r4, [r4, 0x8]
- bl sub_809FA30
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl SetMonMoveSlot
- adds r0, r6, 0
- bl sub_806F1D0
-_0806F57A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F580: .4byte gUnknown_0202E8F6
-_0806F584: .4byte 0x0201c000
- thumb_func_end sub_806F53C
-
- thumb_func_start sub_806F588
-sub_806F588: @ 806F588
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0806F5E8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F5E0
- ldr r1, _0806F5EC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F5F0 @ =TaskDummy
- str r1, [r0]
- ldr r0, _0806F5F4 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0806F5F8 @ =sub_808B508
- adds r0, r3, 0
- bl sub_806E8D0
- ldr r0, _0806F5FC @ =gStringVar2
- ldr r1, _0806F600 @ =0x0201c000
- ldrh r2, [r1, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F604 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F608 @ =gStringVar4
- ldr r1, _0806F60C @ =gOtherText_StopTryingTo
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806F610 @ =sub_806F67C
- movs r1, 0x5
- bl CreateTask
-_0806F5E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F5E8: .4byte gPaletteFade
-_0806F5EC: .4byte gTasks
-_0806F5F0: .4byte TaskDummy
-_0806F5F4: .4byte gScriptItemId
-_0806F5F8: .4byte sub_808B508
-_0806F5FC: .4byte gStringVar2
-_0806F600: .4byte 0x0201c000
-_0806F604: .4byte gMoveNames
-_0806F608: .4byte gStringVar4
-_0806F60C: .4byte gOtherText_StopTryingTo
-_0806F610: .4byte sub_806F67C
- thumb_func_end sub_806F588
-
- thumb_func_start sub_806F614
-sub_806F614: @ 806F614
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _0806F660 @ =gStringVar2
- ldr r1, _0806F664 @ =0x0201c000
- ldrh r2, [r1, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F668 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F66C @ =gStringVar4
- ldr r1, _0806F670 @ =gOtherText_StopTryingTo
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F674 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F678 @ =sub_806F67C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F660: .4byte gStringVar2
-_0806F664: .4byte 0x0201c000
-_0806F668: .4byte gMoveNames
-_0806F66C: .4byte gStringVar4
-_0806F670: .4byte gOtherText_StopTryingTo
-_0806F674: .4byte gTasks
-_0806F678: .4byte sub_806F67C
- thumb_func_end sub_806F614
-
- thumb_func_start sub_806F67C
-sub_806F67C: @ 806F67C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F6A8 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F6A2
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _0806F6AC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F6B0 @ =sub_806F6B4
- str r0, [r1]
-_0806F6A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F6A8: .4byte gUnknown_0202E8F6
-_0806F6AC: .4byte gTasks
-_0806F6B0: .4byte sub_806F6B4
- thumb_func_end sub_806F67C
-
- thumb_func_start sub_806F6B4
-sub_806F6B4: @ 806F6B4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806F730
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _0806F710 @ =0x0201c000
- ldr r0, [r4]
- ldr r1, _0806F714 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F718 @ =gStringVar2
- ldrh r2, [r4, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F71C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F720 @ =gStringVar4
- ldr r1, _0806F724 @ =gOtherText_DidNotLearnMove2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F728 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F72C @ =sub_806F2FC
- b _0806F78E
- .align 2, 0
-_0806F710: .4byte 0x0201c000
-_0806F714: .4byte gStringVar1
-_0806F718: .4byte gStringVar2
-_0806F71C: .4byte gMoveNames
-_0806F720: .4byte gStringVar4
-_0806F724: .4byte gOtherText_DidNotLearnMove2
-_0806F728: .4byte gTasks
-_0806F72C: .4byte sub_806F2FC
-_0806F730:
- cmp r1, 0x1
- beq _0806F73C
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F790
-_0806F73C:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F74A
- movs r0, 0x5
- bl PlaySE
-_0806F74A:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r4, _0806F798 @ =0x0201c000
- ldr r0, [r4]
- ldr r1, _0806F79C @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F7A0 @ =gStringVar2
- ldrh r2, [r4, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F7A4 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F7A8 @ =gStringVar4
- ldr r1, _0806F7AC @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F7B0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F7B4 @ =sub_806F358
-_0806F78E:
- str r1, [r0]
-_0806F790:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F798: .4byte 0x0201c000
-_0806F79C: .4byte gStringVar1
-_0806F7A0: .4byte gStringVar2
-_0806F7A4: .4byte gMoveNames
-_0806F7A8: .4byte gStringVar4
-_0806F7AC: .4byte gOtherText_WantsToLearn
-_0806F7B0: .4byte gTasks
-_0806F7B4: .4byte sub_806F358
- thumb_func_end sub_806F6B4
-
- thumb_func_start sub_806F7B8
-sub_806F7B8: @ 806F7B8
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldr r3, _0806F7D4 @ =gUnknown_08376504
-_0806F7C2:
- adds r0, r1, 0
- adds r0, 0x32
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0806F7D8
- movs r0, 0x1
- b _0806F7E4
- .align 2, 0
-_0806F7D4: .4byte gUnknown_08376504
-_0806F7D8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _0806F7C2
- movs r0, 0
-_0806F7E4:
- pop {r1}
- bx r1
- thumb_func_end sub_806F7B8
-
- thumb_func_start sub_806F7E8
-sub_806F7E8: @ 806F7E8
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- ldr r0, _0806F898 @ =gTasks + 0x8
- adds r3, r0
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- str r1, [r5]
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- str r0, [r5, 0x4]
- movs r4, 0x18
- ldrsh r0, [r3, r4]
- lsls r2, 24
- asrs r2, 24
- muls r0, r2
- str r0, [r5, 0x8]
- movs r0, 0x80
- lsls r0, 1
- str r0, [r5, 0x10]
- ldr r6, _0806F89C @ =0x0201b000
- ldr r2, _0806F8A0 @ =0x00000282
- adds r0, r6, r2
- movs r4, 0
- ldrsh r0, [r0, r4]
- bl sub_8046200
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- cmp r2, 0x2
- bls _0806F83E
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F83E:
- cmp r2, 0x2
- bne _0806F850
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x5
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F850:
- cmp r3, 0x1
- bhi _0806F862
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x6
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F862:
- ldr r4, _0806F8A4 @ =gUnknown_08376858
- bl battle_type_is_double
- movs r2, 0x80
- lsls r2, 5
- adds r1, r6, r2
- ldrb r2, [r1, 0x5]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r4
- ldr r2, [r2]
- ldr r4, _0806F8A8 @ =0x0000100c
- adds r1, r6, r4
- adds r0, r5, 0
- movs r3, 0
- bl sub_80460C8
- lsls r0, 16
- asrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806F898: .4byte gTasks + 0x8
-_0806F89C: .4byte 0x0201b000
-_0806F8A0: .4byte 0x00000282
-_0806F8A4: .4byte gUnknown_08376858
-_0806F8A8: .4byte 0x0000100c
- thumb_func_end sub_806F7E8
-
- thumb_func_start sub_806F8AC
-sub_806F8AC: @ 806F8AC
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0x1
- negs r4, r4
- adds r0, r6, 0
- mov r1, sp
- adds r2, r4, 0
- bl sub_806F7E8
- ldr r1, _0806F8F4 @ =0x0201b000
- ldr r2, _0806F8F8 @ =0x00000282
- adds r5, r1, r2
- strh r0, [r5]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r4
- beq _0806F8D4
- b _0806F9F0
-_0806F8D4:
- movs r0, 0x80
- lsls r0, 5
- adds r1, r0
- movs r0, 0
- str r0, [r1, 0xC]
- ldr r0, [sp, 0x8]
- negs r3, r0
- ldr r2, [sp, 0x4]
- adds r0, r3, r2
- ldr r1, [sp]
- cmp r0, r1
- ble _0806F8FC
- subs r1, r2
- add r0, sp, 0x14
- strh r1, [r0]
- b _0806F900
- .align 2, 0
-_0806F8F4: .4byte 0x0201b000
-_0806F8F8: .4byte 0x00000282
-_0806F8FC:
- add r0, sp, 0x14
- strh r3, [r0]
-_0806F900:
- adds r5, r0, 0
- ldr r1, _0806F940 @ =gUnknown_02024BEC
- ldrh r0, [r5]
- negs r0, r0
- str r0, [r1]
- ldr r0, _0806F944 @ =0x0201c000
- ldr r0, [r0]
- ldr r1, _0806F948 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _0806F94C @ =gStringVar2
- ldrh r1, [r5]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r2, _0806F950 @ =gTasks
- lsls r1, r6, 2
- adds r0, r1, r6
- lsls r0, 3
- adds r0, r2
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0
- bne _0806F95C
- ldr r0, _0806F954 @ =gStringVar4
- ldr r1, _0806F958 @ =gOtherText_HPRestoredBy
- bl StringExpandPlaceholders
- b _0806F964
- .align 2, 0
-_0806F940: .4byte gUnknown_02024BEC
-_0806F944: .4byte 0x0201c000
-_0806F948: .4byte gStringVar1
-_0806F94C: .4byte gStringVar2
-_0806F950: .4byte gTasks
-_0806F954: .4byte gStringVar4
-_0806F958: .4byte gOtherText_HPRestoredBy
-_0806F95C:
- ldr r0, _0806F9D4 @ =gStringVar4
- ldr r1, _0806F9D8 @ =gOtherText_RegainedHealth
- bl StringExpandPlaceholders
-_0806F964:
- ldr r4, _0806F9DC @ =0x0201c000
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl sub_806D84C
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _0806F9E0 @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x7
- bl task_pc_turn_off
- ldr r0, _0806F9E4 @ =0xfffff261
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _0806F9D4 @ =gStringVar4
- movs r1, 0x1
- bl sub_806E834
- ldr r1, [sp, 0x4]
- ldrh r0, [r5]
- adds r0, r1
- strh r0, [r5]
- ldr r0, [r4]
- movs r1, 0x39
- adds r2, r5, 0
- bl SetMonData
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- bl sub_8032638
- ldr r1, _0806F9E8 @ =gTasks
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F9EC @ =sub_806FB44
- str r1, [r0]
- b _0806FA10
- .align 2, 0
-_0806F9D4: .4byte gStringVar4
-_0806F9D8: .4byte gOtherText_RegainedHealth
-_0806F9DC: .4byte 0x0201c000
-_0806F9E0: .4byte gUnknown_083769A8
-_0806F9E4: .4byte 0xfffff261
-_0806F9E8: .4byte gTasks
-_0806F9EC: .4byte sub_806FB44
-_0806F9F0:
- movs r2, 0x80
- lsls r2, 5
- adds r0, r1, r2
- ldrb r4, [r0, 0x5]
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5]
- ldr r3, [sp]
- lsls r3, 16
- lsrs r3, 16
- adds r0, r4, 0
- bl sub_806E420
-_0806FA10:
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806F8AC
-
- thumb_func_start sub_806FA18
-sub_806FA18: @ 806FA18
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_806F7E8
- ldr r6, _0806FAC4 @ =0x0201b000
- ldr r1, _0806FAC8 @ =0x00000282
- adds r7, r6, r1
- strh r0, [r7]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0806FAE4
- movs r0, 0x1
- bl PlaySE
- movs r0, 0x80
- lsls r0, 5
- adds r4, r6, r0
- movs r0, 0
- str r0, [r4, 0xC]
- ldr r2, _0806FACC @ =gTasks
- lsls r3, r5, 2
- adds r3, r5
- lsls r3, 3
- adds r5, r3, r2
- ldrh r0, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- subs r0, r1
- strh r0, [r5, 0x1E]
- ldr r0, [r4]
- adds r2, r3
- adds r2, 0x1E
- movs r1, 0x39
- bl SetMonData
- ldrb r0, [r4, 0x4]
- ldr r1, _0806FAD0 @ =0xfffe6000
- adds r6, r1
- ldrb r1, [r6, 0x1]
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl sub_806D84C
- ldr r2, _0806FAD4 @ =gSprites
- ldrb r1, [r6, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r4, 0x5]
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0806FAD8 @ =gPlayerParty
- adds r0, r1
- str r0, [r4]
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r5, 0x1C]
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5, 0x1E]
- ldr r0, _0806FADC @ =0xffff8000
- str r0, [r4, 0xC]
- ldr r0, [r4, 0x10]
- str r0, [r4, 0x14]
- ldr r0, _0806FAE0 @ =sub_806F8AC
- str r0, [r5]
- ldrh r0, [r5, 0x1E]
- strh r0, [r7]
- b _0806FB04
- .align 2, 0
-_0806FAC4: .4byte 0x0201b000
-_0806FAC8: .4byte 0x00000282
-_0806FACC: .4byte gTasks
-_0806FAD0: .4byte 0xfffe6000
-_0806FAD4: .4byte gSprites
-_0806FAD8: .4byte gPlayerParty
-_0806FADC: .4byte 0xffff8000
-_0806FAE0: .4byte sub_806F8AC
-_0806FAE4:
- movs r1, 0x80
- lsls r1, 5
- adds r0, r6, r1
- ldrb r4, [r0, 0x5]
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r7]
- ldr r3, [sp]
- lsls r3, 16
- lsrs r3, 16
- adds r0, r4, 0
- bl sub_806E420
-_0806FB04:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806FA18
-
- thumb_func_start sub_806FB0C
-sub_806FB0C: @ 806FB0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806FB38 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806FB32
- ldr r3, _0806FB3C @ =gTasks
- ldr r2, _0806FB40 @ =0x0201c000
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r2, 0x10]
- str r1, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_0806FB32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FB38: .4byte gUnknown_0202E8F6
-_0806FB3C: .4byte gTasks
-_0806FB40: .4byte 0x0201c000
- thumb_func_end sub_806FB0C
-
- thumb_func_start sub_806FB44
-sub_806FB44: @ 806FB44
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806FB70 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806FB6A
- ldr r3, _0806FB74 @ =gTasks
- ldr r2, _0806FB78 @ =0x0201c000
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r2, 0x14]
- str r1, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_0806FB6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FB70: .4byte gUnknown_0202E8F6
-_0806FB74: .4byte gTasks
-_0806FB78: .4byte 0x0201c000
- thumb_func_end sub_806FB44
-
- thumb_func_start sub_806FB7C
-sub_806FB7C: @ 806FB7C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0806FB90
- ldr r0, _0806FB8C @ =gSaveBlock1 + 0x3676
- b _0806FB9A
- .align 2, 0
-_0806FB8C: .4byte gSaveBlock1 + 0x3676
-_0806FB90:
- ldr r1, _0806FBA8 @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_0806FB9A:
- ldrb r1, [r0, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0806FBAC
- movs r0, 0
- b _0806FBAE
- .align 2, 0
-_0806FBA8: .4byte gItemEffectTable
-_0806FBAC:
- movs r0, 0x1
-_0806FBAE:
- pop {r1}
- bx r1
- thumb_func_end sub_806FB7C
-
- thumb_func_start sub_806FBB4
-sub_806FBB4: @ 806FBB4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806E168
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E2C0
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806FBB4
-
- thumb_func_start GetMedicineItemEffectMessage
-GetMedicineItemEffectMessage: @ 806FBD0
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0x12
- bls _0806FBE6
- b _0806FD7C
-_0806FBE6:
- lsls r0, 2
- ldr r1, _0806FBF0 @ =_0806FBF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806FBF0: .4byte _0806FBF4
- .align 2, 0
-_0806FBF4:
- .4byte _0806FC40
- .4byte _0806FC54
- .4byte _0806FC68
- .4byte _0806FC7C
- .4byte _0806FC90
- .4byte _0806FCA4
- .4byte _0806FCB8
- .4byte _0806FD7C
- .4byte _0806FCCC
- .4byte _0806FCF0
- .4byte _0806FCE0
- .4byte _0806FD20
- .4byte _0806FD30
- .4byte _0806FD10
- .4byte _0806FD00
- .4byte _0806FD7C
- .4byte _0806FD54
- .4byte _0806FD54
- .4byte _0806FD68
-_0806FC40:
- ldr r0, _0806FC4C @ =gStringVar4
- ldr r1, _0806FC50 @ =gOtherText_CuredPoisoning
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC4C: .4byte gStringVar4
-_0806FC50: .4byte gOtherText_CuredPoisoning
-_0806FC54:
- ldr r0, _0806FC60 @ =gStringVar4
- ldr r1, _0806FC64 @ =gOtherText_WokeUp
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC60: .4byte gStringVar4
-_0806FC64: .4byte gOtherText_WokeUp
-_0806FC68:
- ldr r0, _0806FC74 @ =gStringVar4
- ldr r1, _0806FC78 @ =gOtherText_BurnHealed
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC74: .4byte gStringVar4
-_0806FC78: .4byte gOtherText_BurnHealed
-_0806FC7C:
- ldr r0, _0806FC88 @ =gStringVar4
- ldr r1, _0806FC8C @ =gOtherText_ThawedOut
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC88: .4byte gStringVar4
-_0806FC8C: .4byte gOtherText_ThawedOut
-_0806FC90:
- ldr r0, _0806FC9C @ =gStringVar4
- ldr r1, _0806FCA0 @ =gOtherText_CuredParalysis
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC9C: .4byte gStringVar4
-_0806FCA0: .4byte gOtherText_CuredParalysis
-_0806FCA4:
- ldr r0, _0806FCB0 @ =gStringVar4
- ldr r1, _0806FCB4 @ =gOtherText_SnapConfusion
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCB0: .4byte gStringVar4
-_0806FCB4: .4byte gOtherText_SnapConfusion
-_0806FCB8:
- ldr r0, _0806FCC4 @ =gStringVar4
- ldr r1, _0806FCC8 @ =gOtherText_GotOverLove
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCC4: .4byte gStringVar4
-_0806FCC8: .4byte gOtherText_GotOverLove
-_0806FCCC:
- ldr r0, _0806FCD8 @ =gStringVar4
- ldr r1, _0806FCDC @ =gOtherText_BecameHealthy
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCD8: .4byte gStringVar4
-_0806FCDC: .4byte gOtherText_BecameHealthy
-_0806FCE0:
- ldr r0, _0806FCE8 @ =gStringVar2
- ldr r1, _0806FCEC @ =gOtherText_Hp2
- b _0806FD34
- .align 2, 0
-_0806FCE8: .4byte gStringVar2
-_0806FCEC: .4byte gOtherText_Hp2
-_0806FCF0:
- ldr r0, _0806FCF8 @ =gStringVar2
- ldr r1, _0806FCFC @ =gOtherText_Attack
- b _0806FD34
- .align 2, 0
-_0806FCF8: .4byte gStringVar2
-_0806FCFC: .4byte gOtherText_Attack
-_0806FD00:
- ldr r0, _0806FD08 @ =gStringVar2
- ldr r1, _0806FD0C @ =gOtherText_Defense
- b _0806FD34
- .align 2, 0
-_0806FD08: .4byte gStringVar2
-_0806FD0C: .4byte gOtherText_Defense
-_0806FD10:
- ldr r0, _0806FD18 @ =gStringVar2
- ldr r1, _0806FD1C @ =gOtherText_Speed
- b _0806FD34
- .align 2, 0
-_0806FD18: .4byte gStringVar2
-_0806FD1C: .4byte gOtherText_Speed
-_0806FD20:
- ldr r0, _0806FD28 @ =gStringVar2
- ldr r1, _0806FD2C @ =gOtherText_SpAtk2
- b _0806FD34
- .align 2, 0
-_0806FD28: .4byte gStringVar2
-_0806FD2C: .4byte gOtherText_SpAtk2
-_0806FD30:
- ldr r0, _0806FD44 @ =gStringVar2
- ldr r1, _0806FD48 @ =gOtherText_SpDef2
-_0806FD34:
- bl StringCopy
- ldr r0, _0806FD4C @ =gStringVar4
- ldr r1, _0806FD50 @ =gOtherText_WasRaised
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD44: .4byte gStringVar2
-_0806FD48: .4byte gOtherText_SpDef2
-_0806FD4C: .4byte gStringVar4
-_0806FD50: .4byte gOtherText_WasRaised
-_0806FD54:
- ldr r0, _0806FD60 @ =gStringVar4
- ldr r1, _0806FD64 @ =gOtherText_PPIncreased
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD60: .4byte gStringVar4
-_0806FD64: .4byte gOtherText_PPIncreased
-_0806FD68:
- ldr r0, _0806FD74 @ =gStringVar4
- ldr r1, _0806FD78 @ =gOtherText_PPRestored
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD74: .4byte gStringVar4
-_0806FD78: .4byte gOtherText_PPRestored
-_0806FD7C:
- ldr r0, _0806FD88 @ =gStringVar4
- ldr r1, _0806FD8C @ =gOtherText_WontHaveAnyEffect
- bl StringExpandPlaceholders
-_0806FD84:
- pop {r0}
- bx r0
- .align 2, 0
-_0806FD88: .4byte gStringVar4
-_0806FD8C: .4byte gOtherText_WontHaveAnyEffect
- thumb_func_end GetMedicineItemEffectMessage
-
- thumb_func_start sub_806FD90
-sub_806FD90: @ 806FD90
- push {r4,lr}
- adds r4, r0, 0
- lsls r0, r1, 16
- lsrs r0, 16
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bne _0806FDBC
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0806FDB8 @ =0x0000012f
- cmp r0, r1
- bne _0806FDBC
- movs r0, 0x1
- b _0806FDBE
- .align 2, 0
-_0806FDB8: .4byte 0x0000012f
-_0806FDBC:
- movs r0, 0
-_0806FDBE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806FD90
-
- thumb_func_start ExecuteTableBasedItemEffect__
-ExecuteTableBasedItemEffect__: @ 806FDC4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _0806FDF0 @ =gMain
- ldr r1, _0806FDF4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0806FDFC
- movs r0, 0x64
- muls r0, r3
- ldr r1, _0806FDF8 @ =gPlayerParty
- adds r0, r1
- adds r1, r5, 0
- adds r2, r3, 0
- b _0806FE16
- .align 2, 0
-_0806FDF0: .4byte gMain
-_0806FDF4: .4byte 0x0000043d
-_0806FDF8: .4byte gPlayerParty
-_0806FDFC:
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r0, _0806FE28 @ =gPlayerParty
- adds r4, r0
- adds r0, r3, 0
- bl sub_8094C20
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
-_0806FE16:
- adds r3, r6, 0
- bl ExecuteTableBasedItemEffect_
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806FE28: .4byte gPlayerParty
- thumb_func_end ExecuteTableBasedItemEffect__
-
- thumb_func_start sub_806FE2C
-sub_806FE2C: @ 806FE2C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r6, r1, 16
- movs r0, 0
- mov r9, r0
- ldr r1, _0806FED4 @ =gTasks
- mov r10, r1
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- add r1, r10
- ldr r0, _0806FED8 @ =TaskDummy
- str r0, [r1]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E8D0
- ldr r5, _0806FEDC @ =0x0201c000
- ldr r0, [r5]
- adds r1, r6, 0
- bl sub_806FD90
- lsls r0, 24
- cmp r0, 0
- bne _0806FEE0
- adds r0, r6, 0
- bl sub_806FB7C
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, r7, 2
- mov r8, r2
- cmp r0, 0x1
- bne _0806FEC2
- ldr r0, [r5]
- movs r1, 0x3A
- bl GetMonData
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- mov r2, r10
- adds r4, r1, r2
- strh r0, [r4, 0x1C]
- ldr r0, [r5]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x1E]
- movs r3, 0x1C
- ldrsh r1, [r4, r3]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _0806FEC2
- movs r0, 0
- mov r9, r0
- mov r1, r9
- strh r1, [r4, 0x1C]
- strh r1, [r4, 0x1E]
-_0806FEC2:
- ldr r0, _0806FEDC @ =0x0201c000
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- lsrs r0, 24
- b _0806FEE6
- .align 2, 0
-_0806FED4: .4byte gTasks
-_0806FED8: .4byte TaskDummy
-_0806FEDC: .4byte 0x0201c000
-_0806FEE0:
- movs r0, 0x1
- lsls r2, r7, 2
- mov r8, r2
-_0806FEE6:
- cmp r0, 0
- beq _0806FF14
- ldr r1, _0806FF08 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0806FF0C @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806FF10 @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- b _08070002
- .align 2, 0
-_0806FF08: .4byte gUnknown_0202E8F4
-_0806FF0C: .4byte gOtherText_WontHaveAnyEffect
-_0806FF10: .4byte gTasks
-_0806FF14:
- ldr r1, _0806FF30 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r6, 0
- bl IsBlueYellowRedFlute
- lsls r0, 24
- cmp r0, 0
- bne _0806FF34
- movs r0, 0x1
- bl PlaySE
- b _0806FF3A
- .align 2, 0
-_0806FF30: .4byte gUnknown_0202E8F4
-_0806FF34:
- movs r0, 0x75
- bl PlaySE
-_0806FF3A:
- ldr r4, _0806FF88 @ =0x0201c000
- ldr r0, [r4]
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _0806FF4E
- cmp r0, 0
- bne _0806FF56
-_0806FF4E:
- ldr r0, [r4]
- ldrb r1, [r4, 0x5]
- bl sub_806FBB4
-_0806FF56:
- mov r0, r9
- cmp r0, 0x1
- bne _0806FFC8
- ldr r4, _0806FF88 @ =0x0201c000
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- ldr r2, _0806FF8C @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r2, 0x1E]
- subs r0, r1
- strh r0, [r2, 0x20]
- ldr r0, _0806FF90 @ =0xffff8000
- str r0, [r4, 0xC]
- movs r1, 0x1E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0806FF94
- mov r3, r9
- strh r3, [r2, 0x24]
- b _0806FF98
- .align 2, 0
-_0806FF88: .4byte 0x0201c000
-_0806FF8C: .4byte gTasks
-_0806FF90: .4byte 0xffff8000
-_0806FF94:
- movs r0, 0
- strh r0, [r2, 0x24]
-_0806FF98:
- ldr r2, _0806FFB8 @ =0x0201c000
- ldr r0, [r2, 0x10]
- str r0, [r2, 0x14]
- ldr r1, _0806FFBC @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806FFC0 @ =sub_806F8AC
- str r1, [r0]
- ldrh r0, [r0, 0x1E]
- ldr r1, _0806FFC4 @ =0xfffff282
- adds r2, r1
- strh r0, [r2]
- b _0807000A
- .align 2, 0
-_0806FFB8: .4byte 0x0201c000
-_0806FFBC: .4byte gTasks
-_0806FFC0: .4byte sub_806F8AC
-_0806FFC4: .4byte 0xfffff282
-_0806FFC8:
- ldr r4, _08070018 @ =0x0201c000
- ldr r0, [r4]
- ldr r1, _0807001C @ =gStringVar1
- bl GetMonNickname
- adds r0, r6, 0
- bl IsBlueYellowRedFlute
- lsls r0, 24
- cmp r0, 0
- bne _0806FFE6
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
-_0806FFE6:
- adds r0, r6, 0
- bl GetMedicineItemEffectMessage
- ldrb r0, [r4, 0x5]
- ldr r1, [r4]
- bl sub_806E07C
- ldr r0, _08070020 @ =gStringVar4
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070024 @ =gTasks
- mov r2, r8
- adds r0, r2, r7
-_08070002:
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070028 @ =sub_806FB0C
- str r1, [r0]
-_0807000A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070018: .4byte 0x0201c000
-_0807001C: .4byte gStringVar1
-_08070020: .4byte gStringVar4
-_08070024: .4byte gTasks
-_08070028: .4byte sub_806FB0C
- thumb_func_end sub_806FE2C
-
- thumb_func_start IsBlueYellowRedFlute
-IsBlueYellowRedFlute: @ 807002C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x27
- beq _0807003E
- cmp r0, 0x29
- beq _0807003E
- cmp r0, 0x28
- bne _08070042
-_0807003E:
- movs r0, 0x1
- b _08070044
-_08070042:
- movs r0, 0
-_08070044:
- pop {r1}
- bx r1
- thumb_func_end IsBlueYellowRedFlute
-
- thumb_func_start sub_8070048
-sub_8070048: @ 8070048
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08070078 @ =0x0201c000
- str r2, [r3, 0x10]
- movs r4, 0
- strb r0, [r3, 0x4]
- movs r2, 0
- strh r1, [r3, 0x6]
- strb r2, [r3, 0x5]
- ldr r1, _0807007C @ =sub_80701DC
- str r1, [r3, 0x14]
- ldr r2, _08070080 @ =0xfffff27e
- adds r1, r3, r2
- strh r4, [r1]
- ldr r1, _08070084 @ =0xfffff280
- adds r3, r1
- strh r4, [r3]
- bl sub_8070088
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070078: .4byte 0x0201c000
-_0807007C: .4byte sub_80701DC
-_08070080: .4byte 0xfffff27e
-_08070084: .4byte 0xfffff280
- thumb_func_end sub_8070048
-
- thumb_func_start sub_8070088
-sub_8070088: @ 8070088
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08070120 @ =gTasks
- mov r10, r1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- mov r2, r10
- adds r7, r1, r2
- ldr r5, _08070124 @ =TaskDummy
- str r5, [r7]
- ldr r4, _08070128 @ =0x0201c000
- ldrb r0, [r4, 0x5]
- movs r1, 0x64
- mov r9, r1
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _0807012C @ =gPlayerParty
- mov r8, r1
- add r0, r8
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08070118
- adds r0, r5, 0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- str r0, [sp]
- mov r0, r10
- adds r0, 0x8
- ldr r2, [sp]
- adds r6, r2, r0
- ldrb r0, [r4, 0x5]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- str r0, [r4]
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r6, 0x14]
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r6, 0x16]
- ldrb r0, [r4, 0x5]
- ldrh r1, [r4, 0x6]
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _08070134
- adds r0, r5, 0
- bl DestroyTask
-_08070118:
- ldr r0, _08070130 @ =sub_80701DC
- str r0, [r7]
- b _080701B0
- .align 2, 0
-_08070120: .4byte gTasks
-_08070124: .4byte TaskDummy
-_08070128: .4byte 0x0201c000
-_0807012C: .4byte gPlayerParty
-_08070130: .4byte sub_80701DC
-_08070134:
- ldr r1, _080701C0 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x1
- bl PlaySE
- ldr r0, [r4]
- ldrb r1, [r4, 0x5]
- bl sub_806FBB4
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _080701C4 @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x9
- bl task_pc_turn_off
- ldr r2, _080701C8 @ =0xfffff261
- adds r1, r4, r2
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, [r4]
- movs r1, 0x39
- bl GetMonData
- ldrh r1, [r6, 0x16]
- subs r0, r1
- strh r0, [r6, 0x18]
- movs r0, 0x1
- strh r0, [r6, 0x1C]
- ldr r1, _080701CC @ =0xfffff27e
- adds r0, r4, r1
- movs r1, 0x1
- strh r1, [r0]
- ldr r2, _080701D0 @ =0xfffff280
- adds r0, r4, r2
- strh r1, [r0]
- ldrh r1, [r6, 0x16]
- adds r2, 0x2
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _080701D4 @ =0xffff8000
- str r0, [r4, 0xC]
- ldr r1, [sp]
- add r1, r10
- ldr r0, _080701D8 @ =sub_806F8AC
- str r0, [r1]
-_080701B0:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080701C0: .4byte gUnknown_0202E8F4
-_080701C4: .4byte gUnknown_083769A8
-_080701C8: .4byte 0xfffff261
-_080701CC: .4byte 0xfffff27e
-_080701D0: .4byte 0xfffff280
-_080701D4: .4byte 0xffff8000
-_080701D8: .4byte sub_806F8AC
- thumb_func_end sub_8070088
-
- thumb_func_start sub_80701DC
-sub_80701DC: @ 80701DC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _08070280 @ =0x0201b000
- ldr r0, _08070284 @ =0x0000027e
- adds r7, r6, r0
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- bne _0807023E
- movs r0, 0x80
- lsls r0, 5
- adds r4, r6, r0
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl AddBagItem
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08070288 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0807023A
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _0807028C @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x3
- bl task_pc_turn_off
- ldr r0, _08070290 @ =0x00000261
- adds r1, r6, r0
- movs r0, 0x2
- strb r0, [r1]
-_0807023A:
- movs r0, 0
- strh r0, [r7]
-_0807023E:
- ldr r4, _08070294 @ =0x0201c000
- ldrb r0, [r4, 0x5]
- adds r0, 0x1
- strb r0, [r4, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _080702D8
- ldr r1, _08070298 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0807029C @ =0xfffff280
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080702B0
- ldr r1, _080702A0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080702A4 @ =TaskDummy
- str r1, [r0]
- ldr r0, _080702A8 @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _080702AC @ =sub_806FB0C
- movs r1, 0x8
- bl CreateTask
- b _080702C6
- .align 2, 0
-_08070280: .4byte 0x0201b000
-_08070284: .4byte 0x0000027e
-_08070288: .4byte gPlayerParty
-_0807028C: .4byte gUnknown_083769A8
-_08070290: .4byte 0x00000261
-_08070294: .4byte 0x0201c000
-_08070298: .4byte gUnknown_0202E8F4
-_0807029C: .4byte 0xfffff280
-_080702A0: .4byte gTasks
-_080702A4: .4byte TaskDummy
-_080702A8: .4byte gOtherText_WontHaveAnyEffect
-_080702AC: .4byte sub_806FB0C
-_080702B0:
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r1, _080702D0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, [r4, 0x10]
- str r1, [r0]
-_080702C6:
- ldr r1, _080702D4 @ =gUnknown_03005CE0
- movs r0, 0
- strb r0, [r1]
- b _080702DE
- .align 2, 0
-_080702D0: .4byte gTasks
-_080702D4: .4byte gUnknown_03005CE0
-_080702D8:
- adds r0, r5, 0
- bl sub_8070088
-_080702DE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80701DC
-
- thumb_func_start sub_80702E4
-sub_80702E4: @ 80702E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r6, 0
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r5, 0
- movs r0, 0x64
- adds r7, r4, 0
- muls r7, r0
- ldr r0, _0807036C @ =gPlayerParty
- mov r8, r0
-_0807030C:
- adds r1, r5, 0
- adds r1, 0xD
- mov r2, r8
- adds r0, r7, r2
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xD
- muls r0, r4
- ldr r1, _08070370 @ =gMoveNames
- adds r0, r1
- lsls r2, r5, 25
- movs r1, 0xB0
- lsls r1, 20
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x14
- bl MenuPrint
- cmp r4, 0
- beq _08070340
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08070340:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0807030C
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x14
- movs r2, 0xB
- adds r3, r6, 0
- bl InitMenu
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807036C: .4byte gPlayerParty
-_08070370: .4byte gMoveNames
- thumb_func_end sub_80702E4
-
- thumb_func_start sub_8070374
-sub_8070374: @ 8070374
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r0, _08070398 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0807039C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080703E4
- .align 2, 0
-_08070398: .4byte gMain
-_0807039C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080703B2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080703E4
-_080703B2:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080703CC
- ldr r0, _080703C8 @ =gUnknown_08376B54
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- b _080703E4
- .align 2, 0
-_080703C8: .4byte gUnknown_08376B54
-_080703CC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080703E4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080703EC @ =gUnknown_08376B54
- ldr r1, [r0, 0x4]
- adds r0, r4, 0
- bl _call_via_r1
-_080703E4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080703EC: .4byte gUnknown_08376B54
- thumb_func_end sub_8070374
-
- thumb_func_start dp05_ether
-dp05_ether: @ 80703F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r2
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- cmp r5, 0xAF
- bne _08070410
- ldr r0, _0807040C @ =gSaveBlock1 + 0x3676
- b _0807041C
- .align 2, 0
-_0807040C: .4byte gSaveBlock1 + 0x3676
-_08070410:
- ldr r1, _08070464 @ =gItemEffectTable
- adds r0, r5, 0
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_0807041C:
- mov r8, r0
- ldr r7, _08070468 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r7
- ldr r0, _0807046C @ =TaskDummy
- str r0, [r1]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r9
- bl sub_806E8D0
- mov r0, r8
- ldrb r1, [r0, 0x4]
- movs r0, 0x10
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08070470
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- strh r1, [r0, 0x1E]
- adds r0, r4, 0
- bl ether_effect_related
- b _08070498
- .align 2, 0
-_08070464: .4byte gItemEffectTable
-_08070468: .4byte gTasks
-_0807046C: .4byte TaskDummy
-_08070470:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xA
- movs r1, 0x3
- bl sub_806D538
- ldr r0, _080704A4 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- bl sub_80702E4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- ldr r1, _080704A8 @ =sub_8070374
- str r1, [r0]
- ldr r1, _080704AC @ =gMain
- movs r0, 0
- strh r0, [r1, 0x2E]
-_08070498:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080704A4: .4byte 0x0201c000
-_080704A8: .4byte sub_8070374
-_080704AC: .4byte gMain
- thumb_func_end dp05_ether
-
- thumb_func_start ether_effect_related_2
-ether_effect_related_2: @ 80704B0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- bl GetMenuCursorPos
- ldr r2, _080704EC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x1E]
- adds r0, r4, 0
- bl ether_effect_related
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080704EC: .4byte gTasks
- thumb_func_end ether_effect_related_2
-
- thumb_func_start sub_80704F0
-sub_80704F0: @ 80704F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08070528 @ =gMain
- ldr r1, _0807052C @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0807053C
- ldr r2, _08070530 @ =gTasks
- ldr r0, _08070534 @ =0x0201c000
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08070538 @ =sub_8095118
- b _0807054C
- .align 2, 0
-_08070528: .4byte gMain
-_0807052C: .4byte 0x0000043d
-_08070530: .4byte gTasks
-_08070534: .4byte 0x0201c000
-_08070538: .4byte sub_8095118
-_0807053C:
- ldr r2, _08070564 @ =gTasks
- ldr r0, _08070568 @ =0x0201c000
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0807056C @ =sub_808B0C0
-_0807054C:
- str r1, [r0]
- movs r0, 0x3
- movs r1, 0
- bl sub_806D538
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070564: .4byte gTasks
-_08070568: .4byte 0x0201c000
-_0807056C: .4byte sub_808B0C0
- thumb_func_end sub_80704F0
-
- thumb_func_start ether_effect_related
-ether_effect_related: @ 8070570
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r6, _080705A8 @ =0x0201c000
- ldrb r0, [r6, 0x5]
- ldrh r1, [r6, 0x6]
- ldr r3, _080705AC @ =gTasks
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- adds r7, r2, r3
- ldrb r2, [r7, 0x1E]
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _080705B8
- ldr r0, _080705B0 @ =gUnknown_0202E8F4
- strb r5, [r0]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080705B4 @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- b _080705F8
- .align 2, 0
-_080705A8: .4byte 0x0201c000
-_080705AC: .4byte gTasks
-_080705B0: .4byte gUnknown_0202E8F4
-_080705B4: .4byte gOtherText_WontHaveAnyEffect
-_080705B8:
- ldr r1, _0807060C @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- bl PlaySE
- ldrh r0, [r6, 0x6]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r0, [r6]
- movs r2, 0x1E
- ldrsh r1, [r7, r2]
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _08070610 @ =gStringVar1
- movs r1, 0xD
- muls r1, r5
- ldr r2, _08070614 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldrh r0, [r6, 0x6]
- bl GetMedicineItemEffectMessage
- ldr r0, _08070618 @ =gStringVar4
- movs r1, 0x1
- bl sub_806E834
-_080705F8:
- ldr r0, _0807061C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070620 @ =sub_806FB0C
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807060C: .4byte gUnknown_0202E8F4
-_08070610: .4byte gStringVar1
-_08070614: .4byte gMoveNames
-_08070618: .4byte gStringVar4
-_0807061C: .4byte gTasks
-_08070620: .4byte sub_806FB0C
- thumb_func_end ether_effect_related
-
- thumb_func_start dp05_pp_up
-dp05_pp_up: @ 8070624
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0807066C @ =gTasks
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- adds r3, r4
- ldr r4, _08070670 @ =TaskDummy
- str r4, [r3]
- bl sub_806E8D0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xB
- movs r1, 0x3
- bl sub_806D538
- ldr r0, _08070674 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- bl sub_80702E4
- ldr r0, _08070678 @ =sub_8070374
- movs r1, 0x5
- bl CreateTask
- ldr r1, _0807067C @ =gMain
- movs r0, 0
- strh r0, [r1, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807066C: .4byte gTasks
-_08070670: .4byte TaskDummy
-_08070674: .4byte 0x0201c000
-_08070678: .4byte sub_8070374
-_0807067C: .4byte gMain
- thumb_func_end dp05_pp_up
-
- thumb_func_start sub_8070680
-sub_8070680: @ 8070680
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r3, _080706E0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _080706E4 @ =TaskDummy
- str r3, [r1]
- adds r1, r6, 0
- bl sub_806E8D0
- ldr r5, _080706E8 @ =0x0201c000
- ldr r0, [r5]
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _080706F4
- movs r4, 0
- ldr r0, _080706EC @ =0xfffff264
- adds r7, r5, r0
-_080706B2:
- ldr r0, [r5]
- ldr r1, _080706F0 @ =gUnknown_08376D1C
- adds r1, r4, r1
- ldrb r1, [r1]
- bl GetMonData
- lsls r1, r4, 1
- adds r1, r7, r1
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _080706B2
- ldr r0, _080706E8 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- lsrs r0, 24
- b _080706F6
- .align 2, 0
-_080706E0: .4byte gTasks
-_080706E4: .4byte TaskDummy
-_080706E8: .4byte 0x0201c000
-_080706EC: .4byte 0xfffff264
-_080706F0: .4byte gUnknown_08376D1C
-_080706F4:
- movs r0, 0x1
-_080706F6:
- cmp r0, 0
- beq _08070724
- ldr r1, _08070718 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0807071C @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _08070720 @ =sub_806FB0C
- movs r1, 0x5
- bl CreateTask
- b _0807077C
- .align 2, 0
-_08070718: .4byte gUnknown_0202E8F4
-_0807071C: .4byte gOtherText_WontHaveAnyEffect
-_08070720: .4byte sub_806FB0C
-_08070724:
- ldr r1, _08070784 @ =gUnknown_0202E8F4
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0
- bl PlayFanfareByFanfareNum
- ldr r4, _08070788 @ =0x0201c000
- ldrb r0, [r4, 0x5]
- ldr r1, [r4]
- bl sub_8070A20
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
- ldr r0, [r4]
- ldr r1, _0807078C @ =gStringVar1
- bl GetMonNickname
- ldr r0, [r4]
- movs r1, 0x38
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08070790 @ =gStringVar2
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _08070794 @ =gStringVar4
- ldr r1, _08070798 @ =gOtherText_ElevatedTo
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0807079C @ =sub_80707A0
- movs r1, 0x5
- bl CreateTask
-_0807077C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070784: .4byte gUnknown_0202E8F4
-_08070788: .4byte 0x0201c000
-_0807078C: .4byte gStringVar1
-_08070790: .4byte gStringVar2
-_08070794: .4byte gStringVar4
-_08070798: .4byte gOtherText_ElevatedTo
-_0807079C: .4byte sub_80707A0
- thumb_func_end sub_8070680
-
- thumb_func_start sub_80707A0
-sub_80707A0: @ 80707A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl WaitFanfare
- lsls r0, 24
- cmp r0, 0
- beq _080707E8
- ldr r0, _080707F0 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _080707E8
- ldr r0, _080707F4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080707CE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080707E8
-_080707CE:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_8070848
- ldr r0, _080707F8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080707FC @ =sub_8070800
- str r0, [r1]
-_080707E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080707F0: .4byte gUnknown_0202E8F6
-_080707F4: .4byte gMain
-_080707F8: .4byte gTasks
-_080707FC: .4byte sub_8070800
- thumb_func_end sub_80707A0
-
- thumb_func_start sub_8070800
-sub_8070800: @ 8070800
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807083C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0807081A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08070834
-_0807081A:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_8070968
- ldr r0, _08070840 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070844 @ =sub_8070AC8
- str r0, [r1]
-_08070834:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807083C: .4byte gMain
-_08070840: .4byte gTasks
-_08070844: .4byte sub_8070AC8
- thumb_func_end sub_8070800
-
- thumb_func_start sub_8070848
-sub_8070848: @ 8070848
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl MenuDrawTextWindow
- movs r7, 0
- ldr r0, _080708E4 @ =gStringVar1
- mov r10, r0
-_08070864:
- ldr r1, _080708E8 @ =0x0201c000
- ldr r0, [r1]
- ldr r1, _080708EC @ =gUnknown_08376D1C
- adds r1, r7, r1
- ldrb r1, [r1]
- bl GetMonData
- adds r1, r7, 0x6
- lsls r1, 1
- ldr r2, _080708F0 @ =0x0201b264
- adds r1, r2
- strh r0, [r1]
- lsls r4, r7, 1
- adds r2, r4, r2
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r2]
- adds r0, r7, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- adds r1, 0xB
- lsls r1, 24
- lsrs r6, r1, 24
- adds r0, r7, 0
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080708F4 @ =gUnknown_08376D04
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- adds r1, r6, 0x1
- lsls r1, 27
- lsrs r1, 24
- mov r2, r9
- lsls r5, r2, 3
- adds r2, r5, 0
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- mov r8, r4
- cmp r7, 0x2
- bne _080708FC
- adds r4, r6, 0x6
- lsls r1, r4, 3
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080708F8 @ =gOtherText_TallPlusAndRightArrow
- adds r2, r5, 0
- movs r3, 0
- bl MenuPrint_PixelCoords
- b _08070910
- .align 2, 0
-_080708E4: .4byte gStringVar1
-_080708E8: .4byte 0x0201c000
-_080708EC: .4byte gUnknown_08376D1C
-_080708F0: .4byte 0x0201b264
-_080708F4: .4byte gUnknown_08376D04
-_080708F8: .4byte gOtherText_TallPlusAndRightArrow
-_080708FC:
- adds r4, r6, 0x6
- lsls r1, r4, 3
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08070960 @ =gOtherText_TallPlusAndRightArrow
- adds r2, r5, 0
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_08070910:
- movs r0, 0xFC
- mov r1, r10
- strb r0, [r1]
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x6
- strb r0, [r1, 0x2]
- ldr r0, _08070964 @ =0x0201b264
- add r0, r8
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r0, r10
- adds r0, 0x3
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- lsls r1, r4, 27
- movs r0, 0xC0
- lsls r0, 20
- adds r1, r0
- lsrs r1, 24
- mov r0, r9
- lsls r2, r0, 3
- mov r0, r10
- movs r3, 0
- bl MenuPrint_PixelCoords
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _08070864
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070960: .4byte gOtherText_TallPlusAndRightArrow
-_08070964: .4byte 0x0201b264
- thumb_func_end sub_8070848
-
- thumb_func_start sub_8070968
-sub_8070968: @ 8070968
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r7, 0
- ldr r0, _08070A10 @ =0x0201c000
- mov r9, r0
- ldr r1, _08070A14 @ =0xfffff264
- add r1, r9
- mov r10, r1
- ldr r0, _08070A18 @ =gStringVar1
- mov r8, r0
-_08070982:
- mov r1, r9
- ldr r0, [r1]
- ldr r1, _08070A1C @ =gUnknown_08376D1C
- adds r1, r7, r1
- ldrb r1, [r1]
- bl GetMonData
- adds r6, r7, 0x6
- lsls r6, 1
- add r6, r10
- strh r0, [r6]
- adds r0, r7, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- adds r4, 0xB
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- movs r1, 0x3
- bl __umodsi3
- adds r5, r0, 0
- lsls r5, 1
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0xFC
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x6
- strb r0, [r1, 0x2]
- movs r0, 0
- ldrsh r1, [r6, r0]
- mov r0, r8
- adds r0, 0x3
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r4, 0x6
- lsls r4, 3
- adds r4, 0x6
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 3
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl MenuPrint_PixelCoords
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _08070982
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070A10: .4byte 0x0201c000
-_08070A14: .4byte 0xfffff264
-_08070A18: .4byte gStringVar1
-_08070A1C: .4byte gUnknown_08376D1C
- thumb_func_end sub_8070968
-
- thumb_func_start sub_8070A20
-sub_8070A20: @ 8070A20
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08070A3A
- cmp r0, 0x6
- bne _08070A42
-_08070A3A:
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_806FBB4
-_08070A42:
- bl battle_type_is_double
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806E420
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_806E674
- ldr r4, _08070ABC @ =0x0201c000
- ldrb r0, [r4, 0x4]
- adds r1, r7, 0
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r6, 0
- bl sub_806D84C
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- lsls r1, r7, 1
- adds r0, r1
- ldr r1, _08070AC0 @ =gUnknown_083769A8
- adds r0, r1
- movs r1, 0x7
- bl task_pc_turn_off
- ldr r0, _08070AC4 @ =0xfffff261
- adds r4, r0
- movs r0, 0x2
- strb r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070ABC: .4byte 0x0201c000
-_08070AC0: .4byte gUnknown_083769A8
-_08070AC4: .4byte 0xfffff261
- thumb_func_end sub_8070A20
-
- thumb_func_start sub_8070AC8
-sub_8070AC8: @ 8070AC8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl WaitFanfare
- lsls r0, 24
- cmp r0, 0
- bne _08070ADC
- b _08070C2C
-_08070ADC:
- ldr r0, _08070B24 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08070AF4
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08070AF4
- b _08070C2C
-_08070AF4:
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl MenuZeroFillWindowRect
- ldr r7, _08070B28 @ =0x0201c000
- ldr r0, [r7]
- movs r1, 0x1
- bl sub_803B7C8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _08070B2C @ =0xfffff282
- adds r0, r7, r1
- strh r5, [r0]
- ldr r0, _08070B30 @ =0x0000fffe
- cmp r4, r0
- beq _08070BDC
- cmp r4, r0
- bgt _08070B34
- cmp r4, 0
- beq _08070B40
- b _08070BF4
- .align 2, 0
-_08070B24: .4byte gMain
-_08070B28: .4byte 0x0201c000
-_08070B2C: .4byte 0xfffff282
-_08070B30: .4byte 0x0000fffe
-_08070B34:
- ldr r0, _08070B3C @ =0x0000ffff
- cmp r4, r0
- beq _08070B7C
- b _08070BF4
- .align 2, 0
-_08070B3C: .4byte 0x0000ffff
-_08070B40:
- ldr r0, [r7]
- movs r1, 0
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08070B74
- ldr r1, _08070B6C @ =gUnknown_03005E94
- ldr r0, _08070B70 @ =sub_80A53F8
- str r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r7, 0x5]
- adds r1, r2, 0
- movs r2, 0x1
- bl BeginEvolutionScene
- adds r0, r6, 0
- bl DestroyTask
- b _08070C2C
- .align 2, 0
-_08070B6C: .4byte gUnknown_03005E94
-_08070B70: .4byte sub_80A53F8
-_08070B74:
- adds r0, r6, 0
- bl sub_8070D90
- b _08070C2C
-_08070B7C:
- ldr r0, [r7]
- ldr r1, _08070BBC @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070BC0 @ =gStringVar2
- ldr r5, _08070BC4 @ =word_2024E82
- ldrh r2, [r5]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08070BC8 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070BCC @ =gStringVar4
- ldr r1, _08070BD0 @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldrh r0, [r5]
- strh r0, [r7, 0x8]
- ldr r1, _08070BD4 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070BD8 @ =sub_806F358
- b _08070C2A
- .align 2, 0
-_08070BBC: .4byte gStringVar1
-_08070BC0: .4byte gStringVar2
-_08070BC4: .4byte word_2024E82
-_08070BC8: .4byte gMoveNames
-_08070BCC: .4byte gStringVar4
-_08070BD0: .4byte gOtherText_WantsToLearn
-_08070BD4: .4byte gTasks
-_08070BD8: .4byte sub_806F358
-_08070BDC:
- ldr r0, _08070BEC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070BF0 @ =sub_8070C54
- str r0, [r1]
- b _08070C2C
- .align 2, 0
-_08070BEC: .4byte gTasks
-_08070BF0: .4byte sub_8070C54
-_08070BF4:
- ldr r0, _08070C34 @ =0x0201c000
- ldr r0, [r0]
- ldr r1, _08070C38 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070C3C @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _08070C40 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070C44 @ =gStringVar4
- ldr r1, _08070C48 @ =gOtherText_LearnedMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070C4C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070C50 @ =sub_806F254
-_08070C2A:
- str r1, [r0]
-_08070C2C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070C34: .4byte 0x0201c000
-_08070C38: .4byte gStringVar1
-_08070C3C: .4byte gStringVar2
-_08070C40: .4byte gMoveNames
-_08070C44: .4byte gStringVar4
-_08070C48: .4byte gOtherText_LearnedMove
-_08070C4C: .4byte gTasks
-_08070C50: .4byte sub_806F254
- thumb_func_end sub_8070AC8
-
- thumb_func_start sub_8070C54
-sub_8070C54: @ 8070C54
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _08070C78 @ =0x0201c000
- ldr r0, [r7]
- movs r1, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _08070C7C @ =0x0000fffe
- cmp r4, r0
- beq _08070D28
- cmp r4, r0
- bgt _08070C80
- cmp r4, 0
- beq _08070C8C
- b _08070D30
- .align 2, 0
-_08070C78: .4byte 0x0201c000
-_08070C7C: .4byte 0x0000fffe
-_08070C80:
- ldr r0, _08070C88 @ =0x0000ffff
- cmp r4, r0
- beq _08070CC8
- b _08070D30
- .align 2, 0
-_08070C88: .4byte 0x0000ffff
-_08070C8C:
- ldr r0, [r7]
- movs r1, 0
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08070CC0
- ldr r1, _08070CB8 @ =gUnknown_03005E94
- ldr r0, _08070CBC @ =sub_80A53F8
- str r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r7, 0x5]
- adds r1, r2, 0
- movs r2, 0x1
- bl BeginEvolutionScene
- adds r0, r6, 0
- bl DestroyTask
- b _08070D68
- .align 2, 0
-_08070CB8: .4byte gUnknown_03005E94
-_08070CBC: .4byte sub_80A53F8
-_08070CC0:
- adds r0, r6, 0
- bl sub_8070D90
- b _08070D68
-_08070CC8:
- ldr r0, [r7]
- ldr r1, _08070D08 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070D0C @ =gStringVar2
- ldr r5, _08070D10 @ =word_2024E82
- ldrh r2, [r5]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08070D14 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070D18 @ =gStringVar4
- ldr r1, _08070D1C @ =gOtherText_WantsToLearn
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldrh r0, [r5]
- strh r0, [r7, 0x8]
- ldr r1, _08070D20 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070D24 @ =sub_806F358
- b _08070D66
- .align 2, 0
-_08070D08: .4byte gStringVar1
-_08070D0C: .4byte gStringVar2
-_08070D10: .4byte word_2024E82
-_08070D14: .4byte gMoveNames
-_08070D18: .4byte gStringVar4
-_08070D1C: .4byte gOtherText_WantsToLearn
-_08070D20: .4byte gTasks
-_08070D24: .4byte sub_806F358
-_08070D28:
- adds r0, r6, 0
- bl sub_8070C54
- b _08070D68
-_08070D30:
- ldr r0, _08070D70 @ =0x0201c000
- ldr r0, [r0]
- ldr r1, _08070D74 @ =gStringVar1
- bl GetMonNickname
- ldr r0, _08070D78 @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _08070D7C @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, _08070D80 @ =gStringVar4
- ldr r1, _08070D84 @ =gOtherText_LearnedMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070D88 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070D8C @ =sub_806F254
-_08070D66:
- str r1, [r0]
-_08070D68:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070D70: .4byte 0x0201c000
-_08070D74: .4byte gStringVar1
-_08070D78: .4byte gStringVar2
-_08070D7C: .4byte gMoveNames
-_08070D80: .4byte gStringVar4
-_08070D84: .4byte gOtherText_LearnedMove
-_08070D88: .4byte gTasks
-_08070D8C: .4byte sub_806F254
- thumb_func_end sub_8070C54
-
- thumb_func_start sub_8070D90
-sub_8070D90: @ 8070D90
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08070DB4 @ =gTasks
- ldr r3, _08070DB8 @ =0x0201c000
- ldrb r2, [r3, 0x4]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r4
- ldr r2, [r3, 0x10]
- str r2, [r1]
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070DB4: .4byte gTasks
-_08070DB8: .4byte 0x0201c000
- thumb_func_end sub_8070D90
-
- thumb_func_start sub_8070DBC
-sub_8070DBC: @ 8070DBC
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r6, r1, 16
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08070E18 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070E1C @ =TaskDummy
- str r1, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E8D0
- ldr r1, _08070E20 @ =gUnknown_03005E94
- ldr r0, _08070E24 @ =sub_80A53F8
- str r0, [r1]
- ldr r0, _08070E28 @ =0x0201c000
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _08070E38
- ldr r1, _08070E2C @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08070E30 @ =gOtherText_WontHaveAnyEffect
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _08070E34 @ =sub_806FB0C
- movs r1, 0x5
- bl CreateTask
- b _08070E40
- .align 2, 0
-_08070E18: .4byte gTasks
-_08070E1C: .4byte TaskDummy
-_08070E20: .4byte gUnknown_03005E94
-_08070E24: .4byte sub_80A53F8
-_08070E28: .4byte 0x0201c000
-_08070E2C: .4byte gUnknown_0202E8F4
-_08070E30: .4byte gOtherText_WontHaveAnyEffect
-_08070E34: .4byte sub_806FB0C
-_08070E38:
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
-_08070E40:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8070DBC
-
- thumb_func_start sub_8070E48
-sub_8070E48: @ 8070E48
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08070E5C
- ldr r4, _08070E58 @ =gSaveBlock1 + 0x3676
- b _08070E66
- .align 2, 0
-_08070E58: .4byte gSaveBlock1 + 0x3676
-_08070E5C:
- ldr r1, _08070E8C @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
-_08070E66:
- ldrb r1, [r4]
- movs r5, 0x3F
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08070E88
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08070E88
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- bne _08070E88
- ldrb r3, [r4, 0x3]
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _08070E90
-_08070E88:
- movs r0, 0
- b _08070F8A
- .align 2, 0
-_08070E8C: .4byte gItemEffectTable
-_08070E90:
- movs r2, 0x40
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08070E9E
- movs r0, 0xA
- b _08070F8A
-_08070E9E:
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _08070EAA
- movs r0, 0x1
- b _08070F8A
-_08070EAA:
- adds r2, r5, 0
- ands r2, r3
- cmp r2, 0
- bne _08070EB8
- lsrs r0, r1, 7
- cmp r0, 0
- beq _08070EFA
-_08070EB8:
- cmp r2, 0x20
- bne _08070EC0
- movs r0, 0x4
- b _08070F8A
-_08070EC0:
- cmp r2, 0x10
- bne _08070EC8
- movs r0, 0x3
- b _08070F8A
-_08070EC8:
- cmp r2, 0x8
- bne _08070ED0
- movs r0, 0x5
- b _08070F8A
-_08070ED0:
- cmp r2, 0x4
- bne _08070ED8
- movs r0, 0x6
- b _08070F8A
-_08070ED8:
- cmp r2, 0x2
- bne _08070EE0
- movs r0, 0x7
- b _08070F8A
-_08070EE0:
- cmp r2, 0x1
- bne _08070EE8
- movs r0, 0x8
- b _08070F8A
-_08070EE8:
- lsrs r0, r1, 7
- cmp r0, 0
- beq _08070EF6
- cmp r2, 0
- bne _08070EF6
- movs r0, 0x9
- b _08070F8A
-_08070EF6:
- movs r0, 0xB
- b _08070F8A
-_08070EFA:
- ldrb r1, [r4, 0x4]
- movs r0, 0x44
- ands r0, r1
- adds r2, r1, 0
- cmp r0, 0
- beq _08070F0A
- movs r0, 0x2
- b _08070F8A
-_08070F0A:
- movs r5, 0x2
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _08070F18
- movs r0, 0xC
- b _08070F8A
-_08070F18:
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r2
- cmp r0, 0
- beq _08070F26
- movs r0, 0xD
- b _08070F8A
-_08070F26:
- ldrb r1, [r4, 0x5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08070F34
- movs r0, 0xE
- b _08070F8A
-_08070F34:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08070F40
- movs r0, 0xF
- b _08070F8A
-_08070F40:
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08070F4C
- movs r0, 0x10
- b _08070F8A
-_08070F4C:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08070F58
- movs r0, 0x11
- b _08070F8A
-_08070F58:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08070F64
- movs r0, 0x12
- b _08070F8A
-_08070F64:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _08070F70
- movs r0, 0x13
- b _08070F8A
-_08070F70:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08070F7C
- movs r0, 0x14
- b _08070F8A
-_08070F7C:
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- bne _08070F88
- movs r0, 0x16
- b _08070F8A
-_08070F88:
- movs r0, 0x15
-_08070F8A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8070E48
-
- thumb_func_start unref_sub_8070F90
-unref_sub_8070F90: @ 8070F90
- push {lr}
- ldr r0, _08070FAC @ =0x00000801
- bl FlagSet
- movs r0, 0x80
- lsls r0, 4
- bl FlagSet
- ldr r0, _08070FB0 @ =0x00000802
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_08070FAC: .4byte 0x00000801
-_08070FB0: .4byte 0x00000802
- thumb_func_end unref_sub_8070F90
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8074BAC.s b/asm/rom_8074BAC.s
deleted file mode 100644
index 27f89abde..000000000
--- a/asm/rom_8074BAC.s
+++ /dev/null
@@ -1,11073 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8075624
-sub_8075624: @ 8075624
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080756B8 @ =gUnknown_0202F7B0
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080756BC @ =gUnknown_0202F7B1
- strb r1, [r0]
- ldr r0, _080756C0 @ =gUnknown_0202F7B2
- strb r1, [r0]
- ldr r0, _080756C4 @ =gUnknown_0202F7B3
- strb r1, [r0]
- ldr r0, _080756C8 @ =gUnknown_0202F7B4
- movs r1, 0
- str r1, [r0]
- ldr r0, _080756CC @ =gUnknown_0202F7B8
- str r1, [r0]
- ldr r0, _080756D0 @ =gUnknown_0202F7BC
- movs r2, 0
- strh r1, [r0]
- ldr r0, _080756D4 @ =gUnknown_0202F7BE
- strb r2, [r0]
- ldr r4, _080756D8 @ =gUnknown_0202F7C2
- ldr r5, _080756DC @ =gUnknown_0202F7C4
- ldr r6, _080756E0 @ =gUnknown_0202F7C5
- ldr r7, _080756E4 @ =gUnknown_0202F7C6
- ldr r0, _080756E8 @ =gUnknown_0202F7C8
- mov r12, r0
- ldr r1, _080756EC @ =gUnknown_0202F7C9
- mov r8, r1
- ldr r0, _080756F0 @ =gUnknown_0202F7D2
- mov r9, r0
- ldr r1, _080756F4 @ =0x0000ffff
- adds r3, r1, 0
- ldr r1, _080756F8 @ =gUnknown_03004B10
- movs r2, 0x7
-_0807566E:
- ldrh r0, [r1]
- orrs r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _0807566E
- ldr r1, _080756FC @ =gUnknown_03004B00
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xE
-_08075684:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _08075684
- movs r1, 0
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4, 0x1]
- strb r1, [r5]
- strb r1, [r6]
- movs r0, 0
- strh r1, [r7]
- mov r1, r12
- strb r0, [r1]
- mov r1, r8
- strb r0, [r1]
- mov r1, r9
- strb r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080756B8: .4byte gUnknown_0202F7B0
-_080756BC: .4byte gUnknown_0202F7B1
-_080756C0: .4byte gUnknown_0202F7B2
-_080756C4: .4byte gUnknown_0202F7B3
-_080756C8: .4byte gUnknown_0202F7B4
-_080756CC: .4byte gUnknown_0202F7B8
-_080756D0: .4byte gUnknown_0202F7BC
-_080756D4: .4byte gUnknown_0202F7BE
-_080756D8: .4byte gUnknown_0202F7C2
-_080756DC: .4byte gUnknown_0202F7C4
-_080756E0: .4byte gUnknown_0202F7C5
-_080756E4: .4byte gUnknown_0202F7C6
-_080756E8: .4byte gUnknown_0202F7C8
-_080756EC: .4byte gUnknown_0202F7C9
-_080756F0: .4byte gUnknown_0202F7D2
-_080756F4: .4byte 0x0000ffff
-_080756F8: .4byte gUnknown_03004B10
-_080756FC: .4byte gUnknown_03004B00
- thumb_func_end sub_8075624
-
- thumb_func_start move_anim_start_t1
-move_anim_start_t1: @ 8075700
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _08075724 @ =gUnknown_0202F7C8
- ldr r0, _08075728 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, _0807572C @ =gUnknown_0202F7C9
- ldr r0, _08075730 @ =gUnknown_02024C08
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08075734 @ =gBattleAnims_Moves
- movs r2, 0x1
- bl move_something
- pop {r0}
- bx r0
- .align 2, 0
-_08075724: .4byte gUnknown_0202F7C8
-_08075728: .4byte gUnknown_02024C07
-_0807572C: .4byte gUnknown_0202F7C9
-_08075730: .4byte gUnknown_02024C08
-_08075734: .4byte gBattleAnims_Moves
- thumb_func_end move_anim_start_t1
-
- thumb_func_start move_something
-move_something: @ 8075738
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080757D8
- bl sub_8079E24
- movs r0, 0
- bl sub_8043EB4
- movs r4, 0
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r6, _0807578C @ =gUnknown_02024A6A
- movs r7, 0x64
- ldr r5, _08075790 @ =gUnknown_0202F7CA
-_08075774:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08075798
- ldrh r0, [r6]
- muls r0, r7
- ldr r1, _08075794 @ =gEnemyParty
- b _0807579E
- .align 2, 0
-_0807578C: .4byte gUnknown_02024A6A
-_08075790: .4byte gUnknown_0202F7CA
-_08075794: .4byte gEnemyParty
-_08075798:
- ldrh r0, [r6]
- muls r0, r7
- ldr r1, _080757C0 @ =gPlayerParty
-_0807579E:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- strh r0, [r5]
- adds r6, 0x2
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _08075774
- ldr r3, _080757C4 @ =gUnknown_0202F7C6
- ldr r5, _080757C8 @ =gUnknown_0202F7C2
- ldr r1, _080757CC @ =gUnknown_0202F7B1
- mov r12, r1
- ldr r7, _080757D0 @ =gUnknown_0202F7AC
- ldr r6, _080757D4 @ =sub_80759D0
- b _080757FC
- .align 2, 0
-_080757C0: .4byte gPlayerParty
-_080757C4: .4byte gUnknown_0202F7C6
-_080757C8: .4byte gUnknown_0202F7C2
-_080757CC: .4byte gUnknown_0202F7B1
-_080757D0: .4byte gUnknown_0202F7AC
-_080757D4: .4byte sub_80759D0
-_080757D8:
- ldr r3, _08075808 @ =gUnknown_0202F7C6
- ldr r5, _0807580C @ =gUnknown_0202F7C2
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r1, _08075810 @ =gUnknown_0202F7B1
- mov r12, r1
- ldr r7, _08075814 @ =gUnknown_0202F7AC
- ldr r6, _08075818 @ =sub_80759D0
- ldr r2, _0807581C @ =0x02019348
- ldr r1, _08075820 @ =gUnknown_0202F7CA
- movs r4, 0x3
-_080757F0:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080757F0
-_080757FC:
- mov r0, r9
- cmp r0, 0
- bne _08075824
- strh r0, [r3]
- b _08075828
- .align 2, 0
-_08075808: .4byte gUnknown_0202F7C6
-_0807580C: .4byte gUnknown_0202F7C2
-_08075810: .4byte gUnknown_0202F7B1
-_08075814: .4byte gUnknown_0202F7AC
-_08075818: .4byte sub_80759D0
-_0807581C: .4byte 0x02019348
-_08075820: .4byte gUnknown_0202F7CA
-_08075824:
- mov r1, r8
- strh r1, [r3]
-_08075828:
- ldr r1, _0807587C @ =gUnknown_03004B00
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xE
-_08075830:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _08075830
- movs r0, 0xFF
- strb r0, [r5]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r5, 0x1]
- ldr r0, [sp]
- add r0, r10
- ldr r0, [r0]
- ldr r1, _08075880 @ =gUnknown_0202F7A4
- str r0, [r1]
- movs r0, 0x1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0
- ldr r1, _08075884 @ =gUnknown_0202F7B0
- strb r0, [r1]
- str r6, [r7]
- ldr r0, _08075888 @ =0x0000ffff
- adds r2, r0, 0
- ldr r1, _0807588C @ =gUnknown_03004B10
- movs r4, 0x7
-_08075862:
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08075862
- mov r1, r9
- cmp r1, 0
- beq _080758AE
- movs r4, 0
- ldr r2, _08075890 @ =gUnknown_081C7160
- b _08075896
- .align 2, 0
-_0807587C: .4byte gUnknown_03004B00
-_08075880: .4byte gUnknown_0202F7A4
-_08075884: .4byte gUnknown_0202F7B0
-_08075888: .4byte 0x0000ffff
-_0807588C: .4byte gUnknown_03004B10
-_08075890: .4byte gUnknown_081C7160
-_08075894:
- adds r4, 0x1
-_08075896:
- lsls r0, r4, 1
- adds r0, r2
- ldrh r0, [r0]
- ldr r1, _080758D0 @ =0x0000ffff
- cmp r0, r1
- beq _080758AE
- cmp r8, r0
- bne _08075894
- ldr r0, _080758D4 @ =gMPlay_BGM
- movs r2, 0x80
- bl m4aMPlayVolumeControl
-_080758AE:
- ldr r0, _080758D8 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080758DC @ =gUnknown_03004240
- strh r1, [r0]
- ldr r0, _080758E0 @ =gUnknown_03004200
- strh r1, [r0]
- ldr r0, _080758E4 @ =gUnknown_03004244
- strh r1, [r0]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080758D0: .4byte 0x0000ffff
-_080758D4: .4byte gMPlay_BGM
-_080758D8: .4byte gUnknown_030042C4
-_080758DC: .4byte gUnknown_03004240
-_080758E0: .4byte gUnknown_03004200
-_080758E4: .4byte gUnknown_03004244
- thumb_func_end move_something
-
- thumb_func_start move_anim_8072740
-move_anim_8072740: @ 80758E8
- push {r4,lr}
- adds r4, r0, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, _08075904 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075904: .4byte gUnknown_0202F7B2
- thumb_func_end move_anim_8072740
-
- thumb_func_start move_anim_task_del
-move_anim_task_del: @ 8075908
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r1, _08075920 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08075920: .4byte gUnknown_0202F7B2
- thumb_func_end move_anim_task_del
-
- thumb_func_start move_anim_related_task_del
-move_anim_related_task_del: @ 8075924
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r1, _0807593C @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0807593C: .4byte gUnknown_0202F7B3
- thumb_func_end move_anim_related_task_del
-
- thumb_func_start sub_8075940
-sub_8075940: @ 8075940
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r4, _08075958 @ =0x0000ffff
- ldr r1, _0807595C @ =gUnknown_03004B10
-_0807594C:
- ldrh r0, [r1]
- cmp r0, r4
- bne _08075960
- strh r3, [r1]
- b _08075968
- .align 2, 0
-_08075958: .4byte 0x0000ffff
-_0807595C: .4byte gUnknown_03004B10
-_08075960:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x7
- ble _0807594C
-_08075968:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075940
-
- thumb_func_start sub_8075970
-sub_8075970: @ 8075970
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r0, _0807598C @ =0x0000ffff
- adds r4, r0, 0
- ldr r1, _08075990 @ =gUnknown_03004B10
-_0807597E:
- ldrh r0, [r1]
- cmp r0, r3
- bne _08075994
- orrs r0, r4
- strh r0, [r1]
- b _0807599C
- .align 2, 0
-_0807598C: .4byte 0x0000ffff
-_08075990: .4byte gUnknown_03004B10
-_08075994:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x7
- ble _0807597E
-_0807599C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8075970
-
- thumb_func_start move_anim_waiter
-move_anim_waiter: @ 80759A4
- push {lr}
- ldr r2, _080759BC @ =gUnknown_0202F7B0
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- bgt _080759C8
- ldr r0, _080759C0 @ =gUnknown_0202F7AC
- ldr r1, _080759C4 @ =sub_80759D0
- str r1, [r0]
- movs r0, 0
- b _080759CA
- .align 2, 0
-_080759BC: .4byte gUnknown_0202F7B0
-_080759C0: .4byte gUnknown_0202F7AC
-_080759C4: .4byte sub_80759D0
-_080759C8:
- subs r0, r1, 0x1
-_080759CA:
- strb r0, [r2]
- pop {r0}
- bx r0
- thumb_func_end move_anim_waiter
-
- thumb_func_start sub_80759D0
-sub_80759D0: @ 80759D0
- push {r4,lr}
- ldr r4, _08075A00 @ =gUnknown_0837F4B8
-_080759D4:
- ldr r0, _08075A04 @ =gUnknown_0202F7A4
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08075A08 @ =gUnknown_0202F7B0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080759F8
- ldr r0, _08075A0C @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080759D4
-_080759F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075A00: .4byte gUnknown_0837F4B8
-_08075A04: .4byte gUnknown_0202F7A4
-_08075A08: .4byte gUnknown_0202F7B0
-_08075A0C: .4byte gUnknown_0202F7B1
- thumb_func_end sub_80759D0
-
- thumb_func_start ma00_load_graphics
-ma00_load_graphics: @ 8075A10
- push {r4-r6,lr}
- ldr r6, _08075A5C @ =gUnknown_0202F7A4
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- lsls r5, r4, 3
- ldr r0, _08075A60 @ =gBattleAnimPicTable - (10000 * 8)
- adds r0, r5, r0
- bl LoadCompressedObjectPic
- ldr r0, _08075A64 @ =gBattleAnimPaletteTable - (10000 * 8)
- adds r5, r0
- adds r0, r5, 0
- bl LoadCompressedObjectPalette
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- ldr r0, _08075A68 @ =0xffffd8f0
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_8075940
- ldr r1, _08075A6C @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _08075A70 @ =gUnknown_0202F7AC
- ldr r0, _08075A74 @ =move_anim_waiter
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08075A5C: .4byte gUnknown_0202F7A4
-_08075A60: .4byte gBattleAnimPicTable - (10000 * 8)
-_08075A64: .4byte gBattleAnimPaletteTable - (10000 * 8)
-_08075A68: .4byte 0xffffd8f0
-_08075A6C: .4byte gUnknown_0202F7B0
-_08075A70: .4byte gUnknown_0202F7AC
-_08075A74: .4byte move_anim_waiter
- thumb_func_end ma00_load_graphics
-
- thumb_func_start ma01_080728D0
-ma01_080728D0: @ 8075A78
- push {r4-r6,lr}
- ldr r6, _08075AB8 @ =gUnknown_0202F7A4
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- ldr r1, _08075ABC @ =gBattleAnimPicTable
- ldr r0, _08075AC0 @ =0xffffd8f0
- adds r4, r0
- lsls r0, r4, 3
- adds r0, r1
- ldrh r5, [r0, 0x6]
- adds r0, r5, 0
- bl FreeSpriteTilesByTag
- adds r0, r5, 0
- bl FreeSpritePaletteByTag
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_8075970
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08075AB8: .4byte gUnknown_0202F7A4
-_08075ABC: .4byte gBattleAnimPicTable
-_08075AC0: .4byte 0xffffd8f0
- thumb_func_end ma01_080728D0
-
- thumb_func_start ma02_instanciate_template
-ma02_instanciate_template: @ 8075AC4
- push {r4-r7,lr}
- ldr r5, _08075B2C @ =gUnknown_0202F7A4
- ldr r1, [r5]
- adds r3, r1, 0x1
- str r3, [r5]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r7, r2, r0
- adds r0, r1, 0x5
- str r0, [r5]
- ldrb r4, [r1, 0x5]
- adds r0, r1, 0x6
- str r0, [r5]
- ldrb r0, [r1, 0x6]
- adds r1, 0x7
- str r1, [r5]
- cmp r0, 0
- beq _08075B14
- adds r6, r5, 0
- ldr r5, _08075B30 @ =gUnknown_03004B00
- adds r3, r0, 0
-_08075AFC:
- ldr r2, [r6]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r5]
- adds r2, 0x2
- str r2, [r6]
- adds r5, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08075AFC
-_08075B14:
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- beq _08075B44
- movs r0, 0x80
- eors r4, r0
- cmp r4, 0x3F
- bls _08075B34
- adds r0, r4, 0
- subs r0, 0x40
- b _08075B36
- .align 2, 0
-_08075B2C: .4byte gUnknown_0202F7A4
-_08075B30: .4byte gUnknown_03004B00
-_08075B34:
- negs r0, r4
-_08075B36:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08075B40 @ =gUnknown_0202F7C9
- b _08075B56
- .align 2, 0
-_08075B40: .4byte gUnknown_0202F7C9
-_08075B44:
- cmp r4, 0x3F
- bls _08075B4E
- adds r0, r4, 0
- subs r0, 0x40
- b _08075B50
-_08075B4E:
- negs r0, r4
-_08075B50:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08075BAC @ =gUnknown_0202F7C8
-_08075B56:
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 24
- asrs r1, 24
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0x2
- bgt _08075B74
- movs r6, 0x3
-_08075B74:
- ldr r5, _08075BB0 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, r6, 24
- lsrs r3, 24
- adds r0, r7, 0
- adds r1, r4, 0
- bl CreateSpriteAndAnimate
- ldr r1, _08075BB4 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075BAC: .4byte gUnknown_0202F7C8
-_08075BB0: .4byte gUnknown_0202F7C9
-_08075BB4: .4byte gUnknown_0202F7B2
- thumb_func_end ma02_instanciate_template
-
- thumb_func_start sub_8075BB8
-sub_8075BB8: @ 8075BB8
- push {r4-r7,lr}
- ldr r4, _08075C28 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r6, r2, r0
- adds r0, r1, 0x5
- str r0, [r4]
- ldrb r7, [r1, 0x5]
- adds r0, r1, 0x6
- str r0, [r4]
- ldrb r0, [r1, 0x6]
- adds r1, 0x7
- str r1, [r4]
- cmp r0, 0
- beq _08075C08
- adds r5, r4, 0
- ldr r4, _08075C2C @ =gUnknown_03004B00
- adds r3, r0, 0
-_08075BF0:
- ldr r2, [r5]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r4]
- adds r2, 0x2
- str r2, [r5]
- adds r4, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08075BF0
-_08075C08:
- adds r0, r6, 0
- adds r1, r7, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r6
- ldr r1, _08075C30 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075C28: .4byte gUnknown_0202F7A4
-_08075C2C: .4byte gUnknown_03004B00
-_08075C30: .4byte gUnknown_0202F7B2
- thumb_func_end sub_8075BB8
-
- thumb_func_start ma04_wait_countdown
-ma04_wait_countdown: @ 8075C34
- push {r4,lr}
- ldr r1, _08075C64 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r2, r0, 0x1
- str r2, [r1]
- ldr r3, _08075C68 @ =gUnknown_0202F7B0
- ldrb r0, [r0, 0x1]
- strb r0, [r3]
- lsls r0, 24
- cmp r0, 0
- bne _08075C52
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- strb r0, [r3]
-_08075C52:
- adds r0, r2, 0x1
- str r0, [r1]
- ldr r1, _08075C6C @ =gUnknown_0202F7AC
- ldr r0, _08075C70 @ =move_anim_waiter
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075C64: .4byte gUnknown_0202F7A4
-_08075C68: .4byte gUnknown_0202F7B0
-_08075C6C: .4byte gUnknown_0202F7AC
-_08075C70: .4byte move_anim_waiter
- thumb_func_end ma04_wait_countdown
-
- thumb_func_start sub_8075C74
-sub_8075C74: @ 8075C74
- push {lr}
- ldr r0, _08075C8C @ =gUnknown_0202F7B2
- ldrb r2, [r0]
- cmp r2, 0
- bne _08075C98
- ldr r0, _08075C90 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _08075C94 @ =gUnknown_0202F7B0
- strb r2, [r0]
- b _08075C9E
- .align 2, 0
-_08075C8C: .4byte gUnknown_0202F7B2
-_08075C90: .4byte gUnknown_0202F7A4
-_08075C94: .4byte gUnknown_0202F7B0
-_08075C98:
- ldr r1, _08075CA4 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
-_08075C9E:
- pop {r0}
- bx r0
- .align 2, 0
-_08075CA4: .4byte gUnknown_0202F7B0
- thumb_func_end sub_8075C74
-
- thumb_func_start nullsub_53
-nullsub_53: @ 8075CA8
- bx lr
- thumb_func_end nullsub_53
-
- thumb_func_start nullsub_88
-nullsub_88: @ 8075CAC
- bx lr
- thumb_func_end nullsub_88
-
- thumb_func_start sub_8075CB0
-sub_8075CB0: @ 8075CB0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0
- mov r8, r0
- ldr r0, _08075CE0 @ =gUnknown_0202F7B2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08075CD8
- ldr r0, _08075CE4 @ =gUnknown_0202F7B3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08075CD8
- ldr r1, _08075CE8 @ =gUnknown_0202F7C2
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08075CD8
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- beq _08075CF0
-_08075CD8:
- ldr r1, _08075CEC @ =gUnknown_03004AF0
- movs r0, 0
- strh r0, [r1]
- b _08075D0A
- .align 2, 0
-_08075CE0: .4byte gUnknown_0202F7B2
-_08075CE4: .4byte gUnknown_0202F7B3
-_08075CE8: .4byte gUnknown_0202F7C2
-_08075CEC: .4byte gUnknown_03004AF0
-_08075CF0:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08075D28
- ldr r1, _08075D14 @ =gUnknown_03004AF0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5A
- bhi _08075D1C
-_08075D0A:
- ldr r1, _08075D18 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
- b _08075D8E
- .align 2, 0
-_08075D14: .4byte gUnknown_03004AF0
-_08075D18: .4byte gUnknown_0202F7B0
-_08075D1C:
- ldr r0, _08075D98 @ =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, _08075D9C @ =gMPlay_SE2
- bl m4aMPlayStop
-_08075D28:
- ldr r1, _08075DA0 @ =gUnknown_03004AF0
- movs r0, 0
- strh r0, [r1]
- movs r5, 0
- ldr r7, _08075DA4 @ =0x0000ffff
- ldr r6, _08075DA8 @ =gBattleAnimPicTable
- ldr r4, _08075DAC @ =gUnknown_03004B10
-_08075D36:
- ldrh r0, [r4]
- cmp r0, r7
- beq _08075D5A
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldrh r0, [r4]
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x6]
- bl FreeSpritePaletteByTag
- ldrh r1, [r4]
- adds r0, r7, 0
- orrs r0, r1
- strh r0, [r4]
-_08075D5A:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x7
- ble _08075D36
- mov r1, r8
- cmp r1, 0
- bne _08075D8E
- ldr r0, _08075DB0 @ =gMPlay_BGM
- ldr r1, _08075DA4 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08075D88
- bl sub_8079E24
- movs r0, 0x1
- bl sub_8043EB4
-_08075D88:
- ldr r0, _08075DB4 @ =gUnknown_0202F7B1
- mov r1, r8
- strb r1, [r0]
-_08075D8E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075D98: .4byte gMPlay_SE1
-_08075D9C: .4byte gMPlay_SE2
-_08075DA0: .4byte gUnknown_03004AF0
-_08075DA4: .4byte 0x0000ffff
-_08075DA8: .4byte gBattleAnimPicTable
-_08075DAC: .4byte gUnknown_03004B10
-_08075DB0: .4byte gMPlay_BGM
-_08075DB4: .4byte gUnknown_0202F7B1
- thumb_func_end sub_8075CB0
-
- thumb_func_start ma09_play_sound
-ma09_play_sound: @ 8075DB8
- push {r4,lr}
- ldr r4, _08075DDC @ =gUnknown_0202F7A4
- ldr r0, [r4]
- adds r1, r0, 0x1
- str r1, [r4]
- ldrb r0, [r0, 0x1]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- orrs r0, r1
- bl PlaySE
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08075DDC: .4byte gUnknown_0202F7A4
- thumb_func_end ma09_play_sound
-
- thumb_func_start sub_8075DE0
-sub_8075DE0: @ 8075DE0
- push {r4-r7,lr}
- ldr r0, _08075DF4 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r6, [r2, 0x1]
- cmp r6, 0
- bne _08075DF8
- movs r6, 0x2
- b _08075E02
- .align 2, 0
-_08075DF4: .4byte gUnknown_0202F7A4
-_08075DF8:
- cmp r6, 0x1
- bne _08075DFE
- movs r6, 0x3
-_08075DFE:
- cmp r6, 0
- beq _08075E06
-_08075E02:
- cmp r6, 0x2
- bne _08075E10
-_08075E06:
- ldr r0, _08075E0C @ =gUnknown_0202F7C8
- b _08075E12
- .align 2, 0
-_08075E0C: .4byte gUnknown_0202F7C8
-_08075E10:
- ldr r0, _08075E44 @ =gUnknown_0202F7C9
-_08075E12:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08075ECE
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08075E3E
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08075E48
-_08075E3E:
- movs r7, 0
- b _08075E4A
- .align 2, 0
-_08075E44: .4byte gUnknown_0202F7C9
-_08075E48:
- movs r7, 0x1
-_08075E4A:
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_8076034
- ldr r0, _08075E98 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r4, [r0]
- ldr r0, _08075E9C @ =task_pA_ma0A_obj_to_bg_pal
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08075EA0 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r1
- strh r4, [r2, 0x8]
- ldr r1, _08075EA4 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x24]
- ldrh r4, [r0, 0x20]
- adds r1, r4
- strh r1, [r2, 0xA]
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- strh r1, [r2, 0xC]
- cmp r7, 0
- bne _08075EB0
- ldr r0, _08075EA8 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- ldr r0, _08075EAC @ =gUnknown_030041B4
- b _08075EB8
- .align 2, 0
-_08075E98: .4byte gUnknown_02024BE0
-_08075E9C: .4byte task_pA_ma0A_obj_to_bg_pal
-_08075EA0: .4byte gTasks
-_08075EA4: .4byte gSprites
-_08075EA8: .4byte gUnknown_030042C0
-_08075EAC: .4byte gUnknown_030041B4
-_08075EB0:
- ldr r0, _08075F04 @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- ldr r0, _08075F08 @ =gUnknown_03004280
-_08075EB8:
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- ldr r0, _08075F0C @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- strh r7, [r1, 0x12]
- strh r5, [r1, 0x14]
- ldr r0, _08075F10 @ =gUnknown_0202F7C2
- strb r3, [r0]
-_08075ECE:
- movs r0, 0x2
- eors r5, r0
- cmp r6, 0x1
- bls _08075F9A
- adds r0, r5, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08075F9A
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08075F00
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08075F14
-_08075F00:
- movs r7, 0
- b _08075F16
- .align 2, 0
-_08075F04: .4byte gUnknown_03004288
-_08075F08: .4byte gUnknown_03004280
-_08075F0C: .4byte gTasks
-_08075F10: .4byte gUnknown_0202F7C2
-_08075F14:
- movs r7, 0x1
-_08075F16:
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_8076034
- ldr r0, _08075F64 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r4, [r0]
- ldr r0, _08075F68 @ =task_pA_ma0A_obj_to_bg_pal
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08075F6C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r1
- strh r4, [r2, 0x8]
- ldr r1, _08075F70 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x24]
- ldrh r4, [r0, 0x20]
- adds r1, r4
- strh r1, [r2, 0xA]
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- strh r1, [r2, 0xC]
- cmp r7, 0
- bne _08075F7C
- ldr r0, _08075F74 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- ldr r0, _08075F78 @ =gUnknown_030041B4
- b _08075F84
- .align 2, 0
-_08075F64: .4byte gUnknown_02024BE0
-_08075F68: .4byte task_pA_ma0A_obj_to_bg_pal
-_08075F6C: .4byte gTasks
-_08075F70: .4byte gSprites
-_08075F74: .4byte gUnknown_030042C0
-_08075F78: .4byte gUnknown_030041B4
-_08075F7C:
- ldr r0, _08075FA8 @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- ldr r0, _08075FAC @ =gUnknown_03004280
-_08075F84:
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- ldr r0, _08075FB0 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- strh r7, [r1, 0x12]
- strh r5, [r1, 0x14]
- ldr r0, _08075FB4 @ =gUnknown_0202F7C2
- strb r3, [r0, 0x1]
-_08075F9A:
- ldr r1, _08075FB8 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08075FA8: .4byte gUnknown_03004288
-_08075FAC: .4byte gUnknown_03004280
-_08075FB0: .4byte gTasks
-_08075FB4: .4byte gUnknown_0202F7C2
-_08075FB8: .4byte gUnknown_0202F7A4
- thumb_func_end sub_8075DE0
-
- thumb_func_start b_side_obj__get_some_boolean
-b_side_obj__get_some_boolean: @ 8075FBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08075FDC
- ldr r0, _08075FD8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- cmp r4, r0
- beq _0807601C
- b _0807602C
- .align 2, 0
-_08075FD8: .4byte gUnknown_0202F7C8
-_08075FDC:
- adds r0, r4, 0
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _0807602C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0807601C
- lsls r0, r5, 2
- ldr r1, _08076020 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807601C
- ldr r2, _08076024 @ =gSprites
- ldr r0, _08076028 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _0807602C
-_0807601C:
- movs r0, 0x1
- b _0807602E
- .align 2, 0
-_08076020: .4byte 0x02017800
-_08076024: .4byte gSprites
-_08076028: .4byte gUnknown_02024BE0
-_0807602C:
- movs r0, 0
-_0807602E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end b_side_obj__get_some_boolean
-
- thumb_func_start sub_8076034
-sub_8076034: @ 8076034
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- cmp r1, 0
- beq _0807604E
- b _08076220
-_0807604E:
- add r4, sp, 0x10
- adds r0, r4, 0
- bl sub_8078914
- ldr r2, [sp, 0x10]
- movs r3, 0x80
- lsls r3, 6
- add r6, sp, 0x1C
- add r0, sp, 0x20
- mov r10, r0
- mov r1, r9
- lsls r1, 5
- str r1, [sp, 0x24]
- movs r5, 0
- ldr r1, _08076194 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r6
- ldr r7, _08076198 @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_0807607A:
- str r5, [sp, 0x1C]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _0807607A
- str r5, [sp, 0x1C]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0xC
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, [sp, 0x14]
- movs r0, 0xFF
- mov r3, r10
- strh r0, [r3]
- ldr r0, _08076194 @ =0x040000d4
- str r3, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0807619C @ =0x81000800
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r2, _080761A0 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- ldr r0, _080761A4 @ =gUnknown_02024BE0
- add r0, r9
- ldrb r4, [r0]
- ldr r5, _080761A8 @ =gUnknown_030042C0
- ldr r0, _080761AC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- negs r0, r0
- adds r0, 0x20
- strh r0, [r5]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807611C
- ldr r0, _080761B0 @ =0x02019348
- ldrh r0, [r0]
- bl sub_80AEB1C
- lsls r0, 24
- cmp r0, 0
- beq _0807611C
- ldrh r0, [r5]
- subs r0, 0x1
- strh r0, [r5]
-_0807611C:
- ldr r3, _080761B4 @ =gUnknown_030041B4
- ldr r2, _080761AC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- negs r0, r0
- adds r0, 0x20
- strh r0, [r3]
- ldr r0, _080761A4 @ =gUnknown_02024BE0
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _080761B8 @ =REG_BG1HOFS
- ldr r0, _080761A8 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r3]
- strh r0, [r1]
- ldr r4, _080761BC @ =gPlttBufferUnfaded + 0x200
- ldr r0, [sp, 0x24]
- adds r4, r0, r4
- mov r2, sp
- ldrb r1, [r2, 0x18]
- lsls r1, 4
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- mov r3, sp
- ldrb r0, [r3, 0x18]
- lsls r0, 5
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- ldr r1, _08076194 @ =0x040000d4
- str r4, [r1]
- str r0, [r1, 0x4]
- ldr r0, _080761C0 @ =0x84000008
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080761C4
- movs r2, 0
- b _080761CE
- .align 2, 0
-_08076194: .4byte 0x040000d4
-_08076198: .4byte 0x85000400
-_0807619C: .4byte 0x81000800
-_080761A0: .4byte REG_BG1CNT
-_080761A4: .4byte gUnknown_02024BE0
-_080761A8: .4byte gUnknown_030042C0
-_080761AC: .4byte gSprites
-_080761B0: .4byte 0x02019348
-_080761B4: .4byte gUnknown_030041B4
-_080761B8: .4byte REG_BG1HOFS
-_080761BC: .4byte gPlttBufferUnfaded + 0x200
-_080761C0: .4byte 0x84000008
-_080761C4:
- mov r0, r9
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r2, r0, 24
-_080761CE:
- mov r0, sp
- ldrb r3, [r0, 0x18]
- ldr r0, [sp, 0x10]
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- ldr r4, [sp, 0x14]
- movs r1, 0xFA
- lsls r1, 24
- adds r0, r4, r1
- cmp r0, 0
- bge _080761EA
- ldr r1, _08076218 @ =0xfa0007ff
- adds r0, r4, r1
-_080761EA:
- asrs r0, 11
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, _0807621C @ =REG_BG1CNT
- ldr r0, [r0]
- lsls r0, 28
- lsrs r0, 30
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- bl sub_80E4EF8
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08076210
- b _08076338
-_08076210:
- bl sub_8076380
- b _08076338
- .align 2, 0
-_08076218: .4byte 0xfa0007ff
-_0807621C: .4byte REG_BG1CNT
-_08076220:
- ldr r3, _08076348 @ =0x06006000
- movs r5, 0x80
- lsls r5, 6
- add r6, sp, 0x1C
- ldr r2, _0807634C @ =gSprites
- mov r10, r2
- mov r0, r9
- lsls r0, 5
- str r0, [sp, 0x24]
- movs r4, 0
- ldr r1, _08076350 @ =0x040000d4
- movs r2, 0x80
- lsls r2, 5
- mov r12, r6
- ldr r7, _08076354 @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_08076244:
- str r4, [sp, 0x1C]
- mov r0, r12
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- subs r5, r2
- cmp r5, r2
- bhi _08076244
- str r4, [sp, 0x1C]
- str r6, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r5, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0xC
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, _08076358 @ =0x0600f000
- movs r0, 0
- str r0, [sp, 0x1C]
- ldr r5, _08076350 @ =0x040000d4
- str r6, [r5]
- str r1, [r5, 0x4]
- ldr r0, _0807635C @ =0x85000200
- str r0, [r5, 0x8]
- ldr r0, [r5, 0x8]
- ldr r6, _08076360 @ =REG_BG2CNT
- ldrb r1, [r6]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r6]
- ldrb r1, [r6, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r6, 0x1]
- ldrb r1, [r6, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r6, 0x1]
- ldr r2, _08076364 @ =gUnknown_02024BE0
- add r2, r9
- ldrb r4, [r2]
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- add r1, r10
- ldrh r0, [r1, 0x24]
- ldrh r3, [r1, 0x20]
- adds r0, r3
- negs r0, r0
- adds r0, 0x20
- ldr r3, _08076368 @ =gUnknown_03004288
- strh r0, [r3]
- ldrh r0, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- negs r0, r0
- adds r0, 0x20
- ldr r1, _0807636C @ =gUnknown_03004280
- strh r0, [r1]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _08076370 @ =REG_BG2HOFS
- ldrh r0, [r3]
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0807636C @ =gUnknown_03004280
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r3, [sp, 0x24]
- ldr r0, _08076374 @ =gPlttBufferUnfaded + 0x200
- adds r4, r3, r0
- adds r0, r4, 0
- movs r1, 0x90
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08076378 @ =0x05000120
- str r4, [r5]
- str r0, [r5, 0x4]
- ldr r0, _0807637C @ =0x84000008
- str r0, [r5, 0x8]
- ldr r0, [r5, 0x8]
- mov r0, r9
- bl battle_get_per_side_status
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0xC0
- lsls r0, 7
- str r0, [sp]
- movs r0, 0x1E
- str r0, [sp, 0x4]
- ldr r0, [r6]
- lsls r0, 28
- lsrs r0, 30
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r3, 0x9
- bl sub_80E4EF8
-_08076338:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076348: .4byte 0x06006000
-_0807634C: .4byte gSprites
-_08076350: .4byte 0x040000d4
-_08076354: .4byte 0x85000400
-_08076358: .4byte 0x0600f000
-_0807635C: .4byte 0x85000200
-_08076360: .4byte REG_BG2CNT
-_08076364: .4byte gUnknown_02024BE0
-_08076368: .4byte gUnknown_03004288
-_0807636C: .4byte gUnknown_03004280
-_08076370: .4byte REG_BG2HOFS
-_08076374: .4byte gPlttBufferUnfaded + 0x200
-_08076378: .4byte 0x05000120
-_0807637C: .4byte 0x84000008
- thumb_func_end sub_8076034
-
- thumb_func_start sub_8076380
-sub_8076380: @ 8076380
- push {r4-r7,lr}
- sub sp, 0xC
- ldr r0, _080763F8 @ =0x02019348
- ldrh r0, [r0]
- bl sub_80AEB1C
- lsls r0, 24
- cmp r0, 0
- beq _080763EE
- mov r0, sp
- bl sub_8078914
- ldr r6, [sp, 0x4]
- movs r5, 0
- movs r0, 0x7
- mov r12, r0
- movs r7, 0
-_080763A2:
- movs r4, 0
- adds r3, r7, r6
- mov r1, r12
- lsls r0, r1, 1
- adds r2, r0, r6
-_080763AC:
- ldrh r1, [r3]
- ldrh r0, [r2]
- strh r0, [r3]
- strh r1, [r2]
- adds r3, 0x2
- subs r2, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _080763AC
- movs r0, 0x20
- add r12, r0
- adds r7, 0x40
- adds r5, 0x1
- cmp r5, 0x7
- ble _080763A2
- movs r5, 0
- movs r1, 0x80
- lsls r1, 3
- adds r3, r1, 0
-_080763D2:
- adds r2, r5, 0x1
- lsls r0, r5, 6
- adds r1, r0, r6
- movs r4, 0x7
-_080763DA:
- ldrh r0, [r1]
- eors r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080763DA
- adds r5, r2, 0
- cmp r5, 0x7
- ble _080763D2
-_080763EE:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080763F8: .4byte 0x02019348
- thumb_func_end sub_8076380
-
- thumb_func_start sub_80763FC
-sub_80763FC: @ 80763FC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r12, r1
- adds r7, r2, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r3, 24
- movs r0, 0x40
- mov r9, r0
- cmp r3, 0
- bne _0807641A
- movs r1, 0x20
- mov r9, r1
-_0807641A:
- lsls r0, r6, 28
- lsrs r6, r0, 16
- movs r0, 0
- cmp r0, r9
- bcs _08076452
- ldr r1, _08076460 @ =0x00000fff
- mov r8, r1
-_08076428:
- movs r3, 0
- adds r5, r0, 0x1
- lsls r4, r0, 5
-_0807642E:
- adds r1, r4, r3
- lsls r1, 1
- add r1, r12
- ldrh r2, [r1]
- mov r0, r8
- ands r0, r2
- orrs r0, r6
- adds r0, r7
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _0807642E
- lsls r0, r5, 24
- lsrs r0, 24
- cmp r0, r9
- bcc _08076428
-_08076452:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076460: .4byte 0x00000fff
- thumb_func_end sub_80763FC
-
- thumb_func_start sub_8076464
-sub_8076464: @ 8076464
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- add r5, sp, 0x4
- adds r0, r5, 0
- bl sub_8078914
- cmp r4, 0
- beq _0807648C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080764F0
-_0807648C:
- ldr r2, [sp, 0x4]
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0x10
- ldr r0, _080764E0 @ =gUnknown_030042C0
- mov r9, r0
- ldr r0, _080764E4 @ =gUnknown_030041B4
- mov r10, r0
- movs r6, 0
- ldr r1, _080764E8 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r5
- ldr r7, _080764EC @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_080764AE:
- str r6, [sp, 0x10]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080764AE
- str r6, [sp, 0x10]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, [sp, 0x8]
- b _08076540
- .align 2, 0
-_080764E0: .4byte gUnknown_030042C0
-_080764E4: .4byte gUnknown_030041B4
-_080764E8: .4byte 0x040000d4
-_080764EC: .4byte 0x85000400
-_080764F0:
- ldr r2, _08076568 @ =0x06006000
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0x10
- ldr r0, _0807656C @ =gUnknown_03004288
- mov r9, r0
- ldr r0, _08076570 @ =gUnknown_03004280
- mov r10, r0
- movs r6, 0
- ldr r1, _08076574 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r5
- ldr r7, _08076578 @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_08076512:
- str r6, [sp, 0x10]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _08076512
- str r6, [sp, 0x10]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, _0807657C @ =0x0600f000
-_08076540:
- movs r2, 0
- str r2, [sp, 0x10]
- ldr r0, _08076574 @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _08076580 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- mov r0, r9
- strh r2, [r0]
- mov r0, r10
- strh r2, [r0]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076568: .4byte 0x06006000
-_0807656C: .4byte gUnknown_03004288
-_08076570: .4byte gUnknown_03004280
-_08076574: .4byte 0x040000d4
-_08076578: .4byte 0x85000400
-_0807657C: .4byte 0x0600f000
-_08076580: .4byte 0x85000200
- thumb_func_end sub_8076464
-
- thumb_func_start task_pA_ma0A_obj_to_bg_pal
-task_pA_ma0A_obj_to_bg_pal: @ 8076584
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080765FC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r4, [r5, 0x8]
- ldrb r6, [r5, 0x14]
- mov r0, sp
- bl sub_8078914
- ldr r0, _08076600 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x24]
- ldrh r0, [r1, 0x20]
- adds r2, r0
- ldrh r0, [r5, 0xA]
- subs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r2, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r2, r1
- ldrh r0, [r5, 0xC]
- subs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08076614
- ldr r1, _08076604 @ =gUnknown_030042C0
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r5, 0xE]
- adds r0, r3
- strh r0, [r1]
- ldr r1, _08076608 @ =gUnknown_030041B4
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r5, 0x10]
- adds r0, r5
- strh r0, [r1]
- lsls r2, r6, 5
- ldr r1, _0807660C @ =gPlttBufferFaded + 0x200
- adds r2, r1
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 5
- ldr r3, _08076610 @ =0xfffffe00
- adds r1, r3
- adds r0, r1
- b _08076634
- .align 2, 0
-_080765FC: .4byte gTasks
-_08076600: .4byte gSprites
-_08076604: .4byte gUnknown_030042C0
-_08076608: .4byte gUnknown_030041B4
-_0807660C: .4byte gPlttBufferFaded + 0x200
-_08076610: .4byte 0xfffffe00
-_08076614:
- ldr r1, _08076648 @ =gUnknown_03004288
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r5, 0xE]
- adds r0, r3
- strh r0, [r1]
- ldr r1, _0807664C @ =gUnknown_03004280
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r5, 0x10]
- adds r0, r5
- strh r0, [r1]
- lsls r2, r6, 5
- ldr r0, _08076650 @ =gPlttBufferFaded + 0x200
- adds r2, r0
- subs r0, 0xE0
-_08076634:
- ldr r1, _08076654 @ =0x040000d4
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _08076658 @ =0x84000008
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076648: .4byte gUnknown_03004288
-_0807664C: .4byte gUnknown_03004280
-_08076650: .4byte gPlttBufferFaded + 0x200
-_08076654: .4byte 0x040000d4
-_08076658: .4byte 0x84000008
- thumb_func_end task_pA_ma0A_obj_to_bg_pal
-
- thumb_func_start ma0B_0807324C
-ma0B_0807324C: @ 807665C
- push {r4,r5,lr}
- ldr r0, _08076670 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r4, [r2, 0x1]
- cmp r4, 0
- bne _08076674
- movs r4, 0x2
- b _0807667E
- .align 2, 0
-_08076670: .4byte gUnknown_0202F7A4
-_08076674:
- cmp r4, 0x1
- bne _0807667A
- movs r4, 0x3
-_0807667A:
- cmp r4, 0
- beq _08076682
-_0807667E:
- cmp r4, 0x2
- bne _0807668C
-_08076682:
- ldr r0, _08076688 @ =gUnknown_0202F7C8
- b _0807668E
- .align 2, 0
-_08076688: .4byte gUnknown_0202F7C8
-_0807668C:
- ldr r0, _080766E4 @ =gUnknown_0202F7C9
-_0807668E:
- ldrb r5, [r0]
- ldr r3, _080766E8 @ =gUnknown_0202F7C2
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _080766B4
- ldr r2, _080766EC @ =gSprites
- ldr r0, _080766F0 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080766B4:
- cmp r4, 0x1
- bls _080766F4
- ldrb r0, [r3, 0x1]
- cmp r0, 0xFF
- beq _080766F4
- ldr r3, _080766EC @ =gSprites
- ldr r2, _080766F0 @ =gUnknown_02024BE0
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _080766F6
- .align 2, 0
-_080766E4: .4byte gUnknown_0202F7C9
-_080766E8: .4byte gUnknown_0202F7C2
-_080766EC: .4byte gSprites
-_080766F0: .4byte gUnknown_02024BE0
-_080766F4:
- movs r4, 0
-_080766F6:
- ldr r0, _08076720 @ =sub_807672C
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08076724 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xC]
- ldr r1, _08076728 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08076720: .4byte sub_807672C
-_08076724: .4byte gTasks
-_08076728: .4byte gUnknown_0202F7A4
- thumb_func_end ma0B_0807324C
-
- thumb_func_start sub_807672C
-sub_807672C: @ 807672C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0807676C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080767B6
- ldrb r0, [r1, 0xC]
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08076768
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076770
-_08076768:
- movs r4, 0
- b _08076772
- .align 2, 0
-_0807676C: .4byte gTasks
-_08076770:
- movs r4, 0x1
-_08076772:
- ldr r6, _080767BC @ =gUnknown_0202F7C2
- ldrb r0, [r6]
- cmp r0, 0xFF
- beq _0807678A
- adds r0, r4, 0
- bl sub_8076464
- ldrb r0, [r6]
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r6]
-_0807678A:
- ldr r0, _080767C0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _080767B0
- movs r0, 0x1
- eors r4, r0
- adds r0, r4, 0
- bl sub_8076464
- ldrb r0, [r6, 0x1]
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r6, 0x1]
-_080767B0:
- adds r0, r5, 0
- bl DestroyTask
-_080767B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080767BC: .4byte gUnknown_0202F7C2
-_080767C0: .4byte gTasks
- thumb_func_end sub_807672C
-
- thumb_func_start sub_80767C4
-sub_80767C4: @ 80767C4
- push {r4,r5,lr}
- ldr r0, _080767D8 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r5, [r2, 0x1]
- cmp r5, 0
- bne _080767DC
- movs r5, 0x2
- b _080767E6
- .align 2, 0
-_080767D8: .4byte gUnknown_0202F7A4
-_080767DC:
- cmp r5, 0x1
- bne _080767E2
- movs r5, 0x3
-_080767E2:
- cmp r5, 0
- beq _080767EA
-_080767E6:
- cmp r5, 0x2
- bne _080767F4
-_080767EA:
- ldr r0, _080767F0 @ =gUnknown_0202F7C8
- b _080767F6
- .align 2, 0
-_080767F0: .4byte gUnknown_0202F7C8
-_080767F4:
- ldr r0, _08076828 @ =gUnknown_0202F7C9
-_080767F6:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08076850
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08076822
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807682C
-_08076822:
- movs r1, 0
- b _0807682E
- .align 2, 0
-_08076828: .4byte gUnknown_0202F7C9
-_0807682C:
- movs r1, 0x1
-_0807682E:
- adds r0, r4, 0
- bl sub_8076034
- ldr r2, _08076888 @ =gSprites
- ldr r0, _0807688C @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08076850:
- movs r0, 0x2
- eors r4, r0
- cmp r5, 0x1
- bls _080768B4
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080768B4
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08076882
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076890
-_08076882:
- movs r1, 0
- b _08076892
- .align 2, 0
-_08076888: .4byte gSprites
-_0807688C: .4byte gUnknown_02024BE0
-_08076890:
- movs r1, 0x1
-_08076892:
- adds r0, r4, 0
- bl sub_8076034
- ldr r2, _080768C4 @ =gSprites
- ldr r0, _080768C8 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080768B4:
- ldr r1, _080768CC @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080768C4: .4byte gSprites
-_080768C8: .4byte gUnknown_02024BE0
-_080768CC: .4byte gUnknown_0202F7A4
- thumb_func_end sub_80767C4
-
- thumb_func_start ma23_8073484
-ma23_8073484: @ 80768D0
- push {r4-r6,lr}
- ldr r0, _080768E4 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r5, [r2, 0x1]
- cmp r5, 0
- bne _080768E8
- movs r5, 0x2
- b _080768F2
- .align 2, 0
-_080768E4: .4byte gUnknown_0202F7A4
-_080768E8:
- cmp r5, 0x1
- bne _080768EE
- movs r5, 0x3
-_080768EE:
- cmp r5, 0
- beq _080768F6
-_080768F2:
- cmp r5, 0x2
- bne _08076900
-_080768F6:
- ldr r0, _080768FC @ =gUnknown_0202F7C8
- b _08076902
- .align 2, 0
-_080768FC: .4byte gUnknown_0202F7C8
-_08076900:
- ldr r0, _08076960 @ =gUnknown_0202F7C9
-_08076902:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _0807692C
- ldr r2, _08076964 @ =gSprites
- ldr r0, _08076968 @ =gUnknown_02024BE0
- adds r0, r6, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0807692C:
- cmp r5, 0x1
- bls _0807696C
- movs r0, 0x2
- adds r4, r6, 0
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _0807696C
- ldr r2, _08076964 @ =gSprites
- ldr r0, _08076968 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _0807696E
- .align 2, 0
-_08076960: .4byte gUnknown_0202F7C9
-_08076964: .4byte gSprites
-_08076968: .4byte gUnknown_02024BE0
-_0807696C:
- movs r5, 0
-_0807696E:
- ldr r0, _08076998 @ =sub_80769A4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807699C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- strh r6, [r1, 0xC]
- ldr r1, _080769A0 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076998: .4byte sub_80769A4
-_0807699C: .4byte gTasks
-_080769A0: .4byte gUnknown_0202F7A4
- thumb_func_end ma23_8073484
-
- thumb_func_start sub_80769A4
-sub_80769A4: @ 80769A4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080769E8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _08076A32
- ldrb r4, [r1, 0xC]
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080769E2
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080769EC
-_080769E2:
- movs r5, 0
- b _080769EE
- .align 2, 0
-_080769E8: .4byte gTasks
-_080769EC:
- movs r5, 0x1
-_080769EE:
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08076A00
- adds r0, r5, 0
- bl sub_8076464
-_08076A00:
- ldr r0, _08076A38 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _08076A2C
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08076A2C
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_8076464
-_08076A2C:
- adds r0, r6, 0
- bl DestroyTask
-_08076A32:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076A38: .4byte gTasks
- thumb_func_end sub_80769A4
-
- thumb_func_start sub_8076A3C
-sub_8076A3C: @ 8076A3C
- push {r4,lr}
- ldr r2, _08076A6C @ =gUnknown_0202F7A4
- ldr r0, [r2]
- adds r1, r0, 0x1
- str r1, [r2]
- ldrb r3, [r0, 0x1]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- adds r0, 0x1
- str r0, [r2]
- ldr r2, _08076A70 @ =REG_BLDCNT
- movs r4, 0xFD
- lsls r4, 6
- adds r0, r4, 0
- strh r0, [r2]
- ldr r0, _08076A74 @ =REG_BLDALPHA
- orrs r3, r1
- strh r3, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076A6C: .4byte gUnknown_0202F7A4
-_08076A70: .4byte REG_BLDCNT
-_08076A74: .4byte REG_BLDALPHA
- thumb_func_end sub_8076A3C
-
- thumb_func_start sub_8076A78
-sub_8076A78: @ 8076A78
- ldr r2, _08076A98 @ =gUnknown_0202F7A4
- ldr r0, [r2]
- adds r1, r0, 0x1
- str r1, [r2]
- ldrb r3, [r0, 0x1]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- adds r0, 0x1
- str r0, [r2]
- ldr r0, _08076A9C @ =REG_BLDCNT
- orrs r3, r1
- strh r3, [r0]
- bx lr
- .align 2, 0
-_08076A98: .4byte gUnknown_0202F7A4
-_08076A9C: .4byte REG_BLDCNT
- thumb_func_end sub_8076A78
-
- thumb_func_start sub_8076AA0
-sub_8076AA0: @ 8076AA0
- ldr r1, _08076AB4 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08076AB8 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08076AB4: .4byte gUnknown_0202F7A4
-_08076AB8: .4byte REG_BLDCNT
- thumb_func_end sub_8076AA0
-
- thumb_func_start ma0E_call
-ma0E_call: @ 8076ABC
- push {r4,lr}
- ldr r4, _08076AE8 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldr r2, _08076AEC @ =gUnknown_0202F7A8
- adds r0, r1, 0x5
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076AE8: .4byte gUnknown_0202F7A4
-_08076AEC: .4byte gUnknown_0202F7A8
- thumb_func_end ma0E_call
-
- thumb_func_start sub_8076AF0
-sub_8076AF0: @ 8076AF0
- ldr r0, _08076AFC @ =gUnknown_0202F7A4
- ldr r1, _08076B00 @ =gUnknown_0202F7A8
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .align 2, 0
-_08076AFC: .4byte gUnknown_0202F7A4
-_08076B00: .4byte gUnknown_0202F7A8
- thumb_func_end sub_8076AF0
-
- thumb_func_start ma10_080736AC
-ma10_080736AC: @ 8076B04
- push {r4,r5,lr}
- ldr r5, _08076B30 @ =gUnknown_0202F7A4
- ldr r1, [r5]
- adds r0, r1, 0x1
- str r0, [r5]
- ldrb r2, [r1, 0x1]
- adds r3, r0, 0x1
- str r3, [r5]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r4, r0
- adds r1, 0x4
- str r1, [r5]
- ldr r0, _08076B34 @ =gUnknown_03004B00
- lsls r2, 1
- adds r2, r0
- strh r4, [r2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08076B30: .4byte gUnknown_0202F7A4
-_08076B34: .4byte gUnknown_03004B00
- thumb_func_end ma10_080736AC
-
- thumb_func_start ma11_if_else
-ma11_if_else: @ 8076B38
- push {lr}
- ldr r3, _08076B70 @ =gUnknown_0202F7A4
- ldr r2, [r3]
- adds r0, r2, 0x1
- str r0, [r3]
- ldr r0, _08076B74 @ =gUnknown_0202F7C4
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08076B52
- adds r0, r2, 0x5
- str r0, [r3]
-_08076B52:
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_08076B70: .4byte gUnknown_0202F7A4
-_08076B74: .4byte gUnknown_0202F7C4
- thumb_func_end ma11_if_else
-
- thumb_func_start ma12_cond_if
-ma12_cond_if: @ 8076B78
- push {r4,r5,lr}
- ldr r5, _08076BA8 @ =gUnknown_0202F7A4
- ldr r4, [r5]
- adds r2, r4, 0x1
- str r2, [r5]
- ldrb r1, [r4, 0x1]
- adds r3, r2, 0x1
- str r3, [r5]
- ldr r0, _08076BAC @ =gUnknown_0202F7C4
- ldrb r0, [r0]
- cmp r1, r0
- bne _08076BB0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r5]
- b _08076BB4
- .align 2, 0
-_08076BA8: .4byte gUnknown_0202F7A4
-_08076BAC: .4byte gUnknown_0202F7C4
-_08076BB0:
- adds r0, r4, 0x6
- str r0, [r5]
-_08076BB4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ma12_cond_if
-
- thumb_func_start sub_8076BBC
-sub_8076BBC: @ 8076BBC
- ldr r3, _08076BDC @ =gUnknown_0202F7A4
- ldr r0, [r3]
- adds r2, r0, 0x1
- str r2, [r3]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_08076BDC: .4byte gUnknown_0202F7A4
- thumb_func_end sub_8076BBC
-
- thumb_func_start sub_8076BE0
-sub_8076BE0: @ 8076BE0
- push {lr}
- ldr r0, _08076BF8 @ =gMain
- ldr r1, _08076BFC @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08076C00
- movs r0, 0
- b _08076C02
- .align 2, 0
-_08076BF8: .4byte gMain
-_08076BFC: .4byte 0x0000043d
-_08076C00:
- movs r0, 0x1
-_08076C02:
- pop {r1}
- bx r1
- thumb_func_end sub_8076BE0
-
- thumb_func_start ma14_load_background
-ma14_load_background: @ 8076C08
- push {r4,lr}
- ldr r1, _08076C3C @ =gUnknown_0202F7A4
- ldr r2, [r1]
- adds r0, r2, 0x1
- str r0, [r1]
- ldrb r4, [r2, 0x1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08076C40 @ =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08076C44 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- ldr r1, _08076C48 @ =gUnknown_0202F7C5
- movs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076C3C: .4byte gUnknown_0202F7A4
-_08076C40: .4byte task_p5_load_battle_screen_elements
-_08076C44: .4byte gTasks
-_08076C48: .4byte gUnknown_0202F7C5
- thumb_func_end ma14_load_background
-
- thumb_func_start sub_8076C4C
-sub_8076C4C: @ 8076C4C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, _08076C8C @ =gUnknown_0202F7A4
- ldr r1, [r2]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r3, [r1, 0x1]
- mov r8, r3
- ldrb r7, [r0, 0x1]
- ldrb r6, [r0, 0x2]
- adds r1, 0x4
- str r1, [r2]
- ldr r0, _08076C90 @ =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076C98
- ldr r1, _08076C94 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x8]
- b _08076CCA
- .align 2, 0
-_08076C8C: .4byte gUnknown_0202F7A4
-_08076C90: .4byte task_p5_load_battle_screen_elements
-_08076C94: .4byte gTasks
-_08076C98:
- ldr r0, _08076CB4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08076CBC
- ldr r1, _08076CB8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x8]
- b _08076CCA
- .align 2, 0
-_08076CB4: .4byte gUnknown_0202F7C9
-_08076CB8: .4byte gTasks
-_08076CBC:
- ldr r1, _08076CDC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x8]
-_08076CCA:
- ldr r1, _08076CE0 @ =gUnknown_0202F7C5
- movs r0, 0x1
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076CDC: .4byte gTasks
-_08076CE0: .4byte gUnknown_0202F7C5
- thumb_func_end sub_8076C4C
-
- thumb_func_start task_p5_load_battle_screen_elements
-task_p5_load_battle_screen_elements: @ 8076CE4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08076D18 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r6, [r4, 0x1C]
- movs r0, 0x1C
- ldrsh r3, [r4, r0]
- adds r7, r1, 0
- cmp r3, 0
- bne _08076D1C
- str r3, [sp]
- movs r0, 0xE8
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- b _08076DAC
- .align 2, 0
-_08076D18: .4byte gTasks
-_08076D1C:
- ldr r2, _08076D38 @ =gPaletteFade
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08076DAC
- cmp r3, 0x1
- bne _08076D40
- adds r0, r6, 0x1
- strh r0, [r4, 0x1C]
- ldr r1, _08076D3C @ =gUnknown_0202F7C5
- movs r0, 0x2
- strb r0, [r1]
- b _08076D84
- .align 2, 0
-_08076D38: .4byte gPaletteFade
-_08076D3C: .4byte gUnknown_0202F7C5
-_08076D40:
- cmp r3, 0x2
- bne _08076D84
- ldrh r0, [r4, 0x8]
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08076D58
- bl dp01t_11_3_message_for_player_only
- b _08076D5E
-_08076D58:
- lsrs r0, r2, 16
- bl sub_8076DB8
-_08076D5E:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xE8
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r1, _08076D80 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x1C]
- adds r1, 0x1
- strh r1, [r0, 0x1C]
- b _08076DAC
- .align 2, 0
-_08076D80: .4byte gTasks
-_08076D84:
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08076DAC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r7
- movs r1, 0x1C
- ldrsh r0, [r0, r1]
- cmp r0, 0x3
- bne _08076DAC
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, _08076DB4 @ =gUnknown_0202F7C5
- strb r4, [r0]
-_08076DAC:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076DB4: .4byte gUnknown_0202F7C5
- thumb_func_end task_p5_load_battle_screen_elements
-
- thumb_func_start sub_8076DB8
-sub_8076DB8: @ 8076DB8
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076E70
- ldr r7, _08076E54 @ =gBattleAnimBackgroundTable
- lsls r0, r6, 1
- adds r0, r6
- lsls r4, r0, 2
- adds r0, r7, 0
- adds r0, 0x8
- adds r0, r4, r0
- ldr r5, [r0]
- bl sub_8076BE0
- lsls r0, 24
- ldr r1, _08076E58 @ =0x02018000
- cmp r0, 0
- beq _08076DE8
- ldr r0, _08076E5C @ =0xffffc800
- adds r1, r0
-_08076DE8:
- adds r0, r5, 0
- bl sub_800D238
- bl sub_80789BC
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- ldr r1, _08076E58 @ =0x02018000
- cmp r0, 0
- beq _08076E06
- ldr r0, _08076E5C @ =0xffffc800
- adds r1, r0
-_08076E06:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r5, 0
- movs r3, 0
- bl sub_80763FC
- bl sub_8076BE0
- lsls r0, 24
- ldr r2, _08076E58 @ =0x02018000
- cmp r0, 0
- beq _08076E22
- ldr r0, _08076E5C @ =0xffffc800
- adds r2, r0
-_08076E22:
- ldr r1, _08076E60 @ =0x0600d000
- ldr r0, _08076E64 @ =0x040000d4
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _08076E68 @ =0x84000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- adds r0, r4, r7
- ldr r0, [r0]
- ldr r1, _08076E6C @ =0x06002000
- bl LZDecompressVram
- adds r0, r7, 0x4
- adds r0, r4, r0
- ldr r4, [r0]
- bl sub_80789BC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 20
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- b _08076E9E
- .align 2, 0
-_08076E54: .4byte gBattleAnimBackgroundTable
-_08076E58: .4byte 0x02018000
-_08076E5C: .4byte 0xffffc800
-_08076E60: .4byte 0x0600d000
-_08076E64: .4byte 0x040000d4
-_08076E68: .4byte 0x84000200
-_08076E6C: .4byte 0x06002000
-_08076E70:
- ldr r5, _08076EA4 @ =gBattleAnimBackgroundTable
- lsls r4, r6, 1
- adds r4, r6
- lsls r4, 2
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r4, r0
- ldr r0, [r0]
- ldr r1, _08076EA8 @ =0x0600d000
- bl LZDecompressVram
- adds r0, r4, r5
- ldr r0, [r0]
- ldr r1, _08076EAC @ =0x06008000
- bl LZDecompressVram
- adds r5, 0x4
- adds r4, r5
- ldr r0, [r4]
- movs r1, 0x20
- movs r2, 0x20
- bl LoadCompressedPalette
-_08076E9E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076EA4: .4byte gBattleAnimBackgroundTable
-_08076EA8: .4byte 0x0600d000
-_08076EAC: .4byte 0x06008000
- thumb_func_end sub_8076DB8
-
- thumb_func_start dp01t_11_3_message_for_player_only
-dp01t_11_3_message_for_player_only: @ 8076EB0
- push {lr}
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076EC2
- bl sub_80AB2AC
- b _08076EC6
-_08076EC2:
- bl sub_800D7B8
-_08076EC6:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_3_message_for_player_only
-
- thumb_func_start ma15_load_battle_screen_elements
-ma15_load_battle_screen_elements: @ 8076ECC
- push {lr}
- ldr r1, _08076EFC @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08076F00 @ =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08076F04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _08076F08 @ =0x0000ffff
- strh r0, [r1, 0x8]
- ldr r1, _08076F0C @ =gUnknown_0202F7C5
- movs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08076EFC: .4byte gUnknown_0202F7A4
-_08076F00: .4byte task_p5_load_battle_screen_elements
-_08076F04: .4byte gTasks
-_08076F08: .4byte 0x0000ffff
-_08076F0C: .4byte gUnknown_0202F7C5
- thumb_func_end ma15_load_battle_screen_elements
-
- thumb_func_start ma16_wait_for_battle_screen_elements_s2
-ma16_wait_for_battle_screen_elements_s2: @ 8076F10
- push {lr}
- ldr r0, _08076F28 @ =gUnknown_0202F7C5
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08076F34
- ldr r1, _08076F2C @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r1, _08076F30 @ =gUnknown_0202F7B0
- movs r0, 0
- b _08076F38
- .align 2, 0
-_08076F28: .4byte gUnknown_0202F7C5
-_08076F2C: .4byte gUnknown_0202F7A4
-_08076F30: .4byte gUnknown_0202F7B0
-_08076F34:
- ldr r1, _08076F40 @ =gUnknown_0202F7B0
- movs r0, 0x1
-_08076F38:
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08076F40: .4byte gUnknown_0202F7B0
- thumb_func_end ma16_wait_for_battle_screen_elements_s2
-
- thumb_func_start sub_8076F44
-sub_8076F44: @ 8076F44
- push {lr}
- ldr r0, _08076F5C @ =gUnknown_0202F7C5
- ldrb r2, [r0]
- cmp r2, 0
- bne _08076F68
- ldr r0, _08076F60 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _08076F64 @ =gUnknown_0202F7B0
- strb r2, [r0]
- b _08076F6E
- .align 2, 0
-_08076F5C: .4byte gUnknown_0202F7C5
-_08076F60: .4byte gUnknown_0202F7A4
-_08076F64: .4byte gUnknown_0202F7B0
-_08076F68:
- ldr r1, _08076F74 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
-_08076F6E:
- pop {r0}
- bx r0
- .align 2, 0
-_08076F74: .4byte gUnknown_0202F7B0
- thumb_func_end sub_8076F44
-
- thumb_func_start ma18_load_background_probably
-ma18_load_background_probably: @ 8076F78
- push {r4,lr}
- ldr r4, _08076F94 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r0, r1, 0x1
- str r0, [r4]
- ldrb r0, [r1, 0x1]
- bl sub_8076DB8
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076F94: .4byte gUnknown_0202F7A4
- thumb_func_end ma18_load_background_probably
-
- thumb_func_start sub_8076F98
-sub_8076F98: @ 8076F98
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08076FDC
- ldr r0, _08076FD4 @ =gUnknown_0202F7C8
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08076FD8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08076FDC
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- movs r4, 0xC0
- cmp r0, 0
- beq _0807706E
- movs r4, 0x3F
- b _0807706E
- .align 2, 0
-_08076FD4: .4byte gUnknown_0202F7C8
-_08076FD8: .4byte 0x02017810
-_08076FDC:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08077004
- ldr r0, _08076FFC @ =gUnknown_0202F7C8
- ldr r1, _08077000 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08077068
- cmp r0, 0x2
- bne _08077068
- cmp r4, 0x3F
- beq _0807707A
- b _08077068
- .align 2, 0
-_08076FFC: .4byte gUnknown_0202F7C8
-_08077000: .4byte gUnknown_0202F7C9
-_08077004:
- ldr r0, _0807702C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08077042
- ldr r0, _08077030 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0807706E
- lsls r0, r4, 24
- asrs r1, r0, 24
- cmp r1, 0x3F
- bne _08077034
- movs r4, 0xC0
- b _0807706E
- .align 2, 0
-_0807702C: .4byte gUnknown_0202F7C8
-_08077030: .4byte gUnknown_0202F7C9
-_08077034:
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- beq _0807706E
- negs r0, r1
- lsls r0, 24
- b _0807706C
-_08077042:
- ldr r0, _08077064 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08077068
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- bne _0807706E
- movs r4, 0x3F
- b _0807706E
- .align 2, 0
-_08077064: .4byte gUnknown_0202F7C9
-_08077068:
- lsls r0, r4, 24
- negs r0, r0
-_0807706C:
- lsrs r4, r0, 24
-_0807706E:
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0x3F
- ble _0807707A
- movs r4, 0x3F
- b _08077088
-_0807707A:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- bge _08077088
- movs r4, 0xC0
-_08077088:
- lsls r0, r4, 24
- asrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8076F98
-
- thumb_func_start sub_8077094
-sub_8077094: @ 8077094
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080770D8
- ldr r0, _080770D0 @ =gUnknown_0202F7C8
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080770D4 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080770D8
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- movs r4, 0xC0
- cmp r0, 0
- beq _080770F6
- movs r4, 0x3F
- b _080770F6
- .align 2, 0
-_080770D0: .4byte gUnknown_0202F7C8
-_080770D4: .4byte 0x02017810
-_080770D8:
- ldr r0, _08077100 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080770F0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080770F6
-_080770F0:
- lsls r0, r4, 24
- negs r0, r0
- lsrs r4, r0, 24
-_080770F6:
- lsls r0, r4, 24
- asrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08077100: .4byte gUnknown_0202F7C8
- thumb_func_end sub_8077094
-
- thumb_func_start sub_8077104
-sub_8077104: @ 8077104
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r2, r0, 16
- cmp r2, 0x3F
- ble _08077114
- movs r1, 0x3F
- b _0807711E
-_08077114:
- movs r0, 0x40
- negs r0, r0
- cmp r2, r0
- bge _0807711E
- ldr r1, _08077128 @ =0x0000ffc0
-_0807711E:
- lsls r0, r1, 16
- asrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_08077128: .4byte 0x0000ffc0
- thumb_func_end sub_8077104
-
- thumb_func_start sub_807712C
-sub_807712C: @ 807712C
- push {lr}
- lsls r2, 16
- lsrs r2, 16
- adds r3, r2, 0
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _0807714A
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0
- bge _0807715A
- b _08077158
-_0807714A:
- cmp r0, r1
- ble _08077160
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0
- bge _08077158
- negs r0, r0
-_08077158:
- negs r0, r0
-_0807715A:
- lsls r0, 16
- lsrs r0, 16
- b _08077162
-_08077160:
- movs r0, 0
-_08077162:
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_807712C
-
- thumb_func_start ma19_08073BC8
-ma19_08073BC8: @ 807716C
- push {r4,r5,lr}
- ldr r5, _080771A0 @ =gUnknown_0202F7A4
- ldr r0, [r5]
- adds r1, r0, 0x1
- str r1, [r5]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r4, 0
- bl PlaySE12WithPanning
- ldr r0, [r5]
- adds r0, 0x3
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080771A0: .4byte gUnknown_0202F7A4
- thumb_func_end ma19_08073BC8
-
- thumb_func_start ma1A_8073C00
-ma1A_8073C00: @ 80771A4
- push {r4,lr}
- ldr r4, _080771CC @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r0, r1, 0x1
- str r0, [r4]
- movs r0, 0x1
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- bl SE12PanpotControl
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080771CC: .4byte gUnknown_0202F7A4
- thumb_func_end ma1A_8073C00
-
- thumb_func_start ma1B_8073C2C
-ma1B_8073C2C: @ 80771D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08077280 @ =gUnknown_0202F7A4
- mov r10, r0
- ldr r0, [r0]
- adds r1, r0, 0x1
- mov r2, r10
- str r1, [r2]
- ldrb r0, [r0, 0x1]
- mov r9, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- mov r2, r9
- orrs r2, r0
- mov r9, r2
- ldrb r4, [r1, 0x3]
- ldrb r6, [r1, 0x4]
- ldrb r7, [r1, 0x5]
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl sub_8076F98
- mov r8, r0
- lsls r5, 24
- asrs r5, 24
- mov r0, r8
- lsls r0, 24
- asrs r0, 24
- mov r8, r0
- lsls r6, 24
- asrs r6, 24
- adds r0, r5, 0
- mov r1, r8
- adds r2, r6, 0
- bl sub_807712C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08077284 @ =c3_08073CEC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08077288 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- mov r2, r8
- strh r2, [r1, 0xA]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xC]
- strh r7, [r1, 0xE]
- strh r5, [r1, 0x10]
- mov r0, r9
- adds r1, r5, 0
- bl PlaySE12WithPanning
- ldr r1, _0807728C @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08077280: .4byte gUnknown_0202F7A4
-_08077284: .4byte c3_08073CEC
-_08077288: .4byte gTasks
-_0807728C: .4byte gUnknown_0202F7B3
- thumb_func_end ma1B_8073C2C
-
- thumb_func_start c3_08073CEC
-c3_08073CEC: @ 8077290
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- ldr r1, _080772D4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x18]
- adds r1, r0, 0x1
- strh r1, [r2, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0xE
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _08077314
- strh r7, [r2, 0x18]
- ldrh r6, [r2, 0x8]
- ldrh r3, [r2, 0xA]
- movs r4, 0x10
- ldrsh r0, [r2, r4]
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- adds r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- strh r4, [r2, 0x10]
- cmp r1, 0
- bne _080772D8
- lsls r2, r3, 16
- b _080772FC
- .align 2, 0
-_080772D4: .4byte gTasks
-_080772D8:
- lsls r1, r6, 16
- lsls r0, r3, 16
- asrs r3, r0, 16
- adds r2, r0, 0
- cmp r1, r2
- bge _080772EE
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- blt _080772F8
- b _080772FC
-_080772EE:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- bgt _080772F8
- movs r7, 0x1
-_080772F8:
- cmp r7, 0
- beq _0807730C
-_080772FC:
- lsrs r4, r2, 16
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, _0807731C @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0807730C:
- lsls r0, r4, 24
- asrs r0, 24
- bl SE12PanpotControl
-_08077314:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807731C: .4byte gUnknown_0202F7B3
- thumb_func_end c3_08073CEC
-
- thumb_func_start sub_8077320
-sub_8077320: @ 8077320
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- ldr r0, _080773A4 @ =gUnknown_0202F7A4
- mov r9, r0
- ldr r0, [r0]
- adds r1, r0, 0x1
- mov r2, r9
- str r1, [r2]
- ldrb r0, [r0, 0x1]
- mov r8, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- mov r2, r8
- orrs r2, r0
- mov r8, r2
- ldrb r4, [r1, 0x2]
- ldrb r5, [r1, 0x3]
- ldrb r6, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- mov r10, r1
- ldr r0, _080773A8 @ =c3_08073CEC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080773AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0x8]
- lsls r5, 24
- asrs r5, 24
- strh r5, [r1, 0xA]
- lsls r6, 24
- asrs r6, 24
- strh r6, [r1, 0xC]
- mov r0, r10
- strh r0, [r1, 0xE]
- strh r4, [r1, 0x10]
- mov r0, r8
- adds r1, r4, 0
- bl PlaySE12WithPanning
- ldr r1, _080773B0 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080773A4: .4byte gUnknown_0202F7A4
-_080773A8: .4byte c3_08073CEC
-_080773AC: .4byte gTasks
-_080773B0: .4byte gUnknown_0202F7B3
- thumb_func_end sub_8077320
-
- thumb_func_start sub_80773B4
-sub_80773B4: @ 80773B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08077464 @ =gUnknown_0202F7A4
- mov r10, r0
- ldr r0, [r0]
- adds r1, r0, 0x1
- mov r2, r10
- str r1, [r2]
- ldrb r0, [r0, 0x1]
- mov r9, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- mov r2, r9
- orrs r2, r0
- mov r9, r2
- ldrb r4, [r1, 0x3]
- ldrb r0, [r1, 0x4]
- mov r8, r0
- ldrb r7, [r1, 0x5]
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8077094
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl sub_8077094
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- mov r0, r8
- bl sub_8077094
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08077468 @ =c3_08073CEC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807746C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- lsls r6, 24
- asrs r6, 24
- strh r6, [r1, 0x8]
- lsls r5, 24
- asrs r5, 24
- strh r5, [r1, 0xA]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xC]
- strh r7, [r1, 0xE]
- strh r6, [r1, 0x10]
- mov r0, r9
- adds r1, r6, 0
- bl PlaySE12WithPanning
- ldr r1, _08077470 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r2, r10
- ldr r0, [r2]
- adds r0, 0x6
- str r0, [r2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08077464: .4byte gUnknown_0202F7A4
-_08077468: .4byte c3_08073CEC
-_0807746C: .4byte gTasks
-_08077470: .4byte gUnknown_0202F7B3
- thumb_func_end sub_80773B4
-
- thumb_func_start ma1C_8073ED0
-ma1C_8073ED0: @ 8077474
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r6, _080774EC @ =gUnknown_0202F7A4
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r5, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r5, r0
- ldrb r0, [r1, 0x3]
- mov r8, r0
- ldrb r2, [r1, 0x4]
- mov r9, r2
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080774F0 @ =sub_80774FC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080774F4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xA]
- mov r2, r8
- strh r2, [r1, 0xC]
- mov r2, r9
- strh r2, [r1, 0xE]
- mov r2, r8
- strh r2, [r1, 0x18]
- ldr r1, [r1]
- bl _call_via_r1
- ldr r1, _080774F8 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x5
- str r0, [r6]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080774EC: .4byte gUnknown_0202F7A4
-_080774F0: .4byte sub_80774FC
-_080774F4: .4byte gTasks
-_080774F8: .4byte gUnknown_0202F7B3
- thumb_func_end ma1C_8073ED0
-
- thumb_func_start sub_80774FC
-sub_80774FC: @ 80774FC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08077550 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x18]
- adds r1, r0, 0x1
- strh r1, [r2, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _0807754A
- movs r0, 0
- strh r0, [r2, 0x18]
- ldrh r0, [r2, 0x8]
- ldrb r1, [r2, 0xA]
- ldrh r4, [r2, 0xE]
- subs r4, 0x1
- strh r4, [r2, 0xE]
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- cmp r4, 0
- bne _0807754A
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, _08077554 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0807754A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08077550: .4byte gTasks
-_08077554: .4byte gUnknown_0202F7B3
- thumb_func_end sub_80774FC
-
- thumb_func_start ma1D_08073FB4
-ma1D_08073FB4: @ 8077558
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r6, _080775BC @ =gUnknown_0202F7A4
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r5, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r5, r0
- ldrb r0, [r1, 0x3]
- mov r8, r0
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080775C0 @ =sub_80775CC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080775C4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xA]
- mov r0, r8
- strh r0, [r1, 0xC]
- ldr r1, _080775C8 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x4
- str r0, [r6]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080775BC: .4byte gUnknown_0202F7A4
-_080775C0: .4byte sub_80775CC
-_080775C4: .4byte gTasks
-_080775C8: .4byte gUnknown_0202F7B3
- thumb_func_end ma1D_08073FB4
-
- thumb_func_start sub_80775CC
-sub_80775CC: @ 80775CC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08077608 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0xC]
- subs r1, r0, 0x1
- strh r1, [r2, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _08077600
- ldrh r0, [r2, 0x8]
- movs r1, 0xA
- ldrsb r1, [r2, r1]
- bl PlaySE12WithPanning
- adds r0, r4, 0
- bl DestroyTask
- ldr r1, _0807760C @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_08077600:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08077608: .4byte gTasks
-_0807760C: .4byte gUnknown_0202F7B3
- thumb_func_end sub_80775CC
-
- thumb_func_start sub_8077610
-sub_8077610: @ 8077610
- push {r4-r6,lr}
- ldr r4, _08077678 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r6, r2, r0
- adds r0, r1, 0x5
- str r0, [r4]
- ldrb r0, [r1, 0x5]
- adds r1, 0x6
- str r1, [r4]
- cmp r0, 0
- beq _0807765A
- adds r5, r4, 0
- ldr r4, _0807767C @ =gUnknown_03004B00
- adds r3, r0, 0
-_08077642:
- ldr r2, [r5]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r4]
- adds r2, 0x2
- str r2, [r5]
- adds r4, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _08077642
-_0807765A:
- adds r0, r6, 0
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r6
- ldr r1, _08077680 @ =gUnknown_0202F7B3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08077678: .4byte gUnknown_0202F7A4
-_0807767C: .4byte gUnknown_03004B00
-_08077680: .4byte gUnknown_0202F7B3
- thumb_func_end sub_8077610
-
- thumb_func_start ma20_wait_for_something
-ma20_wait_for_something: @ 8077684
- push {r4,r5,lr}
- ldr r0, _080776BC @ =gUnknown_0202F7B3
- ldrb r5, [r0]
- cmp r5, 0
- bne _080776CC
- bl IsSEPlaying
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080776E4
- ldr r4, _080776C0 @ =gUnknown_03004AF0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5A
- bls _080776D2
- ldr r0, _080776C4 @ =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, _080776C8 @ =gMPlay_SE2
- bl m4aMPlayStop
- strh r5, [r4]
- b _080776F6
- .align 2, 0
-_080776BC: .4byte gUnknown_0202F7B3
-_080776C0: .4byte gUnknown_03004AF0
-_080776C4: .4byte gMPlay_SE1
-_080776C8: .4byte gMPlay_SE2
-_080776CC:
- ldr r1, _080776DC @ =gUnknown_03004AF0
- movs r0, 0
- strh r0, [r1]
-_080776D2:
- ldr r1, _080776E0 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
- b _080776F6
- .align 2, 0
-_080776DC: .4byte gUnknown_03004AF0
-_080776E0: .4byte gUnknown_0202F7B0
-_080776E4:
- ldr r0, _080776FC @ =gUnknown_03004AF0
- movs r2, 0
- strh r1, [r0]
- ldr r1, _08077700 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08077704 @ =gUnknown_0202F7B0
- strb r2, [r0]
-_080776F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080776FC: .4byte gUnknown_03004AF0
-_08077700: .4byte gUnknown_0202F7A4
-_08077704: .4byte gUnknown_0202F7B0
- thumb_func_end ma20_wait_for_something
-
- thumb_func_start ma21_08074164
-ma21_08074164: @ 8077708
- push {r4-r6,lr}
- ldr r5, _08077748 @ =gUnknown_0202F7A4
- ldr r4, [r5]
- adds r3, r4, 0x1
- str r3, [r5]
- ldrb r2, [r4, 0x1]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _0807774C @ =gUnknown_03004B00
- lsls r2, 1
- adds r2, r0
- lsls r1, 16
- asrs r1, 16
- movs r6, 0
- ldrsh r0, [r2, r6]
- cmp r1, r0
- bne _08077750
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- adds r1, r0
- str r1, [r5]
- b _08077756
- .align 2, 0
-_08077748: .4byte gUnknown_0202F7A4
-_0807774C: .4byte gUnknown_03004B00
-_08077750:
- adds r0, r4, 0
- adds r0, 0x8
- str r0, [r5]
-_08077756:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ma21_08074164
-
- thumb_func_start sub_807775C
-sub_807775C: @ 807775C
- push {r4,lr}
- ldr r4, _0807778C @ =gUnknown_0202F7A4
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08077790
- ldr r2, [r4]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r4]
- b _08077796
- .align 2, 0
-_0807778C: .4byte gUnknown_0202F7A4
-_08077790:
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
-_08077796:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807775C
-
- thumb_func_start sub_807779C
-sub_807779C: @ 807779C
- push {r4,lr}
- ldr r0, _080777B0 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- ldrb r2, [r1, 0x1]
- adds r1, 0x2
- str r1, [r0]
- cmp r2, 0
- beq _080777B8
- ldr r0, _080777B4 @ =gUnknown_0202F7C9
- b _080777BA
- .align 2, 0
-_080777B0: .4byte gUnknown_0202F7A4
-_080777B4: .4byte gUnknown_0202F7C9
-_080777B8:
- ldr r0, _080777FC @ =gUnknown_0202F7C8
-_080777BA:
- ldrb r0, [r0]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080777F4
- cmp r4, 0
- beq _080777D6
- cmp r4, 0x3
- bne _080777F4
-_080777D6:
- ldr r3, _08077800 @ =REG_BG1CNT
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r3]
- ldr r2, _08077804 @ =REG_BG2CNT
- ldrb r0, [r2]
- ands r1, r0
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2]
-_080777F4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080777FC: .4byte gUnknown_0202F7C8
-_08077800: .4byte REG_BG1CNT
-_08077804: .4byte REG_BG2CNT
- thumb_func_end sub_807779C
-
- thumb_func_start sub_8077808
-sub_8077808: @ 8077808
- push {lr}
- ldr r0, _08077840 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0807783A
- ldr r3, _08077844 @ =REG_BG1CNT
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r3]
- ldr r2, _08077848 @ =REG_BG2CNT
- ldrb r0, [r2]
- ands r1, r0
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2]
-_0807783A:
- pop {r0}
- bx r0
- .align 2, 0
-_08077840: .4byte gUnknown_0202F7A4
-_08077844: .4byte REG_BG1CNT
-_08077848: .4byte REG_BG2CNT
- thumb_func_end sub_8077808
-
- thumb_func_start sub_807784C
-sub_807784C: @ 807784C
- push {r4-r7,lr}
- ldr r1, _0807787C @ =gUnknown_0202F7A4
- ldr r0, [r1]
- ldrb r6, [r0, 0x1]
- adds r0, 0x2
- str r0, [r1]
- ldr r7, _08077880 @ =gUnknown_0202F7C8
- ldrb r0, [r7]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r5, _08077884 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080778C2
- cmp r6, 0
- beq _08077888
- ldrb r0, [r5]
- b _0807788A
- .align 2, 0
-_0807787C: .4byte gUnknown_0202F7A4
-_08077880: .4byte gUnknown_0202F7C8
-_08077884: .4byte gUnknown_0202F7C9
-_08077888:
- ldrb r0, [r7]
-_0807788A:
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080778C2
- cmp r4, 0
- beq _080778A4
- cmp r4, 0x3
- bne _080778C2
-_080778A4:
- ldr r3, _080778C8 @ =REG_BG1CNT
- ldrb r2, [r3]
- movs r1, 0x4
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r3]
- ldr r2, _080778CC @ =REG_BG2CNT
- ldrb r0, [r2]
- ands r1, r0
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2]
-_080778C2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080778C8: .4byte REG_BG1CNT
-_080778CC: .4byte REG_BG2CNT
- thumb_func_end sub_807784C
-
- thumb_func_start ma2B_make_side_invisible
-ma2B_make_side_invisible: @ 80778D0
- push {r4,lr}
- ldr r4, _08077904 @ =gUnknown_0202F7A4
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080778F8
- ldr r1, _08077908 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080778F8:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08077904: .4byte gUnknown_0202F7A4
-_08077908: .4byte gSprites
- thumb_func_end ma2B_make_side_invisible
-
- thumb_func_start ma2C_make_side_visible
-ma2C_make_side_visible: @ 807790C
- push {r4,lr}
- ldr r4, _08077944 @ =gUnknown_0202F7A4
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _08077936
- ldr r1, _08077948 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08077936:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08077944: .4byte gUnknown_0202F7A4
-_08077948: .4byte gSprites
- thumb_func_end ma2C_make_side_visible
-
- thumb_func_start sub_807794C
-sub_807794C: @ 807794C
- push {r4-r7,lr}
- ldr r1, _08077998 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- ldrb r7, [r0, 0x1]
- adds r0, 0x2
- str r0, [r1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080779F6
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080779F6
- ldr r6, _0807799C @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r5, _080779A0 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080779F6
- cmp r7, 0
- bne _080779A4
- ldrb r0, [r6]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- b _080779B0
- .align 2, 0
-_08077998: .4byte gUnknown_0202F7A4
-_0807799C: .4byte gUnknown_0202F7C8
-_080779A0: .4byte gUnknown_0202F7C9
-_080779A4:
- ldrb r0, [r5]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
-_080779B0:
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080779F6
- ldr r1, _080779EC @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r2, r0, r1
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- cmp r4, 0x2
- bne _080779E0
- ldrb r0, [r2, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080779E0:
- cmp r4, 0x1
- bne _080779F0
- movs r0, 0
- bl sub_8076464
- b _080779F6
- .align 2, 0
-_080779EC: .4byte gSprites
-_080779F0:
- movs r0, 0x1
- bl sub_8076464
-_080779F6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807794C
-
- thumb_func_start sub_80779FC
-sub_80779FC: @ 80779FC
- push {r4-r7,lr}
- ldr r1, _08077A48 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- ldrb r7, [r0, 0x1]
- adds r0, 0x2
- str r0, [r1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08077A88
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08077A88
- ldr r6, _08077A4C @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r5, _08077A50 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _08077A88
- cmp r7, 0
- bne _08077A54
- ldrb r0, [r6]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- b _08077A60
- .align 2, 0
-_08077A48: .4byte gUnknown_0202F7A4
-_08077A4C: .4byte gUnknown_0202F7C8
-_08077A50: .4byte gUnknown_0202F7C9
-_08077A54:
- ldrb r0, [r5]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
-_08077A60:
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _08077A88
- cmp r4, 0x2
- bne _08077A88
- ldr r1, _08077A90 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x5]
-_08077A88:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08077A90: .4byte gSprites
- thumb_func_end sub_80779FC
-
- thumb_func_start ma2F_stop_music
-ma2F_stop_music: @ 8077A94
- push {lr}
- ldr r0, _08077AB0 @ =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, _08077AB4 @ =gMPlay_SE2
- bl m4aMPlayStop
- ldr r1, _08077AB8 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08077AB0: .4byte gMPlay_SE1
-_08077AB4: .4byte gMPlay_SE2
-_08077AB8: .4byte gUnknown_0202F7A4
- thumb_func_end ma2F_stop_music
-
- thumb_func_start sub_8077ABC
-sub_8077ABC: @ 8077ABC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08077ADA
- cmp r4, 0x3
- bne _08077ADA
- cmp r5, 0x3
- bne _08077ADA
- movs r4, 0x1
-_08077ADA:
- cmp r4, 0x4
- bhi _08077B50
- lsls r0, r4, 2
- ldr r1, _08077AE8 @ =_08077AEC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08077AE8: .4byte _08077AEC
- .align 2, 0
-_08077AEC:
- .4byte _08077B00
- .4byte _08077B28
- .4byte _08077B00
- .4byte _08077B50
- .4byte _08077B50
-_08077B00:
- ldr r4, _08077B20 @ =gUnknown_0837F578
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 22
- ldr r1, _08077B24 @ =gUnknown_020239F8
- ldrh r2, [r1]
- movs r1, 0x1
- ands r1, r2
- lsls r1, 4
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- b _08077BF4
- .align 2, 0
-_08077B20: .4byte gUnknown_0837F578
-_08077B24: .4byte gUnknown_020239F8
-_08077B28:
- ldr r4, _08077B48 @ =gUnknown_0837F578
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 22
- ldr r1, _08077B4C @ =gUnknown_020239F8
- ldrh r2, [r1]
- movs r1, 0x1
- ands r1, r2
- lsls r1, 4
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x1]
- b _08077BF4
- .align 2, 0
-_08077B48: .4byte gUnknown_0837F578
-_08077B4C: .4byte gUnknown_020239F8
-_08077B50:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08077B74
- ldr r2, _08077B6C @ =0x02019348
- ldrb r1, [r2, 0x4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08077B70
- ldrh r1, [r2, 0x2]
- b _08077BDE
- .align 2, 0
-_08077B6C: .4byte 0x02019348
-_08077B70:
- ldrh r1, [r2]
- b _08077BDE
-_08077B74:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08077BA8
- lsls r0, r5, 2
- ldr r1, _08077B9C @ =0x02017800
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08077BDC
- ldr r1, _08077BA0 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08077BA4 @ =gEnemyParty
- b _08077BC2
- .align 2, 0
-_08077B9C: .4byte 0x02017800
-_08077BA0: .4byte gUnknown_02024A6A
-_08077BA4: .4byte gEnemyParty
-_08077BA8:
- lsls r0, r5, 2
- ldr r1, _08077BD0 @ =0x02017800
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08077BDC
- ldr r1, _08077BD4 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08077BD8 @ =gPlayerParty
-_08077BC2:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- b _08077BDE
- .align 2, 0
-_08077BD0: .4byte 0x02017800
-_08077BD4: .4byte gUnknown_02024A6A
-_08077BD8: .4byte gPlayerParty
-_08077BDC:
- ldrh r1, [r1, 0x2]
-_08077BDE:
- cmp r4, 0x3
- bne _08077BE8
- adds r0, r5, 0
- movs r2, 0x1
- b _08077BEC
-_08077BE8:
- adds r0, r5, 0
- movs r2, 0
-_08077BEC:
- bl sub_8077E44
- lsls r0, 24
- lsrs r0, 24
-_08077BF4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8077ABC
-
- thumb_func_start sub_8077BFC
-sub_8077BFC: @ 8077BFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08077C1C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08077D04
-_08077C1C:
- cmp r5, 0xC9
- bne _08077CCC
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08077C44
- ldr r2, _08077C3C @ =0x02019348
- ldrb r1, [r2, 0x4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08077C40
- ldr r2, [r2, 0x10]
- b _08077C7E
- .align 2, 0
-_08077C3C: .4byte 0x02019348
-_08077C40:
- ldr r2, [r2, 0x8]
- b _08077C7E
-_08077C44:
- lsls r1, r4, 2
- ldr r0, _08077C6C @ =0x02017800
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- bne _08077C78
- ldr r1, _08077C70 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08077C74 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- b _08077C7E
- .align 2, 0
-_08077C6C: .4byte 0x02017800
-_08077C70: .4byte gUnknown_02024A6A
-_08077C74: .4byte gPlayerParty
-_08077C78:
- ldr r0, _08077CB4 @ =gUnknown_02024E70
- adds r0, r1, r0
- ldr r2, [r0]
-_08077C7E:
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _08077CB8
- adds r0, r5, 0
- b _08077CC2
- .align 2, 0
-_08077CB4: .4byte gUnknown_02024E70
-_08077CB8:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_08077CC2:
- ldr r1, _08077CC8 @ =gMonBackPicCoords
- lsls r0, 2
- b _08077DC8
- .align 2, 0
-_08077CC8: .4byte gMonBackPicCoords
-_08077CCC:
- ldr r0, _08077CE0 @ =SPECIES_CASTFORM
- cmp r5, r0
- bne _08077CEC
- ldr r0, _08077CE4 @ =gUnknown_0837F5AC
- ldr r1, _08077CE8 @ =gUnknown_02024E84
- adds r1, r4, r1
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- b _08077DCC
- .align 2, 0
-_08077CE0: .4byte SPECIES_CASTFORM
-_08077CE4: .4byte gUnknown_0837F5AC
-_08077CE8: .4byte gUnknown_02024E84
-_08077CEC:
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- bls _08077CFC
- ldr r0, _08077CF8 @ =gMonBackPicCoords
- b _08077DCA
- .align 2, 0
-_08077CF8: .4byte gMonBackPicCoords
-_08077CFC:
- ldr r1, _08077D00 @ =gMonBackPicCoords
- b _08077DC6
- .align 2, 0
-_08077D00: .4byte gMonBackPicCoords
-_08077D04:
- cmp r5, 0xC9
- bne _08077D90
- lsls r1, r4, 2
- ldr r0, _08077D30 @ =0x02017800
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- bne _08077D3C
- ldr r1, _08077D34 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08077D38 @ =gEnemyParty
- adds r0, r1
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- b _08077D42
- .align 2, 0
-_08077D30: .4byte 0x02017800
-_08077D34: .4byte gUnknown_02024A6A
-_08077D38: .4byte gEnemyParty
-_08077D3C:
- ldr r0, _08077D78 @ =gUnknown_02024E70
- adds r0, r1, r0
- ldr r2, [r0]
-_08077D42:
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _08077D7C
- adds r0, r5, 0
- b _08077D86
- .align 2, 0
-_08077D78: .4byte gUnknown_02024E70
-_08077D7C:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_08077D86:
- ldr r1, _08077D8C @ =gMonFrontPicCoords
- lsls r0, 2
- b _08077DC8
- .align 2, 0
-_08077D8C: .4byte gMonFrontPicCoords
-_08077D90:
- ldr r0, _08077DA8 @ =SPECIES_CASTFORM
- cmp r5, r0
- bne _08077DB4
- ldr r0, _08077DAC @ =gUnknownCastformCoords_0837F598
- ldr r1, _08077DB0 @ =gUnknown_02024E84
- adds r1, r4, r1
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _08077DCC
- .align 2, 0
-_08077DA8: .4byte SPECIES_CASTFORM
-_08077DAC: .4byte gUnknownCastformCoords_0837F598
-_08077DB0: .4byte gUnknown_02024E84
-_08077DB4:
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- bls _08077DC4
- ldr r0, _08077DC0 @ =gMonFrontPicCoords
- b _08077DCA
- .align 2, 0
-_08077DC0: .4byte gMonFrontPicCoords
-_08077DC4:
- ldr r1, _08077DD4 @ =gMonFrontPicCoords
-_08077DC6:
- lsls r0, r5, 2
-_08077DC8:
- adds r0, r1
-_08077DCA:
- ldrb r0, [r0, 0x1]
-_08077DCC:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08077DD4: .4byte gMonFrontPicCoords
- thumb_func_end sub_8077BFC
-
- thumb_func_start sub_8077DD8
-sub_8077DD8: @ 8077DD8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- adds r7, r4, 0
- movs r5, 0
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08077E36
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08077E36
- ldr r0, _08077E14 @ =SPECIES_CASTFORM
- cmp r4, r0 @ check if the given pokemon species is Castform
- bne _08077E20
- ldr r0, _08077E18 @ =gUnknownCastformData_0837F5A8
- ldr r1, _08077E1C @ =gUnknown_02024E84
- adds r1, r6, r1
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- b _08077E36
- .align 2, 0
-_08077E14: .4byte SPECIES_CASTFORM
-_08077E18: .4byte gUnknownCastformData_0837F5A8
-_08077E1C: .4byte gUnknown_02024E84
-_08077E20:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08077E30
- ldr r0, _08077E2C @ =gEnemyMonElevation
- b _08077E34
- .align 2, 0
-_08077E2C: .4byte gEnemyMonElevation
-_08077E30:
- ldr r0, _08077E40 @ =gEnemyMonElevation
- adds r0, r7, r0
-_08077E34:
- ldrb r5, [r0]
-_08077E36:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08077E40: .4byte gEnemyMonElevation
- thumb_func_end sub_8077DD8
-
- thumb_func_start sub_8077E44
-sub_8077E44: @ 8077E44
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 24
- lsrs r7, r2, 24
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08077E68
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08077E76
-_08077E68:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_8077BFC
- lsls r0, 24
- lsrs r4, r0, 24
- b _08077E94
-_08077E76:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_8077BFC
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_8077DD8
- lsls r0, 24
- lsrs r0, 24
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
-_08077E94:
- adds r0, r6, 0
- bl battle_get_per_side_status
- ldr r3, _08077EDC @ =gUnknown_0837F578
- lsls r0, 24
- lsrs r0, 22
- ldr r1, _08077EE0 @ =gUnknown_020239F8
- ldrh r2, [r1]
- movs r1, 0x1
- ands r1, r2
- lsls r1, 4
- adds r0, r1
- adds r0, r3
- ldrb r0, [r0, 0x1]
- adds r0, r4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r7, 0
- beq _08077ED4
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08077ECE
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
-_08077ECE:
- cmp r4, 0x68
- bls _08077ED4
- movs r4, 0x68
-_08077ED4:
- adds r0, r4, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08077EDC: .4byte gUnknown_0837F578
-_08077EE0: .4byte gUnknown_020239F8
- thumb_func_end sub_8077E44
-
- thumb_func_start sub_8077EE4
-sub_8077EE4: @ 8077EE4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0xFD
- lsls r0, 24
- adds r1, r0
- lsrs r1, 24
- cmp r1, 0x1
- bhi _08077F56
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08077F1C
- ldr r2, _08077F14 @ =0x02019348
- ldrb r1, [r2, 0x4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08077F18
- ldrh r1, [r2, 0x2]
- b _08077F3E
- .align 2, 0
-_08077F14: .4byte 0x02019348
-_08077F18:
- ldrh r1, [r2]
- b _08077F3E
-_08077F1C:
- lsls r0, r4, 2
- ldr r1, _08077F34 @ =0x02017800
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08077F3C
- ldr r1, _08077F38 @ =gUnknown_0202F7CA
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- b _08077F3E
- .align 2, 0
-_08077F34: .4byte 0x02017800
-_08077F38: .4byte gUnknown_0202F7CA
-_08077F3C:
- ldrh r1, [r1, 0x2]
-_08077F3E:
- cmp r5, 0x3
- bne _08077F4C
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_8077E44
- b _08077F5E
-_08077F4C:
- adds r0, r4, 0
- movs r2, 0
- bl sub_8077E44
- b _08077F5E
-_08077F56:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8077ABC
-_08077F5E:
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8077EE4
-
- thumb_func_start sub_8077F68
-sub_8077F68: @ 8077F68
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x4
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8077F68
-
- thumb_func_start sub_8077F7C
-sub_8077F7C: @ 8077F7C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08077FA0
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0x80
- lsls r1, 13
- b _08077FB0
-_08077FA0:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0x88
- lsls r1, 13
-_08077FB0:
- adds r0, r1
- lsrs r0, 16
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8077F7C
-
- thumb_func_start sub_8077FC0
-sub_8077FC0: @ 8077FC0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08078060
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08078010
- lsls r0, r5, 2
- ldr r1, _08078004 @ =0x02017800
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08078044
- ldr r1, _08078008 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0807800C @ =gEnemyParty
- b _0807802A
- .align 2, 0
-_08078004: .4byte 0x02017800
-_08078008: .4byte gUnknown_02024A6A
-_0807800C: .4byte gEnemyParty
-_08078010:
- lsls r0, r5, 2
- ldr r1, _08078038 @ =0x02017800
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08078044
- ldr r1, _0807803C @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08078040 @ =gPlayerParty
-_0807802A:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- b _08078046
- .align 2, 0
-_08078038: .4byte 0x02017800
-_0807803C: .4byte gUnknown_02024A6A
-_08078040: .4byte gPlayerParty
-_08078044:
- ldrh r4, [r1, 0x2]
-_08078046:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08078060
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8077DD8
- subs r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
-_08078060:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8077FC0
-
- thumb_func_start obj_id_for_side_relative_to_move
-obj_id_for_side_relative_to_move: @ 8078068
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- bne _08078090
- ldr r4, _08078088 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _080780DE
- ldr r1, _0807808C @ =gUnknown_02024BE0
- ldrb r0, [r4]
- b _080780EE
- .align 2, 0
-_08078088: .4byte gUnknown_0202F7C8
-_0807808C: .4byte gUnknown_02024BE0
-_08078090:
- cmp r0, 0x1
- bne _080780B0
- ldr r4, _080780A8 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _080780DE
- ldr r1, _080780AC @ =gUnknown_02024BE0
- ldrb r0, [r4]
- b _080780EE
- .align 2, 0
-_080780A8: .4byte gUnknown_0202F7C9
-_080780AC: .4byte gUnknown_02024BE0
-_080780B0:
- cmp r1, 0x2
- bne _080780CC
- ldr r5, _080780C8 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080780DE
- b _080780E8
- .align 2, 0
-_080780C8: .4byte gUnknown_0202F7C8
-_080780CC:
- ldr r5, _080780E4 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _080780E8
-_080780DE:
- movs r0, 0xFF
- b _080780F2
- .align 2, 0
-_080780E4: .4byte gUnknown_0202F7C9
-_080780E8:
- ldr r1, _080780F8 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- eors r0, r4
-_080780EE:
- adds r0, r1
- ldrb r0, [r0]
-_080780F2:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080780F8: .4byte gUnknown_02024BE0
- thumb_func_end obj_id_for_side_relative_to_move
-
- thumb_func_start oamt_set_x3A_32
-oamt_set_x3A_32: @ 80780FC
- strh r1, [r0, 0x3A]
- lsrs r1, 16
- strh r1, [r0, 0x3C]
- bx lr
- thumb_func_end oamt_set_x3A_32
-
- thumb_func_start sub_8078104
-sub_8078104: @ 8078104
- ldrh r2, [r0, 0x3A]
- movs r3, 0x3C
- ldrsh r1, [r0, r3]
- lsls r1, 16
- orrs r2, r1
- str r2, [r0, 0x1C]
- bx lr
- thumb_func_end sub_8078104
-
- thumb_func_start sub_8078114
-sub_8078114: @ 8078114
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08078168
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08078154
- ldr r2, _08078150 @ =0xffffff00
- b _0807815C
- .align 2, 0
-_08078150: .4byte 0xffffff00
-_08078154:
- cmp r0, 0
- bge _08078160
- movs r2, 0x80
- lsls r2, 1
-_0807815C:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_08078160:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _0807816E
-_08078168:
- adds r0, r4, 0
- bl sub_8078104
-_0807816E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8078114
-
- thumb_func_start sub_8078174
-sub_8078174: @ 8078174
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080781E4
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- strh r0, [r4, 0x38]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080781D0
- ldr r2, _080781CC @ =0xffffff00
- b _080781D8
- .align 2, 0
-_080781CC: .4byte 0xffffff00
-_080781D0:
- cmp r0, 0
- bge _080781DC
- movs r2, 0x80
- lsls r2, 1
-_080781D8:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_080781DC:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _080781EA
-_080781E4:
- adds r0, r4, 0
- bl sub_8078104
-_080781EA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8078174
-
- thumb_func_start unref_sub_80781F0
-unref_sub_80781F0: @ 80781F0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0807826C
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08078238
- ldr r2, _08078234 @ =0xffffff00
- b _08078240
- .align 2, 0
-_08078234: .4byte 0xffffff00
-_08078238:
- cmp r0, 0
- bge _08078244
- movs r2, 0x80
- lsls r2, 1
-_08078240:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_08078244:
- ldrh r1, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- ble _08078258
- ldr r2, _08078254 @ =0xffffff00
- b _08078260
- .align 2, 0
-_08078254: .4byte 0xffffff00
-_08078258:
- cmp r0, 0
- bge _08078264
- movs r2, 0x80
- lsls r2, 1
-_08078260:
- adds r0, r1, r2
- strh r0, [r4, 0x36]
-_08078264:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _08078272
-_0807826C:
- adds r0, r4, 0
- bl sub_8078104
-_08078272:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80781F0
-
- thumb_func_start sub_8078278
-sub_8078278: @ 8078278
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080782CC
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080782B8
- ldr r2, _080782B4 @ =0xffffff00
- b _080782C0
- .align 2, 0
-_080782B4: .4byte 0xffffff00
-_080782B8:
- cmp r0, 0
- bge _080782C4
- movs r2, 0x80
- lsls r2, 1
-_080782C0:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_080782C4:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _080782D2
-_080782CC:
- adds r0, r4, 0
- bl sub_8078104
-_080782D2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8078278
-
- thumb_func_start sub_80782D8
-sub_80782D8: @ 80782D8
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _080782EC
- subs r0, r2, 0x1
- strh r0, [r1, 0x2E]
- b _080782F2
-_080782EC:
- adds r0, r1, 0
- bl sub_8078104
-_080782F2:
- pop {r0}
- bx r0
- thumb_func_end sub_80782D8
-
- thumb_func_start sub_80782F8
-sub_80782F8: @ 80782F8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078314
- ldr r1, _08078310 @ =sub_8078364
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08078310: .4byte sub_8078364
- thumb_func_end sub_80782F8
-
- thumb_func_start sub_8078314
-sub_8078314: @ 8078314
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _0807832A
- ldrh r0, [r4, 0x2E]
- negs r0, r0
- strh r0, [r4, 0x2E]
-_0807832A:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- subs r0, r1
- ldrh r5, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl __divsi3
- cmp r0, 0
- bge _08078344
- negs r0, r0
-_08078344:
- strh r0, [r4, 0x2E]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- subs r0, r1
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x30]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8078314
-
- thumb_func_start sub_8078364
-sub_8078364: @ 8078364
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _08078388
- subs r0, r2, 0x1
- strh r0, [r1, 0x2E]
- ldrh r0, [r1, 0x30]
- ldrh r2, [r1, 0x24]
- adds r0, r2
- strh r0, [r1, 0x24]
- ldrh r0, [r1, 0x32]
- ldrh r3, [r1, 0x26]
- adds r0, r3
- strh r0, [r1, 0x26]
- b _0807838E
-_08078388:
- adds r0, r1, 0
- bl sub_8078104
-_0807838E:
- pop {r0}
- bx r0
- thumb_func_end sub_8078364
-
- thumb_func_start sub_8078394
-sub_8078394: @ 8078394
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080783C4
- subs r0, r1, 0x1
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r0, r1
- strh r0, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r3, [r2, 0x36]
- adds r1, r3
- strh r1, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r2, 0x26]
- b _080783CA
-_080783C4:
- adds r0, r2, 0
- bl sub_8078104
-_080783CA:
- pop {r0}
- bx r0
- thumb_func_end sub_8078394
-
- thumb_func_start sub_80783D0
-sub_80783D0: @ 80783D0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08078400
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r4, 0x26]
- b _08078406
-_08078400:
- adds r0, r4, 0
- bl sub_8078104
-_08078406:
- adds r0, r4, 0
- bl sub_809D638
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80783D0
-
- thumb_func_start unref_sub_8078414
-unref_sub_8078414: @ 8078414
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldr r5, _08078450 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _08078454 @ =sub_80782F8
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08078450: .4byte gUnknown_0202F7C9
-_08078454: .4byte sub_80782F8
- thumb_func_end unref_sub_8078414
-
- thumb_func_start sub_8078458
-sub_8078458: @ 8078458
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _0807849C
- subs r0, r1, 0x1
- strh r0, [r3, 0x2E]
- ldr r2, _08078498 @ =gSprites
- movs r4, 0x34
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x30]
- ldrh r4, [r0, 0x24]
- adds r1, r4
- strh r1, [r0, 0x24]
- movs r0, 0x34
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x32]
- ldrh r2, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- b _080784A2
- .align 2, 0
-_08078498: .4byte gSprites
-_0807849C:
- adds r0, r3, 0
- bl sub_8078104
-_080784A2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8078458
-
- thumb_func_start sub_80784A8
-sub_80784A8: @ 80784A8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080784F8
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- ldrh r0, [r4, 0x34]
- adds r1, r0
- strh r1, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldr r3, _080784F4 @ =gSprites
- movs r0, 0x38
- ldrsh r2, [r4, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- lsls r1, 16
- asrs r1, 24
- strh r1, [r0, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r1, 0x26]
- b _080784FE
- .align 2, 0
-_080784F4: .4byte gSprites
-_080784F8:
- adds r0, r4, 0
- bl sub_8078104
-_080784FE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80784A8
-
- thumb_func_start sub_8078504
-sub_8078504: @ 8078504
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08078566
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r1, r0
- strh r1, [r4, 0x32]
- ldrh r1, [r4, 0x36]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r1, r0
- strh r1, [r4, 0x36]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _0807856C
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0807856C
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _0807856C
-_08078566:
- adds r0, r4, 0
- bl sub_8078104
-_0807856C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8078504
-
- thumb_func_start move_anim_8074EE0
-move_anim_8074EE0: @ 8078574
- push {r4,lr}
- adds r4, r0, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl move_anim_8072740
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end move_anim_8074EE0
-
- thumb_func_start unref_sub_8078588
-unref_sub_8078588: @ 8078588
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldr r5, _080785C4 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080785C8 @ =sub_80782F8
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080785C4: .4byte gUnknown_0202F7C8
-_080785C8: .4byte sub_80782F8
- thumb_func_end unref_sub_8078588
-
- thumb_func_start unref_sub_80785CC
-unref_sub_80785CC: @ 80785CC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- bl ResetPaletteStructByUid
- adds r0, r4, 0
- bl move_anim_8074EE0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80785CC
-
- thumb_func_start sub_80785E4
-sub_80785E4: @ 80785E4
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080785FA
- adds r0, r2, 0
- bl sub_8078104
-_080785FA:
- pop {r0}
- bx r0
- thumb_func_end sub_80785E4
-
- thumb_func_start sub_8078600
-sub_8078600: @ 8078600
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08078616
- adds r0, r2, 0
- bl sub_8078104
-_08078616:
- pop {r0}
- bx r0
- thumb_func_end sub_8078600
-
- thumb_func_start sub_807861C
-sub_807861C: @ 807861C
- push {lr}
- ldr r1, _08078630 @ =REG_BLDCNT
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_08078630: .4byte REG_BLDCNT
- thumb_func_end sub_807861C
-
- thumb_func_start sub_8078634
-sub_8078634: @ 8078634
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0807864C @ =REG_BLDCNT
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_0807864C: .4byte REG_BLDCNT
- thumb_func_end sub_8078634
-
- thumb_func_start sub_8078650
-sub_8078650: @ 8078650
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08078678 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08078678: .4byte gUnknown_0202F7C8
- thumb_func_end sub_8078650
-
- thumb_func_start sub_807867C
-sub_807867C: @ 807867C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- mov r8, r5
- ldr r7, _080786B4 @ =gUnknown_0202F7C8
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080786B8 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bhi _080786C8
- cmp r6, r0
- bcs _080786BC
- lsls r0, r5, 16
- b _080786D8
- .align 2, 0
-_080786B4: .4byte gUnknown_0202F7C8
-_080786B8: .4byte gUnknown_0202F7C9
-_080786BC:
- ldrb r0, [r7]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080786D4
-_080786C8:
- ldrh r1, [r4, 0x20]
- lsls r0, r5, 16
- asrs r0, 16
- subs r1, r0
- strh r1, [r4, 0x20]
- b _080786E0
-_080786D4:
- mov r1, r8
- lsls r0, r1, 16
-_080786D8:
- asrs r0, 16
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
-_080786E0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807867C
-
- thumb_func_start sub_80786EC
-sub_80786EC: @ 80786EC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- movs r5, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 8
- bl __divsi3
- strh r0, [r4, 0x3A]
- strh r5, [r4, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80786EC
-
- thumb_func_start sub_8078718
-sub_8078718: @ 8078718
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _08078744
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r0, 0
- b _08078746
-_08078744:
- movs r0, 0x1
-_08078746:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8078718
-
- thumb_func_start oamt_add_pos2_onto_pos1
-oamt_add_pos2_onto_pos1: @ 807874C
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- movs r2, 0
- strh r1, [r0, 0x20]
- ldrh r1, [r0, 0x26]
- ldrh r3, [r0, 0x22]
- adds r1, r3
- strh r1, [r0, 0x22]
- strh r2, [r0, 0x24]
- strh r2, [r0, 0x26]
- bx lr
- thumb_func_end oamt_add_pos2_onto_pos1
-
- thumb_func_start sub_8078764
-sub_8078764: @ 8078764
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- cmp r1, 0
- bne _0807878C
- ldr r4, _080787A8 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_0807878C:
- ldr r4, _080787AC @ =gUnknown_03004B00
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_807867C
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080787A8: .4byte gUnknown_0202F7C9
-_080787AC: .4byte gUnknown_03004B00
- thumb_func_end sub_8078764
-
- thumb_func_start sub_80787B0
-sub_80787B0: @ 80787B0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- cmp r1, 0
- bne _080787D4
- ldr r4, _080787D0 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- b _080787E8
- .align 2, 0
-_080787D0: .4byte gUnknown_0202F7C8
-_080787D4:
- ldr r4, _0807880C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
-_080787E8:
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _08078810 @ =gUnknown_03004B00
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_807867C
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807880C: .4byte gUnknown_0202F7C8
-_08078810: .4byte gUnknown_03004B00
- thumb_func_end sub_80787B0
-
- thumb_func_start battle_side_get_owner
-battle_side_get_owner: @ 8078814
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08078824 @ =gUnknown_02024A72
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_08078824: .4byte gUnknown_02024A72
- thumb_func_end battle_side_get_owner
-
- thumb_func_start battle_get_per_side_status
-battle_get_per_side_status: @ 8078828
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08078834 @ =gUnknown_02024A72
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08078834: .4byte gUnknown_02024A72
- thumb_func_end battle_get_per_side_status
-
- thumb_func_start battle_get_side_with_given_state
-battle_get_side_with_given_state: @ 8078838
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r1, 0
- ldr r0, _0807886C @ =gUnknown_02024A68
- ldrb r2, [r0]
- cmp r1, r2
- bcs _08078862
- ldr r4, _08078870 @ =gUnknown_02024A72
- ldrb r0, [r4]
- cmp r0, r3
- beq _08078862
-_08078850:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r2
- bcs _08078862
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r3
- bne _08078850
-_08078862:
- adds r0, r1, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0807886C: .4byte gUnknown_02024A68
-_08078870: .4byte gUnknown_02024A72
- thumb_func_end battle_get_side_with_given_state
-
- thumb_func_start sub_8078874
-sub_8078874: @ 8078874
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080788A0
- ldr r0, _08078898 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- cmp r0, r4
- beq _080788EE
- ldr r0, _0807889C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- cmp r0, r4
- beq _080788EE
- b _080788FC
- .align 2, 0
-_08078898: .4byte gUnknown_0202F7C8
-_0807889C: .4byte gUnknown_0202F7C9
-_080788A0:
- ldr r0, _080788C8 @ =gUnknown_02024A72
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080788FC
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080788D4
- ldr r1, _080788CC @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080788D0 @ =gEnemyParty
- b _080788E2
- .align 2, 0
-_080788C8: .4byte gUnknown_02024A72
-_080788CC: .4byte gUnknown_02024A6A
-_080788D0: .4byte gEnemyParty
-_080788D4:
- ldr r1, _080788F4 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080788F8 @ =gPlayerParty
-_080788E2:
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080788FC
-_080788EE:
- movs r0, 0x1
- b _080788FE
- .align 2, 0
-_080788F4: .4byte gUnknown_02024A6A
-_080788F8: .4byte gPlayerParty
-_080788FC:
- movs r0, 0
-_080788FE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8078874
-
- thumb_func_start battle_type_is_double
-battle_type_is_double: @ 8078904
- ldr r0, _08078910 @ =gUnknown_020239F8
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_08078910: .4byte gUnknown_020239F8
- thumb_func_end battle_type_is_double
-
- thumb_func_start sub_8078914
-sub_8078914: @ 8078914
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08078938
- ldr r0, _08078930 @ =0x06008000
- str r0, [r4]
- ldr r0, _08078934 @ =0x0600f000
- str r0, [r4, 0x4]
- movs r0, 0xE
- b _08078942
- .align 2, 0
-_08078930: .4byte 0x06008000
-_08078934: .4byte 0x0600f000
-_08078938:
- ldr r0, _0807894C @ =0x06004000
- str r0, [r4]
- ldr r0, _08078950 @ =0x0600e000
- str r0, [r4, 0x4]
- movs r0, 0x8
-_08078942:
- strb r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807894C: .4byte 0x06004000
-_08078950: .4byte 0x0600e000
- thumb_func_end sub_8078914
-
- thumb_func_start sub_8078954
-sub_8078954: @ 8078954
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08078978
- ldr r0, _08078970 @ =0x06008000
- str r0, [r4]
- ldr r0, _08078974 @ =0x0600f000
- str r0, [r4, 0x4]
- movs r0, 0xE
- b _080789AA
- .align 2, 0
-_08078970: .4byte 0x06008000
-_08078974: .4byte 0x0600f000
-_08078978:
- ldr r0, _08078994 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080789A0
- ldr r0, _08078998 @ =0x06004000
- str r0, [r4]
- ldr r0, _0807899C @ =0x0600e000
- str r0, [r4, 0x4]
- movs r0, 0x8
- b _080789AA
- .align 2, 0
-_08078994: .4byte gUnknown_0202F7C8
-_08078998: .4byte 0x06004000
-_0807899C: .4byte 0x0600e000
-_080789A0:
- ldr r0, _080789B4 @ =0x06006000
- str r0, [r4]
- ldr r0, _080789B8 @ =0x0600f000
- str r0, [r4, 0x4]
- movs r0, 0x9
-_080789AA:
- strb r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080789B4: .4byte 0x06006000
-_080789B8: .4byte 0x0600f000
- thumb_func_end sub_8078954
-
- thumb_func_start sub_80789BC
-sub_80789BC: @ 80789BC
- push {lr}
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080789CC
- movs r0, 0x2
- b _080789CE
-_080789CC:
- movs r0, 0x1
-_080789CE:
- pop {r1}
- bx r1
- thumb_func_end sub_80789BC
-
- thumb_func_start sub_80789D4
-sub_80789D4: @ 80789D4
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _080789F4
- ldr r2, _080789F0 @ =REG_BG3CNT
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x1]
- movs r1, 0x20
- orrs r0, r1
- b _08078A2A
- .align 2, 0
-_080789F0: .4byte REG_BG3CNT
-_080789F4:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08078A14
- ldr r2, _08078A10 @ =REG_BG3CNT
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x1]
- movs r1, 0x20
- orrs r0, r1
- b _08078A2A
- .align 2, 0
-_08078A10: .4byte REG_BG3CNT
-_08078A14:
- ldr r2, _08078A30 @ =REG_BG3CNT
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
-_08078A2A:
- strb r0, [r2, 0x1]
- pop {r0}
- bx r0
- .align 2, 0
-_08078A30: .4byte REG_BG3CNT
- thumb_func_end sub_80789D4
-
- thumb_func_start sub_8078A34
-sub_8078A34: @ 8078A34
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl sub_8078A5C
- ldr r1, _08078A58 @ =sub_80783D0
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08078A58: .4byte sub_80783D0
- thumb_func_end sub_8078A34
-
- thumb_func_start sub_8078A5C
-sub_8078A5C: @ 8078A5C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x32]
- ldrh r1, [r5, 0x30]
- subs r0, r1
- ldrh r4, [r5, 0x36]
- ldrh r1, [r5, 0x34]
- subs r4, r1
- lsls r4, 24
- lsrs r4, 16
- lsls r0, 24
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- bl __divsi3
- movs r6, 0
- strh r0, [r5, 0x30]
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl __divsi3
- strh r0, [r5, 0x32]
- strh r6, [r5, 0x36]
- strh r6, [r5, 0x34]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8078A5C
-
- thumb_func_start obj_translate_based_on_private_1_2_3_4
-obj_translate_based_on_private_1_2_3_4: @ 8078A9C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- movs r0, 0x32
- ldrsh r1, [r7, r0]
- movs r2, 0x30
- ldrsh r0, [r7, r2]
- subs r1, r0
- movs r3, 0x36
- ldrsh r2, [r7, r3]
- movs r3, 0x34
- ldrsh r0, [r7, r3]
- subs r2, r0
- lsrs r0, r1, 31
- mov r8, r0
- lsrs r3, r2, 31
- mov r9, r3
- cmp r1, 0
- bge _08078AC8
- negs r1, r1
-_08078AC8:
- lsls r0, r1, 24
- lsrs r6, r0, 16
- adds r0, r2, 0
- cmp r0, 0
- bge _08078AD4
- negs r0, r0
-_08078AD4:
- lsls r0, 24
- lsrs r5, r0, 16
- movs r0, 0x2E
- ldrsh r4, [r7, r0]
- adds r0, r6, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- mov r2, r8
- cmp r2, 0
- beq _08078B00
- movs r0, 0x1
- orrs r6, r0
- b _08078B04
-_08078B00:
- ldr r0, _08078B10 @ =0x0000fffe
- ands r6, r0
-_08078B04:
- mov r3, r9
- cmp r3, 0
- beq _08078B14
- movs r0, 0x1
- orrs r5, r0
- b _08078B18
- .align 2, 0
-_08078B10: .4byte 0x0000fffe
-_08078B14:
- ldr r0, _08078B30 @ =0x0000fffe
- ands r5, r0
-_08078B18:
- movs r0, 0
- strh r6, [r7, 0x30]
- strh r5, [r7, 0x32]
- strh r0, [r7, 0x36]
- strh r0, [r7, 0x34]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08078B30: .4byte 0x0000fffe
- thumb_func_end obj_translate_based_on_private_1_2_3_4
-
- thumb_func_start sub_8078B34
-sub_8078B34: @ 8078B34
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _08078B58 @ =sub_8078BB8
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08078B58: .4byte sub_8078BB8
- thumb_func_end sub_8078B34
-
- thumb_func_start sub_8078B5C
-sub_8078B5C: @ 8078B5C
- push {r4-r6,lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _08078B6C
- movs r0, 0x1
- b _08078BB0
-_08078B6C:
- ldrh r1, [r2, 0x30]
- ldrh r4, [r2, 0x32]
- ldrh r6, [r2, 0x34]
- ldrh r5, [r2, 0x36]
- adds r0, r6, r1
- lsls r3, r0, 16
- lsrs r6, r3, 16
- adds r0, r5, r4
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08078B8E
- lsrs r0, r3, 24
- negs r0, r0
- b _08078B90
-_08078B8E:
- lsrs r0, r3, 24
-_08078B90:
- strh r0, [r2, 0x24]
- movs r0, 0x1
- ands r4, r0
- cmp r4, 0
- beq _08078BA0
- lsrs r0, r5, 8
- negs r0, r0
- b _08078BA2
-_08078BA0:
- lsrs r0, r5, 8
-_08078BA2:
- strh r0, [r2, 0x26]
- strh r6, [r2, 0x34]
- strh r5, [r2, 0x36]
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- movs r0, 0
-_08078BB0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8078B5C
-
- thumb_func_start sub_8078BB8
-sub_8078BB8: @ 8078BB8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _08078BCC
- adds r0, r4, 0
- bl sub_8078104
-_08078BCC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8078BB8
-
- thumb_func_start sub_8078BD4
-sub_8078BD4: @ 8078BD4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- subs r0, r1, r0
- cmp r0, 0
- bge _08078BE8
- negs r0, r0
-_08078BE8:
- lsls r0, 8
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8078BD4
-
- thumb_func_start sub_8078C00
-sub_8078C00: @ 8078C00
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl sub_8078BD4
- ldr r1, _08078C24 @ =sub_8078BB8
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08078C24: .4byte sub_8078BB8
- thumb_func_end sub_8078C00
-
- thumb_func_start sub_8078C28
-sub_8078C28: @ 8078C28
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- movs r0, 0x32
- ldrsh r1, [r7, r0]
- movs r2, 0x30
- ldrsh r0, [r7, r2]
- subs r1, r0
- movs r3, 0x36
- ldrsh r2, [r7, r3]
- movs r3, 0x34
- ldrsh r0, [r7, r3]
- subs r2, r0
- lsrs r0, r1, 31
- mov r8, r0
- lsrs r3, r2, 31
- mov r9, r3
- cmp r1, 0
- bge _08078C54
- negs r1, r1
-_08078C54:
- lsls r0, r1, 20
- lsrs r6, r0, 16
- adds r0, r2, 0
- cmp r0, 0
- bge _08078C60
- negs r0, r0
-_08078C60:
- lsls r0, 20
- lsrs r5, r0, 16
- movs r0, 0x2E
- ldrsh r4, [r7, r0]
- adds r0, r6, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- mov r2, r8
- cmp r2, 0
- beq _08078C8C
- movs r0, 0x1
- orrs r6, r0
- b _08078C90
-_08078C8C:
- ldr r0, _08078C9C @ =0x0000fffe
- ands r6, r0
-_08078C90:
- mov r3, r9
- cmp r3, 0
- beq _08078CA0
- movs r0, 0x1
- orrs r5, r0
- b _08078CA4
- .align 2, 0
-_08078C9C: .4byte 0x0000fffe
-_08078CA0:
- ldr r0, _08078CBC @ =0x0000fffe
- ands r5, r0
-_08078CA4:
- movs r0, 0
- strh r6, [r7, 0x30]
- strh r5, [r7, 0x32]
- strh r0, [r7, 0x36]
- strh r0, [r7, 0x34]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08078CBC: .4byte 0x0000fffe
- thumb_func_end sub_8078C28
-
- thumb_func_start sub_8078CC0
-sub_8078CC0: @ 8078CC0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl sub_8078C28
- ldr r1, _08078CE4 @ =sub_8078D44
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08078CE4: .4byte sub_8078D44
- thumb_func_end sub_8078CC0
-
- thumb_func_start sub_8078CE8
-sub_8078CE8: @ 8078CE8
- push {r4-r6,lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _08078CF8
- movs r0, 0x1
- b _08078D3C
-_08078CF8:
- ldrh r1, [r2, 0x30]
- ldrh r4, [r2, 0x32]
- ldrh r6, [r2, 0x34]
- ldrh r5, [r2, 0x36]
- adds r0, r6, r1
- lsls r3, r0, 16
- lsrs r6, r3, 16
- adds r0, r5, r4
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08078D1A
- lsrs r0, r3, 20
- negs r0, r0
- b _08078D1C
-_08078D1A:
- lsrs r0, r3, 20
-_08078D1C:
- strh r0, [r2, 0x24]
- movs r0, 0x1
- ands r4, r0
- cmp r4, 0
- beq _08078D2C
- lsrs r0, r5, 4
- negs r0, r0
- b _08078D2E
-_08078D2C:
- lsrs r0, r5, 4
-_08078D2E:
- strh r0, [r2, 0x26]
- strh r6, [r2, 0x34]
- strh r5, [r2, 0x36]
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- movs r0, 0
-_08078D3C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8078CE8
-
- thumb_func_start sub_8078D44
-sub_8078D44: @ 8078D44
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078CE8
- lsls r0, 24
- cmp r0, 0
- beq _08078D58
- adds r0, r4, 0
- bl sub_8078104
-_08078D58:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8078D44
-
- thumb_func_start sub_8078D60
-sub_8078D60: @ 8078D60
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- subs r0, r1, r0
- cmp r0, 0
- bge _08078D74
- negs r0, r0
-_08078D74:
- lsls r0, 4
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078C28
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8078D60
-
- thumb_func_start sub_8078D8C
-sub_8078D8C: @ 8078D8C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- bl sub_8078D60
- ldr r1, _08078DB0 @ =sub_8078D44
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08078DB0: .4byte sub_8078D44
- thumb_func_end sub_8078D8C
-
- thumb_func_start obj_id_set_rotscale
-obj_id_set_rotscale: @ 8078DB4
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r5, _08078E2C @ =0xffff0000
- lsls r2, 16
- lsrs r1, 16
- orrs r1, r2
- str r1, [sp]
- ldr r0, [sp, 0x4]
- ands r0, r5
- orrs r0, r3
- str r0, [sp, 0x4]
- bl sub_8078E38
- lsls r0, 24
- cmp r0, 0
- beq _08078DF0
- mov r0, sp
- ldrh r0, [r0]
- negs r0, r0
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- ands r1, r5
- orrs r1, r0
- str r1, [sp]
-_08078DF0:
- ldr r1, _08078E30 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x3]
- lsls r4, 26
- lsrs r4, 27
- add r5, sp, 0x8
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ObjAffineSet
- ldr r0, _08078E34 @ =gOamMatrices
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r5]
- strh r0, [r4]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x4]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x6]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08078E2C: .4byte 0xffff0000
-_08078E30: .4byte gSprites
-_08078E34: .4byte gOamMatrices
- thumb_func_end obj_id_set_rotscale
-
- thumb_func_start sub_8078E38
-sub_8078E38: @ 8078E38
- push {r4,lr}
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08078E68
- ldr r4, _08078E64 @ =gSprites
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x32
- ldrsh r0, [r1, r2]
- cmp r0, 0xC9
- beq _08078E68
- movs r0, 0x1
- b _08078E6A
- .align 2, 0
-_08078E64: .4byte gSprites
-_08078E68:
- movs r0, 0
-_08078E6A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8078E38
-
- thumb_func_start sub_8078E70
-sub_8078E70: @ 8078E70
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r1, _08078F38 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r7, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08078EA6
- adds r0, r7, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08078EB4
-_08078EA6:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08078EB4:
- ldr r1, _08078F38 @ =gSprites
- lsls r4, r6, 4
- adds r0, r4, r6
- lsls r0, 2
- adds r5, r0, r1
- movs r0, 0x3
- mov r1, r8
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x1]
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08078F0E
- ldrb r0, [r5, 0x1]
- lsls r0, 30
- cmp r0, 0
- bne _08078F0E
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- ldr r1, _08078F3C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0, 0x6]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
-_08078F0E:
- ldr r1, _08078F38 @ =gSprites
- adds r0, r4, r6
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x1]
- movs r1, 0x3
- orrs r3, r1
- strb r3, [r0, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r0, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- bl CalcCenterToCornerVec
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08078F38: .4byte gSprites
-_08078F3C: .4byte 0x02017810
- thumb_func_end sub_8078E70
-
- thumb_func_start sub_8078F40
-sub_8078F40: @ 8078F40
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, _08078F98 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- movs r2, 0xD
- negs r2, r2
- ands r1, r2
- strb r1, [r0, 0x1]
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- movs r1, 0x7F
- ands r1, r2
- strb r1, [r3]
- ldrb r3, [r0, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r0, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- bl CalcCenterToCornerVec
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08078F98: .4byte gSprites
- thumb_func_end sub_8078F40
-
- thumb_func_start sub_8078F9C
-sub_8078F9C: @ 8078F9C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08078FD4 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x3]
- lsls r0, 26
- lsrs r0, 27
- ldr r1, _08078FD8 @ =gOamMatrices
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x4]
- movs r3, 0x4
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bge _08078FC8
- negs r0, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_08078FC8:
- lsls r0, r1, 16
- asrs r0, 19
- strh r0, [r2, 0x26]
- pop {r0}
- bx r0
- .align 2, 0
-_08078FD4: .4byte gSprites
-_08078FD8: .4byte gOamMatrices
- thumb_func_end sub_8078F9C
-
- thumb_func_start sub_8078FDC
-sub_8078FDC: @ 8078FDC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r4, r0, 0
- ldr r0, [sp, 0x28]
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 16
- lsrs r5, r2, 16
- lsls r3, 16
- lsrs r7, r3, 16
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08079082
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- cmp r6, 0
- beq _0807902A
- ldrb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
-_0807902A:
- ldr r6, _08079090 @ =0xffff0000
- lsls r0, r7, 16
- orrs r5, r0
- str r5, [sp]
- ldr r0, [sp, 0x4]
- ands r0, r6
- mov r1, r8
- orrs r0, r1
- str r0, [sp, 0x4]
- bl sub_8078E38
- lsls r0, 24
- cmp r0, 0
- beq _08079058
- mov r0, sp
- ldrh r0, [r0]
- negs r0, r0
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- ands r1, r6
- orrs r1, r0
- str r1, [sp]
-_08079058:
- ldrb r4, [r4, 0x3]
- lsls r4, 26
- lsrs r4, 27
- add r5, sp, 0x8
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ObjAffineSet
- ldr r0, _08079094 @ =gOamMatrices
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r5]
- strh r0, [r4]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x4]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x6]
-_08079082:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08079090: .4byte 0xffff0000
-_08079094: .4byte gOamMatrices
- thumb_func_end sub_8078FDC
-
- thumb_func_start sub_8079098
-sub_8079098: @ 8079098
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x1
- adds r2, r3, 0
- bl sub_8078FDC
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8079098
-
- thumb_func_start sub_80790D8
-sub_80790D8: @ 80790D8
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl ArcTan2
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80790D8
-
- thumb_func_start sub_80790F0
-sub_80790F0: @ 80790F0
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl sub_80790D8
- lsls r0, 16
- negs r0, r0
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80790F0
-
- thumb_func_start sub_8079108
-sub_8079108: @ 8079108
- push {r4-r7,lr}
- lsls r1, 24
- lsls r0, 20
- lsrs r0, 16
- cmp r1, 0
- bne _08079184
- ldr r2, _08079178 @ =gPlttBufferUnfaded
- ldr r1, _0807917C @ =gPlttBufferFaded
- lsls r0, 1
- adds r4, r0, r1
- adds r5, r0, r2
- movs r6, 0xF
-_08079120:
- ldr r0, [r5]
- lsls r2, r0, 27
- lsrs r2, 27
- lsls r1, r0, 22
- lsrs r1, 27
- adds r2, r1
- lsls r0, 17
- lsrs r0, 27
- adds r0, r2
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1F
- ands r0, r1
- ldrb r1, [r4]
- movs r3, 0x20
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4]
- lsls r3, r0, 5
- ldrh r1, [r4]
- ldr r7, _08079180 @ =0xfffffc1f
- adds r2, r7, 0
- ands r1, r2
- orrs r1, r3
- strh r1, [r4]
- lsls r0, 2
- ldrb r1, [r4, 0x1]
- movs r3, 0x7D
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x1]
- adds r4, 0x2
- adds r5, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _08079120
- b _08079194
- .align 2, 0
-_08079178: .4byte gPlttBufferUnfaded
-_0807917C: .4byte gPlttBufferFaded
-_08079180: .4byte 0xfffffc1f
-_08079184:
- lsls r1, r0, 1
- ldr r0, _0807919C @ =gPlttBufferUnfaded
- adds r0, r1, r0
- ldr r2, _080791A0 @ =gPlttBufferFaded
- adds r1, r2
- ldr r2, _080791A4 @ =REG_BG0CNT
- bl CpuSet
-_08079194:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807919C: .4byte gPlttBufferUnfaded
-_080791A0: .4byte gPlttBufferFaded
-_080791A4: .4byte REG_BG0CNT
- thumb_func_end sub_8079108
-
- thumb_func_start sub_80791A8
-sub_80791A8: @ 80791A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- lsls r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp]
- lsls r6, 24
- lsrs r6, 24
- str r6, [sp, 0x4]
- movs r4, 0
- cmp r0, 0
- beq _080791FE
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080791F2
- movs r4, 0xE
- b _080791FE
-_080791F2:
- bl sub_80789BC
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0x1
- lsls r4, r0
-_080791FE:
- cmp r7, 0
- beq _08079210
- ldr r0, _08079288 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_08079210:
- mov r0, r8
- cmp r0, 0
- beq _08079224
- ldr r0, _0807928C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_08079224:
- mov r0, r9
- cmp r0, 0
- beq _0807924A
- ldr r6, _08079288 @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- movs r5, 0x2
- eors r0, r5
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _0807924A
- ldrb r0, [r6]
- eors r0, r5
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_0807924A:
- mov r0, r10
- cmp r0, 0
- beq _08079270
- ldr r6, _0807928C @ =gUnknown_0202F7C9
- ldrb r0, [r6]
- movs r5, 0x2
- eors r0, r5
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08079270
- ldrb r0, [r6]
- eors r0, r5
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_08079270:
- ldr r0, [sp]
- cmp r0, 0
- beq _08079296
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08079290
- movs r0, 0x80
- lsls r0, 1
- b _08079294
- .align 2, 0
-_08079288: .4byte gUnknown_0202F7C8
-_0807928C: .4byte gUnknown_0202F7C9
-_08079290:
- movs r0, 0x80
- lsls r0, 7
-_08079294:
- orrs r4, r0
-_08079296:
- ldr r0, [sp, 0x4]
- cmp r0, 0
- beq _080792AC
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080792AC
- movs r0, 0x80
- lsls r0, 2
- orrs r4, r0
-_080792AC:
- adds r0, r4, 0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80791A8
-
- thumb_func_start sub_80792C0
-sub_80792C0: @ 80792C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r4, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080792EE
- cmp r5, 0
- beq _0807939C
- movs r4, 0x80
- lsls r4, 11
- b _0807939C
-_080792EE:
- cmp r5, 0
- beq _08079316
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08079316
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r4, 0x1
- lsls r4, r0
-_08079316:
- cmp r6, 0
- beq _08079342
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08079342
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_08079342:
- cmp r7, 0
- beq _0807936E
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _0807936E
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_0807936E:
- mov r0, r8
- cmp r0, 0
- beq _0807939C
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _0807939C
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r4, r0
-_0807939C:
- adds r0, r4, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80792C0
-
- thumb_func_start sub_80793A8
-sub_80793A8: @ 80793A8
- lsls r0, 24
- lsrs r0, 24
- bx lr
- thumb_func_end sub_80793A8
-
- thumb_func_start unref_sub_80793B0
-unref_sub_80793B0: @ 80793B0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80793B0
-
- thumb_func_start sub_80793C4
-sub_80793C4: @ 80793C4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08079402
- ldr r2, _080793F0 @ =gUnknown_03004B00
- movs r3, 0x6
- ldrsh r0, [r2, r3]
- movs r1, 0
- cmp r0, 0
- bne _080793DE
- movs r1, 0x1
-_080793DE:
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080793F4
- adds r0, r4, 0
- bl sub_80787B0
- b _080793FA
- .align 2, 0
-_080793F0: .4byte gUnknown_03004B00
-_080793F4:
- adds r0, r4, 0
- bl sub_8078764
-_080793FA:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _08079416
-_08079402:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _08079416
- adds r0, r4, 0
- bl move_anim_8074EE0
-_08079416:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80793C4
-
- thumb_func_start sub_807941C
-sub_807941C: @ 807941C
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r6, _08079494 @ =gUnknown_03004B00
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0
- cmp r0, 0
- bne _08079434
- movs r1, 0x1
-_08079434:
- ldrb r0, [r6, 0xA]
- movs r7, 0x1
- cmp r0, 0
- bne _0807943E
- movs r7, 0x3
-_0807943E:
- adds r0, r5, 0
- bl sub_80787B0
- ldr r0, _08079498 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08079458
- ldrh r0, [r6, 0x4]
- negs r0, r0
- strh r0, [r6, 0x4]
-_08079458:
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- ldr r4, _0807949C @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- adds r1, r7, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _080794A0 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080794A4 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08079494: .4byte gUnknown_03004B00
-_08079498: .4byte gUnknown_0202F7C8
-_0807949C: .4byte gUnknown_0202F7C9
-_080794A0: .4byte sub_8078B34
-_080794A4: .4byte move_anim_8072740
- thumb_func_end sub_807941C
-
- thumb_func_start sub_80794A8
-sub_80794A8: @ 80794A8
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _08079508 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080794C8
- ldr r1, _0807950C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080794C8:
- ldr r4, _0807950C @ =gUnknown_03004B00
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _08079510 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r6, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- adds r0, r6, 0
- bl sub_80786EC
- ldr r0, _08079514 @ =sub_8079518
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08079508: .4byte gUnknown_0202F7C8
-_0807950C: .4byte gUnknown_03004B00
-_08079510: .4byte gUnknown_0202F7C9
-_08079514: .4byte sub_8079518
- thumb_func_end sub_80794A8
-
- thumb_func_start sub_8079518
-sub_8079518: @ 8079518
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _0807952C
- adds r0, r4, 0
- bl move_anim_8072740
-_0807952C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8079518
-
- thumb_func_start sub_8079534
-sub_8079534: @ 8079534
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _08079548 @ =gUnknown_03004B00
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- cmp r1, 0
- bne _0807954C
- movs r4, 0x1
- movs r7, 0x3
- b _08079550
- .align 2, 0
-_08079548: .4byte gUnknown_03004B00
-_0807954C:
- movs r4, 0
- movs r7, 0x1
-_08079550:
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08079568
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80787B0
- ldr r0, _08079564 @ =gUnknown_0202F7C8
- b _08079572
- .align 2, 0
-_08079564: .4byte gUnknown_0202F7C8
-_08079568:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8078764
- ldr r0, _080795D0 @ =gUnknown_0202F7C9
-_08079572:
- ldrb r6, [r0]
- ldr r0, _080795D4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0807958A
- ldr r1, _080795D8 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_0807958A:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8078764
- ldr r4, _080795D8 @ =gUnknown_03004B00
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- adds r0, r2
- strh r0, [r5, 0x32]
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r5, 0x36]
- ldr r0, _080795DC @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080795E0 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080795D0: .4byte gUnknown_0202F7C9
-_080795D4: .4byte gUnknown_0202F7C8
-_080795D8: .4byte gUnknown_03004B00
-_080795DC: .4byte sub_8078B34
-_080795E0: .4byte move_anim_8072740
- thumb_func_end sub_8079534
-
- thumb_func_start duplicate_obj_of_side_rel2move_in_transparent_mode
-duplicate_obj_of_side_rel2move_in_transparent_mode: @ 80795E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0807964E
- movs r6, 0
- ldr r2, _08079640 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r1, r0, 2
-_08079600:
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r4, r0, r2
- adds r5, r4, 0
- adds r5, 0x3E
- ldrb r0, [r5]
- lsls r0, 31
- cmp r0, 0
- bne _08079644
- adds r0, r4, 0
- adds r1, r2
- movs r2, 0x44
- bl memcpy
- ldrb r1, [r4, 0x1]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
- ldrb r0, [r5]
- adds r2, 0x8
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r5]
- lsls r0, r6, 16
- asrs r0, 16
- b _08079652
- .align 2, 0
-_08079640: .4byte gSprites
-_08079644:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3F
- bls _08079600
-_0807964E:
- movs r0, 0x1
- negs r0, r0
-_08079652:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end duplicate_obj_of_side_rel2move_in_transparent_mode
-
- thumb_func_start obj_delete_but_dont_free_vram
-obj_delete_but_dont_free_vram: @ 8079658
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3F
- ldrb r1, [r3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r3]
- bl DestroySprite
- pop {r0}
- bx r0
- thumb_func_end obj_delete_but_dont_free_vram
-
- thumb_func_start sub_8079670
-sub_8079670: @ 8079670
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r5, 0
- movs r3, 0
- ldr r4, _080796E4 @ =gUnknown_03004B00
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- movs r6, 0
- ldrsh r0, [r4, r6]
- cmp r1, r0
- ble _0807968A
- movs r3, 0x1
-_0807968A:
- cmp r1, r0
- bge _08079690
- ldr r3, _080796E8 @ =0x0000ffff
-_08079690:
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r6, 0x2
- ldrsh r0, [r4, r6]
- cmp r1, r0
- ble _0807969E
- movs r5, 0x1
-_0807969E:
- cmp r1, r0
- bge _080796A4
- ldr r5, _080796E8 @ =0x0000ffff
-_080796A4:
- ldr r0, _080796EC @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r2, 0
- strh r2, [r1, 0x8]
- ldrh r0, [r4, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- ldrh r0, [r4]
- strh r0, [r1, 0xE]
- ldrh r0, [r4, 0x2]
- strh r0, [r1, 0x10]
- strh r3, [r1, 0x12]
- strh r5, [r1, 0x14]
- ldrh r0, [r4, 0x4]
- strh r0, [r1, 0x16]
- ldrh r0, [r4, 0x6]
- strh r0, [r1, 0x18]
- ldr r3, _080796F0 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x2]
- lsls r0, 8
- ldrh r2, [r4]
- orrs r0, r2
- strh r0, [r3]
- ldr r0, _080796F4 @ =sub_80796F8
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080796E4: .4byte gUnknown_03004B00
-_080796E8: .4byte 0x0000ffff
-_080796EC: .4byte gTasks
-_080796F0: .4byte REG_BLDALPHA
-_080796F4: .4byte sub_80796F8
- thumb_func_end sub_8079670
-
- thumb_func_start sub_80796F8
-sub_80796F8: @ 80796F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08079744 @ =gTasks
- adds r3, r0, r1
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xA
- ldrsh r1, [r3, r2]
- cmp r0, r1
- ble _08079786
- movs r0, 0
- strh r0, [r3, 0x8]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08079748
- ldrh r2, [r3, 0xE]
- movs r5, 0xE
- ldrsh r1, [r3, r5]
- movs r5, 0x16
- ldrsh r0, [r3, r5]
- cmp r1, r0
- beq _0807975C
- ldrh r0, [r3, 0x12]
- adds r0, r2, r0
- strh r0, [r3, 0xE]
- b _0807975C
- .align 2, 0
-_08079744: .4byte gTasks
-_08079748:
- ldrh r2, [r3, 0x10]
- movs r0, 0x10
- ldrsh r1, [r3, r0]
- movs r5, 0x18
- ldrsh r0, [r3, r5]
- cmp r1, r0
- beq _0807975C
- ldrh r0, [r3, 0x14]
- adds r0, r2, r0
- strh r0, [r3, 0x10]
-_0807975C:
- ldr r2, _0807978C @ =REG_BLDALPHA
- ldrh r0, [r3, 0x10]
- lsls r0, 8
- ldrh r1, [r3, 0xE]
- orrs r0, r1
- strh r0, [r2]
- movs r0, 0xE
- ldrsh r1, [r3, r0]
- movs r2, 0x16
- ldrsh r0, [r3, r2]
- cmp r1, r0
- bne _08079786
- movs r5, 0x10
- ldrsh r1, [r3, r5]
- movs r2, 0x18
- ldrsh r0, [r3, r2]
- cmp r1, r0
- bne _08079786
- adds r0, r4, 0
- bl move_anim_task_del
-_08079786:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807978C: .4byte REG_BLDALPHA
- thumb_func_end sub_80796F8
-
- thumb_func_start sub_8079790
-sub_8079790: @ 8079790
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080797B0 @ =gUnknown_03004B00
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- bne _080797B4
- adds r0, r4, 0
- bl move_anim_task_del
- b _080797DA
- .align 2, 0
-_080797B0: .4byte gUnknown_03004B00
-_080797B4:
- ldr r1, _080797E0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080797E4 @ =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- lsls r1, 4
- ldr r3, _080797E8 @ =0x00000101
- adds r2, r3, 0
- adds r1, r2
- strh r1, [r0, 0x8]
- bl sub_80797EC
-_080797DA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080797E0: .4byte gTasks
-_080797E4: .4byte gSprites
-_080797E8: .4byte 0x00000101
- thumb_func_end sub_8079790
-
- thumb_func_start sub_80797EC
-sub_80797EC: @ 80797EC
- ldr r3, _0807980C @ =gUnknown_03004B00
- ldrh r1, [r3, 0x2]
- movs r2, 0
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- ldrh r1, [r3, 0x4]
- strh r1, [r0, 0xE]
- strh r2, [r0, 0x10]
- ldrh r1, [r3, 0x6]
- strh r1, [r0, 0x12]
- strh r2, [r0, 0x14]
- ldrh r1, [r3, 0x8]
- strh r1, [r0, 0x16]
- ldr r1, _08079810 @ =sub_8079814
- str r1, [r0]
- bx lr
- .align 2, 0
-_0807980C: .4byte gUnknown_03004B00
-_08079810: .4byte sub_8079814
- thumb_func_end sub_80797EC
-
- thumb_func_start sub_8079814
-sub_8079814: @ 8079814
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0807986C @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080798A4
- movs r0, 0
- strh r0, [r4, 0x10]
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08079870
- ldrh r2, [r4, 0xC]
- adds r2, 0x1
- strh r2, [r4, 0xC]
- ldrh r0, [r4, 0x8]
- lsls r2, 24
- lsrs r2, 24
- ldrh r3, [r4, 0xA]
- movs r1, 0xF
- bl BlendPalette
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080798A4
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080798A4
- .align 2, 0
-_0807986C: .4byte gTasks
-_08079870:
- ldrh r2, [r4, 0xC]
- subs r2, 0x1
- strh r2, [r4, 0xC]
- ldrh r0, [r4, 0x8]
- lsls r2, 24
- lsrs r2, 24
- ldrh r3, [r4, 0xA]
- movs r1, 0xF
- bl BlendPalette
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _080798A4
- ldrh r0, [r4, 0x16]
- subs r0, 0x1
- strh r0, [r4, 0x16]
- lsls r0, 16
- cmp r0, 0
- beq _0807989E
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x14]
- b _080798A4
-_0807989E:
- adds r0, r5, 0
- bl move_anim_task_del
-_080798A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8079814
-
- thumb_func_start sub_80798AC
-sub_80798AC: @ 80798AC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080798CC @ =gUnknown_03004B00
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _080798D0
- adds r0, r4, 0
- bl move_anim_task_del
- b _080798E6
- .align 2, 0
-_080798CC: .4byte gUnknown_03004B00
-_080798D0:
- ldr r1, _080798EC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- lsls r1, r2, 4
- ldr r2, _080798F0 @ =0x00000101
- adds r1, r2
- strh r1, [r0, 0x8]
- bl sub_80797EC
-_080798E6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080798EC: .4byte gTasks
-_080798F0: .4byte 0x00000101
- thumb_func_end sub_80798AC
-
- thumb_func_start sub_80798F4
-sub_80798F4: @ 80798F4
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0
- strh r1, [r3, 0x16]
- strh r1, [r3, 0x18]
- strh r1, [r3, 0x1A]
- strh r4, [r3, 0x26]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r3, 0x1C]
- strh r0, [r3, 0x1E]
- strh r1, [r3, 0x20]
- adds r0, r3, 0
- adds r0, 0x22
- adds r3, 0x24
- adds r1, r3, 0
- bl sub_8079BF4
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078E70
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80798F4
-
- thumb_func_start sub_807992C
-sub_807992C: @ 807992C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080799CC @ =gUnknown_0202F7D4
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- bl sub_8079BFC
- movs r3, 0x16
- ldrsh r1, [r4, r3]
- lsls r1, 3
- adds r1, r0, r1
- str r1, [r5]
- movs r6, 0
- ldrsh r2, [r1, r6]
- ldr r0, _080799D0 @ =0x00007ffe
- cmp r2, r0
- beq _080799D4
- cmp r2, r0
- bgt _08079A34
- subs r0, 0x1
- cmp r2, r0
- beq _080799DA
- ldrb r0, [r1, 0x5]
- cmp r0, 0
- bne _0807997A
- ldrh r0, [r1]
- strh r0, [r4, 0x1C]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x1E]
- ldrb r0, [r1, 0x4]
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- adds r0, r1, 0
- adds r0, 0x8
- str r0, [r5]
-_0807997A:
- ldr r1, [r5]
- ldrh r0, [r1]
- ldrh r2, [r4, 0x1C]
- adds r0, r2
- strh r0, [r4, 0x1C]
- ldrh r0, [r1, 0x2]
- ldrh r3, [r4, 0x1E]
- adds r0, r3
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x20]
- ldrb r1, [r1, 0x4]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0x1C
- ldrsh r1, [r4, r6]
- movs r3, 0x1E
- ldrsh r2, [r4, r3]
- ldrh r3, [r4, 0x20]
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079A64
- ldrh r0, [r4, 0x18]
- adds r0, 0x1
- strh r0, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- ldr r1, [r5]
- ldrb r1, [r1, 0x5]
- cmp r0, r1
- blt _08079A5A
- movs r0, 0
- strh r0, [r4, 0x18]
- b _08079A2C
- .align 2, 0
-_080799CC: .4byte gUnknown_0202F7D4
-_080799D0: .4byte 0x00007ffe
-_080799D4:
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x16]
- b _08079A5A
-_080799DA:
- ldrh r2, [r1, 0x2]
- movs r6, 0x2
- ldrsh r0, [r1, r6]
- cmp r0, 0
- beq _08079A2C
- ldrh r1, [r4, 0x1A]
- movs r3, 0x1A
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080799FA
- subs r0, r1, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- cmp r0, 0
- bne _080799FC
- b _08079A2C
-_080799FA:
- strh r2, [r4, 0x1A]
-_080799FC:
- movs r6, 0x16
- ldrsh r0, [r4, r6]
- cmp r0, 0
- beq _08079A5A
- ldr r3, _08079A24 @ =gUnknown_0202F7D4
- ldr r5, _08079A28 @ =0x00007ffd
-_08079A08:
- ldrh r2, [r4, 0x16]
- subs r1, r2, 0x1
- strh r1, [r4, 0x16]
- ldr r0, [r3]
- subs r0, 0x8
- str r0, [r3]
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r0, r5
- beq _08079A58
- lsls r0, r1, 16
- cmp r0, 0
- bne _08079A08
- b _08079A5A
- .align 2, 0
-_08079A24: .4byte gUnknown_0202F7D4
-_08079A28: .4byte 0x00007ffd
-_08079A2C:
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- b _08079A5A
-_08079A34:
- ldr r2, _08079A54 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- movs r0, 0
- b _08079A5C
- .align 2, 0
-_08079A54: .4byte gSprites
-_08079A58:
- strh r2, [r4, 0x16]
-_08079A5A:
- movs r0, 0x1
-_08079A5C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_807992C
-
- thumb_func_start sub_8079A64
-sub_8079A64: @ 8079A64
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8079B10
- lsls r0, 16
- lsrs r0, 15
- movs r1, 0x40
- subs r5, r1, r0
- ldr r1, _08079AB0 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrb r1, [r4, 0x3]
- lsls r1, 26
- lsrs r1, 27
- lsls r0, r5, 8
- ldr r2, _08079AB4 @ =gOamMatrices
- lsls r1, 3
- adds r1, r2
- movs r2, 0x6
- ldrsh r1, [r1, r2]
- bl __divsi3
- cmp r0, 0x80
- ble _08079AA0
- movs r0, 0x80
-_08079AA0:
- subs r0, r5, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x26]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08079AB0: .4byte gSprites
-_08079AB4: .4byte gOamMatrices
- thumb_func_end sub_8079A64
-
- thumb_func_start sub_8079AB8
-sub_8079AB8: @ 8079AB8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079B10
- lsls r0, 16
- lsrs r0, 15
- movs r1, 0x40
- subs r5, r1, r0
- ldr r1, _08079B08 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrb r1, [r4, 0x3]
- lsls r1, 26
- lsrs r1, 27
- lsls r0, r5, 8
- ldr r2, _08079B0C @ =gOamMatrices
- lsls r1, 3
- adds r1, r2
- movs r2, 0x6
- ldrsh r1, [r1, r2]
- bl __divsi3
- cmp r0, 0x80
- ble _08079AF8
- movs r0, 0x80
-_08079AF8:
- subs r0, r5, r0
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x26]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08079B08: .4byte gSprites
-_08079B0C: .4byte gOamMatrices
- thumb_func_end sub_8079AB8
-
- thumb_func_start sub_8079B10
-sub_8079B10: @ 8079B10
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08079B44 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- movs r4, 0
- ldr r1, _08079B48 @ =gUnknown_02024BE0
- ldr r6, _08079B4C @ =gMonBackPicCoords
- lsrs r5, r0, 22
-_08079B2C:
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, r2
- bne _08079BE0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08079B54
- ldr r0, _08079B50 @ =0x02019348
- ldrh r1, [r0]
- b _08079B96
- .align 2, 0
-_08079B44: .4byte gSprites
-_08079B48: .4byte gUnknown_02024BE0
-_08079B4C: .4byte gMonBackPicCoords
-_08079B50: .4byte 0x02019348
-_08079B54:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08079B9E
- ldr r0, _08079B88 @ =0x02017800
- adds r1, r5, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08079B94
- ldr r1, _08079B8C @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08079B90 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- b _08079B96
- .align 2, 0
-_08079B88: .4byte 0x02017800
-_08079B8C: .4byte gUnknown_02024A6A
-_08079B90: .4byte gPlayerParty
-_08079B94:
- ldrh r1, [r1, 0x2]
-_08079B96:
- lsls r0, r1, 2
- adds r0, r6
- ldrb r0, [r0, 0x1]
- b _08079BEC
-_08079B9E:
- ldr r0, _08079BC4 @ =0x02017800
- adds r1, r5, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08079BD0
- ldr r1, _08079BC8 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08079BCC @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- b _08079BD2
- .align 2, 0
-_08079BC4: .4byte 0x02017800
-_08079BC8: .4byte gUnknown_02024A6A
-_08079BCC: .4byte gEnemyParty
-_08079BD0:
- ldrh r1, [r1, 0x2]
-_08079BD2:
- ldr r0, _08079BDC @ =gMonFrontPicCoords
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _08079BEC
- .align 2, 0
-_08079BDC: .4byte gMonFrontPicCoords
-_08079BE0:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08079B2C
- movs r0, 0x40
-_08079BEC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8079B10
-
- thumb_func_start sub_8079BF4
-sub_8079BF4: @ 8079BF4
- strh r2, [r0]
- asrs r2, 16
- strh r2, [r1]
- bx lr
- thumb_func_end sub_8079BF4
-
- thumb_func_start sub_8079BFC
-sub_8079BFC: @ 8079BFC
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- orrs r0, r1
- bx lr
- thumb_func_end sub_8079BFC
-
- thumb_func_start sub_8079C08
-sub_8079C08: @ 8079C08
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r5, r3, 0
- ldr r0, [sp, 0x14]
- ldr r4, [sp, 0x18]
- ldr r6, [sp, 0x1C]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r3, r8
- strh r6, [r3, 0x18]
- strh r1, [r3, 0x26]
- strh r2, [r3, 0x1A]
- strh r5, [r3, 0x1C]
- strh r0, [r3, 0x22]
- strh r4, [r3, 0x24]
- lsls r0, 16
- asrs r0, 16
- lsls r2, 16
- asrs r2, 16
- subs r0, r2
- adds r1, r6, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1, 0x1E]
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- subs r4, r5
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- mov r3, r8
- strh r0, [r3, 0x20]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8079C08
-
- thumb_func_start sub_8079C74
-sub_8079C74: @ 8079C74
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x18]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08079C86
- movs r0, 0
- b _08079CE2
-_08079C86:
- subs r0, r1, 0x1
- strh r0, [r4, 0x18]
- lsls r0, 16
- cmp r0, 0
- beq _08079CA0
- ldrh r0, [r4, 0x1E]
- ldrh r3, [r4, 0x1A]
- adds r0, r3
- strh r0, [r4, 0x1A]
- ldrh r0, [r4, 0x20]
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- b _08079CA6
-_08079CA0:
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x1A]
- ldrh r0, [r4, 0x24]
-_08079CA6:
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1A
- ldrsh r1, [r4, r2]
- movs r3, 0x1C
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl obj_id_set_rotscale
- movs r0, 0x18
- ldrsh r3, [r4, r0]
- cmp r3, 0
- beq _08079CD0
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079A64
- b _08079CE0
-_08079CD0:
- ldr r2, _08079CE8 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
-_08079CE0:
- ldrb r0, [r4, 0x18]
-_08079CE2:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08079CE8: .4byte gSprites
- thumb_func_end sub_8079C74
-
- thumb_func_start sub_8079CEC
-sub_8079CEC: @ 8079CEC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08079D18 @ =gUnknown_0202F7BE
- ldrb r0, [r0]
- movs r1, 0
- cmp r0, 0x1E
- bls _08079D0A
- movs r1, 0x1
- cmp r0, 0x64
- bls _08079D0A
- movs r1, 0x3
- cmp r0, 0xC8
- bhi _08079D0A
- movs r1, 0x2
-_08079D0A:
- ldr r0, _08079D1C @ =gUnknown_03004B00
- strh r1, [r0, 0xE]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08079D18: .4byte gUnknown_0202F7BE
-_08079D1C: .4byte gUnknown_03004B00
- thumb_func_end sub_8079CEC
-
- thumb_func_start unref_sub_8079D20
-unref_sub_8079D20: @ 8079D20
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldr r6, _08079E14 @ =gUnknown_0202F7C9
- ldrb r0, [r6]
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08079D60
- ldr r2, _08079E18 @ =gSprites
- ldr r1, _08079E1C @ =gUnknown_02024BE0
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3
- adds r2, r4, 0
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_08079D60:
- ldr r0, _08079E20 @ =gUnknown_0202F7C8
- mov r8, r0
- ldrb r0, [r0]
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08079D98
- ldr r2, _08079E18 @ =gSprites
- ldr r1, _08079E1C @ =gUnknown_02024BE0
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3
- adds r2, r4, 0
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_08079D98:
- ldrb r0, [r6]
- movs r5, 0x2
- eors r0, r5
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08079DD0
- ldr r2, _08079E18 @ =gSprites
- ldr r1, _08079E1C @ =gUnknown_02024BE0
- ldrb r0, [r6]
- eors r0, r5
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3
- adds r2, r4, 0
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_08079DD0:
- mov r1, r8
- ldrb r0, [r1]
- eors r0, r5
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08079E08
- ldr r2, _08079E18 @ =gSprites
- ldr r1, _08079E1C @ =gUnknown_02024BE0
- mov r3, r8
- ldrb r0, [r3]
- eors r0, r5
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3
- ands r7, r0
- lsls r3, r7, 2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
-_08079E08:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08079E14: .4byte gUnknown_0202F7C9
-_08079E18: .4byte gSprites
-_08079E1C: .4byte gUnknown_02024BE0
-_08079E20: .4byte gUnknown_0202F7C8
- thumb_func_end unref_sub_8079D20
-
- thumb_func_start sub_8079E24
-sub_8079E24: @ 8079E24
- push {r4-r6,lr}
- movs r5, 0
- ldr r0, _08079E84 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _08079E7E
- ldr r6, _08079E88 @ =gSprites
-_08079E32:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08079E74
- adds r0, r4, 0
- bl sub_8079E90
- ldr r3, _08079E8C @ =gUnknown_02024BE0
- adds r3, r5, r3
- ldrb r2, [r3]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r6
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r2, [r0, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r2, r1
- movs r1, 0x8
- orrs r2, r1
- strb r2, [r0, 0x5]
-_08079E74:
- adds r5, 0x1
- ldr r0, _08079E84 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _08079E32
-_08079E7E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08079E84: .4byte gUnknown_02024A68
-_08079E88: .4byte gSprites
-_08079E8C: .4byte gUnknown_02024BE0
- thumb_func_end sub_8079E24
-
- thumb_func_start sub_8079E90
-sub_8079E90: @ 8079E90
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08079EAC
- cmp r4, 0x2
- bne _08079EA8
- movs r0, 0x1E
- b _08079ECC
-_08079EA8:
- movs r0, 0x28
- b _08079ECC
-_08079EAC:
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1E
- cmp r0, 0
- beq _08079ECA
- movs r1, 0x14
- cmp r0, 0x2
- beq _08079ECA
- movs r1, 0x32
- cmp r0, 0x1
- bne _08079ECA
- movs r1, 0x28
-_08079ECA:
- adds r0, r1, 0
-_08079ECC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8079E90
-
- thumb_func_start sub_8079ED4
-sub_8079ED4: @ 8079ED4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08079EF0
- movs r0, 0x2
- b _08079F08
-_08079EF0:
- cmp r4, 0
- beq _08079EF8
- cmp r4, 0x3
- bne _08079F00
-_08079EF8:
- ldr r0, _08079EFC @ =REG_BG2CNT
- b _08079F02
- .align 2, 0
-_08079EFC: .4byte REG_BG2CNT
-_08079F00:
- ldr r0, _08079F10 @ =REG_BG1CNT
-_08079F02:
- ldr r0, [r0]
- lsls r0, 30
- lsrs r0, 30
-_08079F08:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08079F10: .4byte REG_BG1CNT
- thumb_func_end sub_8079ED4
-
- thumb_func_start battle_get_per_side_status_permutated
-battle_get_per_side_status_permutated: @ 8079F14
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08079F3A
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08079F36
- cmp r0, 0x3
- bne _08079F3A
-_08079F36:
- movs r0, 0x2
- b _08079F3C
-_08079F3A:
- movs r0, 0x1
-_08079F3C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end battle_get_per_side_status_permutated
-
- thumb_func_start sub_8079F44
-sub_8079F44: @ 8079F44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- ldr r4, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp, 0x10]
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x14]
- lsls r0, r7, 3
- ldr r1, _08079FE0 @ =gUnknown_0837F5E0
- adds r0, r1
- bl LoadSpriteSheet
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- ldr r1, _08079FE4 @ =gSpriteTemplate_837F5B0
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x2]
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- cmp r0, 0
- bne _08079FF0
- adds r0, r6, 0
- ldr r1, [sp, 0x44]
- ldr r2, [sp, 0x40]
- bl species_and_otid_get_pal
- lsls r1, r4, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r0, r6, 3
- ldr r1, _08079FE8 @ =gMonFrontPicTable
- adds r0, r1
- ldr r2, _08079FEC @ =gMonFrontPicCoords
- lsls r5, r6, 2
- adds r2, r5, r2
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- str r3, [sp]
- str r6, [sp, 0x4]
- ldr r4, [sp, 0x40]
- str r4, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- b _0807A02E
- .align 2, 0
-_08079FE0: .4byte gUnknown_0837F5E0
-_08079FE4: .4byte gSpriteTemplate_837F5B0
-_08079FE8: .4byte gMonFrontPicTable
-_08079FEC: .4byte gMonFrontPicCoords
-_08079FF0:
- adds r0, r6, 0
- ldr r1, [sp, 0x44]
- ldr r2, [sp, 0x40]
- bl species_and_otid_get_pal
- lsls r1, r4, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r0, r6, 3
- ldr r1, _0807A068 @ =gMonBackPicTable
- adds r0, r1
- ldr r2, _0807A06C @ =gMonBackPicCoords
- lsls r5, r6, 2
- adds r2, r5, r2
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- str r3, [sp]
- str r6, [sp, 0x4]
- ldr r4, [sp, 0x40]
- str r4, [sp, 0x8]
- movs r4, 0
- str r4, [sp, 0xC]
- bl sub_800D378
-_0807A02E:
- movs r2, 0x80
- lsls r2, 18
- mov r6, r10
- lsls r0, r6, 5
- ldr r1, _0807A070 @ =0x06010000
- adds r0, r1
- ldr r1, _0807A074 @ =0x040000d4
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _0807A078 @ =0x84000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r2, r8
- cmp r2, 0
- bne _0807A084
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 3
- ldr r1, _0807A07C @ =gSpriteTemplate_837F5B0
- adds r0, r1
- mov r3, r9
- lsls r1, r3, 16
- asrs r1, 16
- ldr r2, _0807A080 @ =gMonFrontPicCoords
- adds r2, r5, r2
- ldrb r2, [r2, 0x1]
- ldr r4, [sp, 0x10]
- adds r2, r4
- b _0807A09E
- .align 2, 0
-_0807A068: .4byte gMonBackPicTable
-_0807A06C: .4byte gMonBackPicCoords
-_0807A070: .4byte 0x06010000
-_0807A074: .4byte 0x040000d4
-_0807A078: .4byte 0x84000200
-_0807A07C: .4byte gSpriteTemplate_837F5B0
-_0807A080: .4byte gMonFrontPicCoords
-_0807A084:
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 3
- ldr r1, _0807A0E4 @ =gSpriteTemplate_837F5B0
- adds r0, r1
- mov r6, r9
- lsls r1, r6, 16
- asrs r1, 16
- ldr r2, _0807A0E8 @ =gMonBackPicCoords
- adds r2, r5, r2
- ldrb r2, [r2, 0x1]
- ldr r3, [sp, 0x10]
- adds r2, r3
-_0807A09E:
- lsls r2, 16
- asrs r2, 16
- ldr r3, [sp, 0x14]
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807A0D0
- ldr r3, _0807A0EC @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r1, r0, r1
- ldr r2, _0807A0F0 @ =gSpriteAffineAnimTable_81E7C18
- str r2, [r1]
- adds r0, r3
- movs r1, 0
- bl StartSpriteAffineAnim
-_0807A0D0:
- adds r0, r4, 0
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807A0E4: .4byte gSpriteTemplate_837F5B0
-_0807A0E8: .4byte gMonBackPicCoords
-_0807A0EC: .4byte gSprites
-_0807A0F0: .4byte gSpriteAffineAnimTable_81E7C18
- thumb_func_end sub_8079F44
-
- thumb_func_start sub_807A0F4
-sub_807A0F4: @ 807A0F4
- push {lr}
- bl DestroySpriteAndFreeResources
- pop {r0}
- bx r0
- thumb_func_end sub_807A0F4
-
- thumb_func_start sub_807A100
-sub_807A100: @ 807A100
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807A1A4
- ldr r2, _0807A130 @ =0x02019348
- ldrb r1, [r2, 0x4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807A134
- ldrh r7, [r2, 0x2]
- ldr r2, [r2, 0x10]
- b _0807A138
- .align 2, 0
-_0807A130: .4byte 0x02019348
-_0807A134:
- ldrh r7, [r2]
- ldr r2, [r2, 0x8]
-_0807A138:
- cmp r7, 0xC9
- bne _0807A184
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0807A170
- movs r0, 0xC9
- b _0807A17A
-_0807A170:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_0807A17A:
- lsls r1, r0, 2
- ldr r0, _0807A180 @ =gMonBackPicCoords
- b _0807A33C
- .align 2, 0
-_0807A180: .4byte gMonBackPicCoords
-_0807A184:
- ldr r0, _0807A19C @ =SPECIES_CASTFORM
- cmp r7, r0
- bne _0807A18C
- b _0807A30C
-_0807A18C:
- movs r0, 0xCE
- lsls r0, 1
- cmp r7, r0
- bhi _0807A258
- lsls r1, r7, 2
- ldr r0, _0807A1A0 @ =gMonBackPicCoords
- b _0807A33C
- .align 2, 0
-_0807A19C: .4byte SPECIES_CASTFORM
-_0807A1A0: .4byte gMonBackPicCoords
-_0807A1A4:
- mov r0, r8
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0807A26C
- mov r0, r8
- lsls r2, r0, 2
- ldr r0, _0807A1EC @ =0x02017800
- adds r1, r2, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0807A1F8
- ldr r0, _0807A1F0 @ =gUnknown_02024A6A
- mov r1, r8
- lsls r4, r1, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0807A1F4 @ =gPlayerParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- ldrh r0, [r4]
- muls r0, r6
- adds r0, r5
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- b _0807A200
- .align 2, 0
-_0807A1EC: .4byte 0x02017800
-_0807A1F0: .4byte gUnknown_02024A6A
-_0807A1F4: .4byte gPlayerParty
-_0807A1F8:
- ldrh r7, [r1, 0x2]
- ldr r0, _0807A238 @ =gUnknown_02024E70
- adds r0, r2, r0
- ldr r2, [r0]
-_0807A200:
- cmp r7, 0xC9
- bne _0807A250
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0807A23C
- movs r0, 0xC9
- b _0807A246
- .align 2, 0
-_0807A238: .4byte gUnknown_02024E70
-_0807A23C:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_0807A246:
- lsls r1, r0, 2
- ldr r0, _0807A24C @ =gMonBackPicCoords
- b _0807A33C
- .align 2, 0
-_0807A24C: .4byte gMonBackPicCoords
-_0807A250:
- movs r0, 0xCE
- lsls r0, 1
- cmp r7, r0
- bls _0807A260
-_0807A258:
- ldr r4, _0807A25C @ =gMonBackPicCoords
- b _0807A33E
- .align 2, 0
-_0807A25C: .4byte gMonBackPicCoords
-_0807A260:
- lsls r1, r7, 2
- ldr r0, _0807A268 @ =gMonBackPicCoords
- b _0807A33C
- .align 2, 0
-_0807A268: .4byte gMonBackPicCoords
-_0807A26C:
- mov r0, r8
- lsls r2, r0, 2
- ldr r0, _0807A2A8 @ =0x02017800
- adds r1, r2, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0807A2B4
- ldr r0, _0807A2AC @ =gUnknown_02024A6A
- mov r1, r8
- lsls r4, r1, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0807A2B0 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- ldrh r0, [r4]
- muls r0, r6
- adds r0, r5
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- b _0807A2BC
- .align 2, 0
-_0807A2A8: .4byte 0x02017800
-_0807A2AC: .4byte gUnknown_02024A6A
-_0807A2B0: .4byte gEnemyParty
-_0807A2B4:
- ldrh r7, [r1, 0x2]
- ldr r0, _0807A2F4 @ =gUnknown_02024E70
- adds r0, r2, r0
- ldr r2, [r0]
-_0807A2BC:
- cmp r7, 0xC9
- bne _0807A306
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0807A2F8
- movs r0, 0xC9
- b _0807A302
- .align 2, 0
-_0807A2F4: .4byte gUnknown_02024E70
-_0807A2F8:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_0807A302:
- lsls r1, r0, 2
- b _0807A33A
-_0807A306:
- ldr r0, _0807A31C @ =SPECIES_CASTFORM
- cmp r7, r0
- bne _0807A328
-_0807A30C:
- ldr r0, _0807A320 @ =gUnknown_02024E84
- add r0, r8
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _0807A324 @ =gUnknownCastformCoords_0837F598
- adds r4, r0, r1
- b _0807A33E
- .align 2, 0
-_0807A31C: .4byte SPECIES_CASTFORM
-_0807A320: .4byte gUnknown_02024E84
-_0807A324: .4byte gUnknownCastformCoords_0837F598
-_0807A328:
- movs r0, 0xCE
- lsls r0, 1
- cmp r7, r0
- bls _0807A338
- ldr r4, _0807A334 @ =gMonFrontPicCoords
- b _0807A33E
- .align 2, 0
-_0807A334: .4byte gMonFrontPicCoords
-_0807A338:
- lsls r1, r7, 2
-_0807A33A:
- ldr r0, _0807A350 @ =gMonFrontPicCoords
-_0807A33C:
- adds r4, r1, r0
-_0807A33E:
- mov r0, r9
- cmp r0, 0x6
- bhi _0807A3EE
- lsls r0, 2
- ldr r1, _0807A354 @ =_0807A358
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807A350: .4byte gMonFrontPicCoords
-_0807A354: .4byte _0807A358
- .align 2, 0
-_0807A358:
- .4byte _0807A374
- .4byte _0807A37E
- .4byte _0807A3AA
- .4byte _0807A3C2
- .4byte _0807A386
- .4byte _0807A398
- .4byte _0807A3DA
-_0807A374:
- ldrb r1, [r4]
- movs r0, 0xF
- ands r0, r1
- lsls r0, 3
- b _0807A3F0
-_0807A37E:
- ldrb r0, [r4]
- lsrs r0, 4
- lsls r0, 3
- b _0807A3F0
-_0807A386:
- mov r0, r8
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- lsrs r1, 4
- b _0807A3BC
-_0807A398:
- mov r0, r8
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- lsrs r1, 4
- b _0807A3D4
-_0807A3AA:
- mov r0, r8
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4]
- movs r1, 0xF
- ands r1, r2
-_0807A3BC:
- lsls r1, 2
- subs r0, r1
- b _0807A3F0
-_0807A3C2:
- mov r0, r8
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4]
- movs r1, 0xF
- ands r1, r2
-_0807A3D4:
- lsls r1, 2
- adds r0, r1
- b _0807A3F0
-_0807A3DA:
- mov r0, r8
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1F
- ldrb r1, [r4, 0x1]
- subs r0, r1
- b _0807A3F0
-_0807A3EE:
- movs r0, 0
-_0807A3F0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_807A100
-
- thumb_func_start sub_807A3FC
-sub_807A3FC: @ 807A3FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r2
- mov r10, r3
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- cmp r1, 0
- bne _0807A41A
- movs r5, 0
- movs r6, 0x1
- b _0807A41E
-_0807A41A:
- movs r5, 0x2
- movs r6, 0x3
-_0807A41E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0807A470
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0807A470
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r3, r0, 24
- mov r0, r8
- lsls r1, r0, 16
- lsls r2, r7, 16
- b _0807A47C
-_0807A470:
- mov r0, r8
- lsls r1, r0, 16
- lsrs r5, r1, 16
- lsls r0, r7, 16
- lsrs r3, r0, 16
- adds r2, r0, 0
-_0807A47C:
- asrs r0, r1, 16
- adds r0, r5
- asrs r0, 1
- mov r1, r9
- strh r0, [r1]
- asrs r0, r2, 16
- adds r0, r3
- asrs r0, 1
- mov r1, r10
- strh r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_807A3FC
-
- thumb_func_start sub_807A4A0
-sub_807A4A0: @ 807A4A0
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- lsls r6, r1, 24
- lsrs r6, 24
- ldr r0, _0807A538 @ =SpriteCallbackDummy
- mov r10, r0
- bl object_new_hidden_with_callback
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0807A53C @ =gSprites
- mov r9, r0
- mov r0, r8
- lsls r3, r0, 4
- add r3, r8
- lsls r3, 2
- mov r0, r9
- adds r5, r3, r0
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- add r4, r9
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x44
- str r3, [sp]
- bl memcpy
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r5, 0x5]
- ldrb r0, [r5, 0x1]
- ands r1, r0
- movs r0, 0x8
- orrs r1, r0
- strb r1, [r5, 0x1]
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 22
- ldrh r2, [r5, 0x4]
- ldr r0, _0807A540 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- movs r0, 0x1C
- add r9, r0
- ldr r3, [sp]
- add r3, r9
- mov r0, r10
- str r0, [r3]
- mov r0, r8
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0807A538: .4byte SpriteCallbackDummy
-_0807A53C: .4byte gSprites
-_0807A540: .4byte 0xfffffc00
- thumb_func_end sub_807A4A0
-
- thumb_func_start sub_807A544
-sub_807A544: @ 807A544
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _0807A57C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0807A584
- ldr r2, _0807A580 @ =gUnknown_03004B00
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x6]
- negs r0, r0
- strh r0, [r2, 0x6]
- adds r3, r4, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r3]
- adds r1, r2, 0
- b _0807A58E
- .align 2, 0
-_0807A57C: .4byte gUnknown_0202F7C8
-_0807A580: .4byte gUnknown_03004B00
-_0807A584:
- ldr r1, _0807A5B8 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
-_0807A58E:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x38]
- ldr r1, _0807A5BC @ =move_anim_8074EE0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _0807A5C0 @ =sub_8078504
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A5B8: .4byte gUnknown_03004B00
-_0807A5BC: .4byte move_anim_8074EE0
-_0807A5C0: .4byte sub_8078504
- thumb_func_end sub_807A544
-
- thumb_func_start sub_807A5C4
-sub_807A5C4: @ 807A5C4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0807A5EC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0807A5F4
- ldr r2, _0807A5F0 @ =gUnknown_03004B00
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- movs r1, 0x6
- ldrsh r0, [r2, r1]
- negs r0, r0
- strh r0, [r2, 0x6]
- adds r1, r2, 0
- b _0807A5FE
- .align 2, 0
-_0807A5EC: .4byte gUnknown_0202F7C8
-_0807A5F0: .4byte gUnknown_03004B00
-_0807A5F4:
- ldr r1, _0807A630 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
-_0807A5FE:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x38]
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, _0807A634 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _0807A638 @ =sub_8078504
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A630: .4byte gUnknown_03004B00
-_0807A634: .4byte move_anim_8074EE0
-_0807A638: .4byte sub_8078504
- thumb_func_end sub_807A5C4
-
- thumb_func_start sub_807A63C
-sub_807A63C: @ 807A63C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _0807A660 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0807A668
- ldr r0, _0807A664 @ =gUnknown_03004B00
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _0807A674
- .align 2, 0
-_0807A660: .4byte gUnknown_0202F7C8
-_0807A664: .4byte gUnknown_03004B00
-_0807A668:
- ldr r1, _0807A690 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_0807A674:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _0807A694 @ =sub_8078600
- str r0, [r4, 0x1C]
- ldr r1, _0807A698 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A690: .4byte gUnknown_03004B00
-_0807A694: .4byte sub_8078600
-_0807A698: .4byte move_anim_8072740
- thumb_func_end sub_807A63C
-
- thumb_func_start sub_807A69C
-sub_807A69C: @ 807A69C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0807A730 @ =gTasks
- adds r5, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0x8]
- ldr r7, _0807A734 @ =gUnknown_0202F7C8
- ldrb r0, [r7]
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0x8
- cmp r0, 0
- beq _0807A6D0
- movs r0, 0x8
- negs r0, r0
- adds r1, r0, 0
-_0807A6D0:
- strh r1, [r5, 0xA]
- strh r6, [r5, 0xC]
- strh r6, [r5, 0xE]
- ldr r4, _0807A738 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x24]
- ldrh r2, [r5, 0x8]
- subs r1, r2
- strh r1, [r0, 0x24]
- ldr r0, _0807A73C @ =0x00002771
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- strh r6, [r5, 0x12]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- adds r0, 0x10
- lsls r0, 20
- lsrs r6, r0, 16
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r4, r0, 4
- ldrb r0, [r7]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- cmp r0, 0x14
- beq _0807A72C
- cmp r0, 0x28
- bne _0807A740
-_0807A72C:
- movs r0, 0x2
- b _0807A742
- .align 2, 0
-_0807A730: .4byte gTasks
-_0807A734: .4byte gUnknown_0202F7C8
-_0807A738: .4byte gSprites
-_0807A73C: .4byte 0x00002771
-_0807A740:
- movs r0, 0x3
-_0807A742:
- strh r0, [r5, 0x14]
- lsls r0, r4, 1
- ldr r1, _0807A770 @ =gPlttBufferUnfaded
- adds r0, r1
- lsls r1, r6, 1
- ldr r2, _0807A774 @ =gPlttBufferFaded
- adds r1, r2
- ldr r2, _0807A778 @ =REG_BG0CNT
- bl CpuSet
- ldr r0, _0807A77C @ =gUnknown_03004B00
- ldrb r2, [r0, 0x2]
- ldrh r3, [r0]
- adds r0, r6, 0
- movs r1, 0x10
- bl BlendPalette
- ldr r0, _0807A780 @ =sub_807A784
- str r0, [r5]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A770: .4byte gPlttBufferUnfaded
-_0807A774: .4byte gPlttBufferFaded
-_0807A778: .4byte REG_BG0CNT
-_0807A77C: .4byte gUnknown_03004B00
-_0807A780: .4byte sub_807A784
- thumb_func_end sub_807A69C
-
- thumb_func_start sub_807A784
-sub_807A784: @ 807A784
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0807A7A8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0807A7E8
- cmp r0, 0x1
- bgt _0807A7AC
- cmp r0, 0
- beq _0807A7B2
- b _0807A844
- .align 2, 0
-_0807A7A8: .4byte gTasks
-_0807A7AC:
- cmp r0, 0x2
- beq _0807A830
- b _0807A844
-_0807A7B2:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_807A850
- ldr r2, _0807A7E4 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0xA]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- ldrh r1, [r4, 0xE]
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0807A844
- strh r1, [r4, 0xE]
- b _0807A822
- .align 2, 0
-_0807A7E4: .4byte gSprites
-_0807A7E8:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_807A850
- ldr r3, _0807A82C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x24]
- ldrh r2, [r4, 0xA]
- subs r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _0807A844
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- strh r2, [r1, 0x24]
-_0807A822:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _0807A844
- .align 2, 0
-_0807A82C: .4byte gSprites
-_0807A830:
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0807A844
- ldr r0, _0807A84C @ =0x00002771
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl move_anim_task_del
-_0807A844:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A84C: .4byte 0x00002771
- thumb_func_end sub_807A784
-
- thumb_func_start sub_807A850
-sub_807A850: @ 807A850
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- movs r0, 0
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r7, r0, 16
- asrs r0, 16
- cmp r0, 0
- blt _0807A8C0
- ldr r5, _0807A8CC @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r3, r4, r5
- movs r0, 0x3
- ldrb r1, [r6, 0x14]
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldrb r1, [r6, 0x10]
- lsls r1, 4
- movs r2, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- movs r0, 0x8
- strh r0, [r3, 0x2E]
- mov r0, r8
- strh r0, [r3, 0x30]
- strh r7, [r3, 0x32]
- movs r0, 0x8
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x24]
- strh r0, [r3, 0x24]
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0807A8D0 @ =sub_807A8D4
- str r0, [r4]
- ldrh r0, [r6, 0x12]
- adds r0, 0x1
- strh r0, [r6, 0x12]
-_0807A8C0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A8CC: .4byte gSprites
-_0807A8D0: .4byte sub_807A8D4
- thumb_func_end sub_807A850
-
- thumb_func_start sub_807A8D4
-sub_807A8D4: @ 807A8D4
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- subs r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0807A8FE
- ldr r2, _0807A904 @ =gTasks
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x12]
- subs r1, 0x1
- strh r1, [r0, 0x12]
- adds r0, r3, 0
- bl obj_delete_but_dont_free_vram
-_0807A8FE:
- pop {r0}
- bx r0
- .align 2, 0
-_0807A904: .4byte gTasks
- thumb_func_end sub_807A8D4
-
- thumb_func_start sub_807A908
-sub_807A908: @ 807A908
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _0807A93C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0807A940
- movs r0, 0x5
- b _0807A942
- .align 2, 0
-_0807A93C: .4byte gUnknown_0202F7C8
-_0807A940:
- ldr r0, _0807A954 @ =0x0000fff6
-_0807A942:
- strh r0, [r5, 0x2E]
- ldr r0, _0807A958 @ =0x0000ffd8
- strh r0, [r5, 0x30]
- ldr r0, _0807A95C @ =sub_807A960
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807A954: .4byte 0x0000fff6
-_0807A958: .4byte 0x0000ffd8
-_0807A95C: .4byte sub_807A960
- thumb_func_end sub_807A908
-
- thumb_func_start sub_807A960
-sub_807A960: @ 807A960
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r5, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r0, r5, r2
- strh r0, [r4, 0x34]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- lsls r0, r5, 16
- asrs r0, 16
- movs r1, 0x14
- negs r1, r1
- cmp r0, r1
- bge _0807A99C
- adds r0, r5, 0x1
- strh r0, [r4, 0x30]
-_0807A99C:
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _0807A9B4
- adds r0, r4, 0
- bl move_anim_8072740
-_0807A9B4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_807A960
-
- thumb_func_start sub_807A9BC
-sub_807A9BC: @ 807A9BC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _0807A9F4 @ =gUnknown_03004B00
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldr r0, _0807A9F8 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0807A9FC
- ldrh r0, [r5, 0x8]
- adds r0, 0x1E
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0xA]
- subs r0, 0x14
- b _0807AA0A
- .align 2, 0
-_0807A9F4: .4byte gUnknown_03004B00
-_0807A9F8: .4byte gUnknown_0202F7C9
-_0807A9FC:
- ldrh r0, [r5, 0x8]
- subs r0, 0x1E
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0xA]
- subs r0, 0x50
-_0807AA0A:
- strh r0, [r4, 0x22]
- ldr r0, _0807AA20 @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _0807AA24 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807AA20: .4byte sub_8078B34
-_0807AA24: .4byte move_anim_8072740
- thumb_func_end sub_807A9BC
diff --git a/asm/rom_80859BC.s b/asm/rom_80859BC.s
deleted file mode 100644
index 3a67bbf81..000000000
--- a/asm/rom_80859BC.s
+++ /dev/null
@@ -1,11803 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CreateTrainerSprite_BirchSpeech
-CreateTrainerSprite_BirchSpeech: @ 80859BC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r9, r3
- ldr r7, [sp, 0x34]
- lsls r4, 24
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsrs r4, 21
- ldr r3, _08085A44 @ =gTrainerFrontPicPaletteTable
- mov r8, r3
- add r8, r4
- mov r0, r8
- adds r1, r7, 0
- bl LoadCompressedObjectPaletteOverrideBuffer
- ldr r0, _08085A48 @ =gTrainerFrontPicTable
- adds r4, r0
- adds r0, r4, 0
- adds r1, r7, 0
- bl LoadCompressedObjectPicOverrideBuffer
- mov r1, sp
- ldrh r0, [r4, 0x6]
- movs r2, 0
- strh r0, [r1]
- mov r3, r8
- ldrh r0, [r3, 0x4]
- strh r0, [r1, 0x2]
- ldr r0, _08085A4C @ =gOamData_839F0F4
- str r0, [sp, 0x4]
- ldr r0, _08085A50 @ =gDummySpriteAnimTable
- str r0, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r0, _08085A54 @ =gDummySpriteAffineAnimTable
- str r0, [sp, 0x10]
- ldr r0, _08085A58 @ =SpriteCallbackDummy
- str r0, [sp, 0x14]
- lsls r5, 16
- asrs r5, 16
- lsls r6, 16
- asrs r6, 16
- mov r0, sp
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, r9
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08085A44: .4byte gTrainerFrontPicPaletteTable
-_08085A48: .4byte gTrainerFrontPicTable
-_08085A4C: .4byte gOamData_839F0F4
-_08085A50: .4byte gDummySpriteAnimTable
-_08085A54: .4byte gDummySpriteAffineAnimTable
-_08085A58: .4byte SpriteCallbackDummy
- thumb_func_end CreateTrainerSprite_BirchSpeech
-
- thumb_func_start LoadTrainerGfx_TrainerCard
-LoadTrainerGfx_TrainerCard: @ 8085A5C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r1, r2, 0
- lsls r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _08085A8C @ =gTrainerFrontPicTable
- lsrs r4, 21
- adds r0, r4, r0
- ldr r0, [r0]
- bl LZDecompressVram
- ldr r0, _08085A90 @ =gTrainerFrontPicPaletteTable
- adds r4, r0
- ldr r0, [r4]
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08085A8C: .4byte gTrainerFrontPicTable
-_08085A90: .4byte gTrainerFrontPicPaletteTable
- thumb_func_end LoadTrainerGfx_TrainerCard
-
- thumb_func_start CreateBirchSprite
-CreateBirchSprite: @ 8085A94
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08085ACC @ =gUnknown_0839F114
- bl LoadSpritePalette
- ldr r0, _08085AD0 @ =gSpriteTemplate_839F128
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08085ACC: .4byte gUnknown_0839F114
-_08085AD0: .4byte gSpriteTemplate_839F128
- thumb_func_end CreateBirchSprite
-
- thumb_func_start CreateMonSprite_PicBox
-CreateMonSprite_PicBox: @ 8085AD4
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r4, r0, 0
- adds r6, r1, 0
- mov r8, r2
- mov r10, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, r4, 3
- mov r9, r0
- ldr r0, _08085B74 @ =gMonFrontPicTable
- add r0, r9
- ldr r1, _08085B78 @ =gMonFrontPicCoords
- lsls r2, r4, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r3, _08085B7C @ =gUnknown_081FAF4C
- ldr r3, [r3, 0xC]
- str r3, [sp]
- str r4, [sp, 0x4]
- bl DecompressPicFromTable_2
- ldr r5, _08085B80 @ =gMonPaletteTable
- add r9, r5
- mov r0, r9
- bl LoadCompressedObjectPalette
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r4, _08085B84 @ =gUnknown_02024E8C
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x4]
- bl IndexOfSpritePaletteTag
- adds r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- bl sub_807DE38
- lsls r6, 16
- asrs r6, 16
- mov r0, r8
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, r8
- mov r3, r10
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08085B74: .4byte gMonFrontPicTable
-_08085B78: .4byte gMonFrontPicCoords
-_08085B7C: .4byte gUnknown_081FAF4C
-_08085B80: .4byte gMonPaletteTable
-_08085B84: .4byte gUnknown_02024E8C
- thumb_func_end CreateMonSprite_PicBox
-
- thumb_func_start CreateMonSprite_FieldMove
-CreateMonSprite_FieldMove: @ 8085B88
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0xC
- adds r5, r0, 0
- mov r10, r1
- adds r4, r2, 0
- adds r6, r3, 0
- ldr r0, [sp, 0x28]
- mov r8, r0
- ldr r0, [sp, 0x2C]
- mov r9, r0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r0, r5, 3
- ldr r1, _08085C34 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08085C38 @ =gMonFrontPicCoords
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r3, _08085C3C @ =gUnknown_081FAF4C
- ldr r3, [r3, 0xC]
- str r3, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- bl sub_800D334
- adds r0, r5, 0
- mov r1, r10
- adds r2, r4, 0
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- adds r0, r5, 0
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r5, _08085C40 @ =gUnknown_02024E8C
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2]
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- adds r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- bl sub_807DE38
- lsls r6, 16
- asrs r6, 16
- mov r0, r8
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, r8
- mov r3, r9
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08085C34: .4byte gMonFrontPicTable
-_08085C38: .4byte gMonFrontPicCoords
-_08085C3C: .4byte gUnknown_081FAF4C
-_08085C40: .4byte gUnknown_02024E8C
- thumb_func_end CreateMonSprite_FieldMove
-
- thumb_func_start FreeResourcesAndDestroySprite
-FreeResourcesAndDestroySprite: @ 8085C44
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807DE68
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- cmp r0, 0
- beq _08085C6E
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
-_08085C6E:
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FreeResourcesAndDestroySprite
-
- thumb_func_start MultiplyInvertedPaletteRGBComponents
-MultiplyInvertedPaletteRGBComponents: @ 8085C7C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r4, _08085D00 @ =gPlttBufferUnfaded
- lsrs r0, 15
- adds r4, r0, r4
- ldrh r4, [r4]
- movs r5, 0x1F
- mov r9, r5
- mov r8, r4
- mov r6, r8
- ands r6, r5
- mov r8, r6
- movs r6, 0xF8
- lsls r6, 2
- ands r6, r4
- lsrs r6, 5
- movs r5, 0xF8
- lsls r5, 7
- ands r4, r5
- lsrs r4, 10
- mov r7, r9
- mov r5, r8
- subs r7, r5
- mov r12, r7
- mov r7, r12
- muls r7, r1
- adds r1, r7, 0
- asrs r1, 4
- add r8, r1
- mov r5, r9
- subs r1, r5, r6
- muls r1, r2
- asrs r1, 4
- adds r6, r1
- subs r5, r4
- mov r9, r5
- mov r1, r9
- muls r1, r3
- asrs r1, 4
- adds r4, r1
- mov r7, r8
- lsls r7, 16
- lsls r6, 21
- orrs r6, r7
- lsls r4, 26
- orrs r4, r6
- lsrs r4, 16
- ldr r1, _08085D04 @ =gPlttBufferFaded
- adds r0, r1
- strh r4, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08085D00: .4byte gPlttBufferUnfaded
-_08085D04: .4byte gPlttBufferFaded
- thumb_func_end MultiplyInvertedPaletteRGBComponents
-
- thumb_func_start MultiplyPaletteRGBComponents
-MultiplyPaletteRGBComponents: @ 8085D08
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 16
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r4, _08085D78 @ =gPlttBufferUnfaded
- lsrs r0, 15
- adds r4, r0, r4
- ldrh r4, [r4]
- movs r5, 0x1F
- mov r8, r5
- mov r6, r8
- ands r6, r4
- mov r8, r6
- movs r5, 0xF8
- lsls r5, 2
- ands r5, r4
- lsrs r5, 5
- movs r6, 0xF8
- lsls r6, 7
- ands r4, r6
- lsrs r4, 10
- mov r6, r8
- muls r6, r1
- adds r1, r6, 0
- asrs r1, 4
- mov r6, r8
- subs r6, r1
- adds r1, r5, 0
- muls r1, r2
- asrs r1, 4
- subs r5, r1
- adds r1, r4, 0
- muls r1, r3
- asrs r1, 4
- subs r4, r1
- lsls r6, 16
- lsls r5, 21
- orrs r5, r6
- lsls r4, 26
- orrs r4, r5
- lsrs r4, 16
- ldr r1, _08085D7C @ =gPlttBufferFaded
- adds r0, r1
- strh r4, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08085D78: .4byte gPlttBufferUnfaded
-_08085D7C: .4byte gPlttBufferFaded
- thumb_func_end MultiplyPaletteRGBComponents
-
- thumb_func_start FldEff_PokecenterHeal
-FldEff_PokecenterHeal: @ 8085D80
- push {r4,lr}
- bl CalculatePlayerPartyCount
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08085DBC @ =Task_PokecenterHeal
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08085DC0 @ =gTasks
- adds r1, r0
- strh r4, [r1, 0xA]
- movs r0, 0x5D
- strh r0, [r1, 0xC]
- movs r0, 0x24
- strh r0, [r1, 0xE]
- movs r0, 0x7C
- strh r0, [r1, 0x10]
- movs r0, 0x18
- strh r0, [r1, 0x12]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08085DBC: .4byte Task_PokecenterHeal
-_08085DC0: .4byte gTasks
- thumb_func_end FldEff_PokecenterHeal
-
- thumb_func_start Task_PokecenterHeal
-Task_PokecenterHeal: @ 8085DC4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08085DEC @ =gTasks
- adds r1, r0
- ldr r2, _08085DF0 @ =gUnknown_0839F268
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- lsls r0, 2
- adds r0, r2
- ldr r2, [r0]
- adds r0, r1, 0
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_08085DEC: .4byte gTasks
-_08085DF0: .4byte gUnknown_0839F268
- thumb_func_end Task_PokecenterHeal
-
- thumb_func_start PokecenterHealEffect_0
-PokecenterHealEffect_0: @ 8085DF4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r3, 0xE
- ldrsh r2, [r4, r3]
- movs r3, 0x1
- bl CreatePokeballGlowSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl PokecenterHealEffectHelper
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PokecenterHealEffect_0
-
- thumb_func_start PokecenterHealEffect_1
-PokecenterHealEffect_1: @ 8085E30
- push {r4,lr}
- adds r2, r0, 0
- ldr r3, _08085E68 @ =gSprites
- movs r1, 0x14
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r4, 0x2E
- ldrsh r0, [r1, r4]
- cmp r0, 0x1
- ble _08085E62
- movs r0, 0x16
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- strh r1, [r0, 0x2E]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_08085E62:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08085E68: .4byte gSprites
- thumb_func_end PokecenterHealEffect_1
-
- thumb_func_start PokecenterHealEffect_2
-PokecenterHealEffect_2: @ 8085E6C
- push {lr}
- adds r3, r0, 0
- ldr r2, _08085E90 @ =gSprites
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- ble _08085E8C
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_08085E8C:
- pop {r0}
- bx r0
- .align 2, 0
-_08085E90: .4byte gSprites
- thumb_func_end PokecenterHealEffect_2
-
- thumb_func_start PokecenterHealEffect_3
-PokecenterHealEffect_3: @ 8085E94
- push {lr}
- ldr r2, _08085ECC @ =gSprites
- movs r3, 0x14
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x6
- ble _08085EC6
- adds r0, r1, 0
- bl DestroySprite
- movs r0, 0x19
- bl FieldEffectActiveListRemove
- ldr r0, _08085ED0 @ =Task_PokecenterHeal
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08085EC6:
- pop {r0}
- bx r0
- .align 2, 0
-_08085ECC: .4byte gSprites
-_08085ED0: .4byte Task_PokecenterHeal
- thumb_func_end PokecenterHealEffect_3
-
- thumb_func_start FldEff_HallOfFameRecord
-FldEff_HallOfFameRecord: @ 8085ED4
- push {r4,lr}
- bl CalculatePlayerPartyCount
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08085F08 @ =Task_HallOfFameRecord
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08085F0C @ =gTasks
- adds r1, r0
- strh r4, [r1, 0xA]
- movs r0, 0x75
- strh r0, [r1, 0xC]
- movs r0, 0x34
- strh r0, [r1, 0xE]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08085F08: .4byte Task_HallOfFameRecord
-_08085F0C: .4byte gTasks
- thumb_func_end FldEff_HallOfFameRecord
-
- thumb_func_start Task_HallOfFameRecord
-Task_HallOfFameRecord: @ 8085F10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08085F38 @ =gTasks
- adds r1, r0
- ldr r2, _08085F3C @ =gUnknown_0839F278
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- lsls r0, 2
- adds r0, r2
- ldr r2, [r0]
- adds r0, r1, 0
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_08085F38: .4byte gTasks
-_08085F3C: .4byte gUnknown_0839F278
- thumb_func_end Task_HallOfFameRecord
-
- thumb_func_start HallOfFameRecordEffect_0
-HallOfFameRecordEffect_0: @ 8085F40
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r3, 0xE
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreatePokeballGlowSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- ldr r0, _08085FB0 @ =Task_HallOfFameRecord
- bl FindTaskIdByFunc
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x78
- movs r2, 0x18
- movs r3, 0
- bl HallOfFameRecordEffectHelper
- adds r0, r4, 0
- movs r1, 0x28
- movs r2, 0x8
- movs r3, 0x1
- bl HallOfFameRecordEffectHelper
- adds r0, r4, 0
- movs r1, 0x48
- movs r2, 0x8
- movs r3, 0x1
- bl HallOfFameRecordEffectHelper
- adds r0, r4, 0
- movs r1, 0xA8
- movs r2, 0x8
- movs r3, 0x1
- bl HallOfFameRecordEffectHelper
- adds r0, r4, 0
- movs r1, 0xC8
- movs r2, 0x8
- movs r3, 0x1
- bl HallOfFameRecordEffectHelper
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08085FB0: .4byte Task_HallOfFameRecord
- thumb_func_end HallOfFameRecordEffect_0
-
- thumb_func_start HallOfFameRecordEffect_1
-HallOfFameRecordEffect_1: @ 8085FB4
- push {lr}
- adds r3, r0, 0
- ldr r2, _08085FE0 @ =gSprites
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- ble _08085FDA
- ldrh r0, [r3, 0x26]
- adds r0, 0x1
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_08085FDA:
- pop {r0}
- bx r0
- .align 2, 0
-_08085FE0: .4byte gSprites
- thumb_func_end HallOfFameRecordEffect_1
-
- thumb_func_start HallOfFameRecordEffect_2
-HallOfFameRecordEffect_2: @ 8085FE4
- push {lr}
- adds r3, r0, 0
- ldr r2, _08086008 @ =gSprites
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- ble _08086004
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_08086004:
- pop {r0}
- bx r0
- .align 2, 0
-_08086008: .4byte gSprites
- thumb_func_end HallOfFameRecordEffect_2
-
- thumb_func_start HallOfFameRecordEffect_3
-HallOfFameRecordEffect_3: @ 808600C
- push {lr}
- ldr r2, _08086044 @ =gSprites
- movs r3, 0x14
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x6
- ble _0808603E
- adds r0, r1, 0
- bl DestroySprite
- movs r0, 0x3E
- bl FieldEffectActiveListRemove
- ldr r0, _08086048 @ =Task_HallOfFameRecord
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0808603E:
- pop {r0}
- bx r0
- .align 2, 0
-_08086044: .4byte gSprites
-_08086048: .4byte Task_HallOfFameRecord
- thumb_func_end HallOfFameRecordEffect_3
-
- thumb_func_start CreatePokeballGlowSprite
-CreatePokeballGlowSprite: @ 808604C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- ldr r0, _08086098 @ =SpriteCB_PokeballGlowEffect
- bl CreateInvisibleSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r2, _0808609C @ =gSprites
- adds r1, r2
- strh r4, [r1, 0x24]
- strh r5, [r1, 0x26]
- strh r6, [r1, 0x38]
- mov r2, r8
- strh r2, [r1, 0x3A]
- strh r0, [r1, 0x3C]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08086098: .4byte SpriteCB_PokeballGlowEffect
-_0808609C: .4byte gSprites
- thumb_func_end CreatePokeballGlowSprite
-
- thumb_func_start SpriteCB_PokeballGlowEffect
-SpriteCB_PokeballGlowEffect: @ 80860A0
- push {lr}
- ldr r2, _080860B8 @ =gUnknown_0839F288
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080860B8: .4byte gUnknown_0839F288
- thumb_func_end SpriteCB_PokeballGlowEffect
-
- thumb_func_start PokeballGlowEffect_0
-PokeballGlowEffect_0: @ 80860BC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080860D4
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _08086130
-_080860D4:
- movs r0, 0x19
- strh r0, [r4, 0x30]
- ldr r0, _08086148 @ =gSpriteTemplate_839F208
- ldr r1, _0808614C @ =gUnknown_0839F2A8
- movs r2, 0x32
- ldrsh r3, [r4, r2]
- lsls r3, 2
- adds r3, r1
- ldrh r1, [r4, 0x24]
- ldrh r2, [r3]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x26]
- ldrh r3, [r3, 0x2]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08086150 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldrh r0, [r4, 0x3C]
- strh r0, [r1, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3A]
- subs r0, 0x1
- strh r0, [r4, 0x3A]
- movs r0, 0x17
- bl PlaySE
-_08086130:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08086142
- movs r0, 0x20
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_08086142:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08086148: .4byte gSpriteTemplate_839F208
-_0808614C: .4byte gUnknown_0839F2A8
-_08086150: .4byte gSprites
- thumb_func_end PokeballGlowEffect_0
-
- thumb_func_start PokeballGlowEffect_1
-PokeballGlowEffect_1: @ 8086154
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _08086184
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- movs r0, 0x8
- strh r0, [r1, 0x30]
- strh r2, [r1, 0x32]
- strh r2, [r1, 0x34]
- movs r2, 0x38
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08086184
- movs r0, 0xB8
- lsls r0, 1
- bl PlayFanfare
-_08086184:
- pop {r0}
- bx r0
- thumb_func_end PokeballGlowEffect_1
-
- thumb_func_start PokeballGlowEffect_2
-PokeballGlowEffect_2: @ 8086188
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- ldrh r0, [r7, 0x30]
- subs r0, 0x1
- strh r0, [r7, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080861B8
- movs r0, 0x8
- strh r0, [r7, 0x30]
- ldrh r0, [r7, 0x32]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r7, 0x32]
- cmp r0, 0
- bne _080861B8
- ldrh r0, [r7, 0x34]
- adds r0, 0x1
- strh r0, [r7, 0x34]
-_080861B8:
- ldrh r4, [r7, 0x32]
- adds r4, 0x3
- movs r0, 0x3
- mov r8, r0
- mov r1, r8
- ands r4, r1
- ldr r3, _080862B0 @ =0x00001007
- mov r10, r3
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x84
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldr r6, _080862B4 @ =gUnknown_0839F2C0
- adds r1, r4, r6
- ldrb r1, [r1]
- ldr r5, _080862B8 @ =gUnknown_0839F2C4
- adds r2, r4, r5
- ldrb r2, [r2]
- ldr r3, _080862BC @ =gUnknown_0839F2C8
- mov r9, r3
- add r4, r9
- ldrb r3, [r4]
- bl MultiplyInvertedPaletteRGBComponents
- ldrh r4, [r7, 0x32]
- adds r4, 0x2
- mov r0, r8
- ands r4, r0
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x83
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- adds r1, r4, r6
- ldrb r1, [r1]
- adds r2, r4, r5
- ldrb r2, [r2]
- add r4, r9
- ldrb r3, [r4]
- bl MultiplyInvertedPaletteRGBComponents
- ldrh r4, [r7, 0x32]
- adds r4, 0x1
- mov r3, r8
- ands r4, r3
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x81
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- adds r1, r4, r6
- ldrb r1, [r1]
- adds r2, r4, r5
- ldrb r2, [r2]
- add r4, r9
- ldrb r3, [r4]
- bl MultiplyInvertedPaletteRGBComponents
- ldrh r4, [r7, 0x32]
- lsls r4, 24
- lsrs r4, 24
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r3, _080862C0 @ =0x01050000
- adds r0, r3
- lsrs r0, 16
- adds r6, r4, r6
- ldrb r6, [r6]
- adds r5, r4, r5
- ldrb r5, [r5]
- add r4, r9
- ldrb r4, [r4]
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- mov r0, r10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r1, _080862C4 @ =0x01030000
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- movs r3, 0x34
- ldrsh r0, [r7, r3]
- cmp r0, 0x2
- ble _080862A2
- ldrh r0, [r7, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r7, 0x2E]
- movs r0, 0x8
- strh r0, [r7, 0x30]
- strh r1, [r7, 0x32]
-_080862A2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080862B0: .4byte 0x00001007
-_080862B4: .4byte gUnknown_0839F2C0
-_080862B8: .4byte gUnknown_0839F2C4
-_080862BC: .4byte gUnknown_0839F2C8
-_080862C0: .4byte 0x01050000
-_080862C4: .4byte 0x01030000
- thumb_func_end PokeballGlowEffect_2
-
- thumb_func_start PokeballGlowEffect_3
-PokeballGlowEffect_3: @ 80862C8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080862F8
- movs r0, 0x8
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r2, 0x32]
- cmp r0, 0x3
- bne _080862F8
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- movs r0, 0x1E
- strh r0, [r2, 0x30]
-_080862F8:
- ldrh r4, [r2, 0x32]
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080863A4 @ =0x00001007
- mov r8, r0
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x84
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldr r1, _080863A8 @ =gUnknown_0839F2C0
- adds r1, r4, r1
- ldrb r6, [r1]
- ldr r1, _080863AC @ =gUnknown_0839F2C4
- adds r1, r4, r1
- ldrb r5, [r1]
- ldr r1, _080863B0 @ =gUnknown_0839F2C8
- adds r4, r1
- ldrb r4, [r4]
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- mov r0, r8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x83
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- mov r0, r8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- movs r1, 0x81
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- mov r0, r8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r1, _080863B4 @ =0x01050000
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- mov r0, r8
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r1, _080863B8 @ =0x01030000
- adds r0, r1
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl MultiplyInvertedPaletteRGBComponents
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080863A4: .4byte 0x00001007
-_080863A8: .4byte gUnknown_0839F2C0
-_080863AC: .4byte gUnknown_0839F2C4
-_080863B0: .4byte gUnknown_0839F2C8
-_080863B4: .4byte 0x01050000
-_080863B8: .4byte 0x01030000
- thumb_func_end PokeballGlowEffect_3
-
- thumb_func_start PokeballGlowEffect_4
-PokeballGlowEffect_4: @ 80863BC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080863D2
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_080863D2:
- pop {r0}
- bx r0
- thumb_func_end PokeballGlowEffect_4
-
- thumb_func_start PokeballGlowEffect_5
-PokeballGlowEffect_5: @ 80863D8
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- strh r1, [r0, 0x2E]
- bx lr
- thumb_func_end PokeballGlowEffect_5
-
- thumb_func_start PokeballGlowEffect_6
-PokeballGlowEffect_6: @ 80863E0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080863F6
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _080863FC
-_080863F6:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080863FC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PokeballGlowEffect_6
-
- thumb_func_start PokeballGlowEffect_7
-PokeballGlowEffect_7: @ 8086404
- bx lr
- thumb_func_end PokeballGlowEffect_7
-
- thumb_func_start SpriteCB_PokeballGlow
-SpriteCB_PokeballGlow: @ 8086408
- push {lr}
- adds r3, r0, 0
- ldr r2, _0808642C @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- ble _08086428
- adds r0, r3, 0
- bl FieldEffectFreeGraphicsResources
-_08086428:
- pop {r0}
- bx r0
- .align 2, 0
-_0808642C: .4byte gSprites
- thumb_func_end SpriteCB_PokeballGlow
-
- thumb_func_start PokecenterHealEffectHelper
-PokecenterHealEffectHelper: @ 8086430
- push {r4,lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _08086480 @ =gSpriteTemplate_839F220
- lsls r3, 16
- asrs r3, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r3, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08086484 @ =gSprites
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x5]
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _08086488 @ =gUnknown_0839F1A0
- bl SetSubspriteTables
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08086480: .4byte gSpriteTemplate_839F220
-_08086484: .4byte gSprites
-_08086488: .4byte gUnknown_0839F1A0
- thumb_func_end PokecenterHealEffectHelper
-
- thumb_func_start SpriteCB_PokecenterMonitor
-SpriteCB_PokecenterMonitor: @ 808648C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080864B0
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080864B0:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080864C4
- adds r0, r4, 0
- bl FieldEffectFreeGraphicsResources
-_080864C4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SpriteCB_PokecenterMonitor
-
- thumb_func_start HallOfFameRecordEffectHelper
-HallOfFameRecordEffectHelper: @ 80864CC
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- cmp r3, 0
- bne _08086514
- ldr r0, _08086508 @ =gSpriteTemplate_839F238
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0808650C @ =gSprites
- adds r0, r1
- ldr r1, _08086510 @ =gUnknown_0839F1C8
- bl SetSubspriteTables
- b _08086528
- .align 2, 0
-_08086508: .4byte gSpriteTemplate_839F238
-_0808650C: .4byte gSprites
-_08086510: .4byte gUnknown_0839F1C8
-_08086514:
- ldr r0, _08086548 @ =gSpriteTemplate_839F250
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
-_08086528:
- ldr r1, _0808654C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- strh r5, [r0, 0x2E]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086548: .4byte gSpriteTemplate_839F250
-_0808654C: .4byte gSprites
- thumb_func_end HallOfFameRecordEffectHelper
-
- thumb_func_start SpriteCB_HallOfFameMonitor
-SpriteCB_HallOfFameMonitor: @ 8086550
- push {lr}
- adds r3, r0, 0
- ldr r2, _080865B8 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x26
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080865A6
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _0808657E
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080865A0
-_0808657E:
- movs r0, 0x10
- strh r0, [r3, 0x30]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080865A0:
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
-_080865A6:
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r0, 0x7F
- ble _080865B4
- adds r0, r3, 0
- bl FieldEffectFreeGraphicsResources
-_080865B4:
- pop {r0}
- bx r0
- .align 2, 0
-_080865B8: .4byte gTasks
- thumb_func_end SpriteCB_HallOfFameMonitor
-
- thumb_func_start sub_80865BC
-sub_80865BC: @ 80865BC
- push {lr}
- ldr r0, _080865D0 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- ldr r1, _080865D4 @ =gUnknown_0300485C
- ldr r0, _080865D8 @ =mapldr_080842E8
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080865D0: .4byte c2_exit_to_overworld_2_switch
-_080865D4: .4byte gUnknown_0300485C
-_080865D8: .4byte mapldr_080842E8
- thumb_func_end sub_80865BC
-
- thumb_func_start mapldr_080842E8
-mapldr_080842E8: @ 80865DC
- push {lr}
- bl pal_fill_black
- ldr r0, _080865FC @ =task00_8084310
- movs r1, 0
- bl CreateTask
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r1, _08086600 @ =gUnknown_0300485C
- movs r0, 0
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080865FC: .4byte task00_8084310
-_08086600: .4byte gUnknown_0300485C
- thumb_func_end mapldr_080842E8
-
- thumb_func_start task00_8084310
-task00_8084310: @ 8086604
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0808666C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08086640
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- beq _08086666
- ldr r1, _08086670 @ =gUnknown_0202FF84
- ldr r0, _08086674 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- str r0, [r1]
- cmp r0, 0x5
- ble _08086634
- str r5, [r1]
-_08086634:
- movs r0, 0x1F
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086640:
- movs r0, 0x1F
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08086666
- bl flag_var_implications_of_teleport_
- bl warp_in
- ldr r0, _08086678 @ =CB2_LoadMap
- bl SetMainCallback2
- ldr r1, _0808667C @ =gUnknown_0300485C
- ldr r0, _08086680 @ =mapldr_08084390
- str r0, [r1]
- adds r0, r6, 0
- bl DestroyTask
-_08086666:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808666C: .4byte gTasks
-_08086670: .4byte gUnknown_0202FF84
-_08086674: .4byte gUnknown_03005CE0
-_08086678: .4byte CB2_LoadMap
-_0808667C: .4byte gUnknown_0300485C
-_08086680: .4byte mapldr_08084390
- thumb_func_end task00_8084310
-
- thumb_func_start mapldr_08084390
-mapldr_08084390: @ 8086684
- push {r4,lr}
- bl sub_8053E90
- bl pal_fill_black
- ldr r0, _080866DC @ =c3_080843F8
- movs r1, 0
- bl CreateTask
- ldr r4, _080866E0 @ =gMapObjects
- ldr r3, _080866E4 @ =gPlayerAvatar
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldrb r1, [r3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080866C6
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x3
- bl FieldObjectTurn
-_080866C6:
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r1, _080866E8 @ =gUnknown_0300485C
- movs r0, 0
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080866DC: .4byte c3_080843F8
-_080866E0: .4byte gMapObjects
-_080866E4: .4byte gPlayerAvatar
-_080866E8: .4byte gUnknown_0300485C
- thumb_func_end mapldr_08084390
-
- thumb_func_start c3_080843F8
-c3_080843F8: @ 80866EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08086740 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0808671E
- ldr r0, _08086744 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08086738
- movs r0, 0x20
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0808671E:
- movs r0, 0x20
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08086738
- bl ScriptContext2_Disable
- bl sub_806451C
- adds r0, r5, 0
- bl DestroyTask
-_08086738:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086740: .4byte gTasks
-_08086744: .4byte gPaletteFade
- thumb_func_end c3_080843F8
-
- thumb_func_start sub_8086748
-sub_8086748: @ 8086748
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r0, _0808676C @ =sub_8086774
- movs r1, 0
- bl CreateTask
- ldr r1, _08086770 @ =gUnknown_0300485C
- movs r0, 0
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0808676C: .4byte sub_8086774
-_08086770: .4byte gUnknown_0300485C
- thumb_func_end sub_8086748
-
- thumb_func_start sub_8086774
-sub_8086774: @ 8086774
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080867A4 @ =gTasks
- adds r4, r1, r0
- ldr r5, _080867A8 @ =gUnknown_0839F2CC
-_08086786:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08086786
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080867A4: .4byte gTasks
-_080867A8: .4byte gUnknown_0839F2CC
- thumb_func_end sub_8086774
-
- thumb_func_start sub_80867AC
-sub_80867AC: @ 80867AC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r9, r0
- ldr r6, _08086848 @ =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r5, r0, 3
- adds r5, r0
- lsls r5, 2
- ldr r0, _0808684C @ =gMapObjects
- mov r8, r0
- add r5, r8
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08086850 @ =gSprites
- adds r4, r0
- bl CameraObjectReset2
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r0, 0x1
- strb r0, [r6, 0x6]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- adds r3, r4, 0
- adds r3, 0x42
- ldrb r0, [r3]
- lsrs r0, 6
- mov r1, r9
- strh r0, [r1, 0x10]
- ldrb r0, [r5, 0x3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r5, 0x3]
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldrb r1, [r3]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r3]
- mov r1, r9
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08086848: .4byte gPlayerAvatar
-_0808684C: .4byte gMapObjects
-_08086850: .4byte gSprites
- thumb_func_end sub_80867AC
-
- thumb_func_start sub_8086854
-sub_8086854: @ 8086854
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- beq _08086868
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086868:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8086854
-
- thumb_func_start sub_8086870
-sub_8086870: @ 8086870
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080868D4 @ =gPlayerAvatar
- ldrb r0, [r6, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080868D8 @ =gSprites
- adds r2, r0
- adds r0, r2, 0
- adds r0, 0x29
- movs r4, 0
- ldrsb r4, [r0, r4]
- lsls r0, r4, 17
- negs r0, r0
- ldrh r1, [r2, 0x22]
- ldr r3, _080868DC @ =gSpriteCoordOffsetY
- adds r1, r4
- ldrh r3, [r3]
- adds r1, r3
- asrs r0, 16
- adds r0, r1
- negs r0, r0
- movs r1, 0
- strh r0, [r2, 0x26]
- movs r0, 0x1
- strh r0, [r5, 0xA]
- strh r1, [r5, 0xC]
- ldr r2, _080868E0 @ =gMapObjects
- ldrb r0, [r6, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r0, 0x2B
- bl PlaySE
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080868D4: .4byte gPlayerAvatar
-_080868D8: .4byte gSprites
-_080868DC: .4byte gSpriteCoordOffsetY
-_080868E0: .4byte gMapObjects
- thumb_func_end sub_8086870
-
- thumb_func_start sub_80868E4
-sub_80868E4: @ 80868E4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r2, _08086990 @ =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086994 @ =gMapObjects
- adds r6, r0, r1
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086998 @ =gSprites
- adds r5, r0, r1
- ldrh r0, [r4, 0xA]
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r2, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bgt _08086926
- ldrh r1, [r4, 0xC]
- adds r0, r2, r1
- strh r0, [r4, 0xC]
- movs r1, 0xF
- ands r0, r1
- cmp r0, 0
- beq _08086926
- lsls r0, r2, 1
- strh r0, [r4, 0xA]
-_08086926:
- ldrh r2, [r4, 0xE]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08086964
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _08086964
- adds r0, r2, 0x1
- strh r0, [r4, 0xE]
- ldrb r1, [r6, 0x3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r6, 0x3]
- ldrb r1, [r4, 0x10]
- adds r3, r5, 0
- adds r3, 0x42
- lsls r1, 6
- ldrb r2, [r3]
- movs r0, 0x3F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r6]
-_08086964:
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _08086988
- movs r0, 0xD6
- bl PlaySE
- ldrb r0, [r6]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r6]
- movs r0, 0
- strh r0, [r5, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086988:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08086990: .4byte gPlayerAvatar
-_08086994: .4byte gMapObjects
-_08086998: .4byte gSprites
- thumb_func_end sub_80868E4
-
- thumb_func_start sub_808699C
-sub_808699C: @ 808699C
- push {lr}
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- movs r2, 0
- strh r1, [r0, 0x8]
- movs r1, 0x4
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_808699C
-
- thumb_func_start sub_80869B8
-sub_80869B8: @ 80869B8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- ldrh r0, [r4, 0xA]
- negs r2, r0
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080869E0
- lsls r0, r2, 16
- asrs r0, 17
- strh r0, [r4, 0xA]
-_080869E0:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080869EE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080869EE:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80869B8
-
- thumb_func_start sub_80869F8
-sub_80869F8: @ 80869F8
- push {lr}
- ldr r1, _08086A24 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- bl CameraObjectReset1
- bl sub_806451C
- bl InstallCameraPanAheadCallback
- ldr r0, _08086A28 @ =sub_8086774
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08086A24: .4byte gPlayerAvatar
-_08086A28: .4byte sub_8086774
- thumb_func_end sub_80869F8
-
- thumb_func_start sub_8086A2C
-sub_8086A2C: @ 8086A2C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08086A60 @ =sub_8086A68
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08086A64 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- cmp r4, 0x6A
- bne _08086A58
- movs r0, 0x1
- strh r0, [r1, 0xA]
-_08086A58:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08086A60: .4byte sub_8086A68
-_08086A64: .4byte gTasks
- thumb_func_end sub_8086A2C
-
- thumb_func_start sub_8086A68
-sub_8086A68: @ 8086A68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08086A98 @ =gTasks
- adds r4, r1, r0
- ldr r5, _08086A9C @ =gUnknown_0839F2E8
-_08086A7A:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08086A7A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086A98: .4byte gTasks
-_08086A9C: .4byte gUnknown_0839F2E8
- thumb_func_end sub_8086A68
-
- thumb_func_start sub_8086AA0
-sub_8086AA0: @ 8086AA0
- push {r4,lr}
- adds r4, r0, 0
- bl player_bitmagic
- bl CameraObjectReset2
- ldrb r0, [r4, 0xA]
- bl sub_80B4824
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8086AA0
-
- thumb_func_start sub_8086AC0
-sub_8086AC0: @ 8086AC0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08086B28 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086B2C @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08086AEA
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08086B1E
-_08086AEA:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xC]
- strh r1, [r5, 0xE]
- ldrb r0, [r5, 0xA]
- cmp r0, 0
- bne _08086B18
- movs r0, 0x4
- strh r0, [r5, 0x8]
-_08086B18:
- movs r0, 0x50
- bl PlaySE
-_08086B1E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08086B28: .4byte gPlayerAvatar
-_08086B2C: .4byte gMapObjects
- thumb_func_end sub_8086AC0
-
- thumb_func_start sub_8086B30
-sub_8086B30: @ 8086B30
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8086B98
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _08086B4A
- bl sub_8086C30
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086B4A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8086B30
-
- thumb_func_start sub_8086B54
-sub_8086B54: @ 8086B54
- push {lr}
- bl sub_8086B98
- bl sub_8086C40
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8086B54
-
- thumb_func_start sub_8086B64
-sub_8086B64: @ 8086B64
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8086BE4
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _08086B7E
- bl sub_8086C30
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086B7E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8086B64
-
- thumb_func_start sub_8086B88
-sub_8086B88: @ 8086B88
- push {lr}
- bl sub_8086BE4
- bl sub_8086C40
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8086B88
-
- thumb_func_start sub_8086B98
-sub_8086B98: @ 8086B98
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08086BDC @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08086BE0 @ =gSprites
- adds r4, r0
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- movs r0, 0x84
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- movs r0, 0x94
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08086BD6
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
-_08086BD6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086BDC: .4byte gPlayerAvatar
-_08086BE0: .4byte gSprites
- thumb_func_end sub_8086B98
-
- thumb_func_start sub_8086BE4
-sub_8086BE4: @ 8086BE4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08086C28 @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08086C2C @ =gSprites
- adds r4, r0
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- movs r0, 0x7C
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- movs r0, 0x76
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08086C22
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
-_08086C22:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086C28: .4byte gPlayerAvatar
-_08086C2C: .4byte gSprites
- thumb_func_end sub_8086BE4
-
- thumb_func_start sub_8086C30
-sub_8086C30: @ 8086C30
- push {lr}
- bl sub_8053FF8
- bl sub_8080918
- pop {r0}
- bx r0
- thumb_func_end sub_8086C30
-
- thumb_func_start sub_8086C40
-sub_8086C40: @ 8086C40
- push {lr}
- ldr r0, _08086C80 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08086C7C
- bl sub_8054034
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08086C7C
- bl sub_80B483C
- bl warp_in
- ldr r1, _08086C84 @ =gUnknown_0300485C
- ldr r0, _08086C88 @ =sub_8086C94
- str r0, [r1]
- ldr r0, _08086C8C @ =CB2_LoadMap
- bl SetMainCallback2
- ldr r0, _08086C90 @ =sub_8086A68
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08086C7C:
- pop {r0}
- bx r0
- .align 2, 0
-_08086C80: .4byte gPaletteFade
-_08086C84: .4byte gUnknown_0300485C
-_08086C88: .4byte sub_8086C94
-_08086C8C: .4byte CB2_LoadMap
-_08086C90: .4byte sub_8086A68
- thumb_func_end sub_8086C40
-
- thumb_func_start sub_8086C94
-sub_8086C94: @ 8086C94
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- ldr r0, _08086CB4 @ =sub_8086CBC
- movs r1, 0
- bl CreateTask
- ldr r1, _08086CB8 @ =gUnknown_0300485C
- movs r0, 0
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08086CB4: .4byte sub_8086CBC
-_08086CB8: .4byte gUnknown_0300485C
- thumb_func_end sub_8086C94
-
- thumb_func_start sub_8086CBC
-sub_8086CBC: @ 8086CBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08086CEC @ =gTasks
- adds r4, r1, r0
- ldr r5, _08086CF0 @ =gUnknown_0839F300
-_08086CCE:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08086CCE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086CEC: .4byte gTasks
-_08086CF0: .4byte gUnknown_0839F300
- thumb_func_end sub_8086CBC
-
- thumb_func_start sub_8086CF4
-sub_8086CF4: @ 8086CF4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl CameraObjectReset2
- ldr r0, _08086D54 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08086D58 @ =gMapObjects
- adds r4, r0
- movs r0, 0x4
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r1, r0, 24
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x10
- strh r0, [r5, 0xA]
- cmp r1, 0x6B
- bne _08086D5C
- movs r1, 0x1
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _08086D5E
- .align 2, 0
-_08086D54: .4byte gPlayerAvatar
-_08086D58: .4byte gMapObjects
-_08086D5C:
- movs r1, 0
-_08086D5E:
- adds r0, r1, 0
- bl sub_80B4824
- movs r0, 0x1
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8086CF4
-
- thumb_func_start sub_8086D70
-sub_8086D70: @ 8086D70
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08086DA8 @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08086DAC @ =gSprites
- adds r4, r0
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x84
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x94
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08086DA8: .4byte gPlayerAvatar
-_08086DAC: .4byte gSprites
- thumb_func_end sub_8086D70
-
- thumb_func_start sub_8086DB0
-sub_8086DB0: @ 8086DB0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _08086E08 @ =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086E0C @ =gSprites
- adds r5, r0, r1
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x84
- bl Cos
- strh r0, [r5, 0x24]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x94
- bl Sin
- strh r0, [r5, 0x26]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08086DEE
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
-_08086DEE:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08086DFE
- strh r0, [r5, 0x24]
- strh r0, [r5, 0x26]
- movs r0, 0x5
- strh r0, [r4, 0x8]
-_08086DFE:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08086E08: .4byte gPlayerAvatar
-_08086E0C: .4byte gSprites
- thumb_func_end sub_8086DB0
-
- thumb_func_start sub_8086E10
-sub_8086E10: @ 8086E10
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08086E48 @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08086E4C @ =gSprites
- adds r4, r0
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x7C
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x76
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08086E48: .4byte gPlayerAvatar
-_08086E4C: .4byte gSprites
- thumb_func_end sub_8086E10
-
- thumb_func_start sub_8086E50
-sub_8086E50: @ 8086E50
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _08086EA8 @ =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086EAC @ =gSprites
- adds r5, r0, r1
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x7C
- bl Cos
- strh r0, [r5, 0x24]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x76
- bl Sin
- strh r0, [r5, 0x26]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08086E8E
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
-_08086E8E:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08086EA0
- strh r0, [r5, 0x24]
- strh r0, [r5, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08086EA0:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08086EA8: .4byte gPlayerAvatar
-_08086EAC: .4byte gSprites
- thumb_func_end sub_8086E50
-
- thumb_func_start sub_8086EB0
-sub_8086EB0: @ 8086EB0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80B4850
- lsls r0, 24
- cmp r0, 0
- bne _08086ECC
- bl sub_80B483C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- b _08086ECE
-_08086ECC:
- movs r0, 0
-_08086ECE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8086EB0
-
- thumb_func_start sub_8086ED4
-sub_8086ED4: @ 8086ED4
- push {r4,lr}
- ldr r0, _08086F20 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08086F24 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08086F18
- bl CameraObjectReset1
- bl ScriptContext2_Disable
- movs r0, 0x4
- bl GetGoSpeed0AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r0, _08086F28 @ =sub_8086CBC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08086F18:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08086F20: .4byte gPlayerAvatar
-_08086F24: .4byte gMapObjects
-_08086F28: .4byte sub_8086CBC
- thumb_func_end sub_8086ED4
-
- thumb_func_start FldEff_UseWaterfall
-FldEff_UseWaterfall: @ 8086F2C
- push {r4,lr}
- ldr r4, _08086F58 @ =sub_8086F64
- adds r0, r4, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08086F5C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _08086F60 @ =gUnknown_0202FF84
- ldr r2, [r2]
- strh r2, [r1, 0xA]
- bl _call_via_r4
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08086F58: .4byte sub_8086F64
-_08086F5C: .4byte gTasks
-_08086F60: .4byte gUnknown_0202FF84
- thumb_func_end FldEff_UseWaterfall
-
- thumb_func_start sub_8086F64
-sub_8086F64: @ 8086F64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08086FA0 @ =gUnknown_0839F31C
- ldr r2, _08086FA4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08086F76:
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, _08086FA8 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08086FAC @ =gMapObjects
- adds r1, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _08086F76
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08086FA0: .4byte gUnknown_0839F31C
-_08086FA4: .4byte gTasks
-_08086FA8: .4byte gPlayerAvatar
-_08086FAC: .4byte gMapObjects
- thumb_func_end sub_8086F64
-
- thumb_func_start sub_8086FB0
-sub_8086FB0: @ 8086FB0
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, _08086FCC @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08086FCC: .4byte gPlayerAvatar
- thumb_func_end sub_8086FB0
-
- thumb_func_start waterfall_1_do_anim_probably
-waterfall_1_do_anim_probably: @ 8086FD0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl ScriptContext2_Enable
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _08087000
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldr r1, _08087008 @ =gUnknown_0202FF84
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r0, 0x3B
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08087000:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08087008: .4byte gUnknown_0202FF84
- thumb_func_end waterfall_1_do_anim_probably
-
- thumb_func_start waterfall_2_wait_anim_finish_probably
-waterfall_2_wait_anim_finish_probably: @ 808700C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08087026
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- b _08087028
-_08087026:
- movs r0, 0
-_08087028:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end waterfall_2_wait_anim_finish_probably
-
- thumb_func_start sub_8087030
-sub_8087030: @ 8087030
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0x2
- bl GetSimpleGoAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8087030
-
- thumb_func_start sub_8087058
-sub_8087058: @ 8087058
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- bne _0808706E
- movs r0, 0
- b _080870AA
-_0808706E:
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080870A4
- bl ScriptContext2_Disable
- ldr r0, _0808709C @ =gPlayerAvatar
- strb r4, [r0, 0x6]
- ldr r0, _080870A0 @ =sub_8086F64
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0x2B
- bl FieldEffectActiveListRemove
- movs r0, 0
- b _080870AA
- .align 2, 0
-_0808709C: .4byte gPlayerAvatar
-_080870A0: .4byte sub_8086F64
-_080870A4:
- movs r0, 0x3
- strh r0, [r5, 0x8]
- movs r0, 0x1
-_080870AA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8087058
-
- thumb_func_start FldEff_UseDive
-FldEff_UseDive: @ 80870B0
- push {r4,lr}
- ldr r4, _080870E0 @ =Task_Dive
- adds r0, r4, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080870E4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080870E8 @ =gUnknown_0202FF84
- ldr r2, [r3]
- strh r2, [r1, 0x26]
- ldr r2, [r3, 0x4]
- strh r2, [r1, 0x24]
- bl _call_via_r4
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080870E0: .4byte Task_Dive
-_080870E4: .4byte gTasks
-_080870E8: .4byte gUnknown_0202FF84
- thumb_func_end FldEff_UseDive
-
- thumb_func_start Task_Dive
-Task_Dive: @ 80870EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0808711C @ =gUnknown_0839F330
- ldr r2, _08087120 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_080870FE:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080870FE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808711C: .4byte gUnknown_0839F330
-_08087120: .4byte gTasks
- thumb_func_end Task_Dive
-
- thumb_func_start sub_8087124
-sub_8087124: @ 8087124
- ldr r2, _08087134 @ =gPlayerAvatar
- movs r1, 0x1
- strb r1, [r2, 0x6]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- movs r0, 0
- bx lr
- .align 2, 0
-_08087134: .4byte gPlayerAvatar
- thumb_func_end sub_8087124
-
- thumb_func_start dive_2_unknown
-dive_2_unknown: @ 8087138
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, _0808715C @ =gUnknown_0202FF84
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r0, 0x3B
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0808715C: .4byte gUnknown_0202FF84
- thumb_func_end dive_2_unknown
-
- thumb_func_start dive_3_unknown
-dive_3_unknown: @ 8087160
- push {lr}
- sub sp, 0x8
- mov r1, sp
- adds r1, 0x2
- mov r0, sp
- bl PlayerGetDestCoords
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080871A4
- ldr r2, _080871AC @ =gMapObjects
- ldr r0, _080871B0 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1E]
- mov r0, sp
- bl dive_warp
- ldr r0, _080871B4 @ =Task_Dive
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0x2C
- bl FieldEffectActiveListRemove
-_080871A4:
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_080871AC: .4byte gMapObjects
-_080871B0: .4byte gPlayerAvatar
-_080871B4: .4byte Task_Dive
- thumb_func_end dive_3_unknown
-
- thumb_func_start sub_80871B8
-sub_80871B8: @ 80871B8
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080871CC @ =sub_80871D0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080871CC: .4byte sub_80871D0
- thumb_func_end sub_80871B8
-
- thumb_func_start sub_80871D0
-sub_80871D0: @ 80871D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _08087218 @ =gUnknown_0839F33C
- ldr r2, _0808721C @ =gTasks
- ldr r5, _08087220 @ =gPlayerAvatar
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_080871E4:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08087224 @ =gMapObjects
- adds r1, r0
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08087228 @ =gSprites
- adds r2, r0
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _080871E4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08087218: .4byte gUnknown_0839F33C
-_0808721C: .4byte gTasks
-_08087220: .4byte gPlayerAvatar
-_08087224: .4byte gMapObjects
-_08087228: .4byte gSprites
- thumb_func_end sub_80871D0
-
- thumb_func_start sub_808722C
-sub_808722C: @ 808722C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl player_bitmagic
- bl CameraObjectReset2
- movs r0, 0
- bl SetCameraPanningCallback
- ldr r0, _08087260 @ =gPlayerAvatar
- movs r2, 0x1
- strb r2, [r0, 0x6]
- ldrb r0, [r5, 0x3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x3]
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08087260: .4byte gPlayerAvatar
- thumb_func_end sub_808722C
-
- thumb_func_start sub_8087264
-sub_8087264: @ 8087264
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- ldrh r0, [r4, 0xA]
- negs r0, r0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08087290
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08087290:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8087264
-
- thumb_func_start sub_8087298
-sub_8087298: @ 8087298
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0
- strh r0, [r2, 0x26]
- movs r0, 0x1
- strh r0, [r4, 0xE]
- ldr r3, _080872E0 @ =gUnknown_0202FF84
- movs r5, 0x10
- ldrsh r0, [r1, r5]
- str r0, [r3]
- movs r5, 0x12
- ldrsh r0, [r1, r5]
- str r0, [r3, 0x4]
- adds r0, r2, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r3, 0x8]
- ldrb r0, [r2, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r3, 0xC]
- movs r0, 0x32
- bl FieldEffectStart
- movs r0, 0xB2
- bl PlaySE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080872E0: .4byte gUnknown_0202FF84
- thumb_func_end sub_8087298
-
- thumb_func_start sub_80872E4
-sub_80872E4: @ 80872E4
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- adds r5, r2, 0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- ldrh r0, [r4, 0xA]
- negs r2, r0
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x11
- bgt _0808731E
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- bne _08087330
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3
- bgt _08087330
- lsls r0, r2, 1
- b _0808732E
-_0808731E:
- movs r0, 0x4
- ands r1, r0
- cmp r1, 0
- bne _08087330
- lsls r0, r2, 16
- cmp r0, 0
- ble _08087330
- asrs r0, 17
-_0808732E:
- strh r0, [r4, 0xA]
-_08087330:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- ble _0808737C
- adds r0, r5, 0
- adds r0, 0x29
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r2, r1, 17
- negs r2, r2
- movs r7, 0x26
- ldrsh r3, [r5, r7]
- movs r7, 0x22
- ldrsh r0, [r5, r7]
- adds r0, r1
- ldr r1, _08087374 @ =gSpriteCoordOffsetY
- movs r7, 0
- ldrsh r1, [r1, r7]
- adds r0, r1
- asrs r2, 16
- adds r0, r2
- cmn r3, r0
- ble _08087378
- ldrh r0, [r5, 0x26]
- ldrh r1, [r4, 0xE]
- subs r0, r1
- strh r0, [r5, 0x26]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x7
- bgt _0808737C
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _0808737C
- .align 2, 0
-_08087374: .4byte gSpriteCoordOffsetY
-_08087378:
- movs r0, 0x1
- strh r0, [r4, 0x10]
-_0808737C:
- ldrh r2, [r4, 0x12]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080873BA
- movs r7, 0x26
- ldrsh r1, [r5, r7]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080873BA
- adds r0, r2, 0x1
- strh r0, [r4, 0x12]
- ldrb r0, [r6, 0x3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r6, 0x3]
- ldrb r1, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- adds r2, r5, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
-_080873BA:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080873D0
- movs r7, 0x10
- ldrsh r0, [r4, r7]
- cmp r0, 0
- beq _080873D0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080873D0:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80872E4
-
- thumb_func_start sub_80873D8
-sub_80873D8: @ 80873D8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8053FF8
- bl sub_8080918
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80873D8
-
- thumb_func_start sub_80873F4
-sub_80873F4: @ 80873F4
- push {lr}
- ldr r0, _08087434 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808742C
- bl sub_8054034
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808742C
- bl warp_in
- ldr r1, _08087438 @ =gUnknown_0300485C
- ldr r0, _0808743C @ =mapldr_080851BC
- str r0, [r1]
- ldr r0, _08087440 @ =CB2_LoadMap
- bl SetMainCallback2
- ldr r0, _08087444 @ =sub_80871D0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0808742C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08087434: .4byte gPaletteFade
-_08087438: .4byte gUnknown_0300485C
-_0808743C: .4byte mapldr_080851BC
-_08087440: .4byte CB2_LoadMap
-_08087444: .4byte sub_80871D0
- thumb_func_end sub_80873F4
-
- thumb_func_start mapldr_080851BC
-mapldr_080851BC: @ 8087448
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- ldr r0, _08087468 @ =gUnknown_0300485C
- movs r1, 0
- str r1, [r0]
- ldr r0, _0808746C @ =sub_8087470
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08087468: .4byte gUnknown_0300485C
-_0808746C: .4byte sub_8087470
- thumb_func_end mapldr_080851BC
-
- thumb_func_start sub_8087470
-sub_8087470: @ 8087470
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _080874B8 @ =gUnknown_0839F354
- ldr r2, _080874BC @ =gTasks
- ldr r5, _080874C0 @ =gPlayerAvatar
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08087484:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080874C4 @ =gMapObjects
- adds r1, r0
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080874C8 @ =gSprites
- adds r2, r0
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _08087484
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080874B8: .4byte gUnknown_0839F354
-_080874BC: .4byte gTasks
-_080874C0: .4byte gPlayerAvatar
-_080874C4: .4byte gMapObjects
-_080874C8: .4byte gSprites
- thumb_func_end sub_8087470
-
- thumb_func_start sub_80874CC
-sub_80874CC: @ 80874CC
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl CameraObjectReset2
- bl player_bitmagic
- ldr r1, _080874F8 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080874F8: .4byte gPlayerAvatar
- thumb_func_end sub_80874CC
-
- thumb_func_start sub_80874FC
-sub_80874FC: @ 80874FC
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- beq _0808753C
- ldr r1, _08087544 @ =gUnknown_0202FF84
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r5, r2]
- str r0, [r1, 0x4]
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r1, 0x8]
- ldrb r0, [r6, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r1, 0xC]
- movs r0, 0x31
- bl FieldEffectStart
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0808753C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08087544: .4byte gUnknown_0202FF84
- thumb_func_end sub_80874FC
-
- thumb_func_start sub_8087548
-sub_8087548: @ 8087548
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- movs r0, 0xA
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087598 @ =gSprites
- adds r0, r1
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _08087590
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- ldrb r1, [r4, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- bl CameraObjectReset1
- movs r0, 0xAF
- bl PlaySE
- movs r0, 0x4
- bl sub_80608A4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
-_08087590:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08087598: .4byte gSprites
- thumb_func_end sub_8087548
-
- thumb_func_start sub_808759C
-sub_808759C: @ 808759C
- push {lr}
- adds r0, r1, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080875C6
- ldr r1, _080875CC @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- bl sub_806451C
- ldr r0, _080875D0 @ =sub_8087470
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080875C6:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080875CC: .4byte gPlayerAvatar
-_080875D0: .4byte sub_8087470
- thumb_func_end sub_808759C
-
- thumb_func_start FldEff_LavaridgeGymWarp
-FldEff_LavaridgeGymWarp: @ 80875D4
- push {r4,lr}
- ldr r4, _0808762C @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08087630 @ =gFieldEffectObjectTemplatePointers
- adds r0, 0x84
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08087634 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- movs r1, 0x3
- ldrb r3, [r4, 0xC]
- ands r3, r1
- lsls r3, 2
- ldrb r4, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x2
- orrs r1, r3
- strb r1, [r2]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0808762C: .4byte gUnknown_0202FF84
-_08087630: .4byte gFieldEffectObjectTemplatePointers
-_08087634: .4byte gSprites
- thumb_func_end FldEff_LavaridgeGymWarp
-
- thumb_func_start sub_8087638
-sub_8087638: @ 8087638
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08087650
- adds r0, r2, 0
- movs r1, 0x32
- bl FieldEffectStop
-_08087650:
- pop {r0}
- bx r0
- thumb_func_end sub_8087638
-
- thumb_func_start sub_8087654
-sub_8087654: @ 8087654
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08087668 @ =sub_808766C
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08087668: .4byte sub_808766C
- thumb_func_end sub_8087654
-
- thumb_func_start sub_808766C
-sub_808766C: @ 808766C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _080876B4 @ =gUnknown_0839F364
- ldr r2, _080876B8 @ =gTasks
- ldr r5, _080876BC @ =gPlayerAvatar
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08087680:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080876C0 @ =gMapObjects
- adds r1, r0
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _080876C4 @ =gSprites
- adds r2, r0
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _08087680
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080876B4: .4byte gUnknown_0839F364
-_080876B8: .4byte gTasks
-_080876BC: .4byte gPlayerAvatar
-_080876C0: .4byte gMapObjects
-_080876C4: .4byte gSprites
- thumb_func_end sub_808766C
-
- thumb_func_start sub_80876C8
-sub_80876C8: @ 80876C8
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl player_bitmagic
- bl CameraObjectReset2
- ldr r1, _080876F4 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrb r0, [r4, 0x3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x3]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080876F4: .4byte gPlayerAvatar
- thumb_func_end sub_80876C8
-
- thumb_func_start sub_80876F8
-sub_80876F8: @ 80876F8
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0808776C
- ldrh r1, [r5, 0xA]
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- cmp r0, 0x3
- ble _0808774C
- ldr r1, _08087748 @ =gUnknown_0202FF84
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- str r0, [r1, 0x4]
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r1, 0x8]
- ldrb r0, [r6, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r1, 0xC]
- movs r0, 0x31
- bl FieldEffectStart
- strh r0, [r5, 0xA]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _0808776C
- .align 2, 0
-_08087748: .4byte gUnknown_0202FF84
-_0808774C:
- adds r0, r1, 0x1
- strh r0, [r5, 0xA]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetStepInPlaceDelay4AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- movs r0, 0x27
- bl PlaySE
-_0808776C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80876F8
-
- thumb_func_start sub_8087774
-sub_8087774: @ 8087774
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- ldr r2, _080877A8 @ =gSprites
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0808779E
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_0808779E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080877A8: .4byte gSprites
- thumb_func_end sub_8087774
-
- thumb_func_start sub_80877AC
-sub_80877AC: @ 80877AC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x31
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080877CA
- bl sub_8053FF8
- bl sub_8080918
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080877CA:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80877AC
-
- thumb_func_start sub_80877D4
-sub_80877D4: @ 80877D4
- push {lr}
- ldr r0, _08087814 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808780C
- bl sub_8054034
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808780C
- bl warp_in
- ldr r1, _08087818 @ =gUnknown_0300485C
- ldr r0, _0808781C @ =sub_8086748
- str r0, [r1]
- ldr r0, _08087820 @ =CB2_LoadMap
- bl SetMainCallback2
- ldr r0, _08087824 @ =sub_808766C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0808780C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08087814: .4byte gPaletteFade
-_08087818: .4byte gUnknown_0300485C
-_0808781C: .4byte sub_8086748
-_08087820: .4byte CB2_LoadMap
-_08087824: .4byte sub_808766C
- thumb_func_end sub_80877D4
-
- thumb_func_start FldEff_PopOutOfAsh
-FldEff_PopOutOfAsh: @ 8087828
- push {r4,lr}
- ldr r4, _08087880 @ =gUnknown_0202FF84
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08087884 @ =gFieldEffectObjectTemplatePointers
- adds r0, 0x80
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08087888 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- movs r1, 0x3
- ldrb r3, [r4, 0xC]
- ands r3, r1
- lsls r3, 2
- ldrb r4, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x2
- orrs r1, r3
- strb r1, [r2]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08087880: .4byte gUnknown_0202FF84
-_08087884: .4byte gFieldEffectObjectTemplatePointers
-_08087888: .4byte gSprites
- thumb_func_end FldEff_PopOutOfAsh
-
- thumb_func_start sub_808788C
-sub_808788C: @ 808788C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080878A4
- adds r0, r2, 0
- movs r1, 0x31
- bl FieldEffectStop
-_080878A4:
- pop {r0}
- bx r0
- thumb_func_end sub_808788C
-
- thumb_func_start sub_80878A8
-sub_80878A8: @ 80878A8
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r0, _080878C0 @ =sub_80878C4
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080878C0: .4byte sub_80878C4
- thumb_func_end sub_80878A8
-
- thumb_func_start sub_80878C4
-sub_80878C4: @ 80878C4
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080878EC @ =gUnknown_0839F378
- ldr r2, _080878F0 @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080878EC: .4byte gUnknown_0839F378
-_080878F0: .4byte gTasks
- thumb_func_end sub_80878C4
-
- thumb_func_start sub_80878F4
-sub_80878F4: @ 80878F4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x40
- strh r0, [r4, 0x24]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80878F4
-
- thumb_func_start sub_8087914
-sub_8087914: @ 8087914
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _080879B8 @ =gUnknown_0839F380
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldrh r1, [r4, 0x24]
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08087940
- subs r0, r1, 0x1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _08087940
- bl sub_8053FF8
- bl sub_8080918
-_08087940:
- ldr r0, _080879BC @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080879C0 @ =gMapObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08087966
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08087A20
-_08087966:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080879D8
- ldr r0, _080879C4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080879D8
- bl sub_8054034
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080879D8
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetDirection
- bl sub_8053678
- bl warp_in
- ldr r1, _080879C8 @ =gUnknown_0300485C
- ldr r0, _080879CC @ =mapldr_080859D4
- str r0, [r1]
- ldr r0, _080879D0 @ =CB2_LoadMap
- bl SetMainCallback2
- ldr r0, _080879D4 @ =sub_80878C4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _08087A20
- .align 2, 0
-_080879B8: .4byte gUnknown_0839F380
-_080879BC: .4byte gPlayerAvatar
-_080879C0: .4byte gMapObjects
-_080879C4: .4byte gPaletteFade
-_080879C8: .4byte gUnknown_0300485C
-_080879CC: .4byte mapldr_080859D4
-_080879D0: .4byte CB2_LoadMap
-_080879D4: .4byte sub_80878C4
-_080879D8:
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080879EC
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _08087A20
-_080879EC:
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r0, [r0]
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0xB
- bgt _08087A14
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
-_08087A14:
- ldrh r1, [r4, 0xC]
- lsls r1, 16
- asrs r1, 18
- movs r0, 0x8
- asrs r0, r1
- strh r0, [r4, 0xA]
-_08087A20:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8087914
-
- thumb_func_start mapldr_080859D4
-mapldr_080859D4: @ 8087A28
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r1, _08087A64 @ =gUnknown_0300485C
- movs r0, 0
- str r0, [r1]
- ldr r2, _08087A68 @ =gMapObjects
- ldr r0, _08087A6C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldr r0, _08087A70 @ =sub_8087A74
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08087A64: .4byte gUnknown_0300485C
-_08087A68: .4byte gMapObjects
-_08087A6C: .4byte gPlayerAvatar
-_08087A70: .4byte sub_8087A74
- thumb_func_end mapldr_080859D4
-
- thumb_func_start sub_8087A74
-sub_8087A74: @ 8087A74
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08087A9C @ =gUnknown_0839F388
- ldr r2, _08087AA0 @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08087A9C: .4byte gUnknown_0839F388
-_08087AA0: .4byte gTasks
- thumb_func_end sub_8087A74
-
- thumb_func_start sub_8087AA4
-sub_8087AA4: @ 8087AA4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- beq _08087AC2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
-_08087AC2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8087AA4
-
- thumb_func_start sub_8087AC8
-sub_8087AC8: @ 8087AC8
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r1, _08087B4C @ =gUnknown_0839F380
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r0, _08087B50 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087B54 @ =gMapObjects
- adds r6, r0, r1
- ldrh r1, [r5, 0xA]
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _08087AFA
- subs r0, r1, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _08087B8C
-_08087AFA:
- adds r0, r6, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08087B12
- adds r0, r6, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08087BA0
-_08087B12:
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x1F
- ble _08087B5C
- movs r2, 0x26
- ldrsh r4, [r5, r2]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _08087B5C
- ldrb r1, [r6, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r6, 0x1]
- bl ScriptContext2_Disable
- bl sub_806451C
- ldr r0, _08087B58 @ =sub_8087A74
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _08087BA0
- .align 2, 0
-_08087B4C: .4byte gUnknown_0839F380
-_08087B50: .4byte gPlayerAvatar
-_08087B54: .4byte gMapObjects
-_08087B58: .4byte sub_8087A74
-_08087B5C:
- ldrb r0, [r6, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r0, [r0]
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl FieldObjectSetSpecialAnim
- ldrh r1, [r5, 0xC]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0x1F
- bgt _08087B84
- adds r0, r1, 0x1
- strh r0, [r5, 0xC]
-_08087B84:
- ldrh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 18
- strh r0, [r5, 0xA]
-_08087B8C:
- ldrb r2, [r6, 0x1]
- lsls r1, r2, 26
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 5
- subs r0, 0x22
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
-_08087BA0:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8087AC8
-
- thumb_func_start sub_8087BA8
-sub_8087BA8: @ 8087BA8
- push {lr}
- ldr r0, _08087BB8 @ =sub_8087BBC
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08087BB8: .4byte sub_8087BBC
- thumb_func_end sub_8087BA8
-
- thumb_func_start sub_8087BBC
-sub_8087BBC: @ 8087BBC
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08087BE4 @ =gUnknown_0839F390
- ldr r2, _08087BE8 @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08087BE4: .4byte gUnknown_0839F390
-_08087BE8: .4byte gTasks
- thumb_func_end sub_8087BBC
-
- thumb_func_start sub_8087BEC
-sub_8087BEC: @ 8087BEC
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl CameraObjectReset2
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8087BEC
-
- thumb_func_start sub_8087C14
-sub_8087C14: @ 8087C14
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _08087C98 @ =gUnknown_0839F380
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r0, _08087C9C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087CA0 @ =gMapObjects
- adds r5, r0, r1
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08087C46
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _08087C60
-_08087C46:
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
- adds r0, r5, 0
- bl FieldObjectTurn
- movs r0, 0x8
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_08087C60:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- ble _08087C8E
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r1, r0
- bne _08087C8E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x4
- strh r0, [r4, 0xA]
- movs r0, 0x8
- strh r0, [r4, 0xC]
- movs r0, 0x1
- strh r0, [r4, 0xE]
- movs r0, 0x2D
- bl PlaySE
-_08087C8E:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08087C98: .4byte gUnknown_0839F380
-_08087C9C: .4byte gPlayerAvatar
-_08087CA0: .4byte gMapObjects
- thumb_func_end sub_8087C14
-
- thumb_func_start sub_8087CA4
-sub_8087CA4: @ 8087CA4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _08087D68 @ =gUnknown_0839F380
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r2, _08087D6C @ =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087D70 @ =gMapObjects
- adds r3, r0, r1
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087D74 @ =gSprites
- adds r5, r0, r1
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _08087CEE
- movs r0, 0x4
- strh r0, [r4, 0xA]
- ldrb r0, [r3, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
- adds r0, r3, 0
- bl FieldObjectTurn
-_08087CEE:
- ldrh r0, [r5, 0x22]
- ldrh r1, [r4, 0xE]
- subs r0, r1
- strh r0, [r5, 0x22]
- ldrh r1, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- adds r0, r1, r2
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _08087D1A
- movs r0, 0x4
- strh r0, [r4, 0xC]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x7
- bgt _08087D1A
- lsls r0, r1, 1
- strh r0, [r4, 0xE]
-_08087D1A:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- ble _08087D48
- ldrb r1, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x5]
- adds r2, r5, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _08087D48
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
-_08087D48:
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0xA7
- ble _08087D5E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl sub_8053FF8
- bl sub_8080918
-_08087D5E:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08087D68: .4byte gUnknown_0839F380
-_08087D6C: .4byte gPlayerAvatar
-_08087D70: .4byte gMapObjects
-_08087D74: .4byte gSprites
- thumb_func_end sub_8087CA4
-
- thumb_func_start sub_8087D78
-sub_8087D78: @ 8087D78
- push {lr}
- ldr r0, _08087DB8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08087DB4
- bl sub_8054034
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08087DB4
- bl sub_8053570
- bl warp_in
- ldr r0, _08087DBC @ =CB2_LoadMap
- bl SetMainCallback2
- ldr r1, _08087DC0 @ =gUnknown_0300485C
- ldr r0, _08087DC4 @ =mapldr_08085D88
- str r0, [r1]
- ldr r0, _08087DC8 @ =sub_8087BBC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08087DB4:
- pop {r0}
- bx r0
- .align 2, 0
-_08087DB8: .4byte gPaletteFade
-_08087DBC: .4byte CB2_LoadMap
-_08087DC0: .4byte gUnknown_0300485C
-_08087DC4: .4byte mapldr_08085D88
-_08087DC8: .4byte sub_8087BBC
- thumb_func_end sub_8087D78
-
- thumb_func_start mapldr_08085D88
-mapldr_08085D88: @ 8087DCC
- push {lr}
- bl sub_8053E90
- bl pal_fill_for_maplights
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r1, _08087E0C @ =gUnknown_0300485C
- movs r0, 0
- str r0, [r1]
- ldr r2, _08087E10 @ =gMapObjects
- ldr r0, _08087E14 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- bl CameraObjectReset2
- ldr r0, _08087E18 @ =sub_8087E1C
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08087E0C: .4byte gUnknown_0300485C
-_08087E10: .4byte gMapObjects
-_08087E14: .4byte gPlayerAvatar
-_08087E18: .4byte sub_8087E1C
- thumb_func_end mapldr_08085D88
-
- thumb_func_start sub_8087E1C
-sub_8087E1C: @ 8087E1C
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08087E44 @ =gUnknown_0839F3A0
- ldr r2, _08087E48 @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08087E44: .4byte gUnknown_0839F3A0
-_08087E48: .4byte gTasks
- thumb_func_end sub_8087E1C
-
- thumb_func_start sub_8087E4C
-sub_8087E4C: @ 8087E4C
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- beq _08087EC2
- ldr r5, _08087EC8 @ =gPlayerAvatar
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08087ECC @ =gSprites
- adds r2, r0
- adds r0, r2, 0
- adds r0, 0x29
- movs r4, 0
- ldrsb r4, [r0, r4]
- lsls r0, r4, 17
- negs r0, r0
- ldrh r1, [r2, 0x22]
- ldr r3, _08087ED0 @ =gSpriteCoordOffsetY
- adds r1, r4
- ldrh r3, [r3]
- adds r1, r3
- asrs r0, 16
- adds r0, r1
- negs r0, r0
- strh r0, [r2, 0x26]
- ldr r3, _08087ED4 @ =gMapObjects
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r3, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r3
- strb r0, [r1, 0x1]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- movs r0, 0x8
- strh r0, [r6, 0xA]
- movs r0, 0x1
- strh r0, [r6, 0xC]
- adds r2, 0x42
- ldrb r0, [r2]
- lsrs r0, 6
- strh r0, [r6, 0x24]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- movs r0, 0x2D
- bl PlaySE
-_08087EC2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08087EC8: .4byte gPlayerAvatar
-_08087ECC: .4byte gSprites
-_08087ED0: .4byte gSpriteCoordOffsetY
-_08087ED4: .4byte gMapObjects
- thumb_func_end sub_8087E4C
-
- thumb_func_start sub_8087ED8
-sub_8087ED8: @ 8087ED8
- push {r4-r7,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _08087F40 @ =gUnknown_0839F380
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r2, _08087F44 @ =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087F48 @ =gMapObjects
- adds r6, r0, r1
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08087F4C @ =gSprites
- adds r5, r0, r1
- ldrh r0, [r4, 0xA]
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- blt _08087F50
- ldrh r1, [r4, 0x22]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08087F76
- adds r0, r1, 0x1
- strh r0, [r4, 0x22]
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r6]
- ldrh r1, [r4, 0x24]
- adds r3, r5, 0
- adds r3, 0x42
- lsls r1, 6
- ldrb r2, [r3]
- movs r0, 0x3F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _08087F76
- .align 2, 0
-_08087F40: .4byte gUnknown_0839F380
-_08087F44: .4byte gPlayerAvatar
-_08087F48: .4byte gMapObjects
-_08087F4C: .4byte gSprites
-_08087F50:
- ldrb r1, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x5]
- adds r2, r5, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _08087F76
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
-_08087F76:
- ldrh r2, [r5, 0x26]
- movs r3, 0x26
- ldrsh r1, [r5, r3]
- movs r0, 0x30
- negs r0, r0
- cmp r1, r0
- blt _08087F9A
- ldrh r1, [r4, 0xA]
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- ble _08087F9A
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _08087F9A
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
-_08087F9A:
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- movs r7, 0
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _08087FBC
- movs r0, 0x4
- strh r0, [r4, 0xC]
- ldrb r0, [r6, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
- adds r0, r6, 0
- bl FieldObjectTurn
-_08087FBC:
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r0, 0
- blt _08087FD2
- strh r7, [r5, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- strh r0, [r4, 0xA]
- strh r7, [r4, 0xC]
-_08087FD2:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8087ED8
-
- thumb_func_start sub_8087FDC
-sub_8087FDC: @ 8087FDC
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _08088058 @ =gUnknown_0839F380
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- ldr r0, _0808805C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088060 @ =gMapObjects
- adds r5, r0, r1
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _08088050
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- add r0, sp
- ldrb r1, [r0]
- adds r0, r5, 0
- bl FieldObjectTurn
- movs r0, 0x8
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08088050
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r1, r0
- bne _08088050
- bl ScriptContext2_Disable
- bl CameraObjectReset1
- bl sub_806451C
- ldr r0, _08088064 @ =sub_8087E1C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08088050:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088058: .4byte gUnknown_0839F380
-_0808805C: .4byte gPlayerAvatar
-_08088060: .4byte gMapObjects
-_08088064: .4byte sub_8087E1C
- thumb_func_end sub_8087FDC
-
- thumb_func_start FldEff_FieldMoveShowMon
-FldEff_FieldMoveShowMon: @ 8088068
- push {r4,lr}
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08088088
- ldr r0, _08088084 @ =sub_8088120
- b _0808808A
- .align 2, 0
-_08088084: .4byte sub_8088120
-_08088088:
- ldr r0, _080880B8 @ =sub_808847C
-_0808808A:
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080880BC @ =gUnknown_0202FF84
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- ldr r2, [r2, 0x8]
- bl sub_8088830
- ldr r2, _080880C0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x26]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080880B8: .4byte sub_808847C
-_080880BC: .4byte gUnknown_0202FF84
-_080880C0: .4byte gTasks
- thumb_func_end FldEff_FieldMoveShowMon
-
- thumb_func_start FldEff_FieldMoveShowMonInit
-FldEff_FieldMoveShowMonInit: @ 80880C4
- push {r4-r6,lr}
- ldr r5, _08088118 @ =gUnknown_0202FF84
- ldr r0, [r5]
- movs r6, 0x80
- lsls r6, 24
- ands r6, r0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _0808811C @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- str r0, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [r5, 0x4]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [r5, 0x8]
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- movs r0, 0x6
- bl FieldEffectStart
- movs r0, 0x3B
- bl FieldEffectActiveListRemove
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08088118: .4byte gUnknown_0202FF84
-_0808811C: .4byte gPlayerParty
- thumb_func_end FldEff_FieldMoveShowMonInit
-
- thumb_func_start sub_8088120
-sub_8088120: @ 8088120
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08088148 @ =gUnknown_0839F3AC
- ldr r2, _0808814C @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08088148: .4byte gUnknown_0839F3AC
-_0808814C: .4byte gTasks
- thumb_func_end sub_8088120
-
- thumb_func_start sub_8088150
-sub_8088150: @ 8088150
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080881A0 @ =REG_WININ
- ldrh r0, [r6]
- strh r0, [r4, 0x1E]
- ldr r5, _080881A4 @ =REG_WINOUT
- ldrh r0, [r5]
- strh r0, [r4, 0x20]
- adds r0, r4, 0
- adds r0, 0x22
- ldr r1, _080881A8 @ =gMain
- ldr r1, [r1, 0xC]
- bl StoreWordInTwoHalfwords
- ldr r1, _080881AC @ =0x0000f0f1
- strh r1, [r4, 0xA]
- ldr r0, _080881B0 @ =0x00005051
- strh r0, [r4, 0xC]
- movs r0, 0x3F
- strh r0, [r4, 0xE]
- movs r0, 0x3E
- strh r0, [r4, 0x10]
- ldr r0, _080881B4 @ =REG_WIN0H
- strh r1, [r0]
- ldr r1, _080881B8 @ =REG_WIN0V
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r0, [r4, 0xE]
- strh r0, [r6]
- ldrh r0, [r4, 0x10]
- strh r0, [r5]
- ldr r0, _080881BC @ =sub_80883DC
- bl SetVBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080881A0: .4byte REG_WININ
-_080881A4: .4byte REG_WINOUT
-_080881A8: .4byte gMain
-_080881AC: .4byte 0x0000f0f1
-_080881B0: .4byte 0x00005051
-_080881B4: .4byte REG_WIN0H
-_080881B8: .4byte REG_WIN0V
-_080881BC: .4byte sub_80883DC
- thumb_func_end sub_8088150
-
- thumb_func_start sub_80881C0
-sub_80881C0: @ 80881C0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _08088218 @ =REG_BG0CNT
- ldrh r1, [r0]
- lsrs r1, 2
- lsls r1, 30
- lsrs r1, 16
- ldrh r4, [r0]
- lsrs r4, 8
- lsls r4, 27
- lsrs r4, 16
- ldr r0, _0808821C @ =gFieldMoveStreaksTiles
- movs r5, 0xC0
- lsls r5, 19
- adds r1, r5
- movs r2, 0x80
- lsls r2, 1
- bl CpuSet
- movs r0, 0
- str r0, [sp]
- adds r5, r4, r5
- ldr r2, _08088220 @ =0x05000200
- mov r0, sp
- adds r1, r5, 0
- bl CpuSet
- ldr r0, _08088224 @ =gFieldMoveStreaksPalette
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r4, 0
- bl sub_808843C
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08088218: .4byte REG_BG0CNT
-_0808821C: .4byte gFieldMoveStreaksTiles
-_08088220: .4byte 0x05000200
-_08088224: .4byte gFieldMoveStreaksPalette
- thumb_func_end sub_80881C0
-
- thumb_func_start sub_8088228
-sub_8088228: @ 8088228
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x12]
- subs r0, 0x10
- strh r0, [r3, 0x12]
- ldrh r6, [r3, 0xA]
- ldrh r2, [r3, 0xC]
- movs r7, 0xFF
- lsrs r1, r6, 8
- subs r1, 0x10
- lsls r1, 16
- lsrs r0, r2, 8
- subs r0, 0x2
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r7, 0
- ands r0, r2
- adds r5, r0, 0x2
- lsrs r2, r1, 16
- cmp r1, 0
- bge _08088254
- movs r2, 0
-_08088254:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0x27
- bgt _0808825E
- movs r4, 0x28
-_0808825E:
- cmp r5, 0x78
- ble _08088264
- movs r5, 0x78
-_08088264:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 8
- adds r0, r7, 0
- ands r0, r6
- orrs r1, r0
- strh r1, [r3, 0xA]
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r4, 8
- adds r1, r5, 0
- orrs r0, r1
- strh r0, [r3, 0xC]
- cmp r2, 0
- bne _080882A4
- cmp r4, 0x28
- bne _080882A4
- cmp r1, 0x78
- bne _080882A4
- ldr r2, _080882AC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080882B0 @ =sub_8088890
- str r1, [r0]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_080882A4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080882AC: .4byte gSprites
-_080882B0: .4byte sub_8088890
- thumb_func_end sub_8088228
-
- thumb_func_start sub_80882B4
-sub_80882B4: @ 80882B4
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x12]
- subs r0, 0x10
- strh r0, [r3, 0x12]
- ldr r2, _080882E0 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3C
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080882DA
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_080882DA:
- pop {r0}
- bx r0
- .align 2, 0
-_080882E0: .4byte gSprites
- thumb_func_end sub_80882B4
-
- thumb_func_start sub_80882E4
-sub_80882E4: @ 80882E4
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x12]
- subs r0, 0x10
- strh r0, [r3, 0x12]
- ldrh r2, [r3, 0xC]
- lsls r1, r2, 16
- movs r0, 0xFF
- asrs r1, 24
- adds r1, 0x6
- lsls r1, 16
- ands r0, r2
- subs r0, 0x6
- lsls r0, 16
- lsrs r2, r0, 16
- lsrs r4, r1, 16
- asrs r1, 16
- cmp r1, 0x50
- ble _0808830C
- movs r4, 0x50
-_0808830C:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x50
- bgt _08088316
- movs r2, 0x51
-_08088316:
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r0, 8
- lsls r2, 16
- asrs r2, 16
- orrs r1, r2
- strh r1, [r3, 0xC]
- cmp r0, 0x50
- bne _08088332
- cmp r2, 0x51
- bne _08088332
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_08088332:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80882E4
-
- thumb_func_start sub_8088338
-sub_8088338: @ 8088338
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _08088378 @ =REG_BG0CNT
- ldrh r1, [r0]
- lsrs r1, 8
- lsls r1, 27
- lsrs r1, 16
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC0
- lsls r0, 19
- adds r1, r0
- ldr r2, _0808837C @ =0x05000200
- mov r0, sp
- bl CpuSet
- movs r0, 0xF1
- strh r0, [r4, 0xA]
- movs r0, 0xA1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x1E]
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088378: .4byte REG_BG0CNT
-_0808837C: .4byte 0x05000200
- thumb_func_end sub_8088338
-
- thumb_func_start sub_8088380
-sub_8088380: @ 8088380
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r0, 0x22
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp]
- bl SetVBlankCallback
- ldr r4, _080883D0 @ =gWindowConfig_81E6CE4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080883D4 @ =gSprites
- adds r0, r1
- bl FreeResourcesAndDestroySprite
- movs r0, 0x6
- bl FieldEffectActiveListRemove
- ldr r0, _080883D8 @ =sub_8088120
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080883D0: .4byte gWindowConfig_81E6CE4
-_080883D4: .4byte gSprites
-_080883D8: .4byte sub_8088120
- thumb_func_end sub_8088380
-
- thumb_func_start sub_80883DC
-sub_80883DC: @ 80883DC
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08088430 @ =sub_8088120
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _08088434 @ =gTasks
- adds r4, r0
- adds r0, r4, 0
- adds r0, 0x22
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp]
- bl _call_via_r0
- ldr r1, _08088438 @ =REG_WIN0H
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- adds r1, 0x4
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- adds r1, 0x4
- ldrh r0, [r4, 0xE]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x10]
- strh r0, [r1]
- subs r1, 0x3A
- ldrh r0, [r4, 0x12]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x14]
- strh r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088430: .4byte sub_8088120
-_08088434: .4byte gTasks
-_08088438: .4byte REG_WIN0H
- thumb_func_end sub_80883DC
-
- thumb_func_start sub_808843C
-sub_808843C: @ 808843C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08088470 @ =0x06000140
- adds r2, r0, r1
- movs r1, 0
- ldr r5, _08088474 @ =gFieldMoveStreaksTilemap
- movs r0, 0xF0
- lsls r0, 8
- adds r4, r0, 0
- ldr r3, _08088478 @ =0x0000013f
-_08088452:
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- orrs r0, r4
- strh r0, [r2]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, 0x2
- cmp r1, r3
- bls _08088452
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088470: .4byte 0x06000140
-_08088474: .4byte gFieldMoveStreaksTilemap
-_08088478: .4byte 0x0000013f
- thumb_func_end sub_808843C
-
- thumb_func_start sub_808847C
-sub_808847C: @ 808847C
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080884A4 @ =gUnknown_0839F3C8
- ldr r2, _080884A8 @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080884A4: .4byte gUnknown_0839F3C8
-_080884A8: .4byte gTasks
- thumb_func_end sub_808847C
-
- thumb_func_start sub_80884AC
-sub_80884AC: @ 80884AC
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080884DC @ =REG_BG0HOFS
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- adds r0, r4, 0
- adds r0, 0x22
- ldr r1, _080884E0 @ =gMain
- ldr r1, [r1, 0xC]
- bl StoreWordInTwoHalfwords
- ldr r0, _080884E4 @ =sub_80886B0
- bl SetVBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080884DC: .4byte REG_BG0HOFS
-_080884E0: .4byte gMain
-_080884E4: .4byte sub_80886B0
- thumb_func_end sub_80884AC
-
- thumb_func_start sub_80884E8
-sub_80884E8: @ 80884E8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _08088544 @ =REG_BG0CNT
- ldrh r1, [r0]
- lsrs r1, 2
- lsls r1, 30
- lsrs r1, 16
- ldrh r4, [r0]
- lsrs r4, 8
- lsls r4, 27
- lsrs r4, 16
- movs r0, 0
- mov r8, r0
- strh r4, [r6, 0x20]
- ldr r0, _08088548 @ =gDarknessFieldMoveStreaksTiles
- movs r5, 0xC0
- lsls r5, 19
- adds r1, r5
- movs r2, 0x40
- bl CpuSet
- mov r0, r8
- str r0, [sp]
- adds r4, r5
- ldr r2, _0808854C @ =0x05000200
- mov r0, sp
- adds r1, r4, 0
- bl CpuSet
- ldr r0, _08088550 @ =gDarknessFieldMoveStreaksPalette
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08088544: .4byte REG_BG0CNT
-_08088548: .4byte gDarknessFieldMoveStreaksTiles
-_0808854C: .4byte 0x05000200
-_08088550: .4byte gDarknessFieldMoveStreaksPalette
- thumb_func_end sub_80884E8
-
- thumb_func_start sub_8088554
-sub_8088554: @ 8088554
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8088708
- lsls r0, 24
- cmp r0, 0
- beq _0808858A
- ldr r1, _08088598 @ =REG_WIN1H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _0808859C @ =0x00002878
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080885A0 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080885A4 @ =sub_8088890
- str r1, [r0]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0808858A:
- adds r0, r4, 0
- bl sub_80886F8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088598: .4byte REG_WIN1H
-_0808859C: .4byte 0x00002878
-_080885A0: .4byte gSprites
-_080885A4: .4byte sub_8088890
- thumb_func_end sub_8088554
-
- thumb_func_start sub_80885A8
-sub_80885A8: @ 80885A8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80886F8
- ldr r2, _080885D4 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3C
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080885CC
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080885CC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080885D4: .4byte gSprites
- thumb_func_end sub_80885A8
-
- thumb_func_start sub_80885D8
-sub_80885D8: @ 80885D8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80886F8
- ldrh r1, [r4, 0xA]
- movs r0, 0x7
- ands r0, r1
- movs r1, 0
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- ldr r0, _08088604 @ =REG_WIN1H
- ldr r2, _08088608 @ =0x0000ffff
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088604: .4byte REG_WIN1H
-_08088608: .4byte 0x0000ffff
- thumb_func_end sub_80885D8
-
- thumb_func_start sub_808860C
-sub_808860C: @ 808860C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80886F8
- adds r0, r4, 0
- bl sub_80887C0
- lsls r0, 24
- cmp r0, 0
- beq _08088626
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08088626:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808860C
-
- thumb_func_start sub_808862C
-sub_808862C: @ 808862C
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, _0808869C @ =REG_BG0CNT
- ldrh r1, [r0]
- lsrs r1, 8
- lsls r1, 27
- lsrs r1, 16
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC0
- lsls r0, 19
- adds r1, r0
- ldr r2, _080886A0 @ =0x05000200
- mov r0, sp
- bl CpuSet
- adds r0, r5, 0
- adds r0, 0x22
- add r1, sp, 0x4
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp, 0x4]
- bl SetVBlankCallback
- ldr r4, _080886A4 @ =gWindowConfig_81E6CE4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080886A8 @ =gSprites
- adds r0, r1
- bl FreeResourcesAndDestroySprite
- movs r0, 0x6
- bl FieldEffectActiveListRemove
- ldr r0, _080886AC @ =sub_808847C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808869C: .4byte REG_BG0CNT
-_080886A0: .4byte 0x05000200
-_080886A4: .4byte gWindowConfig_81E6CE4
-_080886A8: .4byte gSprites
-_080886AC: .4byte sub_808847C
- thumb_func_end sub_808862C
-
- thumb_func_start sub_80886B0
-sub_80886B0: @ 80886B0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080886EC @ =sub_808847C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080886F0 @ =gTasks
- adds r4, r0
- adds r0, r4, 0
- adds r0, 0x22
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp]
- bl _call_via_r0
- ldr r1, _080886F4 @ =REG_BG0HOFS
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080886EC: .4byte sub_808847C
-_080886F0: .4byte gTasks
-_080886F4: .4byte REG_BG0HOFS
- thumb_func_end sub_80886B0
-
- thumb_func_start sub_80886F8
-sub_80886F8: @ 80886F8
- ldrh r1, [r0, 0xA]
- subs r1, 0x10
- strh r1, [r0, 0xA]
- ldrh r1, [r0, 0xE]
- adds r1, 0x10
- strh r1, [r0, 0xE]
- bx lr
- thumb_func_end sub_80886F8
-
- thumb_func_start sub_8088708
-sub_8088708: @ 8088708
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r2, [r5, 0x10]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1F
- ble _08088724
- movs r0, 0x1
- b _080887A8
-_08088724:
- ldrh r0, [r5, 0xE]
- lsls r0, 16
- asrs r3, r0, 19
- movs r1, 0x1F
- ands r3, r1
- movs r4, 0x10
- ldrsh r0, [r5, r4]
- cmp r3, r0
- blt _080887A6
- movs r0, 0x20
- subs r3, r0, r3
- ands r3, r1
- subs r0, r2
- mov r12, r0
- mov r7, r12
- ands r7, r1
- mov r12, r7
- ldrh r0, [r5, 0x20]
- ldr r1, _080887B8 @ =0x06000140
- adds r1, r0
- mov r8, r1
- movs r4, 0
- ldr r7, _080887BC @ =gDarknessFieldMoveStreaksTilemap
- mov r10, r7
- movs r0, 0xF0
- lsls r0, 8
- mov r9, r0
- adds r1, r3, 0x1
- movs r0, 0x1F
- ands r1, r0
- str r1, [sp]
- mov r6, r12
- adds r6, 0x1
- ands r6, r0
-_08088768:
- lsls r1, r4, 5
- adds r2, r1, r3
- lsls r2, 1
- add r2, r8
- mov r7, r12
- adds r0, r7, r1
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- mov r7, r9
- orrs r0, r7
- strh r0, [r2]
- ldr r0, [sp]
- adds r2, r1, r0
- lsls r2, 1
- add r2, r8
- adds r1, r6, r1
- lsls r1, 1
- add r1, r10
- ldrh r0, [r1]
- mov r1, r9
- orrs r0, r1
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x9
- bls _08088768
- ldrh r0, [r5, 0x10]
- adds r0, 0x2
- strh r0, [r5, 0x10]
-_080887A6:
- movs r0, 0
-_080887A8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080887B8: .4byte 0x06000140
-_080887BC: .4byte gDarknessFieldMoveStreaksTilemap
- thumb_func_end sub_8088708
-
- thumb_func_start sub_80887C0
-sub_80887C0: @ 80887C0
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1F
- ble _080887D0
- movs r0, 0x1
- b _08088824
-_080887D0:
- ldrh r0, [r5, 0xE]
- lsls r0, 16
- asrs r0, 19
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r2, r0
- blt _08088822
- ldrh r0, [r5, 0xA]
- lsls r0, 16
- asrs r2, r0, 19
- movs r0, 0x1F
- ands r2, r0
- ldrh r0, [r5, 0x20]
- ldr r1, _0808882C @ =0x06000140
- adds r6, r0, r1
- movs r3, 0
- movs r0, 0xF0
- lsls r0, 8
- adds r7, r0, 0
- adds r4, r2, 0x1
- movs r0, 0x1F
- ands r4, r0
-_08088800:
- lsls r0, r3, 5
- adds r1, r0, r2
- lsls r1, 1
- adds r1, r6
- strh r7, [r1]
- adds r0, r4
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bls _08088800
- ldrh r0, [r5, 0x10]
- adds r0, 0x2
- strh r0, [r5, 0x10]
-_08088822:
- movs r0, 0
-_08088824:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0808882C: .4byte 0x06000140
- thumb_func_end sub_80887C0
-
- thumb_func_start sub_8088830
-sub_8088830: @ 8088830
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- movs r5, 0x80
- lsls r5, 24
- ands r5, r6
- lsrs r5, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _08088884 @ =0x7fffffff
- ands r6, r0
- lsls r0, r6, 16
- lsrs r0, 16
- movs r3, 0xA0
- lsls r3, 1
- movs r4, 0x50
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- bl CreateMonSprite_FieldMove
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, _08088888 @ =gSprites
- adds r2, r1
- ldr r1, _0808888C @ =SpriteCallbackDummy
- str r1, [r2, 0x1C]
- ldrb r3, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- strb r1, [r2, 0x5]
- strh r6, [r2, 0x2E]
- strh r5, [r2, 0x3A]
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08088884: .4byte 0x7fffffff
-_08088888: .4byte gSprites
-_0808888C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8088830
-
- thumb_func_start sub_8088890
-sub_8088890: @ 8088890
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x20]
- subs r0, 0x14
- strh r0, [r1, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- bgt _080888D0
- movs r0, 0x78
- strh r0, [r1, 0x20]
- movs r0, 0x1E
- strh r0, [r1, 0x30]
- ldr r0, _080888C4 @ =sub_80888D4
- str r0, [r1, 0x1C]
- movs r2, 0x3A
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080888C8
- ldrh r0, [r1, 0x2E]
- movs r1, 0
- movs r2, 0x7D
- movs r3, 0xA
- bl PlayCry2
- b _080888D0
- .align 2, 0
-_080888C4: .4byte sub_80888D4
-_080888C8:
- ldrh r0, [r1, 0x2E]
- movs r1, 0
- bl PlayCry1
-_080888D0:
- pop {r0}
- bx r0
- thumb_func_end sub_8088890
-
- thumb_func_start sub_80888D4
-sub_80888D4: @ 80888D4
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080888E8
- ldr r0, _080888EC @ =sub_80888F0
- str r0, [r1, 0x1C]
-_080888E8:
- pop {r0}
- bx r0
- .align 2, 0
-_080888EC: .4byte sub_80888F0
- thumb_func_end sub_80888D4
-
- thumb_func_start sub_80888F0
-sub_80888F0: @ 80888F0
- push {lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x20]
- movs r0, 0x20
- ldrsh r1, [r2, r0]
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- bge _08088908
- movs r0, 0x1
- strh r0, [r2, 0x3C]
- b _0808890E
-_08088908:
- adds r0, r3, 0
- subs r0, 0x14
- strh r0, [r2, 0x20]
-_0808890E:
- pop {r0}
- bx r0
- thumb_func_end sub_80888F0
-
- thumb_func_start FldEff_UseSurf
-FldEff_UseSurf: @ 8088914
- push {lr}
- ldr r0, _08088944 @ =sub_8088954
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08088948 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0808894C @ =gUnknown_0202FF84
- ldr r0, [r0]
- strh r0, [r1, 0x26]
- bl sav1_reset_battle_music_maybe
- ldr r0, _08088950 @ =0x0000016d
- bl sub_8053FB0
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08088944: .4byte sub_8088954
-_08088948: .4byte gTasks
-_0808894C: .4byte gUnknown_0202FF84
-_08088950: .4byte 0x0000016d
- thumb_func_end FldEff_UseSurf
-
- thumb_func_start sub_8088954
-sub_8088954: @ 8088954
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0808897C @ =gUnknown_0839F3E4
- ldr r2, _08088980 @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_0808897C: .4byte gUnknown_0839F3E4
-_08088980: .4byte gTasks
- thumb_func_end sub_8088954
-
- thumb_func_start sub_8088984
-sub_8088984: @ 8088984
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- bl player_bitmagic
- ldr r5, _080889DC @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r5, 0x6]
- movs r0, 0x8
- bl SetPlayerAvatarStateMask
- adds r6, r4, 0
- adds r6, 0xA
- movs r0, 0xC
- adds r0, r4
- mov r8, r0
- adds r0, r6, 0
- mov r1, r8
- bl PlayerGetDestCoords
- ldr r2, _080889E0 @ =gMapObjects
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsrs r0, 4
- adds r1, r6, 0
- mov r2, r8
- bl MoveCoords
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080889DC: .4byte gPlayerAvatar
-_080889E0: .4byte gMapObjects
- thumb_func_end sub_8088984
-
- thumb_func_start sub_80889E4
-sub_80889E4: @ 80889E4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08088A28 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088A2C @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08088A0E
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08088A20
-_08088A0E:
- bl sub_8059BF4
- adds r0, r4, 0
- movs r1, 0x39
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_08088A20:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088A28: .4byte gPlayerAvatar
-_08088A2C: .4byte gMapObjects
- thumb_func_end sub_80889E4
-
- thumb_func_start sub_8088A30
-sub_8088A30: @ 8088A30
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08088A6C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088A70 @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- beq _08088A66
- ldr r2, _08088A74 @ =gUnknown_0202FF84
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x3B
- bl FieldEffectStart
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08088A66:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088A6C: .4byte gPlayerAvatar
-_08088A70: .4byte gMapObjects
-_08088A74: .4byte gUnknown_0202FF84
- thumb_func_end sub_8088A30
-
- thumb_func_start sub_8088A78
-sub_8088A78: @ 8088A78
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08088AE2
- ldr r5, _08088AE8 @ =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08088AEC @ =gMapObjects
- adds r4, r0
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl sub_80608D0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r1, _08088AF0 @ =gUnknown_0202FF84
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- str r0, [r1]
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- str r0, [r1, 0x4]
- ldrb r0, [r5, 0x5]
- str r0, [r1, 0x8]
- movs r0, 0x8
- bl FieldEffectStart
- strb r0, [r4, 0x1A]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_08088AE2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08088AE8: .4byte gPlayerAvatar
-_08088AEC: .4byte gMapObjects
-_08088AF0: .4byte gUnknown_0202FF84
- thumb_func_end sub_8088A78
-
- thumb_func_start sub_8088AF4
-sub_8088AF4: @ 8088AF4
- push {r4,r5,lr}
- ldr r5, _08088B5C @ =gPlayerAvatar
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088B60 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08088B54
- movs r0, 0
- strb r0, [r5, 0x6]
- ldrb r1, [r5]
- movs r0, 0xDF
- ands r0, r1
- strb r0, [r5]
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_8127ED0
- bl sub_806451C
- bl ScriptContext2_Disable
- movs r0, 0x9
- bl FieldEffectActiveListRemove
- ldr r0, _08088B64 @ =sub_8088954
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08088B54:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088B5C: .4byte gPlayerAvatar
-_08088B60: .4byte gMapObjects
-_08088B64: .4byte sub_8088954
- thumb_func_end sub_8088AF4
-
- thumb_func_start FldEff_NPCFlyOut
-FldEff_NPCFlyOut: @ 8088B68
- push {r4,lr}
- ldr r0, _08088BB4 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x68]
- movs r1, 0x78
- movs r2, 0
- movs r3, 0x1
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- ldr r0, _08088BB8 @ =gSprites
- adds r2, r0
- ldrb r1, [r2, 0x5]
- movs r0, 0xF
- ands r0, r1
- movs r1, 0xD
- negs r1, r1
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, _08088BBC @ =sub_8088BC4
- str r0, [r2, 0x1C]
- ldr r0, _08088BC0 @ =gUnknown_0202FF84
- ldr r0, [r0]
- strh r0, [r2, 0x30]
- movs r0, 0x9E
- bl PlaySE
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08088BB4: .4byte gFieldEffectObjectTemplatePointers
-_08088BB8: .4byte gSprites
-_08088BBC: .4byte sub_8088BC4
-_08088BC0: .4byte gUnknown_0202FF84
- thumb_func_end FldEff_NPCFlyOut
-
- thumb_func_start sub_8088BC4
-sub_8088BC4: @ 8088BC4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x8C
- bl Cos
- movs r5, 0
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x48
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08088C26
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08088C3C @ =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r1, 0x22]
- strh r5, [r1, 0x24]
- strh r5, [r1, 0x26]
-_08088C26:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _08088C36
- adds r0, r4, 0
- movs r1, 0x1E
- bl FieldEffectStop
-_08088C36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088C3C: .4byte gSprites
- thumb_func_end sub_8088BC4
-
- thumb_func_start FldEff_UseFly
-FldEff_UseFly: @ 8088C40
- push {lr}
- ldr r0, _08088C64 @ =sub_8088C70
- movs r1, 0xFE
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08088C68 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _08088C6C @ =gUnknown_0202FF84
- ldr r0, [r0]
- strh r0, [r1, 0xA]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08088C64: .4byte sub_8088C70
-_08088C68: .4byte gTasks
-_08088C6C: .4byte gUnknown_0202FF84
- thumb_func_end FldEff_UseFly
-
- thumb_func_start sub_8088C70
-sub_8088C70: @ 8088C70
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08088C98 @ =gUnknown_0839F3F8
- ldr r2, _08088C9C @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08088C98: .4byte gUnknown_0839F3F8
-_08088C9C: .4byte gTasks
- thumb_func_end sub_8088C70
-
- thumb_func_start sub_8088CA0
-sub_8088CA0: @ 8088CA0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _08088CF0 @ =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088CF4 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08088CCA
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08088CE8
-_08088CCA:
- ldrb r0, [r6]
- strh r0, [r5, 0x26]
- movs r0, 0x1
- strb r0, [r6, 0x6]
- bl SetPlayerAvatarStateMask
- bl sub_8059BF4
- adds r0, r4, 0
- movs r1, 0x39
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_08088CE8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08088CF0: .4byte gPlayerAvatar
-_08088CF4: .4byte gMapObjects
- thumb_func_end sub_8088CA0
-
- thumb_func_start sub_8088CF8
-sub_8088CF8: @ 8088CF8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08088D30 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088D34 @ =gMapObjects
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08088D28
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r1, _08088D38 @ =gUnknown_0202FF84
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r0, 0x3B
- bl FieldEffectStart
-_08088D28:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088D30: .4byte gPlayerAvatar
-_08088D34: .4byte gMapObjects
-_08088D38: .4byte gUnknown_0202FF84
- thumb_func_end sub_8088CF8
-
- thumb_func_start sub_8088D3C
-sub_8088D3C: @ 8088D3C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08088D84
- ldr r0, _08088D8C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088D90 @ =gMapObjects
- adds r5, r0, r1
- ldrh r1, [r4, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08088D74
- ldrb r0, [r5, 0x1A]
- movs r1, 0x2
- bl sub_8127ED0
- ldrb r0, [r5, 0x1A]
- movs r1, 0
- bl sub_8127EFC
-_08088D74:
- bl sub_8088F60
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08088D84:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088D8C: .4byte gPlayerAvatar
-_08088D90: .4byte gMapObjects
- thumb_func_end sub_8088D3C
-
- thumb_func_start sub_8088D94
-sub_8088D94: @ 8088D94
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0xA]
- bl sub_8088FA4
- lsls r0, 24
- cmp r0, 0
- beq _08088DC8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x10
- strh r0, [r4, 0xC]
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- ldr r0, _08088DD0 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088DD4 @ =gMapObjects
- adds r0, r1
- movs r1, 0x2
- bl FieldObjectSetSpecialAnim
-_08088DC8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088DD0: .4byte gPlayerAvatar
-_08088DD4: .4byte gMapObjects
- thumb_func_end sub_8088D94
-
- thumb_func_start sub_8088DD8
-sub_8088DD8: @ 8088DD8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08088E24 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088E28 @ =gMapObjects
- adds r2, r0, r1
- ldrh r1, [r4, 0xC]
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _08088DFE
- subs r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _08088E1C
-_08088DFE:
- adds r0, r2, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08088E1C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x9E
- bl PlaySE
- ldrb r0, [r4, 0xA]
- bl sub_8088FC0
-_08088E1C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088E24: .4byte gPlayerAvatar
-_08088E28: .4byte gMapObjects
- thumb_func_end sub_8088DD8
-
- thumb_func_start sub_8088E2C
-sub_8088E2C: @ 8088E2C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08088EA2
- ldr r0, _08088EA8 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08088EAC @ =gMapObjects
- adds r4, r0, r1
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r6, _08088EB0 @ =gSprites
- adds r0, r6
- movs r1, 0x16
- bl StartSpriteAnim
- ldrb r0, [r4, 0x1]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- movs r1, 0x48
- bl FieldObjectSetSpecialAnim
- ldrh r1, [r5, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08088E98
- ldrb r1, [r4, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
-_08088E98:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- strh r0, [r5, 0xC]
-_08088EA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08088EA8: .4byte gPlayerAvatar
-_08088EAC: .4byte gMapObjects
-_08088EB0: .4byte gSprites
- thumb_func_end sub_8088E2C
-
- thumb_func_start sub_8088EB4
-sub_8088EB4: @ 8088EB4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _08088F00
- ldr r0, _08088F08 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08088F0C @ =gMapObjects
- adds r4, r0
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimActive
- ldrb r1, [r4, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x2]
- ldrb r0, [r5, 0xA]
- ldrb r1, [r4, 0x4]
- bl sub_8088FFC
- bl CameraObjectReset2
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_08088F00:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088F08: .4byte gPlayerAvatar
-_08088F0C: .4byte gMapObjects
- thumb_func_end sub_8088EB4
-
- thumb_func_start sub_8088F10
-sub_8088F10: @ 8088F10
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0xA]
- bl sub_8088FA4
- lsls r0, 24
- cmp r0, 0
- beq _08088F2A
- bl sub_8080918
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08088F2A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8088F10
-
- thumb_func_start sub_8088F30
-sub_8088F30: @ 8088F30
- push {lr}
- ldr r0, _08088F58 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08088F52
- movs r0, 0x1F
- bl FieldEffectActiveListRemove
- ldr r0, _08088F5C @ =sub_8088C70
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08088F52:
- pop {r0}
- bx r0
- .align 2, 0
-_08088F58: .4byte gPaletteFade
-_08088F5C: .4byte sub_8088C70
- thumb_func_end sub_8088F30
-
- thumb_func_start sub_8088F60
-sub_8088F60: @ 8088F60
- push {lr}
- ldr r0, _08088F98 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x68]
- movs r1, 0xFF
- movs r2, 0xB4
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, _08088F9C @ =gSprites
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- movs r3, 0xD
- negs r3, r3
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- ldr r1, _08088FA0 @ =sub_8089018
- str r1, [r2, 0x1C]
- pop {r1}
- bx r1
- .align 2, 0
-_08088F98: .4byte gFieldEffectObjectTemplatePointers
-_08088F9C: .4byte gSprites
-_08088FA0: .4byte sub_8089018
- thumb_func_end sub_8088F60
-
- thumb_func_start sub_8088FA4
-sub_8088FA4: @ 8088FA4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08088FBC @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_08088FBC: .4byte gSprites
- thumb_func_end sub_8088FA4
-
- thumb_func_start sub_8088FC0
-sub_8088FC0: @ 8088FC0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08088FF4 @ =gSprites
- adds r4, r0
- ldr r0, _08088FF8 @ =sub_80890D8
- str r0, [r4, 0x1C]
- movs r1, 0
- movs r0, 0x78
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x22]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x2E
- movs r2, 0x10
- bl memset
- movs r0, 0x40
- strh r0, [r4, 0x3A]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088FF4: .4byte gSprites
-_08088FF8: .4byte sub_80890D8
- thumb_func_end sub_8088FC0
-
- thumb_func_start sub_8088FFC
-sub_8088FFC: @ 8088FFC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08089014 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- strh r1, [r2, 0x3A]
- bx lr
- .align 2, 0
-_08089014: .4byte gSprites
- thumb_func_end sub_8088FFC
-
- thumb_func_start sub_8089018
-sub_8089018: @ 8089018
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080890C4
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0808905C
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080890CC @ =gUnknown_0839F44C
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r0, 0x76
- strh r0, [r4, 0x20]
- ldr r0, _080890D0 @ =0x0000ffd0
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x40
- strh r0, [r4, 0x30]
- adds r0, 0xC0
- strh r0, [r4, 0x32]
-_0808905C:
- ldrh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x32]
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- ldr r0, _080890D4 @ =0x000007ff
- cmp r1, r0
- bgt _08089092
- adds r0, r2, 0
- adds r0, 0x60
- strh r0, [r4, 0x32]
-_08089092:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x81
- ble _080890C4
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- lsrs r1, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- adds r0, r4, 0
- movs r3, 0
- bl CalcCenterToCornerVec
-_080890C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080890CC: .4byte gUnknown_0839F44C
-_080890D0: .4byte 0x0000ffd0
-_080890D4: .4byte 0x000007ff
- thumb_func_end sub_8089018
-
- thumb_func_start sub_80890D8
-sub_80890D8: @ 80890D8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x8C
- bl Cos
- movs r5, 0
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x48
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- beq _08089136
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08089148 @ =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r1, 0x22]
- strh r5, [r1, 0x24]
- strh r5, [r1, 0x26]
-_08089136:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _08089142
- movs r0, 0x1
- strh r0, [r4, 0x3C]
-_08089142:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089148: .4byte gSprites
- thumb_func_end sub_80890D8
-
- thumb_func_start sub_808914C
-sub_808914C: @ 808914C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08089220
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08089196
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _08089228 @ =gUnknown_0839F44C
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0x5E
- strh r0, [r4, 0x20]
- ldr r0, _0808922C @ =0x0000ffe0
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0xF0
- strh r0, [r4, 0x30]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x32]
- movs r0, 0x80
- strh r0, [r4, 0x36]
-_08089196:
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r2, r1
- ldrh r0, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r4, 0x30]
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- movs r1, 0x20
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r2, 0x80
- lsls r2, 1
- cmp r0, r2
- ble _080891D8
- ldrh r0, [r4, 0x36]
- subs r0, r1, r0
- strh r0, [r4, 0x32]
-_080891D8:
- ldrh r1, [r4, 0x36]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0xFF
- bgt _080891E8
- adds r0, r1, 0
- adds r0, 0x18
- strh r0, [r4, 0x36]
-_080891E8:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0xFF
- bgt _080891F2
- strh r2, [r4, 0x32]
-_080891F2:
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x3B
- ble _08089220
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_08089220:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089228: .4byte gUnknown_0839F44C
-_0808922C: .4byte 0x0000ffe0
- thumb_func_end sub_808914C
-
- thumb_func_start sub_8089230
-sub_8089230: @ 8089230
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8088FC0
- ldr r1, _08089254 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08089258 @ =sub_808914C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089254: .4byte gSprites
-_08089258: .4byte sub_808914C
- thumb_func_end sub_8089230
-
- thumb_func_start FldEff_FlyIn
-FldEff_FlyIn: @ 808925C
- push {lr}
- ldr r0, _0808926C @ =sub_8089270
- movs r1, 0xFE
- bl CreateTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0808926C: .4byte sub_8089270
- thumb_func_end FldEff_FlyIn
-
- thumb_func_start sub_8089270
-sub_8089270: @ 8089270
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08089298 @ =gUnknown_0839F454
- ldr r2, _0808929C @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08089298: .4byte gUnknown_0839F454
-_0808929C: .4byte gTasks
- thumb_func_end sub_8089270
-
- thumb_func_start sub_80892A0
-sub_80892A0: @ 80892A0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _08089348 @ =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0808934C @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080892CA
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08089342
-_080892CA:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x11
- strh r0, [r5, 0xC]
- ldrb r0, [r6]
- strh r0, [r5, 0x26]
- movs r0, 0x1
- strb r0, [r6, 0x6]
- bl SetPlayerAvatarStateMask
- ldrh r1, [r5, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080892F2
- ldrb r0, [r4, 0x1A]
- movs r1, 0
- bl sub_8127ED0
-_080892F2:
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- bl CameraObjectReset2
- adds r0, r4, 0
- movs r1, 0x3
- bl FieldObjectTurn
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08089350 @ =gSprites
- adds r0, r1
- movs r1, 0x16
- bl StartSpriteAnim
- ldrb r1, [r4, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_8088F60
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xA]
- bl sub_8088FC0
- ldrb r0, [r5, 0xA]
- ldrb r1, [r4, 0x4]
- bl sub_8088FFC
-_08089342:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08089348: .4byte gPlayerAvatar
-_0808934C: .4byte gMapObjects
-_08089350: .4byte gSprites
- thumb_func_end sub_80892A0
-
- thumb_func_start sub_8089354
-sub_8089354: @ 8089354
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0xC]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _0808936C
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080893AC
-_0808936C:
- ldr r0, _080893B4 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080893B8 @ =gMapObjects
- adds r0, r1
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080893BC @ =gSprites
- adds r4, r0
- ldrb r0, [r5, 0xA]
- movs r1, 0x40
- bl sub_8088FFC
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xC]
-_080893AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080893B4: .4byte gPlayerAvatar
-_080893B8: .4byte gMapObjects
-_080893BC: .4byte gSprites
- thumb_func_end sub_8089354
-
- thumb_func_start sub_80893C0
-sub_80893C0: @ 80893C0
- push {r4,lr}
- sub sp, 0x24
- adds r4, r0, 0
- ldr r1, _08089408 @ =gUnknown_0839F470
- mov r0, sp
- movs r2, 0x24
- bl memcpy
- ldr r0, _0808940C @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08089410 @ =gSprites
- adds r1, r0
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _080893FE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080893FE:
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089408: .4byte gUnknown_0839F470
-_0808940C: .4byte gPlayerAvatar
-_08089410: .4byte gSprites
- thumb_func_end sub_80893C0
-
- thumb_func_start sub_8089414
-sub_8089414: @ 8089414
- push {r4-r6,lr}
- adds r6, r0, 0
- ldrb r0, [r6, 0xA]
- bl sub_8088FA4
- lsls r0, 24
- cmp r0, 0
- beq _08089478
- ldr r0, _08089480 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r5, r0, 3
- adds r5, r0
- lsls r5, 2
- ldr r0, _08089484 @ =gMapObjects
- adds r5, r0
- ldrb r0, [r5, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08089488 @ =gSprites
- adds r4, r0
- ldrb r1, [r5, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x1]
- movs r0, 0x10
- ldrsh r1, [r5, r0]
- movs r0, 0x12
- ldrsh r2, [r5, r0]
- adds r0, r5, 0
- bl sub_805C058
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- bl sub_8059BF4
- adds r0, r5, 0
- movs r1, 0x39
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_08089478:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08089480: .4byte gPlayerAvatar
-_08089484: .4byte gMapObjects
-_08089488: .4byte gSprites
- thumb_func_end sub_8089414
-
- thumb_func_start sub_808948C
-sub_808948C: @ 808948C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080894BC @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080894C0 @ =gMapObjects
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080894B4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldrb r0, [r4, 0xA]
- bl sub_8089230
-_080894B4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080894BC: .4byte gPlayerAvatar
-_080894C0: .4byte gMapObjects
- thumb_func_end sub_808948C
-
- thumb_func_start sub_80894C4
-sub_80894C4: @ 80894C4
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0xA]
- bl sub_8088FA4
- lsls r0, 24
- cmp r0, 0
- beq _080894F0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080894F8 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x10
- strh r0, [r4, 0xA]
-_080894F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080894F8: .4byte gSprites
- thumb_func_end sub_80894C4
-
- thumb_func_start fishE
-fishE: @ 80894FC
- push {r4-r7,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0xA]
- subs r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- bne _08089566
- ldr r6, _0808956C @ =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08089570 @ =gMapObjects
- adds r4, r0, r1
- movs r7, 0
- ldrh r1, [r5, 0x26]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08089530
- movs r7, 0x3
- ldrb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_8127ED0
-_08089530:
- adds r0, r7, 0
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- adds r0, r4, 0
- movs r1, 0x1
- bl FieldObjectTurn
- ldrh r0, [r5, 0x26]
- strb r0, [r6]
- movs r0, 0
- strb r0, [r6, 0x6]
- movs r0, 0x20
- bl FieldEffectActiveListRemove
- ldr r0, _08089574 @ =sub_8089270
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08089566:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808956C: .4byte gPlayerAvatar
-_08089570: .4byte gMapObjects
-_08089574: .4byte sub_8089270
- thumb_func_end fishE
-
- thumb_func_start remove_some_task
-remove_some_task: @ 8089578
- push {r4,lr}
- ldr r4, _080895A8 @ =gUnknown_03004DC0
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, _080895AC @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _080895B0 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _080895B4 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x18]
- cmp r0, 0xFF
- beq _080895A2
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r4, 0x18]
-_080895A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080895A8: .4byte gUnknown_03004DC0
-_080895AC: .4byte 0x040000b0
-_080895B0: .4byte 0x0000c5ff
-_080895B4: .4byte 0x00007fff
- thumb_func_end remove_some_task
-
- thumb_func_start dp12_8087EA4
-dp12_8087EA4: @ 80895B8
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- movs r4, 0
- strh r4, [r0]
- ldr r1, _080895EC @ =gUnknown_03004DE0
- ldr r2, _080895F0 @ =0x01000780
- bl CpuSet
- ldr r0, _080895F4 @ =gUnknown_03004DC0
- movs r1, 0
- str r1, [r0]
- str r1, [r0, 0x4]
- str r1, [r0, 0x8]
- str r1, [r0, 0xC]
- strb r4, [r0, 0x14]
- strb r4, [r0, 0x15]
- strb r4, [r0, 0x16]
- strb r4, [r0, 0x17]
- movs r1, 0xFF
- strb r1, [r0, 0x18]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080895EC: .4byte gUnknown_03004DE0
-_080895F0: .4byte 0x01000780
-_080895F4: .4byte gUnknown_03004DC0
- thumb_func_end dp12_8087EA4
-
- thumb_func_start sub_80895F8
-sub_80895F8: @ 80895F8
- push {lr}
- sub sp, 0xC
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, _0808961C @ =0xa2600001
- cmp r1, r0
- bne _0808962C
- ldr r0, _08089620 @ =gUnknown_03004DC0
- ldr r1, _08089624 @ =gUnknown_03004DE2
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, _08089628 @ =sub_80896F4
- b _0808963C
- .align 2, 0
-_0808961C: .4byte 0xa2600001
-_08089620: .4byte gUnknown_03004DC0
-_08089624: .4byte gUnknown_03004DE2
-_08089628: .4byte sub_80896F4
-_0808962C:
- ldr r0, _0808965C @ =gUnknown_03004DC0
- ldr r1, _08089660 @ =gUnknown_03004DE4
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, _08089664 @ =sub_8089714
-_0808963C:
- str r1, [r0, 0x10]
- adds r1, r0, 0
- ldr r0, [sp, 0x4]
- str r0, [r1, 0xC]
- ldr r0, [sp]
- str r0, [r1, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x8]
- strb r0, [r1, 0x15]
- mov r0, sp
- ldrb r0, [r0, 0x9]
- strb r0, [r1, 0x16]
- strb r0, [r1, 0x17]
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_0808965C: .4byte gUnknown_03004DC0
-_08089660: .4byte gUnknown_03004DE4
-_08089664: .4byte sub_8089714
- thumb_func_end sub_80895F8
-
- thumb_func_start sub_8089668
-sub_8089668: @ 8089668
- push {r4,lr}
- ldr r4, _08089698 @ =gUnknown_03004DC0
- ldrb r0, [r4, 0x15]
- cmp r0, 0
- beq _080896E2
- cmp r0, 0x3
- bne _080896AC
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, _0808969C @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _080896A0 @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _080896A4 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldr r1, _080896A8 @ =gUnknown_0202FFA4
- movs r0, 0x1
- strb r0, [r1]
- b _080896E2
- .align 2, 0
-_08089698: .4byte gUnknown_03004DC0
-_0808969C: .4byte 0x040000b0
-_080896A0: .4byte 0x0000c5ff
-_080896A4: .4byte 0x00007fff
-_080896A8: .4byte gUnknown_0202FFA4
-_080896AC:
- ldr r1, _080896E8 @ =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, _080896EC @ =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _080896F0 @ =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x14]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, [r4, 0x8]
- str r0, [r1, 0x4]
- ldr r0, [r4, 0xC]
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, [r4, 0x10]
- bl _call_via_r0
- ldrb r0, [r4, 0x14]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4, 0x14]
-_080896E2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080896E8: .4byte 0x040000b0
-_080896EC: .4byte 0x0000c5ff
-_080896F0: .4byte 0x00007fff
- thumb_func_end sub_8089668
-
- thumb_func_start sub_80896F4
-sub_80896F4: @ 80896F4
- ldr r0, _0808970C @ =gUnknown_03004DC0
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _08089710 @ =gUnknown_03004DE0
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0808970C: .4byte gUnknown_03004DC0
-_08089710: .4byte gUnknown_03004DE0
- thumb_func_end sub_80896F4
-
- thumb_func_start sub_8089714
-sub_8089714: @ 8089714
- ldr r0, _0808972C @ =gUnknown_03004DC0
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _08089730 @ =gUnknown_03004DE0
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- bx lr
- .align 2, 0
-_0808972C: .4byte gUnknown_03004DC0
-_08089730: .4byte gUnknown_03004DE0
- thumb_func_end sub_8089714
-
- thumb_func_start task00_for_dp12
-task00_for_dp12: @ 8089734
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r6, 0
- ldr r0, _0808975C @ =gUnknown_0202FFA4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08089764
- mov r0, r12
- bl DestroyTask
- ldr r1, _08089760 @ =gUnknown_03004DC0
- movs r0, 0xFF
- strb r0, [r1, 0x18]
- b _080898E4
- .align 2, 0
-_0808975C: .4byte gUnknown_0202FFA4
-_08089760: .4byte gUnknown_03004DC0
-_08089764:
- ldr r1, _08089790 @ =gTasks
- mov r0, r12
- lsls r2, r0, 2
- adds r0, r2, r0
- lsls r0, 3
- adds r3, r0, r1
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- mov r10, r1
- mov r9, r2
- cmp r0, 0
- beq _08089810
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- cmp r0, 0xE
- bhi _08089810
- lsls r0, 2
- ldr r1, _08089794 @ =_08089798
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08089790: .4byte gTasks
-_08089794: .4byte _08089798
- .align 2, 0
-_08089798:
- .4byte _080897D4
- .4byte _08089810
- .4byte _080897DC
- .4byte _08089810
- .4byte _080897E4
- .4byte _08089810
- .4byte _080897EC
- .4byte _08089810
- .4byte _080897F4
- .4byte _08089810
- .4byte _080897FC
- .4byte _08089810
- .4byte _08089804
- .4byte _08089810
- .4byte _0808980C
-_080897D4:
- ldr r0, _080897D8 @ =gUnknown_030042A4
- b _0808980E
- .align 2, 0
-_080897D8: .4byte gUnknown_030042A4
-_080897DC:
- ldr r0, _080897E0 @ =gUnknown_030042A0
- b _0808980E
- .align 2, 0
-_080897E0: .4byte gUnknown_030042A0
-_080897E4:
- ldr r0, _080897E8 @ =gUnknown_030042C0
- b _0808980E
- .align 2, 0
-_080897E8: .4byte gUnknown_030042C0
-_080897EC:
- ldr r0, _080897F0 @ =gUnknown_030041B4
- b _0808980E
- .align 2, 0
-_080897F0: .4byte gUnknown_030041B4
-_080897F4:
- ldr r0, _080897F8 @ =gUnknown_03004288
- b _0808980E
- .align 2, 0
-_080897F8: .4byte gUnknown_03004288
-_080897FC:
- ldr r0, _08089800 @ =gUnknown_03004280
- b _0808980E
- .align 2, 0
-_08089800: .4byte gUnknown_03004280
-_08089804:
- ldr r0, _08089808 @ =gUnknown_030041B0
- b _0808980E
- .align 2, 0
-_08089808: .4byte gUnknown_030041B0
-_0808980C:
- ldr r0, _08089870 @ =gUnknown_030041B8
-_0808980E:
- ldrh r6, [r0]
-_08089810:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r2, r10
- adds r1, r0, r2
- ldrh r2, [r1, 0x10]
- movs r3, 0x10
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0808987C
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- movs r4, 0xE
- ldrsh r0, [r1, r4]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080898E4
- ldr r5, _08089874 @ =gUnknown_03004DE0
- ldr r0, _08089878 @ =gUnknown_03004DC0
- mov r8, r0
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
-_0808984A:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _0808984A
- b _080898E4
- .align 2, 0
-_08089870: .4byte gUnknown_030041B8
-_08089874: .4byte gUnknown_03004DE0
-_08089878: .4byte gUnknown_03004DC0
-_0808987C:
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x10]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080898C4
- ldr r5, _080898F4 @ =gUnknown_03004DE0
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
- ldr r0, _080898F8 @ =gUnknown_03004DC0
- mov r8, r0
-_080898A2:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _080898A2
-_080898C4:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r3, r10
- adds r2, r0, r3
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bne _080898E4
- movs r0, 0
- strh r0, [r2, 0xE]
-_080898E4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080898F4: .4byte gUnknown_03004DE0
-_080898F8: .4byte gUnknown_03004DC0
- thumb_func_end task00_for_dp12
-
- thumb_func_start sub_80898FC
-sub_80898FC: @ 80898FC
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0
- movs r2, 0
- ldr r0, _08089940 @ =gSineTable
- mov r12, r0
-_08089910:
- lsls r0, r1, 1
- adds r3, r0, r6
- lsls r0, r2, 1
- add r0, r12
- movs r7, 0
- ldrsh r0, [r0, r7]
- muls r0, r4
- cmp r0, 0
- bge _08089924
- adds r0, 0xFF
-_08089924:
- asrs r0, 8
- strh r0, [r3]
- adds r0, r2, r5
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _08089910
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08089940: .4byte gSineTable
- thumb_func_end sub_80898FC
-
- thumb_func_start sub_8089944
-sub_8089944: @ 8089944
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r5, r0, 0
- str r1, [sp, 0x10]
- ldr r0, [sp, 0x40]
- mov r8, r0
- ldr r1, [sp, 0x44]
- mov r9, r1
- ldr r0, [sp, 0x48]
- mov r10, r0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, [sp, 0x10]
- lsls r1, 24
- str r1, [sp, 0x14]
- lsrs r0, r1, 24
- str r0, [sp, 0xC]
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- lsls r2, r3, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r3, r9
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl dp12_8087EA4
- ldr r0, _08089A50 @ =REG_BG0HOFS
- add r0, r9
- str r0, [sp]
- ldr r0, _08089A54 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _08089A58 @ =task00_for_dp12
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08089A5C @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- strh r5, [r4, 0x8]
- mov r3, sp
- ldrh r3, [r3, 0xC]
- strh r3, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- ldr r1, [sp, 0x18]
- bl __divsi3
- strh r0, [r4, 0xC]
- movs r0, 0
- strh r0, [r4, 0xE]
- mov r1, r8
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- mov r3, r9
- strh r3, [r4, 0x14]
- mov r0, r10
- strh r0, [r4, 0x16]
- ldr r0, _08089A60 @ =gUnknown_03004DC0
- strb r7, [r0, 0x18]
- ldr r0, _08089A64 @ =gUnknown_0202FFA4
- movs r1, 0
- strb r1, [r0]
- ldr r4, _08089A68 @ =gUnknown_03005060
- ldr r3, [sp, 0xC]
- subs r6, r3, r5
- lsls r3, r6, 24
- lsrs r3, 24
- adds r0, r4, 0
- ldr r1, [sp, 0x18]
- ldr r2, [sp, 0x1C]
- bl sub_80898FC
- ldr r0, [sp, 0xC]
- cmp r5, r0
- bge _08089A3E
- ldr r1, _08089A6C @ =0xfffffd80
- adds r2, r4, r1
- lsls r1, r5, 1
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r1, r3
- adds r3, r0, r2
- adds r1, r2
- adds r2, r4, 0
- adds r5, r6, 0
-_08089A2A:
- ldrh r0, [r2]
- strh r0, [r1]
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- adds r1, 0x2
- subs r5, 0x1
- cmp r5, 0
- bne _08089A2A
-_08089A3E:
- adds r0, r7, 0
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08089A50: .4byte REG_BG0HOFS
-_08089A54: .4byte 0xa2600001
-_08089A58: .4byte task00_for_dp12
-_08089A5C: .4byte gTasks
-_08089A60: .4byte gUnknown_03004DC0
-_08089A64: .4byte gUnknown_0202FFA4
-_08089A68: .4byte gUnknown_03005060
-_08089A6C: .4byte 0xfffffd80
- thumb_func_end sub_8089944
-
- thumb_func_start sub_8089A70
-sub_8089A70: @ 8089A70
- push {lr}
- ldr r0, _08089A88 @ =gPaletteFade
- ldrb r1, [r0, 0x8]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0, 0x8]
- movs r0, 0
- movs r1, 0
- bl OpenPartyMenu
- pop {r0}
- bx r0
- .align 2, 0
-_08089A88: .4byte gPaletteFade
- thumb_func_end sub_8089A70
-
- thumb_func_start sub_8089A8C
-sub_8089A8C: @ 8089A8C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _08089AD0 @ =gUnknown_0202FFA9
- movs r0, 0
- strb r0, [r5]
- ldr r0, _08089AD4 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089AD8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08089AE0
- ldr r4, _08089ADC @ =gUnknown_0202FFAA
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl AppendToList
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl AppendToList
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl AppendToList
- b _08089BC8
- .align 2, 0
-_08089AD0: .4byte gUnknown_0202FFA9
-_08089AD4: .4byte gUnknown_03005CE0
-_08089AD8: .4byte gPlayerParty
-_08089ADC: .4byte gUnknown_0202FFAA
-_08089AE0:
- movs r6, 0
- ldr r0, _08089B24 @ =gUnknown_0839F554
- ldrh r0, [r0]
- mov r8, r0
-_08089AE8:
- movs r4, 0
- adds r7, r6, 0x1
- mov r0, r8
- cmp r0, 0xFF
- beq _08089B48
- ldr r5, _08089B24 @ =gUnknown_0839F554
-_08089AF4:
- ldr r0, _08089B28 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089B2C @ =gPlayerParty
- adds r0, r1
- adds r1, r6, 0
- adds r1, 0xD
- bl GetMonData
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- cmp r0, r1
- bne _08089B38
- adds r2, r4, 0
- adds r2, 0xA
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _08089B30 @ =gUnknown_0202FFAA
- ldr r1, _08089B34 @ =gUnknown_0202FFA9
- bl AppendToList
- b _08089B48
- .align 2, 0
-_08089B24: .4byte gUnknown_0839F554
-_08089B28: .4byte gUnknown_03005CE0
-_08089B2C: .4byte gPlayerParty
-_08089B30: .4byte gUnknown_0202FFAA
-_08089B34: .4byte gUnknown_0202FFA9
-_08089B38:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0xFF
- bne _08089AF4
-_08089B48:
- lsls r0, r7, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08089AE8
- ldr r4, _08089BA4 @ =gUnknown_0202FFAA
- ldr r5, _08089BA8 @ =gUnknown_0202FFA9
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl AppendToList
- ldr r6, _08089BAC @ =gPlayerParty + 1 * 0x64
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08089B76
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl AppendToList
-_08089B76:
- ldr r0, _08089BB0 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- adds r1, r6, 0
- subs r1, 0x64
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _08089BB4
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl AppendToList
- b _08089BBE
- .align 2, 0
-_08089BA4: .4byte gUnknown_0202FFAA
-_08089BA8: .4byte gUnknown_0202FFA9
-_08089BAC: .4byte gPlayerParty + 1 * 0x64
-_08089BB0: .4byte gUnknown_03005CE0
-_08089BB4:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl AppendToList
-_08089BBE:
- ldr r0, _08089BD4 @ =gUnknown_0202FFAA
- ldr r1, _08089BD8 @ =gUnknown_0202FFA9
- movs r2, 0x3
- bl AppendToList
-_08089BC8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08089BD4: .4byte gUnknown_0202FFAA
-_08089BD8: .4byte gUnknown_0202FFA9
- thumb_func_end sub_8089A8C
-
- thumb_func_start sub_8089BDC
-sub_8089BDC: @ 8089BDC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- mov r8, r3
- ldr r7, [sp, 0x20]
- ldr r1, [sp, 0x24]
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- bl sub_806D538
- adds r4, r5, r4
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r3, r0, 1
- adds r3, r6, r3
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl MenuDrawTextWindow
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- str r7, [sp]
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, r8
- ldr r3, [sp, 0x1C]
- bl PrintMenuItemsReordered
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8089BDC
-
- thumb_func_start sub_8089C50
-sub_8089C50: @ 8089C50
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r4, [sp, 0x18]
- ldr r5, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r4, 0x1
- str r4, [sp, 0x8]
- bl sub_8089BDC
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8089C50
-
- thumb_func_start sub_8089C7C
-sub_8089C7C: @ 8089C7C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08089CC8 @ =gUnknown_0202FFA9
- ldrb r0, [r6]
- lsls r0, 1
- movs r4, 0x12
- subs r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldrb r3, [r6]
- ldr r0, _08089CCC @ =gPokemonMenuActions
- str r0, [sp]
- ldr r0, _08089CD0 @ =gUnknown_0202FFAA
- str r0, [sp, 0x4]
- movs r0, 0x3
- str r0, [sp, 0x8]
- movs r0, 0x13
- adds r1, r4, 0
- movs r2, 0xA
- bl sub_8089BDC
- movs r2, 0x1
- orrs r2, r4
- ldrb r3, [r6]
- str r5, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x14
- bl InitMenu
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08089CC8: .4byte gUnknown_0202FFA9
-_08089CCC: .4byte gPokemonMenuActions
-_08089CD0: .4byte gUnknown_0202FFAA
- thumb_func_end sub_8089C7C
-
- thumb_func_start sub_8089CD4
-sub_8089CD4: @ 8089CD4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08089D00 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08089D84
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08089D04
- cmp r0, 0x2
- beq _08089D60
- b _08089D84
- .align 2, 0
-_08089D00: .4byte gPaletteFade
-_08089D04:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _08089D48 @ =gUnknown_03005CE0
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089D4C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08089D50 @ =gStringVar1
- bl GetMonNickname
- bl sub_8089A8C
- ldr r0, _08089D54 @ =gUnknown_0202FFA8
- strb r5, [r0]
- movs r0, 0
- bl sub_8089C7C
- ldr r1, _08089D58 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08089D5C @ =sub_8089D94
- str r1, [r0]
- adds r0, r4, 0
- bl sub_808B5B4
- b _08089D84
- .align 2, 0
-_08089D48: .4byte gUnknown_03005CE0
-_08089D4C: .4byte gPlayerParty
-_08089D50: .4byte gStringVar1
-_08089D54: .4byte gUnknown_0202FFA8
-_08089D58: .4byte gTasks
-_08089D5C: .4byte sub_8089D94
-_08089D60:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08089D8C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08089D90 @ =sub_8089E4C
- str r1, [r0]
-_08089D84:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089D8C: .4byte gTasks
-_08089D90: .4byte sub_8089E4C
- thumb_func_end sub_8089CD4
-
- thumb_func_start sub_8089D94
-sub_8089D94: @ 8089D94
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _08089DC8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08089E44
- ldr r2, _08089DCC @ =gMain
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _08089DD4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- ldr r1, _08089DD0 @ =gUnknown_0202FFA8
- strb r0, [r1]
- b _08089E1A
- .align 2, 0
-_08089DC8: .4byte gPaletteFade
-_08089DCC: .4byte gMain
-_08089DD0: .4byte gUnknown_0202FFA8
-_08089DD4:
- cmp r1, 0x80
- bne _08089DF0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- ldr r1, _08089DEC @ =gUnknown_0202FFA8
- strb r0, [r1]
- b _08089E1A
- .align 2, 0
-_08089DEC: .4byte gUnknown_0202FFA8
-_08089DF0:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08089E30
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08089E24 @ =gPokemonMenuActions
- ldr r2, _08089E28 @ =gUnknown_0202FFAA
- ldr r0, _08089E2C @ =gUnknown_0202FFA8
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_08089E1A:
- adds r0, r4, 0
- bl sub_808B5B4
- b _08089E44
- .align 2, 0
-_08089E24: .4byte gPokemonMenuActions
-_08089E28: .4byte gUnknown_0202FFAA
-_08089E2C: .4byte gUnknown_0202FFA8
-_08089E30:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08089E44
- adds r0, r5, 0
- bl PokemonMenu_Cancel
- adds r0, r5, 0
- bl sub_808B5B4
-_08089E44:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8089D94
-
- thumb_func_start sub_8089E4C
-sub_8089E4C: @ 8089E4C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08089E78 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08089E72
- ldr r0, _08089E7C @ =gUnknown_03005CE0
- strb r1, [r0]
- ldr r0, _08089E80 @ =sub_805469C
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08089E72:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089E78: .4byte gPaletteFade
-_08089E7C: .4byte gUnknown_03005CE0
-_08089E80: .4byte sub_805469C
- thumb_func_end sub_8089E4C
-
- thumb_func_start sub_8089E84
-sub_8089E84: @ 8089E84
- push {lr}
- ldr r0, _08089EAC @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08089EB0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08089EB4 @ =gStringVar1
- bl GetMonNickname
- bl sub_8089A8C
- ldr r1, _08089EB8 @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0
- bl sub_8089C7C
- pop {r0}
- bx r0
- .align 2, 0
-_08089EAC: .4byte gUnknown_03005CE0
-_08089EB0: .4byte gPlayerParty
-_08089EB4: .4byte gStringVar1
-_08089EB8: .4byte gUnknown_0202FFA8
- thumb_func_end sub_8089E84
-
- thumb_func_start sub_8089EBC
-sub_8089EBC: @ 8089EBC
- push {r4,r5,lr}
- ldr r4, _08089EC4 @ =0x0201b260
- ldr r5, _08089EC8 @ =gUnknown_020384F0
- b _08089ED8
- .align 2, 0
-_08089EC4: .4byte 0x0201b260
-_08089EC8: .4byte gUnknown_020384F0
-_08089ECC:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08089F04
-_08089ED8:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08089ECC
- ldrb r0, [r4]
- ldrb r1, [r5]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r1, _08089F0C @ =gUnknown_03005CE0
- ldrb r0, [r5]
- strb r0, [r1]
- bl sub_8089E84
- ldr r0, _08089F10 @ =sub_806AEDC
- bl SetMainCallback2
-_08089F04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089F0C: .4byte gUnknown_03005CE0
-_08089F10: .4byte sub_806AEDC
- thumb_func_end sub_8089EBC
-
- thumb_func_start sub_8089F14
-sub_8089F14: @ 8089F14
- push {lr}
- ldr r2, _08089F38 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _08089F3C @ =sub_8089D94
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _08089F40 @ =sub_8089EBC
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08089F38: .4byte gPaletteFade
-_08089F3C: .4byte sub_8089D94
-_08089F40: .4byte sub_8089EBC
- thumb_func_end sub_8089F14
-
- thumb_func_start sub_8089F44
-sub_8089F44: @ 8089F44
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _08089FAC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08089FA2
- ldr r2, _08089FB0 @ =gSprites
- ldr r1, _08089FB4 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xE]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r3, 0
- bl DestroyTask
- ldr r0, _08089FB8 @ =0x0201b000
- ldr r1, _08089FBC @ =0x00000262
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08089FC0 @ =gPlayerParty
- ldr r1, _08089FC4 @ =gPlayerPartyCount
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08089FC8 @ =sub_8089F14
- str r5, [sp]
- adds r1, r4, 0
- bl sub_809D8BC
-_08089FA2:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08089FAC: .4byte gPaletteFade
-_08089FB0: .4byte gSprites
-_08089FB4: .4byte gTasks
-_08089FB8: .4byte 0x0201b000
-_08089FBC: .4byte 0x00000262
-_08089FC0: .4byte gPlayerParty
-_08089FC4: .4byte gPlayerPartyCount
-_08089FC8: .4byte sub_8089F14
- thumb_func_end sub_8089F44
-
- thumb_func_start PokemonMenu_Summary
-PokemonMenu_Summary: @ 8089FCC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08089FFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A000 @ =sub_8089F44
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08089FFC: .4byte gTasks
-_0808A000: .4byte sub_8089F44
- thumb_func_end PokemonMenu_Summary
-
- thumb_func_start sub_808A004
-sub_808A004: @ 808A004
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0808A024 @ =sub_806CA60
- ldr r2, _0808A028 @ =sub_8089CD4
- bl SetTaskFuncWithFollowupFunc
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- .align 2, 0
-_0808A024: .4byte sub_806CA60
-_0808A028: .4byte sub_8089CD4
- thumb_func_end sub_808A004
-
- thumb_func_start PokemonMenu_Switch
-PokemonMenu_Switch: @ 808A02C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r0, _0808A054 @ =0x02001000
- ldr r1, _0808A058 @ =sub_806CD5C
- str r1, [r0, 0xC]
- ldr r1, _0808A05C @ =0x0001a272
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_808A004
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A054: .4byte 0x02001000
-_0808A058: .4byte sub_806CD5C
-_0808A05C: .4byte 0x0001a272
- thumb_func_end PokemonMenu_Switch
-
- thumb_func_start sub_808A060
-sub_808A060: @ 808A060
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A0D0 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0808A086
- ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- cmp r0, 0
- beq _0808A086
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
-_0808A086:
- ldr r0, _0808A0D0 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0808A0A4
- ldr r4, _0808A0D4 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _0808A0A4
- movs r0, 0x1
- bl MoveMenuCursor
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
-_0808A0A4:
- ldr r0, _0808A0D0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808A0E0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808A0D8 @ =gUnknown_0839F578
- ldr r2, _0808A0DC @ =gPokemonMenuActions
- ldr r0, _0808A0D4 @ =gUnknown_0202FFA8
- ldrb r3, [r0]
- movs r0, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
- b _0808A0F6
- .align 2, 0
-_0808A0D0: .4byte gMain
-_0808A0D4: .4byte gUnknown_0202FFA8
-_0808A0D8: .4byte gUnknown_0839F578
-_0808A0DC: .4byte gPokemonMenuActions
-_0808A0E0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808A0F6
- ldr r1, _0808A0FC @ =gUnknown_0839F578
- movs r0, 0
- bl sub_806E7D0
- adds r0, r5, 0
- bl PokemonMenu_CancelSubmenu
-_0808A0F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A0FC: .4byte gUnknown_0839F578
- thumb_func_end sub_808A060
-
- thumb_func_start sub_808A100
-sub_808A100: @ 808A100
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0808A130 @ =gUnknown_0839F578
- ldr r2, _0808A134 @ =gPokemonMenuActions
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- movs r0, 0xD
- movs r1, 0x2
- bl sub_806D538
- ldr r1, _0808A138 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A13C @ =sub_808A060
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A130: .4byte gUnknown_0839F578
-_0808A134: .4byte gPokemonMenuActions
-_0808A138: .4byte gTasks
-_0808A13C: .4byte sub_808A060
- thumb_func_end sub_808A100
-
- thumb_func_start PokemonMenu_Item
-PokemonMenu_Item: @ 808A140
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r1, _0808A174 @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0808A178 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A17C @ =sub_808A100
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A174: .4byte gUnknown_0202FFA8
-_0808A178: .4byte gTasks
-_0808A17C: .4byte sub_808A100
- thumb_func_end PokemonMenu_Item
-
- thumb_func_start sub_808A180
-sub_808A180: @ 808A180
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A1D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A1CA
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A1D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808A1D8 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0
- ldr r2, _0808A1DC @ =sub_808A520
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
-_0808A1CA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A1D0: .4byte gPaletteFade
-_0808A1D4: .4byte gPlayerParty
-_0808A1D8: .4byte gSaveBlock1 + 0x2B4C
-_0808A1DC: .4byte sub_808A520
- thumb_func_end sub_808A180
-
- thumb_func_start sub_808A1E0
-sub_808A1E0: @ 808A1E0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A21C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808A216
- adds r0, r4, 0
- bl sub_806CA38
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806DF60
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _0808A220 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A224 @ =sub_8089CD4
- str r1, [r0]
-_0808A216:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A21C: .4byte gUnknown_0202E8F6
-_0808A220: .4byte gTasks
-_0808A224: .4byte sub_8089CD4
- thumb_func_end sub_808A1E0
-
- thumb_func_start sub_808A228
-sub_808A228: @ 808A228
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A268 @ =gScriptItemId
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0808A278
- ldr r0, _0808A26C @ =gUnknown_0202E8F4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0808A278
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808A270 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A274 @ =sub_808A180
- str r1, [r0]
- b _0808A29A
- .align 2, 0
-_0808A268: .4byte gScriptItemId
-_0808A26C: .4byte gUnknown_0202E8F4
-_0808A270: .4byte gTasks
-_0808A274: .4byte sub_808A180
-_0808A278:
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r0, _0808A2A4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808A2A8 @ =sub_8089CD4
- str r0, [r1]
-_0808A29A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A2A4: .4byte gTasks
-_0808A2A8: .4byte sub_8089CD4
- thumb_func_end sub_808A228
-
- thumb_func_start sub_808A2AC
-sub_808A2AC: @ 808A2AC
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0808A2D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A2CA
- ldr r0, _0808A2D4 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808A2D8 @ =sub_808A228
- adds r0, r3, 0
- bl sub_806E964
-_0808A2CA:
- pop {r0}
- bx r0
- .align 2, 0
-_0808A2D0: .4byte gPaletteFade
-_0808A2D4: .4byte gScriptItemId
-_0808A2D8: .4byte sub_808A228
- thumb_func_end sub_808A2AC
-
- thumb_func_start sub_808A2DC
-sub_808A2DC: @ 808A2DC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A324 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808A328 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0
- ldr r2, _0808A32C @ =sub_808A520
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A324: .4byte gPlayerParty
-_0808A328: .4byte gSaveBlock1 + 0x2B4C
-_0808A32C: .4byte sub_808A520
- thumb_func_end sub_808A2DC
-
- thumb_func_start sub_808A330
-sub_808A330: @ 808A330
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0808A344 @ =gScriptItemId
- ldrh r1, [r1]
- ldr r2, _0808A348 @ =sub_808A2DC
- bl sub_806E964
- pop {r0}
- bx r0
- .align 2, 0
-_0808A344: .4byte gScriptItemId
-_0808A348: .4byte sub_808A2DC
- thumb_func_end sub_808A330
-
- thumb_func_start sub_808A34C
-sub_808A34C: @ 808A34C
- push {lr}
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_808A34C
-
- thumb_func_start sub_808A358
-sub_808A358: @ 808A358
- push {r4,lr}
- ldr r4, _0808A360 @ =0x0201b260
- b _0808A370
- .align 2, 0
-_0808A360: .4byte 0x0201b260
-_0808A364:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808A394
-_0808A370:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A364
- ldrb r0, [r4]
- ldr r1, _0808A39C @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808A3A0 @ =sub_806AEDC
- bl SetMainCallback2
-_0808A394:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A39C: .4byte gUnknown_03005CE0
-_0808A3A0: .4byte sub_806AEDC
- thumb_func_end sub_808A358
-
- thumb_func_start sub_808A3A4
-sub_808A3A4: @ 808A3A4
- push {r4,r5,lr}
- ldr r4, _0808A3D8 @ =0x0201b260
- adds r5, r4, 0x2
-_0808A3AA:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A3E4
- ldrb r0, [r4]
- ldr r1, _0808A3DC @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- movs r0, 0x3
- strb r0, [r5]
- bl sub_8089E84
- ldr r0, _0808A3E0 @ =sub_806AEDC
- bl SetMainCallback2
- b _0808A3F0
- .align 2, 0
-_0808A3D8: .4byte 0x0201b260
-_0808A3DC: .4byte gUnknown_03005CE0
-_0808A3E0: .4byte sub_806AEDC
-_0808A3E4:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A3AA
-_0808A3F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808A3A4
-
- thumb_func_start sub_808A3F8
-sub_808A3F8: @ 808A3F8
- push {r4,lr}
- ldr r0, _0808A460 @ =gScriptItemId
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0808A47E
- ldr r0, _0808A464 @ =sub_808A330
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _0808A468 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806BD58
- ldr r0, _0808A46C @ =gUnknown_03005CE0
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_806C994
- adds r0, r4, 0
- movs r1, 0
- bl sub_806BF74
- adds r0, r4, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A470 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 24
- cmp r0, 0
- bne _0808A478
- ldr r0, _0808A474 @ =sub_808A34C
- bl SetMainCallback2
- b _0808A4C6
- .align 2, 0
-_0808A460: .4byte gScriptItemId
-_0808A464: .4byte sub_808A330
-_0808A468: .4byte gPaletteFade
-_0808A46C: .4byte gUnknown_03005CE0
-_0808A470: .4byte gPlayerParty
-_0808A474: .4byte sub_808A34C
-_0808A478:
- adds r0, r4, 0
- bl DestroyTask
-_0808A47E:
- ldr r2, _0808A4A4 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808A4A8 @ =gScriptItemId
- ldrh r0, [r0]
- cmp r0, 0
- beq _0808A4B4
- ldr r2, _0808A4AC @ =sub_808A2AC
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0xFF
- bl sub_806AF4C
- ldr r0, _0808A4B0 @ =sub_808A358
- bl SetMainCallback2
- b _0808A4C6
- .align 2, 0
-_0808A4A4: .4byte gPaletteFade
-_0808A4A8: .4byte gScriptItemId
-_0808A4AC: .4byte sub_808A2AC
-_0808A4B0: .4byte sub_808A358
-_0808A4B4:
- ldr r2, _0808A4CC @ =sub_8089D94
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _0808A4D0 @ =sub_808A3A4
- bl SetMainCallback2
-_0808A4C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A4CC: .4byte sub_8089D94
-_0808A4D0: .4byte sub_808A3A4
- thumb_func_end sub_808A3F8
-
- thumb_func_start sub_808A4D4
-sub_808A4D4: @ 808A4D4
- push {r4,lr}
- ldr r4, _0808A4DC @ =0x0201b260
- b _0808A4EC
- .align 2, 0
-_0808A4DC: .4byte 0x0201b260
-_0808A4E0:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808A510
-_0808A4EC:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A4E0
- ldrb r0, [r4]
- ldr r1, _0808A518 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808A51C @ =sub_806AEDC
- bl SetMainCallback2
-_0808A510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A518: .4byte gUnknown_03005CE0
-_0808A51C: .4byte sub_806AEDC
- thumb_func_end sub_808A4D4
-
- thumb_func_start sub_808A520
-sub_808A520: @ 808A520
- push {r4-r7,lr}
- ldr r2, _0808A584 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808A588 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _0808A59C
- ldr r7, _0808A58C @ =gUnknown_0202E8F8
- ldrh r0, [r7]
- cmp r0, 0
- beq _0808A542
- movs r1, 0x1
- bl RemoveBagItem
-_0808A542:
- ldr r6, _0808A590 @ =gUnknown_03005CE0
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0808A594 @ =gPlayerParty
- adds r0, r4
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl AddBagItem
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- bl sub_80A2DF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xC
- adds r2, r7, 0
- bl SetMonData
- ldr r2, _0808A598 @ =sub_8089CD4
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0
- bl sub_806AF4C
- b _0808A5A8
- .align 2, 0
-_0808A584: .4byte gPaletteFade
-_0808A588: .4byte gScriptResult
-_0808A58C: .4byte gUnknown_0202E8F8
-_0808A590: .4byte gUnknown_03005CE0
-_0808A594: .4byte gPlayerParty
-_0808A598: .4byte sub_8089CD4
-_0808A59C:
- ldr r2, _0808A5B4 @ =sub_808A5BC
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0xFF
- bl sub_806AF4C
-_0808A5A8:
- ldr r0, _0808A5B8 @ =sub_808A4D4
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A5B4: .4byte sub_808A5BC
-_0808A5B8: .4byte sub_808A4D4
- thumb_func_end sub_808A520
-
- thumb_func_start sub_808A5BC
-sub_808A5BC: @ 808A5BC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A5F0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A5EA
- ldr r0, _0808A5F4 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- ldr r1, _0808A5F8 @ =gScriptItemId
- ldrh r1, [r1]
- movs r2, 0
- bl sub_806EBF0
- ldr r1, _0808A5FC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A600 @ =sub_808A1E0
- str r1, [r0]
-_0808A5EA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A5F0: .4byte gPaletteFade
-_0808A5F4: .4byte gUnknown_03005CE0
-_0808A5F8: .4byte gScriptItemId
-_0808A5FC: .4byte gTasks
-_0808A600: .4byte sub_808A1E0
- thumb_func_end sub_808A5BC
-
- thumb_func_start sub_808A604
-sub_808A604: @ 808A604
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808A628 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A622
- ldr r0, _0808A62C @ =sub_80A61D0
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808A622:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A628: .4byte gPaletteFade
-_0808A62C: .4byte sub_80A61D0
- thumb_func_end sub_808A604
-
- thumb_func_start PokemonMenu_GiveItem
-PokemonMenu_GiveItem: @ 808A630
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808A66C @ =gUnknown_0202E8F5
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808A670 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A674 @ =sub_808A604
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A66C: .4byte gUnknown_0202E8F5
-_0808A670: .4byte gTasks
-_0808A674: .4byte sub_808A604
- thumb_func_end PokemonMenu_GiveItem
-
- thumb_func_start sub_808A678
-sub_808A678: @ 808A678
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_808A8D4
- pop {r0}
- bx r0
- thumb_func_end sub_808A678
-
- thumb_func_start PokemonMenu_TakeItem
-PokemonMenu_TakeItem: @ 808A688
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r1, _0808A6B4 @ =sub_808A678
- adds r0, r4, 0
- bl sub_806ECE8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A6B4: .4byte sub_808A678
- thumb_func_end PokemonMenu_TakeItem
-
- thumb_func_start PokemonMenu_TakeMail
-PokemonMenu_TakeMail: @ 808A6B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r1, _0808A6E4 @ =sub_808A678
- adds r0, r4, 0
- bl sub_806EE08
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A6E4: .4byte sub_808A678
- thumb_func_end PokemonMenu_TakeMail
-
- thumb_func_start PokemonMenu_Mail
-PokemonMenu_Mail: @ 808A6E8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r1, _0808A728 @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0808A72C @ =gUnknown_0839F584
- ldr r2, _0808A730 @ =gPokemonMenuActions
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- ldr r1, _0808A734 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A738 @ =sub_808A73C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A728: .4byte gUnknown_0202FFA8
-_0808A72C: .4byte gUnknown_0839F584
-_0808A730: .4byte gPokemonMenuActions
-_0808A734: .4byte gTasks
-_0808A738: .4byte sub_808A73C
- thumb_func_end PokemonMenu_Mail
-
- thumb_func_start sub_808A73C
-sub_808A73C: @ 808A73C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A764 @ =gMain
- ldrh r0, [r0, 0x30]
- cmp r0, 0x40
- bne _0808A77A
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0808A768 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- cmp r0, 0
- bne _0808A770
- ldr r0, _0808A76C @ =gUnknown_0839F584
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- b _0808A774
- .align 2, 0
-_0808A764: .4byte gMain
-_0808A768: .4byte gUnknown_0202FFA8
-_0808A76C: .4byte gUnknown_0839F584
-_0808A770:
- movs r0, 0x1
- negs r0, r0
-_0808A774:
- bl MoveMenuCursor
- strb r0, [r4]
-_0808A77A:
- ldr r0, _0808A7A0 @ =gMain
- ldrh r0, [r0, 0x30]
- cmp r0, 0x80
- bne _0808A7B4
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0808A7A4 @ =gUnknown_0202FFA8
- ldrb r0, [r4]
- ldr r1, _0808A7A8 @ =gUnknown_0839F584
- ldrb r2, [r1]
- subs r1, r2, 0x1
- cmp r0, r1
- bne _0808A7AC
- movs r0, 0x1
- subs r0, r2
- lsls r0, 24
- asrs r0, 24
- b _0808A7AE
- .align 2, 0
-_0808A7A0: .4byte gMain
-_0808A7A4: .4byte gUnknown_0202FFA8
-_0808A7A8: .4byte gUnknown_0839F584
-_0808A7AC:
- movs r0, 0x1
-_0808A7AE:
- bl MoveMenuCursor
- strb r0, [r4]
-_0808A7B4:
- ldr r0, _0808A7E0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808A7F0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808A7E4 @ =gUnknown_0839F584
- ldr r2, _0808A7E8 @ =gPokemonMenuActions
- ldr r0, _0808A7EC @ =gUnknown_0202FFA8
- ldrb r3, [r0]
- movs r0, 0
- bl sub_806E81C
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
- b _0808A806
- .align 2, 0
-_0808A7E0: .4byte gMain
-_0808A7E4: .4byte gUnknown_0839F584
-_0808A7E8: .4byte gPokemonMenuActions
-_0808A7EC: .4byte gUnknown_0202FFA8
-_0808A7F0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808A806
- ldr r1, _0808A80C @ =gUnknown_0839F584
- movs r0, 0
- bl sub_806E7D0
- adds r0, r5, 0
- bl PokemonMenu_Cancel
-_0808A806:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A80C: .4byte gUnknown_0839F584
- thumb_func_end sub_808A73C
-
- thumb_func_start PokemonMenu_ReadMail
-PokemonMenu_ReadMail: @ 808A810
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808A840 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A844 @ =sub_808A848
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A840: .4byte gTasks
-_0808A844: .4byte sub_808A848
- thumb_func_end PokemonMenu_ReadMail
-
- thumb_func_start sub_808A848
-sub_808A848: @ 808A848
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808A898 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808A890
- adds r0, r5, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0808A89C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- ldr r1, _0808A8A0 @ =gSaveBlock1 + 0x2B4C
- adds r0, r1
- ldr r1, _0808A8A4 @ =sub_808A8A8
- movs r2, 0x1
- bl sub_80F890C
-_0808A890:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A898: .4byte gPaletteFade
-_0808A89C: .4byte gPlayerParty
-_0808A8A0: .4byte gSaveBlock1 + 0x2B4C
-_0808A8A4: .4byte sub_808A8A8
- thumb_func_end sub_808A848
-
- thumb_func_start sub_808A8A8
-sub_808A8A8: @ 808A8A8
- push {lr}
- ldr r1, _0808A8C4 @ =gUnknown_020384F0
- ldr r0, _0808A8C8 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0808A8CC @ =0x0201b000
- ldr r1, _0808A8D0 @ =0x00000262
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- bl sub_8089F14
- pop {r0}
- bx r0
- .align 2, 0
-_0808A8C4: .4byte gUnknown_020384F0
-_0808A8C8: .4byte gUnknown_03005CE0
-_0808A8CC: .4byte 0x0201b000
-_0808A8D0: .4byte 0x00000262
- thumb_func_end sub_808A8A8
-
- thumb_func_start sub_808A8D4
-sub_808A8D4: @ 808A8D4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0808A90C @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _0808A910 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A914 @ =sub_8089CD4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A90C: .4byte gUnknown_0202FFA8
-_0808A910: .4byte gTasks
-_0808A914: .4byte sub_8089CD4
- thumb_func_end sub_808A8D4
-
- thumb_func_start PokemonMenu_Cancel
-PokemonMenu_Cancel: @ 808A918
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_808A8D4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PokemonMenu_Cancel
-
- thumb_func_start PokemonMenu_CancelSubmenu
-PokemonMenu_CancelSubmenu: @ 808A938
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r0, _0808A978 @ =gUnknown_0202FFA8
- ldrb r0, [r0]
- bl sub_8089C7C
- ldr r1, _0808A97C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808A980 @ =sub_8089D94
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808A978: .4byte gUnknown_0202FFA8
-_0808A97C: .4byte gTasks
-_0808A980: .4byte sub_8089D94
- thumb_func_end PokemonMenu_CancelSubmenu
-
- thumb_func_start PokemonMenu_FieldMove
-PokemonMenu_FieldMove: @ 808A984
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0808A9D0 @ =gTasks + 0x8
- adds r4, r6, r7
- bl sub_8072DEC
- ldr r1, _0808A9D4 @ =gUnknown_0202FFAA
- ldr r0, _0808A9D8 @ =gUnknown_0202FFA8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0xA
- strh r0, [r4, 0x16]
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808A9DC
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldrh r0, [r4, 0x16]
- subs r0, 0xB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0808AABA
- movs r0, 0x9
- b _0808AAB2
- .align 2, 0
-_0808A9D0: .4byte gTasks + 0x8
-_0808A9D4: .4byte gUnknown_0202FFAA
-_0808A9D8: .4byte gUnknown_0202FFA8
-_0808A9DC:
- ldrh r1, [r4, 0x16]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0x7
- bgt _0808AA2C
- ldr r2, _0808AA20 @ =0x00000807
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AA2C
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_806D5A4
- ldr r0, _0808AA24 @ =gOtherText_CantBeUsedBadge
- movs r1, 0x1
- bl sub_806E834
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0808AA28 @ =sub_808AAF0
- str r1, [r0]
- b _0808AADA
- .align 2, 0
-_0808AA20: .4byte 0x00000807
-_0808AA24: .4byte gOtherText_CantBeUsedBadge
-_0808AA28: .4byte sub_808AAF0
-_0808AA2C:
- ldr r1, _0808AA78 @ =gFieldMoveFuncs
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AA90
- ldr r1, _0808AA7C @ =gUnknown_0202FFA8
- movs r0, 0
- strb r0, [r1]
- ldrh r0, [r4, 0x16]
- subs r0, 0xB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _0808AA88
- ldr r1, _0808AA80 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808AA84 @ =sub_808AB34
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0808AADA
- .align 2, 0
-_0808AA78: .4byte gFieldMoveFuncs
-_0808AA7C: .4byte gUnknown_0202FFA8
-_0808AA80: .4byte gTasks
-_0808AA84: .4byte sub_808AB34
-_0808AA88:
- adds r0, r5, 0
- bl sub_8133D28
- b _0808AADA
-_0808AA90:
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _0808AABA
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0808AABA
- movs r0, 0x8
-_0808AAB2:
- movs r1, 0
- bl sub_806D538
- b _0808AACC
-_0808AABA:
- ldr r0, _0808AAE4 @ =gFieldMoveFuncs
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x4]
- movs r1, 0
- bl sub_806D538
-_0808AACC:
- ldr r0, _0808AAE8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808AAEC @ =sub_808ABF4
- str r0, [r1]
-_0808AADA:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AAE4: .4byte gFieldMoveFuncs
-_0808AAE8: .4byte gTasks
-_0808AAEC: .4byte sub_808ABF4
- thumb_func_end PokemonMenu_FieldMove
-
- thumb_func_start sub_808AAF0
-sub_808AAF0: @ 808AAF0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AB2C @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808AB24
- ldr r0, _0808AB30 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808AB12
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808AB24
-_0808AB12:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl PokemonMenu_Cancel
-_0808AB24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AB2C: .4byte gUnknown_0202E8F6
-_0808AB30: .4byte gMain
- thumb_func_end sub_808AAF0
-
- thumb_func_start sub_808AB34
-sub_808AB34: @ 808AB34
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AB6C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808AB84
- ldr r0, _0808AB70 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x1E
- ldrsh r0, [r1, r2]
- cmp r0, 0x5
- bne _0808AB62
- bl sub_8147588
- lsls r0, 24
- cmp r0, 0
- beq _0808AB78
-_0808AB62:
- ldr r0, _0808AB74 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- b _0808AB7E
- .align 2, 0
-_0808AB6C: .4byte gPaletteFade
-_0808AB70: .4byte gTasks
-_0808AB74: .4byte c2_exit_to_overworld_2_switch
-_0808AB78:
- ldr r0, _0808AB8C @ =sub_80FC074
- bl SetMainCallback2
-_0808AB7E:
- adds r0, r4, 0
- bl DestroyTask
-_0808AB84:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AB8C: .4byte sub_80FC074
- thumb_func_end sub_808AB34
-
- thumb_func_start sub_808AB90
-sub_808AB90: @ 808AB90
- push {lr}
- bl pal_fill_black
- ldr r0, _0808ABA4 @ =sub_808ABA8
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0808ABA4: .4byte sub_808ABA8
- thumb_func_end sub_808AB90
-
- thumb_func_start sub_808ABA8
-sub_808ABA8: @ 808ABA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808ABDE
- ldr r0, _0808ABE4 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808ABE8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0808ABEC @ =gUnknown_0202FF84
- str r0, [r1]
- ldr r0, _0808ABF0 @ =gUnknown_03005CE4
- ldr r0, [r0]
- bl _call_via_r0
- adds r0, r4, 0
- bl DestroyTask
-_0808ABDE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808ABE4: .4byte gUnknown_03005CE0
-_0808ABE8: .4byte gPlayerParty
-_0808ABEC: .4byte gUnknown_0202FF84
-_0808ABF0: .4byte gUnknown_03005CE4
- thumb_func_end sub_808ABA8
-
- thumb_func_start sub_808ABF4
-sub_808ABF4: @ 808ABF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808AC28 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808AC0E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808AC20
-_0808AC0E:
- movs r0, 0x1
- movs r1, 0x11
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl PokemonMenu_Cancel
-_0808AC20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AC28: .4byte gMain
- thumb_func_end sub_808ABF4
-
- thumb_func_start sub_808AC2C
-sub_808AC2C: @ 808AC2C
- push {lr}
- ldr r0, _0808AC40 @ =gUnknown_0202FF84
- ldr r1, _0808AC44 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x9
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808AC40: .4byte gUnknown_0202FF84
-_0808AC44: .4byte gUnknown_03005CE0
- thumb_func_end sub_808AC2C
-
- thumb_func_start SetUpFieldMove_Surf
-SetUpFieldMove_Surf: @ 808AC48
- push {lr}
- bl PartyHasMonWithSurf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AC84
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AC84
- ldr r1, _0808AC74 @ =gUnknown_0300485C
- ldr r0, _0808AC78 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AC7C @ =gUnknown_03005CE4
- ldr r0, _0808AC80 @ =sub_808AC2C
- str r0, [r1]
- movs r0, 0x1
- b _0808AC86
- .align 2, 0
-_0808AC74: .4byte gUnknown_0300485C
-_0808AC78: .4byte sub_808AB90
-_0808AC7C: .4byte gUnknown_03005CE4
-_0808AC80: .4byte sub_808AC2C
-_0808AC84:
- movs r0, 0
-_0808AC86:
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Surf
-
- thumb_func_start sub_808AC8C
-sub_808AC8C: @ 808AC8C
- push {lr}
- ldr r0, _0808ACA0 @ =gUnknown_0202FF84
- ldr r1, _0808ACA4 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x1F
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808ACA0: .4byte gUnknown_0202FF84
-_0808ACA4: .4byte gUnknown_03005CE0
- thumb_func_end sub_808AC8C
-
- thumb_func_start SetUpFieldMove_Fly
-SetUpFieldMove_Fly: @ 808ACA8
- push {lr}
- bl sub_8147588
- lsls r0, 24
- cmp r0, 0
- beq _0808ACD0
- ldr r1, _0808ACC0 @ =gUnknown_0300485C
- ldr r0, _0808ACC4 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808ACC8 @ =gUnknown_03005CE4
- ldr r0, _0808ACCC @ =sub_81475C4
- b _0808ACF2
- .align 2, 0
-_0808ACC0: .4byte gUnknown_0300485C
-_0808ACC4: .4byte sub_808AB90
-_0808ACC8: .4byte gUnknown_03005CE4
-_0808ACCC: .4byte sub_81475C4
-_0808ACD0:
- ldr r0, _0808ACE4 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808ACE8
- movs r0, 0
- b _0808ACF6
- .align 2, 0
-_0808ACE4: .4byte gMapHeader
-_0808ACE8:
- ldr r1, _0808ACFC @ =gUnknown_0300485C
- ldr r0, _0808AD00 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AD04 @ =gUnknown_03005CE4
- ldr r0, _0808AD08 @ =sub_808AC8C
-_0808ACF2:
- str r0, [r1]
- movs r0, 0x1
-_0808ACF6:
- pop {r1}
- bx r1
- .align 2, 0
-_0808ACFC: .4byte gUnknown_0300485C
-_0808AD00: .4byte sub_808AB90
-_0808AD04: .4byte gUnknown_03005CE4
-_0808AD08: .4byte sub_808AC8C
- thumb_func_end SetUpFieldMove_Fly
-
- thumb_func_start sub_808AD0C
-sub_808AD0C: @ 808AD0C
- push {r4,lr}
- ldr r4, _0808AD14 @ =0x0201b260
- b _0808AD24
- .align 2, 0
-_0808AD14: .4byte 0x0201b260
-_0808AD18:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AD48
-_0808AD24:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AD18
- ldrb r0, [r4]
- ldr r1, _0808AD50 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808AD54 @ =sub_806AEDC
- bl SetMainCallback2
-_0808AD48:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AD50: .4byte gUnknown_03005CE0
-_0808AD54: .4byte sub_806AEDC
- thumb_func_end sub_808AD0C
-
- thumb_func_start sub_808AD58
-sub_808AD58: @ 808AD58
- push {lr}
- ldr r2, _0808AD7C @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _0808AD80 @ =sub_8089CD4
- movs r0, 0
- movs r1, 0xFF
- movs r3, 0
- bl sub_806AF4C
- ldr r0, _0808AD84 @ =sub_808AD0C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808AD7C: .4byte gPaletteFade
-_0808AD80: .4byte sub_8089CD4
-_0808AD84: .4byte sub_808AD0C
- thumb_func_end sub_808AD58
-
- thumb_func_start unref_sub_808AD88
-unref_sub_808AD88: @ 808AD88
- push {lr}
- ldr r0, _0808ADA4 @ =gUnknown_03005CE0
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808ADA8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0808ADA4: .4byte gUnknown_03005CE0
-_0808ADA8: .4byte gPlayerParty
- thumb_func_end unref_sub_808AD88
-
- thumb_func_start sub_808ADAC
-sub_808ADAC: @ 808ADAC
- push {lr}
- ldr r0, _0808ADC0 @ =gUnknown_0202FF84
- ldr r1, _0808ADC4 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x2C
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808ADC0: .4byte gUnknown_0202FF84
-_0808ADC4: .4byte gUnknown_03005CE0
- thumb_func_end sub_808ADAC
-
- thumb_func_start SetUpFieldMove_Dive
-SetUpFieldMove_Dive: @ 808ADC8
- push {lr}
- bl sub_8068F18
- ldr r1, _0808ADE0 @ =gUnknown_0202FF84
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1, 0x4]
- cmp r0, 0
- bne _0808ADE4
- movs r0, 0
- b _0808ADF2
- .align 2, 0
-_0808ADE0: .4byte gUnknown_0202FF84
-_0808ADE4:
- ldr r1, _0808ADF8 @ =gUnknown_0300485C
- ldr r0, _0808ADFC @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AE00 @ =gUnknown_03005CE4
- ldr r0, _0808AE04 @ =sub_808ADAC
- str r0, [r1]
- movs r0, 0x1
-_0808ADF2:
- pop {r1}
- bx r1
- .align 2, 0
-_0808ADF8: .4byte gUnknown_0300485C
-_0808ADFC: .4byte sub_808AB90
-_0808AE00: .4byte gUnknown_03005CE4
-_0808AE04: .4byte sub_808ADAC
- thumb_func_end SetUpFieldMove_Dive
-
- thumb_func_start sub_808AE08
-sub_808AE08: @ 808AE08
- push {lr}
- ldr r0, _0808AE1C @ =gUnknown_0202FF84
- ldr r1, _0808AE20 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x2B
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0808AE1C: .4byte gUnknown_0202FF84
-_0808AE20: .4byte gUnknown_03005CE0
- thumb_func_end sub_808AE08
-
- thumb_func_start SetUpFieldMove_Waterfall
-SetUpFieldMove_Waterfall: @ 808AE24
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AE80
- bl IsPlayerSurfingNorth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AE80
- ldr r1, _0808AE70 @ =gUnknown_0300485C
- ldr r0, _0808AE74 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0808AE78 @ =gUnknown_03005CE4
- ldr r0, _0808AE7C @ =sub_808AE08
- str r0, [r1]
- movs r0, 0x1
- b _0808AE82
- .align 2, 0
-_0808AE70: .4byte gUnknown_0300485C
-_0808AE74: .4byte sub_808AB90
-_0808AE78: .4byte gUnknown_03005CE4
-_0808AE7C: .4byte sub_808AE08
-_0808AE80:
- movs r0, 0
-_0808AE82:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_Waterfall
-
- thumb_func_start sub_808AE8C
-sub_808AE8C: @ 808AE8C
- push {r4-r6,lr}
- ldr r0, _0808AED8 @ =gScriptItemId
- ldrb r0, [r0]
- subs r0, 0x21
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_0808AE9A:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0808AEDC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0808AF10
- adds r0, r5, 0
- bl sub_806D668
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0808AECE
- adds r0, r4, 0
- adds r1, r6, 0
- bl CanMonLearnTMHM
- cmp r0, 0
- bne _0808AEE0
-_0808AECE:
- adds r0, r5, 0
- movs r1, 0x9A
- bl sub_806BC3C
- b _0808AF10
- .align 2, 0
-_0808AED8: .4byte gScriptItemId
-_0808AEDC: .4byte gPlayerParty
-_0808AEE0:
- ldr r0, _0808AF04 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemIdToBattleMoveId
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _0808AF08
- adds r0, r5, 0
- movs r1, 0xA8
- bl sub_806BC3C
- b _0808AF10
- .align 2, 0
-_0808AF04: .4byte gScriptItemId
-_0808AF08:
- adds r0, r5, 0
- movs r1, 0x8C
- bl sub_806BC3C
-_0808AF10:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0808AE9A
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_808AE8C
-
- thumb_func_start sub_808AF20
-sub_808AF20: @ 808AF20
- push {r4,r5,lr}
- movs r5, 0
-_0808AF24:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0808AF78 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0808AF66
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0808AF58
- ldr r0, _0808AF7C @ =gScriptItemId
- ldrh r2, [r0]
- adds r0, r4, 0
- movs r1, 0x3
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- cmp r0, 0
- bne _0808AF66
-_0808AF58:
- adds r0, r5, 0
- bl sub_806D668
- adds r0, r5, 0
- movs r1, 0
- bl sub_806BC3C
-_0808AF66:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0808AF24
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808AF78: .4byte gPlayerParty
-_0808AF7C: .4byte gScriptItemId
- thumb_func_end sub_808AF20
-
- thumb_func_start sub_808AF80
-sub_808AF80: @ 808AF80
- push {r4,r5,lr}
- ldr r5, _0808AFB0 @ =0x0201b260
-_0808AF84:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B00C
- ldr r0, _0808AFB4 @ =gUnknown_02038561
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808AFC6
- ldr r0, _0808AFB8 @ =gScriptItemId
- ldrh r0, [r0]
- bl CheckIfItemIsTMHMOrEvolutionStone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808AFBC
- cmp r0, 0x2
- beq _0808AFC2
- b _0808AFC6
- .align 2, 0
-_0808AFB0: .4byte 0x0201b260
-_0808AFB4: .4byte gUnknown_02038561
-_0808AFB8: .4byte gScriptItemId
-_0808AFBC:
- bl sub_808AE8C
- b _0808AFC6
-_0808AFC2:
- bl sub_808AF20
-_0808AFC6:
- ldr r4, _0808B000 @ =gUnknown_03005CE0
- ldrb r0, [r4]
- cmp r0, 0x5
- bhi _0808AFE2
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B004 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _0808AFE6
-_0808AFE2:
- movs r0, 0
- strb r0, [r4]
-_0808AFE6:
- ldrb r0, [r5]
- ldr r1, _0808B000 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r5]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B008 @ =sub_806AEDC
- bl SetMainCallback2
- b _0808B018
- .align 2, 0
-_0808B000: .4byte gUnknown_03005CE0
-_0808B004: .4byte gPlayerParty
-_0808B008: .4byte sub_806AEDC
-_0808B00C:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808AF84
-_0808B018:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808AF80
-
- thumb_func_start sub_808B020
-sub_808B020: @ 808B020
- push {lr}
- ldr r2, _0808B040 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0808B044 @ =gUnknown_02038561
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808B0A0
- cmp r0, 0x1
- bgt _0808B048
- cmp r0, 0
- beq _0808B052
- b _0808B0AC
- .align 2, 0
-_0808B040: .4byte gPaletteFade
-_0808B044: .4byte gUnknown_02038561
-_0808B048:
- cmp r0, 0x3
- beq _0808B0A0
- cmp r0, 0x4
- beq _0808B08C
- b _0808B0AC
-_0808B052:
- ldr r0, _0808B070 @ =gScriptItemId
- ldrh r0, [r0]
- bl CheckIfItemIsTMHMOrEvolutionStone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B078
- ldr r2, _0808B074 @ =sub_808B0C0
- movs r0, 0
- movs r1, 0
- movs r3, 0x14
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B070: .4byte gScriptItemId
-_0808B074: .4byte sub_808B0C0
-_0808B078:
- ldr r2, _0808B088 @ =sub_808B0C0
- movs r0, 0
- movs r1, 0
- movs r3, 0x3
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B088: .4byte sub_808B0C0
-_0808B08C:
- ldr r2, _0808B09C @ =sub_808B1EC
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- b _0808B0AC
- .align 2, 0
-_0808B09C: .4byte sub_808B1EC
-_0808B0A0:
- ldr r2, _0808B0B8 @ =sub_808B0C0
- movs r0, 0
- movs r1, 0
- movs r3, 0x4
- bl sub_806AF4C
-_0808B0AC:
- ldr r0, _0808B0BC @ =sub_808AF80
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B0B8: .4byte sub_808B0C0
-_0808B0BC: .4byte sub_808AF80
- thumb_func_end sub_808B020
-
- thumb_func_start sub_808B0C0
-sub_808B0C0: @ 808B0C0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B0EC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0808B1CE
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _0808B0F0
- cmp r0, 0x2
- beq _0808B184
- b _0808B1CE
- .align 2, 0
-_0808B0EC: .4byte gPaletteFade
-_0808B0F0:
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808B118 @ =gUnknown_03005CE0
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B11C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0808B120
- movs r0, 0x20
- bl PlaySE
- b _0808B1CE
- .align 2, 0
-_0808B118: .4byte gUnknown_03005CE0
-_0808B11C: .4byte gPlayerParty
-_0808B120:
- bl sub_806D5A4
- ldr r5, _0808B16C @ =gUnknown_02038561
- ldrb r0, [r5]
- cmp r0, 0
- bne _0808B13C
- ldr r3, _0808B170 @ =gUnknown_03004AE4
- ldr r0, _0808B174 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808B178 @ =sub_808B224
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
-_0808B13C:
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _0808B154
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0808B174 @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808B17C @ =sub_808B2EC
- adds r0, r4, 0
- bl sub_806E964
-_0808B154:
- ldrb r0, [r5]
- cmp r0, 0x3
- bne _0808B1CE
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0808B180 @ =sub_808B2B4
- adds r0, r4, 0
- bl sub_806EC44
- b _0808B1CE
- .align 2, 0
-_0808B16C: .4byte gUnknown_02038561
-_0808B170: .4byte gUnknown_03004AE4
-_0808B174: .4byte gScriptItemId
-_0808B178: .4byte sub_808B224
-_0808B17C: .4byte sub_808B2EC
-_0808B180: .4byte sub_808B2B4
-_0808B184:
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _0808B1D8 @ =gUnknown_03005CE0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, _0808B1DC @ =gUnknown_02038561
- ldrb r0, [r2]
- cmp r0, 0x1
- bhi _0808B1BA
- ldr r0, _0808B1E0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808B1E4 @ =sub_808B25C
- str r0, [r1]
-_0808B1BA:
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _0808B1CE
- ldr r0, _0808B1E0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808B1E8 @ =sub_808B2B4
- str r0, [r1]
-_0808B1CE:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B1D8: .4byte gUnknown_03005CE0
-_0808B1DC: .4byte gUnknown_02038561
-_0808B1E0: .4byte gTasks
-_0808B1E4: .4byte sub_808B25C
-_0808B1E8: .4byte sub_808B2B4
- thumb_func_end sub_808B0C0
-
- thumb_func_start sub_808B1EC
-sub_808B1EC: @ 808B1EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B214 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B20E
- ldr r3, _0808B218 @ =gUnknown_03004AE4
- ldr r0, _0808B21C @ =gScriptItemId
- ldrh r1, [r0]
- ldr r2, _0808B220 @ =sub_808B224
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
-_0808B20E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B214: .4byte gPaletteFade
-_0808B218: .4byte gUnknown_03004AE4
-_0808B21C: .4byte gScriptItemId
-_0808B220: .4byte sub_808B224
- thumb_func_end sub_808B1EC
-
- thumb_func_start sub_808B224
-sub_808B224: @ 808B224
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808B254 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B258 @ =sub_808B25C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B254: .4byte gTasks
-_0808B258: .4byte sub_808B25C
- thumb_func_end sub_808B224
-
- thumb_func_start sub_808B25C
-sub_808B25C: @ 808B25C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B280 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B27A
- ldr r0, _0808B284 @ =sub_80A5B40
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808B27A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B280: .4byte gPaletteFade
-_0808B284: .4byte sub_80A5B40
- thumb_func_end sub_808B25C
-
- thumb_func_start sub_808B288
-sub_808B288: @ 808B288
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B2AC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B2A6
- ldr r0, _0808B2B0 @ =sub_813B6F8
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0808B2A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B2AC: .4byte gPaletteFade
-_0808B2B0: .4byte sub_813B6F8
- thumb_func_end sub_808B288
-
- thumb_func_start sub_808B2B4
-sub_808B2B4: @ 808B2B4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808B2E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B2E8 @ =sub_808B288
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B2E4: .4byte gTasks
-_0808B2E8: .4byte sub_808B288
- thumb_func_end sub_808B2B4
-
- thumb_func_start sub_808B2EC
-sub_808B2EC: @ 808B2EC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B31C @ =gUnknown_0202E8F4
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0808B328
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0808B320 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B324 @ =sub_808B338
- str r1, [r0]
- b _0808B32E
- .align 2, 0
-_0808B31C: .4byte gUnknown_0202E8F4
-_0808B320: .4byte gTasks
-_0808B324: .4byte sub_808B338
-_0808B328:
- adds r0, r4, 0
- bl sub_808B224
-_0808B32E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808B2EC
-
- thumb_func_start sub_808B338
-sub_808B338: @ 808B338
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0808B38C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B384
- adds r0, r5, 0
- bl sub_806CA38
- ldr r1, _0808B390 @ =gUnknown_03005CE0
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0808B394 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl DestroyTask
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0808B398 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0
- ldr r2, _0808B39C @ =sub_808B3EC
- movs r0, 0x4
- movs r3, 0x3
- bl sub_80E62A0
-_0808B384:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B38C: .4byte gPaletteFade
-_0808B390: .4byte gUnknown_03005CE0
-_0808B394: .4byte gPlayerParty
-_0808B398: .4byte gSaveBlock1 + 0x2B4C
-_0808B39C: .4byte sub_808B3EC
- thumb_func_end sub_808B338
-
- thumb_func_start sub_808B3A0
-sub_808B3A0: @ 808B3A0
- push {r4,lr}
- ldr r4, _0808B3A8 @ =0x0201b260
- b _0808B3B8
- .align 2, 0
-_0808B3A8: .4byte 0x0201b260
-_0808B3AC:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808B3DC
-_0808B3B8:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B3AC
- ldrb r0, [r4]
- ldr r1, _0808B3E4 @ =gUnknown_03005CE0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B3E8 @ =sub_806AEDC
- bl SetMainCallback2
-_0808B3DC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B3E4: .4byte gUnknown_03005CE0
-_0808B3E8: .4byte sub_806AEDC
- thumb_func_end sub_808B3A0
-
- thumb_func_start sub_808B3EC
-sub_808B3EC: @ 808B3EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0808B464 @ =gPaletteFade
- mov r8, r0
- ldrb r0, [r0, 0x8]
- movs r1, 0x80
- orrs r0, r1
- mov r1, r8
- strb r0, [r1, 0x8]
- ldr r0, _0808B468 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _0808B480
- ldr r7, _0808B46C @ =gUnknown_0202E8F8
- ldrh r0, [r7]
- cmp r0, 0
- beq _0808B416
- movs r1, 0x1
- bl RemoveBagItem
-_0808B416:
- ldr r6, _0808B470 @ =gUnknown_03005CE0
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0808B474 @ =gPlayerParty
- adds r0, r4
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl AddBagItem
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- bl sub_80A2DF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xC
- adds r2, r7, 0
- bl SetMonData
- ldr r0, _0808B478 @ =sub_808B25C
- movs r1, 0x5
- bl CreateTask
- mov r0, r8
- ldrb r1, [r0, 0x8]
- movs r0, 0x7F
- ands r0, r1
- mov r1, r8
- strb r0, [r1, 0x8]
- ldr r0, _0808B47C @ =sub_806AEDC
- b _0808B48E
- .align 2, 0
-_0808B464: .4byte gPaletteFade
-_0808B468: .4byte gScriptResult
-_0808B46C: .4byte gUnknown_0202E8F8
-_0808B470: .4byte gUnknown_03005CE0
-_0808B474: .4byte gPlayerParty
-_0808B478: .4byte sub_808B25C
-_0808B47C: .4byte sub_806AEDC
-_0808B480:
- ldr r2, _0808B49C @ =sub_808B4A4
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- ldr r0, _0808B4A0 @ =sub_808B3A0
-_0808B48E:
- bl SetMainCallback2
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B49C: .4byte sub_808B4A4
-_0808B4A0: .4byte sub_808B3A0
- thumb_func_end sub_808B3EC
-
- thumb_func_start sub_808B4A4
-sub_808B4A4: @ 808B4A4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808B4D8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808B4D2
- ldr r0, _0808B4DC @ =gUnknown_03005CE0
- ldrb r0, [r0]
- ldr r1, _0808B4E0 @ =gScriptItemId
- ldrh r1, [r1]
- movs r2, 0x1
- bl sub_806EBF0
- ldr r1, _0808B4E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B4E8 @ =sub_808B4EC
- str r1, [r0]
-_0808B4D2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B4D8: .4byte gPaletteFade
-_0808B4DC: .4byte gUnknown_03005CE0
-_0808B4E0: .4byte gScriptItemId
-_0808B4E4: .4byte gTasks
-_0808B4E8: .4byte sub_808B4EC
- thumb_func_end sub_808B4A4
-
- thumb_func_start sub_808B4EC
-sub_808B4EC: @ 808B4EC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0808B504 @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808B500
- adds r0, r1, 0
- bl sub_808B224
-_0808B500:
- pop {r0}
- bx r0
- .align 2, 0
-_0808B504: .4byte gUnknown_0202E8F6
- thumb_func_end sub_808B4EC
-
- thumb_func_start sub_808B508
-sub_808B508: @ 808B508
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_808B224
- pop {r0}
- bx r0
- thumb_func_end sub_808B508
-
- thumb_func_start sub_808B518
-sub_808B518: @ 808B518
- push {r4,lr}
- ldr r4, _0808B520 @ =0x0201b260
- b _0808B530
- .align 2, 0
-_0808B520: .4byte 0x0201b260
-_0808B524:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0808B554
-_0808B530:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0808B524
- ldrb r0, [r4]
- ldr r1, _0808B55C @ =gUnknown_020384F0
- ldrb r1, [r1]
- bl sub_806C994
- ldrb r0, [r4]
- movs r1, 0
- bl sub_806BF74
- ldr r0, _0808B560 @ =sub_806AEDC
- bl SetMainCallback2
-_0808B554:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B55C: .4byte gUnknown_020384F0
-_0808B560: .4byte sub_806AEDC
- thumb_func_end sub_808B518
-
- thumb_func_start sub_808B564
-sub_808B564: @ 808B564
- push {lr}
- ldr r2, _0808B58C @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- bl sub_809FA30
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _0808B594
- ldr r2, _0808B590 @ =sub_806F490
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
- b _0808B5A0
- .align 2, 0
-_0808B58C: .4byte gPaletteFade
-_0808B590: .4byte sub_806F490
-_0808B594:
- ldr r2, _0808B5AC @ =sub_806F588
- movs r0, 0
- movs r1, 0
- movs r3, 0xFF
- bl sub_806AF4C
-_0808B5A0:
- ldr r0, _0808B5B0 @ =sub_808B518
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B5AC: .4byte sub_806F588
-_0808B5B0: .4byte sub_808B518
- thumb_func_end sub_808B564
-
- thumb_func_start sub_808B5B4
-sub_808B5B4: @ 808B5B4
- push {lr}
- ldr r3, _0808B5D8 @ =gUnknown_03005CF0
- ldr r2, _0808B5DC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, [r1]
- str r2, [r3]
- ldr r2, _0808B5E0 @ =sub_808B5E4
- str r2, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_0808B5D8: .4byte gUnknown_03005CF0
-_0808B5DC: .4byte gTasks
-_0808B5E0: .4byte sub_808B5E4
- thumb_func_end sub_808B5B4
-
- thumb_func_start sub_808B5E4
-sub_808B5E4: @ 808B5E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8055870
- cmp r0, 0x1
- beq _0808B602
- ldr r1, _0808B608 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808B60C @ =gUnknown_03005CF0
- ldr r1, [r1]
- str r1, [r0]
-_0808B602:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808B608: .4byte gTasks
-_0808B60C: .4byte gUnknown_03005CF0
- thumb_func_end sub_808B5E4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_81258BC.s b/asm/rom_81258BC.s
deleted file mode 100644
index cbc5697a6..000000000
--- a/asm/rom_81258BC.s
+++ /dev/null
@@ -1,30204 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start unref_sub_812AECC
-unref_sub_812AECC: @ 812AECC
- push {lr}
- bl sub_812613C
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _0812AEEA
- cmp r0, 0x1
- ble _0812AF08
- cmp r1, 0x2
- beq _0812AEF4
- cmp r1, 0x3
- beq _0812AEFA
- b _0812AF08
-_0812AEEA:
- movs r0, 0x16
- bl PlaySE
- movs r0, 0x1
- b _0812AF0A
-_0812AEF4:
- bl sub_812AF10
- b _0812AF08
-_0812AEFA:
- movs r0, 0x16
- bl PlaySE
- bl sub_812AF10
- movs r0, 0x1
- b _0812AF0A
-_0812AF08:
- movs r0, 0
-_0812AF0A:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_812AECC
-
- thumb_func_start sub_812AF10
-sub_812AF10: @ 812AF10
- push {lr}
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _0812AF2C @ =gStringVar4
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_0812AF2C: .4byte gStringVar4
- thumb_func_end sub_812AF10
-
- thumb_func_start sub_812AF30
-sub_812AF30: @ 812AF30
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0812AF8C @ =gTasks
- lsls r6, r0, 2
- adds r6, r0
- lsls r6, 3
- adds r6, r1
- ldr r1, _0812AF90 @ =gUnknown_03004B00
- ldrh r0, [r1]
- strh r0, [r6, 0x8]
- ldrh r0, [r1, 0x2]
- strh r0, [r6, 0xA]
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x3F
- bl sub_8076F98
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_807712C
- strh r4, [r6, 0xC]
- strh r5, [r6, 0xE]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r6, 0x10]
- movs r0, 0xA
- strh r0, [r6, 0x1C]
- ldr r0, _0812AF94 @ =sub_812AF98
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812AF8C: .4byte gTasks
-_0812AF90: .4byte gUnknown_03004B00
-_0812AF94: .4byte sub_812AF98
- thumb_func_end sub_812AF30
-
- thumb_func_start sub_812AF98
-sub_812AF98: @ 812AF98
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812AFC8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r5, [r4, 0xC]
- ldrb r6, [r4, 0x10]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- bne _0812AFD0
- movs r0, 0x5
- strh r0, [r4, 0x1C]
- strh r1, [r4, 0x1E]
- ldr r0, _0812AFCC @ =sub_812B004
- str r0, [r4]
- b _0812AFFE
- .align 2, 0
-_0812AFC8: .4byte gTasks
-_0812AFCC: .4byte sub_812B004
-_0812AFD0:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _0812AFEA
- strh r1, [r4, 0x1C]
- ldrh r0, [r4, 0x8]
- lsls r1, r5, 24
- asrs r1, 24
- bl PlaySE12WithPanning
-_0812AFEA:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r5, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- bl sub_8077104
- strh r0, [r4, 0xC]
-_0812AFFE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812AF98
-
- thumb_func_start sub_812B004
-sub_812B004: @ 812B004
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812B054 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0812B04C
- movs r0, 0
- strh r0, [r4, 0x1C]
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- ldrh r0, [r4, 0xA]
- lsls r1, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0812B04C
- adds r0, r5, 0
- bl move_anim_related_task_del
-_0812B04C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B054: .4byte gTasks
- thumb_func_end sub_812B004
-
- thumb_func_start sub_812B058
-sub_812B058: @ 812B058
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0812B0FC @ =gUnknown_03004B00
- ldrh r1, [r0]
- str r1, [sp]
- ldrb r5, [r0, 0x4]
- ldrb r6, [r0, 0x6]
- ldrb r3, [r0, 0x8]
- mov r10, r3
- ldrb r7, [r0, 0xA]
- ldrb r1, [r0, 0xC]
- mov r9, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r5, 0
- bl sub_8076F98
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- lsls r6, 24
- asrs r6, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_807712C
- ldr r2, _0812B100 @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- mov r6, sp
- ldrh r6, [r6]
- strh r6, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0xE]
- mov r0, r10
- strh r0, [r1, 0x10]
- strh r7, [r1, 0x12]
- mov r3, r9
- strh r3, [r1, 0x14]
- strh r2, [r1, 0x1C]
- strh r4, [r1, 0x1E]
- strh r3, [r1, 0x20]
- ldr r2, _0812B104 @ =sub_812B108
- str r2, [r1]
- mov r0, r8
- bl _call_via_r2
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B0FC: .4byte gUnknown_03004B00
-_0812B100: .4byte gTasks
-_0812B104: .4byte sub_812B108
- thumb_func_end sub_812B058
-
- thumb_func_start sub_812B108
-sub_812B108: @ 812B108
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812B14C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x20]
- adds r1, r0, 0x1
- strh r1, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0812B150
- movs r0, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x8]
- movs r1, 0x1E
- ldrsb r1, [r4, r1]
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _0812B150
- adds r0, r5, 0
- bl move_anim_related_task_del
- b _0812B182
- .align 2, 0
-_0812B14C: .4byte gTasks
-_0812B150:
- ldr r1, _0812B188 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0812B182
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0xE]
- ldrh r1, [r4, 0x1E]
- adds r0, r1
- strh r0, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- bl sub_8077104
- strh r0, [r4, 0x1E]
-_0812B182:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B188: .4byte gTasks
- thumb_func_end sub_812B108
-
- thumb_func_start sub_812B18C
-sub_812B18C: @ 812B18C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812B1CC
- ldr r0, _0812B1BC @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812B1C4
- ldr r0, _0812B1C0 @ =0x02019348
- ldrh r4, [r0]
- b _0812B272
- .align 2, 0
-_0812B1BC: .4byte gUnknown_03004B00
-_0812B1C0: .4byte 0x02019348
-_0812B1C4:
- adds r0, r5, 0
- bl move_anim_task_del
- b _0812B272
-_0812B1CC:
- ldr r0, _0812B1E0 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _0812B1E8
- ldr r0, _0812B1E4 @ =gUnknown_0202F7C8
- ldrb r4, [r0]
- b _0812B20E
- .align 2, 0
-_0812B1E0: .4byte gUnknown_03004B00
-_0812B1E4: .4byte gUnknown_0202F7C8
-_0812B1E8:
- cmp r1, 0x1
- bne _0812B1F8
- ldr r0, _0812B1F4 @ =gUnknown_0202F7C9
- ldrb r4, [r0]
- b _0812B20E
- .align 2, 0
-_0812B1F4: .4byte gUnknown_0202F7C9
-_0812B1F8:
- cmp r1, 0x2
- bne _0812B204
- ldr r0, _0812B200 @ =gUnknown_0202F7C8
- b _0812B206
- .align 2, 0
-_0812B200: .4byte gUnknown_0202F7C8
-_0812B204:
- ldr r0, _0812B230 @ =gUnknown_0202F7C9
-_0812B206:
- ldrb r1, [r0]
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r1
-_0812B20E:
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _0812B21A
- cmp r0, 0x3
- bne _0812B234
-_0812B21A:
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _0812B234
- adds r0, r5, 0
- bl move_anim_task_del
- b _0812B2B0
- .align 2, 0
-_0812B230: .4byte gUnknown_0202F7C9
-_0812B234:
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812B258
- ldr r1, _0812B250 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812B254 @ =gEnemyParty
- b _0812B266
- .align 2, 0
-_0812B250: .4byte gUnknown_02024A6A
-_0812B254: .4byte gEnemyParty
-_0812B258:
- ldr r1, _0812B290 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812B294 @ =gPlayerParty
-_0812B266:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_0812B272:
- cmp r4, 0
- beq _0812B2AA
- ldr r0, _0812B298 @ =gUnknown_03004B00
- ldrh r2, [r0, 0x2]
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- bne _0812B29C
- lsls r1, r6, 24
- asrs r1, 24
- adds r0, r4, 0
- bl PlayCry1
- b _0812B2AA
- .align 2, 0
-_0812B290: .4byte gUnknown_02024A6A
-_0812B294: .4byte gPlayerParty
-_0812B298: .4byte gUnknown_03004B00
-_0812B29C:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl PlayCry3
-_0812B2AA:
- adds r0, r5, 0
- bl move_anim_task_del
-_0812B2B0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812B18C
-
- thumb_func_start sub_812B2B8
-sub_812B2B8: @ 812B2B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812B2DC
- ldr r0, _0812B2D8 @ =0x02019348
- b _0812B2E6
- .align 2, 0
-_0812B2D8: .4byte 0x02019348
-_0812B2DC:
- ldr r1, _0812B304 @ =gUnknown_0202F7CA
- ldr r0, _0812B308 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
-_0812B2E6:
- ldrh r0, [r0]
- cmp r0, 0
- beq _0812B2F6
- lsls r1, r4, 24
- asrs r1, 24
- movs r2, 0x4
- bl PlayCry3
-_0812B2F6:
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B304: .4byte gUnknown_0202F7CA
-_0812B308: .4byte gUnknown_0202F7C8
- thumb_func_end sub_812B2B8
-
- thumb_func_start sub_812B30C
-sub_812B30C: @ 812B30C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0812B33C @ =gUnknown_03004B00
- ldrh r5, [r0]
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlaySE1WithPanning
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B33C: .4byte gUnknown_03004B00
- thumb_func_end sub_812B30C
-
- thumb_func_start sub_812B340
-sub_812B340: @ 812B340
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0812B370 @ =gUnknown_03004B00
- ldrh r5, [r0]
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlaySE2WithPanning
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B370: .4byte gUnknown_03004B00
- thumb_func_end sub_812B340
-
- thumb_func_start sub_812B374
-sub_812B374: @ 812B374
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0812B3F8 @ =gUnknown_03004B00
- ldrb r5, [r0, 0x2]
- ldrb r6, [r0, 0x4]
- ldrh r1, [r0, 0x6]
- mov r9, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r5, 0
- bl sub_8076F98
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- lsls r6, 24
- asrs r6, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_807712C
- ldr r2, _0812B3FC @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0xE]
- mov r0, r9
- strh r0, [r1, 0x12]
- strh r2, [r1, 0x1C]
- strh r4, [r1, 0x1E]
- ldr r2, _0812B400 @ =sub_812B404
- str r2, [r1]
- mov r0, r8
- bl _call_via_r2
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B3F8: .4byte gUnknown_03004B00
-_0812B3FC: .4byte gTasks
-_0812B400: .4byte sub_812B404
- thumb_func_end sub_812B374
-
- thumb_func_start sub_812B404
-sub_812B404: @ 812B404
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812B45C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r2, [r4, 0xE]
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _0812B43E
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r0, r2, r1
- strh r0, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- bl sub_8077104
- strh r0, [r4, 0x1E]
-_0812B43E:
- ldr r1, _0812B460 @ =gUnknown_0202F7D2
- ldrh r0, [r4, 0x1E]
- strb r0, [r1]
- movs r3, 0x1E
- ldrsh r1, [r4, r3]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0812B456
- adds r0, r5, 0
- bl move_anim_task_del
-_0812B456:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B45C: .4byte gTasks
-_0812B460: .4byte gUnknown_0202F7D2
- thumb_func_end sub_812B404
-
- thumb_func_start unref_sub_812B464
-unref_sub_812B464: @ 812B464
- bx lr
- thumb_func_end unref_sub_812B464
-
- thumb_func_start sub_812B468
-sub_812B468: @ 812B468
- ldr r1, _0812B478 @ =gUnknown_03004330
- ldr r0, _0812B47C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B480 @ =sub_812B484
- str r1, [r0]
- bx lr
- .align 2, 0
-_0812B478: .4byte gUnknown_03004330
-_0812B47C: .4byte gUnknown_02024A60
-_0812B480: .4byte sub_812B484
- thumb_func_end sub_812B468
-
- thumb_func_start sub_812B484
-sub_812B484: @ 812B484
- push {lr}
- ldr r2, _0812B4B8 @ =gUnknown_02024A64
- ldr r1, _0812B4BC @ =gBitTable
- ldr r0, _0812B4C0 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0812B4D0
- ldr r0, _0812B4C4 @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0812B4CC
- ldr r0, _0812B4C8 @ =gUnknown_08402080
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _0812B4D0
- .align 2, 0
-_0812B4B8: .4byte gUnknown_02024A64
-_0812B4BC: .4byte gBitTable
-_0812B4C0: .4byte gUnknown_02024A60
-_0812B4C4: .4byte gUnknown_02023A60
-_0812B4C8: .4byte gUnknown_08402080
-_0812B4CC:
- bl dp01_tbl6_exec_completed
-_0812B4D0:
- pop {r0}
- bx r0
- thumb_func_end sub_812B484
-
- thumb_func_start bx_battle_menu_t6_2
-bx_battle_menu_t6_2: @ 812B4D4
- push {r4,r5,lr}
- ldr r0, _0812B508 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0812B546
- movs r0, 0x5
- bl PlaySE
- bl sub_814A7FC
- ldr r1, _0812B50C @ =gUnknown_02024E60
- ldr r0, _0812B510 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0812B524
- cmp r0, 0x1
- bgt _0812B514
- cmp r0, 0
- beq _0812B51E
- b _0812B540
- .align 2, 0
-_0812B508: .4byte gMain
-_0812B50C: .4byte gUnknown_02024E60
-_0812B510: .4byte gUnknown_02024A60
-_0812B514:
- cmp r0, 0x2
- beq _0812B52A
- cmp r0, 0x3
- beq _0812B536
- b _0812B540
-_0812B51E:
- movs r0, 0x1
- movs r1, 0x5
- b _0812B52E
-_0812B524:
- movs r0, 0x1
- movs r1, 0x6
- b _0812B52E
-_0812B52A:
- movs r0, 0x1
- movs r1, 0x7
-_0812B52E:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _0812B540
-_0812B536:
- movs r0, 0x1
- movs r1, 0x8
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_0812B540:
- bl dp01_tbl6_exec_completed
- b _0812B64E
-_0812B546:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812B584
- ldr r5, _0812B57C @ =gUnknown_02024E60
- ldr r4, _0812B580 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0812B5F2
- .align 2, 0
-_0812B57C: .4byte gUnknown_02024E60
-_0812B580: .4byte gUnknown_02024A60
-_0812B584:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812B5C0
- ldr r5, _0812B5B8 @ =gUnknown_02024E60
- ldr r4, _0812B5BC @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0812B5F2
- .align 2, 0
-_0812B5B8: .4byte gUnknown_02024E60
-_0812B5BC: .4byte gUnknown_02024A60
-_0812B5C0:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0812B60C
- ldr r5, _0812B604 @ =gUnknown_02024E60
- ldr r4, _0812B608 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
-_0812B5F2:
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- b _0812B64E
- .align 2, 0
-_0812B604: .4byte gUnknown_02024E60
-_0812B608: .4byte gUnknown_02024A60
-_0812B60C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0812B64E
- ldr r5, _0812B654 @ =gUnknown_02024E60
- ldr r4, _0812B658 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
-_0812B64E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B654: .4byte gUnknown_02024E60
-_0812B658: .4byte gUnknown_02024A60
- thumb_func_end bx_battle_menu_t6_2
-
- thumb_func_start sub_812B65C
-sub_812B65C: @ 812B65C
- push {lr}
- ldr r2, _0812B684 @ =gSprites
- ldr r1, _0812B688 @ =gUnknown_02024BE0
- ldr r0, _0812B68C @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0812B690 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0812B680
- bl dp01_tbl6_exec_completed
-_0812B680:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B684: .4byte gSprites
-_0812B688: .4byte gUnknown_02024BE0
-_0812B68C: .4byte gUnknown_02024A60
-_0812B690: .4byte SpriteCallbackDummy
- thumb_func_end sub_812B65C
-
- thumb_func_start sub_812B694
-sub_812B694: @ 812B694
- push {lr}
- ldr r0, _0812B6A8 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0812B6A2
- bl dp01_tbl6_exec_completed
-_0812B6A2:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B6A8: .4byte gUnknown_03004210
- thumb_func_end sub_812B694
-
- thumb_func_start sub_812B6AC
-sub_812B6AC: @ 812B6AC
- push {lr}
- ldr r0, _0812B6DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812B6D6
- ldr r2, _0812B6E0 @ =gMain
- ldr r0, _0812B6E4 @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _0812B6E8 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0812B6D6:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B6DC: .4byte gPaletteFade
-_0812B6E0: .4byte gMain
-_0812B6E4: .4byte 0x0000043d
-_0812B6E8: .4byte gUnknown_030042D0
- thumb_func_end sub_812B6AC
-
- thumb_func_start bx_wait_t6
-bx_wait_t6: @ 812B6EC
- push {lr}
- ldr r0, _0812B718 @ =gUnknown_02024E6D
- ldrb r0, [r0]
- cmp r0, 0
- beq _0812B70E
- ldr r0, _0812B71C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812B720 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0812B712
-_0812B70E:
- bl dp01_tbl6_exec_completed
-_0812B712:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B718: .4byte gUnknown_02024E6D
-_0812B71C: .4byte gUnknown_02024A60
-_0812B720: .4byte 0x02017810
- thumb_func_end bx_wait_t6
-
- thumb_func_start sub_812B724
-sub_812B724: @ 812B724
- push {lr}
- ldr r0, _0812B748 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812B744
- ldr r1, _0812B74C @ =gUnknown_03004330
- ldr r0, _0812B750 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B754 @ =sub_812B758
- str r1, [r0]
- bl sub_810BADC
-_0812B744:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B748: .4byte gPaletteFade
-_0812B74C: .4byte gUnknown_03004330
-_0812B750: .4byte gUnknown_02024A60
-_0812B754: .4byte sub_812B758
- thumb_func_end sub_812B724
-
- thumb_func_start sub_812B758
-sub_812B758: @ 812B758
- push {lr}
- ldr r0, _0812B784 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0812B788 @ =sub_800F808
- cmp r1, r0
- bne _0812B77E
- ldr r0, _0812B78C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812B77E
- ldr r0, _0812B790 @ =gScriptItemId
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl6_exec_completed
-_0812B77E:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B784: .4byte gMain
-_0812B788: .4byte sub_800F808
-_0812B78C: .4byte gPaletteFade
-_0812B790: .4byte gScriptItemId
- thumb_func_end sub_812B758
-
- thumb_func_start sub_812B794
-sub_812B794: @ 812B794
- push {lr}
- ldr r0, _0812B7B8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812B7BC @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0812B7B2
- bl dp01_tbl6_exec_completed
-_0812B7B2:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B7B8: .4byte gUnknown_02024A60
-_0812B7BC: .4byte 0x02017810
- thumb_func_end sub_812B794
-
- thumb_func_start dp01_tbl6_exec_completed
-dp01_tbl6_exec_completed: @ 812B7C0
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0812B800 @ =gUnknown_03004330
- ldr r4, _0812B804 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B808 @ =sub_812B484
- str r1, [r0]
- ldr r0, _0812B80C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0812B814
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _0812B810 @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0812B826
- .align 2, 0
-_0812B800: .4byte gUnknown_03004330
-_0812B804: .4byte gUnknown_02024A60
-_0812B808: .4byte sub_812B484
-_0812B80C: .4byte gUnknown_020239F8
-_0812B810: .4byte gUnknown_02023A60
-_0812B814:
- ldr r2, _0812B830 @ =gUnknown_02024A64
- ldr r1, _0812B834 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0812B826:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B830: .4byte gUnknown_02024A64
-_0812B834: .4byte gBitTable
- thumb_func_end dp01_tbl6_exec_completed
-
- thumb_func_start unref_sub_812B838
-unref_sub_812B838: @ 812B838
- push {lr}
- ldr r0, _0812B85C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812B860 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0812B856
- bl dp01_tbl6_exec_completed
-_0812B856:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B85C: .4byte gUnknown_02024A60
-_0812B860: .4byte 0x02017810
- thumb_func_end unref_sub_812B838
-
- thumb_func_start sub_812B864
-sub_812B864: @ 812B864
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B864
-
- thumb_func_start sub_812B870
-sub_812B870: @ 812B870
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B870
-
- thumb_func_start sub_812B87C
-sub_812B87C: @ 812B87C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B87C
-
- thumb_func_start sub_812B888
-sub_812B888: @ 812B888
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B888
-
- thumb_func_start sub_812B894
-sub_812B894: @ 812B894
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B894
-
- thumb_func_start sub_812B8A0
-sub_812B8A0: @ 812B8A0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B8A0
-
- thumb_func_start sub_812B8AC
-sub_812B8AC: @ 812B8AC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B8AC
-
- thumb_func_start sub_812B8B8
-sub_812B8B8: @ 812B8B8
- push {r4-r6,lr}
- ldr r4, _0812B96C @ =gSaveBlock2
- ldrb r0, [r4, 0x8]
- ldr r5, _0812B970 @ =gUnknown_02024A60
- ldrb r1, [r5]
- bl sub_8031AF4
- ldrb r6, [r4, 0x8]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0812B974 @ =gUnknown_02024E8C
- ldr r2, _0812B978 @ =gTrainerBackPicCoords
- ldrb r1, [r4, 0x8]
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, _0812B97C @ =gUnknown_02024BE0
- ldrb r1, [r5]
- adds r1, r6
- strb r0, [r1]
- ldr r4, _0812B980 @ =gSprites
- ldrb r3, [r5]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0812B984 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0812B988 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0812B98C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B990 @ =sub_812B65C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B96C: .4byte gSaveBlock2
-_0812B970: .4byte gUnknown_02024A60
-_0812B974: .4byte gUnknown_02024E8C
-_0812B978: .4byte gTrainerBackPicCoords
-_0812B97C: .4byte gUnknown_02024BE0
-_0812B980: .4byte gSprites
-_0812B984: .4byte 0x0000fffe
-_0812B988: .4byte sub_80313A0
-_0812B98C: .4byte gUnknown_03004330
-_0812B990: .4byte sub_812B65C
- thumb_func_end sub_812B8B8
-
- thumb_func_start sub_812B994
-sub_812B994: @ 812B994
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B994
-
- thumb_func_start sub_812B9A0
-sub_812B9A0: @ 812B9A0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B9A0
-
- thumb_func_start sub_812B9AC
-sub_812B9AC: @ 812B9AC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B9AC
-
- thumb_func_start sub_812B9B8
-sub_812B9B8: @ 812B9B8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B9B8
-
- thumb_func_start sub_812B9C4
-sub_812B9C4: @ 812B9C4
- push {r4,r5,lr}
- ldr r1, _0812BA00 @ =0x02017840
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, _0812BA04 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, _0812BA08 @ =gUnknown_02024A60
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _0812BA0C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BA10 @ =bx_wait_t6
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BA00: .4byte 0x02017840
-_0812BA04: .4byte gUnknown_02024E6D
-_0812BA08: .4byte gUnknown_02024A60
-_0812BA0C: .4byte gUnknown_03004330
-_0812BA10: .4byte bx_wait_t6
- thumb_func_end sub_812B9C4
-
- thumb_func_start sub_812BA14
-sub_812BA14: @ 812BA14
- push {r4,r5,lr}
- ldr r1, _0812BA58 @ =gUnknown_02023A60
- ldr r5, _0812BA5C @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _0812BA60 @ =0x02017840
- strb r1, [r0, 0x8]
- ldr r1, _0812BA64 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _0812BA68 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BA6C @ =bx_wait_t6
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BA58: .4byte gUnknown_02023A60
-_0812BA5C: .4byte gUnknown_02024A60
-_0812BA60: .4byte 0x02017840
-_0812BA64: .4byte gUnknown_02024E6D
-_0812BA68: .4byte gUnknown_03004330
-_0812BA6C: .4byte bx_wait_t6
- thumb_func_end sub_812BA14
-
- thumb_func_start sub_812BA70
-sub_812BA70: @ 812BA70
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BA70
-
- thumb_func_start sub_812BA7C
-sub_812BA7C: @ 812BA7C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BA7C
-
- thumb_func_start dp01t_10_6_message
-dp01t_10_6_message: @ 812BA88
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0812BACC @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812BAD0 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _0812BAD4 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _0812BAD8 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _0812BADC @ =gUnknown_03004210
- ldr r1, _0812BAE0 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _0812BAE4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BAE8 @ =sub_812B694
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BACC: .4byte gUnknown_030042A4
-_0812BAD0: .4byte gUnknown_030042A0
-_0812BAD4: .4byte gUnknown_02024A60
-_0812BAD8: .4byte gUnknown_02023A62
-_0812BADC: .4byte gUnknown_03004210
-_0812BAE0: .4byte gUnknown_020238CC
-_0812BAE4: .4byte gUnknown_03004330
-_0812BAE8: .4byte sub_812B694
- thumb_func_end dp01t_10_6_message
-
- thumb_func_start dp01t_11_6_message_for_player_only
-dp01t_11_6_message_for_player_only: @ 812BAEC
- push {lr}
- ldr r0, _0812BB04 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812BB08
- bl dp01t_10_6_message
- b _0812BB0C
- .align 2, 0
-_0812BB04: .4byte gUnknown_02024A60
-_0812BB08:
- bl dp01_tbl6_exec_completed
-_0812BB0C:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_6_message_for_player_only
-
- thumb_func_start sub_812BB10
-sub_812BB10: @ 812BB10
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0812BBCC @ =gUnknown_030042A4
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0812BBD0 @ =gUnknown_030042A0
- movs r0, 0xA0
- strh r0, [r1]
- ldr r4, _0812BBD4 @ =gUnknown_03004210
- movs r5, 0
- strb r2, [r4, 0x6]
- movs r0, 0x1B
- str r0, [sp]
- movs r0, 0x12
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillWindowRect_DefaultPalette
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x24
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0x23
- bl FillWindowRect_DefaultPalette
- ldr r1, _0812BBD8 @ =gUnknown_03004330
- ldr r0, _0812BBDC @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BBE0 @ =bx_battle_menu_t6_2
- str r1, [r0]
- ldr r1, _0812BBE4 @ =gUnknown_08400D15
- movs r2, 0xC8
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x12
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0812BBE8 @ =0x0000ffff
- ldr r3, _0812BBEC @ =0x00002d9f
- str r5, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- movs r4, 0
-_0812BB84:
- lsls r0, r4, 24
- lsrs r0, 24
- bl nullsub_8
- adds r4, 0x1
- cmp r4, 0x3
- ble _0812BB84
- ldr r1, _0812BBF0 @ =gUnknown_02024E60
- ldr r0, _0812BBDC @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- ldr r0, _0812BBF4 @ =gUnknown_08400CBB
- bl get_battle_strings_
- ldr r4, _0812BBD4 @ =gUnknown_03004210
- ldr r1, _0812BBF8 @ =gUnknown_020238CC
- movs r2, 0xDC
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x2
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BBCC: .4byte gUnknown_030042A4
-_0812BBD0: .4byte gUnknown_030042A0
-_0812BBD4: .4byte gUnknown_03004210
-_0812BBD8: .4byte gUnknown_03004330
-_0812BBDC: .4byte gUnknown_02024A60
-_0812BBE0: .4byte bx_battle_menu_t6_2
-_0812BBE4: .4byte gUnknown_08400D15
-_0812BBE8: .4byte 0x0000ffff
-_0812BBEC: .4byte 0x00002d9f
-_0812BBF0: .4byte gUnknown_02024E60
-_0812BBF4: .4byte gUnknown_08400CBB
-_0812BBF8: .4byte gUnknown_020238CC
- thumb_func_end sub_812BB10
-
- thumb_func_start sub_812BBFC
-sub_812BBFC: @ 812BBFC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BBFC
-
- thumb_func_start sub_812BC08
-sub_812BC08: @ 812BC08
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC08
-
- thumb_func_start sub_812BC14
-sub_812BC14: @ 812BC14
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0812BC44 @ =gUnknown_03004330
- ldr r2, _0812BC48 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BC4C @ =sub_812B724
- str r1, [r0]
- ldr r1, _0812BC50 @ =gUnknown_02024E6C
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0812BC44: .4byte gUnknown_03004330
-_0812BC48: .4byte gUnknown_02024A60
-_0812BC4C: .4byte sub_812B724
-_0812BC50: .4byte gUnknown_02024E6C
- thumb_func_end sub_812BC14
-
- thumb_func_start sub_812BC54
-sub_812BC54: @ 812BC54
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC54
-
- thumb_func_start sub_812BC60
-sub_812BC60: @ 812BC60
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC60
-
- thumb_func_start sub_812BC6C
-sub_812BC6C: @ 812BC6C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC6C
-
- thumb_func_start sub_812BC78
-sub_812BC78: @ 812BC78
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC78
-
- thumb_func_start sub_812BC84
-sub_812BC84: @ 812BC84
- push {lr}
- ldr r0, _0812BCB0 @ =gUnknown_03004340
- ldr r1, _0812BCB4 @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _0812BCB8 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0812BCBC @ =gPlayerParty
- adds r1, r2
- movs r2, 0xB
- bl sub_8045A5C
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812BCB0: .4byte gUnknown_03004340
-_0812BCB4: .4byte gUnknown_02024A60
-_0812BCB8: .4byte gUnknown_02024A6A
-_0812BCBC: .4byte gPlayerParty
- thumb_func_end sub_812BC84
-
- thumb_func_start sub_812BCC0
-sub_812BCC0: @ 812BCC0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCC0
-
- thumb_func_start sub_812BCCC
-sub_812BCCC: @ 812BCCC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCCC
-
- thumb_func_start sub_812BCD8
-sub_812BCD8: @ 812BCD8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCD8
-
- thumb_func_start sub_812BCE4
-sub_812BCE4: @ 812BCE4
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCE4
-
- thumb_func_start sub_812BCF0
-sub_812BCF0: @ 812BCF0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCF0
-
- thumb_func_start sub_812BCFC
-sub_812BCFC: @ 812BCFC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCFC
-
- thumb_func_start sub_812BD08
-sub_812BD08: @ 812BD08
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD08
-
- thumb_func_start sub_812BD14
-sub_812BD14: @ 812BD14
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD14
-
- thumb_func_start sub_812BD20
-sub_812BD20: @ 812BD20
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD20
-
- thumb_func_start sub_812BD2C
-sub_812BD2C: @ 812BD2C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD2C
-
- thumb_func_start sub_812BD38
-sub_812BD38: @ 812BD38
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD38
-
- thumb_func_start sub_812BD44
-sub_812BD44: @ 812BD44
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD44
-
- thumb_func_start sub_812BD50
-sub_812BD50: @ 812BD50
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD50
-
- thumb_func_start sub_812BD5C
-sub_812BD5C: @ 812BD5C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD5C
-
- thumb_func_start sub_812BD68
-sub_812BD68: @ 812BD68
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD68
-
- thumb_func_start sub_812BD74
-sub_812BD74: @ 812BD74
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD74
-
- thumb_func_start sub_812BD80
-sub_812BD80: @ 812BD80
- push {r4,lr}
- ldr r4, _0812BDBC @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _0812BD94
- movs r3, 0xC0
-_0812BD94:
- ldr r2, _0812BDC0 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl6_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BDBC: .4byte gUnknown_02024A60
-_0812BDC0: .4byte gUnknown_02023A60
- thumb_func_end sub_812BD80
-
- thumb_func_start sub_812BDC4
-sub_812BDC4: @ 812BDC4
- push {lr}
- ldr r2, _0812BDEC @ =gUnknown_02023A60
- ldr r0, _0812BDF0 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812BDEC: .4byte gUnknown_02023A60
-_0812BDF0: .4byte gUnknown_02024A60
- thumb_func_end sub_812BDC4
-
- thumb_func_start sub_812BDF4
-sub_812BDF4: @ 812BDF4
- push {lr}
- ldr r1, _0812BE24 @ =gUnknown_02024A6A
- ldr r0, _0812BE28 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812BE2C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl PlayCry1
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812BE24: .4byte gUnknown_02024A6A
-_0812BE28: .4byte gUnknown_02024A60
-_0812BE2C: .4byte gPlayerParty
- thumb_func_end sub_812BDF4
-
- thumb_func_start dp01t_2E_6_battle_intro
-dp01t_2E_6_battle_intro: @ 812BE30
- push {lr}
- ldr r1, _0812BE58 @ =gUnknown_02023A60
- ldr r0, _0812BE5C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0812BE60 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812BE58: .4byte gUnknown_02023A60
-_0812BE5C: .4byte gUnknown_02024A60
-_0812BE60: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_6_battle_intro
-
- thumb_func_start sub_812BE64
-sub_812BE64: @ 812BE64
- push {r4,r5,lr}
- ldr r5, _0812BEA0 @ =gUnknown_03004340
- ldr r4, _0812BEA4 @ =gUnknown_02024A60
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _0812BEA8 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0812BEAC @ =gPlayerParty
- adds r1, r2
- movs r2, 0xA
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- bl dp01_tbl6_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BEA0: .4byte gUnknown_03004340
-_0812BEA4: .4byte gUnknown_02024A60
-_0812BEA8: .4byte gUnknown_02024A6A
-_0812BEAC: .4byte gPlayerParty
- thumb_func_end sub_812BE64
-
- thumb_func_start sub_812BEB0
-sub_812BEB0: @ 812BEB0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BEB0
-
- thumb_func_start sub_812BEBC
-sub_812BEBC: @ 812BEBC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BEBC
-
- thumb_func_start sub_812BEC8
-sub_812BEC8: @ 812BEC8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BEC8
-
- thumb_func_start sub_812BED4
-sub_812BED4: @ 812BED4
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BED4
-
- thumb_func_start sub_812BEE0
-sub_812BEE0: @ 812BEE0
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, _0812BF18 @ =gUnknown_02023A60
- ldr r6, _0812BF1C @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _0812BF20
- bl dp01_tbl6_exec_completed
- b _0812BF2C
- .align 2, 0
-_0812BF18: .4byte gUnknown_02023A60
-_0812BF1C: .4byte gUnknown_02024A60
-_0812BF20:
- ldr r0, _0812BF34 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0812BF38 @ =sub_812B794
- str r0, [r1]
-_0812BF2C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BF34: .4byte gUnknown_03004330
-_0812BF38: .4byte sub_812B794
- thumb_func_end sub_812BEE0
-
- thumb_func_start sub_812BF3C
-sub_812BF3C: @ 812BF3C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BF3C
-
- thumb_func_start sub_812BF48
-sub_812BF48: @ 812BF48
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BF48
-
- thumb_func_start sub_812BF54
-sub_812BF54: @ 812BF54
- push {r4,lr}
- ldr r2, _0812BF98 @ =gUnknown_02024D26
- ldr r1, _0812BF9C @ =gUnknown_02023A60
- ldr r4, _0812BFA0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl6_exec_completed
- ldr r0, _0812BFA4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _0812BF90
- ldr r0, _0812BFA8 @ =gUnknown_03004330
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0812BFAC @ =sub_812B6AC
- str r0, [r1]
-_0812BF90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BF98: .4byte gUnknown_02024D26
-_0812BF9C: .4byte gUnknown_02023A60
-_0812BFA0: .4byte gUnknown_02024A60
-_0812BFA4: .4byte gUnknown_020239F8
-_0812BFA8: .4byte gUnknown_03004330
-_0812BFAC: .4byte sub_812B6AC
- thumb_func_end sub_812BF54
-
- thumb_func_start nullsub_78
-nullsub_78: @ 812BFB0
- bx lr
- thumb_func_end nullsub_78
-
- thumb_func_start SetUpFieldMove_SweetScent
-SetUpFieldMove_SweetScent: @ 812BFB4
- ldr r1, _0812BFC4 @ =gUnknown_0300485C
- ldr r0, _0812BFC8 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _0812BFCC @ =gUnknown_03005CE4
- ldr r0, _0812BFD0 @ =sub_812BFD4
- str r0, [r1]
- movs r0, 0x1
- bx lr
- .align 2, 0
-_0812BFC4: .4byte gUnknown_0300485C
-_0812BFC8: .4byte sub_808AB90
-_0812BFCC: .4byte gUnknown_03005CE4
-_0812BFD0: .4byte sub_812BFD4
- thumb_func_end SetUpFieldMove_SweetScent
-
- thumb_func_start sub_812BFD4
-sub_812BFD4: @ 812BFD4
- push {lr}
- movs r0, 0x33
- bl FieldEffectStart
- ldr r0, _0812BFE8 @ =gUnknown_0202FF84
- ldr r1, _0812BFEC @ =gUnknown_03005CE0
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0812BFE8: .4byte gUnknown_0202FF84
-_0812BFEC: .4byte gUnknown_03005CE0
- thumb_func_end sub_812BFD4
-
- thumb_func_start FldEff_SweetScent
-FldEff_SweetScent: @ 812BFF0
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812C014 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0812C018 @ =sub_812C01C
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0812C014: .4byte gTasks
-_0812C018: .4byte sub_812C01C
- thumb_func_end FldEff_SweetScent
-
- thumb_func_start sub_812C01C
-sub_812C01C: @ 812C01C
- push {lr}
- sub sp, 0x4
- movs r0, 0xEC
- bl PlaySE
- bl GetPlayerAvatarObjectId
- ldr r2, _0812C078 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- mvns r0, r0
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r0, _0812C07C @ =sub_812C084
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812C080 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- movs r0, 0x33
- bl FieldEffectActiveListRemove
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0812C078: .4byte gSprites
-_0812C07C: .4byte sub_812C084
-_0812C080: .4byte gTasks
- thumb_func_end sub_812C01C
-
- thumb_func_start sub_812C084
-sub_812C084: @ 812C084
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0812C0C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0812C110
- ldr r0, _0812C0CC @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r4, r1, r0
- ldrh r1, [r4, 0x8]
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- cmp r0, 0x40
- bne _0812C10C
- strh r2, [r4, 0x8]
- bl SweetScentWildEncounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812C0D0
- adds r0, r5, 0
- bl DestroyTask
- b _0812C110
- .align 2, 0
-_0812C0C8: .4byte gPaletteFade
-_0812C0CC: .4byte gTasks
-_0812C0D0:
- ldr r0, _0812C104 @ =sub_812C118
- str r0, [r4]
- bl GetPlayerAvatarObjectId
- ldr r2, _0812C108 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- mvns r0, r0
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
- b _0812C110
- .align 2, 0
-_0812C104: .4byte sub_812C118
-_0812C108: .4byte gSprites
-_0812C10C:
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
-_0812C110:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812C084
-
- thumb_func_start sub_812C118
-sub_812C118: @ 812C118
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0812C13C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812C136
- ldr r0, _0812C140 @ =SweetScentNothingHereScript
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
-_0812C136:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C13C: .4byte gPaletteFade
-_0812C140: .4byte SweetScentNothingHereScript
- thumb_func_end sub_812C118
-
- thumb_func_start sub_812C144
-sub_812C144: @ 812C144
- push {lr}
- adds r2, r0, 0
- ldr r1, _0812C168 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r3, [r2, 0x20]
- adds r0, r3
- strh r0, [r2, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r3, [r2, 0x22]
- adds r0, r3
- strh r0, [r2, 0x22]
- movs r3, 0x6
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0812C16C
- ldrh r0, [r1, 0x4]
- b _0812C170
- .align 2, 0
-_0812C168: .4byte gUnknown_03004B00
-_0812C16C:
- ldrh r0, [r1, 0x4]
- negs r0, r0
-_0812C170:
- strh r0, [r2, 0x2E]
- ldrh r0, [r1, 0x8]
- strh r0, [r2, 0x30]
- ldr r0, _0812C180 @ =sub_812C184
- str r0, [r2, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_0812C180: .4byte sub_812C184
- thumb_func_end sub_812C144
-
- thumb_func_start sub_812C184
-sub_812C184: @ 812C184
- push {lr}
- adds r3, r0, 0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- ble _0812C1C4
- ldrh r1, [r3, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x2E]
- adds r1, r0
- strh r1, [r3, 0x32]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- b _0812C1CA
-_0812C1C4:
- adds r0, r3, 0
- bl move_anim_8072740
-_0812C1CA:
- pop {r0}
- bx r0
- thumb_func_end sub_812C184
-
- thumb_func_start sub_812C1D0
-sub_812C1D0: @ 812C1D0
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _0812C21C @ =gUnknown_0202F7C9
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 8
- movs r0, 0x80
- lsls r0, 12
- adds r4, r0
- asrs r4, 16
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 8
- movs r0, 0x80
- lsls r0, 12
- adds r1, r0
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_8046234
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C21C: .4byte gUnknown_0202F7C9
- thumb_func_end sub_812C1D0
-
- thumb_func_start sub_812C220
-sub_812C220: @ 812C220
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x5A
- strh r0, [r4, 0x2E]
- ldr r0, _0812C258 @ =sub_80782D8
- str r0, [r4, 0x1C]
- movs r0, 0x7
- strh r0, [r4, 0x30]
- ldr r1, _0812C25C @ =sub_812C268
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _0812C260 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _0812C264 @ =REG_BLDALPHA
- ldrh r1, [r4, 0x30]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C258: .4byte sub_80782D8
-_0812C25C: .4byte sub_812C268
-_0812C260: .4byte REG_BLDCNT
-_0812C264: .4byte REG_BLDALPHA
- thumb_func_end sub_812C220
-
- thumb_func_start sub_812C268
-sub_812C268: @ 812C268
- push {lr}
- adds r3, r0, 0
- ldr r2, _0812C29C @ =REG_BLDALPHA
- ldrh r1, [r3, 0x30]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _0812C296
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812C2A0 @ =sub_812C2A4
- str r0, [r3, 0x1C]
-_0812C296:
- pop {r0}
- bx r0
- .align 2, 0
-_0812C29C: .4byte REG_BLDALPHA
-_0812C2A0: .4byte sub_812C2A4
- thumb_func_end sub_812C268
-
- thumb_func_start sub_812C2A4
-sub_812C2A4: @ 812C2A4
- push {lr}
- ldr r1, _0812C2B8 @ =REG_BLDCNT
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_0812C2B8: .4byte REG_BLDCNT
- thumb_func_end sub_812C2A4
-
- thumb_func_start sub_812C2BC
-sub_812C2BC: @ 812C2BC
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r4, _0812C348 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
- ldrh r0, [r5, 0x20]
- subs r0, r7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r5, 0x22]
- subs r1, r6
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 23
- adds r0, r1
- lsrs r4, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812C31A
- movs r1, 0x80
- lsls r1, 7
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0812C31A:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldr r0, _0812C34C @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- strh r7, [r5, 0x32]
- strh r6, [r5, 0x36]
- ldr r0, _0812C350 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _0812C354 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C348: .4byte gUnknown_0202F7C9
-_0812C34C: .4byte gUnknown_03004B00
-_0812C350: .4byte sub_8078B34
-_0812C354: .4byte move_anim_8072740
- thumb_func_end sub_812C2BC
-
- thumb_func_start sub_812C358
-sub_812C358: @ 812C358
- ldr r2, _0812C378 @ =REG_BLDCNT
- movs r3, 0xFD
- lsls r3, 6
- adds r1, r3, 0
- strh r1, [r2]
- adds r2, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r1, r3, 0
- strh r1, [r2]
- movs r1, 0x4
- strh r1, [r0, 0x2E]
- ldr r1, _0812C37C @ =sub_812C380
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0812C378: .4byte REG_BLDCNT
-_0812C37C: .4byte sub_812C380
- thumb_func_end sub_812C358
-
- thumb_func_start sub_812C380
-sub_812C380: @ 812C380
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _0812C3A0 @ =REG_BLDALPHA
- ldrh r1, [r4, 0x2E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812C3A4
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- b _0812C3A8
- .align 2, 0
-_0812C3A0: .4byte REG_BLDALPHA
-_0812C3A4:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
-_0812C3A8:
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- beq _0812C3B6
- cmp r0, 0x4
- bne _0812C3BE
-_0812C3B6:
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x30]
-_0812C3BE:
- ldrh r0, [r4, 0x32]
- adds r1, r0, 0x1
- strh r1, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x46
- ble _0812C3FC
- ldr r0, _0812C404 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0
- strh r0, [r4, 0x32]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812C408 @ =sub_812C40C
- str r0, [r4, 0x1C]
-_0812C3FC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C404: .4byte REG_BLDCNT
-_0812C408: .4byte sub_812C40C
- thumb_func_end sub_812C380
-
- thumb_func_start sub_812C40C
-sub_812C40C: @ 812C40C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x32]
- adds r1, r0, 0x1
- strh r1, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _0812C448
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812C448
- ldr r0, _0812C44C @ =sub_812C450
- str r0, [r3, 0x1C]
-_0812C448:
- pop {r0}
- bx r0
- .align 2, 0
-_0812C44C: .4byte sub_812C450
- thumb_func_end sub_812C40C
-
- thumb_func_start sub_812C450
-sub_812C450: @ 812C450
- push {lr}
- adds r2, r0, 0
- movs r1, 0x34
- ldrsh r0, [r2, r1]
- cmp r0, 0x6
- bhi _0812C4A8
- lsls r0, 2
- ldr r1, _0812C468 @ =_0812C46C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812C468: .4byte _0812C46C
- .align 2, 0
-_0812C46C:
- .4byte _0812C488
- .4byte _0812C488
- .4byte _0812C492
- .4byte _0812C492
- .4byte _0812C4A0
- .4byte _0812C4A0
- .4byte _0812C4A8
-_0812C488:
- movs r1, 0
- movs r0, 0x1
- strh r0, [r2, 0x24]
- strh r1, [r2, 0x26]
- b _0812C4B0
-_0812C492:
- ldr r0, _0812C49C @ =0x0000ffff
- strh r0, [r2, 0x24]
- movs r0, 0
- b _0812C4AE
- .align 2, 0
-_0812C49C: .4byte 0x0000ffff
-_0812C4A0:
- movs r0, 0
- strh r0, [r2, 0x24]
- movs r0, 0x1
- b _0812C4AE
-_0812C4A8:
- movs r0, 0
- strh r0, [r2, 0x24]
- ldr r0, _0812C4F0 @ =0x0000ffff
-_0812C4AE:
- strh r0, [r2, 0x26]
-_0812C4B0:
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0812C4C2
- strh r3, [r2, 0x34]
-_0812C4C2:
- ldrh r0, [r2, 0x36]
- adds r1, r0, 0x1
- strh r1, [r2, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _0812C4EA
- movs r0, 0x10
- strh r0, [r2, 0x2E]
- strh r3, [r2, 0x30]
- ldr r1, _0812C4F4 @ =REG_BLDCNT
- movs r3, 0xFD
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x2E]
- strh r0, [r1]
- ldr r0, _0812C4F8 @ =sub_812C4FC
- str r0, [r2, 0x1C]
-_0812C4EA:
- pop {r0}
- bx r0
- .align 2, 0
-_0812C4F0: .4byte 0x0000ffff
-_0812C4F4: .4byte REG_BLDCNT
-_0812C4F8: .4byte sub_812C4FC
- thumb_func_end sub_812C450
-
- thumb_func_start sub_812C4FC
-sub_812C4FC: @ 812C4FC
- push {r4,lr}
- adds r2, r0, 0
- ldr r4, _0812C558 @ =REG_BLDALPHA
- ldrh r1, [r2, 0x2E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r4]
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x1
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812C526
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- movs r1, 0
- strh r0, [r2, 0x2E]
- strh r1, [r2, 0x30]
-_0812C526:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0812C53A
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
-_0812C53A:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bge _0812C550
- ldr r1, _0812C55C @ =REG_BLDCNT
- movs r0, 0
- strh r0, [r1]
- strh r0, [r4]
- adds r0, r2, 0
- bl move_anim_8072740
-_0812C550:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C558: .4byte REG_BLDALPHA
-_0812C55C: .4byte REG_BLDCNT
- thumb_func_end sub_812C4FC
-
- thumb_func_start sub_812C560
-sub_812C560: @ 812C560
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812C57C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0812C580 @ =sub_812C588
- str r0, [r1]
- ldr r1, _0812C584 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0812C57C: .4byte gTasks
-_0812C580: .4byte sub_812C588
-_0812C584: .4byte gUnknown_0202F7B2
- thumb_func_end sub_812C560
-
- thumb_func_start sub_812C588
-sub_812C588: @ 812C588
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80789BC
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _0812C614 @ =gTasks
- lsls r5, r4, 2
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r7
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812C5F8
- ldr r0, _0812C618 @ =gPlttBufferFaded
- lsls r2, r6, 4
- adds r1, r2, 0
- adds r1, 0xB
- lsls r1, 1
- adds r1, r0
- ldrh r3, [r1]
- mov r8, r3
- movs r3, 0xA
- mov r9, r7
- adds r7, r5, 0
- mov r12, r0
- adds r5, r2, 0
- lsls r0, r6, 5
- add r0, r12
- adds r2, r0, 0
- adds r2, 0x14
-_0812C5D6:
- ldrh r0, [r2]
- strh r0, [r1]
- subs r2, 0x2
- subs r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bgt _0812C5D6
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r12
- movs r1, 0
- mov r2, r8
- strh r2, [r0]
- adds r0, r7, r4
- lsls r0, 3
- add r0, r9
- strh r1, [r0, 0x12]
-_0812C5F8:
- ldr r0, _0812C61C @ =gUnknown_03004B00
- ldrh r1, [r0, 0xE]
- ldr r0, _0812C620 @ =0x0000ffff
- cmp r1, r0
- bne _0812C608
- adds r0, r4, 0
- bl DestroyTask
-_0812C608:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C614: .4byte gTasks
-_0812C618: .4byte gPlttBufferFaded
-_0812C61C: .4byte gUnknown_03004B00
-_0812C620: .4byte 0x0000ffff
- thumb_func_end sub_812C588
-
- thumb_func_start sub_812C624
-sub_812C624: @ 812C624
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812C640 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0812C644 @ =sub_812C64C
- str r0, [r1]
- ldr r1, _0812C648 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0812C640: .4byte gTasks
-_0812C644: .4byte sub_812C64C
-_0812C648: .4byte gUnknown_0202F7B2
- thumb_func_end sub_812C624
-
- thumb_func_start sub_812C64C
-sub_812C64C: @ 812C64C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl sub_80789BC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0812C70C @ =gTasks
- mov r0, r8
- lsls r3, r0, 2
- adds r1, r3, r0
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812C6EE
- ldr r0, _0812C710 @ =gPlttBufferFaded
- lsls r2, r7, 4
- adds r1, r2, 0
- adds r1, 0xB
- lsls r1, 1
- adds r1, r0
- ldrh r6, [r1]
- movs r4, 0xA
- mov r10, r3
- mov r9, r0
- adds r5, r2, 0
- ldr r2, _0812C714 @ =gPlttBufferUnfaded
- mov r12, r2
- lsls r0, r7, 5
- add r0, r9
- adds r3, r0, 0
- adds r3, 0x14
-_0812C6A0:
- ldrh r0, [r3]
- strh r0, [r1]
- subs r3, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _0812C6A0
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r9
- strh r6, [r0]
- adds r1, r5, 0
- adds r1, 0xB
- lsls r1, 1
- add r1, r12
- ldrh r6, [r1]
- movs r4, 0xA
- lsls r0, r7, 5
- add r0, r12
- adds r2, r0, 0
- adds r2, 0x14
-_0812C6CA:
- ldrh r0, [r2]
- strh r0, [r1]
- subs r2, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _0812C6CA
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r12
- movs r1, 0
- strh r6, [r0]
- mov r0, r10
- add r0, r8
- lsls r0, 3
- ldr r2, _0812C70C @ =gTasks
- adds r0, r2
- strh r1, [r0, 0x12]
-_0812C6EE:
- ldr r0, _0812C718 @ =gUnknown_03004B00
- ldrh r1, [r0, 0xE]
- ldr r0, _0812C71C @ =0x0000ffff
- cmp r1, r0
- bne _0812C6FE
- mov r0, r8
- bl DestroyTask
-_0812C6FE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C70C: .4byte gTasks
-_0812C710: .4byte gPlttBufferFaded
-_0812C714: .4byte gPlttBufferUnfaded
-_0812C718: .4byte gUnknown_03004B00
-_0812C71C: .4byte 0x0000ffff
- thumb_func_end sub_812C64C
-
- thumb_func_start sub_812C720
-sub_812C720: @ 812C720
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _0812C784 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- mov r5, sp
- adds r5, 0x2
- movs r1, 0
- mov r2, sp
- adds r3, r5, 0
- bl sub_807A3FC
- ldr r0, _0812C788 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812C754
- ldr r1, _0812C78C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_0812C754:
- ldr r1, _0812C78C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- mov r2, sp
- ldrh r0, [r1, 0x4]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- ldrh r5, [r5]
- adds r0, r5
- strh r0, [r4, 0x36]
- ldr r0, _0812C790 @ =0x0000ffce
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _0812C794 @ =sub_812C798
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C784: .4byte gUnknown_0202F7C9
-_0812C788: .4byte gUnknown_0202F7C8
-_0812C78C: .4byte gUnknown_03004B00
-_0812C790: .4byte 0x0000ffce
-_0812C794: .4byte sub_812C798
- thumb_func_end sub_812C720
-
- thumb_func_start sub_812C798
-sub_812C798: @ 812C798
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _0812C7BA
- movs r1, 0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldr r0, _0812C7C0 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _0812C7C4 @ =sub_812C7C8
- adds r0, r4, 0
- bl oamt_set_x3A_32
-_0812C7BA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C7C0: .4byte sub_80782D8
-_0812C7C4: .4byte sub_812C7C8
- thumb_func_end sub_812C798
-
- thumb_func_start sub_812C7C8
-sub_812C7C8: @ 812C7C8
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812C7F4
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_0812C7F4:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _0812C808
- adds r0, r3, 0
- bl move_anim_8072740
-_0812C808:
- pop {r0}
- bx r0
- thumb_func_end sub_812C7C8
-
- thumb_func_start sub_812C80C
-sub_812C80C: @ 812C80C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r5, _0812C83C @ =gUnknown_03004B00
- 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]
- ldr r0, _0812C840 @ =sub_8078600
- str r0, [r4, 0x1C]
- ldr r1, _0812C844 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C83C: .4byte gUnknown_03004B00
-_0812C840: .4byte sub_8078600
-_0812C844: .4byte move_anim_8072740
- thumb_func_end sub_812C80C
-
- thumb_func_start sub_812C848
-sub_812C848: @ 812C848
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812C8A8
- adds r0, r4, 0
- bl sub_8078650
- ldr r5, _0812C884 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r1, [r5, r2]
- adds r0, r4, 0
- bl sub_807867C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812C89C
- ldr r0, _0812C888 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812C88C
- ldrh r0, [r5, 0x4]
- b _0812C8A2
- .align 2, 0
-_0812C884: .4byte gUnknown_03004B00
-_0812C888: .4byte gUnknown_0202F7C8
-_0812C88C:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r2, 0x6
- ldrsh r0, [r5, r2]
- negs r0, r0
- b _0812C8A6
-_0812C89C:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- negs r0, r0
-_0812C8A2:
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x6]
-_0812C8A6:
- strh r0, [r4, 0x32]
-_0812C8A8:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r3, 0xFF
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- strh r1, [r4, 0x24]
- ands r0, r3
- movs r1, 0x5
- bl Sin
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xF0
- bls _0812C900
- adds r0, r4, 0
- bl move_anim_8072740
-_0812C900:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812C848
-
- thumb_func_start sub_812C908
-sub_812C908: @ 812C908
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812C91E
- adds r0, r2, 0
- bl move_anim_8072740
-_0812C91E:
- pop {r0}
- bx r0
- thumb_func_end sub_812C908
-
- thumb_func_start sub_812C924
-sub_812C924: @ 812C924
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0812C940 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812C948
- ldr r1, _0812C944 @ =gUnknown_03004B00
- movs r0, 0
- b _0812C94C
- .align 2, 0
-_0812C940: .4byte gUnknown_0202F7C9
-_0812C944: .4byte gUnknown_03004B00
-_0812C948:
- ldr r1, _0812C95C @ =gUnknown_03004B00
- movs r0, 0x1
-_0812C94C:
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C95C: .4byte gUnknown_03004B00
- thumb_func_end sub_812C924
-
- thumb_func_start sub_812C960
-sub_812C960: @ 812C960
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0812C974 @ =gUnknown_0202F7B8
- ldr r0, [r0]
- cmp r0, 0
- ble _0812C97C
- ldr r1, _0812C978 @ =gUnknown_03004B00
- movs r0, 0
- b _0812C980
- .align 2, 0
-_0812C974: .4byte gUnknown_0202F7B8
-_0812C978: .4byte gUnknown_03004B00
-_0812C97C:
- ldr r1, _0812C98C @ =gUnknown_03004B00
- movs r0, 0x1
-_0812C980:
- strh r0, [r1, 0xE]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_0812C98C: .4byte gUnknown_03004B00
- thumb_func_end sub_812C960
-
- thumb_func_start sub_812C990
-sub_812C990: @ 812C990
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0812C9EC @ =REG_WINOUT
- ldr r2, _0812C9F0 @ =0x00001f3f
- adds r0, r2, 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 r0, _0812C9F4 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812C9F8 @ =gUnknown_03004240
- strh r1, [r0]
- ldr r0, _0812C9FC @ =REG_WIN0H
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812CA00 @ =sub_812CA04
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C9EC: .4byte REG_WINOUT
-_0812C9F0: .4byte 0x00001f3f
-_0812C9F4: .4byte gUnknown_030042C4
-_0812C9F8: .4byte gUnknown_03004240
-_0812C9FC: .4byte REG_WIN0H
-_0812CA00: .4byte sub_812CA04
- thumb_func_end sub_812C990
-
- thumb_func_start sub_812CA04
-sub_812CA04: @ 812CA04
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _0812CAC4
- lsls r0, 2
- ldr r1, _0812CA1C @ =_0812CA20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812CA1C: .4byte _0812CA20
- .align 2, 0
-_0812CA20:
- .4byte _0812CA38
- .4byte _0812CA56
- .4byte _0812CA76
- .4byte _0812CA56
- .4byte _0812CA96
- .4byte _0812CAA6
-_0812CA38:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812CAC4
- b _0812CA9E
-_0812CA56:
- ldrh r0, [r4, 0x30]
- adds r0, 0x75
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _0812CAC4
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0812CA9E
-_0812CA76:
- ldrh r0, [r4, 0x30]
- subs r0, 0x75
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x29
- bne _0812CAC4
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0812CA9E
-_0812CA96:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_0812CA9E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0812CAC4
-_0812CAA6:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812CAC4
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812CACC @ =sub_812CAD0
- str r0, [r4, 0x1C]
-_0812CAC4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CACC: .4byte sub_812CAD0
- thumb_func_end sub_812CA04
-
- thumb_func_start sub_812CAD0
-sub_812CAD0: @ 812CAD0
- push {r4,lr}
- ldr r2, _0812CAF4 @ =REG_WINOUT
- ldr r3, _0812CAF8 @ =0x00003f3f
- adds r1, r3, 0
- strh r1, [r2]
- movs r3, 0x80
- lsls r3, 19
- ldrh r1, [r3]
- movs r4, 0x80
- lsls r4, 8
- adds r2, r4, 0
- eors r1, r2
- strh r1, [r3]
- bl move_anim_8072740
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CAF4: .4byte REG_WINOUT
-_0812CAF8: .4byte 0x00003f3f
- thumb_func_end sub_812CAD0
-
- thumb_func_start sub_812CAFC
-sub_812CAFC: @ 812CAFC
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _0812CB70 @ =gUnknown_03004B00
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0812CB28
- ldr r4, _0812CB74 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_0812CB28:
- ldrh r0, [r6]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r3, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r6, 0x2]
- ldrh r4, [r5, 0x22]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r4, _0812CB78 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _0812CB7C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0812CB84
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldr r0, _0812CB80 @ =0x0000fff4
- strh r0, [r5, 0x24]
- movs r0, 0x2
- b _0812CB8A
- .align 2, 0
-_0812CB70: .4byte gUnknown_03004B00
-_0812CB74: .4byte gUnknown_0202F7C8
-_0812CB78: .4byte 0x000003ff
-_0812CB7C: .4byte 0xfffffc00
-_0812CB80: .4byte 0x0000fff4
-_0812CB84:
- movs r0, 0xC
- strh r0, [r5, 0x24]
- ldr r0, _0812CBA8 @ =0x0000fffe
-_0812CB8A:
- strh r0, [r5, 0x30]
- ldr r1, _0812CBAC @ =gUnknown_03004B00
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0xFF
- beq _0812CB9E
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x34]
-_0812CB9E:
- ldr r0, _0812CBB0 @ =sub_812CBB4
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CBA8: .4byte 0x0000fffe
-_0812CBAC: .4byte gUnknown_03004B00
-_0812CBB0: .4byte sub_812CBB4
- thumb_func_end sub_812CAFC
-
- thumb_func_start sub_812CBB4
-sub_812CBB4: @ 812CBB4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812CBF2
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _0812CC12
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812CC12
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xDE
- bl PlaySE1WithPanning
- b _0812CC12
-_0812CBF2:
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x30]
- subs r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0812CC04
- negs r0, r0
-_0812CC04:
- cmp r0, 0xC
- bne _0812CC12
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- subs r0, r2, 0x1
- strh r0, [r4, 0x32]
-_0812CC12:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812CC20
- adds r0, r4, 0
- bl move_anim_8072740
-_0812CC20:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812CBB4
-
- thumb_func_start sub_812CC28
-sub_812CC28: @ 812CC28
- push {lr}
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r1, 0xFF
- strh r1, [r0, 0x34]
- bl sub_812CAFC
- pop {r0}
- bx r0
- thumb_func_end sub_812CC28
-
- thumb_func_start sub_812CC44
-sub_812CC44: @ 812CC44
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812CC7A
- ldr r1, _0812CC88 @ =REG_WININ
- ldr r2, _0812CC8C @ =0x00001f3f
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0812CC90 @ =gUnknown_03004200
- ldr r2, _0812CC94 @ =0x000098f0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0812CC98 @ =gUnknown_03004244
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, _0812CC9C @ =REG_WIN1H
- ldr r0, _0812CCA0 @ =gUnknown_030042C4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _0812CCA4 @ =gUnknown_03004240
- ldrh r0, [r0]
- strh r0, [r1]
-_0812CC7A:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CC88: .4byte REG_WININ
-_0812CC8C: .4byte 0x00001f3f
-_0812CC90: .4byte gUnknown_03004200
-_0812CC94: .4byte 0x000098f0
-_0812CC98: .4byte gUnknown_03004244
-_0812CC9C: .4byte REG_WIN1H
-_0812CCA0: .4byte gUnknown_030042C4
-_0812CCA4: .4byte gUnknown_03004240
- thumb_func_end sub_812CC44
-
- thumb_func_start sub_812CCA8
-sub_812CCA8: @ 812CCA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812CCCA
- ldr r1, _0812CCD8 @ =REG_WININ
- ldr r2, _0812CCDC @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812CCE0 @ =gUnknown_03004200
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812CCE4 @ =gUnknown_03004244
- strh r1, [r0]
-_0812CCCA:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CCD8: .4byte REG_WININ
-_0812CCDC: .4byte 0x00003f3f
-_0812CCE0: .4byte gUnknown_03004200
-_0812CCE4: .4byte gUnknown_03004244
- thumb_func_end sub_812CCA8
-
- thumb_func_start sub_812CCE8
-sub_812CCE8: @ 812CCE8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _0812CCFC @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0812CD04
- ldr r4, _0812CD00 @ =gUnknown_0202F7C8
- b _0812CD06
- .align 2, 0
-_0812CCFC: .4byte gUnknown_03004B00
-_0812CD00: .4byte gUnknown_0202F7C8
-_0812CD04:
- ldr r4, _0812CD58 @ =gUnknown_0202F7C9
-_0812CD06:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x2]
- adds r0, r6
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r2, _0812CD5C @ =gUnknown_03004B00
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x26]
- movs r3, 0
- lsls r0, 16
- asrs r0, 16
- ldrh r4, [r2, 0x6]
- movs r6, 0x6
- ldrsh r1, [r2, r6]
- cmp r0, r1
- ble _0812CD3E
- movs r3, 0x1
-_0812CD3E:
- strh r3, [r5, 0x2E]
- movs r0, 0
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0xA]
- strh r0, [r5, 0x34]
- strh r4, [r5, 0x36]
- ldr r0, _0812CD60 @ =sub_812CD64
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CD58: .4byte gUnknown_0202F7C9
-_0812CD5C: .4byte gUnknown_03004B00
-_0812CD60: .4byte sub_812CD64
- thumb_func_end sub_812CCE8
-
- thumb_func_start sub_812CD64
-sub_812CD64: @ 812CD64
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0x30]
- ldr r1, _0812CDAC @ =gSineTable
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x26]
- adds r1, r0, r3
- strh r1, [r2, 0x26]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0812CDB0
- lsls r0, r1, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bge _0812CDC2
- adds r0, r2, 0
- bl move_anim_8072740
- b _0812CDC2
- .align 2, 0
-_0812CDAC: .4byte gSineTable
-_0812CDB0:
- lsls r0, r1, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- ble _0812CDC2
- adds r0, r2, 0
- bl move_anim_8072740
-_0812CDC2:
- pop {r0}
- bx r0
- thumb_func_end sub_812CD64
-
- thumb_func_start sub_812CDC8
-sub_812CDC8: @ 812CDC8
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0812CDE8 @ =gTasks
- adds r5, r1, r0
- ldr r0, _0812CDEC @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812CDF4
- ldr r4, _0812CDF0 @ =gUnknown_0202F7C8
- b _0812CDF6
- .align 2, 0
-_0812CDE8: .4byte gTasks
-_0812CDEC: .4byte gUnknown_03004B00
-_0812CDF0: .4byte gUnknown_0202F7C8
-_0812CDF4:
- ldr r4, _0812CE3C @ =gUnknown_0202F7C9
-_0812CDF6:
- ldrb r0, [r4]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0
- adds r1, r0, 0
- adds r1, 0x24
- movs r2, 0
- strh r1, [r5, 0x8]
- strh r1, [r5, 0xA]
- subs r0, 0x21
- strh r0, [r5, 0xC]
- cmp r0, 0
- bge _0812CE20
- strh r2, [r5, 0xC]
-_0812CE20:
- ldrh r0, [r5, 0x8]
- strh r0, [r5, 0xE]
- movs r0, 0x8
- strh r0, [r5, 0x10]
- ldr r1, _0812CE40 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x12]
- strh r2, [r5, 0x14]
- strh r2, [r5, 0x16]
- cmp r7, 0x1
- bne _0812CE48
- ldr r0, _0812CE44 @ =gUnknown_030042C0
- b _0812CE4A
- .align 2, 0
-_0812CE3C: .4byte gUnknown_0202F7C9
-_0812CE40: .4byte gUnknown_03004B00
-_0812CE44: .4byte gUnknown_030042C0
-_0812CE48:
- ldr r0, _0812CE68 @ =gUnknown_03004288
-_0812CE4A:
- ldrh r2, [r0]
- strh r2, [r5, 0x18]
- adds r3, r2, 0
- adds r3, 0xF0
- strh r3, [r5, 0x1A]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x1C]
- movs r4, 0x4
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _0812CE6C
- strh r3, [r5, 0x1E]
- ldrh r3, [r5, 0x18]
- b _0812CE70
- .align 2, 0
-_0812CE68: .4byte gUnknown_03004288
-_0812CE6C:
- strh r2, [r5, 0x1E]
- ldrh r3, [r5, 0x1A]
-_0812CE70:
- movs r0, 0
- strh r0, [r5, 0x26]
- ldrh r1, [r5, 0xC]
- lsls r2, r1, 16
- asrs r1, r2, 16
- movs r6, 0xE
- ldrsh r0, [r5, r6]
- cmp r1, r0
- bgt _0812CEA6
- ldr r4, _0812CEB0 @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r0, r4
- mov r12, r0
-_0812CE8C:
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- add r1, r12
- strh r3, [r1]
- adds r2, 0x1
- lsls r2, 16
- asrs r1, r2, 16
- movs r6, 0xE
- ldrsh r0, [r5, r6]
- cmp r1, r0
- ble _0812CE8C
-_0812CEA6:
- cmp r7, 0x1
- bne _0812CEB8
- ldr r0, _0812CEB4 @ =REG_BG1HOFS
- b _0812CEBA
- .align 2, 0
-_0812CEB0: .4byte gUnknown_03004DE0
-_0812CEB4: .4byte REG_BG1HOFS
-_0812CEB8:
- ldr r0, _0812CEE4 @ =REG_BG2HOFS
-_0812CEBA:
- str r0, [sp]
- ldr r0, _0812CEE8 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _0812CEEC @ =sub_812CEF0
- str r0, [r5]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CEE4: .4byte REG_BG2HOFS
-_0812CEE8: .4byte 0xa2600001
-_0812CEEC: .4byte sub_812CEF0
- thumb_func_end sub_812CDC8
-
- thumb_func_start sub_812CEF0
-sub_812CEF0: @ 812CEF0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _0812CF40 @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0812CF18
- strh r2, [r4, 0x8]
-_0812CF18:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0812CF44
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0812CF48
- strh r2, [r4, 0xA]
- movs r0, 0x1
- strh r0, [r4, 0x26]
- b _0812CF48
- .align 2, 0
-_0812CF40: .4byte gTasks
-_0812CF44:
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
-_0812CF48:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812CF74
- movs r0, 0
- strh r0, [r4, 0x14]
- movs r1, 0
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0812CF66
- movs r1, 0x1
-_0812CF66:
- strh r1, [r4, 0x16]
- cmp r1, 0
- beq _0812CF70
- ldrh r0, [r4, 0x18]
- b _0812CF72
-_0812CF70:
- ldrh r0, [r4, 0x1A]
-_0812CF72:
- strh r0, [r4, 0x20]
-_0812CF74:
- ldrh r1, [r4, 0x8]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bge _0812CFA8
- ldr r5, _0812D000 @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_0812CF8A:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x20]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x20]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _0812CF8A
-_0812CFA8:
- ldrh r1, [r4, 0xA]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bgt _0812CFDC
- ldr r5, _0812D000 @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_0812CFBE:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x1E]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x1E]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _0812CFBE
-_0812CFDC:
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0812CFF8
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812CFF2
- ldr r1, _0812D004 @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_0812CFF2:
- adds r0, r7, 0
- bl move_anim_task_del
-_0812CFF8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D000: .4byte gUnknown_03004DE0
-_0812D004: .4byte gUnknown_03004DC0
- thumb_func_end sub_812CEF0
-
- thumb_func_start sub_812D008
-sub_812D008: @ 812D008
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0812D05C @ =gTasks
- adds r4, r0
- movs r5, 0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- ldr r6, _0812D060 @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xE]
- movs r0, 0x20
- strh r0, [r4, 0x10]
- ldr r0, _0812D064 @ =0x0000ffec
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x14]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _0812D068 @ =sub_812D06C
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D05C: .4byte gTasks
-_0812D060: .4byte gUnknown_0202F7C8
-_0812D064: .4byte 0x0000ffec
-_0812D068: .4byte sub_812D06C
- thumb_func_end sub_812D008
-
- thumb_func_start sub_812D06C
-sub_812D06C: @ 812D06C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0812D098 @ =gTasks
- adds r6, r0, r1
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x5
- bls _0812D08C
- b _0812D246
-_0812D08C:
- lsls r0, 2
- ldr r1, _0812D09C @ =_0812D0A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812D098: .4byte gTasks
-_0812D09C: .4byte _0812D0A0
- .align 2, 0
-_0812D0A0:
- .4byte _0812D0B8
- .4byte _0812D178
- .4byte _0812D1A6
- .4byte _0812D1BA
- .4byte _0812D1D0
- .4byte _0812D238
-_0812D0B8:
- movs r0, 0xC
- ldrsh r2, [r6, r0]
- ldrh r1, [r6, 0xA]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812D0CE
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- subs r0, r2, r0
- b _0812D0D4
-_0812D0CE:
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- adds r0, r2, r0
-_0812D0D4:
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r2, [r6, 0x12]
- ldrh r0, [r6, 0xE]
- adds r2, r0
- ldr r0, _0812D168 @ =gBattleAnimSpriteTemplate_83D7220
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldrb r4, [r6, 0xA]
- movs r3, 0x6
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xBA
- bl PlaySE12WithPanning
- cmp r4, 0x40
- beq _0812D138
- ldr r5, _0812D16C @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r3, r1, r5
- ldrh r0, [r6, 0xA]
- movs r2, 0x1
- ands r2, r0
- adds r3, 0x3F
- ldrb r4, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r4
- orrs r0, r2
- strb r0, [r3]
- adds r5, 0x1C
- adds r1, r5
- ldr r0, _0812D170 @ =SpriteCallbackDummy
- str r0, [r1]
-_0812D138:
- ldrh r1, [r6, 0xA]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0812D150
- ldrh r0, [r6, 0x10]
- subs r0, 0x6
- strh r0, [r6, 0x10]
- ldrh r0, [r6, 0x12]
- subs r0, 0x6
- strh r0, [r6, 0x12]
-_0812D150:
- ldrh r1, [r6, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D174 @ =gUnknown_08402400
- adds r0, r6, 0
- bl sub_80798F4
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- strh r4, [r6, 0x8]
- b _0812D246
- .align 2, 0
-_0812D168: .4byte gBattleAnimSpriteTemplate_83D7220
-_0812D16C: .4byte gSprites
-_0812D170: .4byte SpriteCallbackDummy
-_0812D174: .4byte gUnknown_08402400
-_0812D178:
- adds r0, r6, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0812D246
- movs r2, 0xA
- ldrsh r1, [r6, r2]
- cmp r1, 0x6
- bne _0812D198
- movs r0, 0x8
- strh r0, [r6, 0x14]
- movs r0, 0x3
- strh r0, [r6, 0x8]
- b _0812D246
-_0812D198:
- cmp r1, 0x2
- bgt _0812D19E
- movs r0, 0xA
-_0812D19E:
- strh r0, [r6, 0x14]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- b _0812D246
-_0812D1A6:
- ldrh r0, [r6, 0x14]
- movs r2, 0x14
- ldrsh r1, [r6, r2]
- cmp r1, 0
- beq _0812D1B6
- subs r0, 0x1
- strh r0, [r6, 0x14]
- b _0812D246
-_0812D1B6:
- strh r1, [r6, 0x8]
- b _0812D246
-_0812D1BA:
- ldrh r1, [r6, 0x14]
- movs r2, 0x14
- ldrsh r0, [r6, r2]
- cmp r0, 0
- beq _0812D1CA
- subs r0, r1, 0x1
- strh r0, [r6, 0x14]
- b _0812D246
-_0812D1CA:
- movs r0, 0x4
- strh r0, [r6, 0x8]
- b _0812D246
-_0812D1D0:
- movs r5, 0
- movs r7, 0
- ldr r3, _0812D22C @ =gSprites
- movs r0, 0x1C
- adds r0, r3
- mov r8, r0
-_0812D1DC:
- lsls r0, r5, 4
- adds r0, r5
- lsls r4, r0, 2
- adds r0, r3, 0
- adds r0, 0x14
- adds r0, r4, r0
- ldr r1, [r0]
- ldr r0, _0812D230 @ =gBattleAnimSpriteTemplate_83D7220
- cmp r1, r0
- bne _0812D218
- adds r0, r4, r3
- strh r2, [r0, 0x2E]
- movs r1, 0x6
- strh r1, [r0, 0x30]
- movs r1, 0x2
- str r2, [sp]
- str r3, [sp, 0x4]
- bl StartSpriteAnim
- mov r0, r8
- adds r1, r4, r0
- ldr r0, _0812D234 @ =sub_812D254
- str r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- cmp r7, 0x6
- beq _0812D222
-_0812D218:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3F
- bls _0812D1DC
-_0812D222:
- strh r7, [r6, 0x14]
- movs r0, 0x5
- strh r0, [r6, 0x8]
- b _0812D246
- .align 2, 0
-_0812D22C: .4byte gSprites
-_0812D230: .4byte gBattleAnimSpriteTemplate_83D7220
-_0812D234: .4byte sub_812D254
-_0812D238:
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0812D246
- adds r0, r2, 0
- bl move_anim_task_del
-_0812D246:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812D06C
-
- thumb_func_start sub_812D254
-sub_812D254: @ 812D254
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812D288
- ldr r3, _0812D290 @ =gTasks
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0812D288:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D290: .4byte gTasks
- thumb_func_end sub_812D254
-
- thumb_func_start sub_812D294
-sub_812D294: @ 812D294
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812D2A8
- adds r0, r5, 0
- movs r1, 0
- bl sub_80787B0
-_0812D2A8:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- bgt _0812D2DA
- ldrh r0, [r5, 0x2E]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0812D2CC
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _0812D2D8
-_0812D2CC:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
-_0812D2D8:
- strb r0, [r2]
-_0812D2DA:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1E
- ble _0812D2F0
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812D2F0:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x3D
- bne _0812D33C
- ldr r1, _0812D344 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldrh r0, [r5, 0x24]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x24]
- strh r1, [r5, 0x26]
- movs r0, 0x14
- strh r0, [r5, 0x2E]
- ldr r4, _0812D348 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _0812D34C @ =sub_8078B34
- str r0, [r5, 0x1C]
-_0812D33C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D344: .4byte move_anim_8072740
-_0812D348: .4byte gUnknown_0202F7C9
-_0812D34C: .4byte sub_8078B34
- thumb_func_end sub_812D294
-
- thumb_func_start sub_812D350
-sub_812D350: @ 812D350
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812D370 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812D374
- cmp r0, 0x1
- beq _0812D394
- b _0812D3A6
- .align 2, 0
-_0812D370: .4byte gTasks
-_0812D374:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D390 @ =gUnknown_084024B0
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812D3A6
- .align 2, 0
-_0812D390: .4byte gUnknown_084024B0
-_0812D394:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812D3A6
- adds r0, r5, 0
- bl move_anim_task_del
-_0812D3A6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812D350
-
- thumb_func_start sub_812D3AC
-sub_812D3AC: @ 812D3AC
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0812D40C
- cmp r0, 0x1
- bgt _0812D3CC
- cmp r0, 0
- beq _0812D3D6
- b _0812D4AE
-_0812D3CC:
- cmp r0, 0x2
- beq _0812D43C
- cmp r0, 0x3
- beq _0812D490
- b _0812D4AE
-_0812D3D6:
- ldr r4, _0812D408 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- adds r0, r6, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x32]
- b _0812D484
- .align 2, 0
-_0812D408: .4byte gUnknown_0202F7C8
-_0812D40C:
- ldrh r0, [r5, 0x30]
- adds r0, 0x60
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- subs r0, 0x1A
- strh r0, [r5, 0x32]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- adds r0, r6, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0812D43C
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_0812D43C:
- ldrh r0, [r5, 0x30]
- adds r0, 0x60
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x30
- strh r0, [r5, 0x32]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- adds r0, r6, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0812D4AE
- movs r0, 0
- strh r0, [r5, 0x34]
- ldr r1, _0812D48C @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0
- bl sub_8078F40
-_0812D484:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _0812D4AE
- .align 2, 0
-_0812D48C: .4byte gSprites
-_0812D490:
- ldrh r0, [r5, 0x26]
- subs r0, 0x6
- strh r0, [r5, 0x26]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _0812D4AE
- adds r0, r5, 0
- bl move_anim_8072740
-_0812D4AE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812D3AC
-
- thumb_func_start sub_812D4B4
-sub_812D4B4: @ 812D4B4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0812D4CC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812D4D4
- ldr r0, _0812D4D0 @ =0x0000fff0
- b _0812D4D8
- .align 2, 0
-_0812D4CC: .4byte gUnknown_0202F7C8
-_0812D4D0: .4byte 0x0000fff0
-_0812D4D4:
- movs r0, 0x80
- lsls r0, 1
-_0812D4D8:
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x22]
- ldr r0, _0812D4E8 @ =sub_812D4EC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D4E8: .4byte sub_812D4EC
- thumb_func_end sub_812D4B4
-
- thumb_func_start sub_812D4EC
-sub_812D4EC: @ 812D4EC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x48
- strh r0, [r4, 0x2E]
- ldr r0, _0812D50C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812D510
- ldrh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 20
- b _0812D518
- .align 2, 0
-_0812D50C: .4byte gUnknown_0202F7C8
-_0812D510:
- ldrh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 20
- negs r0, r0
-_0812D518:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x10
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r5, r0, r1
- strh r5, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _0812D564
- ldr r0, _0812D584 @ =gSpriteTemplate_8402500
- ldrh r1, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x22]
- adds r2, r5
- lsls r2, 16
- asrs r2, 16
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSpriteAndAnimate
-_0812D564:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x20
- movs r1, 0x98
- lsls r1, 1
- cmp r0, r1
- bls _0812D57E
- adds r0, r4, 0
- bl move_anim_8072740
-_0812D57E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D584: .4byte gSpriteTemplate_8402500
- thumb_func_end sub_812D4EC
-
- thumb_func_start sub_812D588
-sub_812D588: @ 812D588
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0812D5A2
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x4
- b _0812D5AA
-_0812D5A2:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x5
-_0812D5AA:
- ldr r3, _0812D5DC @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _0812D5E0 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- bl Random
- movs r1, 0x7
- ands r0, r1
- adds r1, r0, 0
- cmp r1, 0x3
- ble _0812D5CC
- negs r0, r1
- lsls r0, 24
- lsrs r0, 24
-_0812D5CC:
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _0812D5E4 @ =sub_812D5E8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D5DC: .4byte 0x000003ff
-_0812D5E0: .4byte 0xfffffc00
-_0812D5E4: .4byte sub_812D5E8
- thumb_func_end sub_812D588
-
- thumb_func_start sub_812D5E8
-sub_812D5E8: @ 812D5E8
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- bgt _0812D62A
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0812D65E
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0
- b _0812D65C
-_0812D62A:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x2
- bne _0812D640
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812D640:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x3
- bne _0812D658
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812D670 @ =0x0000ffff
- strh r0, [r3, 0x30]
-_0812D658:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
-_0812D65C:
- strh r0, [r3, 0x30]
-_0812D65E:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x3C
- ble _0812D66C
- adds r0, r3, 0
- bl DestroySprite
-_0812D66C:
- pop {r0}
- bx r0
- .align 2, 0
-_0812D670: .4byte 0x0000ffff
- thumb_func_end sub_812D5E8
-
- thumb_func_start sub_812D674
-sub_812D674: @ 812D674
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812D6AC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812D6B4
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D6B0 @ =gUnknown_08402518
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812D6C6
- .align 2, 0
-_0812D6AC: .4byte gTasks
-_0812D6B0: .4byte gUnknown_08402518
-_0812D6B4:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812D6C6
- adds r0, r5, 0
- bl move_anim_task_del
-_0812D6C6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812D674
-
- thumb_func_start sub_812D6CC
-sub_812D6CC: @ 812D6CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812D704 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812D70C
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D708 @ =gUnknown_08402540
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812D71E
- .align 2, 0
-_0812D704: .4byte gTasks
-_0812D708: .4byte gUnknown_08402540
-_0812D70C:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812D71E
- adds r0, r5, 0
- bl move_anim_task_del
-_0812D71E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812D6CC
-
- thumb_func_start sub_812D724
-sub_812D724: @ 812D724
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812D736
- cmp r0, 0x1
- beq _0812D760
- b _0812D788
-_0812D736:
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- movs r0, 0x90
- lsls r0, 4
- strh r0, [r4, 0x30]
- ldr r0, _0812D75C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0812D788
- .align 2, 0
-_0812D75C: .4byte gUnknown_0202F7C8
-_0812D760:
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- subs r2, 0x60
- strh r2, [r4, 0x30]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _0812D788
- adds r0, r4, 0
- bl move_anim_8072740
-_0812D788:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812D724
-
- thumb_func_start sub_812D790
-sub_812D790: @ 812D790
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812D7C8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812D7D0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D7CC @ =gUnknown_08402590
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812D7E2
- .align 2, 0
-_0812D7C8: .4byte gTasks
-_0812D7CC: .4byte gUnknown_08402590
-_0812D7D0:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812D7E2
- adds r0, r5, 0
- bl move_anim_task_del
-_0812D7E2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812D790
-
- thumb_func_start sub_812D7E8
-sub_812D7E8: @ 812D7E8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0812D818 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _0812D80E
- b _0812DAFA
-_0812D80E:
- lsls r0, 2
- ldr r1, _0812D81C @ =_0812D820
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812D818: .4byte gTasks
-_0812D81C: .4byte _0812D820
- .align 2, 0
-_0812D820:
- .4byte _0812D834
- .4byte _0812D888
- .4byte _0812D8C4
- .4byte _0812DA48
- .4byte _0812DA84
-_0812D834:
- ldr r1, _0812D850 @ =REG_MOSAIC
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0812D854 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812D85C
- ldr r0, _0812D858 @ =REG_BG1CNT
- b _0812D85E
- .align 2, 0
-_0812D850: .4byte REG_MOSAIC
-_0812D854: .4byte gUnknown_0202F7C8
-_0812D858: .4byte REG_BG1CNT
-_0812D85C:
- ldr r0, _0812D87C @ =REG_BG2CNT
-_0812D85E:
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0812D880 @ =gTasks
- mov r6, r8
- lsls r1, r6, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812D884 @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- b _0812DA2A
- .align 2, 0
-_0812D87C: .4byte REG_BG2CNT
-_0812D880: .4byte gTasks
-_0812D884: .4byte gUnknown_03004B00
-_0812D888:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _0812D8A2
- b _0812DAFA
-_0812D8A2:
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xA]
- ldr r1, _0812D8C0 @ =REG_MOSAIC
- lsls r0, r2, 4
- orrs r0, r2
- strh r0, [r1]
- cmp r2, 0xF
- beq _0812D8BC
- b _0812DAFA
-_0812D8BC:
- b _0812DA78
- .align 2, 0
-_0812D8C0: .4byte REG_MOSAIC
-_0812D8C4:
- ldr r5, _0812D8F4 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- ldr r1, _0812D8F8 @ =gUnknown_0202F7C9
- ldrb r1, [r1]
- mov r2, r8
- lsls r4, r2, 2
- adds r2, r4, r2
- lsls r2, 3
- adds r2, r3
- ldrb r2, [r2, 0x1C]
- bl sub_8031FC4
- ldrb r1, [r5]
- mov r0, sp
- bl sub_8078954
- bl sub_8076BE0
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- beq _0812D8FC
- movs r1, 0
- b _0812D906
- .align 2, 0
-_0812D8F4: .4byte gUnknown_0202F7C8
-_0812D8F8: .4byte gUnknown_0202F7C9
-_0812D8FC:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r1, r0, 24
-_0812D906:
- ldr r0, _0812D9CC @ =gUnknown_081FAF4C
- lsls r1, 2
- adds r1, r0
- ldr r2, _0812D9D0 @ =gUnknown_02024E84
- ldr r0, _0812D9D4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 11
- ldr r1, [r1]
- adds r1, r0
- ldr r2, [sp]
- ldr r0, _0812D9D8 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0812D9DC @ =0x84000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812DA20
- ldr r5, _0812D9E0 @ =0x02019348
- ldrh r0, [r5]
- bl sub_80AEB1C
- adds r4, r0, 0
- ldrh r0, [r5, 0x2]
- bl sub_80AEB1C
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0812D9A2
- ldr r6, [sp, 0x4]
- movs r5, 0
- movs r0, 0x7
- mov r12, r0
- movs r7, 0
-_0812D956:
- movs r4, 0
- adds r3, r7, r6
- mov r1, r12
- lsls r0, r1, 1
- adds r2, r0, r6
-_0812D960:
- ldrh r1, [r3]
- ldrh r0, [r2]
- strh r0, [r3]
- strh r1, [r2]
- adds r3, 0x2
- subs r2, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0812D960
- movs r2, 0x20
- add r12, r2
- adds r7, 0x40
- adds r5, 0x1
- cmp r5, 0x7
- ble _0812D956
- movs r5, 0
- movs r0, 0x80
- lsls r0, 3
- adds r3, r0, 0
-_0812D986:
- adds r2, r5, 0x1
- lsls r0, r5, 6
- adds r1, r0, r6
- movs r4, 0x7
-_0812D98E:
- ldrh r0, [r1]
- eors r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _0812D98E
- adds r5, r2, 0
- cmp r5, 0x7
- ble _0812D986
-_0812D9A2:
- ldr r0, _0812D9E0 @ =0x02019348
- ldrh r0, [r0, 0x2]
- bl sub_80AEB1C
- lsls r0, 24
- cmp r0, 0
- beq _0812D9F0
- ldr r3, _0812D9E4 @ =gSprites
- ldr r4, _0812D9E8 @ =gUnknown_02024BE0
- ldr r2, _0812D9D4 @ =gUnknown_0202F7C8
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _0812D9EC @ =gSpriteAffineAnimTable_81E7C18
- b _0812DA0A
- .align 2, 0
-_0812D9CC: .4byte gUnknown_081FAF4C
-_0812D9D0: .4byte gUnknown_02024E84
-_0812D9D4: .4byte gUnknown_0202F7C8
-_0812D9D8: .4byte 0x040000d4
-_0812D9DC: .4byte 0x84000200
-_0812D9E0: .4byte 0x02019348
-_0812D9E4: .4byte gSprites
-_0812D9E8: .4byte gUnknown_02024BE0
-_0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18
-_0812D9F0:
- ldr r3, _0812DA34 @ =gSprites
- ldr r4, _0812DA38 @ =gUnknown_02024BE0
- ldr r2, _0812DA3C @ =gUnknown_0202F7C8
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _0812DA40 @ =gSpriteAffineAnimTable_81E7BEC
-_0812DA0A:
- str r1, [r0]
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- bl StartSpriteAffineAnim
-_0812DA20:
- ldr r0, _0812DA44 @ =gTasks
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
-_0812DA2A:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0812DAFA
- .align 2, 0
-_0812DA34: .4byte gSprites
-_0812DA38: .4byte gUnknown_02024BE0
-_0812DA3C: .4byte gUnknown_0202F7C8
-_0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC
-_0812DA44: .4byte gTasks
-_0812DA48:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812DAFA
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xA]
- ldr r1, _0812DA80 @ =REG_MOSAIC
- lsls r0, r2, 4
- orrs r0, r2
- strh r0, [r1]
- cmp r2, 0
- bne _0812DAFA
-_0812DA78:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812DAFA
- .align 2, 0
-_0812DA80: .4byte REG_MOSAIC
-_0812DA84:
- ldr r1, _0812DAA0 @ =REG_MOSAIC
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0812DAA4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812DAAC
- ldr r2, _0812DAA8 @ =REG_BG1CNT
- b _0812DAAE
- .align 2, 0
-_0812DAA0: .4byte REG_MOSAIC
-_0812DAA4: .4byte gUnknown_0202F7C8
-_0812DAA8: .4byte REG_BG1CNT
-_0812DAAC:
- ldr r2, _0812DB08 @ =REG_BG2CNT
-_0812DAAE:
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812DAF4
- ldr r4, _0812DB0C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812DAF4
- ldr r0, _0812DB10 @ =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- bne _0812DAF4
- ldrb r0, [r4]
- lsls r1, r0, 2
- ldr r2, _0812DB14 @ =0x02017800
- adds r1, r2
- ldrh r1, [r1, 0x2]
- bl sub_8032984
-_0812DAF4:
- mov r0, r8
- bl move_anim_task_del
-_0812DAFA:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DB08: .4byte REG_BG2CNT
-_0812DB0C: .4byte gUnknown_0202F7C8
-_0812DB10: .4byte gTasks
-_0812DB14: .4byte 0x02017800
- thumb_func_end sub_812D7E8
-
- thumb_func_start c3_80DFBE4
-c3_80DFBE4: @ 812DB18
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0812DB48 @ =gUnknown_03004B00
- ldr r3, _0812DB4C @ =gSprites
- ldr r2, _0812DB50 @ =gUnknown_02024BE0
- ldr r1, _0812DB54 @ =gUnknown_0202F7C8
- ldrb r1, [r1]
- adds r1, r2
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x3E
- ldrb r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r4, 0xE]
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DB48: .4byte gUnknown_03004B00
-_0812DB4C: .4byte gSprites
-_0812DB50: .4byte gUnknown_02024BE0
-_0812DB54: .4byte gUnknown_0202F7C8
- thumb_func_end c3_80DFBE4
-
- thumb_func_start sub_812DB58
-sub_812DB58: @ 812DB58
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0812DB7C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- ldr r1, _0812DB80 @ =gUnknown_0202F7C9
- ldrb r1, [r1]
- movs r2, 0x1
- bl sub_8031FC4
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DB7C: .4byte gUnknown_0202F7C8
-_0812DB80: .4byte gUnknown_0202F7C9
- thumb_func_end sub_812DB58
-
- thumb_func_start sub_812DB84
-sub_812DB84: @ 812DB84
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _0812DBB4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _0812DBA8
- b _0812DE80
-_0812DBA8:
- lsls r0, 2
- ldr r1, _0812DBB8 @ =_0812DBBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812DBB4: .4byte gTasks
-_0812DBB8: .4byte _0812DBBC
- .align 2, 0
-_0812DBBC:
- .4byte _0812DBD0
- .4byte _0812DCFC
- .4byte _0812DD4C
- .4byte _0812DDB6
- .4byte _0812DDEA
-_0812DBD0:
- ldr r1, _0812DC70 @ =REG_BLDCNT
- ldr r4, _0812DC74 @ =0x00003f42
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _0812DC78 @ =REG_BG1CNT
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812DC12
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_0812DC12:
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r2, _0812DC7C @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0812DC80 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0812DC84 @ =gUnknown_08D2AA98
- bl LZDecompressVram
- ldr r0, _0812DC88 @ =gUnknown_08D2A9E0
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _0812DC8C @ =gUnknown_08D2AA80
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812DC9C
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
- ldr r1, _0812DC90 @ =gUnknown_030042C0
- ldr r2, _0812DC94 @ =0x0000ffc8
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812DC98 @ =gUnknown_030041B4
- strh r4, [r0]
- b _0812DCCE
- .align 2, 0
-_0812DC70: .4byte REG_BLDCNT
-_0812DC74: .4byte 0x00003f42
-_0812DC78: .4byte REG_BG1CNT
-_0812DC7C: .4byte 0x040000d4
-_0812DC80: .4byte 0x85000400
-_0812DC84: .4byte gUnknown_08D2AA98
-_0812DC88: .4byte gUnknown_08D2A9E0
-_0812DC8C: .4byte gUnknown_08D2AA80
-_0812DC90: .4byte gUnknown_030042C0
-_0812DC94: .4byte 0x0000ffc8
-_0812DC98: .4byte gUnknown_030041B4
-_0812DC9C:
- ldr r0, _0812DCB4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812DCC0
- ldr r1, _0812DCB8 @ =gUnknown_030042C0
- ldr r4, _0812DCBC @ =0x0000ff79
- adds r0, r4, 0
- b _0812DCC6
- .align 2, 0
-_0812DCB4: .4byte gUnknown_0202F7C8
-_0812DCB8: .4byte gUnknown_030042C0
-_0812DCBC: .4byte 0x0000ff79
-_0812DCC0:
- ldr r1, _0812DCEC @ =gUnknown_030042C0
- ldr r2, _0812DCF0 @ =0x0000fff6
- adds r0, r2, 0
-_0812DCC6:
- strh r0, [r1]
- ldr r1, _0812DCF4 @ =gUnknown_030041B4
- movs r0, 0
- strh r0, [r1]
-_0812DCCE:
- ldr r0, _0812DCF8 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812DCEC @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- ldr r0, _0812DCF4 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- b _0812DDD2
- .align 2, 0
-_0812DCEC: .4byte gUnknown_030042C0
-_0812DCF0: .4byte 0x0000fff6
-_0812DCF4: .4byte gUnknown_030041B4
-_0812DCF8: .4byte gTasks
-_0812DCFC:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x10]
- adds r1, r0, 0x1
- strh r1, [r3, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _0812DD12
- b _0812DE80
-_0812DD12:
- movs r0, 0
- strh r0, [r3, 0x10]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0812DD28
- movs r0, 0xC
- strh r0, [r3, 0xA]
-_0812DD28:
- ldr r2, _0812DD48 @ =REG_BLDALPHA
- ldrh r1, [r3, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r4, 0xA
- ldrsh r0, [r3, r4]
- cmp r0, 0xC
- beq _0812DD40
- b _0812DE80
-_0812DD40:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _0812DE80
- .align 2, 0
-_0812DD48: .4byte REG_BLDALPHA
-_0812DD4C:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0812DD64
- movs r0, 0
- strh r0, [r3, 0xA]
-_0812DD64:
- ldr r2, _0812DDA4 @ =REG_BLDALPHA
- ldrh r1, [r3, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _0812DD7C
- b _0812DE80
-_0812DD7C:
- ldr r2, _0812DDA8 @ =gUnknown_030042C0
- ldr r1, _0812DDAC @ =gUnknown_084025C0
- movs r4, 0xC
- ldrsh r0, [r3, r4]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r3, 0x1C]
- adds r0, r1
- strh r0, [r2]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812DDB0
- strh r0, [r3, 0x8]
- b _0812DE80
- .align 2, 0
-_0812DDA4: .4byte REG_BLDALPHA
-_0812DDA8: .4byte gUnknown_030042C0
-_0812DDAC: .4byte gUnknown_084025C0
-_0812DDB0:
- movs r0, 0x3
- strh r0, [r3, 0x8]
- b _0812DE80
-_0812DDB6:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812DE80
- movs r0, 0
- strh r0, [r1, 0xE]
- movs r0, 0x1
-_0812DDD2:
- strh r0, [r1, 0x8]
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xE4
- bl PlaySE12WithPanning
- b _0812DE80
-_0812DDEA:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0xC
- movs r6, 0
- ldr r1, _0812DE90 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r5
- ldr r0, _0812DE94 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_0812DE0C:
- str r6, [sp, 0xC]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _0812DE0C
- str r6, [sp, 0xC]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r0, _0812DE90 @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0812DE98 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812DE5A
- ldr r2, _0812DE9C @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812DE5A:
- ldr r2, _0812DE9C @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812DEA0 @ =gUnknown_030042C0
- strh r4, [r0]
- ldr r0, _0812DEA4 @ =gUnknown_030041B4
- strh r4, [r0]
- ldr r0, _0812DEA8 @ =REG_BLDCNT
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, r7, 0
- bl move_anim_task_del
-_0812DE80:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DE90: .4byte 0x040000d4
-_0812DE94: .4byte 0x85000400
-_0812DE98: .4byte 0x85000200
-_0812DE9C: .4byte REG_BG1CNT
-_0812DEA0: .4byte gUnknown_030042C0
-_0812DEA4: .4byte gUnknown_030041B4
-_0812DEA8: .4byte REG_BLDCNT
- thumb_func_end sub_812DB84
-
- thumb_func_start sub_812DEAC
-sub_812DEAC: @ 812DEAC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- bl Random
- lsls r0, 16
- movs r1, 0xFC
- lsls r1, 14
- ands r1, r0
- lsrs r5, r1, 16
- adds r1, r5, 0
- cmp r1, 0x1F
- ble _0812DED6
- movs r0, 0x20
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_0812DED6:
- ldr r4, _0812DFD0 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r5
- strh r0, [r7, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r7, 0x22]
- ldr r1, _0812DFD4 @ =gUnknown_03004B00
- ldrh r0, [r1]
- strh r0, [r7, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r7, 0x32]
- ldr r4, _0812DFD8 @ =gBattleAnimSpriteTemplate_84025EC
- movs r0, 0x20
- ldrsh r1, [r7, r0]
- movs r0, 0x22
- ldrsh r2, [r7, r0]
- adds r5, r7, 0
- adds r5, 0x43
- ldrb r3, [r5]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl CreateSprite
- mov r9, r0
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0x20
- ldrsh r1, [r7, r0]
- movs r0, 0x22
- ldrsh r2, [r7, r0]
- ldrb r3, [r5]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl CreateSprite
- mov r8, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r0, r9
- lsls r2, r0, 4
- add r2, r9
- lsls r2, 2
- ldr r1, _0812DFDC @ =gSprites
- mov r10, r1
- adds r5, r2, r1
- adds r0, r5, 0
- movs r1, 0x1
- str r2, [sp]
- bl StartSpriteAnim
- mov r0, r8
- lsls r6, r0, 4
- add r6, r8
- lsls r6, 2
- mov r1, r10
- adds r4, r6, r1
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r1, _0812DFD4 @ =gUnknown_03004B00
- ldrh r0, [r1]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x32]
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- ldr r0, _0812DFE0 @ =0x0000ffff
- strh r0, [r5, 0x3C]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r4, 0x3C]
- adds r5, 0x3E
- ldrb r0, [r5]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5]
- adds r4, 0x3E
- ldrb r0, [r4]
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x1C
- add r10, r0
- ldr r2, [sp]
- add r2, r10
- ldr r0, _0812DFE4 @ =sub_812E0F8
- str r0, [r2]
- add r6, r10
- str r0, [r6]
- mov r1, r9
- strh r1, [r7, 0x3A]
- mov r0, r8
- strh r0, [r7, 0x3C]
- ldr r0, _0812DFE8 @ =sub_812DFEC
- str r0, [r7, 0x1C]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DFD0: .4byte gUnknown_0202F7C8
-_0812DFD4: .4byte gUnknown_03004B00
-_0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC
-_0812DFDC: .4byte gSprites
-_0812DFE0: .4byte 0x0000ffff
-_0812DFE4: .4byte sub_812E0F8
-_0812DFE8: .4byte sub_812DFEC
- thumb_func_end sub_812DEAC
-
- thumb_func_start sub_812DFEC
-sub_812DFEC: @ 812DFEC
- push {lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x32]
- ldrh r0, [r3, 0x34]
- adds r2, r0
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r3, 0x26]
- subs r1, r0
- strh r1, [r3, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x34]
- movs r2, 0x36
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0812E03A
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- bge _0812E03A
- ldr r2, _0812E094 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r3, 0x36]
- adds r0, 0x1
- strh r0, [r3, 0x36]
-_0812E03A:
- movs r1, 0x36
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _0812E06E
- movs r2, 0x26
- ldrsh r1, [r3, r2]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _0812E06E
- ldr r2, _0812E094 @ =gSprites
- movs r0, 0x3C
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r3, 0x36]
- adds r0, 0x1
- strh r0, [r3, 0x36]
-_0812E06E:
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812E090
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812E098 @ =sub_812E09C
- str r0, [r3, 0x1C]
-_0812E090:
- pop {r0}
- bx r0
- .align 2, 0
-_0812E094: .4byte gSprites
-_0812E098: .4byte sub_812E09C
- thumb_func_end sub_812DFEC
-
- thumb_func_start sub_812E09C
-sub_812E09C: @ 812E09C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _0812E0F0 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r6, r5, 0
- adds r6, 0x1C
- adds r0, r3, r6
- ldr r2, [r0]
- ldr r0, _0812E0F4 @ =SpriteCallbackDummy
- cmp r2, r0
- bne _0812E0E8
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldr r0, [r1]
- cmp r0, r2
- bne _0812E0E8
- adds r0, r3, r5
- bl DestroySprite
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0
- bl move_anim_8072740
-_0812E0E8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E0F0: .4byte gSprites
-_0812E0F4: .4byte SpriteCallbackDummy
- thumb_func_end sub_812E09C
-
- thumb_func_start sub_812E0F8
-sub_812E0F8: @ 812E0F8
- push {lr}
- adds r3, r0, 0
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0812E144
- ldrh r2, [r3, 0x32]
- ldrh r1, [r3, 0x34]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x26]
- subs r0, r1
- strh r0, [r3, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x34]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812E144
- mov r1, r12
- ldrb r0, [r1]
- movs r1, 0x4
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r0, _0812E148 @ =SpriteCallbackDummy
- str r0, [r3, 0x1C]
-_0812E144:
- pop {r0}
- bx r0
- .align 2, 0
-_0812E148: .4byte SpriteCallbackDummy
- thumb_func_end sub_812E0F8
-
- thumb_func_start sub_812E14C
-sub_812E14C: @ 812E14C
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0812E174 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _0812E16A
- b _0812E476
-_0812E16A:
- lsls r0, 2
- ldr r1, _0812E178 @ =_0812E17C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812E174: .4byte gTasks
-_0812E178: .4byte _0812E17C
- .align 2, 0
-_0812E17C:
- .4byte _0812E194
- .4byte _0812E300
- .4byte _0812E388
- .4byte _0812E3BC
- .4byte _0812E3E8
- .4byte _0812E420
-_0812E194:
- ldr r1, _0812E230 @ =REG_BLDCNT
- ldr r3, _0812E234 @ =0x00003f42
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0812E238 @ =0x00000d03
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _0812E23C @ =REG_BG1CNT
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812E1D4
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_0812E1D4:
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r2, _0812E240 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0812E244 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0812E248 @ =gUnknown_08D2AA98
- bl LZDecompressVram
- ldr r0, _0812E24C @ =gUnknown_08D2A9E0
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _0812E250 @ =gUnknown_08D2AA80
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812E260
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
- ldr r1, _0812E254 @ =gUnknown_030042C0
- ldr r3, _0812E258 @ =0x0000ffc8
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0812E25C @ =gUnknown_030041B4
- strh r4, [r0]
- b _0812E2D2
- .align 2, 0
-_0812E230: .4byte REG_BLDCNT
-_0812E234: .4byte 0x00003f42
-_0812E238: .4byte 0x00000d03
-_0812E23C: .4byte REG_BG1CNT
-_0812E240: .4byte 0x040000d4
-_0812E244: .4byte 0x85000400
-_0812E248: .4byte gUnknown_08D2AA98
-_0812E24C: .4byte gUnknown_08D2A9E0
-_0812E250: .4byte gUnknown_08D2AA80
-_0812E254: .4byte gUnknown_030042C0
-_0812E258: .4byte 0x0000ffc8
-_0812E25C: .4byte gUnknown_030041B4
-_0812E260:
- ldr r0, _0812E2A0 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812E2B4
- ldr r1, _0812E2A4 @ =gUnknown_030042C0
- cmp r4, 0x1
- bne _0812E284
- ldr r2, _0812E2A8 @ =0x0000ff65
- adds r0, r2, 0
- strh r0, [r1]
-_0812E284:
- cmp r4, 0x3
- bne _0812E28E
- ldr r3, _0812E2AC @ =0x0000ff8d
- adds r0, r3, 0
- strh r0, [r1]
-_0812E28E:
- cmp r4, 0
- bne _0812E296
- movs r0, 0xE
- strh r0, [r1]
-_0812E296:
- cmp r4, 0x2
- bne _0812E2CC
- ldr r1, _0812E2A4 @ =gUnknown_030042C0
- ldr r2, _0812E2B0 @ =0x0000ffec
- b _0812E2C8
- .align 2, 0
-_0812E2A0: .4byte gUnknown_0202F7C9
-_0812E2A4: .4byte gUnknown_030042C0
-_0812E2A8: .4byte 0x0000ff65
-_0812E2AC: .4byte 0x0000ff8d
-_0812E2B0: .4byte 0x0000ffec
-_0812E2B4:
- cmp r4, 0x1
- bne _0812E2C0
- ldr r1, _0812E2EC @ =gUnknown_030042C0
- ldr r3, _0812E2F0 @ =0x0000ff79
- adds r0, r3, 0
- strh r0, [r1]
-_0812E2C0:
- cmp r4, 0
- bne _0812E2CC
- ldr r1, _0812E2EC @ =gUnknown_030042C0
- ldr r2, _0812E2F4 @ =0x0000fff6
-_0812E2C8:
- adds r0, r2, 0
- strh r0, [r1]
-_0812E2CC:
- ldr r1, _0812E2F8 @ =gUnknown_030041B4
- movs r0, 0
- strh r0, [r1]
-_0812E2D2:
- ldr r0, _0812E2FC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812E2EC @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- ldr r0, _0812E2F8 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1, 0x1E]
- b _0812E380
- .align 2, 0
-_0812E2EC: .4byte gUnknown_030042C0
-_0812E2F0: .4byte 0x0000ff79
-_0812E2F4: .4byte 0x0000fff6
-_0812E2F8: .4byte gUnknown_030041B4
-_0812E2FC: .4byte gTasks
-_0812E300:
- ldr r1, _0812E334 @ =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0
- strh r0, [r5, 0xE]
- ldr r0, _0812E338 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812E344
- ldr r2, _0812E33C @ =gUnknown_030042C0
- ldr r1, _0812E340 @ =gUnknown_08402604
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r5, [r5, 0x1C]
- adds r0, r5
- b _0812E356
- .align 2, 0
-_0812E334: .4byte gTasks
-_0812E338: .4byte gUnknown_0202F7C9
-_0812E33C: .4byte gUnknown_030042C0
-_0812E340: .4byte gUnknown_08402604
-_0812E344:
- ldr r2, _0812E374 @ =gUnknown_030042C0
- ldr r1, _0812E378 @ =gUnknown_08402604
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r5, 0x1C]
- subs r0, r1
-_0812E356:
- strh r0, [r2]
- ldr r0, _0812E37C @ =gTasks
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0812E380
- strh r0, [r1, 0x8]
- b _0812E476
- .align 2, 0
-_0812E374: .4byte gUnknown_030042C0
-_0812E378: .4byte gUnknown_08402604
-_0812E37C: .4byte gTasks
-_0812E380:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0812E476
-_0812E388:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _0812E3A2
- movs r0, 0x5
- strh r0, [r4, 0xA]
-_0812E3A2:
- ldr r2, _0812E3B8 @ =REG_BLDALPHA
- ldrh r0, [r4, 0xA]
- lsls r0, 8
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bne _0812E476
- b _0812E3DC
- .align 2, 0
-_0812E3B8: .4byte REG_BLDALPHA
-_0812E3BC:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r1, [r4, 0xE]
- adds r1, 0x1
- strh r1, [r4, 0xE]
- lsls r1, 16
- asrs r1, 16
- ldr r2, _0812E3E4 @ =gUnknown_08402608
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- adds r0, r2
- ldrb r0, [r0]
- cmp r1, r0
- ble _0812E476
-_0812E3DC:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E476
- .align 2, 0
-_0812E3E4: .4byte gUnknown_08402608
-_0812E3E8:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- ble _0812E402
- movs r0, 0xD
- strh r0, [r4, 0xA]
-_0812E402:
- ldr r2, _0812E41C @ =REG_BLDALPHA
- ldrh r0, [r4, 0xA]
- lsls r0, 8
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xD
- bne _0812E476
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E476
- .align 2, 0
-_0812E41C: .4byte REG_BLDALPHA
-_0812E420:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r1, _0812E480 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0812E484 @ =0x85000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812E450
- ldr r2, _0812E488 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812E450:
- ldr r2, _0812E488 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812E48C @ =gUnknown_030042C0
- strh r4, [r0]
- ldr r0, _0812E490 @ =gUnknown_030041B4
- strh r4, [r0]
- ldr r0, _0812E494 @ =REG_BLDCNT
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, r6, 0
- bl move_anim_task_del
-_0812E476:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E480: .4byte 0x040000d4
-_0812E484: .4byte 0x85000200
-_0812E488: .4byte REG_BG1CNT
-_0812E48C: .4byte gUnknown_030042C0
-_0812E490: .4byte gUnknown_030041B4
-_0812E494: .4byte REG_BLDCNT
- thumb_func_end sub_812E14C
-
- thumb_func_start sub_812E498
-sub_812E498: @ 812E498
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812E4D0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812E4D8
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812E4D4 @ =gUnknown_08402610
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E4EA
- .align 2, 0
-_0812E4D0: .4byte gTasks
-_0812E4D4: .4byte gUnknown_08402610
-_0812E4D8:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812E4EA
- adds r0, r5, 0
- bl move_anim_task_del
-_0812E4EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812E498
-
- thumb_func_start sub_812E4F0
-sub_812E4F0: @ 812E4F0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _0812E50E
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0812E562
-_0812E50E:
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- cmp r1, 0x14
- ble _0812E562
- ldrh r0, [r4, 0x30]
- adds r0, 0xA0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0x80
- strh r0, [r4, 0x32]
- ldr r0, _0812E53C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812E540
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- b _0812E546
- .align 2, 0
-_0812E53C: .4byte gUnknown_0202F7C8
-_0812E540:
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
-_0812E546:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _0812E562
- adds r0, r4, 0
- bl move_anim_8072740
-_0812E562:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812E4F0
-
- thumb_func_start sub_812E568
-sub_812E568: @ 812E568
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0812E58C @ =gTasks
- adds r4, r0, r1
- ldr r5, _0812E590 @ =gUnknown_03004B00
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812E594
- adds r0, r2, 0
- bl move_anim_task_del
- b _0812E628
- .align 2, 0
-_0812E58C: .4byte gTasks
-_0812E590: .4byte gUnknown_03004B00
-_0812E594:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bge _0812E5A0
- movs r0, 0
- strh r0, [r5, 0x4]
-_0812E5A0:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- ble _0812E5AC
- movs r0, 0x2
- strh r0, [r5, 0x4]
-_0812E5AC:
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r1, 1
- movs r0, 0x8
- subs r0, r1
- strh r0, [r4, 0xE]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- lsls r0, 7
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r5, 0x4]
- adds r0, 0x2
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x14]
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812E5F8
- ldr r0, _0812E5F4 @ =gUnknown_0202F7C8
- b _0812E5FA
- .align 2, 0
-_0812E5F4: .4byte gUnknown_0202F7C8
-_0812E5F8:
- ldr r0, _0812E630 @ =gUnknown_0202F7C9
-_0812E5FA:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812E618
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x12]
-_0812E618:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldr r0, _0812E634 @ =sub_812E638
- str r0, [r4]
-_0812E628:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E630: .4byte gUnknown_0202F7C9
-_0812E634: .4byte sub_812E638
- thumb_func_end sub_812E568
-
- thumb_func_start sub_812E638
-sub_812E638: @ 812E638
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0812E65C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r6, [r4, r0]
- cmp r6, 0x1
- beq _0812E6C0
- cmp r6, 0x1
- bgt _0812E660
- cmp r6, 0
- beq _0812E66C
- b _0812E798
- .align 2, 0
-_0812E65C: .4byte gTasks
-_0812E660:
- cmp r6, 0x2
- beq _0812E718
- cmp r6, 0x3
- bne _0812E66A
- b _0812E788
-_0812E66A:
- b _0812E798
-_0812E66C:
- ldr r2, _0812E6BC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0812E798
- strh r6, [r4, 0xA]
- b _0812E780
- .align 2, 0
-_0812E6BC: .4byte gSprites
-_0812E6C0:
- ldr r2, _0812E714 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- ldrh r2, [r4, 0x12]
- subs r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xC]
- adds r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 1
- cmp r1, r0
- blt _0812E798
- movs r0, 0
- strh r0, [r4, 0xA]
- b _0812E780
- .align 2, 0
-_0812E714: .4byte gSprites
-_0812E718:
- ldr r2, _0812E77C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- movs r5, 0
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0812E798
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0812E780
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0x8]
- b _0812E798
- .align 2, 0
-_0812E77C: .4byte gSprites
-_0812E780:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E798
-_0812E788:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
-_0812E798:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812E638
-
- thumb_func_start sub_812E7A0
-sub_812E7A0: @ 812E7A0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0812E7BC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0812E7C4
- strh r0, [r4, 0x20]
- ldr r1, _0812E7C0 @ =gUnknown_03004B00
- ldrh r0, [r1]
- b _0812E7CE
- .align 2, 0
-_0812E7BC: .4byte gUnknown_0202F7C8
-_0812E7C0: .4byte gUnknown_03004B00
-_0812E7C4:
- movs r0, 0xF0
- strh r0, [r4, 0x20]
- ldr r1, _0812E7E8 @ =gUnknown_03004B00
- ldrh r0, [r1]
- subs r0, 0x1E
-_0812E7CE:
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrb r1, [r1, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _0812E7EC @ =sub_812E7F0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E7E8: .4byte gUnknown_03004B00
-_0812E7EC: .4byte sub_812E7F0
- thumb_func_end sub_812E7A0
-
- thumb_func_start sub_812E7F0
-sub_812E7F0: @ 812E7F0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, _0812E830 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812E834
- ldrh r1, [r4, 0x20]
- adds r1, 0x5
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF0
- ble _0812E822
- adds r0, r4, 0
- bl move_anim_8072740
-_0812E822:
- ldrh r1, [r4, 0x2E]
- movs r0, 0xFF
- ands r0, r1
- movs r1, 0x10
- bl Sin
- b _0812E858
- .align 2, 0
-_0812E830: .4byte gUnknown_0202F7C8
-_0812E834:
- ldrh r1, [r4, 0x20]
- subs r1, 0x5
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- cmp r1, 0
- bge _0812E84C
- adds r0, r4, 0
- bl move_anim_8072740
-_0812E84C:
- ldrh r1, [r4, 0x2E]
- movs r0, 0xFF
- ands r0, r1
- movs r1, 0x10
- bl Cos
-_0812E858:
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812E7F0
-
- thumb_func_start sub_812E860
-sub_812E860: @ 812E860
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0812E8A8 @ =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- strh r0, [r4, 0x22]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x24]
- ldr r0, _0812E8AC @ =gUnknown_03004B00
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- movs r1, 0
- bl sub_8078E70
- ldr r0, _0812E8B0 @ =sub_812E8B4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E8A8: .4byte gTasks
-_0812E8AC: .4byte gUnknown_03004B00
-_0812E8B0: .4byte sub_812E8B4
- thumb_func_end sub_812E860
-
- thumb_func_start sub_812E8B4
-sub_812E8B4: @ 812E8B4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0812E8E0 @ =gTasks
- adds r7, r0, r1
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- mov r8, r0
- cmp r0, 0x1
- beq _0812E950
- cmp r0, 0x1
- bgt _0812E8E4
- cmp r0, 0
- beq _0812E8EC
- b _0812E9CA
- .align 2, 0
-_0812E8E0: .4byte gTasks
-_0812E8E4:
- mov r2, r8
- cmp r2, 0x2
- beq _0812E9B8
- b _0812E9CA
-_0812E8EC:
- movs r3, 0x80
- lsls r3, 2
- adds r0, r3, 0
- ldrh r1, [r7, 0xC]
- adds r2, r0, r1
- strh r2, [r7, 0xC]
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r3, [r7, 0x24]
- mov r8, r3
- movs r3, 0x24
- ldrsh r1, [r7, r3]
- cmp r0, r1
- blt _0812E9CA
- mov r0, r8
- subs r5, r0, r2
- lsls r5, 16
- asrs r5, 16
- adds r6, r1, 0
- lsls r6, 1
- adds r0, r5, 0
- adds r1, r6, 0
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x1
- ands r4, r1
- cmp r4, 0
- bne _0812E944
- lsls r0, 16
- asrs r0, 16
- mov r2, r8
- subs r0, r2, r0
- b _0812E9A2
-_0812E944:
- lsls r0, 16
- asrs r0, 16
- mov r3, r8
- subs r0, r3
- strh r0, [r7, 0xC]
- b _0812E9CA
-_0812E950:
- ldr r1, _0812E9A8 @ =0xfffffe00
- adds r0, r1, 0
- ldrh r2, [r7, 0xC]
- adds r1, r0, r2
- strh r1, [r7, 0xC]
- movs r3, 0xC
- ldrsh r0, [r7, r3]
- movs r2, 0x24
- ldrsh r6, [r7, r2]
- cmn r0, r6
- bgt _0812E9CA
- ldrh r3, [r7, 0x24]
- mov r9, r3
- mov r0, r9
- subs r4, r0, r1
- lsls r4, 16
- asrs r4, 16
- lsls r6, 1
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r2, r0, 16
- mov r1, r8
- ands r1, r5
- lsls r0, r1, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _0812E9AC
- lsls r0, r2, 16
- asrs r0, 16
- mov r2, r9
- subs r0, r2
-_0812E9A2:
- strh r0, [r7, 0xC]
- strh r1, [r7, 0x8]
- b _0812E9CA
- .align 2, 0
-_0812E9A8: .4byte 0xfffffe00
-_0812E9AC:
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r9
- subs r0, r3, r0
- strh r0, [r7, 0xC]
- b _0812E9CA
-_0812E9B8:
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- adds r0, r4, 0
- bl move_anim_task_del
- b _0812EA40
-_0812E9CA:
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r7, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldr r2, _0812EA38 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0xC
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bge _0812E9FE
- adds r0, 0x3F
-_0812E9FE:
- asrs r0, 6
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r7, 0xA]
- adds r0, 0x1
- strh r0, [r7, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0812EA40
- ldrh r1, [r7, 0x20]
- movs r3, 0x20
- ldrsh r0, [r7, r3]
- cmp r0, 0
- beq _0812EA3C
- subs r0, r1, 0x1
- strh r0, [r7, 0x20]
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x22]
- subs r0, r1
- strh r0, [r7, 0x24]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _0812EA40
- movs r0, 0x10
- strh r0, [r7, 0x24]
- b _0812EA40
- .align 2, 0
-_0812EA38: .4byte gSprites
-_0812EA3C:
- movs r0, 0x2
- strh r0, [r7, 0x8]
-_0812EA40:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812E8B4
-
- thumb_func_start sub_812EA4C
-sub_812EA4C: @ 812EA4C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812EAAC
- ldr r6, _0812EAA4 @ =gUnknown_03004B00
- movs r2, 0x4
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0812EA80
- ldr r4, _0812EAA8 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_0812EA80:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrh r1, [r6, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r1, r2
- strh r0, [r5, 0x22]
- movs r0, 0x80
- strh r0, [r5, 0x30]
- movs r0, 0xC0
- lsls r0, 2
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _0812EB0A
- .align 2, 0
-_0812EAA4: .4byte gUnknown_03004B00
-_0812EAA8: .4byte gUnknown_0202F7C8
-_0812EAAC:
- ldrh r1, [r5, 0x30]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r5, 0x26]
- adds r0, r2
- strh r0, [r5, 0x26]
- movs r2, 0x36
- ldrsh r0, [r5, r2]
- adds r4, r1, 0
- cmp r0, 0
- bne _0812EAEA
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmn r1, r0
- ble _0812EAEA
- movs r0, 0x1
- strh r0, [r5, 0x36]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- negs r0, r0
- movs r1, 0x3
- bl __divsi3
- lsls r0, 1
- strh r0, [r5, 0x32]
-_0812EAEA:
- adds r0, r4, 0
- adds r0, 0xC0
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x80
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812EB0A
- adds r0, r5, 0
- bl move_anim_8072740
-_0812EB0A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812EA4C
-
- thumb_func_start sub_812EB10
-sub_812EB10: @ 812EB10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r1, _0812EB40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0812EC1C
- ldr r0, _0812EB44 @ =gUnknown_03004B00
- movs r3, 0
- ldrsh r1, [r0, r3]
- mov r8, r0
- cmp r1, 0
- bne _0812EB4C
- ldr r0, _0812EB48 @ =gUnknown_0202F7C8
- b _0812EB4E
- .align 2, 0
-_0812EB40: .4byte gTasks
-_0812EB44: .4byte gUnknown_03004B00
-_0812EB48: .4byte gUnknown_0202F7C8
-_0812EB4C:
- ldr r0, _0812EB88 @ =gUnknown_0202F7C9
-_0812EB4E:
- ldrb r0, [r0]
- strh r0, [r2, 0x1E]
- mov r1, r8
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812EB8C @ =gTasks
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r6, r0, r1
- strh r5, [r6, 0x1C]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078E70
- mov r2, r8
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- cmp r0, 0x1
- beq _0812EBB0
- cmp r0, 0x1
- bgt _0812EB90
- cmp r0, 0
- beq _0812EB98
- lsls r2, r5, 4
- b _0812EBF8
- .align 2, 0
-_0812EB88: .4byte gUnknown_0202F7C9
-_0812EB8C: .4byte gTasks
-_0812EB90:
- cmp r0, 0x2
- beq _0812EBBA
- lsls r2, r5, 4
- b _0812EBF8
-_0812EB98:
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r5, 0
- movs r1, 0xE0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r5, 0
- bl sub_8079A64
- lsls r2, r5, 4
- b _0812EBF8
-_0812EBB0:
- movs r2, 0x98
- lsls r2, 1
- movs r3, 0xF0
- lsls r3, 4
- b _0812EBC2
-_0812EBBA:
- movs r2, 0x98
- lsls r2, 1
- movs r3, 0xF1
- lsls r3, 8
-_0812EBC2:
- adds r0, r5, 0
- movs r1, 0xD0
- bl obj_id_set_rotscale
- adds r0, r5, 0
- bl sub_8079A64
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812EBE8
- ldrb r0, [r6, 0x1E]
- bl battle_side_get_owner
- lsls r0, 24
- lsls r2, r5, 4
- cmp r0, 0
- bne _0812EBF8
-_0812EBE8:
- ldr r0, _0812EC14 @ =gSprites
- lsls r2, r5, 4
- adds r1, r2, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x10
- strh r0, [r1, 0x26]
-_0812EBF8:
- ldr r1, _0812EC14 @ =gSprites
- adds r0, r2, r5
- lsls r0, 2
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x24]
- ldr r0, _0812EC18 @ =gTasks
- adds r1, r4, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0812EC68
- .align 2, 0
-_0812EC14: .4byte gSprites
-_0812EC18: .4byte gTasks
-_0812EC1C:
- ldrb r5, [r2, 0x1C]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0812EC40
- strh r4, [r2, 0xC]
- ldr r0, _0812EC74 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x24]
- negs r0, r0
- strh r0, [r1, 0x24]
-_0812EC40:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bne _0812EC68
- adds r0, r5, 0
- bl sub_8078F40
- ldr r1, _0812EC74 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- strh r4, [r0, 0x24]
- strh r4, [r0, 0x26]
- adds r0, r7, 0
- bl move_anim_task_del
-_0812EC68:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EC74: .4byte gSprites
- thumb_func_end sub_812EB10
-
- thumb_func_start sub_812EC78
-sub_812EC78: @ 812EC78
- push {r4,r5,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xC
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, r0
- ldr r3, _0812ECC4 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _0812ECC8 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- bl Random
- ldr r5, _0812ECCC @ =0x000001ff
- ands r5, r0
- bl Random
- movs r1, 0xFF
- ands r1, r0
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _0812ECD0
- movs r2, 0xBC
- lsls r2, 3
- adds r0, r5, r2
- b _0812ECD8
- .align 2, 0
-_0812ECC4: .4byte 0x000003ff
-_0812ECC8: .4byte 0xfffffc00
-_0812ECCC: .4byte 0x000001ff
-_0812ECD0:
- movs r3, 0xBC
- lsls r3, 3
- adds r0, r3, 0
- subs r0, r5
-_0812ECD8:
- strh r0, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812ECEA
- movs r2, 0x90
- lsls r2, 3
- adds r0, r1, r2
- b _0812ECF2
-_0812ECEA:
- movs r3, 0x90
- lsls r3, 3
- adds r0, r3, 0
- subs r0, r1
-_0812ECF2:
- strh r0, [r4, 0x30]
- ldr r0, _0812ED04 @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bne _0812ED0C
- ldr r0, _0812ED08 @ =0x0000fff8
- b _0812ED0E
- .align 2, 0
-_0812ED04: .4byte gUnknown_03004B00
-_0812ED08: .4byte 0x0000fff8
-_0812ED0C:
- movs r0, 0xF8
-_0812ED0E:
- strh r0, [r4, 0x20]
- movs r0, 0x68
- strh r0, [r4, 0x22]
- ldr r0, _0812ED20 @ =sub_812ED24
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812ED20: .4byte sub_812ED24
- thumb_func_end sub_812EC78
-
- thumb_func_start sub_812ED24
-sub_812ED24: @ 812ED24
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812ED3C
- ldrh r3, [r4, 0x2E]
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- b _0812ED46
-_0812ED3C:
- ldrh r3, [r4, 0x2E]
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
-_0812ED46:
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- adds r0, r3, 0
- subs r0, 0x16
- strh r0, [r4, 0x2E]
- adds r1, r2, 0
- subs r1, 0x30
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _0812ED6A
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0812ED6A:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0812ED7E
- adds r0, r4, 0
- bl move_anim_8072740
-_0812ED7E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812ED24
-
- thumb_func_start sub_812ED84
-sub_812ED84: @ 812ED84
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0812EDE4 @ =REG_WINOUT
- ldr r2, _0812EDE8 @ =0x00001f3f
- adds r0, r2, 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 r0, _0812EDEC @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812EDF0 @ =gUnknown_03004240
- strh r1, [r0]
- ldr r0, _0812EDF4 @ =REG_WIN0H
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldr r0, _0812EDF8 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812EDFC @ =sub_812EE00
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EDE4: .4byte REG_WINOUT
-_0812EDE8: .4byte 0x00001f3f
-_0812EDEC: .4byte gUnknown_030042C4
-_0812EDF0: .4byte gUnknown_03004240
-_0812EDF4: .4byte REG_WIN0H
-_0812EDF8: .4byte gUnknown_03004B00
-_0812EDFC: .4byte sub_812EE00
- thumb_func_end sub_812ED84
-
- thumb_func_start sub_812EE00
-sub_812EE00: @ 812EE00
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0812EE3E
- cmp r0, 0x1
- bgt _0812EE16
- cmp r0, 0
- beq _0812EE20
- b _0812EE94
-_0812EE16:
- cmp r0, 0x2
- beq _0812EE54
- cmp r0, 0x3
- beq _0812EE76
- b _0812EE94
-_0812EE20:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812EE94
- b _0812EE6E
-_0812EE3E:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0812EE94
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _0812EE6E
-_0812EE54:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812EE94
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0812EE6E:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- b _0812EE94
-_0812EE76:
- ldr r1, _0812EE9C @ =REG_WINOUT
- ldr r2, _0812EEA0 @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- 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]
- adds r0, r4, 0
- bl move_anim_8072740
-_0812EE94:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EE9C: .4byte REG_WINOUT
-_0812EEA0: .4byte 0x00003f3f
- thumb_func_end sub_812EE00
-
- thumb_func_start sub_812EEA4
-sub_812EEA4: @ 812EEA4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _0812EEE0 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _0812EEE4 @ =gUnknown_03004B00
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldr r1, _0812EEE8 @ =sub_812EEEC
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EEE0: .4byte gUnknown_0202F7C8
-_0812EEE4: .4byte gUnknown_03004B00
-_0812EEE8: .4byte sub_812EEEC
- thumb_func_end sub_812EEA4
-
- thumb_func_start sub_812EEEC
-sub_812EEEC: @ 812EEEC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- ldrh r1, [r4, 0x34]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- lsls r1, r0, 16
- cmp r0, 0x3F
- bls _0812EF26
- asrs r0, r1, 16
- cmp r0, 0xC3
- ble _0812EF38
-_0812EF26:
- ldr r0, _0812EF34 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- b _0812EF42
- .align 2, 0
-_0812EF34: .4byte gUnknown_0202F7C8
-_0812EF38:
- ldr r0, _0812EF84 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8079E90
- adds r0, 0x1
-_0812EF42:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r3, 0x38
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _0812EF88
- movs r1, 0x80
- lsls r1, 3
- adds r0, r1, 0
- ldrh r3, [r4, 0x32]
- adds r0, r3
- strh r0, [r4, 0x32]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r3, [r4, 0x34]
- adds r0, r3
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _0812EFB8
- strh r2, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x38]
- b _0812EFB8
- .align 2, 0
-_0812EF84: .4byte gUnknown_0202F7C8
-_0812EF88:
- cmp r2, 0x1
- bne _0812EFB8
- ldr r1, _0812EFC0 @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldr r3, _0812EFC4 @ =0xffffff00
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0812EFB8
- adds r0, r4, 0
- bl move_anim_8072740
-_0812EFB8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EFC0: .4byte 0xfffffc00
-_0812EFC4: .4byte 0xffffff00
- thumb_func_end sub_812EEEC
-
- thumb_func_start sub_812EFC8
-sub_812EFC8: @ 812EFC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812F004
- movs r0, 0x1
- str r0, [sp, 0x14]
- ldr r0, _0812F000 @ =0x02019348
- ldr r1, [r0, 0x10]
- mov r9, r1
- ldr r2, [r0, 0xC]
- mov r8, r2
- ldrh r6, [r0, 0x2]
- movs r3, 0x14
- b _0812F13C
- .align 2, 0
-_0812F000: .4byte 0x02019348
-_0812F004:
- ldr r0, _0812F070 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812F0AC
- movs r0, 0
- str r0, [sp, 0x14]
- ldr r6, _0812F074 @ =gUnknown_02024A6A
- ldr r4, _0812F078 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r7, _0812F07C @ =gPlayerParty
- adds r0, r7
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- movs r1, 0x1
- bl GetMonData
- mov r8, r0
- ldrb r2, [r4]
- lsls r1, r2, 2
- ldr r0, _0812F080 @ =0x02017800
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0812F0A4
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812F084
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- b _0812F092
- .align 2, 0
-_0812F070: .4byte gUnknown_0202F7C8
-_0812F074: .4byte gUnknown_02024A6A
-_0812F078: .4byte gUnknown_0202F7C9
-_0812F07C: .4byte gPlayerParty
-_0812F080: .4byte 0x02017800
-_0812F084:
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- ldr r1, _0812F0A0 @ =gEnemyParty
- adds r0, r1
-_0812F092:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0812F0A6
- .align 2, 0
-_0812F0A0: .4byte gEnemyParty
-_0812F0A4:
- ldrh r6, [r1, 0x2]
-_0812F0A6:
- movs r1, 0x14
- mov r10, r1
- b _0812F13E
-_0812F0AC:
- movs r2, 0x1
- str r2, [sp, 0x14]
- ldr r6, _0812F10C @ =gUnknown_02024A6A
- ldr r4, _0812F110 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r7, _0812F114 @ =gEnemyParty
- adds r0, r7
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- movs r1, 0x1
- bl GetMonData
- mov r8, r0
- ldrb r2, [r4]
- lsls r1, r2, 2
- ldr r0, _0812F118 @ =0x02017800
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0812F138
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812F120
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- ldr r1, _0812F11C @ =gPlayerParty
- adds r0, r1
- b _0812F12C
- .align 2, 0
-_0812F10C: .4byte gUnknown_02024A6A
-_0812F110: .4byte gUnknown_0202F7C9
-_0812F114: .4byte gEnemyParty
-_0812F118: .4byte 0x02017800
-_0812F11C: .4byte gPlayerParty
-_0812F120:
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
-_0812F12C:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0812F13A
-_0812F138:
- ldrh r6, [r1, 0x2]
-_0812F13A:
- ldr r3, _0812F218 @ =0x0000ffec
-_0812F13C:
- mov r10, r3
-_0812F13E:
- ldr r0, _0812F21C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0812F21C @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- adds r4, r1
- lsls r4, 16
- asrs r4, 16
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- mov r3, r9
- str r3, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- adds r0, r6, 0
- ldr r1, [sp, 0x14]
- movs r2, 0
- adds r3, r4, 0
- bl sub_8079F44
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0812F220 @ =gSprites
- lsls r5, r6, 4
- adds r5, r6
- lsls r5, 2
- adds r5, r0
- movs r0, 0x3
- ands r7, r0
- lsls r7, 2
- mov r8, r7
- ldrb r0, [r5, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r1, r0
- mov r2, r8
- orrs r1, r2
- strb r1, [r5, 0x5]
- ldrb r2, [r5, 0x1]
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r5, 0x1]
- ldr r0, _0812F224 @ =0x00007fff
- lsrs r1, 4
- lsls r1, 4
- movs r3, 0x80
- lsls r3, 1
- adds r2, r3, 0
- orrs r1, r2
- movs r2, 0x20
- bl FillPalette
- ldrb r0, [r5, 0x5]
- ands r4, r0
- mov r0, r8
- orrs r4, r0
- strb r4, [r5, 0x5]
- ldr r1, _0812F228 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r3, _0812F22C @ =REG_BLDALPHA
- ldr r0, _0812F230 @ =gTasks
- ldr r2, [sp, 0x10]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r0, r2
- strh r0, [r3]
- strh r6, [r1, 0x8]
- ldr r0, _0812F234 @ =sub_812F238
- str r0, [r1]
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F218: .4byte 0x0000ffec
-_0812F21C: .4byte gUnknown_0202F7C8
-_0812F220: .4byte gSprites
-_0812F224: .4byte 0x00007fff
-_0812F228: .4byte REG_BLDCNT
-_0812F22C: .4byte REG_BLDALPHA
-_0812F230: .4byte gTasks
-_0812F234: .4byte sub_812F238
- thumb_func_end sub_812EFC8
-
- thumb_func_start sub_812F238
-sub_812F238: @ 812F238
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812F284 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812F280
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0xA]
- adds r1, 0x1
- strh r1, [r3, 0xA]
- ldr r2, _0812F288 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0xA
- bne _0812F280
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r3, 0x1C]
- strh r0, [r3, 0x1E]
- ldr r0, _0812F28C @ =sub_812F290
- str r0, [r3]
-_0812F280:
- pop {r0}
- bx r0
- .align 2, 0
-_0812F284: .4byte gTasks
-_0812F288: .4byte REG_BLDALPHA
-_0812F28C: .4byte sub_812F290
- thumb_func_end sub_812F238
-
- thumb_func_start sub_812F290
-sub_812F290: @ 812F290
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812F308 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r2, [r5, 0x8]
- ldrh r0, [r5, 0x1C]
- subs r0, 0x10
- movs r4, 0
- strh r0, [r5, 0x1C]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x80
- strh r0, [r5, 0x1E]
- ldr r1, _0812F30C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r6, r0, r1
- ldrb r2, [r6, 0x1]
- lsls r1, r2, 30
- lsrs r1, 30
- movs r0, 0x2
- orrs r1, r0
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
- movs r0, 0x1C
- ldrsh r2, [r5, r0]
- movs r0, 0x1E
- ldrsh r3, [r5, r0]
- str r4, [sp]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8078FDC
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0812F2FE
- adds r0, r6, 0
- bl sub_8079098
- adds r0, r6, 0
- bl sub_807A0F4
- ldr r0, _0812F310 @ =sub_8078634
- str r0, [r5]
-_0812F2FE:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F308: .4byte gTasks
-_0812F30C: .4byte gSprites
-_0812F310: .4byte sub_8078634
- thumb_func_end sub_812F290
-
- thumb_func_start sub_812F314
-sub_812F314: @ 812F314
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0812F334 @ =gTasks
- adds r4, r1, r0
- ldr r0, _0812F338 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812F340
- ldr r0, _0812F33C @ =gUnknown_0202F7C8
- b _0812F342
- .align 2, 0
-_0812F334: .4byte gTasks
-_0812F338: .4byte gUnknown_03004B00
-_0812F33C: .4byte gUnknown_0202F7C8
-_0812F340:
- ldr r0, _0812F3C0 @ =gUnknown_0202F7C9
-_0812F342:
- ldrb r5, [r0]
- movs r6, 0
- strh r6, [r4, 0x8]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x10
- strh r0, [r4, 0xE]
- strh r6, [r4, 0x10]
- strh r5, [r4, 0x12]
- movs r0, 0x20
- strh r0, [r4, 0x14]
- strh r6, [r4, 0x16]
- movs r0, 0x18
- strh r0, [r4, 0x18]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812F374
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x18]
-_0812F374:
- adds r0, r5, 0
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x22
- strh r0, [r4, 0x22]
- cmp r0, 0
- bge _0812F388
- strh r6, [r4, 0x22]
-_0812F388:
- ldrh r0, [r4, 0x22]
- adds r0, 0x42
- strh r0, [r4, 0x24]
- ldr r0, _0812F3C4 @ =gUnknown_03004B00
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- adds r0, r5, 0
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812F3DC
- ldr r0, _0812F3C8 @ =REG_BG1HOFS
- str r0, [sp]
- ldr r1, _0812F3CC @ =REG_BLDCNT
- ldr r2, _0812F3D0 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812F3D4 @ =gUnknown_030042C0
- ldrh r5, [r0]
- ldr r0, _0812F3D8 @ =gUnknown_030041B4
- b _0812F3EE
- .align 2, 0
-_0812F3C0: .4byte gUnknown_0202F7C9
-_0812F3C4: .4byte gUnknown_03004B00
-_0812F3C8: .4byte REG_BG1HOFS
-_0812F3CC: .4byte REG_BLDCNT
-_0812F3D0: .4byte 0x00003f42
-_0812F3D4: .4byte gUnknown_030042C0
-_0812F3D8: .4byte gUnknown_030041B4
-_0812F3DC:
- ldr r0, _0812F454 @ =REG_BG2HOFS
- str r0, [sp]
- ldr r1, _0812F458 @ =REG_BLDCNT
- ldr r2, _0812F45C @ =0x00003f44
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812F460 @ =gUnknown_03004288
- ldrh r5, [r0]
- ldr r0, _0812F464 @ =gUnknown_03004280
-_0812F3EE:
- ldrh r3, [r0]
- movs r7, 0
- movs r2, 0
- ldr r6, _0812F468 @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r0, r6
- mov r12, r0
-_0812F3FE:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r6
- strh r5, [r0]
- add r1, r12
- strh r5, [r1]
- adds r0, r2, 0x1
- lsls r0, 1
- adds r1, r0, r6
- strh r3, [r1]
- add r0, r12
- strh r3, [r0]
- lsls r0, r7, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- adds r2, 0x2
- lsls r2, 16
- lsrs r2, 16
- lsrs r7, r0, 16
- asrs r0, 16
- cmp r0, 0x9F
- ble _0812F3FE
- ldr r0, _0812F46C @ =0xa6600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _0812F470 @ =sub_812F474
- str r0, [r4]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F454: .4byte REG_BG2HOFS
-_0812F458: .4byte REG_BLDCNT
-_0812F45C: .4byte 0x00003f44
-_0812F460: .4byte gUnknown_03004288
-_0812F464: .4byte gUnknown_03004280
-_0812F468: .4byte gUnknown_03004DE0
-_0812F46C: .4byte 0xa6600001
-_0812F470: .4byte sub_812F474
- thumb_func_end sub_812F314
-
- thumb_func_start sub_812F474
-sub_812F474: @ 812F474
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0812F4A8 @ =gTasks
- adds r6, r0, r1
- ldrb r0, [r6, 0x12]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812F4B4
- ldr r0, _0812F4AC @ =gUnknown_030042C0
- ldrh r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, _0812F4B0 @ =gUnknown_030041B4
- b _0812F4BC
- .align 2, 0
-_0812F4A8: .4byte gTasks
-_0812F4AC: .4byte gUnknown_030042C0
-_0812F4B0: .4byte gUnknown_030041B4
-_0812F4B4:
- ldr r0, _0812F4D4 @ =gUnknown_03004288
- ldrh r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, _0812F4D8 @ =gUnknown_03004280
-_0812F4BC:
- ldrh r0, [r0]
- str r0, [sp, 0x8]
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _0812F4CA
- b _0812F6A6
-_0812F4CA:
- cmp r0, 0x1
- bgt _0812F4DC
- cmp r0, 0
- beq _0812F4EA
- b _0812F712
- .align 2, 0
-_0812F4D4: .4byte gUnknown_03004288
-_0812F4D8: .4byte gUnknown_03004280
-_0812F4DC:
- cmp r0, 0x2
- bne _0812F4E2
- b _0812F6C4
-_0812F4E2:
- cmp r0, 0x3
- bne _0812F4E8
- b _0812F70C
-_0812F4E8:
- b _0812F712
-_0812F4EA:
- movs r2, 0x24
- ldrsh r0, [r6, r2]
- lsls r0, 17
- lsrs r5, r0, 16
- movs r3, 0
- str r3, [sp]
- mov r9, r3
- movs r4, 0
- ldrh r0, [r6, 0xA]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0xA]
- ldrh r7, [r6, 0xA]
- mov r8, r7
- movs r0, 0x14
- ldrsh r1, [r6, r0]
- movs r0, 0xFC
- lsls r0, 3
- bl __divsi3
- strh r0, [r6, 0x1A]
- movs r1, 0x16
- ldrsh r0, [r6, r1]
- lsls r0, 1
- movs r2, 0x1A
- ldrsh r1, [r6, r2]
- bl __divsi3
- negs r0, r0
- strh r0, [r6, 0x1C]
- ldrh r0, [r6, 0x16]
- strh r0, [r6, 0x1E]
- lsls r0, 16
- asrs r0, 21
- lsls r0, 16
- lsrs r7, r0, 16
- strh r7, [r6, 0x20]
- ldrh r2, [r6, 0x24]
- lsls r3, r2, 16
- mov r12, r3
- asrs r1, r3, 16
- movs r3, 0x22
- ldrsh r0, [r6, r3]
- cmp r1, r0
- ble _0812F60A
- ldr r0, _0812F660 @ =gUnknown_03004DC0
- mov r10, r0
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- asrs r0, 16
- str r0, [sp, 0x10]
- ldr r2, [sp, 0x8]
- lsls r0, r2, 16
- asrs r0, 16
- str r0, [sp, 0xC]
-_0812F55A:
- lsls r5, 16
- asrs r5, 16
- adds r2, r5, 0x1
- lsls r2, 1
- mov r3, r10
- ldrb r1, [r3, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- ldr r0, _0812F664 @ =gUnknown_03004DE0
- adds r2, r0
- lsls r4, 16
- asrs r4, 16
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- subs r0, r4, r0
- ldr r3, [sp, 0xC]
- adds r0, r3, r0
- strh r0, [r2]
- lsls r3, r5, 1
- mov r0, r10
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r3, r0
- ldr r1, _0812F664 @ =gUnknown_03004DE0
- adds r3, r1
- lsls r1, r7, 16
- asrs r1, 16
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- mov r7, r8
- lsls r2, r7, 16
- asrs r2, 16
- lsls r0, r2, 1
- ldr r7, _0812F668 @ =gSineTable
- adds r0, r7
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- adds r1, r0
- strh r1, [r3]
- adds r2, 0xA
- mov r8, r2
- movs r0, 0xFF
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldrh r0, [r6, 0x1C]
- ldrh r2, [r6, 0x1E]
- adds r0, r2
- strh r0, [r6, 0x1E]
- lsls r0, 16
- asrs r0, 21
- lsls r0, 16
- lsrs r7, r0, 16
- strh r7, [r6, 0x20]
- adds r4, 0x1
- lsls r4, 16
- lsrs r4, 16
- subs r5, 0x2
- lsls r5, 16
- lsrs r5, 16
- ldr r3, [sp]
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r1, [r6, 0x14]
- adds r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- str r2, [sp]
- asrs r0, 21
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r0, _0812F66C @ =0xffff0000
- add r0, r12
- lsrs r2, r0, 16
- lsls r3, r2, 16
- mov r12, r3
- asrs r1, r3, 16
- movs r3, 0x22
- ldrsh r0, [r6, r3]
- cmp r1, r0
- bgt _0812F55A
-_0812F60A:
- lsls r1, r2, 17
- cmp r1, 0
- blt _0812F636
- ldr r4, _0812F664 @ =gUnknown_03004DE0
- ldr r7, [sp, 0x4]
- lsls r0, r7, 16
- asrs r0, 16
- adds r3, r0, 0
- adds r3, 0xF0
- movs r0, 0xF0
- lsls r0, 3
- adds r5, r4, r0
-_0812F622:
- asrs r2, r1, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- adds r1, r5
- strh r3, [r1]
- subs r2, 0x2
- lsls r1, r2, 16
- cmp r1, 0
- bge _0812F622
-_0812F636:
- ldrh r0, [r6, 0x14]
- adds r0, 0x1
- strh r0, [r6, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _0812F69C
- movs r0, 0x40
- strh r0, [r6, 0x14]
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812F670
- ldrh r0, [r6, 0xE]
- subs r0, 0x1
- strh r0, [r6, 0xE]
- b _0812F676
- .align 2, 0
-_0812F660: .4byte gUnknown_03004DC0
-_0812F664: .4byte gUnknown_03004DE0
-_0812F668: .4byte gSineTable
-_0812F66C: .4byte 0xffff0000
-_0812F670:
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x10]
-_0812F676:
- ldr r0, _0812F698 @ =REG_BLDALPHA
- ldrh r1, [r6, 0x10]
- lsls r1, 8
- ldrh r2, [r6, 0xE]
- orrs r1, r2
- strh r1, [r0]
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- cmp r1, 0
- bne _0812F712
- movs r3, 0x10
- ldrsh r0, [r6, r3]
- cmp r0, 0x10
- bne _0812F712
- strh r1, [r6, 0xC]
- strh r1, [r6, 0xE]
- b _0812F700
- .align 2, 0
-_0812F698: .4byte REG_BLDALPHA
-_0812F69C:
- ldrh r0, [r6, 0x18]
- ldrh r7, [r6, 0x16]
- adds r0, r7
- strh r0, [r6, 0x16]
- b _0812F712
-_0812F6A6:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0812F712
- ldr r1, _0812F6C0 @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
- movs r0, 0
- strh r0, [r6, 0xC]
- b _0812F700
- .align 2, 0
-_0812F6C0: .4byte gUnknown_03004DC0
-_0812F6C4:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812F6DA
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- b _0812F6E0
-_0812F6DA:
- ldrh r0, [r6, 0x10]
- subs r0, 0x1
- strh r0, [r6, 0x10]
-_0812F6E0:
- ldr r2, _0812F708 @ =REG_BLDALPHA
- ldrh r0, [r6, 0x10]
- lsls r0, 8
- ldrh r1, [r6, 0xE]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- cmp r0, 0x10
- bne _0812F712
- movs r2, 0x10
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0812F712
- strh r0, [r6, 0xC]
- strh r0, [r6, 0xE]
-_0812F700:
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0812F712
- .align 2, 0
-_0812F708: .4byte REG_BLDALPHA
-_0812F70C:
- adds r0, r4, 0
- bl move_anim_task_del
-_0812F712:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812F474
-
- thumb_func_start sub_812F724
-sub_812F724: @ 812F724
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0812F75C @ =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _0812F760 @ =gUnknown_03004B00
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, _0812F764 @ =gUnknown_08402750
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _0812F768 @ =sub_812F76C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F75C: .4byte gTasks
-_0812F760: .4byte gUnknown_03004B00
-_0812F764: .4byte gUnknown_08402750
-_0812F768: .4byte sub_812F76C
- thumb_func_end sub_812F724
-
- thumb_func_start sub_812F76C
-sub_812F76C: @ 812F76C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r2, _0812F7C4 @ =gTasks
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- adds r1, r0, 0x1
- movs r5, 0
- strh r1, [r3, 0x8]
- subs r0, 0x14
- lsls r0, 16
- lsrs r0, 16
- adds r6, r2, 0
- cmp r0, 0x16
- bhi _0812F7D0
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812F7E0
- strh r5, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- movs r5, 0x1
- ands r0, r5
- cmp r0, 0
- bne _0812F7D0
- ldr r2, _0812F7C8 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0812F7CC @ =0x0000ffff
- strh r1, [r0, 0x24]
- b _0812F7E0
- .align 2, 0
-_0812F7C4: .4byte gTasks
-_0812F7C8: .4byte gSprites
-_0812F7CC: .4byte 0x0000ffff
-_0812F7D0:
- ldr r2, _0812F800 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
-_0812F7E0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r6
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812F7F8
- adds r0, r4, 0
- bl move_anim_task_del
-_0812F7F8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F800: .4byte gSprites
- thumb_func_end sub_812F76C
-
- thumb_func_start sub_812F804
-sub_812F804: @ 812F804
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r5, r2, 0
- adds r0, r3, 0
- ldr r4, [sp, 0x14]
- ldr r6, [sp, 0x18]
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r2, r8
- strh r1, [r2, 0x20]
- strh r5, [r2, 0x22]
- lsls r1, 16
- asrs r1, 16
- lsls r2, r1, 4
- mov r3, r8
- strh r2, [r3, 0x36]
- lsls r5, 16
- asrs r5, 16
- lsls r2, r5, 4
- strh r2, [r3, 0x38]
- lsls r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 4
- adds r1, r6, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1, 0x3A]
- lsls r4, 16
- asrs r4, 16
- subs r4, r5
- lsls r4, 4
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3C]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812F804
-
- thumb_func_start sub_812F86C
-sub_812F86C: @ 812F86C
- ldrh r1, [r0, 0x3A]
- ldrh r2, [r0, 0x36]
- adds r1, r2
- strh r1, [r0, 0x36]
- ldrh r2, [r0, 0x3C]
- ldrh r3, [r0, 0x38]
- adds r2, r3
- strh r2, [r0, 0x38]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r0, 0x20]
- lsls r2, 16
- asrs r2, 20
- strh r2, [r0, 0x22]
- bx lr
- thumb_func_end sub_812F86C
-
- thumb_func_start sub_812F88C
-sub_812F88C: @ 812F88C
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldrh r6, [r4, 0x20]
- ldrh r5, [r4, 0x22]
- bl sub_8078650
- ldr r0, _0812F8D4 @ =gUnknown_03004B00
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x22
- ldrsh r2, [r4, r0]
- lsls r6, 16
- asrs r6, 16
- lsls r5, 16
- asrs r5, 16
- str r5, [sp]
- movs r0, 0x40
- str r0, [sp, 0x4]
- adds r0, r4, 0
- adds r3, r6, 0
- bl sub_812F804
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _0812F8D8 @ =sub_812F8DC
- str r0, [r4, 0x1C]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F8D4: .4byte gUnknown_03004B00
-_0812F8D8: .4byte sub_812F8DC
- thumb_func_end sub_812F88C
-
- thumb_func_start sub_812F8DC
-sub_812F8DC: @ 812F8DC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- lsls r4, 3
- movs r0, 0xFF
- ands r4, r0
- adds r0, r5, 0
- bl sub_812F86C
- adds r0, r4, 0
- movs r1, 0x8
- bl Sin
- strh r0, [r5, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x3A
- ble _0812F942
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812F942
- movs r0, 0
- strh r0, [r5, 0x30]
- ldrh r1, [r5, 0x32]
- adds r1, 0x1
- strh r1, [r5, 0x32]
- movs r0, 0x1
- ands r1, r0
- adds r3, r5, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x3
- ble _0812F942
- adds r0, r5, 0
- bl move_anim_8074EE0
-_0812F942:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812F8DC
-
- thumb_func_start sub_812F948
-sub_812F948: @ 812F948
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _0812F9A0 @ =gUnknown_03004B00
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x2E]
- ldrb r1, [r6]
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- ldr r0, _0812F9A4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812F96E
- ldrh r0, [r6, 0x2]
- negs r0, r0
- strh r0, [r6, 0x2]
-_0812F96E:
- ldr r4, _0812F9A8 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldr r0, _0812F9AC @ =sub_80DA48C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F9A0: .4byte gUnknown_03004B00
-_0812F9A4: .4byte gUnknown_0202F7C9
-_0812F9A8: .4byte gUnknown_0202F7C8
-_0812F9AC: .4byte sub_80DA48C
- thumb_func_end sub_812F948
-
- thumb_func_start sub_812F9B0
-sub_812F9B0: @ 812F9B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- ldr r2, _0812FA00 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _0812FA32
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812FA32
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0812FA04
- ldrh r0, [r3, 0x10]
- strh r0, [r3, 0x1A]
- negs r0, r0
- strh r0, [r3, 0x10]
- b _0812FA06
- .align 2, 0
-_0812FA00: .4byte gTasks
-_0812FA04:
- strh r7, [r3, 0x1A]
-_0812FA06:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0x1C
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0812FA22
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x1C]
- negs r0, r0
- strh r0, [r1, 0x12]
- b _0812FA26
-_0812FA22:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_0812FA26:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- add r0, r8
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0xA]
-_0812FA32:
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldrh r6, [r4, 0x16]
- ldrh r7, [r4, 0x18]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r12, r2
- cmp r0, 0
- beq _0812FA70
- ldr r3, _0812FA6C @ =gSprites
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsrs r2, r6, 8
- ldrh r0, [r4, 0x1A]
- subs r0, r2
- strh r0, [r1, 0x24]
- adds r2, r3, 0
- b _0812FA86
- .align 2, 0
-_0812FA6C: .4byte gSprites
-_0812FA70:
- ldr r2, _0812FAB4 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- lsrs r1, r6, 8
- ldrh r4, [r4, 0x1A]
- adds r1, r4
- strh r1, [r0, 0x24]
-_0812FA86:
- mov r1, r12
- adds r0, r1, r5
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0812FAB8
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r2, r7, 8
- ldrh r0, [r4, 0x1C]
- subs r0, r2
- b _0812FACA
- .align 2, 0
-_0812FAB4: .4byte gSprites
-_0812FAB8:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r0, r7, 8
- ldrh r4, [r4, 0x1C]
- adds r0, r4
-_0812FACA:
- strh r0, [r1, 0x26]
- mov r2, r12
- adds r0, r2, r5
- lsls r0, 3
- add r0, r8
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bgt _0812FAEA
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, _0812FAF4 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0812FAEA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FAF4: .4byte gUnknown_0202F7B2
- thumb_func_end sub_812F9B0
-
- thumb_func_start sub_812FAF8
-sub_812FAF8: @ 812FAF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r7, 0
- ldr r2, _0812FB4C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _0812FB7E
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812FB7E
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0812FB50
- ldrh r0, [r3, 0x10]
- strh r0, [r3, 0x1A]
- negs r0, r0
- strh r0, [r3, 0x10]
- b _0812FB52
- .align 2, 0
-_0812FB4C: .4byte gTasks
-_0812FB50:
- strh r7, [r3, 0x1A]
-_0812FB52:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0x1C
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0812FB6E
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x1C]
- negs r0, r0
- strh r0, [r1, 0x12]
- b _0812FB72
-_0812FB6E:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_0812FB72:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- add r0, r8
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0xA]
-_0812FB7E:
- lsls r3, r6, 2
- adds r0, r3, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldrh r2, [r4, 0xC]
- ldr r1, _0812FBD0 @ =0x00007fff
- adds r0, r1, 0
- ands r0, r2
- ldrh r2, [r4, 0x16]
- adds r0, r2
- lsls r5, r0, 16
- lsrs r0, r5, 16
- mov r9, r0
- ldrh r0, [r4, 0xE]
- ands r1, r0
- ldrh r2, [r4, 0x18]
- adds r1, r2
- lsls r1, 16
- lsrs r7, r1, 16
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r12, r3
- cmp r0, 0
- beq _0812FBD8
- ldr r3, _0812FBD4 @ =gSprites
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsrs r2, r5, 24
- ldrh r0, [r4, 0x1A]
- subs r0, r2
- strh r0, [r1, 0x24]
- adds r2, r3, 0
- b _0812FBEE
- .align 2, 0
-_0812FBD0: .4byte 0x00007fff
-_0812FBD4: .4byte gSprites
-_0812FBD8:
- ldr r2, _0812FC1C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- lsrs r1, r5, 24
- ldrh r4, [r4, 0x1A]
- adds r1, r4
- strh r1, [r0, 0x24]
-_0812FBEE:
- mov r1, r12
- adds r0, r1, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0812FC20
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r2, r7, 8
- ldrh r0, [r4, 0x1C]
- subs r0, r2
- b _0812FC32
- .align 2, 0
-_0812FC1C: .4byte gSprites
-_0812FC20:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r0, r7, 8
- ldrh r4, [r4, 0x1C]
- adds r0, r4
-_0812FC32:
- strh r0, [r1, 0x26]
- mov r2, r12
- adds r0, r2, r6
- lsls r0, 3
- mov r1, r8
- adds r2, r0, r1
- mov r0, r9
- strh r0, [r2, 0x16]
- strh r7, [r2, 0x18]
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bgt _0812FC58
- movs r0, 0x1E
- strh r0, [r2, 0x8]
- movs r0, 0
- strh r0, [r2, 0x22]
- ldr r0, _0812FC64 @ =sub_812F9B0
- str r0, [r2]
-_0812FC58:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FC64: .4byte sub_812F9B0
- thumb_func_end sub_812FAF8
-
- thumb_func_start sub_812FC68
-sub_812FC68: @ 812FC68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0812FCC8 @ =gTasks
- mov r8, r0
- lsls r7, r6, 2
- adds r0, r7, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldr r1, _0812FCCC @ =gUnknown_02024BE0
- ldr r2, _0812FCD0 @ =gUnknown_0202F7C8
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x26]
- ldr r5, _0812FCD4 @ =gUnknown_03004B00
- ldrh r0, [r5]
- strh r0, [r4, 0x24]
- ldrh r0, [r5]
- strh r0, [r4, 0x8]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x22]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0812FCAC
- ldrh r0, [r4, 0x14]
- ldr r3, _0812FCD8 @ =0xffff8000
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r4, 0x14]
-_0812FCAC:
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812FCDC
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xE]
- mov r3, r8
- adds r4, r7, 0
- b _0812FD4C
- .align 2, 0
-_0812FCC8: .4byte gTasks
-_0812FCCC: .4byte gUnknown_02024BE0
-_0812FCD0: .4byte gUnknown_0202F7C8
-_0812FCD4: .4byte gUnknown_03004B00
-_0812FCD8: .4byte 0xffff8000
-_0812FCDC:
- movs r7, 0x2
- ldrsh r0, [r5, r7]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0812FCF8
- ldrh r1, [r5, 0x2]
- ldr r0, _0812FCF4 @ =0x00007fff
- ands r0, r1
- b _0812FD00
- .align 2, 0
-_0812FCF4: .4byte 0x00007fff
-_0812FCF8:
- ldrh r0, [r5, 0x2]
- ldr r2, _0812FD28 @ =0xffff8000
- adds r1, r2, 0
- orrs r0, r1
-_0812FD00:
- strh r0, [r4, 0xC]
- ldr r0, _0812FD2C @ =gUnknown_03004B00
- movs r3, 0x4
- ldrsh r1, [r0, r3]
- movs r2, 0x80
- lsls r2, 8
- ands r1, r2
- adds r5, r0, 0
- cmp r1, 0
- beq _0812FD38
- ldr r3, _0812FD30 @ =gTasks
- lsls r4, r6, 2
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r3
- ldrh r2, [r5, 0x4]
- ldr r0, _0812FD34 @ =0x00007fff
- ands r0, r2
- b _0812FD4A
- .align 2, 0
-_0812FD28: .4byte 0xffff8000
-_0812FD2C: .4byte gUnknown_03004B00
-_0812FD30: .4byte gTasks
-_0812FD34: .4byte 0x00007fff
-_0812FD38:
- ldr r3, _0812FD70 @ =gTasks
- lsls r4, r6, 2
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r3
- ldrh r2, [r5, 0x4]
- ldr r7, _0812FD74 @ =0xffff8000
- adds r0, r7, 0
- orrs r0, r2
-_0812FD4A:
- strh r0, [r1, 0xE]
-_0812FD4C:
- adds r0, r4, r6
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x18]
- strh r1, [r0, 0x16]
- ldrh r1, [r5, 0x8]
- strh r1, [r0, 0x10]
- ldrh r1, [r5, 0xA]
- strh r1, [r0, 0x12]
- ldr r1, _0812FD78 @ =sub_812FAF8
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FD70: .4byte gTasks
-_0812FD74: .4byte 0xffff8000
-_0812FD78: .4byte sub_812FAF8
- thumb_func_end sub_812FC68
-
- thumb_func_start sub_812FD7C
-sub_812FD7C: @ 812FD7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0812FDB4 @ =gTasks
- adds r5, r0, r1
- ldr r4, _0812FDB8 @ =gUnknown_03004B00
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812FD9C
- adds r0, r2, 0
- bl move_anim_task_del
-_0812FD9C:
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0xE]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812FDC0
- ldr r0, _0812FDBC @ =gUnknown_0202F7C8
- b _0812FDC2
- .align 2, 0
-_0812FDB4: .4byte gTasks
-_0812FDB8: .4byte gUnknown_03004B00
-_0812FDBC: .4byte gUnknown_0202F7C8
-_0812FDC0:
- ldr r0, _0812FE10 @ =gUnknown_0202F7C9
-_0812FDC2:
- ldrb r4, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- adds r0, r4, 0
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldr r0, _0812FE14 @ =gUnknown_03004B00
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r5, 0x26]
- ldr r2, _0812FE18 @ =gUnknown_084028AC
- adds r0, r5, 0
- bl sub_80798F4
- ldr r0, _0812FE1C @ =sub_812FE20
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FE10: .4byte gUnknown_0202F7C9
-_0812FE14: .4byte gUnknown_03004B00
-_0812FE18: .4byte gUnknown_084028AC
-_0812FE1C: .4byte sub_812FE20
- thumb_func_end sub_812FD7C
-
- thumb_func_start sub_812FE20
-sub_812FE20: @ 812FE20
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0812FE40 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812FE44
- cmp r0, 0x1
- beq _0812FEA4
- b _0812FEB2
- .align 2, 0
-_0812FE40: .4byte gTasks
-_0812FE44:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0812FE5A
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_812FEB8
-_0812FE5A:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bne _0812FE6A
- adds r0, r5, 0
- movs r1, 0
- bl sub_812FEB8
-_0812FE6A:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0812FEB2
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0812FE8C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812FEB2
-_0812FE8C:
- strh r1, [r4, 0xA]
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812FEA0 @ =gUnknown_084028AC
- adds r0, r4, 0
- bl sub_80798F4
- b _0812FEB2
- .align 2, 0
-_0812FEA0: .4byte gUnknown_084028AC
-_0812FEA4:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812FEB2
- adds r0, r5, 0
- bl move_anim_task_del
-_0812FEB2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812FE20
-
- thumb_func_start sub_812FEB8
-sub_812FEB8: @ 812FEB8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r2, _0812FEDC @ =gTasks
- adds r4, r0, r2
- cmp r1, 0
- bne _0812FEE0
- movs r1, 0x12
- movs r3, 0xEC
- b _0812FEE4
- .align 2, 0
-_0812FEDC: .4byte gTasks
-_0812FEE0:
- movs r1, 0x1E
- movs r3, 0x14
-_0812FEE4:
- mov r2, sp
- ldrh r0, [r4, 0x10]
- subs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x10]
- subs r0, r1
- subs r0, 0x4
- strh r0, [r2, 0x2]
- ldrh r0, [r4, 0x10]
- adds r0, r1
- strh r0, [r2, 0x4]
- ldrh r0, [r4, 0x10]
- adds r0, r1
- adds r0, 0x4
- strh r0, [r2, 0x6]
- add r2, sp, 0x8
- lsls r1, r3, 24
- asrs r1, 24
- ldrh r0, [r4, 0x12]
- adds r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x12]
- adds r0, r1
- adds r0, 0x6
- strh r0, [r2, 0x2]
- movs r5, 0
- mov r8, r2
- ldr r7, _0812FF88 @ =gSprites
-_0812FF1C:
- lsls r0, r5, 1
- add r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- ands r0, r5
- lsls r0, 1
- add r0, r8
- movs r3, 0
- ldrsh r2, [r0, r3]
- ldrb r3, [r4, 0x14]
- subs r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0812FF8C @ =gSpriteTemplate_84028CC
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0812FF70
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r7
- movs r0, 0
- strh r0, [r1, 0x2E]
- movs r0, 0x2
- cmp r5, 0x1
- bhi _0812FF5E
- movs r2, 0x2
- negs r2, r2
- adds r0, r2, 0
-_0812FF5E:
- strh r0, [r1, 0x30]
- ldr r0, _0812FF90 @ =0x0000ffff
- strh r0, [r1, 0x32]
- strh r6, [r1, 0x34]
- movs r0, 0x2
- strh r0, [r1, 0x36]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0812FF70:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0812FF1C
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FF88: .4byte gSprites
-_0812FF8C: .4byte gSpriteTemplate_84028CC
-_0812FF90: .4byte 0x0000ffff
- thumb_func_end sub_812FEB8
-
- thumb_func_start sub_812FF94
-sub_812FF94: @ 812FF94
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _0812FFDA
- ldr r3, _0812FFE0 @ =gTasks
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x34
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0812FFDA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FFE0: .4byte gTasks
- thumb_func_end sub_812FF94
-
- thumb_func_start sub_812FFE4
-sub_812FFE4: @ 812FFE4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813002C @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r1, _08130030 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xA]
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08130034 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- adds r0, r1
- strh r0, [r4, 0xC]
- ldr r0, _08130038 @ =sub_813003C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813002C: .4byte gTasks
-_08130030: .4byte gUnknown_03004B00
-_08130034: .4byte gSprites
-_08130038: .4byte sub_813003C
- thumb_func_end sub_812FFE4
-
- thumb_func_start sub_813003C
-sub_813003C: @ 813003C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08130084 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813008C
- ldrh r0, [r4, 0xC]
- ldr r2, _08130088 @ =gUnknown_084028E4
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r1, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0x8
- bl BlendPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _0813007C
- movs r0, 0
- strh r0, [r4, 0x8]
-_0813007C:
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- b _0813009E
- .align 2, 0
-_08130084: .4byte gTasks
-_08130088: .4byte gUnknown_084028E4
-_0813008C:
- ldrh r0, [r4, 0xC]
- movs r1, 0x10
- movs r2, 0
- movs r3, 0
- bl BlendPalette
- adds r0, r5, 0
- bl move_anim_task_del
-_0813009E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813003C
-
- thumb_func_start sub_81300A4
-sub_81300A4: @ 81300A4
- push {lr}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xD0
- lsls r2, 1
- ldr r1, _081300E0 @ =gUnknown_0202F7C8
- ldrb r3, [r1]
- ldr r1, _081300E4 @ =gUnknown_03004B00
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0x2
- str r1, [sp, 0x8]
- movs r1, 0x1E
- str r1, [sp, 0xC]
- ldr r1, _081300E8 @ =gUnknown_08D2E014
- str r1, [sp, 0x10]
- ldr r1, _081300EC @ =gUnknown_08D2E170
- str r1, [sp, 0x14]
- ldr r1, _081300F0 @ =gUnknown_08D2E150
- str r1, [sp, 0x18]
- movs r1, 0
- bl sub_80E3C4C
- add sp, 0x1C
- pop {r0}
- bx r0
- .align 2, 0
-_081300E0: .4byte gUnknown_0202F7C8
-_081300E4: .4byte gUnknown_03004B00
-_081300E8: .4byte gUnknown_08D2E014
-_081300EC: .4byte gUnknown_08D2E170
-_081300F0: .4byte gUnknown_08D2E150
- thumb_func_end sub_81300A4
-
- thumb_func_start sub_81300F4
-sub_81300F4: @ 81300F4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _0813014C @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08130110
- ldr r1, _08130150 @ =gUnknown_03004B00
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_08130110:
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _08130150 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08130158
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
- ldr r0, _08130154 @ =0x0000fd80
- strh r0, [r5, 0x30]
- b _08130180
- .align 2, 0
-_0813014C: .4byte gUnknown_0202F7C8
-_08130150: .4byte gUnknown_03004B00
-_08130154: .4byte 0x0000fd80
-_08130158:
- cmp r0, 0x1
- bne _08130172
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- b _08130180
-_08130172:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
-_08130180:
- ldr r0, _081301AC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _081301A0
- ldrh r0, [r5, 0x2E]
- negs r0, r0
- strh r0, [r5, 0x2E]
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_081301A0:
- ldr r0, _081301B0 @ =sub_81301B4
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081301AC: .4byte gUnknown_0202F7C8
-_081301B0: .4byte sub_81301B4
- thumb_func_end sub_81300F4
-
- thumb_func_start sub_81301B4
-sub_81301B4: @ 81301B4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x3A]
- adds r0, r1
- strh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x3C]
- adds r1, r3
- strh r1, [r2, 0x3C]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r2, 0x26]
- ldrh r0, [r2, 0x38]
- adds r0, 0x1
- strh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xE
- bne _081301E8
- adds r0, r2, 0
- bl move_anim_8072740
-_081301E8:
- pop {r0}
- bx r0
- thumb_func_end sub_81301B4
-
- thumb_func_start sub_81301EC
-sub_81301EC: @ 81301EC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08130218 @ =gTasks
- adds r6, r1, r0
- bl sub_8076BE0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0813021C
- movs r0, 0x8
- strh r0, [r6, 0x12]
- movs r0, 0x3
- strh r0, [r6, 0x14]
- movs r0, 0x1
- strh r0, [r6, 0x16]
- b _08130226
- .align 2, 0
-_08130218: .4byte gTasks
-_0813021C:
- movs r0, 0xC
- strh r0, [r6, 0x12]
- movs r0, 0x3
- strh r0, [r6, 0x14]
- strh r1, [r6, 0x16]
-_08130226:
- ldr r5, _0813025C @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08130260
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08130254
- adds r0, 0x3
-_08130254:
- asrs r0, 2
- adds r0, r4, r0
- b _08130284
- .align 2, 0
-_0813025C: .4byte gUnknown_0202F7C8
-_08130260:
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08130280
- adds r0, 0x3
-_08130280:
- asrs r0, 2
- subs r0, r4, r0
-_08130284:
- strh r0, [r6, 0x1E]
- ldr r5, _081302D8 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _081302A8
- adds r0, 0x3
-_081302A8:
- asrs r0, 2
- subs r0, r4, r0
- strh r0, [r6, 0x20]
- ldr r4, _081302DC @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x24]
- ldr r0, _081302E0 @ =sub_81302E4
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081302D8: .4byte gUnknown_0202F7C8
-_081302DC: .4byte gUnknown_0202F7C9
-_081302E0: .4byte sub_81302E4
- thumb_func_end sub_81301EC
-
- thumb_func_start sub_81302E4
-sub_81302E4: @ 81302E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _0813030C @ =gTasks
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0
- beq _08130310
- cmp r1, 0x1
- bne _08130308
- b _08130408
-_08130308:
- b _08130416
- .align 2, 0
-_0813030C: .4byte gTasks
-_08130310:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08130416
- strh r1, [r5, 0xA]
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- movs r4, 0x24
- ldrsh r3, [r5, r4]
- ldrb r4, [r5, 0x12]
- str r4, [sp]
- ldrb r4, [r5, 0xC]
- str r4, [sp, 0x4]
- add r4, sp, 0x10
- str r4, [sp, 0x8]
- adds r4, 0x2
- str r4, [sp, 0xC]
- bl sub_8130424
- movs r6, 0
- mov r8, r4
- ldr r4, _08130384 @ =gSprites
-_0813034A:
- add r0, sp, 0x10
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- movs r0, 0
- ldrsh r2, [r3, r0]
- ldr r0, _08130388 @ =gSpriteTemplate_840294C
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _081303DE
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0813039E
- cmp r6, 0
- bne _0813038C
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- negs r0, r0
- strh r0, [r1, 0x26]
- strh r0, [r1, 0x24]
- b _081303C6
- .align 2, 0
-_08130384: .4byte gSprites
-_08130388: .4byte gSpriteTemplate_840294C
-_0813038C:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x26]
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x24]
- b _081303C6
-_0813039E:
- cmp r6, 0
- bne _081303B4
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r5, 0x14]
- b _081303C4
-_081303B4:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x24]
- ldrh r0, [r5, 0x14]
- negs r0, r0
-_081303C4:
- strh r0, [r1, 0x26]
-_081303C6:
- ldr r1, _08130404 @ =gSprites
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2E]
- strh r7, [r0, 0x30]
- movs r1, 0xA
- strh r1, [r0, 0x32]
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
-_081303DE:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bls _0813034A
- ldrh r2, [r5, 0xC]
- movs r3, 0xC
- ldrsh r1, [r5, r3]
- movs r4, 0x12
- ldrsh r0, [r5, r4]
- cmp r1, r0
- bne _081303FC
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_081303FC:
- adds r0, r2, 0x1
- strh r0, [r5, 0xC]
- b _08130416
- .align 2, 0
-_08130404: .4byte gSprites
-_08130408:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08130416
- adds r0, r7, 0
- bl move_anim_task_del
-_08130416:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81302E4
-
- thumb_func_start sub_8130424
-sub_8130424: @ 8130424
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- mov r9, r6
- ldr r6, [sp, 0x34]
- mov r10, r6
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r2, 16
- lsrs r2, 16
- adds r7, r2, 0
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x4]
- lsls r4, 24
- lsrs r6, r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r8, r5
- cmp r5, 0
- bne _0813046C
- mov r2, r9
- strh r0, [r2]
- mov r6, r10
- strh r1, [r6]
- b _081304CA
-_0813046C:
- cmp r5, r6
- bcc _0813047A
- mov r0, r9
- strh r2, [r0]
- mov r1, r10
- strh r3, [r1]
- b _081304CA
-_0813047A:
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- mov r2, r12
- lsls r1, r2, 16
- asrs r1, 16
- lsls r5, r1, 8
- lsls r0, r7, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 8
- adds r1, r6, 0
- bl __divsi3
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r5, r0
- ldr r2, [sp]
- lsls r1, r2, 16
- asrs r1, 16
- lsls r4, r1, 8
- ldr r2, [sp, 0x4]
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 8
- adds r1, r6, 0
- bl __divsi3
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- adds r4, r0
- asrs r5, 8
- mov r0, r9
- strh r5, [r0]
- asrs r4, 8
- mov r1, r10
- strh r4, [r1]
-_081304CA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8130424
-
- thumb_func_start sub_81304DC
-sub_81304DC: @ 81304DC
- 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, 0x24
- ble _08130512
- ldr r3, _08130518 @ =gTasks
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_08130512:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130518: .4byte gTasks
- thumb_func_end sub_81304DC
-
- thumb_func_start sub_813051C
-sub_813051C: @ 813051C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _08130548 @ =gUnknown_03004B00
- ldrh r0, [r1]
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldr r1, _0813054C @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _08130550 @ =sub_8078CC0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130548: .4byte gUnknown_03004B00
-_0813054C: .4byte move_anim_8072740
-_08130550: .4byte sub_8078CC0
- thumb_func_end sub_813051C
-
- thumb_func_start sub_8130554
-sub_8130554: @ 8130554
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- ldr r1, _08130674 @ =gTasks
- adds r7, r0, r1
- ldr r0, _08130678 @ =gUnknown_0202F7C8
- mov r10, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x1E]
- mov r1, r10
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x20]
- ldr r0, _0813067C @ =gUnknown_0202F7C9
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x22]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8077ABC
- adds r4, r0, 0
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _081305C6
- adds r0, 0x3
-_081305C6:
- asrs r0, 2
- adds r0, r4, r0
- strh r0, [r7, 0x24]
- ldr r4, _08130680 @ =gSpriteTemplate_84029AC
- movs r0, 0x1E
- ldrsh r5, [r7, r0]
- movs r1, 0x20
- ldrsh r6, [r7, r1]
- mov r1, r8
- ldrb r0, [r1]
- bl sub_8079E90
- adds r3, r0, 0
- subs r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x26]
- cmp r0, 0x40
- beq _08130690
- ldr r4, _08130684 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r7, 0x22]
- strh r1, [r0, 0x32]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r7, 0x24]
- strh r1, [r0, 0x36]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08130688 @ =0x0000ffe0
- strh r1, [r0, 0x38]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80786EC
- mov r1, r10
- ldrb r0, [r1]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813066E
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_0813066E:
- ldr r0, _0813068C @ =sub_81306A4
- str r0, [r7]
- b _08130696
- .align 2, 0
-_08130674: .4byte gTasks
-_08130678: .4byte gUnknown_0202F7C8
-_0813067C: .4byte gUnknown_0202F7C9
-_08130680: .4byte gSpriteTemplate_84029AC
-_08130684: .4byte gSprites
-_08130688: .4byte 0x0000ffe0
-_0813068C: .4byte sub_81306A4
-_08130690:
- mov r0, r9
- bl move_anim_task_del
-_08130696:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8130554
-
- thumb_func_start sub_81306A4
-sub_81306A4: @ 81306A4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _081306C8 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0813070C
- cmp r1, 0x1
- bgt _081306CC
- cmp r1, 0
- beq _081306D6
- b _081307AA
- .align 2, 0
-_081306C8: .4byte gTasks
-_081306CC:
- cmp r1, 0x2
- beq _08130730
- cmp r1, 0x3
- beq _081307A4
- b _081307AA
-_081306D6:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081307AA
- strh r1, [r4, 0xA]
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08130708 @ =gSprites
- adds r0, r1
- bl sub_8078718
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _081307AA
- b _08130796
- .align 2, 0
-_08130708: .4byte gSprites
-_0813070C:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813072C @ =gSprites
- adds r0, r1
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _081307AA
- movs r0, 0
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- b _08130796
- .align 2, 0
-_0813072C: .4byte gSprites
-_08130730:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081307AA
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xC]
- adds r2, 0x1
- strh r2, [r4, 0xC]
- ldr r5, _081307A0 @ =gSprites
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x1
- ands r2, r0
- adds r1, 0x3E
- lsls r2, 2
- ldrb r3, [r1]
- subs r0, 0x6
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081307AA
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_08130796:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081307AA
- .align 2, 0
-_081307A0: .4byte gSprites
-_081307A4:
- adds r0, r2, 0
- bl move_anim_task_del
-_081307AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81306A4
-
- thumb_func_start sub_81307B0
-sub_81307B0: @ 81307B0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, _081307C4 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r6, r0, 0
- cmp r1, 0
- bne _081307CC
- ldr r0, _081307C8 @ =gUnknown_0202F7C8
- b _081307CE
- .align 2, 0
-_081307C4: .4byte gUnknown_03004B00
-_081307C8: .4byte gUnknown_0202F7C8
-_081307CC:
- ldr r0, _08130834 @ =gUnknown_0202F7C9
-_081307CE:
- ldrb r5, [r0]
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, _08130838 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _0813083C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r1, r6, 0
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x3A]
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- movs r1, 0x1
- cmp r0, 0
- bne _081307FC
- movs r3, 0x1
- negs r3, r3
- adds r1, r3, 0
-_081307FC:
- strh r1, [r4, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08130840
- ldrb r2, [r4, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_807A100
- subs r0, 0x8
- b _0813084A
- .align 2, 0
-_08130834: .4byte gUnknown_0202F7C9
-_08130838: .4byte 0x000003ff
-_0813083C: .4byte 0xfffffc00
-_08130840:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_807A100
- adds r0, 0x8
-_0813084A:
- strh r0, [r4, 0x20]
- ldr r0, _08130858 @ =sub_813085C
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130858: .4byte sub_813085C
- thumb_func_end sub_81307B0
-
- thumb_func_start sub_813085C
-sub_813085C: @ 813085C
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- cmp r1, 0x1
- beq _081308A4
- cmp r1, 0x1
- bgt _08130872
- cmp r1, 0
- beq _0813087C
- b _08130914
-_08130872:
- cmp r1, 0x2
- beq _081308B4
- cmp r1, 0x3
- beq _081308DA
- b _08130914
-_0813087C:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08130914
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x3C]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _08130914
- b _081308D2
-_081308A4:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _08130914
- b _081308CE
-_081308B4:
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r1, 2
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _08130914
-_081308CE:
- movs r0, 0
- strh r0, [r2, 0x30]
-_081308D2:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _08130914
-_081308DA:
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _08130914
- ldrh r0, [r2, 0x3A]
- subs r0, 0x1
- strh r0, [r2, 0x3A]
- lsls r0, 16
- cmp r0, 0
- beq _0813090E
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- b _08130914
-_0813090E:
- adds r0, r2, 0
- bl move_anim_8072740
-_08130914:
- pop {r0}
- bx r0
- thumb_func_end sub_813085C
-
- thumb_func_start sub_8130918
-sub_8130918: @ 8130918
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, _08130930 @ =gUnknown_03004B00
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _08130934
- adds r0, r1, 0
- bl move_anim_task_del
- b _0813095C
- .align 2, 0
-_08130930: .4byte gUnknown_03004B00
-_08130934:
- ldr r0, _08130964 @ =gTasks
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x8]
- ldrb r0, [r2]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, _08130968 @ =gUnknown_084029DC
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _0813096C @ =sub_8130970
- str r0, [r4]
-_0813095C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130964: .4byte gTasks
-_08130968: .4byte gUnknown_084029DC
-_0813096C: .4byte sub_8130970
- thumb_func_end sub_8130918
-
- thumb_func_start sub_8130970
-sub_8130970: @ 8130970
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _081309B0 @ =gTasks
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081309CA
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081309B8
- ldr r2, _081309B4 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- b _081309C8
- .align 2, 0
-_081309B0: .4byte gTasks
-_081309B4: .4byte gSprites
-_081309B8:
- ldr r2, _08130A10 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08130A14 @ =0x0000fffe
-_081309C8:
- strh r1, [r0, 0x24]
-_081309CA:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08130A26
- ldr r2, _08130A10 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- cmp r0, 0
- beq _08130A20
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _08130A18 @ =gTasks
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08130A1C @ =gUnknown_084029DC
- bl sub_80798F4
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- b _08130A26
- .align 2, 0
-_08130A10: .4byte gSprites
-_08130A14: .4byte 0x0000fffe
-_08130A18: .4byte gTasks
-_08130A1C: .4byte gUnknown_084029DC
-_08130A20:
- adds r0, r6, 0
- bl move_anim_task_del
-_08130A26:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8130970
-
- thumb_func_start sub_8130A2C
-sub_8130A2C: @ 8130A2C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08130A40 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08130A48
- ldr r4, _08130A44 @ =gUnknown_0202F7C8
- b _08130A4A
- .align 2, 0
-_08130A40: .4byte gUnknown_03004B00
-_08130A44: .4byte gUnknown_0202F7C8
-_08130A48:
- ldr r4, _08130A88 @ =gUnknown_0202F7C9
-_08130A4A:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- strh r0, [r5, 0x22]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- cmp r0, 0x7
- bgt _08130A6E
- movs r0, 0x8
- strh r0, [r5, 0x22]
-_08130A6E:
- movs r2, 0
- strh r2, [r5, 0x2E]
- ldr r1, _08130A8C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x30]
- strh r2, [r5, 0x32]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x34]
- ldr r0, _08130A90 @ =sub_8130A94
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08130A88: .4byte gUnknown_0202F7C9
-_08130A8C: .4byte gUnknown_03004B00
-_08130A90: .4byte sub_8130A94
- thumb_func_end sub_8130A2C
-
- thumb_func_start sub_8130A94
-sub_8130A94: @ 8130A94
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r3, r2]
- cmp r0, r1
- blt _08130AE8
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x32]
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- strh r1, [r3, 0x32]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- lsls r1, 2
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _08130AE8
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _08130AE8
- adds r0, r3, 0
- bl move_anim_8072740
-_08130AE8:
- pop {r0}
- bx r0
- thumb_func_end sub_8130A94
-
- thumb_func_start sub_8130AEC
-sub_8130AEC: @ 8130AEC
- push {lr}
- adds r3, r0, 0
- ldr r0, _08130B18 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08130B1C
- ldrb r2, [r3, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- movs r0, 0x64
- strh r0, [r3, 0x20]
- movs r0, 0x1
- b _08130B22
- .align 2, 0
-_08130B18: .4byte gUnknown_03004B00
-_08130B1C:
- movs r0, 0x8C
- strh r0, [r3, 0x20]
- ldr r0, _08130B30 @ =0x0000ffff
-_08130B22:
- strh r0, [r3, 0x3C]
- movs r0, 0x38
- strh r0, [r3, 0x22]
- ldr r0, _08130B34 @ =sub_8130B38
- str r0, [r3, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_08130B30: .4byte 0x0000ffff
-_08130B34: .4byte sub_8130B38
- thumb_func_end sub_8130AEC
-
- thumb_func_start sub_8130B38
-sub_8130B38: @ 8130B38
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bls _08130B46
- b _08130D18
-_08130B46:
- lsls r0, 2
- ldr r1, _08130B50 @ =_08130B54
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08130B50: .4byte _08130B54
- .align 2, 0
-_08130B54:
- .4byte _08130B78
- .4byte _08130BAA
- .4byte _08130BBC
- .4byte _08130BFC
- .4byte _08130C0E
- .4byte _08130C4C
- .4byte _08130CB0
- .4byte _08130CD0
- .4byte _08130CF6
-_08130B78:
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- lsls r0, 1
- ldrh r1, [r4, 0x22]
- subs r1, r0
- strh r1, [r4, 0x22]
- ldrh r2, [r4, 0x30]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _08130B9A
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
-_08130B9A:
- adds r0, r2, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- beq _08130BA8
- b _08130D18
-_08130BA8:
- b _08130CEA
-_08130BAA:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _08130BBA
- b _08130D18
-_08130BBA:
- b _08130CEA
-_08130BBC:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r3, 0x3C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r3, _08130BF8 @ =gSineTable
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xC
- beq _08130BF4
- b _08130D18
-_08130BF4:
- b _08130CEA
- .align 2, 0
-_08130BF8: .4byte gSineTable
-_08130BFC:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- beq _08130C0C
- b _08130D18
-_08130C0C:
- b _08130CEA
-_08130C0E:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x22]
- subs r0, r1
- strh r0, [r4, 0x22]
- ldr r3, _08130C48 @ =gSineTable
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xC
- bne _08130D18
- b _08130CEE
- .align 2, 0
-_08130C48: .4byte gSineTable
-_08130C4C:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r3, 0x3C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r3, _08130CA4 @ =gSineTable
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xF
- bne _08130C98
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, _08130CA8 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _08130CAC @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
-_08130C98:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bne _08130D18
- b _08130CEA
- .align 2, 0
-_08130CA4: .4byte gSineTable
-_08130CA8: .4byte 0x000003ff
-_08130CAC: .4byte 0xfffffc00
-_08130CB0:
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x20]
- adds r1, r0
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _08130D18
- b _08130CEA
-_08130CD0:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r0, 1
- ldrh r3, [r4, 0x20]
- adds r0, r3
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08130D18
-_08130CEA:
- movs r0, 0
- strh r0, [r4, 0x30]
-_08130CEE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _08130D18
-_08130CF6:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08130D18
- adds r0, r4, 0
- bl move_anim_8072740
-_08130D18:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8130B38
-
- thumb_func_start sub_8130D20
-sub_8130D20: @ 8130D20
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08130D7C @ =gTasks
- adds r6, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08130DA8
- bl battle_type_is_double
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x1
- bne _08130D8C
- ldr r5, _08130D80 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r1, [r5]
- movs r0, 0x2
- eors r0, r1
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- ble _08130D84
- strh r7, [r6, 0x24]
- b _08130DAC
- .align 2, 0
-_08130D7C: .4byte gTasks
-_08130D80: .4byte gUnknown_0202F7C8
-_08130D84:
- ldr r0, _08130D88 @ =0x0000ffff
- b _08130DAA
- .align 2, 0
-_08130D88: .4byte 0x0000ffff
-_08130D8C:
- ldr r0, _08130DA0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08130DA8
- ldr r0, _08130DA4 @ =0x0000ffff
- b _08130DAA
- .align 2, 0
-_08130DA0: .4byte gUnknown_0202F7C8
-_08130DA4: .4byte 0x0000ffff
-_08130DA8:
- movs r0, 0x1
-_08130DAA:
- strh r0, [r6, 0x24]
-_08130DAC:
- ldr r0, _08130DB8 @ =sub_8130DBC
- str r0, [r6]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08130DB8: .4byte sub_8130DBC
- thumb_func_end sub_8130D20
-
- thumb_func_start sub_8130DBC
-sub_8130DBC: @ 8130DBC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08130DE0 @ =gTasks
- adds r3, r0, r1
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0x8
- bls _08130DD6
- b _08130F50
-_08130DD6:
- lsls r0, 2
- ldr r1, _08130DE4 @ =_08130DE8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08130DE0: .4byte gTasks
-_08130DE4: .4byte _08130DE8
- .align 2, 0
-_08130DE8:
- .4byte _08130E0C
- .4byte _08130E1E
- .4byte _08130E50
- .4byte _08130E80
- .4byte _08130EA6
- .4byte _08130ED0
- .4byte _08130EE0
- .4byte _08130F00
- .4byte _08130F38
-_08130E0C:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- beq _08130E1C
- b _08130F50
-_08130E1C:
- b _08130F28
-_08130E1E:
- ldr r2, _08130E4C @ =gSprites
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- lsls r2, r0, 1
- adds r2, r0
- ldrh r0, [r1, 0x24]
- subs r0, r2
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- beq _08130E4A
- b _08130F50
-_08130E4A:
- b _08130F28
- .align 2, 0
-_08130E4C: .4byte gSprites
-_08130E50:
- ldr r2, _08130E7C @ =gSprites
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x24
- ldrsh r2, [r3, r0]
- lsls r0, r2, 1
- adds r0, r2
- ldrh r2, [r1, 0x24]
- adds r0, r2
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _08130F50
- b _08130F28
- .align 2, 0
-_08130E7C: .4byte gSprites
-_08130E80:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _08130F50
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- movs r2, 0xC
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _08130F2C
- adds r0, r1, 0x1
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0x8]
- b _08130F50
-_08130EA6:
- ldr r2, _08130ECC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x24]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _08130F50
- b _08130F28
- .align 2, 0
-_08130ECC: .4byte gSprites
-_08130ED0:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _08130F50
- b _08130F28
-_08130EE0:
- ldr r2, _08130EFC @ =gSprites
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x24
- ldrsh r2, [r3, r0]
- lsls r2, 2
- ldrh r0, [r1, 0x24]
- subs r0, r2
- b _08130F18
- .align 2, 0
-_08130EFC: .4byte gSprites
-_08130F00:
- ldr r2, _08130F34 @ =gSprites
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- lsls r0, 2
- ldrh r2, [r1, 0x24]
- adds r0, r2
-_08130F18:
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08130F50
-_08130F28:
- movs r0, 0
- strh r0, [r3, 0xA]
-_08130F2C:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _08130F50
- .align 2, 0
-_08130F34: .4byte gSprites
-_08130F38:
- ldr r2, _08130F58 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_task_del
-_08130F50:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130F58: .4byte gSprites
- thumb_func_end sub_8130DBC
-
- thumb_func_start sub_8130F5C
-sub_8130F5C: @ 8130F5C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08130F78 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08130F80
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _08130F7C @ =gUnknown_0202F7C8
- b _08130F82
- .align 2, 0
-_08130F78: .4byte gUnknown_03004B00
-_08130F7C: .4byte gUnknown_0202F7C8
-_08130F80:
- ldr r0, _08130FD8 @ =gUnknown_0202F7C9
-_08130F82:
- ldrb r0, [r0]
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08130FA6
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r4, 0x3]
-_08130FA6:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079ED4
- movs r2, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0x1]
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
- ldr r0, _08130FDC @ =sub_8130FE0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130FD8: .4byte gUnknown_0202F7C9
-_08130FDC: .4byte sub_8130FE0
- thumb_func_end sub_8130F5C
-
- thumb_func_start sub_8130FE0
-sub_8130FE0: @ 8130FE0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _08130FEE
- b _081311DE
-_08130FEE:
- lsls r0, 2
- ldr r1, _08130FF8 @ =_08130FFC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08130FF8: .4byte _08130FFC
- .align 2, 0
-_08130FFC:
- .4byte _08131010
- .4byte _08131110
- .4byte _08131178
- .4byte _0813118C
- .4byte _081311D8
-_08131010:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bhi _08131040
- lsls r0, 2
- ldr r1, _08131024 @ =_08131028
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08131024: .4byte _08131028
- .align 2, 0
-_08131028:
- .4byte _08131044
- .4byte _08131060
- .4byte _08131082
- .4byte _0813109E
- .4byte _08131044
- .4byte _081310C4
-_08131040:
- movs r0, 0
- strh r0, [r4, 0x3A]
-_08131044:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- b _081310B8
-_08131060:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x4
- b _081310BE
-_08131082:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- b _081310B8
-_0813109E:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
-_081310B8:
- bl sub_807A100
- subs r0, 0x4
-_081310BE:
- lsls r0, 16
- lsrs r1, r0, 16
- b _081310E4
-_081310C4:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r1, r0, 24
-_081310E4:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- bne _081310F0
- movs r0, 0x18
- b _081310FA
-_081310F0:
- cmp r0, 0x5
- bne _081310F8
- movs r0, 0x6
- b _081310FA
-_081310F8:
- movs r0, 0xC
-_081310FA:
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- strh r1, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- b _081311CA
-_08131110:
- adds r0, r4, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _081311DE
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- beq _08131148
- cmp r0, 0x5
- beq _08131168
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _08131160
-_08131148:
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x38]
-_08131160:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- b _081311DE
-_08131168:
- movs r0, 0
- strh r0, [r4, 0x2E]
- movs r1, 0x10
- strh r1, [r4, 0x30]
- strh r0, [r4, 0x32]
- movs r0, 0x3
- strh r0, [r4, 0x38]
- b _081311DE
-_08131178:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _081311DE
- movs r0, 0
- strh r0, [r4, 0x38]
- b _081311DE
-_0813118C:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813119E
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- b _081311A4
-_0813119E:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_081311A4:
- ldr r2, _081311D4 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x32]
- lsls r0, 8
- ldrh r1, [r4, 0x30]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _081311DE
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_081311CA:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _081311DE
- .align 2, 0
-_081311D4: .4byte REG_BLDALPHA
-_081311D8:
- adds r0, r4, 0
- bl move_anim_8072740
-_081311DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8130FE0
-
- thumb_func_start sub_81311E4
-sub_81311E4: @ 81311E4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- subs r0, r1
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- muls r0, r1
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- adds r5, r0, 0
- strh r5, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- subs r0, r1
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- muls r0, r1
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- adds r3, r0, 0
- strh r3, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08131242
- ldr r0, _08131260 @ =gSpriteTemplate_8402500
- ldrh r1, [r4, 0x20]
- adds r1, r5
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x22]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x5
- bl CreateSprite
-_08131242:
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08131254
- adds r0, r4, 0
- bl move_anim_8072740
-_08131254:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08131260: .4byte gSpriteTemplate_8402500
- thumb_func_end sub_81311E4
-
- thumb_func_start sub_8131264
-sub_8131264: @ 8131264
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _081312A0 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08131290
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _081312A8
-_08131290:
- ldr r2, _081312A4 @ =gUnknown_03004B00
- ldrh r1, [r5, 0x20]
- ldrh r0, [r2]
- subs r0, r1, r0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- subs r1, r0
- b _081312B6
- .align 2, 0
-_081312A0: .4byte gUnknown_0202F7C9
-_081312A4: .4byte gUnknown_03004B00
-_081312A8:
- ldr r2, _081312DC @ =gUnknown_03004B00
- ldrh r1, [r5, 0x20]
- ldrh r0, [r2]
- adds r0, r1, r0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- adds r1, r0
-_081312B6:
- strh r1, [r5, 0x32]
- adds r3, r2, 0
- ldrh r1, [r5, 0x22]
- ldrh r2, [r3, 0x2]
- adds r2, r1, r2
- strh r2, [r5, 0x30]
- ldrh r0, [r3, 0x6]
- adds r1, r0
- strh r1, [r5, 0x34]
- ldrh r0, [r3, 0x8]
- strh r0, [r5, 0x36]
- ldrh r0, [r5, 0x2E]
- strh r0, [r5, 0x20]
- strh r2, [r5, 0x22]
- ldr r0, _081312E0 @ =sub_81311E4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081312DC: .4byte gUnknown_03004B00
-_081312E0: .4byte sub_81311E4
- thumb_func_end sub_8131264
-
- thumb_func_start sub_81312E4
-sub_81312E4: @ 81312E4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- ldr r0, _08131328 @ =gTasks
- mov r9, r0
- lsls r7, r6, 2
- adds r0, r7, r6
- lsls r0, 3
- mov r8, r0
- mov r4, r8
- add r4, r9
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813132C
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- b _08131378
- .align 2, 0
-_08131328: .4byte gTasks
-_0813132C:
- cmp r0, 0x1
- bne _08131384
- ldrh r0, [r4, 0xA]
- adds r0, 0x60
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- subs r0, 0xD
- strh r0, [r4, 0xC]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r0, 0xC
- ldrsh r2, [r4, r0]
- adds r0, r5, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _081313E8
- movs r0, 0
- strh r0, [r4, 0xE]
- adds r0, r5, 0
- bl sub_8078F40
- ldr r1, _08131380 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08131378:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081313E8
- .align 2, 0
-_08131380: .4byte gSprites
-_08131384:
- ldr r4, _081313F4 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0
- bl refresh_graphics_maybe
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _081313C6
- ldr r3, _081313F8 @ =gSprites
- ldr r2, _081313FC @ =gUnknown_02024BE0
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _08131400 @ =gSpriteAffineAnimTable_81E7C18
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- bl StartSpriteAffineAnim
-_081313C6:
- mov r4, r9
- adds r3, r7, 0
- ldr r5, _08131404 @ =sub_8131408
- movs r1, 0xF
- mov r2, r8
- adds r0, r4, r2
- adds r0, 0x26
- movs r2, 0
-_081313D6:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _081313D6
- adds r0, r3, r6
- lsls r0, 3
- adds r0, r4
- str r5, [r0]
-_081313E8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081313F4: .4byte gUnknown_0202F7C8
-_081313F8: .4byte gSprites
-_081313FC: .4byte gUnknown_02024BE0
-_08131400: .4byte gSpriteAffineAnimTable_81E7C18
-_08131404: .4byte sub_8131408
- thumb_func_end sub_81312E4
-
- thumb_func_start sub_8131408
-sub_8131408: @ 8131408
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08131434 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _0813146C
- cmp r5, 0x1
- bgt _08131438
- cmp r5, 0
- beq _08131442
- b _0813155A
- .align 2, 0
-_08131434: .4byte gTasks
-_08131438:
- cmp r5, 0x2
- beq _081314D8
- cmp r5, 0x3
- beq _08131514
- b _0813155A
-_08131442:
- ldr r0, _08131464 @ =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldr r0, _08131468 @ =0x0000ff38
- strh r0, [r1, 0x26]
- movs r0, 0xC8
- strh r0, [r1, 0x24]
- adds r1, 0x3E
- ldrb r2, [r1]
- subs r0, 0xCD
- ands r0, r2
- strb r0, [r1]
- strh r5, [r4, 0x1C]
- b _08131506
- .align 2, 0
-_08131464: .4byte gSprites
-_08131468: .4byte 0x0000ff38
-_0813146C:
- ldrh r1, [r4, 0x1C]
- adds r1, 0x70
- movs r5, 0
- strh r1, [r4, 0x1C]
- ldr r2, _081314D0 @ =gSprites
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r2
- lsls r1, 16
- asrs r1, 24
- ldrh r3, [r2, 0x26]
- adds r1, r3
- strh r1, [r2, 0x26]
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- blt _0813149C
- strh r5, [r2, 0x24]
-_0813149C:
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- cmp r0, 0
- ble _081314A6
- strh r5, [r2, 0x26]
-_081314A6:
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0813155A
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
- ldr r1, _081314D4 @ =0xfffff800
- adds r0, r1, 0
- ldrh r2, [r4, 0x1C]
- adds r0, r2
- strh r0, [r4, 0x1C]
- b _08131506
- .align 2, 0
-_081314D0: .4byte gSprites
-_081314D4: .4byte 0xfffff800
-_081314D8:
- ldrh r0, [r4, 0x1C]
- subs r0, 0x70
- strh r0, [r4, 0x1C]
- lsls r0, 16
- cmp r0, 0
- bge _081314E8
- movs r0, 0
- strh r0, [r4, 0x1C]
-_081314E8:
- ldr r0, _08131510 @ =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r4, 0x1C]
- lsls r2, 16
- asrs r2, 24
- ldrh r0, [r1, 0x26]
- subs r0, r2
- strh r0, [r1, 0x26]
- movs r3, 0x1C
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _0813155A
-_08131506:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0813155A
- .align 2, 0
-_08131510: .4byte gSprites
-_08131514:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x70
- strh r0, [r4, 0x1C]
- ldr r2, _08131560 @ =gSprites
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r1, 0x26]
- adds r0, r2
- strh r0, [r1, 0x26]
- lsls r0, 16
- cmp r0, 0
- ble _08131538
- movs r0, 0
- strh r0, [r1, 0x26]
-_08131538:
- movs r3, 0x26
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0813155A
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
- adds r0, r6, 0
- bl move_anim_task_del
-_0813155A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08131560: .4byte gSprites
- thumb_func_end sub_8131408
-
- thumb_func_start sub_8131564
-sub_8131564: @ 8131564
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08131588 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08131590
- ldrb r0, [r4]
- bl sub_8079E90
- subs r0, 0x2
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r4, _0813158C @ =0x0000ff70
- b _081315A0
- .align 2, 0
-_08131588: .4byte gUnknown_0202F7C9
-_0813158C: .4byte 0x0000ff70
-_08131590:
- ldrb r0, [r4]
- bl sub_8079E90
- adds r0, 0x2
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r4, _081315BC @ =0x0000ffa0
-_081315A0:
- ldr r0, _081315C0 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- strh r4, [r5, 0x26]
- ldr r0, _081315C4 @ =sub_81315C8
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081315BC: .4byte 0x0000ffa0
-_081315C0: .4byte gUnknown_0202F7C9
-_081315C4: .4byte sub_81315C8
- thumb_func_end sub_8131564
-
- thumb_func_start sub_81315C8
-sub_81315C8: @ 81315C8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _081315D6
- b _081316F2
-_081315D6:
- lsls r0, 2
- ldr r1, _081315E0 @ =_081315E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081315E0: .4byte _081315E4
- .align 2, 0
-_081315E4:
- .4byte _081315F8
- .4byte _0813161C
- .4byte _0813165C
- .4byte _0813168C
- .4byte _081316B8
-_081315F8:
- ldrh r0, [r4, 0x26]
- adds r0, 0xA
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _081316F2
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
- movs r0, 0
- strh r0, [r4, 0x26]
- b _081316B0
-_0813161C:
- ldrh r1, [r4, 0x30]
- adds r1, 0x4
- movs r5, 0
- strh r1, [r4, 0x30]
- ldr r2, _08131658 @ =gSineTable
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- negs r0, r0
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _081316F2
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x26]
- b _081316B0
- .align 2, 0
-_08131658: .4byte gSineTable
-_0813165C:
- ldrh r1, [r4, 0x30]
- adds r1, 0x6
- movs r3, 0
- strh r1, [r4, 0x30]
- ldr r2, _08131688 @ =gSineTable
- movs r5, 0x30
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- negs r0, r0
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _081316F2
- strh r3, [r4, 0x30]
- strh r3, [r4, 0x26]
- b _081316B0
- .align 2, 0
-_08131688: .4byte gSineTable
-_0813168C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _081316F2
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC0
- bl PlaySE12WithPanning
- movs r0, 0
- strh r0, [r4, 0x30]
-_081316B0:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081316F2
-_081316B8:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _081316F2
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- movs r0, 0x1
- ands r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bne _081316F2
- adds r0, r4, 0
- bl move_anim_8072740
-_081316F2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81315C8
-
- thumb_func_start sub_81316F8
-sub_81316F8: @ 81316F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- mov r10, r4
- bl sub_8076BE0
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0813173E
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- asrs r7, r0, 16
- cmp r7, 0
- blt _0813173E
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0813174C
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _08131748 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
-_0813173E:
- adds r0, r4, 0
- bl move_anim_task_del
- b _081317EE
- .align 2, 0
-_08131748: .4byte gSprites
-_0813174C:
- ldr r1, _081317FC @ =gSprites
- mov r9, r1
- lsls r1, r0, 4
- mov r8, r1
- add r8, r0
- mov r0, r8
- lsls r0, 2
- mov r8, r0
- mov r4, r8
- add r4, r9
- ldrh r0, [r4, 0x24]
- adds r0, 0x18
- strh r0, [r4, 0x24]
- lsls r6, r7, 4
- adds r6, r7
- lsls r6, 2
- mov r1, r9
- adds r2, r6, r1
- ldrh r0, [r2, 0x24]
- subs r0, 0x18
- strh r0, [r2, 0x24]
- strh r5, [r4, 0x2E]
- strh r5, [r2, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r2, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r2, 0x32]
- movs r0, 0x10
- strh r0, [r4, 0x34]
- ldr r0, _08131800 @ =0x0000fff0
- strh r0, [r2, 0x34]
- strh r5, [r4, 0x36]
- movs r0, 0x80
- strh r0, [r2, 0x36]
- movs r0, 0x18
- strh r0, [r4, 0x38]
- strh r0, [r2, 0x38]
- mov r0, r10
- strh r0, [r4, 0x3A]
- strh r0, [r2, 0x3A]
- strh r5, [r4, 0x3C]
- strh r5, [r2, 0x3C]
- ldr r0, _08131804 @ =gTasks
- mov r1, r10
- lsls r3, r1, 2
- add r3, r10
- lsls r3, 3
- adds r3, r0
- movs r0, 0x2
- strh r0, [r3, 0x8]
- adds r5, r4, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- subs r0, 0x7
- ands r0, r1
- strb r0, [r5]
- adds r5, r2, 0
- adds r5, 0x3E
- ldrb r0, [r5]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5]
- ldrb r5, [r4, 0x1]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r5
- strb r0, [r4, 0x1]
- ldrb r0, [r2, 0x1]
- ands r1, r0
- strb r1, [r2, 0x1]
- movs r0, 0x1C
- add r9, r0
- add r8, r9
- ldr r0, _08131808 @ =sub_8131838
- mov r1, r8
- str r0, [r1]
- add r6, r9
- str r0, [r6]
- ldr r0, _0813180C @ =sub_8131810
- str r0, [r3]
-_081317EE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081317FC: .4byte gSprites
-_08131800: .4byte 0x0000fff0
-_08131804: .4byte gTasks
-_08131808: .4byte sub_8131838
-_0813180C: .4byte sub_8131810
- thumb_func_end sub_81316F8
-
- thumb_func_start sub_8131810
-sub_8131810: @ 8131810
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08131834 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0813182E
- adds r0, r2, 0
- bl move_anim_task_del
-_0813182E:
- pop {r0}
- bx r0
- .align 2, 0
-_08131834: .4byte gTasks
- thumb_func_end sub_8131810
-
- thumb_func_start sub_8131838
-sub_8131838: @ 8131838
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08131868
- strh r5, [r4, 0x30]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08131868:
- ldrh r0, [r4, 0x34]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08131890
- cmp r0, 0x1
- beq _081318A8
- b _081318E6
-_08131890:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- bne _081318E6
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081318E6
-_081318A8:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- ble _081318E6
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x38]
- subs r0, 0x2
- strh r0, [r4, 0x38]
- lsls r0, 16
- cmp r0, 0
- bge _081318E6
- ldr r3, _081318EC @ =gTasks
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_081318E6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081318EC: .4byte gTasks
- thumb_func_end sub_8131838
-
- thumb_func_start sub_81318F0
-sub_81318F0: @ 81318F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, _0813193C @ =gUnknown_03004B00
- movs r2, 0
- strh r2, [r3, 0xE]
- ldr r1, _08131940 @ =gUnknown_0202F7BE
- ldrb r0, [r1]
- ldrb r1, [r1]
- adds r0, r1, 0
- subs r0, 0x3D
- lsls r0, 24
- lsrs r0, 24
- adds r2, r1, 0
- cmp r0, 0x1E
- bhi _08131914
- movs r0, 0x1
- strh r0, [r3, 0xE]
-_08131914:
- adds r0, r2, 0
- subs r0, 0x5C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6C
- bhi _08131924
- movs r0, 0x2
- strh r0, [r3, 0xE]
-_08131924:
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0xC8
- bls _08131930
- movs r0, 0x3
- strh r0, [r3, 0xE]
-_08131930:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813193C: .4byte gUnknown_03004B00
-_08131940: .4byte gUnknown_0202F7BE
- thumb_func_end sub_81318F0
-
- thumb_func_start sub_8131944
-sub_8131944: @ 8131944
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _08131974 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bls _0813196A
- b _08131EA0
-_0813196A:
- lsls r0, 2
- ldr r1, _08131978 @ =_0813197C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08131974: .4byte gTasks
-_08131978: .4byte _0813197C
- .align 2, 0
-_0813197C:
- .4byte _08131990
- .4byte _08131A44
- .4byte _08131C20
- .4byte _08131D40
- .4byte _08131DC4
-_08131990:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _081319DC @ =gTasks
- mov r2, r8
- lsls r4, r2, 2
- adds r0, r4, r2
- lsls r0, 3
- adds r6, r0, r1
- movs r3, 0x80
- lsls r3, 4
- adds r0, r3, 0
- ldrh r1, [r6, 0xA]
- adds r0, r1
- strh r0, [r6, 0xA]
- ldr r0, _081319E0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _081319E8
- ldr r2, _081319E4 @ =gSprites
- lsls r3, r7, 4
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
- b _08131A02
- .align 2, 0
-_081319DC: .4byte gTasks
-_081319E0: .4byte gUnknown_0202F7C8
-_081319E4: .4byte gSprites
-_081319E8:
- ldr r3, _08131A3C @ =gSprites
- lsls r4, r7, 4
- adds r2, r4, r7
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
-_08131A02:
- ldr r1, _08131A40 @ =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- ldrb r0, [r4, 0xA]
- strh r0, [r4, 0xA]
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- movs r1, 0x98
- lsls r1, 17
- cmp r0, r1
- bhi _08131A2E
- b _08131EA0
-_08131A2E:
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08131EA0
- .align 2, 0
-_08131A3C: .4byte gSprites
-_08131A40: .4byte gTasks
-_08131A44:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08131A74
- ldr r0, _08131A6C @ =0x02019348
- ldr r2, [r0, 0x8]
- mov r10, r2
- ldr r3, [r0, 0xC]
- mov r9, r3
- ldrh r5, [r0]
- ldr r0, _08131A70 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0
- b _08131B92
- .align 2, 0
-_08131A6C: .4byte 0x02019348
-_08131A70: .4byte gUnknown_0202F7C8
-_08131A74:
- ldr r4, _08131AD4 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08131B10
- ldr r7, _08131AD8 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08131ADC @ =gPlayerParty
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r10, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- mov r9, r0
- ldrb r2, [r4]
- lsls r1, r2, 2
- ldr r0, _08131AE0 @ =0x02017800
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08131AE4
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- b _08131AE6
- .align 2, 0
-_08131AD4: .4byte gUnknown_0202F7C8
-_08131AD8: .4byte gUnknown_02024A6A
-_08131ADC: .4byte gPlayerParty
-_08131AE0: .4byte 0x02017800
-_08131AE4:
- ldrh r5, [r1, 0x2]
-_08131AE6:
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, _08131B0C @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0
- movs r6, 0x88
- lsls r6, 1
- b _08131B94
- .align 2, 0
-_08131B0C: .4byte gSprites
-_08131B10:
- ldr r7, _08131B64 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08131B68 @ =gEnemyParty
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r10, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- mov r9, r0
- ldrb r2, [r4]
- lsls r1, r2, 2
- ldr r0, _08131B6C @ =0x02017800
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08131B70
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- b _08131B72
- .align 2, 0
-_08131B64: .4byte gUnknown_02024A6A
-_08131B68: .4byte gEnemyParty
-_08131B6C: .4byte 0x02017800
-_08131B70:
- ldrh r5, [r1, 0x2]
-_08131B72:
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, _08131C04 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0x1
-_08131B92:
- ldr r6, _08131C08 @ =0x0000ffe0
-_08131B94:
- ldr r0, _08131C0C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r6, 16
- asrs r3, 16
- str r0, [sp]
- str r4, [sp, 0x4]
- mov r4, r10
- str r4, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r7, 0
- movs r2, 0
- bl sub_8079F44
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08131C10 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _08131C14 @ =0x02017800
- adds r0, r1
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _08131BF2
- ldr r1, _08131C04 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- orrs r0, r1
- ldr r3, _08131C18 @ =0x00007fff
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
-_08131BF2:
- ldr r0, _08131C1C @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- strh r5, [r1, 0x26]
- b _08131DB6
- .align 2, 0
-_08131C04: .4byte gSprites
-_08131C08: .4byte 0x0000ffe0
-_08131C0C: .4byte gUnknown_0202F7C9
-_08131C10: .4byte gUnknown_0202F7C8
-_08131C14: .4byte 0x02017800
-_08131C18: .4byte 0x00007fff
-_08131C1C: .4byte gTasks
-_08131C20:
- ldr r1, _08131C6C @ =gTasks
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, r0
- lsls r0, 3
- adds r6, r0, r1
- ldrh r0, [r6, 0x26]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1, 0
- ldrh r2, [r6, 0xA]
- adds r0, r2
- strh r0, [r6, 0xA]
- ldr r0, _08131C70 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _08131C78
- ldr r3, _08131C74 @ =gSprites
- lsls r4, r5, 4
- adds r2, r4, r5
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
- b _08131C8E
- .align 2, 0
-_08131C6C: .4byte gTasks
-_08131C70: .4byte gUnknown_0202F7C8
-_08131C74: .4byte gSprites
-_08131C78:
- ldr r2, _08131CDC @ =gSprites
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
-_08131C8E:
- ldr r1, _08131CE0 @ =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r6, r0, r1
- ldrb r0, [r6, 0xA]
- strh r0, [r6, 0xA]
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- movs r1, 0x24
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08131D0E
- ldr r0, _08131CE4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08131CEC
- lsls r4, r5, 16
- asrs r4, 16
- ldr r0, _08131CE8 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bge _08131D0E
- b _08131D02
- .align 2, 0
-_08131CDC: .4byte gSprites
-_08131CE0: .4byte gTasks
-_08131CE4: .4byte gUnknown_0202F7C8
-_08131CE8: .4byte gUnknown_0202F7C9
-_08131CEC:
- lsls r4, r5, 16
- asrs r4, 16
- ldr r0, _08131D30 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- ble _08131D0E
-_08131D02:
- ldrh r0, [r6, 0x24]
- adds r0, 0x1
- strh r0, [r6, 0x24]
- ldr r1, _08131D34 @ =gUnknown_03004B00
- ldr r0, _08131D38 @ =0x0000ffff
- strh r0, [r1, 0xE]
-_08131D0E:
- lsls r0, r5, 16
- movs r2, 0x80
- lsls r2, 14
- adds r0, r2
- movs r1, 0x98
- lsls r1, 17
- cmp r0, r1
- bhi _08131D20
- b _08131EA0
-_08131D20:
- ldr r0, _08131D3C @ =gTasks
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0xA]
- b _08131DB6
- .align 2, 0
-_08131D30: .4byte gUnknown_0202F7C9
-_08131D34: .4byte gUnknown_03004B00
-_08131D38: .4byte 0x0000ffff
-_08131D3C: .4byte gTasks
-_08131D40:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08131D8C @ =gTasks
- mov r3, r8
- lsls r4, r3, 2
- adds r0, r4, r3
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x26]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r5, _08131D90 @ =gSprites
- adds r0, r5
- bl sub_807A0F4
- ldr r0, _08131D94 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _08131D98
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r1, r5
- ldrh r0, [r1, 0x20]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r1, 0x24]
- b _08131DAC
- .align 2, 0
-_08131D8C: .4byte gTasks
-_08131D90: .4byte gSprites
-_08131D94: .4byte gUnknown_0202F7C8
-_08131D98:
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r0, r5
- ldrh r2, [r0, 0x20]
- movs r4, 0x88
- lsls r4, 1
- adds r1, r4, 0
- subs r1, r2
- strh r1, [r0, 0x24]
-_08131DAC:
- ldr r0, _08131DC0 @ =gTasks
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
-_08131DB6:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08131EA0
- .align 2, 0
-_08131DC0: .4byte gTasks
-_08131DC4:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08131E38 @ =gTasks
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, r0
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1, 0
- ldrh r3, [r2, 0xA]
- adds r0, r3
- strh r0, [r2, 0xA]
- ldr r0, _08131E3C @ =gUnknown_0202F7C8
- mov r10, r0
- ldrb r0, [r0]
- str r2, [sp, 0x10]
- bl battle_side_get_owner
- lsls r0, 24
- mov r9, r4
- ldr r2, [sp, 0x10]
- cmp r0, 0
- bne _08131E44
- ldr r1, _08131E40 @ =gSprites
- lsls r5, r7, 4
- adds r0, r5, r7
- lsls r0, 2
- adds r6, r0, r1
- ldrh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r6, 0x24]
- adds r0, r1
- strh r0, [r6, 0x24]
- movs r2, 0x24
- ldrsh r4, [r6, r2]
- movs r3, 0x20
- ldrsh r0, [r6, r3]
- adds r4, r0
- mov r1, r10
- ldrb r0, [r1]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r3, r5, 0
- cmp r4, r0
- blt _08131E7C
- movs r2, 0
- strh r2, [r6, 0x24]
- b _08131E7C
- .align 2, 0
-_08131E38: .4byte gTasks
-_08131E3C: .4byte gUnknown_0202F7C8
-_08131E40: .4byte gSprites
-_08131E44:
- ldr r1, _08131EB0 @ =gSprites
- lsls r5, r7, 4
- adds r0, r5, r7
- lsls r0, 2
- adds r6, r0, r1
- ldrh r1, [r2, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r6, 0x24]
- subs r0, r1
- strh r0, [r6, 0x24]
- movs r3, 0x24
- ldrsh r4, [r6, r3]
- movs r1, 0x20
- ldrsh r0, [r6, r1]
- adds r4, r0
- mov r2, r10
- ldrb r0, [r2]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r3, r5, 0
- cmp r4, r0
- bgt _08131E7C
- movs r4, 0
- strh r4, [r6, 0x24]
-_08131E7C:
- ldr r1, _08131EB4 @ =gTasks
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xA]
- strh r1, [r0, 0xA]
- ldr r1, _08131EB0 @ =gSprites
- adds r0, r3, r7
- lsls r0, 2
- adds r0, r1
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08131EA0
- mov r0, r8
- bl move_anim_task_del
-_08131EA0:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131EB0: .4byte gSprites
-_08131EB4: .4byte gTasks
- thumb_func_end sub_8131944
-
- thumb_func_start sub_8131EB8
-sub_8131EB8: @ 8131EB8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08131ECA
- cmp r0, 0x1
- beq _08131F72
- b _08131FF4
-_08131ECA:
- ldr r0, _08131F50 @ =gUnknown_03004B00
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08131F64
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7A
- bl PlaySE12WithPanning
- ldr r0, _08131F54 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- strh r0, [r4, 0x22]
- ldr r0, _08131F58 @ =0x0000ffe0
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08131F5C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08131FF4
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08131FF4
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, _08131F60 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- b _08131FF4
- .align 2, 0
-_08131F50: .4byte gUnknown_03004B00
-_08131F54: .4byte gUnknown_0202F7C9
-_08131F58: .4byte 0x0000ffe0
-_08131F5C: .4byte gUnknown_0202F7C8
-_08131F60: .4byte gSprites
-_08131F64:
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _08131FF4
-_08131F72:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x30]
- adds r0, r2, 0x5
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7F
- ble _08131FA6
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r2, 0
- subs r0, 0x7A
- strh r0, [r4, 0x30]
-_08131FA6:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldr r0, _08131FD0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08131FD4
- ldrh r2, [r4, 0x32]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- adds r1, r2, 0
- b _08131FE0
- .align 2, 0
-_08131FD0: .4byte gUnknown_0202F7C8
-_08131FD4:
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
-_08131FE0:
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- bne _08131FF4
- adds r0, r4, 0
- bl move_anim_8072740
-_08131FF4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8131EB8
-
- thumb_func_start sub_8131FFC
-sub_8131FFC: @ 8131FFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08132024 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _08132018
- b _0813216A
-_08132018:
- lsls r0, 2
- ldr r1, _08132028 @ =_0813202C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08132024: .4byte gTasks
-_08132028: .4byte _0813202C
- .align 2, 0
-_0813202C:
- .4byte _08132040
- .4byte _08132090
- .4byte _081320EC
- .4byte _08132104
- .4byte _0813216A
-_08132040:
- ldr r0, _08132084 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, _08132088 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r1, _0813208C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x6
- strh r0, [r1, 0x8]
- cmp r5, r2
- ble _08132076
- negs r0, r0
- strh r0, [r1, 0x8]
-_08132076:
- strh r5, [r1, 0xA]
- strh r2, [r1, 0xC]
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08132188
- .align 2, 0
-_08132084: .4byte gUnknown_0202F7C8
-_08132088: .4byte gUnknown_0202F7C9
-_0813208C: .4byte gTasks
-_08132090:
- ldr r1, _081320CC @ =gUnknown_02024BE0
- ldr r0, _081320D0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, _081320D4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0x8]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _081320D8
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- b _0813215E
- .align 2, 0
-_081320CC: .4byte gUnknown_02024BE0
-_081320D0: .4byte gUnknown_0202F7C8
-_081320D4: .4byte gSprites
-_081320D8:
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bgt _08132188
- b _08132162
-_081320EC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0, 0x8]
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- strh r1, [r0, 0x26]
- b _08132188
-_08132104:
- ldr r1, _08132144 @ =gUnknown_02024BE0
- ldr r0, _08132148 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, _0813214C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0x8]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bge _08132150
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bgt _08132188
- b _08132162
- .align 2, 0
-_08132144: .4byte gUnknown_02024BE0
-_08132148: .4byte gUnknown_0202F7C8
-_0813214C: .4byte gSprites
-_08132150:
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r2, r3]
-_0813215E:
- cmp r0, r1
- blt _08132188
-_08132162:
- ldrh r0, [r2, 0x26]
- adds r0, 0x1
- strh r0, [r2, 0x26]
- b _08132188
-_0813216A:
- ldr r1, _08132190 @ =gUnknown_02024BE0
- ldr r0, _08132194 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, _08132198 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_task_del
-_08132188:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132190: .4byte gUnknown_02024BE0
-_08132194: .4byte gUnknown_0202F7C8
-_08132198: .4byte gSprites
- thumb_func_end sub_8131FFC
-
- thumb_func_start sub_813219C
-sub_813219C: @ 813219C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08132204 @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0xE]
- ldr r0, _08132208 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _081321D0
- movs r1, 0x1
-_081321D0:
- strh r1, [r4, 0x10]
- ldr r2, _0813220C @ =gSprites
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x14]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x1A]
- strh r5, [r4, 0x1E]
- movs r0, 0x1
- strh r0, [r4, 0x1C]
- strh r5, [r4, 0x20]
- ldr r0, _08132210 @ =sub_8132214
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132204: .4byte gTasks
-_08132208: .4byte gUnknown_0202F7C8
-_0813220C: .4byte gSprites
-_08132210: .4byte sub_8132214
- thumb_func_end sub_813219C
-
- thumb_func_start sub_8132214
-sub_8132214: @ 8132214
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _08132238 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _081322BC
- cmp r0, 0x1
- bgt _0813223C
- cmp r0, 0
- beq _08132242
- b _08132312
- .align 2, 0
-_08132238: .4byte gTasks
-_0813223C:
- cmp r0, 0x2
- beq _0813230C
- b _08132312
-_08132242:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x8
- movs r2, 0xFF
- ands r0, r2
- strh r0, [r4, 0x1E]
- ldr r5, _081322B4 @ =gSprites
- movs r6, 0xE
- ldrsh r0, [r4, r6]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldr r3, _081322B8 @ =gSineTable
- movs r6, 0x1E
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x2
- ands r0, r2
- strh r0, [r4, 0x1A]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- movs r6, 0x1A
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x10]
- muls r0, r1
- ldrh r1, [r4, 0x12]
- adds r0, r1
- strh r0, [r2, 0x20]
- movs r6, 0x1A
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bne _08132312
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r4, 0x12]
- strh r1, [r0, 0x20]
- b _081322FC
- .align 2, 0
-_081322B4: .4byte gSprites
-_081322B8: .4byte gSineTable
-_081322BC:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x1E]
- ldr r3, _08132304 @ =gSprites
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldr r2, _08132308 @ =gSineTable
- movs r5, 0x1E
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r1, 0x24]
- movs r6, 0x1E
- ldrsh r2, [r4, r6]
- cmp r2, 0
- bne _08132312
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- strh r2, [r1, 0x24]
-_081322FC:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08132312
- .align 2, 0
-_08132304: .4byte gSprites
-_08132308: .4byte gSineTable
-_0813230C:
- adds r0, r2, 0
- bl move_anim_task_del
-_08132312:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8132214
-
- thumb_func_start sub_8132318
-sub_8132318: @ 8132318
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0813236C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0813235E
- adds r0, r4, 0
- bl move_anim_8072740
-_0813235E:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813236C: .4byte gUnknown_0202F7C9
- thumb_func_end sub_8132318
-
- thumb_func_start sub_8132370
-sub_8132370: @ 8132370
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _081323A8 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _081323B4
- ldr r2, _081323AC @ =gUnknown_03004B00
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _081323B0 @ =0x0000fff5
- strh r0, [r4, 0x2E]
- movs r0, 0xC0
- strh r0, [r4, 0x30]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _081323CE
- .align 2, 0
-_081323A8: .4byte gUnknown_0202F7C9
-_081323AC: .4byte gUnknown_03004B00
-_081323B0: .4byte 0x0000fff5
-_081323B4:
- movs r0, 0xB
- strh r0, [r4, 0x2E]
- movs r0, 0xC0
- strh r0, [r4, 0x30]
- ldr r1, _081323D8 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_081323CE:
- ldr r0, _081323DC @ =sub_8132318
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081323D8: .4byte gUnknown_03004B00
-_081323DC: .4byte sub_8132318
- thumb_func_end sub_8132370
-
- thumb_func_start sub_81323E0
-sub_81323E0: @ 81323E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08132424 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _0813240A
- movs r0, 0x10
- strh r0, [r5, 0x22]
-_0813240A:
- movs r0, 0
- strh r0, [r5, 0x3A]
- movs r1, 0x10
- strh r1, [r5, 0x3C]
- ldr r0, _08132428 @ =sub_8132430
- str r0, [r5, 0x1C]
- ldr r0, _0813242C @ =REG_BLDALPHA
- lsls r1, 8
- strh r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132424: .4byte gUnknown_0202F7C8
-_08132428: .4byte sub_8132430
-_0813242C: .4byte REG_BLDALPHA
- thumb_func_end sub_81323E0
-
- thumb_func_start sub_8132430
-sub_8132430: @ 8132430
- push {r4,lr}
- adds r3, r0, 0
- movs r0, 0x32
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- beq _081324A8
- cmp r1, 0x1
- bgt _08132446
- cmp r1, 0
- beq _08132450
- b _08132522
-_08132446:
- cmp r1, 0x2
- beq _081324BE
- cmp r1, 0x3
- beq _0813251C
- b _08132522
-_08132450:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08132522
- strh r1, [r3, 0x2E]
- ldrh r1, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813247A
- ldrh r2, [r3, 0x3A]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- cmp r0, 0xF
- bgt _08132488
- adds r0, r2, 0x1
- strh r0, [r3, 0x3A]
- b _08132488
-_0813247A:
- ldrh r2, [r3, 0x3C]
- movs r4, 0x3C
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _08132488
- subs r0, r2, 0x1
- strh r0, [r3, 0x3C]
-_08132488:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- ldr r2, _081324A4 @ =REG_BLDALPHA
- ldrh r0, [r3, 0x3C]
- lsls r0, 8
- ldrh r1, [r3, 0x3A]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08132522
- b _08132510
- .align 2, 0
-_081324A4: .4byte REG_BLDALPHA
-_081324A8:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _08132522
- strh r1, [r3, 0x2E]
- strh r1, [r3, 0x30]
- b _08132510
-_081324BE:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08132522
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081324EA
- ldrh r2, [r3, 0x3A]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _081324F8
- subs r0, r2, 0x1
- strh r0, [r3, 0x3A]
- b _081324F8
-_081324EA:
- ldrh r2, [r3, 0x3C]
- movs r4, 0x3C
- ldrsh r0, [r3, r4]
- cmp r0, 0xF
- bgt _081324F8
- adds r0, r2, 0x1
- strh r0, [r3, 0x3C]
-_081324F8:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- ldr r2, _08132518 @ =REG_BLDALPHA
- ldrh r0, [r3, 0x3C]
- lsls r0, 8
- ldrh r1, [r3, 0x3A]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- cmp r0, 0x10
- bne _08132522
-_08132510:
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- b _08132522
- .align 2, 0
-_08132518: .4byte REG_BLDALPHA
-_0813251C:
- adds r0, r3, 0
- bl move_anim_8074EE0
-_08132522:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8132430
-
- thumb_func_start sub_8132528
-sub_8132528: @ 8132528
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _08132544 @ =gUnknown_03004B00
- movs r0, 0
- strh r0, [r2, 0xE]
- ldr r0, _08132548 @ =gUnknown_0202F7C0
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0813254C
- movs r0, 0x1
- b _0813256E
- .align 2, 0
-_08132544: .4byte gUnknown_03004B00
-_08132548: .4byte gUnknown_0202F7C0
-_0813254C:
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08132558
- movs r0, 0x2
- b _0813256E
-_08132558:
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08132564
- movs r0, 0x3
- b _0813256E
-_08132564:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132570
- movs r0, 0x4
-_0813256E:
- strh r0, [r2, 0xE]
-_08132570:
- adds r0, r3, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- thumb_func_end sub_8132528
-
- thumb_func_start sub_813257C
-sub_813257C: @ 813257C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _081325B4 @ =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _081325B8 @ =gUnknown_03004B00
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, _081325BC @ =gUnknown_08402B28
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _081325C0 @ =sub_81325C4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081325B4: .4byte gTasks
-_081325B8: .4byte gUnknown_03004B00
-_081325BC: .4byte gUnknown_08402B28
-_081325C0: .4byte sub_81325C4
- thumb_func_end sub_813257C
-
- thumb_func_start sub_81325C4
-sub_81325C4: @ 81325C4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r2, _0813261C @ =gTasks
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- adds r1, r0, 0x1
- movs r5, 0
- strh r1, [r3, 0x8]
- subs r0, 0x10
- lsls r0, 16
- lsrs r0, 16
- adds r6, r2, 0
- cmp r0, 0x16
- bhi _08132628
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08132638
- strh r5, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- movs r5, 0x1
- ands r0, r5
- cmp r0, 0
- bne _08132628
- ldr r2, _08132620 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08132624 @ =0x0000ffff
- strh r1, [r0, 0x24]
- b _08132638
- .align 2, 0
-_0813261C: .4byte gTasks
-_08132620: .4byte gSprites
-_08132624: .4byte 0x0000ffff
-_08132628:
- ldr r2, _08132658 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
-_08132638:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r6
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _08132650
- adds r0, r4, 0
- bl move_anim_task_del
-_08132650:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132658: .4byte gSprites
- thumb_func_end sub_81325C4
-
- thumb_func_start sub_813265C
-sub_813265C: @ 813265C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_813265C
-
- thumb_func_start sub_8132670
-sub_8132670: @ 8132670
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _08132698 @ =sub_813269C
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08132698: .4byte sub_813269C
- thumb_func_end sub_8132670
-
- thumb_func_start sub_813269C
-sub_813269C: @ 813269C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081326C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081326C0
- ldr r0, _081326CC @ =sub_81326D8
- bl SetMainCallback2
- ldr r1, _081326D0 @ =gUnknown_0300485C
- ldr r0, _081326D4 @ =sub_8080990
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_081326C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081326C8: .4byte gPaletteFade
-_081326CC: .4byte sub_81326D8
-_081326D0: .4byte gUnknown_0300485C
-_081326D4: .4byte sub_8080990
- thumb_func_end sub_813269C
-
- thumb_func_start sub_81326D8
-sub_81326D8: @ 81326D8
- push {r4,r5,lr}
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r4, _08132778 @ =gUnknown_030007B0
- ldr r0, _0813277C @ =0x02017000
- str r0, [r4]
- bl sub_81332A0
- ldr r1, [r4]
- ldr r0, _08132780 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- ldr r2, _08132784 @ =0x000002c5
- adds r1, r2
- movs r5, 0
- strb r0, [r1]
- bl sub_8133558
- ldr r0, _08132788 @ =sub_813265C
- bl SetVBlankCallback
- ldr r4, _0813278C @ =gWindowConfig_81E7240
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r4, _08132790 @ =gWindowConfig_81E6CE4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r0, _08132794 @ =REG_BG0VOFS
- strh r5, [r0]
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- strh r5, [r0]
- ldr r0, _08132798 @ =gUnknown_08402D80
- bl LoadSpriteSheet
- ldr r0, _0813279C @ =gUnknown_08402D88
- bl LoadSpritePalette
- bl sub_8133358
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _081327A0 @ =sub_8132870
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132778: .4byte gUnknown_030007B0
-_0813277C: .4byte 0x02017000
-_08132780: .4byte gSpecialVar_0x8004
-_08132784: .4byte 0x000002c5
-_08132788: .4byte sub_813265C
-_0813278C: .4byte gWindowConfig_81E7240
-_08132790: .4byte gWindowConfig_81E6CE4
-_08132794: .4byte REG_BG0VOFS
-_08132798: .4byte gUnknown_08402D80
-_0813279C: .4byte gUnknown_08402D88
-_081327A0: .4byte sub_8132870
- thumb_func_end sub_81326D8
-
- thumb_func_start sub_81327A4
-sub_81327A4: @ 81327A4
- push {r4,r5,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r4, _08132844 @ =gUnknown_030007B0
- ldr r0, _08132848 @ =0x02017000
- str r0, [r4]
- bl sub_8133558
- ldr r1, [r4]
- ldr r0, _0813284C @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- ldr r2, _08132850 @ =0x000002c6
- adds r1, r2
- movs r5, 0
- strb r0, [r1]
- ldr r0, _08132854 @ =sub_813265C
- bl SetVBlankCallback
- ldr r4, _08132858 @ =gWindowConfig_81E7240
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r4, _0813285C @ =gWindowConfig_81E6CE4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08132860 @ =REG_BG0VOFS
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- strh r5, [r0]
- ldr r0, _08132864 @ =gUnknown_08402D80
- bl LoadSpriteSheet
- ldr r0, _08132868 @ =gUnknown_08402D88
- bl LoadSpritePalette
- bl sub_8133358
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _0813286C @ =sub_8132870
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132844: .4byte gUnknown_030007B0
-_08132848: .4byte 0x02017000
-_0813284C: .4byte gSpecialVar_0x8005
-_08132850: .4byte 0x000002c6
-_08132854: .4byte sub_813265C
-_08132858: .4byte gWindowConfig_81E7240
-_0813285C: .4byte gWindowConfig_81E6CE4
-_08132860: .4byte REG_BG0VOFS
-_08132864: .4byte gUnknown_08402D80
-_08132868: .4byte gUnknown_08402D88
-_0813286C: .4byte sub_8132870
- thumb_func_end sub_81327A4
-
- thumb_func_start sub_8132870
-sub_8132870: @ 8132870
- push {r4,lr}
- bl sub_8132908
- ldr r4, _081328E0 @ =gUnknown_030007B0
- ldr r1, [r4]
- ldrb r0, [r1, 0x1D]
- cmp r0, 0
- beq _08132896
- movs r0, 0
- strb r0, [r1, 0x1D]
- ldr r0, [r4]
- ldrb r1, [r0, 0x18]
- lsls r1, 1
- adds r1, 0x1
- lsls r1, 27
- lsrs r1, 24
- movs r0, 0x58
- bl sub_814AD7C
-_08132896:
- ldr r1, [r4]
- ldrb r0, [r1, 0x1E]
- cmp r0, 0
- beq _081328A6
- movs r0, 0
- strb r0, [r1, 0x1E]
- bl sub_8133800
-_081328A6:
- ldr r1, [r4]
- ldr r2, _081328E4 @ =0x000002c3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _081328C8
- adds r2, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8133AEC
- ldr r0, [r4]
- ldr r1, _081328E4 @ =0x000002c3
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_081328C8:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081328E0: .4byte gUnknown_030007B0
-_081328E4: .4byte 0x000002c3
- thumb_func_end sub_8132870
-
- thumb_func_start sub_81328E8
-sub_81328E8: @ 81328E8
- push {r4,lr}
- adds r1, r0, 0
- ldr r4, _08132904 @ =gStringVar4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132904: .4byte gStringVar4
- thumb_func_end sub_81328E8
-
- thumb_func_start sub_8132908
-sub_8132908: @ 8132908
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _0813292C @ =gUnknown_030007B0
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0x21
- bls _08132920
- b _08132FD6
-_08132920:
- lsls r0, 2
- ldr r1, _08132930 @ =_08132934
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813292C: .4byte gUnknown_030007B0
-_08132930: .4byte _08132934
- .align 2, 0
-_08132934:
- .4byte _081329BC
- .4byte _08132A0C
- .4byte _08132A24
- .4byte _08132A2C
- .4byte _08132A60
- .4byte _08132A66
- .4byte _08132A98
- .4byte _08132FD6
- .4byte _08132AAA
- .4byte _08132AD0
- .4byte _08132FD6
- .4byte _08132FD6
- .4byte _08132B74
- .4byte _08132B98
- .4byte _08132DD8
- .4byte _08132DF8
- .4byte _08132BF0
- .4byte _08132C08
- .4byte _08132C2C
- .4byte _08132D40
- .4byte _08132D68
- .4byte _08132DB8
- .4byte _08132DC6
- .4byte _08132FD6
- .4byte _08132C74
- .4byte _08132C8C
- .4byte _08132CB0
- .4byte _08132D0C
- .4byte _08132E18
- .4byte _08132E7C
- .4byte _08132F58
- .4byte _08132F84
- .4byte _08132FA4
- .4byte _08132FBC
-_081329BC:
- ldr r1, [r7]
- ldrb r0, [r1]
- adds r0, 0x1
- movs r4, 0
- strb r0, [r1]
- bl sub_8132FEC
- movs r0, 0
- bl sub_8133030
- bl sub_8133800
- ldr r0, _08132A04 @ =gSprites
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- ldr r0, [r7]
- ldr r1, _08132A08 @ =0x000002c3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- b _08132FD6
- .align 2, 0
-_08132A04: .4byte gSprites
-_08132A08: .4byte 0x000002c3
-_08132A0C:
- ldr r0, _08132A20 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132A1A
- b _08132FD6
-_08132A1A:
- ldr r1, [r7]
- movs r0, 0x4
- b _08132FD4
- .align 2, 0
-_08132A20: .4byte gPaletteFade
-_08132A24:
- ldr r1, [r7]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
-_08132A2C:
- movs r0, 0
- bl sub_8133030
- bl sub_8133800
- ldr r2, _08132A54 @ =gUnknown_030007B0
- ldr r0, [r2]
- ldr r1, _08132A58 @ =0x000002c3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _08132A5C @ =gSprites
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- b _08132FD6
- .align 2, 0
-_08132A54: .4byte gUnknown_030007B0
-_08132A58: .4byte 0x000002c3
-_08132A5C: .4byte gSprites
-_08132A60:
- bl sub_81330E8
- b _08132A9C
-_08132A66:
- movs r0, 0
- bl sub_8133140
- bl sub_8133800
- ldr r2, _08132A8C @ =gUnknown_030007B0
- ldr r0, [r2]
- ldr r1, _08132A90 @ =0x000002c3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08132A94 @ =gSprites
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132A8C: .4byte gUnknown_030007B0
-_08132A90: .4byte 0x000002c3
-_08132A94: .4byte gSprites
-_08132A98:
- bl sub_8133248
-_08132A9C:
- lsls r0, 24
- cmp r0, 0
- beq _08132AA4
- b _08132FD6
-_08132AA4:
- bl sub_813362C
- b _08132FD6
-_08132AAA:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132AB6
- b _08132FD6
-_08132AB6:
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08132ACC @ =gUnknown_030007B0
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132ACC: .4byte gUnknown_030007B0
-_08132AD0:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08132B3A
- bl sub_8133CA4
- ldr r4, _08132B1C @ =gUnknown_030007B0
- ldr r2, [r4]
- ldr r1, _08132B20 @ =0x000002c5
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08132B24 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r2, 0x1B]
- lsls r1, 1
- adds r2, 0x20
- adds r2, r1
- ldrh r1, [r2]
- bl GiveMoveToMon
- lsls r0, 16
- ldr r1, _08132B28 @ =0xffff0000
- cmp r0, r1
- beq _08132B34
- ldr r0, _08132B2C @ =gOtherText_PokeLearnedMove
- bl sub_81328E8
- ldr r1, _08132B30 @ =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, [r4]
- movs r0, 0x1F
- b _08132FD4
- .align 2, 0
-_08132B1C: .4byte gUnknown_030007B0
-_08132B20: .4byte 0x000002c5
-_08132B24: .4byte gPlayerParty
-_08132B28: .4byte 0xffff0000
-_08132B2C: .4byte gOtherText_PokeLearnedMove
-_08132B30: .4byte gSpecialVar_0x8004
-_08132B34:
- ldr r1, [r4]
- movs r0, 0x10
- b _08132FD4
-_08132B3A:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08132B48
- cmp r1, 0x1
- beq _08132B48
- b _08132FD6
-_08132B48:
- bl sub_8133CA4
- ldr r3, _08132B70 @ =gUnknown_030007B0
- ldr r1, [r3]
- movs r2, 0xB1
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132B60
- movs r0, 0x3
- strb r0, [r1]
-_08132B60:
- ldr r1, [r3]
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08132B6C
- b _08132FD6
-_08132B6C:
- movs r0, 0x5
- b _08132FD4
- .align 2, 0
-_08132B70: .4byte gUnknown_030007B0
-_08132B74:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132B80
- b _08132FD6
-_08132B80:
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08132B94 @ =gUnknown_030007B0
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132B94: .4byte gUnknown_030007B0
-_08132B98:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r4, r0, 24
- cmp r4, 0
- bne _08132BB4
- bl sub_8133CA4
- ldr r0, _08132BB0 @ =gSpecialVar_0x8004
- strh r4, [r0]
- b _08132FCE
- .align 2, 0
-_08132BB0: .4byte gSpecialVar_0x8004
-_08132BB4:
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08132BC2
- cmp r4, 0x1
- beq _08132BC2
- b _08132FD6
-_08132BC2:
- bl sub_8133CA4
- ldr r3, _08132BEC @ =gUnknown_030007B0
- ldr r1, [r3]
- movs r2, 0xB1
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132BDA
- movs r0, 0x3
- strb r0, [r1]
-_08132BDA:
- ldr r1, [r3]
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08132BE6
- b _08132FD6
-_08132BE6:
- movs r0, 0x5
- b _08132FD4
- .align 2, 0
-_08132BEC: .4byte gUnknown_030007B0
-_08132BF0:
- ldr r0, _08132C00 @ =gOtherText_DeleteOlderMove
- bl sub_81328E8
- ldr r0, _08132C04 @ =gUnknown_030007B0
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132C00: .4byte gOtherText_DeleteOlderMove
-_08132C04: .4byte gUnknown_030007B0
-_08132C08:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132C14
- b _08132FD6
-_08132C14:
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08132C28 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x12
- b _08132FD4
- .align 2, 0
-_08132C28: .4byte gUnknown_030007B0
-_08132C2C:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08132C54
- bl sub_8133CA4
- ldr r0, _08132C4C @ =gOtherText_WhichMoveToForget
- bl sub_81328E8
- ldr r0, _08132C50 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x13
- b _08132FD4
- .align 2, 0
-_08132C4C: .4byte gOtherText_WhichMoveToForget
-_08132C50: .4byte gUnknown_030007B0
-_08132C54:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08132C62
- cmp r1, 0x1
- beq _08132C62
- b _08132FD6
-_08132C62:
- bl sub_8133CA4
- ldr r0, _08132C70 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x18
- b _08132FD4
- .align 2, 0
-_08132C70: .4byte gUnknown_030007B0
-_08132C74:
- ldr r0, _08132C84 @ =gOtherText_StopLearningMove
- bl sub_81328E8
- ldr r0, _08132C88 @ =gUnknown_030007B0
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132C84: .4byte gOtherText_StopLearningMove
-_08132C88: .4byte gUnknown_030007B0
-_08132C8C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132C98
- b _08132FD6
-_08132C98:
- ldr r0, _08132CAC @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x1A
- strb r0, [r1]
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- b _08132FD6
- .align 2, 0
-_08132CAC: .4byte gUnknown_030007B0
-_08132CB0:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08132CCC
- bl sub_8133CA4
- ldr r0, _08132CC8 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x1B
- b _08132FD4
- .align 2, 0
-_08132CC8: .4byte gUnknown_030007B0
-_08132CCC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08132CDA
- cmp r1, 0x1
- beq _08132CDA
- b _08132FD6
-_08132CDA:
- bl sub_8133CA4
- ldr r1, _08132D08 @ =gUnknown_030007B0
- ldr r2, [r1]
- movs r3, 0xB1
- lsls r3, 2
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132CF2
- movs r0, 0x3
- strb r0, [r2]
-_08132CF2:
- ldr r2, [r1]
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08132D00
- movs r0, 0x5
- strb r0, [r2]
-_08132D00:
- ldr r1, [r1]
- movs r0, 0x10
- b _08132FD4
- .align 2, 0
-_08132D08: .4byte gUnknown_030007B0
-_08132D0C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132D18
- b _08132FD6
-_08132D18:
- ldr r3, _08132D3C @ =gUnknown_030007B0
- ldr r1, [r3]
- movs r2, 0xB1
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132D2C
- movs r0, 0x3
- strb r0, [r1]
-_08132D2C:
- ldr r1, [r3]
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08132D38
- b _08132FD6
-_08132D38:
- movs r0, 0x5
- b _08132FD4
- .align 2, 0
-_08132D3C: .4byte gUnknown_030007B0
-_08132D40:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132D4C
- b _08132FD6
-_08132D4C:
- ldr r0, _08132D64 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r2, 0
- movs r0, 0x14
- strb r0, [r1]
- subs r0, 0x15
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08132FD6
- .align 2, 0
-_08132D64: .4byte gUnknown_030007B0
-_08132D68:
- ldr r0, _08132DA4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132D76
- b _08132FD6
-_08132D76:
- ldr r0, _08132DA8 @ =gPlayerParty
- ldr r5, [r7]
- ldr r2, _08132DAC @ =0x000002c5
- adds r1, r5, r2
- ldrb r1, [r1]
- ldr r2, _08132DB0 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08132DB4 @ =sub_81327A4
- ldrb r4, [r5, 0x1B]
- lsls r4, 1
- adds r5, 0x20
- adds r5, r4
- ldrh r4, [r5]
- str r4, [sp]
- bl sub_809D9F0
- ldr r1, [r7]
- movs r0, 0x1C
- b _08132FD4
- .align 2, 0
-_08132DA4: .4byte gPaletteFade
-_08132DA8: .4byte gPlayerParty
-_08132DAC: .4byte 0x000002c5
-_08132DB0: .4byte gPlayerPartyCount
-_08132DB4: .4byte sub_81327A4
-_08132DB8:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132DC4
- b _08132FD6
-_08132DC4:
- b _08132FCE
-_08132DC6:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08132FD6
-_08132DD8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08132DF4 @ =gUnknown_030007B0
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132DF4: .4byte gUnknown_030007B0
-_08132DF8:
- ldr r0, _08132E10 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132E06
- b _08132FD6
-_08132E06:
- ldr r0, _08132E14 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- b _08132FD6
- .align 2, 0
-_08132E10: .4byte gPaletteFade
-_08132E14: .4byte c2_exit_to_overworld_2_switch
-_08132E18:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r5, _08132E74 @ =gUnknown_030007B0
- ldr r1, [r5]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_8132FEC
- bl sub_8133800
- ldr r0, [r5]
- movs r4, 0xB1
- lsls r4, 2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132E4E
- movs r0, 0x1
- bl sub_8133030
-_08132E4E:
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08132E66
- ldr r0, _08132E78 @ =gSprites
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- movs r0, 0x1
- bl sub_8133140
-_08132E66:
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8133AEC
- b _08132FD6
- .align 2, 0
-_08132E74: .4byte gUnknown_030007B0
-_08132E78: .4byte gSprites
-_08132E7C:
- ldr r0, _08132E9C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132E8A
- b _08132FD6
-_08132E8A:
- ldr r1, [r7]
- ldr r0, _08132EA0 @ =0x000002c6
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0x4
- bne _08132EA4
- movs r0, 0x18
- b _08132FD4
- .align 2, 0
-_08132E9C: .4byte gPaletteFade
-_08132EA0: .4byte 0x000002c6
-_08132EA4:
- ldr r4, _08132F38 @ =0x000002c5
- adds r0, r1, r4
- ldrb r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08132F3C @ =gPlayerParty
- adds r0, r5
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08132F40 @ =gStringVar3
- movs r1, 0xD
- mov r9, r1
- mov r1, r9
- muls r1, r0
- ldr r0, _08132F44 @ =gMoveNames
- mov r8, r0
- add r1, r8
- adds r0, r2, 0
- bl StringCopy
- ldr r1, [r7]
- adds r0, r1, r4
- ldrb r0, [r0]
- muls r0, r6
- adds r0, r5
- ldr r2, _08132F48 @ =0x000002c6
- adds r1, r2
- ldrb r1, [r1]
- bl RemoveMonPPBonus
- ldr r3, [r7]
- adds r4, r3, r4
- ldrb r0, [r4]
- muls r0, r6
- adds r0, r5
- ldrb r2, [r3, 0x1B]
- lsls r2, 1
- adds r1, r3, 0
- adds r1, 0x20
- adds r1, r2
- ldrh r1, [r1]
- ldr r2, _08132F48 @ =0x000002c6
- adds r3, r2
- ldrb r2, [r3]
- bl SetMonMoveSlot
- ldr r0, _08132F4C @ =gStringVar2
- ldr r1, [r7]
- ldrb r2, [r1, 0x1B]
- lsls r2, 1
- adds r1, 0x20
- adds r1, r2
- ldrh r1, [r1]
- mov r2, r9
- muls r2, r1
- adds r1, r2, 0
- add r1, r8
- bl StringCopy
- ldr r0, _08132F50 @ =gOtherText_ForgotMove123
- bl sub_81328E8
- ldr r1, [r7]
- movs r0, 0x1E
- strb r0, [r1]
- ldr r1, _08132F54 @ =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- b _08132FD6
- .align 2, 0
-_08132F38: .4byte 0x000002c5
-_08132F3C: .4byte gPlayerParty
-_08132F40: .4byte gStringVar3
-_08132F44: .4byte gMoveNames
-_08132F48: .4byte 0x000002c6
-_08132F4C: .4byte gStringVar2
-_08132F50: .4byte gOtherText_ForgotMove123
-_08132F54: .4byte gSpecialVar_0x8004
-_08132F58:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08132FD6
- ldr r0, _08132F78 @ =gOtherText_ForgotOrDidNotLearnMove
- bl sub_81328E8
- ldr r0, _08132F7C @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x1F
- strb r0, [r1]
- ldr r0, _08132F80 @ =0x0000016f
- bl PlayFanfare
- b _08132FD6
- .align 2, 0
-_08132F78: .4byte gOtherText_ForgotOrDidNotLearnMove
-_08132F7C: .4byte gUnknown_030007B0
-_08132F80: .4byte 0x0000016f
-_08132F84:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08132FD6
- ldr r0, _08132F9C @ =0x0000016f
- bl PlayFanfare
- ldr r0, _08132FA0 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x20
- b _08132FD4
- .align 2, 0
-_08132F9C: .4byte 0x0000016f
-_08132FA0: .4byte gUnknown_030007B0
-_08132FA4:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08132FD6
- ldr r0, _08132FB8 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0x21
- b _08132FD4
- .align 2, 0
-_08132FB8: .4byte gUnknown_030007B0
-_08132FBC:
- ldr r0, _08132FE4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08132FD6
- movs r0, 0x5
- bl PlaySE
-_08132FCE:
- ldr r0, _08132FE8 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0xE
-_08132FD4:
- strb r0, [r1]
-_08132FD6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08132FE4: .4byte gMain
-_08132FE8: .4byte gUnknown_030007B0
- thumb_func_end sub_8132908
-
- thumb_func_start sub_8132FEC
-sub_8132FEC: @ 8132FEC
- push {r4-r6,lr}
- ldr r0, _08133024 @ =gWindowConfig_81E7240
- bl BasicInitMenuWindow
- movs r5, 0
- ldr r4, _08133028 @ =gUnknown_08402CF8
- adds r6, r4, 0
-_08132FFA:
- lsls r3, r5, 2
- ldrb r0, [r4]
- adds r1, r6, 0x1
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r6, 0x2
- adds r3, r2
- ldrb r2, [r3]
- ldrb r3, [r4, 0x3]
- bl MenuDrawTextWindow
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, 0x3
- bls _08132FFA
- ldr r0, _0813302C @ =gWindowConfig_81E6CE4
- bl BasicInitMenuWindow
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08133024: .4byte gWindowConfig_81E7240
-_08133028: .4byte gUnknown_08402CF8
-_0813302C: .4byte gWindowConfig_81E6CE4
- thumb_func_end sub_8132FEC
-
- thumb_func_start sub_8133030
-sub_8133030: @ 8133030
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _081330D4 @ =gSprites
- ldr r5, _081330D8 @ =gUnknown_030007B0
- ldr r0, [r5]
- ldrb r0, [r0, 0x3]
- 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 r0, [r5]
- ldrb r1, [r0, 0x4]
- 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]
- movs r2, 0
- ldr r6, _081330DC @ =gUnknown_08402D08
- movs r3, 0x4
-_08133070:
- ldr r0, [r5]
- adds r0, r2
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0xF
- ble _08133070
- ldr r0, [r6]
- cmp r0, 0
- beq _081330B4
- ldr r5, _081330E0 @ =gTileBuffer
- adds r4, r6, 0
-_08133096:
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0x40
- movs r3, 0x2
- bl sub_8072C74
- ldrb r1, [r4, 0x4]
- ldrb r2, [r4, 0x5]
- adds r0, r5, 0
- bl MenuPrint
- adds r4, 0x8
- ldr r0, [r4]
- cmp r0, 0
- bne _08133096
-_081330B4:
- cmp r7, 0
- bne _081330CC
- ldr r0, _081330E4 @ =gOtherText_TeachWhichMove
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0x78
- movs r3, 0xC0
- bl sub_8072AB0
-_081330CC:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081330D4: .4byte gSprites
-_081330D8: .4byte gUnknown_030007B0
-_081330DC: .4byte gUnknown_08402D08
-_081330E0: .4byte gTileBuffer
-_081330E4: .4byte gOtherText_TeachWhichMove
- thumb_func_end sub_8133030
-
- thumb_func_start sub_81330E8
-sub_81330E8: @ 81330E8
- push {r4,lr}
- ldr r0, _08133134 @ =gMain
- ldrh r2, [r0, 0x2E]
- movs r1, 0x30
- ands r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- ldr r0, _08133138 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0813310C
- movs r0, 0xC0
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0813310C
- adds r4, 0x1
-_0813310C:
- cmp r4, 0
- beq _0813312A
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0813313C @ =gUnknown_030007B0
- ldr r1, [r2]
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0xB1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0813312A:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08133134: .4byte gMain
-_08133138: .4byte gSaveBlock2
-_0813313C: .4byte gUnknown_030007B0
- thumb_func_end sub_81330E8
-
- thumb_func_start sub_8133140
-sub_8133140: @ 8133140
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldr r4, _08133234 @ =gSprites
- ldr r5, _08133238 @ =gUnknown_030007B0
- ldr r0, [r5]
- ldrb r0, [r0, 0x3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x5
- negs r3, r3
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r3, 0
- ands r1, r2
- strb r1, [r0]
- movs r6, 0
- ldr r7, _0813323C @ =gUnknown_08402D08
-_0813318A:
- ldr r0, [r5]
- adds r0, r6
- ldrb r0, [r0, 0x7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0xF
- ble _0813318A
- movs r6, 0
- ldr r0, [r7]
- cmp r0, 0
- beq _08133208
- mov r9, r7
- mov r10, r6
- movs r0, 0x24
- add r0, r9
- mov r8, r0
-_081331BA:
- mov r0, r9
- adds r0, 0x20
- add r0, r10
- ldr r1, [r0]
- ldr r0, _08133240 @ =gTileBuffer
- movs r2, 0x40
- movs r3, 0x2
- bl sub_8072C74
- mov r0, r8
- ldrb r5, [r0]
- ldrb r4, [r0, 0x1]
- ldr r0, _08133240 @ =gTileBuffer
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- cmp r6, 0
- beq _081331F8
- adds r1, r4, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r5, 0x7
- lsls r2, 24
- lsrs r2, 24
- adds r3, r4, 0x3
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- bl MenuZeroFillWindowRect
-_081331F8:
- movs r0, 0x8
- add r10, r0
- add r8, r0
- adds r7, 0x8
- adds r6, 0x1
- ldr r0, [r7]
- cmp r0, 0
- bne _081331BA
-_08133208:
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bne _08133222
- ldr r0, _08133244 @ =gOtherText_TeachWhichMove
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0x78
- movs r3, 0xC0
- bl sub_8072AB0
-_08133222:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133234: .4byte gSprites
-_08133238: .4byte gUnknown_030007B0
-_0813323C: .4byte gUnknown_08402D08
-_08133240: .4byte gTileBuffer
-_08133244: .4byte gOtherText_TeachWhichMove
- thumb_func_end sub_8133140
-
- thumb_func_start sub_8133248
-sub_8133248: @ 8133248
- push {r4,lr}
- ldr r0, _08133294 @ =gMain
- ldrh r2, [r0, 0x2E]
- movs r1, 0x30
- ands r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- ldr r0, _08133298 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0813326C
- movs r0, 0xC0
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0813326C
- adds r4, 0x1
-_0813326C:
- cmp r4, 0
- beq _0813328A
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0813329C @ =gUnknown_030007B0
- ldr r1, [r2]
- movs r3, 0
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0xB1
- lsls r1, 2
- adds r0, r1
- strb r3, [r0]
-_0813328A:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08133294: .4byte gMain
-_08133298: .4byte gSaveBlock2
-_0813329C: .4byte gUnknown_030007B0
- thumb_func_end sub_8133248
-
- thumb_func_start sub_81332A0
-sub_81332A0: @ 81332A0
- push {r4,lr}
- ldr r2, _081332F8 @ =gUnknown_030007B0
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x2]
- ldr r0, [r2]
- strb r1, [r0, 0x19]
- ldr r0, [r2]
- strb r1, [r0, 0x18]
- ldr r0, [r2]
- strb r1, [r0, 0x1C]
- ldr r0, [r2]
- strb r1, [r0, 0x1A]
- ldr r0, [r2]
- strb r1, [r0, 0x1B]
- ldr r0, [r2]
- strb r1, [r0, 0x1D]
- ldr r0, [r2]
- strb r1, [r0, 0x1E]
- ldr r0, [r2]
- ldr r3, _081332FC @ =0x000002c3
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- adds r3, 0x1
- adds r0, r3
- strb r1, [r0]
- movs r3, 0
- adds r4, r2, 0
- movs r2, 0
-_081332E0:
- ldr r0, [r4]
- lsls r1, r3, 1
- adds r0, 0x20
- adds r0, r1
- strh r2, [r0]
- adds r3, 0x1
- cmp r3, 0x13
- ble _081332E0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081332F8: .4byte gUnknown_030007B0
-_081332FC: .4byte 0x000002c3
- thumb_func_end sub_81332A0
-
- thumb_func_start sub_8133300
-sub_8133300: @ 8133300
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- movs r0, 0xFF
- ands r1, r0
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- beq _08133324
- cmp r0, 0x1
- ble _0813334A
- cmp r0, 0x2
- beq _08133338
- b _0813334A
-_08133324:
- adds r0, r1, 0
- movs r1, 0x3
- bl Sin
- ldrh r1, [r4, 0x32]
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- strh r0, [r4, 0x24]
- b _0813334A
-_08133338:
- adds r0, r1, 0
- movs r1, 0x1
- bl Sin
- ldrh r1, [r4, 0x32]
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- strh r0, [r4, 0x26]
-_0813334A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8133300
-
- thumb_func_start sub_8133358
-sub_8133358: @ 8133358
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r6, _0813353C @ =gSpriteTemplate_8402D90
- adds r0, r6, 0
- movs r1, 0x8
- movs r2, 0x10
- movs r3, 0
- bl CreateSprite
- ldr r4, _08133540 @ =gUnknown_030007B0
- ldr r1, [r4]
- strb r0, [r1, 0x3]
- ldr r5, _08133544 @ =gSprites
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- mov r8, r1
- mov r1, r8
- strh r1, [r0, 0x2E]
- ldrb r1, [r2, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08133548 @ =0x0000ffff
- strh r1, [r0, 0x32]
- adds r0, r6, 0
- movs r1, 0x48
- movs r2, 0x10
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- strb r0, [r1, 0x4]
- ldr r0, [r4]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, [r4]
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x2E]
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldr r0, _0813354C @ =gSpriteTemplate_8402DC0
- mov r9, r0
- movs r1, 0xA0
- movs r2, 0x4
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- strb r0, [r1, 0x5]
- ldr r0, [r4]
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r6, 0x2
- strh r6, [r0, 0x2E]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x32]
- mov r0, r9
- movs r1, 0xA0
- movs r2, 0x3C
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- strb r0, [r1, 0x6]
- ldr r2, [r4]
- ldrb r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- movs r5, 0
- ldr r6, _08133550 @ =gSpriteTemplate_8402E08
-_0813344E:
- adds r2, r5, 0
- cmp r5, 0
- bge _08133456
- adds r2, r5, 0x3
-_08133456:
- asrs r2, 2
- lsls r1, r2, 2
- subs r1, r5, r1
- lsls r1, 19
- movs r0, 0xE0
- lsls r0, 13
- adds r1, r0
- asrs r1, 16
- lsls r2, 19
- movs r0, 0xD0
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- adds r0, r6, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- adds r2, r5, 0x4
- adds r1, 0x3
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x3
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08133544 @ =gSprites
- adds r0, r1
- movs r1, 0x2
- bl StartSpriteAnim
- adds r5, 0x1
- cmp r5, 0x7
- ble _0813344E
- movs r5, 0
- ldr r7, _08133550 @ =gSpriteTemplate_8402E08
- ldr r6, _08133540 @ =gUnknown_030007B0
-_081334A6:
- adds r2, r5, 0
- cmp r5, 0
- bge _081334AE
- adds r2, r5, 0x3
-_081334AE:
- asrs r2, 2
- lsls r1, r2, 2
- subs r1, r5, r1
- lsls r1, 19
- movs r0, 0xE0
- lsls r0, 13
- adds r1, r0
- asrs r1, 16
- lsls r2, 19
- movs r0, 0xB8
- lsls r0, 15
- adds r2, r0
- asrs r2, 16
- adds r0, r7, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r2, r5, 0
- adds r2, 0xC
- adds r1, 0x3
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x3
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08133544 @ =gSprites
- adds r0, r4
- movs r1, 0x2
- bl StartSpriteAnim
- adds r5, 0x1
- cmp r5, 0x7
- ble _081334A6
- movs r5, 0
- ldr r3, _08133540 @ =gUnknown_030007B0
- movs r2, 0x4
-_08133500:
- ldr r0, [r3]
- adds r0, 0x3
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r5, 0x1
- cmp r5, 0x13
- ble _08133500
- ldr r1, _08133548 @ =0x0000ffff
- ldr r3, _08133554 @ =0x00002d9f
- movs r0, 0x12
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0xC
- bl CreateBlendedOutlineCursor
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813353C: .4byte gSpriteTemplate_8402D90
-_08133540: .4byte gUnknown_030007B0
-_08133544: .4byte gSprites
-_08133548: .4byte 0x0000ffff
-_0813354C: .4byte gSpriteTemplate_8402DC0
-_08133550: .4byte gSpriteTemplate_8402E08
-_08133554: .4byte 0x00002d9f
- thumb_func_end sub_8133358
-
- thumb_func_start sub_8133558
-sub_8133558: @ 8133558
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r5, _081335F4 @ =gUnknown_030007B0
- ldr r1, [r5]
- ldr r2, _081335F8 @ =0x000002c5
- adds r0, r1, r2
- ldrb r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _081335FC @ =gPlayerParty
- adds r0, r2
- adds r1, 0x20
- bl sub_80403CC
- ldr r1, [r5]
- strb r0, [r1, 0x1A]
- movs r4, 0
- ldr r0, [r5]
- ldrb r0, [r0, 0x1A]
- cmp r4, r0
- bge _081335AA
- adds r6, r5, 0
- movs r5, 0x52
-_08133586:
- lsls r2, r4, 1
- ldr r1, [r6]
- adds r0, r1, r5
- adds r1, 0x20
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08133600 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- adds r5, 0x19
- adds r4, 0x1
- ldr r0, [r6]
- ldrb r0, [r0, 0x1A]
- cmp r4, r0
- blt _08133586
-_081335AA:
- ldr r4, _081335F4 @ =gUnknown_030007B0
- ldr r0, [r4]
- ldr r1, _081335F8 @ =0x000002c5
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081335FC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, _08133604 @ =gStringVar1
- mov r1, sp
- bl StringCopy10
- ldr r0, [r4]
- ldrb r2, [r0, 0x1A]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r2
- adds r1, 0x52
- adds r0, r1
- ldr r1, _08133608 @ =gUnknownText_Exit
- bl StringCopy
- ldr r1, [r4]
- ldrb r0, [r1, 0x1A]
- adds r0, 0x1
- strb r0, [r1, 0x1A]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081335F4: .4byte gUnknown_030007B0
-_081335F8: .4byte 0x000002c5
-_081335FC: .4byte gPlayerParty
-_08133600: .4byte gMoveNames
-_08133604: .4byte gStringVar1
-_08133608: .4byte gUnknownText_Exit
- thumb_func_end sub_8133558
-
- thumb_func_start sub_813360C
-sub_813360C: @ 813360C
- lsls r0, 24
- ldr r3, _08133628 @ =gUnknown_030007B0
- ldr r2, [r3]
- ldrb r1, [r2, 0x18]
- strb r1, [r2, 0x1C]
- ldr r1, [r3]
- lsrs r0, 24
- ldrb r2, [r1, 0x18]
- adds r0, r2
- strb r0, [r1, 0x18]
- ldr r1, [r3]
- movs r0, 0x1
- strb r0, [r1, 0x1D]
- bx lr
- .align 2, 0
-_08133628: .4byte gUnknown_030007B0
- thumb_func_end sub_813360C
-
- thumb_func_start sub_813362C
-sub_813362C: @ 813362C
- push {r4,r5,lr}
- ldr r2, _08133670 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08133688
- ldr r4, _08133674 @ =gUnknown_030007B0
- ldr r0, [r4]
- ldrb r0, [r0, 0x1B]
- cmp r0, 0
- bne _08133646
- b _08133796
-_08133646:
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r4]
- ldrb r0, [r1, 0x1B]
- subs r0, 0x1
- strb r0, [r1, 0x1B]
- ldr r0, [r4]
- ldr r1, _08133678 @ =0x000002c3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0
- beq _0813367C
- movs r0, 0x1
- negs r0, r0
- bl sub_813360C
- b _08133796
- .align 2, 0
-_08133670: .4byte gMain
-_08133674: .4byte gUnknown_030007B0
-_08133678: .4byte 0x000002c3
-_0813367C:
- ldrb r0, [r1, 0x19]
- cmp r0, 0
- bne _08133684
- b _08133796
-_08133684:
- subs r0, 0x1
- b _081336DC
-_08133688:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081336E8
- ldr r4, _081336C8 @ =gUnknown_030007B0
- ldr r0, [r4]
- ldrb r1, [r0, 0x1B]
- ldrb r0, [r0, 0x1A]
- subs r0, 0x1
- cmp r1, r0
- blt _081336A0
- b _08133796
-_081336A0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r4]
- ldrb r0, [r1, 0x1B]
- adds r0, 0x1
- strb r0, [r1, 0x1B]
- ldr r0, [r4]
- ldr r3, _081336CC @ =0x000002c3
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0x2
- beq _081336D0
- movs r0, 0x1
- bl sub_813360C
- b _08133796
- .align 2, 0
-_081336C8: .4byte gUnknown_030007B0
-_081336CC: .4byte 0x000002c3
-_081336D0:
- ldrb r2, [r1, 0x19]
- ldrb r0, [r1, 0x1A]
- subs r0, 0x3
- cmp r2, r0
- beq _08133796
- adds r0, r2, 0x1
-_081336DC:
- strb r0, [r1, 0x19]
- ldr r1, [r4]
- ldrb r0, [r1, 0x1E]
- adds r0, 0x1
- strb r0, [r1, 0x1E]
- b _08133796
-_081336E8:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813376C
- movs r0, 0x5
- bl PlaySE
- ldr r5, _08133738 @ =gUnknown_030007B0
- ldr r2, [r5]
- ldrb r1, [r2, 0x1B]
- ldrb r0, [r2, 0x1A]
- subs r0, 0x1
- cmp r1, r0
- beq _08133748
- movs r0, 0x8
- strb r0, [r2]
- ldr r0, _0813373C @ =gStringVar2
- ldr r1, [r5]
- ldrb r3, [r1, 0x1B]
- lsls r2, r3, 1
- adds r2, r3
- lsls r2, 3
- adds r2, r3
- adds r2, 0x52
- adds r1, r2
- bl StringCopy
- ldr r4, _08133740 @ =gStringVar4
- ldr r1, _08133744 @ =gOtherText_TeachSpecificMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- b _08133796
- .align 2, 0
-_08133738: .4byte gUnknown_030007B0
-_0813373C: .4byte gStringVar2
-_08133740: .4byte gStringVar4
-_08133744: .4byte gOtherText_TeachSpecificMove
-_08133748:
- ldr r4, _08133764 @ =gStringVar4
- ldr r1, _08133768 @ =gOtherText_GiveUpTeachingMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r1, [r5]
- movs r0, 0xC
- strb r0, [r1]
- b _08133796
- .align 2, 0
-_08133764: .4byte gStringVar4
-_08133768: .4byte gOtherText_GiveUpTeachingMove
-_0813376C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08133796
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081337D4 @ =gUnknown_030007B0
- ldr r1, [r0]
- movs r0, 0xC
- strb r0, [r1]
- ldr r4, _081337D8 @ =gStringVar4
- ldr r1, _081337DC @ =gOtherText_GiveUpTeachingMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
-_08133796:
- ldr r0, _081337D4 @ =gUnknown_030007B0
- ldr r4, [r0]
- ldrb r0, [r4, 0x1A]
- cmp r0, 0x3
- bls _081337F8
- ldr r3, _081337E0 @ =gSprites
- adds r5, r3, 0
- adds r5, 0xC6
- ldrb r0, [r5]
- movs r1, 0x5
- negs r1, r1
- adds r2, r1, 0
- ands r2, r0
- strb r2, [r5]
- movs r0, 0x85
- lsls r0, 1
- adds r0, r3
- mov r12, r0
- ldrb r0, [r0]
- adds r3, r1, 0
- ands r3, r0
- mov r1, r12
- strb r3, [r1]
- ldrb r0, [r4, 0x19]
- cmp r0, 0
- bne _081337E4
- movs r1, 0x4
- adds r0, r2, 0
- orrs r0, r1
- strb r0, [r5]
- b _081337F8
- .align 2, 0
-_081337D4: .4byte gUnknown_030007B0
-_081337D8: .4byte gStringVar4
-_081337DC: .4byte gOtherText_GiveUpTeachingMove
-_081337E0: .4byte gSprites
-_081337E4:
- ldrb r1, [r4, 0x19]
- ldrb r0, [r4, 0x1A]
- subs r0, 0x3
- cmp r1, r0
- bne _081337F8
- movs r1, 0x4
- adds r0, r3, 0
- orrs r0, r1
- mov r3, r12
- strb r0, [r3]
-_081337F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813362C
-
- thumb_func_start sub_8133800
-sub_8133800: @ 8133800
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _08133834 @ =gUnknown_030007B0
- ldr r0, [r1]
- ldrb r6, [r0, 0x19]
- ldr r3, _08133838 @ =gTileBuffer
- mov r10, r1
- ldr r0, _0813383C @ =gBattleMoves
- mov r9, r0
- movs r1, 0x2
- mov r8, r1
-_0813381C:
- mov r4, r10
- ldr r2, [r4]
- ldrb r0, [r2, 0x1A]
- cmp r6, r0
- bcc _08133844
- adds r0, r3, 0
- ldr r1, _08133840 @ =gEmptyString_81E72B0
- movs r2, 0x90
- movs r3, 0
- bl sub_8072C74
- b _081338FA
- .align 2, 0
-_08133834: .4byte gUnknown_030007B0
-_08133838: .4byte gTileBuffer
-_0813383C: .4byte gBattleMoves
-_08133840: .4byte gEmptyString_81E72B0
-_08133844:
- ldrb r0, [r2, 0x1A]
- subs r0, 0x1
- cmp r6, r0
- bne _08133860
- adds r0, r3, 0
- ldr r1, _0813385C @ =gUnknownText_Exit
- movs r2, 0x90
- movs r3, 0
- bl sub_8072C74
- b _081338FA
- .align 2, 0
-_0813385C: .4byte gUnknownText_Exit
-_08133860:
- lsls r1, r6, 1
- adds r0, r2, 0
- adds r0, 0x20
- adds r0, r1
- ldrh r5, [r0]
- movs r4, 0xB1
- lsls r4, 2
- adds r0, r2, r4
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0
- beq _081338A4
- ldr r1, _0813389C @ =gContestMoves
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 27
- ldr r1, _081338A0 @ =gUnknown_083CAF70
- adds r0, r1
- ldr r1, [r0]
- adds r0, r3, 0
- movs r2, 0x27
- movs r3, 0
- bl sub_8072C74
- adds r3, r0, 0
- lsls r4, r5, 1
- b _081338C2
- .align 2, 0
-_0813389C: .4byte gContestMoves
-_081338A0: .4byte gUnknown_083CAF70
-_081338A4:
- lsls r4, r5, 1
- adds r0, r4, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x2]
- lsls r1, r0, 3
- subs r1, r0
- ldr r0, _08133938 @ =gTypeNames
- adds r1, r0
- adds r0, r3, 0
- movs r2, 0x27
- movs r3, 0
- bl sub_8072C74
- adds r3, r0, 0
-_081338C2:
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r6
- adds r0, 0x52
- mov r2, r10
- ldr r1, [r2]
- adds r1, r0
- adds r0, r3, 0
- movs r2, 0x72
- movs r3, 0
- bl sub_8072C74
- adds r3, r0, 0
- movs r0, 0xCA
- strb r0, [r3]
- strb r0, [r3, 0x1]
- movs r0, 0xBA
- strb r0, [r3, 0x2]
- adds r3, 0x3
- adds r0, r4, r5
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x4]
- adds r0, r3, 0
- movs r2, 0x90
- movs r3, 0
- bl sub_8072C14
-_081338FA:
- adds r3, r0, 0
- movs r0, 0xFE
- strb r0, [r3]
- adds r3, 0x1
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0x1
- negs r4, r4
- add r8, r4
- mov r0, r8
- cmp r0, 0
- blt _08133916
- b _0813381C
-_08133916:
- movs r0, 0xFF
- strb r0, [r3]
- ldr r0, _0813393C @ =gTileBuffer
- movs r1, 0xB
- movs r2, 0x1
- bl MenuPrint
- movs r0, 0
- bl sub_813360C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133938: .4byte gTypeNames
-_0813393C: .4byte gTileBuffer
- thumb_func_end sub_8133800
-
- thumb_func_start sub_8133940
-sub_8133940: @ 8133940
- push {r4-r7,lr}
- sub sp, 0x34
- adds r4, r1, 0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _08133968 @ =gExpandedPlaceholder_Empty
- mov r0, sp
- bl StringCopy
- ldrb r0, [r4, 0x2]
- subs r0, 0x1
- cmp r0, 0x6
- bls _0813395C
- b _08133AE2
-_0813395C:
- lsls r0, 2
- ldr r1, _0813396C @ =_08133970
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08133968: .4byte gExpandedPlaceholder_Empty
-_0813396C: .4byte _08133970
- .align 2, 0
-_08133970:
- .4byte _08133AE2
- .4byte _0813398C
- .4byte _08133AE2
- .4byte _081339A4
- .4byte _08133AE2
- .4byte _081339E4
- .4byte _08133A64
-_0813398C:
- ldr r0, _081339A0 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bls _081339B4
- ldrb r1, [r1, 0x1]
- b _081339CE
- .align 2, 0
-_081339A0: .4byte gBattleMoves
-_081339A4:
- ldr r0, _081339C4 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _081339CC
-_081339B4:
- ldr r1, _081339C8 @ =gOtherText_ThreeDashes2
- mov r0, sp
- movs r2, 0x20
- movs r3, 0x2
- bl sub_8072C74
- b _081339D8
- .align 2, 0
-_081339C4: .4byte gBattleMoves
-_081339C8: .4byte gOtherText_ThreeDashes2
-_081339CC:
- ldrb r1, [r1, 0x3]
-_081339CE:
- mov r0, sp
- movs r2, 0x20
- movs r3, 0x2
- bl sub_8072C14
-_081339D8:
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- mov r0, sp
- bl MenuPrint
- b _08133AE2
-_081339E4:
- ldrb r2, [r4]
- ldrb r1, [r4, 0x1]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- ldr r2, _08133A34 @ =gContestEffects
- ldr r1, _08133A38 @ =gContestMoves
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xFF
- bne _08133A14
- movs r5, 0
-_08133A14:
- movs r4, 0
- ldr r7, _08133A3C @ =gUnknown_030007B0
- ldr r6, _08133A40 @ =gSprites
-_08133A1A:
- cmp r4, r5
- bcs _08133A44
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAnim
- b _08133A58
- .align 2, 0
-_08133A34: .4byte gContestEffects
-_08133A38: .4byte gContestMoves
-_08133A3C: .4byte gUnknown_030007B0
-_08133A40: .4byte gSprites
-_08133A44:
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- bl StartSpriteAnim
-_08133A58:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08133A1A
- b _08133AE2
-_08133A64:
- ldrb r2, [r4]
- ldrb r1, [r4, 0x1]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- ldr r2, _08133AB4 @ =gContestEffects
- ldr r1, _08133AB8 @ =gContestMoves
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xFF
- bne _08133A94
- movs r5, 0
-_08133A94:
- movs r4, 0
- ldr r7, _08133ABC @ =gUnknown_030007B0
- ldr r6, _08133AC0 @ =gSprites
-_08133A9A:
- cmp r4, r5
- bcs _08133AC4
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x3
- bl StartSpriteAnim
- b _08133AD8
- .align 2, 0
-_08133AB4: .4byte gContestEffects
-_08133AB8: .4byte gContestMoves
-_08133ABC: .4byte gUnknown_030007B0
-_08133AC0: .4byte gSprites
-_08133AC4:
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x2
- bl StartSpriteAnim
-_08133AD8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08133A9A
-_08133AE2:
- add sp, 0x34
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8133940
-
- thumb_func_start sub_8133AEC
-sub_8133AEC: @ 8133AEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r6, _08133B88 @ =gUnknown_030007B0
- ldr r2, [r6]
- ldrb r1, [r2, 0x1B]
- ldrb r0, [r2, 0x1A]
- subs r0, 0x1
- cmp r1, r0
- bne _08133B08
- b _08133C04
-_08133B08:
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x20
- adds r0, r1
- ldrh r5, [r0]
- cmp r3, 0
- beq _08133BA0
- movs r4, 0
- lsls r0, r5, 3
- mov r8, r0
- ldr r7, _08133B8C @ =gSprites
- adds r3, r6, 0
- movs r6, 0x5
- negs r6, r6
-_08133B24:
- ldr r0, [r3]
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08133B24
- movs r4, 0
-_08133B48:
- ldr r0, _08133B90 @ =gUnknown_08402E3D
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, _08133B94 @ =gUnknown_08402E24
- adds r1, r0
- adds r0, r5, 0
- bl sub_8133940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _08133B48
- ldr r1, _08133B98 @ =gUnknown_083CADD4
- ldr r0, _08133B9C @ =gContestMoves
- add r0, r8
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x58
- movs r2, 0x48
- movs r3, 0x90
- bl sub_8072AB0
- b _08133C92
- .align 2, 0
-_08133B88: .4byte gUnknown_030007B0
-_08133B8C: .4byte gSprites
-_08133B90: .4byte gUnknown_08402E3D
-_08133B94: .4byte gUnknown_08402E24
-_08133B98: .4byte gUnknown_083CADD4
-_08133B9C: .4byte gContestMoves
-_08133BA0:
- movs r4, 0
- subs r6, r5, 0x1
-_08133BA4:
- ldr r0, _08133BF8 @ =gUnknown_08402E39
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, _08133BFC @ =gUnknown_08402E24
- adds r1, r0
- adds r0, r5, 0
- bl sub_8133940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08133BA4
- ldr r1, _08133C00 @ =gMoveDescriptions
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x58
- movs r2, 0x48
- movs r3, 0x90
- bl sub_8072A18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08133C92
- lsls r1, r0, 25
- movs r0, 0x90
- lsls r0, 20
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xB
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuFillWindowRectWithBlankTile
- b _08133C92
- .align 2, 0
-_08133BF8: .4byte gUnknown_08402E39
-_08133BFC: .4byte gUnknown_08402E24
-_08133C00: .4byte gMoveDescriptions
-_08133C04:
- cmp r3, 0
- beq _08133C5C
- ldr r4, _08133C54 @ =gUnknown_08402E24
- ldrb r2, [r4, 0xF]
- ldrb r1, [r4, 0x10]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- ldrb r2, [r4, 0x12]
- ldrb r1, [r4, 0x13]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- movs r4, 0
- ldr r5, _08133C58 @ =gSprites
- adds r3, r6, 0
- movs r2, 0x4
-_08133C32:
- ldr r0, [r3]
- adds r0, r4
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08133C32
- b _08133C86
- .align 2, 0
-_08133C54: .4byte gUnknown_08402E24
-_08133C58: .4byte gSprites
-_08133C5C:
- ldr r4, _08133CA0 @ =gUnknown_08402E24
- ldrb r0, [r4, 0x3]
- ldrb r1, [r4, 0x4]
- adds r2, r0, 0x3
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- ldrb r0, [r4, 0x9]
- ldrb r1, [r4, 0xA]
- adds r2, r0, 0x3
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
-_08133C86:
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
-_08133C92:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133CA0: .4byte gUnknown_08402E24
- thumb_func_end sub_8133AEC
-
- thumb_func_start sub_8133CA4
-sub_8133CA4: @ 8133CA4
- push {lr}
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1B
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- ldr r0, _08133CC8 @ =gUnknown_030007B0
- ldr r0, [r0]
- movs r1, 0xB1
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8133AEC
- pop {r0}
- bx r0
- .align 2, 0
-_08133CC8: .4byte gUnknown_030007B0
- thumb_func_end sub_8133CA4
-
- thumb_func_start SetUpFieldMove_SoftBoiled
-SetUpFieldMove_SoftBoiled: @ 8133CCC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _08133D14 @ =gUnknown_03005CE0
- mov r8, r0
- ldrb r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r4, _08133D18 @ =gPlayerParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r1, r8
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bcs _08133D1C
- movs r0, 0
- b _08133D1E
- .align 2, 0
-_08133D14: .4byte gUnknown_03005CE0
-_08133D18: .4byte gPlayerParty
-_08133D1C:
- movs r0, 0x1
-_08133D1E:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end SetUpFieldMove_SoftBoiled
-
- thumb_func_start sub_8133D28
-sub_8133D28: @ 8133D28
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08133D44 @ =0x02001000
- ldr r2, _08133D48 @ =sub_8133D50
- str r2, [r1, 0xC]
- ldr r2, _08133D4C @ =0x0001a272
- adds r1, r2
- movs r2, 0x3
- strh r2, [r1]
- bl sub_808A004
- pop {r0}
- bx r0
- .align 2, 0
-_08133D44: .4byte 0x02001000
-_08133D48: .4byte sub_8133D50
-_08133D4C: .4byte 0x0001a272
- thumb_func_end sub_8133D28
-
- thumb_func_start sub_8133D50
-sub_8133D50: @ 8133D50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08133DA0 @ =gSprites
- mov r9, r0
- ldr r1, _08133DA4 @ =0x02001000
- mov r10, r1
- ldrb r1, [r1, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r2, r10
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r2, r9
- adds r1, r0, r2
- ldrh r0, [r1, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- cmp r0, 0x5
- bhi _08133D96
- cmp r6, 0x5
- bls _08133DA8
-_08133D96:
- adds r0, r7, 0
- bl sub_806CD44
- b _08133E4E
- .align 2, 0
-_08133DA0: .4byte gSprites
-_08133DA4: .4byte 0x02001000
-_08133DA8:
- movs r5, 0xD8
- lsls r5, 9
- add r5, r10
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- movs r1, 0x64
- muls r0, r1
- ldr r2, _08133DE4 @ =gPlayerParty
- adds r0, r2
- str r0, [r5]
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08133DDA
- cmp r8, r6
- beq _08133DDA
- ldr r0, [r5]
- movs r1, 0x3A
- bl GetMonData
- cmp r0, r4
- bne _08133DE8
-_08133DDA:
- adds r0, r7, 0
- bl sub_8133EB8
- b _08133E4E
- .align 2, 0
-_08133DE4: .4byte gPlayerParty
-_08133DE8:
- movs r0, 0x1
- bl PlaySE
- mov r0, r10
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r0, [r0, 0x2E]
- movs r1, 0
- strb r0, [r5, 0x5]
- ldrb r0, [r5, 0x5]
- movs r2, 0x64
- muls r0, r2
- ldr r2, _08133E5C @ =gPlayerParty
- adds r0, r2
- str r0, [r5]
- strh r1, [r5, 0x6]
- ldr r1, _08133E60 @ =0xffff8000
- str r1, [r5, 0xC]
- ldr r1, _08133E64 @ =sub_8133EF8
- str r1, [r5, 0x10]
- movs r1, 0x3A
- bl GetMonData
- ldr r1, _08133E68 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r1
- strh r0, [r4, 0x1C]
- ldr r0, [r5]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x1E]
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl __divsi3
- strh r0, [r4, 0x20]
- bl sub_806D5A4
- ldr r0, _08133E6C @ =sub_806FA18
- str r0, [r4]
- ldrh r1, [r4, 0x1E]
- ldr r0, _08133E70 @ =0x0001a282
- add r0, r10
- strh r1, [r0]
-_08133E4E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133E5C: .4byte gPlayerParty
-_08133E60: .4byte 0xffff8000
-_08133E64: .4byte sub_8133EF8
-_08133E68: .4byte gTasks
-_08133E6C: .4byte sub_806FA18
-_08133E70: .4byte 0x0001a282
- thumb_func_end sub_8133D50
-
- thumb_func_start sub_8133E74
-sub_8133E74: @ 8133E74
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08133EAC @ =gUnknown_0202E8F6
- ldrb r0, [r0]
- cmp r0, 0
- bne _08133EA4
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x3
- movs r1, 0
- bl sub_806D538
- ldr r0, _08133EB0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08133EB4 @ =sub_806CB74
- str r0, [r1]
-_08133EA4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08133EAC: .4byte gUnknown_0202E8F6
-_08133EB0: .4byte gTasks
-_08133EB4: .4byte sub_806CB74
- thumb_func_end sub_8133E74
-
- thumb_func_start sub_8133EB8
-sub_8133EB8: @ 8133EB8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08133EE8 @ =gUnknown_0202E8F4
- movs r0, 0
- strb r0, [r1]
- bl sub_806D5A4
- ldr r0, _08133EEC @ =gOtherText_CantUseOnPoke
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08133EF0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08133EF4 @ =sub_8133E74
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08133EE8: .4byte gUnknown_0202E8F4
-_08133EEC: .4byte gOtherText_CantUseOnPoke
-_08133EF0: .4byte gTasks
-_08133EF4: .4byte sub_8133E74
- thumb_func_end sub_8133EB8
-
- thumb_func_start sub_8133EF8
-sub_8133EF8: @ 8133EF8
- push {r4,lr}
- bl sub_806CCE4
- ldr r4, _08133F3C @ =0x0201b000
- ldr r0, _08133F40 @ =0x00000261
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _08133F44 @ =0xfffe6000
- adds r4, r0
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08133F48 @ =gSprites
- adds r0, r1
- bl DestroySprite
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldrb r0, [r4]
- bl SwitchTaskToFollowupFunc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08133F3C: .4byte 0x0201b000
-_08133F40: .4byte 0x00000261
-_08133F44: .4byte 0xfffe6000
-_08133F48: .4byte gSprites
- thumb_func_end sub_8133EF8
-
- thumb_func_start sub_8133F4C
-sub_8133F4C: @ 8133F4C
- push {r4,r5,lr}
- lsls r0, 24
- movs r3, 0
- ldr r1, _08133F7C @ =gDecorationInventories
- lsrs r2, r0, 21
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcs _08133F76
- adds r5, r1, 0
- movs r4, 0
-_08133F62:
- adds r0, r2, r5
- ldr r1, [r0]
- adds r1, r3
- strb r4, [r1]
- adds r1, r3, 0x1
- lsls r1, 24
- lsrs r3, r1, 24
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _08133F62
-_08133F76:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08133F7C: .4byte gDecorationInventories
- thumb_func_end sub_8133F4C
-
- thumb_func_start sub_8133F80
-sub_8133F80: @ 8133F80
- push {r4,lr}
- movs r4, 0
-_08133F84:
- adds r0, r4, 0
- bl sub_8133F4C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08133F84
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8133F80
-
- thumb_func_start sub_8133F9C
-sub_8133F9C: @ 8133F9C
- push {r4,lr}
- lsls r0, 24
- movs r2, 0
- ldr r1, _08133FC8 @ =gDecorationInventories
- lsrs r0, 21
- adds r0, r1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- cmp r2, r1
- bge _08133FD8
- adds r4, r0, 0
- adds r3, r1, 0
-_08133FB4:
- lsls r0, r2, 24
- asrs r1, r0, 24
- ldr r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08133FCC
- adds r0, r1, 0
- b _08133FDC
- .align 2, 0
-_08133FC8: .4byte gDecorationInventories
-_08133FCC:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, r3
- blt _08133FB4
-_08133FD8:
- movs r0, 0x1
- negs r0, r0
-_08133FDC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8133F9C
-
- thumb_func_start sub_8133FE4
-sub_8133FE4: @ 8133FE4
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08134010 @ =gDecorations
- lsls r0, r3, 5
- adds r0, r1
- ldrb r0, [r0, 0x13]
- movs r2, 0
- ldr r1, _08134014 @ =gDecorationInventories
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _08134022
- ldr r4, [r0]
-_08134002:
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, r3
- bne _08134018
- movs r0, 0x1
- b _08134024
- .align 2, 0
-_08134010: .4byte gDecorations
-_08134014: .4byte gDecorationInventories
-_08134018:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r1
- bcc _08134002
-_08134022:
- movs r0, 0
-_08134024:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8133FE4
-
- thumb_func_start IsThereStorageSpaceForDecoration
-IsThereStorageSpaceForDecoration: @ 813402C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0
- beq _0813406C
- ldr r1, _08134064 @ =gDecorations
- lsls r0, r4, 5
- adds r0, r1
- ldrb r5, [r0, 0x13]
- adds r0, r5, 0
- bl sub_8133F9C
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _0813406C
- ldr r0, _08134068 @ =gDecorationInventories
- lsls r1, r5, 3
- adds r1, r0
- ldr r0, [r1]
- adds r0, r2
- strb r4, [r0]
- movs r0, 0x1
- b _0813406E
- .align 2, 0
-_08134064: .4byte gDecorations
-_08134068: .4byte gDecorationInventories
-_0813406C:
- movs r0, 0
-_0813406E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsThereStorageSpaceForDecoration
-
- thumb_func_start sub_8134074
-sub_8134074: @ 8134074
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081340A0
- ldr r1, _0813409C @ =gDecorations
- lsls r0, 5
- adds r0, r1
- ldrb r0, [r0, 0x13]
- bl sub_8133F9C
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _081340A0
- movs r0, 0x1
- b _081340A2
- .align 2, 0
-_0813409C: .4byte gDecorations
-_081340A0:
- movs r0, 0
-_081340A2:
- pop {r1}
- bx r1
- thumb_func_end sub_8134074
-
- thumb_func_start sub_81340A8
-sub_81340A8: @ 81340A8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- cmp r5, 0
- bne _081340C4
- b _081340F2
-_081340B6:
- movs r0, 0
- strb r0, [r1]
- adds r0, r6, 0
- bl sub_8134104
- movs r0, 0x1
- b _081340F4
-_081340C4:
- ldr r2, _081340FC @ =gDecorationInventories
- ldr r1, _08134100 @ =gDecorations
- lsls r0, r5, 5
- adds r0, r1
- ldrb r4, [r0, 0x13]
- lsls r0, r4, 3
- adds r0, r2
- ldrb r1, [r0, 0x4]
- cmp r3, r1
- bcs _081340F2
- adds r6, r4, 0
- adds r4, r0, 0
- adds r2, r1, 0
-_081340DE:
- ldr r0, [r4]
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, r5
- beq _081340B6
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r2
- bcc _081340DE
-_081340F2:
- movs r0, 0
-_081340F4:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081340FC: .4byte gDecorationInventories
-_08134100: .4byte gDecorations
- thumb_func_end sub_81340A8
-
- thumb_func_start sub_8134104
-sub_8134104: @ 8134104
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- movs r6, 0
- ldr r2, _08134190 @ =gDecorationInventories
- lsrs r1, r0, 21
- adds r0, r1, r2
- ldrb r0, [r0, 0x4]
- cmp r6, r0
- bcs _08134180
- adds r7, r1, 0
- mov r8, r0
- str r0, [sp]
-_08134126:
- adds r1, r6, 0x1
- lsls r0, r1, 24
- lsrs r3, r0, 24
- adds r2, r7, 0
- mov r12, r1
- cmp r3, r8
- bcs _08134174
- ldr r1, _08134190 @ =gDecorationInventories
- mov r10, r1
- adds r0, r1, 0
- mov r9, r0
-_0813413C:
- mov r1, r10
- adds r5, r2, r1
- ldr r1, [r5]
- adds r0, r1, r3
- ldrb r4, [r0]
- adds r2, r4, 0
- cmp r2, 0
- beq _08134162
- adds r0, r1, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _08134158
- cmp r1, r2
- bls _08134162
-_08134158:
- ldrb r1, [r0]
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, r3
- strb r1, [r0]
-_08134162:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r7, 0
- mov r1, r9
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _0813413C
-_08134174:
- mov r1, r12
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r0, [sp]
- cmp r6, r0
- bcc _08134126
-_08134180:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08134190: .4byte gDecorationInventories
- thumb_func_end sub_8134104
-
- thumb_func_start sub_8134194
-sub_8134194: @ 8134194
- push {r4,r5,lr}
- lsls r0, 24
- movs r4, 0
- movs r3, 0
- ldr r2, _081341D0 @ =gDecorationInventories
- lsrs r1, r0, 21
- adds r0, r1, r2
- ldrb r0, [r0, 0x4]
- cmp r4, r0
- bcs _081341C8
- adds r5, r2, 0
-_081341AA:
- adds r2, r1, r5
- ldr r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _081341BC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081341BC:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r2, [r2, 0x4]
- cmp r3, r2
- bcc _081341AA
-_081341C8:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_081341D0: .4byte gDecorationInventories
- thumb_func_end sub_8134194
-
- thumb_func_start sub_81341D4
-sub_81341D4: @ 81341D4
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_081341DA:
- adds r0, r4, 0
- bl sub_8134194
- adds r0, r5, r0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _081341DA
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81341D4
-
- thumb_func_start sub_81341F8
-sub_81341F8: @ 81341F8
- push {lr}
- ldr r0, _08134208 @ =gSaveBlock1 + 0x3144
- movs r1, 0
- movs r2, 0x1C
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_08134208: .4byte gSaveBlock1 + 0x3144
- thumb_func_end sub_81341F8
-
- thumb_func_start sub_813420C
-sub_813420C: @ 813420C
- push {r4-r6,lr}
- movs r2, 0
- ldr r6, _08134238 @ =gRoamerLocation
- ldr r4, _0813423C @ =gUnknown_020392FC
- movs r3, 0
- adds r5, r4, 0x1
-_08134218:
- lsls r1, r2, 1
- adds r0, r1, r4
- strb r3, [r0]
- adds r1, r5
- strb r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _08134218
- movs r0, 0
- strb r0, [r6]
- strb r0, [r6, 0x1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08134238: .4byte gRoamerLocation
-_0813423C: .4byte gUnknown_020392FC
- thumb_func_end sub_813420C
-
- thumb_func_start sub_8134240
-sub_8134240: @ 8134240
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- ldr r5, _081342FC @ =gEnemyParty
- .ifdef SAPPHIRE
- ldr r6, _sub_8134240_Latias @ =407
- .else
- movs r6, 0xCC
- lsls r6, 1
- .endif
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x28
- movs r3, 0x20
- bl CreateMon
- ldr r4, _08134300 @ =gSaveBlock1 + 0x3144
- movs r0, 0
- mov r8, r0
- strh r6, [r4, 0x8]
- movs r0, 0x28
- strb r0, [r4, 0xC]
- mov r0, r8
- strb r0, [r4, 0xD]
- movs r0, 0x1
- strb r0, [r4, 0x13]
- adds r0, r5, 0
- movs r1, 0x42
- bl GetMonData
- str r0, [r4]
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- str r0, [r4, 0x4]
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r4, 0xA]
- adds r0, r5, 0
- movs r1, 0x16
- bl GetMonData
- strb r0, [r4, 0xE]
- adds r0, r5, 0
- movs r1, 0x17
- bl GetMonData
- strb r0, [r4, 0xF]
- adds r0, r5, 0
- movs r1, 0x18
- bl GetMonData
- strb r0, [r4, 0x10]
- adds r0, r5, 0
- movs r1, 0x21
- bl GetMonData
- strb r0, [r4, 0x11]
- adds r0, r5, 0
- movs r1, 0x2F
- bl GetMonData
- strb r0, [r4, 0x12]
- ldr r4, _08134304 @ =gRoamerLocation
- mov r0, r8
- strb r0, [r4]
- bl Random
- ldr r5, _08134308 @ =gRoamerLocations
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r1, r5
- ldrb r0, [r1]
- strb r0, [r4, 0x1]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081342FC: .4byte gEnemyParty
- .ifdef SAPPHIRE
-_sub_8134240_Latias: .4byte 407
- .endif
-_08134300: .4byte gSaveBlock1 + 0x3144
-_08134304: .4byte gRoamerLocation
-_08134308: .4byte gRoamerLocations
- thumb_func_end sub_8134240
-
- thumb_func_start sub_813430C
-sub_813430C: @ 813430C
- push {lr}
- bl sub_81341F8
- bl sub_813420C
- bl sub_8134240
- pop {r0}
- bx r0
- thumb_func_end sub_813430C
-
- thumb_func_start mapnumbers_history_shift_sav1_0_2_4_out
-mapnumbers_history_shift_sav1_0_2_4_out: @ 8134320
- ldr r0, _08134340 @ =gUnknown_020392FC
- ldrb r1, [r0, 0x2]
- strb r1, [r0, 0x4]
- ldrb r1, [r0, 0x3]
- strb r1, [r0, 0x5]
- ldrb r1, [r0]
- strb r1, [r0, 0x2]
- ldrb r1, [r0, 0x1]
- strb r1, [r0, 0x3]
- ldr r2, _08134344 @ =gSaveBlock1
- ldrb r1, [r2, 0x4]
- strb r1, [r0]
- ldrb r1, [r2, 0x5]
- strb r1, [r0, 0x1]
- bx lr
- .align 2, 0
-_08134340: .4byte gUnknown_020392FC
-_08134344: .4byte gSaveBlock1
- thumb_func_end mapnumbers_history_shift_sav1_0_2_4_out
-
- thumb_func_start sub_8134348
-sub_8134348: @ 8134348
- push {r4,r5,lr}
- movs r1, 0
- ldr r0, _08134388 @ =gSaveBlock1 + 0x3144
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08134380
- ldr r0, _0813438C @ =gRoamerLocation
- strb r1, [r0]
- ldr r5, _08134390 @ =gRoamerLocations
- adds r4, r0, 0
-_0813435C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r1, r5
- ldrb r1, [r1]
- ldrb r0, [r4, 0x1]
- cmp r0, r1
- beq _0813435C
- strb r1, [r4, 0x1]
-_08134380:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08134388: .4byte gSaveBlock1 + 0x3144
-_0813438C: .4byte gRoamerLocation
-_08134390: .4byte gRoamerLocations
- thumb_func_end sub_8134348
-
- thumb_func_start sub_8134394
-sub_8134394: @ 8134394
- push {r4-r7,lr}
- movs r4, 0
- bl Random
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 12
- ands r1, r0
- cmp r1, 0
- bne _081343AE
- bl sub_8134348
- b _08134416
-_081343AE:
- ldr r0, _081343FC @ =gSaveBlock1 + 0x3144
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08134416
- ldr r7, _08134400 @ =gRoamerLocation
- ldr r3, _08134404 @ =gRoamerLocations
-_081343BA:
- lsls r0, r4, 1
- adds r0, r4
- lsls r2, r0, 1
- adds r1, r2, r3
- ldrb r0, [r7, 0x1]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0813440C
- ldr r6, _08134404 @ =gRoamerLocations
- adds r5, r2, 0x1
- ldr r4, _08134408 @ =gUnknown_020392FC
-_081343D0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, r5
- adds r0, r6
- ldrb r1, [r0]
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- bne _081343F4
- ldrb r0, [r4, 0x5]
- cmp r0, r1
- beq _081343D0
-_081343F4:
- cmp r1, 0xFF
- beq _081343D0
- strb r1, [r7, 0x1]
- b _08134416
- .align 2, 0
-_081343FC: .4byte gSaveBlock1 + 0x3144
-_08134400: .4byte gRoamerLocation
-_08134404: .4byte gRoamerLocations
-_08134408: .4byte gUnknown_020392FC
-_0813440C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081343BA
-_08134416:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8134394
-
- thumb_func_start sub_813441C
-sub_813441C: @ 813441C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08134440 @ =gSaveBlock1 + 0x3144
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08134448
- ldr r0, _08134444 @ =gRoamerLocation
- ldrb r3, [r0]
- cmp r2, r3
- bne _08134448
- ldrb r0, [r0, 0x1]
- cmp r1, r0
- bne _08134448
- movs r0, 0x1
- b _0813444A
- .align 2, 0
-_08134440: .4byte gSaveBlock1 + 0x3144
-_08134444: .4byte gRoamerLocation
-_08134448:
- movs r0, 0
-_0813444A:
- pop {r1}
- bx r1
- thumb_func_end sub_813441C
-
- thumb_func_start sub_8134450
-sub_8134450: @ 8134450
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, _081344C4 @ =gEnemyParty
- ldr r5, _081344C8 @ =gSaveBlock1 + 0x3144
- ldrh r1, [r5, 0x8]
- ldrb r2, [r5, 0xC]
- ldr r3, [r5]
- ldr r0, [r5, 0x4]
- str r0, [sp]
- adds r0, r4, 0
- bl CreateMonWithIVsPersonality
- adds r2, r5, 0
- adds r2, 0xD
- adds r0, r4, 0
- movs r1, 0x37
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0xA
- adds r0, r4, 0
- movs r1, 0x39
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0xE
- adds r0, r4, 0
- movs r1, 0x16
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0xF
- adds r0, r4, 0
- movs r1, 0x17
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x10
- adds r0, r4, 0
- movs r1, 0x18
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x11
- adds r0, r4, 0
- movs r1, 0x21
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x12
- adds r0, r4, 0
- movs r1, 0x2F
- bl SetMonData
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081344C4: .4byte gEnemyParty
-_081344C8: .4byte gSaveBlock1 + 0x3144
- thumb_func_end sub_8134450
-
- thumb_func_start sub_81344CC
-sub_81344CC: @ 81344CC
- push {lr}
- ldr r1, _081344F8 @ =gSaveBlock1
- ldrb r0, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- bl sub_813441C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081344FC
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _081344FC
- bl sub_8134450
- movs r0, 0x1
- b _081344FE
- .align 2, 0
-_081344F8: .4byte gSaveBlock1
-_081344FC:
- movs r0, 0
-_081344FE:
- pop {r1}
- bx r1
- thumb_func_end sub_81344CC
-
- thumb_func_start sub_8134504
-sub_8134504: @ 8134504
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x39
- bl GetMonData
- ldr r4, _08134528 @ =gSaveBlock1 + 0x3144
- strh r0, [r4, 0xA]
- adds r0, r5, 0
- movs r1, 0x37
- bl GetMonData
- strb r0, [r4, 0xD]
- bl sub_8134348
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08134528: .4byte gSaveBlock1 + 0x3144
- thumb_func_end sub_8134504
-
- thumb_func_start sub_813452C
-sub_813452C: @ 813452C
- ldr r1, _08134534 @ =gSaveBlock1 + 0x3144
- movs r0, 0
- strb r0, [r1, 0x13]
- bx lr
- .align 2, 0
-_08134534: .4byte gSaveBlock1 + 0x3144
- thumb_func_end sub_813452C
-
- thumb_func_start GetRoamerLocation
-GetRoamerLocation: @ 8134538
- ldr r3, _08134544 @ =gRoamerLocation
- ldrb r2, [r3]
- strb r2, [r0]
- ldrb r0, [r3, 0x1]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08134544: .4byte gRoamerLocation
- thumb_func_end GetRoamerLocation
-
- thumb_func_start sub_8134548
-sub_8134548: @ 8134548
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_0813454E:
- ldr r0, _08134568 @ =gSaveBlock2
- ldr r1, _0813456C @ =0x00000556
- adds r0, r1
- adds r0, r5, r0
- ldrb r0, [r0]
- cmp r0, 0x6
- bhi _08134590
- lsls r0, 2
- ldr r1, _08134570 @ =_08134574
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08134568: .4byte gSaveBlock2
-_0813456C: .4byte 0x00000556
-_08134570: .4byte _08134574
- .align 2, 0
-_08134574:
- .4byte _08134590
- .4byte _081345A8
- .4byte _081345C8
- .4byte _081345D8
- .4byte _081345B8
- .4byte _081345C0
- .4byte _081345D8
-_08134590:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_813461C
- cmp r4, 0
- bne _081345D8
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x5
- bl VarSet
- b _081345D8
-_081345A8:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_813461C
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x1
- b _081345CE
-_081345B8:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x2
- b _081345CE
-_081345C0:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x3
- b _081345CE
-_081345C8:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x4
-_081345CE:
- bl VarSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081345D8:
- adds r5, 0x1
- cmp r5, 0x1
- ble _0813454E
- ldr r1, _08134610 @ =gSaveBlock2
- ldr r2, _08134614 @ =0x00000556
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081345EE
- cmp r0, 0x6
- bne _08134606
-_081345EE:
- ldr r2, _08134618 @ =0x00000557
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081345FC
- cmp r0, 0x6
- bne _08134606
-_081345FC:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x5
- bl VarSet
-_08134606:
- bl sub_8135C44
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08134610: .4byte gSaveBlock2
-_08134614: .4byte 0x00000556
-_08134618: .4byte 0x00000557
- thumb_func_end sub_8134548
-
- thumb_func_start sub_813461C
-sub_813461C: @ 813461C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08134644 @ =gSaveBlock2
- ldr r2, _08134648 @ =0x00000556
- adds r1, r3, r2
- adds r1, r0, r1
- movs r2, 0
- strb r2, [r1]
- lsls r0, 1
- movs r2, 0xAB
- lsls r2, 3
- adds r1, r3, r2
- adds r1, r0, r1
- movs r2, 0x1
- strh r2, [r1]
- ldr r1, _0813464C @ =0x0000055c
- adds r3, r1
- adds r0, r3
- strh r2, [r0]
- bx lr
- .align 2, 0
-_08134644: .4byte gSaveBlock2
-_08134648: .4byte 0x00000556
-_0813464C: .4byte 0x0000055c
- thumb_func_end sub_813461C
-
- thumb_func_start sub_8134650
-sub_8134650: @ 8134650
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- add r4, sp, 0x28
- movs r0, 0
- strb r0, [r4]
- bl sub_813601C
- ldr r0, _08134684 @ =gScriptResult
- ldrh r0, [r0]
- adds r7, r4, 0
- cmp r0, 0
- bne _08134680
- ldr r1, _08134688 @ =gSaveBlock2
- ldr r2, _0813468C @ =0x0000049a
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, r6
- beq _08134690
-_08134680:
- movs r0, 0
- b _081346E2
- .align 2, 0
-_08134684: .4byte gScriptResult
-_08134688: .4byte gSaveBlock2
-_0813468C: .4byte 0x0000049a
-_08134690:
- movs r6, 0x32
- cmp r5, 0
- beq _08134698
- movs r6, 0x64
-_08134698:
- movs r4, 0
- mov r8, r1
-_0813469C:
- movs r0, 0x2C
- muls r0, r4
- mov r3, r8
- adds r1, r0, r3
- movs r2, 0x9B
- lsls r2, 3
- adds r0, r1, r2
- ldrb r2, [r0]
- cmp r2, r6
- bne _08134680
- ldr r3, _081346F0 @ =0x000004cc
- adds r0, r1, r3
- ldrh r0, [r0]
- adds r3, 0x2
- adds r1, r3
- ldrh r1, [r1]
- str r2, [sp]
- add r2, sp, 0x10
- str r2, [sp, 0x4]
- add r2, sp, 0x1C
- str r2, [sp, 0x8]
- str r7, [sp, 0xC]
- movs r2, 0x1
- adds r3, r5, 0
- bl CheckMonBattleTowerBanlist
- adds r4, 0x1
- cmp r4, 0x2
- ble _0813469C
- movs r1, 0
- ldrb r0, [r7]
- cmp r0, 0x3
- bne _081346E0
- movs r1, 0x1
-_081346E0:
- adds r0, r1, 0
-_081346E2:
- add sp, 0x2C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081346F0: .4byte 0x000004cc
- thumb_func_end sub_8134650
-
- thumb_func_start sub_81346F4
-sub_81346F4: @ 81346F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r0, 0
- mov r9, r0
- ldr r4, _08134738 @ =gSaveBlock2
- ldr r1, _0813473C @ =0x00000554
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r7, r0, 31
- adds r0, r7, 0
- bl sub_8135D3C
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r7, 0
- mov r1, r8
- bl sub_8134650
- lsls r0, 24
- adds r1, r4, 0
- cmp r0, 0
- beq _08134744
- ldr r2, _08134740 @ =0x00000564
- adds r1, r2
- movs r0, 0xC8
- strb r0, [r1]
- b _081347DE
- .align 2, 0
-_08134738: .4byte gSaveBlock2
-_0813473C: .4byte 0x00000554
-_08134740: .4byte 0x00000564
-_08134744:
- movs r5, 0
- movs r3, 0xA4
- mov r12, r3
- mov r10, sp
-_0813474C:
- mov r0, r12
- muls r0, r5
- movs r4, 0
- movs r1, 0
- movs r2, 0
- adds r6, r5, 0x1
- str r6, [sp, 0x14]
- ldr r6, _081347B4 @ =gSaveBlock2 + 0x14C
- adds r3, r0, r6
-_0813475E:
- ldm r3!, {r0}
- orrs r4, r0
- adds r1, r0
- adds r2, 0x1
- cmp r2, 0x27
- bls _0813475E
- mov r3, r12
- muls r3, r5
- ldr r0, _081347B8 @ =gSaveBlock2
- adds r2, r3, r0
- movs r6, 0xA7
- lsls r6, 1
- adds r0, r2, r6
- ldrh r0, [r0]
- cmp r0, r8
- bne _081347A4
- subs r6, 0x2
- adds r0, r2, r6
- ldrb r0, [r0]
- cmp r0, r7
- bne _081347A4
- cmp r4, 0
- beq _081347A4
- ldr r2, _081347BC @ =gSaveBlock2 + 0x1EC
- adds r0, r3, r2
- ldr r0, [r0]
- cmp r0, r1
- bne _081347A4
- mov r3, r10
- adds r3, 0x4
- mov r10, r3
- subs r3, 0x4
- stm r3!, {r5}
- movs r6, 0x1
- add r9, r6
-_081347A4:
- ldr r5, [sp, 0x14]
- cmp r5, 0x4
- ble _0813474C
- mov r0, r9
- cmp r0, 0
- bne _081347C0
- movs r0, 0
- b _081347E0
- .align 2, 0
-_081347B4: .4byte gSaveBlock2 + 0x14C
-_081347B8: .4byte gSaveBlock2
-_081347BC: .4byte gSaveBlock2 + 0x1EC
-_081347C0:
- bl Random
- ldr r4, _081347F0 @ =gSaveBlock2
- lsls r0, 16
- lsrs r0, 16
- mov r1, r9
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- adds r0, 0x64
- ldr r1, _081347F4 @ =0x00000564
- adds r4, r1
- strb r0, [r4]
-_081347DE:
- movs r0, 0x1
-_081347E0:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081347F0: .4byte gSaveBlock2
-_081347F4: .4byte 0x00000564
- thumb_func_end sub_81346F4
-
- thumb_func_start sub_81347F8
-sub_81347F8: @ 81347F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r5, _08134838 @ =gSaveBlock2
- ldr r1, _0813483C @ =0x00000554
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r6, r0, 31
- bl sub_81346F4
- lsls r0, 24
- cmp r0, 0
- beq _08134848
- ldr r2, _08134840 @ =0x00000564
- adds r4, r5, r2
- ldrb r0, [r4]
- bl sub_81349FC
- lsls r0, r6, 1
- movs r3, 0xAB
- lsls r3, 3
- adds r1, r5, r3
- adds r0, r1
- ldrh r0, [r0]
- adds r0, r5, r0
- ldr r1, _08134844 @ =0x00000569
- adds r0, r1
- ldrb r1, [r4]
- b _081349DC
- .align 2, 0
-_08134838: .4byte gSaveBlock2
-_0813483C: .4byte 0x00000554
-_08134840: .4byte 0x00000564
-_08134844: .4byte 0x00000569
-_08134848:
- lsls r0, r6, 1
- ldr r2, _081348D8 @ =0x0000055c
- adds r1, r5, r2
- adds r1, r0, r1
- ldrh r1, [r1]
- adds r7, r0, 0
- cmp r1, 0x7
- bls _0813485A
- b _0813495C
-_0813485A:
- movs r3, 0xAB
- lsls r3, 3
- adds r0, r5, r3
- adds r1, r7, r0
- ldrh r0, [r1]
- cmp r0, 0x7
- bne _081348E4
- adds r6, r5, 0
- mov r9, r7
- adds r5, r1, 0
- ldr r0, _081348DC @ =0x0000056a
- adds r0, r6
- mov r10, r0
- mov r8, r5
-_08134876:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- lsls r2, r1, 2
- adds r2, r1
- ldr r1, _081348D8 @ =0x0000055c
- adds r4, r6, r1
- mov r3, r9
- adds r0, r3, r4
- ldrh r1, [r0]
- subs r1, 0x1
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, 0x14
- lsrs r2, 7
- adds r2, r0
- lsls r2, 16
- lsrs r2, 16
- movs r1, 0
- ldrh r0, [r5]
- subs r0, 0x1
- cmp r1, r0
- bge _081348C8
- mov r3, r10
- ldrb r0, [r3]
- cmp r0, r2
- beq _081348C8
- subs r0, r4, 0x4
- adds r0, r7, r0
- ldrh r0, [r0]
- subs r3, r0, 0x1
- adds r4, 0xE
-_081348BA:
- adds r1, 0x1
- cmp r1, r3
- bge _081348C8
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _081348BA
-_081348C8:
- mov r3, r8
- ldrh r0, [r3]
- subs r0, 0x1
- ldr r4, _081348E0 @ =gSaveBlock2
- cmp r1, r0
- bne _08134876
- b _081349B6
- .align 2, 0
-_081348D8: .4byte 0x0000055c
-_081348DC: .4byte 0x0000056a
-_081348E0: .4byte gSaveBlock2
-_081348E4:
- adds r6, r5, 0
- mov r9, r7
- adds r5, r1, 0
- ldr r2, _08134950 @ =0x0000056a
- adds r2, r6
- mov r10, r2
- mov r8, r5
-_081348F2:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- lsls r0, r1, 2
- adds r0, r1
- lsrs r2, r0, 6
- ldr r3, _08134954 @ =0x0000055c
- adds r4, r6, r3
- mov r1, r9
- adds r0, r1, r4
- ldrh r1, [r0]
- subs r1, 0x1
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldrh r0, [r5]
- subs r0, 0x1
- cmp r1, r0
- bge _08134942
- mov r3, r10
- ldrb r0, [r3]
- cmp r0, r2
- beq _08134942
- subs r0, r4, 0x4
- adds r0, r7, r0
- ldrh r0, [r0]
- subs r3, r0, 0x1
- adds r4, 0xE
-_08134934:
- adds r1, 0x1
- cmp r1, r3
- bge _08134942
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _08134934
-_08134942:
- mov r3, r8
- ldrh r0, [r3]
- subs r0, 0x1
- ldr r4, _08134958 @ =gSaveBlock2
- cmp r1, r0
- bne _081348F2
- b _081349B6
- .align 2, 0
-_08134950: .4byte 0x0000056a
-_08134954: .4byte 0x0000055c
-_08134958: .4byte gSaveBlock2
-_0813495C:
- movs r2, 0xAB
- lsls r2, 3
- adds r0, r5, r2
- adds r6, r7, r0
- ldr r3, _081349EC @ =0x0000056a
- adds r3, r5
- mov r8, r3
- adds r5, r6, 0
-_0813496C:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 1
- asrs r0, 8
- adds r0, 0x46
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldrh r0, [r6]
- subs r0, 0x1
- cmp r1, r0
- bge _081349AC
- mov r3, r8
- ldrb r0, [r3]
- ldr r4, _081349F0 @ =gSaveBlock2
- cmp r0, r2
- beq _081349AC
- ldrh r0, [r5]
- subs r3, r0, 0x1
- ldr r0, _081349EC @ =0x0000056a
- adds r4, r0
-_0813499E:
- adds r1, 0x1
- cmp r1, r3
- bge _081349AC
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _0813499E
-_081349AC:
- ldrh r0, [r6]
- subs r0, 0x1
- ldr r4, _081349F0 @ =gSaveBlock2
- cmp r1, r0
- bne _0813496C
-_081349B6:
- ldr r1, _081349F4 @ =0x00000564
- adds r0, r4, r1
- strb r2, [r0]
- ldr r2, _081349F4 @ =0x00000564
- adds r5, r4, r2
- ldrb r0, [r5]
- bl sub_81349FC
- movs r3, 0xAB
- lsls r3, 3
- adds r0, r4, r3
- adds r1, r7, r0
- ldrh r0, [r1]
- cmp r0, 0x6
- bhi _081349DE
- adds r0, r4, r0
- ldr r1, _081349F8 @ =0x00000569
- adds r0, r1
- ldrb r1, [r5]
-_081349DC:
- strb r1, [r0]
-_081349DE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081349EC: .4byte 0x0000056a
-_081349F0: .4byte gSaveBlock2
-_081349F4: .4byte 0x00000564
-_081349F8: .4byte 0x00000569
- thumb_func_end sub_81347F8
-
- thumb_func_start sub_81349FC
-sub_81349FC: @ 81349FC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, r2, 0
- cmp r2, 0x63
- bhi _08134A18
- ldr r1, _08134A14 @ =gBattleTowerTrainers
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- b _08134A38
- .align 2, 0
-_08134A14: .4byte gBattleTowerTrainers
-_08134A18:
- cmp r1, 0xC7
- bhi _08134A34
- ldr r2, _08134A2C @ =gSaveBlock2
- subs r1, 0x64
- movs r0, 0xA4
- muls r0, r1
- adds r0, r2
- ldr r1, _08134A30 @ =0x0000014d
- b _08134A38
- .align 2, 0
-_08134A2C: .4byte gSaveBlock2
-_08134A30: .4byte 0x0000014d
-_08134A34:
- ldr r0, _08134A5C @ =gSaveBlock2
- ldr r1, _08134A60 @ =0x00000499
-_08134A38:
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0
- ldr r3, _08134A64 @ =gUnknown_08405E60
- ldrb r0, [r3]
- cmp r0, r1
- beq _08134A54
-_08134A46:
- adds r2, 0x1
- cmp r2, 0x1D
- bhi _08134A54
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _08134A46
-_08134A54:
- cmp r2, 0x1E
- beq _08134A6C
- ldr r0, _08134A68 @ =gUnknown_08405E92
- b _08134A8A
- .align 2, 0
-_08134A5C: .4byte gSaveBlock2
-_08134A60: .4byte 0x00000499
-_08134A64: .4byte gUnknown_08405E60
-_08134A68: .4byte gUnknown_08405E92
-_08134A6C:
- movs r2, 0
- ldr r3, _08134A98 @ =gUnknown_08405E7E
- ldrb r0, [r3]
- cmp r0, r1
- beq _08134A84
-_08134A76:
- adds r2, 0x1
- cmp r2, 0x13
- bhi _08134A84
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _08134A76
-_08134A84:
- cmp r2, 0x14
- beq _08134AA4
- ldr r0, _08134A9C @ =gUnknown_08405EB0
-_08134A8A:
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r0, _08134AA0 @ =0x00004010
- bl VarSet
- b _08134AAC
- .align 2, 0
-_08134A98: .4byte gUnknown_08405E7E
-_08134A9C: .4byte gUnknown_08405EB0
-_08134AA0: .4byte 0x00004010
-_08134AA4:
- ldr r0, _08134AB0 @ =0x00004010
- movs r1, 0x7
- bl VarSet
-_08134AAC:
- pop {r0}
- bx r0
- .align 2, 0
-_08134AB0: .4byte 0x00004010
- thumb_func_end sub_81349FC
-
- thumb_func_start sub_8134AB4
-sub_8134AB4: @ 8134AB4
- push {lr}
- movs r0, 0xC8
- bl sub_81349FC
- pop {r0}
- bx r0
- thumb_func_end sub_8134AB4
-
- thumb_func_start sub_8134AC0
-sub_8134AC0: @ 8134AC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- movs r7, 0
- mov r8, r0
- movs r5, 0
- ldr r0, _08134B3C @ =gSaveBlock2
- mov r12, r0
- mov r1, r8
- ldrb r1, [r1, 0xC]
- str r1, [sp, 0x18]
- movs r2, 0xAA
- lsls r2, 1
- add r2, r12
- mov r10, r2
- mov r9, r5
-_08134AE6:
- movs r6, 0
- movs r3, 0
- ldr r0, _08134B40 @ =gSaveBlock2 + 0x158
- add r0, r9
- ldrb r0, [r0]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bne _08134B14
- movs r0, 0xA4
- muls r0, r5
- ldr r1, _08134B40 @ =gSaveBlock2 + 0x158
- adds r2, r0, r1
- mov r4, r8
- adds r4, 0xC
-_08134B02:
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x3
- bgt _08134B14
- adds r1, r4, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08134B02
-_08134B14:
- cmp r3, 0x4
- bne _08134B54
- movs r6, 0
- mov r2, r10
- ldrb r0, [r2]
- mov r3, r8
- ldrb r3, [r3, 0x8]
- cmp r0, r3
- bne _08134B54
- adds r1, r0, 0
- movs r0, 0xA4
- muls r0, r5
- adds r0, 0x4
- ldr r3, _08134B44 @ =gSaveBlock2 + 0x150
- adds r2, r0, r3
-_08134B32:
- cmp r1, 0xFF
- bne _08134B48
- movs r6, 0x7
- b _08134B54
- .align 2, 0
-_08134B3C: .4byte gSaveBlock2
-_08134B40: .4byte gSaveBlock2 + 0x158
-_08134B44: .4byte gSaveBlock2 + 0x150
-_08134B48:
- adds r6, 0x1
- cmp r6, 0x6
- bgt _08134B54
- ldrb r0, [r2]
- cmp r0, r1
- beq _08134B32
-_08134B54:
- cmp r6, 0x7
- beq _08134B64
- movs r0, 0xA4
- add r10, r0
- add r9, r0
- adds r5, 0x1
- cmp r5, 0x4
- ble _08134AE6
-_08134B64:
- cmp r5, 0x4
- bgt _08134B76
- movs r0, 0xA4
- muls r0, r5
- add r0, r12
- movs r1, 0xA6
- lsls r1, 1
- adds r0, r1
- b _08134B9E
-_08134B76:
- movs r5, 0
- movs r1, 0xA7
- lsls r1, 1
- add r1, r12
- b _08134B88
-_08134B80:
- adds r1, 0xA4
- adds r5, 0x1
- cmp r5, 0x4
- bgt _08134BA8
-_08134B88:
- ldrh r0, [r1]
- cmp r0, 0
- bne _08134B80
- cmp r5, 0x4
- bgt _08134BA8
- movs r0, 0xA4
- muls r0, r5
- add r0, r12
- movs r2, 0xA6
- lsls r2, 1
- adds r0, r2
-_08134B9E:
- mov r1, r8
- movs r2, 0xA4
- bl memcpy
- b _08134C5E
-_08134BA8:
- mov r2, sp
- movs r3, 0xA7
- lsls r3, 1
- mov r1, r12
- adds r0, r1, r3
- ldrh r0, [r0]
- movs r1, 0
- strh r0, [r2]
- add r0, sp, 0xC
- strh r1, [r0]
- adds r7, 0x1
- movs r5, 0x1
- add r2, sp, 0xC
- mov r9, r2
- mov r10, r3
-_08134BC6:
- movs r3, 0
- adds r0, r5, 0x1
- mov r12, r0
- cmp r3, r7
- bge _08134C0A
- movs r1, 0xA4
- adds r0, r5, 0
- muls r0, r1
- ldr r2, _08134BFC @ =gSaveBlock2
- adds r0, r2
- mov r1, r10
- adds r4, r0, r1
- mov r6, sp
-_08134BE0:
- lsls r0, r3, 1
- add r0, sp
- ldrh r2, [r4]
- adds r1, r2, 0
- ldrh r0, [r0]
- cmp r1, r0
- bcs _08134C00
- movs r3, 0
- movs r7, 0x1
- strh r2, [r6]
- mov r2, r9
- strh r5, [r2]
- b _08134C0A
- .align 2, 0
-_08134BFC: .4byte gSaveBlock2
-_08134C00:
- cmp r1, r0
- bhi _08134C0A
- adds r3, 0x1
- cmp r3, r7
- blt _08134BE0
-_08134C0A:
- cmp r3, r7
- bne _08134C2A
- lsls r1, r7, 1
- mov r3, sp
- adds r2, r3, r1
- movs r3, 0xA4
- adds r0, r5, 0
- muls r0, r3
- ldr r3, _08134C70 @ =gSaveBlock2
- adds r0, r3
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r2]
- add r1, r9
- strh r5, [r1]
- adds r7, 0x1
-_08134C2A:
- mov r5, r12
- cmp r5, 0x4
- ble _08134BC6
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r7, 0
- bl __modsi3
- adds r5, r0, 0
- ldr r2, _08134C70 @ =gSaveBlock2
- lsls r0, r5, 1
- add r0, sp
- adds r0, 0xC
- ldrh r1, [r0]
- movs r0, 0xA4
- muls r0, r1
- adds r0, r2
- movs r1, 0xA6
- lsls r1, 1
- adds r0, r1
- mov r1, r8
- movs r2, 0xA4
- bl memcpy
-_08134C5E:
- 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
-_08134C70: .4byte gSaveBlock2
- thumb_func_end sub_8134AC0
-
- thumb_func_start get_trainer_class_pic_index
-get_trainer_class_pic_index: @ 8134C74
- push {lr}
- ldr r3, _08134C90 @ =gSaveBlock2
- ldr r0, _08134C94 @ =0x00000564
- adds r1, r3, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08134CA0
- ldr r1, _08134C98 @ =gTrainerClassToPicIndex
- ldr r2, _08134C9C @ =0x00000499
- adds r0, r3, r2
- ldrb r0, [r0]
- adds r0, r1
- b _08134CD2
- .align 2, 0
-_08134C90: .4byte gSaveBlock2
-_08134C94: .4byte 0x00000564
-_08134C98: .4byte gTrainerClassToPicIndex
-_08134C9C: .4byte 0x00000499
-_08134CA0:
- cmp r0, 0x63
- bls _08134CC0
- ldr r2, _08134CBC @ =gTrainerClassToPicIndex
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r0, r1
- adds r0, r3
- adds r1, 0xA9
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r2
- b _08134CD2
- .align 2, 0
-_08134CBC: .4byte gTrainerClassToPicIndex
-_08134CC0:
- ldr r3, _08134CD8 @ =gTrainerClassToPicIndex
- ldr r2, _08134CDC @ =gBattleTowerTrainers
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
-_08134CD2:
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_08134CD8: .4byte gTrainerClassToPicIndex
-_08134CDC: .4byte gBattleTowerTrainers
- thumb_func_end get_trainer_class_pic_index
-
- thumb_func_start get_trainer_class_name_index
-get_trainer_class_name_index: @ 8134CE0
- push {lr}
- ldr r3, _08134CFC @ =gSaveBlock2
- ldr r0, _08134D00 @ =0x00000564
- adds r1, r3, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08134D0C
- ldr r1, _08134D04 @ =gTrainerClassToNameIndex
- ldr r2, _08134D08 @ =0x00000499
- adds r0, r3, r2
- ldrb r0, [r0]
- adds r0, r1
- b _08134D40
- .align 2, 0
-_08134CFC: .4byte gSaveBlock2
-_08134D00: .4byte 0x00000564
-_08134D04: .4byte gTrainerClassToNameIndex
-_08134D08: .4byte 0x00000499
-_08134D0C:
- cmp r0, 0x63
- bhi _08134D2C
- ldr r3, _08134D24 @ =gTrainerClassToNameIndex
- ldr r2, _08134D28 @ =gBattleTowerTrainers
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
- b _08134D40
- .align 2, 0
-_08134D24: .4byte gTrainerClassToNameIndex
-_08134D28: .4byte gBattleTowerTrainers
-_08134D2C:
- ldr r2, _08134D48 @ =gTrainerClassToNameIndex
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r0, r1
- adds r0, r3
- adds r1, 0xA9
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r2
-_08134D40:
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_08134D48: .4byte gTrainerClassToNameIndex
- thumb_func_end get_trainer_class_name_index
-
- thumb_func_start get_trainer_name
-get_trainer_name: @ 8134D4C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r2, _08134D74 @ =gSaveBlock2
- ldr r0, _08134D78 @ =0x00000564
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08134D80
- movs r3, 0
- ldr r5, _08134D7C @ =0x0000049c
- adds r2, r5
-_08134D62:
- adds r0, r4, r3
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x6
- ble _08134D62
- b _08134DC8
- .align 2, 0
-_08134D74: .4byte gSaveBlock2
-_08134D78: .4byte 0x00000564
-_08134D7C: .4byte 0x0000049c
-_08134D80:
- cmp r0, 0x63
- bhi _08134DA8
- movs r3, 0
- ldr r2, _08134DA4 @ =gBattleTowerTrainers
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, 0x1
- adds r2, r0, r2
-_08134D94:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x6
- ble _08134D94
- b _08134DC8
- .align 2, 0
-_08134DA4: .4byte gBattleTowerTrainers
-_08134DA8:
- movs r3, 0
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r1, r0
- movs r5, 0xA8
- lsls r5, 1
- adds r0, r2, r5
- adds r2, r1, r0
-_08134DBA:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x6
- ble _08134DBA
-_08134DC8:
- adds r1, r4, r3
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end get_trainer_name
-
- thumb_func_start sub_8134DD4
-sub_8134DD4: @ 8134DD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- movs r0, 0
- str r0, [sp, 0x18]
- movs r1, 0x3C
- str r1, [sp, 0x1C]
- add r4, sp, 0xC
- movs r0, 0xFF
- strb r0, [r4]
- bl ZeroEnemyPartyMons
- ldr r1, _08134E04 @ =gSaveBlock2
- ldr r2, _08134E08 @ =0x00000564
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x13
- bhi _08134E0C
- movs r3, 0x6
- str r3, [sp, 0x14]
- b _08134ED8
- .align 2, 0
-_08134E04: .4byte gSaveBlock2
-_08134E08: .4byte 0x00000564
-_08134E0C:
- cmp r0, 0x1D
- bhi _08134E1A
- movs r0, 0x9
- str r0, [sp, 0x14]
- movs r1, 0x1E
- str r1, [sp, 0x18]
- b _08134ED8
-_08134E1A:
- cmp r0, 0x27
- bhi _08134E28
- movs r2, 0xC
- str r2, [sp, 0x14]
- movs r3, 0x3C
- str r3, [sp, 0x18]
- b _08134ED8
-_08134E28:
- cmp r0, 0x31
- bhi _08134E36
- movs r0, 0xF
- str r0, [sp, 0x14]
- movs r1, 0x5A
- str r1, [sp, 0x18]
- b _08134ED8
-_08134E36:
- cmp r0, 0x3B
- bhi _08134E44
- movs r2, 0x12
- str r2, [sp, 0x14]
- movs r3, 0x78
- str r3, [sp, 0x18]
- b _08134ED8
-_08134E44:
- cmp r0, 0x45
- bhi _08134E52
- movs r0, 0x15
- str r0, [sp, 0x14]
- movs r1, 0x96
- str r1, [sp, 0x18]
- b _08134ED8
-_08134E52:
- cmp r0, 0x4F
- bhi _08134E60
- movs r2, 0x1F
- str r2, [sp, 0x14]
- movs r3, 0xB4
- str r3, [sp, 0x18]
- b _08134ED8
-_08134E60:
- cmp r0, 0x63
- bhi _08134E72
- movs r0, 0x1F
- str r0, [sp, 0x14]
- movs r1, 0xC8
- str r1, [sp, 0x18]
- movs r2, 0x64
- str r2, [sp, 0x1C]
- b _08134ED8
-_08134E72:
- cmp r0, 0xC8
- bne _08134E9C
- movs r6, 0
-_08134E78:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _08134E94 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- muls r1, r6
- ldr r2, _08134E98 @ =gSaveBlock2 + 0x4CC
- adds r1, r2
- bl sub_803ADE8
- adds r6, 0x1
- cmp r6, 0x2
- ble _08134E78
- b _08135082
- .align 2, 0
-_08134E94: .4byte gEnemyParty
-_08134E98: .4byte gSaveBlock2 + 0x4CC
-_08134E9C:
- movs r6, 0
- adds r4, r1, 0
- ldr r3, _08134ECC @ =0xffffc158
- adds r5, r4, r3
-_08134EA4:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _08134ED0 @ =gEnemyParty
- adds r0, r1
- ldr r2, _08134ED4 @ =0x00000564
- adds r1, r4, r2
- ldrb r2, [r1]
- movs r1, 0xA4
- muls r1, r2
- adds r1, r5
- movs r2, 0x2C
- muls r2, r6
- adds r1, r2
- bl sub_803ADE8
- adds r6, 0x1
- cmp r6, 0x2
- ble _08134EA4
- b _08135082
- .align 2, 0
-_08134ECC: .4byte 0xffffc158
-_08134ED0: .4byte gEnemyParty
-_08134ED4: .4byte 0x00000564
-_08134ED8:
- ldr r2, _08134EF4 @ =gSaveBlock2
- ldr r3, _08134EF8 @ =0x00000554
- adds r0, r2, r3
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r1, r2, 0
- cmp r0, 0
- beq _08134F00
- ldr r0, _08134EFC @ =gBattleTowerLevel100Mons
- mov r10, r0
- movs r2, 0x64
- str r2, [sp, 0x10]
- b _08134F08
- .align 2, 0
-_08134EF4: .4byte gSaveBlock2
-_08134EF8: .4byte 0x00000554
-_08134EFC: .4byte gBattleTowerLevel100Mons
-_08134F00:
- ldr r3, _08134F54 @ =gBattleTowerLevel50Mons
- mov r10, r3
- movs r0, 0x32
- str r0, [sp, 0x10]
-_08134F08:
- ldr r2, _08134F58 @ =gBattleTowerTrainers
- ldr r3, _08134F5C @ =0x00000564
- adds r0, r1, r3
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x9]
- str r0, [sp, 0x20]
- movs r6, 0
-_08134F1E:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- ldr r2, [sp, 0x1C]
- adds r0, r1, 0
- muls r0, r2
- asrs r0, 8
- ldr r3, [sp, 0x18]
- adds r7, r0, r3
- ldr r0, [sp, 0x20]
- cmp r0, 0
- beq _08134F48
- lsls r0, r7, 4
- add r0, r10
- ldrb r0, [r0, 0x3]
- ldr r1, [sp, 0x20]
- ands r0, r1
- cmp r0, r1
- beq _08134F48
- b _0813507C
-_08134F48:
- movs r5, 0
- lsls r0, r7, 4
- mov r2, r10
- adds r3, r0, r2
- movs r4, 0
- b _08134F64
- .align 2, 0
-_08134F54: .4byte gBattleTowerLevel50Mons
-_08134F58: .4byte gBattleTowerTrainers
-_08134F5C: .4byte 0x00000564
-_08134F60:
- adds r4, 0x64
- adds r5, 0x1
-_08134F64:
- cmp r5, r6
- bge _08134F7E
- ldr r1, _08135094 @ =gEnemyParty
- adds r0, r4, r1
- movs r1, 0xB
- movs r2, 0
- str r3, [sp, 0x24]
- bl GetMonData
- ldr r3, [sp, 0x24]
- ldrh r2, [r3]
- cmp r0, r2
- bne _08134F60
-_08134F7E:
- cmp r5, r6
- bne _0813507C
- movs r5, 0
- cmp r5, r6
- bge _08134FCC
- ldr r3, _08135098 @ =gBattleTowerHeldItems
- mov r9, r3
- lsls r0, r7, 4
- add r0, r10
- mov r8, r0
- movs r3, 0
-_08134F94:
- ldr r0, _08135094 @ =gEnemyParty
- adds r4, r3, r0
- adds r0, r4, 0
- movs r1, 0xC
- movs r2, 0
- str r3, [sp, 0x24]
- bl GetMonData
- ldr r3, [sp, 0x24]
- cmp r0, 0
- beq _08134FC4
- adds r0, r4, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- mov r2, r8
- ldrb r1, [r2, 0x2]
- lsls r1, 1
- add r1, r9
- ldr r3, [sp, 0x24]
- ldrh r1, [r1]
- cmp r0, r1
- beq _08134FCC
-_08134FC4:
- adds r3, 0x64
- adds r5, 0x1
- cmp r5, r6
- blt _08134F94
-_08134FCC:
- cmp r5, r6
- bne _0813507C
- movs r5, 0
- cmp r5, r6
- bge _08134FEE
- add r0, sp, 0x4
- ldrh r0, [r0]
- cmp r0, r7
- beq _08134FEE
- add r1, sp, 0x4
-_08134FE0:
- adds r1, 0x2
- adds r5, 0x1
- cmp r5, r6
- bge _08134FEE
- ldrh r0, [r1]
- cmp r0, r7
- bne _08134FE0
-_08134FEE:
- cmp r5, r6
- bne _0813507C
- lsls r0, r6, 1
- add r0, sp
- adds r0, 0x4
- strh r7, [r0]
- movs r3, 0x64
- adds r0, r6, 0
- muls r0, r3
- ldr r1, _08135094 @ =gEnemyParty
- adds r0, r1
- lsls r4, r7, 4
- mov r3, r10
- adds r2, r4, r3
- ldrh r1, [r2]
- ldrb r2, [r2, 0xC]
- str r2, [sp]
- ldr r2, [sp, 0x10]
- ldr r3, [sp, 0x14]
- bl CreateMonWithEVSpread
- movs r5, 0
- adds r0, r6, 0x1
- mov r9, r0
- mov r8, r4
- movs r0, 0x64
- adds r7, r6, 0
- muls r7, r0
- mov r0, r10
- adds r0, 0x4
- adds r4, r0
- ldr r3, _08135094 @ =gEnemyParty
-_0813502E:
- ldrh r1, [r4]
- lsls r2, r5, 24
- lsrs r2, 24
- adds r0, r7, r3
- str r3, [sp, 0x24]
- bl SetMonMoveSlot
- ldrh r0, [r4]
- ldr r3, [sp, 0x24]
- cmp r0, 0xDA
- bne _0813504A
- movs r0, 0
- mov r1, sp
- strb r0, [r1, 0xC]
-_0813504A:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0813502E
- movs r2, 0x64
- adds r4, r6, 0
- muls r4, r2
- ldr r3, _08135094 @ =gEnemyParty
- adds r4, r3
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- mov r0, r8
- add r0, r10
- ldrb r2, [r0, 0x2]
- lsls r2, 1
- ldr r0, _08135098 @ =gBattleTowerHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r6, r9
-_0813507C:
- cmp r6, 0x3
- beq _08135082
- b _08134F1E
-_08135082:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135094: .4byte gEnemyParty
-_08135098: .4byte gBattleTowerHeldItems
- thumb_func_end sub_8134DD4
-
- thumb_func_start CalcBattleTowerBanlistSeenCount
-CalcBattleTowerBanlistSeenCount: @ 813509C
- push {r4-r6,lr}
- movs r5, 0
- ldr r2, _081350D8 @ =gBattleTowerBanlist
- ldrh r0, [r2]
- ldr r1, _081350DC @ =0x0000ffff
- cmp r0, r1
- beq _081350CE
- adds r6, r1, 0
- adds r4, r2, 0
-_081350AE:
- ldrh r0, [r4]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _081350C6
- adds r5, 0x1
-_081350C6:
- adds r4, 0x2
- ldrh r0, [r4]
- cmp r0, r6
- bne _081350AE
-_081350CE:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081350D8: .4byte gBattleTowerBanlist
-_081350DC: .4byte 0x0000ffff
- thumb_func_end CalcBattleTowerBanlistSeenCount
-
- thumb_func_start AppendBattleTowerBannedSpeciesName
-AppendBattleTowerBannedSpeciesName: @ 81350E0
- push {r4-r6,lr}
- adds r5, r2, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r6, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _081351E6
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- subs r0, r4, 0x1
- cmp r0, 0xA
- bhi _081351B0
- lsls r0, 2
- ldr r1, _08135118 @ =_0813511C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08135118: .4byte _0813511C
- .align 2, 0
-_0813511C:
- .4byte _08135148
- .4byte _08135178
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
-_08135148:
- cmp r5, r4
- bne _08135160
- ldr r0, _08135158 @ =gStringVar1
- ldr r1, _0813515C @ =gUnknown_08400E23
- bl StringAppend
- b _081351D8
- .align 2, 0
-_08135158: .4byte gStringVar1
-_0813515C: .4byte gUnknown_08400E23
-_08135160:
- cmp r5, r4
- ble _081351D8
- ldr r0, _08135170 @ =gStringVar1
- ldr r1, _08135174 @ =gUnknown_08400E29
- bl StringAppend
- b _081351D8
- .align 2, 0
-_08135170: .4byte gStringVar1
-_08135174: .4byte gUnknown_08400E29
-_08135178:
- cmp r4, r5
- bne _08135190
- ldr r0, _08135188 @ =gStringVar1
- ldr r1, _0813518C @ =gUnknown_08400E23
- bl StringAppend
- b _08135198
- .align 2, 0
-_08135188: .4byte gStringVar1
-_0813518C: .4byte gUnknown_08400E23
-_08135190:
- ldr r0, _081351A4 @ =gStringVar1
- ldr r1, _081351A8 @ =gUnknown_08400E29
- bl StringAppend
-_08135198:
- ldr r0, _081351A4 @ =gStringVar1
- ldr r1, _081351AC @ =gUnknown_08400E30
- bl StringAppend
- b _081351D8
- .align 2, 0
-_081351A4: .4byte gStringVar1
-_081351A8: .4byte gUnknown_08400E29
-_081351AC: .4byte gUnknown_08400E30
-_081351B0:
- cmp r4, r5
- bne _081351C8
- ldr r0, _081351C0 @ =gStringVar1
- ldr r1, _081351C4 @ =gUnknown_08400E23
- bl StringAppend
- b _081351D0
- .align 2, 0
-_081351C0: .4byte gStringVar1
-_081351C4: .4byte gUnknown_08400E23
-_081351C8:
- ldr r0, _081351F0 @ =gStringVar1
- ldr r1, _081351F4 @ =gUnknown_08400E29
- bl StringAppend
-_081351D0:
- ldr r0, _081351F0 @ =gStringVar1
- ldr r1, _081351F8 @ =gUnknown_08400E2E
- bl StringAppend
-_081351D8:
- ldr r0, _081351F0 @ =gStringVar1
- movs r1, 0xB
- muls r1, r6
- ldr r2, _081351FC @ =gSpeciesNames
- adds r1, r2
- bl StringAppend
-_081351E6:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081351F0: .4byte gStringVar1
-_081351F4: .4byte gUnknown_08400E29
-_081351F8: .4byte gUnknown_08400E2E
-_081351FC: .4byte gSpeciesNames
- thumb_func_end AppendBattleTowerBannedSpeciesName
-
- thumb_func_start CheckMonBattleTowerBanlist
-CheckMonBattleTowerBanlist: @ 8135200
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, [sp, 0x20]
- ldr r4, [sp, 0x24]
- mov r9, r4
- ldr r4, [sp, 0x28]
- mov r10, r4
- ldr r7, [sp, 0x2C]
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r2, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- beq _081352CE
- cmp r4, 0
- beq _081352CE
- ldr r0, _081352DC @ =gBattleTowerBanlist
- ldrh r1, [r0]
- ldr r5, _081352E0 @ =0x0000ffff
- adds r3, r0, 0
- cmp r1, r5
- beq _08135264
- cmp r1, r4
- beq _08135258
- adds r1, r3, 0
-_0813524A:
- adds r1, 0x2
- adds r2, 0x1
- ldrh r0, [r1]
- cmp r0, r5
- beq _08135264
- cmp r0, r4
- bne _0813524A
-_08135258:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r0]
- ldr r0, _081352E0 @ =0x0000ffff
- cmp r1, r0
- bne _081352CE
-_08135264:
- mov r0, r12
- cmp r0, 0
- bne _08135270
- mov r1, r8
- cmp r1, 0x32
- bhi _081352CE
-_08135270:
- movs r2, 0
- ldrb r3, [r7]
- cmp r2, r3
- bge _08135290
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, r4
- beq _08135290
- adds r5, r3, 0
-_08135282:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _08135290
- ldrh r0, [r1]
- cmp r0, r4
- bne _08135282
-_08135290:
- cmp r2, r3
- bne _081352CE
- cmp r6, 0
- beq _081352BA
- movs r2, 0
- cmp r2, r3
- bge _081352B6
- mov r1, r10
- ldrh r0, [r1]
- cmp r0, r6
- beq _081352B6
- adds r5, r3, 0
-_081352A8:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _081352B6
- ldrh r0, [r1]
- cmp r0, r6
- bne _081352A8
-_081352B6:
- cmp r2, r3
- bne _081352CE
-_081352BA:
- lsls r0, r3, 1
- add r0, r9
- strh r4, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- add r0, r10
- strh r6, [r0]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
-_081352CE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081352DC: .4byte gBattleTowerBanlist
-_081352E0: .4byte 0x0000ffff
- thumb_func_end CheckMonBattleTowerBanlist
-
- thumb_func_start CheckPartyBattleTowerBanlist
-CheckPartyBattleTowerBanlist: @ 81352E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- add r1, sp, 0x28
- movs r0, 0
- strb r0, [r1]
- movs r7, 0
- mov r9, r1
- add r0, sp, 0x1C
- mov r10, r0
-_081352FE:
- movs r0, 0x64
- adds r5, r7, 0
- muls r5, r0
- ldr r0, _081353C4 @ =gPlayerParty
- adds r5, r0
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- mov r8, r0
- mov r1, r8
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r5, _081353C8 @ =gScriptResult
- ldrb r3, [r5]
- str r4, [sp]
- add r0, sp, 0x10
- str r0, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r6, 0
- bl CheckMonBattleTowerBanlist
- adds r7, 0x1
- cmp r7, 0x5
- ble _081352FE
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08135420
- ldr r1, _081353CC @ =gStringVar1
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _081353D0 @ =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- mov r1, r9
- strb r0, [r1]
- bl CalcBattleTowerBanlistSeenCount
- adds r6, r0, 0
- ldr r2, _081353D4 @ =gBattleTowerBanlist
- ldrh r0, [r2]
- ldr r1, _081353D8 @ =0x0000ffff
- cmp r0, r1
- beq _081353A8
- mov r5, r9
- adds r7, r1, 0
- adds r4, r2, 0
-_08135394:
- ldrh r0, [r4]
- ldrb r1, [r5]
- adds r2, r6, 0
- bl AppendBattleTowerBannedSpeciesName
- strb r0, [r5]
- adds r4, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _08135394
-_081353A8:
- mov r0, r9
- ldrb r1, [r0]
- cmp r1, 0
- bne _081353E4
- ldr r4, _081353CC @ =gStringVar1
- ldr r1, _081353DC @ =gUnknown_08400E2C
- adds r0, r4, 0
- bl StringAppend
- ldr r1, _081353E0 @ =gUnknown_08400E32
- adds r0, r4, 0
- bl StringAppend
- b _0813543E
- .align 2, 0
-_081353C4: .4byte gPlayerParty
-_081353C8: .4byte gScriptResult
-_081353CC: .4byte gStringVar1
-_081353D0: .4byte gSpecialVar_0x8004
-_081353D4: .4byte gBattleTowerBanlist
-_081353D8: .4byte 0x0000ffff
-_081353DC: .4byte gUnknown_08400E2C
-_081353E0: .4byte gUnknown_08400E32
-_081353E4:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08135400
- ldr r0, _081353F8 @ =gStringVar1
- ldr r1, _081353FC @ =gUnknown_08400E2E
- bl StringAppend
- b _08135408
- .align 2, 0
-_081353F8: .4byte gStringVar1
-_081353FC: .4byte gUnknown_08400E2E
-_08135400:
- ldr r0, _08135414 @ =gStringVar1
- ldr r1, _08135418 @ =gUnknown_08400E2C
- bl StringAppend
-_08135408:
- ldr r0, _08135414 @ =gStringVar1
- ldr r1, _0813541C @ =gUnknown_08400E36
- bl StringAppend
- b _0813543E
- .align 2, 0
-_08135414: .4byte gStringVar1
-_08135418: .4byte gUnknown_08400E2C
-_0813541C: .4byte gUnknown_08400E36
-_08135420:
- ldr r1, _08135450 @ =gSpecialVar_0x8004
- movs r0, 0
- strh r0, [r1]
- ldr r2, _08135454 @ =gSaveBlock2
- ldrb r0, [r5]
- ldr r1, _08135458 @ =0x00000554
- adds r2, r1
- movs r1, 0x1
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_0813543E:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135450: .4byte gSpecialVar_0x8004
-_08135454: .4byte gSaveBlock2
-_08135458: .4byte 0x00000554
- thumb_func_end CheckPartyBattleTowerBanlist
-
- thumb_func_start sub_813545C
-sub_813545C: @ 813545C
- push {lr}
- adds r1, r0, 0
- ldr r0, _08135470 @ =gStringVar4
- movs r2, 0x2
- movs r3, 0x3
- bl sub_80EB544
- pop {r0}
- bx r0
- .align 2, 0
-_08135470: .4byte gStringVar4
- thumb_func_end sub_813545C
-
- thumb_func_start sub_8135474
-sub_8135474: @ 8135474
- push {lr}
- ldr r2, _08135490 @ =gSaveBlock2
- ldr r0, _08135494 @ =0x00000564
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08135498
- movs r1, 0x95
- lsls r1, 3
- adds r0, r2, r1
- bl sub_813545C
- b _081354C4
- .align 2, 0
-_08135490: .4byte gSaveBlock2
-_08135494: .4byte 0x00000564
-_08135498:
- cmp r0, 0x63
- bhi _081354B4
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _081354B0 @ =gBattleTowerTrainers + 0xC
- adds r0, r1
- bl sub_813545C
- b _081354C4
- .align 2, 0
-_081354B0: .4byte gBattleTowerTrainers + 0xC
-_081354B4:
- ldrb r1, [r1]
- movs r0, 0xA4
- muls r0, r1
- ldr r3, _081354C8 @ =0xffffc14c
- adds r1, r2, r3
- adds r0, r1
- bl sub_813545C
-_081354C4:
- pop {r0}
- bx r0
- .align 2, 0
-_081354C8: .4byte 0xffffc14c
- thumb_func_end sub_8135474
-
- thumb_func_start sub_81354CC
-sub_81354CC: @ 81354CC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _081354E4 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081354E8
- cmp r0, 0x1
- ble _08135520
- cmp r0, 0x2
- beq _0813551C
- b _08135520
- .align 2, 0
-_081354E4: .4byte gSpecialVar_0x8004
-_081354E8:
- movs r5, 0
-_081354EA:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08135514 @ =gSaveBlock1 + 0x238
- adds r0, r4, r0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, _08135518 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
- cmp r5, 0x5
- ble _081354EA
- b _08135520
- .align 2, 0
-_08135514: .4byte gSaveBlock1 + 0x238
-_08135518: .4byte gPlayerParty
-_0813551C:
- bl sub_81360D0
-_08135520:
- ldr r0, _08135530 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135530: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_81354CC
-
- thumb_func_start sub_8135534
-sub_8135534: @ 8135534
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_811AAE8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08135558
- ldr r0, _08135560 @ =gMain
- ldr r1, _08135564 @ =sub_81354CC
- str r1, [r0, 0x8]
- ldr r0, _08135568 @ =sub_800E7C4
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08135558:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135560: .4byte gMain
-_08135564: .4byte sub_81354CC
-_08135568: .4byte sub_800E7C4
- thumb_func_end sub_8135534
-
- thumb_func_start sub_813556C
-sub_813556C: @ 813556C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08135584 @ =gSpecialVar_0x8004
- ldrh r2, [r0]
- cmp r2, 0x1
- beq _081355AC
- cmp r2, 0x1
- bgt _08135588
- cmp r2, 0
- beq _0813558E
- b _08135648
- .align 2, 0
-_08135584: .4byte gSpecialVar_0x8004
-_08135588:
- cmp r2, 0x2
- beq _08135600
- b _08135648
-_0813558E:
- ldr r1, _081355A4 @ =gUnknown_020239F8
- movs r3, 0x84
- lsls r3, 1
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _081355A8 @ =gTrainerBattleOpponent
- strh r2, [r0]
- bl sub_8134DD4
- b _081355D6
- .align 2, 0
-_081355A4: .4byte gUnknown_020239F8
-_081355A8: .4byte gTrainerBattleOpponent
-_081355AC:
- movs r5, 0
-_081355AE:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _081355F4 @ =gPlayerParty
- adds r0, r4, r0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, _081355F8 @ =gSaveBlock1 + 0x238
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
- cmp r5, 0x5
- ble _081355AE
-_081355D6:
- ldr r0, _081355FC @ =sub_8135534
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl current_map_music_set__default_for_battle
- bl GetBattleTowerBattleTransition
- lsls r0, 24
- lsrs r0, 24
- bl sub_811AABC
- b _08135648
- .align 2, 0
-_081355F4: .4byte gPlayerParty
-_081355F8: .4byte gSaveBlock1 + 0x238
-_081355FC: .4byte sub_8135534
-_08135600:
- bl ZeroEnemyPartyMons
- movs r5, 0
-_08135606:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08135650 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- muls r1, r5
- ldr r2, _08135654 @ =gSaveBlock2 + 0x4CC
- adds r1, r2
- bl sub_803ADE8
- adds r5, 0x1
- cmp r5, 0x2
- ble _08135606
- ldr r1, _08135658 @ =gUnknown_020239F8
- ldr r2, _0813565C @ =0x00000808
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08135660 @ =gTrainerBattleOpponent
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08135664 @ =sub_8135534
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl current_map_music_set__default_for_battle
- bl GetBattleTowerBattleTransition
- lsls r0, 24
- lsrs r0, 24
- bl sub_811AABC
-_08135648:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135650: .4byte gEnemyParty
-_08135654: .4byte gSaveBlock2 + 0x4CC
-_08135658: .4byte gUnknown_020239F8
-_0813565C: .4byte 0x00000808
-_08135660: .4byte gTrainerBattleOpponent
-_08135664: .4byte sub_8135534
- thumb_func_end sub_813556C
-
- thumb_func_start sub_8135668
-sub_8135668: @ 8135668
- push {r4,r5,lr}
- ldr r1, _0813568C @ =gSaveBlock2
- ldr r2, _08135690 @ =0x00000554
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r4, r0, 31
- ldr r0, _08135694 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r5, r1, 0
- cmp r0, 0xE
- bls _08135682
- b _0813589A
-_08135682:
- lsls r0, 2
- ldr r1, _08135698 @ =_0813569C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813568C: .4byte gSaveBlock2
-_08135690: .4byte 0x00000554
-_08135694: .4byte gSpecialVar_0x8004
-_08135698: .4byte _0813569C
- .align 2, 0
-_0813569C:
- .4byte _081356D8
- .4byte _08135700
- .4byte _0813571C
- .4byte _08135726
- .4byte _08135740
- .4byte _08135754
- .4byte _08135774
- .4byte _081357D0
- .4byte _081357FC
- .4byte _0813589A
- .4byte _08135820
- .4byte _08135834
- .4byte _0813584C
- .4byte _0813586C
- .4byte _08135888
-_081356D8:
- ldr r0, _081356F0 @ =0x02000000
- ldr r3, _081356F4 @ =0x00000556
- adds r1, r5, r3
- adds r1, r4, r1
- ldrb r2, [r1]
- ldr r3, _081356F8 @ =0x000160fb
- adds r0, r3
- strb r2, [r0]
- ldr r0, _081356FC @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- b _08135898
- .align 2, 0
-_081356F0: .4byte 0x02000000
-_081356F4: .4byte 0x00000556
-_081356F8: .4byte 0x000160fb
-_081356FC: .4byte gSpecialVar_0x8005
-_08135700:
- ldr r0, _08135714 @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- ldr r1, _08135718 @ =0x00000554
- adds r3, r5, r1
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- b _08135810
- .align 2, 0
-_08135714: .4byte gSpecialVar_0x8005
-_08135718: .4byte 0x00000554
-_0813571C:
- lsls r1, r4, 1
- movs r2, 0xAB
- lsls r2, 3
- adds r0, r5, r2
- b _0813572C
-_08135726:
- lsls r1, r4, 1
- ldr r3, _08135738 @ =0x0000055c
- adds r0, r5, r3
-_0813572C:
- adds r1, r0
- ldr r0, _0813573C @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- strh r0, [r1]
- b _0813589A
- .align 2, 0
-_08135738: .4byte 0x0000055c
-_0813573C: .4byte gSpecialVar_0x8005
-_08135740:
- ldr r0, _0813574C @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- ldr r2, _08135750 @ =0x00000564
- adds r0, r5, r2
- strb r1, [r0]
- b _0813589A
- .align 2, 0
-_0813574C: .4byte gSpecialVar_0x8005
-_08135750: .4byte 0x00000564
-_08135754:
- movs r2, 0
- ldr r4, _0813576C @ =gSaveBlock2 + 0x565
- ldr r3, _08135770 @ =gUnknown_02039270
-_0813575A:
- adds r0, r2, r4
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _0813575A
- b _0813589A
- .align 2, 0
-_0813576C: .4byte gSaveBlock2 + 0x565
-_08135770: .4byte gUnknown_02039270
-_08135774:
- ldr r3, _081357C0 @ =0x00000564
- adds r0, r5, r3
- ldrb r0, [r0]
- cmp r0, 0xC8
- bne _08135788
- movs r1, 0x93
- lsls r1, 3
- adds r0, r5, r1
- bl sub_81360AC
-_08135788:
- movs r3, 0xAE
- lsls r3, 3
- adds r2, r5, r3
- ldrh r1, [r2]
- ldr r0, _081357C4 @ =0x0000270e
- cmp r1, r0
- bhi _0813579A
- adds r0, r1, 0x1
- strh r0, [r2]
-_0813579A:
- lsls r4, 1
- movs r1, 0xAB
- lsls r1, 3
- adds r0, r5, r1
- adds r4, r0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- bl sub_8135A3C
- ldr r1, _081357C8 @ =gScriptResult
- ldrh r0, [r4]
- strh r0, [r1]
- ldr r1, _081357CC @ =gStringVar1
- adds r0, 0xA1
- strb r0, [r1]
- movs r0, 0xFF
- strb r0, [r1, 0x1]
- b _0813589A
- .align 2, 0
-_081357C0: .4byte 0x00000564
-_081357C4: .4byte 0x0000270e
-_081357C8: .4byte gScriptResult
-_081357CC: .4byte gStringVar1
-_081357D0:
- lsls r0, r4, 1
- ldr r2, _081357F0 @ =0x0000055c
- adds r1, r5, r2
- adds r4, r0, r1
- ldrh r1, [r4]
- ldr r0, _081357F4 @ =0x00000595
- cmp r1, r0
- bhi _081357E4
- adds r0, r1, 0x1
- strh r0, [r4]
-_081357E4:
- bl sub_8135A3C
- ldr r1, _081357F8 @ =gScriptResult
- ldrh r0, [r4]
- strh r0, [r1]
- b _0813589A
- .align 2, 0
-_081357F0: .4byte 0x0000055c
-_081357F4: .4byte 0x00000595
-_081357F8: .4byte gScriptResult
-_081357FC:
- ldr r0, _08135818 @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- ldr r1, _0813581C @ =0x00000554
- adds r3, r5, r1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
-_08135810:
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _0813589A
- .align 2, 0
-_08135818: .4byte gSpecialVar_0x8005
-_0813581C: .4byte 0x00000554
-_08135820:
- ldr r2, _08135830 @ =0x00000572
- adds r0, r5, r2
- ldrh r1, [r0]
- movs r0, 0x20
- bl sav12_xor_set
- b _0813589A
- .align 2, 0
-_08135830: .4byte 0x00000572
-_08135834:
- ldr r3, _08135848 @ =0x00000556
- adds r0, r5, r3
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0813589A
- adds r0, r4, 0
- bl sub_813461C
- b _0813589A
- .align 2, 0
-_08135848: .4byte 0x00000556
-_0813584C:
- ldr r1, _08135860 @ =0x00000556
- adds r0, r5, r1
- adds r0, r4, r0
- ldr r1, _08135864 @ =0x02000000
- ldr r2, _08135868 @ =0x000160fb
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- b _0813589A
- .align 2, 0
-_08135860: .4byte 0x00000556
-_08135864: .4byte 0x02000000
-_08135868: .4byte 0x000160fb
-_0813586C:
- adds r0, r4, 0
- bl sub_8135D3C
- ldr r1, _08135880 @ =gSaveBlock2
- lsls r2, r4, 1
- ldr r3, _08135884 @ =0x00000574
- adds r1, r3
- adds r2, r1
- strh r0, [r2]
- b _0813589A
- .align 2, 0
-_08135880: .4byte gSaveBlock2
-_08135884: .4byte 0x00000574
-_08135888:
- ldr r1, _081358A0 @ =0x00000554
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- movs r2, 0xAF
- lsls r2, 3
- adds r1, r5, r2
-_08135898:
- strb r0, [r1]
-_0813589A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081358A0: .4byte 0x00000554
- thumb_func_end sub_8135668
-
- thumb_func_start sub_81358A4
-sub_81358A4: @ 81358A4
- push {r4,lr}
- ldr r1, _081358C8 @ =gSaveBlock2
- ldr r2, _081358CC @ =0x00000554
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r4, r0, 31
- ldr r0, _081358D0 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0xE
- bls _081358BE
- b _08135A0A
-_081358BE:
- lsls r0, 2
- ldr r1, _081358D4 @ =_081358D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081358C8: .4byte gSaveBlock2
-_081358CC: .4byte 0x00000554
-_081358D0: .4byte gSpecialVar_0x8004
-_081358D4: .4byte _081358D8
- .align 2, 0
-_081358D8:
- .4byte _08135914
- .4byte _08135928
- .4byte _0813593C
- .4byte _0813594C
- .4byte _08135964
- .4byte _08135A0A
- .4byte _08135A0A
- .4byte _08135A0A
- .4byte _08135978
- .4byte _08135990
- .4byte _081359A0
- .4byte _081359B4
- .4byte _081359BC
- .4byte _081359DC
- .4byte _081359F8
-_08135914:
- ldr r0, _08135920 @ =gScriptResult
- ldr r2, _08135924 @ =0x00000556
- adds r1, r3, r2
- adds r1, r4, r1
- b _0813596A
- .align 2, 0
-_08135920: .4byte gScriptResult
-_08135924: .4byte 0x00000556
-_08135928:
- ldr r1, _08135934 @ =gScriptResult
- ldr r4, _08135938 @ =0x00000554
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 31
- b _08135982
- .align 2, 0
-_08135934: .4byte gScriptResult
-_08135938: .4byte 0x00000554
-_0813593C:
- ldr r2, _08135948 @ =gScriptResult
- lsls r0, r4, 1
- movs r4, 0xAB
- lsls r4, 3
- b _08135952
- .align 2, 0
-_08135948: .4byte gScriptResult
-_0813594C:
- ldr r2, _0813595C @ =gScriptResult
- lsls r0, r4, 1
- ldr r4, _08135960 @ =0x0000055c
-_08135952:
- adds r1, r3, r4
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- b _08135A0A
- .align 2, 0
-_0813595C: .4byte gScriptResult
-_08135960: .4byte 0x0000055c
-_08135964:
- ldr r0, _08135970 @ =gScriptResult
- ldr r2, _08135974 @ =0x00000564
- adds r1, r3, r2
-_0813596A:
- ldrb r1, [r1]
- strh r1, [r0]
- b _08135A0A
- .align 2, 0
-_08135970: .4byte gScriptResult
-_08135974: .4byte 0x00000564
-_08135978:
- ldr r1, _08135988 @ =gScriptResult
- ldr r4, _0813598C @ =0x00000554
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 30
-_08135982:
- lsrs r0, 31
- strh r0, [r1]
- b _08135A0A
- .align 2, 0
-_08135988: .4byte gScriptResult
-_0813598C: .4byte 0x00000554
-_08135990:
- adds r0, r4, 0
- bl sub_8135D3C
- ldr r1, _0813599C @ =gScriptResult
- strh r0, [r1]
- b _08135A0A
- .align 2, 0
-_0813599C: .4byte gScriptResult
-_081359A0:
- ldr r1, _081359B0 @ =0x00000572
- adds r0, r3, r1
- ldrh r1, [r0]
- movs r0, 0x20
- bl sav12_xor_set
- b _08135A0A
- .align 2, 0
-_081359B0: .4byte 0x00000572
-_081359B4:
- adds r0, r4, 0
- bl sub_813461C
- b _08135A0A
-_081359BC:
- ldr r2, _081359D0 @ =0x00000556
- adds r0, r3, r2
- adds r0, r4, r0
- ldr r1, _081359D4 @ =0x02000000
- ldr r3, _081359D8 @ =0x000160fb
- adds r1, r3
- ldrb r1, [r1]
- strb r1, [r0]
- b _08135A0A
- .align 2, 0
-_081359D0: .4byte 0x00000556
-_081359D4: .4byte 0x02000000
-_081359D8: .4byte 0x000160fb
-_081359DC:
- adds r0, r4, 0
- bl sub_8135D3C
- ldr r1, _081359F0 @ =gSaveBlock2
- lsls r2, r4, 1
- ldr r4, _081359F4 @ =0x00000574
- adds r1, r4
- adds r2, r1
- strh r0, [r2]
- b _08135A0A
- .align 2, 0
-_081359F0: .4byte gSaveBlock2
-_081359F4: .4byte 0x00000574
-_081359F8:
- ldr r1, _08135A10 @ =0x00000554
- adds r0, r3, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- movs r2, 0xAF
- lsls r2, 3
- adds r1, r3, r2
- strb r0, [r1]
-_08135A0A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135A10: .4byte 0x00000554
- thumb_func_end sub_81358A4
-
- thumb_func_start sub_8135A14
-sub_8135A14: @ 8135A14
- push {r4,lr}
- movs r2, 0
- ldr r4, _08135A34 @ =gUnknown_02039270
- ldr r3, _08135A38 @ =gSaveBlock2 + 0x565
-_08135A1C:
- adds r0, r2, r4
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _08135A1C
- bl ReducePlayerPartyToThree
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135A34: .4byte gUnknown_02039270
-_08135A38: .4byte gSaveBlock2 + 0x565
- thumb_func_end sub_8135A14
-
- thumb_func_start sub_8135A3C
-sub_8135A3C: @ 8135A3C
- push {r4-r6,lr}
- ldr r6, _08135A84 @ =gSaveBlock2
- ldr r1, _08135A88 @ =0x00000554
- adds r0, r6, r1
- ldrb r4, [r0]
- lsls r4, 31
- lsrs r4, 31
- adds r0, r4, 0
- bl sub_8135D3C
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r4, 1
- movs r3, 0xAC
- lsls r3, 3
- adds r2, r6, r3
- adds r4, r2
- ldrh r0, [r4]
- cmp r0, r5
- bcs _08135A66
- strh r5, [r4]
-_08135A66:
- ldr r0, _08135A8C @ =0x00000562
- adds r1, r6, r0
- ldrh r0, [r2]
- ldrh r3, [r1]
- cmp r0, r3
- bls _08135A94
- adds r5, r0, 0
- movs r0, 0x20
- adds r1, r5, 0
- bl sav12_xor_set
- ldr r1, _08135A90 @ =0x0000270f
- cmp r5, r1
- bhi _08135AA4
- b _08135AB4
- .align 2, 0
-_08135A84: .4byte gSaveBlock2
-_08135A88: .4byte 0x00000554
-_08135A8C: .4byte 0x00000562
-_08135A90: .4byte 0x0000270f
-_08135A94:
- ldrh r5, [r1]
- movs r0, 0x20
- adds r1, r5, 0
- bl sav12_xor_set
- ldr r1, _08135AAC @ =0x0000270f
- cmp r5, r1
- bls _08135AB4
-_08135AA4:
- ldr r2, _08135AB0 @ =0x00000572
- adds r0, r6, r2
- strh r1, [r0]
- b _08135ABA
- .align 2, 0
-_08135AAC: .4byte 0x0000270f
-_08135AB0: .4byte 0x00000572
-_08135AB4:
- ldr r3, _08135AC0 @ =0x00000572
- adds r0, r6, r3
- strh r5, [r0]
-_08135ABA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08135AC0: .4byte 0x00000572
- thumb_func_end sub_8135A3C
-
- thumb_func_start sub_8135AC4
-sub_8135AC4: @ 8135AC4
- push {r4-r6,lr}
- ldr r5, _08135AF0 @ =gSaveBlock2 + 0xA8
- adds r2, r5, 0
- subs r2, 0xA8
- ldr r1, _08135AF4 @ =0x000004ac
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r6, r0, 31
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08135AFC
- ldr r4, _08135AF8 @ =gUnknown_08405E7E
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _08135B0E
- .align 2, 0
-_08135AF0: .4byte gSaveBlock2 + 0xA8
-_08135AF4: .4byte 0x000004ac
-_08135AF8: .4byte gUnknown_08405E7E
-_08135AFC:
- ldr r4, _08135B84 @ =gUnknown_08405E60
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_08135B0E:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r6, [r5]
- strb r0, [r5, 0x1]
- adds r0, r5, 0
- adds r0, 0xC
- ldr r4, _08135B88 @ =gSaveBlock2 + 0xA
- adds r1, r4, 0
- bl sub_8052D10
- adds r0, r5, 0x4
- subs r4, 0xA
- adds r1, r4, 0
- bl StringCopy8
- adds r0, r6, 0
- bl sub_8135D3C
- strh r0, [r5, 0x2]
- ldr r0, _08135B8C @ =gSaveBlock1
- ldr r1, _08135B90 @ =0x00002b28
- adds r2, r0, r1
- adds r1, r5, 0
- adds r1, 0x10
- movs r4, 0x5
-_08135B44:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08135B44
- movs r4, 0
- ldr r6, _08135B94 @ =gSaveBlock2 + 0x565
-_08135B56:
- adds r0, r4, r6
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08135B98 @ =gUnknown_030042FC
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x1C
- adds r1, r5, r1
- bl sub_803AF78
- adds r4, 0x1
- cmp r4, 0x2
- ble _08135B56
- ldr r0, _08135B9C @ =gSaveBlock2 + 0xA8
- bl sub_8135CC4
- bl sub_8135A3C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08135B84: .4byte gUnknown_08405E60
-_08135B88: .4byte gSaveBlock2 + 0xA
-_08135B8C: .4byte gSaveBlock1
-_08135B90: .4byte 0x00002b28
-_08135B94: .4byte gSaveBlock2 + 0x565
-_08135B98: .4byte gUnknown_030042FC
-_08135B9C: .4byte gSaveBlock2 + 0xA8
- thumb_func_end sub_8135AC4
-
- thumb_func_start sub_8135BA0
-sub_8135BA0: @ 8135BA0
- push {r4,r5,lr}
- ldr r2, _08135C1C @ =gSaveBlock2
- ldr r1, _08135C20 @ =0x00000554
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r5, r0, 31
- ldr r0, _08135C24 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x3
- beq _08135BBA
- cmp r0, 0
- bne _08135BD8
-_08135BBA:
- lsls r1, r5, 1
- ldr r3, _08135C28 @ =0x0000055c
- adds r0, r2, r3
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0x1
- bhi _08135BD4
- subs r3, 0x4
- adds r0, r2, r3
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _08135BD8
-_08135BD4:
- bl sub_8135AC4
-_08135BD8:
- bl sub_8135CFC
- ldr r4, _08135C1C @ =gSaveBlock2
- ldr r0, _08135C2C @ =gUnknown_02024D26
- ldrb r1, [r0]
- ldr r2, _08135C30 @ =0x00000555
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, _08135C24 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- cmp r1, 0x3
- beq _08135BF8
- ldr r3, _08135C34 @ =0x00000556
- adds r0, r4, r3
- adds r0, r5, r0
- strb r1, [r0]
-_08135BF8:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0
- bl VarSet
- ldr r0, _08135C20 @ =0x00000554
- adds r2, r4, r0
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- bl sub_8125D44
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135C1C: .4byte gSaveBlock2
-_08135C20: .4byte 0x00000554
-_08135C24: .4byte gSpecialVar_0x8004
-_08135C28: .4byte 0x0000055c
-_08135C2C: .4byte gUnknown_02024D26
-_08135C30: .4byte 0x00000555
-_08135C34: .4byte 0x00000556
- thumb_func_end sub_8135BA0
-
- thumb_func_start sub_8135C38
-sub_8135C38: @ 8135C38
- push {lr}
- bl DoSoftReset
- pop {r0}
- bx r0
- thumb_func_end sub_8135C38
-
- thumb_func_start sub_8135C44
-sub_8135C44: @ 8135C44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r3, 0
- movs r1, 0
- ldr r2, _08135CBC @ =gSaveBlock2 + 0xA8
-_08135C50:
- ldm r2!, {r0}
- adds r3, r0
- adds r1, 0x1
- cmp r1, 0x27
- bls _08135C50
- ldr r5, _08135CC0 @ =gSaveBlock2
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r5, r1
- ldr r0, [r0]
- cmp r0, r3
- beq _08135C70
- adds r0, r5, 0
- adds r0, 0xA8
- bl sub_8135CE8
-_08135C70:
- movs r4, 0
- movs r7, 0xA4
- movs r0, 0xA6
- lsls r0, 1
- adds r6, r5, r0
- mov r8, r5
-_08135C7C:
- adds r0, r4, 0
- muls r0, r7
- movs r3, 0
- movs r1, 0
- adds r5, r4, 0x1
- adds r2, r0, r6
-_08135C88:
- ldm r2!, {r0}
- adds r3, r0
- adds r1, 0x1
- cmp r1, 0x27
- bls _08135C88
- adds r1, r4, 0
- muls r1, r7
- movs r0, 0xF6
- lsls r0, 1
- add r0, r8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, r3
- beq _08135CAA
- adds r0, r1, r6
- bl sub_8135CE8
-_08135CAA:
- adds r4, r5, 0
- cmp r4, 0x4
- ble _08135C7C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135CBC: .4byte gSaveBlock2 + 0xA8
-_08135CC0: .4byte gSaveBlock2
- thumb_func_end sub_8135C44
-
- thumb_func_start sub_8135CC4
-sub_8135CC4: @ 8135CC4
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xA0
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08135CD2:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x27
- bls _08135CD2
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8135CC4
-
- thumb_func_start sub_8135CE8
-sub_8135CE8: @ 8135CE8
- push {lr}
- movs r1, 0
- movs r2, 0
-_08135CEE:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x28
- bls _08135CEE
- pop {r0}
- bx r0
- thumb_func_end sub_8135CE8
-
- thumb_func_start sub_8135CFC
-sub_8135CFC: @ 8135CFC
- push {r4,lr}
- ldr r4, _08135D34 @ =gSaveBlock2 + 0x484
- adds r0, r4, 0
- bl get_trainer_name
- ldr r2, _08135D38 @ =gBattleMons
- adds r0, r2, 0
- adds r0, 0x58
- ldrh r1, [r0]
- subs r0, r4, 0x2
- strh r1, [r0]
- ldrh r1, [r2]
- subs r0, r4, 0x4
- strh r1, [r0]
- movs r3, 0
- adds r4, 0x8
- adds r2, 0x30
-_08135D1E:
- adds r0, r3, r4
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x9
- ble _08135D1E
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135D34: .4byte gSaveBlock2 + 0x484
-_08135D38: .4byte gBattleMons
- thumb_func_end sub_8135CFC
-
- thumb_func_start sub_8135D3C
-sub_8135D3C: @ 8135D3C
- push {lr}
- lsls r0, 24
- ldr r3, _08135D74 @ =gSaveBlock2
- lsrs r0, 23
- ldr r2, _08135D78 @ =0x0000055c
- adds r1, r3, r2
- adds r1, r0, r1
- ldrh r2, [r1]
- subs r2, 0x1
- lsls r1, r2, 3
- subs r1, r2
- movs r2, 0xAB
- lsls r2, 3
- adds r3, r2
- adds r0, r3
- ldr r2, _08135D7C @ =0x0000ffff
- adds r1, r2
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r0, r1, 16
- ldr r1, _08135D80 @ =0x0000270f
- cmp r0, r1
- bls _08135D6E
- adds r0, r1, 0
-_08135D6E:
- pop {r1}
- bx r1
- .align 2, 0
-_08135D74: .4byte gSaveBlock2
-_08135D78: .4byte 0x0000055c
-_08135D7C: .4byte 0x0000ffff
-_08135D80: .4byte 0x0000270f
- thumb_func_end sub_8135D3C
-
- thumb_func_start sub_8135D84
-sub_8135D84: @ 8135D84
- push {r4,r5,lr}
- ldr r5, _08135DB0 @ =gSaveBlock2
- ldr r1, _08135DB4 @ =0x00000554
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- lsls r0, 1
- ldr r2, _08135DB8 @ =0x0000055c
- adds r1, r5, r2
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x5
- ble _08135DC0
- bl Random
- ldr r4, _08135DBC @ =gUnknown_08405EE6
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x9
- b _08135DCC
- .align 2, 0
-_08135DB0: .4byte gSaveBlock2
-_08135DB4: .4byte 0x00000554
-_08135DB8: .4byte 0x0000055c
-_08135DBC: .4byte gUnknown_08405EE6
-_08135DC0:
- bl Random
- ldr r4, _08135DE8 @ =gUnknown_08405EDA
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
-_08135DCC:
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r4
- ldrh r1, [r0]
- movs r2, 0xAD
- lsls r2, 3
- adds r0, r5, r2
- strh r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135DE8: .4byte gUnknown_08405EDA
- thumb_func_end sub_8135D84
-
- thumb_func_start sub_8135DEC
-sub_8135DEC: @ 8135DEC
- push {r4-r7,lr}
- ldr r5, _08135E20 @ =gSaveBlock2
- ldr r1, _08135E24 @ =0x00000554
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r7, r0, 31
- movs r0, 0xAD
- lsls r0, 3
- adds r6, r5, r0
- ldrh r0, [r6]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _08135E30
- ldrh r0, [r6]
- ldr r1, _08135E28 @ =gStringVar1
- bl CopyItemName
- ldr r0, _08135E2C @ =gScriptResult
- strh r4, [r0]
- b _08135E40
- .align 2, 0
-_08135E20: .4byte gSaveBlock2
-_08135E24: .4byte 0x00000554
-_08135E28: .4byte gStringVar1
-_08135E2C: .4byte gScriptResult
-_08135E30:
- ldr r1, _08135E48 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08135E4C @ =0x00000556
- adds r0, r5, r1
- adds r0, r7, r0
- movs r1, 0x6
- strb r1, [r0]
-_08135E40:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135E48: .4byte gScriptResult
-_08135E4C: .4byte 0x00000556
- thumb_func_end sub_8135DEC
-
- thumb_func_start sub_8135E50
-sub_8135E50: @ 8135E50
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r6, _08135ED4 @ =gSaveBlock2
- ldr r1, _08135ED8 @ =0x00000554
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r0, 0
- movs r7, 0x44
- cmp r1, 0
- beq _08135E6C
- movs r7, 0x45
-_08135E6C:
- ldr r4, _08135EDC @ =gScriptResult
- movs r0, 0
- strh r0, [r4]
- adds r0, r1, 0
- bl sub_8135D3C
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x37
- bls _08135EBA
- movs r5, 0
- ldr r0, _08135EE0 @ =0x00000565
- adds r0, r6
- mov r8, r0
- adds r6, r4, 0
-_08135E8A:
- mov r1, r8
- adds r0, r5, r1
- ldrb r0, [r0]
- subs r0, 0x1
- movs r1, 0x64
- muls r1, r0
- ldr r0, _08135EE4 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- adds r1, r7, 0
- bl GetMonData
- cmp r0, 0
- bne _08135EB4
- movs r0, 0x1
- strh r0, [r6]
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl SetMonData
-_08135EB4:
- adds r5, 0x1
- cmp r5, 0x2
- ble _08135E8A
-_08135EBA:
- ldr r0, _08135EDC @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- beq _08135EC8
- movs r0, 0x2A
- bl sav12_xor_increment
-_08135EC8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135ED4: .4byte gSaveBlock2
-_08135ED8: .4byte 0x00000554
-_08135EDC: .4byte gScriptResult
-_08135EE0: .4byte 0x00000565
-_08135EE4: .4byte gPlayerParty
- thumb_func_end sub_8135E50
-
- thumb_func_start unref_sub_8135EE8
-unref_sub_8135EE8: @ 8135EE8
- push {r4-r7,lr}
- ldr r7, _08135F0C @ =gSaveBlock2 + 0x498
- ldr r0, _08135F10 @ =0xfffffb68
- adds r2, r7, r0
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08135F18
- ldr r4, _08135F14 @ =gUnknown_08405E7E
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _08135F2A
- .align 2, 0
-_08135F0C: .4byte gSaveBlock2 + 0x498
-_08135F10: .4byte 0xfffffb68
-_08135F14: .4byte gUnknown_08405E7E
-_08135F18:
- ldr r4, _08135FA8 @ =gUnknown_08405E60
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_08135F2A:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r7, 0x1]
- adds r0, r7, 0
- adds r0, 0xC
- ldr r4, _08135FAC @ =gSaveBlock2 + 0xA
- adds r1, r4, 0
- bl sub_8052D10
- adds r0, r7, 0x4
- subs r4, 0xA
- adds r1, r4, 0
- bl StringCopy8
- movs r0, 0x1
- strh r0, [r7, 0x2]
- movs r5, 0x7
- movs r4, 0
- ldr r0, _08135FB0 @ =gSaveBlock1
- ldr r1, _08135FB4 @ =0x00002b28
- adds r6, r0, r1
- adds r3, r7, 0
- adds r3, 0x10
- adds r2, r7, 0
- adds r2, 0x28
- adds r1, r7, 0
- adds r1, 0x1C
-_08135F64:
- ldrh r0, [r6]
- strh r0, [r3]
- strh r5, [r1]
- adds r0, r5, 0x6
- strh r0, [r2]
- adds r5, 0x1
- adds r6, 0x2
- adds r3, 0x2
- adds r2, 0x2
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x5
- ble _08135F64
- movs r4, 0
-_08135F80:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08135FB8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x34
- adds r1, r7, r1
- bl sub_803AF78
- adds r4, 0x1
- cmp r4, 0x2
- ble _08135F80
- adds r0, r7, 0
- bl sub_8136088
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135FA8: .4byte gUnknown_08405E60
-_08135FAC: .4byte gSaveBlock2 + 0xA
-_08135FB0: .4byte gSaveBlock1
-_08135FB4: .4byte 0x00002b28
-_08135FB8: .4byte gPlayerParty
- thumb_func_end unref_sub_8135EE8
-
- thumb_func_start sub_8135FBC
-sub_8135FBC: @ 8135FBC
- ldr r1, _08135FCC @ =gTrainerClassToPicIndex
- ldr r0, _08135FD0 @ =gSaveBlock2
- ldr r2, _08135FD4 @ =0x00000499
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08135FCC: .4byte gTrainerClassToPicIndex
-_08135FD0: .4byte gSaveBlock2
-_08135FD4: .4byte 0x00000499
- thumb_func_end sub_8135FBC
-
- thumb_func_start sub_8135FD8
-sub_8135FD8: @ 8135FD8
- ldr r1, _08135FE8 @ =gTrainerClassToNameIndex
- ldr r0, _08135FEC @ =gSaveBlock2
- ldr r2, _08135FF0 @ =0x00000499
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08135FE8: .4byte gTrainerClassToNameIndex
-_08135FEC: .4byte gSaveBlock2
-_08135FF0: .4byte 0x00000499
- thumb_func_end sub_8135FD8
-
- thumb_func_start sub_8135FF4
-sub_8135FF4: @ 8135FF4
- push {r4,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r4, _08136018 @ =gSaveBlock2 + 0x49C
-_08135FFC:
- adds r0, r3, r2
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x6
- ble _08135FFC
- adds r1, r3, r2
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136018: .4byte gSaveBlock2 + 0x49C
- thumb_func_end sub_8135FF4
-
- thumb_func_start sub_813601C
-sub_813601C: @ 813601C
- push {r4,r5,lr}
- ldr r1, _08136044 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r5, _08136048 @ =gSaveBlock2 + 0x498
- movs r3, 0
- movs r2, 0
- adds r4, r1, 0
- adds r1, r5, 0
-_0813602E:
- ldm r1!, {r0}
- orrs r3, r0
- adds r2, 0x1
- cmp r2, 0x2D
- bls _0813602E
- cmp r3, 0
- bne _0813604C
- movs r0, 0x1
- strh r0, [r4]
- b _08136078
- .align 2, 0
-_08136044: .4byte gScriptResult
-_08136048: .4byte gSaveBlock2 + 0x498
-_0813604C:
- movs r3, 0
- movs r2, 0
- ldr r4, _08136080 @ =gSaveBlock2
- adds r1, r5, 0
-_08136054:
- ldm r1!, {r0}
- adds r3, r0
- adds r2, 0x1
- cmp r2, 0x2D
- bls _08136054
- movs r1, 0xAA
- lsls r1, 3
- adds r0, r4, r1
- ldr r0, [r0]
- cmp r0, r3
- beq _08136078
- subs r1, 0xB8
- adds r0, r4, r1
- bl sub_81360AC
- ldr r1, _08136084 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
-_08136078:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136080: .4byte gSaveBlock2
-_08136084: .4byte gScriptResult
- thumb_func_end sub_813601C
-
- thumb_func_start sub_8136088
-sub_8136088: @ 8136088
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xB8
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08136096:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x2D
- bls _08136096
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136088
-
- thumb_func_start sub_81360AC
-sub_81360AC: @ 81360AC
- push {lr}
- movs r1, 0
- movs r2, 0
-_081360B2:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x2E
- bls _081360B2
- pop {r0}
- bx r0
- thumb_func_end sub_81360AC
-
- thumb_func_start sub_81360C0
-sub_81360C0: @ 81360C0
- push {lr}
- ldr r0, _081360CC @ =gSaveBlock2 + 0x4A8
- bl sub_813545C
- pop {r0}
- bx r0
- .align 2, 0
-_081360CC: .4byte gSaveBlock2 + 0x4A8
- thumb_func_end sub_81360C0
-
- thumb_func_start sub_81360D0
-sub_81360D0: @ 81360D0
- push {lr}
- ldr r0, _081360E4 @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081360EC
- ldr r1, _081360E8 @ =gStringVar4
- movs r0, 0xFF
- strb r0, [r1]
- b _08136102
- .align 2, 0
-_081360E4: .4byte gUnknown_02024D26
-_081360E8: .4byte gStringVar4
-_081360EC:
- cmp r0, 0x1
- bne _081360FC
- ldr r0, _081360F8 @ =gSaveBlock2 + 0x4C0
- bl sub_813545C
- b _08136102
- .align 2, 0
-_081360F8: .4byte gSaveBlock2 + 0x4C0
-_081360FC:
- ldr r0, _08136108 @ =gSaveBlock2 + 0x4B4
- bl sub_813545C
-_08136102:
- pop {r0}
- bx r0
- .align 2, 0
-_08136108: .4byte gSaveBlock2 + 0x4B4
- thumb_func_end sub_81360D0
-
- thumb_func_start sub_813610C
-sub_813610C: @ 813610C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0813612C @ =gSaveBlock2 + 0x556
-_08136112:
- adds r0, r4, r5
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813611E
- bl sub_80BFD20
-_0813611E:
- adds r4, 0x1
- cmp r4, 0x1
- ble _08136112
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813612C: .4byte gSaveBlock2 + 0x556
- thumb_func_end sub_813610C
-
- thumb_func_start sub_8136130
-sub_8136130: @ 8136130
- push {r4,r5,lr}
- ldr r4, _0813615C @ =gUnknown_02039304
- ldr r2, _08136160 @ =gUnknown_083DFEC4
- ldr r3, [r2]
- ldr r5, _08136164 @ =0x0000d164
- adds r2, r3, r5
- str r2, [r4]
- str r0, [r2, 0x8]
- str r1, [r2, 0x4]
- ldr r0, _08136168 @ =0x0000d162
- adds r3, r0
- movs r0, 0x2
- strb r0, [r3]
- ldr r0, _0813616C @ =sub_8136294
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _08136170 @ =sub_8136244
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813615C: .4byte gUnknown_02039304
-_08136160: .4byte gUnknown_083DFEC4
-_08136164: .4byte 0x0000d164
-_08136168: .4byte 0x0000d162
-_0813616C: .4byte sub_8136294
-_08136170: .4byte sub_8136244
- thumb_func_end sub_8136130
-
- thumb_func_start sub_8136174
-sub_8136174: @ 8136174
- push {r4,r5,lr}
- ldr r5, _081361C4 @ =gUnknown_02039304
- ldr r1, [r5]
- ldr r0, _081361C8 @ =gUnknown_0203930C
- ldr r0, [r0]
- str r0, [r1, 0x8]
- ldr r0, _081361CC @ =gUnknown_02039308
- ldr r0, [r0]
- str r0, [r1, 0x4]
- ldr r4, _081361D0 @ =gUnknown_02039310
- ldrb r0, [r4]
- bl sub_81370E4
- strb r0, [r4]
- ldr r5, [r5]
- movs r1, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _0813619E
- movs r1, 0x1
-_0813619E:
- adds r0, r5, 0
- adds r0, 0x56
- strb r1, [r0]
- ldr r0, _081361D4 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _081361D8 @ =0x0000d162
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, _081361DC @ =sub_8136294
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _081361E0 @ =sub_81361E4
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081361C4: .4byte gUnknown_02039304
-_081361C8: .4byte gUnknown_0203930C
-_081361CC: .4byte gUnknown_02039308
-_081361D0: .4byte gUnknown_02039310
-_081361D4: .4byte gUnknown_083DFEC4
-_081361D8: .4byte 0x0000d162
-_081361DC: .4byte sub_8136294
-_081361E0: .4byte sub_81361E4
- thumb_func_end sub_8136174
-
- thumb_func_start sub_81361E4
-sub_81361E4: @ 81361E4
- push {r4,lr}
- ldr r4, _08136220 @ =gUnknown_02039304
- ldr r0, [r4]
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r4, [r4]
- ldr r1, [r4]
- ldr r0, _08136224 @ =sub_81365C8
- cmp r1, r0
- bne _0813621A
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, r4, 0
- adds r0, 0x50
- strb r1, [r0]
- ldr r0, _08136228 @ =sub_813622C
- bl SetMainCallback2
-_0813621A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136220: .4byte gUnknown_02039304
-_08136224: .4byte sub_81365C8
-_08136228: .4byte sub_813622C
- thumb_func_end sub_81361E4
-
- thumb_func_start sub_813622C
-sub_813622C: @ 813622C
- push {lr}
- bl sub_81368A4
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_813622C
-
- thumb_func_start sub_8136244
-sub_8136244: @ 8136244
- push {lr}
- ldr r0, _08136260 @ =gUnknown_02039304
- ldr r0, [r0]
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- .align 2, 0
-_08136260: .4byte gUnknown_02039304
- thumb_func_end sub_8136244
-
- thumb_func_start sub_8136264
-sub_8136264: @ 8136264
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- movs r0, 0x6
- bl sub_80F5CDC
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_8136264
-
- thumb_func_start launch_c3_walk_stairs_and_run_once
-launch_c3_walk_stairs_and_run_once: @ 8136280
- ldr r1, _08136290 @ =gUnknown_02039304
- ldr r1, [r1]
- str r0, [r1]
- adds r1, 0x50
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08136290: .4byte gUnknown_02039304
- thumb_func_end launch_c3_walk_stairs_and_run_once
-
- thumb_func_start sub_8136294
-sub_8136294: @ 8136294
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _081362B4 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x16
- bls _081362A8
- b _0813657A
-_081362A8:
- lsls r0, 2
- ldr r1, _081362B8 @ =_081362BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081362B4: .4byte gUnknown_02039304
-_081362B8: .4byte _081362BC
- .align 2, 0
-_081362BC:
- .4byte _08136318
- .4byte _08136354
- .4byte _0813635E
- .4byte _08136366
- .4byte _08136374
- .4byte _08136380
- .4byte _0813638C
- .4byte _081363B8
- .4byte _081363C8
- .4byte _081363DC
- .4byte _081363EE
- .4byte _08136404
- .4byte _08136448
- .4byte _08136464
- .4byte _08136488
- .4byte _08136494
- .4byte _0813649A
- .4byte _081364D8
- .4byte _081364FC
- .4byte _08136508
- .4byte _08136520
- .4byte _08136538
- .4byte _0813656C
-_08136318:
- bl is_c1_link_related_active
- ldr r1, _08136344 @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _08136348 @ =0x00006dac
- adds r1, r2
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08136330
- b _0813657A
-_08136330:
- ldr r4, _0813634C @ =gUnknown_02039304
- ldr r0, [r4]
- adds r0, 0x55
- strb r1, [r0]
- ldr r0, _08136350 @ =sub_81365A0
- bl launch_c3_walk_stairs_and_run_once
- ldr r1, [r4]
- b _08136528
- .align 2, 0
-_08136344: .4byte gUnknown_083DFEC4
-_08136348: .4byte 0x00006dac
-_0813634C: .4byte gUnknown_02039304
-_08136350: .4byte sub_81365A0
-_08136354:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- b _08136524
-_0813635E:
- movs r0, 0
- bl SetVBlankCallback
- b _08136524
-_08136366:
- ldr r0, _08136370 @ =gWindowConfig_81E7080
- bl SetUpWindowConfig
- b _08136524
- .align 2, 0
-_08136370: .4byte gWindowConfig_81E7080
-_08136374:
- ldr r0, _0813637C @ =gWindowConfig_81E7080
- bl MultistepInitMenuWindowBegin
- b _08136524
- .align 2, 0
-_0813637C: .4byte gWindowConfig_81E7080
-_08136380:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0813638A
- b _0813657A
-_0813638A:
- b _08136524
-_0813638C:
- ldr r0, _081363AC @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r4, _081363B0 @ =0x000076aa
- adds r0, r1, r4
- movs r2, 0
- strb r2, [r0]
- ldr r4, _081363B4 @ =0x000087e0
- adds r0, r1, r4
- str r2, [r0]
- movs r0, 0xC3
- lsls r0, 2
- adds r1, r0
- movs r0, 0x20
- strh r0, [r1]
- ldr r1, [r3]
- b _08136528
- .align 2, 0
-_081363AC: .4byte gUnknown_083DFEC4
-_081363B0: .4byte 0x000076aa
-_081363B4: .4byte 0x000087e0
-_081363B8:
- bl sub_80F2688
- ldr r0, _081363D8 @ =gUnknown_02039304
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081363C8:
- bl sub_80F26BC
- lsls r0, 24
- cmp r0, 0
- beq _081363D4
- b _0813657A
-_081363D4:
- b _08136524
- .align 2, 0
-_081363D8: .4byte gUnknown_02039304
-_081363DC:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r0, _08136400 @ =gUnknown_02039304
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081363EE:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- beq _081363FC
- b _0813657A
-_081363FC:
- b _08136524
- .align 2, 0
-_08136400: .4byte gUnknown_02039304
-_08136404:
- ldr r1, _08136434 @ =gKeyRepeatStartDelay
- movs r0, 0x14
- strh r0, [r1]
- bl CalculatePlayerPartyCount
- ldr r1, _08136438 @ =gUnknown_083DFEC4
- ldr r4, [r1]
- ldr r2, _0813643C @ =0x00008828
- adds r1, r4, r2
- movs r5, 0
- strb r0, [r1]
- ldr r1, _08136440 @ =0x00009344
- adds r0, r4, r1
- strb r5, [r0]
- subs r2, 0xC0
- adds r0, r4, r2
- str r5, [r0]
- bl sub_80F4BD0
- ldr r0, _08136444 @ =0x0000d160
- adds r4, r0
- strh r5, [r4]
- b _08136524
- .align 2, 0
-_08136434: .4byte gKeyRepeatStartDelay
-_08136438: .4byte gUnknown_083DFEC4
-_0813643C: .4byte 0x00008828
-_08136440: .4byte 0x00009344
-_08136444: .4byte 0x0000d160
-_08136448:
- bl sub_80F1778
- lsls r0, 24
- cmp r0, 0
- beq _08136454
- b _0813657A
-_08136454:
- ldr r0, _08136460 @ =REG_BG2VOFS
- movs r1, 0x6
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- b _08136524
- .align 2, 0
-_08136460: .4byte REG_BG2VOFS
-_08136464:
- movs r0, 0
- bl sub_80F2E18
- ldr r0, _0813647C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _08136480 @ =0x00008768
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _08136484 @ =0x0000ffd8
- strh r0, [r1, 0x26]
- b _08136524
- .align 2, 0
-_0813647C: .4byte gUnknown_083DFEC4
-_08136480: .4byte 0x00008768
-_08136484: .4byte 0x0000ffd8
-_08136488:
- bl sub_80F170C
- lsls r0, 24
- cmp r0, 0
- bne _0813657A
- b _08136524
-_08136494:
- bl sub_80F33A8
- b _08136524
-_0813649A:
- ldr r1, _081364C4 @ =0x0600f800
- movs r2, 0
- str r2, [sp]
- ldr r0, _081364C8 @ =0x040000d4
- mov r4, sp
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _081364CC @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _081364D0 @ =REG_BG1VOFS
- strh r2, [r0]
- subs r0, 0x2
- strh r2, [r0]
- ldr r1, _081364D4 @ =REG_BG1CNT
- movs r2, 0xF8
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [r3]
- b _08136528
- .align 2, 0
-_081364C4: .4byte 0x0600f800
-_081364C8: .4byte 0x040000d4
-_081364CC: .4byte 0x85000200
-_081364D0: .4byte REG_BG1VOFS
-_081364D4: .4byte REG_BG1CNT
-_081364D8:
- ldr r0, _081364F0 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r4, _081364F4 @ =0x00008ff0
- adds r0, r1, r4
- ldr r2, _081364F8 @ =0x00009004
- adds r1, r2
- bl sub_80F567C
- bl sub_80F5B38
- b _08136524
- .align 2, 0
-_081364F0: .4byte gUnknown_083DFEC4
-_081364F4: .4byte 0x00008ff0
-_081364F8: .4byte 0x00009004
-_081364FC:
- bl sub_80F5B50
- lsls r0, 24
- cmp r0, 0
- bne _0813657A
- b _08136524
-_08136508:
- ldr r0, _08136518 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r4, _0813651C @ =0x00009004
- adds r0, r4
- bl sub_80F556C
- b _08136524
- .align 2, 0
-_08136518: .4byte gUnknown_083DFEC4
-_0813651C: .4byte 0x00009004
-_08136520:
- bl sub_80F1934
-_08136524:
- ldr r0, _08136534 @ =gUnknown_02039304
- ldr r1, [r0]
-_08136528:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813657A
- .align 2, 0
-_08136534: .4byte gUnknown_02039304
-_08136538:
- ldr r1, _08136584 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x9B
- strh r0, [r1]
- ldr r0, _08136588 @ =REG_WIN0V
- ldr r2, _0813658C @ =0x00003273
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08136590 @ =REG_WININ
- ldr r4, _08136594 @ =0x00003f3f
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1B
- strh r0, [r1]
- subs r1, 0x38
- movs r0, 0x28
- strh r0, [r1]
- subs r1, 0x12
- ldr r2, _08136598 @ =0x00007f40
- adds r0, r2, 0
- strh r0, [r1]
-_0813656C:
- ldr r0, [r3]
- adds r0, 0x55
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _0813659C @ =sub_81365C8
- bl launch_c3_walk_stairs_and_run_once
-_0813657A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136584: .4byte REG_WIN0H
-_08136588: .4byte REG_WIN0V
-_0813658C: .4byte 0x00003273
-_08136590: .4byte REG_WININ
-_08136594: .4byte 0x00003f3f
-_08136598: .4byte 0x00007f40
-_0813659C: .4byte sub_81365C8
- thumb_func_end sub_8136294
-
- thumb_func_start sub_81365A0
-sub_81365A0: @ 81365A0
- push {r4,lr}
- ldr r1, _081365C4 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x55
- ldrb r0, [r0]
- cmp r0, 0
- bne _081365BE
- adds r4, r1, 0
-_081365B0:
- bl sub_8136294
- ldr r0, [r4]
- adds r0, 0x55
- ldrb r0, [r0]
- cmp r0, 0
- beq _081365B0
-_081365BE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081365C4: .4byte gUnknown_02039304
- thumb_func_end sub_81365A0
-
- thumb_func_start sub_81365C8
-sub_81365C8: @ 81365C8
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _081365E0 @ =gUnknown_02039304
- ldr r0, [r4]
- adds r0, 0x50
- ldrb r1, [r0]
- cmp r1, 0
- beq _081365E4
- cmp r1, 0x1
- beq _0813660C
- b _08136626
- .align 2, 0
-_081365E0: .4byte gUnknown_02039304
-_081365E4:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08136608 @ =sub_8136264
- bl SetVBlankCallback
- ldr r1, [r4]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136626
- .align 2, 0
-_08136608: .4byte sub_8136264
-_0813660C:
- ldr r0, _08136630 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08136626
- bl sub_80F3C94
- bl sub_80F3D00
- ldr r0, _08136634 @ =sub_8136638
- bl launch_c3_walk_stairs_and_run_once
-_08136626:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136630: .4byte gPaletteFade
-_08136634: .4byte sub_8136638
- thumb_func_end sub_81365C8
-
- thumb_func_start sub_8136638
-sub_8136638: @ 8136638
- push {r4,lr}
- ldr r0, _08136654 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08136648
- b _081367FA
-_08136648:
- lsls r0, 2
- ldr r1, _08136658 @ =_0813665C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08136654: .4byte gUnknown_02039304
-_08136658: .4byte _0813665C
- .align 2, 0
-_0813665C:
- .4byte _0813667C
- .4byte _08136748
- .4byte _08136754
- .4byte _08136774
- .4byte _081367FA
- .4byte _08136780
- .4byte _08136798
- .4byte _081367E0
-_0813667C:
- ldr r2, _081366A4 @ =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081366AC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F5060
- bl move_anim_execute
- ldr r0, _081366A8 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x1
- b _081367F8
- .align 2, 0
-_081366A4: .4byte gMain
-_081366A8: .4byte gUnknown_02039304
-_081366AC:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081366D4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80F5060
- bl move_anim_execute
- ldr r0, _081366D0 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x1
- b _081367F8
- .align 2, 0
-_081366D0: .4byte gUnknown_02039304
-_081366D4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081366F4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081366F0 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x3
- b _081367F8
- .align 2, 0
-_081366F0: .4byte gUnknown_02039304
-_081366F4:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081366FE
- b _081367FA
-_081366FE:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08136728 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _0813672C @ =0x000087dc
- adds r1, r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- ldr r2, _08136730 @ =0x000087da
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- cmp r1, r0
- bne _08136738
- ldr r0, _08136734 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x3
- b _081367F8
- .align 2, 0
-_08136728: .4byte gUnknown_083DFEC4
-_0813672C: .4byte 0x000087dc
-_08136730: .4byte 0x000087da
-_08136734: .4byte gUnknown_02039304
-_08136738:
- ldr r0, _08136744 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x5
- b _081367F8
- .align 2, 0
-_08136744: .4byte gUnknown_02039304
-_08136748:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- bne _081367FA
- b _08136784
-_08136754:
- bl sub_8055870
- adds r4, r0, 0
- cmp r4, 0
- bne _081367FA
- bl sub_80F1934
- bl sub_80F3D00
- ldr r0, _08136770 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- strb r4, [r0]
- b _081367FA
- .align 2, 0
-_08136770: .4byte gUnknown_02039304
-_08136774:
- ldr r0, _0813677C @ =sub_8136B44
- bl launch_c3_walk_stairs_and_run_once
- b _081367FA
- .align 2, 0
-_0813677C: .4byte sub_8136B44
-_08136780:
- bl sub_8136BB8
-_08136784:
- ldr r0, _08136794 @ =gUnknown_02039304
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081367FA
- .align 2, 0
-_08136794: .4byte gUnknown_02039304
-_08136798:
- bl sub_8136C40
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081367B8
- cmp r1, 0
- bgt _081367B2
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081367F0
- b _081367FA
-_081367B2:
- cmp r1, 0x1
- bne _081367FA
- b _081367F0
-_081367B8:
- bl sub_8137058
- lsls r0, 24
- cmp r0, 0
- beq _081367D4
- bl sub_8136D60
- ldr r0, _081367D0 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x7
- b _081367F8
- .align 2, 0
-_081367D0: .4byte gUnknown_02039304
-_081367D4:
- ldr r0, _081367DC @ =sub_8136808
- bl launch_c3_walk_stairs_and_run_once
- b _081367FA
- .align 2, 0
-_081367DC: .4byte sub_8136808
-_081367E0:
- ldr r0, _08136800 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081367FA
- bl sub_8136D8C
-_081367F0:
- ldr r0, _08136804 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0
-_081367F8:
- strb r1, [r0]
-_081367FA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136800: .4byte gMain
-_08136804: .4byte gUnknown_02039304
- thumb_func_end sub_8136638
-
- thumb_func_start sub_8136808
-sub_8136808: @ 8136808
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08136820 @ =gUnknown_02039304
- ldr r0, [r5]
- adds r0, 0x50
- ldrb r4, [r0]
- cmp r4, 0
- beq _08136824
- cmp r4, 0x1
- beq _08136874
- b _0813688C
- .align 2, 0
-_08136820: .4byte gUnknown_02039304
-_08136824:
- ldr r0, _08136860 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _08136864 @ =0x000087dc
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81370A4
- ldr r1, _08136868 @ =gUnknown_02039310
- strb r0, [r1]
- ldr r1, _0813686C @ =gUnknown_02039308
- ldr r2, [r5]
- ldr r0, [r2, 0x4]
- str r0, [r1]
- ldr r1, _08136870 @ =gUnknown_0203930C
- ldr r0, [r2, 0x8]
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813688C
- .align 2, 0
-_08136860: .4byte gUnknown_083DFEC4
-_08136864: .4byte 0x000087dc
-_08136868: .4byte gUnknown_02039310
-_0813686C: .4byte gUnknown_02039308
-_08136870: .4byte gUnknown_0203930C
-_08136874:
- ldr r0, _08136894 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813688C
- ldr r0, _08136898 @ =gMain
- ldr r1, _0813689C @ =sub_8136174
- str r1, [r0, 0x8]
- ldr r0, _081368A0 @ =sub_8147ADC
- bl SetMainCallback2
-_0813688C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136894: .4byte gPaletteFade
-_08136898: .4byte gMain
-_0813689C: .4byte sub_8136174
-_081368A0: .4byte sub_8147ADC
- thumb_func_end sub_8136808
-
- thumb_func_start sub_81368A4
-sub_81368A4: @ 81368A4
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _081368C4 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _081368B8
- b _081369B8
-_081368B8:
- lsls r0, 2
- ldr r1, _081368C8 @ =_081368CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081368C4: .4byte gUnknown_02039304
-_081368C8: .4byte _081368CC
- .align 2, 0
-_081368CC:
- .4byte _081368E8
- .4byte _08136922
- .4byte _0813692E
- .4byte _0813694C
- .4byte _0813695A
- .4byte _0813696C
- .4byte _08136998
-_081368E8:
- ldr r0, _0813690C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _08136910 @ =0x000087dc
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, _08136914 @ =gUnknown_02039310
- ldrb r0, [r0]
- cmp r1, r0
- beq _08136918
- ldr r0, [r4]
- adds r0, 0x56
- ldrb r0, [r0]
- bl sub_80F5060
- ldr r1, [r4]
- b _08136986
- .align 2, 0
-_0813690C: .4byte gUnknown_083DFEC4
-_08136910: .4byte 0x000087dc
-_08136914: .4byte gUnknown_02039310
-_08136918:
- ldr r0, [r4]
- adds r0, 0x50
- movs r1, 0x3
- strb r1, [r0]
- b _081369B8
-_08136922:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- bne _081369B8
- b _08136982
-_0813692E:
- bl sub_8055870
- adds r4, r0, 0
- cmp r4, 0
- bne _081369B8
- bl sub_80F1934
- ldr r0, _08136948 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- strb r4, [r0]
- b _081369B8
- .align 2, 0
-_08136948: .4byte gUnknown_02039304
-_0813694C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _08136982
-_0813695A:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _08136968 @ =0x00007f40
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [r4]
- b _08136986
- .align 2, 0
-_08136968: .4byte 0x00007f40
-_0813696C:
- ldr r0, _08136990 @ =sub_8136264
- bl SetVBlankCallback
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08136982:
- ldr r0, _08136994 @ =gUnknown_02039304
- ldr r1, [r0]
-_08136986:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081369B8
- .align 2, 0
-_08136990: .4byte sub_8136264
-_08136994: .4byte gUnknown_02039304
-_08136998:
- ldr r0, _081369C0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081369B8
- bl sub_80F3C94
- bl sub_80F3D00
- ldr r0, _081369C4 @ =sub_81369CC
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _081369C8 @ =sub_8136244
- bl SetMainCallback2
-_081369B8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081369C0: .4byte gPaletteFade
-_081369C4: .4byte sub_81369CC
-_081369C8: .4byte sub_8136244
- thumb_func_end sub_81368A4
-
- thumb_func_start sub_81369CC
-sub_81369CC: @ 81369CC
- push {r4-r6,lr}
- ldr r1, _081369E8 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _081369DE
- b _08136B32
-_081369DE:
- lsls r0, 2
- ldr r1, _081369EC @ =_081369F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081369E8: .4byte gUnknown_02039304
-_081369EC: .4byte _081369F0
- .align 2, 0
-_081369F0:
- .4byte _08136A08
- .4byte _08136A48
- .4byte _08136A5C
- .4byte _08136AAC
- .4byte _08136AEC
- .4byte _08136B0E
-_08136A08:
- ldr r3, [r4]
- ldr r2, _08136A38 @ =gPlayerParty
- str r2, [r3, 0xC]
- ldr r0, _08136A3C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r5, _08136A40 @ =0x000087dc
- adds r0, r1, r5
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r0, 2
- adds r1, r0
- ldr r0, _08136A44 @ =0x0000893e
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x64
- muls r0, r1
- adds r0, r2
- str r0, [r3, 0xC]
- bl move_anim_execute
- b _08136B02
- .align 2, 0
-_08136A38: .4byte gPlayerParty
-_08136A3C: .4byte gUnknown_083DFEC4
-_08136A40: .4byte 0x000087dc
-_08136A44: .4byte 0x0000893e
-_08136A48:
- ldr r0, _08136A58 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08136B32
- b _08136B02
- .align 2, 0
-_08136A58: .4byte gMain
-_08136A5C:
- bl sub_8136EF0
- ldr r6, _08136A98 @ =gUnknown_02039304
- ldr r0, [r6]
- adds r0, 0x5C
- ldr r1, _08136A9C @ =gUnknown_083DFEC4
- ldr r4, [r1]
- ldr r1, _08136AA0 @ =0x00009040
- adds r5, r4, r1
- adds r1, r5, 0
- bl sub_80F567C
- ldr r1, _08136AA4 @ =0x00008fe9
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _08136AA8 @ =0x00009004
- adds r0, r1
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80F5550
- bl sub_8137138
- ldr r1, [r6]
- b _08136B04
- .align 2, 0
-_08136A98: .4byte gUnknown_02039304
-_08136A9C: .4byte gUnknown_083DFEC4
-_08136AA0: .4byte 0x00009040
-_08136AA4: .4byte 0x00008fe9
-_08136AA8: .4byte 0x00009004
-_08136AAC:
- bl sub_80F555C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08136B32
- ldr r0, _08136AE0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r5, _08136AE4 @ =0x000087dc
- adds r0, r5
- ldrb r0, [r0]
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F7224
- bl sub_80F3D00
- ldr r1, _08136AE8 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x52
- strb r4, [r0]
- ldr r1, [r1]
- b _08136B04
- .align 2, 0
-_08136AE0: .4byte gUnknown_083DFEC4
-_08136AE4: .4byte 0x000087dc
-_08136AE8: .4byte gUnknown_02039304
-_08136AEC:
- ldr r1, [r4]
- adds r1, 0x52
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bls _08136B32
- bl sub_8136C6C
-_08136B02:
- ldr r1, [r4]
-_08136B04:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136B32
-_08136B0E:
- ldr r0, _08136B38 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08136B32
- bl sub_8136D00
- lsls r0, 24
- cmp r0, 0
- bne _08136B32
- ldr r0, _08136B3C @ =gScriptItemId
- ldrb r0, [r0]
- bl sub_810CA6C
- ldr r0, _08136B40 @ =sub_8136B44
- bl launch_c3_walk_stairs_and_run_once
-_08136B32:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08136B38: .4byte gMain
-_08136B3C: .4byte gScriptItemId
-_08136B40: .4byte sub_8136B44
- thumb_func_end sub_81369CC
-
- thumb_func_start sub_8136B44
-sub_8136B44: @ 8136B44
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08136B60 @ =gUnknown_02039304
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x50
- ldrb r1, [r2]
- cmp r1, 0x1
- beq _08136B80
- cmp r1, 0x1
- bgt _08136B64
- cmp r1, 0
- beq _08136B6E
- b _08136BAE
- .align 2, 0
-_08136B60: .4byte gUnknown_02039304
-_08136B64:
- cmp r1, 0x2
- beq _08136B98
- cmp r1, 0x3
- beq _08136BA8
- b _08136BAE
-_08136B6E:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08136B9C
-_08136B80:
- ldr r0, _08136B94 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08136BAE
- movs r0, 0x2
- strb r0, [r2]
- b _08136BAE
- .align 2, 0
-_08136B94: .4byte gPaletteFade
-_08136B98:
- bl sub_80F5BDC
-_08136B9C:
- ldr r1, [r4]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136BAE
-_08136BA8:
- ldr r0, [r0, 0x4]
- bl SetMainCallback2
-_08136BAE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136B44
-
- thumb_func_start sub_8136BB8
-sub_8136BB8: @ 8136BB8
- push {r4,lr}
- ldr r0, _08136C28 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _08136C2C @ =0x000087dc
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08136C30 @ =gPlayerParty
- adds r0, r1
- ldr r4, _08136C34 @ =gUnknown_02039304
- ldr r2, [r4]
- adds r2, 0x10
- movs r1, 0x2
- bl GetMonData
- ldr r0, [r4]
- adds r0, 0x10
- bl StringGetEnd10
- ldr r0, [r4]
- adds r0, 0x10
- ldr r1, _08136C38 @ =gOtherText_GetsAPokeBlock
- bl StringAppend
- ldr r0, _08136C3C @ =gWindowConfig_81E709C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, [r4]
- adds r0, 0x10
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1
- bl DisplayYesNoMenu
- movs r0, 0
- bl MoveMenuCursor
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136C28: .4byte gUnknown_083DFEC4
-_08136C2C: .4byte 0x000087dc
-_08136C30: .4byte gPlayerParty
-_08136C34: .4byte gUnknown_02039304
-_08136C38: .4byte gOtherText_GetsAPokeBlock
-_08136C3C: .4byte gWindowConfig_81E709C
- thumb_func_end sub_8136BB8
-
- thumb_func_start sub_8136C40
-sub_8136C40: @ 8136C40
- push {r4,lr}
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r4, r0, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bhi _08136C60
- bl MenuZeroFillScreen
- ldr r0, _08136C68 @ =gWindowConfig_81E7080
- bl BasicInitMenuWindow
-_08136C60:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08136C68: .4byte gWindowConfig_81E7080
- thumb_func_end sub_8136C40
-
- thumb_func_start sub_8136C6C
-sub_8136C6C: @ 8136C6C
- push {lr}
- ldr r0, _08136C8C @ =gWindowConfig_81E709C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r3, _08136C90 @ =gUnknown_02039304
- ldr r0, [r3]
- adds r0, 0x53
- movs r1, 0
- b _08136C9C
- .align 2, 0
-_08136C8C: .4byte gWindowConfig_81E709C
-_08136C90: .4byte gUnknown_02039304
-_08136C94:
- ldr r0, [r3]
- adds r0, 0x53
- ldrb r1, [r0]
- adds r1, 0x1
-_08136C9C:
- strb r1, [r0]
- ldr r2, [r3]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136CDC
- adds r0, r2, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08136C94
- ldr r0, _08136CD8 @ =gUnknown_02039304
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136CDC
- adds r0, r2, 0
- adds r0, 0x10
- ldrb r1, [r1]
- adds r2, 0x61
- adds r2, r1
- ldrb r2, [r2]
- bl sub_8136DC0
- b _08136CEE
- .align 2, 0
-_08136CD8: .4byte gUnknown_02039304
-_08136CDC:
- ldr r0, _08136CFC @ =gUnknown_02039304
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x10
- adds r1, 0x53
- ldrb r1, [r1]
- movs r2, 0
- bl sub_8136DC0
-_08136CEE:
- ldr r0, _08136CFC @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x10
- bl sub_8136DA0
- pop {r0}
- bx r0
- .align 2, 0
-_08136CFC: .4byte gUnknown_02039304
- thumb_func_end sub_8136C6C
-
- thumb_func_start sub_8136D00
-sub_8136D00: @ 8136D00
- push {r4,r5,lr}
- ldr r4, _08136D30 @ =gUnknown_02039304
- adds r3, r4, 0
- movs r5, 0x5
-_08136D08:
- ldr r0, [r3]
- adds r0, 0x53
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, [r3]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136D34
- adds r0, r2, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08136D3A
- b _08136D08
- .align 2, 0
-_08136D30: .4byte gUnknown_02039304
-_08136D34:
- strb r5, [r1]
- movs r0, 0
- b _08136D5A
-_08136D3A:
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x10
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r1, [r1]
- adds r2, 0x61
- adds r2, r1
- ldrb r2, [r2]
- bl sub_8136DC0
- ldr r0, [r4]
- adds r0, 0x10
- bl sub_8136DA0
- movs r0, 0x1
-_08136D5A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8136D00
-
- thumb_func_start sub_8136D60
-sub_8136D60: @ 8136D60
- push {lr}
- ldr r0, _08136D84 @ =gWindowConfig_81E709C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08136D88 @ =gOtherText_WontEat
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_08136D84: .4byte gWindowConfig_81E709C
-_08136D88: .4byte gOtherText_WontEat
- thumb_func_end sub_8136D60
-
- thumb_func_start sub_8136D8C
-sub_8136D8C: @ 8136D8C
- push {lr}
- bl MenuZeroFillScreen
- ldr r0, _08136D9C @ =gWindowConfig_81E7080
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_08136D9C: .4byte gWindowConfig_81E7080
- thumb_func_end sub_8136D8C
-
- thumb_func_start sub_8136DA0
-sub_8136DA0: @ 8136DA0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136DA0
-
- thumb_func_start sub_8136DC0
-sub_8136DC0: @ 8136DC0
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _08136DFC
- cmp r2, 0
- ble _08136DD8
- movs r0, 0
-_08136DD8:
- lsls r0, 16
- ldr r1, _08136DF4 @ =gUnknown_08406134
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _08136DF8 @ =gOtherText_WasEnhanced
- adds r0, r4, 0
- bl StringAppend
- b _08136E04
- .align 2, 0
-_08136DF4: .4byte gUnknown_08406134
-_08136DF8: .4byte gOtherText_WasEnhanced
-_08136DFC:
- ldr r1, _08136E0C @ =gOtherText_NothingChanged
- adds r0, r4, 0
- bl StringCopy
-_08136E04:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136E0C: .4byte gOtherText_NothingChanged
- thumb_func_end sub_8136DC0
-
- thumb_func_start sub_8136E10
-sub_8136E10: @ 8136E10
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
- ldr r7, _08136E3C @ =gUnknown_08406118
-_08136E1A:
- lsls r0, r4, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r6, 0
- bl GetMonData
- adds r1, r5, r4
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08136E1A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136E3C: .4byte gUnknown_08406118
- thumb_func_end sub_8136E10
-
- thumb_func_start sub_8136E40
-sub_8136E40: @ 8136E40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- cmp r0, 0xFF
- beq _08136EDC
- mov r0, r8
- adds r1, r5, 0
- bl sub_8136F74
- movs r4, 0
- mov r7, sp
-_08136E64:
- ldr r1, _08136EE8 @ =gUnknown_08406118
- lsls r0, r4, 2
- adds r0, r1
- ldr r6, [r0]
- adds r0, r5, 0
- adds r1, r6, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r7]
- ldr r1, _08136EEC @ =gUnknown_02039304
- ldr r1, [r1]
- lsls r2, r4, 1
- adds r1, 0x66
- adds r1, r2
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bge _08136E92
- movs r1, 0
-_08136E92:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08136E9C
- movs r1, 0xFF
-_08136E9C:
- strb r1, [r7]
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08136E64
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- ldrb r2, [r2, 0x6]
- adds r1, r0, r2
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08136ECE
- movs r1, 0xFF
-_08136ECE:
- mov r0, sp
- strb r1, [r0]
- adds r0, r5, 0
- movs r1, 0x30
- mov r2, sp
- bl SetMonData
-_08136EDC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136EE8: .4byte gUnknown_08406118
-_08136EEC: .4byte gUnknown_02039304
- thumb_func_end sub_8136E40
-
- thumb_func_start sub_8136EF0
-sub_8136EF0: @ 8136EF0
- push {r4,r5,lr}
- ldr r5, _08136F60 @ =gPlayerParty
- ldr r0, _08136F64 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _08136F68 @ =0x000087dc
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 2
- adds r1, r0
- ldr r0, _08136F6C @ =0x0000893e
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x64
- muls r0, r1
- adds r5, r0, r5
- ldr r4, _08136F70 @ =gUnknown_02039304
- ldr r1, [r4]
- adds r1, 0x57
- adds r0, r5, 0
- bl sub_8136E10
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- adds r1, r5, 0
- bl sub_8136E40
- ldr r1, [r4]
- adds r1, 0x5C
- adds r0, r5, 0
- bl sub_8136E10
- movs r3, 0
-_08136F36:
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x61
- adds r2, r3
- adds r1, r0, 0
- adds r1, 0x5C
- adds r1, r3
- adds r0, 0x57
- adds r0, r3
- ldrb r1, [r1]
- ldrb r0, [r0]
- subs r1, r0
- strb r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _08136F36
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136F60: .4byte gPlayerParty
-_08136F64: .4byte gUnknown_083DFEC4
-_08136F68: .4byte 0x000087dc
-_08136F6C: .4byte 0x0000893e
-_08136F70: .4byte gUnknown_02039304
- thumb_func_end sub_8136EF0
-
- thumb_func_start sub_8136F74
-sub_8136F74: @ 8136F74
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r1
- ldr r1, _08136FBC @ =gUnknown_02039304
- ldr r3, [r1]
- ldrb r1, [r0, 0x1]
- adds r2, r3, 0
- adds r2, 0x66
- strh r1, [r2]
- ldrb r2, [r0, 0x5]
- adds r1, r3, 0
- adds r1, 0x68
- strh r2, [r1]
- ldrb r1, [r0, 0x4]
- adds r2, r3, 0
- adds r2, 0x6A
- strh r1, [r2]
- ldrb r2, [r0, 0x3]
- adds r1, r3, 0
- adds r1, 0x6C
- strh r2, [r1]
- ldrb r1, [r0, 0x2]
- adds r0, r3, 0
- adds r0, 0x6E
- strh r1, [r0]
- ldr r0, _08136FC0 @ =gUnknown_02039312
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _08136FC4
- movs r0, 0x1
- b _08136FCA
- .align 2, 0
-_08136FBC: .4byte gUnknown_02039304
-_08136FC0: .4byte gUnknown_02039312
-_08136FC4:
- cmp r0, 0
- bge _08137040
- movs r0, 0xFF
-_08136FCA:
- movs r2, 0
- lsls r0, 24
- mov r9, r0
- ldr r0, _08137050 @ =gUnknown_02039304
- mov r8, r0
-_08136FD4:
- mov r0, r8
- ldr r1, [r0]
- lsls r0, r2, 24
- asrs r6, r0, 24
- lsls r7, r6, 1
- adds r1, 0x66
- adds r1, r7
- movs r2, 0
- ldrsh r4, [r1, r2]
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0813700C
- lsls r0, r5, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r5, r0, 24
-_0813700C:
- ldr r0, _08137054 @ =gUnknown_0840612C
- adds r0, r6, r0
- ldrb r1, [r0]
- mov r0, r10
- bl sub_8040A54
- lsls r0, 24
- asrs r2, r0, 24
- cmp r0, r9
- bne _08137034
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x66
- adds r0, r7
- lsls r1, r5, 24
- asrs r1, 24
- muls r1, r2
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
-_08137034:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x4
- ble _08136FD4
-_08137040:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08137050: .4byte gUnknown_02039304
-_08137054: .4byte gUnknown_0840612C
- thumb_func_end sub_8136F74
-
- thumb_func_start sub_8137058
-sub_8137058: @ 8137058
- push {lr}
- ldr r0, _0813708C @ =gPlayerParty
- ldr r1, _08137090 @ =gUnknown_083DFEC4
- ldr r2, [r1]
- ldr r3, _08137094 @ =0x000087dc
- adds r1, r2, r3
- movs r3, 0
- ldrsh r1, [r1, r3]
- lsls r1, 2
- adds r2, r1
- ldr r1, _08137098 @ =0x0000893e
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 27
- lsrs r1, 27
- movs r2, 0x64
- muls r1, r2
- adds r0, r1, r0
- movs r1, 0x30
- bl GetMonData
- cmp r0, 0xFF
- beq _0813709C
- movs r0, 0
- b _0813709E
- .align 2, 0
-_0813708C: .4byte gPlayerParty
-_08137090: .4byte gUnknown_083DFEC4
-_08137094: .4byte 0x000087dc
-_08137098: .4byte 0x0000893e
-_0813709C:
- movs r0, 0x1
-_0813709E:
- pop {r1}
- bx r1
- thumb_func_end sub_8137058
-
- thumb_func_start sub_81370A4
-sub_81370A4: @ 81370A4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_081370AC:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _081370C8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _081370D2
- cmp r5, 0
- bne _081370CC
- adds r0, r4, 0
- b _081370DE
- .align 2, 0
-_081370C8: .4byte gPlayerParty
-_081370CC:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_081370D2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _081370AC
- movs r0, 0
-_081370DE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81370A4
-
- thumb_func_start sub_81370E4
-sub_81370E4: @ 81370E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- movs r6, 0
- cmp r6, r5
- bcs _08137114
-_081370F2:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08137120 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0813710A
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0813710A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _081370F2
-_08137114:
- subs r0, r5, r6
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08137120: .4byte gPlayerParty
- thumb_func_end sub_81370E4
-
- thumb_func_start sub_8137124
-sub_8137124: @ 8137124
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8137124
-
- thumb_func_start sub_8137138
-sub_8137138: @ 8137138
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _081371C0 @ =gSpriteSheet_ConditionUpDown
- bl LoadSpriteSheet
- ldr r0, _081371C4 @ =gSpritePalette_ConditionUpDown
- bl LoadSpritePalette
- ldr r2, _081371C8 @ =gUnknown_02039304
- ldr r0, [r2]
- adds r0, 0x54
- movs r1, 0
- strb r1, [r0]
- movs r4, 0
- adds r5, r2, 0
- ldr r6, _081371CC @ =gUnknown_08406158
- adds r0, r6, 0x2
- mov r8, r0
- ldr r7, _081371D0 @ =gSprites + 0x1C
-_08137160:
- ldr r0, [r5]
- adds r0, 0x61
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081371AC
- lsls r2, r4, 2
- adds r0, r2, r6
- movs r3, 0
- ldrsh r1, [r0, r3]
- add r2, r8
- movs r0, 0
- ldrsh r2, [r2, r0]
- ldr r0, _081371D4 @ =gSpriteTemplate_840618C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _081371AC
- ldr r0, [r5]
- adds r0, 0x61
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081371A2
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, _081371D8 @ =sub_81371DC
- str r1, [r0]
-_081371A2:
- ldr r1, [r5]
- adds r1, 0x54
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081371AC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08137160
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081371C0: .4byte gSpriteSheet_ConditionUpDown
-_081371C4: .4byte gSpritePalette_ConditionUpDown
-_081371C8: .4byte gUnknown_02039304
-_081371CC: .4byte gUnknown_08406158
-_081371D0: .4byte gSprites + 0x1C
-_081371D4: .4byte gSpriteTemplate_840618C
-_081371D8: .4byte sub_81371DC
- thumb_func_end sub_8137138
-
- thumb_func_start sub_81371DC
-sub_81371DC: @ 81371DC
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x5
- bgt _081371EE
- ldrh r0, [r1, 0x26]
- subs r0, 0x2
- b _081371F6
-_081371EE:
- cmp r0, 0xB
- bgt _081371F8
- ldrh r0, [r1, 0x26]
- adds r0, 0x2
-_081371F6:
- strh r0, [r1, 0x26]
-_081371F8:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _08137218
- adds r0, r1, 0
- bl DestroySprite
- ldr r0, _0813721C @ =gUnknown_02039304
- ldr r1, [r0]
- adds r1, 0x54
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_08137218:
- pop {r0}
- bx r0
- .align 2, 0
-_0813721C: .4byte gUnknown_02039304
- thumb_func_end sub_81371DC
-
- thumb_func_start unref_sub_8137220
-unref_sub_8137220: @ 8137220
- bx lr
- thumb_func_end unref_sub_8137220
-
- thumb_func_start sub_8137224
-sub_8137224: @ 8137224
- ldr r1, _08137250 @ =gUnknown_03004330
- ldr r0, _08137254 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08137258 @ =sub_813726C
- str r1, [r0]
- ldr r1, _0813725C @ =0x02000000
- ldr r2, _08137260 @ =0x000160a8
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _08137264 @ =0x000160a9
- adds r0, r1, r3
- strb r2, [r0]
- adds r3, 0x1
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08137268 @ =0x000160ab
- adds r1, r0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_08137250: .4byte gUnknown_03004330
-_08137254: .4byte gUnknown_02024A60
-_08137258: .4byte sub_813726C
-_0813725C: .4byte 0x02000000
-_08137260: .4byte 0x000160a8
-_08137264: .4byte 0x000160a9
-_08137268: .4byte 0x000160ab
- thumb_func_end sub_8137224
-
- thumb_func_start sub_813726C
-sub_813726C: @ 813726C
- push {lr}
- ldr r2, _081372A0 @ =gUnknown_02024A64
- ldr r1, _081372A4 @ =gBitTable
- ldr r0, _081372A8 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _081372B8
- ldr r0, _081372AC @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _081372B4
- ldr r0, _081372B0 @ =gUnknown_084061A4
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _081372B8
- .align 2, 0
-_081372A0: .4byte gUnknown_02024A64
-_081372A4: .4byte gBitTable
-_081372A8: .4byte gUnknown_02024A60
-_081372AC: .4byte gUnknown_02023A60
-_081372B0: .4byte gUnknown_084061A4
-_081372B4:
- bl dp01_tbl5_exec_completed
-_081372B8:
- pop {r0}
- bx r0
- thumb_func_end sub_813726C
-
- thumb_func_start sub_81372BC
-sub_81372BC: @ 81372BC
- push {r4-r6,lr}
- ldr r1, _081372D8 @ =0x02000000
- ldr r2, _081372DC @ =0x000160a8
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bls _081372CE
- b _08137410
-_081372CE:
- lsls r0, 2
- ldr r1, _081372E0 @ =_081372E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081372D8: .4byte 0x02000000
-_081372DC: .4byte 0x000160a8
-_081372E0: .4byte _081372E4
- .align 2, 0
-_081372E4:
- .4byte _081372FC
- .4byte _0813730E
- .4byte _08137344
- .4byte _08137368
- .4byte _081373AC
- .4byte _081373E8
-_081372FC:
- ldr r0, _0813733C @ =0x000160aa
- adds r1, r5, r0
- movs r0, 0x40
- strb r0, [r1]
- ldr r2, _08137340 @ =0x000160a8
- adds r1, r5, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0813730E:
- ldr r0, _0813733C @ =0x000160aa
- adds r6, r5, r0
- ldrb r0, [r6]
- subs r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08137410
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl5_exec_completed
- ldr r2, _08137340 @ =0x000160a8
- adds r1, r5, r2
- b _0813738C
- .align 2, 0
-_0813733C: .4byte 0x000160aa
-_08137340: .4byte 0x000160a8
-_08137344:
- ldr r2, _08137364 @ =0x000160aa
- adds r6, r5, r2
- ldrb r0, [r6]
- subs r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08137410
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0
- b _0813737E
- .align 2, 0
-_08137364: .4byte 0x000160aa
-_08137368:
- ldr r2, _081373A0 @ =0x000160aa
- adds r6, r5, r2
- ldrb r0, [r6]
- subs r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08137410
- movs r0, 0x1
- movs r1, 0x9
-_0813737E:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl5_exec_completed
- ldr r0, _081373A4 @ =0x000160a8
- adds r1, r5, r0
-_0813738C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _081373A8 @ =0x000160a9
- adds r0, r5, r1
- strb r4, [r0]
- movs r0, 0x40
- strb r0, [r6]
- b _08137410
- .align 2, 0
-_081373A0: .4byte 0x000160aa
-_081373A4: .4byte 0x000160a8
-_081373A8: .4byte 0x000160a9
-_081373AC:
- ldr r2, _081373E0 @ =0x000160aa
- adds r4, r5, r2
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- bne _08137410
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl nullsub_8
- movs r0, 0x1
- movs r1, 0
- bl sub_802E3E4
- movs r0, 0x40
- strb r0, [r4]
- ldr r0, _081373E4 @ =0x000160a8
- adds r1, r5, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08137410
- .align 2, 0
-_081373E0: .4byte 0x000160aa
-_081373E4: .4byte 0x000160a8
-_081373E8:
- ldr r2, _08137418 @ =0x000160aa
- adds r1, r5, r2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08137410
- movs r0, 0x5
- bl PlaySE
- bl sub_814A7FC
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl5_exec_completed
-_08137410:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08137418: .4byte 0x000160aa
- thumb_func_end sub_81372BC
-
- thumb_func_start sub_813741C
-sub_813741C: @ 813741C
- push {lr}
- ldr r2, _08137444 @ =gSprites
- ldr r1, _08137448 @ =gUnknown_02024BE0
- ldr r0, _0813744C @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08137450 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08137440
- bl dp01_tbl5_exec_completed
-_08137440:
- pop {r0}
- bx r0
- .align 2, 0
-_08137444: .4byte gSprites
-_08137448: .4byte gUnknown_02024BE0
-_0813744C: .4byte gUnknown_02024A60
-_08137450: .4byte SpriteCallbackDummy
- thumb_func_end sub_813741C
-
- thumb_func_start sub_8137454
-sub_8137454: @ 8137454
- push {lr}
- ldr r0, _08137468 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _08137462
- bl dp01_tbl5_exec_completed
-_08137462:
- pop {r0}
- bx r0
- .align 2, 0
-_08137468: .4byte gUnknown_03004210
- thumb_func_end sub_8137454
-
- thumb_func_start sub_813746C
-sub_813746C: @ 813746C
- push {lr}
- ldr r0, _0813749C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08137496
- ldr r2, _081374A0 @ =gMain
- ldr r0, _081374A4 @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _081374A8 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_08137496:
- pop {r0}
- bx r0
- .align 2, 0
-_0813749C: .4byte gPaletteFade
-_081374A0: .4byte gMain
-_081374A4: .4byte 0x0000043d
-_081374A8: .4byte gUnknown_030042D0
- thumb_func_end sub_813746C
-
- thumb_func_start bx_wait_t5
-bx_wait_t5: @ 81374AC
- push {lr}
- ldr r0, _081374C0 @ =gUnknown_02024E6D
- ldrb r0, [r0]
- cmp r0, 0
- bne _081374BA
- bl dp01_tbl5_exec_completed
-_081374BA:
- pop {r0}
- bx r0
- .align 2, 0
-_081374C0: .4byte gUnknown_02024E6D
- thumb_func_end bx_wait_t5
-
- thumb_func_start sub_81374C4
-sub_81374C4: @ 81374C4
- push {lr}
- ldr r0, _081374EC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081374E8
- ldr r1, _081374F0 @ =gUnknown_03004330
- ldr r0, _081374F4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081374F8 @ =sub_81374FC
- str r1, [r0]
- bl nullsub_14
- bl PrepareBagForWallyTutorial
-_081374E8:
- pop {r0}
- bx r0
- .align 2, 0
-_081374EC: .4byte gPaletteFade
-_081374F0: .4byte gUnknown_03004330
-_081374F4: .4byte gUnknown_02024A60
-_081374F8: .4byte sub_81374FC
- thumb_func_end sub_81374C4
-
- thumb_func_start sub_81374FC
-sub_81374FC: @ 81374FC
- push {lr}
- ldr r0, _08137528 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0813752C @ =sub_800F808
- cmp r1, r0
- bne _08137522
- ldr r0, _08137530 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08137522
- ldr r0, _08137534 @ =gScriptItemId
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl5_exec_completed
-_08137522:
- pop {r0}
- bx r0
- .align 2, 0
-_08137528: .4byte gMain
-_0813752C: .4byte sub_800F808
-_08137530: .4byte gPaletteFade
-_08137534: .4byte gScriptItemId
- thumb_func_end sub_81374FC
-
- thumb_func_start sub_8137538
-sub_8137538: @ 8137538
- push {r4-r7,lr}
- ldr r5, _0813768C @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r4, _08137690 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r7, 0x88
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _08137568
- ldr r0, _08137694 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08137698 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08137568:
- ldrb r0, [r5]
- movs r6, 0x2
- adds r2, r6, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _08137596
- ldr r0, _08137694 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08137698 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08137596:
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08137684
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08137684
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08137626
- ldr r0, _0813769C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08137626
- ldr r1, _081376A0 @ =gUnknown_0300434C
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081376A4 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _081376A8 @ =gUnknown_03004340
- ldrb r0, [r5]
- adds r1, r6, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08137694 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08137698 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- eors r0, r6
- bl sub_804777C
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
-_08137626:
- ldr r1, _081376A0 @ =gUnknown_0300434C
- ldr r4, _0813768C @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081376A4 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _081376A8 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _08137694 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08137698 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldr r2, _081376AC @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _081376B0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081376B4 @ =sub_81376B8
- str r1, [r0]
-_08137684:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813768C: .4byte gUnknown_02024A60
-_08137690: .4byte 0x02017810
-_08137694: .4byte gUnknown_02024A6A
-_08137698: .4byte gPlayerParty
-_0813769C: .4byte gUnknown_020239F8
-_081376A0: .4byte gUnknown_0300434C
-_081376A4: .4byte gSprites
-_081376A8: .4byte gUnknown_03004340
-_081376AC: .4byte 0x02017840
-_081376B0: .4byte gUnknown_03004330
-_081376B4: .4byte sub_81376B8
- thumb_func_end sub_8137538
-
- thumb_func_start sub_81376B8
-sub_81376B8: @ 81376B8
- push {r4-r7,lr}
- movs r4, 0
- ldr r2, _0813778C @ =gSprites
- ldr r0, _08137790 @ =gUnknown_03004340
- ldr r7, _08137794 @ =gUnknown_02024A60
- ldrb r3, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08137798 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _081376DC
- movs r4, 0x1
-_081376DC:
- cmp r4, 0
- beq _08137784
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r5, _0813779C @ =0x02017810
- adds r2, r0, r5
- ldrb r1, [r2, 0x1]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08137784
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08137784
- ldrb r1, [r2]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- subs r4, 0x3
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _081377A0 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _081377A4 @ =c3_0802FDF4
- movs r1, 0xA
- bl CreateTask
- ldr r2, _081377A8 @ =gUnknown_02024A6A
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _081377AC @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl5_exec_completed
-_08137784:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813778C: .4byte gSprites
-_08137790: .4byte gUnknown_03004340
-_08137794: .4byte gUnknown_02024A60
-_08137798: .4byte SpriteCallbackDummy
-_0813779C: .4byte 0x02017810
-_081377A0: .4byte 0x000027f9
-_081377A4: .4byte c3_0802FDF4
-_081377A8: .4byte gUnknown_02024A6A
-_081377AC: .4byte gPlayerParty
- thumb_func_end sub_81376B8
-
- thumb_func_start sub_81377B0
-sub_81377B0: @ 81377B0
- push {r4-r6,lr}
- ldr r5, _081377F0 @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r6, _081377F4 @ =gUnknown_03004340
- adds r1, r0, r6
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081377F8
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _08137812
- .align 2, 0
-_081377F0: .4byte gUnknown_02024A60
-_081377F4: .4byte gUnknown_03004340
-_081377F8:
- ldr r2, _08137818 @ =gUnknown_02024A6A
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0813781C @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl5_exec_completed
-_08137812:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08137818: .4byte gUnknown_02024A6A
-_0813781C: .4byte gPlayerParty
- thumb_func_end sub_81377B0
-
- thumb_func_start bx_blink_t5
-bx_blink_t5: @ 8137820
- push {r4,lr}
- ldr r1, _0813785C @ =gUnknown_02024BE0
- ldr r0, _08137860 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _08137864 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _0813786C
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08137868 @ =gUnknown_02024E6D
- strb r3, [r0]
- bl dp01_tbl5_exec_completed
- b _08137896
- .align 2, 0
-_0813785C: .4byte gUnknown_02024BE0
-_08137860: .4byte gUnknown_02024A60
-_08137864: .4byte gSprites
-_08137868: .4byte gUnknown_02024E6D
-_0813786C:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08137890
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08137890:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_08137896:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t5
-
- thumb_func_start sub_813789C
-sub_813789C: @ 813789C
- push {r4-r6,lr}
- ldr r6, _081378F4 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _081378F8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _081378EC
- ldr r5, _081378FC @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08137900 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _08137904 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl5_exec_completed
-_081378EC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081378F4: .4byte gUnknown_02024A60
-_081378F8: .4byte 0x02017810
-_081378FC: .4byte gUnknown_02024BE0
-_08137900: .4byte gSprites
-_08137904: .4byte gUnknown_03004340
- thumb_func_end sub_813789C
-
- thumb_func_start sub_8137908
-sub_8137908: @ 8137908
- push {lr}
- ldr r2, _08137930 @ =gSprites
- ldr r1, _08137934 @ =gUnknown_02024BE0
- ldr r0, _08137938 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0813793C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0813792C
- bl dp01_tbl5_exec_completed
-_0813792C:
- pop {r0}
- bx r0
- .align 2, 0
-_08137930: .4byte gSprites
-_08137934: .4byte gUnknown_02024BE0
-_08137938: .4byte gUnknown_02024A60
-_0813793C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8137908
-
- thumb_func_start sub_8137940
-sub_8137940: @ 8137940
- push {lr}
- ldr r0, _08137964 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08137968 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0813795E
- bl dp01_tbl5_exec_completed
-_0813795E:
- pop {r0}
- bx r0
- .align 2, 0
-_08137964: .4byte gUnknown_02024A60
-_08137968: .4byte 0x02017810
- thumb_func_end sub_8137940
-
- thumb_func_start dp01_tbl5_exec_completed
-dp01_tbl5_exec_completed: @ 813796C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _081379AC @ =gUnknown_03004330
- ldr r4, _081379B0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081379B4 @ =sub_813726C
- str r1, [r0]
- ldr r0, _081379B8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081379C0
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _081379BC @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _081379D2
- .align 2, 0
-_081379AC: .4byte gUnknown_03004330
-_081379B0: .4byte gUnknown_02024A60
-_081379B4: .4byte sub_813726C
-_081379B8: .4byte gUnknown_020239F8
-_081379BC: .4byte gUnknown_02023A60
-_081379C0:
- ldr r2, _081379DC @ =gUnknown_02024A64
- ldr r1, _081379E0 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_081379D2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081379DC: .4byte gUnknown_02024A64
-_081379E0: .4byte gBitTable
- thumb_func_end dp01_tbl5_exec_completed
-
- thumb_func_start unref_sub_81379E4
-unref_sub_81379E4: @ 81379E4
- push {lr}
- ldr r0, _08137A08 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08137A0C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08137A02
- bl dp01_tbl5_exec_completed
-_08137A02:
- pop {r0}
- bx r0
- .align 2, 0
-_08137A08: .4byte gUnknown_02024A60
-_08137A0C: .4byte 0x02017810
- thumb_func_end unref_sub_81379E4
-
- thumb_func_start dp01t_00_5_getattr
-dp01t_00_5_getattr: @ 8137A10
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _08137A3C @ =gUnknown_02023A60
- ldr r0, _08137A40 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _08137A48
- ldr r0, _08137A44 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl sub_8137A84
- adds r6, r0, 0
- b _08137A6A
- .align 2, 0
-_08137A3C: .4byte gUnknown_02023A60
-_08137A40: .4byte gUnknown_02024A60
-_08137A44: .4byte gUnknown_02024A6A
-_08137A48:
- ldrb r4, [r1]
- movs r5, 0
-_08137A4C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08137A62
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl sub_8137A84
- adds r6, r0
-_08137A62:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _08137A4C
-_08137A6A:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl5_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_5_getattr
-
- thumb_func_start sub_8137A84
-sub_8137A84: @ 8137A84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _08137AB8 @ =gUnknown_02023A60
- ldr r3, _08137ABC @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _08137AAE
- bl _0813821A
-_08137AAE:
- lsls r0, 2
- ldr r1, _08137AC0 @ =_08137AC4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08137AB8: .4byte gUnknown_02023A60
-_08137ABC: .4byte gUnknown_02024A60
-_08137AC0: .4byte _08137AC4
- .align 2, 0
-_08137AC4:
- .4byte _08137BB4
- .4byte _08137DD8
- .4byte _08137DE8
- .4byte _08137DF8
- .4byte _08137E60
- .4byte _08137E60
- .4byte _08137E60
- .4byte _08137E60
- .4byte _08137E7C
- .4byte _08137EB8
- .4byte _08137EB8
- .4byte _08137EB8
- .4byte _08137EB8
- .4byte _0813821A
- .4byte _0813821A
- .4byte _0813821A
- .4byte _0813821A
- .4byte _08137ED4
- .4byte _08137EE4
- .4byte _08137F14
- .4byte _08137F24
- .4byte _08137F34
- .4byte _08137F44
- .4byte _08137F54
- .4byte _08137F64
- .4byte _08137F74
- .4byte _08137F84
- .4byte _08137F94
- .4byte _08137FA4
- .4byte _08137FB4
- .4byte _08137FC4
- .4byte _08137FD4
- .4byte _08138024
- .4byte _08138034
- .4byte _08138044
- .4byte _08138054
- .4byte _08138064
- .4byte _08138074
- .4byte _08138084
- .4byte _08138094
- .4byte _081380A4
- .4byte _081380D8
- .4byte _081380E8
- .4byte _081380F8
- .4byte _08138108
- .4byte _08138118
- .4byte _08138128
- .4byte _08138138
- .4byte _08138148
- .4byte _08138168
- .4byte _08138178
- .4byte _08138188
- .4byte _08138198
- .4byte _081381A8
- .4byte _081381B8
- .4byte _081381C8
- .4byte _081381D8
- .4byte _081381E8
- .4byte _081381F8
- .4byte _08138208
-_08137BB4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08137DC8 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_08137C00:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08137C00
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08137DC8 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _08137DCC @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _08137DD0 @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _08137DD4 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_08137DB8:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _08137DB8
- b _0813821A
- .align 2, 0
-_08137DC8: .4byte gPlayerParty
-_08137DCC: .4byte 0xfffffc1f
-_08137DD0: .4byte 0xfff07fff
-_08137DD4: .4byte 0xfffffe0f
-_08137DD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137DE4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- b _08138152
- .align 2, 0
-_08137DE4: .4byte gPlayerParty
-_08137DE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137DF4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- b _08138152
- .align 2, 0
-_08137DF4: .4byte gPlayerParty
-_08137DF8:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08137E5C @ =gPlayerParty
- adds r4, r1, r0
- mov r8, r9
-_08137E0E:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _08137E0E
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137E5C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_08137E4C:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _08137E4C
- b _0813821A
- .align 2, 0
-_08137E5C: .4byte gPlayerParty
-_08137E60:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137E78 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _08138152
- .align 2, 0
-_08137E78: .4byte gPlayerParty
-_08137E7C:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _08137EB4 @ =gPlayerParty
- mov r8, r2
-_08137E88:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _08137E88
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137EB4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _0813821A
- .align 2, 0
-_08137EB4: .4byte gPlayerParty
-_08137EB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137ED0 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _08138212
- .align 2, 0
-_08137ED0: .4byte gPlayerParty
-_08137ED4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137EE0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- b _08137EEE
- .align 2, 0
-_08137EE0: .4byte gPlayerParty
-_08137EE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x19
-_08137EEE:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _0813821A
- .align 2, 0
-_08137F10: .4byte gPlayerParty
-_08137F14:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F20 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1A
- b _08138212
- .align 2, 0
-_08137F20: .4byte gPlayerParty
-_08137F24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F30 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1B
- b _08138212
- .align 2, 0
-_08137F30: .4byte gPlayerParty
-_08137F34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F40 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1C
- b _08138212
- .align 2, 0
-_08137F40: .4byte gPlayerParty
-_08137F44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F50 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1D
- b _08138212
- .align 2, 0
-_08137F50: .4byte gPlayerParty
-_08137F54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F60 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1E
- b _08138212
- .align 2, 0
-_08137F60: .4byte gPlayerParty
-_08137F64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F70 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1F
- b _08138212
- .align 2, 0
-_08137F70: .4byte gPlayerParty
-_08137F74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F80 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x20
- b _08138212
- .align 2, 0
-_08137F80: .4byte gPlayerParty
-_08137F84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F90 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x22
- b _08138212
- .align 2, 0
-_08137F90: .4byte gPlayerParty
-_08137F94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137FA0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x23
- b _08138212
- .align 2, 0
-_08137FA0: .4byte gPlayerParty
-_08137FA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137FB0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x24
- b _08138212
- .align 2, 0
-_08137FB0: .4byte gPlayerParty
-_08137FB4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137FC0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x25
- b _08138212
- .align 2, 0
-_08137FC0: .4byte gPlayerParty
-_08137FC4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137FD0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x26
- b _08138212
- .align 2, 0
-_08137FD0: .4byte gPlayerParty
-_08137FD4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08138020 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _0813821A
- .align 2, 0
-_08138020: .4byte gPlayerParty
-_08138024:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138030 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x27
- b _08138212
- .align 2, 0
-_08138030: .4byte gPlayerParty
-_08138034:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138040 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x28
- b _08138212
- .align 2, 0
-_08138040: .4byte gPlayerParty
-_08138044:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138050 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x29
- b _08138212
- .align 2, 0
-_08138050: .4byte gPlayerParty
-_08138054:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138060 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2A
- b _08138212
- .align 2, 0
-_08138060: .4byte gPlayerParty
-_08138064:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138070 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2B
- b _08138212
- .align 2, 0
-_08138070: .4byte gPlayerParty
-_08138074:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138080 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- b _08138212
- .align 2, 0
-_08138080: .4byte gPlayerParty
-_08138084:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138090 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- b _081380AE
- .align 2, 0
-_08138090: .4byte gPlayerParty
-_08138094:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081380A0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x9
- b _08138152
- .align 2, 0
-_081380A0: .4byte gPlayerParty
-_081380A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081380D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x37
-_081380AE:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _0813821A
- .align 2, 0
-_081380D4: .4byte gPlayerParty
-_081380D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081380E4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- b _08138212
- .align 2, 0
-_081380E4: .4byte gPlayerParty
-_081380E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081380F4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- b _08138152
- .align 2, 0
-_081380F4: .4byte gPlayerParty
-_081380F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138104 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- b _08138152
- .align 2, 0
-_08138104: .4byte gPlayerParty
-_08138108:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138114 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3B
- b _08138152
- .align 2, 0
-_08138114: .4byte gPlayerParty
-_08138118:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138124 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3C
- b _08138152
- .align 2, 0
-_08138124: .4byte gPlayerParty
-_08138128:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138134 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3D
- b _08138152
- .align 2, 0
-_08138134: .4byte gPlayerParty
-_08138138:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138144 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3E
- b _08138152
- .align 2, 0
-_08138144: .4byte gPlayerParty
-_08138148:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138164 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3F
-_08138152:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _0813821A
- .align 2, 0
-_08138164: .4byte gPlayerParty
-_08138168:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138174 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- b _08138212
- .align 2, 0
-_08138174: .4byte gPlayerParty
-_08138178:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138184 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- b _08138212
- .align 2, 0
-_08138184: .4byte gPlayerParty
-_08138188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138194 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- b _08138212
- .align 2, 0
-_08138194: .4byte gPlayerParty
-_08138198:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381A4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- b _08138212
- .align 2, 0
-_081381A4: .4byte gPlayerParty
-_081381A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381B4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- b _08138212
- .align 2, 0
-_081381B4: .4byte gPlayerParty
-_081381B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381C4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x30
- b _08138212
- .align 2, 0
-_081381C4: .4byte gPlayerParty
-_081381C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x32
- b _08138212
- .align 2, 0
-_081381D4: .4byte gPlayerParty
-_081381D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381E4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x33
- b _08138212
- .align 2, 0
-_081381E4: .4byte gPlayerParty
-_081381E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381F4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x34
- b _08138212
- .align 2, 0
-_081381F4: .4byte gPlayerParty
-_081381F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138204 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x35
- b _08138212
- .align 2, 0
-_08138204: .4byte gPlayerParty
-_08138208:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813822C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x36
-_08138212:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_0813821A:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813822C: .4byte gPlayerParty
- thumb_func_end sub_8137A84
-
- thumb_func_start sub_8138230
-sub_8138230: @ 8138230
- push {lr}
- bl sub_802ECF0
- pop {r0}
- bx r0
- thumb_func_end sub_8138230
-
- thumb_func_start sub_813823C
-sub_813823C: @ 813823C
- push {r4,r5,lr}
- ldr r1, _08138260 @ =gUnknown_02023A60
- ldr r0, _08138264 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0813826C
- ldr r0, _08138268 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8138294
- b _0813828A
- .align 2, 0
-_08138260: .4byte gUnknown_02023A60
-_08138264: .4byte gUnknown_02024A60
-_08138268: .4byte gUnknown_02024A6A
-_0813826C:
- ldrb r4, [r1]
- movs r5, 0
-_08138270:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0813827E
- adds r0, r5, 0
- bl sub_8138294
-_0813827E:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08138270
-_0813828A:
- bl dp01_tbl5_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813823C
-
- thumb_func_start sub_8138294
-sub_8138294: @ 8138294
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _081382CC @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, _081382D0 @ =gUnknown_02023A63
- adds r3, r0, r2
- adds r6, r3, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r2, 0
- cmp r0, 0x3B
- bls _081382C0
- bl _08138C5A
-_081382C0:
- lsls r0, 2
- ldr r1, _081382D4 @ =_081382D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081382CC: .4byte gUnknown_02024A60
-_081382D0: .4byte gUnknown_02023A63
-_081382D4: .4byte _081382D8
- .align 2, 0
-_081382D8:
- .4byte _081383C8
- .4byte _08138560
- .4byte _08138580
- .4byte _081385A0
- .4byte _081385F8
- .4byte _081385F8
- .4byte _081385F8
- .4byte _081385F8
- .4byte _08138620
- .4byte _08138684
- .4byte _08138684
- .4byte _08138684
- .4byte _08138684
- .4byte _08138C5A
- .4byte _08138C5A
- .4byte _08138C5A
- .4byte _08138C5A
- .4byte _081386B4
- .4byte _081386D4
- .4byte _081386F4
- .4byte _08138714
- .4byte _08138734
- .4byte _08138754
- .4byte _08138774
- .4byte _08138794
- .4byte _081387B4
- .4byte _081387D4
- .4byte _081387F4
- .4byte _08138814
- .4byte _08138834
- .4byte _08138854
- .4byte _08138874
- .4byte _081388E4
- .4byte _08138904
- .4byte _08138924
- .4byte _08138944
- .4byte _08138964
- .4byte _08138984
- .4byte _081389A4
- .4byte _081389C4
- .4byte _081389E4
- .4byte _08138A04
- .4byte _08138A24
- .4byte _08138A44
- .4byte _08138A64
- .4byte _08138A84
- .4byte _08138AA4
- .4byte _08138AC4
- .4byte _08138AE4
- .4byte _08138B04
- .4byte _08138B24
- .4byte _08138B44
- .4byte _08138B64
- .4byte _08138B84
- .4byte _08138BA4
- .4byte _08138BC4
- .4byte _08138BE4
- .4byte _08138C04
- .4byte _08138C24
- .4byte _08138C44
-_081383C8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0813855C @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r6, 0
- bl SetMonData
- adds r2, r6, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r6
- mov r10, r0
- adds r0, r6, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r6, 0x2
- str r0, [sp, 0x4]
- adds r0, r6, 0x4
- str r0, [sp, 0x8]
- adds r0, r6, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r7, r6, 0
- adds r7, 0x24
- adds r4, r6, 0
- adds r4, 0xC
-_0813842E:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r7, 0
- bl SetMonData
- adds r7, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0813842E
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0813855C @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r6, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r6, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813855C: .4byte gPlayerParty
-_08138560:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138578 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0813857C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138578: .4byte gPlayerParty
-_0813857C: .4byte gUnknown_02024A60
-_08138580:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138598 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0813859C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138598: .4byte gPlayerParty
-_0813859C: .4byte gUnknown_02024A60
-_081385A0:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r3
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _081385F4 @ =gPlayerParty
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_081385BA:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _081385BA
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081385F4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081385F4: .4byte gPlayerParty
-_081385F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138614 @ =gPlayerParty
- adds r0, r1
- ldr r3, _08138618 @ =gUnknown_02023A60
- ldr r1, _0813861C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0813869C
- .align 2, 0
-_08138614: .4byte gPlayerParty
-_08138618: .4byte gUnknown_02023A60
-_0813861C: .4byte gUnknown_02024A60
-_08138620:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0813867C @ =gPlayerParty
- adds r4, r0
- ldr r5, _08138680 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x11
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813867C: .4byte gPlayerParty
-_08138680: .4byte gUnknown_02024A60
-_08138684:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081386A8 @ =gPlayerParty
- adds r0, r1
- ldr r3, _081386AC @ =gUnknown_02023A60
- ldr r1, _081386B0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0813869C:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081386A8: .4byte gPlayerParty
-_081386AC: .4byte gUnknown_02023A60
-_081386B0: .4byte gUnknown_02024A60
-_081386B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081386CC @ =gPlayerParty
- adds r0, r1
- ldr r1, _081386D0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081386CC: .4byte gPlayerParty
-_081386D0: .4byte gUnknown_02024A60
-_081386D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081386EC @ =gPlayerParty
- adds r0, r1
- ldr r1, _081386F0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081386EC: .4byte gPlayerParty
-_081386F0: .4byte gUnknown_02024A60
-_081386F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813870C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138710 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813870C: .4byte gPlayerParty
-_08138710: .4byte gUnknown_02024A60
-_08138714:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813872C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138730 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813872C: .4byte gPlayerParty
-_08138730: .4byte gUnknown_02024A60
-_08138734:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813874C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138750 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813874C: .4byte gPlayerParty
-_08138750: .4byte gUnknown_02024A60
-_08138754:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813876C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138770 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813876C: .4byte gPlayerParty
-_08138770: .4byte gUnknown_02024A60
-_08138774:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813878C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138790 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813878C: .4byte gPlayerParty
-_08138790: .4byte gUnknown_02024A60
-_08138794:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081387AC @ =gPlayerParty
- adds r0, r1
- ldr r1, _081387B0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081387AC: .4byte gPlayerParty
-_081387B0: .4byte gUnknown_02024A60
-_081387B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081387CC @ =gPlayerParty
- adds r0, r1
- ldr r1, _081387D0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081387CC: .4byte gPlayerParty
-_081387D0: .4byte gUnknown_02024A60
-_081387D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081387EC @ =gPlayerParty
- adds r0, r1
- ldr r1, _081387F0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081387EC: .4byte gPlayerParty
-_081387F0: .4byte gUnknown_02024A60
-_081387F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813880C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138810 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813880C: .4byte gPlayerParty
-_08138810: .4byte gUnknown_02024A60
-_08138814:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813882C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138830 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813882C: .4byte gPlayerParty
-_08138830: .4byte gUnknown_02024A60
-_08138834:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813884C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138850 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813884C: .4byte gPlayerParty
-_08138850: .4byte gUnknown_02024A60
-_08138854:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813886C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138870 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813886C: .4byte gPlayerParty
-_08138870: .4byte gUnknown_02024A60
-_08138874:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _081388DC @ =gPlayerParty
- adds r4, r0
- ldr r5, _081388E0 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x27
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _08138994
- .align 2, 0
-_081388DC: .4byte gPlayerParty
-_081388E0: .4byte gUnknown_02024A60
-_081388E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081388FC @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138900 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081388FC: .4byte gPlayerParty
-_08138900: .4byte gUnknown_02024A60
-_08138904:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813891C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138920 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813891C: .4byte gPlayerParty
-_08138920: .4byte gUnknown_02024A60
-_08138924:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813893C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138940 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813893C: .4byte gPlayerParty
-_08138940: .4byte gUnknown_02024A60
-_08138944:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813895C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138960 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813895C: .4byte gPlayerParty
-_08138960: .4byte gUnknown_02024A60
-_08138964:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813897C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138980 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813897C: .4byte gPlayerParty
-_08138980: .4byte gUnknown_02024A60
-_08138984:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813899C @ =gPlayerParty
- adds r0, r1
- ldr r1, _081389A0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_08138994:
- movs r1, 0x2C
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813899C: .4byte gPlayerParty
-_081389A0: .4byte gUnknown_02024A60
-_081389A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081389BC @ =gPlayerParty
- adds r0, r1
- ldr r1, _081389C0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081389BC: .4byte gPlayerParty
-_081389C0: .4byte gUnknown_02024A60
-_081389C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081389DC @ =gPlayerParty
- adds r0, r1
- ldr r1, _081389E0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081389DC: .4byte gPlayerParty
-_081389E0: .4byte gUnknown_02024A60
-_081389E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081389FC @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138A00 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081389FC: .4byte gPlayerParty
-_08138A00: .4byte gUnknown_02024A60
-_08138A04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A1C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138A20 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A1C: .4byte gPlayerParty
-_08138A20: .4byte gUnknown_02024A60
-_08138A24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A3C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138A40 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A3C: .4byte gPlayerParty
-_08138A40: .4byte gUnknown_02024A60
-_08138A44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A5C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138A60 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A5C: .4byte gPlayerParty
-_08138A60: .4byte gUnknown_02024A60
-_08138A64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A7C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138A80 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A7C: .4byte gPlayerParty
-_08138A80: .4byte gUnknown_02024A60
-_08138A84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A9C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138AA0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A9C: .4byte gPlayerParty
-_08138AA0: .4byte gUnknown_02024A60
-_08138AA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138ABC @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138AC0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138ABC: .4byte gPlayerParty
-_08138AC0: .4byte gUnknown_02024A60
-_08138AC4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138ADC @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138AE0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138ADC: .4byte gPlayerParty
-_08138AE0: .4byte gUnknown_02024A60
-_08138AE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138AFC @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138B00 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138AFC: .4byte gPlayerParty
-_08138B00: .4byte gUnknown_02024A60
-_08138B04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B1C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138B20 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B1C: .4byte gPlayerParty
-_08138B20: .4byte gUnknown_02024A60
-_08138B24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B3C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138B40 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B3C: .4byte gPlayerParty
-_08138B40: .4byte gUnknown_02024A60
-_08138B44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B5C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138B60 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B5C: .4byte gPlayerParty
-_08138B60: .4byte gUnknown_02024A60
-_08138B64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B7C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138B80 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B7C: .4byte gPlayerParty
-_08138B80: .4byte gUnknown_02024A60
-_08138B84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B9C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138BA0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B9C: .4byte gPlayerParty
-_08138BA0: .4byte gUnknown_02024A60
-_08138BA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138BBC @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138BC0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138BBC: .4byte gPlayerParty
-_08138BC0: .4byte gUnknown_02024A60
-_08138BC4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138BDC @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138BE0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138BDC: .4byte gPlayerParty
-_08138BE0: .4byte gUnknown_02024A60
-_08138BE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138BFC @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138C00 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138BFC: .4byte gPlayerParty
-_08138C00: .4byte gUnknown_02024A60
-_08138C04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138C1C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138C20 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138C1C: .4byte gPlayerParty
-_08138C20: .4byte gUnknown_02024A60
-_08138C24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138C3C @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138C40 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138C3C: .4byte gPlayerParty
-_08138C40: .4byte gUnknown_02024A60
-_08138C44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138C84 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08138C88 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_08138C5A:
- ldr r2, _08138C8C @ =gUnknown_02024A6A
- ldr r0, _08138C88 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _08138C84 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08138C84: .4byte gPlayerParty
-_08138C88: .4byte gUnknown_02024A60
-_08138C8C: .4byte gUnknown_02024A6A
- thumb_func_end sub_8138294
-
- thumb_func_start sub_8138C90
-sub_8138C90: @ 8138C90
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138C90
-
- thumb_func_start sub_8138C9C
-sub_8138C9C: @ 8138C9C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138C9C
-
- thumb_func_start sub_8138CA8
-sub_8138CA8: @ 8138CA8
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138CA8
-
- thumb_func_start sub_8138CB4
-sub_8138CB4: @ 8138CB4
- push {r4-r6,lr}
- ldr r0, _08138CE0 @ =gUnknown_02023A60
- ldr r6, _08138CE4 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08138CF0
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x1
- bl move_anim_start_t4
- ldr r0, _08138CE8 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08138CEC @ =sub_813789C
- str r0, [r1]
- b _08138D26
- .align 2, 0
-_08138CE0: .4byte gUnknown_02023A60
-_08138CE4: .4byte gUnknown_02024A60
-_08138CE8: .4byte gUnknown_03004330
-_08138CEC: .4byte sub_813789C
-_08138CF0:
- ldr r5, _08138D2C @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08138D30 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _08138D34 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl5_exec_completed
-_08138D26:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08138D2C: .4byte gUnknown_02024BE0
-_08138D30: .4byte gSprites
-_08138D34: .4byte gUnknown_03004340
- thumb_func_end sub_8138CB4
-
- thumb_func_start sub_8138D38
-sub_8138D38: @ 8138D38
- push {r4-r6,lr}
- ldr r4, _08138DE0 @ =gUnknown_02024A60
- ldrb r1, [r4]
- movs r0, 0x2
- bl sub_8031AF4
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x2
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _08138DE4 @ =gUnknown_02024E8C
- ldr r1, _08138DE8 @ =gTrainerBackPicCoords
- ldrb r1, [r1, 0x8]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, _08138DEC @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r1, r6
- strb r0, [r1]
- ldr r5, _08138DF0 @ =gSprites
- ldrb r3, [r4]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08138DF4 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, 0x1C
- adds r0, r5
- ldr r1, _08138DF8 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _08138DFC @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08138E00 @ =sub_813741C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08138DE0: .4byte gUnknown_02024A60
-_08138DE4: .4byte gUnknown_02024E8C
-_08138DE8: .4byte gTrainerBackPicCoords
-_08138DEC: .4byte gUnknown_02024BE0
-_08138DF0: .4byte gSprites
-_08138DF4: .4byte 0x0000fffe
-_08138DF8: .4byte sub_80313A0
-_08138DFC: .4byte gUnknown_03004330
-_08138E00: .4byte sub_813741C
- thumb_func_end sub_8138D38
-
- thumb_func_start sub_8138E04
-sub_8138E04: @ 8138E04
- push {r4-r6,lr}
- ldr r4, _08138EAC @ =gUnknown_02024A60
- ldrb r1, [r4]
- movs r0, 0x2
- bl sub_8031AF4
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x2
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _08138EB0 @ =gUnknown_02024E8C
- ldr r1, _08138EB4 @ =gTrainerBackPicCoords
- ldrb r1, [r1, 0x8]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, _08138EB8 @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r1, r6
- strb r0, [r1]
- ldr r5, _08138EBC @ =gSprites
- ldrb r3, [r4]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08138EC0 @ =0x0000ffa0
- strh r1, [r0, 0x24]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, 0x1C
- adds r0, r5
- ldr r1, _08138EC4 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _08138EC8 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08138ECC @ =sub_8137908
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08138EAC: .4byte gUnknown_02024A60
-_08138EB0: .4byte gUnknown_02024E8C
-_08138EB4: .4byte gTrainerBackPicCoords
-_08138EB8: .4byte gUnknown_02024BE0
-_08138EBC: .4byte gSprites
-_08138EC0: .4byte 0x0000ffa0
-_08138EC4: .4byte sub_80313A0
-_08138EC8: .4byte gUnknown_03004330
-_08138ECC: .4byte sub_8137908
- thumb_func_end sub_8138E04
-
- thumb_func_start sub_8138ED0
-sub_8138ED0: @ 8138ED0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138ED0
-
- thumb_func_start sub_8138EDC
-sub_8138EDC: @ 8138EDC
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138EDC
-
- thumb_func_start sub_8138EE8
-sub_8138EE8: @ 8138EE8
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138EE8
-
- thumb_func_start sub_8138EF4
-sub_8138EF4: @ 8138EF4
- push {r4,r5,lr}
- ldr r1, _08138F30 @ =0x02017840
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, _08138F34 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, _08138F38 @ =gUnknown_02024A60
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _08138F3C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08138F40 @ =bx_wait_t5
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08138F30: .4byte 0x02017840
-_08138F34: .4byte gUnknown_02024E6D
-_08138F38: .4byte gUnknown_02024A60
-_08138F3C: .4byte gUnknown_03004330
-_08138F40: .4byte bx_wait_t5
- thumb_func_end sub_8138EF4
-
- thumb_func_start sub_8138F44
-sub_8138F44: @ 8138F44
- push {r4,r5,lr}
- ldr r1, _08138F88 @ =gUnknown_02023A60
- ldr r5, _08138F8C @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _08138F90 @ =0x02017840
- strb r1, [r0, 0x8]
- ldr r1, _08138F94 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _08138F98 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08138F9C @ =bx_wait_t5
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08138F88: .4byte gUnknown_02023A60
-_08138F8C: .4byte gUnknown_02024A60
-_08138F90: .4byte 0x02017840
-_08138F94: .4byte gUnknown_02024E6D
-_08138F98: .4byte gUnknown_03004330
-_08138F9C: .4byte bx_wait_t5
- thumb_func_end sub_8138F44
-
- thumb_func_start sub_8138FA0
-sub_8138FA0: @ 8138FA0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138FA0
-
- thumb_func_start sub_8138FAC
-sub_8138FAC: @ 8138FAC
- push {r4-r6,lr}
- ldr r0, _08139080 @ =gUnknown_02023A60
- mov r12, r0
- ldr r6, _08139084 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _08139088 @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _0813908C @ =gUnknown_0202F7BC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _08139090 @ =gUnknown_0202F7B8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _08139094 @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08139098 @ =gUnknown_0202F7C0
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _0813909C @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _081390A0 @ =gUnknown_02024E70
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _081390A4
- bl dp01_tbl5_exec_completed
- b _081390BE
- .align 2, 0
-_08139080: .4byte gUnknown_02023A60
-_08139084: .4byte gUnknown_02024A60
-_08139088: .4byte gUnknown_0202F7C4
-_0813908C: .4byte gUnknown_0202F7BC
-_08139090: .4byte gUnknown_0202F7B8
-_08139094: .4byte gUnknown_0202F7BE
-_08139098: .4byte gUnknown_0202F7C0
-_0813909C: .4byte gUnknown_0202F7B4
-_081390A0: .4byte gUnknown_02024E70
-_081390A4:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _081390C4 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _081390C8 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081390CC @ =sub_81390D0
- str r1, [r0]
-_081390BE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081390C4: .4byte 0x02017810
-_081390C8: .4byte gUnknown_03004330
-_081390CC: .4byte sub_81390D0
- thumb_func_end sub_8138FAC
-
- thumb_func_start sub_81390D0
-sub_81390D0: @ 81390D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, _0813910C @ =gUnknown_02023A60
- ldr r5, _08139110 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r8, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r7, r2, 0x2
- adds r1, r7
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _08139114 @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _08139150
- cmp r2, 0x1
- bgt _08139118
- cmp r2, 0
- beq _08139122
- b _081391FC
- .align 2, 0
-_0813910C: .4byte gUnknown_02023A60
-_08139110: .4byte gUnknown_02024A60
-_08139114: .4byte 0x02017810
-_08139118:
- cmp r2, 0x2
- beq _08139176
- cmp r2, 0x3
- beq _081391C4
- b _081391FC
-_08139122:
- lsls r0, r3, 2
- adds r1, r6, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08139140
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08139140:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _081391FC
-_08139150:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _081391FC
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl move_anim_start_t1
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _081391FC
-_08139176:
- ldr r0, _081391BC @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _081391C0 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _081391FC
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r1, r6, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081391AA
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_081391AA:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x3
- strb r0, [r1, 0x4]
- b _081391FC
- .align 2, 0
-_081391BC: .4byte gUnknown_0202F7AC
-_081391C0: .4byte gUnknown_0202F7B1
-_081391C4:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _081391FC
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r8
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r2, r7
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl5_exec_completed
-_081391FC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81390D0
-
- thumb_func_start sub_8139208
-sub_8139208: @ 8139208
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08139254 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08139258 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r5, _0813925C @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r0, 9
- ldr r1, _08139260 @ =gUnknown_02023A62
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x2
- bne _0813922A
- bl sub_814A7FC
-_0813922A:
- ldrh r0, [r4]
- bl sub_8120AA8
- ldr r0, _08139264 @ =gUnknown_03004210
- ldr r1, _08139268 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _0813926C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139270 @ =sub_8137454
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139254: .4byte gUnknown_030042A4
-_08139258: .4byte gUnknown_030042A0
-_0813925C: .4byte gUnknown_02024A60
-_08139260: .4byte gUnknown_02023A62
-_08139264: .4byte gUnknown_03004210
-_08139268: .4byte gUnknown_020238CC
-_0813926C: .4byte gUnknown_03004330
-_08139270: .4byte sub_8137454
- thumb_func_end sub_8139208
-
- thumb_func_start dp01t_11_5_message_for_player_only
-dp01t_11_5_message_for_player_only: @ 8139274
- push {lr}
- ldr r0, _0813928C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08139290
- bl sub_8139208
- b _08139294
- .align 2, 0
-_0813928C: .4byte gUnknown_02024A60
-_08139290:
- bl dp01_tbl5_exec_completed
-_08139294:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_5_message_for_player_only
-
- thumb_func_start sub_8139298
-sub_8139298: @ 8139298
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0813934C @ =gUnknown_030042A4
- movs r2, 0
- strh r2, [r0]
- ldr r1, _08139350 @ =gUnknown_030042A0
- movs r0, 0xA0
- strh r0, [r1]
- ldr r4, _08139354 @ =gUnknown_03004210
- movs r5, 0
- strb r2, [r4, 0x6]
- movs r0, 0x1B
- str r0, [sp]
- movs r0, 0x12
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillWindowRect_DefaultPalette
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x24
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0x23
- bl FillWindowRect_DefaultPalette
- ldr r1, _08139358 @ =gUnknown_03004330
- ldr r0, _0813935C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139360 @ =sub_81372BC
- str r1, [r0]
- ldr r1, _08139364 @ =gUnknown_08400CF3
- movs r2, 0xC8
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x12
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08139368 @ =0x0000ffff
- ldr r3, _0813936C @ =0x00002d9f
- str r5, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- movs r4, 0
-_0813930C:
- lsls r0, r4, 24
- lsrs r0, 24
- bl nullsub_8
- adds r4, 0x1
- cmp r4, 0x3
- ble _0813930C
- movs r0, 0
- movs r1, 0
- bl sub_802E3E4
- ldr r0, _08139370 @ =gUnknown_08400CCC
- bl get_battle_strings_
- ldr r4, _08139354 @ =gUnknown_03004210
- ldr r1, _08139374 @ =gUnknown_020238CC
- movs r2, 0xDC
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x2
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813934C: .4byte gUnknown_030042A4
-_08139350: .4byte gUnknown_030042A0
-_08139354: .4byte gUnknown_03004210
-_08139358: .4byte gUnknown_03004330
-_0813935C: .4byte gUnknown_02024A60
-_08139360: .4byte sub_81372BC
-_08139364: .4byte gUnknown_08400CF3
-_08139368: .4byte 0x0000ffff
-_0813936C: .4byte 0x00002d9f
-_08139370: .4byte gUnknown_08400CCC
-_08139374: .4byte gUnknown_020238CC
- thumb_func_end sub_8139298
-
- thumb_func_start sub_8139378
-sub_8139378: @ 8139378
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139378
-
- thumb_func_start sub_8139384
-sub_8139384: @ 8139384
- push {r4,r5,lr}
- ldr r5, _08139398 @ =0x02000000
- ldr r0, _0813939C @ =0x000160a9
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0
- beq _081393A0
- cmp r0, 0x1
- beq _081393B2
- b _081393DE
- .align 2, 0
-_08139398: .4byte 0x02000000
-_0813939C: .4byte 0x000160a9
-_081393A0:
- bl sub_80304A8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r0, _081393E4 @ =0x000160ab
- adds r1, r5, r0
- movs r0, 0x50
- strb r0, [r1]
-_081393B2:
- ldr r1, _081393E8 @ =0x02000000
- ldr r0, _081393E4 @ =0x000160ab
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _081393DE
- bl sub_814A7FC
- movs r0, 0x5
- bl PlaySE
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl5_exec_completed
-_081393DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081393E4: .4byte 0x000160ab
-_081393E8: .4byte 0x02000000
- thumb_func_end sub_8139384
-
- thumb_func_start sub_81393EC
-sub_81393EC: @ 81393EC
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813941C @ =gUnknown_03004330
- ldr r2, _08139420 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139424 @ =sub_81374C4
- str r1, [r0]
- ldr r1, _08139428 @ =gUnknown_02024E6C
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0813941C: .4byte gUnknown_03004330
-_08139420: .4byte gUnknown_02024A60
-_08139424: .4byte sub_81374C4
-_08139428: .4byte gUnknown_02024E6C
- thumb_func_end sub_81393EC
-
- thumb_func_start sub_813942C
-sub_813942C: @ 813942C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_813942C
-
- thumb_func_start sub_8139438
-sub_8139438: @ 8139438
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139438
-
- thumb_func_start sub_8139444
-sub_8139444: @ 8139444
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _081394BC @ =gUnknown_02023A60
- ldr r0, _081394C0 @ =gUnknown_02024A60
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _081394C4 @ =0x00007fff
- cmp r7, r0
- beq _081394D4
- ldr r6, _081394C8 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _081394CC @ =gPlayerParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _081394D0 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _0813950E
- .align 2, 0
-_081394BC: .4byte gUnknown_02023A60
-_081394C0: .4byte gUnknown_02024A60
-_081394C4: .4byte 0x00007fff
-_081394C8: .4byte gUnknown_02024A6A
-_081394CC: .4byte gPlayerParty
-_081394D0: .4byte gUnknown_03004340
-_081394D4:
- ldr r1, _0813952C @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08139530 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r4, _08139534 @ =gUnknown_03004340
- adds r1, r0, r4
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
- mov r1, r9
- ldrb r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_80440EC
-_0813950E:
- ldr r1, _08139538 @ =gUnknown_03004330
- ldr r0, _0813953C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139540 @ =sub_81377B0
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813952C: .4byte gUnknown_02024A6A
-_08139530: .4byte gPlayerParty
-_08139534: .4byte gUnknown_03004340
-_08139538: .4byte gUnknown_03004330
-_0813953C: .4byte gUnknown_02024A60
-_08139540: .4byte sub_81377B0
- thumb_func_end sub_8139444
-
- thumb_func_start sub_8139544
-sub_8139544: @ 8139544
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139544
-
- thumb_func_start sub_8139550
-sub_8139550: @ 8139550
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139550
-
- thumb_func_start sub_813955C
-sub_813955C: @ 813955C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_813955C
-
- thumb_func_start sub_8139568
-sub_8139568: @ 8139568
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139568
-
- thumb_func_start sub_8139574
-sub_8139574: @ 8139574
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139574
-
- thumb_func_start sub_8139580
-sub_8139580: @ 8139580
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139580
-
- thumb_func_start sub_813958C
-sub_813958C: @ 813958C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_813958C
-
- thumb_func_start sub_8139598
-sub_8139598: @ 8139598
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139598
-
- thumb_func_start sub_81395A4
-sub_81395A4: @ 81395A4
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395A4
-
- thumb_func_start sub_81395B0
-sub_81395B0: @ 81395B0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395B0
-
- thumb_func_start sub_81395BC
-sub_81395BC: @ 81395BC
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395BC
-
- thumb_func_start sub_81395C8
-sub_81395C8: @ 81395C8
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395C8
-
- thumb_func_start sub_81395D4
-sub_81395D4: @ 81395D4
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395D4
-
- thumb_func_start sub_81395E0
-sub_81395E0: @ 81395E0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395E0
-
- thumb_func_start sub_81395EC
-sub_81395EC: @ 81395EC
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395EC
-
- thumb_func_start sub_81395F8
-sub_81395F8: @ 81395F8
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395F8
-
- thumb_func_start sub_8139604
-sub_8139604: @ 8139604
- push {r4,lr}
- ldr r3, _0813962C @ =gSprites
- ldr r2, _08139630 @ =gUnknown_02024BE0
- ldr r4, _08139634 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08139638
- bl dp01_tbl5_exec_completed
- b _08139662
- .align 2, 0
-_0813962C: .4byte gSprites
-_08139630: .4byte gUnknown_02024BE0
-_08139634: .4byte gUnknown_02024A60
-_08139638:
- ldr r1, _08139668 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _0813966C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139670 @ =bx_blink_t5
- str r1, [r0]
-_08139662:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139668: .4byte gUnknown_02024E6D
-_0813966C: .4byte gUnknown_03004330
-_08139670: .4byte bx_blink_t5
- thumb_func_end sub_8139604
-
- thumb_func_start sub_8139674
-sub_8139674: @ 8139674
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139674
-
- thumb_func_start sub_8139680
-sub_8139680: @ 8139680
- push {lr}
- ldr r2, _081396A8 @ =gUnknown_02023A60
- ldr r0, _081396AC @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlaySE
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081396A8: .4byte gUnknown_02023A60
-_081396AC: .4byte gUnknown_02024A60
- thumb_func_end sub_8139680
-
- thumb_func_start sub_81396B0
-sub_81396B0: @ 81396B0
- push {lr}
- ldr r2, _081396D8 @ =gUnknown_02023A60
- ldr r0, _081396DC @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081396D8: .4byte gUnknown_02023A60
-_081396DC: .4byte gUnknown_02024A60
- thumb_func_end sub_81396B0
-
- thumb_func_start sub_81396E0
-sub_81396E0: @ 81396E0
- push {lr}
- ldr r1, _08139710 @ =gUnknown_02024A6A
- ldr r0, _08139714 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08139718 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl PlayCry1
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08139710: .4byte gUnknown_02024A6A
-_08139714: .4byte gUnknown_02024A60
-_08139718: .4byte gPlayerParty
- thumb_func_end sub_81396E0
-
- thumb_func_start dp01t_2E_5_battle_intro
-dp01t_2E_5_battle_intro: @ 813971C
- push {lr}
- ldr r1, _08139744 @ =gUnknown_02023A60
- ldr r0, _08139748 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0813974C @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08139744: .4byte gUnknown_02023A60
-_08139748: .4byte gUnknown_02024A60
-_0813974C: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_5_battle_intro
-
- thumb_func_start sub_8139750
-sub_8139750: @ 8139750
- push {r4-r7,lr}
- ldr r6, _08139880 @ =gUnknown_02024BE0
- ldr r7, _08139884 @ =gUnknown_02024A60
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08139888 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0813988C @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08139890 @ =sub_8078B34
- str r1, [r0]
- ldrb r2, [r7]
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x38]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08139894 @ =sub_8030E38
- bl oamt_set_x3A_32
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _08139898 @ =0x0000d6f8
- bl AllocSpritePalette
- adds r4, r0, 0
- lsls r4, 24
- ldr r0, _0813989C @ =gTrainerBackPicPaletteTable
- ldr r0, [r0, 0x10]
- lsrs r4, 20
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- movs r2, 0x20
- bl LoadCompressedPalette
- ldrb r0, [r7]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r4
- strb r0, [r1, 0x5]
- ldr r0, _081398A0 @ =sub_8139A2C
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _081398A4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- ldrb r3, [r7]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _081398A8 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08139864
- ldr r0, _081398AC @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _081398B0 @ =sub_8044CA0
- str r1, [r0]
-_08139864:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _081398B4 @ =gUnknown_03004330
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081398B8 @ =nullsub_91
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08139880: .4byte gUnknown_02024BE0
-_08139884: .4byte gUnknown_02024A60
-_08139888: .4byte gSprites
-_0813988C: .4byte 0x0000ffd8
-_08139890: .4byte sub_8078B34
-_08139894: .4byte sub_8030E38
-_08139898: .4byte 0x0000d6f8
-_0813989C: .4byte gTrainerBackPicPaletteTable
-_081398A0: .4byte sub_8139A2C
-_081398A4: .4byte gTasks
-_081398A8: .4byte 0x02017810
-_081398AC: .4byte gUnknown_02024E68
-_081398B0: .4byte sub_8044CA0
-_081398B4: .4byte gUnknown_03004330
-_081398B8: .4byte nullsub_91
- thumb_func_end sub_8139750
-
- thumb_func_start sub_81398BC
-sub_81398BC: @ 81398BC
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r0, r6, 2
- ldr r1, _08139A00 @ =0x02017800
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2]
- ldr r0, _08139A04 @ =gUnknown_02024A6A
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, _08139A08 @ =gUnknown_02023A60
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
- ldrh r1, [r2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08139A0C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08139A10 @ =sub_80312F0
- bl object_new_hidden_with_callback
- ldr r1, _08139A14 @ =gUnknown_0300434C
- mov r9, r1
- add r9, r6
- mov r1, r9
- strb r0, [r1]
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08139A18 @ =gUnknown_02024E8C
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r10
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _08139A1C @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _08139A20 @ =gSprites
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08139A24 @ =gUnknown_02024E84
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- 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 r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08139A28 @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFF
- bl sub_8046400
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139A00: .4byte 0x02017800
-_08139A04: .4byte gUnknown_02024A6A
-_08139A08: .4byte gUnknown_02023A60
-_08139A0C: .4byte gPlayerParty
-_08139A10: .4byte sub_80312F0
-_08139A14: .4byte gUnknown_0300434C
-_08139A18: .4byte gUnknown_02024E8C
-_08139A1C: .4byte gUnknown_02024BE0
-_08139A20: .4byte gSprites
-_08139A24: .4byte gUnknown_02024E84
-_08139A28: .4byte SpriteCallbackDummy
- thumb_func_end sub_81398BC
-
- thumb_func_start sub_8139A2C
-sub_8139A2C: @ 8139A2C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08139A4C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x1E
- bgt _08139A50
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _08139A86
- .align 2, 0
-_08139A4C: .4byte gTasks
-_08139A50:
- ldr r4, _08139A8C @ =gUnknown_02024A60
- ldrb r5, [r4]
- ldrh r0, [r1, 0x8]
- strb r0, [r4]
- ldr r0, _08139A90 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08139A94 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_81398BC
- ldr r1, _08139A98 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139A9C @ =sub_8137538
- str r1, [r0]
- strb r5, [r4]
- adds r0, r6, 0
- bl DestroyTask
-_08139A86:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139A8C: .4byte gUnknown_02024A60
-_08139A90: .4byte gUnknown_02023A60
-_08139A94: .4byte gUnknown_02024A6A
-_08139A98: .4byte gUnknown_03004330
-_08139A9C: .4byte sub_8137538
- thumb_func_end sub_8139A2C
-
- thumb_func_start sub_8139AA0
-sub_8139AA0: @ 8139AA0
- push {r4,r5,lr}
- ldr r1, _08139AC8 @ =gUnknown_02023A60
- ldr r0, _08139ACC @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08139AD0
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08139AD0
- bl dp01_tbl5_exec_completed
- b _08139B0A
- .align 2, 0
-_08139AC8: .4byte gUnknown_02023A60
-_08139ACC: .4byte gUnknown_02024A60
-_08139AD0:
- ldr r5, _08139B10 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08139B14 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r4, r0, 9
- ldr r3, _08139B18 @ =gUnknown_02023A64
- adds r1, r4, r3
- subs r2, r3, 0x3
- adds r2, r4, r2
- ldrb r2, [r2]
- subs r3, 0x2
- adds r4, r3
- ldrb r3, [r4]
- bl sub_8044804
- ldr r2, _08139B1C @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- strb r0, [r1]
- bl dp01_tbl5_exec_completed
-_08139B0A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139B10: .4byte gUnknown_02024A60
-_08139B14: .4byte 0x02017810
-_08139B18: .4byte gUnknown_02023A64
-_08139B1C: .4byte gUnknown_02024E68
- thumb_func_end sub_8139AA0
-
- thumb_func_start sub_8139B20
-sub_8139B20: @ 8139B20
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139B20
-
- thumb_func_start sub_8139B2C
-sub_8139B2C: @ 8139B2C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139B2C
-
- thumb_func_start sub_8139B38
-sub_8139B38: @ 8139B38
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139B38
-
- thumb_func_start sub_8139B44
-sub_8139B44: @ 8139B44
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, _08139B7C @ =gUnknown_02023A60
- ldr r6, _08139B80 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _08139B84
- bl dp01_tbl5_exec_completed
- b _08139B90
- .align 2, 0
-_08139B7C: .4byte gUnknown_02023A60
-_08139B80: .4byte gUnknown_02024A60
-_08139B84:
- ldr r0, _08139B98 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08139B9C @ =sub_8137940
- str r0, [r1]
-_08139B90:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139B98: .4byte gUnknown_03004330
-_08139B9C: .4byte sub_8137940
- thumb_func_end sub_8139B44
-
- thumb_func_start sub_8139BA0
-sub_8139BA0: @ 8139BA0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139BA0
-
- thumb_func_start sub_8139BAC
-sub_8139BAC: @ 8139BAC
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139BAC
-
- thumb_func_start sub_8139BB8
-sub_8139BB8: @ 8139BB8
- push {r4,lr}
- ldr r2, _08139BFC @ =gUnknown_02024D26
- ldr r1, _08139C00 @ =gUnknown_02023A60
- ldr r4, _08139C04 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl5_exec_completed
- ldr r0, _08139C08 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _08139BF4
- ldr r0, _08139C0C @ =gUnknown_03004330
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08139C10 @ =sub_813746C
- str r0, [r1]
-_08139BF4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139BFC: .4byte gUnknown_02024D26
-_08139C00: .4byte gUnknown_02023A60
-_08139C04: .4byte gUnknown_02024A60
-_08139C08: .4byte gUnknown_020239F8
-_08139C0C: .4byte gUnknown_03004330
-_08139C10: .4byte sub_813746C
- thumb_func_end sub_8139BB8
-
- thumb_func_start nullsub_80
-nullsub_80: @ 8139C14
- bx lr
- thumb_func_end nullsub_80
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_813BA94.s b/asm/rom_813BA94.s
deleted file mode 100644
index d38466f97..000000000
--- a/asm/rom_813BA94.s
+++ /dev/null
@@ -1,18272 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_813CAF4
-sub_813CAF4: @ 813CAF4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0813CB2C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r4, 0x26]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _0813CB18
- b _0813CC28
-_0813CB18:
- cmp r0, 0x4
- bgt _0813CB30
- cmp r0, 0x2
- beq _0813CB60
- cmp r0, 0x2
- bgt _0813CBC4
- cmp r0, 0
- beq _0813CB46
- b _0813CC8E
- .align 2, 0
-_0813CB2C: .4byte gTasks
-_0813CB30:
- cmp r0, 0x1E
- beq _0813CBEE
- cmp r0, 0x1E
- bgt _0813CB3E
- cmp r0, 0x14
- beq _0813CB8A
- b _0813CC8E
-_0813CB3E:
- cmp r0, 0x28
- bne _0813CB44
- b _0813CC56
-_0813CB44:
- b _0813CC8E
-_0813CB46:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xE5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0813CB5C @ =REG_BG2CNT
- strh r6, [r0]
- movs r0, 0xFF
- strh r0, [r4, 0x8]
- b _0813CC8E
- .align 2, 0
-_0813CB5C: .4byte REG_BG2CNT
-_0813CB60:
- ldr r0, _0813CBB0 @ =0x0000ffff
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0813CBB4 @ =REG_BG2CNT
- ldr r2, _0813CBB8 @ =0x00000e07
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x14
- strh r0, [r4, 0x8]
-_0813CB8A:
- ldr r2, _0813CBBC @ =REG_BG2VOFS
- ldr r0, _0813CBC0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- subs r2, 0x2
- ldrh r0, [r1, 0xC]
- strh r0, [r2]
- ldrh r0, [r1, 0xA]
- adds r0, 0x6
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xC]
- subs r0, 0x8
- strh r0, [r1, 0xC]
- b _0813CC8E
- .align 2, 0
-_0813CBB0: .4byte 0x0000ffff
-_0813CBB4: .4byte REG_BG2CNT
-_0813CBB8: .4byte 0x00000e07
-_0813CBBC: .4byte REG_BG2VOFS
-_0813CBC0: .4byte gTasks
-_0813CBC4:
- ldr r0, _0813CC14 @ =0x0000ffff
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0813CC18 @ =REG_BG2CNT
- ldr r2, _0813CC1C @ =0x00000e07
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x1E
- strh r0, [r4, 0x8]
-_0813CBEE:
- ldr r2, _0813CC20 @ =REG_BG2VOFS
- ldr r0, _0813CC24 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- subs r2, 0x2
- ldrh r0, [r1, 0xC]
- strh r0, [r2]
- ldrh r0, [r1, 0xA]
- subs r0, 0x6
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xC]
- adds r0, 0x8
- strh r0, [r1, 0xC]
- b _0813CC8E
- .align 2, 0
-_0813CC14: .4byte 0x0000ffff
-_0813CC18: .4byte REG_BG2CNT
-_0813CC1C: .4byte 0x00000e07
-_0813CC20: .4byte REG_BG2VOFS
-_0813CC24: .4byte gTasks
-_0813CC28:
- ldr r0, _0813CC98 @ =0x000037f7
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x5
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813CC9C @ =REG_BG2CNT
- ldr r2, _0813CCA0 @ =0x00000e07
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x8
- strh r0, [r4, 0xE]
- movs r0, 0x28
- strh r0, [r4, 0x8]
-_0813CC56:
- ldr r2, _0813CCA4 @ =REG_BG2VOFS
- ldr r1, _0813CCA8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xA]
- strh r0, [r2]
- ldr r1, _0813CCAC @ =REG_BG2HOFS
- ldrh r0, [r3, 0xC]
- strh r0, [r1]
- ldrh r0, [r3, 0xA]
- ldrh r2, [r3, 0xE]
- subs r0, r2
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- adds r0, r2, r1
- strh r0, [r3, 0xC]
- ldrh r1, [r3, 0x26]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0813CC8E
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813CC8E
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_0813CC8E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CC98: .4byte 0x000037f7
-_0813CC9C: .4byte REG_BG2CNT
-_0813CCA0: .4byte 0x00000e07
-_0813CCA4: .4byte REG_BG2VOFS
-_0813CCA8: .4byte gTasks
-_0813CCAC: .4byte REG_BG2HOFS
- thumb_func_end sub_813CAF4
-
- thumb_func_start intro_reset_and_hide_bgs
-intro_reset_and_hide_bgs: @ 813CCB0
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x1C
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x3E
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- thumb_func_end intro_reset_and_hide_bgs
-
- thumb_func_start sub_813CCE8
-sub_813CCE8: @ 813CCE8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0813CD0C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0813CD28
- lsls r0, 2
- ldr r1, _0813CD10 @ =_0813CD14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813CD0C: .4byte gTasks
-_0813CD10: .4byte _0813CD14
- .align 2, 0
-_0813CD14:
- .4byte _0813CD28
- .4byte _0813CD5C
- .4byte _0813CD8C
- .4byte _0813CDA8
- .4byte _0813CDFC
-_0813CD28:
- ldr r1, _0813CD54 @ =REG_BLDCNT
- ldr r4, _0813CD58 @ =0x00003f50
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r4, 0x80
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r2
- movs r1, 0x40
- strh r1, [r0, 0xA]
- movs r1, 0x1
- strh r1, [r0, 0x8]
- b _0813CE26
- .align 2, 0
-_0813CD54: .4byte REG_BLDCNT
-_0813CD58: .4byte 0x00003f50
-_0813CD5C:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r2
- ldrh r1, [r2, 0xA]
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0813CD78
- subs r0, r1, 0x1
- strh r0, [r2, 0xA]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- b _0813CDC2
-_0813CD78:
- ldr r1, _0813CD84 @ =REG_BLDALPHA
- ldr r0, _0813CD88 @ =gUnknown_08393E64
- ldrh r0, [r0]
- strh r0, [r1]
- movs r0, 0x80
- b _0813CDEA
- .align 2, 0
-_0813CD84: .4byte REG_BLDALPHA
-_0813CD88: .4byte gUnknown_08393E64
-_0813CD8C:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xA]
- movs r3, 0xA
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _0813CE0E
- strh r2, [r1, 0xA]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0813CE26
-_0813CDA8:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r2
- ldrh r1, [r2, 0xA]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- cmp r0, 0x3D
- bgt _0813CDE0
- adds r0, r1, 0x1
- strh r0, [r2, 0xA]
- movs r1, 0xA
- ldrsh r0, [r2, r1]
-_0813CDC2:
- lsrs r1, r0, 31
- adds r0, r1
- movs r2, 0xFF
- lsls r2, 1
- ldr r3, _0813CDD8 @ =REG_BLDALPHA
- ldr r1, _0813CDDC @ =gUnknown_08393E64
- ands r0, r2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3]
- b _0813CE26
- .align 2, 0
-_0813CDD8: .4byte REG_BLDALPHA
-_0813CDDC: .4byte gUnknown_08393E64
-_0813CDE0:
- ldr r1, _0813CDF4 @ =REG_BLDALPHA
- ldr r0, _0813CDF8 @ =gUnknown_08393E64
- ldrh r0, [r0, 0x3E]
- strh r0, [r1]
- movs r0, 0x10
-_0813CDEA:
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0813CE26
- .align 2, 0
-_0813CDF4: .4byte REG_BLDALPHA
-_0813CDF8: .4byte gUnknown_08393E64
-_0813CDFC:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xA]
- movs r4, 0xA
- ldrsh r2, [r1, r4]
- cmp r2, 0
- beq _0813CE14
-_0813CE0E:
- subs r0, 0x1
- strh r0, [r1, 0xA]
- b _0813CE26
-_0813CE14:
- ldr r0, _0813CE2C @ =REG_BLDCNT
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, r3, 0
- bl DestroyTask
-_0813CE26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CE2C: .4byte REG_BLDCNT
- thumb_func_end sub_813CCE8
-
- thumb_func_start sub_813CE30
-sub_813CE30: @ 813CE30
- push {r4,lr}
- sub sp, 0x24
- lsls r2, 16
- lsrs r2, 16
- movs r4, 0x80
- lsls r4, 8
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r4, sp
- strh r0, [r4, 0x8]
- mov r0, sp
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- strh r2, [r0, 0xE]
- strh r3, [r0, 0x10]
- add r4, sp, 0x14
- adds r1, r4, 0
- movs r2, 0x1
- bl BgAffineSet
- ldr r1, _0813CE84 @ =REG_BG2PA
- ldrh r0, [r4]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x4]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x6]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [r4, 0x8]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r4, 0xC]
- str r0, [r1]
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CE84: .4byte REG_BG2PA
- thumb_func_end sub_813CE30
-
- thumb_func_start sub_813CE88
-sub_813CE88: @ 813CE88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r3, 16
- lsrs r3, 16
- mov r8, r3
- lsls r4, 24
- lsrs r6, r4, 24
- cmp r6, 0
- beq _0813CEF0
- lsls r0, r7, 3
- ldr r1, _0813CEE4 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _0813CEE8 @ =gMonFrontPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0813CEEC @ =gUnknown_0840B5A0
- mov r6, r8
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- b _0813CF1C
- .align 2, 0
-_0813CEE4: .4byte gMonFrontPicTable
-_0813CEE8: .4byte gMonFrontPicCoords
-_0813CEEC: .4byte gUnknown_0840B5A0
-_0813CEF0:
- lsls r0, r7, 3
- ldr r1, _0813CF90 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _0813CF94 @ =gMonBackPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0813CF98 @ =gUnknown_0840B5A0
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- str r6, [sp, 0x8]
- str r6, [sp, 0xC]
- bl sub_800D378
-_0813CF1C:
- ldr r2, _0813CF9C @ =0x0000ffff
- adds r0, r7, 0
- movs r1, 0
- bl species_and_otid_get_pal
- mov r6, r8
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8143648
- ldr r0, _0813CFA0 @ =gUnknown_02024E8C
- mov r3, r9
- lsls r1, r3, 16
- asrs r1, 16
- mov r5, r10
- lsls r2, r5, 16
- asrs r2, 16
- mov r3, r8
- adds r3, 0x1
- lsls r3, 26
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813CFA4 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- movs r3, 0xD
- negs r3, r3
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813CF90: .4byte gMonBackPicTable
-_0813CF94: .4byte gMonBackPicCoords
-_0813CF98: .4byte gUnknown_0840B5A0
-_0813CF9C: .4byte 0x0000ffff
-_0813CFA0: .4byte gUnknown_02024E8C
-_0813CFA4: .4byte gSprites
- thumb_func_end sub_813CE88
-
- thumb_func_start sub_813CFA8
-sub_813CFA8: @ 813CFA8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r1
- mov r10, r2
- adds r6, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r6, 16
- lsrs r6, 16
- lsls r7, r0, 3
- ldr r1, _0813D068 @ =gTrainerBackPicTable
- mov r8, r1
- add r8, r7
- ldr r1, _0813D06C @ =gTrainerBackPicCoords
- lsls r2, r0, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0813D070 @ =gUnknown_0840B5A0
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- bl DecompressPicFromTable_2
- ldr r0, _0813D074 @ =gTrainerBackPicPaletteTable
- adds r0, r7, r0
- ldr r0, [r0]
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8143680
- ldr r0, _0813D078 @ =gUnknown_02024E8C
- ldr r1, _0813D07C @ =gUnknown_0840B064
- str r1, [r0, 0x8]
- mov r1, r9
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813D080 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- movs r3, 0xD
- negs r3, r3
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813D068: .4byte gTrainerBackPicTable
-_0813D06C: .4byte gTrainerBackPicCoords
-_0813D070: .4byte gUnknown_0840B5A0
-_0813D074: .4byte gTrainerBackPicPaletteTable
-_0813D078: .4byte gUnknown_02024E8C
-_0813D07C: .4byte gUnknown_0840B064
-_0813D080: .4byte gSprites
- thumb_func_end sub_813CFA8
-
- thumb_func_start sub_813D084
-sub_813D084: @ 813D084
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0813D0A0
- cmp r0, 0x1
- ble _0813D096
- cmp r0, 0x2
- beq _0813D0A8
-_0813D096:
- ldr r2, _0813D09C @ =0x00003ff6
- b _0813D0AA
- .align 2, 0
-_0813D09C: .4byte 0x00003ff6
-_0813D0A0:
- ldr r2, _0813D0A4 @ =0x000031df
- b _0813D0AA
- .align 2, 0
-_0813D0A4: .4byte 0x000031df
-_0813D0A8:
- ldr r2, _0813D0C0 @ =0x0000518c
-_0813D0AA:
- ldr r0, _0813D0C4 @ =gPlttBufferUnfaded
- movs r1, 0xF1
- lsls r1, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _0813D0C8 @ =gPlttBufferFaded
- adds r0, r1
- strh r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0813D0C0: .4byte 0x0000518c
-_0813D0C4: .4byte gPlttBufferUnfaded
-_0813D0C8: .4byte gPlttBufferFaded
- thumb_func_end sub_813D084
-
- thumb_func_start sub_813D0CC
-sub_813D0CC: @ 813D0CC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0xBF
- ble _0813D148
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813D0EA
- subs r0, r1, 0x1
- strh r0, [r4, 0x34]
- b _0813D14E
-_0813D0EA:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x32]
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 5
- subs r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4, 0x32]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- adds r0, r1, 0
- subs r0, 0xC0
- cmp r0, 0
- bge _0813D12C
- adds r0, 0x7F
-_0813D12C:
- asrs r0, 7
- adds r0, 0x9
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bls _0813D13A
- movs r0, 0xF
-_0813D13A:
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- b _0813D14E
-_0813D148:
- adds r0, r4, 0
- bl DestroySprite
-_0813D14E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813D0CC
-
- thumb_func_start sub_813D158
-sub_813D158: @ 813D158
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _0813D1CC @ =gSprites
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0813D1D4
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 3
- strh r0, [r4, 0x34]
- ldr r0, _0813D1D0 @ =sub_813D0CC
- str r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x2
- bl CalcCenterToCornerVec
- b _0813D200
- .align 2, 0
-_0813D1CC: .4byte gSprites
-_0813D1D0: .4byte sub_813D0CC
-_0813D1D4:
- ldrh r0, [r1, 0x24]
- strh r0, [r4, 0x24]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x26]
- strh r0, [r4, 0x26]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x20]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x22]
-_0813D200:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813D158
-
- thumb_func_start sub_813D208
-sub_813D208: @ 813D208
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0813D218
- ldr r0, _0813D21C @ =sub_813D220
- str r0, [r1, 0x1C]
-_0813D218:
- pop {r0}
- bx r0
- .align 2, 0
-_0813D21C: .4byte sub_813D220
- thumb_func_end sub_813D208
-
- thumb_func_start sub_813D220
-sub_813D220: @ 813D220
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- ldrh r4, [r7, 0x20]
- movs r1, 0x20
- ldrsh r0, [r7, r1]
- cmp r0, 0x74
- bgt _0813D260
- ldrh r0, [r7, 0x26]
- ldrh r1, [r7, 0x22]
- adds r0, r1
- movs r1, 0
- strh r0, [r7, 0x22]
- strh r1, [r7, 0x26]
- adds r0, r4, 0x4
- strh r0, [r7, 0x20]
- ldr r0, _0813D258 @ =0x0000fffc
- strh r0, [r7, 0x24]
- movs r0, 0x80
- strh r0, [r7, 0x36]
- ldr r0, _0813D25C @ =sub_813D368
- str r0, [r7, 0x1C]
- b _0813D352
- .align 2, 0
-_0813D258: .4byte 0x0000fffc
-_0813D25C: .4byte sub_813D368
-_0813D260:
- ldrh r1, [r7, 0x36]
- ldr r5, _0813D364 @ =gSineTable
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- adds r0, r1, 0
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r3, [r0]
- adds r1, 0x2
- strh r1, [r7, 0x36]
- lsls r2, 16
- asrs r0, r2, 16
- cmp r0, 0
- bge _0813D286
- adds r0, 0x1F
-_0813D286:
- asrs r0, 5
- strh r0, [r7, 0x26]
- subs r0, r4, 0x1
- strh r0, [r7, 0x20]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813D29C
- ldrh r0, [r7, 0x22]
- adds r0, 0x1
- strh r0, [r7, 0x22]
-_0813D29C:
- lsls r0, r3, 16
- asrs r0, 16
- negs r0, r0
- cmp r0, 0
- bge _0813D2A8
- adds r0, 0xF
-_0813D2A8:
- lsls r1, r0, 12
- lsrs r1, 16
- ldrh r4, [r7, 0x32]
- ldrh r3, [r7, 0x34]
- adds r0, r1, 0
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- adds r1, 0x30
- lsls r1, 24
- lsrs r1, 23
- adds r1, r5
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r1, 0
- muls r0, r4
- cmp r0, 0
- bge _0813D2D2
- adds r0, 0xFF
-_0813D2D2:
- lsls r0, 8
- lsrs r0, 16
- mov r8, r0
- lsls r0, r2, 16
- asrs r2, r0, 16
- negs r0, r2
- muls r0, r3
- cmp r0, 0
- bge _0813D2E6
- adds r0, 0xFF
-_0813D2E6:
- lsls r0, 8
- lsrs r0, 16
- mov r10, r0
- adds r0, r2, 0
- muls r0, r4
- cmp r0, 0
- bge _0813D2F6
- adds r0, 0xFF
-_0813D2F6:
- lsls r0, 8
- lsrs r5, r0, 16
- adds r0, r1, 0
- muls r0, r3
- cmp r0, 0
- bge _0813D304
- adds r0, 0xFF
-_0813D304:
- lsls r6, r0, 8
- lsrs r6, 16
- ldrh r0, [r7, 0x30]
- lsls r0, 24
- lsrs r0, 24
- str r3, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r0, [r7, 0x30]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r5
- mov r1, r10
- lsls r5, r1, 16
- lsrs r3, r5, 16
- lsls r4, r6, 16
- str r6, [sp]
- mov r1, r8
- mov r2, r9
- bl SetOamMatrix
- ldrh r0, [r7, 0x30]
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 1
- lsrs r5, 16
- lsls r4, 1
- lsrs r4, 16
- str r4, [sp]
- mov r1, r8
- mov r2, r9
- adds r3, r5, 0
- bl SetOamMatrix
-_0813D352:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D364: .4byte gSineTable
- thumb_func_end sub_813D220
-
- thumb_func_start sub_813D368
-sub_813D368: @ 813D368
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x3A]
- adds r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x3A]
- adds r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x3A]
- adds r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r1, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0x40
- beq _0813D400
- adds r0, r1, 0
- subs r0, 0x8
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x36]
- adds r1, r0, 0
- ldr r2, _0813D3FC @ =gSineTable
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bge _0813D3E2
- adds r0, 0x3F
-_0813D3E2:
- asrs r0, 6
- strh r0, [r4, 0x24]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0813D3F6
- adds r0, 0x3F
-_0813D3F6:
- asrs r0, 6
- strh r0, [r4, 0x26]
- b _0813D408
- .align 2, 0
-_0813D3FC: .4byte gSineTable
-_0813D400:
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r0, _0813D410 @ =sub_813D414
- str r0, [r4, 0x1C]
-_0813D408:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D410: .4byte sub_813D414
- thumb_func_end sub_813D368
-
- thumb_func_start sub_813D414
-sub_813D414: @ 813D414
- push {r4,lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _0813D474
- ldrh r0, [r1, 0x36]
- adds r0, 0x8
- strh r0, [r1, 0x36]
- ldr r3, _0813D470 @ =gSineTable
- lsls r0, 24
- lsrs r0, 23
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bge _0813D438
- adds r0, 0xF
-_0813D438:
- asrs r0, 4
- adds r0, 0x40
- lsls r0, 16
- lsrs r2, r0, 16
- adds r0, r2, 0
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bge _0813D454
- adds r0, 0x3F
-_0813D454:
- asrs r0, 6
- strh r0, [r1, 0x24]
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _0813D468
- adds r0, 0x3F
-_0813D468:
- asrs r0, 6
- strh r0, [r1, 0x26]
- b _0813D478
- .align 2, 0
-_0813D470: .4byte gSineTable
-_0813D474:
- ldr r0, _0813D480 @ =sub_813D484
- str r0, [r1, 0x1C]
-_0813D478:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D480: .4byte sub_813D484
- thumb_func_end sub_813D414
-
- thumb_func_start sub_813D484
-sub_813D484: @ 813D484
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x22]
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _0813D49C
- adds r0, r2, 0x4
- strh r0, [r4, 0x22]
- b _0813D4F8
-_0813D49C:
- movs r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 3
- strh r0, [r4, 0x34]
- ldr r0, _0813D500 @ =sub_813D0CC
- str r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x2
- bl CalcCenterToCornerVec
-_0813D4F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D500: .4byte sub_813D0CC
- thumb_func_end sub_813D484
-
- thumb_func_start sub_813D504
-sub_813D504: @ 813D504
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x22]
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _0813D51C
- adds r0, r2, 0x4
- strh r0, [r4, 0x22]
- b _0813D578
-_0813D51C:
- movs r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 3
- strh r0, [r4, 0x34]
- ldr r0, _0813D580 @ =sub_813D0CC
- str r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x2
- bl CalcCenterToCornerVec
-_0813D578:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D580: .4byte sub_813D0CC
- thumb_func_end sub_813D504
-
- thumb_func_start sub_813D584
-sub_813D584: @ 813D584
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r6, [sp, 0x34]
- ldr r0, [sp, 0x38]
- mov r8, r0
- lsls r4, 16
- lsls r5, 16
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x8]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0xC]
- lsls r6, 16
- lsrs r6, 16
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r0, _0813D640 @ =gSpriteTemplate_840AE20
- lsrs r2, r4, 16
- mov r10, r2
- asrs r4, 16
- lsrs r1, r5, 16
- str r1, [sp, 0x4]
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _0813D644 @ =gSprites
- mov r9, r2
- lsls r0, r7, 4
- adds r0, r7
- lsls r5, r0, 2
- adds r4, r5, r2
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x3C]
- mov r0, sp
- ldrh r0, [r0, 0xC]
- strh r0, [r4, 0x30]
- mov r1, sp
- ldrh r1, [r1, 0x8]
- strh r1, [r4, 0x32]
- mov r2, sp
- ldrh r2, [r2, 0x8]
- strh r2, [r4, 0x34]
- strh r6, [r4, 0x38]
- mov r0, sp
- ldrh r0, [r0, 0x8]
- strh r0, [r4, 0x3A]
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1F
- ldr r1, [sp, 0xC]
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl CalcCenterToCornerVec
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- mov r1, r8
- cmp r1, 0
- bne _0813D64C
- mov r0, r9
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _0813D648 @ =sub_813D208
- b _0813D654
- .align 2, 0
-_0813D640: .4byte gSpriteTemplate_840AE20
-_0813D644: .4byte gSprites
-_0813D648: .4byte sub_813D208
-_0813D64C:
- mov r0, r9
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _0813D774 @ =sub_813D504
-_0813D654:
- str r1, [r0]
- str r7, [sp, 0x10]
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- ldr r0, [sp, 0x4]
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- ldr r0, _0813D778 @ =gSpriteTemplate_840AE20
- mov r1, r10
- mov r2, r8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0813D77C @ =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r0, r4, r5
- mov r1, sp
- ldrh r1, [r1, 0x10]
- strh r1, [r0, 0x3C]
- ldr r2, [sp, 0xC]
- adds r2, 0x1
- mov r9, r2
- strh r2, [r0, 0x30]
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- mov r2, r9
- movs r1, 0x1F
- ands r2, r1
- lsls r2, 1
- ldrb r3, [r0, 0x3]
- movs r6, 0x3F
- negs r6, r6
- adds r1, r6, 0
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x3]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl CalcCenterToCornerVec
- ldr r2, _0813D780 @ =gSprites + 0x1C
- adds r4, r2
- ldr r0, _0813D784 @ =sub_813D158
- str r0, [r4]
- ldr r0, _0813D778 @ =gSpriteTemplate_840AE20
- mov r1, r10
- mov r2, r8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r5, r4, r5
- mov r1, sp
- ldrh r1, [r1, 0x10]
- strh r1, [r5, 0x3C]
- ldr r2, [sp, 0xC]
- adds r2, 0x2
- mov r8, r2
- strh r2, [r5, 0x30]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r0, [r5, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r5, 0x1]
- mov r0, r8
- movs r2, 0x1F
- ands r0, r2
- lsls r0, 1
- ldrb r1, [r5, 0x3]
- ands r6, r1
- orrs r6, r0
- strb r6, [r5, 0x3]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl CalcCenterToCornerVec
- ldr r0, _0813D780 @ =gSprites + 0x1C
- adds r4, r0
- ldr r1, _0813D784 @ =sub_813D158
- str r1, [r4]
- ldr r2, [sp, 0xC]
- lsls r0, r2, 24
- lsrs r0, 24
- ldr r5, [sp, 0x8]
- adds r5, 0x20
- lsls r4, r5, 16
- lsrs r4, 16
- str r4, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- str r4, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r5, 17
- lsrs r5, 16
- str r5, [sp]
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldr r0, [sp, 0x10]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813D774: .4byte sub_813D504
-_0813D778: .4byte gSpriteTemplate_840AE20
-_0813D77C: .4byte gSprites
-_0813D780: .4byte gSprites + 0x1C
-_0813D784: .4byte sub_813D158
- thumb_func_end sub_813D584
-
- thumb_func_start sub_813D788
-sub_813D788: @ 813D788
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0813D830
- lsls r0, 2
- ldr r1, _0813D7A0 @ =_0813D7A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813D7A0: .4byte _0813D7A4
- .align 2, 0
-_0813D7A4:
- .4byte _0813D7B8
- .4byte _0813D7C6
- .4byte _0813D7E4
- .4byte _0813D80C
- .4byte _0813D816
-_0813D7B8:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r0, [r4, 0x20]
- subs r0, 0x1
- b _0813D82E
-_0813D7C6:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldr r0, _0813D7E0 @ =gIntroFrameCounter
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0813D87A
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- b _0813D82E
- .align 2, 0
-_0813D7E0: .4byte gIntroFrameCounter
-_0813D7E4:
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _0813D802
- ldr r0, _0813D808 @ =gIntroFrameCounter
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0813D83C
-_0813D802:
- adds r0, r2, 0x1
- b _0813D82E
- .align 2, 0
-_0813D808: .4byte gIntroFrameCounter
-_0813D80C:
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnimIfDifferent
- b _0813D830
-_0813D816:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _0813D830
- subs r0, r2, 0x2
-_0813D82E:
- strh r0, [r4, 0x20]
-_0813D830:
- ldr r0, _0813D84C @ =gIntroFrameCounter
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0813D87A
-_0813D83C:
- movs r1, 0x26
- ldrsh r5, [r4, r1]
- cmp r5, 0
- beq _0813D850
- movs r0, 0
- strh r0, [r4, 0x26]
- b _0813D87A
- .align 2, 0
-_0813D84C: .4byte gIntroFrameCounter
-_0813D850:
- bl Random
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x1
- beq _0813D878
- cmp r1, 0x1
- bgt _0813D866
- cmp r1, 0
- beq _0813D86E
- b _0813D87A
-_0813D866:
- cmp r1, 0x3
- bgt _0813D87A
- strh r5, [r4, 0x26]
- b _0813D87A
-_0813D86E:
- ldr r0, _0813D874 @ =0x0000ffff
- strh r0, [r4, 0x26]
- b _0813D87A
- .align 2, 0
-_0813D874: .4byte 0x0000ffff
-_0813D878:
- strh r1, [r4, 0x26]
-_0813D87A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813D788
-
- thumb_func_start sub_813D880
-sub_813D880: @ 813D880
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813D89A
- cmp r0, 0x1
- ble _0813D8E2
- cmp r0, 0x2
- beq _0813D8BA
- cmp r0, 0x3
- beq _0813D8D4
- b _0813D8E2
-_0813D89A:
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- ldr r1, _0813D8B0 @ =0x0000012f
- cmp r0, r1
- bgt _0813D8B4
- ldrh r0, [r4, 0x24]
- adds r0, 0x8
- b _0813D8E0
- .align 2, 0
-_0813D8B0: .4byte 0x0000012f
-_0813D8B4:
- movs r0, 0x2
- strh r0, [r4, 0x2E]
- b _0813D8E2
-_0813D8BA:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0x78
- ble _0813D8CE
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- b _0813D8E0
-_0813D8CE:
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- b _0813D8E2
-_0813D8D4:
- ldrh r1, [r4, 0x24]
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _0813D8E2
- subs r0, r1, 0x2
-_0813D8E0:
- strh r0, [r4, 0x24]
-_0813D8E2:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8
- bl Sin
- ldr r1, _0813D904 @ =gUnknown_0203935A
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x4
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D904: .4byte gUnknown_0203935A
- thumb_func_end sub_813D880
-
- thumb_func_start sub_813D908
-sub_813D908: @ 813D908
- push {lr}
- adds r3, r0, 0
- ldr r2, _0813D930 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0813D934
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0813D94E
- .align 2, 0
-_0813D930: .4byte gTasks
-_0813D934:
- cmp r0, 0x4
- beq _0813D948
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _0813D94E
-_0813D948:
- adds r0, r3, 0
- bl DestroySprite
-_0813D94E:
- pop {r0}
- bx r0
- thumb_func_end sub_813D908
-
- thumb_func_start sub_813D954
-sub_813D954: @ 813D954
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r5, 0
- ldr r7, _0813DA48 @ =gUnknown_0840AF50
- lsls r0, 16
- mov r9, r0
- lsls r0, r6, 16
- str r0, [sp, 0x4]
- mov r1, r9
- asrs r1, 16
- str r1, [sp]
-_0813D97C:
- lsls r4, r5, 2
- adds r0, r7, 0x2
- adds r0, r4, r0
- ldrh r1, [r0]
- ldr r2, [sp]
- adds r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r3, r2, 16
- mov r10, r3
- ldr r0, _0813DA4C @ =0xfffc0000
- adds r2, r0
- ldr r0, _0813DA50 @ =gSpriteTemplate_840AF94
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813DA54 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x2E]
- adds r4, r7
- ldrb r1, [r4]
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x8
- bls _0813D97C
- movs r5, 0
- ldr r7, _0813DA58 @ =gUnknown_0840AF74
- mov r0, r10
- adds r0, 0xC
- lsls r0, 16
- mov r10, r0
-_0813D9D0:
- lsls r4, r5, 2
- adds r0, r7, 0x2
- adds r0, r4, r0
- mov r2, r9
- asrs r1, r2, 16
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- ldr r0, _0813DA5C @ =gSpriteTemplate_840AFAC
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r6, _0813DA54 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x2E]
- adds r4, r7
- ldrb r1, [r4]
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _0813D9D0
- ldr r0, _0813DA60 @ =gSpriteTemplate_840AFC4
- ldr r3, [sp, 0x4]
- ldr r1, _0813DA4C @ =0xfffc0000
- adds r2, r3, r1
- asrs r2, 16
- movs r1, 0x78
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- mov r3, r8
- strh r3, [r0, 0x2E]
- adds r0, r2, 0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813DA48: .4byte gUnknown_0840AF50
-_0813DA4C: .4byte 0xfffc0000
-_0813DA50: .4byte gSpriteTemplate_840AF94
-_0813DA54: .4byte gSprites
-_0813DA58: .4byte gUnknown_0840AF74
-_0813DA5C: .4byte gSpriteTemplate_840AFAC
-_0813DA60: .4byte gSpriteTemplate_840AFC4
- thumb_func_end sub_813D954
-
- thumb_func_start sub_813DA64
-sub_813DA64: @ 813DA64
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DA7C
- cmp r0, 0x1
- beq _0813DAC0
-_0813DA7C:
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x80
- strh r0, [r4, 0x30]
- ldr r0, _0813DABC @ =0x0000ffe8
- strh r0, [r4, 0x32]
- movs r0, 0
- b _0813DB92
- .align 2, 0
-_0813DABC: .4byte 0x0000ffe8
-_0813DAC0:
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x4F
- bgt _0813DAF8
- lsls r0, r1, 24
- lsrs r0, 24
- movs r1, 0x78
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8C
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- ble _0813DAF8
- ldrb r0, [r4, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r4, 0x5]
-_0813DAF8:
- ldr r2, _0813DB60 @ =gSineTable
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- ldrh r3, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- adds r1, r0, 0
- muls r1, r2
- adds r0, r1, 0
- cmp r1, 0
- bge _0813DB20
- adds r0, 0xFF
-_0813DB20:
- lsls r0, 8
- lsrs r6, r0, 16
- lsls r0, r3, 16
- asrs r3, r0, 16
- negs r0, r3
- muls r0, r2
- cmp r0, 0
- bge _0813DB32
- adds r0, 0xFF
-_0813DB32:
- lsls r0, 8
- lsrs r5, r0, 16
- adds r0, r3, 0
- muls r0, r2
- cmp r0, 0
- bge _0813DB40
- adds r0, 0xFF
-_0813DB40:
- lsls r0, 8
- lsrs r2, r0, 16
- adds r1, r6, 0
- adds r3, r5, 0
- str r1, [sp]
- movs r0, 0x1
- bl SetOamMatrix
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- bgt _0813DB64
- adds r0, r1, 0
- adds r0, 0x8
- b _0813DB68
- .align 2, 0
-_0813DB60: .4byte gSineTable
-_0813DB64:
- adds r0, r1, 0
- adds r0, 0x20
-_0813DB68:
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x17
- bgt _0813DB78
- adds r0, r1, 0x1
- strh r0, [r4, 0x32]
-_0813DB78:
- ldrh r2, [r4, 0x34]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- bgt _0813DB86
- adds r0, r2, 0x2
- b _0813DB92
-_0813DB86:
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0813DB94
- adds r0, r2, 0x1
-_0813DB92:
- strh r0, [r4, 0x34]
-_0813DB94:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813DA64
-
- thumb_func_start sub_813DB9C
-sub_813DB9C: @ 813DB9C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0813DBCC
- lsls r0, 2
- ldr r1, _0813DBB4 @ =_0813DBB8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813DBB4: .4byte _0813DBB8
- .align 2, 0
-_0813DBB8:
- .4byte _0813DBCC
- .4byte _0813DBF2
- .4byte _0813DC24
- .4byte _0813DC3E
- .4byte _0813DCAA
-_0813DBCC:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813DBE0
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- b _0813DBEC
-_0813DBE0:
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
-_0813DBEC:
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_0813DBF2:
- ldrh r1, [r4, 0x22]
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- cmp r0, 0x60
- ble _0813DC18
- subs r0, r1, 0x4
- strh r0, [r4, 0x22]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DC10
- ldrh r0, [r4, 0x20]
- adds r0, 0x2
- strh r0, [r4, 0x20]
- b _0813DD4E
-_0813DC10:
- ldrh r0, [r4, 0x20]
- subs r0, 0x2
- strh r0, [r4, 0x20]
- b _0813DD4E
-_0813DC18:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x8
- strh r0, [r4, 0x34]
- b _0813DD4E
-_0813DC24:
- ldrh r0, [r4, 0x34]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _0813DC34
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _0813DD4E
-_0813DC34:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x34]
- b _0813DD4E
-_0813DC3E:
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DC8A
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xFF
- lsls r1, 8
- movs r2, 0x80
- lsls r2, 1
- str r2, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DC9E
-_0813DC8A:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 1
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
-_0813DC9E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x36]
- b _0813DD4E
-_0813DCAA:
- ldrh r0, [r4, 0x36]
- adds r2, r0, 0x1
- strh r2, [r4, 0x36]
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- movs r3, 0x26
- ldrsh r1, [r4, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _0813DD48
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r3, 0x24
- ldrsh r1, [r4, r3]
- adds r0, r1
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- ble _0813DD48
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- adds r3, r0, 0
- muls r3, r0
- adds r0, r3, 0
- negs r0, r0
- cmp r0, 0
- bge _0813DCE6
- adds r0, 0x7
-_0813DCE6:
- asrs r0, 3
- strh r0, [r4, 0x26]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- ldrh r3, [r4, 0x32]
- cmp r0, 0
- beq _0813DCFA
- ldrh r0, [r4, 0x24]
- adds r0, r2
- b _0813DCFE
-_0813DCFA:
- ldrh r0, [r4, 0x24]
- subs r0, r2
-_0813DCFE:
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x7F
- bgt _0813DD10
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r4, 0x34]
-_0813DD10:
- ldrh r0, [r4, 0x34]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r0, r3, 16
- cmp r0, 0
- beq _0813DD34
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- negs r1, r2
- lsls r1, 16
- lsrs r1, 16
- str r2, [sp]
- b _0813DD3E
-_0813DD34:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- str r2, [sp]
- adds r1, r2, 0
-_0813DD3E:
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DD4E
-_0813DD48:
- adds r0, r4, 0
- bl DestroySprite
-_0813DD4E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813DB9C
-
- thumb_func_start sub_813DD58
-sub_813DD58: @ 813DD58
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813DDAE
- cmp r0, 0x1
- ble _0813DD72
- cmp r0, 0x2
- beq _0813DE66
- cmp r0, 0x3
- beq _0813DE26
-_0813DD72:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_0813DDAE:
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- movs r2, 0x80
- lsls r2, 1
- cmp r0, r2
- ble _0813DDEE
- subs r1, 0x80
- strh r1, [r4, 0x34]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813DDDA
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- negs r1, r1
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r4, 0x34]
- str r2, [sp]
- b _0813DDE4
-_0813DDDA:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x34]
- str r1, [sp]
-_0813DDE4:
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DE66
-_0813DDEE:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DE0C
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xFF
- lsls r1, 8
- str r2, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DE1E
-_0813DE0C:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- str r2, [sp]
- adds r1, r2, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
-_0813DE1E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0813DE66
-_0813DE26:
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- cmp r0, 0
- bge _0813DE3C
- adds r0, 0x1F
-_0813DE3C:
- asrs r0, 5
- strh r0, [r4, 0x26]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813DE56
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0813DE52
- adds r0, 0x3
-_0813DE52:
- asrs r0, 2
- b _0813DE64
-_0813DE56:
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _0813DE60
- adds r0, 0x3
-_0813DE60:
- asrs r0, 2
- negs r0, r0
-_0813DE64:
- strh r0, [r4, 0x24]
-_0813DE66:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813DD58
-
- thumb_func_start sub_813DE70
-sub_813DE70: @ 813DE70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0x6
- bhi _0813DEB0
- lsls r0, 2
- ldr r1, _0813DE90 @ =_0813DE94
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813DE90: .4byte _0813DE94
- .align 2, 0
-_0813DE94:
- .4byte _0813DEB0
- .4byte _0813E0F8
- .4byte _0813DEF4
- .4byte _0813DF2C
- .4byte _0813DF54
- .4byte _0813E0A8
- .4byte _0813E0D0
-_0813DEB0:
- ldrh r1, [r7, 0x20]
- movs r2, 0x20
- ldrsh r0, [r7, r2]
- cmp r0, 0x28
- ble _0813DEC0
- subs r0, r1, 0x4
- strh r0, [r7, 0x20]
- b _0813E0F8
-_0813DEC0:
- adds r0, r7, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r4, _0813DEF0 @ =gSpriteTemplate_840B084
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x68
- movs r3, 0x64
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x3A]
- adds r0, r4, 0
- movs r1, 0xC
- movs r2, 0x6A
- movs r3, 0x65
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x3C]
- b _0813DF42
- .align 2, 0
-_0813DEF0: .4byte gSpriteTemplate_840B084
-_0813DEF4:
- adds r0, r7, 0
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r2, _0813DF28 @ =gSprites
- movs r3, 0x3A
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrh r0, [r7, 0x2E]
- adds r0, 0x1
- strh r0, [r7, 0x2E]
- b _0813E0F8
- .align 2, 0
-_0813DF28: .4byte gSprites
-_0813DF2C:
- ldrh r1, [r7, 0x22]
- movs r2, 0x22
- ldrsh r0, [r7, r2]
- cmp r0, 0xA0
- ble _0813DF48
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0813DF42:
- movs r0, 0x1
- strh r0, [r7, 0x2E]
- b _0813E0F8
-_0813DF48:
- adds r0, r1, 0x2
- strh r0, [r7, 0x22]
- ldrh r0, [r7, 0x20]
- subs r0, 0x1
- strh r0, [r7, 0x20]
- b _0813E0F8
-_0813DF54:
- ldr r6, _0813E094 @ =gSprites
- movs r3, 0x3A
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r5, [r0, 0x24]
- ldrh r1, [r0, 0x20]
- adds r5, r1
- lsls r5, 16
- lsrs r5, 16
- ldrh r4, [r0, 0x26]
- ldrh r2, [r0, 0x22]
- adds r4, r2
- lsls r4, 16
- lsrs r4, 16
- bl DestroySprite
- movs r0, 0x8C
- lsls r0, 1
- lsls r5, 16
- asrs r1, r5, 16
- lsls r4, 16
- asrs r2, r4, 16
- movs r3, 0x1
- mov r8, r3
- str r3, [sp]
- movs r3, 0x2
- bl sub_813CE88
- strh r0, [r7, 0x3A]
- movs r0, 0x3A
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813E098 @ =gSprites + 0x1C
- adds r0, r1
- ldr r2, _0813E09C @ =sub_813DD58
- mov r10, r2
- str r2, [r0]
- movs r3, 0x3A
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- mov r9, r2
- mov r3, r9
- orrs r1, r3
- strb r1, [r0]
- movs r0, 0x3A
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x30]
- movs r2, 0x3A
- ldrsh r1, [r7, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r3, r8
- strh r3, [r0, 0x32]
- lsrs r5, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_813E580
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r5, [r0, 0x24]
- ldrh r1, [r0, 0x20]
- adds r5, r1
- lsls r5, 16
- lsrs r5, 16
- ldrh r4, [r0, 0x26]
- ldrh r2, [r0, 0x22]
- adds r4, r2
- lsls r4, 16
- lsrs r4, 16
- bl DestroySprite
- ldr r0, _0813E0A0 @ =0x0000011b
- lsls r5, 16
- asrs r1, r5, 16
- lsls r4, 16
- asrs r2, r4, 16
- mov r3, r8
- str r3, [sp]
- movs r3, 0x3
- bl sub_813CE88
- strh r0, [r7, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813E098 @ =gSprites + 0x1C
- adds r0, r1
- mov r2, r10
- str r2, [r0]
- movs r3, 0x3C
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- mov r2, r9
- orrs r1, r2
- strb r1, [r0]
- movs r3, 0x3C
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x2
- strh r1, [r0, 0x30]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- strh r1, [r0, 0x32]
- lsrs r5, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_813E580
- movs r0, 0xFF
- lsls r0, 16
- ldr r1, _0813E0A4 @ =0x00007eff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x10
- bl BeginNormalPaletteFade
- mov r2, r8
- strh r2, [r7, 0x2E]
- b _0813E0F8
- .align 2, 0
-_0813E094: .4byte gSprites
-_0813E098: .4byte gSprites + 0x1C
-_0813E09C: .4byte sub_813DD58
-_0813E0A0: .4byte 0x0000011b
-_0813E0A4: .4byte 0x00007eff
-_0813E0A8:
- ldr r3, _0813E0CC @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x3
- strh r2, [r0, 0x2E]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x2E]
- b _0813E0F8
- .align 2, 0
-_0813E0CC: .4byte gSprites
-_0813E0D0:
- movs r2, 0x3A
- ldrsh r1, [r7, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0813E108 @ =gSprites
- adds r0, r4
- bl DestroySprite
- movs r3, 0x3C
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r7, 0
- bl DestroySprite
-_0813E0F8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E108: .4byte gSprites
- thumb_func_end sub_813DE70
-
- thumb_func_start sub_813E10C
-sub_813E10C: @ 813E10C
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bhi _0813E13C
- lsls r0, 2
- ldr r1, _0813E124 @ =_0813E128
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813E124: .4byte _0813E128
- .align 2, 0
-_0813E128:
- .4byte _0813E13C
- .4byte _0813E178
- .4byte _0813E1A6
- .4byte _0813E1C2
- .4byte _0813E1D6
-_0813E13C:
- ldrh r4, [r3, 0x24]
- movs r2, 0x24
- ldrsh r1, [r3, r2]
- movs r0, 0x38
- negs r0, r0
- cmp r1, r0
- ble _0813E158
- adds r0, r4, 0
- subs r0, 0x8
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- adds r0, 0x6
- strh r0, [r3, 0x26]
- b _0813E208
-_0813E158:
- ldrh r0, [r3, 0x20]
- movs r2, 0
- strh r0, [r3, 0x3A]
- ldrh r1, [r3, 0x22]
- strh r1, [r3, 0x3C]
- adds r0, r4
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- adds r1, r0
- strh r1, [r3, 0x22]
- strh r2, [r3, 0x24]
- strh r2, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
- strh r2, [r3, 0x30]
- b _0813E208
-_0813E178:
- ldrh r1, [r3, 0x30]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0813E1A0
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _0813E19C
- ldr r0, _0813E198 @ =0x0000ffff
- strh r0, [r3, 0x24]
- strh r2, [r3, 0x26]
- b _0813E1A0
- .align 2, 0
-_0813E198: .4byte 0x0000ffff
-_0813E19C:
- strh r0, [r3, 0x24]
- strh r0, [r3, 0x26]
-_0813E1A0:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _0813E208
-_0813E1A6:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x3A]
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x3C]
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- b _0813E208
-_0813E1C2:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_0813E1D6:
- ldrh r2, [r3, 0x24]
- movs r0, 0x24
- ldrsh r1, [r3, r0]
- movs r0, 0x38
- negs r0, r0
- cmp r1, r0
- ble _0813E1F0
- subs r0, r2, 0x4
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- adds r0, 0x3
- strh r0, [r3, 0x26]
- b _0813E208
-_0813E1F0:
- ldrh r1, [r3, 0x20]
- adds r0, r2, r1
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_0813E208:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813E10C
-
- thumb_func_start sub_813E210
-sub_813E210: @ 813E210
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bhi _0813E240
- lsls r0, 2
- ldr r1, _0813E228 @ =_0813E22C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813E228: .4byte _0813E22C
- .align 2, 0
-_0813E22C:
- .4byte _0813E240
- .4byte _0813E278
- .4byte _0813E2A6
- .4byte _0813E2C2
- .4byte _0813E2D6
-_0813E240:
- ldrh r4, [r3, 0x24]
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- cmp r0, 0x37
- bgt _0813E258
- adds r0, r4, 0
- adds r0, 0x8
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- subs r0, 0x6
- strh r0, [r3, 0x26]
- b _0813E304
-_0813E258:
- ldrh r0, [r3, 0x20]
- movs r2, 0
- strh r0, [r3, 0x3A]
- ldrh r1, [r3, 0x22]
- strh r1, [r3, 0x3C]
- adds r0, r4
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- adds r1, r0
- strh r1, [r3, 0x22]
- strh r2, [r3, 0x24]
- strh r2, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
- strh r2, [r3, 0x30]
- b _0813E304
-_0813E278:
- ldrh r1, [r3, 0x30]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0813E2A0
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _0813E29C
- strh r2, [r3, 0x24]
- ldr r0, _0813E298 @ =0x0000ffff
- b _0813E29E
- .align 2, 0
-_0813E298: .4byte 0x0000ffff
-_0813E29C:
- strh r0, [r3, 0x24]
-_0813E29E:
- strh r0, [r3, 0x26]
-_0813E2A0:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _0813E304
-_0813E2A6:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x3A]
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x3C]
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- b _0813E304
-_0813E2C2:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_0813E2D6:
- ldrh r1, [r3, 0x24]
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- cmp r0, 0x37
- bgt _0813E2EC
- adds r0, r1, 0x4
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- subs r0, 0x3
- strh r0, [r3, 0x26]
- b _0813E304
-_0813E2EC:
- ldrh r2, [r3, 0x20]
- adds r0, r1, r2
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_0813E304:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813E210
-
- thumb_func_start sub_813E30C
-sub_813E30C: @ 813E30C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- bls _0813E322
- b _0813E4AC
-_0813E322:
- lsls r0, 2
- ldr r1, _0813E32C @ =_0813E330
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813E32C: .4byte _0813E330
- .align 2, 0
-_0813E330:
- .4byte _0813E4AC
- .4byte _0813E384
- .4byte _0813E41C
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E3A8
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E440
-_0813E384:
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- movs r0, 0x24
- strh r0, [r4, 0x36]
-_0813E3A8:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x90
- bgt _0813E3D2
- adds r0, r1, 0x4
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x18
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- strh r0, [r4, 0x32]
-_0813E3D2:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- subs r0, r2
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E3EE
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813E3EE
- subs r0, r2, 0x1
- strh r0, [r4, 0x36]
-_0813E3EE:
- ldr r2, _0813E418 @ =gSineTable
- ldrh r1, [r4, 0x34]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- ldrh r4, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r2
- ldrh r1, [r1]
- negs r3, r4
- lsls r3, 16
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x1
- adds r2, r4, 0
- bl SetOamMatrix
- b _0813E4AC
- .align 2, 0
-_0813E418: .4byte gSineTable
-_0813E41C:
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- movs r0, 0x24
- strh r0, [r4, 0x36]
-_0813E440:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x60
- bgt _0813E46A
- adds r0, r1, 0x3
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x18
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- strh r0, [r4, 0x32]
-_0813E46A:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- subs r0, r2
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E486
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813E486
- subs r0, r2, 0x1
- strh r0, [r4, 0x36]
-_0813E486:
- ldr r2, _0813E4B4 @ =gSineTable
- ldrh r1, [r4, 0x34]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- ldrh r4, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r2
- ldrh r1, [r1]
- negs r3, r4
- lsls r3, 16
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x2
- adds r2, r4, 0
- bl SetOamMatrix
-_0813E4AC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E4B4: .4byte gSineTable
- thumb_func_end sub_813E30C
-
- thumb_func_start sub_813E4B8
-sub_813E4B8: @ 813E4B8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E4DA
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- b _0813E4E4
-_0813E4DA:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
-_0813E4E4:
- strb r0, [r2]
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0x3F
- ble _0813E4F8
- adds r0, r5, 0
- bl DestroySprite
- b _0813E574
-_0813E4F8:
- adds r0, r1, 0x2
- strh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x28
- bl Sin
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 29
- lsrs r0, 24
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- bl Cos
- strh r0, [r5, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- lsls r0, 29
- lsrs r0, 24
- adds r1, r4, 0
- bl Sin
- strh r0, [r5, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0813E574
- ldrh r0, [r5, 0x34]
- ldrh r2, [r5, 0x30]
- subs r0, r2
- strh r0, [r5, 0x34]
- ldrh r1, [r5, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E550
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813E550
- subs r0, r2, 0x1
- strh r0, [r5, 0x30]
-_0813E550:
- ldr r3, _0813E57C @ =gSineTable
- ldrh r1, [r5, 0x34]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r3
- ldrh r2, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r3
- ldrh r1, [r1]
- negs r3, r2
- lsls r3, 16
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x10
- bl SetOamMatrix
-_0813E574:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E57C: .4byte gSineTable
- thumb_func_end sub_813E4B8
-
- thumb_func_start sub_813E580
-sub_813E580: @ 813E580
- push {r4-r7,lr}
- movs r4, 0
- ldr r7, _0813E5D8 @ =gSprites
- lsls r6, r0, 16
- lsls r5, r1, 16
-_0813E58A:
- ldr r0, _0813E5DC @ =gSpriteTemplate_840B0B0
- asrs r1, r6, 16
- asrs r2, r5, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrb r1, [r2, 0x1]
- movs r3, 0x4
- negs r3, r3
- adds r0, r3, 0
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- subs r3, 0x3B
- adds r0, r3, 0
- ands r1, r0
- movs r0, 0x20
- orrs r1, r0
- strb r1, [r2, 0x3]
- strh r4, [r2, 0x2E]
- movs r0, 0x20
- strh r0, [r2, 0x30]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _0813E58A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E5D8: .4byte gSprites
-_0813E5DC: .4byte gSpriteTemplate_840B0B0
- thumb_func_end sub_813E580
-
- thumb_func_start sub_813E5E0
-sub_813E5E0: @ 813E5E0
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0813E5F4 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E5F8
- adds r0, r3, 0
- bl DestroySprite
- b _0813E6B2
- .align 2, 0
-_0813E5F4: .4byte gUnknown_0203931A
-_0813E5F8:
- ldr r2, _0813E6B8 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r4, r12
- ldrb r2, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldrh r1, [r3, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- cmp r0, 0xB
- bgt _0813E630
- adds r0, r1, 0x1
- strh r0, [r3, 0x3C]
-_0813E630:
- ldrh r0, [r3, 0x3A]
- adds r0, 0x4
- strh r0, [r3, 0x3A]
- ldr r4, _0813E6BC @ =gSineTable
- ldrh r0, [r3, 0x34]
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- muls r0, r1
- cmp r0, 0
- bge _0813E652
- adds r0, 0xFF
-_0813E652:
- asrs r0, 8
- ldrh r1, [r3, 0x36]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- muls r0, r1
- cmp r0, 0
- bge _0813E674
- adds r0, 0xFF
-_0813E674:
- asrs r0, 8
- ldrh r1, [r3, 0x38]
- adds r2, r0, r1
- strh r2, [r3, 0x22]
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r4, 0x3C
- ldrsh r0, [r3, r4]
- muls r0, r1
- cmp r0, 0
- bge _0813E696
- adds r0, 0xFF
-_0813E696:
- asrs r0, 8
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x30]
- adds r0, 0x10
- strh r0, [r3, 0x30]
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x32
- ldrsh r1, [r3, r2]
- cmp r0, r1
- ble _0813E6B2
- adds r0, r3, 0
- bl DestroySprite
-_0813E6B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E6B8: .4byte gSprites
-_0813E6BC: .4byte gSineTable
- thumb_func_end sub_813E5E0
-
- thumb_func_start sub_813E6C0
-sub_813E6C0: @ 813E6C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _0813E6E0 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E6E4
- adds r0, r4, 0
- bl DestroySprite
- b _0813E7A8
- .align 2, 0
-_0813E6E0: .4byte gUnknown_0203931A
-_0813E6E4:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r3, _0813E7B8 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0813E7A8
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0813E7A8
- ldrh r0, [r2, 0x20]
- ldrh r7, [r4, 0x30]
- adds r0, r7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- ldrh r0, [r2, 0x22]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- movs r5, 0
- mov r8, r3
- ldr r2, [sp]
- lsls r2, 16
- mov r10, r2
- lsls r7, r6, 16
- mov r9, r7
-_0813E73A:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x43
- ldrb r3, [r0]
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0813E7BC @ =gSpriteTemplate_840B0DC
- mov r2, r10
- asrs r1, r2, 16
- mov r7, r9
- asrs r2, r7, 16
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813E79E
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- add r3, r8
- ldrh r0, [r4, 0x2E]
- strh r0, [r3, 0x2E]
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 18
- movs r0, 0x7
- ands r1, r0
- lsls r1, 5
- lsls r0, r5, 2
- adds r0, r5
- lsls r2, r0, 4
- adds r0, r2
- adds r1, r0
- strh r1, [r3, 0x30]
- ldrh r0, [r4, 0x34]
- strh r0, [r3, 0x32]
- movs r0, 0x68
- strh r0, [r3, 0x34]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r3, 0x36]
- strh r6, [r3, 0x38]
- movs r1, 0
- strh r1, [r3, 0x3A]
-_0813E79E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0813E73A
-_0813E7A8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E7B8: .4byte gSprites
-_0813E7BC: .4byte gSpriteTemplate_840B0DC
- thumb_func_end sub_813E6C0
-
- thumb_func_start sub_813E7C0
-sub_813E7C0: @ 813E7C0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813E7F8 @ =gSpriteTemplate_840B0F4
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0813E7F2
- ldr r1, _0813E7FC @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r2, 0
- strh r4, [r0, 0x2E]
- ldr r1, _0813E800 @ =0x0000fff4
- strh r1, [r0, 0x30]
- strh r2, [r0, 0x32]
- movs r1, 0x88
- strh r1, [r0, 0x34]
-_0813E7F2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E7F8: .4byte gSpriteTemplate_840B0F4
-_0813E7FC: .4byte gSprites
-_0813E800: .4byte 0x0000fff4
- thumb_func_end sub_813E7C0
-
- thumb_func_start sub_813E804
-sub_813E804: @ 813E804
- push {r4-r7,lr}
- adds r3, r0, 0
- ldr r0, _0813E818 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E81C
- adds r0, r3, 0
- bl DestroySprite
- b _0813E928
- .align 2, 0
-_0813E818: .4byte gUnknown_0203931A
-_0813E81C:
- ldr r6, _0813E904 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r7, r12
- ldrb r2, [r7]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0x27
- bgt _0813E85A
- adds r0, r1, 0x2
- strh r0, [r3, 0x34]
-_0813E85A:
- movs r7, 0x2E
- ldrsh r1, [r3, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r2, r1, r0
- ldr r4, _0813E908 @ =gSineTable
- ldrh r5, [r3, 0x30]
- adds r0, r5, 0
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x34
- ldrsh r0, [r3, r7]
- muls r0, r1
- cmp r0, 0
- bge _0813E88A
- adds r0, 0xFF
-_0813E88A:
- asrs r0, 8
- adds r0, r2, r0
- strh r0, [r3, 0x20]
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r2, r1, r0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x34
- ldrsh r0, [r3, r7]
- muls r0, r1
- cmp r0, 0
- bge _0813E8BE
- ldr r1, _0813E90C @ =0x000001ff
- adds r0, r1
-_0813E8BE:
- asrs r0, 9
- adds r0, r2, r0
- strh r0, [r3, 0x22]
- adds r1, r5, 0x2
- strh r1, [r3, 0x30]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r7, 0
- ldrsh r0, [r0, r7]
- cmp r0, 0
- bge _0813E8DC
- adds r0, 0x1F
-_0813E8DC:
- asrs r0, 5
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x32]
- adds r0, 0x8
- strh r0, [r3, 0x32]
- movs r0, 0xFF
- ands r1, r0
- cmp r1, 0x7F
- bgt _0813E910
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- b _0813E922
- .align 2, 0
-_0813E904: .4byte gSprites
-_0813E908: .4byte gSineTable
-_0813E90C: .4byte 0x000001ff
-_0813E910:
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x43
- ldrb r0, [r0]
- adds r0, 0x1
-_0813E922:
- adds r1, r3, 0
- adds r1, 0x43
- strb r0, [r1]
-_0813E928:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813E804
-
- thumb_func_start sub_813E930
-sub_813E930: @ 813E930
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r7, _0813E978 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r7
-_0813E942:
- movs r0, 0x20
- ldrsh r1, [r5, r0]
- movs r0, 0x22
- ldrsh r2, [r5, r0]
- ldr r0, _0813E97C @ =gSpriteTemplate_840B124
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0813E968
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r6, [r0, 0x2E]
- lsls r1, r4, 5
- strh r1, [r0, 0x30]
-_0813E968:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _0813E942
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E978: .4byte gSprites
-_0813E97C: .4byte gSpriteTemplate_840B124
- thumb_func_end sub_813E930
-
- thumb_func_start GetCurrentTrainerHillMapId
-GetCurrentTrainerHillMapId: @ 813E980
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _0813E994 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E998
- adds r0, r3, 0
- bl DestroySprite
- b _0813EA50
- .align 2, 0
-_0813E994: .4byte gUnknown_0203931A
-_0813E998:
- ldr r2, _0813EA58 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r5, r12
- ldrb r2, [r5]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
- ldrh r0, [r3, 0x3A]
- adds r4, r0, 0
- adds r4, 0x8
- strh r4, [r3, 0x3A]
- ldr r2, _0813EA5C @ =gSineTable
- ldrh r0, [r3, 0x34]
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r5, 0
- ldrsh r1, [r0, r5]
- movs r5, 0x3A
- ldrsh r0, [r3, r5]
- muls r0, r1
- cmp r0, 0
- bge _0813E9EC
- adds r0, 0xFF
-_0813E9EC:
- asrs r0, 8
- ldrh r1, [r3, 0x36]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r5, 0x34
- ldrsh r0, [r3, r5]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r5, 0x3A
- ldrsh r0, [r3, r5]
- muls r0, r1
- cmp r0, 0
- bge _0813EA0E
- adds r0, 0xFF
-_0813EA0E:
- asrs r0, 8
- ldrh r1, [r3, 0x38]
- adds r0, r1
- strh r0, [r3, 0x22]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _0813EA20
- adds r0, 0xF
-_0813EA20:
- asrs r0, 4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bls _0813EA2C
- movs r0, 0x9
-_0813EA2C:
- adds r1, r0, 0
- adds r1, 0x12
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0xA0
- ble _0813EA50
- adds r0, r3, 0
- bl DestroySprite
-_0813EA50:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EA58: .4byte gSprites
-_0813EA5C: .4byte gSineTable
- thumb_func_end GetCurrentTrainerHillMapId
-
- thumb_func_start sub_813EA60
-sub_813EA60: @ 813EA60
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- ldr r0, _0813EA7C @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813EA80
- adds r0, r5, 0
- bl DestroySprite
- b _0813EB32
- .align 2, 0
-_0813EA7C: .4byte gUnknown_0203931A
-_0813EA80:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0813EB40 @ =gSprites
- mov r9, r0
- movs r4, 0x2E
- ldrsh r1, [r5, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r9
- adds r3, r0, r1
- movs r4, 0x2E
- ldrsh r1, [r3, r4]
- cmp r1, 0x1
- bne _0813EB32
- ldrh r0, [r5, 0x3C]
- ands r1, r0
- lsls r0, r1, 16
- asrs r6, r0, 16
- cmp r6, 0
- bne _0813EB32
- ldrh r1, [r3, 0x20]
- ldrh r0, [r5, 0x30]
- adds r1, r0
- lsls r1, 16
- ldrh r2, [r3, 0x22]
- ldrh r4, [r5, 0x32]
- adds r2, r4
- lsls r2, 16
- ldr r0, _0813EB44 @ =gSpriteTemplate_840B150
- lsrs r4, r1, 16
- mov r8, r4
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813EB32
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r9
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x24
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldrh r0, [r5, 0x2E]
- strh r0, [r4, 0x2E]
- ldr r2, _0813EB48 @ =gUnknown_0840B168
- ldrh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 17
- movs r1, 0x7
- ands r0, r1
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- mov r0, r8
- strh r0, [r4, 0x36]
- strh r7, [r4, 0x38]
- strh r6, [r4, 0x3A]
-_0813EB32:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EB40: .4byte gSprites
-_0813EB44: .4byte gSpriteTemplate_840B150
-_0813EB48: .4byte gUnknown_0840B168
- thumb_func_end sub_813EA60
-
- thumb_func_start sub_813EB4C
-sub_813EB4C: @ 813EB4C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813EBB0 @ =gSpriteTemplate_840B170
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0813EB80
- ldr r1, _0813EBB4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r4, [r0, 0x2E]
- strh r1, [r0, 0x30]
- movs r1, 0x8
- strh r1, [r0, 0x32]
- movs r1, 0x18
- strh r1, [r0, 0x34]
-_0813EB80:
- movs r4, 0
- ldr r5, _0813EBB8 @ =gUnknown_0840B188
-_0813EB84:
- adds r0, r4, 0
- adds r0, 0x12
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _0813EB84
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EBB0: .4byte gSpriteTemplate_840B170
-_0813EBB4: .4byte gSprites
-_0813EBB8: .4byte gUnknown_0840B188
- thumb_func_end sub_813EB4C
-
- thumb_func_start sub_813EBBC
-sub_813EBBC: @ 813EBBC
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0813EBD0 @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813EBD4
- adds r0, r3, 0
- bl DestroySprite
- b _0813EC80
- .align 2, 0
-_0813EBD0: .4byte gUnknown_0203931A
-_0813EBD4:
- ldr r2, _0813EC88 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r4, r12
- ldrb r2, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
- ldrh r0, [r3, 0x3A]
- adds r0, 0x8
- strh r0, [r3, 0x3A]
- ldr r2, _0813EC8C @ =gSineTable
- ldrh r0, [r3, 0x34]
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- muls r0, r1
- cmp r0, 0
- bge _0813EC26
- adds r0, 0xFF
-_0813EC26:
- asrs r0, 8
- ldrh r1, [r3, 0x36]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r4, 0x34
- ldrsh r0, [r3, r4]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- muls r0, r1
- cmp r0, 0
- bge _0813EC48
- adds r0, 0xFF
-_0813EC48:
- asrs r0, 8
- ldrh r4, [r3, 0x38]
- adds r1, r0, r4
- strh r1, [r3, 0x22]
- movs r4, 0x30
- ldrsh r0, [r3, r4]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _0813EC64
- adds r0, 0x3F
-_0813EC64:
- asrs r0, 6
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x30]
- adds r0, 0x10
- strh r0, [r3, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- movs r4, 0x32
- ldrsh r1, [r3, r4]
- cmp r0, r1
- bge _0813EC80
- adds r0, r3, 0
- bl DestroySprite
-_0813EC80:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EC88: .4byte gSprites
-_0813EC8C: .4byte gSineTable
- thumb_func_end sub_813EBBC
-
- thumb_func_start sub_813EC90
-sub_813EC90: @ 813EC90
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, _0813ECAC @ =gUnknown_0203931A
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813ECB0
- adds r0, r5, 0
- bl DestroySprite
- b _0813EDA0
- .align 2, 0
-_0813ECAC: .4byte gUnknown_0203931A
-_0813ECB0:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0813EDB0 @ =gSprites
- mov r9, r0
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r4, r9
- adds r3, r0, r4
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- bne _0813ED74
- ldrh r0, [r5, 0x3C]
- ands r1, r0
- lsls r0, r1, 16
- asrs r6, r0, 16
- cmp r6, 0
- bne _0813ED66
- ldrh r1, [r3, 0x20]
- ldrh r2, [r5, 0x30]
- adds r1, r2
- lsls r1, 16
- ldrh r2, [r3, 0x22]
- ldrh r4, [r5, 0x32]
- adds r2, r4
- lsls r2, 16
- ldr r0, _0813EDB4 @ =gSpriteTemplate_840B1B0
- lsrs r4, r1, 16
- mov r8, r4
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813ED66
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r9
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x22
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldrh r0, [r5, 0x2E]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 18
- movs r1, 0x7
- ands r0, r1
- lsls r0, 5
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x34]
- strh r0, [r4, 0x32]
- movs r0, 0xE8
- strh r0, [r4, 0x34]
- mov r0, r8
- strh r0, [r4, 0x36]
- strh r7, [r4, 0x38]
- strh r6, [r4, 0x3A]
-_0813ED66:
- ldrh r1, [r5, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- cmp r0, 0x6F
- bgt _0813ED74
- adds r0, r1, 0x4
- strh r0, [r5, 0x3A]
-_0813ED74:
- ldr r1, _0813EDB8 @ =gSineTable
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- movs r4, 0
- ldrsh r0, [r0, r4]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x11
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
-_0813EDA0:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EDB0: .4byte gSprites
-_0813EDB4: .4byte gSpriteTemplate_840B1B0
-_0813EDB8: .4byte gSineTable
- thumb_func_end sub_813EC90
-
- thumb_func_start sub_813EDBC
-sub_813EDBC: @ 813EDBC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813EDF4 @ =gSpriteTemplate_840B1C8
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0813EDEE
- ldr r1, _0813EDF8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r4, [r0, 0x2E]
- strh r1, [r0, 0x30]
- movs r1, 0xC
- strh r1, [r0, 0x32]
- movs r1, 0x18
- strh r1, [r0, 0x34]
-_0813EDEE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EDF4: .4byte gSpriteTemplate_840B1C8
-_0813EDF8: .4byte gSprites
- thumb_func_end sub_813EDBC
-
- thumb_func_start sub_813EDFC
-sub_813EDFC: @ 813EDFC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0813EE12
- adds r4, r5, 0
- adds r4, 0x3E
- cmp r0, 0x1
- beq _0813EE4A
-_0813EE12:
- adds r4, r5, 0
- adds r4, 0x3E
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r5, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r5, 0x1]
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x24
- orrs r0, r1
- strb r0, [r5, 0x3]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- movs r0, 0
- strh r0, [r5, 0x30]
- movs r0, 0x1
- strh r0, [r5, 0x2E]
-_0813EE4A:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813EE62
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- b _0813EE7A
-_0813EE62:
- ldrb r0, [r4]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- ldrh r1, [r5, 0x30]
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- cmp r0, 0x3F
- bgt _0813EE7A
- adds r0, r1, 0x1
- strh r0, [r5, 0x30]
-_0813EE7A:
- ldr r1, _0813EEB0 @ =gSineTable
- ldrh r0, [r5, 0x30]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x12
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EEB0: .4byte gSineTable
- thumb_func_end sub_813EDFC
-
- thumb_func_start FieldInitRegionMap
-FieldInitRegionMap: @ 813EEB4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- bl SetVBlankCallback
- ldr r2, _0813EED8 @ =0x02000000
- ldr r0, _0813EEDC @ =0x00000888
- adds r1, r2, r0
- movs r0, 0
- strh r0, [r1]
- str r4, [r2]
- ldr r0, _0813EEE0 @ =CB2_FieldInitRegionMap
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EED8: .4byte 0x02000000
-_0813EEDC: .4byte 0x00000888
-_0813EEE0: .4byte CB2_FieldInitRegionMap
- thumb_func_end FieldInitRegionMap
-
- thumb_func_start CB2_FieldInitRegionMap
-CB2_FieldInitRegionMap: @ 813EEE4
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x10
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _0813EF98 @ =0x02000008
- movs r1, 0
- bl sub_80FA8EC
- movs r0, 0
- movs r1, 0
- bl sub_80FBCF0
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80FBB3C
- ldr r4, _0813EF9C @ =gWindowConfig_81E709C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r1, _0813EFA0 @ =REG_BG0CNT
- movs r2, 0xF8
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x15
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x3
- bl MenuDrawTextWindow
- ldr r0, _0813EFA4 @ =gOtherText_Hoenn
- movs r1, 0x16
- movs r2, 0x1
- movs r3, 0x38
- bl sub_8072BD8
- movs r0, 0x10
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- bl sub_813F0C8
- ldr r0, _0813EFA8 @ =CB2_FieldRegionMap
- bl SetMainCallback2
- ldr r0, _0813EFAC @ =VBlankCB_FieldRegionMap
- bl SetVBlankCallback
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EF98: .4byte 0x02000008
-_0813EF9C: .4byte gWindowConfig_81E709C
-_0813EFA0: .4byte REG_BG0CNT
-_0813EFA4: .4byte gOtherText_Hoenn
-_0813EFA8: .4byte CB2_FieldRegionMap
-_0813EFAC: .4byte VBlankCB_FieldRegionMap
- thumb_func_end CB2_FieldInitRegionMap
-
- thumb_func_start VBlankCB_FieldRegionMap
-VBlankCB_FieldRegionMap: @ 813EFB0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end VBlankCB_FieldRegionMap
-
- thumb_func_start CB2_FieldRegionMap
-CB2_FieldRegionMap: @ 813EFC4
- push {lr}
- bl sub_813EFDC
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end CB2_FieldRegionMap
-
- thumb_func_start sub_813EFDC
-sub_813EFDC: @ 813EFDC
- push {lr}
- sub sp, 0x4
- ldr r1, _0813EFF8 @ =0x02000000
- ldr r2, _0813EFFC @ =0x00000888
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0813F0B8
- lsls r0, 2
- ldr r1, _0813F000 @ =_0813F004
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813EFF8: .4byte 0x02000000
-_0813EFFC: .4byte 0x00000888
-_0813F000: .4byte _0813F004
- .align 2, 0
-_0813F004:
- .4byte _0813F018
- .4byte _0813F030
- .4byte _0813F04C
- .4byte _0813F078
- .4byte _0813F0A0
-_0813F018:
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _0813F028 @ =0x00001541
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0813F02C @ =0x00000888
- adds r1, r2, r0
- b _0813F08E
- .align 2, 0
-_0813F028: .4byte 0x00001541
-_0813F02C: .4byte 0x00000888
-_0813F030:
- ldr r0, _0813F044 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813F0B8
- ldr r3, _0813F048 @ =0x00000888
- adds r1, r2, r3
- b _0813F08E
- .align 2, 0
-_0813F044: .4byte gPaletteFade
-_0813F048: .4byte 0x00000888
-_0813F04C:
- bl sub_80FAB60
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0813F05E
- bl sub_813F0C8
- b _0813F0B8
-_0813F05E:
- cmp r0, 0x3
- blt _0813F0B8
- cmp r0, 0x5
- bgt _0813F0B8
- ldr r1, _0813F070 @ =0x02000000
- ldr r0, _0813F074 @ =0x00000888
- adds r1, r0
- b _0813F08E
- .align 2, 0
-_0813F070: .4byte 0x02000000
-_0813F074: .4byte 0x00000888
-_0813F078:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813F098 @ =0x02000000
- ldr r2, _0813F09C @ =0x00000888
- adds r1, r2
-_0813F08E:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0813F0B8
- .align 2, 0
-_0813F098: .4byte 0x02000000
-_0813F09C: .4byte 0x00000888
-_0813F0A0:
- ldr r0, _0813F0C0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813F0B8
- bl sub_80FAB10
- ldr r0, _0813F0C4 @ =0x02000000
- ldr r0, [r0]
- bl SetMainCallback2
-_0813F0B8:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0813F0C0: .4byte gPaletteFade
-_0813F0C4: .4byte 0x02000000
- thumb_func_end sub_813EFDC
-
- thumb_func_start sub_813F0C8
-sub_813F0C8: @ 813F0C8
- push {lr}
- movs r0, 0x11
- movs r1, 0x11
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- ldr r1, _0813F0F0 @ =0x02000000
- ldrb r0, [r1, 0x1E]
- cmp r0, 0
- beq _0813F0EA
- adds r0, r1, 0
- adds r0, 0x8
- movs r1, 0x11
- movs r2, 0x11
- bl MenuPrint
-_0813F0EA:
- pop {r0}
- bx r0
- .align 2, 0
-_0813F0F0: .4byte 0x02000000
- thumb_func_end sub_813F0C8
-
- thumb_func_start unref_sub_813F0F4
-unref_sub_813F0F4: @ 813F0F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- ldr r0, _0813F2AC @ =gUnknown_0202F7C8
- ldrb r3, [r0]
- ldr r0, _0813F2B0 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0813F2B4 @ =gUnknown_03004240
- strh r1, [r0]
- ldr r1, _0813F2B8 @ =REG_WININ
- ldr r2, _0813F2BC @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r4, _0813F2C0 @ =0x00003f3d
- adds r0, r4, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r4, 0x80
- lsls r4, 8
- adds r1, r4, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0813F2C4 @ =REG_BLDCNT
- ldr r2, _0813F2C8 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r4, 0x80
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- ldr r2, _0813F2CC @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- mov r9, r0
- ands r0, r1
- movs r1, 0x4
- mov r8, r1
- mov r4, r8
- orrs r0, r4
- strb r0, [r2]
- ldr r0, _0813F2D0 @ =gUnknown_03004340
- adds r3, r0
- ldrb r0, [r3]
- ldr r1, _0813F2D4 @ =gSprites
- mov r10, r1
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r10
- ldrb r7, [r4, 0x6]
- ldrh r6, [r4, 0x38]
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0813F2D8 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- ldr r0, _0813F2D8 @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- ldrb r1, [r4, 0x5]
- mov r0, r9
- ands r0, r1
- mov r2, r8
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r5, r7, 4
- adds r5, r7
- lsls r5, 2
- add r5, r10
- ldrb r1, [r5, 0x5]
- mov r0, r9
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r10
- ldrb r2, [r1, 0x5]
- mov r0, r9
- ands r0, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [sp, 0x14]
- lsls r6, r0, 4
- adds r6, r0
- lsls r6, 2
- mov r1, r10
- adds r7, r6, r1
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0x44
- bl memcpy
- ldr r2, [sp, 0x18]
- lsls r4, r2, 4
- adds r4, r2
- lsls r4, 2
- adds r0, r4, 0
- add r0, r10
- mov r8, r0
- adds r1, r5, 0
- movs r2, 0x44
- bl memcpy
- ldrb r1, [r7, 0x1]
- mov r0, r9
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r7, 0x1]
- mov r2, r8
- ldrb r0, [r2, 0x1]
- mov r2, r9
- ands r2, r0
- orrs r2, r1
- mov r0, r8
- strb r2, [r0, 0x1]
- movs r1, 0x1C
- add r10, r1
- add r6, r10
- ldr r2, _0813F2D8 @ =SpriteCallbackDummy
- str r2, [r6]
- add r4, r10
- str r2, [r4]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _0813F2DC @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0813F2E0 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0813F2E4 @ =gUnknown_08D2EE48
- bl LZDecompressVram
- ldr r0, _0813F2E8 @ =gUnknown_08D2EDFC
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _0813F2EC @ =gUnknown_08D2E150
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _0813F2F0 @ =gUnknown_030042C0
- ldrh r0, [r7, 0x20]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r1]
- ldr r1, _0813F2F4 @ =gUnknown_030041B4
- ldrh r0, [r7, 0x22]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r1]
- ldr r1, _0813F2F8 @ =gTasks
- ldr r4, [sp, 0x10]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA0
- lsls r1, 2
- strh r1, [r0, 0xA]
- mov r1, sp
- ldrh r1, [r1, 0x14]
- strh r1, [r0, 0x8]
- mov r2, sp
- ldrh r2, [r2, 0x18]
- strh r2, [r0, 0xC]
- ldr r1, _0813F2FC @ =sub_813F300
- str r1, [r0]
- 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
-_0813F2AC: .4byte gUnknown_0202F7C8
-_0813F2B0: .4byte gUnknown_030042C4
-_0813F2B4: .4byte gUnknown_03004240
-_0813F2B8: .4byte REG_WININ
-_0813F2BC: .4byte 0x00003f3f
-_0813F2C0: .4byte 0x00003f3d
-_0813F2C4: .4byte REG_BLDCNT
-_0813F2C8: .4byte 0x00003f42
-_0813F2CC: .4byte REG_BG1CNT
-_0813F2D0: .4byte gUnknown_03004340
-_0813F2D4: .4byte gSprites
-_0813F2D8: .4byte SpriteCallbackDummy
-_0813F2DC: .4byte 0x040000d4
-_0813F2E0: .4byte 0x85000400
-_0813F2E4: .4byte gUnknown_08D2EE48
-_0813F2E8: .4byte gUnknown_08D2EDFC
-_0813F2EC: .4byte gUnknown_08D2E150
-_0813F2F0: .4byte gUnknown_030042C0
-_0813F2F4: .4byte gUnknown_030041B4
-_0813F2F8: .4byte gTasks
-_0813F2FC: .4byte sub_813F300
- thumb_func_end unref_sub_813F0F4
-
- thumb_func_start sub_813F300
-sub_813F300: @ 813F300
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813F34C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- mov r9, r0
- ldr r1, _0813F350 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- movs r3, 0
- strh r1, [r4, 0x22]
- ldr r2, _0813F354 @ =gUnknown_030041B4
- lsls r0, r1, 16
- lsrs r0, 24
- ldrh r5, [r2]
- adds r0, r5
- strh r0, [r2]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0x22]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813F394
- cmp r0, 0x1
- bgt _0813F358
- cmp r0, 0
- beq _0813F35E
- b _0813F4B2
- .align 2, 0
-_0813F34C: .4byte gUnknown_0202F7C8
-_0813F350: .4byte gTasks
-_0813F354: .4byte gUnknown_030041B4
-_0813F358:
- cmp r0, 0x2
- beq _0813F3AC
- b _0813F4B2
-_0813F35E:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _0813F36E
- b _0813F4B2
-_0813F36E:
- strh r3, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- adds r1, 0x1
- strh r1, [r4, 0x20]
- ldr r2, _0813F390 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- beq _0813F38C
- b _0813F4B2
-_0813F38C:
- b _0813F3A4
- .align 2, 0
-_0813F390: .4byte REG_BLDALPHA
-_0813F394:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- beq _0813F3A4
- b _0813F4B2
-_0813F3A4:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _0813F4B2
-_0813F3AC:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0813F4B2
- strh r3, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- subs r1, 0x1
- strh r1, [r4, 0x20]
- ldr r6, _0813F4C0 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r6]
- movs r3, 0x20
- ldrsh r5, [r4, r3]
- cmp r5, 0
- bne _0813F4B2
- movs r0, 0
- bl sub_8076464
- ldr r0, _0813F4C4 @ =gUnknown_030042C4
- strh r5, [r0]
- ldr r0, _0813F4C8 @ =gUnknown_03004240
- strh r5, [r0]
- ldr r0, _0813F4CC @ =REG_WININ
- ldr r2, _0813F4D0 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0813F406
- ldr r2, _0813F4D4 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0813F406:
- 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, _0813F4D8 @ =REG_BLDCNT
- strh r5, [r0]
- strh r5, [r6]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813F4DC @ =gSprites
- mov r8, r1
- add r0, r8
- bl DestroySprite
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- bl DestroySprite
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- str r5, [sp, 0xC]
- ldr r1, _0813F4E0 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0813F4E4 @ =0x85000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r2, _0813F4D4 @ =REG_BG1CNT
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- ldr r0, _0813F4E8 @ =gUnknown_03004340
- add r0, r9
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r6, [r1, 0x6]
- ldrh r4, [r1, 0x38]
- lsls r4, 24
- lsrs r4, 24
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r5, 0x4
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r8
- ldrb r3, [r1, 0x5]
- adds r0, r2, 0
- ands r0, r3
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- add r0, r8
- ldrb r1, [r0, 0x5]
- ands r2, r1
- orrs r2, r5
- strb r2, [r0, 0x5]
- adds r0, r7, 0
- bl move_anim_task_del
-_0813F4B2:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F4C0: .4byte REG_BLDALPHA
-_0813F4C4: .4byte gUnknown_030042C4
-_0813F4C8: .4byte gUnknown_03004240
-_0813F4CC: .4byte REG_WININ
-_0813F4D0: .4byte 0x00003f3f
-_0813F4D4: .4byte REG_BG1CNT
-_0813F4D8: .4byte REG_BLDCNT
-_0813F4DC: .4byte gSprites
-_0813F4E0: .4byte 0x040000d4
-_0813F4E4: .4byte 0x85000200
-_0813F4E8: .4byte gUnknown_03004340
- thumb_func_end sub_813F300
-
- thumb_func_start sub_813F4EC
-sub_813F4EC: @ 813F4EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r1, _0813F5D0 @ =gUnknown_03004340
- ldr r0, _0813F5D4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- ldr r7, _0813F5D8 @ =gSprites
- lsls r6, r0, 4
- adds r6, r0
- lsls r6, 2
- adds r6, r7
- ldrb r0, [r6, 0x6]
- str r0, [sp, 0x4]
- ldrh r4, [r6, 0x38]
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F5DC @ =0x0000d709
- bl AllocSpritePalette
- mov r8, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r0, _0813F5E0 @ =0x0000d70a
- bl AllocSpritePalette
- mov r9, r0
- mov r2, r9
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- ldrb r0, [r6, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r1, 0x80
- lsls r1, 1
- adds r3, r1, 0
- orrs r0, r3
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- adds r5, r7
- ldrb r4, [r5, 0x5]
- lsrs r4, 4
- lsls r4, 4
- orrs r4, r3
- lsls r0, 1
- ldr r2, _0813F5E4 @ =gPlttBufferUnfaded
- mov r10, r2
- add r0, r10
- mov r1, r8
- lsls r1, 4
- mov r8, r1
- adds r1, r3, r1
- movs r2, 0x20
- str r3, [sp, 0x8]
- bl LoadPalette
- lsls r4, 1
- add r4, r10
- mov r2, r9
- lsls r2, 4
- mov r9, r2
- ldr r3, [sp, 0x8]
- add r3, r9
- adds r0, r4, 0
- adds r1, r3, 0
- movs r2, 0x20
- bl LoadPalette
- ldrb r1, [r6, 0x5]
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r1
- mov r3, r8
- orrs r0, r3
- strb r0, [r6, 0x5]
- ldr r0, [sp, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r3, [r1, 0x5]
- adds r0, r2, 0
- ands r0, r3
- mov r3, r8
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r5, 0x5]
- ands r2, r0
- mov r0, r9
- orrs r2, r0
- strb r2, [r5, 0x5]
- ldr r0, [sp]
- bl move_anim_task_del
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F5D0: .4byte gUnknown_03004340
-_0813F5D4: .4byte gUnknown_0202F7C8
-_0813F5D8: .4byte gSprites
-_0813F5DC: .4byte 0x0000d709
-_0813F5E0: .4byte 0x0000d70a
-_0813F5E4: .4byte gPlttBufferUnfaded
- thumb_func_end sub_813F4EC
-
- thumb_func_start sub_813F5E8
-sub_813F5E8: @ 813F5E8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0813F684 @ =gUnknown_03004340
- ldr r0, _0813F688 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0813F68C @ =gSprites
- mov r9, r1
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- add r5, r9
- ldrb r0, [r5, 0x6]
- mov r10, r0
- ldrh r6, [r5, 0x38]
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0813F690 @ =0x0000d709
- bl FreeSpritePaletteByTag
- ldr r0, _0813F694 @ =0x0000d70a
- bl FreeSpritePaletteByTag
- ldr r0, _0813F698 @ =0x0000d6ff
- bl IndexOfSpritePaletteTag
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F69C @ =0x0000d704
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsls r4, 4
- ldrb r2, [r5, 0x5]
- movs r3, 0xF
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r4
- strb r1, [r5, 0x5]
- mov r1, r10
- lsls r2, r1, 4
- add r2, r10
- lsls r2, 2
- add r2, r9
- ldrb r5, [r2, 0x5]
- adds r1, r3, 0
- ands r1, r5
- orrs r1, r4
- strb r1, [r2, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r9
- lsrs r0, 20
- ldrb r2, [r1, 0x5]
- ands r3, r2
- orrs r3, r0
- strb r3, [r1, 0x5]
- mov r0, r8
- bl move_anim_task_del
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F684: .4byte gUnknown_03004340
-_0813F688: .4byte gUnknown_0202F7C8
-_0813F68C: .4byte gSprites
-_0813F690: .4byte 0x0000d709
-_0813F694: .4byte 0x0000d70a
-_0813F698: .4byte 0x0000d6ff
-_0813F69C: .4byte 0x0000d704
- thumb_func_end sub_813F5E8
-
- thumb_func_start sub_813F6A0
-sub_813F6A0: @ 813F6A0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813F6C0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0813F6C4 @ =gUnknown_03004B00
- ldrh r0, [r2]
- strh r0, [r1, 0x1C]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0x1E]
- ldr r0, _0813F6C8 @ =sub_813F6CC
- str r0, [r1]
- bx lr
- .align 2, 0
-_0813F6C0: .4byte gTasks
-_0813F6C4: .4byte gUnknown_03004B00
-_0813F6C8: .4byte sub_813F6CC
- thumb_func_end sub_813F6A0
-
- thumb_func_start sub_813F6CC
-sub_813F6CC: @ 813F6CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0813F718 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r6, 0
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0813F78C
- strh r6, [r4, 0x8]
- ldr r0, _0813F71C @ =0x0000d709
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r2, r0, 24
- movs r3, 0x1C
- ldrsh r0, [r4, r3]
- movs r1, 0x2
- cmp r0, 0
- bne _0813F70A
- movs r1, 0x6
-_0813F70A:
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0813F720
- cmp r0, 0x1
- beq _0813F75C
- b _0813F78C
- .align 2, 0
-_0813F718: .4byte gTasks
-_0813F71C: .4byte 0x0000d709
-_0813F720:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _0813F732
- movs r0, 0x10
- strh r0, [r4, 0xC]
-_0813F732:
- lsls r0, r2, 4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2
- orrs r0, r1
- ldrb r2, [r4, 0xC]
- ldr r3, _0813F758 @ =0x00007f74
- movs r1, 0x1
- bl BlendPalette
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bne _0813F78C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _0813F78C
- .align 2, 0
-_0813F758: .4byte 0x00007f74
-_0813F75C:
- ldrh r0, [r4, 0xC]
- subs r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bge _0813F76A
- strh r6, [r4, 0xC]
-_0813F76A:
- lsls r0, r2, 4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2
- orrs r0, r1
- ldrb r2, [r4, 0xC]
- ldr r3, _0813F794 @ =0x00007f74
- movs r1, 0x1
- bl BlendPalette
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _0813F78C
- adds r0, r5, 0
- bl move_anim_task_del
-_0813F78C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F794: .4byte 0x00007f74
- thumb_func_end sub_813F6CC
-
- thumb_func_start sub_813F798
-sub_813F798: @ 813F798
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0813F7C4 @ =gUnknown_02024BE0
- ldr r0, _0813F7C8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r5, [r0]
- ldr r1, _0813F7CC @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813F7E6
- cmp r0, 0x1
- bgt _0813F7D0
- cmp r0, 0
- beq _0813F7D6
- b _0813F838
- .align 2, 0
-_0813F7C4: .4byte gUnknown_02024BE0
-_0813F7C8: .4byte gUnknown_0202F7C8
-_0813F7CC: .4byte gTasks
-_0813F7D0:
- cmp r0, 0x2
- beq _0813F818
- b _0813F838
-_0813F7D6:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x1C]
- b _0813F80A
-_0813F7E6:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x30
- strh r0, [r4, 0x1C]
- movs r0, 0x1C
- ldrsh r2, [r4, r0]
- adds r0, r5, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r5, 0
- bl sub_8079A64
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- ldr r0, _0813F814 @ =0x000002cf
- cmp r1, r0
- ble _0813F838
-_0813F80A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0813F838
- .align 2, 0
-_0813F814: .4byte 0x000002cf
-_0813F818:
- adds r0, r5, 0
- bl sub_8078F40
- ldr r1, _0813F840 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0
- bl move_anim_task_del
-_0813F838:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F840: .4byte gSprites
- thumb_func_end sub_813F798
-
- thumb_func_start sub_813F844
-sub_813F844: @ 813F844
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0813F87C @ =gUnknown_02024BE0
- ldr r4, _0813F880 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- adds r1, r0, r1
- ldrb r1, [r1]
- mov r9, r1
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0813F88C
- ldr r1, _0813F884 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0813F888 @ =gPlayerParty
- b _0813F89C
- .align 2, 0
-_0813F87C: .4byte gUnknown_02024BE0
-_0813F880: .4byte gUnknown_0202F7C8
-_0813F884: .4byte gUnknown_02024A6A
-_0813F888: .4byte gPlayerParty
-_0813F88C:
- ldr r1, _0813F8CC @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0813F8D0 @ =gEnemyParty
-_0813F89C:
- adds r0, r1
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _0813F8D4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r6, r0, r2
- movs r0, 0x8
- ldrsh r7, [r6, r0]
- cmp r7, 0
- beq _0813F8D8
- cmp r7, 0x1
- beq _0813F958
- b _0813F982
- .align 2, 0
-_0813F8CC: .4byte gUnknown_02024A6A
-_0813F8D0: .4byte gEnemyParty
-_0813F8D4: .4byte gTasks
-_0813F8D8:
- ldr r5, _0813F950 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- adds r1, r0, 0
- lsls r1, 24
- ldr r2, _0813F954 @ =gSprites
- mov r3, r9
- lsls r0, r3, 4
- add r0, r9
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r0, 0x43
- ldrb r3, [r0]
- movs r0, 0x80
- lsls r0, 22
- adds r1, r0
- lsrs r1, 24
- mov r0, r8
- str r0, [sp]
- adds r0, r4, 0
- bl sub_814086C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x1C]
- str r7, [sp]
- str r7, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r2, r0, 0
- ldrb r1, [r5]
- movs r0, 0
- mov r3, r8
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x1E]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0813F982
- .align 2, 0
-_0813F950: .4byte gUnknown_0202F7C8
-_0813F954: .4byte gSprites
-_0813F958:
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _0813F982
- movs r3, 0x1E
- ldrsh r0, [r6, r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _0813F982
- adds r0, r5, 0
- bl move_anim_task_del
-_0813F982:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813F844
-
- thumb_func_start sub_813F990
-sub_813F990: @ 813F990
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F9B4 @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r0, 24
- bl sub_80478DC
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F9B4: .4byte gUnknown_02024C04
- thumb_func_end sub_813F990
-
- thumb_func_start sub_813F9B8
-sub_813F9B8: @ 813F9B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F9DC @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r0, 24
- bl sub_804794C
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F9DC: .4byte gUnknown_02024C04
- thumb_func_end sub_813F9B8
-
- thumb_func_start sub_813F9E0
-sub_813F9E0: @ 813F9E0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813F9F4 @ =0x02017840
- ldrb r0, [r0, 0x8]
- cmp r0, 0x5
- bne _0813FA00
- ldr r1, _0813F9F8 @ =gUnknown_03004B00
- ldr r0, _0813F9FC @ =0x0000ffff
- b _0813FA04
- .align 2, 0
-_0813F9F4: .4byte 0x02017840
-_0813F9F8: .4byte gUnknown_03004B00
-_0813F9FC: .4byte 0x0000ffff
-_0813FA00:
- ldr r1, _0813FA10 @ =gUnknown_03004B00
- movs r0, 0
-_0813FA04:
- strh r0, [r1, 0xE]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_0813FA10: .4byte gUnknown_03004B00
- thumb_func_end sub_813F9E0
-
- thumb_func_start ball_number_to_ball_processing_index
-ball_number_to_ball_processing_index: @ 813FA14
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- subs r0, 0x1
- cmp r0, 0xB
- bhi _0813FA8C
- lsls r0, 2
- ldr r1, _0813FA2C @ =_0813FA30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813FA2C: .4byte _0813FA30
- .align 2, 0
-_0813FA30:
- .4byte _0813FA60
- .4byte _0813FA64
- .4byte _0813FA68
- .4byte _0813FA8C
- .4byte _0813FA6C
- .4byte _0813FA70
- .4byte _0813FA74
- .4byte _0813FA78
- .4byte _0813FA7C
- .4byte _0813FA80
- .4byte _0813FA84
- .4byte _0813FA88
-_0813FA60:
- movs r0, 0x4
- b _0813FA8E
-_0813FA64:
- movs r0, 0x3
- b _0813FA8E
-_0813FA68:
- movs r0, 0x1
- b _0813FA8E
-_0813FA6C:
- movs r0, 0x2
- b _0813FA8E
-_0813FA70:
- movs r0, 0x5
- b _0813FA8E
-_0813FA74:
- movs r0, 0x6
- b _0813FA8E
-_0813FA78:
- movs r0, 0x7
- b _0813FA8E
-_0813FA7C:
- movs r0, 0x8
- b _0813FA8E
-_0813FA80:
- movs r0, 0x9
- b _0813FA8E
-_0813FA84:
- movs r0, 0xA
- b _0813FA8E
-_0813FA88:
- movs r0, 0xB
- b _0813FA8E
-_0813FA8C:
- movs r0, 0
-_0813FA8E:
- pop {r1}
- bx r1
- thumb_func_end ball_number_to_ball_processing_index
-
- thumb_func_start sub_813FA94
-sub_813FA94: @ 813FA94
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r10, r0
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _0813FB58 @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _0813FB5C @ =gSpriteTemplate_820AAB4
- adds r0, r1
- movs r1, 0x20
- movs r2, 0x50
- movs r3, 0x1D
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _0813FB60 @ =gSprites
- mov r9, r1
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r6, r4, r1
- movs r0, 0x22
- strh r0, [r6, 0x2E]
- ldr r2, _0813FB64 @ =gUnknown_0202F7C9
- mov r8, r2
- ldrb r0, [r2]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x30]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r6, 0x32]
- mov r0, r9
- adds r0, 0x1C
- adds r4, r0
- ldr r0, _0813FB68 @ =sub_813FD90
- str r0, [r4]
- ldr r3, _0813FB6C @ =0x02017840
- ldr r1, _0813FB70 @ =gUnknown_02024BE0
- mov r2, r8
- ldrb r0, [r2]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- lsls r1, 1
- ldrb r2, [r3, 0x9]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x9]
- ldr r1, _0813FB74 @ =gTasks
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r1, _0813FB78 @ =sub_813FB7C
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FB58: .4byte gUnknown_02024C04
-_0813FB5C: .4byte gSpriteTemplate_820AAB4
-_0813FB60: .4byte gSprites
-_0813FB64: .4byte gUnknown_0202F7C9
-_0813FB68: .4byte sub_813FD90
-_0813FB6C: .4byte 0x02017840
-_0813FB70: .4byte gUnknown_02024BE0
-_0813FB74: .4byte gTasks
-_0813FB78: .4byte sub_813FB7C
- thumb_func_end sub_813FA94
-
- thumb_func_start sub_813FB7C
-sub_813FB7C: @ 813FB7C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0813FBAC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- ldr r2, _0813FBB0 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- ldr r0, _0813FBB4 @ =0x0000ffff
- cmp r1, r0
- bne _0813FBA6
- adds r0, r3, 0
- bl move_anim_task_del
-_0813FBA6:
- pop {r0}
- bx r0
- .align 2, 0
-_0813FBAC: .4byte gTasks
-_0813FBB0: .4byte gSprites
-_0813FBB4: .4byte 0x0000ffff
- thumb_func_end sub_813FB7C
-
- thumb_func_start sub_813FBB8
-sub_813FBB8: @ 813FBB8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813FBD8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0813FBDC
- movs r6, 0x20
- movs r5, 0xB
- b _0813FBE0
- .align 2, 0
-_0813FBD8: .4byte gUnknown_020239F8
-_0813FBDC:
- movs r6, 0x17
- movs r5, 0x5
-_0813FBE0:
- ldr r0, _0813FC9C @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079E90
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _0813FCA0 @ =gSpriteTemplate_820AAB4
- adds r0, r1
- adds r1, r6, 0
- adds r1, 0x20
- movs r2, 0x50
- orrs r5, r2
- adds r2, r5, 0
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0813FCA4 @ =gSprites
- mov r9, r0
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r6, r4, r0
- movs r0, 0x22
- strh r0, [r6, 0x2E]
- ldr r1, _0813FCA8 @ =gUnknown_0202F7C9
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x30]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r6, 0x32]
- mov r0, r9
- adds r0, 0x1C
- adds r4, r0
- ldr r0, _0813FCAC @ =SpriteCallbackDummy
- str r0, [r4]
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _0813FCB0 @ =gUnknown_02024BE0
- lsls r0, 24
- lsrs r0, 24
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r1, _0813FCB4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r1, _0813FCB8 @ =sub_813FCBC
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FC9C: .4byte gUnknown_02024C04
-_0813FCA0: .4byte gSpriteTemplate_820AAB4
-_0813FCA4: .4byte gSprites
-_0813FCA8: .4byte gUnknown_0202F7C9
-_0813FCAC: .4byte SpriteCallbackDummy
-_0813FCB0: .4byte gUnknown_02024BE0
-_0813FCB4: .4byte gTasks
-_0813FCB8: .4byte sub_813FCBC
- thumb_func_end sub_813FBB8
-
- thumb_func_start sub_813FCBC
-sub_813FCBC: @ 813FCBC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0813FD1C @ =gSprites
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _0813FD20 @ =gUnknown_02024BE0
- lsls r0, 24
- lsrs r0, 24
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813FD16
- movs r0, 0x3D
- movs r1, 0
- bl PlaySE12WithPanning
- ldr r0, _0813FD24 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813FD28 @ =sub_813FD90
- str r1, [r0]
- ldr r0, _0813FD2C @ =sub_813FD34
- movs r1, 0xA
- bl CreateTask
- ldr r0, _0813FD30 @ =sub_813FB7C
- str r0, [r4]
-_0813FD16:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FD1C: .4byte gSprites
-_0813FD20: .4byte gUnknown_02024BE0
-_0813FD24: .4byte gTasks
-_0813FD28: .4byte sub_813FD90
-_0813FD2C: .4byte sub_813FD34
-_0813FD30: .4byte sub_813FB7C
- thumb_func_end sub_813FCBC
-
- thumb_func_start sub_813FD34
-sub_813FD34: @ 813FD34
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0813FD88 @ =gSprites
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _0813FD8C @ =gUnknown_02024BE0
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- bge _0813FD80
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl DestroyTask
-_0813FD80:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FD88: .4byte gSprites
-_0813FD8C: .4byte gUnknown_02024BE0
- thumb_func_end sub_813FD34
-
- thumb_func_start sub_813FD90
-sub_813FD90: @ 813FD90
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x32]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r0, _0813FDB8 @ =0x0000ffd8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _0813FDBC @ =sub_813FDC0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FDB8: .4byte 0x0000ffd8
-_0813FDBC: .4byte sub_813FDC0
- thumb_func_end sub_813FD90
-
- thumb_func_start sub_813FDC0
-sub_813FDC0: @ 813FDC0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _0813FE5A
- ldr r0, _0813FDE0 @ =0x02017840
- ldrb r0, [r0, 0x8]
- cmp r0, 0x5
- bne _0813FDE8
- ldr r0, _0813FDE4 @ =sub_81407B8
- str r0, [r4, 0x1C]
- b _0813FE5A
- .align 2, 0
-_0813FDE0: .4byte 0x02017840
-_0813FDE4: .4byte sub_81407B8
-_0813FDE8:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x26]
- adds r1, r4, 0
- adds r1, 0x2E
- movs r2, 0
- adds r0, r4, 0
- adds r0, 0x3C
-_0813FE10:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _0813FE10
- movs r0, 0
- strh r0, [r4, 0x38]
- ldr r0, _0813FE64 @ =sub_813FE70
- str r0, [r4, 0x1C]
- ldr r0, _0813FE68 @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xB
- bgt _0813FE5A
- cmp r5, 0
- blt _0813FE5A
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- str r5, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- ldr r0, _0813FE6C @ =gUnknown_0202F7C9
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0xE
- adds r3, r5, 0
- bl sub_8141314
-_0813FE5A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FE64: .4byte sub_813FE70
-_0813FE68: .4byte gUnknown_02024C04
-_0813FE6C: .4byte gUnknown_0202F7C9
- thumb_func_end sub_813FDC0
-
- thumb_func_start sub_813FE70
-sub_813FE70: @ 813FE70
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0813FEAC
- ldr r0, _0813FEB4 @ =TaskDummy
- movs r1, 0x32
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x38]
- ldr r0, _0813FEB8 @ =sub_813FEC8
- str r0, [r4, 0x1C]
- ldr r2, _0813FEBC @ =gSprites
- ldr r1, _0813FEC0 @ =gUnknown_02024BE0
- ldr r0, _0813FEC4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x30]
-_0813FEAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FEB4: .4byte TaskDummy
-_0813FEB8: .4byte sub_813FEC8
-_0813FEBC: .4byte gSprites
-_0813FEC0: .4byte gUnknown_02024BE0
-_0813FEC4: .4byte gUnknown_0202F7C9
- thumb_func_end sub_813FE70
-
- thumb_func_start sub_813FEC8
-sub_813FEC8: @ 813FEC8
- push {r4-r7,lr}
- adds r7, r0, 0
- ldr r1, _0813FF0C @ =gUnknown_02024BE0
- ldr r0, _0813FF10 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r0, r1
- ldrb r4, [r0]
- ldrh r0, [r7, 0x38]
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0813FF14 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _0813FEFA
- movs r0, 0x3C
- bl PlaySE
-_0813FEFA:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0813FF70
- cmp r0, 0x1
- bgt _0813FF18
- cmp r0, 0
- beq _0813FF1E
- b _0813FFDC
- .align 2, 0
-_0813FF0C: .4byte gUnknown_02024BE0
-_0813FF10: .4byte gUnknown_0202F7C9
-_0813FF14: .4byte gTasks
-_0813FF18:
- cmp r0, 0x2
- beq _0813FFB4
- b _0813FFDC
-_0813FF1E:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x1C]
- ldr r1, _0813FF60 @ =gUnknown_03005F0C
- movs r0, 0x1C
- str r0, [r1]
- ldr r2, _0813FF64 @ =gUnknown_03005F14
- ldr r1, _0813FF68 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- ldrh r0, [r7, 0x26]
- ldrh r7, [r7, 0x22]
- adds r0, r7
- subs r1, r0
- strh r1, [r2]
- ldr r4, _0813FF6C @ =gUnknown_03005F10
- ldrh r0, [r2]
- lsls r0, 8
- movs r1, 0x1C
- bl __udivsi3
- strh r0, [r4]
- strh r0, [r5, 0xC]
- b _0813FFCE
- .align 2, 0
-_0813FF60: .4byte gUnknown_03005F0C
-_0813FF64: .4byte gUnknown_03005F14
-_0813FF68: .4byte gSprites
-_0813FF6C: .4byte gUnknown_03005F10
-_0813FF70:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x20
- strh r0, [r5, 0x1C]
- movs r0, 0x1C
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0xC]
- ldrh r1, [r5, 0xE]
- adds r0, r1
- strh r0, [r5, 0xE]
- ldr r0, _0813FFAC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- negs r0, r0
- asrs r0, 8
- strh r0, [r1, 0x26]
- movs r0, 0x1C
- ldrsh r1, [r5, r0]
- ldr r0, _0813FFB0 @ =0x0000047f
- cmp r1, r0
- ble _08140004
- b _0813FFCE
- .align 2, 0
-_0813FFAC: .4byte gSprites
-_0813FFB0: .4byte 0x0000047f
-_0813FFB4:
- adds r0, r4, 0
- bl sub_8078F40
- ldr r1, _0813FFD8 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0813FFCE:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _08140004
- .align 2, 0
-_0813FFD8: .4byte gSprites
-_0813FFDC:
- ldr r0, _0814000C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0xA
- ble _08140004
- adds r0, r6, 0
- bl DestroyTask
- adds r0, r7, 0
- movs r1, 0x2
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r7, 0x38]
- ldr r0, _08140010 @ =sub_8140014
- str r0, [r7, 0x1C]
-_08140004:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814000C: .4byte gTasks
-_08140010: .4byte sub_8140014
- thumb_func_end sub_813FEC8
-
- thumb_func_start sub_8140014
-sub_8140014: @ 8140014
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0814004E
- movs r1, 0
- strh r1, [r4, 0x34]
- movs r0, 0x20
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- movs r0, 0
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldr r0, _08140054 @ =sub_8140058
- str r0, [r4, 0x1C]
-_0814004E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08140054: .4byte sub_8140058
- thumb_func_end sub_8140014
-
- thumb_func_start sub_8140058
-sub_8140058: @ 8140058
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0
- beq _0814006E
- cmp r1, 0x1
- beq _081400E2
- b _0814010E
-_0814006E:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- adds r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3F
- ble _0814010E
- ldrh r0, [r4, 0x36]
- subs r0, 0xA
- strh r0, [r4, 0x36]
- ldr r1, _081400B8 @ =0x00000101
- adds r0, r2, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _081400AA
- movs r5, 0x1
-_081400AA:
- cmp r0, 0x2
- beq _081400CA
- cmp r0, 0x2
- bgt _081400BC
- cmp r0, 0x1
- beq _081400C2
- b _081400DA
- .align 2, 0
-_081400B8: .4byte 0x00000101
-_081400BC:
- cmp r0, 0x3
- beq _081400D2
- b _081400DA
-_081400C2:
- movs r0, 0x38
- bl PlaySE
- b _0814010E
-_081400CA:
- movs r0, 0x39
- bl PlaySE
- b _0814010E
-_081400D2:
- movs r0, 0x3A
- bl PlaySE
- b _0814010E
-_081400DA:
- movs r0, 0x3B
- bl PlaySE
- b _0814010E
-_081400E2:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- subs r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- subs r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- cmp r1, 0
- bgt _0814010E
- strh r5, [r4, 0x38]
- ldr r0, _08140138 @ =0xffffff00
- ands r0, r2
- strh r0, [r4, 0x34]
-_0814010E:
- cmp r5, 0
- beq _0814014E
- movs r5, 0
- strh r5, [r4, 0x34]
- movs r0, 0x40
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- ldr r0, _0814013C @ =0x02017840
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08140144
- strh r5, [r4, 0x38]
- ldr r0, _08140140 @ =sub_8140410
- str r0, [r4, 0x1C]
- b _0814014E
- .align 2, 0
-_08140138: .4byte 0xffffff00
-_0814013C: .4byte 0x02017840
-_08140140: .4byte sub_8140410
-_08140144:
- ldr r0, _08140154 @ =sub_8140158
- str r0, [r4, 0x1C]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
-_0814014E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08140154: .4byte sub_8140158
- thumb_func_end sub_8140058
-
- thumb_func_start sub_8140158
-sub_8140158: @ 8140158
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08140190
- strh r5, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _08140198 @ =0x02017840
- strh r5, [r0, 0xC]
- ldr r0, _0814019C @ =sub_81401A0
- str r0, [r4, 0x1C]
- movs r0, 0x17
- bl PlaySE
-_08140190:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08140198: .4byte 0x02017840
-_0814019C: .4byte sub_81401A0
- thumb_func_end sub_8140158
-
- thumb_func_start sub_81401A0
-sub_81401A0: @ 81401A0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x6
- bls _081401B0
- b _081403C4
-_081401B0:
- lsls r0, r1, 2
- ldr r1, _081401BC @ =_081401C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081401BC: .4byte _081401C0
- .align 2, 0
-_081401C0:
- .4byte _081401DC
- .4byte _08140226
- .4byte _0814026C
- .4byte _081402C0
- .4byte _08140310
- .4byte _08140368
- .4byte _081403C4
-_081401DC:
- ldr r0, _081401F8 @ =0x02017840
- ldrh r2, [r0, 0xC]
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- ble _081401FC
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r2
- b _08140200
- .align 2, 0
-_081401F8: .4byte 0x02017840
-_081401FC:
- adds r0, r2, 0
- adds r0, 0xB0
-_08140200:
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xE
- bhi _08140224
- b _0814040A
-_08140224:
- b _081402B4
-_08140226:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _081402CC
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _08140262
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _0814040A
-_08140262:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _0814040A
-_0814026C:
- ldr r0, _08140288 @ =0x02017840
- ldrh r2, [r0, 0xC]
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- ble _0814028C
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r2
- b _08140290
- .align 2, 0
-_08140288: .4byte 0x02017840
-_0814028C:
- adds r0, r2, 0
- adds r0, 0xB0
-_08140290:
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0xC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x18
- bhi _081402B4
- b _0814040A
-_081402B4:
- strh r3, [r5, 0xC]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- strh r3, [r4, 0x38]
- b _0814040A
-_081402C0:
- ldrh r0, [r4, 0x38]
- adds r1, r0, 0x1
- strh r1, [r4, 0x38]
- lsls r0, 16
- cmp r0, 0
- bge _081402DA
-_081402CC:
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _0814040A
-_081402DA:
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _08140308
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _08140310
-_08140308:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_08140310:
- ldr r0, _0814032C @ =0x02017840
- ldrh r2, [r0, 0xC]
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- ble _08140330
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r2
- b _08140334
- .align 2, 0
-_0814032C: .4byte 0x02017840
-_08140330:
- adds r0, r2, 0
- adds r0, 0xB0
-_08140334:
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bls _0814040A
- strh r3, [r5, 0xC]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- strh r3, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- b _0814040A
-_08140368:
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r1, r0, 24
- ldr r0, _08140394 @ =0x02017840
- ldrb r0, [r0, 0x8]
- cmp r1, r0
- bne _0814039C
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08140398 @ =sub_8140410
- str r0, [r4, 0x1C]
- b _0814040A
- .align 2, 0
-_08140394: .4byte 0x02017840
-_08140398: .4byte sub_8140410
-_0814039C:
- cmp r0, 0x4
- bne _081403B0
- cmp r1, 0x3
- bne _081403B0
- ldr r0, _081403AC @ =sub_8140434
- str r0, [r4, 0x1C]
- b _081403B6
- .align 2, 0
-_081403AC: .4byte sub_8140434
-_081403B0:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
-_081403B6:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- b _0814040A
-_081403C4:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0814040A
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r1, [r4, 0x34]
- ldr r0, _081403F8 @ =0xffffff00
- ands r0, r1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _081403FC
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _08140404
- .align 2, 0
-_081403F8: .4byte 0xffffff00
-_081403FC:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08140404:
- movs r0, 0x17
- bl PlaySE
-_0814040A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81401A0
-
- thumb_func_start sub_8140410
-sub_8140410: @ 8140410
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x38]
- adds r0, 0x1
- strh r0, [r1, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0814042A
- movs r0, 0
- strh r0, [r1, 0x38]
- ldr r0, _08140430 @ =sub_81405F4
- str r0, [r1, 0x1C]
-_0814042A:
- pop {r0}
- bx r0
- .align 2, 0
-_08140430: .4byte sub_81405F4
- thumb_func_end sub_8140410
-
- thumb_func_start sub_8140434
-sub_8140434: @ 8140434
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r1, [r3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _08140450 @ =sub_8140454
- str r1, [r0, 0x1C]
- movs r1, 0
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- bx lr
- .align 2, 0
-_08140450: .4byte sub_8140454
- thumb_func_end sub_8140434
-
- thumb_func_start sub_8140454
-sub_8140454: @ 8140454
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r7, _08140484 @ =gUnknown_0202F7C9
- ldrh r0, [r6, 0x36]
- adds r0, 0x1
- strh r0, [r6, 0x36]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0x28
- beq _081404CC
- cmp r1, 0x5F
- bne _08140490
- ldr r0, _08140488 @ =gUnknown_02024E6D
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- bl sub_8043EB4
- bl m4aMPlayAllStop
- ldr r0, _0814048C @ =0x00000173
- bl PlaySE
- b _081404CC
- .align 2, 0
-_08140484: .4byte gUnknown_0202F7C9
-_08140488: .4byte gUnknown_02024E6D
-_0814048C: .4byte 0x00000173
-_08140490:
- ldr r0, _081404D4 @ =0x0000013b
- cmp r1, r0
- bne _081404CC
- ldr r5, _081404D8 @ =gSprites
- ldr r4, _081404DC @ =gUnknown_02024BE0
- ldrb r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- movs r0, 0
- strh r0, [r6, 0x2E]
- ldr r0, _081404E0 @ =sub_81404E4
- str r0, [r6, 0x1C]
-_081404CC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081404D4: .4byte 0x0000013b
-_081404D8: .4byte gSprites
-_081404DC: .4byte gUnknown_02024BE0
-_081404E0: .4byte sub_81404E4
- thumb_func_end sub_8140454
-
- thumb_func_start sub_81404E4
-sub_81404E4: @ 81404E4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08140550
- cmp r0, 0x1
- bgt _081404FC
- cmp r0, 0
- beq _08140502
- b _08140594
-_081404FC:
- cmp r0, 0x2
- beq _08140580
- b _08140594
-_08140502:
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r1, _08140548 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, [r4, 0x14]
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- ldr r0, _0814054C @ =0x00007fff
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0814058C
- .align 2, 0
-_08140548: .4byte REG_BLDCNT
-_0814054C: .4byte 0x00007fff
-_08140550:
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- ble _081405B2
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- ldr r3, _0814057C @ =REG_BLDALPHA
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081405B2
- b _0814058C
- .align 2, 0
-_0814057C: .4byte REG_BLDALPHA
-_08140580:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0814058C:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081405B2
-_08140594:
- ldr r0, _081405BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _081405B2
- ldr r0, _081405C0 @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- strh r1, [r4, 0x2E]
- ldr r0, _081405C4 @ =sub_81405C8
- str r0, [r4, 0x1C]
-_081405B2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081405BC: .4byte gPaletteFade
-_081405C0: .4byte REG_BLDCNT
-_081405C4: .4byte sub_81405C8
- thumb_func_end sub_81404E4
-
- thumb_func_start sub_81405C8
-sub_81405C8: @ 81405C8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _081405E0
- ldr r0, _081405DC @ =0x0000ffff
- strh r0, [r4, 0x2E]
- b _081405EC
- .align 2, 0
-_081405DC: .4byte 0x0000ffff
-_081405E0:
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_081405EC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81405C8
-
- thumb_func_start sub_81405F4
-sub_81405F4: @ 81405F4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r0, _081406A8 @ =sub_81406BC
- str r0, [r4, 0x1C]
- ldr r0, _081406AC @ =gUnknown_02024C04
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xB
- bgt _08140646
- cmp r5, 0
- blt _08140646
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- str r5, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- ldr r0, _081406B0 @ =gUnknown_0202F7C9
- ldrb r1, [r0]
- movs r0, 0x1
- movs r2, 0xE
- adds r3, r5, 0
- bl sub_8141314
-_08140646:
- ldr r6, _081406B4 @ =gSprites
- ldr r5, _081406B8 @ =gUnknown_02024BE0
- ldr r4, _081406B0 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl AnimateSprite
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x80
- lsls r1, 5
- strh r1, [r0, 0x30]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081406A8: .4byte sub_81406BC
-_081406AC: .4byte gUnknown_02024C04
-_081406B0: .4byte gUnknown_0202F7C9
-_081406B4: .4byte gSprites
-_081406B8: .4byte gUnknown_02024BE0
- thumb_func_end sub_81405F4
-
- thumb_func_start sub_81406BC
-sub_81406BC: @ 81406BC
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081406DA
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_081406DA:
- ldr r4, _08140708 @ =gSprites
- ldr r3, _0814070C @ =gUnknown_02024BE0
- ldr r2, _08140710 @ =gUnknown_0202F7C9
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r4
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _08140714
- adds r0, r1, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r5, 0x1
- b _08140734
- .align 2, 0
-_08140708: .4byte gSprites
-_0814070C: .4byte gUnknown_02024BE0
-_08140710: .4byte gUnknown_0202F7C9
-_08140714:
- ldr r6, _0814079C @ =0xfffffee0
- adds r0, r6, 0
- ldrh r6, [r1, 0x30]
- adds r0, r6
- strh r0, [r1, 0x30]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r1, 0x26]
-_08140734:
- adds r0, r7, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08140796
- cmp r5, 0
- beq _08140796
- ldr r4, _081407A0 @ =gSprites
- ldr r3, _081407A4 @ =gUnknown_02024BE0
- ldr r2, _081407A8 @ =gUnknown_0202F7C9
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r6, 0
- movs r5, 0
- strh r5, [r0, 0x26]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldr r0, _081407AC @ =0x02017840
- ldrb r1, [r0, 0x9]
- lsls r1, 30
- adds r2, 0x3E
- lsrs r1, 31
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- strh r5, [r7, 0x2E]
- ldr r0, _081407B0 @ =sub_81405C8
- str r0, [r7, 0x1C]
- ldr r0, _081407B4 @ =gUnknown_02024E6D
- strb r6, [r0]
- movs r0, 0x1
- bl sub_8043EB4
-_08140796:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814079C: .4byte 0xfffffee0
-_081407A0: .4byte gSprites
-_081407A4: .4byte gUnknown_02024BE0
-_081407A8: .4byte gUnknown_0202F7C9
-_081407AC: .4byte 0x02017840
-_081407B0: .4byte sub_81405C8
-_081407B4: .4byte gUnknown_02024E6D
- thumb_func_end sub_81406BC
-
- thumb_func_start sub_81407B8
-sub_81407B8: @ 81407B8
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x26]
- ldrh r3, [r2, 0x22]
- adds r0, r3
- strh r0, [r2, 0x22]
- strh r1, [r2, 0x26]
- strh r1, [r2, 0x24]
- ldr r4, _081407F0 @ =sub_81407F4
- movs r3, 0
- movs r1, 0x5
- adds r0, r2, 0
- adds r0, 0x38
-_081407DC:
- strh r3, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _081407DC
- str r4, [r2, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081407F0: .4byte sub_81407F4
- thumb_func_end sub_81407B8
-
- thumb_func_start sub_81407F4
-sub_81407F4: @ 81407F4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x80
- lsls r0, 4
- adds r2, r0, 0
- ldrh r1, [r4, 0x2E]
- adds r2, r1
- movs r0, 0xD0
- lsls r0, 3
- adds r3, r0, 0
- ldrh r1, [r4, 0x30]
- adds r3, r1
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r4, 0x2E]
- ands r3, r0
- strh r3, [r4, 0x30]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0xA0
- bgt _0814084A
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- bge _0814085E
-_0814084A:
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _08140864 @ =sub_81405C8
- str r0, [r4, 0x1C]
- ldr r1, _08140868 @ =gUnknown_02024E6D
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- bl sub_8043EB4
-_0814085E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08140864: .4byte sub_81405C8
-_08140868: .4byte gUnknown_02024E6D
- thumb_func_end sub_81407F4
-
- thumb_func_start sub_814086C
-sub_814086C: @ 814086C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- adds r5, r4, 0
- ldr r0, _08140910 @ =gUnknown_0840B258
- lsls r6, r5, 3
- adds r4, r6, r0
- ldrh r0, [r4, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _08140914 @ =0xffff0000
- cmp r0, r1
- bne _081408B6
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- ldr r0, _08140918 @ =gUnknown_0840B2B8
- adds r0, r6, r0
- bl LoadCompressedObjectPalette
-_081408B6:
- ldr r1, _0814091C @ =gUnknown_0840B384
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08140920 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- mov r1, r10
- strh r1, [r0, 0xA]
- mov r1, r9
- strh r1, [r0, 0xC]
- mov r1, r8
- strh r1, [r0, 0xE]
- strh r7, [r0, 0x10]
- strh r5, [r0, 0x26]
- movs r0, 0xF
- bl PlaySE
- ldr r0, _08140924 @ =gMain
- ldr r1, _08140928 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08140900
- ldr r1, _0814092C @ =0x02017840
- ldrb r0, [r1, 0xA]
- adds r0, 0x1
- strb r0, [r1, 0xA]
-_08140900:
- adds r0, r4, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08140910: .4byte gUnknown_0840B258
-_08140914: .4byte 0xffff0000
-_08140918: .4byte gUnknown_0840B2B8
-_0814091C: .4byte gUnknown_0840B384
-_08140920: .4byte gTasks
-_08140924: .4byte gMain
-_08140928: .4byte 0x0000043d
-_0814092C: .4byte 0x02017840
- thumb_func_end sub_814086C
-
- thumb_func_start sub_8140930
-sub_8140930: @ 8140930
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _081409D0 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r7, r0, r1
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0xF
- bgt _081409E4
- ldrb r1, [r7, 0xA]
- ldrb r2, [r7, 0xC]
- ldrb r6, [r7, 0xE]
- ldrb r3, [r7, 0x10]
- mov r4, r8
- lsls r0, r4, 1
- add r0, r8
- lsls r0, 3
- ldr r4, _081409D4 @ =gSpriteTemplate_840B3B4
- adds r0, r4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, _081409D8 @ =gSprites
- adds r2, r4, r5
- ldr r0, _081409DC @ =gUnknown_0840B378
- add r0, r8
- ldrb r1, [r0]
- adds r0, r2, 0
- str r2, [sp]
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _081409E0 @ =sub_8140A08
- str r0, [r4]
- movs r0, 0x3
- ands r6, r0
- lsls r6, 2
- ldr r2, [sp]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r6
- strb r0, [r2, 0x5]
- ldrb r0, [r7, 0x8]
- cmp r0, 0x7
- bls _081409B6
- subs r0, 0x8
- lsls r0, 24
- lsrs r0, 24
-_081409B6:
- lsls r0, 5
- strh r0, [r2, 0x2E]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0xF
- bne _081409E4
- movs r0, 0x1
- strh r0, [r2, 0x3C]
- mov r0, r9
- bl DestroyTask
- b _081409F6
- .align 2, 0
-_081409D0: .4byte gTasks
-_081409D4: .4byte gSpriteTemplate_840B3B4
-_081409D8: .4byte gSprites
-_081409DC: .4byte gUnknown_0840B378
-_081409E0: .4byte sub_8140A08
-_081409E4:
- ldr r0, _08140A04 @ =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_081409F6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08140A04: .4byte gTasks
- thumb_func_end sub_8140930
-
- thumb_func_start sub_8140A08
-sub_8140A08: @ 8140A08
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x30]
- movs r3, 0x30
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08140A20
- ldr r0, _08140A1C @ =sub_8140A28
- str r0, [r1, 0x1C]
- b _08140A24
- .align 2, 0
-_08140A1C: .4byte sub_8140A28
-_08140A20:
- subs r0, r2, 0x1
- strh r0, [r1, 0x30]
-_08140A24:
- pop {r0}
- bx r0
- thumb_func_end sub_8140A08
-
- thumb_func_start sub_8140A28
-sub_8140A28: @ 8140A28
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- bne _08140A5C
- adds r0, r4, 0
- bl sub_8141294
-_08140A5C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8140A28
-
- thumb_func_start sub_8140A64
-sub_8140A64: @ 8140A64
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140B24 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140B28 @ =gSprites
- mov r8, r3
- ldr r0, _08140B2C @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140AA8:
- ldr r0, _08140B30 @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140B34 @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140B38 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x36]
- movs r0, 0x2
- strh r0, [r4, 0x38]
- movs r2, 0x1
- strh r2, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140AA8
- ldr r0, _08140B28 @ =gSprites
- adds r0, r5, r0
- strh r2, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140B24: .4byte gTasks
-_08140B28: .4byte gSprites
-_08140B2C: .4byte gUnknown_0840B378
-_08140B30: .4byte gSpriteTemplate_840B3B4
-_08140B34: .4byte gSprites + 0x1C
-_08140B38: .4byte sub_8140ECC
- thumb_func_end sub_8140A64
-
- thumb_func_start sub_8140B3C
-sub_8140B3C: @ 8140B3C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140BFC @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140C00 @ =gSprites
- mov r8, r3
- ldr r0, _08140C04 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140B80:
- ldr r0, _08140C08 @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140C0C @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140C10 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x36]
- movs r1, 0x1
- strh r1, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140B80
- ldr r0, _08140C00 @ =gSprites
- adds r0, r5, r0
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140BFC: .4byte gTasks
-_08140C00: .4byte gSprites
-_08140C04: .4byte gUnknown_0840B378
-_08140C08: .4byte gSpriteTemplate_840B3B4
-_08140C0C: .4byte gSprites + 0x1C
-_08140C10: .4byte sub_8140ECC
- thumb_func_end sub_8140B3C
-
- thumb_func_start sub_8140C14
-sub_8140C14: @ 8140C14
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140CD0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140CD4 @ =gSprites
- mov r8, r3
- ldr r0, _08140CD8 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140C58:
- ldr r0, _08140CDC @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140CE0 @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140CE4 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r0, 0x4
- strh r0, [r4, 0x36]
- movs r2, 0x1
- strh r2, [r4, 0x38]
- strh r2, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140C58
- ldr r0, _08140CD4 @ =gSprites
- adds r0, r5, r0
- strh r2, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140CD0: .4byte gTasks
-_08140CD4: .4byte gSprites
-_08140CD8: .4byte gUnknown_0840B378
-_08140CDC: .4byte gSpriteTemplate_840B3B4
-_08140CE0: .4byte gSprites + 0x1C
-_08140CE4: .4byte sub_8140ECC
- thumb_func_end sub_8140C14
-
- thumb_func_start sub_8140CE8
-sub_8140CE8: @ 8140CE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140DAC @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140DB0 @ =gSprites
- mov r8, r3
- ldr r0, _08140DB4 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140D2C:
- ldr r0, _08140DB8 @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140DBC @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140DC0 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 3
- adds r0, r6
- strh r0, [r4, 0x2E]
- movs r0, 0x5
- strh r0, [r4, 0x36]
- movs r2, 0x1
- strh r2, [r4, 0x38]
- strh r2, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x9
- bls _08140D2C
- ldr r0, _08140DB0 @ =gSprites
- adds r0, r5, r0
- strh r2, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140DAC: .4byte gTasks
-_08140DB0: .4byte gSprites
-_08140DB4: .4byte gUnknown_0840B378
-_08140DB8: .4byte gSpriteTemplate_840B3B4
-_08140DBC: .4byte gSprites + 0x1C
-_08140DC0: .4byte sub_8140ECC
- thumb_func_end sub_8140CE8
-
- thumb_func_start sub_8140DC4
-sub_8140DC4: @ 8140DC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140DF0 @ =gTasks
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r3, r0, r1
- ldrh r1, [r3, 0x16]
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _08140DF4
- subs r0, r1, 0x1
- strh r0, [r3, 0x16]
- b _08140EA4
- .align 2, 0
-_08140DF0: .4byte gTasks
-_08140DF4:
- ldrh r0, [r3, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r3, 0xA]
- str r1, [sp]
- ldrb r4, [r3, 0xC]
- str r4, [sp, 0x4]
- ldrb r1, [r3, 0xE]
- str r1, [sp, 0x8]
- ldrb r3, [r3, 0x10]
- str r3, [sp, 0xC]
- movs r6, 0
- str r2, [sp, 0x10]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- mov r10, r1
- ldr r3, _08140EB4 @ =gSprites
- mov r8, r3
- ldr r1, _08140EB8 @ =gUnknown_0840B378
- adds r0, r1
- mov r9, r0
-_08140E20:
- ldr r0, _08140EBC @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r3, r9
- ldrb r1, [r3]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _08140EC0 @ =gSprites + 0x1C
- adds r1, r5, r0
- ldr r0, _08140EC4 @ =sub_8140ECC
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r2, 0x8
- strh r2, [r4, 0x36]
- movs r0, 0x2
- strh r0, [r4, 0x38]
- strh r0, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140E20
- ldr r0, _08140EC8 @ =gTasks
- ldr r4, [sp, 0x10]
- adds r1, r4, r7
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0x16]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _08140EA4
- ldr r0, _08140EB4 @ =gSprites
- adds r0, r5, r0
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
-_08140EA4:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08140EB4: .4byte gSprites
-_08140EB8: .4byte gUnknown_0840B378
-_08140EBC: .4byte gSpriteTemplate_840B3B4
-_08140EC0: .4byte gSprites + 0x1C
-_08140EC4: .4byte sub_8140ECC
-_08140EC8: .4byte gTasks
- thumb_func_end sub_8140DC4
-
- thumb_func_start sub_8140ECC
-sub_8140ECC: @ 8140ECC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- ldrh r2, [r4, 0x30]
- adds r0, r2
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _08140F1C
- adds r0, r4, 0
- bl sub_8141294
-_08140F1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8140ECC
-
- thumb_func_start sub_8140F24
-sub_8140F24: @ 8140F24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08140FE0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140FE4 @ =gSprites
- mov r8, r3
- ldr r0, _08140FE8 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_08140F68:
- ldr r0, _08140FEC @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140FF0 @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _08140FF4 @ =sub_8140FF8
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r0, r6
- strh r0, [r4, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xB
- bls _08140F68
- ldr r0, _08140FE4 @ =gSprites
- adds r0, r5, r0
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140FE0: .4byte gTasks
-_08140FE4: .4byte gSprites
-_08140FE8: .4byte gUnknown_0840B378
-_08140FEC: .4byte gSpriteTemplate_840B3B4
-_08140FF0: .4byte gSprites + 0x1C
-_08140FF4: .4byte sub_8140FF8
- thumb_func_end sub_8140F24
-
- thumb_func_start sub_8140FF8
-sub_8140FF8: @ 8140FF8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- adds r0, r4, 0
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl Cos
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _08141050
- adds r0, r5, 0
- bl sub_8141294
-_08141050:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8140FF8
-
- thumb_func_start sub_8141058
-sub_8141058: @ 8141058
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r1, _08141104 @ =gTasks
- lsls r0, 2
- ldr r2, [sp]
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r3, [r0, 0xA]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xC]
- str r2, [sp, 0x8]
- ldrb r3, [r0, 0xE]
- str r3, [sp, 0xC]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0x10]
- movs r0, 0
- mov r8, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- str r0, [sp, 0x14]
- ldr r0, _08141108 @ =gUnknown_0840B378
- adds r1, r0
- mov r10, r1
-_0814109E:
- movs r7, 0
- movs r1, 0x1
- add r1, r8
- mov r9, r1
-_081410A6:
- ldr r0, _0814110C @ =gSpriteTemplate_840B3B4
- ldr r2, [sp, 0x14]
- adds r0, r2, r0
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- ldr r3, [sp, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- ldr r3, _08141110 @ =gSprites
- adds r5, r4, r3
- mov r0, r10
- ldrb r1, [r0]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r1, _08141114 @ =gSprites + 0x1C
- adds r4, r1
- ldr r0, _08141118 @ =sub_8140ECC
- str r0, [r4]
- movs r0, 0x3
- ldr r1, [sp, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r0, [r5, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r2, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- lsls r0, r7, 5
- strh r0, [r5, 0x2E]
- movs r0, 0x8
- strh r0, [r5, 0x36]
- mov r0, r8
- cmp r0, 0
- bne _0814111C
- movs r0, 0x2
- strh r0, [r5, 0x38]
- movs r0, 0x1
- b _08141122
- .align 2, 0
-_08141104: .4byte gTasks
-_08141108: .4byte gUnknown_0840B378
-_0814110C: .4byte gSpriteTemplate_840B3B4
-_08141110: .4byte gSprites
-_08141114: .4byte gSprites + 0x1C
-_08141118: .4byte sub_8140ECC
-_0814111C:
- movs r0, 0x1
- strh r0, [r5, 0x38]
- movs r0, 0x2
-_08141122:
- strh r0, [r5, 0x3A]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _081410A6
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bls _0814109E
- ldr r0, _08141160 @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- ldr r0, [sp]
- bl DestroyTask
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141160: .4byte gSprites
- thumb_func_end sub_8141058
-
- thumb_func_start sub_8141164
-sub_8141164: @ 8141164
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08141218 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _0814121C @ =gSprites
- mov r8, r3
- ldr r0, _08141220 @ =gUnknown_0840B378
- adds r1, r0
- mov r9, r1
-_081411A8:
- ldr r0, _08141224 @ =gSpriteTemplate_840B3B4
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08141228 @ =gSprites + 0x1C
- adds r1, r5, r3
- ldr r0, _0814122C @ =sub_8141230
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _081411A8
- ldr r0, _0814121C @ =gSprites
- adds r0, r5, r0
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08141218: .4byte gTasks
-_0814121C: .4byte gSprites
-_08141220: .4byte gUnknown_0840B378
-_08141224: .4byte gSpriteTemplate_840B3B4
-_08141228: .4byte gSprites + 0x1C
-_0814122C: .4byte sub_8141230
- thumb_func_end sub_8141164
-
- thumb_func_start sub_8141230
-sub_8141230: @ 8141230
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- ldrh r1, [r5, 0x2E]
- movs r0, 0x3F
- ands r0, r1
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl Cos
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x2E]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _0814128C
- adds r0, r5, 0
- bl sub_8141294
-_0814128C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8141230
-
- thumb_func_start sub_8141294
-sub_8141294: @ 8141294
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _081412B8 @ =gMain
- ldr r1, _081412BC @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _081412C0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _081412F2
- adds r0, r5, 0
- bl DestroySpriteAndFreeResources
- b _0814130E
- .align 2, 0
-_081412B8: .4byte gMain
-_081412BC: .4byte 0x0000043d
-_081412C0:
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08141308
- ldr r1, _081412FC @ =0x02017840
- ldrb r0, [r1, 0xA]
- subs r0, 0x1
- strb r0, [r1, 0xA]
- lsls r0, 24
- cmp r0, 0
- bne _081412F2
- movs r7, 0
- ldr r6, _08141300 @ =gUnknown_0840B258
- ldr r4, _08141304 @ =gUnknown_0840B2B8
-_081412DC:
- ldrh r0, [r6, 0x6]
- bl FreeSpriteTilesByTag
- ldrh r0, [r4, 0x4]
- bl FreeSpritePaletteByTag
- adds r6, 0x8
- adds r4, 0x8
- adds r7, 0x1
- cmp r7, 0xB
- ble _081412DC
-_081412F2:
- adds r0, r5, 0
- bl DestroySprite
- b _0814130E
- .align 2, 0
-_081412FC: .4byte 0x02017840
-_08141300: .4byte gUnknown_0840B258
-_08141304: .4byte gUnknown_0840B2B8
-_08141308:
- adds r0, r5, 0
- bl DestroySprite
-_0814130E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8141294
-
- thumb_func_start sub_8141314
-sub_8141314: @ 8141314
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r0, 0
- mov r9, r2
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r3, 24
- lsrs r7, r3, 24
- ldr r0, _08141378 @ =sub_81413DC
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0814137C @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r5, r0, r1
- strh r7, [r5, 0x26]
- strh r6, [r5, 0xE]
- mov r0, r9
- strh r0, [r5, 0x1C]
- mov r1, r9
- lsrs r0, r1, 16
- strh r0, [r5, 0x1E]
- cmp r4, 0
- bne _08141384
- lsls r0, r6, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldr r2, _08141380 @ =gUnknown_0840B4D4
- lsls r1, r7, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- movs r0, 0x1
- strh r0, [r5, 0xA]
- b _081413AA
- .align 2, 0
-_08141378: .4byte sub_81413DC
-_0814137C: .4byte gTasks
-_08141380: .4byte gUnknown_0840B4D4
-_08141384:
- lsls r0, r6, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldr r2, _081413CC @ =gUnknown_0840B4D4
- lsls r1, r7, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0x10
- bl BlendPalette
- movs r0, 0x10
- strh r0, [r5, 0x8]
- ldr r0, _081413D0 @ =0x0000ffff
- strh r0, [r5, 0xA]
- ldr r0, _081413D4 @ =sub_814146C
- str r0, [r5]
-_081413AA:
- ldr r0, _081413D8 @ =0x00007fff
- str r0, [sp]
- mov r0, r9
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- mov r0, r8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081413CC: .4byte gUnknown_0840B4D4
-_081413D0: .4byte 0x0000ffff
-_081413D4: .4byte sub_814146C
-_081413D8: .4byte 0x00007fff
- thumb_func_end sub_8141314
-
- thumb_func_start sub_81413DC
-sub_81413DC: @ 81413DC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0814142C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bgt _08141434
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldrb r2, [r4, 0x8]
- ldr r3, _08141430 @ =gUnknown_0840B4D4
- lsls r1, 1
- adds r1, r3
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _0814145C
- .align 2, 0
-_0814142C: .4byte gTasks
-_08141430: .4byte gUnknown_0840B4D4
-_08141434:
- ldr r0, _08141464 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0814145C
- ldrh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- lsls r1, 16
- orrs r0, r1
- ldr r1, _08141468 @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- adds r0, r5, 0
- bl DestroyTask
-_0814145C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141464: .4byte gPaletteFade
-_08141468: .4byte 0x00007fff
- thumb_func_end sub_81413DC
-
- thumb_func_start sub_814146C
-sub_814146C: @ 814146C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081414AC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081414A4
- ldr r0, _081414B0 @ =gTasks
- lsls r4, r2, 2
- adds r4, r2
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- lsls r1, 16
- orrs r0, r1
- ldr r1, _081414B4 @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _081414B8 @ =sub_81414BC
- str r0, [r4]
-_081414A4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081414AC: .4byte gPaletteFade
-_081414B0: .4byte gTasks
-_081414B4: .4byte 0x00007fff
-_081414B8: .4byte sub_81414BC
- thumb_func_end sub_814146C
-
- thumb_func_start sub_81414BC
-sub_81414BC: @ 81414BC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08141508 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bgt _08141510
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 20
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r0, 16
- ldrb r2, [r4, 0x8]
- ldr r3, _0814150C @ =gUnknown_0840B4D4
- lsls r1, 1
- adds r1, r3
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _08141516
- .align 2, 0
-_08141508: .4byte gTasks
-_0814150C: .4byte gUnknown_0840B4D4
-_08141510:
- adds r0, r2, 0
- bl DestroyTask
-_08141516:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81414BC
-
- thumb_func_start sub_814151C
-sub_814151C: @ 814151C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- ldr r0, _08141550 @ =gUnknown_02024BE0
- ldr r3, _08141554 @ =gUnknown_0202F7C8
- ldrb r2, [r3]
- adds r0, r2, r0
- ldrb r6, [r0]
- ldr r1, _08141558 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _081415F4
- cmp r0, 0x1
- bgt _0814155C
- cmp r0, 0
- beq _08141562
- b _081416B6
- .align 2, 0
-_08141550: .4byte gUnknown_02024BE0
-_08141554: .4byte gUnknown_0202F7C8
-_08141558: .4byte gTasks
-_0814155C:
- cmp r0, 0x2
- beq _08141606
- b _081416B6
-_08141562:
- ldr r0, _0814159C @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r5, 0x1E]
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r4, [r5, 0x8]
- adds r0, r4
- strh r0, [r5, 0x8]
- ldrb r0, [r3]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _081415A4
- ldr r2, _081415A0 @ =gSprites
- lsls r3, r6, 4
- adds r1, r3, r6
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
- adds r4, r3, 0
- b _081415BC
- .align 2, 0
-_0814159C: .4byte gUnknown_03004B00
-_081415A0: .4byte gSprites
-_081415A4:
- ldr r3, _081415EC @ =gSprites
- lsls r4, r6, 4
- adds r2, r4, r6
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r5, 0x8]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
-_081415BC:
- ldr r1, _081415F0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r1
- ldrb r0, [r3, 0x8]
- strh r0, [r3, 0x8]
- adds r0, r4, r6
- lsls r0, 2
- adds r0, r2
- movs r2, 0x20
- ldrsh r1, [r0, r2]
- movs r4, 0x24
- ldrsh r0, [r0, r4]
- adds r1, r0
- adds r1, 0x20
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bls _081416B6
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- b _081416B6
- .align 2, 0
-_081415EC: .4byte gSprites
-_081415F0: .4byte gTasks
-_081415F4:
- ldrb r1, [r5, 0x1E]
- adds r0, r2, 0
- adds r2, r6, 0
- bl refresh_graphics_maybe
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- b _081416B6
-_08141606:
- movs r1, 0xA0
- lsls r1, 3
- adds r0, r1, 0
- ldrh r2, [r5, 0x8]
- adds r0, r2
- strh r0, [r5, 0x8]
- ldrb r0, [r3]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0814163C
- ldr r0, _08141638 @ =gSprites
- lsls r3, r6, 4
- adds r2, r3, r6
- lsls r2, 2
- adds r2, r0
- ldrh r1, [r5, 0x8]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r4, r3, 0
- b _08141654
- .align 2, 0
-_08141638: .4byte gSprites
-_0814163C:
- ldr r0, _08141688 @ =gSprites
- lsls r2, r6, 4
- adds r1, r2, r6
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 24
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- adds r4, r2, 0
-_08141654:
- ldr r1, _0814168C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- strh r1, [r0, 0x8]
- ldr r0, _08141690 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08141694
- ldr r0, _08141688 @ =gSprites
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bgt _081416AA
- movs r0, 0
- strh r0, [r1, 0x24]
- b _081416B0
- .align 2, 0
-_08141688: .4byte gSprites
-_0814168C: .4byte gTasks
-_08141690: .4byte gUnknown_0202F7C8
-_08141694:
- ldr r0, _081416C0 @ =gSprites
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- movs r3, 0x24
- ldrsh r0, [r1, r3]
- cmp r0, 0
- blt _081416AA
- strh r2, [r1, 0x24]
- movs r4, 0x1
- mov r8, r4
-_081416AA:
- mov r0, r8
- cmp r0, 0
- beq _081416B6
-_081416B0:
- adds r0, r7, 0
- bl move_anim_task_del
-_081416B6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081416C0: .4byte gSprites
- thumb_func_end sub_814151C
-
- thumb_func_start sub_81416C4
-sub_81416C4: @ 81416C4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081416E8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08141744
- cmp r0, 0x1
- bgt _081416EC
- cmp r0, 0
- beq _081416F2
- b _081417B8
- .align 2, 0
-_081416E8: .4byte gTasks
-_081416EC:
- cmp r0, 0x2
- beq _0814177C
- b _081417B8
-_081416F2:
- ldr r0, _08141708 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08141714
- ldr r1, _0814170C @ =REG_BLDCNT
- ldr r2, _08141710 @ =0x00003f42
- b _08141718
- .align 2, 0
-_08141708: .4byte gUnknown_0202F7C8
-_0814170C: .4byte REG_BLDCNT
-_08141710: .4byte 0x00003f42
-_08141714:
- ldr r1, _08141734 @ =REG_BLDCNT
- ldr r2, _08141738 @ =0x00003f44
-_08141718:
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0814173C @ =REG_BLDALPHA
- movs r0, 0x10
- strh r0, [r1]
- ldr r1, _08141740 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- strh r1, [r0, 0x26]
- b _081417B8
- .align 2, 0
-_08141734: .4byte REG_BLDCNT
-_08141738: .4byte 0x00003f44
-_0814173C: .4byte REG_BLDALPHA
-_08141740: .4byte gTasks
-_08141744:
- ldrh r0, [r4, 0xA]
- adds r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081417B8
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r1, 0x1
- strh r1, [r4, 0x8]
- ldr r3, _08141778 @ =REG_BLDALPHA
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081417B8
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _081417B8
- .align 2, 0
-_08141778: .4byte REG_BLDALPHA
-_0814177C:
- ldr r1, _081417C0 @ =gUnknown_02024BE0
- ldr r3, _081417C4 @ =gUnknown_0202F7C8
- ldrb r0, [r3]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _081417C8 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldr r1, _081417CC @ =0x06010000
- adds r0, r1
- movs r1, 0
- str r1, [sp]
- ldr r1, _081417D0 @ =0x040000d4
- mov r2, sp
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _081417D4 @ =0x85000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldrb r0, [r3]
- bl sub_80324E0
- adds r0, r5, 0
- bl move_anim_task_del
-_081417B8:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081417C0: .4byte gUnknown_02024BE0
-_081417C4: .4byte gUnknown_0202F7C8
-_081417C8: .4byte gSprites
-_081417CC: .4byte 0x06010000
-_081417D0: .4byte 0x040000d4
-_081417D4: .4byte 0x85000200
- thumb_func_end sub_81416C4
-
- thumb_func_start sub_81417D8
-sub_81417D8: @ 81417D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081417FC @ =gUnknown_03004B00
- ldr r1, _08141800 @ =gUnknown_0202F7C8
- ldrb r1, [r1]
- lsls r1, 2
- ldr r2, _08141804 @ =0x02017800
- adds r1, r2
- ldr r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r3, 0xE]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_081417FC: .4byte gUnknown_03004B00
-_08141800: .4byte gUnknown_0202F7C8
-_08141804: .4byte 0x02017800
- thumb_func_end sub_81417D8
-
- thumb_func_start sub_8141808
-sub_8141808: @ 8141808
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141820 @ =gUnknown_0202F7C9
- ldr r1, _08141824 @ =gUnknown_02024C0A
- ldrb r1, [r1]
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08141820: .4byte gUnknown_0202F7C9
-_08141824: .4byte gUnknown_02024C0A
- thumb_func_end sub_8141808
-
- thumb_func_start sub_8141828
-sub_8141828: @ 8141828
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- mov r8, r0
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- ldr r1, _081418E0 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r4, r0, 0
- adds r0, r6, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _081418FC
- lsrs r0, r5, 16
- ldr r7, _081418E4 @ =0x0000ffff
- ands r5, r7
- eors r0, r5
- lsrs r1, r4, 16
- eors r0, r1
- ands r4, r7
- eors r0, r4
- cmp r0, 0x7
- bhi _08141882
- movs r0, 0x1
- mov r8, r0
-_08141882:
- mov r0, r8
- cmp r0, 0
- beq _081418FC
- ldr r0, _081418E8 @ =0x000027f9
- bl GetSpriteTileStartByTag
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r7
- bne _081418A2
- ldr r0, _081418EC @ =gBattleAnimPicTable + (233 * 8)
- bl LoadCompressedObjectPic
- ldr r0, _081418F0 @ =gBattleAnimPaletteTable + (233 * 8)
- bl LoadCompressedObjectPalette
-_081418A2:
- ldr r5, _081418F4 @ =sub_814191C
- adds r0, r5, 0
- movs r1, 0xA
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081418F8 @ =gTasks
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- adds r2, r3
- movs r4, 0
- strh r6, [r2, 0x8]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- strh r6, [r1, 0x8]
- strh r4, [r2, 0xA]
- movs r0, 0x1
- strh r0, [r1, 0xA]
- b _0814190E
- .align 2, 0
-_081418E0: .4byte 0x02017810
-_081418E4: .4byte 0x0000ffff
-_081418E8: .4byte 0x000027f9
-_081418EC: .4byte gBattleAnimPicTable + (233 * 8)
-_081418F0: .4byte gBattleAnimPaletteTable + (233 * 8)
-_081418F4: .4byte sub_814191C
-_081418F8: .4byte gTasks
-_081418FC:
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- ldr r1, _08141918 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0, 0x1]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
-_0814190E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141918: .4byte 0x02017810
- thumb_func_end sub_8141828
-
- thumb_func_start sub_814191C
-sub_814191C: @ 814191C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08141944 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x22]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0x3B
- bgt _08141948
- adds r0, r1, 0x1
- strh r0, [r4, 0x22]
- b _08141AB8
- .align 2, 0
-_08141944: .4byte gTasks
-_08141948:
- ldr r0, _08141998 @ =0x02017840
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _08141952
- b _08141AB8
-_08141952:
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- beq _08141966
- b _08141AB8
-_08141966:
- ldrb r0, [r4, 0x8]
- mov r8, r0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081419A0
- ldr r0, _0814199C @ =gBattleAnimSpriteTemplate_84024E8
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- b _08141A02
- .align 2, 0
-_08141998: .4byte 0x02017840
-_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8
-_081419A0:
- cmp r0, 0
- blt _081419D4
- cmp r0, 0x3
- bgt _081419D4
- ldr r0, _081419CC @ =gSpriteTemplate_8402500
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _081419D0 @ =gSprites
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x4
- b _081419F4
- .align 2, 0
-_081419CC: .4byte gSpriteTemplate_8402500
-_081419D0: .4byte gSprites
-_081419D4:
- ldr r0, _08141A2C @ =gSpriteTemplate_8402500
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08141A30 @ =gSprites
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x5
-_081419F4:
- ldr r4, _08141A34 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _08141A38 @ =0xfffffc00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_08141A02:
- ldr r2, _08141A3C @ =gTasks
- lsls r1, r7, 2
- adds r0, r1, r7
- lsls r0, 3
- adds r6, r0, r2
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- mov r9, r1
- cmp r0, 0
- bne _08141A44
- ldr r1, _08141A30 @ =gSprites
- lsls r2, r5, 4
- adds r0, r2, r5
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08141A40 @ =sub_8141B20
- str r1, [r0]
- adds r4, r2, 0
- b _08141A8C
- .align 2, 0
-_08141A2C: .4byte gSpriteTemplate_8402500
-_08141A30: .4byte gSprites
-_08141A34: .4byte 0x000003ff
-_08141A38: .4byte 0xfffffc00
-_08141A3C: .4byte gTasks
-_08141A40: .4byte sub_8141B20
-_08141A44:
- ldr r3, _08141AC4 @ =gSprites
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _08141AC8 @ =sub_8141B74
- str r2, [r0]
- adds r1, r3
- ldr r0, _08141ACC @ =0x0000ffe0
- strh r0, [r1, 0x24]
- movs r0, 0x20
- strh r0, [r1, 0x26]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08141A8C
- mov r0, r8
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0x3F
- cmp r0, 0
- bne _08141A82
- movs r1, 0xC0
-_08141A82:
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x66
- bl PlaySE12WithPanning
-_08141A8C:
- ldr r1, _08141AC4 @ =gSprites
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- strh r7, [r0, 0x2E]
- ldr r1, _08141AD0 @ =gTasks
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r2, r0, r1
- ldrh r1, [r2, 0x1E]
- adds r1, 0x1
- strh r1, [r2, 0x1E]
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x5
- bne _08141AB8
- ldr r0, _08141AD4 @ =sub_8141AD8
- str r0, [r2]
-_08141AB8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141AC4: .4byte gSprites
-_08141AC8: .4byte sub_8141B74
-_08141ACC: .4byte 0x0000ffe0
-_08141AD0: .4byte gTasks
-_08141AD4: .4byte sub_8141AD8
- thumb_func_end sub_814191C
-
- thumb_func_start sub_8141AD8
-sub_8141AD8: @ 8141AD8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- ldr r1, _08141B18 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0x20
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08141B14
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _08141B0E
- ldrb r1, [r1, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08141B1C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0, 0x1]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
-_08141B0E:
- adds r0, r3, 0
- bl DestroyTask
-_08141B14:
- pop {r0}
- bx r0
- .align 2, 0
-_08141B18: .4byte gTasks
-_08141B1C: .4byte 0x02017810
- thumb_func_end sub_8141AD8
-
- thumb_func_start sub_8141B20
-sub_8141B20: @ 8141B20
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0xC
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08141B6A
- ldr r2, _08141B70 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_08141B6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141B70: .4byte gTasks
- thumb_func_end sub_8141B20
-
- thumb_func_start sub_8141B74
-sub_8141B74: @ 8141B74
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bgt _08141B88
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _08141BCA
-_08141B88:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r1, [r4, 0x24]
- adds r1, 0x5
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r0, 0x5
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x20
- ble _08141BCA
- ldr r2, _08141BD0 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_08141BCA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141BD0: .4byte gTasks
- thumb_func_end sub_8141B74
-
- thumb_func_start sub_8141BD4
-sub_8141BD4: @ 8141BD4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08141BFC @ =gBattleAnimPicTable + (269 * 8)
- bl LoadCompressedObjectPic
- ldr r0, _08141C00 @ =gBattleAnimPaletteTable + (269 * 8)
- bl LoadCompressedObjectPalette
- ldr r0, _08141C04 @ =0x0000281d
- bl IndexOfSpritePaletteTag
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141BFC: .4byte gBattleAnimPicTable + (269 * 8)
-_08141C00: .4byte gBattleAnimPaletteTable + (269 * 8)
-_08141C04: .4byte 0x0000281d
- thumb_func_end sub_8141BD4
-
- thumb_func_start sub_8141C08
-sub_8141C08: @ 8141C08
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08141C2C @ =0x0000281d
- adds r0, r5, 0
- bl FreeSpriteTilesByTag
- adds r0, r5, 0
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141C2C: .4byte 0x0000281d
- thumb_func_end sub_8141C08
-
- thumb_func_start sub_8141C30
-sub_8141C30: @ 8141C30
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r5, _08141CA4 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r4, 0x32]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r4, 0x36]
- ldr r0, _08141CA8 @ =0x0000ffe0
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r1, _08141CAC @ =gUnknown_02024BE0
- ldr r0, _08141CB0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08141CB4 @ =gSprites
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _08141CB8 @ =sub_8141CBC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141CA4: .4byte gUnknown_03004B00
-_08141CA8: .4byte 0x0000ffe0
-_08141CAC: .4byte gUnknown_02024BE0
-_08141CB0: .4byte gUnknown_0202F7C8
-_08141CB4: .4byte gSprites
-_08141CB8: .4byte sub_8141CBC
- thumb_func_end sub_8141C30
-
- thumb_func_start sub_8141CBC
-sub_8141CBC: @ 8141CBC
- push {lr}
- adds r3, r0, 0
- ldr r2, _08141CE4 @ =gSprites
- ldr r1, _08141CE8 @ =gUnknown_02024BE0
- ldr r0, _08141CEC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08141CE0
- ldr r0, _08141CF0 @ =sub_8141CF4
- str r0, [r3, 0x1C]
-_08141CE0:
- pop {r0}
- bx r0
- .align 2, 0
-_08141CE4: .4byte gSprites
-_08141CE8: .4byte gUnknown_02024BE0
-_08141CEC: .4byte gUnknown_0202F7C8
-_08141CF0: .4byte sub_8141CF4
- thumb_func_end sub_8141CBC
-
- thumb_func_start sub_8141CF4
-sub_8141CF4: @ 8141CF4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _08141D16
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08141D1C @ =sub_8141D20
- str r0, [r4, 0x1C]
-_08141D16:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141D1C: .4byte sub_8141D20
- thumb_func_end sub_8141CF4
-
- thumb_func_start sub_8141D20
-sub_8141D20: @ 8141D20
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _08141D70 @ =gSprites
- ldr r3, _08141D74 @ =gUnknown_02024BE0
- ldr r2, _08141D78 @ =gUnknown_0202F7C8
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- bge _08141D68
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- ble _08141D68
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl move_anim_8072740
-_08141D68:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141D70: .4byte gSprites
-_08141D74: .4byte gUnknown_02024BE0
-_08141D78: .4byte gUnknown_0202F7C8
- thumb_func_end sub_8141D20
-
- thumb_func_start sub_8141D7C
-sub_8141D7C: @ 8141D7C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08141DA4 @ =gUnknown_0202F7C8
- strb r0, [r1]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _08141DA8 @ =gUnknown_0202F7C9
- strb r0, [r1]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141DA4: .4byte gUnknown_0202F7C8
-_08141DA8: .4byte gUnknown_0202F7C9
- thumb_func_end sub_8141D7C
-
- thumb_func_start sub_8141DAC
-sub_8141DAC: @ 8141DAC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08141DC0 @ =0x02017840
- ldrh r1, [r0]
- cmp r1, 0x53
- bne _08141DC8
- ldr r1, _08141DC4 @ =gUnknown_03004B00
- movs r0, 0x1
- b _08141E00
- .align 2, 0
-_08141DC0: .4byte 0x02017840
-_08141DC4: .4byte gUnknown_03004B00
-_08141DC8:
- cmp r1, 0xFA
- bne _08141DD8
- ldr r1, _08141DD4 @ =gUnknown_03004B00
- movs r0, 0x2
- b _08141E00
- .align 2, 0
-_08141DD4: .4byte gUnknown_03004B00
-_08141DD8:
- cmp r1, 0x80
- bne _08141DE8
- ldr r1, _08141DE4 @ =gUnknown_03004B00
- movs r0, 0x3
- b _08141E00
- .align 2, 0
-_08141DE4: .4byte gUnknown_03004B00
-_08141DE8:
- movs r0, 0xA4
- lsls r0, 1
- cmp r1, r0
- bne _08141DFC
- ldr r1, _08141DF8 @ =gUnknown_03004B00
- movs r0, 0x4
- b _08141E00
- .align 2, 0
-_08141DF8: .4byte gUnknown_03004B00
-_08141DFC:
- ldr r1, _08141E0C @ =gUnknown_03004B00
- movs r0, 0
-_08141E00:
- strh r0, [r1]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08141E0C: .4byte gUnknown_03004B00
- thumb_func_end sub_8141DAC
-
- thumb_func_start sub_8141E10
-sub_8141E10: @ 8141E10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141E2C @ =gUnknown_0202F7C8
- ldr r1, _08141E30 @ =0x02017840
- ldrh r1, [r1]
- strb r1, [r2]
- ldr r2, _08141E34 @ =gUnknown_0202F7C9
- lsrs r1, 8
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08141E2C: .4byte gUnknown_0202F7C8
-_08141E30: .4byte 0x02017840
-_08141E34: .4byte gUnknown_0202F7C9
- thumb_func_end sub_8141E10
-
- thumb_func_start sub_8141E38
-sub_8141E38: @ 8141E38
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8141E38
-
- thumb_func_start sub_8141E4C
-sub_8141E4C: @ 8141E4C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8141E4C
-
- thumb_func_start sub_8141E64
-sub_8141E64: @ 8141E64
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08141E80 @ =gMain
- ldr r1, _08141E84 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _08141EA0
- lsls r0, 2
- ldr r1, _08141E88 @ =_08141E8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08141E80: .4byte gMain
-_08141E84: .4byte 0x0000043c
-_08141E88: .4byte _08141E8C
- .align 2, 0
-_08141E8C:
- .4byte _08141EA0
- .4byte _08141EC0
- .4byte _08141EC6
- .4byte _08141F1C
- .4byte _08141F58
-_08141EA0:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81433E0
- ldr r0, _08141EB8 @ =gMain
- ldr r2, _08141EBC @ =0x0000043c
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- b _08141F84
- .align 2, 0
-_08141EB8: .4byte gMain
-_08141EBC: .4byte 0x0000043c
-_08141EC0:
- bl sub_8143570
- b _08141F38
-_08141EC6:
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08141F04 @ =sub_8141E38
- bl SetVBlankCallback
- ldr r3, _08141F08 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08141F0C @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08141F10 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08141F14 @ =gMain
- ldr r2, _08141F18 @ =0x0000043c
- adds r1, r2
- b _08141F3E
- .align 2, 0
-_08141F04: .4byte sub_8141E38
-_08141F08: .4byte 0x04000208
-_08141F0C: .4byte 0x04000200
-_08141F10: .4byte REG_DISPSTAT
-_08141F14: .4byte gMain
-_08141F18: .4byte 0x0000043c
-_08141F1C:
- ldr r1, _08141F48 @ =REG_BLDCNT
- ldr r2, _08141F4C @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0xE2
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- bl sub_81435B8
-_08141F38:
- ldr r1, _08141F50 @ =gMain
- ldr r0, _08141F54 @ =0x0000043c
- adds r1, r0
-_08141F3E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08141F84
- .align 2, 0
-_08141F48: .4byte REG_BLDCNT
-_08141F4C: .4byte 0x00003f42
-_08141F50: .4byte gMain
-_08141F54: .4byte 0x0000043c
-_08141F58:
- bl UpdatePaletteFade
- ldr r0, _08141F7C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08141F84
- ldr r0, _08141F80 @ =sub_8141E4C
- bl SetMainCallback2
- movs r0, 0xDA
- lsls r0, 1
- bl PlayBGM
- movs r0, 0
- b _08141F86
- .align 2, 0
-_08141F7C: .4byte gPaletteFade
-_08141F80: .4byte sub_8141E4C
-_08141F84:
- movs r0, 0x1
-_08141F86:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8141E64
-
- thumb_func_start sub_8141F90
-sub_8141F90: @ 8141F90
- push {r4,lr}
- bl sub_8141E64
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08141FB6
- ldr r0, _08141FBC @ =sub_8141FF8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141FC0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_08141FB6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141FBC: .4byte sub_8141FF8
-_08141FC0: .4byte gTasks
- thumb_func_end sub_8141F90
-
- thumb_func_start sub_8141FC4
-sub_8141FC4: @ 8141FC4
- push {lr}
- bl sub_8141E64
- lsls r0, 24
- cmp r0, 0
- bne _08141FEA
- ldr r0, _08141FF0 @ =sub_8141FF8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141FF4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
-_08141FEA:
- pop {r0}
- bx r0
- .align 2, 0
-_08141FF0: .4byte sub_8141FF8
-_08141FF4: .4byte gTasks
- thumb_func_end sub_8141FC4
-
- thumb_func_start sub_8141FF8
-sub_8141FF8: @ 8141FF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _081420C8 @ =0x0201c000
- mov r9, r0
- ldr r1, _081420CC @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- movs r7, 0
- ldr r4, _081420D0 @ =0xfffffe00
- mov r10, r4
-_08142024:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _081420D4 @ =gPlayerParty
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r3, r0, 0
- cmp r3, 0
- beq _081420DC
- adds r0, r6, 0
- movs r1, 0x41
- bl GetMonData
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 2
- mov r1, r9
- adds r5, r1, r4
- ldr r2, _081420D8 @ =0x000001ff
- adds r1, r2, 0
- ands r0, r1
- ldrh r1, [r5, 0x8]
- mov r2, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r5, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [r5]
- adds r0, r6, 0
- movs r1, 0
- bl GetMonData
- mov r1, r9
- adds r1, 0x4
- adds r1, r4
- str r0, [r1]
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 1
- ldrb r2, [r5, 0x9]
- movs r1, 0x1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x9]
- adds r0, r6, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- movs r2, 0
- mov r6, r8
- lsls r5, r6, 2
- mov r3, r9
- adds r3, 0xA
-_081420A0:
- adds r1, r2, r4
- adds r1, r3, r1
- mov r6, sp
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9
- bls _081420A0
- ldr r0, _081420CC @ =gTasks
- mov r2, r8
- adds r1, r5, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- b _08142108
- .align 2, 0
-_081420C8: .4byte 0x0201c000
-_081420CC: .4byte gTasks
-_081420D0: .4byte 0xfffffe00
-_081420D4: .4byte gPlayerParty
-_081420D8: .4byte 0x000001ff
-_081420DC:
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 2
- mov r4, r9
- adds r2, r4, r1
- ldrh r0, [r2, 0x8]
- mov r6, r10
- ands r0, r6
- strh r0, [r2, 0x8]
- str r3, [r2]
- mov r0, r9
- adds r0, 0x4
- adds r0, r1
- str r3, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x1
- ands r0, r1
- strb r0, [r2, 0x9]
- movs r0, 0xFF
- strb r0, [r2, 0xA]
- mov r0, r8
- lsls r5, r0, 2
-_08142108:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x5
- bls _08142024
- ldr r0, _08142158 @ =gUnknown_0203931C
- movs r3, 0
- str r3, [r0]
- ldr r4, _0814215C @ =gTasks
- mov r2, r8
- adds r1, r5, r2
- lsls r1, 3
- adds r2, r1, r4
- strh r3, [r2, 0xA]
- movs r0, 0xFF
- strh r0, [r2, 0x10]
- movs r7, 0
- adds r3, r4, 0
- adds r3, 0x8
- movs r2, 0xFF
-_08142130:
- adds r0, r7, 0x5
- lsls r0, 1
- adds r0, r1
- adds r0, r3
- strh r2, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x5
- bls _08142130
- mov r6, r8
- adds r0, r5, r6
- lsls r0, 3
- adds r1, r0, r4
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08142164
- ldr r0, _08142160 @ =sub_81422E8
- b _08142166
- .align 2, 0
-_08142158: .4byte gUnknown_0203931C
-_0814215C: .4byte gTasks
-_08142160: .4byte sub_81422E8
-_08142164:
- ldr r0, _08142178 @ =sub_814217C
-_08142166:
- str r0, [r1]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142178: .4byte sub_814217C
- thumb_func_end sub_8141FF8
-
- thumb_func_start sub_814217C
-sub_814217C: @ 814217C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _081421C4 @ =0x0201c000
- mov r9, r0
- movs r7, 0x80
- lsls r7, 6
- add r7, r9
- ldr r0, _081421C8 @ =gUnknown_02039324
- ldrb r0, [r0]
- cmp r0, 0
- bne _081421D4
- movs r4, 0
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r5, _081421CC @ =0xfffe4000
- add r5, r9
- movs r3, 0xF0
- lsls r3, 9
- movs r2, 0
- ldr r1, _081421D0 @ =0x00001fff
-_081421B2:
- adds r0, r4, r3
- adds r0, r5
- strb r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r1
- bls _081421B2
- b _081421E0
- .align 2, 0
-_081421C4: .4byte 0x0201c000
-_081421C8: .4byte gUnknown_02039324
-_081421CC: .4byte 0xfffe4000
-_081421D0: .4byte 0x00001fff
-_081421D4:
- movs r0, 0x3
- bl sub_8125EC8
- mov r0, r8
- lsls r0, 2
- mov r10, r0
-_081421E0:
- movs r4, 0
- ldrh r1, [r7, 0x8]
- ldr r2, _081421E8 @ =0x000001ff
- b _081421FA
- .align 2, 0
-_081421E8: .4byte 0x000001ff
-_081421EC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, 0x78
- cmp r4, 0x31
- bhi _08142206
- ldrh r1, [r7, 0x8]
-_081421FA:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _081421EC
- cmp r4, 0x31
- bls _08142228
-_08142206:
- ldr r5, _08142264 @ =0x0201e000
- adds r6, r5, 0
- adds r5, 0x78
- movs r4, 0
- subs r7, 0x78
-_08142210:
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x78
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, 0x78
- adds r5, 0x78
- cmp r4, 0x30
- bls _08142210
-_08142228:
- adds r0, r7, 0
- mov r1, r9
- movs r2, 0x78
- bl memcpy
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08142268 @ =gMenuText_HOFSaving
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _0814226C @ =gTasks
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142270 @ =sub_8142274
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142264: .4byte 0x0201e000
-_08142268: .4byte gMenuText_HOFSaving
-_0814226C: .4byte gTasks
-_08142270: .4byte sub_8142274
- thumb_func_end sub_814217C
-
- thumb_func_start sub_8142274
-sub_8142274: @ 8142274
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _081422A8 @ =gUnknown_03005EBC
- ldr r0, _081422AC @ =sub_8141FC4
- str r0, [r1]
- movs r0, 0x3
- bl sub_8125D44
- movs r0, 0x37
- bl PlaySE
- ldr r1, _081422B0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081422B4 @ =sub_81422B8
- str r1, [r0]
- movs r1, 0x20
- strh r1, [r0, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081422A8: .4byte gUnknown_03005EBC
-_081422AC: .4byte sub_8141FC4
-_081422B0: .4byte gTasks
-_081422B4: .4byte sub_81422B8
- thumb_func_end sub_8142274
-
- thumb_func_start sub_81422B8
-sub_81422B8: @ 81422B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081422D8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _081422DC
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- b _081422E0
- .align 2, 0
-_081422D8: .4byte gTasks
-_081422DC:
- ldr r0, _081422E4 @ =sub_81422E8
- str r0, [r1]
-_081422E0:
- pop {r0}
- bx r0
- .align 2, 0
-_081422E4: .4byte sub_81422E8
- thumb_func_end sub_81422B8
-
- thumb_func_start sub_81422E8
-sub_81422E8: @ 81422E8
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08142314 @ =gWindowConfig_81E7198
- adds r0, r5, 0
- bl SetUpWindowConfig
- adds r0, r5, 0
- bl InitMenuWindow
- ldr r1, _08142318 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814231C @ =sub_8142320
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142314: .4byte gWindowConfig_81E7198
-_08142318: .4byte gTasks
-_0814231C: .4byte sub_8142320
- thumb_func_end sub_81422E8
-
- thumb_func_start sub_8142320
-sub_8142320: @ 8142320
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _08142350 @ =0x0201c000
- ldr r0, _08142354 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r6, [r1, 0xA]
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r4, r0, r2
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0x3
- ble _0814235C
- ldr r1, _08142358 @ =gUnknown_0840B534
- b _0814235E
- .align 2, 0
-_08142350: .4byte 0x0201c000
-_08142354: .4byte gTasks
-_08142358: .4byte gUnknown_0840B534
-_0814235C:
- ldr r1, _081423F0 @ =gUnknown_0840B564
-_0814235E:
- lsls r2, r6, 3
- adds r0, r2, r1
- ldrh r5, [r0]
- adds r0, r1, 0x2
- adds r0, r2, r0
- ldrh r3, [r0]
- adds r0, r1, 0x4
- adds r0, r2, r0
- ldrh r0, [r0]
- mov r9, r0
- adds r1, 0x6
- adds r2, r1
- ldrh r2, [r2]
- mov r8, r2
- ldrh r0, [r4, 0x8]
- lsls r0, 23
- lsrs r0, 23
- lsls r1, r5, 16
- asrs r1, 16
- lsls r2, r3, 16
- asrs r2, 16
- ldr r3, [r4]
- str r3, [sp]
- ldr r3, [r4, 0x4]
- str r3, [sp, 0x4]
- adds r3, r6, 0
- bl sub_81436BC
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081423F4 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r3
- movs r4, 0
- mov r5, r9
- strh r5, [r2, 0x30]
- mov r5, r8
- strh r5, [r2, 0x32]
- strh r4, [r2, 0x2E]
- adds r3, 0x1C
- adds r1, r3
- ldr r2, _081423F8 @ =sub_81435DC
- str r2, [r1]
- ldr r5, _081423FC @ =gTasks
- adds r1, r6, 0x5
- lsls r1, 1
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r1, r4
- adds r2, r5, 0
- adds r2, 0x8
- adds r1, r2
- strh r0, [r1]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r4, r5
- ldr r0, _08142400 @ =sub_8142404
- str r0, [r4]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081423F0: .4byte gUnknown_0840B564
-_081423F4: .4byte gSprites
-_081423F8: .4byte sub_81435DC
-_081423FC: .4byte gTasks
-_08142400: .4byte sub_8142404
- thumb_func_end sub_8142320
-
- thumb_func_start sub_8142404
-sub_8142404: @ 8142404
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08142470 @ =0x0201c000
- ldr r3, _08142474 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r5, r2, r3
- ldrh r1, [r5, 0xA]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r4
- ldr r4, _08142478 @ =gSprites
- adds r1, 0x5
- lsls r1, 1
- adds r1, r2
- adds r3, 0x8
- adds r1, r3
- movs r0, 0
- ldrsh r1, [r1, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0814246A
- ldrh r2, [r6, 0x8]
- ldr r0, _0814247C @ =0x000001ff
- ands r0, r2
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08142458
- lsls r0, r2, 23
- lsrs r0, 23
- movs r1, 0
- bl PlayCry1
-_08142458:
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0xE
- bl sub_8143088
- movs r0, 0x78
- strh r0, [r5, 0xE]
- ldr r0, _08142480 @ =sub_8142484
- str r0, [r5]
-_0814246A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142470: .4byte 0x0201c000
-_08142474: .4byte gTasks
-_08142478: .4byte gSprites
-_0814247C: .4byte 0x000001ff
-_08142480: .4byte sub_8142484
- thumb_func_end sub_8142404
-
- thumb_func_start sub_8142484
-sub_8142484: @ 8142484
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _081424BC @ =0x0201c000
- ldr r1, _081424C0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- adds r4, r6, r1
- ldrh r3, [r4, 0xA]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r2
- mov r9, r0
- ldrh r2, [r4, 0xE]
- movs r7, 0xE
- ldrsh r0, [r4, r7]
- mov r12, r1
- cmp r0, 0
- beq _081424C4
- subs r0, r2, 0x1
- strh r0, [r4, 0xE]
- b _0814255C
- .align 2, 0
-_081424BC: .4byte 0x0201c000
-_081424C0: .4byte gTasks
-_081424C4:
- ldr r2, _0814253C @ =gUnknown_0203931C
- ldr r0, _08142540 @ =gSprites
- mov r8, r0
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r6
- mov r1, r12
- adds r1, 0x8
- adds r6, r0, r1
- movs r7, 0
- ldrsh r1, [r6, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- ldr r3, [r2]
- orrs r3, r1
- str r3, [r2]
- ldrh r2, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bgt _08142550
- mov r7, r9
- ldrh r1, [r7, 0x1C]
- ldr r0, _08142544 @ =0x000001ff
- ands r0, r1
- cmp r0, 0
- beq _08142550
- adds r0, r2, 0x1
- strh r0, [r4, 0xA]
- ldr r0, _08142548 @ =0x0000735f
- str r0, [sp]
- adds r0, r3, 0
- movs r1, 0
- movs r2, 0xC
- movs r3, 0xC
- bl BeginNormalPaletteFade
- movs r0, 0
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r0, _0814254C @ =sub_8142320
- str r0, [r4]
- b _0814255C
- .align 2, 0
-_0814253C: .4byte gUnknown_0203931C
-_08142540: .4byte gSprites
-_08142544: .4byte 0x000001ff
-_08142548: .4byte 0x0000735f
-_0814254C: .4byte sub_8142320
-_08142550:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- add r0, r12
- ldr r1, _0814256C @ =sub_8142570
- str r1, [r0]
-_0814255C:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814256C: .4byte sub_8142570
- thumb_func_end sub_8142484
-
- thumb_func_start sub_8142570
-sub_8142570: @ 8142570
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142604 @ =0xffff0000
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r3, 0
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r5, r0, 3
- ldr r0, _08142608 @ =gTasks + 0x8
- mov r12, r0
- mov r8, r1
- ldr r6, _0814260C @ =gSprites
- movs r7, 0xD
- negs r7, r7
-_0814259E:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r5
- mov r2, r12
- adds r1, r0, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0xFF
- beq _081425C0
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1, 0x5]
-_081425C0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _0814259E
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xF
- bl sub_8143068
- movs r0, 0x69
- bl PlaySE
- ldr r1, _08142610 @ =gTasks
- mov r2, r8
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC8
- lsls r1, 1
- strh r1, [r0, 0xE]
- ldr r1, _08142614 @ =sub_8142618
- str r1, [r0]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142604: .4byte 0xffff0000
-_08142608: .4byte gTasks + 0x8
-_0814260C: .4byte gSprites
-_08142610: .4byte gTasks
-_08142614: .4byte sub_8142618
- thumb_func_end sub_8142570
-
- thumb_func_start sub_8142618
-sub_8142618: @ 8142618
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _08142658 @ =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r5, r0, 3
- adds r1, r5, r7
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0814265C
- subs r2, 0x1
- strh r2, [r1, 0xE]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _081426D2
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x6E
- ble _081426D2
- bl sub_81438C4
- b _081426D2
- .align 2, 0
-_08142658: .4byte gTasks
-_0814265C:
- movs r3, 0
- mov r9, r4
- ldr r0, _081426E4 @ =gUnknown_0203931C
- mov r10, r0
- adds r4, r5, 0
- adds r7, 0x8
- mov r8, r7
- ldr r7, _081426E8 @ =gSprites
- movs r1, 0xD
- negs r1, r1
- mov r12, r1
- movs r5, 0x4
-_08142674:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r4
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0xFF
- beq _08142698
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x5]
- mov r0, r12
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
-_08142698:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _08142674
- mov r3, r10
- ldr r0, [r3]
- ldr r1, _081426EC @ =0x0000735f
- str r1, [sp]
- movs r1, 0
- movs r2, 0xC
- movs r3, 0xC
- bl BeginNormalPaletteFade
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _081426F0 @ =gTasks
- mov r2, r9
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x7
- strh r1, [r0, 0xE]
- ldr r1, _081426F4 @ =sub_81426F8
- str r1, [r0]
-_081426D2:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081426E4: .4byte gUnknown_0203931C
-_081426E8: .4byte gSprites
-_081426EC: .4byte 0x0000735f
-_081426F0: .4byte gTasks
-_081426F4: .4byte sub_81426F8
- thumb_func_end sub_8142618
-
- thumb_func_start sub_81426F8
-sub_81426F8: @ 81426F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08142718 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r2, 0xE]
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0xF
- ble _08142720
- ldr r0, _0814271C @ =sub_8142738
- str r0, [r2]
- b _0814272E
- .align 2, 0
-_08142718: .4byte gTasks
-_0814271C: .4byte sub_8142738
-_08142720:
- adds r0, r1, 0x1
- strh r0, [r2, 0xE]
- ldr r1, _08142734 @ =REG_BLDALPHA
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- lsls r0, 8
- strh r0, [r1]
-_0814272E:
- pop {r0}
- bx r0
- .align 2, 0
-_08142734: .4byte REG_BLDALPHA
- thumb_func_end sub_81426F8
-
- thumb_func_start sub_8142738
-sub_8142738: @ 8142738
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _08142784 @ =gWindowConfig_81E71B4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _08142788 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- movs r1, 0x78
- movs r2, 0x48
- movs r3, 0x6
- bl sub_81437A4
- ldr r2, _0814278C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x10]
- movs r0, 0x78
- strh r0, [r1, 0xE]
- ldr r0, _08142790 @ =sub_8142794
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142784: .4byte gWindowConfig_81E71B4
-_08142788: .4byte gSaveBlock2
-_0814278C: .4byte gTasks
-_08142790: .4byte sub_8142794
- thumb_func_end sub_8142738
-
- thumb_func_start sub_8142794
-sub_8142794: @ 8142794
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081427B4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081427B8
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _0814280A
- .align 2, 0
-_081427B4: .4byte gTasks
-_081427B8:
- ldr r2, _081427D8 @ =gSprites
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- cmp r0, 0xA0
- beq _081427DC
- adds r0, r2, 0x1
- strh r0, [r1, 0x20]
- b _0814280A
- .align 2, 0
-_081427D8: .4byte gSprites
-_081427DC:
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0xF
- movs r3, 0x9
- bl MenuDrawTextWindow
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8143300
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08142810 @ =gMenuText_HOFCongratulations
- movs r1, 0x4
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _08142814 @ =sub_8142818
- str r0, [r4]
-_0814280A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142810: .4byte gMenuText_HOFCongratulations
-_08142814: .4byte sub_8142818
- thumb_func_end sub_8142794
-
- thumb_func_start sub_8142818
-sub_8142818: @ 8142818
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142844 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0814283E
- movs r0, 0x4
- bl FadeOutBGM
- ldr r0, _08142848 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0814284C @ =sub_8142850
- str r0, [r1]
-_0814283E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142844: .4byte gMain
-_08142848: .4byte gTasks
-_0814284C: .4byte sub_8142850
- thumb_func_end sub_8142818
-
- thumb_func_start sub_8142850
-sub_8142850: @ 8142850
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08142890 @ =gPlttBufferFaded
- ldr r1, _08142894 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 2
- bl CpuSet
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x8
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08142898 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814289C @ =sub_81428A0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142890: .4byte gPlttBufferFaded
-_08142894: .4byte gPlttBufferUnfaded
-_08142898: .4byte gTasks
-_0814289C: .4byte sub_81428A0
- thumb_func_end sub_8142850
-
- thumb_func_start sub_81428A0
-sub_81428A0: @ 81428A0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081428C4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081428BE
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _081428C8 @ =sub_81439D0
- bl SetMainCallback2
-_081428BE:
- pop {r0}
- bx r0
- .align 2, 0
-_081428C4: .4byte gPaletteFade
-_081428C8: .4byte sub_81439D0
- thumb_func_end sub_81428A0
-
- thumb_func_start sub_81428CC
-sub_81428CC: @ 81428CC
- push {r4,r5,lr}
- ldr r0, _081428E4 @ =gMain
- ldr r1, _081428E8 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08142908
- lsls r0, 2
- ldr r1, _081428EC @ =_081428F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081428E4: .4byte gMain
-_081428E8: .4byte 0x0000043c
-_081428EC: .4byte _081428F0
- .align 2, 0
-_081428F0:
- .4byte _08142908
- .4byte _08142928
- .4byte _0814293C
- .4byte _08142980
- .4byte _081429C0
- .4byte _081429EC
-_08142908:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81433E0
- ldr r0, _08142920 @ =gMain
- ldr r2, _08142924 @ =0x0000043c
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- b _08142A12
- .align 2, 0
-_08142920: .4byte gMain
-_08142924: .4byte 0x0000043c
-_08142928:
- bl sub_8143570
- ldr r1, _08142934 @ =gMain
- ldr r3, _08142938 @ =0x0000043c
- adds r1, r3
- b _081429DC
- .align 2, 0
-_08142934: .4byte gMain
-_08142938: .4byte 0x0000043c
-_0814293C:
- ldr r0, _08142968 @ =sub_8141E38
- bl SetVBlankCallback
- ldr r3, _0814296C @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08142970 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08142974 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08142978 @ =gMain
- ldr r4, _0814297C @ =0x0000043c
- adds r1, r4
- b _081429DC
- .align 2, 0
-_08142968: .4byte sub_8141E38
-_0814296C: .4byte 0x04000208
-_08142970: .4byte 0x04000200
-_08142974: .4byte REG_DISPSTAT
-_08142978: .4byte gMain
-_0814297C: .4byte 0x0000043c
-_08142980:
- ldr r0, _081429AC @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_81435B8
- ldr r0, _081429B0 @ =0x0201c000
- adds r2, r0, 0
- ldr r1, _081429B4 @ =gUnknown_0840B57C
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3,r5}
- stm r2!, {r3,r5}
- bl sub_80C5CD4
- ldr r1, _081429B8 @ =gMain
- ldr r4, _081429BC @ =0x0000043c
- adds r1, r4
- b _081429DC
- .align 2, 0
-_081429AC: .4byte REG_BLDCNT
-_081429B0: .4byte 0x0201c000
-_081429B4: .4byte gUnknown_0840B57C
-_081429B8: .4byte gMain
-_081429BC: .4byte 0x0000043c
-_081429C0:
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl sub_80C5DCC
- lsls r0, 24
- cmp r0, 0
- beq _08142A12
- ldr r1, _081429E4 @ =gMain
- ldr r5, _081429E8 @ =0x0000043c
- adds r1, r5
-_081429DC:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08142A12
- .align 2, 0
-_081429E4: .4byte gMain
-_081429E8: .4byte 0x0000043c
-_081429EC:
- ldr r1, _08142A18 @ =REG_BLDCNT
- ldr r2, _08142A1C @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0xE2
- lsls r3, 3
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08142A20 @ =sub_8142A28
- movs r1, 0
- bl CreateTask
- ldr r0, _08142A24 @ =sub_8141E4C
- bl SetMainCallback2
-_08142A12:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142A18: .4byte REG_BLDCNT
-_08142A1C: .4byte 0x00003f42
-_08142A20: .4byte sub_8142A28
-_08142A24: .4byte sub_8141E4C
- thumb_func_end sub_81428CC
-
- thumb_func_start sub_8142A28
-sub_8142A28: @ 8142A28
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x3
- bl sub_8125EC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08142A54
- ldr r0, _08142A4C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _08142A50 @ =sub_8142FEC
- str r0, [r1]
- b _08142AEA
- .align 2, 0
-_08142A4C: .4byte gTasks
-_08142A50: .4byte sub_8142FEC
-_08142A54:
- ldr r2, _08142A8C @ =0x0201e000
- movs r3, 0
- ldrh r1, [r2, 0x8]
- ldr r4, _08142A90 @ =0x000001ff
- adds r0, r4, 0
- ands r0, r1
- ldr r7, _08142A94 @ =gTasks
- lsls r6, r5, 2
- cmp r0, 0
- beq _08142A7E
-_08142A68:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r2, 0x78
- cmp r3, 0x31
- bhi _08142A98
- ldrh r1, [r2, 0x8]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _08142A68
-_08142A7E:
- cmp r3, 0x31
- bhi _08142A98
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r7
- subs r1, r3, 0x1
- b _08142AA0
- .align 2, 0
-_08142A8C: .4byte 0x0201e000
-_08142A90: .4byte 0x000001ff
-_08142A94: .4byte gTasks
-_08142A98:
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r7
- movs r1, 0x31
-_08142AA0:
- strh r1, [r0, 0x8]
- movs r0, 0xA
- bl sub_8053108
- ldr r2, _08142AF0 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0xA]
- movs r3, 0
- ldr r7, _08142AF4 @ =0x0600381a
- ldr r4, _08142AF8 @ =0x0600385a
-_08142AB8:
- lsls r1, r3, 1
- adds r2, r1, r7
- adds r0, r3, 0x3
- strh r0, [r2]
- adds r1, r4
- adds r0, 0x11
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x10
- bls _08142AB8
- ldr r4, _08142AFC @ =gWindowConfig_81E7198
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r1, _08142AF0 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142B00 @ =sub_8142B04
- str r1, [r0]
-_08142AEA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142AF0: .4byte gTasks
-_08142AF4: .4byte 0x0600381a
-_08142AF8: .4byte 0x0600385a
-_08142AFC: .4byte gWindowConfig_81E7198
-_08142B00: .4byte sub_8142B04
- thumb_func_end sub_8142A28
-
- thumb_func_start sub_8142B04
-sub_8142B04: @ 8142B04
- 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 r8, r0
- ldr r3, _08142BB8 @ =0x0201e000
- movs r5, 0
- ldr r1, _08142BBC @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- ldr r2, _08142BC0 @ =gUnknown_0203931C
- cmp r5, r0
- bge _08142B3E
- adds r1, r0, 0
-_08142B32:
- adds r3, 0x78
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r1
- blt _08142B32
-_08142B3E:
- adds r4, r3, 0
- movs r0, 0
- str r0, [r2]
- mov r5, r8
- lsls r2, r5, 2
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r6
- strh r0, [r1, 0xC]
- strh r0, [r1, 0x10]
- movs r5, 0
- str r2, [sp, 0xC]
- ldr r6, _08142BC4 @ =0x000001ff
- adds r2, r1, 0
-_08142B5A:
- ldrh r1, [r4, 0x8]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08142B6A
- ldrh r0, [r2, 0x10]
- adds r0, 0x1
- strh r0, [r2, 0x10]
-_08142B6A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x14
- cmp r5, 0x5
- bls _08142B5A
- adds r4, r3, 0
- movs r5, 0
- ldr r1, _08142BBC @ =gTasks
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r7, r0, 3
- adds r6, r7, r1
- str r6, [sp, 0x8]
- adds r1, 0x8
- mov r9, r1
- ldr r0, _08142BC8 @ =gUnknown_0840B564
- mov r10, r0
-_08142B8E:
- ldrh r1, [r4, 0x8]
- ldr r2, _08142BC4 @ =0x000001ff
- adds r0, r2, 0
- ands r0, r1
- adds r6, r1, 0
- cmp r0, 0
- beq _08142C30
- ldr r1, [sp, 0x8]
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, 0x3
- ble _08142BD4
- lsls r1, r5, 3
- ldr r0, _08142BCC @ =gUnknown_0840B534
- adds r0, 0x4
- adds r0, r1, r0
- ldrh r3, [r0]
- ldr r0, _08142BD0 @ =gUnknown_0840B53A
- adds r1, r0
- b _08142BE2
- .align 2, 0
-_08142BB8: .4byte 0x0201e000
-_08142BBC: .4byte gTasks
-_08142BC0: .4byte gUnknown_0203931C
-_08142BC4: .4byte 0x000001ff
-_08142BC8: .4byte gUnknown_0840B564
-_08142BCC: .4byte gUnknown_0840B534
-_08142BD0: .4byte gUnknown_0840B53A
-_08142BD4:
- lsls r1, r5, 3
- mov r0, r10
- adds r0, 0x4
- adds r0, r1, r0
- ldrh r3, [r0]
- ldr r2, _08142C28 @ =gUnknown_0840B56A
- adds r1, r2
-_08142BE2:
- ldrh r2, [r1]
- lsls r0, r6, 23
- lsrs r0, 23
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldr r3, [r4]
- str r3, [sp]
- ldr r3, [r4, 0x4]
- str r3, [sp, 0x4]
- adds r3, r5, 0
- bl sub_81436BC
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08142C2C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x5]
- movs r6, 0xD
- negs r6, r6
- adds r2, r6, 0
- ands r3, r2
- movs r2, 0x4
- orrs r3, r2
- strb r3, [r1, 0x5]
- adds r1, r5, 0x5
- lsls r1, 1
- adds r1, r7
- add r1, r9
- strh r0, [r1]
- b _08142C3C
- .align 2, 0
-_08142C28: .4byte gUnknown_0840B56A
-_08142C2C: .4byte gSprites
-_08142C30:
- adds r0, r5, 0x5
- lsls r0, 1
- adds r0, r7
- add r0, r9
- movs r1, 0xFF
- strh r1, [r0]
-_08142C3C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x14
- cmp r5, 0x5
- bls _08142B8E
- ldr r0, _08142CB0 @ =0xffff0000
- ldr r2, _08142CB4 @ =0x0000735f
- movs r1, 0xC
- bl BlendPalettes
- ldr r3, _08142CB8 @ =gStringVar1
- ldr r1, _08142CBC @ =gMenuText_HOFNumber
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- movs r5, 0xFC
- strb r5, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0x6
- strb r0, [r3, 0x2]
- adds r3, 0x3
- ldr r0, _08142CC0 @ =gTasks
- ldr r4, [sp, 0xC]
- add r4, r8
- lsls r4, 3
- adds r4, r0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- adds r0, r3, 0
- bl ConvertIntToDecimalString
- adds r3, r0, 0
- strb r5, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0xF0
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- ldr r0, _08142CB8 @ =gStringVar1
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- ldr r0, _08142CC4 @ =sub_8142CC8
- str r0, [r4]
- 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
-_08142CB0: .4byte 0xffff0000
-_08142CB4: .4byte 0x0000735f
-_08142CB8: .4byte gStringVar1
-_08142CBC: .4byte gMenuText_HOFNumber
-_08142CC0: .4byte gTasks
-_08142CC4: .4byte sub_8142CC8
- thumb_func_end sub_8142B04
-
- thumb_func_start sub_8142CC8
-sub_8142CC8: @ 8142CC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142DD0 @ =0x0201e000
- mov r8, r0
- movs r3, 0
- ldr r1, _08142DD4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- cmp r3, r0
- bge _08142CFE
- adds r1, r0, 0
-_08142CF0:
- movs r0, 0x78
- add r8, r0
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- blt _08142CF0
-_08142CFE:
- movs r3, 0
- lsls r6, r4, 2
- adds r0, r6, r4
- lsls r5, r0, 3
- ldr r1, _08142DD8 @ =gTasks + 0x8
- mov r10, r1
- ldr r2, _08142DDC @ =gSprites
- mov r12, r2
- movs r0, 0xD
- negs r0, r0
- mov r9, r0
- movs r7, 0x4
-_08142D16:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r5
- add r0, r10
- ldrh r1, [r0]
- cmp r1, 0xFF
- beq _08142D36
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x5]
- mov r1, r9
- ands r1, r2
- orrs r1, r7
- strb r1, [r0, 0x5]
-_08142D36:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _08142D16
- adds r1, r6, r4
- lsls r1, 3
- ldr r2, _08142DD4 @ =gTasks
- adds r5, r1, r2
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- adds r0, 0x5
- lsls r0, 1
- adds r0, r1
- ldr r1, _08142DD4 @ =gTasks
- adds r1, 0x8
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08142DDC @ =gSprites
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r1
- ldr r1, _08142DE0 @ =0xffff0000
- eors r0, r1
- ldr r2, _08142DE4 @ =gUnknown_0203931C
- str r0, [r2]
- ldr r2, _08142DE8 @ =0x0000735f
- movs r1, 0xC
- bl BlendPalettesUnfaded
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- mov r1, r8
- adds r4, r1, r0
- ldrh r1, [r4, 0x8]
- ldr r0, _08142DEC @ =0x000001ff
- ands r0, r1
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08142DB2
- bl StopCryAndClearCrySongs
- ldrh r0, [r4, 0x8]
- lsls r0, 23
- lsrs r0, 23
- movs r1, 0
- bl PlayCry1
-_08142DB2:
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xE
- bl sub_8143088
- ldr r0, _08142DF0 @ =sub_8142DF4
- str r0, [r5]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142DD0: .4byte 0x0201e000
-_08142DD4: .4byte gTasks
-_08142DD8: .4byte gTasks + 0x8
-_08142DDC: .4byte gSprites
-_08142DE0: .4byte 0xffff0000
-_08142DE4: .4byte gUnknown_0203931C
-_08142DE8: .4byte 0x0000735f
-_08142DEC: .4byte 0x000001ff
-_08142DF0: .4byte sub_8142DF4
- thumb_func_end sub_8142CC8
-
- thumb_func_start sub_8142DF4
-sub_8142DF4: @ 8142DF4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08142E88 @ =gMain
- ldrh r2, [r1, 0x2E]
- movs r0, 0x1
- ands r0, r2
- adds r3, r1, 0
- cmp r0, 0
- beq _08142EC4
- ldr r7, _08142E8C @ =gTasks
- lsls r0, r6, 2
- adds r1, r0, r6
- lsls r3, r1, 3
- adds r4, r3, r7
- ldrh r2, [r4, 0x8]
- movs r5, 0x8
- ldrsh r1, [r4, r5]
- mov r8, r0
- cmp r1, 0
- beq _08142E98
- subs r0, r2, 0x1
- strh r0, [r4, 0x8]
- movs r5, 0
- adds r7, 0x8
- mov r9, r7
- adds r7, r3, 0
-_08142E30:
- adds r0, r5, 0x5
- lsls r0, 1
- adds r0, r7
- add r0, r9
- ldrb r1, [r0]
- cmp r1, 0xFF
- beq _08142E5E
- ldr r0, _08142E90 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl DestroySprite
-_08142E5E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08142E30
- ldr r0, _08142E8C @ =gTasks
- mov r2, r8
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08142E80
- subs r0, r2, 0x1
- strh r0, [r1, 0xA]
-_08142E80:
- ldr r0, _08142E94 @ =sub_8142B04
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142E88: .4byte gMain
-_08142E8C: .4byte gTasks
-_08142E90: .4byte gSprites
-_08142E94: .4byte sub_8142B04
-_08142E98:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08142EB2
- bl StopCryAndClearCrySongs
- ldr r0, _08142EB8 @ =gMPlay_BGM
- ldr r1, _08142EBC @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08142EB2:
- ldr r0, _08142EC0 @ =sub_8142F78
- str r0, [r4]
- b _08142F64
- .align 2, 0
-_08142EB8: .4byte gMPlay_BGM
-_08142EBC: .4byte 0x0000ffff
-_08142EC0: .4byte sub_8142F78
-_08142EC4:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _08142F08
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08142EE6
- bl StopCryAndClearCrySongs
- ldr r0, _08142EF8 @ =gMPlay_BGM
- ldr r1, _08142EFC @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08142EE6:
- ldr r0, _08142F00 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08142F04 @ =sub_8142F78
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142EF8: .4byte gMPlay_BGM
-_08142EFC: .4byte 0x0000ffff
-_08142F00: .4byte gTasks
-_08142F04: .4byte sub_8142F78
-_08142F08:
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _08142F38
- ldr r0, _08142F30 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08142F38
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- ldr r0, _08142F34 @ =sub_8142CC8
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142F30: .4byte gTasks
-_08142F34: .4byte sub_8142CC8
-_08142F38:
- ldrh r1, [r3, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08142F64
- ldr r1, _08142F70 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- movs r5, 0xC
- ldrsh r1, [r2, r5]
- movs r3, 0x10
- ldrsh r0, [r2, r3]
- subs r0, 0x1
- cmp r1, r0
- bge _08142F64
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- ldr r0, _08142F74 @ =sub_8142CC8
- str r0, [r2]
-_08142F64:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142F70: .4byte gTasks
-_08142F74: .4byte sub_8142CC8
- thumb_func_end sub_8142DF4
-
- thumb_func_start sub_8142F78
-sub_8142F78: @ 8142F78
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08142FB4 @ =gPlttBufferFaded
- ldr r1, _08142FB8 @ =gPlttBufferUnfaded
- movs r2, 0x80
- lsls r2, 2
- bl CpuSet
- ldr r0, _08142FBC @ =0x0201c000
- adds r2, r0, 0
- ldr r1, _08142FC0 @ =gUnknown_0840B57C
- ldm r1!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldm r1!, {r3,r5}
- stm r2!, {r3,r5}
- bl sub_80C5E38
- ldr r1, _08142FC4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142FC8 @ =sub_8142FCC
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142FB4: .4byte gPlttBufferFaded
-_08142FB8: .4byte gPlttBufferUnfaded
-_08142FBC: .4byte 0x0201c000
-_08142FC0: .4byte gUnknown_0840B57C
-_08142FC4: .4byte gTasks
-_08142FC8: .4byte sub_8142FCC
- thumb_func_end sub_8142F78
-
- thumb_func_start sub_8142FCC
-sub_8142FCC: @ 8142FCC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08142FE6
- adds r0, r4, 0
- bl DestroyTask
- bl ReturnFromHallOfFamePC
-_08142FE6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8142FCC
-
- thumb_func_start sub_8142FEC
-sub_8142FEC: @ 8142FEC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08143020 @ =gMenuText_HOFCorrupt
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r1, _08143024 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143028 @ =sub_814302C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143020: .4byte gMenuText_HOFCorrupt
-_08143024: .4byte gTasks
-_08143028: .4byte sub_814302C
- thumb_func_end sub_8142FEC
-
- thumb_func_start sub_814302C
-sub_814302C: @ 814302C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08143056
- ldr r0, _0814305C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08143056
- ldr r0, _08143060 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143064 @ =sub_8142F78
- str r0, [r1]
-_08143056:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814305C: .4byte gMain
-_08143060: .4byte gTasks
-_08143064: .4byte sub_8142F78
- thumb_func_end sub_814302C
-
- thumb_func_start sub_8143068
-sub_8143068: @ 8143068
- push {lr}
- lsls r2, r1, 24
- ldr r0, _08143084 @ =gMenuText_WelcomeToHOFAndDexRating
- movs r1, 0x80
- lsls r1, 17
- adds r2, r1
- lsrs r2, 24
- movs r1, 0
- movs r3, 0xF0
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating
- thumb_func_end sub_8143068
-
- thumb_func_start sub_8143088
-sub_8143088: @ 8143088
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldr r7, _08143188 @ =gStringVar1
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0x28
- strb r0, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- mov r0, r9
- ldrh r2, [r0, 0x8]
- ldr r0, _0814318C @ =0x000001ff
- ands r0, r2
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _081430EA
- lsls r0, r2, 23
- lsrs r0, 23
- bl SpeciesToPokedexNum
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _08143190 @ =0x0000ffff
- cmp r6, r0
- beq _081430EA
- ldr r1, _08143194 @ =gOtherText_Number2
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
-_081430EA:
- ldr r5, _08143188 @ =gStringVar1
- mov r1, r8
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- mov r4, r10
- adds r4, 0x1
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- adds r7, r5, 0
- movs r3, 0
- mov r1, r9
- ldrb r0, [r1, 0xA]
- str r4, [sp]
- mov r2, r8
- adds r2, 0x9
- str r2, [sp, 0xC]
- mov r6, r10
- adds r6, 0x3
- str r6, [sp, 0x8]
- cmp r0, 0xFF
- beq _0814313A
- mov r2, r9
- adds r2, 0xA
-_08143120:
- adds r1, r7, r3
- adds r0, r2, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bhi _0814313A
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08143120
-_0814313A:
- adds r7, r3
- movs r2, 0xFF
- strb r2, [r7]
- mov r1, r9
- ldrh r0, [r1, 0x8]
- ldr r1, _0814318C @ =0x000001ff
- ands r1, r0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _08143198
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0xA0
- strb r0, [r7, 0x2]
- strb r2, [r7, 0x3]
- ldr r0, _08143188 @ =gStringVar1
- ldr r2, [sp, 0xC]
- lsls r1, r2, 24
- lsrs r1, 24
- ldr r3, [sp]
- lsls r2, r3, 24
- lsrs r2, 24
- bl MenuPrint
- ldr r6, [sp, 0x8]
- lsls r1, r6, 24
- lsrs r1, 24
- mov r3, r10
- adds r3, 0x4
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r2, 0x1D
- bl MenuZeroFillWindowRect
- b _081432E4
- .align 2, 0
-_08143188: .4byte gStringVar1
-_0814318C: .4byte 0x000001ff
-_08143190: .4byte 0x0000ffff
-_08143194: .4byte gOtherText_Number2
-_08143198:
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0x3E
- strb r0, [r7, 0x2]
- adds r7, 0x3
- movs r0, 0xBA
- strb r0, [r7]
- adds r7, 0x1
- movs r3, 0
- ldr r2, _08143238 @ =gSpeciesNames
- mov r1, r9
- ldrh r0, [r1, 0x8]
- lsls r0, 23
- lsrs r0, 23
- movs r1, 0xB
- muls r0, r1
- adds r0, r2
- ldrb r0, [r0]
- mov r6, r8
- adds r6, 0x7
- str r6, [sp, 0x4]
- mov r1, r8
- adds r1, 0xD
- str r1, [sp, 0x10]
- cmp r0, 0xFF
- beq _08143204
- adds r5, r2, 0
- movs r4, 0xB
-_081431D4:
- adds r1, r7, r3
- mov r6, r9
- ldrh r0, [r6, 0x8]
- lsls r0, 23
- lsrs r0, 23
- muls r0, r4
- adds r0, r3, r0
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bhi _08143204
- ldrh r0, [r6, 0x8]
- lsls r0, 23
- lsrs r0, 23
- muls r0, r4
- adds r0, r3, r0
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081431D4
-_08143204:
- adds r7, r3
- movs r0, 0
- strb r0, [r7]
- adds r7, 0x1
- mov r1, r9
- ldrh r0, [r1, 0x8]
- ldr r1, _0814323C @ =0x000001ff
- ands r1, r0
- cmp r1, 0x20
- beq _0814324A
- cmp r1, 0x1D
- beq _0814324A
- lsls r0, 23
- lsrs r0, 23
- mov r2, r9
- ldr r1, [r2, 0x4]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08143240
- cmp r0, 0xFE
- beq _08143244
- b _0814324A
- .align 2, 0
-_08143238: .4byte gSpeciesNames
-_0814323C: .4byte 0x000001ff
-_08143240:
- movs r0, 0xB5
- b _08143246
-_08143244:
- movs r0, 0xB6
-_08143246:
- strb r0, [r7]
- adds r7, 0x1
-_0814324A:
- movs r4, 0xFC
- strb r4, [r7]
- movs r3, 0x13
- mov r8, r3
- strb r3, [r7, 0x1]
- movs r0, 0xA0
- strb r0, [r7, 0x2]
- movs r6, 0xFF
- mov r10, r6
- strb r6, [r7, 0x3]
- ldr r5, _081432F4 @ =gStringVar1
- ldr r0, [sp, 0xC]
- lsls r1, r0, 24
- lsrs r1, 24
- ldr r3, [sp]
- lsls r2, r3, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- mov r6, r9
- ldrb r0, [r6, 0x9]
- lsrs r6, r0, 1
- ldr r1, _081432F8 @ =gOtherText_Level3
- adds r0, r5, 0
- bl StringCopy
- adds r7, r0, 0
- strb r4, [r7]
- movs r0, 0x14
- strb r0, [r7, 0x1]
- movs r0, 0x6
- strb r0, [r7, 0x2]
- adds r7, 0x3
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r7, r0, 0
- strb r4, [r7]
- mov r0, r8
- strb r0, [r7, 0x1]
- movs r0, 0x30
- strb r0, [r7, 0x2]
- mov r1, r10
- strb r1, [r7, 0x3]
- ldr r2, [sp, 0x4]
- lsls r1, r2, 24
- lsrs r1, 24
- ldr r3, [sp, 0x8]
- lsls r4, r3, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- mov r0, r9
- ldrh r6, [r0]
- ldr r1, _081432FC @ =gOtherText_IDNumber
- adds r0, r5, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- ldr r2, [sp, 0x10]
- lsls r1, r2, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r4, 0
- bl MenuPrint
-_081432E4:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081432F4: .4byte gStringVar1
-_081432F8: .4byte gOtherText_Level3
-_081432FC: .4byte gOtherText_IDNumber
- thumb_func_end sub_8143088
-
- thumb_func_start sub_8143300
-sub_8143300: @ 8143300
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 24
- lsls r4, 24
- ldr r0, _081433CC @ =gOtherText_Name
- lsrs r1, r5, 24
- mov r8, r1
- movs r2, 0x80
- lsls r2, 17
- adds r5, r2
- lsrs r5, 24
- lsrs r6, r4, 24
- adds r4, r2
- lsrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- ldr r0, _081433D0 @ =gSaveBlock2
- mov r10, r0
- movs r1, 0xE
- add r8, r1
- mov r2, r8
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- mov r1, r8
- adds r2, r4, 0
- bl MenuPrint_RightAligned
- ldr r0, _081433D4 @ =gOtherText_IDNumber2
- adds r4, r6, 0x3
- lsls r4, 24
- lsrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- mov r0, r10
- ldrb r1, [r0, 0xA]
- ldrb r0, [r0, 0xB]
- lsls r0, 8
- orrs r1, r0
- ldr r2, _081433D8 @ =gStringVar1
- mov r9, r2
- mov r0, r9
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, r9
- mov r1, r8
- adds r2, r4, 0
- bl MenuPrint_RightAligned
- ldr r0, _081433DC @ =gMainMenuString_Time
- adds r6, 0x5
- lsls r6, 24
- lsrs r6, 24
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- mov r0, r10
- ldrh r1, [r0, 0xE]
- mov r0, r9
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- movs r1, 0
- strb r1, [r2]
- movs r0, 0xF0
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- adds r2, 0x3
- mov r0, r10
- ldrb r1, [r0, 0x10]
- adds r0, r2, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, r9
- mov r1, r8
- adds r2, r6, 0
- bl MenuPrint_RightAligned
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081433CC: .4byte gOtherText_Name
-_081433D0: .4byte gSaveBlock2
-_081433D4: .4byte gOtherText_IDNumber2
-_081433D8: .4byte gStringVar1
-_081433DC: .4byte gMainMenuString_Time
- thumb_func_end sub_8143300
-
- thumb_func_start sub_81433E0
-sub_81433E0: @ 81433E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x8
- strh r1, [r0]
- adds r0, 0xA
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xA
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xC
- strh r1, [r0]
- adds r0, 0xE
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _0814354C @ =gHallOfFame_Gfx
- mov r9, r1
- mov r2, sp
- movs r6, 0
- ldr r1, _08143550 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08143554 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_08143444:
- strh r6, [r2]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _08143444
- strh r6, [r2]
- mov r2, sp
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r2, _08143550 @ =0x040000d4
- mov r1, r8
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- mov r0, sp
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- mov r0, r9
- bl LZ77UnCompVram
- movs r1, 0
- ldr r3, _08143558 @ =0x06003800
- movs r2, 0x1
-_081434B2:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3F
- bls _081434B2
- movs r1, 0
- ldr r5, _0814355C @ =0x02000000
- ldr r3, _08143560 @ =0x06003b80
- movs r2, 0x1
-_081434CA:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xBF
- bls _081434CA
- movs r1, 0
- ldr r4, _08143564 @ =0x06003000
- movs r3, 0x2
- ldr r2, _08143568 @ =0x000003ff
-_081434E2:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _081434E2
- adds r2, r5, 0
- movs r3, 0x80
- lsls r3, 7
- mov r4, sp
- movs r6, 0
- ldr r1, _08143550 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08143554 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0814350A:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _0814350A
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- ldr r0, _0814356C @ =gHallOfFame_Pal
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814354C: .4byte gHallOfFame_Gfx
-_08143550: .4byte 0x040000d4
-_08143554: .4byte 0x81000800
-_08143558: .4byte 0x06003800
-_0814355C: .4byte 0x02000000
-_08143560: .4byte 0x06003b80
-_08143564: .4byte 0x06003000
-_08143568: .4byte 0x000003ff
-_0814356C: .4byte gHallOfFame_Pal
- thumb_func_end sub_81433E0
-
- thumb_func_start sub_8143570
-sub_8143570: @ 8143570
- push {r4,lr}
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _081435A8 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _081435AC @ =gUnknown_0840B514
- bl LoadCompressedObjectPic
- ldr r0, _081435B0 @ =gUnknown_0840B524
- bl LoadCompressedObjectPalette
- ldr r4, _081435B4 @ =gWindowConfig_81E71B4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081435A8: .4byte gReservedSpritePaletteCount
-_081435AC: .4byte gUnknown_0840B514
-_081435B0: .4byte gUnknown_0840B524
-_081435B4: .4byte gWindowConfig_81E71B4
- thumb_func_end sub_8143570
-
- thumb_func_start sub_81435B8
-sub_81435B8: @ 81435B8
- ldr r1, _081435D8 @ =REG_BG1CNT
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- subs r2, 0xFD
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0xDA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_081435D8: .4byte REG_BG1CNT
- thumb_func_end sub_81435B8
-
- thumb_func_start sub_81435DC
-sub_81435DC: @ 81435DC
- push {r4,lr}
- adds r2, r0, 0
- ldr r1, [r2, 0x20]
- ldr r0, [r2, 0x30]
- cmp r1, r0
- beq _08143632
- ldrh r3, [r2, 0x20]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r4, 0x30
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bge _081435FC
- adds r0, r3, 0
- adds r0, 0xF
- strh r0, [r2, 0x20]
-_081435FC:
- ldrh r3, [r2, 0x20]
- movs r4, 0x20
- ldrsh r0, [r2, r4]
- cmp r0, r1
- ble _0814360C
- adds r0, r3, 0
- subs r0, 0xF
- strh r0, [r2, 0x20]
-_0814360C:
- ldrh r3, [r2, 0x22]
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r4, 0x32
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bge _08143620
- adds r0, r3, 0
- adds r0, 0xA
- strh r0, [r2, 0x22]
-_08143620:
- ldrh r3, [r2, 0x22]
- movs r4, 0x22
- ldrsh r0, [r2, r4]
- cmp r0, r1
- ble _0814363A
- adds r0, r3, 0
- subs r0, 0xA
- strh r0, [r2, 0x22]
- b _0814363A
-_08143632:
- movs r0, 0x1
- strh r0, [r2, 0x2E]
- ldr r0, _08143640 @ =nullsub_81
- str r0, [r2, 0x1C]
-_0814363A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143640: .4byte nullsub_81
- thumb_func_end sub_81435DC
-
- thumb_func_start nullsub_81
-nullsub_81: @ 8143644
- bx lr
- thumb_func_end nullsub_81
-
- thumb_func_start sub_8143648
-sub_8143648: @ 8143648
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _08143670 @ =gUnknown_02024E8C
- adds r3, r4, 0
- ldr r2, _08143674 @ =gUnknown_0840B6B8
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _08143678 @ =gUnknown_0840B69C
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _0814367C @ =gSpriteAnimTable_81E7C64
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143670: .4byte gUnknown_02024E8C
-_08143674: .4byte gUnknown_0840B6B8
-_08143678: .4byte gUnknown_0840B69C
-_0814367C: .4byte gSpriteAnimTable_81E7C64
- thumb_func_end sub_8143648
-
- thumb_func_start sub_8143680
-sub_8143680: @ 8143680
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _081436AC @ =gUnknown_02024E8C
- adds r3, r4, 0
- ldr r2, _081436B0 @ =gUnknown_0840B6B8
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _081436B4 @ =gUnknown_0840B69C
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _081436B8 @ =gUnknown_081EC2A4
- ldr r0, [r0]
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081436AC: .4byte gUnknown_02024E8C
-_081436B0: .4byte gUnknown_0840B6B8
-_081436B4: .4byte gUnknown_0840B69C
-_081436B8: .4byte gUnknown_081EC2A4
- thumb_func_end sub_8143680
-
- thumb_func_start sub_81436BC
-sub_81436BC: @ 81436BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r6, r0, 0
- mov r9, r1
- mov r10, r2
- mov r8, r3
- ldr r7, [sp, 0x34]
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r1, r10
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- mov r2, r8
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- lsls r0, r6, 3
- ldr r1, _08143790 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08143794 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08143798 @ =gUnknown_0840B5A0
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- adds r0, r6, 0
- ldr r1, [sp, 0x30]
- adds r2, r7, 0
- bl species_and_otid_get_pal
- lsls r4, r5, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r5, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8143648
- ldr r0, _0814379C @ =gUnknown_02024E8C
- mov r5, r9
- lsls r5, 16
- asrs r5, 16
- mov r9, r5
- mov r1, r10
- lsls r1, 16
- asrs r1, 16
- mov r10, r1
- movs r3, 0xA
- mov r2, r8
- subs r3, r2
- lsls r3, 24
- lsrs r3, 24
- mov r1, r9
- mov r2, r10
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081437A0 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- strb r1, [r2, 0x5]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08143790: .4byte gMonFrontPicTable
-_08143794: .4byte gMonFrontPicCoords
-_08143798: .4byte gUnknown_0840B5A0
-_0814379C: .4byte gUnknown_02024E8C
-_081437A0: .4byte gSprites
- thumb_func_end sub_81436BC
-
- thumb_func_start sub_81437A4
-sub_81437A4: @ 81437A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r1
- mov r10, r2
- adds r6, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r6, 16
- lsrs r6, 16
- lsls r7, r0, 3
- ldr r1, _08143854 @ =gTrainerFrontPicTable
- mov r8, r1
- add r8, r7
- ldr r1, _08143858 @ =gTrainerFrontPicCoords
- lsls r2, r0, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0814385C @ =gUnknown_0840B5A0
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- bl DecompressPicFromTable_2
- ldr r0, _08143860 @ =gTrainerFrontPicPaletteTable
- adds r0, r7, r0
- ldr r0, [r0]
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8143680
- ldr r0, _08143864 @ =gUnknown_02024E8C
- mov r1, r9
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08143868 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r4
- strb r1, [r2, 0x5]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08143854: .4byte gTrainerFrontPicTable
-_08143858: .4byte gTrainerFrontPicCoords
-_0814385C: .4byte gUnknown_0840B5A0
-_08143860: .4byte gTrainerFrontPicPaletteTable
-_08143864: .4byte gUnknown_02024E8C
-_08143868: .4byte gSprites
- thumb_func_end sub_81437A4
-
- thumb_func_start sub_814386C
-sub_814386C: @ 814386C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x26]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r0, 0x78
- ble _08143882
- adds r0, r5, 0
- bl DestroySprite
- b _081438BA
-_08143882:
- adds r0, r1, 0x1
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r4, [r5, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r0, 0x8
- ldr r1, _081438C0 @ =gSineTable
- lsls r4, 1
- adds r4, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- muls r0, r1
- cmp r0, 0
- bge _081438B0
- adds r0, 0xFF
-_081438B0:
- asrs r0, 8
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x4
- strh r0, [r5, 0x2E]
-_081438BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081438C0: .4byte gSineTable
- thumb_func_end sub_814386C
-
- thumb_func_start sub_81438C4
-sub_81438C4: @ 81438C4
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x7
- ands r2, r0
- negs r2, r2
- ldr r0, _08143934 @ =gSpriteTemplate_840B7A4
- lsls r4, 16
- asrs r4, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r4, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08143938 @ =gSprites
- adds r4, r1, r0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x11
- bl __umodsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- bl Random
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0
- beq _0814393C
- movs r0, 0
- b _0814393E
- .align 2, 0
-_08143934: .4byte gSpriteTemplate_840B7A4
-_08143938: .4byte gSprites
-_0814393C:
- movs r0, 0x1
-_0814393E:
- strh r0, [r4, 0x30]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81438C4
-
- thumb_func_start sub_8143948
-sub_8143948: @ 8143948
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8143948
-
- thumb_func_start sub_814395C
-sub_814395C: @ 814395C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _081439B8 @ =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081439B2
- ldr r0, _081439BC @ =gUnknown_02039324
- ldrb r0, [r0]
- cmp r0, 0
- beq _081439B2
- ldr r2, _081439C0 @ =gTasks
- ldr r0, _081439C4 @ =gUnknown_02039322
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _081439C8 @ =sub_8143B68
- cmp r1, r0
- bne _081439B2
- bl sub_8143948
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r1, _081439CC @ =gUnknown_02039325
- movs r0, 0x1
- strb r0, [r1]
-_081439B2:
- pop {r0}
- bx r0
- .align 2, 0
-_081439B8: .4byte gMain
-_081439BC: .4byte gUnknown_02039324
-_081439C0: .4byte gTasks
-_081439C4: .4byte gUnknown_02039322
-_081439C8: .4byte sub_8143B68
-_081439CC: .4byte gUnknown_02039325
- thumb_func_end sub_814395C
-
- thumb_func_start sub_81439D0
-sub_81439D0: @ 81439D0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- bl sub_8144130
- movs r0, 0
- bl SetVBlankCallback
- bl ResetPaletteFade
- bl ResetTasks
- ldr r0, _08143AF0 @ =sub_8143B38
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08143AF4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x10]
- strh r1, [r0, 0x16]
- strh r1, [r0, 0x1E]
- movs r1, 0x1
- strh r1, [r0, 0x22]
-_08143A0E:
- movs r0, 0
- adds r1, r7, 0
- bl sub_8144ECC
- lsls r0, 24
- cmp r0, 0
- beq _08143A0E
- ldr r6, _08143AF4 @ =gTasks
- lsls r5, r7, 2
- adds r5, r7
- lsls r5, 3
- adds r5, r6
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0
- mov r9, r1
- movs r2, 0
- mov r8, r2
- movs r1, 0x28
- strh r1, [r0, 0x8]
- ldr r4, _08143AF8 @ =gWindowConfig_81E7208
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _08143AFC @ =gUnknown_0840B7BC
- movs r1, 0x80
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08143B00 @ =gUnknown_0840B7FC
- ldr r1, _08143B04 @ =0x0600bee0
- movs r2, 0x20
- bl CpuSet
- ldr r1, _08143B08 @ =REG_BG0VOFS
- ldr r2, _08143B0C @ =0x0000fffc
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08143B10 @ =sub_81441B8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- strh r7, [r1, 0xA]
- strh r0, [r5, 0x26]
- movs r0, 0x1
- negs r0, r0
- mov r1, r8
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _08143B14 @ =0x04000208
- ldrh r2, [r3]
- mov r0, r8
- strh r0, [r3]
- ldr r4, _08143B18 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08143B1C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08143B20 @ =sub_8143948
- bl SetVBlankCallback
- ldr r0, _08143B24 @ =0x000001c7
- bl m4aSongNumStart
- ldr r0, _08143B28 @ =sub_814395C
- bl SetMainCallback2
- ldr r0, _08143B2C @ =gUnknown_02039325
- mov r1, r9
- strb r1, [r0]
- ldr r4, _08143B30 @ =0x0201c000
- bl sub_81458DC
- adds r0, r4, 0
- adds r0, 0x88
- mov r2, r8
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- ldr r0, _08143B34 @ =gUnknown_02039322
- strh r7, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143AF0: .4byte sub_8143B38
-_08143AF4: .4byte gTasks
-_08143AF8: .4byte gWindowConfig_81E7208
-_08143AFC: .4byte gUnknown_0840B7BC
-_08143B00: .4byte gUnknown_0840B7FC
-_08143B04: .4byte 0x0600bee0
-_08143B08: .4byte REG_BG0VOFS
-_08143B0C: .4byte 0x0000fffc
-_08143B10: .4byte sub_81441B8
-_08143B14: .4byte 0x04000208
-_08143B18: .4byte 0x04000200
-_08143B1C: .4byte REG_DISPSTAT
-_08143B20: .4byte sub_8143948
-_08143B24: .4byte 0x000001c7
-_08143B28: .4byte sub_814395C
-_08143B2C: .4byte gUnknown_02039325
-_08143B30: .4byte 0x0201c000
-_08143B34: .4byte gUnknown_02039322
- thumb_func_end sub_81439D0
-
- thumb_func_start sub_8143B38
-sub_8143B38: @ 8143B38
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08143B5C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08143B58
- ldr r0, _08143B60 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143B64 @ =sub_8143B68
- str r0, [r1]
-_08143B58:
- pop {r0}
- bx r0
- .align 2, 0
-_08143B5C: .4byte gPaletteFade
-_08143B60: .4byte gTasks
-_08143B64: .4byte sub_8143B68
- thumb_func_end sub_8143B38
-
- thumb_func_start sub_8143B68
-sub_8143B68: @ 8143B68
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08143B9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _08143BA4
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x1E
- strh r1, [r0, 0x8]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x20]
- ldr r0, _08143BA0 @ =sub_8143EBC
- b _08143BEE
- .align 2, 0
-_08143B9C: .4byte gTasks
-_08143BA0: .4byte sub_8143EBC
-_08143BA4:
- ldr r0, _08143BCC @ =gUnknown_02039320
- strh r1, [r0]
- ldrh r2, [r4, 0x1E]
- movs r3, 0x1E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _08143BD4
- strh r2, [r4, 0x22]
- strh r1, [r4, 0x1E]
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08143BD0 @ =sub_8143BFC
- b _08143BEE
- .align 2, 0
-_08143BCC: .4byte gUnknown_02039320
-_08143BD0: .4byte sub_8143BFC
-_08143BD4:
- cmp r0, 0x2
- bne _08143BF0
- strh r2, [r4, 0x22]
- strh r1, [r4, 0x1E]
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08143BF8 @ =sub_8143CC0
-_08143BEE:
- str r0, [r4]
-_08143BF0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143BF8: .4byte sub_8143CC0
- thumb_func_end sub_8143B68
-
- thumb_func_start sub_8143BFC
-sub_8143BFC: @ 8143BFC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08143C34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08143C2C
- movs r0, 0x80
- lsls r0, 19
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_81450AC
- ldr r1, _08143C38 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143C3C @ =c2_080C9BFC
- str r1, [r0]
-_08143C2C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143C34: .4byte gPaletteFade
-_08143C38: .4byte gTasks
-_08143C3C: .4byte c2_080C9BFC
- thumb_func_end sub_8143BFC
-
- thumb_func_start c2_080C9BFC
-c2_080C9BFC: @ 8143C40
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, _08143CA8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrb r0, [r5, 0x16]
- adds r1, r4, 0
- bl sub_8144ECC
- lsls r0, 24
- cmp r0, 0
- beq _08143CA0
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _08143CAC @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08143CB0 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08143CB4 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08143CB8 @ =sub_8143948
- bl SetVBlankCallback
- ldr r0, _08143CBC @ =sub_8143B38
- str r0, [r5]
-_08143CA0:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08143CA8: .4byte gTasks
-_08143CAC: .4byte 0x04000208
-_08143CB0: .4byte 0x04000200
-_08143CB4: .4byte REG_DISPSTAT
-_08143CB8: .4byte sub_8143948
-_08143CBC: .4byte sub_8143B38
- thumb_func_end c2_080C9BFC
-
- thumb_func_start sub_8143CC0
-sub_8143CC0: @ 8143CC0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08143CF8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08143CF0
- movs r0, 0x80
- lsls r0, 19
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_81450AC
- ldr r1, _08143CFC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143D00 @ =sub_8143D04
- str r1, [r0]
-_08143CF0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143CF8: .4byte gPaletteFade
-_08143CFC: .4byte gTasks
-_08143D00: .4byte sub_8143D04
- thumb_func_end sub_8143CC0
-
- thumb_func_start sub_8143D04
-sub_8143D04: @ 8143D04
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08143DC8 @ =gMain
- ldr r1, _08143DCC @ =0x0000043c
- adds r1, r0
- mov r8, r1
- ldrb r7, [r1]
- cmp r7, 0
- beq _08143D24
- cmp r7, 0x1
- beq _08143E0C
-_08143D24:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _08143DD0 @ =gReservedSpritePaletteCount
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _08143DD4 @ =gBirchHelpGfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08143DD8 @ =gBirchGrassTilemap
- ldr r1, _08143DDC @ =0x06003800
- bl LZ77UnCompVram
- ldr r0, _08143DE0 @ =gBirchBagGrassPal + 0x2
- movs r1, 0x1
- movs r2, 0x3E
- bl LoadPalette
- movs r1, 0
- ldr r4, _08143DE4 @ =0x0201e000
- movs r3, 0x11
- ldr r2, _08143DE8 @ =0x000007ff
-_08143D56:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _08143D56
- movs r1, 0
- ldr r2, _08143DEC @ =0x0201f800
- ldr r6, _08143DF0 @ =gUnknown_0840CAA0
- ldr r0, _08143DF4 @ =0xfffff000
- adds r5, r2, r0
- movs r4, 0x22
- ldr r3, _08143DE8 @ =0x000007ff
-_08143D72:
- adds r0, r1, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _08143D72
- movs r1, 0
- ldr r5, _08143DF8 @ =0x0201f000
- movs r4, 0x33
- ldr r3, _08143DE8 @ =0x000007ff
-_08143D88:
- adds r0, r1, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _08143D88
- movs r0, 0
- strh r0, [r2]
- ldr r1, _08143DFC @ =0x000053ff
- adds r0, r1, 0
- strh r0, [r2, 0x2]
- ldr r1, _08143E00 @ =0x0000529f
- adds r0, r1, 0
- strh r0, [r2, 0x4]
- ldr r1, _08143E04 @ =0x00007e94
- adds r0, r1, 0
- strh r0, [r2, 0x6]
- adds r0, r6, 0
- bl LoadSpriteSheet
- ldr r0, _08143E08 @ =gUnknown_0840CAB0
- bl LoadSpritePalette
- ldr r1, _08143DC8 @ =gMain
- ldr r2, _08143DCC @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08143E90
- .align 2, 0
-_08143DC8: .4byte gMain
-_08143DCC: .4byte 0x0000043c
-_08143DD0: .4byte gReservedSpritePaletteCount
-_08143DD4: .4byte gBirchHelpGfx
-_08143DD8: .4byte gBirchGrassTilemap
-_08143DDC: .4byte 0x06003800
-_08143DE0: .4byte gBirchBagGrassPal + 0x2
-_08143DE4: .4byte 0x0201e000
-_08143DE8: .4byte 0x000007ff
-_08143DEC: .4byte 0x0201f800
-_08143DF0: .4byte gUnknown_0840CAA0
-_08143DF4: .4byte 0xfffff000
-_08143DF8: .4byte 0x0201f000
-_08143DFC: .4byte 0x000053ff
-_08143E00: .4byte 0x0000529f
-_08143E04: .4byte 0x00007e94
-_08143E08: .4byte gUnknown_0840CAB0
-_08143E0C:
- ldr r0, _08143EA0 @ =sub_8144514
- movs r1, 0
- bl CreateTask
- ldr r2, _08143EA4 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- mov r9, r1
- movs r5, 0
- strh r0, [r4, 0xE]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r7, [r0, 0x8]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r6, [r0, 0xA]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r4, 0x16]
- strh r1, [r0, 0xC]
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08143EA8 @ =REG_BG3HOFS
- strh r5, [r0]
- ldr r1, _08143EAC @ =REG_BG3VOFS
- movs r0, 0x20
- strh r0, [r1]
- subs r1, 0x10
- ldr r2, _08143EB0 @ =0x00000703
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- mov r1, r9
- mov r0, r8
- strb r1, [r0]
- ldr r0, _08143EB4 @ =gUnknown_0203935C
- strh r5, [r0]
- ldr r0, _08143EB8 @ =sub_8143B38
- str r0, [r4]
-_08143E90:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143EA0: .4byte sub_8144514
-_08143EA4: .4byte gTasks
-_08143EA8: .4byte REG_BG3HOFS
-_08143EAC: .4byte REG_BG3VOFS
-_08143EB0: .4byte 0x00000703
-_08143EB4: .4byte gUnknown_0203935C
-_08143EB8: .4byte sub_8143B38
- thumb_func_end sub_8143D04
-
- thumb_func_start sub_8143EBC
-sub_8143EBC: @ 8143EBC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08143EE0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x20]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _08143EE4
- subs r0, 0x1
- strh r0, [r4, 0x20]
- b _08143EF8
- .align 2, 0
-_08143EE0: .4byte gTasks
-_08143EE4:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0xC
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08143F00 @ =sub_8143F04
- str r0, [r4]
-_08143EF8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143F00: .4byte sub_8143F04
- thumb_func_end sub_8143EBC
-
- thumb_func_start sub_8143F04
-sub_8143F04: @ 8143F04
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08143F30 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08143F2A
- adds r0, r4, 0
- bl sub_81450AC
- ldr r0, _08143F34 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143F38 @ =sub_8143F3C
- str r0, [r1]
-_08143F2A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143F30: .4byte gPaletteFade
-_08143F34: .4byte gTasks
-_08143F38: .4byte sub_8143F3C
- thumb_func_end sub_8143F04
-
- thumb_func_start sub_8143F3C
-sub_8143F3C: @ 8143F3C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl sub_8144130
- bl ResetPaletteFade
- movs r1, 0xE0
- lsls r1, 6
- movs r0, 0
- movs r2, 0
- bl sub_8145128
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0x8
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08143FC4 @ =REG_BG0CNT
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- ldr r3, _08143FC8 @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08143FCC @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08143FD0 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08143FD4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x8]
- ldr r1, _08143FD8 @ =sub_8143FDC
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08143FC4: .4byte REG_BG0CNT
-_08143FC8: .4byte 0x04000208
-_08143FCC: .4byte 0x04000200
-_08143FD0: .4byte REG_DISPSTAT
-_08143FD4: .4byte gTasks
-_08143FD8: .4byte sub_8143FDC
- thumb_func_end sub_8143F3C
-
- thumb_func_start sub_8143FDC
-sub_8143FDC: @ 8143FDC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08144000 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _08144004
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _08144018
- .align 2, 0
-_08144000: .4byte gTasks
-_08144004:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0x6
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08144020 @ =sub_8144024
- str r0, [r4]
-_08144018:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08144020: .4byte sub_8144024
- thumb_func_end sub_8143FDC
-
- thumb_func_start sub_8144024
-sub_8144024: @ 8144024
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08144074 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0814406A
- movs r0, 0xE0
- lsls r0, 6
- movs r1, 0
- bl sub_81452D0
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08144078 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xE1
- lsls r1, 5
- strh r1, [r0, 0x8]
- ldr r1, _0814407C @ =sub_8144080
- str r1, [r0]
-_0814406A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08144074: .4byte gPaletteFade
-_08144078: .4byte gTasks
-_0814407C: .4byte sub_8144080
- thumb_func_end sub_8144024
-
- thumb_func_start sub_8144080
-sub_8144080: @ 8144080
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081440CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144104
- ldr r1, _081440D0 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _081440AE
- ldr r0, _081440D4 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _081440E0
-_081440AE:
- movs r0, 0x4
- bl FadeOutBGM
- movs r0, 0x1
- negs r0, r0
- ldr r1, _081440D8 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x8
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081440DC @ =sub_8144114
- str r0, [r4]
- b _08144104
- .align 2, 0
-_081440CC: .4byte gPaletteFade
-_081440D0: .4byte gTasks
-_081440D4: .4byte gMain
-_081440D8: .4byte 0x0000ffff
-_081440DC: .4byte sub_8144114
-_081440E0:
- ldr r0, _0814410C @ =0x00001be8
- cmp r1, r0
- bne _081440EC
- movs r0, 0x8
- bl FadeOutBGM
-_081440EC:
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- ldr r0, _08144110 @ =0x00001ab8
- cmp r1, r0
- bne _081440FE
- movs r0, 0xE4
- lsls r0, 1
- bl m4aSongNumStart
-_081440FE:
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
-_08144104:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814410C: .4byte 0x00001be8
-_08144110: .4byte 0x00001ab8
- thumb_func_end sub_8144080
-
- thumb_func_start sub_8144114
-sub_8144114: @ 8144114
- push {lr}
- ldr r0, _0814412C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144128
- movs r0, 0xFF
- bl SoftReset
-_08144128:
- pop {r0}
- bx r0
- .align 2, 0
-_0814412C: .4byte gPaletteFade
- thumb_func_end sub_8144114
-
- thumb_func_start sub_8144130
-sub_8144130: @ 8144130
- sub sp, 0x8
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x1C
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x3E
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- strh r1, [r0]
- ldr r1, _081441A4 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _081441A8 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _081441AC @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _081441B0 @ =0x05000002
- str r0, [r1, 0x4]
- ldr r0, _081441B4 @ =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x8
- bx lr
- .align 2, 0
-_081441A4: .4byte 0x040000d4
-_081441A8: .4byte 0x8100c000
-_081441AC: .4byte 0x85000100
-_081441B0: .4byte 0x05000002
-_081441B4: .4byte 0x810001ff
- thumb_func_end sub_8144130
-
- thumb_func_start sub_81441B8
-sub_81441B8: @ 81441B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081441E4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- cmp r0, 0xA
- bhi _08144218
- lsls r0, 2
- ldr r1, _081441E8 @ =_081441EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081441E4: .4byte gTasks
-_081441E8: .4byte _081441EC
- .align 2, 0
-_081441EC:
- .4byte _08144218
- .4byte _08144258
- .4byte _08144278
- .4byte _08144358
- .4byte _0814438C
- .4byte _081443F8
- .4byte _08144218
- .4byte _08144218
- .4byte _08144218
- .4byte _08144218
- .4byte _08144428
-_08144218:
- ldr r0, _08144250 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0814422A
- b _08144446
-_0814422A:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0x8]
- movs r1, 0x58
- strh r1, [r0, 0xE]
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r2, [r0, 0x24]
- ldr r0, _08144254 @ =gUnknown_02039320
- strh r2, [r0]
- b _08144446
- .align 2, 0
-_08144250: .4byte gPaletteFade
-_08144254: .4byte gUnknown_02039320
-_08144258:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08144270
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- b _08144446
-_08144270:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08144446
-_08144278:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _08144320 @ =0x0000feff
- ands r0, r1
- strh r0, [r2]
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r3, r0, r6
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r4, r0, r6
- ldr r1, [r4]
- ldr r0, _08144324 @ =sub_8143B68
- mov r8, r2
- cmp r1, r0
- bne _08144352
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0x33
- bgt _0814434C
- movs r4, 0
- ldr r7, _08144328 @ =gCreditsEntryPointerTable
- adds r6, r3, 0
-_081442B0:
- movs r2, 0xC
- ldrsh r1, [r6, r2]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r4
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- lsls r2, r4, 25
- movs r3, 0x90
- lsls r3, 20
- adds r2, r3
- lsrs r2, 24
- movs r1, 0
- movs r3, 0xF0
- bl sub_8072BD8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _081442B0
- ldr r3, _0814432C @ =gTasks
- mov r0, r8
- adds r1, r0, r5
- lsls r1, 3
- adds r1, r3
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xA
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x24]
- movs r2, 0xA
- ldrsh r1, [r1, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r3, 0x22
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _08144334
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _08144330 @ =0x0000328d
- b _0814433A
- .align 2, 0
-_08144320: .4byte 0x0000feff
-_08144324: .4byte sub_8143B68
-_08144328: .4byte gCreditsEntryPointerTable
-_0814432C: .4byte gTasks
-_08144330: .4byte 0x0000328d
-_08144334:
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _08144348 @ =0x00001967
-_0814433A:
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08144446
- .align 2, 0
-_08144348: .4byte 0x00001967
-_0814434C:
- movs r0, 0xA
- strh r0, [r3, 0x8]
- b _08144446
-_08144352:
- movs r0, 0
- strh r0, [r4, 0x24]
- b _08144446
-_08144358:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08144388 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144446
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x82
- strh r1, [r0, 0xE]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _08144446
- .align 2, 0
-_08144388: .4byte gPaletteFade
-_0814438C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081443A4
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _08144446
-_081443A4:
- ldrb r0, [r4, 0xC]
- ldrb r1, [r4, 0xA]
- bl sub_8144454
- lsls r0, 24
- cmp r0, 0
- beq _081443BA
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08144446
-_081443BA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0x22
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _081443E0
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _081443DC @ =0x0000328d
- b _081443E6
- .align 2, 0
-_081443DC: .4byte 0x0000328d
-_081443E0:
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _081443F4 @ =0x00001967
-_081443E6:
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08144446
- .align 2, 0
-_081443F4: .4byte 0x00001967
-_081443F8:
- ldr r0, _08144420 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144446
- movs r0, 0
- movs r1, 0x9
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08144424 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- strh r0, [r1, 0x8]
- b _08144446
- .align 2, 0
-_08144420: .4byte gPaletteFade
-_08144424: .4byte gTasks
-_08144428:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r2, 0xA
- ldrsh r1, [r0, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0x10]
- adds r0, r5, 0
- bl DestroyTask
-_08144446:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81441B8
-
- thumb_func_start sub_8144454
-sub_8144454: @ 8144454
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r6, r3, 0
- lsls r1, 24
- lsrs r2, r1, 24
- adds r5, r2, 0
- ldr r4, _08144508 @ =gTasks
- cmp r3, 0x6
- bne _08144474
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_08144474:
- cmp r3, 0xC
- bne _08144486
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0, 0x16]
- strh r1, [r0, 0x1E]
-_08144486:
- cmp r3, 0x12
- bne _08144496
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_08144496:
- cmp r3, 0x18
- bne _081444AA
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444AA:
- cmp r3, 0x1E
- bne _081444BA
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_081444BA:
- cmp r3, 0x23
- bne _081444CE
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x3
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444CE:
- cmp r3, 0x28
- bne _081444DE
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_081444DE:
- cmp r6, 0x2E
- bne _081444F2
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x4
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444F2:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r4
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0814450C
- movs r0, 0
- b _0814450E
- .align 2, 0
-_08144508: .4byte gTasks
-_0814450C:
- movs r0, 0x1
-_0814450E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8144454
-
- thumb_func_start sub_8144514
-sub_8144514: @ 8144514
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, _08144548 @ =0x0201c000
- ldr r3, _0814454C @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r2, r0, r3
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _08144550
- cmp r0, 0x1
- bgt _0814453C
- b _08144658
-_0814453C:
- cmp r0, 0x2
- beq _08144584
- cmp r0, 0x3
- bne _08144546
- b _08144644
-_08144546:
- b _08144658
- .align 2, 0
-_08144548: .4byte 0x0201c000
-_0814454C: .4byte gTasks
-_08144550:
- adds r0, r6, 0
- adds r0, 0x8A
- ldrh r0, [r0]
- cmp r0, 0
- bne _0814456E
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08144658
-_0814456E:
- movs r0, 0xA
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x24]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- b _08144656
-_08144584:
- adds r0, r6, 0
- adds r0, 0x88
- ldrh r1, [r0]
- mov r9, r0
- cmp r1, 0x44
- beq _08144658
- movs r4, 0xA
- ldrsh r1, [r2, r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r0]
- ldr r0, _081445EC @ =sub_8143B68
- cmp r1, r0
- bne _08144658
- adds r7, r6, 0
- adds r7, 0x8C
- ldrh r0, [r7]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- ldr r4, _081445F0 @ =gUnknown_0840CA00
- adds r5, r6, 0
- adds r5, 0x8A
- ldrh r3, [r5]
- lsls r2, r3, 1
- adds r1, r2, r4
- ldrb r1, [r1]
- adds r4, 0x1
- adds r2, r4
- ldrb r2, [r2]
- bl sub_81456B4
- lsls r0, 24
- lsrs r2, r0, 24
- ldrh r1, [r7]
- adds r0, r6, 0
- adds r0, 0x8E
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bge _081445F8
- adds r0, r1, 0x1
- strh r0, [r7]
- ldr r1, _081445F4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x32
- b _0814460A
- .align 2, 0
-_081445EC: .4byte sub_8143B68
-_081445F0: .4byte gUnknown_0840CA00
-_081445F4: .4byte gSprites
-_081445F8:
- movs r0, 0
- strh r0, [r7]
- ldr r1, _08144620 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x80
- lsls r1, 2
-_0814460A:
- strh r1, [r0, 0x34]
- mov r1, r9
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldrh r0, [r5]
- cmp r0, 0x2
- bne _08144624
- movs r0, 0
- b _08144626
- .align 2, 0
-_08144620: .4byte gSprites
-_08144624:
- adds r0, 0x1
-_08144626:
- strh r0, [r5]
- ldr r0, _08144640 @ =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x32
- strh r0, [r1, 0xE]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08144658
- .align 2, 0
-_08144640: .4byte gTasks
-_08144644:
- ldrh r1, [r2, 0xE]
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08144654
- subs r0, r1, 0x1
- strh r0, [r2, 0xE]
- b _08144658
-_08144654:
- movs r0, 0x1
-_08144656:
- strh r0, [r2, 0x8]
-_08144658:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8144514
-
- thumb_func_start sub_8144664
-sub_8144664: @ 8144664
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0814468C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- cmp r0, 0x32
- bls _08144680
- b _0814492C
-_08144680:
- lsls r0, 2
- ldr r1, _08144690 @ =_08144694
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0814468C: .4byte gTasks
-_08144690: .4byte _08144694
- .align 2, 0
-_08144694:
- .4byte _08144760
- .4byte _08144784
- .4byte _081447D8
- .4byte _081447F0
- .4byte _0814482C
- .4byte _08144850
- .4byte _0814489C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _081448A8
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _081448C8
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _081448EC
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _08144920
-_08144760:
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 17
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0xC
- bl Sin
- ldr r1, _08144780 @ =gUnknown_0203935A
- strh r0, [r1]
- b _081447A8
- .align 2, 0
-_08144780: .4byte gUnknown_0203935A
-_08144784:
- ldr r7, _081447B0 @ =gUnknown_0203935A
- movs r3, 0
- ldrsh r4, [r7, r3]
- cmp r4, 0
- beq _081447B4
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 17
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0xC
- bl Sin
- strh r0, [r7]
-_081447A8:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- b _0814492C
- .align 2, 0
-_081447B0: .4byte gUnknown_0203935A
-_081447B4:
- ldr r3, _081447D4 @ =gSprites
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x2
- strh r2, [r0, 0x2E]
- strh r4, [r1, 0x12]
- b _08144848
- .align 2, 0
-_081447D4: .4byte gSprites
-_081447D8:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0x12]
- movs r3, 0x12
- ldrsh r0, [r1, r3]
- cmp r0, 0x3F
- bgt _08144848
- adds r0, r2, 0x1
- strh r0, [r1, 0x12]
- b _08144866
-_081447F0:
- ldr r3, _08144828 @ =gSprites
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r6
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x3
- strh r1, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- movs r0, 0x78
- strh r0, [r2, 0x10]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0814492C
- .align 2, 0
-_08144828: .4byte gSprites
-_0814482C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0x10]
- movs r3, 0x10
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08144844
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- b _0814492C
-_08144844:
- movs r0, 0x40
- strh r0, [r1, 0x12]
-_08144848:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0814492C
-_08144850:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r1, [r4, 0x12]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _0814487C
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
-_08144866:
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0x14
- bl Sin
- ldr r1, _08144878 @ =gUnknown_0203935A
- strh r0, [r1]
- b _0814492C
- .align 2, 0
-_08144878: .4byte gUnknown_0203935A
-_0814487C:
- ldr r2, _08144898 @ =gSprites
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0814492C
- .align 2, 0
-_08144898: .4byte gSprites
-_0814489C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x32
- b _0814492A
-_081448A8:
- ldr r3, _081448C4 @ =gSprites
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- movs r0, 0xE
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x2
- b _081448E0
- .align 2, 0
-_081448C4: .4byte gSprites
-_081448C8:
- ldr r3, _081448E8 @ =gSprites
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x4
-_081448E0:
- strh r2, [r0, 0x2E]
- movs r0, 0x32
- strh r0, [r1, 0x8]
- b _0814492C
- .align 2, 0
-_081448E8: .4byte gSprites
-_081448EC:
- ldr r3, _0814491C @ =gSprites
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r6
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5
- strh r1, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x3
- strh r1, [r0, 0x2E]
- movs r0, 0x32
- strh r0, [r2, 0x8]
- b _0814492C
- .align 2, 0
-_0814491C: .4byte gSprites
-_08144920:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0
-_0814492A:
- strh r1, [r0, 0x8]
-_0814492C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8144664
-
- thumb_func_start sub_8144934
-sub_8144934: @ 8144934
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08144958 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r3, 0x8
- ldrsh r0, [r0, r3]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _08144974
- lsls r0, 2
- ldr r1, _0814495C @ =_08144960
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08144958: .4byte gTasks
-_0814495C: .4byte _08144960
- .align 2, 0
-_08144960:
- .4byte _08144974
- .4byte _081449B8
- .4byte _081449C4
- .4byte _08144A0C
- .4byte _08144A5C
-_08144974:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r2, r0, r4
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- ldr r5, _081449C0 @ =0x00007fff
- cmp r0, r5
- beq _081449B8
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r3, r0, r4
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0x2
- bne _081449B8
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x14
- strh r0, [r1, 0x8]
- strh r5, [r2, 0xA]
-_081449B8:
- movs r0, 0
- bl sub_8149020
- b _08144A62
- .align 2, 0
-_081449C0: .4byte 0x00007fff
-_081449C4:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r2, r0, r4
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- ldr r5, _08144A08 @ =0x00007fff
- cmp r0, r5
- beq _08144A54
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r3, r0, r4
- ldrh r1, [r3, 0x12]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- movs r1, 0xA0
- lsls r1, 2
- cmp r0, r1
- bne _08144A54
- movs r0, 0x1
- strh r0, [r3, 0x8]
- strh r5, [r2, 0xA]
- b _08144A54
- .align 2, 0
-_08144A08: .4byte 0x00007fff
-_08144A0C:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r2, r0, r4
- ldrh r3, [r2, 0xA]
- movs r0, 0xA
- ldrsh r1, [r2, r0]
- ldr r5, _08144A48 @ =0x00007fff
- cmp r1, r5
- beq _08144A54
- ldr r0, _08144A4C @ =0x000001f3
- cmp r1, r0
- bne _08144A50
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xA
- strh r1, [r0, 0x8]
- strh r5, [r2, 0xA]
- b _08144A54
- .align 2, 0
-_08144A48: .4byte 0x00007fff
-_08144A4C: .4byte 0x000001f3
-_08144A50:
- adds r0, r3, 0x1
- strh r0, [r2, 0xA]
-_08144A54:
- movs r0, 0x1
- bl sub_8149020
- b _08144A62
-_08144A5C:
- movs r0, 0x2
- bl sub_8149020
-_08144A62:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8144934
-
- thumb_func_start sub_8144A68
-sub_8144A68: @ 8144A68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- cmp r0, 0x4
- bls _08144A7E
- b _08144DFC
-_08144A7E:
- lsls r0, 2
- ldr r1, _08144A88 @ =_08144A8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08144A88: .4byte _08144A8C
- .align 2, 0
-_08144A8C:
- .4byte _08144AA0
- .4byte _08144B48
- .4byte _08144BF4
- .4byte _08144CA0
- .4byte _08144D50
-_08144AA0:
- ldr r5, _08144B40 @ =gSprites
- ldr r0, _08144B44 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r2, 0x88
- lsls r2, 1
- strh r2, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- movs r2, 0x20
- b _08144DF0
- .align 2, 0
-_08144B40: .4byte gSprites
-_08144B44: .4byte gTasks
-_08144B48:
- ldr r5, _08144BEC @ =gSprites
- ldr r0, _08144BF0 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- movs r2, 0x20
- b _08144DF0
- .align 2, 0
-_08144BEC: .4byte gSprites
-_08144BF0: .4byte gTasks
-_08144BF4:
- ldr r5, _08144C98 @ =gSprites
- ldr r0, _08144C9C @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x1
- b _08144DF0
- .align 2, 0
-_08144C98: .4byte gSprites
-_08144C9C: .4byte gTasks
-_08144CA0:
- ldr r5, _08144D44 @ =gSprites
- ldr r0, _08144D48 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08144D4C @ =0x0000ffe0
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x1
- b _08144DF0
- .align 2, 0
-_08144D44: .4byte gSprites
-_08144D48: .4byte gTasks
-_08144D4C: .4byte 0x0000ffe0
-_08144D50:
- ldr r5, _08144EBC @ =gSprites
- ldr r0, _08144EC0 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x58
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x98
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x2
-_08144DF0:
- movs r3, 0x8
- bl sub_8148EC0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
-_08144DFC:
- ldr r0, _08144EC4 @ =sub_8144934
- movs r1, 0
- bl CreateTask
- ldr r6, _08144EC0 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r5, r1, r6
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- strh r0, [r5, 0xC]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x8]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r4, [r0, 0xA]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r7, [r0, 0xC]
- ldr r0, _08144EC8 @ =sub_8144664
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xA]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r4, [r0, 0x8]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r7, [r0, 0xA]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrh r1, [r5, 0x12]
- strh r1, [r0, 0xC]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrh r1, [r5, 0x14]
- strh r1, [r0, 0xE]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r4, [r0, 0x10]
- mov r1, r8
- cmp r1, 0x2
- bne _08144EB0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- movs r0, 0x45
- strh r0, [r1, 0x12]
-_08144EB0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08144EBC: .4byte gSprites
-_08144EC0: .4byte gTasks
-_08144EC4: .4byte sub_8144934
-_08144EC8: .4byte sub_8144664
- thumb_func_end sub_8144A68
-
- thumb_func_start sub_8144ECC
-sub_8144ECC: @ 8144ECC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _08144F28 @ =gMain
- ldr r1, _08144F2C @ =0x0000043c
- adds r6, r0, r1
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08144F38
- cmp r0, 0x1
- ble _08144EF0
- cmp r0, 0x2
- beq _08144F5C
- cmp r0, 0x3
- bne _08144EF0
- b _0814508C
-_08144EF0:
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- ldr r2, _08144F30 @ =REG_BG3HOFS
- movs r0, 0x8
- strh r0, [r2]
- ldr r0, _08144F34 @ =REG_BG3VOFS
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x3A
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- strb r0, [r6]
- b _081450A2
- .align 2, 0
-_08144F28: .4byte gMain
-_08144F2C: .4byte 0x0000043c
-_08144F30: .4byte REG_BG3HOFS
-_08144F34: .4byte REG_BG3VOFS
-_08144F38:
- ldr r1, _08144F54 @ =gUnknown_02039358
- movs r0, 0x22
- strh r0, [r1]
- ldr r1, _08144F58 @ =gUnknown_0203935A
- movs r0, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8148CB0
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _081450A2
- .align 2, 0
-_08144F54: .4byte gUnknown_02039358
-_08144F58: .4byte gUnknown_0203935A
-_08144F5C:
- ldr r0, _08144FBC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08144FE0
- ldr r0, _08144FC0 @ =gIntro2BrendanSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _08144FC4 @ =gUnknown_08416E34
- bl LoadCompressedObjectPic
- ldr r0, _08144FC8 @ =gIntro2BicycleSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _08144FCC @ =gIntro2SpritePalettes
- bl LoadSpritePalettes
- movs r0, 0x78
- movs r1, 0x2E
- bl intro_create_brendan_sprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08144FD0 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- strh r2, [r4, 0x12]
- ldr r6, _08144FD4 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r6, 0
- adds r5, 0x1C
- adds r2, r0, r5
- ldr r1, _08144FD8 @ =sub_8145378
- str r1, [r2]
- adds r6, 0x8
- adds r0, r6
- ldr r1, _08144FDC @ =gUnknown_0840CA54
- str r1, [r0]
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x2E
- bl intro_create_may_sprite
- b _08145034
- .align 2, 0
-_08144FBC: .4byte gSaveBlock2
-_08144FC0: .4byte gIntro2BrendanSpriteSheet
-_08144FC4: .4byte gUnknown_08416E34
-_08144FC8: .4byte gIntro2BicycleSpriteSheet
-_08144FCC: .4byte gIntro2SpritePalettes
-_08144FD0: .4byte gTasks
-_08144FD4: .4byte gSprites
-_08144FD8: .4byte sub_8145378
-_08144FDC: .4byte gUnknown_0840CA54
-_08144FE0:
- ldr r0, _0814505C @ =gIntro2MaySpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _08145060 @ =gUnknown_08416E24
- bl LoadCompressedObjectPic
- ldr r0, _08145064 @ =gIntro2BicycleSpriteSheet
- bl LoadCompressedObjectPic
- ldr r0, _08145068 @ =gIntro2SpritePalettes
- bl LoadSpritePalettes
- movs r0, 0x78
- movs r1, 0x2E
- bl intro_create_may_sprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0814506C @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- strh r2, [r4, 0x12]
- ldr r6, _08145070 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r6, 0
- adds r5, 0x1C
- adds r2, r0, r5
- ldr r1, _08145074 @ =sub_8145378
- str r1, [r2]
- adds r6, 0x8
- adds r0, r6
- ldr r1, _08145078 @ =gUnknown_0840CA54
- str r1, [r0]
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x2E
- bl intro_create_brendan_sprite
-_08145034:
- lsls r0, 24
- lsrs r2, r0, 24
- strh r2, [r4, 0x14]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r5
- ldr r1, _0814507C @ =sub_8145420
- str r1, [r5]
- adds r0, r6
- ldr r1, _08145080 @ =gUnknown_0840CA94
- str r1, [r0]
- ldr r1, _08145084 @ =gMain
- ldr r0, _08145088 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081450A2
- .align 2, 0
-_0814505C: .4byte gIntro2MaySpriteSheet
-_08145060: .4byte gUnknown_08416E24
-_08145064: .4byte gIntro2BicycleSpriteSheet
-_08145068: .4byte gIntro2SpritePalettes
-_0814506C: .4byte gTasks
-_08145070: .4byte gSprites
-_08145074: .4byte sub_8145378
-_08145078: .4byte gUnknown_0840CA54
-_0814507C: .4byte sub_8145420
-_08145080: .4byte gUnknown_0840CA94
-_08145084: .4byte gMain
-_08145088: .4byte 0x0000043c
-_0814508C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8144A68
- adds r0, r4, 0
- bl sub_8148E90
- movs r0, 0
- strb r0, [r6]
- movs r0, 0x1
- b _081450A4
-_081450A2:
- movs r0, 0
-_081450A4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8144ECC
-
- thumb_func_start sub_81450AC
-sub_81450AC: @ 81450AC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08145120 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081450D2
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0x8]
-_081450D2:
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081450E8
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0xA]
-_081450E8:
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081450FE
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0xC]
-_081450FE:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08145114
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0xE]
-_08145114:
- ldr r1, _08145124 @ =gUnknown_0203935C
- movs r0, 0x1
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08145120: .4byte gTasks
-_08145124: .4byte gUnknown_0203935C
- thumb_func_end sub_81450AC
-
- thumb_func_start sub_8145128
-sub_8145128: @ 8145128
- push {r4-r7,lr}
- adds r3, r0, 0
- adds r4, r2, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r4, 16
- lsrs r5, r4, 16
- ldr r0, _081451EC @ =gCreditsCopyrightEnd_Gfx
- movs r6, 0xC0
- lsls r6, 19
- adds r3, r6
- adds r1, r3, 0
- bl LZ77UnCompVram
- ldr r0, _081451F0 @ =gIntroCopyright_Pal
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- lsrs r4, 20
- lsls r4, 28
- lsrs r4, 16
- movs r2, 0
- adds r1, r4, 0x1
- ldr r3, _081451F4 @ =0x000003ff
-_0814515E:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r6
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bls _0814515E
- movs r2, 0
- adds r0, r4, 0x2
- adds r6, r4, 0
- adds r6, 0x17
- movs r1, 0x2B
- adds r1, r4
- mov r12, r1
- adds r4, 0x42
- ldr r5, _081451F8 @ =0x060001c8
- adds r3, r0, 0
-_08145184:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r5
- adds r1, r2, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x14
- bls _08145184
- movs r2, 0
- ldr r5, _081451FC @ =0x06000248
- adds r3, r6, 0
-_0814519E:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r5
- adds r1, r2, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x13
- bls _0814519E
- movs r2, 0
- ldr r5, _08145200 @ =0x060002c8
- mov r3, r12
-_081451B8:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r5
- adds r1, r2, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x16
- bls _081451B8
- movs r2, 0
- ldr r3, _08145204 @ =0x06000348
-_081451D0:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r3
- adds r1, r2, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xB
- bls _081451D0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081451EC: .4byte gCreditsCopyrightEnd_Gfx
-_081451F0: .4byte gIntroCopyright_Pal
-_081451F4: .4byte 0x000003ff
-_081451F8: .4byte 0x060001c8
-_081451FC: .4byte 0x06000248
-_08145200: .4byte 0x060002c8
-_08145204: .4byte 0x06000348
- thumb_func_end sub_8145128
-
- thumb_func_start sub_8145208
-sub_8145208: @ 8145208
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- movs r0, 0x3F
- ands r0, r2
- adds r1, r0, 0
- adds r1, 0x50
- cmp r2, 0xFF
- bne _08145220
- movs r0, 0x1
- b _08145246
-_08145220:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08145230
- movs r2, 0x80
- lsls r2, 4
- adds r0, r2, 0
- orrs r1, r0
-_08145230:
- movs r0, 0x40
- ands r3, r0
- cmp r3, 0
- beq _08145244
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- orrs r1, r0
- lsls r0, r1, 16
- lsrs r1, r0, 16
-_08145244:
- adds r0, r1, 0
-_08145246:
- pop {r1}
- bx r1
- thumb_func_end sub_8145208
-
- thumb_func_start sub_814524C
-sub_814524C: @ 814524C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x8]
- lsls r0, 16
- lsrs r0, 20
- lsls r0, 28
- lsrs r0, 16
- mov r9, r0
- movs r5, 0
-_0814527A:
- movs r4, 0
- lsls r7, r5, 1
- ldr r1, [sp, 0x4]
- adds r0, r1, r5
- adds r2, r5, 0x1
- mov r8, r2
- lsls r0, 6
- ldr r1, [sp, 0x8]
- adds r6, r0, r1
-_0814528C:
- adds r0, r7, r5
- adds r0, r4
- ldr r2, [sp]
- adds r0, r2, r0
- ldrb r0, [r0]
- bl sub_8145208
- mov r2, r10
- adds r1, r2, r4
- lsls r1, 1
- adds r1, r6
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- add r0, r9
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0814528C
- mov r1, r8
- lsls r0, r1, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0814527A
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_814524C
-
- thumb_func_start sub_81452D0
-sub_81452D0: @ 81452D0
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsrs r1, 20
- lsls r1, 28
- lsrs r1, 16
- movs r2, 0
- ldr r7, _08145360 @ =gUnknown_0840B83C
- movs r4, 0xC0
- lsls r4, 19
- adds r1, 0x1
- ldr r3, _08145364 @ =0x000003ff
-_081452EE:
- lsls r0, r2, 1
- adds r0, r5
- adds r0, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bls _081452EE
- str r6, [sp]
- adds r0, r7, 0
- movs r1, 0x3
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r0, _08145368 @ =gUnknown_0840B84B
- str r6, [sp]
- movs r1, 0x7
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r4, _0814536C @ =gUnknown_0840B85A
- str r6, [sp]
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- str r6, [sp]
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r0, _08145370 @ =gUnknown_0840B869
- str r6, [sp]
- movs r1, 0x14
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r0, _08145374 @ =gUnknown_0840B878
- str r6, [sp]
- movs r1, 0x18
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08145360: .4byte gUnknown_0840B83C
-_08145364: .4byte 0x000003ff
-_08145368: .4byte gUnknown_0840B84B
-_0814536C: .4byte gUnknown_0840B85A
-_08145370: .4byte gUnknown_0840B869
-_08145374: .4byte gUnknown_0840B878
- thumb_func_end sub_81452D0
-
- thumb_func_start sub_8145378
-sub_8145378: @ 8145378
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08145390 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08145394
- adds r0, r4, 0
- bl DestroySprite
- b _08145418
- .align 2, 0
-_08145390: .4byte gUnknown_0203935C
-_08145394:
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bhi _08145418
- lsls r0, 2
- ldr r1, _081453A8 @ =_081453AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081453A8: .4byte _081453AC
- .align 2, 0
-_081453AC:
- .4byte _081453C4
- .4byte _081453CE
- .4byte _081453D4
- .4byte _081453DE
- .4byte _081453E8
- .4byte _081453FE
-_081453C4:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- b _08145418
-_081453CE:
- adds r0, r4, 0
- movs r1, 0x1
- b _08145402
-_081453D4:
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnimIfDifferent
- b _08145418
-_081453DE:
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnimIfDifferent
- b _08145418
-_081453E8:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x78
- ble _08145418
- subs r0, r1, 0x1
- b _08145416
-_081453FE:
- adds r0, r4, 0
- movs r1, 0
-_08145402:
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _08145418
- subs r0, r2, 0x1
-_08145416:
- strh r0, [r4, 0x20]
-_08145418:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8145378
-
- thumb_func_start sub_8145420
-sub_8145420: @ 8145420
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08145438 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0814543C
- adds r0, r4, 0
- bl DestroySprite
- b _081454D8
- .align 2, 0
-_08145438: .4byte gUnknown_0203935C
-_0814543C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08145464
- cmp r0, 0x1
- bgt _0814544E
- cmp r0, 0
- beq _08145458
- b _081454D8
-_0814544E:
- cmp r0, 0x2
- beq _081454A0
- cmp r0, 0x3
- beq _081454BE
- b _081454D8
-_08145458:
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- b _081454D8
-_08145464:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0xC8
- ble _08145476
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnimIfDifferent
- b _0814547E
-_08145476:
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnimIfDifferent
-_0814547E:
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _08145490
- subs r0, r2, 0x2
- strh r0, [r4, 0x20]
-_08145490:
- ldr r0, _0814549C @ =gUnknown_0203935A
- ldrh r0, [r0]
- negs r0, r0
- strh r0, [r4, 0x26]
- b _081454D8
- .align 2, 0
-_0814549C: .4byte gUnknown_0203935A
-_081454A0:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081454D8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- b _081454D6
-_081454BE:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _081454D8
- subs r0, r2, 0x1
-_081454D6:
- strh r0, [r4, 0x20]
-_081454D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8145420
-
- thumb_func_start sub_81454E0
-sub_81454E0: @ 81454E0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, _081454F8 @ =gUnknown_0203935C
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _081454FC
- adds r0, r5, 0
- bl DestroySprite
- b _081456A6
- .align 2, 0
-_081454F8: .4byte gUnknown_0203935C
-_081454FC:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0xA
- bhi _08145544
- lsls r0, 2
- ldr r1, _08145514 @ =_08145518
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08145514: .4byte _08145518
- .align 2, 0
-_08145518:
- .4byte _08145544
- .4byte _0814559E
- .4byte _08145620
- .4byte _08145660
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145696
-_08145544:
- ldrb r1, [r5, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5, 0x1]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
- movs r0, 0x10
- strh r0, [r5, 0x32]
- ldrh r4, [r5, 0x30]
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x80
- lsls r0, 9
- movs r1, 0x10
- bl __divsi3
- adds r1, r0, 0
- str r1, [sp]
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- b _081456A6
-_0814559E:
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0xFF
- bgt _081455D4
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r5, 0x32]
- ldrh r4, [r5, 0x30]
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- movs r0, 0x80
- lsls r0, 9
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _081455DA
-_081455D4:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_081455DA:
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- cmp r1, 0x2
- beq _081456A6
- cmp r1, 0x2
- bgt _081455EC
- cmp r1, 0x1
- beq _081455F2
- b _081456A6
-_081455EC:
- cmp r1, 0x3
- beq _0814560A
- b _081456A6
-_081455F2:
- ldrh r1, [r5, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08145602
- ldrh r0, [r5, 0x22]
- adds r0, 0x1
- strh r0, [r5, 0x22]
-_08145602:
- ldrh r0, [r5, 0x20]
- subs r0, 0x2
- strh r0, [r5, 0x20]
- b _081456A6
-_0814560A:
- ldrh r0, [r5, 0x3C]
- ands r1, r0
- cmp r1, 0
- bne _08145618
- ldrh r0, [r5, 0x22]
- adds r0, 0x1
- strh r0, [r5, 0x22]
-_08145618:
- ldrh r0, [r5, 0x20]
- adds r0, 0x2
- strh r0, [r5, 0x20]
- b _081456A6
-_08145620:
- ldrh r1, [r5, 0x34]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _08145630
- subs r0, r1, 0x1
- strh r0, [r5, 0x34]
- b _081456A6
-_08145630:
- ldr r1, _0814565C @ =REG_BLDCNT
- movs r2, 0xF4
- lsls r2, 4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldrb r1, [r5, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x1]
- movs r0, 0x10
- strh r0, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _081456A6
- .align 2, 0
-_0814565C: .4byte REG_BLDCNT
-_08145660:
- ldrh r1, [r5, 0x34]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _08145684
- subs r1, 0x1
- strh r1, [r5, 0x34]
- ldr r3, _08145680 @ =REG_BLDALPHA
- movs r0, 0x34
- ldrsh r2, [r5, r0]
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- adds r1, r0
- strh r1, [r3]
- b _081456A6
- .align 2, 0
-_08145680: .4byte REG_BLDALPHA
-_08145684:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA
- strh r0, [r5, 0x2E]
- b _081456A6
-_08145696:
- ldr r0, _081456B0 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r5, 0
- bl DestroySprite
-_081456A6:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081456B0: .4byte REG_BLDCNT
- thumb_func_end sub_81454E0
-
- thumb_func_start sub_81456B4
-sub_81456B4: @ 81456B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x10]
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- adds r0, r6, 0
- bl NationalPokedexNumToSpecies
- adds r6, r0, 0
- cmp r6, 0xC9
- beq _081456F8
- movs r0, 0x9A
- lsls r0, 1
- cmp r6, r0
- beq _081456EE
- movs r7, 0
- b _081456FC
-_081456EE:
- ldr r0, _081456F4 @ =gSaveBlock2
- ldr r7, [r0, 0x20]
- b _081456FC
- .align 2, 0
-_081456F4: .4byte gSaveBlock2
-_081456F8:
- ldr r0, _081457E8 @ =gSaveBlock2
- ldr r7, [r0, 0x1C]
-_081456FC:
- lsls r0, r6, 3
- ldr r1, _081457EC @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _081457F0 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _081457F4 @ =gUnknown_0840B5A0
- mov r8, r4
- mov r5, r9
- lsls r4, r5, 2
- add r4, r8
- ldr r4, [r4]
- str r4, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- ldr r2, _081457F8 @ =0x0000ffff
- adds r0, r6, 0
- movs r1, 0
- bl species_and_otid_get_pal
- lsls r5, 4
- mov r8, r5
- movs r1, 0x80
- lsls r1, 1
- add r1, r8
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- mov r7, r9
- lsls r6, r7, 24
- lsrs r6, 24
- mov r0, r9
- adds r1, r6, 0
- bl sub_8143648
- ldr r0, _081457FC @ =gUnknown_02024E8C
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- ldr r3, [sp, 0x10]
- lsls r2, r3, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08145800 @ =gSprites
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- adds r3, r2, r5
- ldrb r1, [r3, 0x5]
- movs r0, 0xF
- ands r0, r1
- mov r7, r8
- orrs r0, r7
- movs r1, 0xD
- negs r1, r1
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3, 0x5]
- mov r0, r9
- adds r0, 0x1
- strh r0, [r3, 0x30]
- movs r0, 0x3E
- adds r0, r3
- mov r8, r0
- ldrb r0, [r0]
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x1C
- adds r2, r0
- ldr r0, _08145804 @ =sub_81454E0
- str r0, [r2]
- ldr r0, _08145808 @ =gSpriteTemplate_840CAEC
- movs r2, 0x20
- ldrsh r1, [r3, r2]
- movs r7, 0x22
- ldrsh r2, [r3, r7]
- movs r3, 0x1
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r4, [r0, 0x2E]
- adds r1, r6, 0
- bl StartSpriteAnimIfDifferent
- adds r0, r4, 0
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081457E8: .4byte gSaveBlock2
-_081457EC: .4byte gMonFrontPicTable
-_081457F0: .4byte gMonFrontPicCoords
-_081457F4: .4byte gUnknown_0840B5A0
-_081457F8: .4byte 0x0000ffff
-_081457FC: .4byte gUnknown_02024E8C
-_08145800: .4byte gSprites
-_08145804: .4byte sub_81454E0
-_08145808: .4byte gSpriteTemplate_840CAEC
- thumb_func_end sub_81456B4
-
- thumb_func_start sub_814580C
-sub_814580C: @ 814580C
- push {r4,lr}
- adds r3, r0, 0
- ldr r4, _08145838 @ =gSprites
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0xA
- beq _08145830
- ldr r0, _0814583C @ =gUnknown_0203935C
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _08145840
-_08145830:
- adds r0, r3, 0
- bl DestroySprite
- b _081458D4
- .align 2, 0
-_08145838: .4byte gSprites
-_0814583C: .4byte gUnknown_0203935C
-_08145840:
- adds r0, r1, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r0, r12
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r0, 0xC
- ands r0, r1
- ldrb r2, [r3, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r2, 0x4
- negs r2, r2
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x3]
- movs r1, 0x3E
- ands r1, r0
- ldrb r2, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r3, 0x20]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r3, 0x22]
-_081458D4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814580C
-
- thumb_func_start sub_81458DC
-sub_81458DC: @ 81458DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r7, _0814597C @ =0x0201c000
- ldr r0, _08145980 @ =0x00004023
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl GetStarterPokemon
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- movs r4, 0x1
- movs r5, 0
- ldr r0, _08145984 @ =0x00000181
- mov r8, r0
-_0814590E:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- adds r6, r7, 0
- adds r6, 0x90
- cmp r0, 0
- beq _0814592C
- lsls r0, r5, 1
- adds r0, r6, r0
- strh r4, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_0814592C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bls _0814590E
- adds r4, r5, 0
- ldr r0, _08145984 @ =0x00000181
- lsls r1, r4, 16
- mov r9, r1
- movs r2, 0x8E
- adds r2, r7
- mov r8, r2
- adds r1, r7, 0
- adds r1, 0x86
- str r1, [sp]
- cmp r4, r0
- bhi _08145964
- adds r1, r6, 0
- movs r3, 0
- adds r2, r0, 0
-_08145954:
- lsls r0, r4, 1
- adds r0, r1, r0
- strh r3, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r2
- bls _08145954
-_08145964:
- movs r2, 0xE5
- lsls r2, 2
- adds r0, r7, r2
- strh r5, [r0]
- mov r1, r9
- lsrs r0, r1, 16
- cmp r0, 0x43
- bhi _08145988
- mov r2, r8
- strh r5, [r2]
- b _0814598E
- .align 2, 0
-_0814597C: .4byte 0x0201c000
-_08145980: .4byte 0x00004023
-_08145984: .4byte 0x00000181
-_08145988:
- movs r0, 0x44
- mov r1, r8
- strh r0, [r1]
-_0814598E:
- movs r5, 0
- movs r2, 0xE5
- lsls r2, 2
- adds r4, r7, r2
- mov r9, r5
- b _0814599E
-_0814599A:
- cmp r5, 0x43
- bhi _081459EE
-_0814599E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4]
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, r5, 1
- adds r1, r7, r1
- lsls r0, r2, 1
- adds r3, r6, r0
- ldrh r0, [r3]
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- mov r0, r9
- strh r0, [r3]
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r2, r0
- beq _081459E8
- ldrh r0, [r4]
- lsls r0, 1
- adds r0, r6, r0
- ldrh r0, [r0]
- strh r0, [r3]
- ldrh r0, [r4]
- lsls r0, 1
- adds r0, r6, r0
- mov r1, r9
- strh r1, [r0]
-_081459E8:
- ldrh r0, [r4]
- cmp r0, 0
- bne _0814599A
-_081459EE:
- mov r2, r8
- ldrh r0, [r2]
- cmp r0, 0x43
- bhi _08145A26
- adds r5, r0, 0
- movs r2, 0
- cmp r5, 0x43
- bhi _08145A5C
- mov r3, r8
-_08145A00:
- lsls r1, r5, 1
- adds r1, r7, r1
- lsls r0, r2, 1
- adds r0, r7, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r3]
- cmp r2, r0
- bne _08145A1A
- movs r2, 0
-_08145A1A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x43
- bls _08145A00
- b _08145A5C
-_08145A26:
- movs r4, 0
- ldrh r0, [r7]
- cmp r0, r10
- beq _08145A42
-_08145A2E:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r7, r0
- ldrh r0, [r0]
- cmp r0, r10
- beq _08145A42
- cmp r4, 0x43
- bls _08145A2E
-_08145A42:
- mov r1, r8
- ldrh r0, [r1]
- subs r0, 0x1
- cmp r4, r0
- bge _08145A5C
- lsls r0, r4, 1
- adds r0, r7, r0
- ldr r2, [sp]
- ldrh r1, [r2]
- strh r1, [r0]
- mov r0, r10
- strh r0, [r2]
- b _08145A62
-_08145A5C:
- mov r2, r10
- ldr r1, [sp]
- strh r2, [r1]
-_08145A62:
- movs r0, 0x44
- mov r1, r8
- strh r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81458DC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_header.inc b/asm/rom_header.inc
index a7348ad1f..43eec30bb 100644
--- a/asm/rom_header.inc
+++ b/asm/rom_header.inc
@@ -30,9 +30,14 @@ RomHeaderGameTitle:
RomHeaderGameCode:
.ifdef SAPPHIRE
- .ascii "AXPE"
+ .ascii "AXP"
.else
- .ascii "AXVE"
+ .ascii "AXV"
+ .endif
+ .ifdef ENGLISH
+ .ascii "E"
+ .else
+ .ascii "D"
.endif
RomHeaderMakerCode:
@@ -54,11 +59,15 @@ RomHeaderSoftwareVersion:
.byte REVISION
RomHeaderChecksum:
+ .ifdef ENGLISH
.ifdef SAPPHIRE
.byte 0x55 - REVISION
.else
.byte 0x41 - REVISION
.endif
+ .else
+ .byte 0x42
+ .endif
RomHeaderReserved2:
.space 2
diff --git a/asm/rotating_gate.s b/asm/rotating_gate.s
index 9c7b3847b..a553802e8 100644
--- a/asm/rotating_gate.s
+++ b/asm/rotating_gate.s
@@ -428,7 +428,7 @@ sub_80C7C94: @ 80C7C94
adds r0, r4, 0x4
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80E6034
+ bl GetPlayerSpeed
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
@@ -451,7 +451,7 @@ _080C7CDA:
adds r0, 0x8
lsls r0, 24
lsrs r4, r0, 24
- bl sub_80E6034
+ bl GetPlayerSpeed
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
diff --git a/asm/roulette.s b/asm/roulette.s
index 01ff3ac8f..fcfedbd80 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -369,7 +369,7 @@ _081153D0:
movs r1, 0xC0
lsls r1, 19
bl LZ77UnCompVram
- ldr r0, _08115434 @ =gUnknown_08E81098
+ ldr r0, _08115434 @ =gRouletteWheelTiles
ldr r1, _08115438 @ =0x06004000
bl LZ77UnCompVram
ldr r1, _0811543C @ =gMain
@@ -382,7 +382,7 @@ _08115424: .4byte 0x00004686
_08115428: .4byte 0x00004401
_0811542C: .4byte 0x0000060a
_08115430: .4byte gUnknown_08E8096C
-_08115434: .4byte gUnknown_08E81098
+_08115434: .4byte gRouletteWheelTiles
_08115438: .4byte 0x06004000
_0811543C: .4byte gMain
_08115440: .4byte 0x0000043c
@@ -733,7 +733,7 @@ sub_8115734: @ 8115734
bl MenuPrint
ldr r1, _08115778 @ =gUnknown_083F8EBC
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
pop {r4}
pop {r0}
bx r0
@@ -2555,7 +2555,7 @@ sub_811659C: @ 811659C
cmp r0, 0
beq _08116624
movs r0, 0x1D
- bl sub_8053108
+ bl GetGameStat
ldrh r1, [r4, 0x1E]
adds r1, 0x1
strh r1, [r4, 0x1E]
@@ -2566,7 +2566,7 @@ sub_811659C: @ 811659C
movs r0, 0x1E
ldrsh r1, [r4, r0]
movs r0, 0x1D
- bl sav12_xor_set
+ bl SetGameStat
_081165E4:
ldr r1, _081165F8 @ =sub_811677C
ldr r2, _081165FC @ =0x0000ffff
@@ -3245,7 +3245,7 @@ sub_8116B40: @ 8116B40
strh r4, [r0]
adds r0, 0x2
strh r4, [r0]
- ldr r1, _08116BB4 @ =gUnknown_0300485C
+ ldr r1, _08116BB4 @ =gFieldCallback
ldr r0, _08116BB8 @ =sub_8080990
str r0, [r1]
ldr r0, _08116BBC @ =c2_exit_to_overworld_2_switch
@@ -3261,7 +3261,7 @@ _08116BA4: .4byte 0x02019000
_08116BA8: .4byte gSpriteCoordOffsetX
_08116BAC: .4byte gSpriteCoordOffsetY
_08116BB0: .4byte REG_BLDCNT
-_08116BB4: .4byte gUnknown_0300485C
+_08116BB4: .4byte gFieldCallback
_08116BB8: .4byte sub_8080990
_08116BBC: .4byte c2_exit_to_overworld_2_switch
thumb_func_end sub_8116B40
@@ -3571,7 +3571,7 @@ _08116DEE:
cmp r3, 0x3
bls _08116DC8
movs r2, 0
- ldr r0, _08116E54 @ =gUnknown_083F8D94
+ ldr r0, _08116E54 @ =gUnknown_083F8D90 + 0x4
add r0, r12
ldr r7, [r0]
ldr r4, _08116E58 @ =0x02019016
@@ -3617,7 +3617,7 @@ _08116E38:
_08116E48: .4byte 0x02019000
_08116E4C: .4byte gTasks
_08116E50: .4byte gUnknown_083F8D90
-_08116E54: .4byte gUnknown_083F8D94
+_08116E54: .4byte gUnknown_083F8D90 + 0x4
_08116E58: .4byte 0x02019016
thumb_func_end sub_8116D54
@@ -4483,7 +4483,7 @@ sub_81174F8: @ 81174F8
bl sub_814AAF8
ldr r1, _08117524 @ =gUnknown_083F8EB4
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
pop {r4}
pop {r0}
bx r0
@@ -8689,10 +8689,10 @@ _081196A8:
cmp r5, r9
bcs _0811970E
ldr r6, _08119734 @ =0x02019000
- ldr r7, _08119738 @ =gUnknown_083F8C0C
+ ldr r7, _08119738 @ =gUnknown_083F8C00 + 0xC
_081196B6:
lsls r0, r3, 3
- ldr r1, _0811973C @ =gUnknown_083F8D94
+ ldr r1, _0811973C @ =gUnknown_083F8D90 + 0x4
adds r0, r1
ldr r1, [r6, 0x8]
ldr r2, [r0]
@@ -8757,8 +8757,8 @@ _0811970E:
b _08119766
.align 2, 0
_08119734: .4byte 0x02019000
-_08119738: .4byte gUnknown_083F8C0C
-_0811973C: .4byte gUnknown_083F8D94
+_08119738: .4byte gUnknown_083F8C00 + 0xC
+_0811973C: .4byte gUnknown_083F8D90 + 0x4
_08119740: .4byte 0x0201901b
_08119744:
ldr r0, [sp, 0x10]
diff --git a/asm/script_menu.s b/asm/script_menu.s
deleted file mode 100644
index bd6180940..000000000
--- a/asm/script_menu.s
+++ /dev/null
@@ -1,1237 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80B5054
-sub_80B5054: @ 80B5054
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, _080B5098 @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B50A4
- ldr r1, _080B509C @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B50A0 @ =gMultichoiceLists
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80B5138
- movs r0, 0x1
- b _080B50A6
- .align 2, 0
-_080B5098: .4byte sub_80B52B4
-_080B509C: .4byte gScriptResult
-_080B50A0: .4byte gMultichoiceLists
-_080B50A4:
- movs r0, 0
-_080B50A6:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B5054
-
- thumb_func_start sub_80B50B0
-sub_80B50B0: @ 80B50B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B5100 @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B510C
- ldr r1, _080B5104 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B5108 @ =gMultichoiceLists
- lsls r0, r5, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r0, r8
- adds r1, r7, 0
- bl sub_80B5138
- movs r0, 0x1
- b _080B510E
- .align 2, 0
-_080B5100: .4byte sub_80B52B4
-_080B5104: .4byte gScriptResult
-_080B5108: .4byte gMultichoiceLists
-_080B510C:
- movs r0, 0
-_080B510E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B50B0
-
- thumb_func_start GetStringWidthInTilesForScriptMenu
-GetStringWidthInTilesForScriptMenu: @ 80B511C
- push {lr}
- adds r1, r0, 0
- ldr r0, _080B5134 @ =gWindowConfig_81E6CE4
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0x7
- lsrs r0, r1, 3
- pop {r1}
- bx r1
- .align 2, 0
-_080B5134: .4byte gWindowConfig_81E6CE4
- thumb_func_end GetStringWidthInTilesForScriptMenu
-
- thumb_func_start sub_80B5138
-sub_80B5138: @ 80B5138
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r10, r3
- ldr r3, [sp, 0x34]
- ldr r4, [sp, 0x38]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x10]
- mov r1, r10
- ldr r0, [r1]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0x1
- cmp r4, r8
- bcs _080B5198
-_080B517A:
- lsls r0, r4, 3
- add r0, r10
- ldr r0, [r0]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r5, r0
- bcs _080B518E
- adds r5, r0, 0
-_080B518E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r8
- bcc _080B517A
-_080B5198:
- lsls r0, r5, 24
- lsrs r7, r0, 24
- mov r1, r9
- adds r0, r7, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x1D
- bls _080B51B8
- mov r0, r9
- adds r0, 0x1D
- subs r0, r7
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r7, 0x1D
-_080B51B8:
- mov r1, r8
- lsls r0, r1, 1
- adds r0, 0x1
- ldr r1, [sp, 0x8]
- lsls r4, r1, 24
- asrs r4, 24
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- adds r2, r7, 0
- adds r3, r4, 0
- bl MenuDrawTextWindow
- mov r6, r9
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- ldr r5, [sp, 0x8]
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r8
- mov r3, r10
- bl PrintMenuItems
- ldr r0, [sp, 0x10]
- str r0, [sp]
- mov r1, r9
- subs r0, r7, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- adds r1, r6, 0
- adds r2, r5, 0
- mov r3, r8
- bl InitMenu
- ldr r0, [sp, 0xC]
- str r0, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- mov r0, r9
- ldr r1, [sp, 0x8]
- adds r2, r7, 0
- adds r3, r4, 0
- bl sub_80B5230
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5138
-
- thumb_func_start sub_80B5230
-sub_80B5230: @ 80B5230
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r0, [sp, 0x1C]
- mov r8, r0
- ldr r0, [sp, 0x20]
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080B5298 @ =sub_80B52B4
- movs r1, 0x50
- str r3, [sp]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B529C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
- strh r6, [r1, 0xC]
- ldr r3, [sp]
- strh r3, [r1, 0xE]
- mov r0, r8
- strh r0, [r1, 0x10]
- mov r0, r9
- cmp r0, 0x3
- bls _080B52A0
- movs r0, 0x1
- b _080B52A2
- .align 2, 0
-_080B5298: .4byte sub_80B52B4
-_080B529C: .4byte gTasks
-_080B52A0:
- movs r0, 0
-_080B52A2:
- strh r0, [r1, 0x12]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B5230
-
- thumb_func_start sub_80B52B4
-sub_80B52B4: @ 80B52B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080B52E0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B534E
- ldr r2, _080B52E4 @ =gTasks
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- adds r5, r1, 0
- cmp r0, 0
- bne _080B52E8
- bl ProcessMenuInputNoWrap
- b _080B52EC
- .align 2, 0
-_080B52E0: .4byte gPaletteFade
-_080B52E4: .4byte gTasks
-_080B52E8:
- bl ProcessMenuInput
-_080B52EC:
- lsls r0, 24
- lsrs r0, 24
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080B534E
- adds r0, 0x1
- cmp r1, r0
- bne _080B5328
- ldr r0, _080B5320 @ =gTasks
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080B534E
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B5324 @ =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- b _080B532C
- .align 2, 0
-_080B5320: .4byte gTasks
-_080B5324: .4byte gScriptResult
-_080B5328:
- ldr r0, _080B5354 @ =gScriptResult
- strh r1, [r0]
-_080B532C:
- bl sub_8072DEC
- ldr r0, _080B5358 @ =gTasks
- adds r3, r5, r4
- lsls r3, 3
- adds r3, r0
- ldrb r0, [r3, 0x8]
- ldrb r1, [r3, 0xA]
- ldrb r2, [r3, 0xC]
- ldrb r3, [r3, 0xE]
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B534E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5354: .4byte gScriptResult
-_080B5358: .4byte gTasks
- thumb_func_end sub_80B52B4
-
- thumb_func_start Multichoice
-Multichoice: @ 80B535C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, _080B539C @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B53A8
- ldr r1, _080B53A0 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, _080B53A4 @ =gMultichoiceLists
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldr r3, [r0]
- str r5, [sp]
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80B53B4
- movs r0, 0x1
- b _080B53AA
- .align 2, 0
-_080B539C: .4byte sub_80B52B4
-_080B53A0: .4byte gScriptResult
-_080B53A4: .4byte gMultichoiceLists
-_080B53A8:
- movs r0, 0
-_080B53AA:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end Multichoice
-
- thumb_func_start sub_80B53B4
-sub_80B53B4: @ 80B53B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r3, 0
- ldr r3, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- ldr r0, [r7]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r4, r0, 16
- movs r5, 0x1
- cmp r5, r6
- bcs _080B5408
-_080B53EA:
- lsls r0, r5, 3
- adds r0, r7
- ldr r0, [r0]
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bcs _080B53FE
- adds r4, r0, 0
-_080B53FE:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _080B53EA
-_080B5408:
- lsls r4, 24
- lsrs r4, 24
- add r4, r8
- adds r4, 0x2
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r6, 1
- adds r0, 0x1
- mov r1, r9
- lsls r5, r1, 24
- asrs r5, 24
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- mov r0, r8
- adds r2, r6, 0
- adds r3, r7, 0
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- mov r1, r8
- subs r0, r4, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- mov r2, r9
- adds r3, r6, 0
- bl InitMenu
- mov r0, r10
- str r0, [sp]
- str r6, [sp, 0x4]
- mov r0, r8
- mov r1, r9
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_80B5230
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B53B4
-
- thumb_func_start yes_no_box
-yes_no_box: @ 80B546C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r6, _080B54B4 @ =task_yes_no_maybe
- adds r0, r6, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B54C0
- ldr r1, _080B54B8 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl DisplayYesNoMenu
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B54BC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- strh r4, [r1, 0xA]
- movs r0, 0x1
- b _080B54C2
- .align 2, 0
-_080B54B4: .4byte task_yes_no_maybe
-_080B54B8: .4byte gScriptResult
-_080B54BC: .4byte gTasks
-_080B54C0:
- movs r0, 0
-_080B54C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end yes_no_box
-
- thumb_func_start unref_sub_80B54C8
-unref_sub_80B54C8: @ 80B54C8
- push {lr}
- ldr r0, _080B54D8 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0xFF
- beq _080B54DC
- movs r0, 0x1
- b _080B54DE
- .align 2, 0
-_080B54D8: .4byte gScriptResult
-_080B54DC:
- movs r0, 0
-_080B54DE:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80B54C8
-
- thumb_func_start task_yes_no_maybe
-task_yes_no_maybe: @ 80B54E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080B5504 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x4
- bgt _080B5508
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080B556A
- .align 2, 0
-_080B5504: .4byte gTasks
-_080B5508:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080B552C
- cmp r1, r0
- bgt _080B5524
- subs r0, 0x1
- cmp r1, r0
- beq _080B556A
- b _080B5542
-_080B5524:
- cmp r1, 0
- beq _080B553C
- cmp r1, 0x1
- bne _080B5542
-_080B552C:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B5538 @ =gScriptResult
- movs r0, 0
- b _080B5540
- .align 2, 0
-_080B5538: .4byte gScriptResult
-_080B553C:
- ldr r1, _080B5570 @ =gScriptResult
- movs r0, 0x1
-_080B5540:
- strh r0, [r1]
-_080B5542:
- ldr r0, _080B5574 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- ldrb r1, [r1, 0xA]
- adds r2, r0, 0x6
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x5
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B556A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5570: .4byte gScriptResult
-_080B5574: .4byte gTasks
- thumb_func_end task_yes_no_maybe
-
- thumb_func_start sub_80B5578
-sub_80B5578: @ 80B5578
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 24
- lsrs r5, r4, 24
- movs r7, 0
- ldr r0, _080B55B8 @ =sub_80B5684
- mov r10, r0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B55BC
- movs r0, 0
- b _080B5670
- .align 2, 0
-_080B55B8: .4byte sub_80B5684
-_080B55BC:
- ldr r1, _080B5620 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- ldr r0, _080B5624 @ =gMultichoiceLists
- lsls r4, r6, 3
- adds r0, r4, r0
- ldrb r6, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r5, [sp, 0x4]
- str r7, [sp, 0x8]
- mov r0, r9
- mov r1, r8
- adds r2, r6, 0
- movs r3, 0
- bl sub_807274C
- mov r0, r10
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, r6, 24
- lsrs r1, r0, 24
- lsrs r0, 25
- cmp r0, r5
- bcc _080B55FE
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- beq _080B5606
-_080B55FE:
- cmp r5, 0x1
- beq _080B5606
- cmp r1, r5
- bne _080B5628
-_080B5606:
- ldr r0, _080B5624 @ =gMultichoiceLists
- adds r0, r4, r0
- ldrb r0, [r0, 0x4]
- adds r1, r5, 0
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x1
- mov r2, r8
- lsls r1, r2, 24
- b _080B563A
- .align 2, 0
-_080B5620: .4byte gScriptResult
-_080B5624: .4byte gMultichoiceLists
-_080B5628:
- adds r0, r6, 0
- adds r1, r5, 0
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x3
- mov r3, r8
- lsls r1, r3, 24
-_080B563A:
- asrs r1, 24
- adds r1, r0
- lsls r1, 24
- lsrs r7, r1, 24
- adds r0, r5, 0
- bl sub_807288C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B5680 @ =gTasks
- mov r3, r10
- lsls r1, r3, 2
- add r1, r10
- lsls r1, 3
- adds r1, r2
- mov r2, r9
- strh r2, [r1, 0x8]
- mov r3, r8
- strh r3, [r1, 0xA]
- add r0, r9
- adds r0, 0x2
- strh r0, [r1, 0xC]
- strh r7, [r1, 0xE]
- mov r0, sp
- ldrh r0, [r0, 0xC]
- strh r0, [r1, 0x10]
- movs r0, 0x1
-_080B5670:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080B5680: .4byte gTasks
- thumb_func_end sub_80B5578
-
- thumb_func_start sub_80B5684
-sub_80B5684: @ 80B5684
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80727CC
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080B56F4
- adds r0, 0x1
- cmp r1, r0
- bne _080B56CC
- ldr r2, _080B56C4 @ =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- movs r2, 0x10
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0
- bne _080B56F4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080B56C8 @ =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- b _080B56D2
- .align 2, 0
-_080B56C4: .4byte gTasks
-_080B56C8: .4byte gScriptResult
-_080B56CC:
- ldr r0, _080B56FC @ =gScriptResult
- strh r1, [r0]
- lsls r4, r5, 2
-_080B56D2:
- bl sub_8072DEC
- ldr r0, _080B5700 @ =gTasks
- adds r3, r4, r5
- lsls r3, 3
- adds r3, r0
- ldrb r0, [r3, 0x8]
- ldrb r1, [r3, 0xA]
- ldrb r2, [r3, 0xC]
- ldrb r3, [r3, 0xE]
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B56F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B56FC: .4byte gScriptResult
-_080B5700: .4byte gTasks
- thumb_func_end sub_80B5684
-
- thumb_func_start sp109_CreatePCMenu
-sp109_CreatePCMenu: @ 80B5704
- push {lr}
- ldr r0, _080B5724 @ =sub_80B52B4
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B572C
- ldr r1, _080B5728 @ =gScriptResult
- movs r0, 0xFF
- strh r0, [r1]
- bl CreatePCMenu
- movs r0, 0x1
- b _080B572E
- .align 2, 0
-_080B5724: .4byte sub_80B52B4
-_080B5728: .4byte gScriptResult
-_080B572C:
- movs r0, 0
-_080B572E:
- pop {r1}
- bx r1
- thumb_func_end sp109_CreatePCMenu
-
- thumb_func_start CreatePCMenu
-CreatePCMenu: @ 80B5734
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r0, _080B5758 @ =gPCText_PlayersPC
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080B575C @ =gPCText_SomeonesPC
- bl GetStringWidthInTilesForScriptMenu
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bls _080B5760
- lsls r0, r4, 24
- lsrs r5, r0, 24
- b _080B5762
- .align 2, 0
-_080B5758: .4byte gPCText_PlayersPC
-_080B575C: .4byte gPCText_SomeonesPC
-_080B5760:
- movs r5, 0x8
-_080B5762:
- ldr r0, _080B5798 @ =0x00000804
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080B57A4
- movs r7, 0x4
- adds r4, r5, 0x2
- lsls r2, r4, 24
- lsrs r2, 24
- movs r0, 0
- movs r1, 0
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r0, _080B579C @ =gPCText_HallOfFame
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
- ldr r0, _080B57A0 @ =gPCText_LogOff
- movs r1, 0x1
- movs r2, 0x7
- bl MenuPrint
- b _080B57C0
- .align 2, 0
-_080B5798: .4byte 0x00000804
-_080B579C: .4byte gPCText_HallOfFame
-_080B57A0: .4byte gPCText_LogOff
-_080B57A4:
- movs r7, 0x3
- adds r4, r5, 0x2
- lsls r2, r4, 24
- lsrs r2, 24
- movs r0, 0
- movs r1, 0
- movs r3, 0x7
- bl MenuDrawTextWindow
- ldr r0, _080B57DC @ =gPCText_LogOff
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
-_080B57C0:
- adds r6, r4, 0
- ldr r0, _080B57E0 @ =0x0000084b
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080B57E8
- ldr r0, _080B57E4 @ =gPCText_LanettesPC
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
- b _080B57F2
- .align 2, 0
-_080B57DC: .4byte gPCText_LogOff
-_080B57E0: .4byte 0x0000084b
-_080B57E4: .4byte gPCText_LanettesPC
-_080B57E8:
- ldr r0, _080B5830 @ =gPCText_SomeonesPC
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
-_080B57F2:
- ldr r0, _080B5834 @ =gPCText_PlayersPC
- movs r1, 0x1
- movs r2, 0x3
- bl MenuPrint
- movs r4, 0
- str r4, [sp]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- adds r3, r7, 0
- bl InitMenu
- lsls r2, r6, 24
- lsrs r2, 24
- lsls r3, r7, 1
- adds r3, 0x1
- str r4, [sp]
- str r7, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- bl sub_80B5230
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B5830: .4byte gPCText_SomeonesPC
-_080B5834: .4byte gPCText_PlayersPC
- thumb_func_end CreatePCMenu
-
- thumb_func_start sub_80B5838
-sub_80B5838: @ 80B5838
- push {lr}
- bl MenuDisplayMessageBox
- ldr r0, _080B584C @ =gUnknown_081A0A01
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_080B584C: .4byte gUnknown_081A0A01
- thumb_func_end sub_80B5838
-
- thumb_func_start task_picbox
-task_picbox: @ 80B5850
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B5874 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B58BE
- cmp r0, 0x1
- bgt _080B5878
- cmp r0, 0
- beq _080B5894
- b _080B58BE
- .align 2, 0
-_080B5874: .4byte gTasks
-_080B5878:
- cmp r0, 0x2
- beq _080B5882
- cmp r0, 0x3
- beq _080B58A0
- b _080B58BE
-_080B5882:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080B589C @ =gSprites
- adds r0, r1
- bl FreeResourcesAndDestroySprite
-_080B5894:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B58BE
- .align 2, 0
-_080B589C: .4byte gSprites
-_080B58A0:
- ldrb r2, [r4, 0xE]
- adds r0, r2, 0
- ldrb r3, [r4, 0x10]
- adds r1, r3, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
-_080B58BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_picbox
-
- thumb_func_start sub_80B58C4
-sub_80B58C4: @ 80B58C4
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r4, _080B595C @ =task_picbox
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080B596C
- adds r2, r6, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, r5, 0
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080B5960 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r7, [r4, 0xA]
- lsls r1, r6, 19
- movs r0, 0xA0
- lsls r0, 14
- adds r1, r0
- asrs r1, 16
- lsls r2, r5, 19
- adds r2, r0
- asrs r2, 16
- adds r0, r7, 0
- movs r3, 0
- bl CreateMonSprite_PicBox
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- strh r6, [r4, 0xE]
- strh r5, [r4, 0x10]
- ldr r3, _080B5964 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _080B5968 @ =SpriteCallbackDummy
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x1
- b _080B596E
- .align 2, 0
-_080B595C: .4byte task_picbox
-_080B5960: .4byte gTasks
-_080B5964: .4byte gSprites
-_080B5968: .4byte SpriteCallbackDummy
-_080B596C:
- movs r0, 0
-_080B596E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B58C4
-
- thumb_func_start picbox_close
-picbox_close: @ 80B5974
- push {lr}
- ldr r0, _080B5998 @ =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080B59A4
- ldr r0, _080B599C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r0, _080B59A0 @ =sub_80B59AC
- b _080B59A6
- .align 2, 0
-_080B5998: .4byte task_picbox
-_080B599C: .4byte gTasks
-_080B59A0: .4byte sub_80B59AC
-_080B59A4:
- movs r0, 0
-_080B59A6:
- pop {r1}
- bx r1
- thumb_func_end picbox_close
-
- thumb_func_start sub_80B59AC
-sub_80B59AC: @ 80B59AC
- push {lr}
- ldr r0, _080B59C0 @ =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080B59C4
- movs r0, 0
- b _080B59C6
- .align 2, 0
-_080B59C0: .4byte task_picbox
-_080B59C4:
- movs r0, 0x1
-_080B59C6:
- pop {r1}
- bx r1
- thumb_func_end sub_80B59AC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_pokemon_util_80C4BF0.s b/asm/script_pokemon_util_80C4BF0.s
deleted file mode 100644
index b60c9444a..000000000
--- a/asm/script_pokemon_util_80C4BF0.s
+++ /dev/null
@@ -1,1399 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80C4BF0
-sub_80C4BF0: @ 80C4BF0
- push {r4,lr}
- ldr r2, _080C4C1C @ =gSaveBlock1
- ldr r1, _080C4C20 @ =gContestMons
- ldrb r3, [r1, 0x15]
- movs r4, 0x9B
- lsls r4, 5
- adds r0, r2, r4
- strh r3, [r0]
- adds r0, r1, 0
- adds r0, 0x55
- ldrb r3, [r0]
- adds r4, 0x2
- adds r0, r2, r4
- strh r3, [r0]
- adds r1, 0x95
- ldrb r0, [r1]
- ldr r1, _080C4C24 @ =0x00001364
- adds r2, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4C1C: .4byte gSaveBlock1
-_080C4C20: .4byte gContestMons
-_080C4C24: .4byte 0x00001364
- thumb_func_end sub_80C4BF0
-
- thumb_func_start sub_80C4C28
-sub_80C4C28: @ 80C4C28
- push {lr}
- ldr r0, _080C4C40 @ =gSpecialVar_0x8005
- ldrb r0, [r0]
- adds r1, r0, 0
- cmp r0, 0x1
- beq _080C4C4E
- cmp r0, 0x1
- bgt _080C4C44
- cmp r0, 0
- beq _080C4C4A
- b _080C4C56
- .align 2, 0
-_080C4C40: .4byte gSpecialVar_0x8005
-_080C4C44:
- cmp r1, 0x2
- beq _080C4C52
- b _080C4C56
-_080C4C4A:
- movs r1, 0x3
- b _080C4C58
-_080C4C4E:
- movs r1, 0x4
- b _080C4C58
-_080C4C52:
- movs r1, 0x5
- b _080C4C58
-_080C4C56:
- movs r1, 0x64
-_080C4C58:
- ldr r0, _080C4C60 @ =gSpecialVar_0x8004
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080C4C60: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80C4C28
-
- thumb_func_start sub_80C4C64
-sub_80C4C64: @ 80C4C64
- push {lr}
- bl sub_80C46EC
- bl sub_80C4740
- bl sub_80C48F4
- pop {r0}
- bx r0
- thumb_func_end sub_80C4C64
-
- thumb_func_start sub_80C4C78
-sub_80C4C78: @ 80C4C78
- push {lr}
- ldr r0, _080C4C8C @ =gScriptContestCategory
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080C4CB8
- lsls r0, 2
- ldr r1, _080C4C90 @ =_080C4C94
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C4C8C: .4byte gScriptContestCategory
-_080C4C90: .4byte _080C4C94
- .align 2, 0
-_080C4C94:
- .4byte _080C4CA8
- .4byte _080C4CAC
- .4byte _080C4CB0
- .4byte _080C4CB4
- .4byte _080C4CB8
-_080C4CA8:
- movs r0, 0x8
- b _080C4CBA
-_080C4CAC:
- movs r0, 0x9
- b _080C4CBA
-_080C4CB0:
- movs r0, 0xA
- b _080C4CBA
-_080C4CB4:
- movs r0, 0xB
- b _080C4CBA
-_080C4CB8:
- movs r0, 0xC
-_080C4CBA:
- ldr r1, _080C4CD0 @ =gSaveBlock1
- lsls r0, 5
- adds r0, r1
- ldr r1, _080C4CD4 @ =0x00002e04
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- bne _080C4CDC
- ldr r0, _080C4CD8 @ =gSpecialVar_0x8004
- strh r1, [r0]
- b _080C4CE2
- .align 2, 0
-_080C4CD0: .4byte gSaveBlock1
-_080C4CD4: .4byte 0x00002e04
-_080C4CD8: .4byte gSpecialVar_0x8004
-_080C4CDC:
- ldr r1, _080C4CE8 @ =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
-_080C4CE2:
- pop {r0}
- bx r0
- .align 2, 0
-_080C4CE8: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80C4C78
-
- thumb_func_start sub_80C4CEC
-sub_80C4CEC: @ 80C4CEC
- push {lr}
- movs r0, 0xFF
- bl sub_80B2A7C
- pop {r0}
- bx r0
- thumb_func_end sub_80C4CEC
-
- thumb_func_start sub_80C4CF8
-sub_80C4CF8: @ 80C4CF8
- push {lr}
- ldr r0, _080C4D28 @ =gUnknown_02038690
- ldr r1, _080C4D2C @ =gContestPlayerMonIndex
- ldrb r2, [r1]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C4D40
- ldr r0, _080C4D30 @ =gScriptContestRank
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _080C4D40
- ldr r1, _080C4D34 @ =gUnknown_02038678
- lsls r0, r2, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, _080C4D38 @ =0x0000031f
- cmp r1, r0
- ble _080C4D40
- ldr r1, _080C4D3C @ =gSpecialVar_0x8004
- movs r0, 0x1
- b _080C4D44
- .align 2, 0
-_080C4D28: .4byte gUnknown_02038690
-_080C4D2C: .4byte gContestPlayerMonIndex
-_080C4D30: .4byte gScriptContestRank
-_080C4D34: .4byte gUnknown_02038678
-_080C4D38: .4byte 0x0000031f
-_080C4D3C: .4byte gSpecialVar_0x8004
-_080C4D40:
- ldr r1, _080C4D4C @ =gSpecialVar_0x8004
- movs r0, 0
-_080C4D44:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080C4D4C: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80C4CF8
-
- thumb_func_start sub_80C4D50
-sub_80C4D50: @ 80C4D50
- push {lr}
- movs r3, 0
- ldr r0, _080C4D78 @ =gSaveBlock1
- ldr r1, _080C4D7C @ =0x00002f04
- adds r2, r0, r1
- movs r1, 0x4
-_080C4D5C:
- ldrh r0, [r2]
- cmp r0, 0
- beq _080C4D68
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_080C4D68:
- adds r2, 0x20
- subs r1, 0x1
- cmp r1, 0
- bge _080C4D5C
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C4D78: .4byte gSaveBlock1
-_080C4D7C: .4byte 0x00002f04
- thumb_func_end sub_80C4D50
-
- thumb_func_start sub_80C4D80
-sub_80C4D80: @ 80C4D80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _080C4EA0 @ =gUnknown_02038670
- mov r12, r0
- ldr r1, _080C4EA4 @ =gSpecialVar_0x8006
- mov r8, r1
- ldr r2, _080C4EA8 @ =gStringVar1
- mov r9, r2
- mov r2, r12
- mov r1, sp
- movs r6, 0x3
-_080C4D9E:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080C4D9E
- movs r6, 0
-_080C4DAE:
- movs r1, 0x3
- cmp r1, r6
- ble _080C4DD8
-_080C4DB4:
- subs r4, r1, 0x1
- lsls r0, r4, 1
- mov r5, sp
- adds r3, r5, r0
- lsls r0, r1, 1
- adds r2, r5, r0
- ldrh r5, [r3]
- movs r7, 0
- ldrsh r1, [r3, r7]
- movs r7, 0
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080C4DD2
- strh r5, [r2]
- strh r0, [r3]
-_080C4DD2:
- adds r1, r4, 0
- cmp r1, r6
- bgt _080C4DB4
-_080C4DD8:
- adds r6, 0x1
- cmp r6, 0x2
- ble _080C4DAE
- mov r2, r8
- ldrh r0, [r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- movs r2, 0
- movs r7, 0
- movs r6, 0
- lsls r0, 16
- asrs r4, r0, 16
- adds r3, r0, 0
- mov r1, sp
-_080C4DF6:
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, r4
- bne _080C4E12
- lsls r0, r2, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r2, r0, 24
- mov r5, r8
- ldrh r5, [r5]
- cmp r6, r5
- bne _080C4E12
- adds r7, r2, 0
-_080C4E12:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _080C4DF6
- movs r6, 0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r1, r3, 16
- lsls r2, 24
- mov r10, r2
- cmp r0, r1
- beq _080C4E40
- adds r2, r1, 0
- mov r1, sp
-_080C4E30:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- bgt _080C4E40
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, r2
- bne _080C4E30
-_080C4E40:
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r2, r7, 0
- movs r6, 0
- asrs r5, r3, 16
- mov r8, r5
- mov r1, r12
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r8, r0
- bne _080C4E60
- cmp r7, 0x1
- beq _080C4E78
-_080C4E5A:
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080C4E60:
- adds r6, 0x1
- cmp r6, 0x3
- bgt _080C4E78
- lsls r0, r6, 1
- add r0, r12
- asrs r1, r3, 16
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r1, r0
- bne _080C4E60
- cmp r2, 0x1
- bne _080C4E5A
-_080C4E78:
- lsls r1, r6, 24
- lsrs r1, 24
- mov r0, r9
- bl sub_80C4698
- ldr r0, _080C4EAC @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C4EB8
- ldr r0, _080C4EB0 @ =gStringVar2
- lsls r1, r6, 3
- subs r1, r6
- lsls r1, 2
- ldr r2, _080C4EB4 @ =gLinkPlayers + 0x8
- adds r1, r2
- bl sub_80C4674
- b _080C4EC4
- .align 2, 0
-_080C4EA0: .4byte gUnknown_02038670
-_080C4EA4: .4byte gSpecialVar_0x8006
-_080C4EA8: .4byte gStringVar1
-_080C4EAC: .4byte gUnknown_0203869A
-_080C4EB0: .4byte gStringVar2
-_080C4EB4: .4byte gLinkPlayers + 0x8
-_080C4EB8:
- ldr r0, _080C4ED8 @ =gStringVar2
- lsls r1, r6, 6
- ldr r2, _080C4EDC @ =gUnknown_0203857D
- adds r1, r2
- bl sub_80C4674
-_080C4EC4:
- mov r1, r10
- asrs r0, r1, 24
- cmp r0, 0x1
- beq _080C4ED0
- cmp r7, r0
- bne _080C4EE4
-_080C4ED0:
- ldr r0, _080C4EE0 @ =gSpecialVar_0x8006
- strh r4, [r0]
- b _080C4EEA
- .align 2, 0
-_080C4ED8: .4byte gStringVar2
-_080C4EDC: .4byte gUnknown_0203857D
-_080C4EE0: .4byte gSpecialVar_0x8006
-_080C4EE4:
- ldr r1, _080C4EFC @ =gSpecialVar_0x8006
- adds r0, r4, 0x4
- strh r0, [r1]
-_080C4EEA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4EFC: .4byte gSpecialVar_0x8006
- thumb_func_end sub_80C4D80
-
- thumb_func_start ShowContestWinnerCleanup
-ShowContestWinnerCleanup: @ 80C4F00
- push {lr}
- ldr r0, _080C4F0C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end ShowContestWinnerCleanup
-
- thumb_func_start ShowContestWinner
-ShowContestWinner: @ 80C4F10
- push {r4-r6,lr}
- ldr r6, _080C4F54 @ =gUnknown_0203856C
- ldrb r0, [r6]
- cmp r0, 0
- beq _080C4F40
- bl sub_80AAF30
- ldr r4, _080C4F58 @ =0x02000000
- ldr r0, _080C4F5C @ =0x00015ddf
- adds r1, r4, r0
- movs r5, 0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0xFE
- movs r1, 0
- bl sub_80B2C4C
- ldr r1, _080C4F60 @ =0x00015dde
- adds r4, r1
- strb r0, [r4]
- movs r0, 0x3
- bl sub_80B2A7C
- strb r5, [r6]
-_080C4F40:
- ldr r0, _080C4F64 @ =CB2_ContestPainting
- bl SetMainCallback2
- ldr r1, _080C4F68 @ =gMain
- ldr r0, _080C4F6C @ =ShowContestWinnerCleanup
- str r0, [r1, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4F54: .4byte gUnknown_0203856C
-_080C4F58: .4byte 0x02000000
-_080C4F5C: .4byte 0x00015ddf
-_080C4F60: .4byte 0x00015dde
-_080C4F64: .4byte CB2_ContestPainting
-_080C4F68: .4byte gMain
-_080C4F6C: .4byte ShowContestWinnerCleanup
- thumb_func_end ShowContestWinner
-
- thumb_func_start sub_80C4F70
-sub_80C4F70: @ 80C4F70
- push {r4,lr}
- ldr r0, _080C4FA8 @ =0x00004010
- ldr r4, _080C4FAC @ =gContestMons
- ldrb r1, [r4, 0x15]
- bl VarSet
- ldr r0, _080C4FB0 @ =0x00004011
- adds r1, r4, 0
- adds r1, 0x55
- ldrb r1, [r1]
- bl VarSet
- ldr r0, _080C4FB4 @ =0x00004012
- adds r1, r4, 0
- adds r1, 0x95
- ldrb r1, [r1]
- bl VarSet
- ldr r0, _080C4FB8 @ =0x00004013
- adds r1, r4, 0
- adds r1, 0xD5
- ldrb r1, [r1]
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4FA8: .4byte 0x00004010
-_080C4FAC: .4byte gContestMons
-_080C4FB0: .4byte 0x00004011
-_080C4FB4: .4byte 0x00004012
-_080C4FB8: .4byte 0x00004013
- thumb_func_end sub_80C4F70
-
- thumb_func_start GiveMonArtistRibbon
-GiveMonArtistRibbon: @ 80C4FBC
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _080C501C @ =gUnknown_02038694
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080C5020 @ =gPlayerParty
- adds r0, r4
- movs r1, 0x46
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- cmp r0, 0
- bne _080C5038
- ldr r0, _080C5024 @ =gUnknown_02038690
- ldr r1, _080C5028 @ =gContestPlayerMonIndex
- ldrb r2, [r1]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C5038
- ldr r0, _080C502C @ =gScriptContestRank
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _080C5038
- ldr r1, _080C5030 @ =gUnknown_02038678
- lsls r0, r2, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, _080C5034 @ =0x0000031f
- cmp r1, r0
- ble _080C5038
- movs r1, 0x1
- mov r0, sp
- strb r1, [r0]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x46
- mov r2, sp
- bl SetMonData
- movs r0, 0x1
- b _080C503A
- .align 2, 0
-_080C501C: .4byte gUnknown_02038694
-_080C5020: .4byte gPlayerParty
-_080C5024: .4byte gUnknown_02038690
-_080C5028: .4byte gContestPlayerMonIndex
-_080C502C: .4byte gScriptContestRank
-_080C5030: .4byte gUnknown_02038678
-_080C5034: .4byte 0x0000031f
-_080C5038:
- movs r0, 0
-_080C503A:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GiveMonArtistRibbon
-
- thumb_func_start sub_80C5044
-sub_80C5044: @ 80C5044
- ldr r0, _080C504C @ =gUnknown_0203856C
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080C504C: .4byte gUnknown_0203856C
- thumb_func_end sub_80C5044
-
- thumb_func_start ShowContestEntryMonPic
-ShowContestEntryMonPic: @ 80C5050
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r4, _080C513C @ =sub_80C5190
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080C512A
- movs r0, 0xA
- mov r10, r0
- movs r7, 0x3
- movs r1, 0x3
- movs r2, 0x13
- movs r3, 0xD
- bl MenuDrawTextWindow
- ldr r2, _080C5140 @ =gContestMons
- ldr r0, _080C5144 @ =gSpecialVar_0x8006
- ldrh r1, [r0]
- lsls r1, 6
- adds r0, r1, r2
- ldrh r6, [r0]
- adds r0, r2, 0
- adds r0, 0x38
- adds r0, r1, r0
- ldr r0, [r0]
- mov r8, r0
- adds r2, 0x3C
- adds r1, r2
- ldr r1, [r1]
- mov r9, r1
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C5148 @ =gTasks
- lsls r5, r0, 2
- adds r5, r0
- lsls r5, 3
- adds r5, r1
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r6, [r5, 0xA]
- lsls r0, r6, 3
- ldr r1, _080C514C @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _080C5150 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r4, _080C5154 @ =gUnknown_081FAF4C
- ldr r3, [r4]
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r6, [sp, 0x4]
- mov r4, r8
- str r4, [sp, 0x8]
- bl sub_800D334
- adds r0, r6, 0
- mov r1, r9
- mov r2, r8
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080C5158 @ =gUnknown_02024E8C
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x2]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xC]
- mov r1, r10
- strh r1, [r5, 0xE]
- strh r7, [r5, 0x10]
- ldr r3, _080C515C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _080C5160 @ =SpriteCallbackDummy
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
-_080C512A:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C513C: .4byte sub_80C5190
-_080C5140: .4byte gContestMons
-_080C5144: .4byte gSpecialVar_0x8006
-_080C5148: .4byte gTasks
-_080C514C: .4byte gMonFrontPicTable
-_080C5150: .4byte gMonFrontPicCoords
-_080C5154: .4byte gUnknown_081FAF4C
-_080C5158: .4byte gUnknown_02024E8C
-_080C515C: .4byte gSprites
-_080C5160: .4byte SpriteCallbackDummy
- thumb_func_end ShowContestEntryMonPic
-
- thumb_func_start sub_80C5164
-sub_80C5164: @ 80C5164
- push {lr}
- ldr r0, _080C5188 @ =sub_80C5190
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080C5184
- ldr r0, _080C518C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C5184:
- pop {r0}
- bx r0
- .align 2, 0
-_080C5188: .4byte sub_80C5190
-_080C518C: .4byte gTasks
- thumb_func_end sub_80C5164
-
- thumb_func_start sub_80C5190
-sub_80C5190: @ 80C5190
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C51B4 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080C5222
- cmp r0, 0x1
- bgt _080C51B8
- cmp r0, 0
- beq _080C51F8
- b _080C5222
- .align 2, 0
-_080C51B4: .4byte gTasks
-_080C51B8:
- cmp r0, 0x2
- beq _080C51C2
- cmp r0, 0x3
- beq _080C5204
- b _080C5222
-_080C51C2:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C5200 @ =gSprites
- adds r5, r0, r1
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- ldrb r0, [r5, 0x1]
- lsls r0, 30
- cmp r0, 0
- beq _080C51F2
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
-_080C51F2:
- adds r0, r5, 0
- bl DestroySprite
-_080C51F8:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C5222
- .align 2, 0
-_080C5200: .4byte gSprites
-_080C5204:
- ldrb r2, [r4, 0xE]
- adds r0, r2, 0
- ldrb r3, [r4, 0x10]
- adds r1, r3, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
-_080C5222:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C5190
-
- thumb_func_start ScriptGetMultiplayerId
-ScriptGetMultiplayerId: @ 80C5228
- push {r4,lr}
- ldr r0, _080C5244 @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C524C
- ldr r4, _080C5248 @ =gScriptResult
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- b _080C5252
- .align 2, 0
-_080C5244: .4byte gUnknown_0203869A
-_080C5248: .4byte gScriptResult
-_080C524C:
- ldr r1, _080C5258 @ =gScriptResult
- movs r0, 0x4
- strh r0, [r1]
-_080C5252:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5258: .4byte gScriptResult
- thumb_func_end ScriptGetMultiplayerId
-
- thumb_func_start ScriptRandom
-ScriptRandom: @ 80C525C
- push {r4,lr}
- ldr r0, _080C5280 @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C5294
- ldr r2, _080C5284 @ =gUnknown_03005D28
- ldr r1, [r2]
- ldr r0, _080C5288 @ =0x41c64e6d
- muls r0, r1
- ldr r1, _080C528C @ =0x00006073
- adds r0, r1
- str r0, [r2]
- lsrs r0, 16
- ldr r4, _080C5290 @ =gScriptResult
- b _080C529E
- .align 2, 0
-_080C5280: .4byte gUnknown_0203869A
-_080C5284: .4byte gUnknown_03005D28
-_080C5288: .4byte 0x41c64e6d
-_080C528C: .4byte 0x00006073
-_080C5290: .4byte gScriptResult
-_080C5294:
- ldr r4, _080C52AC @ =gScriptResult
- bl Random
- lsls r0, 16
- lsrs r0, 16
-_080C529E:
- ldrh r1, [r4]
- bl __umodsi3
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C52AC: .4byte gScriptResult
- thumb_func_end ScriptRandom
-
- thumb_func_start HealPlayerParty
-HealPlayerParty: @ 80C52B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- mov r8, r0
- ldr r0, _080C536C @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r8, r0
- bcs _080C535C
- ldr r1, _080C5370 @ =gPlayerParty
- mov r10, r1
- mov r6, sp
-_080C52CE:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- add r4, r10
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- lsls r1, r0, 16
- strb r0, [r6]
- lsrs r1, 24
- strb r1, [r6, 0x1]
- adds r0, r4, 0
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r7, r0, 24
- movs r5, 0
- movs r1, 0x1
- add r1, r8
- mov r9, r1
-_080C5304:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r7, 0
- adds r2, r5, 0
- bl CalculatePPWithBonus
- strb r0, [r6]
- adds r1, r5, 0
- adds r1, 0x11
- adds r0, r4, 0
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080C5304
- movs r0, 0
- strb r0, [r6]
- strb r0, [r6, 0x1]
- strb r0, [r6, 0x2]
- strb r0, [r6, 0x3]
- movs r1, 0x64
- mov r0, r8
- muls r0, r1
- add r0, r10
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _080C536C @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r8, r0
- bcc _080C52CE
-_080C535C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C536C: .4byte gPlayerPartyCount
-_080C5370: .4byte gPlayerParty
- thumb_func_end HealPlayerParty
-
- thumb_func_start ScriptGiveMon
-ScriptGiveMon: @ 80C5374
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x78
- adds r5, r0, 0
- adds r3, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 16
- lsrs r0, r4, 16
- mov r8, r0
- add r6, sp, 0x14
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r3, 0
- movs r3, 0x20
- bl CreateMon
- add r0, sp, 0x10
- mov r1, r8
- strb r1, [r0]
- lsrs r4, 24
- strb r4, [r0, 0x1]
- adds r0, r6, 0
- movs r1, 0xC
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r6, 0
- bl GiveMonToPlayer
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0x1
- bgt _080C53E8
- cmp r4, 0
- blt _080C53E8
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8090D90
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8090D90
-_080C53E8:
- adds r0, r4, 0
- add sp, 0x78
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScriptGiveMon
-
- thumb_func_start ScriptGiveEgg
-ScriptGiveEgg: @ 80C53F8
- push {lr}
- sub sp, 0x68
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, sp
- movs r2, 0x1
- bl sub_8042044
- add r2, sp, 0x64
- movs r0, 0x1
- strb r0, [r2]
- mov r0, sp
- movs r1, 0x2D
- bl SetMonData
- mov r0, sp
- bl GiveMonToPlayer
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x68
- pop {r1}
- bx r1
- thumb_func_end ScriptGiveEgg
-
- thumb_func_start CheckForAlivePartyMons
-CheckForAlivePartyMons: @ 80C5428
- push {lr}
- bl sub_803DAA0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- beq _080C5444
- cmp r1, 0x1
- bgt _080C5440
- cmp r1, 0
- beq _080C5444
- b _080C5448
-_080C5440:
- cmp r1, 0x2
- bne _080C5448
-_080C5444:
- ldr r0, _080C544C @ =gScriptResult
- strh r1, [r0]
-_080C5448:
- pop {r0}
- bx r0
- .align 2, 0
-_080C544C: .4byte gScriptResult
- thumb_func_end CheckForAlivePartyMons
-
- thumb_func_start CheckPartyMonHasHeldItem
-CheckPartyMonHasHeldItem: @ 80C5450
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r5, 0
- movs r7, 0xCE
- lsls r7, 1
-_080C545C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080C548C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080C5490
- cmp r0, r7
- beq _080C5490
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- cmp r0, r6
- bne _080C5490
- movs r0, 0x1
- b _080C5498
- .align 2, 0
-_080C548C: .4byte gPlayerParty
-_080C5490:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080C545C
- movs r0, 0
-_080C5498:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPartyMonHasHeldItem
-
- thumb_func_start GetNameOfEnigmaBerryInPlayerParty
-GetNameOfEnigmaBerryInPlayerParty: @ 80C54A0
- push {r4,lr}
- movs r0, 0xAF
- bl CheckPartyMonHasHeldItem
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0x1
- bne _080C54C2
- movs r0, 0xAF
- bl ItemIdToBerryType
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C54CC @ =gStringVar1
- bl GetBerryNameByBerryType
-_080C54C2:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C54CC: .4byte gStringVar1
- thumb_func_end GetNameOfEnigmaBerryInPlayerParty
-
- thumb_func_start ScriptWildBattle
-ScriptWildBattle: @ 80C54D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r7, r2, 16
- lsrs r6, r7, 16
- bl ZeroEnemyPartyMons
- ldr r0, _080C552C @ =gEnemyParty
- mov r8, r0
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x20
- bl CreateMon
- cmp r6, 0
- beq _080C551E
- add r0, sp, 0x10
- strb r6, [r0]
- adds r1, r0, 0
- lsrs r0, r7, 24
- strb r0, [r1, 0x1]
- mov r0, r8
- movs r1, 0xC
- add r2, sp, 0x10
- bl SetMonData
-_080C551E:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C552C: .4byte gEnemyParty
- thumb_func_end ScriptWildBattle
-
- thumb_func_start ScriptSetMonMoveSlot
-ScriptSetMonMoveSlot: @ 80C5530
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r2, 24
- cmp r3, 0x6
- bls _080C554C
- ldr r0, _080C5560 @ =gPlayerPartyCount
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_080C554C:
- movs r0, 0x64
- muls r0, r3
- ldr r1, _080C5564 @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- bl SetMonMoveSlot
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5560: .4byte gPlayerPartyCount
-_080C5564: .4byte gPlayerParty
- thumb_func_end ScriptSetMonMoveSlot
-
- thumb_func_start sub_80C5568
-sub_80C5568: @ 80C5568
- push {lr}
- ldr r1, _080C5578 @ =gMain
- ldr r0, _080C557C @ =sub_80C5580
- str r0, [r1, 0x8]
- bl sub_8121E10
- pop {r0}
- bx r0
- .align 2, 0
-_080C5578: .4byte gMain
-_080C557C: .4byte sub_80C5580
- thumb_func_end sub_80C5568
-
- thumb_func_start sub_80C5580
-sub_80C5580: @ 80C5580
- push {lr}
- ldr r0, _080C5590 @ =gUnknown_02039270
- ldrb r1, [r0]
- cmp r1, 0
- bne _080C5598
- ldr r0, _080C5594 @ =gScriptResult
- strh r1, [r0]
- b _080C559E
- .align 2, 0
-_080C5590: .4byte gUnknown_02039270
-_080C5594: .4byte gScriptResult
-_080C5598:
- ldr r1, _080C55A8 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
-_080C559E:
- ldr r0, _080C55AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080C55A8: .4byte gScriptResult
-_080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C5580
-
- thumb_func_start ChooseBattleTowerPlayerParty
-ChooseBattleTowerPlayerParty: @ 80C55B0
- push {lr}
- ldr r1, _080C55C0 @ =gMain
- ldr r0, _080C55C4 @ =SetBattleTowerPlayerParty
- str r0, [r1, 0x8]
- bl sub_8121E34
- pop {r0}
- bx r0
- .align 2, 0
-_080C55C0: .4byte gMain
-_080C55C4: .4byte SetBattleTowerPlayerParty
- thumb_func_end ChooseBattleTowerPlayerParty
-
- thumb_func_start SetBattleTowerPlayerParty
-SetBattleTowerPlayerParty: @ 80C55C8
- push {r4,lr}
- ldr r0, _080C55DC @ =gUnknown_02039270
- ldrb r4, [r0]
- cmp r4, 0
- bne _080C55E4
- bl LoadPlayerParty
- ldr r0, _080C55E0 @ =gScriptResult
- strh r4, [r0]
- b _080C55EE
- .align 2, 0
-_080C55DC: .4byte gUnknown_02039270
-_080C55E0: .4byte gScriptResult
-_080C55E4:
- bl ReducePlayerPartyToThree
- ldr r1, _080C55FC @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
-_080C55EE:
- ldr r0, _080C5600 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C55FC: .4byte gScriptResult
-_080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end SetBattleTowerPlayerParty
-
- thumb_func_start ReducePlayerPartyToThree
-ReducePlayerPartyToThree: @ 80C5604
- push {r4-r7,lr}
- sub sp, 0x134
- add r0, sp, 0x12C
- movs r1, 0
- str r1, [r0]
- ldr r2, _080C5674 @ =0x0500004b
- mov r1, sp
- bl CpuSet
- movs r5, 0
- movs r7, 0x64
- ldr r6, _080C5678 @ =gPlayerParty
- mov r4, sp
-_080C561E:
- ldr r0, _080C567C @ =gUnknown_02039270
- adds r1, r5, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080C5638
- subs r0, 0x1
- adds r1, r0, 0
- muls r1, r7
- adds r1, r6
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
-_080C5638:
- adds r4, 0x64
- adds r5, 0x1
- cmp r5, 0x2
- ble _080C561E
- add r0, sp, 0x130
- movs r1, 0
- str r1, [r0]
- ldr r4, _080C5678 @ =gPlayerParty
- ldr r2, _080C5680 @ =0x05000096
- adds r1, r4, 0
- bl CpuSet
- mov r5, sp
- add r6, sp, 0xC8
-_080C5654:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r5, 0x64
- adds r4, 0x64
- cmp r5, r6
- ble _080C5654
- bl CalculatePlayerPartyCount
- add sp, 0x134
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5674: .4byte 0x0500004b
-_080C5678: .4byte gPlayerParty
-_080C567C: .4byte gUnknown_02039270
-_080C5680: .4byte 0x05000096
- thumb_func_end ReducePlayerPartyToThree
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_pokemon_util_80F99CC.s b/asm/script_pokemon_util_80F99CC.s
deleted file mode 100644
index af550f47e..000000000
--- a/asm/script_pokemon_util_80F99CC.s
+++ /dev/null
@@ -1,978 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80F99CC
-sub_80F99CC: @ 80F99CC
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080F9A04 @ =sub_80F9A8C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F9A08 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x2
- strh r0, [r1, 0x8]
- subs r0, 0x3
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F9A04: .4byte sub_80F9A8C
-_080F9A08: .4byte gTasks
- thumb_func_end sub_80F99CC
-
- thumb_func_start sub_80F9A0C
-sub_80F9A0C: @ 80F9A0C
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080F9A44 @ =sub_80F9A8C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F9A48 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x3
- strh r0, [r1, 0x8]
- subs r0, 0x4
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F9A44: .4byte sub_80F9A8C
-_080F9A48: .4byte gTasks
- thumb_func_end sub_80F9A0C
-
- thumb_func_start sub_80F9A4C
-sub_80F9A4C: @ 80F9A4C
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080F9A84 @ =sub_80F9A8C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F9A88 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x7
- strh r0, [r1, 0x8]
- subs r0, 0x8
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F9A84: .4byte sub_80F9A8C
-_080F9A88: .4byte gTasks
- thumb_func_end sub_80F9A4C
-
- thumb_func_start sub_80F9A8C
-sub_80F9A8C: @ 80F9A8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080F9AC4 @ =gPaletteFade
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080F9ABE
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _080F9AC8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r1, 0
- bl OpenPartyMenu
- adds r0, r4, 0
- bl DestroyTask
-_080F9ABE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9AC4: .4byte gPaletteFade
-_080F9AC8: .4byte gTasks
- thumb_func_end sub_80F9A8C
-
- thumb_func_start sub_80F9ACC
-sub_80F9ACC: @ 80F9ACC
- push {r4,r5,lr}
- ldr r1, _080F9AEC @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x7
- bls _080F9AE2
- b _080F9BF6
-_080F9AE2:
- lsls r0, 2
- ldr r1, _080F9AF0 @ =_080F9AF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F9AEC: .4byte 0x0201b000
-_080F9AF0: .4byte _080F9AF4
- .align 2, 0
-_080F9AF4:
- .4byte _080F9B14
- .4byte _080F9B54
- .4byte _080F9B5A
- .4byte _080F9B6E
- .4byte _080F9B98
- .4byte _080F9B9E
- .4byte _080F9BB0
- .4byte _080F9BC8
-_080F9B14:
- ldr r0, _080F9B3C @ =0x00000266
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _080F9B40 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r3, r0
- bge _080F9B48
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _080F9B44 @ =gPlayerParty
- adds r2, r3
- bl sub_806D90C
- b _080F9BF0
- .align 2, 0
-_080F9B3C: .4byte 0x00000266
-_080F9B40: .4byte gPlayerPartyCount
-_080F9B44: .4byte gPlayerParty
-_080F9B48:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _080F9BBC
-_080F9B54:
- bl sub_806DA98
- b _080F9BB4
-_080F9B5A:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _080F9BBC
-_080F9B6E:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _080F9B94 @ =0x00000266
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F9BF0
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _080F9BBC
- .align 2, 0
-_080F9B94: .4byte 0x00000266
-_080F9B98:
- bl sub_806E334
- b _080F9BB4
-_080F9B9E:
- bl sub_806E0C4
- ldr r1, _080F9BAC @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _080F9BBC
- .align 2, 0
-_080F9BAC: .4byte 0x0201b000
-_080F9BB0:
- bl sub_80F9C00
-_080F9BB4:
- ldr r1, _080F9BC4 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
-_080F9BBC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080F9BF6
- .align 2, 0
-_080F9BC4: .4byte 0x0201b000
-_080F9BC8:
- ldr r0, _080F9BEC @ =0x00000266
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F9BF0
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _080F9BF8
- .align 2, 0
-_080F9BEC: .4byte 0x00000266
-_080F9BF0:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F9BF6:
- movs r0, 0
-_080F9BF8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F9ACC
-
- thumb_func_start sub_80F9C00
-sub_80F9C00: @ 80F9C00
- push {r4,lr}
- movs r4, 0
- b _080F9C58
-_080F9C06:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080F9C24 @ =gPlayerParty
- adds r0, r1
- bl sub_80AE47C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080F9C52
- lsls r0, 2
- ldr r1, _080F9C28 @ =_080F9C2C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F9C24: .4byte gPlayerParty
-_080F9C28: .4byte _080F9C2C
- .align 2, 0
-_080F9C2C:
- .4byte _080F9C40
- .4byte _080F9C4A
- .4byte _080F9C4A
- .4byte _080F9C40
- .4byte _080F9C40
-_080F9C40:
- adds r0, r4, 0
- movs r1, 0x7E
- bl sub_806BC3C
- b _080F9C52
-_080F9C4A:
- adds r0, r4, 0
- movs r1, 0x70
- bl sub_806BC3C
-_080F9C52:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080F9C58:
- ldr r0, _080F9C68 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080F9C06
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9C68: .4byte gPlayerPartyCount
- thumb_func_end sub_80F9C00
-
- thumb_func_start sub_80F9C6C
-sub_80F9C6C: @ 80F9C6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080F9C94 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080F9CD8
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _080F9C98
- cmp r0, 0x2
- beq _080F9CC0
- b _080F9CD8
- .align 2, 0
-_080F9C94: .4byte gPaletteFade
-_080F9C98:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _080F9CB8 @ =gUnknown_02038694
- strb r0, [r1]
- ldr r2, _080F9CBC @ =gSpecialVar_0x8004
- ldrb r0, [r1]
- strh r0, [r2]
- adds r0, r4, 0
- bl sub_8123138
- b _080F9CD8
- .align 2, 0
-_080F9CB8: .4byte gUnknown_02038694
-_080F9CBC: .4byte gSpecialVar_0x8004
-_080F9CC0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080F9CE0 @ =gUnknown_02038694
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080F9CE4 @ =gSpecialVar_0x8004
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8123138
-_080F9CD8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9CE0: .4byte gUnknown_02038694
-_080F9CE4: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80F9C6C
-
- thumb_func_start sub_80F9CE8
-sub_80F9CE8: @ 80F9CE8
- push {r4,r5,lr}
- ldr r1, _080F9D08 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x7
- bls _080F9CFE
- b _080F9E12
-_080F9CFE:
- lsls r0, 2
- ldr r1, _080F9D0C @ =_080F9D10
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F9D08: .4byte 0x0201b000
-_080F9D0C: .4byte _080F9D10
- .align 2, 0
-_080F9D10:
- .4byte _080F9D30
- .4byte _080F9D70
- .4byte _080F9D76
- .4byte _080F9D8A
- .4byte _080F9DB4
- .4byte _080F9DBA
- .4byte _080F9DCC
- .4byte _080F9DE4
-_080F9D30:
- ldr r0, _080F9D58 @ =0x00000266
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _080F9D5C @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r3, r0
- bge _080F9D64
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _080F9D60 @ =gPlayerParty
- adds r2, r3
- bl sub_806D90C
- b _080F9E0C
- .align 2, 0
-_080F9D58: .4byte 0x00000266
-_080F9D5C: .4byte gPlayerPartyCount
-_080F9D60: .4byte gPlayerParty
-_080F9D64:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _080F9DD8
-_080F9D70:
- bl sub_806DA98
- b _080F9DD0
-_080F9D76:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _080F9DD8
-_080F9D8A:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _080F9DB0 @ =0x00000266
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F9E0C
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _080F9DD8
- .align 2, 0
-_080F9DB0: .4byte 0x00000266
-_080F9DB4:
- bl sub_806E334
- b _080F9DD0
-_080F9DBA:
- bl sub_806E0C4
- ldr r1, _080F9DC8 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _080F9DD8
- .align 2, 0
-_080F9DC8: .4byte 0x0201b000
-_080F9DCC:
- bl sub_80F9E1C
-_080F9DD0:
- ldr r1, _080F9DE0 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
-_080F9DD8:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080F9E12
- .align 2, 0
-_080F9DE0: .4byte 0x0201b000
-_080F9DE4:
- ldr r0, _080F9E08 @ =0x00000266
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F9E0C
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _080F9E14
- .align 2, 0
-_080F9E08: .4byte 0x00000266
-_080F9E0C:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F9E12:
- movs r0, 0
-_080F9E14:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F9CE8
-
- thumb_func_start sub_80F9E1C
-sub_80F9E1C: @ 80F9E1C
- push {r4,lr}
- movs r4, 0
- b _080F9E52
-_080F9E22:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080F9E40 @ =gPlayerParty
- adds r0, r1
- bl sub_8040574
- lsls r0, 24
- cmp r0, 0
- bne _080F9E44
- adds r0, r4, 0
- movs r1, 0x9A
- bl sub_806BC3C
- b _080F9E4C
- .align 2, 0
-_080F9E40: .4byte gPlayerParty
-_080F9E44:
- adds r0, r4, 0
- movs r1, 0x8C
- bl sub_806BC3C
-_080F9E4C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080F9E52:
- ldr r0, _080F9E60 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080F9E22
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9E60: .4byte gPlayerPartyCount
- thumb_func_end sub_80F9E1C
-
- thumb_func_start sub_80F9E64
-sub_80F9E64: @ 80F9E64
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080F9E8C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080F9EE2
- adds r0, r6, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _080F9E90
- cmp r0, 0x2
- beq _080F9ED0
- b _080F9EE2
- .align 2, 0
-_080F9E8C: .4byte gPaletteFade
-_080F9E90:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _080F9EC4 @ =gSpecialVar_0x8004
- adds r0, r6, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r5, _080F9EC8 @ =gSpecialVar_0x8005
- ldrh r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080F9ECC @ =gPlayerParty
- adds r0, r1
- bl sub_8040574
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- adds r0, r6, 0
- bl sub_8123138
- b _080F9EE2
- .align 2, 0
-_080F9EC4: .4byte gSpecialVar_0x8004
-_080F9EC8: .4byte gSpecialVar_0x8005
-_080F9ECC: .4byte gPlayerParty
-_080F9ED0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080F9EE8 @ =gSpecialVar_0x8004
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r6, 0
- bl sub_8123138
-_080F9EE2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9EE8: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80F9E64
-
- thumb_func_start sub_80F9EEC
-sub_80F9EEC: @ 80F9EEC
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080F9F20 @ =gPlayerParty
- ldr r1, _080F9F24 @ =gSpecialVar_0x8004
- ldrb r1, [r1]
- ldr r2, _080F9F28 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080F9F2C @ =c2_exit_to_overworld_2_switch
- movs r4, 0
- str r4, [sp]
- bl sub_809D9F0
- ldr r1, _080F9F30 @ =0x02018000
- movs r0, 0x3
- strb r0, [r1, 0x8]
- ldr r1, _080F9F34 @ =gUnknown_0300485C
- ldr r0, _080F9F38 @ =sub_8080990
- str r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9F20: .4byte gPlayerParty
-_080F9F24: .4byte gSpecialVar_0x8004
-_080F9F28: .4byte gPlayerPartyCount
-_080F9F2C: .4byte c2_exit_to_overworld_2_switch
-_080F9F30: .4byte 0x02018000
-_080F9F34: .4byte gUnknown_0300485C
-_080F9F38: .4byte sub_8080990
- thumb_func_end sub_80F9EEC
-
- thumb_func_start sub_80F9F3C
-sub_80F9F3C: @ 80F9F3C
- push {r4,r5,lr}
- ldr r1, _080F9F78 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- movs r4, 0
- adds r5, r1, 0
-_080F9F48:
- ldr r0, _080F9F7C @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080F9F80 @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0xD
- bl GetMonData
- cmp r0, 0
- beq _080F9F66
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F9F66:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080F9F48
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9F78: .4byte gScriptResult
-_080F9F7C: .4byte gSpecialVar_0x8004
-_080F9F80: .4byte gPlayerParty
- thumb_func_end sub_80F9F3C
-
- thumb_func_start sub_80F9F84
-sub_80F9F84: @ 80F9F84
- push {r4,r5,lr}
- ldr r0, _080F9FC4 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- adds r5, r1, 0
- muls r5, r0
- ldr r0, _080F9FC8 @ =gPlayerParty
- adds r5, r0
- ldr r0, _080F9FCC @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- adds r1, 0xD
- adds r0, r5, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r1, _080F9FD0 @ =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- ldr r0, _080F9FD4 @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _080F9FD8 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9FC4: .4byte gSpecialVar_0x8004
-_080F9FC8: .4byte gPlayerParty
-_080F9FCC: .4byte gSpecialVar_0x8005
-_080F9FD0: .4byte gStringVar1
-_080F9FD4: .4byte gStringVar2
-_080F9FD8: .4byte gMoveNames
- thumb_func_end sub_80F9F84
-
- thumb_func_start sub_80F9FDC
-sub_80F9FDC: @ 80F9FDC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- mov r8, r0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r0, 0xD
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r1, [sp, 0x8]
- bl GetMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r3, r4, 0
- adds r3, 0xD
- str r3, [sp, 0xC]
- mov r0, r8
- adds r1, r3, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r7, r5, 0
- adds r7, 0x11
- str r7, [sp, 0x10]
- mov r0, r8
- adds r1, r7, 0
- bl GetMonData
- mov r1, sp
- adds r1, 0x5
- str r1, [sp, 0x18]
- strb r0, [r1]
- adds r3, r4, 0
- adds r3, 0x11
- str r3, [sp, 0x1C]
- mov r0, r8
- adds r1, r3, 0
- bl GetMonData
- add r7, sp, 0x4
- mov r10, r7
- strb r0, [r7]
- mov r0, r8
- movs r1, 0x15
- bl GetMonData
- mov r6, sp
- adds r6, 0x6
- strb r0, [r6]
- ldr r1, _080FA0D8 @ =gUnknown_08208238
- adds r0, r5, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r6]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- lsls r5, 1
- asrs r2, r5
- lsls r2, 24
- lsrs r2, 24
- adds r1, r4, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r4, 1
- asrs r1, r4
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r6]
- ldrb r0, [r6]
- bics r0, r3
- strb r0, [r6]
- lsls r2, r4
- lsls r1, r5
- adds r2, r1
- ldrb r0, [r6]
- orrs r0, r2
- strb r0, [r6]
- mov r0, r8
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetMonData
- mov r0, r8
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetMonData
- mov r0, r8
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetMonData
- mov r0, r8
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetMonData
- mov r0, r8
- movs r1, 0x15
- adds r2, r6, 0
- bl SetMonData
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA0D8: .4byte gUnknown_08208238
- thumb_func_end sub_80F9FDC
-
- thumb_func_start sub_80FA0DC
-sub_80FA0DC: @ 80FA0DC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _080FA13C @ =gSpecialVar_0x8004
- mov r8, r0
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080FA140 @ =gPlayerParty
- adds r0, r5
- ldr r4, _080FA144 @ =gSpecialVar_0x8005
- ldrb r2, [r4]
- movs r1, 0
- bl SetMonMoveSlot
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r6
- adds r0, r5
- ldrb r1, [r4]
- bl RemoveMonPPBonus
- ldrh r4, [r4]
- cmp r4, 0x2
- bhi _080FA130
-_080FA10E:
- ldr r0, _080FA13C @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080FA140 @ =gPlayerParty
- adds r0, r1
- lsls r1, r4, 24
- lsrs r1, 24
- adds r4, 0x1
- lsls r2, r4, 24
- lsrs r2, 24
- bl sub_80F9FDC
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0x2
- bls _080FA10E
-_080FA130:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA13C: .4byte gSpecialVar_0x8004
-_080FA140: .4byte gPlayerParty
-_080FA144: .4byte gSpecialVar_0x8005
- thumb_func_end sub_80FA0DC
-
- thumb_func_start sub_80FA148
-sub_80FA148: @ 80FA148
- push {r4,lr}
- ldr r0, _080FA170 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080FA174 @ =gPlayerParty
- adds r0, r1
- ldr r4, _080FA178 @ =gScriptResult
- movs r1, 0
- strh r1, [r4]
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _080FA16A
- movs r0, 0x1
- strh r0, [r4]
-_080FA16A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA170: .4byte gSpecialVar_0x8004
-_080FA174: .4byte gPlayerParty
-_080FA178: .4byte gScriptResult
- thumb_func_end sub_80FA148
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 72c467e70..9fd741aa0 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -4,2065 +4,7 @@
.syntax unified
- .text
-
- thumb_func_start sub_80BB4AC
-sub_80BB4AC: @ 80BB4AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r3, r0, 0
- movs r0, 0
- strb r0, [r3]
- movs r2, 0
- adds r4, r3, 0x2
- movs r5, 0xFF
-_080BB4C4:
- adds r0, r4, r2
- ldrb r1, [r0]
- orrs r1, r5
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x6
- bls _080BB4C4
- movs r2, 0
- adds r5, r3, 0
- adds r5, 0x12
- adds r6, r3, 0
- adds r6, 0x22
- adds r7, r3, 0
- adds r7, 0x4C
- adds r0, r3, 0
- adds r0, 0x34
- str r0, [sp]
- adds r1, r3, 0
- adds r1, 0x9A
- str r1, [sp, 0x4]
- movs r0, 0x7C
- adds r0, r3
- mov r10, r0
- movs r1, 0x88
- adds r1, r3
- mov r9, r1
- movs r0, 0x94
- adds r0, r3
- mov r8, r0
- adds r1, r3, 0
- adds r1, 0x9
- movs r4, 0
-_080BB508:
- adds r0, r1, r2
- strb r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x3
- bls _080BB508
- movs r0, 0
- movs r1, 0
- strh r1, [r3, 0xE]
- strb r0, [r3, 0x10]
- strb r0, [r3, 0x11]
- movs r0, 0
- strb r0, [r3, 0x1]
- movs r2, 0
- adds r4, r5, 0
- adds r3, r6, 0
-_080BB52A:
- adds r0, r4, r2
- strb r1, [r0]
- adds r0, r3, r2
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _080BB52A
- movs r2, 0
- mov r12, r7
- movs r5, 0
-_080BB542:
- movs r1, 0
- adds r7, r2, 0x1
- lsls r4, r2, 2
- lsls r6, r2, 1
- adds r3, r4, 0
-_080BB54C:
- adds r0, r3, r1
- lsls r0, 1
- add r0, r12
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _080BB54C
- ldr r1, [sp]
- adds r0, r1, r4
- str r5, [r0]
- ldr r1, [sp, 0x4]
- adds r0, r1, r2
- strb r5, [r0]
- mov r1, r10
- adds r0, r1, r6
- strh r5, [r0]
- mov r1, r9
- adds r0, r1, r6
- strh r5, [r0]
- mov r1, r8
- adds r0, r1, r2
- strb r5, [r0]
- lsls r0, r7, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080BB542
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB4AC
-
- thumb_func_start sub_80BB594
-sub_80BB594: @ 80BB594
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- ldr r1, _080BB5B0 @ =gSaveBlock1 + 0x1A08
- adds r0, r1
- bl sub_80BB4AC
- pop {r0}
- bx r0
- .align 2, 0
-_080BB5B0: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BB594
-
- thumb_func_start sub_80BB5B4
-sub_80BB5B4: @ 80BB5B4
- push {r4,lr}
- movs r4, 0
-_080BB5B8:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80BB594
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _080BB5B8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB5B4
-
- thumb_func_start sub_80BB5D0
-sub_80BB5D0: @ 80BB5D0
- ldr r0, _080BB5DC @ =gUnknown_020387DC
- ldr r1, _080BB5E0 @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080BB5DC: .4byte gUnknown_020387DC
-_080BB5E0: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80BB5D0
-
- thumb_func_start sub_80BB5E4
-sub_80BB5E4: @ 80BB5E4
- push {r4,lr}
- ldr r0, _080BB5F4 @ =gScriptResult
- movs r1, 0
- strh r1, [r0]
- movs r3, 0
- adds r4, r0, 0
- b _080BB5FE
- .align 2, 0
-_080BB5F4: .4byte gScriptResult
-_080BB5F8:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
-_080BB5FE:
- cmp r3, 0x13
- bhi _080BB626
- ldr r2, _080BB62C @ =gUnknown_020387DC
- ldr r1, _080BB630 @ =gSaveBlock1
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 5
- adds r0, r1
- ldr r1, _080BB634 @ =0x00001a08
- adds r0, r1
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _080BB5F8
- movs r0, 0x1
- strh r0, [r4]
- ldr r0, _080BB638 @ =0x00004054
- adds r1, r3, 0
- bl VarSet
-_080BB626:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB62C: .4byte gUnknown_020387DC
-_080BB630: .4byte gSaveBlock1
-_080BB634: .4byte 0x00001a08
-_080BB638: .4byte 0x00004054
- thumb_func_end sub_80BB5E4
-
- thumb_func_start sub_80BB63C
-sub_80BB63C: @ 80BB63C
- push {lr}
- ldr r0, _080BB654 @ =gSaveBlock1
- ldr r1, _080BB658 @ =0x00001a08
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _080BB660
- ldr r1, _080BB65C @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- b _080BB664
- .align 2, 0
-_080BB654: .4byte gSaveBlock1
-_080BB658: .4byte 0x00001a08
-_080BB65C: .4byte gScriptResult
-_080BB660:
- ldr r0, _080BB668 @ =gScriptResult
- strh r1, [r0]
-_080BB664:
- pop {r0}
- bx r0
- .align 2, 0
-_080BB668: .4byte gScriptResult
- thumb_func_end sub_80BB63C
-
- thumb_func_start sub_80BB66C
-sub_80BB66C: @ 80BB66C
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- ldr r2, _080BB6A4 @ =0x00000fff
- adds r0, r2, 0
- ands r1, r0
- adds r0, r1, 0
- subs r0, 0x90
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BB6A8
- movs r0, 0x1
- b _080BB702
- .align 2, 0
-_080BB6A4: .4byte 0x00000fff
-_080BB6A8:
- adds r0, r1, 0
- subs r0, 0x92
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BB6B8
- movs r0, 0x2
- b _080BB702
-_080BB6B8:
- adds r0, r1, 0
- subs r0, 0x9A
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BB6C8
- movs r0, 0x3
- b _080BB702
-_080BB6C8:
- adds r0, r1, 0
- subs r0, 0x94
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BB6D8
- movs r0, 0x4
- b _080BB702
-_080BB6D8:
- adds r0, r1, 0
- subs r0, 0x96
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BB6EC
- cmp r1, 0x9C
- beq _080BB6EC
- cmp r1, 0x9D
- bne _080BB6F0
-_080BB6EC:
- movs r0, 0x5
- b _080BB702
-_080BB6F0:
- adds r0, r1, 0
- subs r0, 0x98
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BB700
- movs r0, 0
- b _080BB702
-_080BB700:
- movs r0, 0x6
-_080BB702:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BB66C
-
- thumb_func_start sub_80BB70C
-sub_80BB70C: @ 80BB70C
- push {r4,lr}
- ldr r4, _080BB720 @ =gSpecialVar_0x8007
- bl sub_80BB66C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB720: .4byte gSpecialVar_0x8007
- thumb_func_end sub_80BB70C
-
- thumb_func_start unref_sub_80BB724
-unref_sub_80BB724: @ 80BB724
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- movs r2, 0
- ldr r6, _080BB748 @ =0x00000fff
- lsrs r3, r1, 24
- ldr r5, _080BB74C @ =0x000001ff
-_080BB732:
- lsls r0, r2, 1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, r3
- bne _080BB750
- lsls r0, r2, 16
- asrs r0, 16
- b _080BB75E
- .align 2, 0
-_080BB748: .4byte 0x00000fff
-_080BB74C: .4byte 0x000001ff
-_080BB750:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r5
- bls _080BB732
- movs r0, 0x1
- negs r0, r0
-_080BB75E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80BB724
-
- thumb_func_start sub_80BB764
-sub_80BB764: @ 80BB764
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r0
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- movs r0, 0
- mov r12, r0
- ldr r1, _080BB7C8 @ =gMapHeader
- ldr r0, [r1]
- ldr r3, [r0, 0x4]
- cmp r12, r3
- bge _080BB7EE
- ldr r0, [r0]
- str r0, [sp, 0x4]
- str r3, [sp]
-_080BB78E:
- movs r2, 0
- mov r1, r12
- lsls r7, r1, 16
- ldr r0, [sp, 0x4]
- cmp r2, r0
- bge _080BB7DC
- ldr r0, _080BB7C8 @ =gMapHeader
- ldr r1, [r0]
- asrs r0, r7, 16
- ldr r4, [r1]
- adds r6, r0, 0
- muls r6, r4
- ldr r5, [r1, 0xC]
-_080BB7A8:
- lsls r0, r2, 16
- asrs r3, r0, 16
- adds r0, r6, r3
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r0, _080BB7CC @ =0x000003ff
- ands r0, r1
- cmp r0, r8
- bne _080BB7D0
- mov r1, r9
- strh r2, [r1]
- mov r1, r12
- mov r0, r10
- strh r1, [r0]
- b _080BB7EE
- .align 2, 0
-_080BB7C8: .4byte gMapHeader
-_080BB7CC: .4byte 0x000003ff
-_080BB7D0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, r4
- blt _080BB7A8
-_080BB7DC:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r1, r0, 16
- mov r12, r1
- asrs r0, 16
- ldr r1, [sp]
- cmp r0, r1
- blt _080BB78E
-_080BB7EE:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB764
-
- thumb_func_start sub_80BB800
-sub_80BB800: @ 80BB800
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- movs r5, 0
- mov r12, r4
- lsls r0, 16
- asrs r3, r0, 16
- ldr r1, _080BB84C @ =gUnknown_083D1358
- mov r8, r1
- adds r7, r0, 0
- mov r4, sp
- mov r6, r12
-_080BB834:
- ldr r0, _080BB84C @ =gUnknown_083D1358
- lsls r1, r5, 2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, r3
- bne _080BB850
- movs r3, 0
- ldrsh r0, [r4, r3]
- movs r5, 0
- ldrsh r1, [r6, r5]
- ldrh r3, [r2, 0x2]
- b _080BB878
- .align 2, 0
-_080BB84C: .4byte gUnknown_083D1358
-_080BB850:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x6
- bls _080BB834
- movs r5, 0
- mov r4, sp
- mov r6, r12
-_080BB860:
- lsls r0, r5, 2
- mov r1, r8
- adds r3, r0, r1
- ldrh r1, [r3, 0x2]
- asrs r0, r7, 16
- cmp r1, r0
- bne _080BB892
- movs r2, 0
- ldrsh r0, [r4, r2]
- movs r5, 0
- ldrsh r1, [r6, r5]
- ldrh r3, [r3]
-_080BB878:
- movs r5, 0xC0
- lsls r5, 4
- adds r2, r5, 0
- orrs r2, r3
- bl MapGridSetMetatileIdAt
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0
- ldrsh r1, [r6, r2]
- bl CurrentMapDrawMetatileAt
- b _080BB89C
-_080BB892:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x6
- bls _080BB860
-_080BB89C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB800
-
- thumb_func_start sub_80BB8A8
-sub_80BB8A8: @ 80BB8A8
- push {lr}
- adds r2, r0, 0
- movs r1, 0
-_080BB8AE:
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BB8BA
- adds r0, r1, 0
- b _080BB8C6
-_080BB8BA:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x6
- bls _080BB8AE
- movs r0, 0x7
-_080BB8C6:
- pop {r1}
- bx r1
- thumb_func_end sub_80BB8A8
-
- thumb_func_start sub_80BB8CC
-sub_80BB8CC: @ 80BB8CC
- push {r4-r6,lr}
- ldr r2, _080BB948 @ =gSaveBlock1
- ldr r0, _080BB94C @ =gUnknown_020387DC
- ldrb r1, [r0]
- ldr r3, _080BB950 @ =0x00001a08
- adds r0, r2, r3
- strb r1, [r0]
- movs r3, 0
- ldr r0, _080BB954 @ =0x00001a11
- adds r2, r0
- ldr r4, _080BB958 @ =gSaveBlock2 + 0xA
-_080BB8E2:
- adds r1, r3, r2
- adds r0, r3, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080BB8E2
- ldr r0, _080BB95C @ =0x00004054
- movs r1, 0
- bl VarSet
- ldr r6, _080BB960 @ =gSaveBlock2
- adds r0, r6, 0
- bl sub_80BB8A8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080BB964 @ =gSaveBlock1 + 0x1A0A
- adds r0, r5, 0
- movs r1, 0xFF
- movs r2, 0x7
- bl memset
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl StringCopyN
- ldrb r0, [r6, 0x8]
- subs r5, 0x1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 4
- ldrb r2, [r5]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- ldr r0, _080BB968 @ =0x00004026
- ldr r1, _080BB96C @ =gMapHeader
- ldrb r1, [r1, 0x14]
- bl VarSet
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB948: .4byte gSaveBlock1
-_080BB94C: .4byte gUnknown_020387DC
-_080BB950: .4byte 0x00001a08
-_080BB954: .4byte 0x00001a11
-_080BB958: .4byte gSaveBlock2 + 0xA
-_080BB95C: .4byte 0x00004054
-_080BB960: .4byte gSaveBlock2
-_080BB964: .4byte gSaveBlock1 + 0x1A0A
-_080BB968: .4byte 0x00004026
-_080BB96C: .4byte gMapHeader
- thumb_func_end sub_80BB8CC
-
- thumb_func_start sub_80BB970
-sub_80BB970: @ 80BB970
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r2, 0
- b _080BBA06
-_080BB978:
- ldr r0, [r5, 0x10]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3, 0x5]
- adds r7, r2, 0x1
- cmp r0, 0x8
- bne _080BBA02
- movs r2, 0
- ldr r4, _080BB9E0 @ =gSaveBlock1
- adds r6, r1, 0
-_080BB990:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 5
- adds r0, r4
- ldr r1, _080BB9E4 @ =0x00001a08
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, [r3, 0x8]
- cmp r1, r0
- bne _080BB9F8
- ldrh r0, [r3]
- adds r0, 0x7
- ldrh r1, [r3, 0x2]
- adds r1, 0x7
- bl MapGridGetMetatileIdAt
- movs r3, 0
- lsls r0, 16
- asrs r4, r0, 16
-_080BB9B6:
- ldr r0, _080BB9E8 @ =gUnknown_083D1358
- lsls r1, r3, 2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, r4
- bne _080BB9EC
- ldr r1, [r5, 0x10]
- adds r1, r6, r1
- ldrh r0, [r1]
- adds r0, 0x7
- ldrh r1, [r1, 0x2]
- adds r1, 0x7
- ldrh r3, [r2, 0x2]
- movs r4, 0xC0
- lsls r4, 4
- adds r2, r4, 0
- orrs r2, r3
- bl MapGridSetMetatileIdAt
- b _080BBA02
- .align 2, 0
-_080BB9E0: .4byte gSaveBlock1
-_080BB9E4: .4byte 0x00001a08
-_080BB9E8: .4byte gUnknown_083D1358
-_080BB9EC:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6
- bls _080BB9B6
- b _080BBA02
-_080BB9F8:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x13
- bls _080BB990
-_080BBA02:
- lsls r0, r7, 16
- lsrs r2, r0, 16
-_080BBA06:
- ldrb r0, [r5, 0x3]
- cmp r2, r0
- bcc _080BB978
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB970
-
- thumb_func_start sub_80BBA14
-sub_80BBA14: @ 80BBA14
- push {lr}
- ldr r0, _080BBA40 @ =gUnknown_020387DC
- ldrb r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- ldr r2, _080BBA44 @ =gUnknown_083D1374
- lsls r0, 26
- asrs r0, 24
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r0, 0x1
- adds r0, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r0, 0x19
- bl warp1_set_2
- pop {r0}
- bx r0
- .align 2, 0
-_080BBA40: .4byte gUnknown_020387DC
-_080BBA44: .4byte gUnknown_083D1374
- thumb_func_end sub_80BBA14
-
- thumb_func_start sub_80BBA48
-sub_80BBA48: @ 80BBA48
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080BBA6C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _080BBA7C
- cmp r0, 0x1
- bgt _080BBA70
- cmp r0, 0
- beq _080BBA76
- b _080BBAD0
- .align 2, 0
-_080BBA6C: .4byte gTasks
-_080BBA70:
- cmp r0, 0x2
- beq _080BBA94
- b _080BBAD0
-_080BBA76:
- movs r0, 0x1
- strh r0, [r2, 0x8]
- b _080BBAD0
-_080BBA7C:
- ldr r0, _080BBA90 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BBAD0
- movs r0, 0x2
- strh r0, [r2, 0x8]
- b _080BBAD0
- .align 2, 0
-_080BBA90: .4byte gPaletteFade
-_080BBA94:
- ldr r0, _080BBAD8 @ =0x00004054
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080BBADC @ =gSaveBlock1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r2
- ldr r0, _080BBAE0 @ =0x00001a18
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _080BBAB6
- adds r0, 0x1
- strb r0, [r1]
-_080BBAB6:
- bl sub_80BBA14
- bl warp_in
- ldr r0, _080BBAE4 @ =gUnknown_0300485C
- ldr r1, _080BBAE8 @ =sub_8080990
- str r1, [r0]
- ldr r0, _080BBAEC @ =CB2_LoadMap
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_080BBAD0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBAD8: .4byte 0x00004054
-_080BBADC: .4byte gSaveBlock1
-_080BBAE0: .4byte 0x00001a18
-_080BBAE4: .4byte gUnknown_0300485C
-_080BBAE8: .4byte sub_8080990
-_080BBAEC: .4byte CB2_LoadMap
- thumb_func_end sub_80BBA48
-
- thumb_func_start sub_80BBAF0
-sub_80BBAF0: @ 80BBAF0
- push {lr}
- ldr r0, _080BBB1C @ =sub_80BBA48
- movs r1, 0
- bl CreateTask
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, _080BBB20 @ =gSaveBlock1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- pop {r0}
- bx r0
- .align 2, 0
-_080BBB1C: .4byte sub_80BBA48
-_080BBB20: .4byte gSaveBlock1
- thumb_func_end sub_80BBAF0
-
- thumb_func_start sub_80BBB24
-sub_80BBB24: @ 80BBB24
- push {lr}
- ldr r0, _080BBB40 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x9
- bne _080BBB48
- ldr r0, _080BBB44 @ =0x00004097
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080BBB48
- movs r0, 0
- b _080BBB4A
- .align 2, 0
-_080BBB40: .4byte gMapHeader
-_080BBB44: .4byte 0x00004097
-_080BBB48:
- movs r0, 0x1
-_080BBB4A:
- pop {r1}
- bx r1
- thumb_func_end sub_80BBB24
-
- thumb_func_start sub_80BBB50
-sub_80BBB50: @ 80BBB50
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080BBB88 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BBB8C @ =gMapObjects
- adds r0, r1
- movs r1, 0x2
- bl FieldObjectTurn
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BBB80
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_080BBB80:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBB88: .4byte gPlayerAvatar
-_080BBB8C: .4byte gMapObjects
- thumb_func_end sub_80BBB50
-
- thumb_func_start sub_80BBB90
-sub_80BBB90: @ 80BBB90
- push {r4,lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- bl HideMapNamePopUpWindow
- mov r4, sp
- adds r4, 0x2
- movs r2, 0x88
- lsls r2, 2
- mov r0, sp
- adds r1, r4, 0
- bl sub_80BB764
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x7
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r1, 0x7
- movs r2, 0xE2
- lsls r2, 4
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x7
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r1, 0x7
- bl CurrentMapDrawMetatileAt
- bl pal_fill_black
- ldr r0, _080BBBE8 @ =sub_80BBB50
- movs r1, 0
- bl CreateTask
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBBE8: .4byte sub_80BBB50
- thumb_func_end sub_80BBB90
-
- thumb_func_start sub_80BBBEC
-sub_80BBBEC: @ 80BBBEC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080BBC5C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BBC52
- ldr r0, _080BBC60 @ =gUnknown_020387DC
- ldrb r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- ldr r1, _080BBC64 @ =gSaveBlock1
- movs r5, 0x4
- ldrsb r5, [r1, r5]
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- ldr r4, _080BBC68 @ =gUnknown_083D1374
- lsls r0, 26
- asrs r0, 24
- adds r3, r0, 0x2
- adds r3, r4
- ldrb r3, [r3]
- lsls r3, 24
- asrs r3, 24
- adds r0, 0x3
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- adds r0, r5, 0
- bl warp1_set
- bl warp_in
- ldr r1, _080BBC6C @ =gUnknown_0300485C
- ldr r0, _080BBC70 @ =sub_80BBB90
- str r0, [r1]
- ldr r0, _080BBC74 @ =CB2_LoadMap
- bl SetMainCallback2
- adds r0, r6, 0
- bl DestroyTask
-_080BBC52:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBC5C: .4byte gPaletteFade
-_080BBC60: .4byte gUnknown_020387DC
-_080BBC64: .4byte gSaveBlock1
-_080BBC68: .4byte gUnknown_083D1374
-_080BBC6C: .4byte gUnknown_0300485C
-_080BBC70: .4byte sub_80BBB90
-_080BBC74: .4byte CB2_LoadMap
- thumb_func_end sub_80BBBEC
-
- thumb_func_start sub_80BBC78
-sub_80BBC78: @ 80BBC78
- push {lr}
- ldr r0, _080BBCA0 @ =sub_80BBBEC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BBCA4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_080BBCA0: .4byte sub_80BBBEC
-_080BBCA4: .4byte gTasks
- thumb_func_end sub_80BBC78
-
- thumb_func_start CurrentMapIsSecretBase
-CurrentMapIsSecretBase: @ 80BBCA8
- push {lr}
- ldr r1, _080BBCC0 @ =gSaveBlock1
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x19
- bne _080BBCC4
- ldrb r0, [r1, 0x5]
- cmp r0, 0x17
- bhi _080BBCC4
- movs r0, 0x1
- b _080BBCC6
- .align 2, 0
-_080BBCC0: .4byte gSaveBlock1
-_080BBCC4:
- movs r0, 0
-_080BBCC6:
- pop {r1}
- bx r1
- thumb_func_end CurrentMapIsSecretBase
-
- thumb_func_start sub_80BBCCC
-sub_80BBCCC: @ 80BBCCC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl CurrentMapIsSecretBase
- lsls r0, 24
- cmp r0, 0
- beq _080BBDBC
- ldr r0, _080BBD70 @ =0x00004054
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- ldr r6, _080BBD74 @ =gSaveBlock1
- mov r4, sp
- ldr r0, _080BBD78 @ =0x00001a2a
- adds r7, r6, r0
-_080BBCFC:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- ldrh r1, [r4]
- adds r2, r0, r1
- ldr r1, _080BBD7C @ =0x00001a1a
- adds r0, r6, r1
- adds r1, r2, r0
- ldrb r0, [r1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x77
- bhi _080BBD3A
- ldr r0, _080BBD80 @ =gDecorations
- ldrb r3, [r1]
- lsls r1, r3, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- beq _080BBD3A
- adds r0, r2, r7
- ldrb r2, [r0]
- lsrs r0, r2, 4
- adds r0, 0x7
- movs r1, 0xF
- ands r1, r2
- adds r1, 0x7
- adds r2, r3, 0
- bl sub_80FF394
-_080BBD3A:
- ldrh r0, [r4]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- strh r0, [r4]
- cmp r0, 0xF
- bls _080BBCFC
- cmp r5, 0
- beq _080BBD88
- mov r4, sp
- adds r4, 0x2
- movs r2, 0x88
- lsls r2, 2
- mov r0, sp
- adds r1, r4, 0
- bl sub_80BB764
- mov r0, sp
- ldrh r0, [r0]
- adds r0, 0x7
- ldrh r1, [r4]
- adds r1, 0x7
- ldr r2, _080BBD84 @ =0x00000e21
- bl MapGridSetMetatileIdAt
- b _080BBDBC
- .align 2, 0
-_080BBD70: .4byte 0x00004054
-_080BBD74: .4byte gSaveBlock1
-_080BBD78: .4byte 0x00001a2a
-_080BBD7C: .4byte 0x00001a1a
-_080BBD80: .4byte gDecorations
-_080BBD84: .4byte 0x00000e21
-_080BBD88:
- mov r0, r8
- cmp r0, 0x1
- bne _080BBDBC
- ldr r0, _080BBDC8 @ =0x00004089
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080BBDBC
- mov r4, sp
- adds r4, 0x2
- movs r2, 0x88
- lsls r2, 2
- mov r0, sp
- adds r1, r4, 0
- bl sub_80BB764
- mov r0, sp
- ldrh r0, [r0]
- adds r0, 0x7
- ldrh r1, [r4]
- adds r1, 0x7
- ldr r2, _080BBDCC @ =0x00000e0a
- bl MapGridSetMetatileIdAt
-_080BBDBC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBDC8: .4byte 0x00004089
-_080BBDCC: .4byte 0x00000e0a
- thumb_func_end sub_80BBCCC
-
- thumb_func_start sub_80BBDD0
-sub_80BBDD0: @ 80BBDD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r0, _080BBE00 @ =0x00004054
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- bl CurrentMapIsSecretBase
- lsls r0, 24
- cmp r0, 0
- bne _080BBE08
- ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688
- str r0, [sp, 0x4]
- adds r0, 0xC
- str r0, [sp, 0x8]
- movs r1, 0xC
- str r1, [sp, 0xC]
- b _080BBE1E
- .align 2, 0
-_080BBE00: .4byte 0x00004054
-_080BBE04: .4byte gSaveBlock1 + 0x2688
-_080BBE08:
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 5
- ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A
- adds r2, r1, r0
- str r2, [sp, 0x4]
- adds r0, 0x10
- adds r1, r0
- str r1, [sp, 0x8]
- movs r3, 0x10
- str r3, [sp, 0xC]
-_080BBE1E:
- movs r6, 0
- ldr r4, [sp, 0xC]
- cmp r6, r4
- bcc _080BBE28
- b _080BBF6C
-_080BBE28:
- ldr r5, _080BBF80 @ =gSaveBlock1
- mov r10, r5
-_080BBE2C:
- ldr r1, [sp, 0x4]
- adds r0, r1, r6
- ldrb r1, [r0]
- mov r9, r0
- adds r2, r6, 0x1
- str r2, [sp, 0x10]
- cmp r1, 0
- bne _080BBE3E
- b _080BBF5E
-_080BBE3E:
- ldrb r0, [r0]
- lsls r0, 5
- ldr r3, _080BBF84 @ =gDecorations
- adds r0, r3
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- beq _080BBE4E
- b _080BBF5E
-_080BBE4E:
- movs r5, 0
- ldr r0, _080BBF88 @ =gMapHeader
- ldr r2, [r0, 0x4]
- ldrb r3, [r2]
- mov r8, r0
- cmp r5, r3
- bcs _080BBE8E
- ldr r0, [r2, 0x4]
- ldrh r1, [r0, 0x14]
- ldr r4, _080BBF8C @ =gSpecialVar_0x8004
- ldrh r0, [r4]
- adds r0, 0xAE
- adds r7, r4, 0
- cmp r1, r0
- beq _080BBE8E
- adds r4, r2, 0
- adds r2, r3, 0
-_080BBE70:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r2
- bcs _080BBE8E
- ldr r1, [r4, 0x4]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x14]
- ldrh r0, [r7]
- adds r0, 0xAE
- cmp r1, r0
- bne _080BBE70
-_080BBE8E:
- mov r1, r8
- ldr r0, [r1, 0x4]
- ldrb r0, [r0]
- cmp r5, r0
- beq _080BBF5E
- ldr r7, _080BBF90 @ =gSpecialVar_0x8006
- ldr r2, [sp, 0x8]
- adds r1, r2, r6
- ldrb r0, [r1]
- lsrs r0, 4
- strh r0, [r7]
- ldr r6, _080BBF94 @ =gSpecialVar_0x8007
- ldrb r1, [r1]
- movs r0, 0xF
- ands r0, r1
- strh r0, [r6]
- ldrh r0, [r7]
- adds r0, 0x7
- ldrh r1, [r6]
- adds r1, 0x7
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80572D8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BBEDA
- adds r0, r4, 0
- bl sub_80572EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BBF5E
-_080BBEDA:
- mov r3, r8
- ldr r0, [r3, 0x4]
- ldr r1, [r0, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- lsls r4, 3
- adds r1, r4, r1
- ldr r5, _080BBF98 @ =0x00003f20
- adds r0, r5, 0
- ldrb r1, [r1, 0x1]
- adds r0, r1
- ldr r1, _080BBF9C @ =gScriptResult
- strh r0, [r1]
- ldrh r0, [r1]
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 5
- ldr r3, _080BBFA0 @ =gDecorations + 0x1C
- adds r1, r3
- ldr r1, [r1]
- ldrh r1, [r1]
- bl VarSet
- mov r5, r8
- ldr r0, [r5, 0x4]
- ldr r0, [r0, 0x4]
- adds r4, r0
- ldrb r0, [r4]
- ldr r1, _080BBF9C @ =gScriptResult
- strh r0, [r1]
- ldr r2, _080BBF8C @ =gSpecialVar_0x8004
- ldrh r0, [r2]
- adds r0, 0xAE
- lsls r0, 16
- lsrs r0, 16
- bl FlagReset
- ldr r3, _080BBF9C @ =gScriptResult
- ldrb r0, [r3]
- mov r4, r10
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- bl show_sprite
- ldr r5, _080BBF9C @ =gScriptResult
- ldrb r0, [r5]
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- movs r4, 0
- ldrsh r3, [r7, r4]
- movs r5, 0
- ldrsh r4, [r6, r5]
- str r4, [sp]
- bl sub_805C0F8
- ldr r1, _080BBF9C @ =gScriptResult
- ldrb r0, [r1]
- mov r2, r10
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_805C78C
- ldr r3, _080BBF8C @ =gSpecialVar_0x8004
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_080BBF5E:
- ldr r4, [sp, 0x10]
- lsls r0, r4, 24
- lsrs r6, r0, 24
- ldr r5, [sp, 0xC]
- cmp r6, r5
- bcs _080BBF6C
- b _080BBE2C
-_080BBF6C:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBF7C: .4byte gSaveBlock1 + 0x1A1A
-_080BBF80: .4byte gSaveBlock1
-_080BBF84: .4byte gDecorations
-_080BBF88: .4byte gMapHeader
-_080BBF8C: .4byte gSpecialVar_0x8004
-_080BBF90: .4byte gSpecialVar_0x8006
-_080BBF94: .4byte gSpecialVar_0x8007
-_080BBF98: .4byte 0x00003f20
-_080BBF9C: .4byte gScriptResult
-_080BBFA0: .4byte gDecorations + 0x1C
- thumb_func_end sub_80BBDD0
-
- thumb_func_start sub_80BBFA4
-sub_80BBFA4: @ 80BBFA4
- push {r4,r5,lr}
- ldr r0, _080BBFCC @ =0x00004054
- bl VarGet
- ldr r5, _080BBFD0 @ =0x0000401f
- ldr r4, _080BBFD4 @ =gUnknown_083D13EC
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BCCA4
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r5, 0
- bl VarSet
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBFCC: .4byte 0x00004054
-_080BBFD0: .4byte 0x0000401f
-_080BBFD4: .4byte gUnknown_083D13EC
- thumb_func_end sub_80BBFA4
-
- thumb_func_start sub_80BBFD8
-sub_80BBFD8: @ 80BBFD8
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r3, 0
- ldrb r0, [r4, 0x3]
- cmp r3, r0
- bge _080BC030
- ldr r6, _080BC01C @ =gUnknown_020387DC
-_080BBFE8:
- lsls r3, 16
- asrs r1, r3, 16
- ldr r2, [r4, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x5]
- cmp r0, 0x8
- bne _080BC020
- movs r0, 0
- ldrsh r1, [r5, r0]
- ldrh r0, [r2]
- adds r0, 0x7
- cmp r1, r0
- bne _080BC020
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- ldrh r0, [r2, 0x2]
- adds r0, 0x7
- cmp r1, r0
- bne _080BC020
- ldr r0, [r2, 0x8]
- strb r0, [r6]
- b _080BC030
- .align 2, 0
-_080BC01C: .4byte gUnknown_020387DC
-_080BC020:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r3, r0, 16
- asrs r0, 16
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- blt _080BBFE8
-_080BC030:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BBFD8
-
- thumb_func_start sub_80BC038
-sub_80BC038: @ 80BC038
- push {lr}
- bl sub_80BBFD8
- bl sub_80BB5E4
- ldr r0, _080BC04C @ =gUnknown_081A2E14
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080BC04C: .4byte gUnknown_081A2E14
- thumb_func_end sub_80BC038
-
- thumb_func_start sub_80BC050
-sub_80BC050: @ 80BC050
- push {lr}
- bl sub_80BB5D0
- bl sub_80BB5E4
- ldr r0, _080BC068 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080BC06C
- movs r0, 0x1
- b _080BC06E
- .align 2, 0
-_080BC068: .4byte gScriptResult
-_080BC06C:
- movs r0, 0
-_080BC06E:
- pop {r1}
- bx r1
- thumb_func_end sub_80BC050
-
- thumb_func_start sub_80BC074
-sub_80BC074: @ 80BC074
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080BC098 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080BC0AC
- cmp r0, 0x1
- bgt _080BC09C
- cmp r0, 0
- beq _080BC0A2
- b _080BC0E4
- .align 2, 0
-_080BC098: .4byte gTasks
-_080BC09C:
- cmp r0, 0x2
- beq _080BC0C4
- b _080BC0E4
-_080BC0A2:
- bl ScriptContext2_Enable
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _080BC0E4
-_080BC0AC:
- ldr r0, _080BC0C0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BC0E4
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080BC0E4
- .align 2, 0
-_080BC0C0: .4byte gPaletteFade
-_080BC0C4:
- movs r0, 0x7E
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- bl warp_in
- ldr r0, _080BC0EC @ =gUnknown_0300485C
- ldr r1, _080BC0F0 @ =mapldr_default
- str r1, [r0]
- ldr r0, _080BC0F4 @ =CB2_LoadMap
- bl SetMainCallback2
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
-_080BC0E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC0EC: .4byte gUnknown_0300485C
-_080BC0F0: .4byte mapldr_default
-_080BC0F4: .4byte CB2_LoadMap
- thumb_func_end sub_80BC074
-
- thumb_func_start sub_80BC0F8
-sub_80BC0F8: @ 80BC0F8
- push {lr}
- ldr r0, _080BC110 @ =sub_80BC074
- movs r1, 0
- bl CreateTask
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_080BC110: .4byte sub_80BC074
- thumb_func_end sub_80BC0F8
-
- thumb_func_start sub_80BC114
-sub_80BC114: @ 80BC114
- push {lr}
- ldr r0, _080BC12C @ =gSaveBlock1
- ldr r1, _080BC130 @ =0x00001a08
- adds r0, r1
- ldr r1, _080BC134 @ =gUnknown_020387DC
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080BC13C
- ldr r1, _080BC138 @ =gScriptResult
- movs r0, 0x1
- b _080BC140
- .align 2, 0
-_080BC12C: .4byte gSaveBlock1
-_080BC130: .4byte 0x00001a08
-_080BC134: .4byte gUnknown_020387DC
-_080BC138: .4byte gScriptResult
-_080BC13C:
- ldr r1, _080BC148 @ =gScriptResult
- movs r0, 0
-_080BC140:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BC148: .4byte gScriptResult
- thumb_func_end sub_80BC114
-
- thumb_func_start sub_80BC14C
-sub_80BC14C: @ 80BC14C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r5, _080BC174 @ =gSaveBlock1
- ldr r4, _080BC178 @ =0x00001a08
-_080BC158:
- lsls r0, r2, 16
- asrs r1, r0, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r5
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, r3
- bne _080BC17C
- lsls r0, r2, 24
- lsrs r0, 24
- b _080BC18A
- .align 2, 0
-_080BC174: .4byte gSaveBlock1
-_080BC178: .4byte 0x00001a08
-_080BC17C:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BC158
- movs r0, 0
-_080BC18A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC14C
-
- thumb_func_start sub_80BC190
-sub_80BC190: @ 80BC190
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 5
- ldr r0, _080BC1C8 @ =gSaveBlock1 + 0x1A0A
- adds r4, r0
- adds r0, r4, 0
- bl sub_80BB8A8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringCopyN
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, _080BC1CC @ =gOtherText_PlayersBase
- adds r0, r5, 0
- bl StringAppend
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080BC1C8: .4byte gSaveBlock1 + 0x1A0A
-_080BC1CC: .4byte gOtherText_PlayersBase
- thumb_func_end sub_80BC190
-
- thumb_func_start GetSecretBaseMapName
-GetSecretBaseMapName: @ 80BC1D0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- ldr r6, _080BC214 @ =gUnknown_020387DC
- ldr r5, _080BC218 @ =gSaveBlock1
- ldr r4, _080BC21C @ =0x00004054
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r5
- ldr r0, _080BC220 @ =0x00001a08
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r6]
- adds r0, r4, 0
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_80BC190
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080BC214: .4byte gUnknown_020387DC
-_080BC218: .4byte gSaveBlock1
-_080BC21C: .4byte 0x00004054
-_080BC220: .4byte 0x00001a08
- thumb_func_end GetSecretBaseMapName
-
- thumb_func_start sub_80BC224
-sub_80BC224: @ 80BC224
- push {r4,r5,lr}
- ldr r0, _080BC25C @ =0x00004054
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 5
- ldr r0, _080BC260 @ =gSaveBlock1 + 0x1A0A
- adds r4, r0
- ldr r5, _080BC264 @ =gStringVar1
- adds r0, r4, 0
- bl sub_80BB8A8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringCopyN
- movs r1, 0xFF
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC25C: .4byte 0x00004054
-_080BC260: .4byte gSaveBlock1 + 0x1A0A
-_080BC264: .4byte gStringVar1
- thumb_func_end sub_80BC224
-
- thumb_func_start sub_80BC268
-sub_80BC268: @ 80BC268
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BC288 @ =gSaveBlock1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r2
- ldr r0, _080BC28C @ =0x00001a09
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 6
- cmp r0, 0
- bne _080BC290
- movs r0, 0
- b _080BC292
- .align 2, 0
-_080BC288: .4byte gSaveBlock1
-_080BC28C: .4byte 0x00001a09
-_080BC290:
- movs r0, 0x1
-_080BC292:
- pop {r1}
- bx r1
- thumb_func_end sub_80BC268
-
- thumb_func_start sub_80BC298
-sub_80BC298: @ 80BC298
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1A
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1B
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1C
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1D
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1E
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1F
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC298
-
- thumb_func_start sub_80BC300
-sub_80BC300: @ 80BC300
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0
- mov r10, r0
- movs r6, 0
- mov r9, r6
-_080BC314:
- movs r4, 0
- lsls r3, r6, 2
- lsls r2, r6, 1
- ldr r7, _080BC424 @ =gPlayerParty
- adds r1, r6, 0x1
- str r1, [sp]
- adds r1, r3, 0
-_080BC322:
- adds r0, r1, r4
- lsls r0, 1
- ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54
- adds r0, r5, r0
- mov r5, r9
- strh r5, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080BC322
- ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84
- adds r0, r1, r2
- strh r5, [r0]
- ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90
- adds r0, r5, r2
- mov r1, r9
- strh r1, [r0]
- ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C
- adds r0, r2, r6
- mov r5, r9
- strb r5, [r0]
- ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C
- adds r0, r1, r3
- mov r2, r9
- str r2, [r0]
- ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2
- adds r0, r3, r6
- strb r2, [r0]
- movs r0, 0x64
- adds r5, r6, 0
- muls r5, r0
- adds r4, r5, r7
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080BC408
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080BC408
- movs r4, 0
- mov r0, r10
- lsls r0, 2
- mov r8, r0
- mov r1, r10
- lsls r7, r1, 1
- adds r1, 0x1
- str r1, [sp, 0x4]
- ldr r2, _080BC424 @ =gPlayerParty
-_080BC38E:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r5, r2
- str r2, [sp, 0x8]
- bl GetMonData
- mov r3, r8
- adds r1, r3, r4
- lsls r1, 1
- ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54
- adds r1, r3, r1
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r2, [sp, 0x8]
- cmp r4, 0x3
- bls _080BC38E
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080BC424 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84
- adds r1, r5, r7
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90
- adds r1, r2, r7
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C
- add r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C
- add r1, r8
- str r0, [r1]
- adds r0, r4, 0
- bl sub_80BC298
- ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2
- add r1, r10
- strb r0, [r1]
- ldr r3, [sp, 0x4]
- lsls r0, r3, 16
- lsrs r0, 16
- mov r10, r0
-_080BC408:
- ldr r5, [sp]
- lsls r0, r5, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _080BC314
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC424: .4byte gPlayerParty
-_080BC428: .4byte gSaveBlock1 + 0x1A54
-_080BC42C: .4byte gSaveBlock1 + 0x1A84
-_080BC430: .4byte gSaveBlock1 + 0x1A90
-_080BC434: .4byte gSaveBlock1 + 0x1A9C
-_080BC438: .4byte gSaveBlock1 + 0x1A3C
-_080BC43C: .4byte gSaveBlock1 + 0x1AA2
- thumb_func_end sub_80BC300
-
- thumb_func_start sub_80BC440
-sub_80BC440: @ 80BC440
- push {r4,r5,lr}
- ldr r4, _080BC45C @ =gSaveBlock1
- ldr r0, _080BC460 @ =0x00001a16
- adds r4, r0
- ldrh r5, [r4]
- movs r0, 0
- bl sub_80BB594
- strh r5, [r4]
- bl sub_80BC0F8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC45C: .4byte gSaveBlock1
-_080BC460: .4byte 0x00001a16
- thumb_func_end sub_80BC440
-
- thumb_func_start SecretBasePC_PackUp
-SecretBasePC_PackUp: @ 80BC464
- push {lr}
- movs r0, 0x14
- bl sav12_xor_increment
- bl sub_80BC440
- pop {r0}
- bx r0
- thumb_func_end SecretBasePC_PackUp
+.section .text_80BC1D0
thumb_func_start sub_80BC474
sub_80BC474: @ 80BC474
@@ -2149,13 +91,13 @@ sub_80BC50C: @ 80BC50C
push {r4,r5,lr}
bl sub_80BC474
movs r0, 0x14
- bl sav12_xor_increment
+ bl IncrementGameStat
ldr r4, _080BC530 @ =gSaveBlock1
ldr r0, _080BC534 @ =0x00001a16
adds r4, r0
ldrh r5, [r4]
movs r0, 0
- bl sub_80BB594
+ bl ResetSecretBase
strh r5, [r4]
pop {r4,r5}
pop {r0}
@@ -2642,7 +584,7 @@ _080BC8C2:
ldrsh r1, [r4, r2]
cmp r0, r1
bne _080BC8FC
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x1D
@@ -2652,7 +594,7 @@ _080BC8C2:
bl sub_80BCC54
b _080BC940
_080BC8FC:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldrb r0, [r4, 0x4]
ldrb r1, [r4, 0x2]
adds r0, r1
@@ -2672,7 +614,7 @@ _080BC91C:
beq _080BC940
movs r0, 0x5
bl PlaySE
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x1D
@@ -2729,9 +671,9 @@ sub_80BC980: @ 80BC980
lsls r4, 24
lsrs r4, 24
movs r0, 0
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x1
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x1
movs r1, 0
movs r2, 0xC
@@ -2857,7 +799,7 @@ sub_80BCA84: @ 80BCA84
bl DestroyVerticalScrollIndicator
movs r0, 0x1
bl DestroyVerticalScrollIndicator
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x1D
@@ -2898,7 +840,7 @@ sub_80BCAEC: @ 80BCAEC
bl DisplayYesNoMenu
ldr r1, _080BCB0C @ =gUnknown_083D13E4
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
pop {r4}
pop {r0}
bx r0
@@ -3052,9 +994,9 @@ sub_80BCBF8: @ 80BCBF8
movs r3, 0x5
bl MenuZeroFillWindowRect
movs r0, 0
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
movs r0, 0x1
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
subs r5, 0x8
adds r4, r5
ldr r0, _080BCC50 @ =sub_80BC824
diff --git a/asm/shop.s b/asm/shop.s
index 94ee3c867..a341e90a1 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -6,818 +6,6 @@
.text
- thumb_func_start CreateShopMenu
-CreateShopMenu: @ 80B2D54
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- ldr r1, _080B2D90 @ =gUnknown_03000708
- movs r0, 0
- strb r4, [r1, 0xC]
- strb r0, [r1, 0x9]
- cmp r4, 0
- bne _080B2D9C
- movs r0, 0x2
- strb r0, [r1, 0xA]
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x7
- bl MenuDrawTextWindow
- ldr r3, _080B2D94 @ =gUnknown_083CC6D0
- ldr r0, _080B2D98 @ =gUnknown_083CC6E8
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x3
- bl PrintMenuItemsReordered
- b _080B2DBC
- .align 2, 0
-_080B2D90: .4byte gUnknown_03000708
-_080B2D94: .4byte gUnknown_083CC6D0
-_080B2D98: .4byte gUnknown_083CC6E8
-_080B2D9C:
- movs r0, 0x1
- strb r0, [r1, 0xA]
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x5
- bl MenuDrawTextWindow
- ldr r3, _080B2DEC @ =gUnknown_083CC6D0
- ldr r0, _080B2DF0 @ =gUnknown_083CC6EB
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x2
- bl PrintMenuItemsReordered
-_080B2DBC:
- ldr r0, _080B2DF4 @ =gUnknown_03000708
- ldrb r3, [r0, 0xA]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl InitMenu
- ldr r0, _080B2DF8 @ =sub_80B2E38
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080B2DEC: .4byte gUnknown_083CC6D0
-_080B2DF0: .4byte gUnknown_083CC6EB
-_080B2DF4: .4byte gUnknown_03000708
-_080B2DF8: .4byte sub_80B2E38
- thumb_func_end CreateShopMenu
-
- thumb_func_start SetShopMenuCallback
-SetShopMenuCallback: @ 80B2DFC
- ldr r1, _080B2E04 @ =gUnknown_03000708
- str r0, [r1]
- bx lr
- .align 2, 0
-_080B2E04: .4byte gUnknown_03000708
- thumb_func_end SetShopMenuCallback
-
- thumb_func_start SetShopItemsForSale
-SetShopItemsForSale: @ 80B2E08
- push {lr}
- adds r1, r0, 0
- movs r2, 0
- ldr r3, _080B2E34 @ =gUnknown_03000708
- str r1, [r3, 0x4]
- strb r2, [r3, 0x8]
- ldrh r0, [r1]
- cmp r0, 0
- beq _080B2E30
-_080B2E1A:
- ldrb r0, [r3, 0x8]
- adds r0, 0x1
- strb r0, [r3, 0x8]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _080B2E1A
-_080B2E30:
- pop {r0}
- bx r0
- .align 2, 0
-_080B2E34: .4byte gUnknown_03000708
- thumb_func_end SetShopItemsForSale
-
- thumb_func_start sub_80B2E38
-sub_80B2E38: @ 80B2E38
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080B2E60 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080B2E68
- ldr r4, _080B2E64 @ =gUnknown_03000708
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _080B2EF4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080B2E82
- .align 2, 0
-_080B2E60: .4byte gMain
-_080B2E64: .4byte gUnknown_03000708
-_080B2E68:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080B2E90
- ldr r4, _080B2E8C @ =gUnknown_03000708
- ldrb r0, [r4, 0x9]
- ldrb r1, [r4, 0xA]
- cmp r0, r1
- beq _080B2EF4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_080B2E82:
- bl MoveMenuCursor
- strb r0, [r4, 0x9]
- b _080B2EF4
- .align 2, 0
-_080B2E8C: .4byte gUnknown_03000708
-_080B2E90:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B2EE0
- movs r0, 0x5
- bl PlaySE
- ldr r3, _080B2EB0 @ =gUnknown_03000708
- ldrb r0, [r3, 0xC]
- cmp r0, 0
- bne _080B2EBC
- ldr r1, _080B2EB4 @ =gUnknown_083CC6D0
- ldr r2, _080B2EB8 @ =gUnknown_083CC6E8
- b _080B2EC0
- .align 2, 0
-_080B2EB0: .4byte gUnknown_03000708
-_080B2EB4: .4byte gUnknown_083CC6D0
-_080B2EB8: .4byte gUnknown_083CC6E8
-_080B2EBC:
- ldr r1, _080B2ED8 @ =gUnknown_083CC6D0
- ldr r2, _080B2EDC @ =gUnknown_083CC6EB
-_080B2EC0:
- ldrb r0, [r3, 0x9]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080B2EF4
- .align 2, 0
-_080B2ED8: .4byte gUnknown_083CC6D0
-_080B2EDC: .4byte gUnknown_083CC6EB
-_080B2EE0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B2EF4
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl HandleShopMenuQuit
-_080B2EF4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B2E38
-
- thumb_func_start sub_80B2EFC
-sub_80B2EFC: @ 80B2EFC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B2F24 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080B2F28 @ =BuyMenuDrawGraphics
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080B2F2C @ =sub_80B2FA0
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_080B2F24: .4byte gTasks
-_080B2F28: .4byte BuyMenuDrawGraphics
-_080B2F2C: .4byte sub_80B2FA0
- thumb_func_end sub_80B2EFC
-
- thumb_func_start sub_80B2F30
-sub_80B2F30: @ 80B2F30
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B2F58 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080B2F5C @ =sub_80A6300
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080B2F60 @ =sub_80B2FA0
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_080B2F58: .4byte gTasks
-_080B2F5C: .4byte sub_80A6300
-_080B2F60: .4byte sub_80B2FA0
- thumb_func_end sub_80B2F30
-
- thumb_func_start HandleShopMenuQuit
-HandleShopMenuQuit: @ 80B2F64
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- bl sub_80BE3BC
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _080B2F9C @ =gUnknown_03000708
- ldr r0, [r0]
- cmp r0, 0
- beq _080B2F96
- bl _call_via_r0
-_080B2F96:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2F9C: .4byte gUnknown_03000708
- thumb_func_end HandleShopMenuQuit
-
- thumb_func_start sub_80B2FA0
-sub_80B2FA0: @ 80B2FA0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080B2FD4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B2FCE
- ldr r0, _080B2FD8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- lsls r0, 16
- ldrh r1, [r1, 0x1A]
- orrs r0, r1
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_080B2FCE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2FD4: .4byte gPaletteFade
-_080B2FD8: .4byte gTasks
- thumb_func_end sub_80B2FA0
-
- thumb_func_start ReturnToShopMenuAfterExitingSellMenu
-ReturnToShopMenuAfterExitingSellMenu: @ 80B2FDC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080B2FF8 @ =gUnknown_03000708
- ldrb r0, [r0, 0xC]
- bl CreateShopMenu
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B2FF8: .4byte gUnknown_03000708
- thumb_func_end ReturnToShopMenuAfterExitingSellMenu
-
- thumb_func_start Task_ExitSellMenu
-Task_ExitSellMenu: @ 80B2FFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B3040
- ldr r0, _080B3028 @ =gUnknown_03000708
- ldrb r0, [r0, 0xC]
- cmp r0, 0x2
- bne _080B3034
- ldr r1, _080B302C @ =gOtherText_CanIHelpYou
- ldr r2, _080B3030 @ =ReturnToShopMenuAfterExitingSellMenu
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080B3040
- .align 2, 0
-_080B3028: .4byte gUnknown_03000708
-_080B302C: .4byte gOtherText_CanIHelpYou
-_080B3030: .4byte ReturnToShopMenuAfterExitingSellMenu
-_080B3034:
- ldr r1, _080B3048 @ =gOtherText_AnythingElse
- ldr r2, _080B304C @ =ReturnToShopMenuAfterExitingSellMenu
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080B3040:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3048: .4byte gOtherText_AnythingElse
-_080B304C: .4byte ReturnToShopMenuAfterExitingSellMenu
- thumb_func_end Task_ExitSellMenu
-
- thumb_func_start sub_80B3050
-sub_80B3050: @ 80B3050
- push {lr}
- bl pal_fill_black
- ldr r0, _080B3064 @ =Task_ExitSellMenu
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080B3064: .4byte Task_ExitSellMenu
- thumb_func_end sub_80B3050
-
- thumb_func_start sub_80B3068
-sub_80B3068: @ 80B3068
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl Task_ExitSellMenu
- pop {r0}
- bx r0
- thumb_func_end sub_80B3068
-
- thumb_func_start unref_sub_80B3078
-unref_sub_80B3078: @ 80B3078
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B308C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080B3090 @ =Task_ExitSellMenu
- str r0, [r1]
- bx lr
- .align 2, 0
-_080B308C: .4byte gTasks
-_080B3090: .4byte Task_ExitSellMenu
- thumb_func_end unref_sub_80B3078
-
- thumb_func_start sub_80B3094
-sub_80B3094: @ 80B3094
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80B3094
-
- thumb_func_start sub_80B30AC
-sub_80B30AC: @ 80B30AC
- push {r4,lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r3, _080B30F0 @ =gBGTilemapBuffers + 0x800
- ldr r1, _080B30F4 @ =0x0600e800
- ldr r0, _080B30F8 @ =0x040000d4
- str r3, [r0]
- str r1, [r0, 0x4]
- ldr r4, _080B30FC @ =0x80000400
- str r4, [r0, 0x8]
- ldr r1, [r0, 0x8]
- movs r2, 0x80
- lsls r2, 4
- adds r1, r3, r2
- ldr r2, _080B3100 @ =0x0600e000
- str r1, [r0]
- str r2, [r0, 0x4]
- str r4, [r0, 0x8]
- ldr r1, [r0, 0x8]
- movs r1, 0x80
- lsls r1, 5
- adds r3, r1
- ldr r1, _080B3104 @ =0x0600f000
- str r3, [r0]
- str r1, [r0, 0x4]
- str r4, [r0, 0x8]
- ldr r0, [r0, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B30F0: .4byte gBGTilemapBuffers + 0x800
-_080B30F4: .4byte 0x0600e800
-_080B30F8: .4byte 0x040000d4
-_080B30FC: .4byte 0x80000400
-_080B3100: .4byte 0x0600e000
-_080B3104: .4byte 0x0600f000
- thumb_func_end sub_80B30AC
-
- thumb_func_start BuyMenuDrawGraphics
-BuyMenuDrawGraphics: @ 80B3108
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- bl sub_80F9438
- bl remove_some_task
- ldr r0, _080B3204 @ =REG_BG1HOFS
- movs r5, 0
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- ldr r0, _080B3208 @ =gPaletteFade
- mov r8, r0
- ldrb r0, [r0, 0x8]
- movs r1, 0x80
- orrs r0, r1
- mov r1, r8
- strb r0, [r1, 0x8]
- movs r1, 0xE0
- lsls r1, 19
- movs r6, 0
- str r6, [sp, 0x4]
- ldr r0, _080B320C @ =0x040000d4
- add r2, sp, 0x4
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080B3210 @ =0x85000100
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _080B3214 @ =gBuyMenuFrame_Gfx
- ldr r1, _080B3218 @ =0x06007c00
- bl LZDecompressVram
- ldr r0, _080B321C @ =gBuyMenuFrame_Tilemap
- ldr r1, _080B3220 @ =0x02018000
- bl sub_800D238
- ldr r0, _080B3224 @ =gMenuMoneyPal
- movs r1, 0xC0
- movs r2, 0x20
- bl LoadCompressedPalette
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- ldr r4, _080B3228 @ =gWindowConfig_81E6DFC
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl BuyMenuDrawMapGraphics
- ldr r0, _080B322C @ =gUnknown_03000708
- strb r6, [r0, 0x9]
- strb r5, [r0, 0xB]
- movs r0, 0
- movs r1, 0
- movs r2, 0x20
- movs r3, 0x20
- bl MenuZeroFillWindowRect
- ldr r0, _080B3230 @ =gSaveBlock1
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_80B7C14
- movs r0, 0
- movs r1, 0x7
- bl sub_80B3764
- bl sub_80B37EC
- bl sub_80B3270
- ldr r0, _080B3234 @ =sub_80B40E8
- movs r1, 0x8
- bl CreateTask
- bl sub_80B3240
- movs r0, 0x1
- negs r0, r0
- str r6, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- mov r2, r8
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _080B3238 @ =sub_80B30AC
- bl SetVBlankCallback
- ldr r0, _080B323C @ =sub_80B3094
- bl SetMainCallback2
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3204: .4byte REG_BG1HOFS
-_080B3208: .4byte gPaletteFade
-_080B320C: .4byte 0x040000d4
-_080B3210: .4byte 0x85000100
-_080B3214: .4byte gBuyMenuFrame_Gfx
-_080B3218: .4byte 0x06007c00
-_080B321C: .4byte gBuyMenuFrame_Tilemap
-_080B3220: .4byte 0x02018000
-_080B3224: .4byte gMenuMoneyPal
-_080B3228: .4byte gWindowConfig_81E6DFC
-_080B322C: .4byte gUnknown_03000708
-_080B3230: .4byte gSaveBlock1
-_080B3234: .4byte sub_80B40E8
-_080B3238: .4byte sub_80B30AC
-_080B323C: .4byte sub_80B3094
- thumb_func_end BuyMenuDrawGraphics
-
- thumb_func_start sub_80B3240
-sub_80B3240: @ 80B3240
- push {lr}
- sub sp, 0x4
- ldr r1, _080B326C @ =gUnknown_083CC710
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- mov r0, sp
- adds r0, 0x2
- movs r1, 0xD1
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- movs r1, 0xD8
- movs r2, 0x2
- bl LoadPalette
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080B326C: .4byte gUnknown_083CC710
- thumb_func_end sub_80B3240
-
- thumb_func_start sub_80B3270
-sub_80B3270: @ 80B3270
- push {lr}
- bl sub_80F944C
- ldr r0, _080B32A0 @ =gUnknown_03000708
- ldrb r0, [r0, 0x8]
- cmp r0, 0x7
- bls _080B329A
- movs r0, 0
- movs r1, 0xAC
- movs r2, 0xC
- bl CreateVerticalScrollIndicators
- movs r0, 0x1
- movs r1, 0xAC
- movs r2, 0x94
- bl CreateVerticalScrollIndicators
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
-_080B329A:
- pop {r0}
- bx r0
- .align 2, 0
-_080B32A0: .4byte gUnknown_03000708
- thumb_func_end sub_80B3270
-
- thumb_func_start sub_80B32A4
-sub_80B32A4: @ 80B32A4
- push {lr}
- ldr r0, _080B32B8 @ =gUnknown_03000708
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- bne _080B32BC
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
- b _080B32C4
- .align 2, 0
-_080B32B8: .4byte gUnknown_03000708
-_080B32BC:
- movs r0, 0
- movs r1, 0
- bl sub_80F979C
-_080B32C4:
- ldr r1, _080B32DC @ =gUnknown_03000708
- ldrb r0, [r1, 0xB]
- adds r0, 0x7
- ldrb r1, [r1, 0x8]
- cmp r0, r1
- blt _080B32E0
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- b _080B32E8
- .align 2, 0
-_080B32DC: .4byte gUnknown_03000708
-_080B32E0:
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
-_080B32E8:
- pop {r0}
- bx r0
- thumb_func_end sub_80B32A4
-
- thumb_func_start sub_80B32EC
-sub_80B32EC: @ 80B32EC
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r2
- lsls r1, 1
- adds r1, r0
- ldr r2, _080B3304 @ =0x0000c3e1
- adds r0, r2, 0
- strh r0, [r1]
- strh r0, [r1, 0x2]
- bx lr
- .align 2, 0
-_080B3304: .4byte 0x0000c3e1
- thumb_func_end sub_80B32EC
-
- thumb_func_start BuyMenuDrawMapMetatileLayer
-BuyMenuDrawMapMetatileLayer: @ 80B3308
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r2
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r3]
- strh r0, [r1]
- ldrh r0, [r3, 0x2]
- strh r0, [r1, 0x2]
- adds r2, r1, 0
- adds r2, 0x40
- ldrh r0, [r3, 0x4]
- strh r0, [r2]
- adds r1, 0x42
- ldrh r0, [r3, 0x6]
- strh r0, [r1]
- bx lr
- thumb_func_end BuyMenuDrawMapMetatileLayer
-
- thumb_func_start BuyMenuDrawMapMetatile
-BuyMenuDrawMapMetatile: @ 80B3330
- push {r4-r7,lr}
- adds r7, r2, 0
- lsls r3, 24
- lsrs r3, 24
- adds r2, r3, 0
- lsls r0, 17
- lsrs r0, 16
- lsls r1, 22
- movs r4, 0x80
- lsls r4, 15
- adds r1, r4
- lsrs r1, 16
- cmp r3, 0x1
- beq _080B3364
- cmp r3, 0x1
- bgt _080B3356
- cmp r3, 0
- beq _080B335C
- b _080B33C0
-_080B3356:
- cmp r2, 0x2
- beq _080B3398
- b _080B33C0
-_080B335C:
- ldr r5, _080B3360 @ =gBGTilemapBuffers + 0x1000
- b _080B3366
- .align 2, 0
-_080B3360: .4byte gBGTilemapBuffers + 0x1000
-_080B3364:
- ldr r5, _080B3390 @ =gBGTilemapBuffers + 0x1800
-_080B3366:
- lsls r6, r0, 16
- asrs r6, 16
- lsls r4, r1, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- adds r3, r7, 0
- bl BuyMenuDrawMapMetatileLayer
- ldr r0, _080B3394 @ =0xfffff800
- adds r5, r0
- adds r3, r7, 0
- adds r3, 0x8
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl BuyMenuDrawMapMetatileLayer
- b _080B33C0
- .align 2, 0
-_080B3390: .4byte gBGTilemapBuffers + 0x1800
-_080B3394: .4byte 0xfffff800
-_080B3398:
- ldr r5, _080B33C8 @ =gBGTilemapBuffers + 0x1800
- lsls r6, r0, 16
- asrs r6, 16
- lsls r4, r1, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- adds r3, r7, 0
- bl BuyMenuDrawMapMetatileLayer
- ldr r0, _080B33CC @ =0xfffff000
- adds r5, r0
- adds r3, r7, 0
- adds r3, 0x8
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl BuyMenuDrawMapMetatileLayer
-_080B33C0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B33C8: .4byte gBGTilemapBuffers + 0x1800
-_080B33CC: .4byte 0xfffff000
- thumb_func_end BuyMenuDrawMapMetatile
-
thumb_func_start sub_80B33D0
sub_80B33D0: @ 80B33D0
push {r4-r6,lr}
@@ -1820,7 +1008,7 @@ sub_80B3B80: @ 80B3B80
lsls r4, 24
lsrs r4, 24
movs r0, 0x26
- bl sav12_xor_increment
+ bl IncrementGameStat
ldr r5, _080B3BC0 @ =gSaveBlock1 + 0x490
ldr r0, _080B3BC4 @ =gUnknown_020386A0
ldr r1, [r0]
@@ -2034,7 +1222,7 @@ sub_80B3D38: @ 80B3D38
bl sub_80A3FA0
ldr r1, _080B3D78 @ =gUnknown_083CC708
adds r0, r4, 0
- bl sub_80F914C
+ bl DoYesNoFuncWithChoice
add sp, 0x8
pop {r4}
pop {r0}
@@ -2579,9 +1767,9 @@ _080B41B8:
b _080B4350
_080B41CE:
movs r0, 0
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x1
- bl sub_80F996C
+ bl PauseVerticalScrollIndicator
movs r0, 0x1
movs r1, 0x1
bl sub_80F979C
@@ -2589,7 +1777,7 @@ _080B41CE:
adds r0, r1, 0
movs r2, 0x1
bl sub_80B39D0
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0xC
movs r2, 0xD
@@ -2790,9 +1978,9 @@ sub_80B4378: @ 80B4378
bl sub_80B3764
bl sub_80B37EC
movs r0, 0
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
movs r0, 0x1
- bl sub_80F98DC
+ bl StartVerticalScrollIndicators
bl sub_80B32A4
ldr r1, _080B43E8 @ =gTasks
lsls r0, r4, 2
@@ -2818,7 +2006,7 @@ sub_80B43F0: @ 80B43F0
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r1, _080B4428 @ =gUnknown_0300485C
+ ldr r1, _080B4428 @ =gFieldCallback
ldr r0, _080B442C @ =sub_80B3050
str r0, [r1]
movs r0, 0x1
@@ -2840,7 +2028,7 @@ sub_80B43F0: @ 80B43F0
pop {r0}
bx r0
.align 2, 0
-_080B4428: .4byte gUnknown_0300485C
+_080B4428: .4byte gFieldCallback
_080B442C: .4byte sub_80B3050
_080B4430: .4byte gTasks
_080B4434: .4byte Task_ExitBuyMenu
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index ee176211f..46af5bc0f 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -1254,7 +1254,7 @@ sub_81021FC: @ 81021FC
cmp r0, 0
beq _08102220
movs r0, 0x1C
- bl sav12_xor_increment
+ bl IncrementGameStat
_08102220:
ldrh r1, [r4, 0x8]
movs r0, 0x4
@@ -7048,72 +7048,7 @@ _08104CA4: .4byte gTasks
_08104CA8: .4byte 0x0000ffff
thumb_func_end sub_8104C5C
- thumb_func_start sub_8104CAC
-sub_8104CAC: @ 8104CAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8104DA4
- ldr r0, _08104D24 @ =0x02000000
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104D28 @ =gTasks
- adds r7, r0, r1
- strh r4, [r7, 0xA]
- movs r6, 0
- ldr r1, _08104D2C @ =gUnknown_083ED048
- lsls r5, r4, 2
- adds r0, r5, r1
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08104D18
- mov r8, r1
-_08104CE0:
- mov r0, r8
- adds r4, r5, r0
- ldr r0, [r4]
- lsls r2, r6, 2
- adds r2, r0
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- bl sub_8105BB4
- lsls r0, 24
- lsrs r0, 24
- adds r2, r6, 0x4
- lsls r2, 1
- adds r1, r7, 0
- adds r1, 0x8
- adds r1, r2
- strh r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, [r4]
- lsls r0, r6, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08104CE0
-_08104D18:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104D24: .4byte 0x02000000
-_08104D28: .4byte gTasks
-_08104D2C: .4byte gUnknown_083ED048
- thumb_func_end sub_8104CAC
+.section .text_8104D30
thumb_func_start sub_8104D30
sub_8104D30: @ 8104D30
@@ -7609,14 +7544,14 @@ sub_81050C4: @ 81050C4
movs r2, 0xC
orrs r1, r2
strb r1, [r0, 0x5]
- ldr r1, _081050FC @ =gUnknown_083ED704
+ ldr r1, _081050FC @ =gSubspriteTables_83ED704
bl SetSubspriteTables
pop {r0}
bx r0
.align 2, 0
_081050F4: .4byte gSpriteTemplate_83ED444
_081050F8: .4byte gSprites
-_081050FC: .4byte gUnknown_083ED704
+_081050FC: .4byte gSubspriteTables_83ED704
thumb_func_end sub_81050C4
thumb_func_start sub_8105100
@@ -7764,7 +7699,7 @@ sub_81051C0: @ 81051C0
mov r3, r8
orrs r0, r3
strb r0, [r1]
- ldr r1, _08105274 @ =gUnknown_083ED73C
+ ldr r1, _08105274 @ =gSubspriteTables_83ED73C
adds r0, r2, 0
bl SetSubspriteTables
ldr r6, _08105278 @ =0x02000000
@@ -7795,7 +7730,7 @@ sub_81051C0: @ 81051C0
mov r3, r8
orrs r0, r3
strb r0, [r1]
- ldr r1, _08105280 @ =gUnknown_083ED75C
+ ldr r1, _08105280 @ =gSubspriteTables_83ED75C
adds r0, r2, 0
bl SetSubspriteTables
adds r6, 0x4A
@@ -7810,10 +7745,10 @@ sub_81051C0: @ 81051C0
.align 2, 0
_0810526C: .4byte gSpriteTemplate_83ED474
_08105270: .4byte gSprites
-_08105274: .4byte gUnknown_083ED73C
+_08105274: .4byte gSubspriteTables_83ED73C
_08105278: .4byte 0x02000000
_0810527C: .4byte gSpriteTemplate_83ED48C
-_08105280: .4byte gUnknown_083ED75C
+_08105280: .4byte gSubspriteTables_83ED75C
thumb_func_end sub_81051C0
thumb_func_start sub_8105284
@@ -7850,7 +7785,7 @@ sub_8105284: @ 8105284
movs r2, 0x2
orrs r1, r2
strb r1, [r3]
- ldr r1, _081052E4 @ =gUnknown_083ED78C
+ ldr r1, _081052E4 @ =gSubspriteTables_83ED78C
bl SetSubspriteTables
ldr r0, _081052E8 @ =0x02000000
adds r0, 0x42
@@ -7862,7 +7797,7 @@ sub_8105284: @ 8105284
_081052D8: .4byte gSpriteTemplate_83ED4A4
_081052DC: .4byte gSpriteCoordOffsetX
_081052E0: .4byte gSprites
-_081052E4: .4byte gUnknown_083ED78C
+_081052E4: .4byte gSubspriteTables_83ED78C
_081052E8: .4byte 0x02000000
thumb_func_end sub_8105284
@@ -7997,7 +7932,7 @@ sub_81053A0: @ 81053A0
mov r3, r8
orrs r0, r3
strb r0, [r2, 0x5]
- ldr r0, _08105454 @ =gUnknown_083ED7B4
+ ldr r0, _08105454 @ =gSubspriteTables_83ED7B4
mov r9, r0
adds r0, r2, 0
mov r1, r9
@@ -8045,7 +7980,7 @@ sub_81053A0: @ 81053A0
.align 2, 0
_0810544C: .4byte gSpriteTemplate_83ED4D4
_08105450: .4byte gSprites
-_08105454: .4byte gUnknown_083ED7B4
+_08105454: .4byte gSubspriteTables_83ED7B4
_08105458: .4byte 0x02000000
thumb_func_end sub_81053A0
@@ -8079,7 +8014,7 @@ sub_810545C: @ 810545C
movs r2, 0x4
orrs r1, r2
strb r1, [r0, 0x5]
- ldr r1, _081054B0 @ =gUnknown_083ED7D4
+ ldr r1, _081054B0 @ =gSubspriteTables_83ED7D4
bl SetSubspriteTables
ldr r0, _081054B4 @ =0x02000000
adds r0, 0x40
@@ -8090,7 +8025,7 @@ sub_810545C: @ 810545C
.align 2, 0
_081054A8: .4byte gSpriteTemplate_83ED4EC
_081054AC: .4byte gSprites
-_081054B0: .4byte gUnknown_083ED7D4
+_081054B0: .4byte gSubspriteTables_83ED7D4
_081054B4: .4byte 0x02000000
thumb_func_end sub_810545C
@@ -10221,249 +10156,4 @@ _08106440: .4byte gUnknown_083EDCDC
_08106444: .4byte gUnknown_083EDCE4
thumb_func_end sub_8106404
- thumb_func_start sub_8106448
-sub_8106448: @ 8106448
- push {r4-r7,lr}
- ldr r0, _081064A0 @ =gSlotMachine_Gfx
- ldr r4, _081064A4 @ =0x02010000
- adds r1, r4, 0
- bl sub_800D238
- movs r3, 0xC0
- lsls r3, 19
- movs r5, 0xE9
- lsls r5, 5
- ldr r1, _081064A8 @ =0x040000d4
- ldr r6, _081064AC @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_08106468:
- str r4, [r1]
- str r3, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r4, r2
- adds r3, r2
- subs r5, r2
- cmp r5, r2
- bhi _08106468
- str r4, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, _081064B0 @ =gUnknown_08E95A18
- movs r1, 0
- movs r2, 0xA0
- bl LoadPalette
- ldr r0, _081064B4 @ =gUnknown_083EDE24
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081064A0: .4byte gSlotMachine_Gfx
-_081064A4: .4byte 0x02010000
-_081064A8: .4byte 0x040000d4
-_081064AC: .4byte 0x80000800
-_081064B0: .4byte gUnknown_08E95A18
-_081064B4: .4byte gUnknown_083EDE24
- thumb_func_end sub_8106448
-
- thumb_func_start sub_81064B8
-sub_81064B8: @ 81064B8
- push {lr}
- ldr r0, _081064D0 @ =gUnknown_08E95AB8
- ldr r1, _081064D4 @ =0x0600e800
- movs r2, 0xA0
- lsls r2, 2
- bl CpuSet
- bl sub_81064D8
- pop {r0}
- bx r0
- .align 2, 0
-_081064D0: .4byte gUnknown_08E95AB8
-_081064D4: .4byte 0x0600e800
- thumb_func_end sub_81064B8
-
- thumb_func_start sub_81064D8
-sub_81064D8: @ 81064D8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r6, _0810658C @ =0x0600f000
- movs r3, 0x4
- movs r0, 0xC0
- lsls r0, 1
- mov r12, r0
- movs r1, 0xC0
- lsls r1, 2
- mov r9, r1
- movs r2, 0xA0
- lsls r2, 1
- mov r8, r2
-_081064F6:
- movs r0, 0
- lsls r4, r3, 16
- asrs r5, r4, 16
-_081064FC:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r5, r2
- lsls r1, 1
- adds r1, r6
- mov r7, r8
- adds r3, r1, r7
- ldr r7, _08106590 @ =0x00002051
- adds r0, r7, 0
- strh r0, [r3]
- movs r0, 0xD0
- lsls r0, 2
- adds r3, r1, r0
- ldr r7, _08106594 @ =0x00002851
- adds r0, r7, 0
- strh r0, [r3]
- mov r0, r12
- adds r3, r1, r0
- ldr r7, _08106598 @ =0x00002061
- adds r0, r7, 0
- strh r0, [r3]
- add r1, r9
- ldr r3, _0810659C @ =0x00002861
- adds r0, r3, 0
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x3
- ble _081064FC
- asrs r3, r4, 16
- lsls r1, r3, 1
- adds r1, r6
- mov r5, r12
- adds r2, r1, r5
- adds r7, 0x5D
- adds r0, r7, 0
- strh r0, [r2]
- add r1, r9
- ldr r2, _081065A0 @ =0x000028be
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x7
- ldr r5, _081065A4 @ =0x000020bf
- adds r2, r5, 0
-_08106558:
- lsls r1, r0, 16
- asrs r1, 16
- lsls r0, r1, 5
- adds r0, r3
- lsls r0, 1
- adds r0, r6
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, 0xB
- ble _08106558
- movs r7, 0xA0
- lsls r7, 11
- adds r0, r4, r7
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _081064F6
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810658C: .4byte 0x0600f000
-_08106590: .4byte 0x00002051
-_08106594: .4byte 0x00002851
-_08106598: .4byte 0x00002061
-_0810659C: .4byte 0x00002861
-_081065A0: .4byte 0x000028be
-_081065A4: .4byte 0x000020bf
- thumb_func_end sub_81064D8
-
- thumb_func_start sub_81065A8
-sub_81065A8: @ 81065A8
- push {r4-r6,lr}
- ldr r5, [sp, 0x10]
- lsls r0, 16
- asrs r0, 15
- ldr r6, _081065D0 @ =0x0600ebc0
- adds r4, r0, r6
- strh r1, [r4]
- ldr r4, _081065D4 @ =0x0600ebc2
- adds r1, r0, r4
- strh r2, [r1]
- adds r6, 0x40
- adds r1, r0, r6
- strh r3, [r1]
- ldr r1, _081065D8 @ =0x0600ec02
- adds r0, r1
- strh r5, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081065D0: .4byte 0x0600ebc0
-_081065D4: .4byte 0x0600ebc2
-_081065D8: .4byte 0x0600ec02
- thumb_func_end sub_81065A8
-
- thumb_func_start sub_81065DC
-sub_81065DC: @ 81065DC
- push {r4,r5,lr}
- ldr r0, _08106624 @ =gUnknown_08E95FB8
- ldr r1, _08106628 @ =0x0600e800
- movs r2, 0xA0
- lsls r2, 2
- bl CpuSet
- ldr r5, _0810662C @ =0x0600f000
- movs r1, 0
- movs r4, 0
-_081065F0:
- movs r0, 0
- lsls r3, r1, 16
- asrs r2, r3, 11
-_081065F6:
- lsls r1, r0, 16
- asrs r1, 16
- adds r0, r2, r1
- lsls r0, 1
- adds r0, r5
- strh r4, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, 0x1D
- ble _081065F6
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _081065F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08106624: .4byte gUnknown_08E95FB8
-_08106628: .4byte 0x0600e800
-_0810662C: .4byte 0x0600f000
- thumb_func_end sub_81065DC
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index 6a6b6ae30..223f62474 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -6,6 +6,10 @@
.text
+.ifdef ENGLISH
+ .set sub_804A96C_alt, sub_804A96C
+.endif
+
thumb_func_start sub_8047CD8
sub_8047CD8: @ 8047CD8
push {lr}
@@ -604,7 +608,7 @@ _080481BA:
str r0, [sp, 0x4]
adds r0, r5, 0
ldr r1, _080482AC @ =sub_809D62C
- bl sub_809D2FC
+ bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, 0x34
@@ -661,7 +665,7 @@ _0804822C:
str r0, [sp, 0x4]
adds r0, r5, 0
ldr r1, _080482AC @ =sub_809D62C
- bl sub_809D2FC
+ bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, 0x3A
@@ -689,14 +693,14 @@ _080482A8: .4byte 0xfff40000
_080482AC: .4byte sub_809D62C
_080482B0: .4byte gEnemyParty
_080482B4:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
ldr r0, _080482D0 @ =gUnknown_03004824
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x42
adds r1, 0x34
movs r2, 0
- bl sub_806DB90
+ bl CreateHeldItemIcons
ldr r1, _080482D4 @ =gMain
ldr r0, _080482D8 @ =0x0000043c
adds r1, r0
@@ -712,7 +716,7 @@ _080482DC:
adds r0, 0x42
adds r1, 0x34
movs r2, 0x1
- bl sub_806DB90
+ bl CreateHeldItemIcons
ldr r1, _080482F8 @ =gMain
ldr r2, _080482FC @ =0x0000043c
adds r1, r2
@@ -1176,7 +1180,7 @@ _080486DE:
str r0, [sp, 0x4]
adds r0, r5, 0
ldr r1, _080487D8 @ =sub_809D62C
- bl sub_809D2FC
+ bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, 0x34
@@ -1233,7 +1237,7 @@ _08048752:
str r0, [sp, 0x4]
adds r0, r5, 0
ldr r1, _080487D8 @ =sub_809D62C
- bl sub_809D2FC
+ bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
adds r1, 0x3A
@@ -1266,14 +1270,14 @@ _080487DC: .4byte gEnemyParty
_080487E0: .4byte gMain
_080487E4: .4byte 0x0000043c
_080487E8:
- bl sub_806DA98
+ bl LoadHeldItemIconGraphics
ldr r0, _08048804 @ =gUnknown_03004824
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x42
adds r1, 0x34
movs r2, 0
- bl sub_806DB90
+ bl CreateHeldItemIcons
ldr r1, _08048808 @ =gMain
ldr r5, _0804880C @ =0x0000043c
adds r1, r5
@@ -1289,7 +1293,7 @@ _08048810:
adds r0, 0x42
adds r1, 0x34
movs r2, 0x1
- bl sub_806DB90
+ bl CreateHeldItemIcons
ldr r1, _0804882C @ =gMain
ldr r0, _08048830 @ =0x0000043c
adds r1, r0
@@ -3266,7 +3270,7 @@ _08049800: .4byte gUnknown_03004824
thumb_func_start sub_8049804
sub_8049804: @ 8049804
push {lr}
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
bl sub_804A80C
ldr r3, _08049850 @ =gUnknown_03004824
ldr r0, [r3]
@@ -3475,7 +3479,7 @@ sub_804997C: @ 804997C
ldr r3, _080499C0 @ =sub_80484F4
movs r4, 0x4
str r4, [sp]
- bl sub_809D8BC
+ bl ShowPokemonSummaryScreen
b _080499E0
.align 2, 0
_080499B4: .4byte gPaletteFade
@@ -3495,7 +3499,7 @@ _080499C4:
ldr r3, _080499EC @ =sub_80484F4
movs r4, 0x4
str r4, [sp]
- bl sub_809D8BC
+ bl ShowPokemonSummaryScreen
_080499E0:
add sp, 0x4
pop {r4}
@@ -4315,7 +4319,7 @@ _08049F8E:
lsls r0, 2
adds r0, r7
bl sub_8078A34
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r3, _0804A09C @ =gUnknown_03004824
ldr r0, [r3]
adds r0, 0x4
@@ -4348,7 +4352,7 @@ _08049F8E:
movs r5, 0
str r5, [sp, 0x8]
movs r2, 0
- bl sub_804A96C
+ bl sub_804A96C_alt
ldr r0, [sp, 0x6C]
cmp r0, 0
beq _0804A08C
@@ -4407,7 +4411,7 @@ _0804A0E4:
movs r5, 0
str r5, [sp, 0x8]
movs r2, 0
- bl sub_804A96C
+ bl sub_804A96C_alt
ldr r0, _0804A22C @ =gUnknown_03004824
ldr r3, [r0]
ldr r1, [sp, 0x6C]
@@ -5122,6 +5126,13 @@ _0804A690:
_0804A6CA:
strh r0, [r1]
_0804A6CC:
+.ifdef GERMAN
+ ldr r0, _0804A6E8 @ =gUnknown_03004824
+ ldr r0, [r0]
+ adds r0, 0xD8
+ movs r1, 0x1
+ strb r1, [r0]
+.endif
add sp, 0x28
pop {r3-r5}
mov r8, r3
@@ -5130,6 +5141,10 @@ _0804A6CC:
pop {r4-r7}
pop {r0}
bx r0
+.ifdef GERMAN
+ .align 2, 0
+_0804A6E8: .4byte gUnknown_03004824
+.endif
thumb_func_end sub_804A51C
thumb_func_start sub_804A6DC
@@ -5347,7 +5362,7 @@ sub_804A840: @ 804A840
str r5, [sp, 0x8]
movs r1, 0
movs r2, 0
- bl sub_804A96C
+ bl sub_804A96C_alt
movs r0, 0
bl sub_804A6DC
movs r0, 0
@@ -5363,7 +5378,7 @@ _0804A89C: .4byte gUnknown_03004824
_0804A8A0: .4byte gUnknown_0820C330
_0804A8A4: .4byte gTradePartyBoxTilemap
_0804A8A8:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
ldr r4, _0804A924 @ =gUnknown_03004824
ldr r0, [r4]
adds r0, 0x4
@@ -5387,7 +5402,7 @@ _0804A8A8:
str r1, [sp, 0x8]
movs r1, 0xF
movs r2, 0
- bl sub_804A96C
+ bl sub_804A96C_alt
movs r0, 0x1
bl sub_804A6DC
movs r0, 0x1
@@ -5462,81 +5477,7 @@ sub_804A964: @ 804A964
bx lr
thumb_func_end sub_804A964
- thumb_func_start sub_804A96C
-sub_804A96C: @ 804A96C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- mov r10, r3
- ldr r0, [sp, 0x24]
- ldr r3, [sp, 0x28]
- ldr r4, [sp, 0x2C]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- lsls r4, 16
- lsrs r7, r4, 16
- movs r2, 0
- cmp r2, r12
- bge _0804A9DE
- ldr r0, [sp]
- adds r0, 0x12
- mov r9, r0
- lsls r0, r6, 5
- adds r0, r1
- mov r8, r0
-_0804A9AA:
- movs r4, 0
- adds r6, r2, 0x1
- cmp r4, r5
- bge _0804A9D8
- lsls r1, r2, 5
- add r1, r8
- adds r0, r5, 0
- muls r0, r2
- lsls r0, 1
- mov r2, r10
- adds r3, r0, r2
- lsls r1, 1
- mov r0, r9
- adds r2, r1, r0
-_0804A9C6:
- ldrh r1, [r3]
- adds r0, r7, 0
- orrs r0, r1
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, r5
- blt _0804A9C6
-_0804A9D8:
- adds r2, r6, 0
- cmp r2, r12
- blt _0804A9AA
-_0804A9DE:
- movs r0, 0x1
- ldr r1, [sp]
- strb r0, [r1, 0x10]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804A96C
+.section .text.sub_804A9F4
thumb_func_start sub_804A9F4
sub_804A9F4: @ 804A9F4
@@ -6137,7 +6078,7 @@ _0804AE5C:
asrs r0, 16
lsls r1, 16
asrs r1, 16
- bl sub_8046200
+ bl GetHPBarLevel
ldr r1, [r7]
adds r1, 0x69
adds r1, r6
@@ -6182,7 +6123,7 @@ _0804AEBC:
asrs r0, 16
lsls r1, 16
asrs r1, 16
- bl sub_8046200
+ bl GetHPBarLevel
ldr r1, [r7]
adds r1, 0x6F
adds r1, r6
@@ -6539,7 +6480,7 @@ sub_804B128: @ 804B128
ldrh r0, [r0]
str r0, [sp, 0xC]
add r0, sp, 0x10
- bl sub_8040F34
+ bl DoBgAffineSet
ldr r1, _0804B1B8 @ =REG_BG2PA
add r0, sp, 0x10
ldrh r0, [r0]
@@ -6805,7 +6746,7 @@ _0804B330:
str r5, [sp, 0x4]
mov r4, r9
str r4, [sp, 0x8]
- bl sub_800D334
+ bl HandleLoadSpecialPokePic
mov r0, r10
bl sub_8040990
bl LoadCompressedObjectPalette
@@ -7560,10 +7501,10 @@ sub_804BA18: @ 804BA18
lsrs r4, 16
adds r0, r4, 0
movs r1, 0x2
- bl sub_8090D90
+ bl GetNationalPokedexFlag
adds r0, r4, 0
movs r1, 0x3
- bl sub_8090D90
+ bl GetNationalPokedexFlag
_0804BA5A:
pop {r4}
pop {r0}
@@ -7591,7 +7532,7 @@ sub_804BA64: @ 804BA64
lsls r0, 8
cmp r1, r0
bne _0804BA8C
- bl sub_80690F0
+ bl EnableNationalPokedex
_0804BA8C:
pop {r0}
bx r0
@@ -7639,7 +7580,7 @@ sub_804BA94: @ 804BA94
lsls r0, 2
ldr r1, _0804BB68 @ =gSaveBlock1 + 0x2B4C
adds r0, r1
- bl sub_80A2B40
+ bl ClearMailStruct
_0804BAE8:
ldr r4, _0804BB6C @ =gUnknown_03004828
ldr r0, [r4]
@@ -7678,7 +7619,7 @@ _0804BB28:
ldr r0, _0804BB70 @ =gUnknown_02029700
adds r1, r0
adds r0, r7, 0
- bl sub_80A2D88
+ bl GiveMailToMon2
_0804BB3E:
mov r0, r9
bl sub_804BA18
@@ -10676,11 +10617,11 @@ _0804D5A4: .4byte 0x0000043c
_0804D5A8:
movs r0, 0x4
strb r0, [r1]
- ldr r1, _0804D5B4 @ =gUnknown_3001BB4
+ ldr r1, _0804D5B4 @ =gSoftResetDisabled
movs r0, 0x1
b _0804D612
.align 2, 0
-_0804D5B4: .4byte gUnknown_3001BB4
+_0804D5B4: .4byte gSoftResetDisabled
_0804D5B8:
ldr r0, _0804D5F4 @ =gUnknown_03005E94
ldr r1, _0804D5F8 @ =sub_804DC88
@@ -11262,7 +11203,7 @@ sub_804D948: @ 804D948
ldrh r0, [r5, 0x28]
cmp r0, 0
beq _0804DAC0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0804DAB4
@@ -11309,52 +11250,7 @@ _0804DAC0:
_0804DAD0: .4byte gEnemyParty
thumb_func_end sub_804D948
- thumb_func_start sub_804DAD4
-sub_804DAD4: @ 804DAD4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r2, _0804DB28 @ =gIngameTradeMail
- adds r0, r5, 0
- adds r0, 0x2A
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- adds r1, r4, 0
- movs r3, 0x8
-_0804DAEE:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _0804DAEE
- adds r0, r4, 0
- adds r0, 0x12
- adds r1, r5, 0
- adds r1, 0x2B
- bl StringCopy
- ldr r1, [r5, 0x18]
- lsrs r0, r1, 24
- strb r0, [r4, 0x1A]
- lsrs r0, r1, 16
- strb r0, [r4, 0x1B]
- lsrs r0, r1, 8
- strb r0, [r4, 0x1C]
- strb r1, [r4, 0x1D]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x1E]
- ldrh r0, [r5, 0x28]
- strh r0, [r4, 0x20]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804DB28: .4byte gIngameTradeMail
- thumb_func_end sub_804DAD4
+.section .text.sub_804DB2C
thumb_func_start sub_804DB2C
sub_804DB2C: @ 804DB2C
@@ -11767,7 +11663,7 @@ _0804DF50: .4byte gSystemText_Saving
_0804DF54:
bl SetSecretBase2Field_9_AndHideBG
movs r0, 0x15
- bl sav12_xor_increment
+ bl IncrementGameStat
bl sub_8125D80
ldr r1, _0804DF74 @ =gMain
ldr r2, _0804DF78 @ =0x0000043c
@@ -11886,7 +11782,7 @@ _0804E04C:
cmp r0, 0
beq _0804E11A
bl sub_8125E04
- ldr r1, _0804E06C @ =gUnknown_3001BB4
+ ldr r1, _0804E06C @ =gSoftResetDisabled
movs r0, 0
strb r0, [r1]
ldr r0, _0804E070 @ =gMain
@@ -11896,7 +11792,7 @@ _0804E04C:
strb r1, [r0]
b _0804E11A
.align 2, 0
-_0804E06C: .4byte gUnknown_3001BB4
+_0804E06C: .4byte gSoftResetDisabled
_0804E070: .4byte gMain
_0804E074: .4byte 0x0000043c
_0804E078:
@@ -12051,7 +11947,7 @@ sub_804E1A0: @ 804E1A0
bne _0804E1C4
ldr r0, _0804E1D0 @ =sub_804B790
bl SetMainCallback2
- ldr r1, _0804E1D4 @ =gUnknown_0300485C
+ ldr r1, _0804E1D4 @ =gFieldCallback
ldr r0, _0804E1D8 @ =sub_8080990
str r0, [r1]
adds r0, r4, 0
@@ -12063,7 +11959,7 @@ _0804E1C4:
.align 2, 0
_0804E1CC: .4byte gPaletteFade
_0804E1D0: .4byte sub_804B790
-_0804E1D4: .4byte gUnknown_0300485C
+_0804E1D4: .4byte gFieldCallback
_0804E1D8: .4byte sub_8080990
thumb_func_end sub_804E1A0
diff --git a/asm/trader.s b/asm/trader.s
index be3627e90..3bda1d8dc 100644
--- a/asm/trader.s
+++ b/asm/trader.s
@@ -290,7 +290,7 @@ _08109B54:
ldr r0, _08109B78 @ =gSpecialVar_0x8004
strh r1, [r0]
_08109B58:
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0x1
movs r2, 0xC
@@ -509,7 +509,7 @@ sub_8109D04: @ 8109D04
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x1D
@@ -581,7 +581,7 @@ sub_8109DAC: @ 8109DAC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8072DEC
+ bl HandleDestroyMenuCursors
movs r0, 0
movs r1, 0
movs r2, 0x1D
diff --git a/asm/tv.s b/asm/tv.s
deleted file mode 100644
index f30663f93..000000000
--- a/asm/tv.s
+++ /dev/null
@@ -1,8977 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80BD7A8
-sub_80BD7A8: @ 80BD7A8
- push {r4-r7,lr}
- movs r3, 0
- ldr r6, _080BD7F0 @ =gSaveBlock1
- movs r4, 0
- ldr r0, _080BD7F4 @ =0x0000273a
- adds r5, r6, r0
-_080BD7B4:
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- adds r1, r2, r6
- ldr r7, _080BD7F8 @ =0x00002738
- adds r0, r1, r7
- strb r4, [r0]
- ldr r0, _080BD7FC @ =0x00002739
- adds r1, r0
- strb r4, [r1]
- movs r1, 0
- adds r3, 0x1
-_080BD7CC:
- adds r0, r1, r2
- adds r0, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x21
- bls _080BD7CC
- lsls r0, r3, 24
- lsrs r3, r0, 24
- cmp r3, 0x18
- bls _080BD7B4
- bl sub_80BEBF4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD7F0: .4byte gSaveBlock1
-_080BD7F4: .4byte 0x0000273a
-_080BD7F8: .4byte 0x00002738
-_080BD7FC: .4byte 0x00002739
- thumb_func_end sub_80BD7A8
-
- thumb_func_start special_0x44
-special_0x44: @ 80BD800
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r4, 0x5
- ldr r1, _080BD874 @ =gSaveBlock1
- ldr r2, _080BD878 @ =0x000027ec
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BD834
- adds r2, r1, 0
- ldr r1, _080BD87C @ =0x00002738
-_080BD81A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x17
- bhi _080BD834
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BD81A
-_080BD834:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- ldr r7, _080BD874 @ =gSaveBlock1
- ldr r0, _080BD87C @ =0x00002738
- adds r0, r7
- mov r9, r0
-_080BD850:
- lsls r0, r4, 3
- adds r0, r4
- lsls r6, r0, 2
- adds r5, r6, r7
- ldr r1, _080BD87C @ =0x00002738
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_80BFB54
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _080BD884
- ldr r2, _080BD880 @ =0x00002739
- adds r0, r5, r2
- ldrb r0, [r0]
- b _080BD890
- .align 2, 0
-_080BD874: .4byte gSaveBlock1
-_080BD878: .4byte 0x000027ec
-_080BD87C: .4byte 0x00002738
-_080BD880: .4byte 0x00002739
-_080BD884:
- mov r0, r9
- adds r1, r6, r0
- ldrh r0, [r1, 0x16]
- cmp r0, 0
- bne _080BD898
- ldrb r0, [r1, 0x1]
-_080BD890:
- cmp r0, 0x1
- bne _080BD898
- adds r0, r4, 0
- b _080BD8AC
-_080BD898:
- cmp r4, 0
- bne _080BD8A0
- movs r4, 0x17
- b _080BD8A6
-_080BD8A0:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080BD8A6:
- cmp r4, r8
- bne _080BD850
- movs r0, 0xFF
-_080BD8AC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end special_0x44
-
- thumb_func_start sub_80BD8B8
-sub_80BD8B8: @ 80BD8B8
- push {lr}
- bl special_0x44
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- bne _080BD8CA
- movs r0, 0xFF
- b _080BD902
-_080BD8CA:
- ldr r2, _080BD8F4 @ =gSaveBlock1
- ldr r3, _080BD8F8 @ =0x00002afc
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _080BD900
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r2, _080BD8FC @ =0x00002738
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _080BD900
- bl sub_80BDA30
- lsls r0, 24
- lsrs r0, 24
- b _080BD902
- .align 2, 0
-_080BD8F4: .4byte gSaveBlock1
-_080BD8F8: .4byte 0x00002afc
-_080BD8FC: .4byte 0x00002738
-_080BD900:
- adds r0, r1, 0
-_080BD902:
- pop {r1}
- bx r1
- thumb_func_end sub_80BD8B8
-
- thumb_func_start UpdateTVScreensOnMap
-UpdateTVScreensOnMap: @ 80BD908
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, _080BD938 @ =0x00000831
- bl FlagSet
- bl CheckForBigMovieOrEmergencyNewsOnTV
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BD92C
- cmp r0, 0x2
- beq _080BD97E
- ldr r0, _080BD93C @ =gSaveBlock1
- ldrh r0, [r0, 0x4]
- cmp r0, 0xD
- bne _080BD940
-_080BD92C:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl SetTVMetatilesOnMap
- b _080BD97E
- .align 2, 0
-_080BD938: .4byte 0x00000831
-_080BD93C: .4byte gSaveBlock1
-_080BD940:
- ldr r0, _080BD984 @ =0x00000832
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080BD97E
- bl sub_80BD8B8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080BD96E
- bl sub_80BECA0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080BD96E
- bl IsTVShowInSearchOfTrainersAiring
- lsls r0, 24
- cmp r0, 0
- beq _080BD97E
-_080BD96E:
- ldr r0, _080BD988 @ =0x00000831
- bl FlagReset
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl SetTVMetatilesOnMap
-_080BD97E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD984: .4byte 0x00000832
-_080BD988: .4byte 0x00000831
- thumb_func_end UpdateTVScreensOnMap
-
- thumb_func_start SetTVMetatilesOnMap
-SetTVMetatilesOnMap: @ 80BD98C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- movs r5, 0
- cmp r5, r10
- bge _080BD9E0
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- mov r8, r2
- mov r1, r8
- orrs r1, r0
- mov r8, r1
-_080BD9B2:
- movs r4, 0
- adds r7, r5, 0x1
- cmp r4, r9
- bge _080BD9DA
- mov r0, r8
- lsls r6, r0, 16
-_080BD9BE:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- cmp r0, 0x86
- bne _080BD9D4
- adds r0, r4, 0
- adds r1, r5, 0
- lsrs r2, r6, 16
- bl MapGridSetMetatileIdAt
-_080BD9D4:
- adds r4, 0x1
- cmp r4, r9
- blt _080BD9BE
-_080BD9DA:
- adds r5, r7, 0
- cmp r5, r10
- blt _080BD9B2
-_080BD9E0:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end SetTVMetatilesOnMap
-
- thumb_func_start TurnOffTVScreen
-TurnOffTVScreen: @ 80BD9F0
- push {lr}
- ldr r1, _080BDA08 @ =gUnknown_03004870
- ldr r0, [r1]
- ldr r1, [r1, 0x4]
- movs r2, 0x2
- bl SetTVMetatilesOnMap
- bl DrawWholeMapView
- pop {r0}
- bx r0
- .align 2, 0
-_080BDA08: .4byte gUnknown_03004870
- thumb_func_end TurnOffTVScreen
-
- thumb_func_start sub_80BDA0C
-sub_80BDA0C: @ 80BDA0C
- ldr r2, _080BDA24 @ =gSaveBlock1
- ldr r0, _080BDA28 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080BDA2C @ =0x00002738
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080BDA24: .4byte gSaveBlock1
-_080BDA28: .4byte gSpecialVar_0x8004
-_080BDA2C: .4byte 0x00002738
- thumb_func_end sub_80BDA0C
-
- thumb_func_start sub_80BDA30
-sub_80BDA30: @ 80BDA30
- push {r4,lr}
- movs r2, 0
- ldr r3, _080BDA5C @ =gSaveBlock1
-_080BDA36:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r3
- ldr r4, _080BDA60 @ =0x00002738
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BDA64
- cmp r0, 0x29
- beq _080BDA64
- adds r4, 0x1
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080BDA64
- adds r0, r2, 0
- b _080BDA70
- .align 2, 0
-_080BDA5C: .4byte gSaveBlock1
-_080BDA60: .4byte 0x00002738
-_080BDA64:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x17
- bls _080BDA36
- movs r0, 0xFF
-_080BDA70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BDA30
-
- thumb_func_start special_0x4a
-special_0x4a: @ 80BDA78
- push {lr}
- ldr r2, _080BDAA4 @ =gSpecialVar_0x8004
- ldrh r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BDAA8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _080BDAAC
- movs r3, 0xF1
- lsls r3, 2
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _080BDAAC
- bl sub_80BDA30
- lsls r0, 24
- lsrs r0, 24
- b _080BDAAE
- .align 2, 0
-_080BDAA4: .4byte gSpecialVar_0x8004
-_080BDAA8: .4byte gSaveBlock1 + 0x2738
-_080BDAAC:
- ldrb r0, [r2]
-_080BDAAE:
- pop {r1}
- bx r1
- thumb_func_end special_0x4a
-
- thumb_func_start sub_80BDAB4
-sub_80BDAB4: @ 80BDAB4
- push {r4,lr}
- ldr r2, _080BDAF8 @ =gSaveBlock1
- ldr r1, _080BDAFC @ =0x00002b10
- adds r0, r2, r1
- movs r3, 0
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080BDB00 @ =0x00002b12
- adds r0, r2, r4
- strh r1, [r0]
- adds r4, 0x2
- adds r0, r2, r4
- strh r1, [r0]
- ldr r0, _080BDB04 @ =0x00002b16
- adds r1, r2, r0
- ldr r0, _080BDB08 @ =0x0000ffff
- strh r0, [r1]
- adds r4, 0x6
- adds r1, r2, r4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080BDB0C @ =0x00002b1b
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080BDB10 @ =0x00002b18
- adds r0, r2, r1
- strb r3, [r0]
- subs r4, 0x1
- adds r2, r4
- strb r3, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDAF8: .4byte gSaveBlock1
-_080BDAFC: .4byte 0x00002b10
-_080BDB00: .4byte 0x00002b12
-_080BDB04: .4byte 0x00002b16
-_080BDB08: .4byte 0x0000ffff
-_080BDB0C: .4byte 0x00002b1b
-_080BDB10: .4byte 0x00002b18
- thumb_func_end sub_80BDAB4
-
- thumb_func_start GabbyAndTyBeforeInterview
-GabbyAndTyBeforeInterview: @ 80BDB14
- push {r4,r5,lr}
- ldr r2, _080BDB68 @ =gSaveBlock1
- ldr r3, _080BDB6C @ =gUnknown_030042E0
- ldrh r1, [r3, 0x6]
- ldr r4, _080BDB70 @ =0x00002b10
- adds r0, r2, r4
- strh r1, [r0]
- ldrh r1, [r3, 0x26]
- adds r4, 0x2
- adds r0, r2, r4
- strh r1, [r0]
- ldrh r1, [r3, 0x22]
- adds r4, 0x2
- adds r0, r2, r4
- strh r1, [r0]
- ldr r0, _080BDB74 @ =0x00002b19
- adds r4, r2, r0
- ldrb r1, [r4]
- adds r0, r1, 0
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _080BDB44
- adds r0, r1, 0x1
- strb r0, [r4]
-_080BDB44:
- ldrb r0, [r3, 0x5]
- lsls r0, 31
- ldr r1, _080BDB78 @ =0x00002b1a
- adds r4, r5, r1
- lsrs r0, 31
- ldrb r1, [r4]
- movs r2, 0x2
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r4]
- ldrb r0, [r3]
- cmp r0, 0
- beq _080BDB7C
- movs r0, 0x2
- orrs r2, r0
- b _080BDB82
- .align 2, 0
-_080BDB68: .4byte gSaveBlock1
-_080BDB6C: .4byte gUnknown_030042E0
-_080BDB70: .4byte 0x00002b10
-_080BDB74: .4byte 0x00002b19
-_080BDB78: .4byte 0x00002b1a
-_080BDB7C:
- movs r0, 0x3
- negs r0, r0
- ands r2, r0
-_080BDB82:
- strb r2, [r4]
- ldrb r0, [r3, 0x3]
- cmp r0, 0
- beq _080BDB9C
- ldr r4, _080BDB98 @ =0x00002b1a
- adds r0, r5, r4
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _080BDBAA
- .align 2, 0
-_080BDB98: .4byte 0x00002b1a
-_080BDB9C:
- ldr r0, _080BDBDC @ =0x00002b1a
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080BDBAA:
- ldrb r1, [r3, 0x5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080BDBE0
- movs r1, 0
- adds r0, r3, 0
- adds r0, 0x36
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BDBE0
-_080BDBC0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xA
- bhi _080BDBEC
- adds r0, r3, 0
- adds r0, 0x36
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BDBC0
- ldr r4, _080BDBDC @ =0x00002b1a
- adds r0, r5, r4
- b _080BDBE4
- .align 2, 0
-_080BDBDC: .4byte 0x00002b1a
-_080BDBE0:
- ldr r1, _080BDC08 @ =0x00002b1a
- adds r0, r5, r1
-_080BDBE4:
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_080BDBEC:
- bl TakeTVShowInSearchOfTrainersOffTheAir
- ldr r0, _080BDC0C @ =gSaveBlock1
- ldr r4, _080BDC10 @ =0x00002b14
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BDC02
- movs r0, 0x1
- bl FlagSet
-_080BDC02:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDC08: .4byte 0x00002b1a
-_080BDC0C: .4byte gSaveBlock1
-_080BDC10: .4byte 0x00002b14
- thumb_func_end GabbyAndTyBeforeInterview
-
- thumb_func_start sub_80BDC14
-sub_80BDC14: @ 80BDC14
- push {r4-r6,lr}
- ldr r4, _080BDC70 @ =gSaveBlock1
- ldr r0, _080BDC74 @ =0x00002b1a
- adds r6, r4, r0
- ldrb r3, [r6]
- lsls r1, r3, 31
- adds r0, 0x1
- adds r5, r4, r0
- lsrs r1, 31
- ldrb r2, [r5]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- movs r1, 0x2
- ands r1, r3
- movs r2, 0x3
- negs r2, r2
- ands r0, r2
- orrs r0, r1
- movs r1, 0x4
- ands r1, r3
- subs r2, 0x2
- ands r0, r2
- orrs r0, r1
- movs r1, 0x8
- ands r1, r3
- subs r2, 0x4
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- movs r0, 0x10
- orrs r3, r0
- strb r3, [r6]
- ldr r0, _080BDC78 @ =gMapHeader
- ldrb r0, [r0, 0x14]
- ldr r1, _080BDC7C @ =0x00002b18
- adds r4, r1
- strb r0, [r4]
- movs r0, 0x6
- bl sav12_xor_increment
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDC70: .4byte gSaveBlock1
-_080BDC74: .4byte 0x00002b1a
-_080BDC78: .4byte gMapHeader
-_080BDC7C: .4byte 0x00002b18
- thumb_func_end sub_80BDC14
-
- thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir
-TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80
- ldr r0, _080BDC94 @ =gSaveBlock1
- ldr r1, _080BDC98 @ =0x00002b1a
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080BDC94: .4byte gSaveBlock1
-_080BDC98: .4byte 0x00002b1a
- thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir
-
- thumb_func_start GabbyAndTyGetBattleNum
-GabbyAndTyGetBattleNum: @ 80BDC9C
- push {lr}
- ldr r0, _080BDCBC @ =gSaveBlock1
- ldr r2, _080BDCC0 @ =0x00002b19
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x5
- bls _080BDCB8
- ldrb r0, [r1]
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x6
- lsls r0, 24
- lsrs r0, 24
-_080BDCB8:
- pop {r1}
- bx r1
- .align 2, 0
-_080BDCBC: .4byte gSaveBlock1
-_080BDCC0: .4byte 0x00002b19
- thumb_func_end GabbyAndTyGetBattleNum
-
- thumb_func_start IsTVShowInSearchOfTrainersAiring
-IsTVShowInSearchOfTrainersAiring: @ 80BDCC4
- ldr r0, _080BDCD4 @ =gSaveBlock1
- ldr r1, _080BDCD8 @ =0x00002b1a
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 31
- bx lr
- .align 2, 0
-_080BDCD4: .4byte gSaveBlock1
-_080BDCD8: .4byte 0x00002b1a
- thumb_func_end IsTVShowInSearchOfTrainersAiring
-
- thumb_func_start GabbyAndTyGetLastQuote
-GabbyAndTyGetLastQuote: @ 80BDCDC
- push {r4,r5,lr}
- ldr r0, _080BDD00 @ =gSaveBlock1
- ldr r1, _080BDD04 @ =0x00002b16
- adds r4, r0, r1
- ldrh r0, [r4]
- ldr r5, _080BDD08 @ =0x0000ffff
- cmp r0, r5
- beq _080BDD10
- ldr r0, _080BDD0C @ =gStringVar1
- ldrh r1, [r4]
- bl sub_80EB3FC
- ldrh r1, [r4]
- adds r0, r5, 0
- orrs r0, r1
- strh r0, [r4]
- movs r0, 0x1
- b _080BDD12
- .align 2, 0
-_080BDD00: .4byte gSaveBlock1
-_080BDD04: .4byte 0x00002b16
-_080BDD08: .4byte 0x0000ffff
-_080BDD0C: .4byte gStringVar1
-_080BDD10:
- movs r0, 0
-_080BDD12:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GabbyAndTyGetLastQuote
-
- thumb_func_start sub_80BDD18
-sub_80BDD18: @ 80BDD18
- push {lr}
- ldr r0, _080BDD30 @ =gSaveBlock1
- ldr r1, _080BDD34 @ =0x00002b1b
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080BDD38
- movs r0, 0x1
- b _080BDD5E
- .align 2, 0
-_080BDD30: .4byte gSaveBlock1
-_080BDD34: .4byte 0x00002b1b
-_080BDD38:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080BDD44
- movs r0, 0x2
- b _080BDD5E
-_080BDD44:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080BDD50
- movs r0, 0x3
- b _080BDD5E
-_080BDD50:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080BDD5C
- movs r0, 0
- b _080BDD5E
-_080BDD5C:
- movs r0, 0x4
-_080BDD5E:
- pop {r1}
- bx r1
- thumb_func_end sub_80BDD18
-
- thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds
-GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80BDD64
- push {lr}
- bl GabbyAndTyGetBattleNum
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x7
- bhi _080BDE3C
- lsls r0, 2
- ldr r1, _080BDD80 @ =_080BDD84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BDD80: .4byte _080BDD84
- .align 2, 0
-_080BDD84:
- .4byte _080BDDA4
- .4byte _080BDDB8
- .4byte _080BDDCC
- .4byte _080BDDE0
- .4byte _080BDDF4
- .4byte _080BDE08
- .4byte _080BDE1C
- .4byte _080BDE30
-_080BDDA4:
- ldr r1, _080BDDB0 @ =gSpecialVar_0x8004
- movs r0, 0xE
- strh r0, [r1]
- ldr r1, _080BDDB4 @ =gSpecialVar_0x8005
- movs r0, 0xD
- b _080BDE3A
- .align 2, 0
-_080BDDB0: .4byte gSpecialVar_0x8004
-_080BDDB4: .4byte gSpecialVar_0x8005
-_080BDDB8:
- ldr r1, _080BDDC4 @ =gSpecialVar_0x8004
- movs r0, 0x5
- strh r0, [r1]
- ldr r1, _080BDDC8 @ =gSpecialVar_0x8005
- movs r0, 0x6
- b _080BDE3A
- .align 2, 0
-_080BDDC4: .4byte gSpecialVar_0x8004
-_080BDDC8: .4byte gSpecialVar_0x8005
-_080BDDCC:
- ldr r1, _080BDDD8 @ =gSpecialVar_0x8004
- movs r0, 0x12
- strh r0, [r1]
- ldr r1, _080BDDDC @ =gSpecialVar_0x8005
- movs r0, 0x11
- b _080BDE3A
- .align 2, 0
-_080BDDD8: .4byte gSpecialVar_0x8004
-_080BDDDC: .4byte gSpecialVar_0x8005
-_080BDDE0:
- ldr r1, _080BDDEC @ =gSpecialVar_0x8004
- movs r0, 0x15
- strh r0, [r1]
- ldr r1, _080BDDF0 @ =gSpecialVar_0x8005
- movs r0, 0x16
- b _080BDE3A
- .align 2, 0
-_080BDDEC: .4byte gSpecialVar_0x8004
-_080BDDF0: .4byte gSpecialVar_0x8005
-_080BDDF4:
- ldr r1, _080BDE00 @ =gSpecialVar_0x8004
- movs r0, 0x8
- strh r0, [r1]
- ldr r1, _080BDE04 @ =gSpecialVar_0x8005
- movs r0, 0x9
- b _080BDE3A
- .align 2, 0
-_080BDE00: .4byte gSpecialVar_0x8004
-_080BDE04: .4byte gSpecialVar_0x8005
-_080BDE08:
- ldr r1, _080BDE14 @ =gSpecialVar_0x8004
- movs r0, 0x13
- strh r0, [r1]
- ldr r1, _080BDE18 @ =gSpecialVar_0x8005
- movs r0, 0x14
- b _080BDE3A
- .align 2, 0
-_080BDE14: .4byte gSpecialVar_0x8004
-_080BDE18: .4byte gSpecialVar_0x8005
-_080BDE1C:
- ldr r1, _080BDE28 @ =gSpecialVar_0x8004
- movs r0, 0x17
- strh r0, [r1]
- ldr r1, _080BDE2C @ =gSpecialVar_0x8005
- movs r0, 0x18
- b _080BDE3A
- .align 2, 0
-_080BDE28: .4byte gSpecialVar_0x8004
-_080BDE2C: .4byte gSpecialVar_0x8005
-_080BDE30:
- ldr r1, _080BDE40 @ =gSpecialVar_0x8004
- movs r0, 0xA
- strh r0, [r1]
- ldr r1, _080BDE44 @ =gSpecialVar_0x8005
- movs r0, 0xB
-_080BDE3A:
- strh r0, [r1]
-_080BDE3C:
- pop {r0}
- bx r0
- .align 2, 0
-_080BDE40: .4byte gSpecialVar_0x8004
-_080BDE44: .4byte gSpecialVar_0x8005
- thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds
-
- thumb_func_start sub_80BDE48
-sub_80BDE48: @ 80BDE48
- push {lr}
- ldr r0, _080BDE60 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x6
- bhi _080BDEA6
- lsls r0, 2
- ldr r1, _080BDE64 @ =_080BDE68
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BDE60: .4byte gSpecialVar_0x8005
-_080BDE64: .4byte _080BDE68
- .align 2, 0
-_080BDE68:
- .4byte _080BDE84
- .4byte _080BDE8A
- .4byte _080BDE90
- .4byte _080BDE96
- .4byte _080BDEA6
- .4byte _080BDE9C
- .4byte _080BDEA2
-_080BDE84:
- bl sub_80BE5FC
- b _080BDEA6
-_080BDE8A:
- bl sub_80BE65C
- b _080BDEA6
-_080BDE90:
- bl sub_80BE6A0
- b _080BDEA6
-_080BDE96:
- bl nullsub_21
- b _080BDEA6
-_080BDE9C:
- bl sub_80BE188
- b _080BDEA6
-_080BDEA2:
- bl sub_80BE320
-_080BDEA6:
- pop {r0}
- bx r0
- thumb_func_end sub_80BDE48
-
- thumb_func_start sub_80BDEAC
-sub_80BDEAC: @ 80BDEAC
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2
- ldrb r0, [r1]
- cmp r0, 0xFC
- bne _080BDEC0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x15
- bne _080BDEC0
- movs r2, 0x1
-_080BDEC0:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80BDEAC
-
- thumb_func_start sub_80BDEC8
-sub_80BDEC8: @ 80BDEC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- bl sub_80BEB20
- bl sub_80BE778
- ldr r5, _080BDEE8 @ =gUnknown_030042E0
- ldrh r0, [r5, 0x28]
- cmp r0, 0
- bne _080BDEEC
- bl sub_80BE074
- b _080BE012
- .align 2, 0
-_080BDEE8: .4byte gUnknown_030042E0
-_080BDEEC:
- bl sub_80BE028
- ldr r0, _080BDF98 @ =0x0000ffff
- bl sub_80BF77C
- lsls r0, 24
- cmp r0, 0
- beq _080BDEFE
- b _080BE012
-_080BDEFE:
- ldrh r1, [r5, 0x28]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080BDF9C @ =gSpeciesNames
- adds r0, r1
- adds r1, r5, 0
- adds r1, 0x2A
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _080BDF16
- b _080BE012
-_080BDF16:
- ldr r0, _080BDFA0 @ =gSaveBlock1 + 0x2738
- bl sub_80BF74C
- ldr r1, _080BDFA4 @ =gUnknown_03005D38
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE012
- movs r0, 0x15
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BE012
- movs r2, 0
- adds r7, r5, 0
- adds r1, r7, 0
- adds r1, 0x36
-_080BDF42:
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xA
- bls _080BDF42
- cmp r4, 0
- bne _080BDF64
- ldrb r1, [r7, 0x5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BE012
-_080BDF64:
- movs r4, 0
- ldr r0, _080BDFA4 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BDFA0 @ =gSaveBlock1 + 0x2738
- adds r5, r0, r1
- movs r0, 0x15
- strb r0, [r5]
- strb r4, [r5, 0x1]
- ldrb r1, [r7, 0x5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BDFAC
- movs r4, 0x1
- movs r0, 0x1
- adds r3, r5, 0
- adds r3, 0x13
- ldr r1, _080BDFA8 @ =gSaveBlock2
- mov r8, r1
- adds r6, r5, 0x4
- b _080BDFDE
- .align 2, 0
-_080BDF98: .4byte 0x0000ffff
-_080BDF9C: .4byte gSpeciesNames
-_080BDFA0: .4byte gSaveBlock1 + 0x2738
-_080BDFA4: .4byte gUnknown_03005D38
-_080BDFA8: .4byte gSaveBlock2
-_080BDFAC:
- movs r2, 0
- ldr r0, _080BE01C @ =gUnknown_02024C04
- mov r12, r0
- adds r3, r5, 0
- adds r3, 0x13
- ldr r1, _080BE020 @ =gSaveBlock2
- mov r8, r1
- adds r6, r5, 0x4
- adds r1, r7, 0
- adds r1, 0x36
-_080BDFC0:
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xA
- bls _080BDFC0
- cmp r4, 0xFF
- bls _080BDFDA
- movs r4, 0xFF
-_080BDFDA:
- mov r1, r12
- ldrh r0, [r1]
-_080BDFDE:
- strb r4, [r5, 0x12]
- strb r0, [r5, 0xF]
- adds r0, r3, 0
- mov r1, r8
- bl StringCopy
- ldr r4, _080BE024 @ =gUnknown_0300430A
- adds r0, r6, 0
- adds r1, r4, 0
- bl StringCopy
- subs r4, 0x2A
- ldrh r0, [r4, 0x28]
- strh r0, [r5, 0x10]
- adds r0, r5, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r5, 0x2]
- adds r0, r6, 0
- bl sub_80BDEAC
- strb r0, [r5, 0x3]
- adds r0, r6, 0
- bl StripExtCtrlCodes
-_080BE012:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE01C: .4byte gUnknown_02024C04
-_080BE020: .4byte gSaveBlock2
-_080BE024: .4byte gUnknown_0300430A
- thumb_func_end sub_80BDEC8
-
- thumb_func_start sub_80BE028
-sub_80BE028: @ 80BE028
- push {r4,lr}
- ldr r4, _080BE064 @ =gSaveBlock1 + 0x2A98
- ldrb r0, [r4]
- cmp r0, 0x19
- beq _080BE048
- ldr r1, _080BE068 @ =0xfffffca0
- adds r0, r4, r1
- movs r1, 0x18
- bl sub_80BF55C
- movs r0, 0x5
- bl sub_8053108
- strh r0, [r4, 0x6]
- movs r0, 0x19
- strb r0, [r4]
-_080BE048:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- ldr r1, _080BE06C @ =gUnknown_030042E0
- ldrh r0, [r1, 0x28]
- strh r0, [r4, 0x4]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x8]
- ldr r0, _080BE070 @ =gMapHeader
- ldrb r0, [r0, 0x14]
- strb r0, [r4, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE064: .4byte gSaveBlock1 + 0x2A98
-_080BE068: .4byte 0xfffffca0
-_080BE06C: .4byte gUnknown_030042E0
-_080BE070: .4byte gMapHeader
- thumb_func_end sub_80BE028
-
- thumb_func_start sub_80BE074
-sub_80BE074: @ 80BE074
- push {r4-r7,lr}
- ldr r0, _080BE118 @ =0x0000ffff
- bl sub_80BF77C
- lsls r0, 24
- cmp r0, 0
- bne _080BE112
- movs r1, 0
- movs r5, 0
- ldr r2, _080BE11C @ =gUnknown_03004316
-_080BE088:
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xA
- bls _080BE088
- cmp r5, 0xFF
- bls _080BE0A2
- movs r5, 0xFF
-_080BE0A2:
- cmp r5, 0x2
- bls _080BE112
- ldr r7, _080BE120 @ =gUnknown_02024D26
- ldrb r0, [r7]
- cmp r0, 0x1
- bne _080BE112
- ldr r6, _080BE124 @ =gSaveBlock1 + 0x2738
- adds r0, r6, 0
- bl sub_80BF74C
- ldr r4, _080BE128 @ =gUnknown_03005D38
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE112
- movs r0, 0x17
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BE112
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r6
- movs r1, 0
- movs r0, 0x17
- strb r0, [r4]
- strb r1, [r4, 0x1]
- ldr r1, _080BE12C @ =gUnknown_030042E0
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0xC]
- ldrh r0, [r1, 0x20]
- strh r0, [r4, 0xE]
- strb r5, [r4, 0x10]
- ldrb r0, [r7]
- strb r0, [r4, 0x11]
- ldr r0, _080BE130 @ =gMapHeader
- ldrb r0, [r0, 0x14]
- strb r0, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0x13
- ldr r1, _080BE134 @ =gSaveBlock2
- bl StringCopy
- adds r0, r4, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r4, 0x2]
-_080BE112:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE118: .4byte 0x0000ffff
-_080BE11C: .4byte gUnknown_03004316
-_080BE120: .4byte gUnknown_02024D26
-_080BE124: .4byte gSaveBlock1 + 0x2738
-_080BE128: .4byte gUnknown_03005D38
-_080BE12C: .4byte gUnknown_030042E0
-_080BE130: .4byte gMapHeader
-_080BE134: .4byte gSaveBlock2
- thumb_func_end sub_80BE074
-
- thumb_func_start sub_80BE138
-sub_80BE138: @ 80BE138
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80BFB94
- strb r0, [r4, 0x1E]
- lsrs r2, r0, 8
- strb r2, [r4, 0x1F]
- adds r1, r4, 0
- adds r1, 0x20
- strb r0, [r1]
- adds r1, 0x1
- strb r2, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x23
- strb r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE138
-
- thumb_func_start sub_80BE160
-sub_80BE160: @ 80BE160
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80BFB94
- adds r1, r4, 0
- adds r1, 0x20
- strb r0, [r1]
- lsrs r1, r0, 8
- adds r2, r4, 0
- adds r2, 0x21
- strb r1, [r2]
- adds r2, 0x1
- strb r0, [r2]
- adds r0, r4, 0
- adds r0, 0x23
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE160
-
- thumb_func_start sub_80BE188
-sub_80BE188: @ 80BE188
- push {r4-r6,lr}
- ldr r6, _080BE22C @ =gSaveBlock1 + 0x2A98
- ldrb r1, [r6]
- cmp r1, 0x6
- bne _080BE224
- ldr r0, _080BE230 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r2, _080BE234 @ =0xfffffca0
- adds r0, r6, r2
- adds r4, r0
- strb r1, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- ldrh r0, [r6, 0x2]
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- adds r0, 0x16
- ldr r1, _080BE238 @ =gSaveBlock2
- bl StringCopy
- adds r5, r4, 0
- adds r5, 0x8
- adds r1, r6, 0
- adds r1, 0x8
- adds r0, r5, 0
- bl StringCopy
- ldrb r0, [r6, 0x13]
- lsls r0, 29
- lsrs r0, 29
- ldrb r2, [r4, 0x13]
- movs r3, 0x8
- negs r3, r3
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x13]
- ldrb r2, [r6, 0x13]
- movs r0, 0x18
- ands r0, r2
- movs r2, 0x19
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r4, 0x13]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x14]
- ldrb r0, [r6, 0x13]
- movs r1, 0x60
- ands r1, r0
- movs r0, 0x61
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x13]
- ldrb r1, [r6, 0x13]
- lsls r1, 29
- lsrs r1, 29
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0x13]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0x1F]
- adds r0, r5, 0
- bl StripExtCtrlCodes
-_080BE224:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE22C: .4byte gSaveBlock1 + 0x2A98
-_080BE230: .4byte gUnknown_03005D38
-_080BE234: .4byte 0xfffffca0
-_080BE238: .4byte gSaveBlock2
- thumb_func_end sub_80BE188
-
- thumb_func_start sub_80BE23C
-sub_80BE23C: @ 80BE23C
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r4, _080BE278 @ =gSaveBlock1 + 0x2A98
- bl sub_80BF484
- ldr r0, _080BE27C @ =0xfffffca0
- adds r5, r4, r0
- adds r0, r5, 0
- bl sub_80BF720
- ldr r1, _080BE280 @ =gUnknown_03005D38
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE270
- adds r0, r5, 0
- movs r1, 0x18
- bl sub_80BF55C
- strh r6, [r4, 0x14]
- movs r0, 0x6
- strb r0, [r4]
-_080BE270:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE278: .4byte gSaveBlock1 + 0x2A98
-_080BE27C: .4byte 0xfffffca0
-_080BE280: .4byte gUnknown_03005D38
- thumb_func_end sub_80BE23C
-
- thumb_func_start sub_80BE284
-sub_80BE284: @ 80BE284
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r7, _080BE304 @ =gSaveBlock1 + 0x2A98
- ldr r1, _080BE308 @ =0xfffffca0
- adds r0, r7, r1
- bl sub_80BF720
- ldr r1, _080BE30C @ =gUnknown_03005D38
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE2FE
- movs r3, 0x3
- adds r1, r4, 0
- ands r1, r3
- lsls r1, 5
- ldrb r2, [r7, 0x13]
- movs r0, 0x61
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- ldr r1, _080BE310 @ =gScriptContestCategory
- ldrb r2, [r1]
- movs r1, 0x7
- ands r1, r2
- movs r2, 0x8
- negs r2, r2
- ands r0, r2
- orrs r0, r1
- ldr r1, _080BE314 @ =gScriptContestRank
- ldrb r1, [r1]
- ands r3, r1
- lsls r3, 3
- movs r1, 0x19
- negs r1, r1
- ands r0, r1
- orrs r0, r3
- strb r0, [r7, 0x13]
- ldr r6, _080BE318 @ =gUnknown_02038694
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080BE31C @ =gPlayerParty
- adds r0, r4
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r7, 0x2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- adds r2, r7, 0
- adds r2, 0x8
- movs r1, 0x2
- bl GetMonData
-_080BE2FE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE304: .4byte gSaveBlock1 + 0x2A98
-_080BE308: .4byte 0xfffffca0
-_080BE30C: .4byte gUnknown_03005D38
-_080BE310: .4byte gScriptContestCategory
-_080BE314: .4byte gScriptContestRank
-_080BE318: .4byte gUnknown_02038694
-_080BE31C: .4byte gPlayerParty
- thumb_func_end sub_80BE284
-
- thumb_func_start sub_80BE320
-sub_80BE320: @ 80BE320
- push {r4-r6,lr}
- ldr r0, _080BE384 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BE388 @ =gSaveBlock1 + 0x2738
- adds r6, r0, r1
- movs r0, 0x7
- strb r0, [r6]
- movs r0, 0x1
- strb r0, [r6, 0x1]
- adds r0, r6, 0x2
- ldr r4, _080BE38C @ =gSaveBlock2
- adds r1, r4, 0
- bl StringCopy
- adds r0, r6, 0
- adds r0, 0xC
- ldr r2, _080BE390 @ =0x00000484
- adds r1, r4, r2
- bl StringCopy
- movs r1, 0x90
- lsls r1, 3
- adds r0, r4, r1
- ldrh r0, [r0]
- strh r0, [r6, 0xA]
- ldr r2, _080BE394 @ =0x00000482
- adds r0, r4, r2
- ldrh r0, [r0]
- strh r0, [r6, 0x14]
- movs r0, 0xAF
- lsls r0, 3
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_8135D3C
- strh r0, [r6, 0x16]
- ldr r1, _080BE398 @ =0x00000555
- adds r4, r1
- ldrb r0, [r4]
- strb r0, [r6, 0x1C]
- ldrb r0, [r5]
- cmp r0, 0
- bne _080BE39C
- movs r0, 0x32
- b _080BE39E
- .align 2, 0
-_080BE384: .4byte gUnknown_03005D38
-_080BE388: .4byte gSaveBlock1 + 0x2738
-_080BE38C: .4byte gSaveBlock2
-_080BE390: .4byte 0x00000484
-_080BE394: .4byte 0x00000482
-_080BE398: .4byte 0x00000555
-_080BE39C:
- movs r0, 0x64
-_080BE39E:
- strb r0, [r6, 0x1A]
- ldr r0, _080BE3B8 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- strb r0, [r6, 0x1B]
- adds r0, r6, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r6, 0x1D]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE3B8: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80BE320
-
- thumb_func_start sub_80BE3BC
-sub_80BE3BC: @ 80BE3BC
- push {r4-r7,lr}
- ldr r0, _080BE460 @ =0x00005555
- bl sub_80BF77C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080BE458
- ldr r6, _080BE464 @ =gSaveBlock1 + 0x2738
- adds r0, r6, 0
- bl sub_80BF74C
- ldr r5, _080BE468 @ =gUnknown_03005D38
- strb r0, [r5]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE458
- movs r0, 0x16
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BE458
- bl sub_80BF20C
- ldr r2, _080BE46C @ =gUnknown_02038724
- ldrh r0, [r2, 0x2]
- cmp r0, 0x13
- bls _080BE458
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r6
- movs r0, 0x16
- strb r0, [r5]
- strb r4, [r5, 0x1]
- ldr r0, _080BE470 @ =gMapHeader
- ldrb r0, [r0, 0x14]
- strb r0, [r5, 0x12]
- movs r4, 0
- adds r7, r5, 0x6
- mov r12, r2
- adds r6, r5, 0
- adds r6, 0xC
-_080BE420:
- lsls r2, r4, 1
- adds r3, r7, r2
- lsls r1, r4, 2
- add r1, r12
- ldrh r0, [r1]
- strh r0, [r3]
- adds r2, r6, r2
- ldrh r0, [r1, 0x2]
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _080BE420
- movs r0, 0x1
- bl GetPriceReduction
- strb r0, [r5, 0x2]
- adds r0, r5, 0
- adds r0, 0x13
- ldr r1, _080BE474 @ =gSaveBlock2
- bl StringCopy
- adds r0, r5, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r5, 0x3]
-_080BE458:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE460: .4byte 0x00005555
-_080BE464: .4byte gSaveBlock1 + 0x2738
-_080BE468: .4byte gUnknown_03005D38
-_080BE46C: .4byte gUnknown_02038724
-_080BE470: .4byte gMapHeader
-_080BE474: .4byte gSaveBlock2
- thumb_func_end sub_80BE3BC
-
- thumb_func_start sub_80BE478
-sub_80BE478: @ 80BE478
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl sub_80BF478
- ldr r0, _080BE554 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080BE548
- ldr r0, _080BE558 @ =gSpecialVar_0x8004
- mov r8, r0
- ldrh r0, [r0]
- movs r7, 0x64
- muls r0, r7
- ldr r6, _080BE55C @ =gPlayerParty
- adds r0, r6
- ldr r4, _080BE560 @ =gStringVar1
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- ldr r1, _080BE564 @ =gSaveBlock2
- mov r9, r1
- mov r0, r9
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BE548
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BE548
- ldr r0, _080BE568 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE56C @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r0, 0x5
- strb r0, [r4]
- movs r5, 0x1
- strb r5, [r4, 0x1]
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r7
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- strb r0, [r4, 0x1A]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ands r0, r5
- strb r0, [r4, 0x1B]
- ldrh r0, [r4, 0x2]
- bl sub_80BF674
- strh r0, [r4, 0x1C]
- adds r0, r4, 0
- adds r0, 0xF
- mov r1, r9
- bl StringCopy
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r7
- adds r0, r6
- adds r5, r4, 0x4
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0x1F]
- adds r0, r5, 0
- bl StripExtCtrlCodes
-_080BE548:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE554: .4byte gScriptResult
-_080BE558: .4byte gSpecialVar_0x8004
-_080BE55C: .4byte gPlayerParty
-_080BE560: .4byte gStringVar1
-_080BE564: .4byte gSaveBlock2
-_080BE568: .4byte gUnknown_03005D38
-_080BE56C: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BE478
-
- thumb_func_start StartMassOutbreak
-StartMassOutbreak: @ 80BE570
- push {r4,lr}
- ldr r0, _080BE5F0 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r2, _080BE5F4 @ =gSaveBlock1 + 0x2738
- adds r0, r2
- ldrh r3, [r0, 0xC]
- movs r4, 0xF1
- lsls r4, 2
- adds r1, r2, r4
- strh r3, [r1]
- ldrb r3, [r0, 0x10]
- adds r4, 0x2
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x11]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x14]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x2]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrh r3, [r0, 0xE]
- adds r4, 0x1
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x4]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x6]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x8]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0xA]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrb r3, [r0, 0x3]
- adds r4, 0x2
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r1, [r0, 0x13]
- ldr r3, _080BE5F8 @ =0x000003d5
- adds r0, r2, r3
- strb r1, [r0]
- adds r4, 0x2
- adds r2, r4
- movs r0, 0x2
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE5F0: .4byte gSpecialVar_0x8004
-_080BE5F4: .4byte gSaveBlock1 + 0x2738
-_080BE5F8: .4byte 0x000003d5
- thumb_func_end StartMassOutbreak
-
- thumb_func_start sub_80BE5FC
-sub_80BE5FC: @ 80BE5FC
- push {r4,lr}
- ldr r0, _080BE64C @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE650 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r0, 0x1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, _080BE654 @ =gSaveBlock2
- bl StringCopy
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080BE658 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x18]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE64C: .4byte gUnknown_03005D38
-_080BE650: .4byte gSaveBlock1 + 0x2738
-_080BE654: .4byte gSaveBlock2
-_080BE658: .4byte gPlayerParty
- thumb_func_end sub_80BE5FC
-
- thumb_func_start sub_80BE65C
-sub_80BE65C: @ 80BE65C
- push {r4-r6,lr}
- ldr r0, _080BE694 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE698 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r6, 0
- movs r5, 0x2
- strb r5, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, _080BE69C @ =gSaveBlock2
- bl StringCopy
- strh r6, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- strb r5, [r4, 0x18]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE694: .4byte gUnknown_03005D38
-_080BE698: .4byte gSaveBlock1 + 0x2738
-_080BE69C: .4byte gSaveBlock2
- thumb_func_end sub_80BE65C
-
- thumb_func_start sub_80BE6A0
-sub_80BE6A0: @ 80BE6A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _080BE760 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE764 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r0, 0x3
- strb r0, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _080BE768 @ =gPlayerParty
- adds r0, r6
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsrs r0, 4
- movs r1, 0xF
- ands r0, r1
- ldrb r2, [r4, 0x4]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x4]
- ldr r0, _080BE76C @ =gSpecialVar_0x8007
- ldrb r0, [r0]
- lsls r0, 4
- movs r2, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x4]
- adds r0, r4, 0x5
- ldr r1, _080BE770 @ =gSaveBlock2
- bl StringCopy
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- adds r5, r4, 0
- adds r5, 0x10
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0xD]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0xE]
- adds r0, r5, 0
- bl StripExtCtrlCodes
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE760: .4byte gUnknown_03005D38
-_080BE764: .4byte gSaveBlock1 + 0x2738
-_080BE768: .4byte gPlayerParty
-_080BE76C: .4byte gSpecialVar_0x8007
-_080BE770: .4byte gSaveBlock2
- thumb_func_end sub_80BE6A0
-
- thumb_func_start nullsub_21
-nullsub_21: @ 80BE774
- bx lr
- thumb_func_end nullsub_21
-
- thumb_func_start sub_80BE778
-sub_80BE778: @ 80BE778
- push {r4-r6,lr}
- ldr r0, _080BE83C @ =0x00000804
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080BE836
- movs r1, 0
- ldr r3, _080BE840 @ =gSaveBlock1
- ldr r2, _080BE844 @ =0x00002738
-_080BE78C:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x29
- beq _080BE836
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x17
- bls _080BE78C
- ldr r0, _080BE848 @ =0x00000147
- bl sub_80BF77C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080BE836
- ldr r6, _080BE84C @ =gSaveBlock1 + 0x2738
- adds r0, r6, 0
- bl sub_80BF720
- ldr r4, _080BE850 @ =gUnknown_03005D38
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE836
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r4, r1, 3
- adds r4, r1
- lsls r4, 2
- adds r4, r6
- movs r1, 0x29
- strb r1, [r4]
- movs r3, 0x1
- strb r3, [r4, 0x1]
- ldr r2, _080BE854 @ =gUnknown_083D13F8
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0xA]
- strb r0, [r4, 0x14]
- strb r5, [r4, 0x2]
- strb r5, [r4, 0x3]
- ldrh r0, [r1]
- movs r2, 0
- strh r0, [r4, 0xC]
- strh r5, [r4, 0xE]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x4]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x6]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x8]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0xA]
- ldrb r0, [r1, 0xB]
- strb r0, [r4, 0x10]
- strb r2, [r4, 0x11]
- strb r2, [r4, 0x12]
- movs r0, 0x32
- strb r0, [r4, 0x13]
- strb r2, [r4, 0x15]
- strh r3, [r4, 0x16]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x18]
-_080BE836:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE83C: .4byte 0x00000804
-_080BE840: .4byte gSaveBlock1
-_080BE844: .4byte 0x00002738
-_080BE848: .4byte 0x00000147
-_080BE84C: .4byte gSaveBlock1 + 0x2738
-_080BE850: .4byte gUnknown_03005D38
-_080BE854: .4byte gUnknown_083D13F8
- thumb_func_end sub_80BE778
-
- thumb_func_start EndMassOutbreak
-EndMassOutbreak: @ 80BE858
- push {r4,lr}
- ldr r0, _080BE8B4 @ =gSaveBlock1
- ldr r2, _080BE8B8 @ =0x00002afc
- adds r1, r0, r2
- movs r3, 0
- movs r2, 0
- strh r2, [r1]
- ldr r4, _080BE8BC @ =0x00002afe
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- ldr r1, _080BE8C0 @ =0x00002b0e
- adds r0, r1
- strh r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE8B4: .4byte gSaveBlock1
-_080BE8B8: .4byte 0x00002afc
-_080BE8BC: .4byte 0x00002afe
-_080BE8C0: .4byte 0x00002b0e
- thumb_func_end EndMassOutbreak
-
- thumb_func_start sub_80BE8C4
-sub_80BE8C4: @ 80BE8C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_80BE8EC
- adds r0, r4, 0
- bl UpdateMassOutbreakTimeLeft
- adds r0, r4, 0
- bl sub_80BEE84
- adds r0, r4, 0
- bl sub_80BEA5C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE8C4
-
- thumb_func_start sub_80BE8EC
-sub_80BE8EC: @ 80BE8EC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080BE930 @ =gSaveBlock1
- ldr r2, _080BE934 @ =0x00002afc
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BE94C
- movs r3, 0
- adds r5, r1, 0
- ldr r7, _080BE938 @ =0x00002738
- adds r6, r5, r7
-_080BE906:
- lsls r0, r3, 3
- adds r0, r3
- lsls r2, r0, 2
- adds r1, r2, r5
- ldr r7, _080BE938 @ =0x00002738
- adds r0, r1, r7
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _080BE942
- adds r7, 0x1
- adds r0, r1, r7
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080BE942
- adds r1, r2, r6
- ldrh r0, [r1, 0x16]
- cmp r0, r4
- bcs _080BE93C
- movs r0, 0
- strh r0, [r1, 0x16]
- b _080BE94C
- .align 2, 0
-_080BE930: .4byte gSaveBlock1
-_080BE934: .4byte 0x00002afc
-_080BE938: .4byte 0x00002738
-_080BE93C:
- subs r0, r4
- strh r0, [r1, 0x16]
- b _080BE94C
-_080BE942:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x17
- bls _080BE906
-_080BE94C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE8EC
-
- thumb_func_start UpdateMassOutbreakTimeLeft
-UpdateMassOutbreakTimeLeft: @ 80BE954
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080BE96C @ =gSaveBlock1
- ldr r3, _080BE970 @ =0x00002b0e
- adds r2, r0, r3
- ldrh r0, [r2]
- cmp r0, r1
- bhi _080BE974
- bl EndMassOutbreak
- b _080BE978
- .align 2, 0
-_080BE96C: .4byte gSaveBlock1
-_080BE970: .4byte 0x00002b0e
-_080BE974:
- subs r0, r1
- strh r0, [r2]
-_080BE978:
- pop {r0}
- bx r0
- thumb_func_end UpdateMassOutbreakTimeLeft
-
- thumb_func_start sub_80BE97C
-sub_80BE97C: @ 80BE97C
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- beq _080BE9A4
- ldr r4, _080BE9A0 @ =gUnknown_020387E2
- ldrh r0, [r4]
- lsrs r0, 8
- cmp r0, 0x4
- bls _080BE992
- bl sub_80BE9D4
-_080BE992:
- ldrb r0, [r4]
- strh r0, [r4]
- cmp r0, 0xFF
- beq _080BE9C8
- adds r0, 0x1
- b _080BE9C6
- .align 2, 0
-_080BE9A0: .4byte gUnknown_020387E2
-_080BE9A4:
- ldr r4, _080BE9D0 @ =gUnknown_020387E2
- ldrb r0, [r4]
- cmp r0, 0x4
- bls _080BE9B0
- bl sub_80BE9D4
-_080BE9B0:
- ldrh r0, [r4]
- movs r1, 0xFF
- lsls r1, 8
- ands r1, r0
- strh r1, [r4]
- lsrs r0, r1, 8
- cmp r0, 0xFF
- beq _080BE9C8
- movs r2, 0x80
- lsls r2, 1
- adds r0, r1, r2
-_080BE9C6:
- strh r0, [r4]
-_080BE9C8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE9D0: .4byte gUnknown_020387E2
- thumb_func_end sub_80BE97C
-
- thumb_func_start sub_80BE9D4
-sub_80BE9D4: @ 80BE9D4
- push {r4,r5,lr}
- ldr r5, _080BEA3C @ =gSaveBlock1 + 0x2738
- adds r0, r5, 0
- bl sub_80BF74C
- ldr r4, _080BEA40 @ =gUnknown_03005D38
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BEA36
- movs r0, 0x18
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEA36
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r5
- movs r1, 0
- movs r0, 0x18
- strb r0, [r4]
- strb r1, [r4, 0x1]
- ldr r1, _080BEA44 @ =gUnknown_020387E2
- ldrh r0, [r1]
- strb r0, [r4, 0x2]
- ldrh r0, [r1]
- lsrs r0, 8
- strb r0, [r4, 0x3]
- ldr r0, _080BEA48 @ =gUnknown_020387E0
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- adds r0, 0x13
- ldr r1, _080BEA4C @ =gSaveBlock2
- bl StringCopy
- adds r0, r4, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r4, 0x6]
-_080BEA36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BEA3C: .4byte gSaveBlock1 + 0x2738
-_080BEA40: .4byte gUnknown_03005D38
-_080BEA44: .4byte gUnknown_020387E2
-_080BEA48: .4byte gUnknown_020387E0
-_080BEA4C: .4byte gSaveBlock2
- thumb_func_end sub_80BE9D4
-
- thumb_func_start sub_80BEA50
-sub_80BEA50: @ 80BEA50
- ldr r1, _080BEA58 @ =gUnknown_020387E0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080BEA58: .4byte gUnknown_020387E0
- thumb_func_end sub_80BEA50
-
- thumb_func_start sub_80BEA5C
-sub_80BEA5C: @ 80BEA5C
- push {lr}
- ldr r1, _080BEA78 @ =gSaveBlock1 + 0x2A98
- ldrb r0, [r1]
- cmp r0, 0x19
- bne _080BEA84
- ldrh r0, [r1, 0x2]
- cmp r0, 0x13
- bhi _080BEA80
- ldr r2, _080BEA7C @ =0xfffffca0
- adds r0, r1, r2
- movs r1, 0x18
- bl sub_80BF55C
- b _080BEA84
- .align 2, 0
-_080BEA78: .4byte gSaveBlock1 + 0x2A98
-_080BEA7C: .4byte 0xfffffca0
-_080BEA80:
- bl sub_80BEA88
-_080BEA84:
- pop {r0}
- bx r0
- thumb_func_end sub_80BEA5C
-
- thumb_func_start sub_80BEA88
-sub_80BEA88: @ 80BEA88
- push {r4-r7,lr}
- ldr r5, _080BEB0C @ =gSaveBlock1 + 0x2A98
- ldr r0, _080BEB10 @ =0x0000ffff
- bl sub_80BF77C
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _080BEB04
- ldr r0, _080BEB14 @ =0xfffffca0
- adds r7, r5, r0
- adds r0, r7, 0
- bl sub_80BF74C
- ldr r4, _080BEB18 @ =gUnknown_03005D38
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BEB04
- movs r0, 0x19
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEB04
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r7
- movs r0, 0x19
- strb r0, [r4]
- strb r6, [r4, 0x1]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x2]
- movs r0, 0x5
- bl sub_8053108
- ldrh r1, [r5, 0x6]
- subs r0, r1
- strh r0, [r4, 0x6]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x4]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x8]
- ldrb r0, [r5, 0xA]
- strb r0, [r4, 0xA]
- adds r0, r4, 0
- adds r0, 0x13
- ldr r1, _080BEB1C @ =gSaveBlock2
- bl StringCopy
- adds r0, r4, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r4, 0xB]
-_080BEB04:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BEB0C: .4byte gSaveBlock1 + 0x2A98
-_080BEB10: .4byte 0x0000ffff
-_080BEB14: .4byte 0xfffffca0
-_080BEB18: .4byte gUnknown_03005D38
-_080BEB1C: .4byte gSaveBlock2
- thumb_func_end sub_80BEA88
-
- thumb_func_start sub_80BEB20
-sub_80BEB20: @ 80BEB20
- push {r4-r6,lr}
- ldr r0, _080BEBAC @ =0x00000804
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080BEBA6
- ldr r6, _080BEBB0 @ =gSaveBlock1 + 0x2ABC
- adds r0, r6, 0
- bl sub_80BEBC8
- ldr r5, _080BEBB4 @ =gUnknown_03005D38
- strb r0, [r5]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BEBA6
- ldr r0, _080BEBB8 @ =0x0000028f
- bl sub_80BF77C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEBA6
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80BEE48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEBA6
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 2
- ldr r1, _080BEBBC @ =0xffffd544
- adds r2, r6, r1
- adds r0, r6, r0
- strb r4, [r0]
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, _080BEBC0 @ =0x00002abe
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0]
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, _080BEBC4 @ =0x00002abd
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_080BEBA6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BEBAC: .4byte 0x00000804
-_080BEBB0: .4byte gSaveBlock1 + 0x2ABC
-_080BEBB4: .4byte gUnknown_03005D38
-_080BEBB8: .4byte 0x0000028f
-_080BEBBC: .4byte 0xffffd544
-_080BEBC0: .4byte 0x00002abe
-_080BEBC4: .4byte 0x00002abd
- thumb_func_end sub_80BEB20
-
- thumb_func_start sub_80BEBC8
-sub_80BEBC8: @ 80BEBC8
- push {lr}
- adds r2, r0, 0
- movs r1, 0
-_080BEBCE:
- lsls r0, r1, 24
- asrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BEBE0
- adds r0, r1, 0
- b _080BEBF0
-_080BEBE0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- asrs r0, 24
- cmp r0, 0xF
- ble _080BEBCE
- movs r0, 0x1
- negs r0, r0
-_080BEBF0:
- pop {r1}
- bx r1
- thumb_func_end sub_80BEBC8
-
- thumb_func_start sub_80BEBF4
-sub_80BEBF4: @ 80BEBF4
- push {r4,lr}
- movs r4, 0
-_080BEBF8:
- adds r0, r4, 0
- bl sub_80BEC10
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080BEBF8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BEBF4
-
- thumb_func_start sub_80BEC10
-sub_80BEC10: @ 80BEC10
- lsls r0, 24
- ldr r1, _080BEC30 @ =gSaveBlock1
- lsrs r0, 22
- adds r0, r1
- ldr r2, _080BEC34 @ =0x00002abc
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r3, _080BEC38 @ =0x00002abd
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _080BEC3C @ =0x00002abe
- adds r0, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_080BEC30: .4byte gSaveBlock1
-_080BEC34: .4byte 0x00002abc
-_080BEC38: .4byte 0x00002abd
-_080BEC3C: .4byte 0x00002abe
- thumb_func_end sub_80BEC10
-
- thumb_func_start sub_80BEC40
-sub_80BEC40: @ 80BEC40
- push {r4-r7,lr}
- movs r1, 0
- ldr r6, _080BEC80 @ =gSaveBlock1
-_080BEC46:
- ldr r3, _080BEC80 @ =gSaveBlock1
- lsls r2, r1, 2
- adds r0, r2, r3
- ldr r4, _080BEC84 @ =0x00002abc
- adds r0, r4
- ldrb r0, [r0]
- adds r5, r1, 0x1
- cmp r0, 0
- bne _080BEC92
- lsls r0, r5, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bhi _080BEC92
- adds r4, r3, r4
- adds r3, r2, r4
-_080BEC64:
- lsls r2, r1, 2
- adds r0, r2, r6
- ldr r7, _080BEC84 @ =0x00002abc
- adds r0, r7
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BEC88
- adds r0, r2, r4
- ldr r0, [r0]
- str r0, [r3]
- adds r0, r1, 0
- bl sub_80BEC10
- b _080BEC92
- .align 2, 0
-_080BEC80: .4byte gSaveBlock1
-_080BEC84: .4byte 0x00002abc
-_080BEC88:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080BEC64
-_080BEC92:
- lsls r0, r5, 24
- lsrs r1, r0, 24
- cmp r1, 0xE
- bls _080BEC46
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BEC40
-
- thumb_func_start sub_80BECA0
-sub_80BECA0: @ 80BECA0
- push {r4,lr}
- movs r2, 0
- ldr r3, _080BECCC @ =gSaveBlock1
-_080BECA6:
- lsls r0, r2, 2
- adds r1, r0, r3
- ldr r4, _080BECD0 @ =0x00002abc
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BECD4
- adds r4, 0x1
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080BECD4
- adds r4, 0x1
- adds r0, r1, r4
- ldrh r0, [r0]
- cmp r0, 0x2
- bhi _080BECD4
- adds r0, r2, 0
- b _080BECE0
- .align 2, 0
-_080BECCC: .4byte gSaveBlock1
-_080BECD0: .4byte 0x00002abc
-_080BECD4:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _080BECA6
- movs r0, 0xFF
-_080BECE0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BECA0
-
- thumb_func_start sub_80BECE8
-sub_80BECE8: @ 80BECE8
- push {r4,lr}
- bl sub_80BECA0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- bne _080BED00
- ldr r1, _080BECFC @ =gScriptResult
- movs r0, 0
- b _080BED86
- .align 2, 0
-_080BECFC: .4byte gScriptResult
-_080BED00:
- ldr r0, _080BED2C @ =gSaveBlock1
- lsls r1, 2
- adds r4, r1, r0
- ldr r0, _080BED30 @ =0x00002abe
- adds r1, r4, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _080BED5C
- ldr r2, _080BED34 @ =0x00002abd
- adds r1, r4, r2
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _080BED38 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x13
- bgt _080BED40
- ldr r1, _080BED3C @ =gUnknown_083D1444
- subs r2, 0x1
- b _080BED44
- .align 2, 0
-_080BED2C: .4byte gSaveBlock1
-_080BED30: .4byte 0x00002abe
-_080BED34: .4byte 0x00002abd
-_080BED38: .4byte gLocalTime
-_080BED3C: .4byte gUnknown_083D1444
-_080BED40:
- ldr r1, _080BED54 @ =gUnknown_083D1454
- ldr r2, _080BED58 @ =0x00002abc
-_080BED44:
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- b _080BED82
- .align 2, 0
-_080BED54: .4byte gUnknown_083D1454
-_080BED58: .4byte 0x00002abc
-_080BED5C:
- ldrh r1, [r1]
- ldr r0, _080BED90 @ =gStringVar1
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r0, _080BED94 @ =0x00002abd
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080BED98 @ =gUnknown_083D1434
- ldr r2, _080BED9C @ =0x00002abc
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
-_080BED82:
- ldr r1, _080BEDA0 @ =gScriptResult
- movs r0, 0x1
-_080BED86:
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BED90: .4byte gStringVar1
-_080BED94: .4byte 0x00002abd
-_080BED98: .4byte gUnknown_083D1434
-_080BED9C: .4byte 0x00002abc
-_080BEDA0: .4byte gScriptResult
- thumb_func_end sub_80BECE8
-
- thumb_func_start GetPriceReduction
-GetPriceReduction: @ 80BEDA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080BEDB4
- b _080BEDF6
-_080BEDB0:
- movs r0, 0x1
- b _080BEDF8
-_080BEDB4:
- movs r2, 0
- ldr r4, _080BEDE0 @ =gSaveBlock1
-_080BEDB8:
- lsls r0, r2, 2
- adds r1, r0, r4
- ldr r5, _080BEDE4 @ =0x00002abc
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, r3
- bne _080BEDEC
- ldr r2, _080BEDE8 @ =0x00002abd
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080BEDF6
- adds r0, r3, 0
- bl IsPriceDiscounted
- lsls r0, 24
- cmp r0, 0
- bne _080BEDB0
- b _080BEDF6
- .align 2, 0
-_080BEDE0: .4byte gSaveBlock1
-_080BEDE4: .4byte 0x00002abc
-_080BEDE8: .4byte 0x00002abd
-_080BEDEC:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _080BEDB8
-_080BEDF6:
- movs r0, 0
-_080BEDF8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetPriceReduction
-
- thumb_func_start IsPriceDiscounted
-IsPriceDiscounted: @ 80BEE00
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEE12
- cmp r0, 0x3
- beq _080BEE30
-_080BEE0E:
- movs r0, 0x1
- b _080BEE3C
-_080BEE12:
- ldr r0, _080BEE28 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bne _080BEE3A
- ldr r0, _080BEE2C @ =gScriptLastTalked
- ldrh r0, [r0]
- cmp r0, 0x1A
- beq _080BEE0E
- b _080BEE3A
- .align 2, 0
-_080BEE28: .4byte gSaveBlock1
-_080BEE2C: .4byte gScriptLastTalked
-_080BEE30:
- ldr r0, _080BEE40 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- ldr r0, _080BEE44 @ =0x0000160d
- cmp r1, r0
- beq _080BEE0E
-_080BEE3A:
- movs r0, 0
-_080BEE3C:
- pop {r1}
- bx r1
- .align 2, 0
-_080BEE40: .4byte gSaveBlock1
-_080BEE44: .4byte 0x0000160d
- thumb_func_end IsPriceDiscounted
-
- thumb_func_start sub_80BEE48
-sub_80BEE48: @ 80BEE48
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080BEE56
-_080BEE52:
- movs r0, 0x1
- b _080BEE74
-_080BEE56:
- movs r1, 0
- ldr r4, _080BEE7C @ =gSaveBlock1
- ldr r3, _080BEE80 @ =0x00002abc
-_080BEE5C:
- lsls r0, r1, 2
- adds r0, r4
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, r2
- beq _080BEE52
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080BEE5C
- movs r0, 0
-_080BEE74:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080BEE7C: .4byte gSaveBlock1
-_080BEE80: .4byte 0x00002abc
- thumb_func_end sub_80BEE48
-
- thumb_func_start sub_80BEE84
-sub_80BEE84: @ 80BEE84
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r7, r0, 16
- movs r5, 0
- ldr r0, _080BEEB8 @ =gSaveBlock1
- mov r8, r0
-_080BEE94:
- lsls r0, r5, 2
- mov r1, r8
- adds r2, r0, r1
- ldr r3, _080BEEBC @ =0x00002abc
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r6, r0, 0
- cmp r1, 0
- beq _080BEEEC
- ldr r1, _080BEEC0 @ =0x00002abe
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, r7
- bcs _080BEEC4
- adds r0, r5, 0
- bl sub_80BEC10
- b _080BEEEC
- .align 2, 0
-_080BEEB8: .4byte gSaveBlock1
-_080BEEBC: .4byte 0x00002abc
-_080BEEC0: .4byte 0x00002abe
-_080BEEC4:
- ldr r3, _080BEF04 @ =0x00002abd
- adds r4, r2, r3
- ldrb r0, [r4]
- cmp r0, 0
- bne _080BEEDE
- ldr r0, _080BEF08 @ =0x00000804
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BEEDE
- strb r0, [r4]
-_080BEEDE:
- mov r0, r8
- adds r1, r6, r0
- ldr r3, _080BEF0C @ =0x00002abe
- adds r1, r3
- ldrh r0, [r1]
- subs r0, r7
- strh r0, [r1]
-_080BEEEC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080BEE94
- bl sub_80BEC40
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BEF04: .4byte 0x00002abd
-_080BEF08: .4byte 0x00000804
-_080BEF0C: .4byte 0x00002abe
- thumb_func_end sub_80BEE84
-
- thumb_func_start sub_80BEF10
-sub_80BEF10: @ 80BEF10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _080BEF50
- cmp r1, 0x1
- bgt _080BEF2A
- cmp r1, 0
- beq _080BEF34
- b _080BEF98
-_080BEF2A:
- cmp r2, 0x2
- beq _080BEF6C
- cmp r2, 0x3
- beq _080BEF88
- b _080BEF98
-_080BEF34:
- ldr r1, _080BEF48 @ =gUnknown_083D1464
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEF4C @ =gUnknown_083CE048
- ldr r1, [r1, 0x14]
- bl StringCopy
- b _080BEF98
- .align 2, 0
-_080BEF48: .4byte gUnknown_083D1464
-_080BEF4C: .4byte gUnknown_083CE048
-_080BEF50:
- ldr r1, _080BEF64 @ =gUnknown_083D1464
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEF68 @ =gUnknown_083CE048
- ldr r1, [r1, 0x18]
- bl StringCopy
- b _080BEF98
- .align 2, 0
-_080BEF64: .4byte gUnknown_083D1464
-_080BEF68: .4byte gUnknown_083CE048
-_080BEF6C:
- ldr r1, _080BEF80 @ =gUnknown_083D1464
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEF84 @ =gUnknown_083CE048
- ldr r1, [r1, 0x1C]
- bl StringCopy
- b _080BEF98
- .align 2, 0
-_080BEF80: .4byte gUnknown_083D1464
-_080BEF84: .4byte gUnknown_083CE048
-_080BEF88:
- ldr r1, _080BEF9C @ =gUnknown_083D1464
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEFA0 @ =gUnknown_083CE048
- ldr r1, [r1, 0x20]
- bl StringCopy
-_080BEF98:
- pop {r0}
- bx r0
- .align 2, 0
-_080BEF9C: .4byte gUnknown_083D1464
-_080BEFA0: .4byte gUnknown_083CE048
- thumb_func_end sub_80BEF10
-
- thumb_func_start CopyContestCategoryToStringVar
-CopyContestCategoryToStringVar: @ 80BEFA4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, 0x4
- bhi _080BF054
- lsls r0, 2
- ldr r1, _080BEFBC @ =_080BEFC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BEFBC: .4byte _080BEFC0
- .align 2, 0
-_080BEFC0:
- .4byte _080BEFD4
- .4byte _080BEFF0
- .4byte _080BF00C
- .4byte _080BF028
- .4byte _080BF044
-_080BEFD4:
- ldr r1, _080BEFE8 @ =gUnknown_083D1464
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEFEC @ =gUnknown_083CE048
- ldr r1, [r1]
- bl StringCopy
- b _080BF054
- .align 2, 0
-_080BEFE8: .4byte gUnknown_083D1464
-_080BEFEC: .4byte gUnknown_083CE048
-_080BEFF0:
- ldr r1, _080BF004 @ =gUnknown_083D1464
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BF008 @ =gUnknown_083CE048
- ldr r1, [r1, 0x4]
- bl StringCopy
- b _080BF054
- .align 2, 0
-_080BF004: .4byte gUnknown_083D1464
-_080BF008: .4byte gUnknown_083CE048
-_080BF00C:
- ldr r1, _080BF020 @ =gUnknown_083D1464
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BF024 @ =gUnknown_083CE048
- ldr r1, [r1, 0x8]
- bl StringCopy
- b _080BF054
- .align 2, 0
-_080BF020: .4byte gUnknown_083D1464
-_080BF024: .4byte gUnknown_083CE048
-_080BF028:
- ldr r1, _080BF03C @ =gUnknown_083D1464
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BF040 @ =gUnknown_083CE048
- ldr r1, [r1, 0xC]
- bl StringCopy
- b _080BF054
- .align 2, 0
-_080BF03C: .4byte gUnknown_083D1464
-_080BF040: .4byte gUnknown_083CE048
-_080BF044:
- ldr r1, _080BF058 @ =gUnknown_083D1464
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BF05C @ =gUnknown_083CE048
- ldr r1, [r1, 0x10]
- bl StringCopy
-_080BF054:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF058: .4byte gUnknown_083D1464
-_080BF05C: .4byte gUnknown_083CE048
- thumb_func_end CopyContestCategoryToStringVar
-
- thumb_func_start SetContestCategoryStringVarForInterview
-SetContestCategoryStringVarForInterview: @ 80BF060
- push {lr}
- ldr r0, _080BF080 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF084 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrb r1, [r0, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x1
- bl CopyContestCategoryToStringVar
- pop {r0}
- bx r0
- .align 2, 0
-_080BF080: .4byte gSpecialVar_0x8004
-_080BF084: .4byte gSaveBlock1 + 0x2738
- thumb_func_end SetContestCategoryStringVarForInterview
-
- thumb_func_start sub_80BF088
-sub_80BF088: @ 80BF088
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- ldr r0, _080BF0B4 @ =gUnknown_083D1464
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF0B4: .4byte gUnknown_083D1464
- thumb_func_end sub_80BF088
-
- thumb_func_start sub_80BF0B8
-sub_80BF0B8: @ 80BF0B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xA
- bl __divsi3
- cmp r0, 0
- beq _080BF144
- adds r0, r4, 0
- movs r1, 0x64
- bl __divsi3
- cmp r0, 0
- bne _080BF0D6
- movs r0, 0x2
- b _080BF14E
-_080BF0D6:
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF0E8
- movs r0, 0x3
- b _080BF14E
-_080BF0E8:
- ldr r1, _080BF0F8 @ =0x00002710
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF0FC
- movs r0, 0x4
- b _080BF14E
- .align 2, 0
-_080BF0F8: .4byte 0x00002710
-_080BF0FC:
- ldr r1, _080BF10C @ =0x000186a0
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF110
- movs r0, 0x5
- b _080BF14E
- .align 2, 0
-_080BF10C: .4byte 0x000186a0
-_080BF110:
- ldr r1, _080BF120 @ =0x000f4240
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF124
- movs r0, 0x6
- b _080BF14E
- .align 2, 0
-_080BF120: .4byte 0x000f4240
-_080BF124:
- ldr r1, _080BF134 @ =0x00989680
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF138
- movs r0, 0x7
- b _080BF14E
- .align 2, 0
-_080BF134: .4byte 0x00989680
-_080BF138:
- ldr r1, _080BF148 @ =0x05f5e100
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- beq _080BF14C
-_080BF144:
- movs r0, 0x1
- b _080BF14E
- .align 2, 0
-_080BF148: .4byte 0x05f5e100
-_080BF14C:
- movs r0, 0x8
-_080BF14E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF0B8
-
- thumb_func_start sub_80BF154
-sub_80BF154: @ 80BF154
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r7, 0
- movs r5, 0
-_080BF166:
- lsls r4, r5, 1
- adds r0, r6, 0x6
- adds r1, r0, r4
- ldrh r0, [r1]
- cmp r0, 0
- beq _080BF186
- bl ItemId_GetPrice
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- adds r1, 0xC
- adds r1, r4
- ldrh r1, [r1]
- muls r0, r1
- adds r7, r0
-_080BF186:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080BF166
- ldrb r0, [r6, 0x2]
- cmp r0, 0x1
- bne _080BF1A0
- asrs r1, r7, 1
- mov r0, r8
- bl sub_80BF088
- b _080BF1A8
-_080BF1A0:
- mov r0, r8
- adds r1, r7, 0
- bl sub_80BF088
-_080BF1A8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BF154
-
- thumb_func_start sub_80BF1B4
-sub_80BF1B4: @ 80BF1B4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _080BF1F4 @ =gSaveBlock1 + 0x2738
- bl sub_80BFB94
- adds r5, r0, 0
- movs r4, 0x5
-_080BF1C4:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, r0, r7
- ldrb r0, [r1]
- cmp r0, r6
- bne _080BF1F8
- movs r3, 0xFF
- adds r0, r5, 0
- ands r0, r3
- adds r2, r1, 0
- adds r2, 0x22
- ldrb r2, [r2]
- cmp r0, r2
- bne _080BF1F8
- lsrs r0, r5, 8
- ands r0, r3
- adds r1, 0x23
- ldrb r1, [r1]
- cmp r0, r1
- bne _080BF1F8
- movs r0, 0x1
- b _080BF204
- .align 2, 0
-_080BF1F4: .4byte gSaveBlock1 + 0x2738
-_080BF1F8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x17
- bls _080BF1C4
- movs r0, 0
-_080BF204:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF1B4
-
- thumb_func_start sub_80BF20C
-sub_80BF20C: @ 80BF20C
- push {r4-r7,lr}
- movs r2, 0
-_080BF210:
- adds r1, r2, 0x1
- lsls r0, r1, 24
- lsrs r5, r0, 24
- adds r7, r1, 0
- cmp r5, 0x2
- bhi _080BF248
- ldr r6, _080BF258 @ =gUnknown_02038724
- lsls r0, r2, 2
- adds r4, r0, r6
-_080BF222:
- lsls r0, r5, 2
- adds r3, r0, r6
- ldrh r0, [r4, 0x2]
- ldrh r1, [r3, 0x2]
- cmp r0, r1
- bcs _080BF23E
- ldrh r1, [r4]
- adds r2, r0, 0
- ldrh r0, [r3]
- strh r0, [r4]
- ldrh r0, [r3, 0x2]
- strh r0, [r4, 0x2]
- strh r1, [r3]
- strh r2, [r3, 0x2]
-_080BF23E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080BF222
-_080BF248:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- cmp r2, 0x1
- bls _080BF210
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF258: .4byte gUnknown_02038724
- thumb_func_end sub_80BF20C
-
- thumb_func_start sub_80BF25C
-sub_80BF25C: @ 80BF25C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0
- ldr r3, _080BF28C @ =gSaveBlock1
- ldr r0, _080BF290 @ =0x00002738
- adds r4, r3, r0
-_080BF26A:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- ldr r6, _080BF290 @ =0x00002738
- adds r0, r2, r6
- ldrb r0, [r0]
- cmp r0, r5
- bne _080BF2AE
- ldr r3, _080BF294 @ =0x00002739
- adds r0, r2, r3
- ldrb r2, [r0]
- cmp r2, 0x1
- bne _080BF29C
- ldr r0, _080BF298 @ =gScriptResult
- strh r2, [r0]
- b _080BF2BC
- .align 2, 0
-_080BF28C: .4byte gSaveBlock1
-_080BF290: .4byte 0x00002738
-_080BF294: .4byte 0x00002739
-_080BF298: .4byte gScriptResult
-_080BF29C:
- adds r0, r4, 0
- bl sub_80BF55C
- adds r0, r4, 0
- bl sub_80BF588
- bl sub_80BF6D8
- b _080BF2BC
-_080BF2AE:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080BF26A
- bl sub_80BF6D8
-_080BF2BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BF25C
-
- thumb_func_start sub_80BF2C4
-sub_80BF2C4: @ 80BF2C4
- push {lr}
- ldr r1, _080BF2E0 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080BF2E4 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x6
- bhi _080BF330
- lsls r0, 2
- ldr r1, _080BF2E8 @ =_080BF2EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BF2E0: .4byte gScriptResult
-_080BF2E4: .4byte gSpecialVar_0x8005
-_080BF2E8: .4byte _080BF2EC
- .align 2, 0
-_080BF2EC:
- .4byte _080BF308
- .4byte _080BF30E
- .4byte _080BF314
- .4byte _080BF31A
- .4byte _080BF320
- .4byte _080BF326
- .4byte _080BF32C
-_080BF308:
- bl sub_80BF334
- b _080BF330
-_080BF30E:
- bl sub_80BF3A4
- b _080BF330
-_080BF314:
- bl sub_80BF3DC
- b _080BF330
-_080BF31A:
- bl sub_80BF46C
- b _080BF330
-_080BF320:
- bl sub_80BF478
- b _080BF330
-_080BF326:
- bl sub_80BF484
- b _080BF330
-_080BF32C:
- bl sub_80BF4BC
-_080BF330:
- pop {r0}
- bx r0
- thumb_func_end sub_80BF2C4
-
- thumb_func_start sub_80BF334
-sub_80BF334: @ 80BF334
- push {r4,lr}
- movs r0, 0x1
- bl sub_80BF25C
- ldr r0, _080BF38C @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF384
- ldr r4, _080BF390 @ =gStringVar1
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080BF394 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r1, r0
- ldr r0, _080BF398 @ =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r0, _080BF39C @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF3A0 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x4
- movs r1, 0x6
- bl sub_80EB6FC
-_080BF384:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF38C: .4byte gScriptResult
-_080BF390: .4byte gStringVar1
-_080BF394: .4byte gPlayerParty
-_080BF398: .4byte gSpeciesNames
-_080BF39C: .4byte gUnknown_03005D38
-_080BF3A0: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF334
-
- thumb_func_start sub_80BF3A4
-sub_80BF3A4: @ 80BF3A4
- push {lr}
- movs r0, 0x2
- bl sub_80BF25C
- ldr r0, _080BF3D0 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF3CC
- ldr r0, _080BF3D4 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF3D8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x4
- movs r1, 0x6
- bl sub_80EB6FC
-_080BF3CC:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF3D0: .4byte gScriptResult
-_080BF3D4: .4byte gUnknown_03005D38
-_080BF3D8: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF3A4
-
- thumb_func_start sub_80BF3DC
-sub_80BF3DC: @ 80BF3DC
- push {r4-r6,lr}
- movs r0, 0x3
- bl sub_80BF25C
- ldr r0, _080BF450 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF448
- ldr r6, _080BF454 @ =gStringVar1
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080BF458 @ =gPlayerParty
- adds r0, r4
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r1, r0
- ldr r0, _080BF45C @ =gSpeciesNames
- adds r1, r0
- adds r0, r6, 0
- bl StringCopy
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- muls r0, r5
- adds r0, r4
- ldr r4, _080BF460 @ =gStringVar2
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- ldr r0, _080BF464 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF468 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x1C
- movs r1, 0x2
- bl sub_80EB6FC
-_080BF448:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF450: .4byte gScriptResult
-_080BF454: .4byte gStringVar1
-_080BF458: .4byte gPlayerParty
-_080BF45C: .4byte gSpeciesNames
-_080BF460: .4byte gStringVar2
-_080BF464: .4byte gUnknown_03005D38
-_080BF468: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF3DC
-
- thumb_func_start sub_80BF46C
-sub_80BF46C: @ 80BF46C
- ldr r1, _080BF474 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080BF474: .4byte gScriptResult
- thumb_func_end sub_80BF46C
-
- thumb_func_start sub_80BF478
-sub_80BF478: @ 80BF478
- push {lr}
- movs r0, 0x5
- bl sub_80BF25C
- pop {r0}
- bx r0
- thumb_func_end sub_80BF478
-
- thumb_func_start sub_80BF484
-sub_80BF484: @ 80BF484
- push {lr}
- movs r0, 0x6
- bl sub_80BF25C
- ldr r0, _080BF4B0 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF4AC
- ldr r0, _080BF4B4 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF4B8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x4
- movs r1, 0x2
- bl sub_80EB6FC
-_080BF4AC:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF4B0: .4byte gScriptResult
-_080BF4B4: .4byte gUnknown_03005D38
-_080BF4B8: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF484
-
- thumb_func_start sub_80BF4BC
-sub_80BF4BC: @ 80BF4BC
- push {lr}
- movs r0, 0x7
- bl sub_80BF25C
- ldr r0, _080BF4E8 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF4E4
- ldr r0, _080BF4EC @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF4F0 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x18
- movs r1, 0x1
- bl sub_80EB6FC
-_080BF4E4:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF4E8: .4byte gScriptResult
-_080BF4EC: .4byte gUnknown_03005D38
-_080BF4F0: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF4BC
-
- thumb_func_start sub_80BF4F4
-sub_80BF4F4: @ 80BF4F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _080BF530 @ =gPlayerParty
- adds r4, r0
- ldr r5, _080BF534 @ =gStringVar1
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r0, r1
- ldr r1, _080BF538 @ =gSpeciesNames
- adds r0, r1
- adds r1, r5, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _080BF53C
- movs r0, 0x1
- b _080BF53E
- .align 2, 0
-_080BF530: .4byte gPlayerParty
-_080BF534: .4byte gStringVar1
-_080BF538: .4byte gSpeciesNames
-_080BF53C:
- movs r0, 0
-_080BF53E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF4F4
-
- thumb_func_start sub_80BF544
-sub_80BF544: @ 80BF544
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BF4F4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80BF544
-
- thumb_func_start sub_80BF55C
-sub_80BF55C: @ 80BF55C
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r1, 3
- adds r2, r1
- lsls r2, 2
- adds r2, r0
- movs r0, 0
- strb r0, [r2]
- strb r0, [r2, 0x1]
- movs r1, 0
- adds r2, 0x2
- movs r3, 0
-_080BF576:
- adds r0, r2, r1
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x21
- bls _080BF576
- pop {r0}
- bx r0
- thumb_func_end sub_80BF55C
-
- thumb_func_start sub_80BF588
-sub_80BF588: @ 80BF588
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r5, 0
-_080BF58E:
- lsls r0, r5, 3
- adds r0, r5
- lsls r1, r0, 2
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BF5D2
- adds r0, r5, 0x1
- b _080BF5CA
-_080BF5A0:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r0, [r3]
- cmp r0, 0
- beq _080BF5C8
- adds r1, r4
- adds r0, r3, 0
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80BF55C
- b _080BF5D2
-_080BF5C8:
- adds r0, r2, 0x1
-_080BF5CA:
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _080BF5A0
-_080BF5D2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080BF58E
- movs r5, 0x5
-_080BF5DE:
- lsls r0, r5, 3
- adds r0, r5
- lsls r1, r0, 2
- adds r0, r1, r4
- ldrb r0, [r0]
- adds r5, 0x1
- cmp r0, 0
- bne _080BF62A
- lsls r0, r5, 24
- b _080BF624
-_080BF5F2:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r0, [r3]
- cmp r0, 0
- beq _080BF620
- adds r1, r4
- adds r0, r3, 0
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldr r0, _080BF61C @ =gSaveBlock1 + 0x2738
- adds r1, r2, 0
- bl sub_80BF55C
- b _080BF62A
- .align 2, 0
-_080BF61C: .4byte gSaveBlock1 + 0x2738
-_080BF620:
- adds r0, r2, 0x1
- lsls r0, 24
-_080BF624:
- lsrs r2, r0, 24
- cmp r2, 0x17
- bls _080BF5F2
-_080BF62A:
- lsls r0, r5, 24
- lsrs r5, r0, 24
- cmp r5, 0x17
- bls _080BF5DE
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BF588
-
- thumb_func_start sub_80BF638
-sub_80BF638: @ 80BF638
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- lsrs r0, 16
- bl sub_80BF674
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _080BF66C @ =gUnknown_083D1464
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- movs r1, 0xB
- muls r1, r5
- ldr r2, _080BF670 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080BF66C: .4byte gUnknown_083D1464
-_080BF670: .4byte gSpeciesNames
- thumb_func_end sub_80BF638
-
- thumb_func_start sub_80BF674
-sub_80BF674: @ 80BF674
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080BF694 @ =0x0000019b
- bl __umodsi3
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- b _080BF6B2
- .align 2, 0
-_080BF694: .4byte 0x0000019b
-_080BF698:
- cmp r4, 0x1
- bne _080BF6A4
- ldr r4, _080BF6A0 @ =0x0000019b
- b _080BF6AA
- .align 2, 0
-_080BF6A0: .4byte 0x0000019b
-_080BF6A4:
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080BF6AA:
- cmp r4, r6
- bne _080BF6B2
- adds r4, r5, 0
- b _080BF6CE
-_080BF6B2:
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D90
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _080BF698
- cmp r4, r5
- beq _080BF698
-_080BF6CE:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF674
-
- thumb_func_start sub_80BF6D8
-sub_80BF6D8: @ 80BF6D8
- push {lr}
- ldr r0, _080BF700 @ =gSaveBlock1 + 0x2738
- bl sub_80BF720
- ldr r1, _080BF704 @ =gUnknown_03005D38
- strb r0, [r1]
- ldr r2, _080BF708 @ =gSpecialVar_0x8006
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- strh r1, [r2]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080BF710
- ldr r1, _080BF70C @ =gScriptResult
- movs r0, 0x1
- b _080BF714
- .align 2, 0
-_080BF700: .4byte gSaveBlock1 + 0x2738
-_080BF704: .4byte gUnknown_03005D38
-_080BF708: .4byte gSpecialVar_0x8006
-_080BF70C: .4byte gScriptResult
-_080BF710:
- ldr r1, _080BF71C @ =gScriptResult
- movs r0, 0
-_080BF714:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BF71C: .4byte gScriptResult
- thumb_func_end sub_80BF6D8
-
- thumb_func_start sub_80BF720
-sub_80BF720: @ 80BF720
- push {lr}
- adds r2, r0, 0
- movs r1, 0
-_080BF726:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BF73A
- lsls r0, r1, 24
- asrs r0, 24
- b _080BF748
-_080BF73A:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080BF726
- movs r0, 0x1
- negs r0, r0
-_080BF748:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF720
-
- thumb_func_start sub_80BF74C
-sub_80BF74C: @ 80BF74C
- push {lr}
- adds r2, r0, 0
- movs r1, 0x5
-_080BF752:
- lsls r0, r1, 24
- asrs r1, r0, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BF768
- adds r0, r1, 0
- b _080BF778
-_080BF768:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- asrs r0, 24
- cmp r0, 0x17
- ble _080BF752
- movs r0, 0x1
- negs r0, r0
-_080BF778:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF74C
-
- thumb_func_start sub_80BF77C
-sub_80BF77C: @ 80BF77C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bls _080BF794
- movs r0, 0x1
- b _080BF796
-_080BF794:
- movs r0, 0
-_080BF796:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF77C
-
- thumb_func_start sub_80BF79C
-sub_80BF79C: @ 80BF79C
- push {r4-r6,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r4, 0x4
- ldr r6, _080BF7B8 @ =0x0000ffff
- b _080BF7C2
- .align 2, 0
-_080BF7B8: .4byte 0x0000ffff
-_080BF7BC:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080BF7C2:
- cmp r2, 0x6
- bne _080BF7C8
- movs r2, 0
-_080BF7C8:
- lsls r1, r2, 1
- adds r0, r5, r1
- ldrh r0, [r0]
- adds r3, r4, 0x4
- cmp r0, r6
- beq _080BF7BC
- ldr r0, _080BF7E4 @ =gStringVar3
- adds r1, r3, r1
- ldrh r1, [r1]
- bl sub_80EB3FC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF7E4: .4byte gStringVar3
- thumb_func_end sub_80BF79C
-
- thumb_func_start sub_80BF7E8
-sub_80BF7E8: @ 80BF7E8
- push {lr}
- adds r2, r0, 0
- movs r3, 0
- movs r1, 0
- ldrb r0, [r2, 0x4]
- cmp r0, 0xFF
- beq _080BF814
- adds r2, 0x4
-_080BF7F8:
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, r3, r0
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xA
- bhi _080BF814
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BF7F8
-_080BF814:
- movs r0, 0x7
- ands r3, r0
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80BF7E8
-
- thumb_func_start sub_80BF820
-sub_80BF820: @ 80BF820
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 16
- lsrs r4, 16
- movs r2, 0
- movs r7, 0xFF
-_080BF844:
- mov r1, sp
- adds r0, r1, r2
- ldrb r1, [r0]
- orrs r1, r7
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _080BF844
- cmp r3, 0
- bne _080BF8A6
- ldr r4, [sp, 0x20]
- adds r4, 0xF
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r6, 0
- bne _080BF874
- mov r0, sp
- adds r1, r4, r5
- b _080BF920
-_080BF874:
- cmp r6, 0x1
- bne _080BF880
- mov r0, sp
- subs r1, r2, r5
- adds r1, r4, r1
- b _080BF920
-_080BF880:
- cmp r6, 0x2
- bne _080BF892
- mov r1, sp
- adds r0, r4, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- adds r0, r4, r0
- b _080BF950
-_080BF892:
- mov r1, sp
- subs r0, r2, 0x2
- subs r0, r5
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r1]
- subs r0, r2, 0x1
- subs r0, r5
- adds r0, r4, r0
- b _080BF950
-_080BF8A6:
- cmp r3, 0x1
- bne _080BF8F4
- ldr r4, [sp, 0x20]
- adds r4, 0x4
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r6, 0
- bne _080BF8C2
- mov r0, sp
- adds r1, r4, r5
- b _080BF920
-_080BF8C2:
- cmp r6, 0x1
- bne _080BF8CE
- mov r0, sp
- subs r1, r2, r5
- adds r1, r4, r1
- b _080BF920
-_080BF8CE:
- cmp r6, 0x2
- bne _080BF8E0
- mov r1, sp
- adds r0, r4, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- adds r0, r4, r0
- b _080BF950
-_080BF8E0:
- mov r1, sp
- subs r0, r2, 0x2
- subs r0, r5
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r1]
- subs r0, r2, 0x1
- subs r0, r5
- adds r0, r4, r0
- b _080BF950
-_080BF8F4:
- movs r0, 0xB
- muls r4, r0
- ldr r7, _080BF910 @ =gSpeciesNames
- adds r0, r4, r7
- bl StringLength
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r6, 0
- bne _080BF914
- mov r0, sp
- adds r1, r5, r4
- b _080BF91E
- .align 2, 0
-_080BF910: .4byte gSpeciesNames
-_080BF914:
- cmp r6, 0x1
- bne _080BF926
- mov r0, sp
- subs r1, r2, r5
- adds r1, r4
-_080BF91E:
- adds r1, r7
-_080BF920:
- ldrb r1, [r1]
- strb r1, [r0]
- b _080BF954
-_080BF926:
- cmp r6, 0x2
- bne _080BF93A
- mov r1, sp
- adds r0, r5, r4
- adds r0, r7
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- adds r0, r5, r0
- b _080BF94E
-_080BF93A:
- mov r1, sp
- subs r0, r2, 0x2
- subs r0, r5
- adds r0, r4
- adds r0, r7
- ldrb r0, [r0]
- strb r0, [r1]
- subs r0, r2, 0x1
- subs r0, r5
- adds r0, r4
-_080BF94E:
- adds r0, r7
-_080BF950:
- ldrb r0, [r0]
- strb r0, [r1, 0x1]
-_080BF954:
- ldr r0, _080BF970 @ =gUnknown_083D1464
- mov r2, r8
- lsls r1, r2, 2
- adds r1, r0
- ldr r0, [r1]
- mov r1, sp
- bl StringCopy
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF970: .4byte gUnknown_083D1464
- thumb_func_end sub_80BF820
-
- thumb_func_start sub_80BF974
-sub_80BF974: @ 80BF974
- push {r4,lr}
- movs r1, 0
- ldr r4, _080BF994 @ =gSaveBlock1
- ldr r0, _080BF998 @ =gSpecialVar_0x8004
- ldrh r2, [r0]
- ldr r3, _080BF99C @ =0x00002738
-_080BF980:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080BF9A0
- movs r0, 0x1
- b _080BF9AC
- .align 2, 0
-_080BF994: .4byte gSaveBlock1
-_080BF998: .4byte gSpecialVar_0x8004
-_080BF99C: .4byte 0x00002738
-_080BF9A0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080BF980
- movs r0, 0
-_080BF9AC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF974
-
- thumb_func_start sub_80BF9B4
-sub_80BF9B4: @ 80BF9B4
- push {r4,lr}
- ldr r0, _080BF9E0 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BF9E4 @ =gPlayerParty
- adds r0, r1
- ldr r4, _080BF9E8 @ =gStringVar1
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _080BF9EC @ =gStringVar3
- adds r1, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _080BF9F0
- bl sub_80BE478
- movs r0, 0x1
- b _080BF9F2
- .align 2, 0
-_080BF9E0: .4byte gSpecialVar_0x8004
-_080BF9E4: .4byte gPlayerParty
-_080BF9E8: .4byte gStringVar1
-_080BF9EC: .4byte gStringVar3
-_080BF9F0:
- movs r0, 0
-_080BF9F2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF9B4
-
- thumb_func_start sub_80BF9F8
-sub_80BF9F8: @ 80BF9F8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- ldr r0, _080BFAA0 @ =gSpecialVar_0x8004
- mov r9, r0
- ldrh r0, [r0]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _080BFAA4 @ =gPlayerParty
- adds r0, r6
- ldr r2, _080BFAA8 @ =gStringVar3
- movs r1, 0x2
- bl GetMonData
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- ldr r1, _080BFAAC @ =gStringVar2
- mov r10, r1
- movs r1, 0x2
- mov r2, r10
- bl GetMonData
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- bl GetMonGender
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, _080BFAB0 @ =c2_080CC144
- str r0, [sp, 0x4]
- movs r0, 0x3
- mov r1, r10
- adds r2, r5, 0
- adds r3, r4, 0
- bl DoNamingScreen
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFAA0: .4byte gSpecialVar_0x8004
-_080BFAA4: .4byte gPlayerParty
-_080BFAA8: .4byte gStringVar3
-_080BFAAC: .4byte gStringVar2
-_080BFAB0: .4byte c2_080CC144
- thumb_func_end sub_80BF9F8
-
- thumb_func_start c2_080CC144
-c2_080CC144: @ 80BFAB4
- push {lr}
- ldr r0, _080BFAD4 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BFAD8 @ =gPlayerParty
- adds r0, r1
- ldr r2, _080BFADC @ =gStringVar2
- movs r1, 0x2
- bl SetMonData
- bl c2_exit_to_overworld_1_continue_scripts_restart_music
- pop {r0}
- bx r0
- .align 2, 0
-_080BFAD4: .4byte gSpecialVar_0x8004
-_080BFAD8: .4byte gPlayerParty
-_080BFADC: .4byte gStringVar2
- thumb_func_end c2_080CC144
-
- thumb_func_start sub_80BFAE0
-sub_80BFAE0: @ 80BFAE0
- push {r4,lr}
- ldr r0, _080BFB04 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BFB08 @ =gPlayerParty
- adds r0, r1
- ldr r4, _080BFB0C @ =gStringVar1
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFB04: .4byte gSpecialVar_0x8004
-_080BFB08: .4byte gPlayerParty
-_080BFB0C: .4byte gStringVar1
- thumb_func_end sub_80BFAE0
-
- thumb_func_start sub_80BFB10
-sub_80BFB10: @ 80BFB10
- push {r4,lr}
- bl sub_80BFB94
- adds r4, r0, 0
- ldr r0, _080BFB38 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BFB3C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bne _080BFB44
- ldr r1, _080BFB40 @ =gScriptResult
- movs r0, 0
- b _080BFB48
- .align 2, 0
-_080BFB38: .4byte gSpecialVar_0x8004
-_080BFB3C: .4byte gPlayerParty
-_080BFB40: .4byte gScriptResult
-_080BFB44:
- ldr r1, _080BFB50 @ =gScriptResult
- movs r0, 0x1
-_080BFB48:
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFB50: .4byte gScriptResult
- thumb_func_end sub_80BFB10
-
- thumb_func_start sub_80BFB54
-sub_80BFB54: @ 80BFB54
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- cmp r1, 0
- beq _080BFB8A
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _080BFB6E
- movs r0, 0x2
- b _080BFB90
-_080BFB6E:
- adds r0, r1, 0
- subs r0, 0x15
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _080BFB7E
- movs r0, 0x3
- b _080BFB90
-_080BFB7E:
- adds r0, r2, 0
- subs r0, 0x29
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bls _080BFB8E
-_080BFB8A:
- movs r0, 0
- b _080BFB90
-_080BFB8E:
- movs r0, 0x4
-_080BFB90:
- pop {r1}
- bx r1
- thumb_func_end sub_80BFB54
-
- thumb_func_start sub_80BFB94
-sub_80BFB94: @ 80BFB94
- ldr r2, _080BFBAC @ =gSaveBlock2
- ldrb r0, [r2, 0xD]
- lsls r0, 24
- ldrb r1, [r2, 0xC]
- lsls r1, 16
- orrs r0, r1
- ldrb r1, [r2, 0xB]
- lsls r1, 8
- orrs r0, r1
- ldrb r1, [r2, 0xA]
- orrs r0, r1
- bx lr
- .align 2, 0
-_080BFBAC: .4byte gSaveBlock2
- thumb_func_end sub_80BFB94
-
- thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV
-CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0
- push {lr}
- ldr r1, _080BFBD0 @ =gSaveBlock1
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x1
- bne _080BFBCC
- ldr r0, _080BFBD4 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080BFBD8
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0
- beq _080BFBE0
-_080BFBCC:
- movs r0, 0
- b _080BFC0A
- .align 2, 0
-_080BFBD0: .4byte gSaveBlock1
-_080BFBD4: .4byte gSaveBlock2
-_080BFBD8:
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0x2
- bne _080BFBCC
-_080BFBE0:
- ldr r0, _080BFC04 @ =0x0000085d
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BFBFE
- movs r0, 0x83
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BFC08
-_080BFBFE:
- movs r0, 0x1
- b _080BFC0A
- .align 2, 0
-_080BFC04: .4byte 0x0000085d
-_080BFC08:
- movs r0, 0x2
-_080BFC0A:
- pop {r1}
- bx r1
- thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV
-
- thumb_func_start GetMomOrDadStringForTVMessage
-GetMomOrDadStringForTVMessage: @ 80BFC10
- push {r4,lr}
- ldr r1, _080BFC40 @ =gSaveBlock1
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x1
- bne _080BFC6C
- ldr r0, _080BFC44 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080BFC54
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _080BFC6C
- ldr r0, _080BFC48 @ =gStringVar1
- ldr r1, _080BFC4C @ =gOtherText_Mom
- bl StringCopy
- ldr r0, _080BFC50 @ =0x00004003
- movs r1, 0x1
- bl VarSet
- b _080BFC6C
- .align 2, 0
-_080BFC40: .4byte gSaveBlock1
-_080BFC44: .4byte gSaveBlock2
-_080BFC48: .4byte gStringVar1
-_080BFC4C: .4byte gOtherText_Mom
-_080BFC50: .4byte 0x00004003
-_080BFC54:
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0x2
- bne _080BFC6C
- ldr r0, _080BFCB4 @ =gStringVar1
- ldr r1, _080BFCB8 @ =gOtherText_Mom
- bl StringCopy
- ldr r0, _080BFCBC @ =0x00004003
- movs r1, 0x1
- bl VarSet
-_080BFC6C:
- ldr r4, _080BFCBC @ =0x00004003
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _080BFCAA
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- beq _080BFCC0
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bls _080BFCD4
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080BFCC0
-_080BFCAA:
- ldr r0, _080BFCB4 @ =gStringVar1
- ldr r1, _080BFCB8 @ =gOtherText_Mom
- bl StringCopy
- b _080BFD10
- .align 2, 0
-_080BFCB4: .4byte gStringVar1
-_080BFCB8: .4byte gOtherText_Mom
-_080BFCBC: .4byte 0x00004003
-_080BFCC0:
- ldr r0, _080BFCCC @ =gStringVar1
- ldr r1, _080BFCD0 @ =gOtherText_Dad
- bl StringCopy
- b _080BFD10
- .align 2, 0
-_080BFCCC: .4byte gStringVar1
-_080BFCD0: .4byte gOtherText_Dad
-_080BFCD4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BFD00
- ldr r0, _080BFCF8 @ =gStringVar1
- ldr r1, _080BFCFC @ =gOtherText_Mom
- bl StringCopy
- adds r0, r4, 0
- movs r1, 0x1
- bl VarSet
- b _080BFD10
- .align 2, 0
-_080BFCF8: .4byte gStringVar1
-_080BFCFC: .4byte gOtherText_Mom
-_080BFD00:
- ldr r0, _080BFD18 @ =gStringVar1
- ldr r1, _080BFD1C @ =gOtherText_Dad
- bl StringCopy
- adds r0, r4, 0
- movs r1, 0x2
- bl VarSet
-_080BFD10:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFD18: .4byte gStringVar1
-_080BFD1C: .4byte gOtherText_Dad
- thumb_func_end GetMomOrDadStringForTVMessage
-
- thumb_func_start sub_80BFD20
-sub_80BFD20: @ 80BFD20
- push {lr}
- ldr r0, _080BFD3C @ =0x000040bc
- movs r1, 0
- bl VarSet
- ldr r0, _080BFD40 @ =gSaveBlock1
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x5
- bl RemoveFieldObjectByLocalIdAndMap
- pop {r0}
- bx r0
- .align 2, 0
-_080BFD3C: .4byte 0x000040bc
-_080BFD40: .4byte gSaveBlock1
- thumb_func_end sub_80BFD20
-
- thumb_func_start sub_80BFD44
-sub_80BFD44: @ 80BFD44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- movs r4, 0
-_080BFD54:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 5
- adds r0, r4
- lsls r0, 2
- ldr r5, _080BFD8C @ =0x02007000
- adds r0, r5
- adds r1, r4, 0
- muls r1, r7
- add r1, r8
- movs r2, 0xE1
- lsls r2, 2
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080BFD54
- adds r4, r5, 0
- cmp r6, 0x1
- beq _080BFDBC
- cmp r6, 0x1
- bgt _080BFD90
- cmp r6, 0
- beq _080BFD9A
- b _080BFDFC
- .align 2, 0
-_080BFD8C: .4byte 0x02007000
-_080BFD90:
- cmp r6, 0x2
- beq _080BFDCC
- cmp r6, 0x3
- beq _080BFDE8
- b _080BFDFC
-_080BFD9A:
- ldr r0, _080BFDB4 @ =gSaveBlock1 + 0x2738
- movs r2, 0xE1
- lsls r2, 2
- adds r1, r4, r2
- movs r3, 0xE1
- lsls r3, 3
- adds r2, r4, r3
- ldr r5, _080BFDB8 @ =0x00000a8c
- adds r3, r4, r5
- bl sub_80BFE24
- b _080BFDFC
- .align 2, 0
-_080BFDB4: .4byte gSaveBlock1 + 0x2738
-_080BFDB8: .4byte 0x00000a8c
-_080BFDBC:
- ldr r1, _080BFDC8 @ =gSaveBlock1 + 0x2738
- movs r0, 0xE1
- lsls r0, 3
- adds r2, r4, r0
- b _080BFDD4
- .align 2, 0
-_080BFDC8: .4byte gSaveBlock1 + 0x2738
-_080BFDCC:
- movs r0, 0xE1
- lsls r0, 2
- adds r1, r4, r0
- ldr r2, _080BFDE0 @ =gSaveBlock1 + 0x2738
-_080BFDD4:
- ldr r5, _080BFDE4 @ =0x00000a8c
- adds r3, r4, r5
- adds r0, r4, 0
- bl sub_80BFE24
- b _080BFDFC
- .align 2, 0
-_080BFDE0: .4byte gSaveBlock1 + 0x2738
-_080BFDE4: .4byte 0x00000a8c
-_080BFDE8:
- movs r0, 0xE1
- lsls r0, 2
- adds r1, r5, r0
- movs r3, 0xE1
- lsls r3, 3
- adds r2, r5, r3
- ldr r3, _080BFE20 @ =gSaveBlock1 + 0x2738
- adds r0, r5, 0
- bl sub_80BFE24
-_080BFDFC:
- ldr r4, _080BFE20 @ =gSaveBlock1 + 0x2738
- adds r0, r4, 0
- bl sub_80BF588
- bl sub_80C04A0
- adds r0, r4, 0
- bl sub_80BF588
- bl sub_80C01D4
- bl sub_80C0408
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFE20: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BFD44
-
- thumb_func_start sub_80BFE24
-sub_80BFE24: @ 80BFE24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- str r0, [sp, 0x10]
- str r1, [sp, 0x14]
- str r2, [sp, 0x18]
- str r3, [sp, 0x1C]
- add r0, sp, 0x10
- str r0, [sp]
- add r0, sp, 0x14
- str r0, [sp, 0x4]
- add r0, sp, 0x18
- str r0, [sp, 0x8]
- add r0, sp, 0x1C
- str r0, [sp, 0xC]
- bl GetLinkPlayerCount
- ldr r1, _080BFEA0 @ =gUnknown_03000720
- strb r0, [r1]
-_080BFE50:
- movs r6, 0
- ldr r0, _080BFEA0 @ =gUnknown_03000720
- ldrb r1, [r0]
- cmp r6, r1
- bcs _080BFE50
- mov r10, r0
-_080BFE5C:
- cmp r6, 0
- bne _080BFE64
- ldr r2, _080BFEA4 @ =gUnknown_020387E4
- strb r6, [r2]
-_080BFE64:
- lsls r4, r6, 2
- mov r3, sp
- adds r0, r3, r4
- ldr r0, [r0]
- ldr r0, [r0]
- bl sub_80C019C
- ldr r1, _080BFEA8 @ =gUnknown_03000722
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- adds r7, r4, 0
- cmp r0, r1
- bne _080BFEAC
- ldr r1, _080BFEA4 @ =gUnknown_020387E4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- mov r2, r10
- ldrb r2, [r2]
- cmp r0, r2
- beq _080BFF58
- adds r6, 0x1
- mov r9, r6
- b _080BFF3C
- .align 2, 0
-_080BFEA0: .4byte gUnknown_03000720
-_080BFEA4: .4byte gUnknown_020387E4
-_080BFEA8: .4byte gUnknown_03000722
-_080BFEAC:
- movs r5, 0
- mov r3, r10
- ldrb r0, [r3]
- subs r0, 0x1
- adds r2, r6, 0x1
- mov r9, r2
- cmp r5, r0
- bge _080BFF22
- ldr r3, _080BFF4C @ =gUnknown_03000720
- mov r8, r3
-_080BFEC0:
- adds r0, r6, r5
- adds r4, r0, 0x1
- mov r0, r8
- ldrb r1, [r0]
- adds r0, r4, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r0, [r0]
- bl sub_80BF74C
- ldr r1, _080BFF50 @ =gUnknown_03005D38
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BFF12
- mov r2, r8
- ldrb r1, [r2]
- adds r0, r4, 0
- bl __modsi3
- adds r2, r0, 0
- lsls r0, r2, 2
- add r0, sp
- ldr r0, [r0]
- mov r3, sp
- adds r1, r3, r7
- ldr r1, [r1]
- lsls r2, 24
- lsrs r2, 24
- bl sub_80BFF68
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BFF22
-_080BFF12:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r8
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _080BFEC0
-_080BFF22:
- mov r2, r10
- ldrb r0, [r2]
- subs r0, 0x1
- cmp r5, r0
- bne _080BFF3C
- mov r3, sp
- adds r0, r3, r7
- ldr r0, [r0]
- ldr r0, [r0]
- ldr r1, _080BFF54 @ =gUnknown_03000722
- ldrb r1, [r1]
- bl sub_80BF55C
-_080BFF3C:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r6, r0, 24
- mov r2, r10
- ldrb r2, [r2]
- cmp r6, r2
- bcc _080BFE5C
- b _080BFE50
- .align 2, 0
-_080BFF4C: .4byte gUnknown_03000720
-_080BFF50: .4byte gUnknown_03005D38
-_080BFF54: .4byte gUnknown_03000722
-_080BFF58:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BFE24
-
- thumb_func_start sub_80BFF68
-sub_80BFF68: @ 80BFF68
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r4, [r0]
- ldr r6, [r1]
- movs r5, 0
- ldr r2, _080BFFA4 @ =gUnknown_03000722
- movs r1, 0
- ldrsb r1, [r2, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0]
- str r2, [sp]
- bl sub_80BFB54
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- ldr r2, [sp]
- cmp r0, 0x3
- beq _080BFFD8
- cmp r0, 0x3
- bgt _080BFFA8
- cmp r0, 0x2
- beq _080BFFAE
- b _080C0026
- .align 2, 0
-_080BFFA4: .4byte gUnknown_03000722
-_080BFFA8:
- cmp r1, 0x4
- beq _080C0000
- b _080C0026
-_080BFFAE:
- ldr r0, _080BFFD4 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r6, r1
- adds r2, r7, 0
- bl sub_80C004C
- b _080C0022
- .align 2, 0
-_080BFFD4: .4byte gUnknown_03005D38
-_080BFFD8:
- ldr r0, _080BFFFC @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r6, r1
- adds r2, r7, 0
- bl sub_80C00B4
- b _080C0022
- .align 2, 0
-_080BFFFC: .4byte gUnknown_03005D38
-_080C0000:
- ldr r0, _080C0030 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r6, r1
- adds r2, r7, 0
- bl sub_80C0134
-_080C0022:
- lsls r0, 24
- lsrs r5, r0, 24
-_080C0026:
- cmp r5, 0x1
- beq _080C0034
- movs r0, 0
- b _080C0040
- .align 2, 0
-_080C0030: .4byte gUnknown_03005D38
-_080C0034:
- ldr r0, _080C0048 @ =gUnknown_03000722
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_80BF55C
- movs r0, 0x1
-_080C0040:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C0048: .4byte gUnknown_03000722
- thumb_func_end sub_80BFF68
-
- thumb_func_start sub_80C004C
-sub_80C004C: @ 80C004C
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r0, r2, 24
- lsrs r0, 24
- bl GetLinkPlayerTrainerId
- adds r5, r0, 0
- movs r2, 0xFF
- ands r0, r2
- adds r1, r4, 0
- adds r1, 0x22
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C007C
- lsrs r0, r5, 8
- ands r0, r2
- adds r1, r4, 0
- adds r1, 0x23
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C007C
- movs r0, 0
- b _080C00AC
-_080C007C:
- adds r1, r4, 0
- adds r1, 0x20
- ldrb r0, [r1]
- adds r2, r4, 0
- adds r2, 0x22
- strb r0, [r2]
- adds r3, r4, 0
- adds r3, 0x21
- ldrb r0, [r3]
- adds r2, 0x1
- strb r0, [r2]
- strb r5, [r1]
- lsrs r0, r5, 8
- strb r0, [r3]
- adds r1, r6, 0
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r0, 0x1
- strb r0, [r6, 0x1]
-_080C00AC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C004C
-
- thumb_func_start sub_80C00B4
-sub_80C00B4: @ 80C00B4
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r0, r2, 24
- lsrs r0, 24
- bl GetLinkPlayerTrainerId
- adds r2, r0, 0
- movs r3, 0xFF
- ands r0, r3
- adds r1, r4, 0
- adds r1, 0x20
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C00E0
- lsrs r0, r2, 8
- ands r0, r3
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r0, r1
- beq _080C0100
-_080C00E0:
- movs r3, 0xFF
- adds r0, r2, 0
- ands r0, r3
- adds r1, r4, 0
- adds r1, 0x22
- lsrs r5, r2, 8
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C0104
- adds r0, r5, 0
- ands r0, r3
- adds r1, r4, 0
- adds r1, 0x23
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C0104
-_080C0100:
- movs r0, 0
- b _080C012C
-_080C0104:
- ldrb r1, [r4, 0x1E]
- adds r0, r4, 0
- adds r0, 0x20
- strb r1, [r0]
- ldrb r0, [r4, 0x1F]
- adds r1, r4, 0
- adds r1, 0x21
- strb r0, [r1]
- strb r2, [r4, 0x1E]
- strb r5, [r4, 0x1F]
- adds r1, r6, 0
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r0, 0x1
- strb r0, [r6, 0x1]
-_080C012C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C00B4
-
- thumb_func_start sub_80C0134
-sub_80C0134: @ 80C0134
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r0, r2, 24
- lsrs r0, 24
- bl GetLinkPlayerTrainerId
- adds r5, r0, 0
- movs r2, 0xFF
- ands r0, r2
- adds r1, r4, 0
- adds r1, 0x22
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C0164
- lsrs r0, r5, 8
- ands r0, r2
- adds r1, r4, 0
- adds r1, 0x23
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C0164
- movs r0, 0
- b _080C0196
-_080C0164:
- adds r1, r4, 0
- adds r1, 0x20
- ldrb r0, [r1]
- adds r2, r4, 0
- adds r2, 0x22
- strb r0, [r2]
- adds r3, r4, 0
- adds r3, 0x21
- ldrb r0, [r3]
- adds r2, 0x1
- strb r0, [r2]
- strb r5, [r1]
- lsrs r0, r5, 8
- strb r0, [r3]
- adds r1, r6, 0
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r0, 0x1
- strb r0, [r6, 0x1]
- strh r0, [r6, 0x16]
-_080C0196:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C0134
-
- thumb_func_start sub_80C019C
-sub_80C019C: @ 80C019C
- push {lr}
- adds r3, r0, 0
- movs r2, 0
-_080C01A2:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r3
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _080C01C2
- ldrb r0, [r1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bhi _080C01C2
- lsls r0, r2, 24
- asrs r0, 24
- b _080C01D0
-_080C01C2:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x17
- bls _080C01A2
- movs r0, 0x1
- negs r0, r0
-_080C01D0:
- pop {r1}
- bx r1
- thumb_func_end sub_80C019C
-
- thumb_func_start sub_80C01D4
-sub_80C01D4: @ 80C01D4
- push {r4-r6,lr}
- movs r6, 0
-_080C01D8:
- ldr r0, _080C01F8 @ =gSaveBlock1
- lsls r2, r6, 3
- adds r1, r2, r6
- lsls r1, 2
- adds r1, r0
- ldr r0, _080C01FC @ =0x00002738
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x29
- bls _080C01EE
- b _080C038C
-_080C01EE:
- lsls r0, 2
- ldr r1, _080C0200 @ =_080C0204
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C01F8: .4byte gSaveBlock1
-_080C01FC: .4byte 0x00002738
-_080C0200: .4byte _080C0204
- .align 2, 0
-_080C0204:
- .4byte _080C0394
- .4byte _080C02AC
- .4byte _080C0394
- .4byte _080C02BC
- .4byte _080C02CC
- .4byte _080C02DC
- .4byte _080C02F8
- .4byte _080C0308
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C0324
- .4byte _080C0394
- .4byte _080C0334
- .4byte _080C0350
- .4byte _080C0368
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C0394
-_080C02AC:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C02B8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrh r0, [r0, 0x2]
- b _080C035A
- .align 2, 0
-_080C02B8: .4byte gSaveBlock1 + 0x2738
-_080C02BC:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C02C8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrh r0, [r0, 0x2]
- b _080C035A
- .align 2, 0
-_080C02C8: .4byte gSaveBlock1 + 0x2738
-_080C02CC:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C02D8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrh r0, [r0, 0x6]
- b _080C035A
- .align 2, 0
-_080C02D8: .4byte gSaveBlock1 + 0x2738
-_080C02DC:
- adds r4, r2, r6
- lsls r4, 2
- ldr r0, _080C02F4 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- ldrh r0, [r4, 0x2]
- lsls r5, r6, 24
- lsrs r5, 24
- adds r1, r5, 0
- bl sub_80C03C8
- ldrh r0, [r4, 0x1C]
- b _080C037E
- .align 2, 0
-_080C02F4: .4byte gSaveBlock1 + 0x2738
-_080C02F8:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C0304 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrh r0, [r0, 0x2]
- b _080C035A
- .align 2, 0
-_080C0304: .4byte gSaveBlock1 + 0x2738
-_080C0308:
- adds r4, r2, r6
- lsls r4, 2
- ldr r0, _080C0320 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- ldrh r0, [r4, 0xA]
- lsls r5, r6, 24
- lsrs r5, 24
- adds r1, r5, 0
- bl sub_80C03C8
- ldrh r0, [r4, 0x14]
- b _080C037E
- .align 2, 0
-_080C0320: .4byte gSaveBlock1 + 0x2738
-_080C0324:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C0330 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrh r0, [r0, 0x10]
- b _080C035A
- .align 2, 0
-_080C0330: .4byte gSaveBlock1 + 0x2738
-_080C0334:
- adds r4, r2, r6
- lsls r4, 2
- ldr r0, _080C034C @ =gSaveBlock1 + 0x2738
- adds r4, r0
- ldrh r0, [r4, 0xC]
- lsls r5, r6, 24
- lsrs r5, 24
- adds r1, r5, 0
- bl sub_80C03C8
- ldrh r0, [r4, 0xE]
- b _080C037E
- .align 2, 0
-_080C034C: .4byte gSaveBlock1 + 0x2738
-_080C0350:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C0364 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrh r0, [r0, 0x4]
-_080C035A:
- lsls r1, r6, 24
- lsrs r1, 24
- bl sub_80C03C8
- b _080C0394
- .align 2, 0
-_080C0364: .4byte gSaveBlock1 + 0x2738
-_080C0368:
- adds r4, r2, r6
- lsls r4, 2
- ldr r0, _080C0388 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- ldrh r0, [r4, 0x8]
- lsls r5, r6, 24
- lsrs r5, 24
- adds r1, r5, 0
- bl sub_80C03C8
- ldrh r0, [r4, 0x4]
-_080C037E:
- adds r1, r5, 0
- bl sub_80C03C8
- b _080C0394
- .align 2, 0
-_080C0388: .4byte gSaveBlock1 + 0x2738
-_080C038C:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_80C03A8
-_080C0394:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x17
- bhi _080C03A0
- b _080C01D8
-_080C03A0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80C01D4
-
- thumb_func_start sub_80C03A8
-sub_80C03A8: @ 80C03A8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C03C0 @ =gSaveBlock1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080C03C4 @ =0x00002739
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080C03C0: .4byte gSaveBlock1
-_080C03C4: .4byte 0x00002739
- thumb_func_end sub_80C03A8
-
- thumb_func_start sub_80C03C8
-sub_80C03C8: @ 80C03C8
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D90
- lsls r0, 24
- asrs r2, r0, 24
- cmp r2, 0
- bne _080C03F8
- ldr r1, _080C0400 @ =gSaveBlock1
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _080C0404 @ =0x00002739
- adds r0, r1
- strb r2, [r0]
-_080C03F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0400: .4byte gSaveBlock1
-_080C0404: .4byte 0x00002739
- thumb_func_end sub_80C03C8
-
- thumb_func_start sub_80C0408
-sub_80C0408: @ 80C0408
- push {r4-r6,lr}
- ldr r0, _080C044C @ =0x00000804
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C0444
- movs r2, 0
- ldr r6, _080C0450 @ =gSaveBlock1
- ldr r4, _080C0454 @ =0x00002739
- movs r3, 0
- ldr r5, _080C0458 @ =0x00002738
-_080C0422:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r6
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080C0436
- cmp r0, 0x29
- bne _080C043A
-_080C0436:
- adds r0, r1, r4
- strb r3, [r0]
-_080C043A:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x17
- bls _080C0422
-_080C0444:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C044C: .4byte 0x00000804
-_080C0450: .4byte gSaveBlock1
-_080C0454: .4byte 0x00002739
-_080C0458: .4byte 0x00002738
- thumb_func_end sub_80C0408
-
- thumb_func_start sub_80C045C
-sub_80C045C: @ 80C045C
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _080C0494 @ =gSaveBlock1
-_080C0462:
- lsls r0, r5, 3
- adds r0, r5
- lsls r0, 2
- adds r4, r0, r6
- ldr r1, _080C0498 @ =0x00002738
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80BFB54
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080C0484
- ldr r0, _080C049C @ =0x00002739
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
-_080C0484:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _080C0462
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0494: .4byte gSaveBlock1
-_080C0498: .4byte 0x00002738
-_080C049C: .4byte 0x00002739
- thumb_func_end sub_80C045C
-
- thumb_func_start sub_80C04A0
-sub_80C04A0: @ 80C04A0
- push {r4,r5,lr}
- movs r3, 0
- movs r2, 0x5
- ldr r5, _080C0508 @ =gSaveBlock1
- ldr r4, _080C050C @ =0x00002738
-_080C04AA:
- lsls r0, r2, 24
- asrs r1, r0, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C04C8
- lsls r0, r3, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r3, r0, 24
-_080C04C8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x17
- ble _080C04AA
- movs r2, 0
- lsls r0, r3, 24
- asrs r0, 24
- movs r1, 0x5
- subs r0, r1, r0
- cmp r2, r0
- bge _080C0502
- adds r5, r0, 0
-_080C04E4:
- lsls r1, r2, 24
- asrs r4, r1, 24
- movs r0, 0xA0
- lsls r0, 19
- adds r1, r0
- lsrs r1, 24
- ldr r0, _080C0510 @ =gSaveBlock1 + 0x2738
- bl sub_80BF55C
- adds r4, 0x1
- lsls r4, 24
- lsrs r2, r4, 24
- asrs r4, 24
- cmp r4, r5
- blt _080C04E4
-_080C0502:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0508: .4byte gSaveBlock1
-_080C050C: .4byte 0x00002738
-_080C0510: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80C04A0
-
- thumb_func_start sub_80C0514
-sub_80C0514: @ 80C0514
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r5, r2, 24
- movs r4, 0
-_080C0524:
- lsls r0, r4, 6
- ldr r6, _080C0550 @ =0x02007000
- adds r0, r6
- adds r1, r4, 0
- muls r1, r7
- add r1, r8
- movs r2, 0x40
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080C0524
- adds r4, r6, 0
- cmp r5, 0x1
- beq _080C0578
- cmp r5, 0x1
- bgt _080C0554
- cmp r5, 0
- beq _080C055E
- b _080C05AC
- .align 2, 0
-_080C0550: .4byte 0x02007000
-_080C0554:
- cmp r5, 0x2
- beq _080C0584
- cmp r5, 0x3
- beq _080C059C
- b _080C05AC
-_080C055E:
- ldr r0, _080C0574 @ =gSaveBlock1 + 0x2ABC
- adds r1, r4, 0
- adds r1, 0x40
- adds r2, r4, 0
- adds r2, 0x80
- adds r3, r4, 0
- adds r3, 0xC0
- bl sub_80C05C4
- b _080C05AC
- .align 2, 0
-_080C0574: .4byte gSaveBlock1 + 0x2ABC
-_080C0578:
- ldr r1, _080C0580 @ =gSaveBlock1 + 0x2ABC
- adds r2, r4, 0
- adds r2, 0x80
- b _080C058A
- .align 2, 0
-_080C0580: .4byte gSaveBlock1 + 0x2ABC
-_080C0584:
- adds r1, r4, 0
- adds r1, 0x40
- ldr r2, _080C0598 @ =gSaveBlock1 + 0x2ABC
-_080C058A:
- adds r3, r4, 0
- adds r3, 0xC0
- adds r0, r4, 0
- bl sub_80C05C4
- b _080C05AC
- .align 2, 0
-_080C0598: .4byte gSaveBlock1 + 0x2ABC
-_080C059C:
- adds r1, r6, 0
- adds r1, 0x40
- adds r2, r6, 0
- adds r2, 0x80
- ldr r3, _080C05C0 @ =gSaveBlock1 + 0x2ABC
- adds r0, r6, 0
- bl sub_80C05C4
-_080C05AC:
- bl sub_80C0750
- bl sub_80C0788
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C05C0: .4byte gSaveBlock1 + 0x2ABC
- thumb_func_end sub_80C0514
-
- thumb_func_start sub_80C05C4
-sub_80C05C4: @ 80C05C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r0, [sp, 0x10]
- str r1, [sp, 0x14]
- str r2, [sp, 0x18]
- str r3, [sp, 0x1C]
- add r0, sp, 0x10
- str r0, [sp]
- add r0, sp, 0x14
- str r0, [sp, 0x4]
- add r0, sp, 0x18
- str r0, [sp, 0x8]
- add r0, sp, 0x1C
- str r0, [sp, 0xC]
- bl GetLinkPlayerCount
- ldr r1, _080C0600 @ =gUnknown_03000721
- strb r0, [r1]
- movs r0, 0
- mov r10, r0
-_080C05F4:
- movs r7, 0
- mov r1, r10
- adds r1, 0x1
- str r1, [sp, 0x20]
- b _080C068C
- .align 2, 0
-_080C0600: .4byte gUnknown_03000721
-_080C0604:
- lsls r4, r7, 2
- mov r1, sp
- adds r0, r1, r4
- ldr r0, [r0]
- ldr r0, [r0]
- mov r1, r10
- bl sub_80C0730
- ldr r1, _080C06B0 @ =gUnknown_03000722
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- mov r8, r4
- adds r1, r7, 0x1
- mov r9, r1
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080C0686
- movs r5, 0
- ldr r1, _080C06B4 @ =gUnknown_03000721
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- bge _080C0686
- adds r6, r1, 0
-_080C0638:
- adds r0, r7, r5
- adds r4, r0, 0x1
- ldrb r1, [r6]
- adds r0, r4, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r0, [r0]
- bl sub_80BEBC8
- ldr r1, _080C06B8 @ =gUnknown_03005D38
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080C0678
- ldrb r1, [r6]
- adds r0, r4, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- mov r1, sp
- add r1, r8
- ldr r1, [r1]
- bl sub_80C06BC
-_080C0678:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r6]
- subs r0, 0x1
- cmp r5, r0
- blt _080C0638
-_080C0686:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r7, r0, 24
-_080C068C:
- ldr r0, _080C06B4 @ =gUnknown_03000721
- ldrb r0, [r0]
- cmp r7, r0
- bcc _080C0604
- ldr r1, [sp, 0x20]
- lsls r0, r1, 24
- lsrs r0, 24
- mov r10, r0
- cmp r0, 0xF
- bls _080C05F4
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C06B0: .4byte gUnknown_03000722
-_080C06B4: .4byte gUnknown_03000721
-_080C06B8: .4byte gUnknown_03005D38
- thumb_func_end sub_80C05C4
-
- thumb_func_start sub_80C06BC
-sub_80C06BC: @ 80C06BC
- push {lr}
- ldr r0, [r0]
- ldr r1, [r1]
- ldr r2, _080C06E0 @ =gUnknown_03000722
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r2, 2
- adds r1, r2
- ldr r2, _080C06E4 @ =gUnknown_03005D38
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- bl sub_80C06E8
- pop {r0}
- bx r0
- .align 2, 0
-_080C06E0: .4byte gUnknown_03000722
-_080C06E4: .4byte gUnknown_03005D38
- thumb_func_end sub_80C06BC
-
- thumb_func_start sub_80C06E8
-sub_80C06E8: @ 80C06E8
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- ldrb r3, [r5]
- adds r0, r3, 0
- cmp r0, 0
- bne _080C06FE
-_080C06FA:
- movs r0, 0
- b _080C072A
-_080C06FE:
- movs r1, 0
- adds r2, r3, 0
- adds r3, r0, 0
-_080C0704:
- lsls r0, r1, 2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, r3
- beq _080C06FA
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080C0704
- lsls r0, r6, 24
- asrs r0, 22
- adds r0, r4
- strb r2, [r0]
- movs r1, 0x1
- strb r1, [r0, 0x1]
- ldrh r1, [r5, 0x2]
- strh r1, [r0, 0x2]
- movs r0, 0x1
-_080C072A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C06E8
-
- thumb_func_start sub_80C0730
-sub_80C0730: @ 80C0730
- push {lr}
- lsls r1, 24
- lsrs r2, r1, 24
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080C0746
- lsls r0, r2, 24
- asrs r0, 24
- b _080C074A
-_080C0746:
- movs r0, 0x1
- negs r0, r0
-_080C074A:
- pop {r1}
- bx r1
- thumb_func_end sub_80C0730
-
- thumb_func_start sub_80C0750
-sub_80C0750: @ 80C0750
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080C0780 @ =gSaveBlock1
-_080C0756:
- lsls r0, r4, 2
- adds r0, r5
- ldr r1, _080C0784 @ =0x00002abc
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bls _080C076A
- adds r0, r4, 0
- bl sub_80BEC10
-_080C076A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080C0756
- bl sub_80BEC40
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0780: .4byte gSaveBlock1
-_080C0784: .4byte 0x00002abc
- thumb_func_end sub_80C0750
-
- thumb_func_start sub_80C0788
-sub_80C0788: @ 80C0788
- push {r4,lr}
- ldr r0, _080C07B8 @ =0x00000804
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C07B2
- movs r1, 0
- ldr r4, _080C07BC @ =gSaveBlock1
- ldr r3, _080C07C0 @ =0x00002abd
- movs r2, 0
-_080C07A0:
- lsls r0, r1, 2
- adds r0, r4
- adds r0, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080C07A0
-_080C07B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C07B8: .4byte 0x00000804
-_080C07BC: .4byte gSaveBlock1
-_080C07C0: .4byte 0x00002abd
- thumb_func_end sub_80C0788
-
- thumb_func_start DoTVShow
-DoTVShow: @ 80C07C4
- push {lr}
- ldr r2, _080C07F8 @ =gSaveBlock1
- ldr r0, _080C07FC @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldr r2, _080C0800 @ =0x00002739
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C07E0
- b _080C08F8
-_080C07E0:
- subs r2, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x28
- bls _080C07EE
- b _080C08F8
-_080C07EE:
- lsls r0, 2
- ldr r1, _080C0804 @ =_080C0808
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C07F8: .4byte gSaveBlock1
-_080C07FC: .4byte gSpecialVar_0x8004
-_080C0800: .4byte 0x00002739
-_080C0804: .4byte _080C0808
- .align 2, 0
-_080C0808:
- .4byte _080C08AC
- .4byte _080C08B2
- .4byte _080C08B8
- .4byte _080C08BE
- .4byte _080C08E2
- .4byte _080C08CA
- .4byte _080C08D0
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08D6
- .4byte _080C08DC
- .4byte _080C08E8
- .4byte _080C08EE
- .4byte _080C08F4
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08C4
-_080C08AC:
- bl DoTVShowPokemonFanClubLetter
- b _080C08F8
-_080C08B2:
- bl DoTVShowRecentHappenings
- b _080C08F8
-_080C08B8:
- bl DoTVShowPokemonFanClubOpinions
- b _080C08F8
-_080C08BE:
- bl nullsub_22
- b _080C08F8
-_080C08C4:
- bl DoTVShowPokemonNewsMassOutbreak
- b _080C08F8
-_080C08CA:
- bl DoTVShowBravoTrainerPokemonProfile
- b _080C08F8
-_080C08D0:
- bl DoTVShowBravoTrainerBattleTowerProfile
- b _080C08F8
-_080C08D6:
- bl DoTVShowPokemonTodaySuccessfulCapture
- b _080C08F8
-_080C08DC:
- bl DoTVShowTodaysSmartShopper
- b _080C08F8
-_080C08E2:
- bl DoTVShowTheNameRaterShow
- b _080C08F8
-_080C08E8:
- bl DoTVShowPokemonTodayFailedCapture
- b _080C08F8
-_080C08EE:
- bl DoTVShowPokemonAngler
- b _080C08F8
-_080C08F4:
- bl DoTVShowTheWorldOfMasters
-_080C08F8:
- pop {r0}
- bx r0
- thumb_func_end DoTVShow
-
- thumb_func_start TVShowConvertInternationalString
-TVShowConvertInternationalString: @ 80C08FC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r2, 24
- lsrs r4, 24
- bl StringCopy
- cmp r4, 0x1
- bhi _080C0914
- adds r0, r5, 0
- movs r1, 0x1
- bl ConvertInternationalString
-_080C0914:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end TVShowConvertInternationalString
-
- thumb_func_start DoTVShowBravoTrainerPokemonProfile
-DoTVShowBravoTrainerPokemonProfile: @ 80C091C
- push {r4,r5,lr}
- ldr r0, _080C0948 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C094C @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C0950 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C0954 @ =gUnknown_020387E8
- ldrb r5, [r0]
- cmp r5, 0x8
- bls _080C093C
- b _080C0B7A
-_080C093C:
- lsls r0, r5, 2
- ldr r1, _080C0958 @ =_080C095C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0948: .4byte gSpecialVar_0x8004
-_080C094C: .4byte gSaveBlock1 + 0x2738
-_080C0950: .4byte gScriptResult
-_080C0954: .4byte gUnknown_020387E8
-_080C0958: .4byte _080C095C
- .align 2, 0
-_080C095C:
- .4byte _080C0980
- .4byte _080C09D8
- .4byte _080C0A10
- .4byte _080C0A40
- .4byte _080C0A74
- .4byte _080C0AA8
- .4byte _080C0AEC
- .4byte _080C0B34
- .4byte _080C0B64
-_080C0980:
- ldr r0, _080C09C0 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl TVShowConvertInternationalString
- ldrb r1, [r4, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x1
- bl CopyContestCategoryToStringVar
- ldrb r1, [r4, 0x13]
- lsls r1, 27
- lsrs r1, 30
- movs r0, 0x2
- bl sub_80BEF10
- ldrh r1, [r4, 0x2]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080C09C4 @ =gSpeciesNames
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _080C09CC
- ldr r1, _080C09C8 @ =gUnknown_020387E8
- movs r0, 0x8
- b _080C0B78
- .align 2, 0
-_080C09C0: .4byte gStringVar1
-_080C09C4: .4byte gSpeciesNames
-_080C09C8: .4byte gUnknown_020387E8
-_080C09CC:
- ldr r1, _080C09D4 @ =gUnknown_020387E8
- movs r0, 0x1
- b _080C0B78
- .align 2, 0
-_080C09D4: .4byte gUnknown_020387E8
-_080C09D8:
- ldr r0, _080C0A04 @ =gStringVar1
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0A08 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C0A0C @ =gStringVar2
- adds r1, r4, 0
- adds r1, 0x8
- ldrb r2, [r4, 0x1F]
- bl TVShowConvertInternationalString
- ldrb r1, [r4, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x2
- bl CopyContestCategoryToStringVar
- b _080C0B74
- .align 2, 0
-_080C0A04: .4byte gStringVar1
-_080C0A08: .4byte gSpeciesNames
-_080C0A0C: .4byte gStringVar2
-_080C0A10:
- ldr r0, _080C0A2C @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl TVShowConvertInternationalString
- ldrb r1, [r4, 0x13]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _080C0A34
- ldr r1, _080C0A30 @ =gUnknown_020387E8
- movs r0, 0x3
- b _080C0B78
- .align 2, 0
-_080C0A2C: .4byte gStringVar1
-_080C0A30: .4byte gUnknown_020387E8
-_080C0A34:
- ldr r1, _080C0A3C @ =gUnknown_020387E8
- movs r0, 0x4
- b _080C0B78
- .align 2, 0
-_080C0A3C: .4byte gUnknown_020387E8
-_080C0A40:
- ldr r0, _080C0A68 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl TVShowConvertInternationalString
- ldr r0, _080C0A6C @ =gStringVar2
- ldrh r1, [r4, 0x4]
- bl sub_80EB3FC
- ldrb r1, [r4, 0x13]
- lsls r1, 25
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x2
- bl sub_80BF088
- ldr r1, _080C0A70 @ =gUnknown_020387E8
- movs r0, 0x5
- b _080C0B78
- .align 2, 0
-_080C0A68: .4byte gStringVar1
-_080C0A6C: .4byte gStringVar2
-_080C0A70: .4byte gUnknown_020387E8
-_080C0A74:
- ldr r0, _080C0A9C @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl TVShowConvertInternationalString
- ldr r0, _080C0AA0 @ =gStringVar2
- ldrh r1, [r4, 0x4]
- bl sub_80EB3FC
- ldrb r1, [r4, 0x13]
- lsls r1, 25
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x2
- bl sub_80BF088
- ldr r1, _080C0AA4 @ =gUnknown_020387E8
- movs r0, 0x5
- b _080C0B78
- .align 2, 0
-_080C0A9C: .4byte gStringVar1
-_080C0AA0: .4byte gStringVar2
-_080C0AA4: .4byte gUnknown_020387E8
-_080C0AA8:
- ldr r0, _080C0AD4 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl TVShowConvertInternationalString
- ldrb r1, [r4, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x1
- bl CopyContestCategoryToStringVar
- ldr r0, _080C0AD8 @ =gStringVar3
- ldrh r1, [r4, 0x6]
- bl sub_80EB3FC
- ldrh r0, [r4, 0x14]
- cmp r0, 0
- beq _080C0AE0
- ldr r1, _080C0ADC @ =gUnknown_020387E8
- movs r0, 0x6
- b _080C0B78
- .align 2, 0
-_080C0AD4: .4byte gStringVar1
-_080C0AD8: .4byte gStringVar3
-_080C0ADC: .4byte gUnknown_020387E8
-_080C0AE0:
- ldr r1, _080C0AE8 @ =gUnknown_020387E8
- movs r0, 0x7
- b _080C0B78
- .align 2, 0
-_080C0AE8: .4byte gUnknown_020387E8
-_080C0AEC:
- ldr r0, _080C0B1C @ =gStringVar1
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0B20 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C0B24 @ =gStringVar2
- ldrh r2, [r4, 0x14]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080C0B28 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C0B2C @ =gStringVar3
- ldrh r1, [r4, 0x6]
- bl sub_80EB3FC
- ldr r1, _080C0B30 @ =gUnknown_020387E8
- movs r0, 0x7
- b _080C0B78
- .align 2, 0
-_080C0B1C: .4byte gStringVar1
-_080C0B20: .4byte gSpeciesNames
-_080C0B24: .4byte gStringVar2
-_080C0B28: .4byte gMoveNames
-_080C0B2C: .4byte gStringVar3
-_080C0B30: .4byte gUnknown_020387E8
-_080C0B34:
- ldr r0, _080C0B58 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl TVShowConvertInternationalString
- ldr r0, _080C0B5C @ =gStringVar2
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0B60 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- bl TVShowDone
- b _080C0B7A
- .align 2, 0
-_080C0B58: .4byte gStringVar1
-_080C0B5C: .4byte gStringVar2
-_080C0B60: .4byte gSpeciesNames
-_080C0B64:
- ldr r0, _080C0B8C @ =gStringVar1
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0B90 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
-_080C0B74:
- ldr r1, _080C0B94 @ =gUnknown_020387E8
- movs r0, 0x2
-_080C0B78:
- strb r0, [r1]
-_080C0B7A:
- ldr r0, _080C0B98 @ =gUnknown_083D1524
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0B8C: .4byte gStringVar1
-_080C0B90: .4byte gSpeciesNames
-_080C0B94: .4byte gUnknown_020387E8
-_080C0B98: .4byte gUnknown_083D1524
- thumb_func_end DoTVShowBravoTrainerPokemonProfile
-
- thumb_func_start DoTVShowBravoTrainerBattleTowerProfile
-DoTVShowBravoTrainerBattleTowerProfile: @ 80C0B9C
- push {r4,r5,lr}
- ldr r0, _080C0BC8 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C0BCC @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C0BD0 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C0BD4 @ =gUnknown_020387E8
- ldrb r5, [r0]
- adds r2, r0, 0
- cmp r5, 0xE
- bls _080C0BBE
- b _080C0DDE
-_080C0BBE:
- lsls r0, r5, 2
- ldr r1, _080C0BD8 @ =_080C0BDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0BC8: .4byte gSpecialVar_0x8004
-_080C0BCC: .4byte gSaveBlock1 + 0x2738
-_080C0BD0: .4byte gScriptResult
-_080C0BD4: .4byte gUnknown_020387E8
-_080C0BD8: .4byte _080C0BDC
- .align 2, 0
-_080C0BDC:
- .4byte _080C0C18
- .4byte _080C0C5C
- .4byte _080C0C8C
- .4byte _080C0CB0
- .4byte _080C0CDC
- .4byte _080C0D24
- .4byte _080C0D30
- .4byte _080C0D3C
- .4byte _080C0D42
- .4byte _080C0D42
- .4byte _080C0D42
- .4byte _080C0D5C
- .4byte _080C0D88
- .4byte _080C0D88
- .4byte _080C0DC0
-_080C0C18:
- ldr r0, _080C0C40 @ =gStringVar1
- adds r1, r4, 0x2
- ldrb r2, [r4, 0x1D]
- bl TVShowConvertInternationalString
- ldr r0, _080C0C44 @ =gStringVar2
- ldrh r2, [r4, 0xA]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0C48 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrh r0, [r4, 0x16]
- cmp r0, 0x6
- bls _080C0C50
- ldr r1, _080C0C4C @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0C40: .4byte gStringVar1
-_080C0C44: .4byte gStringVar2
-_080C0C48: .4byte gSpeciesNames
-_080C0C4C: .4byte gUnknown_020387E8
-_080C0C50:
- ldr r1, _080C0C58 @ =gUnknown_020387E8
- movs r0, 0x2
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0C58: .4byte gUnknown_020387E8
-_080C0C5C:
- ldrb r1, [r4, 0x1A]
- movs r0, 0
- bl sub_80BF088
- ldrh r1, [r4, 0x16]
- movs r0, 0x1
- bl sub_80BF088
- ldrb r0, [r4, 0x1C]
- cmp r0, 0x1
- bne _080C0C80
- ldr r1, _080C0C7C @ =gUnknown_020387E8
- movs r0, 0x3
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0C7C: .4byte gUnknown_020387E8
-_080C0C80:
- ldr r1, _080C0C88 @ =gUnknown_020387E8
- movs r0, 0x4
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0C88: .4byte gUnknown_020387E8
-_080C0C8C:
- ldr r0, _080C0CAC @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0xC
- ldrb r2, [r4, 0x1D]
- bl TVShowConvertInternationalString
- ldrh r1, [r4, 0x16]
- adds r1, 0x1
- movs r0, 0x1
- bl sub_80BF088
-_080C0CA2:
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- beq _080C0CFE
- b _080C0D18
- .align 2, 0
-_080C0CAC: .4byte gStringVar1
-_080C0CB0:
- ldr r0, _080C0CD0 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0xC
- ldrb r2, [r4, 0x1D]
- bl TVShowConvertInternationalString
- ldr r0, _080C0CD4 @ =gStringVar2
- ldrh r2, [r4, 0x14]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0CD8 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- b _080C0CA2
- .align 2, 0
-_080C0CD0: .4byte gStringVar1
-_080C0CD4: .4byte gStringVar2
-_080C0CD8: .4byte gSpeciesNames
-_080C0CDC:
- ldr r0, _080C0D08 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0xC
- ldrb r2, [r4, 0x1D]
- bl TVShowConvertInternationalString
- ldr r0, _080C0D0C @ =gStringVar2
- ldrh r2, [r4, 0x14]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0D10 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- bne _080C0D18
-_080C0CFE:
- ldr r1, _080C0D14 @ =gUnknown_020387E8
- movs r0, 0x5
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D08: .4byte gStringVar1
-_080C0D0C: .4byte gStringVar2
-_080C0D10: .4byte gSpeciesNames
-_080C0D14: .4byte gUnknown_020387E8
-_080C0D18:
- ldr r1, _080C0D20 @ =gUnknown_020387E8
- movs r0, 0x6
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D20: .4byte gUnknown_020387E8
-_080C0D24:
- ldr r0, _080C0D2C @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0xC
- b _080C0D46
- .align 2, 0
-_080C0D2C: .4byte gStringVar1
-_080C0D30:
- ldr r0, _080C0D38 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0xC
- b _080C0D46
- .align 2, 0
-_080C0D38: .4byte gStringVar1
-_080C0D3C:
- movs r0, 0xB
- strb r0, [r2]
- b _080C0DDE
-_080C0D42:
- ldr r0, _080C0D54 @ =gStringVar1
- adds r1, r4, 0x2
-_080C0D46:
- ldrb r2, [r4, 0x1D]
- bl TVShowConvertInternationalString
- ldr r1, _080C0D58 @ =gUnknown_020387E8
- movs r0, 0xB
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D54: .4byte gStringVar1
-_080C0D58: .4byte gUnknown_020387E8
-_080C0D5C:
- ldr r0, _080C0D74 @ =gStringVar1
- ldrh r1, [r4, 0x18]
- bl sub_80EB3FC
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- bne _080C0D7C
- ldr r1, _080C0D78 @ =gUnknown_020387E8
- movs r0, 0xC
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D74: .4byte gStringVar1
-_080C0D78: .4byte gUnknown_020387E8
-_080C0D7C:
- ldr r1, _080C0D84 @ =gUnknown_020387E8
- movs r0, 0xD
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D84: .4byte gUnknown_020387E8
-_080C0D88:
- ldr r0, _080C0DB0 @ =gStringVar1
- ldrh r1, [r4, 0x18]
- bl sub_80EB3FC
- ldr r0, _080C0DB4 @ =gStringVar2
- adds r1, r4, 0x2
- ldrb r2, [r4, 0x1D]
- bl TVShowConvertInternationalString
- ldr r0, _080C0DB8 @ =gStringVar3
- adds r1, r4, 0
- adds r1, 0xC
- ldrb r2, [r4, 0x1D]
- bl TVShowConvertInternationalString
- ldr r1, _080C0DBC @ =gUnknown_020387E8
- movs r0, 0xE
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0DB0: .4byte gStringVar1
-_080C0DB4: .4byte gStringVar2
-_080C0DB8: .4byte gStringVar3
-_080C0DBC: .4byte gUnknown_020387E8
-_080C0DC0:
- ldr r0, _080C0DF0 @ =gStringVar1
- adds r1, r4, 0x2
- ldrb r2, [r4, 0x1D]
- bl TVShowConvertInternationalString
- ldr r0, _080C0DF4 @ =gStringVar2
- ldrh r2, [r4, 0xA]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0DF8 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- bl TVShowDone
-_080C0DDE:
- ldr r0, _080C0DFC @ =gUnknown_083D1548
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0DF0: .4byte gStringVar1
-_080C0DF4: .4byte gStringVar2
-_080C0DF8: .4byte gSpeciesNames
-_080C0DFC: .4byte gUnknown_083D1548
- thumb_func_end DoTVShowBravoTrainerBattleTowerProfile
-
- thumb_func_start DoTVShowTodaysSmartShopper
-DoTVShowTodaysSmartShopper: @ 80C0E00
- push {r4-r6,lr}
- ldr r0, _080C0E2C @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C0E30 @ =gSaveBlock1 + 0x2738
- adds r5, r0, r1
- ldr r1, _080C0E34 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C0E38 @ =gUnknown_020387E8
- ldrb r6, [r0]
- adds r2, r0, 0
- cmp r6, 0xC
- bls _080C0E22
- b _080C1014
-_080C0E22:
- lsls r0, r6, 2
- ldr r1, _080C0E3C @ =_080C0E40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0E2C: .4byte gSpecialVar_0x8004
-_080C0E30: .4byte gSaveBlock1 + 0x2738
-_080C0E34: .4byte gScriptResult
-_080C0E38: .4byte gUnknown_020387E8
-_080C0E3C: .4byte _080C0E40
- .align 2, 0
-_080C0E40:
- .4byte _080C0E74
- .4byte _080C0EB0
- .4byte _080C0EF8
- .4byte _080C0F0A
- .4byte _080C0EF8
- .4byte _080C0EF8
- .4byte _080C0F34
- .4byte _080C0F64
- .4byte _080C0F94
- .4byte _080C0FA0
- .4byte _080C0FAE
- .4byte _080C0FC0
- .4byte _080C1004
-_080C0E74:
- ldr r0, _080C0E98 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x3]
- bl TVShowConvertInternationalString
- ldr r0, _080C0E9C @ =gStringVar2
- ldrb r1, [r5, 0x12]
- movs r2, 0
- bl sub_80FBFB4
- ldrh r0, [r5, 0xC]
- cmp r0, 0xFE
- bls _080C0EA4
- ldr r1, _080C0EA0 @ =gUnknown_020387E8
- movs r0, 0xB
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0E98: .4byte gStringVar1
-_080C0E9C: .4byte gStringVar2
-_080C0EA0: .4byte gUnknown_020387E8
-_080C0EA4:
- ldr r1, _080C0EAC @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0EAC: .4byte gUnknown_020387E8
-_080C0EB0:
- ldr r0, _080C0EEC @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x3]
- bl TVShowConvertInternationalString
- ldr r4, _080C0EF0 @ =gStringVar2
- ldrh r0, [r5, 0x6]
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrh r1, [r5, 0xC]
- movs r0, 0x2
- bl sub_80BF088
- ldr r4, _080C0EF4 @ =gUnknown_020387E8
- bl Random
- ldrb r2, [r4]
- adds r2, 0x1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r0, r2
- strb r0, [r4]
- b _080C1014
- .align 2, 0
-_080C0EEC: .4byte gStringVar1
-_080C0EF0: .4byte gStringVar2
-_080C0EF4: .4byte gUnknown_020387E8
-_080C0EF8:
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- beq _080C0F04
- movs r0, 0x6
- strb r0, [r2]
- b _080C1014
-_080C0F04:
- movs r0, 0xA
- strb r0, [r2]
- b _080C1014
-_080C0F0A:
- ldrh r1, [r5, 0xC]
- adds r1, 0x1
- movs r0, 0x2
- bl sub_80BF088
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- beq _080C0F28
- ldr r1, _080C0F24 @ =gUnknown_020387E8
- movs r0, 0x6
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0F24: .4byte gUnknown_020387E8
-_080C0F28:
- ldr r1, _080C0F30 @ =gUnknown_020387E8
- movs r0, 0xA
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0F30: .4byte gUnknown_020387E8
-_080C0F34:
- ldr r4, _080C0F5C @ =gStringVar2
- ldrh r0, [r5, 0x8]
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrh r1, [r5, 0xE]
- movs r0, 0x2
- bl sub_80BF088
- ldrh r0, [r5, 0xA]
- cmp r0, 0
- beq _080C0F7C
- ldr r1, _080C0F60 @ =gUnknown_020387E8
- movs r0, 0x7
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0F5C: .4byte gStringVar2
-_080C0F60: .4byte gUnknown_020387E8
-_080C0F64:
- ldr r4, _080C0F8C @ =gStringVar2
- ldrh r0, [r5, 0xA]
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrh r1, [r5, 0x10]
- movs r0, 0x2
- bl sub_80BF088
-_080C0F7C:
- ldrb r0, [r5, 0x2]
- cmp r0, 0x1
- beq _080C0FE2
- ldr r1, _080C0F90 @ =gUnknown_020387E8
- movs r0, 0x9
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0F8C: .4byte gStringVar2
-_080C0F90: .4byte gUnknown_020387E8
-_080C0F94:
- ldrh r0, [r5, 0xC]
- cmp r0, 0xFE
- bls _080C0FBA
- movs r0, 0xC
- strb r0, [r2]
- b _080C1014
-_080C0FA0:
- movs r0, 0x1
- adds r1, r5, 0
- bl sub_80BF154
- bl TVShowDone
- b _080C1014
-_080C0FAE:
- ldrb r0, [r5, 0x2]
- cmp r0, 0x1
- bne _080C0FBA
- movs r0, 0x8
- strb r0, [r2]
- b _080C1014
-_080C0FBA:
- movs r0, 0x9
- strb r0, [r2]
- b _080C1014
-_080C0FC0:
- ldr r0, _080C0FEC @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x3]
- bl TVShowConvertInternationalString
- ldr r4, _080C0FF0 @ =gStringVar2
- ldrh r0, [r5, 0x6]
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrb r0, [r5, 0x2]
- cmp r0, 0x1
- bne _080C0FF8
-_080C0FE2:
- ldr r1, _080C0FF4 @ =gUnknown_020387E8
- movs r0, 0x8
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0FEC: .4byte gStringVar1
-_080C0FF0: .4byte gStringVar2
-_080C0FF4: .4byte gUnknown_020387E8
-_080C0FF8:
- ldr r1, _080C1000 @ =gUnknown_020387E8
- movs r0, 0xC
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C1000: .4byte gUnknown_020387E8
-_080C1004:
- ldr r0, _080C1028 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x3]
- bl TVShowConvertInternationalString
- bl TVShowDone
-_080C1014:
- ldr r0, _080C102C @ =gUnknown_083D14F0
- lsls r1, r6, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1028: .4byte gStringVar1
-_080C102C: .4byte gUnknown_083D14F0
- thumb_func_end DoTVShowTodaysSmartShopper
-
- thumb_func_start DoTVShowTheNameRaterShow
-DoTVShowTheNameRaterShow: @ 80C1030
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r0, _080C1060 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1064 @ =gSaveBlock1 + 0x2738
- adds r6, r0, r1
- ldr r1, _080C1068 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C106C @ =gUnknown_020387E8
- ldrb r7, [r0]
- adds r2, r0, 0
- cmp r7, 0x12
- bls _080C1054
- b _080C138A
-_080C1054:
- lsls r0, r7, 2
- ldr r1, _080C1070 @ =_080C1074
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1060: .4byte gSpecialVar_0x8004
-_080C1064: .4byte gSaveBlock1 + 0x2738
-_080C1068: .4byte gScriptResult
-_080C106C: .4byte gUnknown_020387E8
-_080C1070: .4byte _080C1074
- .align 2, 0
-_080C1074:
- .4byte _080C10C0
- .4byte _080C1108
- .4byte _080C112A
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1170
- .4byte _080C1170
- .4byte _080C1170
- .4byte _080C136C
- .4byte _080C11CC
- .4byte _080C1228
- .4byte _080C127C
- .4byte _080C12D4
- .4byte _080C1314
- .4byte _080C1370
-_080C10C0:
- ldr r0, _080C10F4 @ =gStringVar1
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- bl TVShowConvertInternationalString
- ldr r0, _080C10F8 @ =gStringVar2
- ldrh r2, [r6, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C10FC @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1100 @ =gStringVar3
- adds r1, r6, 0x4
- ldrb r2, [r6, 0x1F]
- bl TVShowConvertInternationalString
- ldr r4, _080C1104 @ =gUnknown_020387E8
- adds r0, r6, 0
- bl sub_80BF7E8
- adds r0, 0x1
- strb r0, [r4]
- b _080C138A
- .align 2, 0
-_080C10F4: .4byte gStringVar1
-_080C10F8: .4byte gStringVar2
-_080C10FC: .4byte gSpeciesNames
-_080C1100: .4byte gStringVar3
-_080C1104: .4byte gUnknown_020387E8
-_080C1108:
- ldrb r0, [r6, 0x1A]
- cmp r0, 0
- bne _080C1114
- movs r0, 0x9
- strb r0, [r2]
- b _080C138A
-_080C1114:
- cmp r0, 0x1
- bne _080C111E
- movs r0, 0xA
- strb r0, [r2]
- b _080C138A
-_080C111E:
- cmp r0, 0x2
- beq _080C1124
- b _080C138A
-_080C1124:
- movs r0, 0xB
- strb r0, [r2]
- b _080C138A
-_080C112A:
- ldr r0, _080C1144 @ =gStringVar1
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- bl TVShowConvertInternationalString
- ldrb r0, [r6, 0x1A]
- cmp r0, 0
- bne _080C114C
- ldr r1, _080C1148 @ =gUnknown_020387E8
- movs r0, 0x9
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C1144: .4byte gStringVar1
-_080C1148: .4byte gUnknown_020387E8
-_080C114C:
- cmp r0, 0x1
- bne _080C115C
- ldr r1, _080C1158 @ =gUnknown_020387E8
- movs r0, 0xA
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C1158: .4byte gUnknown_020387E8
-_080C115C:
- cmp r0, 0x2
- beq _080C1162
- b _080C138A
-_080C1162:
- ldr r1, _080C116C @ =gUnknown_020387E8
- movs r0, 0xB
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C116C: .4byte gUnknown_020387E8
-_080C1170:
- movs r5, 0
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C11BC @ =gStringVar3
- ldr r4, _080C11C0 @ =gStringVar1
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl TVShowConvertInternationalString
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C11C4 @ =gStringVar2
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl TVShowConvertInternationalString
- adds r1, r6, 0x4
- ldrb r2, [r6, 0x1F]
- adds r0, r4, 0
- bl TVShowConvertInternationalString
- ldr r1, _080C11C8 @ =gUnknown_020387E8
- movs r0, 0xC
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C11BC: .4byte gStringVar3
-_080C11C0: .4byte gStringVar1
-_080C11C4: .4byte gStringVar2
-_080C11C8: .4byte gUnknown_020387E8
-_080C11CC:
- movs r5, 0
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C1218 @ =gStringVar3
- ldr r4, _080C121C @ =gStringVar1
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl TVShowConvertInternationalString
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0
- bl sub_80BF820
- ldr r0, _080C1220 @ =gStringVar2
- ldrb r2, [r6, 0x1E]
- adds r1, r4, 0
- bl TVShowConvertInternationalString
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- adds r0, r4, 0
- bl TVShowConvertInternationalString
- ldr r1, _080C1224 @ =gUnknown_020387E8
- movs r0, 0xE
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C1218: .4byte gStringVar3
-_080C121C: .4byte gStringVar1
-_080C1220: .4byte gStringVar2
-_080C1224: .4byte gUnknown_020387E8
-_080C1228:
- movs r5, 0
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_80BF820
- ldr r0, _080C1270 @ =gStringVar3
- ldr r4, _080C1274 @ =gStringVar1
- ldrb r2, [r6, 0x1E]
- adds r1, r4, 0
- bl TVShowConvertInternationalString
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C1278 @ =gStringVar2
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl TVShowConvertInternationalString
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- adds r0, r4, 0
- bl TVShowConvertInternationalString
- b _080C1354
- .align 2, 0
-_080C1270: .4byte gStringVar3
-_080C1274: .4byte gStringVar1
-_080C1278: .4byte gStringVar2
-_080C127C:
- movs r0, 0
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C12C4 @ =gStringVar1
- ldr r4, _080C12C8 @ =gStringVar2
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl TVShowConvertInternationalString
- ldrh r1, [r6, 0x2]
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080C12CC @ =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldrh r0, [r6, 0x2]
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80BF820
- ldr r1, _080C12D0 @ =gUnknown_020387E8
- movs r0, 0x10
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C12C4: .4byte gStringVar1
-_080C12C8: .4byte gStringVar2
-_080C12CC: .4byte gSpeciesNames
-_080C12D0: .4byte gUnknown_020387E8
-_080C12D4:
- movs r0, 0
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C1308 @ =gStringVar3
- ldr r1, _080C130C @ =gStringVar1
- ldrb r2, [r6, 0x1F]
- bl TVShowConvertInternationalString
- ldrh r0, [r6, 0x2]
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl sub_80BF820
- ldr r1, _080C1310 @ =gUnknown_020387E8
- movs r0, 0x11
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C1308: .4byte gStringVar3
-_080C130C: .4byte gStringVar1
-_080C1310: .4byte gUnknown_020387E8
-_080C1314:
- movs r0, 0
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C135C @ =gStringVar1
- ldr r4, _080C1360 @ =gStringVar2
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl TVShowConvertInternationalString
- ldrh r0, [r6, 0x1C]
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80BF820
- ldrh r1, [r6, 0x1C]
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080C1364 @ =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
-_080C1354:
- ldr r1, _080C1368 @ =gUnknown_020387E8
- movs r0, 0x12
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C135C: .4byte gStringVar1
-_080C1360: .4byte gStringVar2
-_080C1364: .4byte gSpeciesNames
-_080C1368: .4byte gUnknown_020387E8
-_080C136C:
- movs r7, 0x12
- strb r7, [r2]
-_080C1370:
- ldr r0, _080C13A0 @ =gStringVar1
- adds r1, r6, 0x4
- ldrb r2, [r6, 0x1F]
- bl TVShowConvertInternationalString
- ldr r0, _080C13A4 @ =gStringVar2
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- bl TVShowConvertInternationalString
- bl TVShowDone
-_080C138A:
- ldr r0, _080C13A8 @ =gUnknown_083D1584
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C13A0: .4byte gStringVar1
-_080C13A4: .4byte gStringVar2
-_080C13A8: .4byte gUnknown_083D1584
- thumb_func_end DoTVShowTheNameRaterShow
-
- thumb_func_start DoTVShowPokemonTodaySuccessfulCapture
-DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC
- push {r4-r6,lr}
- ldr r0, _080C13D8 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C13DC @ =gSaveBlock1 + 0x2738
- adds r5, r0, r1
- ldr r1, _080C13E0 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C13E4 @ =gUnknown_020387E8
- ldrb r6, [r0]
- adds r2, r0, 0
- cmp r6, 0xB
- bls _080C13CE
- b _080C15DC
-_080C13CE:
- lsls r0, r6, 2
- ldr r1, _080C13E8 @ =_080C13EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C13D8: .4byte gSpecialVar_0x8004
-_080C13DC: .4byte gSaveBlock1 + 0x2738
-_080C13E0: .4byte gScriptResult
-_080C13E4: .4byte gUnknown_020387E8
-_080C13E8: .4byte _080C13EC
- .align 2, 0
-_080C13EC:
- .4byte _080C141C
- .4byte _080C1470
- .4byte _080C1476
- .4byte _080C14B0
- .4byte _080C14E8
- .4byte _080C14EE
- .4byte _080C1524
- .4byte _080C1578
- .4byte _080C1578
- .4byte _080C15A8
- .4byte _080C15A8
- .4byte _080C15D8
-_080C141C:
- ldr r0, _080C1450 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x2]
- bl TVShowConvertInternationalString
- ldr r0, _080C1454 @ =gStringVar2
- ldrh r2, [r5, 0x10]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1458 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C145C @ =gStringVar3
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl TVShowConvertInternationalString
- ldrb r0, [r5, 0xF]
- cmp r0, 0x1
- bne _080C1464
- ldr r1, _080C1460 @ =gUnknown_020387E8
- movs r0, 0x5
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C1450: .4byte gStringVar1
-_080C1454: .4byte gStringVar2
-_080C1458: .4byte gSpeciesNames
-_080C145C: .4byte gStringVar3
-_080C1460: .4byte gUnknown_020387E8
-_080C1464:
- ldr r1, _080C146C @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C146C: .4byte gUnknown_020387E8
-_080C1470:
- movs r0, 0x2
- strb r0, [r2]
- b _080C15DC
-_080C1476:
- ldr r4, _080C149C @ =gStringVar2
- ldrb r0, [r5, 0xF]
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrb r1, [r5, 0x12]
- movs r0, 0x2
- bl sub_80BF088
- ldrb r0, [r5, 0x12]
- cmp r0, 0x3
- bhi _080C14A4
- ldr r1, _080C14A0 @ =gUnknown_020387E8
- movs r0, 0x3
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C149C: .4byte gStringVar2
-_080C14A0: .4byte gUnknown_020387E8
-_080C14A4:
- ldr r1, _080C14AC @ =gUnknown_020387E8
- movs r0, 0x4
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C14AC: .4byte gUnknown_020387E8
-_080C14B0:
- ldr r0, _080C14D8 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x2]
- bl TVShowConvertInternationalString
- ldr r0, _080C14DC @ =gStringVar2
- ldrh r2, [r5, 0x10]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C14E0 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C14E4 @ =gStringVar3
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl TVShowConvertInternationalString
- b _080C150A
- .align 2, 0
-_080C14D8: .4byte gStringVar1
-_080C14DC: .4byte gStringVar2
-_080C14E0: .4byte gSpeciesNames
-_080C14E4: .4byte gStringVar3
-_080C14E8:
- movs r0, 0x6
- strb r0, [r2]
- b _080C15DC
-_080C14EE:
- ldr r0, _080C1514 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x2]
- bl TVShowConvertInternationalString
- ldr r0, _080C1518 @ =gStringVar2
- ldrh r2, [r5, 0x10]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C151C @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
-_080C150A:
- ldr r1, _080C1520 @ =gUnknown_020387E8
- movs r0, 0x6
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C1514: .4byte gStringVar1
-_080C1518: .4byte gStringVar2
-_080C151C: .4byte gSpeciesNames
-_080C1520: .4byte gUnknown_020387E8
-_080C1524:
- ldr r0, _080C1564 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x2]
- bl TVShowConvertInternationalString
- ldr r0, _080C1568 @ =gStringVar2
- ldrh r2, [r5, 0x10]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C156C @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1570 @ =gStringVar3
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl TVShowConvertInternationalString
- ldr r4, _080C1574 @ =gUnknown_020387E8
- bl Random
- ldrb r2, [r4]
- adds r2, 0x1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r0, r2
- strb r0, [r4]
- b _080C15DC
- .align 2, 0
-_080C1564: .4byte gStringVar1
-_080C1568: .4byte gStringVar2
-_080C156C: .4byte gSpeciesNames
-_080C1570: .4byte gStringVar3
-_080C1574: .4byte gUnknown_020387E8
-_080C1578:
- ldr r0, _080C159C @ =gStringVar1
- ldrh r1, [r5, 0x10]
- movs r4, 0xB
- muls r1, r4
- ldr r2, _080C15A0 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C15A4 @ =gStringVar2
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl TVShowConvertInternationalString
- ldrh r1, [r5, 0x10]
- movs r0, 0x2
- bl sub_80BF638
- b _080C15C2
- .align 2, 0
-_080C159C: .4byte gStringVar1
-_080C15A0: .4byte gSpeciesNames
-_080C15A4: .4byte gStringVar2
-_080C15A8:
- ldr r0, _080C15C8 @ =gStringVar1
- ldrh r1, [r5, 0x10]
- movs r4, 0xB
- muls r1, r4
- ldr r2, _080C15CC @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C15D0 @ =gStringVar2
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl TVShowConvertInternationalString
-_080C15C2:
- ldr r0, _080C15D4 @ =gUnknown_020387E8
- strb r4, [r0]
- b _080C15DC
- .align 2, 0
-_080C15C8: .4byte gStringVar1
-_080C15CC: .4byte gSpeciesNames
-_080C15D0: .4byte gStringVar2
-_080C15D4: .4byte gUnknown_020387E8
-_080C15D8:
- bl TVShowDone
-_080C15DC:
- ldr r0, _080C15F0 @ =gUnknown_083D14C0
- lsls r1, r6, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C15F0: .4byte gUnknown_083D14C0
- thumb_func_end DoTVShowPokemonTodaySuccessfulCapture
-
- thumb_func_start DoTVShowPokemonTodayFailedCapture
-DoTVShowPokemonTodayFailedCapture: @ 80C15F4
- push {r4,r5,lr}
- ldr r0, _080C1620 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1624 @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C1628 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C162C @ =gUnknown_020387E8
- ldrb r5, [r0]
- cmp r5, 0x6
- bls _080C1614
- b _080C173C
-_080C1614:
- lsls r0, r5, 2
- ldr r1, _080C1630 @ =_080C1634
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1620: .4byte gSpecialVar_0x8004
-_080C1624: .4byte gSaveBlock1 + 0x2738
-_080C1628: .4byte gScriptResult
-_080C162C: .4byte gUnknown_020387E8
-_080C1630: .4byte _080C1634
- .align 2, 0
-_080C1634:
- .4byte _080C1650
- .4byte _080C1684
- .4byte _080C16D8
- .4byte _080C16D8
- .4byte _080C171C
- .4byte _080C171C
- .4byte _080C1738
-_080C1650:
- ldr r0, _080C1674 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl TVShowConvertInternationalString
- ldr r0, _080C1678 @ =gStringVar2
- ldrh r2, [r4, 0xC]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C167C @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r1, _080C1680 @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1674: .4byte gStringVar1
-_080C1678: .4byte gStringVar2
-_080C167C: .4byte gSpeciesNames
-_080C1680: .4byte gUnknown_020387E8
-_080C1684:
- ldr r0, _080C16B8 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl TVShowConvertInternationalString
- ldr r0, _080C16BC @ =gStringVar2
- ldrb r1, [r4, 0x12]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C16C0 @ =gStringVar3
- ldrh r2, [r4, 0xE]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C16C4 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrb r0, [r4, 0x11]
- cmp r0, 0x1
- bne _080C16CC
- ldr r1, _080C16C8 @ =gUnknown_020387E8
- movs r0, 0x3
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C16B8: .4byte gStringVar1
-_080C16BC: .4byte gStringVar2
-_080C16C0: .4byte gStringVar3
-_080C16C4: .4byte gSpeciesNames
-_080C16C8: .4byte gUnknown_020387E8
-_080C16CC:
- ldr r1, _080C16D4 @ =gUnknown_020387E8
- movs r0, 0x2
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C16D4: .4byte gUnknown_020387E8
-_080C16D8:
- ldr r0, _080C1708 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl TVShowConvertInternationalString
- ldrb r1, [r4, 0x10]
- movs r0, 0x1
- bl sub_80BF088
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080C1710
- ldr r1, _080C170C @ =gUnknown_020387E8
- movs r0, 0x5
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1708: .4byte gStringVar1
-_080C170C: .4byte gUnknown_020387E8
-_080C1710:
- ldr r1, _080C1718 @ =gUnknown_020387E8
- movs r0, 0x4
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1718: .4byte gUnknown_020387E8
-_080C171C:
- ldr r0, _080C1730 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl TVShowConvertInternationalString
- ldr r1, _080C1734 @ =gUnknown_020387E8
- movs r0, 0x6
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1730: .4byte gStringVar1
-_080C1734: .4byte gUnknown_020387E8
-_080C1738:
- bl TVShowDone
-_080C173C:
- ldr r0, _080C1750 @ =gUnknown_083D15D0
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1750: .4byte gUnknown_083D15D0
- thumb_func_end DoTVShowPokemonTodayFailedCapture
-
- thumb_func_start DoTVShowPokemonFanClubLetter
-DoTVShowPokemonFanClubLetter: @ 80C1754
- push {r4-r7,lr}
- ldr r0, _080C1780 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1784 @ =gSaveBlock1 + 0x2738
- adds r5, r0, r1
- ldr r1, _080C1788 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C178C @ =gUnknown_020387E8
- ldrb r7, [r0]
- adds r6, r0, 0
- cmp r7, 0x33
- bls _080C1776
- b _080C1960
-_080C1776:
- lsls r0, r7, 2
- ldr r1, _080C1790 @ =_080C1794
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1780: .4byte gSpecialVar_0x8004
-_080C1784: .4byte gSaveBlock1 + 0x2738
-_080C1788: .4byte gScriptResult
-_080C178C: .4byte gUnknown_020387E8
-_080C1790: .4byte _080C1794
- .align 2, 0
-_080C1794:
- .4byte _080C1864
- .4byte _080C1898
- .4byte _080C18C4
- .4byte _080C18CA
- .4byte _080C18E2
- .4byte _080C18E2
- .4byte _080C18E2
- .4byte _080C18F4
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1916
- .4byte _080C193C
-_080C1864:
- ldr r0, _080C1888 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x10
- ldrb r2, [r5, 0x18]
- bl TVShowConvertInternationalString
- ldr r0, _080C188C @ =gStringVar2
- ldrh r2, [r5, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1890 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r1, _080C1894 @ =gUnknown_020387E8
- movs r0, 0x32
- strb r0, [r1]
- b _080C1960
- .align 2, 0
-_080C1888: .4byte gStringVar1
-_080C188C: .4byte gStringVar2
-_080C1890: .4byte gSpeciesNames
-_080C1894: .4byte gUnknown_020387E8
-_080C1898:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r2, r0, 0x1
- cmp r2, 0x1
- bne _080C18B8
- ldr r1, _080C18B4 @ =gUnknown_020387E8
- movs r0, 0x2
- strb r0, [r1]
- b _080C1960
- .align 2, 0
-_080C18B4: .4byte gUnknown_020387E8
-_080C18B8:
- ldr r1, _080C18C0 @ =gUnknown_020387E8
- adds r0, r2, 0x2
- strb r0, [r1]
- b _080C1960
- .align 2, 0
-_080C18C0: .4byte gUnknown_020387E8
-_080C18C4:
- movs r0, 0x33
- strb r0, [r6]
- b _080C1960
-_080C18CA:
- bl Random
- ldrb r4, [r6]
- adds r4, 0x1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, r4
- strb r0, [r6]
- b _080C1960
-_080C18E2:
- adds r0, r5, 0
- bl sub_80BF79C
- ldr r1, _080C18F0 @ =gUnknown_020387E8
- movs r0, 0x7
- strb r0, [r1]
- b _080C1960
- .align 2, 0
-_080C18F0: .4byte gUnknown_020387E8
-_080C18F4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1F
- bl __umodsi3
- adds r0, 0x46
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0x2
- adds r1, r2, 0
- bl sub_80BF088
- bl TVShowDone
- b _080C1960
-_080C1916:
- ldr r4, _080C1934 @ =gStringVar4
- adds r1, r5, 0x4
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldMessage
- ldr r1, _080C1938 @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C196C
- .align 2, 0
-_080C1934: .4byte gStringVar4
-_080C1938: .4byte gUnknown_020387E8
-_080C193C:
- ldr r4, _080C1958 @ =gStringVar4
- adds r1, r5, 0x4
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldMessage
- ldr r1, _080C195C @ =gUnknown_020387E8
- movs r0, 0x3
- strb r0, [r1]
- b _080C196C
- .align 2, 0
-_080C1958: .4byte gStringVar4
-_080C195C: .4byte gUnknown_020387E8
-_080C1960:
- ldr r0, _080C1974 @ =gUnknown_083D1470
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
-_080C196C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1974: .4byte gUnknown_083D1470
- thumb_func_end DoTVShowPokemonFanClubLetter
-
- thumb_func_start DoTVShowRecentHappenings
-DoTVShowRecentHappenings: @ 80C1978
- push {r4-r7,lr}
- ldr r0, _080C19A4 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C19A8 @ =gSaveBlock1 + 0x2738
- adds r5, r0, r1
- ldr r1, _080C19AC @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C19B0 @ =gUnknown_020387E8
- ldrb r6, [r0]
- adds r7, r0, 0
- cmp r6, 0x32
- bls _080C199A
- b _080C1AF0
-_080C199A:
- lsls r0, r6, 2
- ldr r1, _080C19B4 @ =_080C19B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C19A4: .4byte gSpecialVar_0x8004
-_080C19A8: .4byte gSaveBlock1 + 0x2738
-_080C19AC: .4byte gScriptResult
-_080C19B0: .4byte gUnknown_020387E8
-_080C19B4: .4byte _080C19B8
- .align 2, 0
-_080C19B8:
- .4byte _080C1A84
- .4byte _080C1AA8
- .4byte _080C1AC0
- .4byte _080C1AC0
- .4byte _080C1AC0
- .4byte _080C1AC6
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1ACC
-_080C1A84:
- ldr r0, _080C1AA0 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x10
- ldrb r2, [r5, 0x18]
- bl TVShowConvertInternationalString
- adds r0, r5, 0
- bl sub_80BF79C
- ldr r1, _080C1AA4 @ =gUnknown_020387E8
- movs r0, 0x32
- strb r0, [r1]
- b _080C1AF0
- .align 2, 0
-_080C1AA0: .4byte gStringVar1
-_080C1AA4: .4byte gUnknown_020387E8
-_080C1AA8:
- bl Random
- ldrb r4, [r7]
- adds r4, 0x1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, r4
- strb r0, [r7]
- b _080C1AF0
-_080C1AC0:
- movs r0, 0x5
- strb r0, [r7]
- b _080C1AF0
-_080C1AC6:
- bl TVShowDone
- b _080C1AF0
-_080C1ACC:
- ldr r4, _080C1AE8 @ =gStringVar4
- adds r1, r5, 0x4
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldMessage
- ldr r1, _080C1AEC @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C1AFC
- .align 2, 0
-_080C1AE8: .4byte gStringVar4
-_080C1AEC: .4byte gUnknown_020387E8
-_080C1AF0:
- ldr r0, _080C1B04 @ =gUnknown_083D1490
- lsls r1, r6, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
-_080C1AFC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1B04: .4byte gUnknown_083D1490
- thumb_func_end DoTVShowRecentHappenings
-
- thumb_func_start DoTVShowPokemonFanClubOpinions
-DoTVShowPokemonFanClubOpinions: @ 80C1B08
- push {r4-r6,lr}
- ldr r0, _080C1B30 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1B34 @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C1B38 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r6, _080C1B3C @ =gUnknown_020387E8
- ldrb r5, [r6]
- cmp r5, 0x3
- bgt _080C1B40
- cmp r5, 0x1
- bge _080C1B88
- cmp r5, 0
- beq _080C1B46
- b _080C1BD6
- .align 2, 0
-_080C1B30: .4byte gSpecialVar_0x8004
-_080C1B34: .4byte gSaveBlock1 + 0x2738
-_080C1B38: .4byte gScriptResult
-_080C1B3C: .4byte gUnknown_020387E8
-_080C1B40:
- cmp r5, 0x4
- beq _080C1BC0
- b _080C1BD6
-_080C1B46:
- ldr r0, _080C1B78 @ =gStringVar1
- adds r1, r4, 0x5
- ldrb r2, [r4, 0xD]
- bl TVShowConvertInternationalString
- ldr r0, _080C1B7C @ =gStringVar2
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1B80 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1B84 @ =gStringVar3
- adds r1, r4, 0
- adds r1, 0x10
- ldrb r2, [r4, 0xE]
- bl TVShowConvertInternationalString
- ldrb r0, [r4, 0x4]
- lsrs r0, 4
- adds r0, 0x1
- strb r0, [r6]
- b _080C1BD6
- .align 2, 0
-_080C1B78: .4byte gStringVar1
-_080C1B7C: .4byte gStringVar2
-_080C1B80: .4byte gSpeciesNames
-_080C1B84: .4byte gStringVar3
-_080C1B88:
- ldr r0, _080C1BB0 @ =gStringVar1
- adds r1, r4, 0x5
- ldrb r2, [r4, 0xD]
- bl TVShowConvertInternationalString
- ldr r0, _080C1BB4 @ =gStringVar2
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1BB8 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1BBC @ =gStringVar3
- ldrh r1, [r4, 0x1C]
- bl sub_80EB3FC
- movs r0, 0x4
- strb r0, [r6]
- b _080C1BD6
- .align 2, 0
-_080C1BB0: .4byte gStringVar1
-_080C1BB4: .4byte gStringVar2
-_080C1BB8: .4byte gSpeciesNames
-_080C1BBC: .4byte gStringVar3
-_080C1BC0:
- ldr r0, _080C1BE8 @ =gStringVar1
- adds r1, r4, 0x5
- ldrb r2, [r4, 0xD]
- bl TVShowConvertInternationalString
- ldr r0, _080C1BEC @ =gStringVar3
- ldrh r1, [r4, 0x1E]
- bl sub_80EB3FC
- bl TVShowDone
-_080C1BD6:
- ldr r0, _080C1BF0 @ =gUnknown_083D14A8
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1BE8: .4byte gStringVar1
-_080C1BEC: .4byte gStringVar3
-_080C1BF0: .4byte gUnknown_083D14A8
- thumb_func_end DoTVShowPokemonFanClubOpinions
-
- thumb_func_start nullsub_22
-nullsub_22: @ 80C1BF4
- bx lr
- thumb_func_end nullsub_22
-
- thumb_func_start DoTVShowPokemonNewsMassOutbreak
-DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8
- push {r4,lr}
- ldr r0, _080C1C40 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C1C44 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- ldr r0, _080C1C48 @ =gStringVar1
- ldrb r1, [r4, 0x10]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C1C4C @ =gStringVar2
- ldrh r2, [r4, 0xC]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1C50 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- bl TVShowDone
- bl StartMassOutbreak
- ldr r1, _080C1C54 @ =gUnknown_083D14BC
- ldr r0, _080C1C58 @ =gUnknown_020387E8
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1C40: .4byte gSpecialVar_0x8004
-_080C1C44: .4byte gSaveBlock1 + 0x2738
-_080C1C48: .4byte gStringVar1
-_080C1C4C: .4byte gStringVar2
-_080C1C50: .4byte gSpeciesNames
-_080C1C54: .4byte gUnknown_083D14BC
-_080C1C58: .4byte gUnknown_020387E8
- thumb_func_end DoTVShowPokemonNewsMassOutbreak
-
- thumb_func_start DoTVShowInSearchOfTrainers
-DoTVShowInSearchOfTrainers: @ 80C1C5C
- push {r4-r7,lr}
- ldr r0, _080C1C7C @ =gScriptResult
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080C1C80 @ =gUnknown_020387E8
- ldrb r7, [r0]
- adds r2, r0, 0
- cmp r7, 0x8
- bls _080C1C70
- b _080C1DF8
-_080C1C70:
- lsls r0, r7, 2
- ldr r1, _080C1C84 @ =_080C1C88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1C7C: .4byte gScriptResult
-_080C1C80: .4byte gUnknown_020387E8
-_080C1C84: .4byte _080C1C88
- .align 2, 0
-_080C1C88:
- .4byte _080C1CAC
- .4byte _080C1CF0
- .4byte _080C1CF6
- .4byte _080C1D44
- .4byte _080C1DB0
- .4byte _080C1DB0
- .4byte _080C1DB0
- .4byte _080C1DB0
- .4byte _080C1DB6
-_080C1CAC:
- ldr r0, _080C1CD0 @ =gStringVar1
- ldr r4, _080C1CD4 @ =gSaveBlock1
- ldr r2, _080C1CD8 @ =0x00002b18
- adds r1, r4, r2
- ldrb r1, [r1]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C1CDC @ =0x00002b19
- adds r4, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- bls _080C1CE4
- ldr r1, _080C1CE0 @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C1DF8
- .align 2, 0
-_080C1CD0: .4byte gStringVar1
-_080C1CD4: .4byte gSaveBlock1
-_080C1CD8: .4byte 0x00002b18
-_080C1CDC: .4byte 0x00002b19
-_080C1CE0: .4byte gUnknown_020387E8
-_080C1CE4:
- ldr r1, _080C1CEC @ =gUnknown_020387E8
- movs r0, 0x2
- strb r0, [r1]
- b _080C1DF8
- .align 2, 0
-_080C1CEC: .4byte gUnknown_020387E8
-_080C1CF0:
- movs r0, 0x2
- strb r0, [r2]
- b _080C1DF8
-_080C1CF6:
- ldr r0, _080C1D0C @ =gSaveBlock1
- ldr r1, _080C1D10 @ =0x00002b1a
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080C1D14
- movs r0, 0x4
- strb r0, [r2]
- b _080C1DF8
- .align 2, 0
-_080C1D0C: .4byte gSaveBlock1
-_080C1D10: .4byte 0x00002b1a
-_080C1D14:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080C1D22
- movs r0, 0x5
- strb r0, [r2]
- b _080C1DF8
-_080C1D22:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080C1D30
- movs r0, 0x6
- strb r0, [r2]
- b _080C1DF8
-_080C1D30:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080C1D3E
- movs r0, 0x7
- strb r0, [r2]
- b _080C1DF8
-_080C1D3E:
- movs r0, 0x3
- strb r0, [r2]
- b _080C1DF8
-_080C1D44:
- ldr r0, _080C1D88 @ =gStringVar1
- ldr r4, _080C1D8C @ =gSaveBlock1
- ldr r2, _080C1D90 @ =0x00002b10
- adds r1, r4, r2
- ldrh r1, [r1]
- movs r6, 0xB
- muls r1, r6
- ldr r5, _080C1D94 @ =gSpeciesNames
- adds r1, r5
- bl StringCopy
- ldr r0, _080C1D98 @ =gStringVar2
- ldr r2, _080C1D9C @ =0x00002b14
- adds r1, r4, r2
- ldrh r2, [r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080C1DA0 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1DA4 @ =gStringVar3
- ldr r1, _080C1DA8 @ =0x00002b12
- adds r4, r1
- ldrh r1, [r4]
- muls r1, r6
- adds r1, r5
- bl StringCopy
- ldr r1, _080C1DAC @ =gUnknown_020387E8
- movs r0, 0x8
- strb r0, [r1]
- b _080C1DF8
- .align 2, 0
-_080C1D88: .4byte gStringVar1
-_080C1D8C: .4byte gSaveBlock1
-_080C1D90: .4byte 0x00002b10
-_080C1D94: .4byte gSpeciesNames
-_080C1D98: .4byte gStringVar2
-_080C1D9C: .4byte 0x00002b14
-_080C1DA0: .4byte gMoveNames
-_080C1DA4: .4byte gStringVar3
-_080C1DA8: .4byte 0x00002b12
-_080C1DAC: .4byte gUnknown_020387E8
-_080C1DB0:
- movs r0, 0x8
- strb r0, [r2]
- b _080C1DF8
-_080C1DB6:
- ldr r0, _080C1E0C @ =gStringVar1
- ldr r4, _080C1E10 @ =gSaveBlock1
- ldr r2, _080C1E14 @ =0x00002b16
- adds r1, r4, r2
- ldrh r1, [r1]
- bl sub_80EB3FC
- ldr r0, _080C1E18 @ =gStringVar2
- ldr r2, _080C1E1C @ =0x00002b10
- adds r1, r4, r2
- ldrh r1, [r1]
- movs r6, 0xB
- muls r1, r6
- ldr r5, _080C1E20 @ =gSpeciesNames
- adds r1, r5
- bl StringCopy
- ldr r0, _080C1E24 @ =gStringVar3
- ldr r1, _080C1E28 @ =0x00002b12
- adds r4, r1
- ldrh r1, [r4]
- muls r1, r6
- adds r1, r5
- bl StringCopy
- ldr r1, _080C1E2C @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _080C1E30 @ =gUnknown_020387E8
- movs r0, 0
- strb r0, [r1]
- bl TakeTVShowInSearchOfTrainersOffTheAir
-_080C1DF8:
- ldr r0, _080C1E34 @ =gUnknown_083D1600
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1E0C: .4byte gStringVar1
-_080C1E10: .4byte gSaveBlock1
-_080C1E14: .4byte 0x00002b16
-_080C1E18: .4byte gStringVar2
-_080C1E1C: .4byte 0x00002b10
-_080C1E20: .4byte gSpeciesNames
-_080C1E24: .4byte gStringVar3
-_080C1E28: .4byte 0x00002b12
-_080C1E2C: .4byte gScriptResult
-_080C1E30: .4byte gUnknown_020387E8
-_080C1E34: .4byte gUnknown_083D1600
- thumb_func_end DoTVShowInSearchOfTrainers
-
- thumb_func_start DoTVShowPokemonAngler
-DoTVShowPokemonAngler: @ 80C1E38
- push {r4,r5,lr}
- ldr r0, _080C1E5C @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1E60 @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r0, _080C1E64 @ =gScriptResult
- movs r1, 0
- strh r1, [r0]
- ldrb r0, [r4, 0x2]
- ldrb r2, [r4, 0x3]
- cmp r0, r2
- bcs _080C1E6C
- ldr r0, _080C1E68 @ =gUnknown_020387E8
- strb r1, [r0]
- b _080C1E74
- .align 2, 0
-_080C1E5C: .4byte gSpecialVar_0x8004
-_080C1E60: .4byte gSaveBlock1 + 0x2738
-_080C1E64: .4byte gScriptResult
-_080C1E68: .4byte gUnknown_020387E8
-_080C1E6C:
- ldr r1, _080C1E80 @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r1, 0
-_080C1E74:
- ldrb r5, [r0]
- cmp r5, 0
- beq _080C1E84
- cmp r5, 0x1
- beq _080C1EBC
- b _080C1EE4
- .align 2, 0
-_080C1E80: .4byte gUnknown_020387E8
-_080C1E84:
- ldr r0, _080C1EB0 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x6]
- bl TVShowConvertInternationalString
- ldr r0, _080C1EB4 @ =gStringVar2
- ldrh r2, [r4, 0x4]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1EB8 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrb r1, [r4, 0x3]
- movs r0, 0x2
- bl sub_80BF088
- bl TVShowDone
- b _080C1EE4
- .align 2, 0
-_080C1EB0: .4byte gStringVar1
-_080C1EB4: .4byte gStringVar2
-_080C1EB8: .4byte gSpeciesNames
-_080C1EBC:
- ldr r0, _080C1EF8 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x6]
- bl TVShowConvertInternationalString
- ldr r0, _080C1EFC @ =gStringVar2
- ldrh r2, [r4, 0x4]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1F00 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrb r1, [r4, 0x2]
- movs r0, 0x2
- bl sub_80BF088
- bl TVShowDone
-_080C1EE4:
- ldr r0, _080C1F04 @ =gUnknown_083D15EC
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1EF8: .4byte gStringVar1
-_080C1EFC: .4byte gStringVar2
-_080C1F00: .4byte gSpeciesNames
-_080C1F04: .4byte gUnknown_083D15EC
- thumb_func_end DoTVShowPokemonAngler
-
- thumb_func_start DoTVShowTheWorldOfMasters
-DoTVShowTheWorldOfMasters: @ 80C1F08
- push {r4-r6,lr}
- ldr r0, _080C1F30 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1F34 @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C1F38 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r6, _080C1F3C @ =gUnknown_020387E8
- ldrb r5, [r6]
- cmp r5, 0x1
- beq _080C1F6C
- cmp r5, 0x1
- bgt _080C1F40
- cmp r5, 0
- beq _080C1F46
- b _080C1FB6
- .align 2, 0
-_080C1F30: .4byte gSpecialVar_0x8004
-_080C1F34: .4byte gSaveBlock1 + 0x2738
-_080C1F38: .4byte gScriptResult
-_080C1F3C: .4byte gUnknown_020387E8
-_080C1F40:
- cmp r5, 0x2
- beq _080C1F8C
- b _080C1FB6
-_080C1F46:
- ldr r0, _080C1F68 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0xB]
- bl TVShowConvertInternationalString
- ldrh r1, [r4, 0x6]
- movs r0, 0x1
- bl sub_80BF088
- ldrh r1, [r4, 0x2]
- movs r0, 0x2
- bl sub_80BF088
- movs r0, 0x1
- strb r0, [r6]
- b _080C1FB6
- .align 2, 0
-_080C1F68: .4byte gStringVar1
-_080C1F6C:
- ldr r0, _080C1F84 @ =gStringVar1
- ldrh r2, [r4, 0x8]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1F88 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- movs r0, 0x2
- strb r0, [r6]
- b _080C1FB6
- .align 2, 0
-_080C1F84: .4byte gStringVar1
-_080C1F88: .4byte gSpeciesNames
-_080C1F8C:
- ldr r0, _080C1FC8 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0xB]
- bl TVShowConvertInternationalString
- ldr r0, _080C1FCC @ =gStringVar2
- ldrb r1, [r4, 0xA]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C1FD0 @ =gStringVar3
- ldrh r2, [r4, 0x4]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1FD4 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- bl TVShowDone
-_080C1FB6:
- ldr r0, _080C1FD8 @ =gUnknown_083D15F4
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1FC8: .4byte gStringVar1
-_080C1FCC: .4byte gStringVar2
-_080C1FD0: .4byte gStringVar3
-_080C1FD4: .4byte gSpeciesNames
-_080C1FD8: .4byte gUnknown_083D15F4
- thumb_func_end DoTVShowTheWorldOfMasters
-
- thumb_func_start TVShowDone
-TVShowDone: @ 80C1FDC
- ldr r1, _080C2000 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _080C2004 @ =gUnknown_020387E8
- movs r0, 0
- strb r0, [r1]
- ldr r2, _080C2008 @ =gSaveBlock1
- ldr r0, _080C200C @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080C2010 @ =0x00002739
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080C2000: .4byte gScriptResult
-_080C2004: .4byte gUnknown_020387E8
-_080C2008: .4byte gSaveBlock1
-_080C200C: .4byte gSpecialVar_0x8004
-_080C2010: .4byte 0x00002739
- thumb_func_end TVShowDone
-
- thumb_func_start sub_80C2014
-sub_80C2014: @ 80C2014
- ldr r1, _080C201C @ =gUnknown_020387E8
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080C201C: .4byte gUnknown_020387E8
- thumb_func_end sub_80C2014
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/unknown_task.s b/asm/unknown_task.s
new file mode 100644
index 000000000..39f1497ef
--- /dev/null
+++ b/asm/unknown_task.s
@@ -0,0 +1,645 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start remove_some_task
+remove_some_task: @ 8089578
+ push {r4,lr}
+ ldr r4, _080895A8 @ =gUnknown_03004DC0
+ movs r0, 0
+ strb r0, [r4, 0x15]
+ ldr r1, _080895AC @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080895B0 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080895B4 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldrb r0, [r4, 0x18]
+ cmp r0, 0xFF
+ beq _080895A2
+ bl DestroyTask
+ movs r0, 0xFF
+ strb r0, [r4, 0x18]
+_080895A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080895A8: .4byte gUnknown_03004DC0
+_080895AC: .4byte 0x040000b0
+_080895B0: .4byte 0x0000c5ff
+_080895B4: .4byte 0x00007fff
+ thumb_func_end remove_some_task
+
+ thumb_func_start dp12_8087EA4
+dp12_8087EA4: @ 80895B8
+ push {r4,lr}
+ sub sp, 0x4
+ mov r0, sp
+ movs r4, 0
+ strh r4, [r0]
+ ldr r1, _080895EC @ =gUnknown_03004DE0
+ ldr r2, _080895F0 @ =0x01000780
+ bl CpuSet
+ ldr r0, _080895F4 @ =gUnknown_03004DC0
+ movs r1, 0
+ str r1, [r0]
+ str r1, [r0, 0x4]
+ str r1, [r0, 0x8]
+ str r1, [r0, 0xC]
+ strb r4, [r0, 0x14]
+ strb r4, [r0, 0x15]
+ strb r4, [r0, 0x16]
+ strb r4, [r0, 0x17]
+ movs r1, 0xFF
+ strb r1, [r0, 0x18]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080895EC: .4byte gUnknown_03004DE0
+_080895F0: .4byte 0x01000780
+_080895F4: .4byte gUnknown_03004DC0
+ thumb_func_end dp12_8087EA4
+
+ thumb_func_start sub_80895F8
+sub_80895F8: @ 80895F8
+ push {lr}
+ sub sp, 0xC
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ ldr r0, _0808961C @ =0xa2600001
+ cmp r1, r0
+ bne _0808962C
+ ldr r0, _08089620 @ =gUnknown_03004DC0
+ ldr r1, _08089624 @ =gUnknown_03004DE2
+ str r1, [r0]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ str r1, [r0, 0x4]
+ ldr r1, _08089628 @ =sub_80896F4
+ b _0808963C
+ .align 2, 0
+_0808961C: .4byte 0xa2600001
+_08089620: .4byte gUnknown_03004DC0
+_08089624: .4byte gUnknown_03004DE2
+_08089628: .4byte sub_80896F4
+_0808962C:
+ ldr r0, _0808965C @ =gUnknown_03004DC0
+ ldr r1, _08089660 @ =gUnknown_03004DE4
+ str r1, [r0]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ str r1, [r0, 0x4]
+ ldr r1, _08089664 @ =sub_8089714
+_0808963C:
+ str r1, [r0, 0x10]
+ adds r1, r0, 0
+ ldr r0, [sp, 0x4]
+ str r0, [r1, 0xC]
+ ldr r0, [sp]
+ str r0, [r1, 0x8]
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ strb r0, [r1, 0x15]
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ strb r0, [r1, 0x16]
+ strb r0, [r1, 0x17]
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808965C: .4byte gUnknown_03004DC0
+_08089660: .4byte gUnknown_03004DE4
+_08089664: .4byte sub_8089714
+ thumb_func_end sub_80895F8
+
+ thumb_func_start sub_8089668
+sub_8089668: @ 8089668
+ push {r4,lr}
+ ldr r4, _08089698 @ =gUnknown_03004DC0
+ ldrb r0, [r4, 0x15]
+ cmp r0, 0
+ beq _080896E2
+ cmp r0, 0x3
+ bne _080896AC
+ movs r0, 0
+ strb r0, [r4, 0x15]
+ ldr r1, _0808969C @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896A0 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896A4 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldr r1, _080896A8 @ =gUnknown_0202FFA4
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080896E2
+ .align 2, 0
+_08089698: .4byte gUnknown_03004DC0
+_0808969C: .4byte 0x040000b0
+_080896A0: .4byte 0x0000c5ff
+_080896A4: .4byte 0x00007fff
+_080896A8: .4byte gUnknown_0202FFA4
+_080896AC:
+ ldr r1, _080896E8 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896EC @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080896F0 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldrb r0, [r4, 0x14]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, [r4, 0x8]
+ str r0, [r1, 0x4]
+ ldr r0, [r4, 0xC]
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r0, [r4, 0x10]
+ bl _call_via_r0
+ ldrb r0, [r4, 0x14]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4, 0x14]
+_080896E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080896E8: .4byte 0x040000b0
+_080896EC: .4byte 0x0000c5ff
+_080896F0: .4byte 0x00007fff
+ thumb_func_end sub_8089668
+
+ thumb_func_start sub_80896F4
+sub_80896F4: @ 80896F4
+ ldr r0, _0808970C @ =gUnknown_03004DC0
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _08089710 @ =gUnknown_03004DE0
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_0808970C: .4byte gUnknown_03004DC0
+_08089710: .4byte gUnknown_03004DE0
+ thumb_func_end sub_80896F4
+
+ thumb_func_start sub_8089714
+sub_8089714: @ 8089714
+ ldr r0, _0808972C @ =gUnknown_03004DC0
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _08089730 @ =gUnknown_03004DE0
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_0808972C: .4byte gUnknown_03004DC0
+_08089730: .4byte gUnknown_03004DE0
+ thumb_func_end sub_8089714
+
+ thumb_func_start task00_for_dp12
+task00_for_dp12: @ 8089734
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r6, 0
+ ldr r0, _0808975C @ =gUnknown_0202FFA4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08089764
+ mov r0, r12
+ bl DestroyTask
+ ldr r1, _08089760 @ =gUnknown_03004DC0
+ movs r0, 0xFF
+ strb r0, [r1, 0x18]
+ b _080898E4
+ .align 2, 0
+_0808975C: .4byte gUnknown_0202FFA4
+_08089760: .4byte gUnknown_03004DC0
+_08089764:
+ ldr r1, _08089790 @ =gTasks
+ mov r0, r12
+ lsls r2, r0, 2
+ adds r0, r2, r0
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ mov r10, r1
+ mov r9, r2
+ cmp r0, 0
+ beq _08089810
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xE
+ bhi _08089810
+ lsls r0, 2
+ ldr r1, _08089794 @ =_08089798
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08089790: .4byte gTasks
+_08089794: .4byte _08089798
+ .align 2, 0
+_08089798:
+ .4byte _080897D4
+ .4byte _08089810
+ .4byte _080897DC
+ .4byte _08089810
+ .4byte _080897E4
+ .4byte _08089810
+ .4byte _080897EC
+ .4byte _08089810
+ .4byte _080897F4
+ .4byte _08089810
+ .4byte _080897FC
+ .4byte _08089810
+ .4byte _08089804
+ .4byte _08089810
+ .4byte _0808980C
+_080897D4:
+ ldr r0, _080897D8 @ =gUnknown_030042A4
+ b _0808980E
+ .align 2, 0
+_080897D8: .4byte gUnknown_030042A4
+_080897DC:
+ ldr r0, _080897E0 @ =gUnknown_030042A0
+ b _0808980E
+ .align 2, 0
+_080897E0: .4byte gUnknown_030042A0
+_080897E4:
+ ldr r0, _080897E8 @ =gUnknown_030042C0
+ b _0808980E
+ .align 2, 0
+_080897E8: .4byte gUnknown_030042C0
+_080897EC:
+ ldr r0, _080897F0 @ =gUnknown_030041B4
+ b _0808980E
+ .align 2, 0
+_080897F0: .4byte gUnknown_030041B4
+_080897F4:
+ ldr r0, _080897F8 @ =gUnknown_03004288
+ b _0808980E
+ .align 2, 0
+_080897F8: .4byte gUnknown_03004288
+_080897FC:
+ ldr r0, _08089800 @ =gUnknown_03004280
+ b _0808980E
+ .align 2, 0
+_08089800: .4byte gUnknown_03004280
+_08089804:
+ ldr r0, _08089808 @ =gUnknown_030041B0
+ b _0808980E
+ .align 2, 0
+_08089808: .4byte gUnknown_030041B0
+_0808980C:
+ ldr r0, _08089870 @ =gUnknown_030041B8
+_0808980E:
+ ldrh r6, [r0]
+_08089810:
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ mov r2, r10
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0808987C
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x10]
+ movs r4, 0xE
+ ldrsh r0, [r1, r4]
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r2, r0, r3
+ movs r4, 0x8
+ ldrsh r3, [r1, r4]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r3, r0
+ bge _080898E4
+ ldr r5, _08089874 @ =gUnknown_03004DE0
+ ldr r0, _08089878 @ =gUnknown_03004DC0
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r0, r2, 1
+ adds r4, r0, r5
+_0808984A:
+ lsls r2, r3, 1
+ mov r0, r8
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r5
+ ldrh r0, [r4]
+ adds r0, r6
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r3, 0x1
+ movs r1, 0xA
+ ldrsh r0, [r7, r1]
+ cmp r3, r0
+ blt _0808984A
+ b _080898E4
+ .align 2, 0
+_08089870: .4byte gUnknown_030041B8
+_08089874: .4byte gUnknown_03004DE0
+_08089878: .4byte gUnknown_03004DC0
+_0808987C:
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x10]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r2, r0, r3
+ movs r4, 0x8
+ ldrsh r3, [r1, r4]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r3, r0
+ bge _080898C4
+ ldr r5, _080898F4 @ =gUnknown_03004DE0
+ adds r7, r1, 0
+ lsls r0, r2, 1
+ adds r4, r0, r5
+ ldr r0, _080898F8 @ =gUnknown_03004DC0
+ mov r8, r0
+_080898A2:
+ lsls r2, r3, 1
+ mov r0, r8
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r5
+ ldrh r0, [r4]
+ adds r0, r6
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r3, 0x1
+ movs r1, 0xA
+ ldrsh r0, [r7, r1]
+ cmp r3, r0
+ blt _080898A2
+_080898C4:
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ mov r3, r10
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bne _080898E4
+ movs r0, 0
+ strh r0, [r2, 0xE]
+_080898E4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080898F4: .4byte gUnknown_03004DE0
+_080898F8: .4byte gUnknown_03004DC0
+ thumb_func_end task00_for_dp12
+
+ thumb_func_start sub_80898FC
+sub_80898FC: @ 80898FC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r1, 0
+ movs r2, 0
+ ldr r0, _08089940 @ =gSineTable
+ mov r12, r0
+_08089910:
+ lsls r0, r1, 1
+ adds r3, r0, r6
+ lsls r0, r2, 1
+ add r0, r12
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ muls r0, r4
+ cmp r0, 0
+ bge _08089924
+ adds r0, 0xFF
+_08089924:
+ asrs r0, 8
+ strh r0, [r3]
+ adds r0, r2, r5
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xFF
+ bls _08089910
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08089940: .4byte gSineTable
+ thumb_func_end sub_80898FC
+
+ thumb_func_start sub_8089944
+sub_8089944: @ 8089944
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ adds r5, r0, 0
+ str r1, [sp, 0x10]
+ ldr r0, [sp, 0x40]
+ mov r8, r0
+ ldr r1, [sp, 0x44]
+ mov r9, r1
+ ldr r0, [sp, 0x48]
+ mov r10, r0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, [sp, 0x10]
+ lsls r1, 24
+ str r1, [sp, 0x14]
+ lsrs r0, r1, 24
+ str r0, [sp, 0xC]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ str r1, [sp, 0x18]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ str r2, [sp, 0x1C]
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ mov r3, r9
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl dp12_8087EA4
+ ldr r0, _08089A50 @ =REG_BG0HOFS
+ add r0, r9
+ str r0, [sp]
+ ldr r0, _08089A54 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _08089A58 @ =task00_for_dp12
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08089A5C @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ strh r5, [r4, 0x8]
+ mov r3, sp
+ ldrh r3, [r3, 0xC]
+ strh r3, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ ldr r1, [sp, 0x18]
+ bl __divsi3
+ strh r0, [r4, 0xC]
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ mov r1, r8
+ strh r1, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ mov r3, r9
+ strh r3, [r4, 0x14]
+ mov r0, r10
+ strh r0, [r4, 0x16]
+ ldr r0, _08089A60 @ =gUnknown_03004DC0
+ strb r7, [r0, 0x18]
+ ldr r0, _08089A64 @ =gUnknown_0202FFA4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r4, _08089A68 @ =gUnknown_03005060
+ ldr r3, [sp, 0xC]
+ subs r6, r3, r5
+ lsls r3, r6, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ ldr r1, [sp, 0x18]
+ ldr r2, [sp, 0x1C]
+ bl sub_80898FC
+ ldr r0, [sp, 0xC]
+ cmp r5, r0
+ bge _08089A3E
+ ldr r1, _08089A6C @ =0xfffffd80
+ adds r2, r4, r1
+ lsls r1, r5, 1
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r1, r3
+ adds r3, r0, r2
+ adds r1, r2
+ adds r2, r4, 0
+ adds r5, r6, 0
+_08089A2A:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ adds r1, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08089A2A
+_08089A3E:
+ adds r0, r7, 0
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08089A50: .4byte REG_BG0HOFS
+_08089A54: .4byte 0xa2600001
+_08089A58: .4byte task00_for_dp12
+_08089A5C: .4byte gTasks
+_08089A60: .4byte gUnknown_03004DC0
+_08089A64: .4byte gUnknown_0202FFA4
+_08089A68: .4byte gUnknown_03005060
+_08089A6C: .4byte 0xfffffd80
+ thumb_func_end sub_8089944
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/unused_8124F94.s b/asm/unused_8124F94.s
deleted file mode 100644
index 335cf4453..000000000
--- a/asm/unused_8124F94.s
+++ /dev/null
@@ -1,285 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start unref_sub_8124F94
-unref_sub_8124F94: @ 8124F94
- sub sp, 0x4
- movs r3, 0
- strb r3, [r0, 0x1]
- strb r3, [r0]
- strh r3, [r0, 0x2]
- movs r1, 0xC0
- lsls r1, 19
- str r1, [r0, 0x4]
- mov r1, sp
- strh r3, [r1]
- ldr r2, _08124FCC @ =0x040000d4
- str r1, [r2]
- adds r1, r0, 0
- adds r1, 0x8
- str r1, [r2, 0x4]
- ldr r1, _08124FD0 @ =0x81000040
- str r1, [r2, 0x8]
- ldr r1, [r2, 0x8]
- mov r1, sp
- strh r3, [r1]
- str r1, [r2]
- adds r0, 0x88
- str r0, [r2, 0x4]
- ldr r0, _08124FD4 @ =0x810000c0
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- add sp, 0x4
- bx lr
- .align 2, 0
-_08124FCC: .4byte 0x040000d4
-_08124FD0: .4byte 0x81000040
-_08124FD4: .4byte 0x810000c0
- thumb_func_end unref_sub_8124F94
-
- thumb_func_start unref_sub_8124FD8
-unref_sub_8124FD8: @ 8124FD8
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r7, _08124FE4 @ =0x040000d4
- b _0812508A
- .align 2, 0
-_08124FE4: .4byte 0x040000d4
-_08124FE8:
- ldrb r0, [r4, 0x1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r0, r4, 0
- adds r0, 0x88
- adds r0, r1
- str r3, [r0]
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r5, 0x6]
- adds r0, 0x8E
- strb r1, [r0]
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r5, 0x4]
- adds r0, 0x8C
- strb r1, [r0]
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r5, 0x5]
- adds r0, 0x8D
- strb r1, [r0]
- ldrb r1, [r5, 0x4]
- ldrb r0, [r5, 0x5]
- adds r6, r1, 0
- muls r6, r0
- ldrh r2, [r4, 0x2]
- adds r1, r2, r6
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- ble _08125040
- movs r0, 0x2
- b _0812509C
-_08125040:
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- bne _08125060
- str r3, [r7]
- ldrh r1, [r4, 0x2]
- lsls r1, 6
- ldr r0, [r4, 0x4]
- adds r0, r1
- str r0, [r7, 0x4]
- lsls r0, r6, 4
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r7, 0x8]
- ldr r0, [r7, 0x8]
- b _0812506C
-_08125060:
- lsls r0, r2, 6
- ldr r1, [r4, 0x4]
- adds r1, r0
- adds r0, r3, 0
- bl sub_800D238
-_0812506C:
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrh r1, [r4, 0x2]
- adds r0, 0x90
- strh r1, [r0]
- ldrh r0, [r4, 0x2]
- adds r0, r6, r0
- strh r0, [r4, 0x2]
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
- strb r0, [r4, 0x1]
- adds r5, 0xC
-_0812508A:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1F
- bhi _0812509A
- ldr r3, [r5]
- cmp r3, 0
- bne _08124FE8
- movs r0, 0
- b _0812509C
-_0812509A:
- movs r0, 0x1
-_0812509C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8124FD8
-
- thumb_func_start unref_sub_81250A4
-unref_sub_81250A4: @ 81250A4
- push {r4,r5,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- b _081250FC
-_081250AE:
- ldrb r1, [r4]
- lsls r1, 3
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- str r2, [r0]
- ldrb r0, [r4]
- lsls r0, 3
- adds r0, r4, r0
- ldrb r1, [r5, 0x4]
- strb r1, [r0, 0xC]
- ldrb r0, [r5, 0x5]
- cmp r0, 0
- bne _081250D8
- ldrb r1, [r4]
- lsls r1, 4
- adds r0, r2, 0
- movs r2, 0x20
- bl LoadPalette
- b _081250EC
-_081250D8:
- adds r0, r2, 0
- mov r1, sp
- bl sub_800D238
- ldrb r1, [r4]
- lsls r1, 4
- mov r0, sp
- movs r2, 0x20
- bl LoadPalette
-_081250EC:
- ldrb r0, [r4]
- lsls r1, r0, 3
- adds r1, r4, r1
- strb r0, [r1, 0xD]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r5, 0x8
-_081250FC:
- ldrb r0, [r4]
- cmp r0, 0xF
- bhi _0812510C
- ldr r2, [r5]
- cmp r2, 0
- bne _081250AE
- movs r0, 0
- b _0812510E
-_0812510C:
- movs r0, 0x1
-_0812510E:
- add sp, 0x20
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_81250A4
-
- thumb_func_start unref_sub_8125118
-unref_sub_8125118: @ 8125118
- push {r4-r7,lr}
- ldr r4, _0812514C @ =0xfffffe00
- add sp, r4
- adds r5, r0, 0
- adds r6, r1, 0
- movs r2, 0x80
- lsls r2, 2
- mov r0, sp
- movs r1, 0
- bl memset
- ldrb r7, [r6, 0x5]
- ldr r0, [r6]
- mov r1, sp
- bl sub_800D238
- ldrb r4, [r5]
- cmp r4, r7
- bcs _08125186
-_0812513E:
- ldrb r0, [r5]
- adds r0, r4
- cmp r0, 0xF
- ble _08125150
- movs r0, 0x1
- b _08125188
- .align 2, 0
-_0812514C: .4byte 0xfffffe00
-_08125150:
- lsls r2, r4, 3
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r2
- ldr r1, [r6]
- str r1, [r0]
- adds r2, r5, r2
- ldrb r0, [r6, 0x4]
- adds r0, r4, r0
- strb r0, [r2, 0xC]
- ldrb r0, [r5]
- strb r0, [r2, 0xD]
- lsls r0, r4, 5
- add r0, sp
- ldrb r1, [r5]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _0812513E
-_08125186:
- movs r0, 0
-_08125188:
- movs r3, 0x80
- lsls r3, 2
- add sp, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8125118
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s
new file mode 100644
index 000000000..a9913b6d0
--- /dev/null
+++ b/asm/use_pokeblock.s
@@ -0,0 +1,2113 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8136130
+sub_8136130: @ 8136130
+ push {r4,r5,lr}
+ ldr r4, _0813615C @ =gUnknown_02039304
+ ldr r2, _08136160 @ =gUnknown_083DFEC4
+ ldr r3, [r2]
+ ldr r5, _08136164 @ =0x0000d164
+ adds r2, r3, r5
+ str r2, [r4]
+ str r0, [r2, 0x8]
+ str r1, [r2, 0x4]
+ ldr r0, _08136168 @ =0x0000d162
+ adds r3, r0
+ movs r0, 0x2
+ strb r0, [r3]
+ ldr r0, _0813616C @ =sub_8136294
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, _08136170 @ =sub_8136244
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813615C: .4byte gUnknown_02039304
+_08136160: .4byte gUnknown_083DFEC4
+_08136164: .4byte 0x0000d164
+_08136168: .4byte 0x0000d162
+_0813616C: .4byte sub_8136294
+_08136170: .4byte sub_8136244
+ thumb_func_end sub_8136130
+
+ thumb_func_start sub_8136174
+sub_8136174: @ 8136174
+ push {r4,r5,lr}
+ ldr r5, _081361C4 @ =gUnknown_02039304
+ ldr r1, [r5]
+ ldr r0, _081361C8 @ =gUnknown_0203930C
+ ldr r0, [r0]
+ str r0, [r1, 0x8]
+ ldr r0, _081361CC @ =gUnknown_02039308
+ ldr r0, [r0]
+ str r0, [r1, 0x4]
+ ldr r4, _081361D0 @ =gUnknown_02039310
+ ldrb r0, [r4]
+ bl sub_81370E4
+ strb r0, [r4]
+ ldr r5, [r5]
+ movs r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _0813619E
+ movs r1, 0x1
+_0813619E:
+ adds r0, r5, 0
+ adds r0, 0x56
+ strb r1, [r0]
+ ldr r0, _081361D4 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _081361D8 @ =0x0000d162
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, _081361DC @ =sub_8136294
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, _081361E0 @ =sub_81361E4
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081361C4: .4byte gUnknown_02039304
+_081361C8: .4byte gUnknown_0203930C
+_081361CC: .4byte gUnknown_02039308
+_081361D0: .4byte gUnknown_02039310
+_081361D4: .4byte gUnknown_083DFEC4
+_081361D8: .4byte 0x0000d162
+_081361DC: .4byte sub_8136294
+_081361E0: .4byte sub_81361E4
+ thumb_func_end sub_8136174
+
+ thumb_func_start sub_81361E4
+sub_81361E4: @ 81361E4
+ push {r4,lr}
+ ldr r4, _08136220 @ =gUnknown_02039304
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r4, [r4]
+ ldr r1, [r4]
+ ldr r0, _08136224 @ =sub_81365C8
+ cmp r1, r0
+ bne _0813621A
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x50
+ strb r1, [r0]
+ ldr r0, _08136228 @ =sub_813622C
+ bl SetMainCallback2
+_0813621A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136220: .4byte gUnknown_02039304
+_08136224: .4byte sub_81365C8
+_08136228: .4byte sub_813622C
+ thumb_func_end sub_81361E4
+
+ thumb_func_start sub_813622C
+sub_813622C: @ 813622C
+ push {lr}
+ bl sub_81368A4
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813622C
+
+ thumb_func_start sub_8136244
+sub_8136244: @ 8136244
+ push {lr}
+ ldr r0, _08136260 @ =gUnknown_02039304
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136260: .4byte gUnknown_02039304
+ thumb_func_end sub_8136244
+
+ thumb_func_start sub_8136264
+sub_8136264: @ 8136264
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ movs r0, 0x6
+ bl sub_80F5CDC
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136264
+
+ thumb_func_start launch_c3_walk_stairs_and_run_once
+launch_c3_walk_stairs_and_run_once: @ 8136280
+ ldr r1, _08136290 @ =gUnknown_02039304
+ ldr r1, [r1]
+ str r0, [r1]
+ adds r1, 0x50
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08136290: .4byte gUnknown_02039304
+ thumb_func_end launch_c3_walk_stairs_and_run_once
+
+ thumb_func_start sub_8136294
+sub_8136294: @ 8136294
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _081362B4 @ =gUnknown_02039304
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x16
+ bls _081362A8
+ b _0813657A
+_081362A8:
+ lsls r0, 2
+ ldr r1, _081362B8 @ =_081362BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081362B4: .4byte gUnknown_02039304
+_081362B8: .4byte _081362BC
+ .align 2, 0
+_081362BC:
+ .4byte _08136318
+ .4byte _08136354
+ .4byte _0813635E
+ .4byte _08136366
+ .4byte _08136374
+ .4byte _08136380
+ .4byte _0813638C
+ .4byte _081363B8
+ .4byte _081363C8
+ .4byte _081363DC
+ .4byte _081363EE
+ .4byte _08136404
+ .4byte _08136448
+ .4byte _08136464
+ .4byte _08136488
+ .4byte _08136494
+ .4byte _0813649A
+ .4byte _081364D8
+ .4byte _081364FC
+ .4byte _08136508
+ .4byte _08136520
+ .4byte _08136538
+ .4byte _0813656C
+_08136318:
+ bl is_c1_link_related_active
+ ldr r1, _08136344 @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r2, _08136348 @ =0x00006dac
+ adds r1, r2
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08136330
+ b _0813657A
+_08136330:
+ ldr r4, _0813634C @ =gUnknown_02039304
+ ldr r0, [r4]
+ adds r0, 0x55
+ strb r1, [r0]
+ ldr r0, _08136350 @ =sub_81365A0
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r1, [r4]
+ b _08136528
+ .align 2, 0
+_08136344: .4byte gUnknown_083DFEC4
+_08136348: .4byte 0x00006dac
+_0813634C: .4byte gUnknown_02039304
+_08136350: .4byte sub_81365A0
+_08136354:
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ b _08136524
+_0813635E:
+ movs r0, 0
+ bl SetVBlankCallback
+ b _08136524
+_08136366:
+ ldr r0, _08136370 @ =gWindowConfig_81E7080
+ bl SetUpWindowConfig
+ b _08136524
+ .align 2, 0
+_08136370: .4byte gWindowConfig_81E7080
+_08136374:
+ ldr r0, _0813637C @ =gWindowConfig_81E7080
+ bl MultistepInitMenuWindowBegin
+ b _08136524
+ .align 2, 0
+_0813637C: .4byte gWindowConfig_81E7080
+_08136380:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0813638A
+ b _0813657A
+_0813638A:
+ b _08136524
+_0813638C:
+ ldr r0, _081363AC @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r4, _081363B0 @ =0x000076aa
+ adds r0, r1, r4
+ movs r2, 0
+ strb r2, [r0]
+ ldr r4, _081363B4 @ =0x000087e0
+ adds r0, r1, r4
+ str r2, [r0]
+ movs r0, 0xC3
+ lsls r0, 2
+ adds r1, r0
+ movs r0, 0x20
+ strh r0, [r1]
+ ldr r1, [r3]
+ b _08136528
+ .align 2, 0
+_081363AC: .4byte gUnknown_083DFEC4
+_081363B0: .4byte 0x000076aa
+_081363B4: .4byte 0x000087e0
+_081363B8:
+ bl sub_80F2688
+ ldr r0, _081363D8 @ =gUnknown_02039304
+ ldr r1, [r0]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081363C8:
+ bl sub_80F26BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081363D4
+ b _0813657A
+_081363D4:
+ b _08136524
+ .align 2, 0
+_081363D8: .4byte gUnknown_02039304
+_081363DC:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r0, _08136400 @ =gUnknown_02039304
+ ldr r1, [r0]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081363EE:
+ movs r0, 0x1
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081363FC
+ b _0813657A
+_081363FC:
+ b _08136524
+ .align 2, 0
+_08136400: .4byte gUnknown_02039304
+_08136404:
+ ldr r1, _08136434 @ =gKeyRepeatStartDelay
+ movs r0, 0x14
+ strh r0, [r1]
+ bl CalculatePlayerPartyCount
+ ldr r1, _08136438 @ =gUnknown_083DFEC4
+ ldr r4, [r1]
+ ldr r2, _0813643C @ =0x00008828
+ adds r1, r4, r2
+ movs r5, 0
+ strb r0, [r1]
+ ldr r1, _08136440 @ =0x00009344
+ adds r0, r4, r1
+ strb r5, [r0]
+ subs r2, 0xC0
+ adds r0, r4, r2
+ str r5, [r0]
+ bl sub_80F4BD0
+ ldr r0, _08136444 @ =0x0000d160
+ adds r4, r0
+ strh r5, [r4]
+ b _08136524
+ .align 2, 0
+_08136434: .4byte gKeyRepeatStartDelay
+_08136438: .4byte gUnknown_083DFEC4
+_0813643C: .4byte 0x00008828
+_08136440: .4byte 0x00009344
+_08136444: .4byte 0x0000d160
+_08136448:
+ bl sub_80F1778
+ lsls r0, 24
+ cmp r0, 0
+ beq _08136454
+ b _0813657A
+_08136454:
+ ldr r0, _08136460 @ =REG_BG2VOFS
+ movs r1, 0x6
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ b _08136524
+ .align 2, 0
+_08136460: .4byte REG_BG2VOFS
+_08136464:
+ movs r0, 0
+ bl sub_80F2E18
+ ldr r0, _0813647C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _08136480 @ =0x00008768
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _08136484 @ =0x0000ffd8
+ strh r0, [r1, 0x26]
+ b _08136524
+ .align 2, 0
+_0813647C: .4byte gUnknown_083DFEC4
+_08136480: .4byte 0x00008768
+_08136484: .4byte 0x0000ffd8
+_08136488:
+ bl sub_80F170C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813657A
+ b _08136524
+_08136494:
+ bl sub_80F33A8
+ b _08136524
+_0813649A:
+ ldr r1, _081364C4 @ =0x0600f800
+ movs r2, 0
+ str r2, [sp]
+ ldr r0, _081364C8 @ =0x040000d4
+ mov r4, sp
+ str r4, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _081364CC @ =0x85000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _081364D0 @ =REG_BG1VOFS
+ strh r2, [r0]
+ subs r0, 0x2
+ strh r2, [r0]
+ ldr r1, _081364D4 @ =REG_BG1CNT
+ movs r2, 0xF8
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, [r3]
+ b _08136528
+ .align 2, 0
+_081364C4: .4byte 0x0600f800
+_081364C8: .4byte 0x040000d4
+_081364CC: .4byte 0x85000200
+_081364D0: .4byte REG_BG1VOFS
+_081364D4: .4byte REG_BG1CNT
+_081364D8:
+ ldr r0, _081364F0 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r4, _081364F4 @ =0x00008ff0
+ adds r0, r1, r4
+ ldr r2, _081364F8 @ =0x00009004
+ adds r1, r2
+ bl sub_80F567C
+ bl sub_80F5B38
+ b _08136524
+ .align 2, 0
+_081364F0: .4byte gUnknown_083DFEC4
+_081364F4: .4byte 0x00008ff0
+_081364F8: .4byte 0x00009004
+_081364FC:
+ bl sub_80F5B50
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813657A
+ b _08136524
+_08136508:
+ ldr r0, _08136518 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r4, _0813651C @ =0x00009004
+ adds r0, r4
+ bl sub_80F556C
+ b _08136524
+ .align 2, 0
+_08136518: .4byte gUnknown_083DFEC4
+_0813651C: .4byte 0x00009004
+_08136520:
+ bl sub_80F1934
+_08136524:
+ ldr r0, _08136534 @ =gUnknown_02039304
+ ldr r1, [r0]
+_08136528:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0813657A
+ .align 2, 0
+_08136534: .4byte gUnknown_02039304
+_08136538:
+ ldr r1, _08136584 @ =REG_WIN0H
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x9B
+ strh r0, [r1]
+ ldr r0, _08136588 @ =REG_WIN0V
+ ldr r2, _0813658C @ =0x00003273
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08136590 @ =REG_WININ
+ ldr r4, _08136594 @ =0x00003f3f
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1B
+ strh r0, [r1]
+ subs r1, 0x38
+ movs r0, 0x28
+ strh r0, [r1]
+ subs r1, 0x12
+ ldr r2, _08136598 @ =0x00007f40
+ adds r0, r2, 0
+ strh r0, [r1]
+_0813656C:
+ ldr r0, [r3]
+ adds r0, 0x55
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _0813659C @ =sub_81365C8
+ bl launch_c3_walk_stairs_and_run_once
+_0813657A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136584: .4byte REG_WIN0H
+_08136588: .4byte REG_WIN0V
+_0813658C: .4byte 0x00003273
+_08136590: .4byte REG_WININ
+_08136594: .4byte 0x00003f3f
+_08136598: .4byte 0x00007f40
+_0813659C: .4byte sub_81365C8
+ thumb_func_end sub_8136294
+
+ thumb_func_start sub_81365A0
+sub_81365A0: @ 81365A0
+ push {r4,lr}
+ ldr r1, _081365C4 @ =gUnknown_02039304
+ ldr r0, [r1]
+ adds r0, 0x55
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081365BE
+ adds r4, r1, 0
+_081365B0:
+ bl sub_8136294
+ ldr r0, [r4]
+ adds r0, 0x55
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081365B0
+_081365BE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081365C4: .4byte gUnknown_02039304
+ thumb_func_end sub_81365A0
+
+ thumb_func_start sub_81365C8
+sub_81365C8: @ 81365C8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _081365E0 @ =gUnknown_02039304
+ ldr r0, [r4]
+ adds r0, 0x50
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _081365E4
+ cmp r1, 0x1
+ beq _0813660C
+ b _08136626
+ .align 2, 0
+_081365E0: .4byte gUnknown_02039304
+_081365E4:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _08136608 @ =sub_8136264
+ bl SetVBlankCallback
+ ldr r1, [r4]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08136626
+ .align 2, 0
+_08136608: .4byte sub_8136264
+_0813660C:
+ ldr r0, _08136630 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08136626
+ bl sub_80F3C94
+ bl sub_80F3D00
+ ldr r0, _08136634 @ =sub_8136638
+ bl launch_c3_walk_stairs_and_run_once
+_08136626:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136630: .4byte gPaletteFade
+_08136634: .4byte sub_8136638
+ thumb_func_end sub_81365C8
+
+ thumb_func_start sub_8136638
+sub_8136638: @ 8136638
+ push {r4,lr}
+ ldr r0, _08136654 @ =gUnknown_02039304
+ ldr r0, [r0]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _08136648
+ b _081367FA
+_08136648:
+ lsls r0, 2
+ ldr r1, _08136658 @ =_0813665C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08136654: .4byte gUnknown_02039304
+_08136658: .4byte _0813665C
+ .align 2, 0
+_0813665C:
+ .4byte _0813667C
+ .4byte _08136748
+ .4byte _08136754
+ .4byte _08136774
+ .4byte _081367FA
+ .4byte _08136780
+ .4byte _08136798
+ .4byte _081367E0
+_0813667C:
+ ldr r2, _081366A4 @ =gMain
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081366AC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80F5060
+ bl move_anim_execute
+ ldr r0, _081366A8 @ =gUnknown_02039304
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x1
+ b _081367F8
+ .align 2, 0
+_081366A4: .4byte gMain
+_081366A8: .4byte gUnknown_02039304
+_081366AC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081366D4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80F5060
+ bl move_anim_execute
+ ldr r0, _081366D0 @ =gUnknown_02039304
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x1
+ b _081367F8
+ .align 2, 0
+_081366D0: .4byte gUnknown_02039304
+_081366D4:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081366F4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _081366F0 @ =gUnknown_02039304
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x3
+ b _081367F8
+ .align 2, 0
+_081366F0: .4byte gUnknown_02039304
+_081366F4:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081366FE
+ b _081367FA
+_081366FE:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08136728 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _0813672C @ =0x000087dc
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ ldr r2, _08136730 @ =0x000087da
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _08136738
+ ldr r0, _08136734 @ =gUnknown_02039304
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x3
+ b _081367F8
+ .align 2, 0
+_08136728: .4byte gUnknown_083DFEC4
+_0813672C: .4byte 0x000087dc
+_08136730: .4byte 0x000087da
+_08136734: .4byte gUnknown_02039304
+_08136738:
+ ldr r0, _08136744 @ =gUnknown_02039304
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x5
+ b _081367F8
+ .align 2, 0
+_08136744: .4byte gUnknown_02039304
+_08136748:
+ bl gpu_sync_bg_show
+ lsls r0, 24
+ cmp r0, 0
+ bne _081367FA
+ b _08136784
+_08136754:
+ bl sub_8055870
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _081367FA
+ bl sub_80F1934
+ bl sub_80F3D00
+ ldr r0, _08136770 @ =gUnknown_02039304
+ ldr r0, [r0]
+ adds r0, 0x50
+ strb r4, [r0]
+ b _081367FA
+ .align 2, 0
+_08136770: .4byte gUnknown_02039304
+_08136774:
+ ldr r0, _0813677C @ =sub_8136B44
+ bl launch_c3_walk_stairs_and_run_once
+ b _081367FA
+ .align 2, 0
+_0813677C: .4byte sub_8136B44
+_08136780:
+ bl sub_8136BB8
+_08136784:
+ ldr r0, _08136794 @ =gUnknown_02039304
+ ldr r1, [r0]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081367FA
+ .align 2, 0
+_08136794: .4byte gUnknown_02039304
+_08136798:
+ bl sub_8136C40
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081367B8
+ cmp r1, 0
+ bgt _081367B2
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081367F0
+ b _081367FA
+_081367B2:
+ cmp r1, 0x1
+ bne _081367FA
+ b _081367F0
+_081367B8:
+ bl sub_8137058
+ lsls r0, 24
+ cmp r0, 0
+ beq _081367D4
+ bl sub_8136D60
+ ldr r0, _081367D0 @ =gUnknown_02039304
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x7
+ b _081367F8
+ .align 2, 0
+_081367D0: .4byte gUnknown_02039304
+_081367D4:
+ ldr r0, _081367DC @ =sub_8136808
+ bl launch_c3_walk_stairs_and_run_once
+ b _081367FA
+ .align 2, 0
+_081367DC: .4byte sub_8136808
+_081367E0:
+ ldr r0, _08136800 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081367FA
+ bl sub_8136D8C
+_081367F0:
+ ldr r0, _08136804 @ =gUnknown_02039304
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0
+_081367F8:
+ strb r1, [r0]
+_081367FA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136800: .4byte gMain
+_08136804: .4byte gUnknown_02039304
+ thumb_func_end sub_8136638
+
+ thumb_func_start sub_8136808
+sub_8136808: @ 8136808
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _08136820 @ =gUnknown_02039304
+ ldr r0, [r5]
+ adds r0, 0x50
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _08136824
+ cmp r4, 0x1
+ beq _08136874
+ b _0813688C
+ .align 2, 0
+_08136820: .4byte gUnknown_02039304
+_08136824:
+ ldr r0, _08136860 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _08136864 @ =0x000087dc
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81370A4
+ ldr r1, _08136868 @ =gUnknown_02039310
+ strb r0, [r1]
+ ldr r1, _0813686C @ =gUnknown_02039308
+ ldr r2, [r5]
+ ldr r0, [r2, 0x4]
+ str r0, [r1]
+ ldr r1, _08136870 @ =gUnknown_0203930C
+ ldr r0, [r2, 0x8]
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, [r5]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0813688C
+ .align 2, 0
+_08136860: .4byte gUnknown_083DFEC4
+_08136864: .4byte 0x000087dc
+_08136868: .4byte gUnknown_02039310
+_0813686C: .4byte gUnknown_02039308
+_08136870: .4byte gUnknown_0203930C
+_08136874:
+ ldr r0, _08136894 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813688C
+ ldr r0, _08136898 @ =gMain
+ ldr r1, _0813689C @ =sub_8136174
+ str r1, [r0, 0x8]
+ ldr r0, _081368A0 @ =sub_8147ADC
+ bl SetMainCallback2
+_0813688C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136894: .4byte gPaletteFade
+_08136898: .4byte gMain
+_0813689C: .4byte sub_8136174
+_081368A0: .4byte sub_8147ADC
+ thumb_func_end sub_8136808
+
+ thumb_func_start sub_81368A4
+sub_81368A4: @ 81368A4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _081368C4 @ =gUnknown_02039304
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _081368B8
+ b _081369B8
+_081368B8:
+ lsls r0, 2
+ ldr r1, _081368C8 @ =_081368CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081368C4: .4byte gUnknown_02039304
+_081368C8: .4byte _081368CC
+ .align 2, 0
+_081368CC:
+ .4byte _081368E8
+ .4byte _08136922
+ .4byte _0813692E
+ .4byte _0813694C
+ .4byte _0813695A
+ .4byte _0813696C
+ .4byte _08136998
+_081368E8:
+ ldr r0, _0813690C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _08136910 @ =0x000087dc
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r0, _08136914 @ =gUnknown_02039310
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08136918
+ ldr r0, [r4]
+ adds r0, 0x56
+ ldrb r0, [r0]
+ bl sub_80F5060
+ ldr r1, [r4]
+ b _08136986
+ .align 2, 0
+_0813690C: .4byte gUnknown_083DFEC4
+_08136910: .4byte 0x000087dc
+_08136914: .4byte gUnknown_02039310
+_08136918:
+ ldr r0, [r4]
+ adds r0, 0x50
+ movs r1, 0x3
+ strb r1, [r0]
+ b _081369B8
+_08136922:
+ bl gpu_sync_bg_show
+ lsls r0, 24
+ cmp r0, 0
+ bne _081369B8
+ b _08136982
+_0813692E:
+ bl sub_8055870
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _081369B8
+ bl sub_80F1934
+ ldr r0, _08136948 @ =gUnknown_02039304
+ ldr r0, [r0]
+ adds r0, 0x50
+ strb r4, [r0]
+ b _081369B8
+ .align 2, 0
+_08136948: .4byte gUnknown_02039304
+_0813694C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ b _08136982
+_0813695A:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _08136968 @ =0x00007f40
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, [r4]
+ b _08136986
+ .align 2, 0
+_08136968: .4byte 0x00007f40
+_0813696C:
+ ldr r0, _08136990 @ =sub_8136264
+ bl SetVBlankCallback
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_08136982:
+ ldr r0, _08136994 @ =gUnknown_02039304
+ ldr r1, [r0]
+_08136986:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081369B8
+ .align 2, 0
+_08136990: .4byte sub_8136264
+_08136994: .4byte gUnknown_02039304
+_08136998:
+ ldr r0, _081369C0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081369B8
+ bl sub_80F3C94
+ bl sub_80F3D00
+ ldr r0, _081369C4 @ =sub_81369CC
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, _081369C8 @ =sub_8136244
+ bl SetMainCallback2
+_081369B8:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081369C0: .4byte gPaletteFade
+_081369C4: .4byte sub_81369CC
+_081369C8: .4byte sub_8136244
+ thumb_func_end sub_81368A4
+
+ thumb_func_start sub_81369CC
+sub_81369CC: @ 81369CC
+ push {r4-r6,lr}
+ ldr r1, _081369E8 @ =gUnknown_02039304
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _081369DE
+ b _08136B32
+_081369DE:
+ lsls r0, 2
+ ldr r1, _081369EC @ =_081369F0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081369E8: .4byte gUnknown_02039304
+_081369EC: .4byte _081369F0
+ .align 2, 0
+_081369F0:
+ .4byte _08136A08
+ .4byte _08136A48
+ .4byte _08136A5C
+ .4byte _08136AAC
+ .4byte _08136AEC
+ .4byte _08136B0E
+_08136A08:
+ ldr r3, [r4]
+ ldr r2, _08136A38 @ =gPlayerParty
+ str r2, [r3, 0xC]
+ ldr r0, _08136A3C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r5, _08136A40 @ =0x000087dc
+ adds r0, r1, r5
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, _08136A44 @ =0x0000893e
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x64
+ muls r0, r1
+ adds r0, r2
+ str r0, [r3, 0xC]
+ bl move_anim_execute
+ b _08136B02
+ .align 2, 0
+_08136A38: .4byte gPlayerParty
+_08136A3C: .4byte gUnknown_083DFEC4
+_08136A40: .4byte 0x000087dc
+_08136A44: .4byte 0x0000893e
+_08136A48:
+ ldr r0, _08136A58 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08136B32
+ b _08136B02
+ .align 2, 0
+_08136A58: .4byte gMain
+_08136A5C:
+ bl sub_8136EF0
+ ldr r6, _08136A98 @ =gUnknown_02039304
+ ldr r0, [r6]
+ adds r0, 0x5C
+ ldr r1, _08136A9C @ =gUnknown_083DFEC4
+ ldr r4, [r1]
+ ldr r1, _08136AA0 @ =0x00009040
+ adds r5, r4, r1
+ adds r1, r5, 0
+ bl sub_80F567C
+ ldr r1, _08136AA4 @ =0x00008fe9
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08136AA8 @ =0x00009004
+ adds r0, r1
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80F5550
+ bl sub_8137138
+ ldr r1, [r6]
+ b _08136B04
+ .align 2, 0
+_08136A98: .4byte gUnknown_02039304
+_08136A9C: .4byte gUnknown_083DFEC4
+_08136AA0: .4byte 0x00009040
+_08136AA4: .4byte 0x00008fe9
+_08136AA8: .4byte 0x00009004
+_08136AAC:
+ bl sub_80F555C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08136B32
+ ldr r0, _08136AE0 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r5, _08136AE4 @ =0x000087dc
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_81370A4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80F7224
+ bl sub_80F3D00
+ ldr r1, _08136AE8 @ =gUnknown_02039304
+ ldr r0, [r1]
+ adds r0, 0x52
+ strb r4, [r0]
+ ldr r1, [r1]
+ b _08136B04
+ .align 2, 0
+_08136AE0: .4byte gUnknown_083DFEC4
+_08136AE4: .4byte 0x000087dc
+_08136AE8: .4byte gUnknown_02039304
+_08136AEC:
+ ldr r1, [r4]
+ adds r1, 0x52
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ bls _08136B32
+ bl sub_8136C6C
+_08136B02:
+ ldr r1, [r4]
+_08136B04:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08136B32
+_08136B0E:
+ ldr r0, _08136B38 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08136B32
+ bl sub_8136D00
+ lsls r0, 24
+ cmp r0, 0
+ bne _08136B32
+ ldr r0, _08136B3C @ =gScriptItemId
+ ldrb r0, [r0]
+ bl sub_810CA6C
+ ldr r0, _08136B40 @ =sub_8136B44
+ bl launch_c3_walk_stairs_and_run_once
+_08136B32:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136B38: .4byte gMain
+_08136B3C: .4byte gScriptItemId
+_08136B40: .4byte sub_8136B44
+ thumb_func_end sub_81369CC
+
+ thumb_func_start sub_8136B44
+sub_8136B44: @ 8136B44
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _08136B60 @ =gUnknown_02039304
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x50
+ ldrb r1, [r2]
+ cmp r1, 0x1
+ beq _08136B80
+ cmp r1, 0x1
+ bgt _08136B64
+ cmp r1, 0
+ beq _08136B6E
+ b _08136BAE
+ .align 2, 0
+_08136B60: .4byte gUnknown_02039304
+_08136B64:
+ cmp r1, 0x2
+ beq _08136B98
+ cmp r1, 0x3
+ beq _08136BA8
+ b _08136BAE
+_08136B6E:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08136B9C
+_08136B80:
+ ldr r0, _08136B94 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08136BAE
+ movs r0, 0x2
+ strb r0, [r2]
+ b _08136BAE
+ .align 2, 0
+_08136B94: .4byte gPaletteFade
+_08136B98:
+ bl sub_80F5BDC
+_08136B9C:
+ ldr r1, [r4]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08136BAE
+_08136BA8:
+ ldr r0, [r0, 0x4]
+ bl SetMainCallback2
+_08136BAE:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136B44
+
+ thumb_func_start sub_8136BB8
+sub_8136BB8: @ 8136BB8
+ push {r4,lr}
+ ldr r0, _08136C28 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _08136C2C @ =0x000087dc
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81370A4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _08136C30 @ =gPlayerParty
+ adds r0, r1
+ ldr r4, _08136C34 @ =gUnknown_02039304
+ ldr r2, [r4]
+ adds r2, 0x10
+ movs r1, 0x2
+ bl GetMonData
+ ldr r0, [r4]
+ adds r0, 0x10
+ bl StringGetEnd10
+ ldr r0, [r4]
+ adds r0, 0x10
+ ldr r1, _08136C38 @ =gOtherText_GetsAPokeBlock
+ bl StringAppend
+ ldr r0, _08136C3C @ =gWindowConfig_81E709C
+ bl BasicInitMenuWindow
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, [r4]
+ adds r0, 0x10
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+ movs r0, 0x17
+ movs r1, 0xA
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ movs r0, 0
+ bl MoveMenuCursor
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136C28: .4byte gUnknown_083DFEC4
+_08136C2C: .4byte 0x000087dc
+_08136C30: .4byte gPlayerParty
+_08136C34: .4byte gUnknown_02039304
+_08136C38: .4byte gOtherText_GetsAPokeBlock
+_08136C3C: .4byte gWindowConfig_81E709C
+ thumb_func_end sub_8136BB8
+
+ thumb_func_start sub_8136C40
+sub_8136C40: @ 8136C40
+ push {r4,lr}
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _08136C60
+ bl MenuZeroFillScreen
+ ldr r0, _08136C68 @ =gWindowConfig_81E7080
+ bl BasicInitMenuWindow
+_08136C60:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08136C68: .4byte gWindowConfig_81E7080
+ thumb_func_end sub_8136C40
+
+ thumb_func_start sub_8136C6C
+sub_8136C6C: @ 8136C6C
+ push {lr}
+ ldr r0, _08136C8C @ =gWindowConfig_81E709C
+ bl BasicInitMenuWindow
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r3, _08136C90 @ =gUnknown_02039304
+ ldr r0, [r3]
+ adds r0, 0x53
+ movs r1, 0
+ b _08136C9C
+ .align 2, 0
+_08136C8C: .4byte gWindowConfig_81E709C
+_08136C90: .4byte gUnknown_02039304
+_08136C94:
+ ldr r0, [r3]
+ adds r0, 0x53
+ ldrb r1, [r0]
+ adds r1, 0x1
+_08136C9C:
+ strb r1, [r0]
+ ldr r2, [r3]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08136CDC
+ adds r0, r2, 0
+ adds r0, 0x61
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08136C94
+ ldr r0, _08136CD8 @ =gUnknown_02039304
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08136CDC
+ adds r0, r2, 0
+ adds r0, 0x10
+ ldrb r1, [r1]
+ adds r2, 0x61
+ adds r2, r1
+ ldrb r2, [r2]
+ bl sub_8136DC0
+ b _08136CEE
+ .align 2, 0
+_08136CD8: .4byte gUnknown_02039304
+_08136CDC:
+ ldr r0, _08136CFC @ =gUnknown_02039304
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x10
+ adds r1, 0x53
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_8136DC0
+_08136CEE:
+ ldr r0, _08136CFC @ =gUnknown_02039304
+ ldr r0, [r0]
+ adds r0, 0x10
+ bl sub_8136DA0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136CFC: .4byte gUnknown_02039304
+ thumb_func_end sub_8136C6C
+
+ thumb_func_start sub_8136D00
+sub_8136D00: @ 8136D00
+ push {r4,r5,lr}
+ ldr r4, _08136D30 @ =gUnknown_02039304
+ adds r3, r4, 0
+ movs r5, 0x5
+_08136D08:
+ ldr r0, [r3]
+ adds r0, 0x53
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r2, [r3]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08136D34
+ adds r0, r2, 0
+ adds r0, 0x61
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08136D3A
+ b _08136D08
+ .align 2, 0
+_08136D30: .4byte gUnknown_02039304
+_08136D34:
+ strb r5, [r1]
+ movs r0, 0
+ b _08136D5A
+_08136D3A:
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x10
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r1, [r1]
+ adds r2, 0x61
+ adds r2, r1
+ ldrb r2, [r2]
+ bl sub_8136DC0
+ ldr r0, [r4]
+ adds r0, 0x10
+ bl sub_8136DA0
+ movs r0, 0x1
+_08136D5A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8136D00
+
+ thumb_func_start sub_8136D60
+sub_8136D60: @ 8136D60
+ push {lr}
+ ldr r0, _08136D84 @ =gWindowConfig_81E709C
+ bl BasicInitMenuWindow
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08136D88 @ =gOtherText_WontEat
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136D84: .4byte gWindowConfig_81E709C
+_08136D88: .4byte gOtherText_WontEat
+ thumb_func_end sub_8136D60
+
+ thumb_func_start sub_8136D8C
+sub_8136D8C: @ 8136D8C
+ push {lr}
+ bl MenuZeroFillScreen
+ ldr r0, _08136D9C @ =gWindowConfig_81E7080
+ bl BasicInitMenuWindow
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136D9C: .4byte gWindowConfig_81E7080
+ thumb_func_end sub_8136D8C
+
+ thumb_func_start sub_8136DA0
+sub_8136DA0: @ 8136DA0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136DA0
+
+ thumb_func_start sub_8136DC0
+sub_8136DC0: @ 8136DC0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 16
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _08136DFC
+ cmp r2, 0
+ ble _08136DD8
+ movs r0, 0
+_08136DD8:
+ lsls r0, 16
+ ldr r1, _08136DF4 @ =gUnknown_08406134
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r1, _08136DF8 @ =gOtherText_WasEnhanced
+ adds r0, r4, 0
+ bl StringAppend
+ b _08136E04
+ .align 2, 0
+_08136DF4: .4byte gUnknown_08406134
+_08136DF8: .4byte gOtherText_WasEnhanced
+_08136DFC:
+ ldr r1, _08136E0C @ =gOtherText_NothingChanged
+ adds r0, r4, 0
+ bl StringCopy
+_08136E04:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136E0C: .4byte gOtherText_NothingChanged
+ thumb_func_end sub_8136DC0
+
+ thumb_func_start sub_8136E10
+sub_8136E10: @ 8136E10
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r4, 0
+ ldr r7, _08136E3C @ =gUnknown_08406118
+_08136E1A:
+ lsls r0, r4, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl GetMonData
+ adds r1, r5, r4
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08136E1A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136E3C: .4byte gUnknown_08406118
+ thumb_func_end sub_8136E10
+
+ thumb_func_start sub_8136E40
+sub_8136E40: @ 8136E40
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r0
+ adds r5, r1, 0
+ adds r0, r5, 0
+ movs r1, 0x30
+ bl GetMonData
+ cmp r0, 0xFF
+ beq _08136EDC
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_8136F74
+ movs r4, 0
+ mov r7, sp
+_08136E64:
+ ldr r1, _08136EE8 @ =gUnknown_08406118
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r6, [r0]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ strb r0, [r7]
+ ldr r1, _08136EEC @ =gUnknown_02039304
+ ldr r1, [r1]
+ lsls r2, r4, 1
+ adds r1, 0x66
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bge _08136E92
+ movs r1, 0
+_08136E92:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08136E9C
+ movs r1, 0xFF
+_08136E9C:
+ strb r1, [r7]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08136E64
+ adds r0, r5, 0
+ movs r1, 0x30
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ ldrb r2, [r2, 0x6]
+ adds r1, r0, r2
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08136ECE
+ movs r1, 0xFF
+_08136ECE:
+ mov r0, sp
+ strb r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x30
+ mov r2, sp
+ bl SetMonData
+_08136EDC:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136EE8: .4byte gUnknown_08406118
+_08136EEC: .4byte gUnknown_02039304
+ thumb_func_end sub_8136E40
+
+ thumb_func_start sub_8136EF0
+sub_8136EF0: @ 8136EF0
+ push {r4,r5,lr}
+ ldr r5, _08136F60 @ =gPlayerParty
+ ldr r0, _08136F64 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _08136F68 @ =0x000087dc
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, _08136F6C @ =0x0000893e
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x64
+ muls r0, r1
+ adds r5, r0, r5
+ ldr r4, _08136F70 @ =gUnknown_02039304
+ ldr r1, [r4]
+ adds r1, 0x57
+ adds r0, r5, 0
+ bl sub_8136E10
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ adds r1, r5, 0
+ bl sub_8136E40
+ ldr r1, [r4]
+ adds r1, 0x5C
+ adds r0, r5, 0
+ bl sub_8136E10
+ movs r3, 0
+_08136F36:
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x61
+ adds r2, r3
+ adds r1, r0, 0
+ adds r1, 0x5C
+ adds r1, r3
+ adds r0, 0x57
+ adds r0, r3
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ subs r1, r0
+ strb r1, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _08136F36
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136F60: .4byte gPlayerParty
+_08136F64: .4byte gUnknown_083DFEC4
+_08136F68: .4byte 0x000087dc
+_08136F6C: .4byte 0x0000893e
+_08136F70: .4byte gUnknown_02039304
+ thumb_func_end sub_8136EF0
+
+ thumb_func_start sub_8136F74
+sub_8136F74: @ 8136F74
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r1
+ ldr r1, _08136FBC @ =gUnknown_02039304
+ ldr r3, [r1]
+ ldrb r1, [r0, 0x1]
+ adds r2, r3, 0
+ adds r2, 0x66
+ strh r1, [r2]
+ ldrb r2, [r0, 0x5]
+ adds r1, r3, 0
+ adds r1, 0x68
+ strh r2, [r1]
+ ldrb r1, [r0, 0x4]
+ adds r2, r3, 0
+ adds r2, 0x6A
+ strh r1, [r2]
+ ldrb r2, [r0, 0x3]
+ adds r1, r3, 0
+ adds r1, 0x6C
+ strh r2, [r1]
+ ldrb r1, [r0, 0x2]
+ adds r0, r3, 0
+ adds r0, 0x6E
+ strh r1, [r0]
+ ldr r0, _08136FC0 @ =gUnknown_02039312
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _08136FC4
+ movs r0, 0x1
+ b _08136FCA
+ .align 2, 0
+_08136FBC: .4byte gUnknown_02039304
+_08136FC0: .4byte gUnknown_02039312
+_08136FC4:
+ cmp r0, 0
+ bge _08137040
+ movs r0, 0xFF
+_08136FCA:
+ movs r2, 0
+ lsls r0, 24
+ mov r9, r0
+ ldr r0, _08137050 @ =gUnknown_02039304
+ mov r8, r0
+_08136FD4:
+ mov r0, r8
+ ldr r1, [r0]
+ lsls r0, r2, 24
+ asrs r6, r0, 24
+ lsls r7, r6, 1
+ adds r1, 0x66
+ adds r1, r7
+ movs r2, 0
+ ldrsh r4, [r1, r2]
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0813700C
+ lsls r0, r5, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r5, r0, 24
+_0813700C:
+ ldr r0, _08137054 @ =gUnknown_0840612C
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ mov r0, r10
+ bl sub_8040A54
+ lsls r0, 24
+ asrs r2, r0, 24
+ cmp r0, r9
+ bne _08137034
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x66
+ adds r0, r7
+ lsls r1, r5, 24
+ asrs r1, 24
+ muls r1, r2
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+_08137034:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ ble _08136FD4
+_08137040:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137050: .4byte gUnknown_02039304
+_08137054: .4byte gUnknown_0840612C
+ thumb_func_end sub_8136F74
+
+ thumb_func_start sub_8137058
+sub_8137058: @ 8137058
+ push {lr}
+ ldr r0, _0813708C @ =gPlayerParty
+ ldr r1, _08137090 @ =gUnknown_083DFEC4
+ ldr r2, [r1]
+ ldr r3, _08137094 @ =0x000087dc
+ adds r1, r2, r3
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ lsls r1, 2
+ adds r2, r1
+ ldr r1, _08137098 @ =0x0000893e
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 27
+ lsrs r1, 27
+ movs r2, 0x64
+ muls r1, r2
+ adds r0, r1, r0
+ movs r1, 0x30
+ bl GetMonData
+ cmp r0, 0xFF
+ beq _0813709C
+ movs r0, 0
+ b _0813709E
+ .align 2, 0
+_0813708C: .4byte gPlayerParty
+_08137090: .4byte gUnknown_083DFEC4
+_08137094: .4byte 0x000087dc
+_08137098: .4byte 0x0000893e
+_0813709C:
+ movs r0, 0x1
+_0813709E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8137058
+
+ thumb_func_start sub_81370A4
+sub_81370A4: @ 81370A4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_081370AC:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _081370C8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _081370D2
+ cmp r5, 0
+ bne _081370CC
+ adds r0, r4, 0
+ b _081370DE
+ .align 2, 0
+_081370C8: .4byte gPlayerParty
+_081370CC:
+ subs r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_081370D2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _081370AC
+ movs r0, 0
+_081370DE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81370A4
+
+ thumb_func_start sub_81370E4
+sub_81370E4: @ 81370E4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ movs r6, 0
+ cmp r6, r5
+ bcs _08137114
+_081370F2:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08137120 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0813710A
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0813710A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _081370F2
+_08137114:
+ subs r0, r5, r6
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08137120: .4byte gPlayerParty
+ thumb_func_end sub_81370E4
+
+ thumb_func_start sub_8137124
+sub_8137124: @ 8137124
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81370A4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8137124
+
+ thumb_func_start sub_8137138
+sub_8137138: @ 8137138
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _081371C0 @ =gSpriteSheet_ConditionUpDown
+ bl LoadSpriteSheet
+ ldr r0, _081371C4 @ =gSpritePalette_ConditionUpDown
+ bl LoadSpritePalette
+ ldr r2, _081371C8 @ =gUnknown_02039304
+ ldr r0, [r2]
+ adds r0, 0x54
+ movs r1, 0
+ strb r1, [r0]
+ movs r4, 0
+ adds r5, r2, 0
+ ldr r6, _081371CC @ =gUnknown_08406158
+ adds r0, r6, 0x2
+ mov r8, r0
+ ldr r7, _081371D0 @ =gSprites + 0x1C
+_08137160:
+ ldr r0, [r5]
+ adds r0, 0x61
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081371AC
+ lsls r2, r4, 2
+ adds r0, r2, r6
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ add r2, r8
+ movs r0, 0
+ ldrsh r2, [r2, r0]
+ ldr r0, _081371D4 @ =gSpriteTemplate_840618C
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _081371AC
+ ldr r0, [r5]
+ adds r0, 0x61
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081371A2
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, _081371D8 @ =sub_81371DC
+ str r1, [r0]
+_081371A2:
+ ldr r1, [r5]
+ adds r1, 0x54
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081371AC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08137160
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081371C0: .4byte gSpriteSheet_ConditionUpDown
+_081371C4: .4byte gSpritePalette_ConditionUpDown
+_081371C8: .4byte gUnknown_02039304
+_081371CC: .4byte gUnknown_08406158
+_081371D0: .4byte gSprites + 0x1C
+_081371D4: .4byte gSpriteTemplate_840618C
+_081371D8: .4byte sub_81371DC
+ thumb_func_end sub_8137138
+
+ thumb_func_start sub_81371DC
+sub_81371DC: @ 81371DC
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x5
+ bgt _081371EE
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x2
+ b _081371F6
+_081371EE:
+ cmp r0, 0xB
+ bgt _081371F8
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x2
+_081371F6:
+ strh r0, [r1, 0x26]
+_081371F8:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _08137218
+ adds r0, r1, 0
+ bl DestroySprite
+ ldr r0, _0813721C @ =gUnknown_02039304
+ ldr r1, [r0]
+ adds r1, 0x54
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_08137218:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813721C: .4byte gUnknown_02039304
+ thumb_func_end sub_81371DC
+
+ .align 2, 0 @ Don't pad with nop.